FAILED: patch "[PATCH] bus: mhi: pci_generic: Fix inbound IPCR channel" failed to apply to 5.10-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 5.10-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From b8a97f2a65388394f433bf0730293a94f7d49046 Mon Sep 17 00:00:00 2001
From: Loic Poulain <[email protected]>
Date: Fri, 16 Jul 2021 13:21:06 +0530
Subject: [PATCH] bus: mhi: pci_generic: Fix inbound IPCR channel
The qrtr-mhi client driver assumes that inbound buffers are automatically allocated and queued by the MHI core, but this doesn't happen for mhi pci devices since IPCR inbound channel is not flagged with auto_queue, causing unusable IPCR (qrtr) feature. Fix that.
drivers/bus/mhi/pci_generic.c +17 -1
@@ -75,6 +75,22 @@ struct mhi_pci_dev_info { .doorbell_mode_switch = false, \ } +#define MHI_CHANNEL_CONFIG_DL_AUTOQUEUE (ch_num, ch_name, el_count, ev_ring) \ + { \ + .num = ch_num, \ + .name = ch_name, \ + .num_elements = el_count, \ + .event_ring = ev_ring, \ + .dir = DMA_FROM_DEVICE, \ + .ee_mask = BIT(MHI_EE_AMSS), \ + .pollcfg = 0, \ + .doorbell = MHI_DB_BRST_DISABLE, \ + .lpm_notify = false, \ + .offload_channel = false, \ + .doorbell_mode_switch = false, \ + .auto_queue = true, \ + } +#define MHI_EVENT_CONFIG_CTRL (ev_ring, el_count) \ { \ .num_elements = el_count, \
@@ -213,7 +229,7 @@ static const struct mhi_channel_config modem_qcom_v1_mhi_channels[] = {MHI_CHANNEL_CONFIG_UL (14 ,"QMI" ,4 ,0 ),MHI_CHANNEL_CONFIG_DL (15 ,"QMI" ,4 ,0 ),MHI_CHANNEL_CONFIG_UL (20 ,"IPCR" ,8 ,0 ), -MHI_CHANNEL_CONFIG_DL (21 ,"IPCR" ,8 ,0 ), +MHI_CHANNEL_CONFIG_DL_AUTOQUEUE (21 ,"IPCR" ,8 ,0 ),MHI_CHANNEL_CONFIG_UL_FP (34 ,"FIREHOSE" ,32 ,0 ),MHI_CHANNEL_CONFIG_DL_FP (35 ,"FIREHOSE" ,32 ,0 ), MHI_CHANNEL_CONFIG_HW_UL(100, "IP_HW0", 128, 2),