@@ -399,6 +399,8 @@ static const struct mhi_channel_config mhi_foxconn_sdx55_channels[] = {
399399 MHI_CHANNEL_CONFIG_DL (13 , "MBIM" , 32 , 0 ),
400400 MHI_CHANNEL_CONFIG_UL (32 , "DUN" , 32 , 0 ),
401401 MHI_CHANNEL_CONFIG_DL (33 , "DUN" , 32 , 0 ),
402+ MHI_CHANNEL_CONFIG_UL_FP (34 , "FIREHOSE" , 32 , 0 ),
403+ MHI_CHANNEL_CONFIG_DL_FP (35 , "FIREHOSE" , 32 , 0 ),
402404 MHI_CHANNEL_CONFIG_HW_UL (100 , "IP_HW0_MBIM" , 128 , 2 ),
403405 MHI_CHANNEL_CONFIG_HW_DL (101 , "IP_HW0_MBIM" , 128 , 3 ),
404406};
@@ -419,17 +421,29 @@ static const struct mhi_controller_config modem_foxconn_sdx55_config = {
419421 .event_cfg = mhi_foxconn_sdx55_events ,
420422};
421423
422- static const struct mhi_pci_dev_info mhi_foxconn_sdx24_info = {
423- .name = "foxconn-sdx24" ,
424+ static const struct mhi_controller_config modem_foxconn_sdx72_config = {
425+ .max_channels = 128 ,
426+ .timeout_ms = 20000 ,
427+ .ready_timeout_ms = 50000 ,
428+ .num_channels = ARRAY_SIZE (mhi_foxconn_sdx55_channels ),
429+ .ch_cfg = mhi_foxconn_sdx55_channels ,
430+ .num_events = ARRAY_SIZE (mhi_foxconn_sdx55_events ),
431+ .event_cfg = mhi_foxconn_sdx55_events ,
432+ };
433+
434+ static const struct mhi_pci_dev_info mhi_foxconn_sdx55_info = {
435+ .name = "foxconn-sdx55" ,
436+ .fw = "qcom/sdx55m/sbl1.mbn" ,
437+ .edl = "qcom/sdx55m/edl.mbn" ,
424438 .config = & modem_foxconn_sdx55_config ,
425439 .bar_num = MHI_PCI_DEFAULT_BAR_NUM ,
426440 .dma_data_width = 32 ,
427441 .mru_default = 32768 ,
428442 .sideband_wake = false,
429443};
430444
431- static const struct mhi_pci_dev_info mhi_foxconn_sdx55_info = {
432- .name = "foxconn-sdx55 " ,
445+ static const struct mhi_pci_dev_info mhi_foxconn_t99w175_info = {
446+ .name = "foxconn-t99w175 " ,
433447 .fw = "qcom/sdx55m/sbl1.mbn" ,
434448 .edl = "qcom/sdx55m/edl.mbn" ,
435449 .config = & modem_foxconn_sdx55_config ,
@@ -439,15 +453,75 @@ static const struct mhi_pci_dev_info mhi_foxconn_sdx55_info = {
439453 .sideband_wake = false,
440454};
441455
442- static const struct mhi_pci_dev_info mhi_foxconn_sdx65_info = {
443- .name = "foxconn-sdx65" ,
456+ static const struct mhi_pci_dev_info mhi_foxconn_dw5930e_info = {
457+ .name = "foxconn-dw5930e" ,
458+ .fw = "qcom/sdx55m/sbl1.mbn" ,
459+ .edl = "qcom/sdx55m/edl.mbn" ,
460+ .config = & modem_foxconn_sdx55_config ,
461+ .bar_num = MHI_PCI_DEFAULT_BAR_NUM ,
462+ .dma_data_width = 32 ,
463+ .mru_default = 32768 ,
464+ .sideband_wake = false,
465+ };
466+
467+ static const struct mhi_pci_dev_info mhi_foxconn_t99w368_info = {
468+ .name = "foxconn-t99w368" ,
444469 .config = & modem_foxconn_sdx55_config ,
445470 .bar_num = MHI_PCI_DEFAULT_BAR_NUM ,
446471 .dma_data_width = 32 ,
447472 .mru_default = 32768 ,
448473 .sideband_wake = false,
449474};
450475
476+ static const struct mhi_pci_dev_info mhi_foxconn_t99w373_info = {
477+ .name = "foxconn-t99w373" ,
478+ .config = & modem_foxconn_sdx55_config ,
479+ .bar_num = MHI_PCI_DEFAULT_BAR_NUM ,
480+ .dma_data_width = 32 ,
481+ .mru_default = 32768 ,
482+ .sideband_wake = false,
483+ };
484+
485+ static const struct mhi_pci_dev_info mhi_foxconn_t99w510_info = {
486+ .name = "foxconn-t99w510" ,
487+ .config = & modem_foxconn_sdx55_config ,
488+ .bar_num = MHI_PCI_DEFAULT_BAR_NUM ,
489+ .dma_data_width = 32 ,
490+ .mru_default = 32768 ,
491+ .sideband_wake = false,
492+ };
493+
494+ static const struct mhi_pci_dev_info mhi_foxconn_dw5932e_info = {
495+ .name = "foxconn-dw5932e" ,
496+ .config = & modem_foxconn_sdx55_config ,
497+ .bar_num = MHI_PCI_DEFAULT_BAR_NUM ,
498+ .dma_data_width = 32 ,
499+ .mru_default = 32768 ,
500+ .sideband_wake = false,
501+ };
502+
503+ static const struct mhi_pci_dev_info mhi_foxconn_t99w515_info = {
504+ .name = "foxconn-t99w515" ,
505+ .edl = "fox/sdx72m/edl.mbn" ,
506+ .edl_trigger = true,
507+ .config = & modem_foxconn_sdx72_config ,
508+ .bar_num = MHI_PCI_DEFAULT_BAR_NUM ,
509+ .dma_data_width = 32 ,
510+ .mru_default = 32768 ,
511+ .sideband_wake = false,
512+ };
513+
514+ static const struct mhi_pci_dev_info mhi_foxconn_dw5934e_info = {
515+ .name = "foxconn-dw5934e" ,
516+ .edl = "fox/sdx72m/edl.mbn" ,
517+ .edl_trigger = true,
518+ .config = & modem_foxconn_sdx72_config ,
519+ .bar_num = MHI_PCI_DEFAULT_BAR_NUM ,
520+ .dma_data_width = 32 ,
521+ .mru_default = 32768 ,
522+ .sideband_wake = false,
523+ };
524+
451525static const struct mhi_channel_config mhi_mv3x_channels [] = {
452526 MHI_CHANNEL_CONFIG_UL (0 , "LOOPBACK" , 64 , 0 ),
453527 MHI_CHANNEL_CONFIG_DL (1 , "LOOPBACK" , 64 , 0 ),
@@ -646,40 +720,49 @@ static const struct pci_device_id mhi_pci_id_table[] = {
646720 .driver_data = (kernel_ulong_t ) & mhi_quectel_em1xx_info },
647721 /* T99W175 (sdx55), Both for eSIM and Non-eSIM */
648722 { PCI_DEVICE (PCI_VENDOR_ID_FOXCONN , 0xe0ab ),
649- .driver_data = (kernel_ulong_t ) & mhi_foxconn_sdx55_info },
723+ .driver_data = (kernel_ulong_t ) & mhi_foxconn_t99w175_info },
650724 /* DW5930e (sdx55), With eSIM, It's also T99W175 */
651725 { PCI_DEVICE (PCI_VENDOR_ID_FOXCONN , 0xe0b0 ),
652- .driver_data = (kernel_ulong_t ) & mhi_foxconn_sdx55_info },
726+ .driver_data = (kernel_ulong_t ) & mhi_foxconn_dw5930e_info },
653727 /* DW5930e (sdx55), Non-eSIM, It's also T99W175 */
654728 { PCI_DEVICE (PCI_VENDOR_ID_FOXCONN , 0xe0b1 ),
655- .driver_data = (kernel_ulong_t ) & mhi_foxconn_sdx55_info },
729+ .driver_data = (kernel_ulong_t ) & mhi_foxconn_dw5930e_info },
656730 /* T99W175 (sdx55), Based on Qualcomm new baseline */
657731 { PCI_DEVICE (PCI_VENDOR_ID_FOXCONN , 0xe0bf ),
658- .driver_data = (kernel_ulong_t ) & mhi_foxconn_sdx55_info },
732+ .driver_data = (kernel_ulong_t ) & mhi_foxconn_t99w175_info },
659733 /* T99W175 (sdx55) */
660734 { PCI_DEVICE (PCI_VENDOR_ID_FOXCONN , 0xe0c3 ),
661- .driver_data = (kernel_ulong_t ) & mhi_foxconn_sdx55_info },
735+ .driver_data = (kernel_ulong_t ) & mhi_foxconn_t99w175_info },
662736 /* T99W368 (sdx65) */
663737 { PCI_DEVICE (PCI_VENDOR_ID_FOXCONN , 0xe0d8 ),
664- .driver_data = (kernel_ulong_t ) & mhi_foxconn_sdx65_info },
738+ .driver_data = (kernel_ulong_t ) & mhi_foxconn_t99w368_info },
665739 /* T99W373 (sdx62) */
666740 { PCI_DEVICE (PCI_VENDOR_ID_FOXCONN , 0xe0d9 ),
667- .driver_data = (kernel_ulong_t ) & mhi_foxconn_sdx65_info },
741+ .driver_data = (kernel_ulong_t ) & mhi_foxconn_t99w373_info },
668742 /* T99W510 (sdx24), variant 1 */
669743 { PCI_DEVICE (PCI_VENDOR_ID_FOXCONN , 0xe0f0 ),
670- .driver_data = (kernel_ulong_t ) & mhi_foxconn_sdx24_info },
744+ .driver_data = (kernel_ulong_t ) & mhi_foxconn_t99w510_info },
671745 /* T99W510 (sdx24), variant 2 */
672746 { PCI_DEVICE (PCI_VENDOR_ID_FOXCONN , 0xe0f1 ),
673- .driver_data = (kernel_ulong_t ) & mhi_foxconn_sdx24_info },
747+ .driver_data = (kernel_ulong_t ) & mhi_foxconn_t99w510_info },
674748 /* T99W510 (sdx24), variant 3 */
675749 { PCI_DEVICE (PCI_VENDOR_ID_FOXCONN , 0xe0f2 ),
676- .driver_data = (kernel_ulong_t ) & mhi_foxconn_sdx24_info },
750+ .driver_data = (kernel_ulong_t ) & mhi_foxconn_t99w510_info },
677751 /* DW5932e-eSIM (sdx62), With eSIM */
678752 { PCI_DEVICE (PCI_VENDOR_ID_FOXCONN , 0xe0f5 ),
679- .driver_data = (kernel_ulong_t ) & mhi_foxconn_sdx65_info },
753+ .driver_data = (kernel_ulong_t ) & mhi_foxconn_dw5932e_info },
680754 /* DW5932e (sdx62), Non-eSIM */
681755 { PCI_DEVICE (PCI_VENDOR_ID_FOXCONN , 0xe0f9 ),
682- .driver_data = (kernel_ulong_t ) & mhi_foxconn_sdx65_info },
756+ .driver_data = (kernel_ulong_t ) & mhi_foxconn_dw5932e_info },
757+ /* T99W515 (sdx72) */
758+ { PCI_DEVICE (PCI_VENDOR_ID_FOXCONN , 0xe118 ),
759+ .driver_data = (kernel_ulong_t ) & mhi_foxconn_t99w515_info },
760+ /* DW5934e(sdx72), With eSIM */
761+ { PCI_DEVICE (PCI_VENDOR_ID_FOXCONN , 0xe11d ),
762+ .driver_data = (kernel_ulong_t ) & mhi_foxconn_dw5934e_info },
763+ /* DW5934e(sdx72), Non-eSIM */
764+ { PCI_DEVICE (PCI_VENDOR_ID_FOXCONN , 0xe11e ),
765+ .driver_data = (kernel_ulong_t ) & mhi_foxconn_dw5934e_info },
683766 /* MV31-W (Cinterion) */
684767 { PCI_DEVICE (PCI_VENDOR_ID_THALES , 0x00b3 ),
685768 .driver_data = (kernel_ulong_t ) & mhi_mv31_info },
@@ -694,7 +777,7 @@ static const struct pci_device_id mhi_pci_id_table[] = {
694777 .driver_data = (kernel_ulong_t ) & mhi_mv32_info },
695778 /* T99W175 (sdx55), HP variant */
696779 { PCI_DEVICE (0x03f0 , 0x0a6c ),
697- .driver_data = (kernel_ulong_t ) & mhi_foxconn_sdx55_info },
780+ .driver_data = (kernel_ulong_t ) & mhi_foxconn_t99w175_info },
698781 { }
699782};
700783MODULE_DEVICE_TABLE (pci , mhi_pci_id_table );
@@ -1003,6 +1086,7 @@ static int mhi_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
10031086 mhi_cntrl -> runtime_get = mhi_pci_runtime_get ;
10041087 mhi_cntrl -> runtime_put = mhi_pci_runtime_put ;
10051088 mhi_cntrl -> mru = info -> mru_default ;
1089+ mhi_cntrl -> name = info -> name ;
10061090
10071091 if (info -> edl_trigger )
10081092 mhi_cntrl -> edl_trigger = mhi_pci_generic_edl_trigger ;
0 commit comments