summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLoic Poulain <loic.poulain@linaro.org>2021-02-05 09:36:35 +0100
committerManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>2021-02-05 13:29:29 +0100
commit026c5b1ec29cb9904406c7b3090eaf54e345e7f2 (patch)
tree733839f19e904322e2b362b18f8473a3e6f7c05b
parentmhi: pci_generic: Print warning in case of firmware crash (diff)
downloadlinux-026c5b1ec29cb9904406c7b3090eaf54e345e7f2.tar.xz
linux-026c5b1ec29cb9904406c7b3090eaf54e345e7f2.zip
bus: mhi: pci_generic: Increase num of elements in hw event ring
We met some sporadic modem crashes during high throughput testing, this has been root caused to a lack of elements in the event ring. Indeed, the modem is simply crashing when event ring becomes empty. It appears that the total number event ring elements is too low given the performances of the modem (IPA hardware accelerator). This change increases the number of elements in the hardware event ring to 2048, which is aligned with what is defined in downstream version: https://source.codeaurora.org/quic/la/kernel/msm-4.14/tree/arch/arm64/boot/dts/qcom/sm8150-mhi.dtsi?h=msm-4.14#n482 With this change, modem coes not crash anymore. Note: An event ring element is 16-Byte, so the total memory usage of a hardware event ring is now 32KB. Signed-off-by: Loic Poulain <loic.poulain@linaro.org> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> Link: https://lore.kernel.org/r/1612514195-8257-1-git-send-email-loic.poulain@linaro.org Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
-rw-r--r--drivers/bus/mhi/pci_generic.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/bus/mhi/pci_generic.c b/drivers/bus/mhi/pci_generic.c
index 2476041f8d56..20673a4b4a3c 100644
--- a/drivers/bus/mhi/pci_generic.c
+++ b/drivers/bus/mhi/pci_generic.c
@@ -129,7 +129,7 @@ struct mhi_pci_dev_info {
#define MHI_EVENT_CONFIG_HW_DATA(ev_ring, ch_num) \
{ \
- .num_elements = 256, \
+ .num_elements = 2048, \
.irq_moderation_ms = 1, \
.irq = (ev_ring) + 1, \
.priority = 1, \