[PATCH] bus: mhi: host: pci_generic: Add more Foxconn T99W696 modem

Slark Xiao posted 1 patch 2 months, 1 week ago
drivers/bus/mhi/host/pci_generic.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
[PATCH] bus: mhi: host: pci_generic: Add more Foxconn T99W696 modem
Posted by Slark Xiao 2 months, 1 week ago
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
Re: [PATCH] bus: mhi: host: pci_generic: Add more Foxconn T99W696 modem
Posted by Manivannan Sadhasivam 1 month, 2 weeks ago
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

-- 
மணிவண்ணன் சதாசிவம்
Re:Re: [PATCH] bus: mhi: host: pci_generic: Add more Foxconn T99W696 modem
Posted by Slark Xiao 1 month, 2 weeks ago

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
>-- 
>மணிவண்ணன் சதாசிவம்
Re: [PATCH] bus: mhi: host: pci_generic: Add more Foxconn T99W696 modem
Posted by Manivannan Sadhasivam 1 month, 2 weeks ago
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

-- 
மணிவண்ணன் சதாசிவம்