From: Sean Paul <seanpaul@chromium.org> To: Mark Yacoub <markyacoub@chromium.org> Cc: dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, harry.wentland@amd.com, "Mark Yacoub" <markyacoub@google.com>, "Leo Li" <sunpeng.li@amd.com>, "Alex Deucher" <alexander.deucher@amd.com>, "Christian König" <christian.koenig@amd.com>, "Pan, Xinhui" <Xinhui.Pan@amd.com>, "David Airlie" <airlied@linux.ie>, "Daniel Vetter" <daniel@ffwll.ch>, linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/2] amd/amdgpu_dm: Verify Gamma and Degamma LUT sizes using DRM Core check Date: Thu, 14 Oct 2021 19:42:29 -0400 [thread overview] Message-ID: <CAOw6vb+AaG2B1zRfLW54TDjinuirXAT+v2AvXeWmVjYNyJJXMQ@mail.gmail.com> (raw) In-Reply-To: <20211013181228.1578201-2-markyacoub@chromium.org> On Wed, Oct 13, 2021 at 2:12 PM Mark Yacoub <markyacoub@chromium.org> wrote: > > From: Mark Yacoub <markyacoub@google.com> > > [Why] > drm_atomic_helper_check_crtc now verifies both legacy and non-legacy LUT > sizes. There is no need to check it within amdgpu_dm_atomic_check. > > [How] > Remove the local call to verify LUT sizes and use DRM Core function > instead. > > Tested on ChromeOS Zork. > > v1: > Remove amdgpu_dm_verify_lut_sizes everywhere. > Reviewed-by: Sean Paul <seanpaul@chromium.org> > Signed-off-by: Mark Yacoub <markyacoub@chromium.org> > --- > .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 8 ++--- > .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 1 - > .../amd/display/amdgpu_dm/amdgpu_dm_color.c | 35 ------------------- > 3 files changed, 4 insertions(+), 40 deletions(-) > > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > index f74663b6b046e..47f8de1cfc3a5 100644 > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > @@ -10244,6 +10244,10 @@ static int amdgpu_dm_atomic_check(struct drm_device *dev, > } > } > #endif > + ret = drm_atomic_helper_check_crtcs(state); > + if (ret) > + return ret; > + > for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i) { > dm_old_crtc_state = to_dm_crtc_state(old_crtc_state); > > @@ -10253,10 +10257,6 @@ static int amdgpu_dm_atomic_check(struct drm_device *dev, > dm_old_crtc_state->dsc_force_changed == false) > continue; > > - ret = amdgpu_dm_verify_lut_sizes(new_crtc_state); > - if (ret) > - goto fail; > - > if (!new_crtc_state->enable) > continue; > > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h > index fcb9c4a629c32..22730e5542092 100644 > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h > @@ -617,7 +617,6 @@ void amdgpu_dm_trigger_timing_sync(struct drm_device *dev); > #define MAX_COLOR_LEGACY_LUT_ENTRIES 256 > > void amdgpu_dm_init_color_mod(void); > -int amdgpu_dm_verify_lut_sizes(const struct drm_crtc_state *crtc_state); > int amdgpu_dm_update_crtc_color_mgmt(struct dm_crtc_state *crtc); > int amdgpu_dm_update_plane_color_mgmt(struct dm_crtc_state *crtc, > struct dc_plane_state *dc_plane_state); > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c > index a022e5bb30a5c..319f8a8a89835 100644 > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c > @@ -284,37 +284,6 @@ static int __set_input_tf(struct dc_transfer_func *func, > return res ? 0 : -ENOMEM; > } > > -/** > - * Verifies that the Degamma and Gamma LUTs attached to the |crtc_state| are of > - * the expected size. > - * Returns 0 on success. > - */ > -int amdgpu_dm_verify_lut_sizes(const struct drm_crtc_state *crtc_state) > -{ > - const struct drm_color_lut *lut = NULL; > - uint32_t size = 0; > - > - lut = __extract_blob_lut(crtc_state->degamma_lut, &size); > - if (lut && size != MAX_COLOR_LUT_ENTRIES) { > - DRM_DEBUG_DRIVER( > - "Invalid Degamma LUT size. Should be %u but got %u.\n", > - MAX_COLOR_LUT_ENTRIES, size); > - return -EINVAL; > - } > - > - lut = __extract_blob_lut(crtc_state->gamma_lut, &size); > - if (lut && size != MAX_COLOR_LUT_ENTRIES && > - size != MAX_COLOR_LEGACY_LUT_ENTRIES) { > - DRM_DEBUG_DRIVER( > - "Invalid Gamma LUT size. Should be %u (or %u for legacy) but got %u.\n", > - MAX_COLOR_LUT_ENTRIES, MAX_COLOR_LEGACY_LUT_ENTRIES, > - size); > - return -EINVAL; > - } > - > - return 0; > -} > - > /** > * amdgpu_dm_update_crtc_color_mgmt: Maps DRM color management to DC stream. > * @crtc: amdgpu_dm crtc state > @@ -348,10 +317,6 @@ int amdgpu_dm_update_crtc_color_mgmt(struct dm_crtc_state *crtc) > bool is_legacy; > int r; > > - r = amdgpu_dm_verify_lut_sizes(&crtc->base); > - if (r) > - return r; > - > degamma_lut = __extract_blob_lut(crtc->base.degamma_lut, °amma_size); > regamma_lut = __extract_blob_lut(crtc->base.gamma_lut, ®amma_size); > > -- > 2.33.0.882.g93a45727a2-goog >
WARNING: multiple messages have this Message-ID (diff)
From: Sean Paul <seanpaul@chromium.org> To: Mark Yacoub <markyacoub@chromium.org> Cc: dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, harry.wentland@amd.com, "Mark Yacoub" <markyacoub@google.com>, "Leo Li" <sunpeng.li@amd.com>, "Alex Deucher" <alexander.deucher@amd.com>, "Christian König" <christian.koenig@amd.com>, "Pan, Xinhui" <Xinhui.Pan@amd.com>, "David Airlie" <airlied@linux.ie>, "Daniel Vetter" <daniel@ffwll.ch>, linux-kernel@vger.kernel.org Subject: Re: [Intel-gfx] [PATCH 2/2] amd/amdgpu_dm: Verify Gamma and Degamma LUT sizes using DRM Core check Date: Thu, 14 Oct 2021 19:42:29 -0400 [thread overview] Message-ID: <CAOw6vb+AaG2B1zRfLW54TDjinuirXAT+v2AvXeWmVjYNyJJXMQ@mail.gmail.com> (raw) In-Reply-To: <20211013181228.1578201-2-markyacoub@chromium.org> On Wed, Oct 13, 2021 at 2:12 PM Mark Yacoub <markyacoub@chromium.org> wrote: > > From: Mark Yacoub <markyacoub@google.com> > > [Why] > drm_atomic_helper_check_crtc now verifies both legacy and non-legacy LUT > sizes. There is no need to check it within amdgpu_dm_atomic_check. > > [How] > Remove the local call to verify LUT sizes and use DRM Core function > instead. > > Tested on ChromeOS Zork. > > v1: > Remove amdgpu_dm_verify_lut_sizes everywhere. > Reviewed-by: Sean Paul <seanpaul@chromium.org> > Signed-off-by: Mark Yacoub <markyacoub@chromium.org> > --- > .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 8 ++--- > .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 1 - > .../amd/display/amdgpu_dm/amdgpu_dm_color.c | 35 ------------------- > 3 files changed, 4 insertions(+), 40 deletions(-) > > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > index f74663b6b046e..47f8de1cfc3a5 100644 > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > @@ -10244,6 +10244,10 @@ static int amdgpu_dm_atomic_check(struct drm_device *dev, > } > } > #endif > + ret = drm_atomic_helper_check_crtcs(state); > + if (ret) > + return ret; > + > for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i) { > dm_old_crtc_state = to_dm_crtc_state(old_crtc_state); > > @@ -10253,10 +10257,6 @@ static int amdgpu_dm_atomic_check(struct drm_device *dev, > dm_old_crtc_state->dsc_force_changed == false) > continue; > > - ret = amdgpu_dm_verify_lut_sizes(new_crtc_state); > - if (ret) > - goto fail; > - > if (!new_crtc_state->enable) > continue; > > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h > index fcb9c4a629c32..22730e5542092 100644 > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h > @@ -617,7 +617,6 @@ void amdgpu_dm_trigger_timing_sync(struct drm_device *dev); > #define MAX_COLOR_LEGACY_LUT_ENTRIES 256 > > void amdgpu_dm_init_color_mod(void); > -int amdgpu_dm_verify_lut_sizes(const struct drm_crtc_state *crtc_state); > int amdgpu_dm_update_crtc_color_mgmt(struct dm_crtc_state *crtc); > int amdgpu_dm_update_plane_color_mgmt(struct dm_crtc_state *crtc, > struct dc_plane_state *dc_plane_state); > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c > index a022e5bb30a5c..319f8a8a89835 100644 > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c > @@ -284,37 +284,6 @@ static int __set_input_tf(struct dc_transfer_func *func, > return res ? 0 : -ENOMEM; > } > > -/** > - * Verifies that the Degamma and Gamma LUTs attached to the |crtc_state| are of > - * the expected size. > - * Returns 0 on success. > - */ > -int amdgpu_dm_verify_lut_sizes(const struct drm_crtc_state *crtc_state) > -{ > - const struct drm_color_lut *lut = NULL; > - uint32_t size = 0; > - > - lut = __extract_blob_lut(crtc_state->degamma_lut, &size); > - if (lut && size != MAX_COLOR_LUT_ENTRIES) { > - DRM_DEBUG_DRIVER( > - "Invalid Degamma LUT size. Should be %u but got %u.\n", > - MAX_COLOR_LUT_ENTRIES, size); > - return -EINVAL; > - } > - > - lut = __extract_blob_lut(crtc_state->gamma_lut, &size); > - if (lut && size != MAX_COLOR_LUT_ENTRIES && > - size != MAX_COLOR_LEGACY_LUT_ENTRIES) { > - DRM_DEBUG_DRIVER( > - "Invalid Gamma LUT size. Should be %u (or %u for legacy) but got %u.\n", > - MAX_COLOR_LUT_ENTRIES, MAX_COLOR_LEGACY_LUT_ENTRIES, > - size); > - return -EINVAL; > - } > - > - return 0; > -} > - > /** > * amdgpu_dm_update_crtc_color_mgmt: Maps DRM color management to DC stream. > * @crtc: amdgpu_dm crtc state > @@ -348,10 +317,6 @@ int amdgpu_dm_update_crtc_color_mgmt(struct dm_crtc_state *crtc) > bool is_legacy; > int r; > > - r = amdgpu_dm_verify_lut_sizes(&crtc->base); > - if (r) > - return r; > - > degamma_lut = __extract_blob_lut(crtc->base.degamma_lut, °amma_size); > regamma_lut = __extract_blob_lut(crtc->base.gamma_lut, ®amma_size); > > -- > 2.33.0.882.g93a45727a2-goog >
next prev parent reply other threads:[~2021-10-14 23:43 UTC|newest] Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-09-29 19:39 [PATCH 1/2] drm: Add Gamma and Degamma LUT sizes props to drm_crtc to validate Mark Yacoub 2021-09-29 19:39 ` Mark Yacoub 2021-09-29 19:39 ` [PATCH 2/2] amd/amdgpu_dm: Verify Gamma and Degamma LUT sizes using DRM Core check Mark Yacoub 2021-10-01 19:56 ` Sean Paul 2021-10-04 14:12 ` Harry Wentland 2021-10-01 20:34 ` [PATCH 1/2] drm: Add Gamma and Degamma LUT sizes props to drm_crtc to validate Sean Paul 2021-10-01 20:34 ` Sean Paul 2021-10-02 14:28 ` Sean Paul 2021-10-02 14:28 ` Sean Paul 2021-10-13 18:18 ` Mark Yacoub 2021-10-13 18:18 ` Mark Yacoub 2021-10-13 18:12 ` Mark Yacoub 2021-10-13 18:12 ` Mark Yacoub 2021-10-13 18:12 ` [Intel-gfx] " Mark Yacoub 2021-10-13 18:12 ` Mark Yacoub 2021-10-13 18:12 ` [PATCH 2/2] amd/amdgpu_dm: Verify Gamma and Degamma LUT sizes using DRM Core check Mark Yacoub 2021-10-13 18:12 ` [Intel-gfx] " Mark Yacoub 2021-10-14 23:42 ` Sean Paul [this message] 2021-10-14 23:42 ` Sean Paul 2021-10-26 1:26 ` [Intel-gfx] [PATCH 1/2] drm: Add Gamma and Degamma LUT sizes props to drm_crtc to validate Sean Paul 2021-10-26 1:26 ` Sean Paul 2021-10-26 1:26 ` Sean Paul 2021-10-26 19:25 ` Mark Yacoub 2021-10-26 19:25 ` Mark Yacoub 2021-10-26 19:25 ` Mark Yacoub 2021-10-26 12:02 ` Paul Menzel 2021-10-26 12:02 ` [Intel-gfx] " Paul Menzel 2021-10-26 12:02 ` Paul Menzel 2021-10-26 12:02 ` Paul Menzel 2021-10-26 19:24 ` Mark Yacoub 2021-10-26 19:24 ` Mark Yacoub 2021-10-26 19:24 ` [Intel-gfx] " Mark Yacoub 2021-10-26 19:24 ` Mark Yacoub 2021-10-26 19:26 ` [Intel-gfx] " Mark Yacoub 2021-10-26 19:26 ` Mark Yacoub 2021-10-26 19:26 ` Mark Yacoub 2021-10-26 19:26 ` Mark Yacoub
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=CAOw6vb+AaG2B1zRfLW54TDjinuirXAT+v2AvXeWmVjYNyJJXMQ@mail.gmail.com \ --to=seanpaul@chromium.org \ --cc=Xinhui.Pan@amd.com \ --cc=airlied@linux.ie \ --cc=alexander.deucher@amd.com \ --cc=amd-gfx@lists.freedesktop.org \ --cc=christian.koenig@amd.com \ --cc=daniel@ffwll.ch \ --cc=dri-devel@lists.freedesktop.org \ --cc=harry.wentland@amd.com \ --cc=intel-gfx@lists.freedesktop.org \ --cc=linux-kernel@vger.kernel.org \ --cc=markyacoub@chromium.org \ --cc=markyacoub@google.com \ --cc=sunpeng.li@amd.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.