Skip to content

Commit 3ff7719

Browse files
committed
Merge tag 'mhi-for-v6.12' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/mani/mhi into char-misc-next
Manivannan writes: MHI Host ======== core ---- - Used const qualifier for 'mhi_bus_type' to place it onto the read-only memory segment. pci_generic ----------- - Fixed the Telit FE990A modem name as it was advertising the wrong product name, thereby confusing the users. - Added Netprisma LCUR57 and FCUN69 modems based on Qcom SDX24 and SDX6X SoCs. - Updated the EDL (Emergency Download) firmware path for the Foxconn modems. The patch that added the modem support mistakenly specified the generic EDL firmware path common for Qcom based modems. But they won't work. - Enabled the EDL trigger for all Foxconn modems to update the modem firmware. * tag 'mhi-for-v6.12' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/mani/mhi: bus: mhi: host: pci_generic: Enable EDL trigger for Foxconn modems bus: mhi: host: pci_generic: Update EDL firmware path for Foxconn modems bus: mhi: host: pci_generic: Add support for Netprisma LCUR57 and FCUN69 bus: mhi: host: make mhi_bus_type const bus: mhi: host: pci_generic: Fix the name for the Telit FE990A
2 parents 072e18d + 84a5ae5 commit 3ff7719

File tree

3 files changed

+56
-12
lines changed

3 files changed

+56
-12
lines changed

drivers/bus/mhi/host/init.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1464,7 +1464,7 @@ static int mhi_match(struct device *dev, const struct device_driver *drv)
14641464
return 0;
14651465
};
14661466

