From 7d07b3ae8ddad407913c5301877e694430a3263f Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Thu, 23 Nov 2023 08:24:31 +0000
Subject: [PATCH] add build kerneldeb
---
kernel/drivers/soc/rockchip/rockchip_thunderboot_mmc.c | 17 +++++++++++++++++
1 files changed, 17 insertions(+), 0 deletions(-)
diff --git a/kernel/drivers/soc/rockchip/rockchip_thunderboot_mmc.c b/kernel/drivers/soc/rockchip/rockchip_thunderboot_mmc.c
index ba16186..1061881 100644
--- a/kernel/drivers/soc/rockchip/rockchip_thunderboot_mmc.c
+++ b/kernel/drivers/soc/rockchip/rockchip_thunderboot_mmc.c
@@ -2,6 +2,7 @@
/*
* Copyright (C) 2020 Rockchip Electronics Co., Ltd.
*/
+#include <linux/clk.h>
#include <linux/iopoll.h>
#include <linux/kernel.h>
#include <linux/kthread.h>
@@ -27,6 +28,8 @@
struct resource *res;
struct device_node *rds, *rdd, *dma;
struct device *dev = &pdev->dev;
+ struct clk_bulk_data *clk_bulks;
+ int clk_num;
u32 status;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
@@ -39,6 +42,18 @@
rds = of_parse_phandle(dev->of_node, "memory-region-src", 0);
rdd = of_parse_phandle(dev->of_node, "memory-region-dst", 0);
dma = of_parse_phandle(dev->of_node, "memory-region-idmac", 0);
+
+ clk_num = clk_bulk_get_all(&pdev->dev, &clk_bulks);
+ if (clk_num >= 0) {
+ ret = clk_bulk_prepare_enable(clk_num, clk_bulks);
+ if (ret) {
+ dev_err(&pdev->dev, "failed to enable clocks\n");
+ return ret;
+ }
+ } else {
+ dev_err(&pdev->dev, "failed to get clks property\\n");
+ return clk_num;
+ }
if (readl_poll_timeout(regs + SDMMC_STATUS, status,
!(status & (BIT(10) | GENMASK(7, 4))), 100,
@@ -95,6 +110,8 @@
}
out:
+ clk_bulk_disable_unprepare(clk_num, clk_bulks);
+ clk_bulk_put_all(clk_num, clk_bulks);
of_node_put(rds);
of_node_put(rdd);
of_node_put(dma);
--
Gitblit v1.6.2