From 95099d4622f8cb224d94e314c7a8e0df60b13f87 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Sat, 09 Dec 2023 08:38:01 +0000
Subject: [PATCH] enable docker ppp
---
kernel/include/soc/rockchip/rockchip_dmc.h | 68 +++++++++++++++++++++++++++------
1 files changed, 55 insertions(+), 13 deletions(-)
diff --git a/kernel/include/soc/rockchip/rockchip_dmc.h b/kernel/include/soc/rockchip/rockchip_dmc.h
index 0fcaaef..882aa26 100644
--- a/kernel/include/soc/rockchip/rockchip_dmc.h
+++ b/kernel/include/soc/rockchip/rockchip_dmc.h
@@ -31,17 +31,49 @@
#define SCREEN_DUAL_LVDS_10BIT 12
#define SCREEN_DP 13
-#ifdef CONFIG_ARM_ROCKCHIP_DMC_DEVFREQ
+#define DMCFREQ_TABLE_END ~1u
+
+struct freq_map_table {
+ unsigned int min;
+ unsigned int max;
+ unsigned long freq;
+};
+
+struct rl_map_table {
+ unsigned int pn; /* panel number */
+ unsigned int rl; /* readlatency */
+};
+
+struct dmcfreq_common_info {
+ struct device *dev;
+ struct devfreq *devfreq;
+ struct freq_map_table *vop_bw_tbl;
+ struct freq_map_table *vop_frame_bw_tbl;
+ struct rl_map_table *vop_pn_rl_tbl;
+ struct delayed_work msch_rl_work;
+ unsigned long vop_req_rate;
+ unsigned int read_latency;
+ unsigned int auto_freq_en;
+ bool is_msch_rl_work_started;
+ int (*set_msch_readlatency)(unsigned int rl);
+};
+
+struct dmcfreq_vop_info {
+ unsigned int line_bw_mbyte;
+ unsigned int frame_bw_mbyte;
+ unsigned int plane_num;
+};
+
+#if IS_REACHABLE(CONFIG_ARM_ROCKCHIP_DMC_DEVFREQ)
void rockchip_dmcfreq_lock(void);
void rockchip_dmcfreq_lock_nested(void);
void rockchip_dmcfreq_unlock(void);
+int rockchip_dmcfreq_write_trylock(void);
+void rockchip_dmcfreq_write_unlock(void);
int rockchip_dmcfreq_wait_complete(void);
-int rockchip_dmcfreq_vop_bandwidth_request(struct devfreq *devfreq,
- unsigned int bw_mbyte);
-void rockchip_dmcfreq_vop_bandwidth_update(struct devfreq *devfreq,
- unsigned int line_bw_mbyte,
- unsigned int frame_bw_mbyte,
- unsigned int plane_num);
+int rockchip_dmcfreq_vop_bandwidth_init(struct dmcfreq_common_info *info);
+int rockchip_dmcfreq_vop_bandwidth_request(struct dmcfreq_vop_info *vop_info);
+void rockchip_dmcfreq_vop_bandwidth_update(struct dmcfreq_vop_info *vop_info);
#else
static inline void rockchip_dmcfreq_lock(void)
{
@@ -55,23 +87,33 @@
{
}
+static inline int rockchip_dmcfreq_write_trylock(void)
+{
+ return 0;
+}
+
+static inline void rockchip_dmcfreq_write_unlock(void)
+{
+}
+
static inline int rockchip_dmcfreq_wait_complete(void)
{
return 0;
}
static inline int
-rockchip_dmcfreq_vop_bandwidth_request(struct devfreq *devfreq,
- unsigned int bw_mbyte)
+rockchip_dmcfreq_vop_bandwidth_request(struct dmcfreq_vop_info *vop_info)
{
return 0;
}
static inline void
-rockchip_dmcfreq_vop_bandwidth_update(struct devfreq *devfreq,
- unsigned int line_bw_mbyte,
- unsigned int frame_bw_mbyte,
- unsigned int plane_num)
+rockchip_dmcfreq_vop_bandwidth_update(struct dmcfreq_vop_info *vop_info)
+{
+}
+
+static inline void
+rockchip_dmcfreq_vop_bandwidth_init(struct dmcfreq_common_info *info)
{
}
#endif
--
Gitblit v1.6.2