From: Daniele Palmas dnlplm@gmail.com
[ Upstream commit 00559ba3ae740e7544b48fb509b2b97f56615892 ]
Add SDX72 based modem Telit FN990B40, reusing FN920C04 configuration.
01:00.0 Unassigned class [ff00]: Qualcomm Device 0309 Subsystem: Device 1c5d:201a
Signed-off-by: Daniele Palmas dnlplm@gmail.com [mani: added sdx72 in the comment to identify the chipset] Signed-off-by: Manivannan Sadhasivam mani@kernel.org Link: https://patch.msgid.link/20250716091836.999364-1-dnlplm@gmail.com Signed-off-by: Sasha Levin sashal@kernel.org ---
LLM Generated explanations, may be completely bogus:
**Backport Status: YES**
This commit should be backported to stable kernel trees. Here's the extensive analysis:
## Analysis of the Commit
The commit adds support for the Telit FN990B40 modem, which is an SDX72-based device. The changes are:
1. **Addition of a new device info structure** (`mhi_telit_fn990b40_info`) that reuses the existing `modem_telit_fn920c04_config` configuration 2. **Addition of a PCI device ID entry** in the `mhi_pci_id_table` for the new hardware (PCI ID 0x0309, subsystem 0x1c5d:0x201a)
## Rationale for Backporting
1. **Meets stable kernel rules**: According to Documentation/process/stable-kernel-rules.rst line 15, patches that "just add a device ID" are explicitly allowed in stable trees.
2. **Small and contained change**: The patch adds only 11 lines of code (well under the 100-line limit) and is purely additive - it doesn't modify any existing functionality.
3. **Hardware enablement**: This enables users with Telit FN990B40 modems to use their hardware on stable kernel versions. Without this patch, the modem won't be recognized by the kernel.
4. **Low risk**: The change reuses an existing configuration (`modem_telit_fn920c04_config`), which minimizes the risk of introducing bugs. The new device entry only affects systems with this specific hardware.
5. **Similar patches pattern**: Looking at the commit history, similar hardware enablement commits for MHI modems (like commit 6348f62ef7ec for Telit FN920C04 and commit 0724869ede9c for Telit FE990) follow the same pattern of adding device IDs and configurations.
6. **No architectural changes**: This is purely a device ID addition with no changes to the driver's core functionality or architecture.
The commit perfectly fits the stable kernel criteria as a simple device ID addition that enables hardware support without any risk to existing functionality.
drivers/bus/mhi/host/pci_generic.c | 13 +++++++++++++ 1 file changed, 13 insertions(+)
diff --git a/drivers/bus/mhi/host/pci_generic.c b/drivers/bus/mhi/host/pci_generic.c index 589cb6722316..3fde90fe660d 100644 --- a/drivers/bus/mhi/host/pci_generic.c +++ b/drivers/bus/mhi/host/pci_generic.c @@ -818,6 +818,16 @@ static const struct mhi_pci_dev_info mhi_telit_fn920c04_info = { .edl_trigger = true, };
+static const struct mhi_pci_dev_info mhi_telit_fn990b40_info = { + .name = "telit-fn990b40", + .config = &modem_telit_fn920c04_config, + .bar_num = MHI_PCI_DEFAULT_BAR_NUM, + .dma_data_width = 32, + .sideband_wake = false, + .mru_default = 32768, + .edl_trigger = true, +}; + static const struct mhi_pci_dev_info mhi_netprisma_lcur57_info = { .name = "netprisma-lcur57", .edl = "qcom/prog_firehose_sdx24.mbn", @@ -865,6 +875,9 @@ static const struct pci_device_id mhi_pci_id_table[] = { .driver_data = (kernel_ulong_t) &mhi_telit_fe990a_info }, { PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x0308), .driver_data = (kernel_ulong_t) &mhi_qcom_sdx65_info }, + /* Telit FN990B40 (sdx72) */ + { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0309, 0x1c5d, 0x201a), + .driver_data = (kernel_ulong_t) &mhi_telit_fn990b40_info }, { PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x0309), .driver_data = (kernel_ulong_t) &mhi_qcom_sdx75_info }, /* QDU100, x100-DU */