@@ -399,6 +399,8 @@ static const struct mhi_channel_config mhi_foxconn_sdx55_channels[] = {
399
399
MHI_CHANNEL_CONFIG_DL (13 , "MBIM" , 32 , 0 ),
400
400
MHI_CHANNEL_CONFIG_UL (32 , "DUN" , 32 , 0 ),
401
401
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 ),
402
404
MHI_CHANNEL_CONFIG_HW_UL (100 , "IP_HW0_MBIM" , 128 , 2 ),
403
405
MHI_CHANNEL_CONFIG_HW_DL (101 , "IP_HW0_MBIM" , 128 , 3 ),
404
406
};
@@ -419,17 +421,29 @@ static const struct mhi_controller_config modem_foxconn_sdx55_config = {
419
421
.event_cfg = mhi_foxconn_sdx55_events ,
420
422
};
421
423
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" ,
424
438
.config = & modem_foxconn_sdx55_config ,
425
439
.bar_num = MHI_PCI_DEFAULT_BAR_NUM ,
426
440
.dma_data_width = 32 ,
427
441
.mru_default = 32768 ,
428
442
.sideband_wake = false,
429
443
};
430
444
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 " ,
433
447
.fw = "qcom/sdx55m/sbl1.mbn" ,
434
448
.edl = "qcom/sdx55m/edl.mbn" ,
435
449
.config = & modem_foxconn_sdx55_config ,
@@ -439,15 +453,75 @@ static const struct mhi_pci_dev_info mhi_foxconn_sdx55_info = {
439
453
.sideband_wake = false,
440
454
};
441
455
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" ,
444
469
.config = & modem_foxconn_sdx55_config ,
445
470
.bar_num = MHI_PCI_DEFAULT_BAR_NUM ,
446
471
.dma_data_width = 32 ,
447
472
.mru_default = 32768 ,
448
473
.sideband_wake = false,
449
474
};
450
475
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
+
451
525
static const struct mhi_channel_config mhi_mv3x_channels [] = {
452
526
MHI_CHANNEL_CONFIG_UL (0 , "LOOPBACK" , 64 , 0 ),
453
527
MHI_CHANNEL_CONFIG_DL (1 , "LOOPBACK" , 64 , 0 ),
@@ -646,40 +720,49 @@ static const struct pci_device_id mhi_pci_id_table[] = {
646
720
.driver_data = (kernel_ulong_t ) & mhi_quectel_em1xx_info },
647
721
/* T99W175 (sdx55), Both for eSIM and Non-eSIM */
648
722
{ 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 },
650
724
/* DW5930e (sdx55), With eSIM, It's also T99W175 */
651
725
{ 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 },
653
727
/* DW5930e (sdx55), Non-eSIM, It's also T99W175 */
654
728
{ 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 },
656
730
/* T99W175 (sdx55), Based on Qualcomm new baseline */
657
731
{ 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 },
659
733
/* T99W175 (sdx55) */
660
734
{ 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 },
662
736
/* T99W368 (sdx65) */
663
737
{ 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 },
665
739
/* T99W373 (sdx62) */
666
740
{ 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 },
668
742
/* T99W510 (sdx24), variant 1 */
669
743
{ 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 },
671
745
/* T99W510 (sdx24), variant 2 */
672
746
{ 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 },
674
748
/* T99W510 (sdx24), variant 3 */
675
749
{ 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 },
677
751
/* DW5932e-eSIM (sdx62), With eSIM */
678
752
{ 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 },
680
754
/* DW5932e (sdx62), Non-eSIM */
681
755
{ 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 },
683
766
/* MV31-W (Cinterion) */
684
767
{ PCI_DEVICE (PCI_VENDOR_ID_THALES , 0x00b3 ),
685
768
.driver_data = (kernel_ulong_t ) & mhi_mv31_info },
@@ -694,7 +777,7 @@ static const struct pci_device_id mhi_pci_id_table[] = {
694
777
.driver_data = (kernel_ulong_t ) & mhi_mv32_info },
695
778
/* T99W175 (sdx55), HP variant */
696
779
{ PCI_DEVICE (0x03f0 , 0x0a6c ),
697
- .driver_data = (kernel_ulong_t ) & mhi_foxconn_sdx55_info },
780
+ .driver_data = (kernel_ulong_t ) & mhi_foxconn_t99w175_info },
698
781
{ }
699
782
};
700
783
MODULE_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)
1003
1086
mhi_cntrl -> runtime_get = mhi_pci_runtime_get ;
1004
1087
mhi_cntrl -> runtime_put = mhi_pci_runtime_put ;
1005
1088
mhi_cntrl -> mru = info -> mru_default ;
1089
+ mhi_cntrl -> name = info -> name ;
1006
1090
1007
1091
if (info -> edl_trigger )
1008
1092
mhi_cntrl -> edl_trigger = mhi_pci_generic_edl_trigger ;
0 commit comments