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/mpp_iep2.c | 76 ++++---------------------------------- 1 files changed, 8 insertions(+), 68 deletions(-) diff --git a/kernel/drivers/video/rockchip/mpp/mpp_iep2.c b/kernel/drivers/video/rockchip/mpp/mpp_iep2.c index e8e2183..8d19269 100644 --- a/kernel/drivers/video/rockchip/mpp/mpp_iep2.c +++ b/kernel/drivers/video/rockchip/mpp/mpp_iep2.c @@ -20,8 +20,6 @@ #include <linux/regmap.h> #include <linux/pm_runtime.h> #include <linux/proc_fs.h> -#include <linux/mfd/syscon.h> -#include <linux/rockchip/cpu.h> #include <soc/rockchip/pm_domains.h> #include "rockchip_iep2_regs.h" @@ -268,8 +266,8 @@ mem_region = mpp_task_attach_fd(&task->mpp_task, usr_fd); if (IS_ERR(mem_region)) { - mpp_debug(DEBUG_IOMMU, "reg[%3d]: %08x failed\n", - iep2_addr_rnum[i], paddr[i]); + mpp_err("reg[%03d]: %08x failed\n", + iep2_addr_rnum[i], paddr[i]); return PTR_ERR(mem_region); } @@ -979,7 +977,7 @@ return -ENOMEM; mpp = &iep->mpp; - platform_set_drvdata(pdev, iep); + platform_set_drvdata(pdev, mpp); if (pdev->dev.of_node) { match = of_match_node(mpp_iep2_match, pdev->dev.of_node); @@ -1015,82 +1013,24 @@ static int iep2_remove(struct platform_device *pdev) { struct device *dev = &pdev->dev; - struct iep2_dev *iep = platform_get_drvdata(pdev); + struct mpp_dev *mpp = dev_get_drvdata(dev); + struct iep2_dev *iep = to_iep2_dev(mpp); dma_free_coherent(dev, iep->roi.size, iep->roi.vaddr, iep->roi.iova); dev_info(dev, "remove device\n"); - mpp_dev_remove(&iep->mpp); - iep2_procfs_remove(&iep->mpp); + mpp_dev_remove(mpp); + iep2_procfs_remove(mpp); return 0; } - -static void iep2_shutdown(struct platform_device *pdev) -{ - int ret; - int val; - struct device *dev = &pdev->dev; - struct iep2_dev *iep = platform_get_drvdata(pdev); - struct mpp_dev *mpp = &iep->mpp; - - dev_info(dev, "shutdown device\n"); - - atomic_inc(&mpp->srv->shutdown_request); - ret = readx_poll_timeout(atomic_read, - &mpp->task_count, - val, val == 0, 20000, 200000); - if (ret == -ETIMEDOUT) - dev_err(dev, "wait total running time out\n"); -} - -static int iep2_runtime_suspend(struct device *dev) -{ - struct mpp_dev *mpp = dev_get_drvdata(dev); - struct mpp_grf_info *info = mpp->grf_info; - struct mpp_taskqueue *queue = mpp->queue; - - if (cpu_is_rk3528() && info && info->mem_offset) { - mutex_lock(&queue->ref_lock); - if (!atomic_dec_if_positive(&queue->runtime_cnt)) { - regmap_write(info->grf, info->mem_offset, - info->val_mem_off); - } - mutex_unlock(&queue->ref_lock); - } - - return 0; -} - -static int iep2_runtime_resume(struct device *dev) -{ - struct mpp_dev *mpp = dev_get_drvdata(dev); - struct mpp_grf_info *info = mpp->grf_info; - struct mpp_taskqueue *queue = mpp->queue; - - if (cpu_is_rk3528() && info && info->mem_offset) { - mutex_lock(&queue->ref_lock); - regmap_write(info->grf, info->mem_offset, - info->val_mem_on); - atomic_inc(&queue->runtime_cnt); - mutex_unlock(&queue->ref_lock); - } - - return 0; -} - -static const struct dev_pm_ops iep2_pm_ops = { - .runtime_suspend = iep2_runtime_suspend, - .runtime_resume = iep2_runtime_resume, -}; struct platform_driver rockchip_iep2_driver = { .probe = iep2_probe, .remove = iep2_remove, - .shutdown = iep2_shutdown, + .shutdown = mpp_dev_shutdown, .driver = { .name = IEP2_DRIVER_NAME, - .pm = &iep2_pm_ops, .of_match_table = of_match_ptr(mpp_iep2_match), }, }; -- Gitblit v1.6.2