From 9370bb92b2d16684ee45cf24e879c93c509162da Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Thu, 19 Dec 2024 01:47:39 +0000 Subject: [PATCH] add wifi6 8852be driver --- kernel/drivers/video/rockchip/mpp/hack/mpp_hack_px30.c | 13 ++++++++++++- 1 files changed, 12 insertions(+), 1 deletions(-) diff --git a/kernel/drivers/video/rockchip/mpp/hack/mpp_hack_px30.c b/kernel/drivers/video/rockchip/mpp/hack/mpp_hack_px30.c index 379049e..07912bc 100644 --- a/kernel/drivers/video/rockchip/mpp/hack/mpp_hack_px30.c +++ b/kernel/drivers/video/rockchip/mpp/hack/mpp_hack_px30.c @@ -19,6 +19,7 @@ #include "../mpp_common.h" #include "../mpp_iommu.h" #include "mpp_hack_px30.h" +#include <soc/rockchip/rockchip_iommu.h> #define RK_MMU_DTE_ADDR 0x00 /* Directory table address */ #define RK_MMU_STATUS 0x04 @@ -177,7 +178,17 @@ iommu->grf_val = mpp->grf_info->val & MPP_GRF_VAL_MASK; if (mpp->hw_ops->clk_on) mpp->hw_ops->clk_on(mpp); - iommu->dte_addr = mpp_iommu_get_dte_addr(iommu); + /* + * ensure that iommu is enable, so that read valid dte value + */ + if (rockchip_iommu_is_enabled(mpp->dev)) + iommu->dte_addr = mpp_iommu_get_dte_addr(iommu); + else { + rockchip_iommu_enable(mpp->dev); + iommu->dte_addr = mpp_iommu_get_dte_addr(iommu); + rockchip_iommu_disable(mpp->dev); + } + dev_err(mpp->dev, "%s dte_addr %08x\n", __func__, iommu->dte_addr); if (mpp->hw_ops->clk_off) mpp->hw_ops->clk_off(mpp); INIT_LIST_HEAD(&iommu->link); -- Gitblit v1.6.2