From 244b2c5ca8b14627e4a17755e5922221e121c771 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Wed, 09 Oct 2024 06:15:07 +0000
Subject: [PATCH] change system file
---
kernel/drivers/gpu/drm/rockchip/rockchip_drm_logo.c | 74 +++++++++++++++++++++++++++++++++++--
1 files changed, 70 insertions(+), 4 deletions(-)
diff --git a/kernel/drivers/gpu/drm/rockchip/rockchip_drm_logo.c b/kernel/drivers/gpu/drm/rockchip/rockchip_drm_logo.c
index 0c9d4ba..af228f4 100644
--- a/kernel/drivers/gpu/drm/rockchip/rockchip_drm_logo.c
+++ b/kernel/drivers/gpu/drm/rockchip/rockchip_drm_logo.c
@@ -376,6 +376,69 @@
return rockchip_drm_logo_fb_alloc(drm_dev, &mode_cmd, private->logo);
}
+static void of_parse_post_csc_info(struct device_node *route, struct rockchip_drm_mode_set *set)
+{
+ int val;
+
+ if (!of_property_read_u32(route, "post-csc,enable", &val))
+ set->csc.csc_enable = val;
+ else
+ set->csc.csc_enable = 0;
+
+ if (!set->csc.csc_enable)
+ return;
+
+ if (!of_property_read_u32(route, "post-csc,hue", &val))
+ set->csc.hue = val;
+ else
+ set->csc.hue = 256;
+
+ if (!of_property_read_u32(route, "post-csc,saturation", &val))
+ set->csc.saturation = val;
+ else
+ set->csc.saturation = 256;
+
+ if (!of_property_read_u32(route, "post-csc,contrast", &val))
+ set->csc.contrast = val;
+ else
+ set->csc.contrast = 256;
+
+ if (!of_property_read_u32(route, "post-csc,brightness", &val))
+ set->csc.brightness = val;
+ else
+ set->csc.brightness = 256;
+
+ if (!of_property_read_u32(route, "post-csc,r-gain", &val))
+ set->csc.r_gain = val;
+ else
+ set->csc.r_gain = 256;
+
+ if (!of_property_read_u32(route, "post-csc,g-gain", &val))
+ set->csc.g_gain = val;
+ else
+ set->csc.g_gain = 256;
+
+ if (!of_property_read_u32(route, "post-csc,b-gain", &val))
+ set->csc.b_gain = val;
+ else
+ set->csc.b_gain = 256;
+
+ if (!of_property_read_u32(route, "post-csc,r-offset", &val))
+ set->csc.r_offset = val;
+ else
+ set->csc.r_offset = 256;
+
+ if (!of_property_read_u32(route, "post-csc,g-offset", &val))
+ set->csc.g_offset = val;
+ else
+ set->csc.g_offset = 256;
+
+ if (!of_property_read_u32(route, "post-csc,b-offset", &val))
+ set->csc.b_offset = val;
+ else
+ set->csc.b_offset = 256;
+}
+
static struct rockchip_drm_mode_set *
of_parse_display_resource(struct drm_device *drm_dev, struct device_node *route)
{
@@ -469,6 +532,8 @@
set->hue = val;
else
set->hue = 50;
+
+ of_parse_post_csc_info(route, set);
set->force_output = of_property_read_bool(route, "force-output");
@@ -746,7 +811,7 @@
if (priv->crtc_funcs[pipe] &&
priv->crtc_funcs[pipe]->loader_protect)
- priv->crtc_funcs[pipe]->loader_protect(crtc, true);
+ priv->crtc_funcs[pipe]->loader_protect(crtc, true, &set->csc);
}
if (!set->fb) {
@@ -798,7 +863,7 @@
error_crtc:
if (priv->crtc_funcs[pipe] && priv->crtc_funcs[pipe]->loader_protect)
- priv->crtc_funcs[pipe]->loader_protect(crtc, false);
+ priv->crtc_funcs[pipe]->loader_protect(crtc, false, NULL);
error_conn:
if (set->sub_dev->loader_protect)
set->sub_dev->loader_protect(conn_state->best_encoder, false);
@@ -994,11 +1059,12 @@
unset);
if (priv->crtc_funcs[pipe] &&
priv->crtc_funcs[pipe]->loader_protect)
- priv->crtc_funcs[pipe]->loader_protect(crtc, true);
+ priv->crtc_funcs[pipe]->loader_protect(crtc, true,
+ &unset->csc);
priv->crtc_funcs[pipe]->crtc_close(crtc);
if (priv->crtc_funcs[pipe] &&
priv->crtc_funcs[pipe]->loader_protect)
- priv->crtc_funcs[pipe]->loader_protect(crtc, false);
+ priv->crtc_funcs[pipe]->loader_protect(crtc, false, NULL);
}
}
--
Gitblit v1.6.2