aboutsummaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
authorKoen Vandeputte <koen.vandeputte@ncentric.com>2022-08-05 16:56:11 +0200
committerKoen Vandeputte <koen.vandeputte@ncentric.com>2022-08-08 15:37:34 +0200
commit4e4a457d3755a51af427d46200f2487f01f53c11 (patch)
tree562cea30e92963af10d33bff5bfaa2c20e4e8b68 /target
parenta5da8e6ecdfe43efe6cb6e28f28f1aab543ca2d6 (diff)
downloadupstream-4e4a457d3755a51af427d46200f2487f01f53c11.tar.gz
upstream-4e4a457d3755a51af427d46200f2487f01f53c11.tar.bz2
upstream-4e4a457d3755a51af427d46200f2487f01f53c11.zip
kernel: backport support for Sierra Wireless EM919x modems
Adds support for Sierra Wireless EM919x modem (X55 5G) Backported from kernel 5.16 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
Diffstat (limited to 'target')
-rw-r--r--target/linux/generic/backport-5.15/780-v5.16-bus-mhi-pci_generic-Introduce-Sierra-EM919X-support.patch61
1 files changed, 61 insertions, 0 deletions
diff --git a/target/linux/generic/backport-5.15/780-v5.16-bus-mhi-pci_generic-Introduce-Sierra-EM919X-support.patch b/target/linux/generic/backport-5.15/780-v5.16-bus-mhi-pci_generic-Introduce-Sierra-EM919X-support.patch
new file mode 100644
index 0000000000..47a123494e
--- /dev/null
+++ b/target/linux/generic/backport-5.15/780-v5.16-bus-mhi-pci_generic-Introduce-Sierra-EM919X-support.patch
@@ -0,0 +1,61 @@
+Index: linux-5.15.58/drivers/bus/mhi/pci_generic.c
+===================================================================
+--- linux-5.15.58.orig/drivers/bus/mhi/pci_generic.c
++++ linux-5.15.58/drivers/bus/mhi/pci_generic.c
+@@ -406,6 +406,46 @@ static const struct mhi_pci_dev_info mhi
+ .mru_default = 32768,
+ };
+
++static const struct mhi_channel_config mhi_sierra_em919x_channels[] = {
++ MHI_CHANNEL_CONFIG_UL_SBL(2, "SAHARA", 32, 0),
++ MHI_CHANNEL_CONFIG_DL_SBL(3, "SAHARA", 256, 0),
++ MHI_CHANNEL_CONFIG_UL(4, "DIAG", 32, 0),
++ MHI_CHANNEL_CONFIG_DL(5, "DIAG", 32, 0),
++ MHI_CHANNEL_CONFIG_UL(12, "MBIM", 128, 0),
++ MHI_CHANNEL_CONFIG_DL(13, "MBIM", 128, 0),
++ MHI_CHANNEL_CONFIG_UL(14, "QMI", 32, 0),
++ MHI_CHANNEL_CONFIG_DL(15, "QMI", 32, 0),
++ MHI_CHANNEL_CONFIG_UL(32, "DUN", 32, 0),
++ MHI_CHANNEL_CONFIG_DL(33, "DUN", 32, 0),
++ MHI_CHANNEL_CONFIG_HW_UL(100, "IP_HW0", 512, 1),
++ MHI_CHANNEL_CONFIG_HW_DL(101, "IP_HW0", 512, 2),
++};
++
++static struct mhi_event_config modem_sierra_em919x_mhi_events[] = {
++ /* first ring is control+data and DIAG ring */
++ MHI_EVENT_CONFIG_CTRL(0, 2048),
++ /* Hardware channels request dedicated hardware event rings */
++ MHI_EVENT_CONFIG_HW_DATA(1, 2048, 100),
++ MHI_EVENT_CONFIG_HW_DATA(2, 2048, 101)
++};
++
++static const struct mhi_controller_config modem_sierra_em919x_config = {
++ .max_channels = 128,
++ .timeout_ms = 24000,
++ .num_channels = ARRAY_SIZE(mhi_sierra_em919x_channels),
++ .ch_cfg = mhi_sierra_em919x_channels,
++ .num_events = ARRAY_SIZE(modem_sierra_em919x_mhi_events),
++ .event_cfg = modem_sierra_em919x_mhi_events,
++};
++
++static const struct mhi_pci_dev_info mhi_sierra_em919x_info = {
++ .name = "sierra-em919x",
++ .config = &modem_sierra_em919x_config,
++ .bar_num = MHI_PCI_DEFAULT_BAR_NUM,
++ .dma_data_width = 32,
++ .sideband_wake = false,
++};
++
+ static const struct mhi_channel_config mhi_telit_fn980_hw_v1_channels[] = {
+ MHI_CHANNEL_CONFIG_UL(14, "QMI", 32, 0),
+ MHI_CHANNEL_CONFIG_DL(15, "QMI", 32, 0),
+@@ -480,6 +520,9 @@ static const struct mhi_pci_dev_info mhi
+ };
+
+ static const struct pci_device_id mhi_pci_id_table[] = {
++ /* EM919x (sdx55), use the same vid:pid as qcom-sdx55m */
++ { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0306, 0x18d7, 0x0200),
++ .driver_data = (kernel_ulong_t) &mhi_sierra_em919x_info },
+ /* Telit FN980 hardware revision v1 */
+ { PCI_DEVICE_SUB(PCI_VENDOR_ID_QCOM, 0x0306, 0x1C5D, 0x2000),
+ .driver_data = (kernel_ulong_t) &mhi_telit_fn980_hw_v1_info },