drivers/bus/mhi/host/pci_generic.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)
There are more platforms need support Foxconn T99W696 modem.
This requirement comes from Lenovo side since they want 1 platform
to correspond to 1 modem SKU.
Signed-off-by: Slark Xiao <slark_xiao@163.com>
---
drivers/bus/mhi/host/pci_generic.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/drivers/bus/mhi/host/pci_generic.c b/drivers/bus/mhi/host/pci_generic.c
index 4edb5bb476ba..1fc43f1b86be 100644
--- a/drivers/bus/mhi/host/pci_generic.c
+++ b/drivers/bus/mhi/host/pci_generic.c
@@ -932,6 +932,24 @@ static const struct pci_device_id mhi_pci_id_table[] = {
/* Foxconn T99W696.00, Foxconn SKU */
{ PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe146),
.driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info },
+ /* Foxconn T99W696.05, Lenovo T14 */
+ { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe150),
+ .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info },
+ /* Foxconn T99W696.06, Lenovo T15 */
+ { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe151),
+ .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info },
+ /* Foxconn T99W696.07, Lenovo T16 */
+ { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe152),
+ .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info },
+ /* Foxconn T99W696.08, Lenovo P14s */
+ { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe153),
+ .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info },
+ /* Foxconn T99W696.09, Lenovo P16s */
+ { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe154),
+ .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info },
+ /* Foxconn T99W696.10, Lenovo P1 */
+ { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe155),
+ .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info },
{ PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x0308),
.driver_data = (kernel_ulong_t) &mhi_qcom_sdx65_info },
/* Telit FN990B40 (sdx72) */
--
2.25.1
On Tue, Jul 29, 2025 at 04:57:26PM GMT, Slark Xiao wrote: > There are more platforms need support Foxconn T99W696 modem. > This requirement comes from Lenovo side since they want 1 platform > to correspond to 1 modem SKU. > > Signed-off-by: Slark Xiao <slark_xiao@163.com> > --- > drivers/bus/mhi/host/pci_generic.c | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/drivers/bus/mhi/host/pci_generic.c b/drivers/bus/mhi/host/pci_generic.c > index 4edb5bb476ba..1fc43f1b86be 100644 > --- a/drivers/bus/mhi/host/pci_generic.c > +++ b/drivers/bus/mhi/host/pci_generic.c > @@ -932,6 +932,24 @@ static const struct pci_device_id mhi_pci_id_table[] = { > /* Foxconn T99W696.00, Foxconn SKU */ > { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe146), > .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info }, > + /* Foxconn T99W696.05, Lenovo T14 */ > + { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe150), > + .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info }, > + /* Foxconn T99W696.06, Lenovo T15 */ > + { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe151), > + .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info }, > + /* Foxconn T99W696.07, Lenovo T16 */ > + { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe152), > + .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info }, > + /* Foxconn T99W696.08, Lenovo P14s */ > + { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe153), > + .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info }, > + /* Foxconn T99W696.09, Lenovo P16s */ > + { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe154), > + .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info }, > + /* Foxconn T99W696.10, Lenovo P1 */ > + { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe155), > + .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info }, Since all T99W696 derivatives are using the same config, can't you use below? PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, PCI_ANY_ID), .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info }, I'm presumed that all 0x0308 based modems are T99W696 derivatives. - Mani -- மணிவண்ணன் சதாசிவம்
At 2025-08-18 16:14:28, "Manivannan Sadhasivam" <mani@kernel.org> wrote: >On Tue, Jul 29, 2025 at 04:57:26PM GMT, Slark Xiao wrote: >> There are more platforms need support Foxconn T99W696 modem. >> This requirement comes from Lenovo side since they want 1 platform >> to correspond to 1 modem SKU. >> >> Signed-off-by: Slark Xiao <slark_xiao@163.com> >> --- >> drivers/bus/mhi/host/pci_generic.c | 18 ++++++++++++++++++ >> 1 file changed, 18 insertions(+) >> >> diff --git a/drivers/bus/mhi/host/pci_generic.c b/drivers/bus/mhi/host/pci_generic.c >> index 4edb5bb476ba..1fc43f1b86be 100644 >> --- a/drivers/bus/mhi/host/pci_generic.c >> +++ b/drivers/bus/mhi/host/pci_generic.c >> @@ -932,6 +932,24 @@ static const struct pci_device_id mhi_pci_id_table[] = { >> /* Foxconn T99W696.00, Foxconn SKU */ >> { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe146), >> .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info }, >> + /* Foxconn T99W696.05, Lenovo T14 */ >> + { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe150), >> + .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info }, >> + /* Foxconn T99W696.06, Lenovo T15 */ >> + { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe151), >> + .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info }, >> + /* Foxconn T99W696.07, Lenovo T16 */ >> + { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe152), >> + .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info }, >> + /* Foxconn T99W696.08, Lenovo P14s */ >> + { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe153), >> + .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info }, >> + /* Foxconn T99W696.09, Lenovo P16s */ >> + { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe154), >> + .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info }, >> + /* Foxconn T99W696.10, Lenovo P1 */ >> + { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe155), >> + .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info }, > >Since all T99W696 derivatives are using the same config, can't you use below? > > PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, PCI_ANY_ID), > .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info }, > >I'm presumed that all 0x0308 based modems are T99W696 derivatives. > >- Mani > Hi Mani, Yeah, this is really helpful. So shall I update the previous T99W696 IDs with this new match case? Thanks >-- >மணிவண்ணன் சதாசிவம்
On Mon, Aug 18, 2025 at 06:45:04PM GMT, Slark Xiao wrote: > > > At 2025-08-18 16:14:28, "Manivannan Sadhasivam" <mani@kernel.org> wrote: > >On Tue, Jul 29, 2025 at 04:57:26PM GMT, Slark Xiao wrote: > >> There are more platforms need support Foxconn T99W696 modem. > >> This requirement comes from Lenovo side since they want 1 platform > >> to correspond to 1 modem SKU. > >> > >> Signed-off-by: Slark Xiao <slark_xiao@163.com> > >> --- > >> drivers/bus/mhi/host/pci_generic.c | 18 ++++++++++++++++++ > >> 1 file changed, 18 insertions(+) > >> > >> diff --git a/drivers/bus/mhi/host/pci_generic.c b/drivers/bus/mhi/host/pci_generic.c > >> index 4edb5bb476ba..1fc43f1b86be 100644 > >> --- a/drivers/bus/mhi/host/pci_generic.c > >> +++ b/drivers/bus/mhi/host/pci_generic.c > >> @@ -932,6 +932,24 @@ static const struct pci_device_id mhi_pci_id_table[] = { > >> /* Foxconn T99W696.00, Foxconn SKU */ > >> { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe146), > >> .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info }, > >> + /* Foxconn T99W696.05, Lenovo T14 */ > >> + { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe150), > >> + .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info }, > >> + /* Foxconn T99W696.06, Lenovo T15 */ > >> + { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe151), > >> + .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info }, > >> + /* Foxconn T99W696.07, Lenovo T16 */ > >> + { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe152), > >> + .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info }, > >> + /* Foxconn T99W696.08, Lenovo P14s */ > >> + { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe153), > >> + .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info }, > >> + /* Foxconn T99W696.09, Lenovo P16s */ > >> + { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe154), > >> + .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info }, > >> + /* Foxconn T99W696.10, Lenovo P1 */ > >> + { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, 0xe155), > >> + .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info }, > > > >Since all T99W696 derivatives are using the same config, can't you use below? > > > > PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, PCI_VENDOR_ID_FOXCONN, PCI_ANY_ID), > > .driver_data = (kernel_ulong_t) &mhi_foxconn_t99w696_info }, > > > >I'm presumed that all 0x0308 based modems are T99W696 derivatives. > > > >- Mani > > > Hi Mani, > Yeah, this is really helpful. > So shall I update the previous T99W696 IDs with this new match case? > Yes please. - Mani -- மணிவண்ணன் சதாசிவம்
© 2016 - 2025 Red Hat, Inc.