* [PATCH] drm/amd/display: don't enable DRM CRTC degamma property for DCE
@ 2022-11-03 18:45 Melissa Wen
2022-11-13 17:48 ` Rodrigo Siqueira
0 siblings, 1 reply; 2+ messages in thread
From: Melissa Wen @ 2022-11-03 18:45 UTC (permalink / raw)
To: harry.wentland, sunpeng.li, Rodrigo.Siqueira, alexander.deucher,
christian.koenig, Xinhui.Pan, airlied, daniel
Cc: Nicholas.Choi, Nicholas.Kazlauskas, kernel-dev, Melissa Wen,
amd-gfx, dri-devel, linux-kernel
DM maps DRM CRTC degamma to DPP (pre-blending) degamma block, but DCE doesn't
support programmable degamma curve anywhere. Currently, a custom degamma is
accepted by DM but just ignored by DCE driver and degamma correction isn't
actually applied. There is no way to map custom degamma in DCE, therefore, DRM
CRTC degamma property shouldn't be enabled for DCE drivers.
Signed-off-by: Melissa Wen <mwen@igalia.com>
---
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
index 9ac2805c5d63..b3eadfc61555 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
@@ -415,7 +415,7 @@ int amdgpu_dm_crtc_init(struct amdgpu_display_manager *dm,
{
struct amdgpu_crtc *acrtc = NULL;
struct drm_plane *cursor_plane;
-
+ bool is_dcn;
int res = -ENOMEM;
cursor_plane = kzalloc(sizeof(*cursor_plane), GFP_KERNEL);
@@ -453,8 +453,14 @@ int amdgpu_dm_crtc_init(struct amdgpu_display_manager *dm,
acrtc->otg_inst = -1;
dm->adev->mode_info.crtcs[crtc_index] = acrtc;
- drm_crtc_enable_color_mgmt(&acrtc->base, MAX_COLOR_LUT_ENTRIES,
+
+ /* Don't enable DRM CRTC degamma property for DCE since it doesn't
+ * support programmable degamma anywhere.
+ */
+ is_dcn = dm->adev->dm.dc->caps.color.dpp.dcn_arch;
+ drm_crtc_enable_color_mgmt(&acrtc->base, is_dcn ? MAX_COLOR_LUT_ENTRIES : 0,
true, MAX_COLOR_LUT_ENTRIES);
+
drm_mode_crtc_set_gamma_size(&acrtc->base, MAX_COLOR_LEGACY_LUT_ENTRIES);
return 0;
--
2.35.1
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] drm/amd/display: don't enable DRM CRTC degamma property for DCE
2022-11-03 18:45 [PATCH] drm/amd/display: don't enable DRM CRTC degamma property for DCE Melissa Wen
@ 2022-11-13 17:48 ` Rodrigo Siqueira
0 siblings, 0 replies; 2+ messages in thread
From: Rodrigo Siqueira @ 2022-11-13 17:48 UTC (permalink / raw)
To: Melissa Wen, harry.wentland, sunpeng.li, alexander.deucher,
christian.koenig, Xinhui.Pan, airlied, daniel
Cc: Nicholas.Choi, Nicholas.Kazlauskas, kernel-dev, amd-gfx,
dri-devel, linux-kernel
On 11/3/22 14:45, Melissa Wen wrote:
> DM maps DRM CRTC degamma to DPP (pre-blending) degamma block, but DCE doesn't
> support programmable degamma curve anywhere. Currently, a custom degamma is
> accepted by DM but just ignored by DCE driver and degamma correction isn't
> actually applied. There is no way to map custom degamma in DCE, therefore, DRM
> CRTC degamma property shouldn't be enabled for DCE drivers.
>
> Signed-off-by: Melissa Wen <mwen@igalia.com>
> ---
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
> index 9ac2805c5d63..b3eadfc61555 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
> @@ -415,7 +415,7 @@ int amdgpu_dm_crtc_init(struct amdgpu_display_manager *dm,
> {
> struct amdgpu_crtc *acrtc = NULL;
> struct drm_plane *cursor_plane;
> -
> + bool is_dcn;
> int res = -ENOMEM;
>
> cursor_plane = kzalloc(sizeof(*cursor_plane), GFP_KERNEL);
> @@ -453,8 +453,14 @@ int amdgpu_dm_crtc_init(struct amdgpu_display_manager *dm,
> acrtc->otg_inst = -1;
>
> dm->adev->mode_info.crtcs[crtc_index] = acrtc;
> - drm_crtc_enable_color_mgmt(&acrtc->base, MAX_COLOR_LUT_ENTRIES,
> +
> + /* Don't enable DRM CRTC degamma property for DCE since it doesn't
> + * support programmable degamma anywhere.
> + */
> + is_dcn = dm->adev->dm.dc->caps.color.dpp.dcn_arch;
> + drm_crtc_enable_color_mgmt(&acrtc->base, is_dcn ? MAX_COLOR_LUT_ENTRIES : 0,
> true, MAX_COLOR_LUT_ENTRIES);
> +
> drm_mode_crtc_set_gamma_size(&acrtc->base, MAX_COLOR_LEGACY_LUT_ENTRIES);
>
> return 0;
Hi,
I tested it in a DCE device and the patch lgtm.
Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
and merged it into amd-staging-drm-next.
Thanks
Siqueira
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2022-11-13 17:47 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-03 18:45 [PATCH] drm/amd/display: don't enable DRM CRTC degamma property for DCE Melissa Wen
2022-11-13 17:48 ` Rodrigo Siqueira
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®