851-v6.8-bus-mhi-host-pci_generic-Add-SDX75-based-modem-suppo.patch 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. From 4dc9c850a974ba7db2091ce73bcffe631aafe144 Mon Sep 17 00:00:00 2001
  2. From: Qiang Yu <[email protected]>
  3. Date: Tue, 7 Nov 2023 16:14:50 +0800
  4. Subject: [PATCH 1/2] bus: mhi: host: pci_generic: Add SDX75 based modem
  5. support
  6. Add generic info for SDX75 based modems. SDX75 takes longer to set ready
  7. during power up. Hence use separate configuration.
  8. Signed-off-by: Qiang Yu <[email protected]>
  9. Reviewed-by: Manivannan Sadhasivam <[email protected]>
  10. Link: https://lore.kernel.org/r/[email protected]
  11. Signed-off-by: Manivannan Sadhasivam <[email protected]>
  12. ---
  13. drivers/bus/mhi/host/pci_generic.c | 22 ++++++++++++++++++++++
  14. 1 file changed, 22 insertions(+)
  15. --- a/drivers/bus/mhi/host/pci_generic.c
  16. +++ b/drivers/bus/mhi/host/pci_generic.c
  17. @@ -269,6 +269,16 @@ static struct mhi_event_config modem_qco
  18. MHI_EVENT_CONFIG_HW_DATA(5, 2048, 101)
  19. };
  20. +static const struct mhi_controller_config modem_qcom_v2_mhiv_config = {
  21. + .max_channels = 128,
  22. + .timeout_ms = 8000,
  23. + .ready_timeout_ms = 50000,
  24. + .num_channels = ARRAY_SIZE(modem_qcom_v1_mhi_channels),
  25. + .ch_cfg = modem_qcom_v1_mhi_channels,
  26. + .num_events = ARRAY_SIZE(modem_qcom_v1_mhi_events),
  27. + .event_cfg = modem_qcom_v1_mhi_events,
  28. +};
  29. +
  30. static const struct mhi_controller_config modem_qcom_v1_mhiv_config = {
  31. .max_channels = 128,
  32. .timeout_ms = 8000,
  33. @@ -278,6 +288,16 @@ static const struct mhi_controller_confi
  34. .event_cfg = modem_qcom_v1_mhi_events,
  35. };
  36. +static const struct mhi_pci_dev_info mhi_qcom_sdx75_info = {
  37. + .name = "qcom-sdx75m",
  38. + .fw = "qcom/sdx75m/xbl.elf",
  39. + .edl = "qcom/sdx75m/edl.mbn",
  40. + .config = &modem_qcom_v2_mhiv_config,
  41. + .bar_num = MHI_PCI_DEFAULT_BAR_NUM,
  42. + .dma_data_width = 32,
  43. + .sideband_wake = false,
  44. +};
  45. +
  46. static const struct mhi_pci_dev_info mhi_qcom_sdx65_info = {
  47. .name = "qcom-sdx65m",
  48. .fw = "qcom/sdx65m/xbl.elf",
  49. @@ -600,6 +620,8 @@ static const struct pci_device_id mhi_pc
  50. .driver_data = (kernel_ulong_t) &mhi_telit_fn990_info },
  51. { PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x0308),
  52. .driver_data = (kernel_ulong_t) &mhi_qcom_sdx65_info },
  53. + { PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x0309),
  54. + .driver_data = (kernel_ulong_t) &mhi_qcom_sdx75_info },
  55. { PCI_DEVICE(PCI_VENDOR_ID_QUECTEL, 0x1001), /* EM120R-GL (sdx24) */
  56. .driver_data = (kernel_ulong_t) &mhi_quectel_em1xx_info },
  57. { PCI_DEVICE(PCI_VENDOR_ID_QUECTEL, 0x1002), /* EM160R-GL (sdx24) */