diff --git a/drivers/slimbus/slim-msm-ngd.c b/drivers/slimbus/slim-msm-ngd.c index 26dfd3f7ba4b..34be2301be20 100644 --- a/drivers/slimbus/slim-msm-ngd.c +++ b/drivers/slimbus/slim-msm-ngd.c @@ -214,6 +214,8 @@ static int dsp_domr_notify_cb(struct notifier_block *n, unsigned long code, dsp); struct pd_qmi_client_data *reg; + /* Resetting the log level */ + SLIM_RST_LOGLVL(dev); SLIM_INFO(dev, "SLIM DSP SSR/PDR notify cb:0x%lx, type:%d\n", code, dsp->dom_t); switch (code) { diff --git a/drivers/slimbus/slim-msm.c b/drivers/slimbus/slim-msm.c index 24a3ccf8045c..8f4851ee923c 100644 --- a/drivers/slimbus/slim-msm.c +++ b/drivers/slimbus/slim-msm.c @@ -182,8 +182,12 @@ static int msm_slim_iommu_attach(struct msm_slim_ctrl *ctrl_dev) if (!ctrl_dev->iommu_desc.cb_dev) return 0; - if (!IS_ERR_OR_NULL(ctrl_dev->iommu_desc.iommu_map)) - return 0; + if (!IS_ERR_OR_NULL(ctrl_dev->iommu_desc.iommu_map)) { + arm_iommu_detach_device(ctrl_dev->iommu_desc.cb_dev); + arm_iommu_release_mapping(ctrl_dev->iommu_desc.iommu_map); + ctrl_dev->iommu_desc.iommu_map = NULL; + SLIM_INFO(ctrl_dev, "NGD IOMMU Dettach complete\n"); + } dev = ctrl_dev->iommu_desc.cb_dev; iommu_map = arm_iommu_create_mapping(&platform_bus_type, @@ -1300,12 +1304,6 @@ void msm_slim_sps_exit(struct msm_slim_ctrl *dev, bool dereg) msm_slim_disconn_pipe_port(dev, i); } - if (!IS_ERR_OR_NULL(dev->iommu_desc.iommu_map)) { - arm_iommu_detach_device(dev->iommu_desc.cb_dev); - arm_iommu_release_mapping(dev->iommu_desc.iommu_map); - dev->iommu_desc.iommu_map = NULL; - } - if (dereg) { for (i = 0; i < dev->port_nums; i++) { if (dev->pipes[i].connected)