diff mbox series

bus: mhi: host: pci_generic: Add support for Sierra Wireless EM9291

Message ID 20231105150510.96136-1-stachecki.tyler@gmail.com
State New
Headers show
Series bus: mhi: host: pci_generic: Add support for Sierra Wireless EM9291 | expand

Commit Message

Tyler Stachecki Nov. 5, 2023, 3:05 p.m. UTC
Add support for the Sierra Wireless EM9291 modem.
Empirically, it seems to use the same configuration as
EM9191.

$ lspci -vv
03:00.0 Unassigned class [ff00]: Qualcomm Device 0308
        Subsystem: Device 18d7:0301

Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
---
 drivers/bus/mhi/host/pci_generic.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

Comments

Tyler Stachecki Nov. 5, 2023, 3:11 p.m. UTC | #1
On Sun, Nov 05, 2023 at 10:05:10AM -0500, Tyler J. Stachecki wrote:
> Add support for the Sierra Wireless EM9291 modem.
> Empirically, it seems to use the same configuration as
> EM9191.
> 
> $ lspci -vv
> 03:00.0 Unassigned class [ff00]: Qualcomm Device 0308
>         Subsystem: Device 18d7:0301
> 
>

Hi Mani,

I just want to highlight "empirically" here. I do not have
access to the IP which confirms proper MHI configuration
here. Given that, not sure it is appropriate for submission
to the kernel.

However, without these changes, AT is not exposed and QMI
submissions time out -- so better than nothing...?

Regards,
Tyler
Manivannan Sadhasivam Nov. 6, 2023, 5:52 a.m. UTC | #2
On Sun, Nov 05, 2023 at 10:05:10AM -0500, Tyler J. Stachecki wrote:
> Add support for the Sierra Wireless EM9291 modem.
> Empirically, it seems to use the same configuration as
> EM9191.
> 
> $ lspci -vv
> 03:00.0 Unassigned class [ff00]: Qualcomm Device 0308
>         Subsystem: Device 18d7:0301
> 
> Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
> ---
>  drivers/bus/mhi/host/pci_generic.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/drivers/bus/mhi/host/pci_generic.c b/drivers/bus/mhi/host/pci_generic.c
> index 08f3f039dbdd..a9ac49a94832 100644
> --- a/drivers/bus/mhi/host/pci_generic.c
> +++ b/drivers/bus/mhi/host/pci_generic.c
> @@ -503,6 +503,14 @@ static const struct mhi_pci_dev_info mhi_sierra_em919x_info = {
>  	.sideband_wake = false,
>  };
>  
> +static const struct mhi_pci_dev_info mhi_sierra_em929x_info = {
> +	.name = "sierra-em929x",
> +	.config = &modem_sierra_em919x_config,
> +	.bar_num = MHI_PCI_DEFAULT_BAR_NUM,
> +	.dma_data_width = 32,
> +	.sideband_wake = false,
> +};
> +
>  static const struct mhi_channel_config mhi_telit_fn980_hw_v1_channels[] = {
>  	MHI_CHANNEL_CONFIG_UL(14, "QMI", 32, 0),
>  	MHI_CHANNEL_CONFIG_DL(15, "QMI", 32, 0),
> @@ -587,6 +595,9 @@ static const struct pci_device_id mhi_pci_id_table[] = {
>  	/* EM919x (sdx55), use the same vid:pid as qcom-sdx55m */
>  	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0306, 0x18d7, 0x0200),
>  		.driver_data = (kernel_ulong_t) &mhi_sierra_em919x_info },
> +	/* EM929x (sdx62), use the same vid:pid as qcom-sdx65m */

I'm confused about "sdx62" since the modem is using PID of SDX65. Typo?

> +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, 0x18d7, 0x0301),
> +		.driver_data = (kernel_ulong_t) &mhi_sierra_em929x_info },

Please sort the entry as per the note above mhi_pci_id_table[].

- Mani

>  	/* Telit FN980 hardware revision v1 */
>  	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0306, 0x1C5D, 0x2000),
>  		.driver_data = (kernel_ulong_t) &mhi_telit_fn980_hw_v1_info },
> -- 
> 2.30.2
> 
>
Manivannan Sadhasivam Nov. 6, 2023, 5:56 a.m. UTC | #3
On Sun, Nov 05, 2023 at 10:11:42AM -0500, Tyler Stachecki wrote:
> On Sun, Nov 05, 2023 at 10:05:10AM -0500, Tyler J. Stachecki wrote:
> > Add support for the Sierra Wireless EM9291 modem.
> > Empirically, it seems to use the same configuration as
> > EM9191.
> > 
> > $ lspci -vv
> > 03:00.0 Unassigned class [ff00]: Qualcomm Device 0308
> >         Subsystem: Device 18d7:0301
> > 
> >
> 
> Hi Mani,
> 
> I just want to highlight "empirically" here. I do not have
> access to the IP which confirms proper MHI configuration
> here. Given that, not sure it is appropriate for submission
> to the kernel.
> 
> However, without these changes, AT is not exposed and QMI
> submissions time out -- so better than nothing...?
> 

Yes, and that's how some other modem support is added as well. So it is totally
fine.

Thanks for the patch!

- Mani

> Regards,
> Tyler
>
diff mbox series

Patch

diff --git a/drivers/bus/mhi/host/pci_generic.c b/drivers/bus/mhi/host/pci_generic.c
index 08f3f039dbdd..a9ac49a94832 100644
--- a/drivers/bus/mhi/host/pci_generic.c
+++ b/drivers/bus/mhi/host/pci_generic.c
@@ -503,6 +503,14 @@  static const struct mhi_pci_dev_info mhi_sierra_em919x_info = {
 	.sideband_wake = false,
 };
 
+static const struct mhi_pci_dev_info mhi_sierra_em929x_info = {
+	.name = "sierra-em929x",
+	.config = &modem_sierra_em919x_config,
+	.bar_num = MHI_PCI_DEFAULT_BAR_NUM,
+	.dma_data_width = 32,
+	.sideband_wake = false,
+};
+
 static const struct mhi_channel_config mhi_telit_fn980_hw_v1_channels[] = {
 	MHI_CHANNEL_CONFIG_UL(14, "QMI", 32, 0),
 	MHI_CHANNEL_CONFIG_DL(15, "QMI", 32, 0),
@@ -587,6 +595,9 @@  static const struct pci_device_id mhi_pci_id_table[] = {
 	/* EM919x (sdx55), use the same vid:pid as qcom-sdx55m */
 	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0306, 0x18d7, 0x0200),
 		.driver_data = (kernel_ulong_t) &mhi_sierra_em919x_info },
+	/* EM929x (sdx62), use the same vid:pid as qcom-sdx65m */
+	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, 0x18d7, 0x0301),
+		.driver_data = (kernel_ulong_t) &mhi_sierra_em929x_info },
 	/* Telit FN980 hardware revision v1 */
 	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0306, 0x1C5D, 0x2000),
 		.driver_data = (kernel_ulong_t) &mhi_telit_fn980_hw_v1_info },