From 9d77db3c730780c8ef5ccd4b66403ff5675cfe4e Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Mon, 13 May 2024 10:30:14 +0000
Subject: [PATCH] modify sin led gpio
---
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