From b5eb1a5688e11e9e454e4614a3ddbbdc7ba42dca Mon Sep 17 00:00:00 2001 From: Michael Adisumarta Date: Wed, 18 Dec 2019 12:24:49 -0800 Subject: [PATCH] msm:ipa: continue ODL logging on MHIP post modem SSR Post modem SSR, check if previously ODL was connected and if yes connect back ODL from mhip probe. Change-Id: If0a2cc4a6e9c0a9836ea85fa62677f0c8a6f0e44 Signed-off-by: Michael Adisumarta --- drivers/platform/msm/ipa/ipa_v3/ipa_mpm.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_mpm.c b/drivers/platform/msm/ipa/ipa_v3/ipa_mpm.c index 3a97943ebc84..a892cada9a72 100644 --- a/drivers/platform/msm/ipa/ipa_v3/ipa_mpm.c +++ b/drivers/platform/msm/ipa/ipa_v3/ipa_mpm.c @@ -2338,12 +2338,19 @@ static int ipa_mpm_mhi_probe_cb(struct mhi_device *mhi_dev, } atomic_inc(&ipa_mpm_ctx->probe_cnt); - /* Check if ODL pipe is connected to MHIP DPL pipe before probe */ - if (probe_id == IPA_MPM_MHIP_CH_ID_2 && - ipa3_is_odl_connected()) { - IPA_MPM_DBG("setting DPL DMA to ODL\n"); - ret = ipa_mpm_set_dma_mode(IPA_CLIENT_MHI_PRIME_DPL_PROD, - IPA_CLIENT_USB_DPL_CONS, false); + /* Check if ODL/USB DPL pipe is connected before probe */ + if (probe_id == IPA_MPM_MHIP_CH_ID_2) { + if (ipa3_is_odl_connected()) + ret = ipa_mpm_set_dma_mode( + IPA_CLIENT_MHI_PRIME_DPL_PROD, + IPA_CLIENT_ODL_DPL_CONS, false); + else if (atomic_read(&ipa_mpm_ctx->adpl_over_usb_available)) + ret = ipa_mpm_set_dma_mode( + IPA_CLIENT_MHI_PRIME_DPL_PROD, + IPA_CLIENT_USB_DPL_CONS, false); + if (ret) + IPA_MPM_ERR("DPL DMA to ODL/USB failed, ret = %d\n", + ret); } mutex_lock(&ipa_mpm_ctx->md[probe_id].mhi_mutex); ipa_mpm_ctx->md[probe_id].init_complete = true;