1467-
struct bus_type mhi_bus_type = {
1467+
const struct bus_type mhi_bus_type = {
14681468
.name = "mhi",
14691469
.dev_name = "mhi",
14701470
.match = mhi_match,

drivers/bus/mhi/host/internal.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
#include "../common.h"
1111

12-
extern struct bus_type mhi_bus_type;
12+
extern const struct bus_type mhi_bus_type;
1313

1414
/* Host request register */
1515
#define MHI_SOC_RESET_REQ_OFFSET 0xb0

drivers/bus/mhi/host/pci_generic.c

Lines changed: 54 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
/* PCI VID definitions */
2727
#define PCI_VENDOR_ID_THALES 0x1269
2828
#define PCI_VENDOR_ID_QUECTEL 0x1eac
29+
#define PCI_VENDOR_ID_NETPRISMA 0x203e
2930

3031
#define MHI_EDL_DB 91
3132
#define MHI_EDL_COOKIE 0xEDEDEDED
@@ -433,8 +434,8 @@ static const struct mhi_controller_config modem_foxconn_sdx72_config = {
433434

434435
static const struct mhi_pci_dev_info mhi_foxconn_sdx55_info = {
435436
.name = "foxconn-sdx55",
436-
.fw = "qcom/sdx55m/sbl1.mbn",
437-
.edl = "qcom/sdx55m/edl.mbn",
437+
.edl = "qcom/sdx55m/foxconn/prog_firehose_sdx55.mbn",
438+
.edl_trigger = true,
438439
.config = &modem_foxconn_sdx55_config,
439440
.bar_num = MHI_PCI_DEFAULT_BAR_NUM,
440441
.dma_data_width = 32,
@@ -444,8 +445,8 @@ static const struct mhi_pci_dev_info mhi_foxconn_sdx55_info = {
444445

445446
static const struct mhi_pci_dev_info mhi_foxconn_t99w175_info = {
446447
.name = "foxconn-t99w175",
447-
.fw = "qcom/sdx55m/sbl1.mbn",
448-
.edl = "qcom/sdx55m/edl.mbn",
448+
.edl = "qcom/sdx55m/foxconn/prog_firehose_sdx55.mbn",
449+
.edl_trigger = true,
449450
.config = &modem_foxconn_sdx55_config,
450451
.bar_num = MHI_PCI_DEFAULT_BAR_NUM,
451452
.dma_data_width = 32,
@@ -455,8 +456,8 @@ static const struct mhi_pci_dev_info mhi_foxconn_t99w175_info = {
455456

456457
static const struct mhi_pci_dev_info mhi_foxconn_dw5930e_info = {
457458
.name = "foxconn-dw5930e",
458-
.fw = "qcom/sdx55m/sbl1.mbn",
459-
.edl = "qcom/sdx55m/edl.mbn",
459+
.edl = "qcom/sdx55m/foxconn/prog_firehose_sdx55.mbn",
460+
.edl_trigger = true,
460461
.config = &modem_foxconn_sdx55_config,
461462
.bar_num = MHI_PCI_DEFAULT_BAR_NUM,
462463
.dma_data_width = 32,
@@ -466,6 +467,8 @@ static const struct mhi_pci_dev_info mhi_foxconn_dw5930e_info = {
466467

467468
static const struct mhi_pci_dev_info mhi_foxconn_t99w368_info = {
468469
.name = "foxconn-t99w368",
470+
.edl = "qcom/sdx65m/foxconn/prog_firehose_lite.elf",
471+
.edl_trigger = true,
469472
.config = &modem_foxconn_sdx55_config,
470473
.bar_num = MHI_PCI_DEFAULT_BAR_NUM,
471474
.dma_data_width = 32,
@@ -475,6 +478,8 @@ static const struct mhi_pci_dev_info mhi_foxconn_t99w368_info = {
475478

476479
static const struct mhi_pci_dev_info mhi_foxconn_t99w373_info = {
477480
.name = "foxconn-t99w373",
481+
.edl = "qcom/sdx65m/foxconn/prog_firehose_lite.elf",
482+
.edl_trigger = true,
478483
.config = &modem_foxconn_sdx55_config,
479484
.bar_num = MHI_PCI_DEFAULT_BAR_NUM,
480485
.dma_data_width = 32,
@@ -484,6 +489,8 @@ static const struct mhi_pci_dev_info mhi_foxconn_t99w373_info = {
484489

485490
static const struct mhi_pci_dev_info mhi_foxconn_t99w510_info = {
486491
.name = "foxconn-t99w510",
492+
.edl = "qcom/sdx24m/foxconn/prog_firehose_sdx24.mbn",
493+
.edl_trigger = true,
487494
.config = &modem_foxconn_sdx55_config,
488495
.bar_num = MHI_PCI_DEFAULT_BAR_NUM,
489496
.dma_data_width = 32,
@@ -493,6 +500,8 @@ static const struct mhi_pci_dev_info mhi_foxconn_t99w510_info = {
493500

494501
static const struct mhi_pci_dev_info mhi_foxconn_dw5932e_info = {
495502
.name = "foxconn-dw5932e",
503+
.edl = "qcom/sdx65m/foxconn/prog_firehose_lite.elf",
504+
.edl_trigger = true,
496505
.config = &modem_foxconn_sdx55_config,
497506
.bar_num = MHI_PCI_DEFAULT_BAR_NUM,
498507
.dma_data_width = 32,
@@ -502,7 +511,7 @@ static const struct mhi_pci_dev_info mhi_foxconn_dw5932e_info = {
502511

503512
static const struct mhi_pci_dev_info mhi_foxconn_t99w515_info = {
504513
.name = "foxconn-t99w515",
505-
.edl = "fox/sdx72m/edl.mbn",
514+
.edl = "qcom/sdx72m/foxconn/edl.mbn",
506515
.edl_trigger = true,
507516
.config = &modem_foxconn_sdx72_config,
508517
.bar_num = MHI_PCI_DEFAULT_BAR_NUM,
@@ -513,7 +522,7 @@ static const struct mhi_pci_dev_info mhi_foxconn_t99w515_info = {
513522

514523
static const struct mhi_pci_dev_info mhi_foxconn_dw5934e_info = {
515524
.name = "foxconn-dw5934e",
516-
.edl = "fox/sdx72m/edl.mbn",
525+
.edl = "qcom/sdx72m/foxconn/edl.mbn",
517526
.edl_trigger = true,
518527
.config = &modem_foxconn_sdx72_config,
519528
.bar_num = MHI_PCI_DEFAULT_BAR_NUM,
@@ -680,6 +689,35 @@ static const struct mhi_pci_dev_info mhi_telit_fn990_info = {
680689
.mru_default = 32768,
681690
};
682691

692+
static const struct mhi_pci_dev_info mhi_telit_fe990a_info = {
693+
.name = "telit-fe990a",
694+
.config = &modem_telit_fn990_config,
695+
.bar_num = MHI_PCI_DEFAULT_BAR_NUM,
696+
.dma_data_width = 32,
697+
.sideband_wake = false,
698+
.mru_default = 32768,
699+
};
700+
701+
static const struct mhi_pci_dev_info mhi_netprisma_lcur57_info = {
702+
.name = "netprisma-lcur57",
703+
.edl = "qcom/prog_firehose_sdx24.mbn",
704+
.config = &modem_quectel_em1xx_config,
705+
.bar_num = MHI_PCI_DEFAULT_BAR_NUM,
706+
.dma_data_width = 32,
707+
.mru_default = 32768,
708+
.sideband_wake = true,
709+
};
710+
711+
static const struct mhi_pci_dev_info mhi_netprisma_fcun69_info = {
712+
.name = "netprisma-fcun69",
713+
.edl = "qcom/prog_firehose_sdx6x.elf",
714+
.config = &modem_quectel_em1xx_config,
715+
.bar_num = MHI_PCI_DEFAULT_BAR_NUM,
716+
.dma_data_width = 32,
717+
.mru_default = 32768,
718+
.sideband_wake = true,
719+
};
720+
683721
/* Keep the list sorted based on the PID. New VID should be added as the last entry */
684722
static const struct pci_device_id mhi_pci_id_table[] = {
685723
{ PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x0304),
@@ -697,9 +735,9 @@ static const struct pci_device_id mhi_pci_id_table[] = {
697735
/* Telit FN990 */
698736
{ PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, 0x1c5d, 0x2010),
699737
.driver_data = (kernel_ulong_t) &mhi_telit_fn990_info },
700-
/* Telit FE990 */
738+
/* Telit FE990A */
701739
{ PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0308, 0x1c5d, 0x2015),
702-
.driver_data = (kernel_ulong_t) &mhi_telit_fn990_info },
740+
.driver_data = (kernel_ulong_t) &mhi_telit_fe990a_info },
703741
{ PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x0308),
704742
.driver_data = (kernel_ulong_t) &mhi_qcom_sdx65_info },
705743
{ PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x0309),
@@ -778,6 +816,12 @@ static const struct pci_device_id mhi_pci_id_table[] = {
778816
/* T99W175 (sdx55), HP variant */
779817
{ PCI_DEVICE(0x03f0, 0x0a6c),
780818
.driver_data = (kernel_ulong_t) &mhi_foxconn_t99w175_info },
819+
/* NETPRISMA LCUR57 (SDX24) */
820+
{ PCI_DEVICE(PCI_VENDOR_ID_NETPRISMA, 0x1000),
821+
.driver_data = (kernel_ulong_t) &mhi_netprisma_lcur57_info },
822+
/* NETPRISMA FCUN69 (SDX6X) */
823+
{ PCI_DEVICE(PCI_VENDOR_ID_NETPRISMA, 0x1001),
824+
.driver_data = (kernel_ulong_t) &mhi_netprisma_fcun69_info },
781825
{ }
782826
};
783827
MODULE_DEVICE_TABLE(pci, mhi_pci_id_table);

0 commit comments

Comments
 (0)