From: Daniel Vetter <daniel@ffwll.ch>
To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: intel-gfx@lists.freedesktop.org,
"Mathieu Larouche" <mathieu.larouche@matrox.com>,
dri-devel@lists.freedesktop.org,
"VMware Graphics" <linux-graphics-maintainer@vmware.com>,
"Ben Skeggs" <bskeggs@redhat.com>,
"Alex Deucher" <alexander.deucher@amd.com>,
"Thierry Reding" <treding@nvidia.com>,
"Christian König" <christian.koenig@amd.com>
Subject: Re: [PATCH] drm/core: Change declaration for gamma_set.
Date: Mon, 6 Jun 2016 18:00:02 +0200 [thread overview]
Message-ID: <20160606160002.GA10110@phenom.ffwll.local> (raw)
In-Reply-To: <1465204689-24489-1-git-send-email-maarten.lankhorst@linux.intel.com>
On Mon, Jun 06, 2016 at 11:18:09AM +0200, Maarten Lankhorst wrote:
> Change return value to int to propagate errors from gamma_set,
> and remove start parameter. Updates always use the full size,
> and some drivers even ignore the start parameter altogether.
Commit message should explain why we suddenly need to pass up the error
code, too:
"This is needed for atomic drivers, where an atomic commit can fail with
EAGAIN and should be restarted."
I'll add that when merging, but will wait for a bit more acks/r-b first.
-Daniel
>
> Cc: Alex Deucher <alexander.deucher@amd.com>
> Cc: Christian König <christian.koenig@amd.com>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
> Cc: Ben Skeggs <bskeggs@redhat.com>
> Cc: Eric Anholt <eric@anholt.net>
> Cc: VMware Graphics <linux-graphics-maintainer@vmware.com>
> Cc: Mathieu Larouche <mathieu.larouche@matrox.com>
> Cc: Thierry Reding <treding@nvidia.com>
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> ---
> drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 10 ++++++----
> drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 10 ++++++----
> drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 10 ++++++----
> drivers/gpu/drm/ast/ast_mode.c | 10 ++++++----
> drivers/gpu/drm/cirrus/cirrus_mode.c | 8 +++++---
> drivers/gpu/drm/drm_atomic_helper.c | 13 ++++++-------
> drivers/gpu/drm/drm_crtc.c | 2 +-
> drivers/gpu/drm/drm_fb_helper.c | 4 +---
> drivers/gpu/drm/gma500/gma_display.c | 9 +++++----
> drivers/gpu/drm/gma500/gma_display.h | 4 ++--
> drivers/gpu/drm/mgag200/mgag200_mode.c | 9 +++++----
> drivers/gpu/drm/nouveau/dispnv04/crtc.c | 12 +++++++-----
> drivers/gpu/drm/nouveau/nv50_display.c | 9 +++++----
> drivers/gpu/drm/radeon/radeon_display.c | 11 +++++++----
> drivers/gpu/drm/vc4/vc4_crtc.c | 8 +++++---
> drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 8 +++++---
> drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 4 ++--
> include/drm/drm_atomic_helper.h | 6 +++---
> include/drm/drm_crtc.h | 4 ++--
> 19 files changed, 85 insertions(+), 66 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
> index 8227344d2ff6..16de862ea51f 100644
> --- a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
> @@ -2667,19 +2667,21 @@ static void dce_v10_0_cursor_reset(struct drm_crtc *crtc)
> }
> }
>
> -static void dce_v10_0_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green,
> - u16 *blue, uint32_t start, uint32_t size)
> +static int dce_v10_0_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green,
> + u16 *blue, uint32_t size)
> {
> struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc);
> - int end = (start + size > 256) ? 256 : start + size, i;
> + int i;
>
> /* userspace palettes are always correct as is */
> - for (i = start; i < end; i++) {
> + for (i = 0; i < size; i++) {
> amdgpu_crtc->lut_r[i] = red[i] >> 6;
> amdgpu_crtc->lut_g[i] = green[i] >> 6;
> amdgpu_crtc->lut_b[i] = blue[i] >> 6;
> }
> dce_v10_0_crtc_load_lut(crtc);
> +
> + return 0;
> }
>
> static void dce_v10_0_crtc_destroy(struct drm_crtc *crtc)
> diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
> index af26ec0bc59d..6e0ae8e2e65c 100644
> --- a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
> @@ -2678,19 +2678,21 @@ static void dce_v11_0_cursor_reset(struct drm_crtc *crtc)
> }
> }
>
> -static void dce_v11_0_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green,
> - u16 *blue, uint32_t start, uint32_t size)
> +static int dce_v11_0_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green,
> + u16 *blue, uint32_t size)
> {
> struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc);
> - int end = (start + size > 256) ? 256 : start + size, i;
> + int i;
>
> /* userspace palettes are always correct as is */
> - for (i = start; i < end; i++) {
> + for (i = 0; i < size; i++) {
> amdgpu_crtc->lut_r[i] = red[i] >> 6;
> amdgpu_crtc->lut_g[i] = green[i] >> 6;
> amdgpu_crtc->lut_b[i] = blue[i] >> 6;
> }
> dce_v11_0_crtc_load_lut(crtc);
> +
> + return 0;
> }
>
> static void dce_v11_0_crtc_destroy(struct drm_crtc *crtc)
> diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
> index 3fb65e41a6ef..7b5fae4c74f1 100644
> --- a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
> @@ -2574,19 +2574,21 @@ static void dce_v8_0_cursor_reset(struct drm_crtc *crtc)
> }
> }
>
> -static void dce_v8_0_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green,
> - u16 *blue, uint32_t start, uint32_t size)
> +static int dce_v8_0_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green,
> + u16 *blue, uint32_t size)
> {
> struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc);
> - int end = (start + size > 256) ? 256 : start + size, i;
> + int i;
>
> /* userspace palettes are always correct as is */
> - for (i = start; i < end; i++) {
> + for (i = 0; i < size; i++) {
> amdgpu_crtc->lut_r[i] = red[i] >> 6;
> amdgpu_crtc->lut_g[i] = green[i] >> 6;
> amdgpu_crtc->lut_b[i] = blue[i] >> 6;
> }
> dce_v8_0_crtc_load_lut(crtc);
> +
> + return 0;
> }
>
> static void dce_v8_0_crtc_destroy(struct drm_crtc *crtc)
> diff --git a/drivers/gpu/drm/ast/ast_mode.c b/drivers/gpu/drm/ast/ast_mode.c
> index c337922606e3..5957c3e659fe 100644
> --- a/drivers/gpu/drm/ast/ast_mode.c
> +++ b/drivers/gpu/drm/ast/ast_mode.c
> @@ -624,19 +624,21 @@ static void ast_crtc_reset(struct drm_crtc *crtc)
>
> }
>
> -static void ast_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green,
> - u16 *blue, uint32_t start, uint32_t size)
> +static int ast_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green,
> + u16 *blue, uint32_t size)
> {
> struct ast_crtc *ast_crtc = to_ast_crtc(crtc);
> - int end = (start + size > 256) ? 256 : start + size, i;
> + int i;
>
> /* userspace palettes are always correct as is */
> - for (i = start; i < end; i++) {
> + for (i = 0; i < size; i++) {
> ast_crtc->lut_r[i] = red[i] >> 8;
> ast_crtc->lut_g[i] = green[i] >> 8;
> ast_crtc->lut_b[i] = blue[i] >> 8;
> }
> ast_crtc_load_lut(crtc);
> +
> + return 0;
> }
>
>
> diff --git a/drivers/gpu/drm/cirrus/cirrus_mode.c b/drivers/gpu/drm/cirrus/cirrus_mode.c
> index 0b1a411cb89e..17c915d9a03e 100644
> --- a/drivers/gpu/drm/cirrus/cirrus_mode.c
> +++ b/drivers/gpu/drm/cirrus/cirrus_mode.c
> @@ -325,18 +325,20 @@ static void cirrus_crtc_commit(struct drm_crtc *crtc)
> * use this for 8-bit mode so can't perform smooth fades on deeper modes,
> * but it's a requirement that we provide the function
> */
> -static void cirrus_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green,
> - u16 *blue, uint32_t start, uint32_t size)
> +static int cirrus_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green,
> + u16 *blue, uint32_t size)
> {
> struct cirrus_crtc *cirrus_crtc = to_cirrus_crtc(crtc);
> int i;
>
> - for (i = 0; i < CIRRUS_LUT_SIZE; i++) {
> + for (i = 0; i < size; i++) {
> cirrus_crtc->lut_r[i] = red[i];
> cirrus_crtc->lut_g[i] = green[i];
> cirrus_crtc->lut_b[i] = blue[i];
> }
> cirrus_crtc_load_lut(crtc);
> +
> + return 0;
> }
>
> /* Simple cleanup function */
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 939df900dcaa..266c11018a19 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -2933,16 +2933,15 @@ EXPORT_SYMBOL(drm_atomic_helper_connector_destroy_state);
> * @red: red correction table
> * @green: green correction table
> * @blue: green correction table
> - * @start:
> * @size: size of the tables
> *
> * Implements support for legacy gamma correction table for drivers
> * that support color management through the DEGAMMA_LUT/GAMMA_LUT
> * properties.
> */
> -void drm_atomic_helper_legacy_gamma_set(struct drm_crtc *crtc,
> - u16 *red, u16 *green, u16 *blue,
> - uint32_t start, uint32_t size)
> +int drm_atomic_helper_legacy_gamma_set(struct drm_crtc *crtc,
> + u16 *red, u16 *green, u16 *blue,
> + uint32_t size)
> {
> struct drm_device *dev = crtc->dev;
> struct drm_mode_config *config = &dev->mode_config;
> @@ -2954,7 +2953,7 @@ void drm_atomic_helper_legacy_gamma_set(struct drm_crtc *crtc,
>
> state = drm_atomic_state_alloc(crtc->dev);
> if (!state)
> - return;
> + return -ENOMEM;
>
> blob = drm_property_create_blob(dev,
> sizeof(struct drm_color_lut) * size,
> @@ -3005,7 +3004,7 @@ retry:
>
> drm_property_unreference_blob(blob);
>
> - return;
> + return 0;
> fail:
> if (ret == -EDEADLK)
> goto backoff;
> @@ -3013,7 +3012,7 @@ fail:
> drm_atomic_state_free(state);
> drm_property_unreference_blob(blob);
>
> - return;
> + return ret;
> backoff:
> drm_atomic_state_clear(state);
> drm_atomic_legacy_backoff(state);
> diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
> index d2a6d958ca76..4d61ceae789c 100644
> --- a/drivers/gpu/drm/drm_crtc.c
> +++ b/drivers/gpu/drm/drm_crtc.c
> @@ -5215,7 +5215,7 @@ int drm_mode_gamma_set_ioctl(struct drm_device *dev,
> goto out;
> }
>
> - crtc->funcs->gamma_set(crtc, r_base, g_base, b_base, 0, crtc->gamma_size);
> + ret = crtc->funcs->gamma_set(crtc, r_base, g_base, b_base, crtc->gamma_size);
>
> out:
> drm_modeset_unlock_all(dev);
> diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> index 7590df5e2e72..4accf6039058 100644
> --- a/drivers/gpu/drm/drm_fb_helper.c
> +++ b/drivers/gpu/drm/drm_fb_helper.c
> @@ -227,7 +227,7 @@ static void drm_fb_helper_restore_lut_atomic(struct drm_crtc *crtc)
> g_base = r_base + crtc->gamma_size;
> b_base = g_base + crtc->gamma_size;
>
> - crtc->funcs->gamma_set(crtc, r_base, g_base, b_base, 0, crtc->gamma_size);
> + crtc->funcs->gamma_set(crtc, r_base, g_base, b_base, crtc->gamma_size);
> }
>
> /**
> @@ -1076,8 +1076,6 @@ static int setcolreg(struct drm_crtc *crtc, u16 red, u16 green,
> WARN_ON(fb->bits_per_pixel != 8);
>
> fb_helper->funcs->gamma_set(crtc, red, green, blue, regno);
> -
> - return 0;
> }
>
> /**
> diff --git a/drivers/gpu/drm/gma500/gma_display.c b/drivers/gpu/drm/gma500/gma_display.c
> index c95406e6f44d..5b636bf0b467 100644
> --- a/drivers/gpu/drm/gma500/gma_display.c
> +++ b/drivers/gpu/drm/gma500/gma_display.c
> @@ -175,20 +175,21 @@ void gma_crtc_load_lut(struct drm_crtc *crtc)
> }
> }
>
> -void gma_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green, u16 *blue,
> - u32 start, u32 size)
> +int gma_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green, u16 *blue,
> + u32 size)
> {
> struct gma_crtc *gma_crtc = to_gma_crtc(crtc);
> int i;
> - int end = (start + size > 256) ? 256 : start + size;
>
> - for (i = start; i < end; i++) {
> + for (i = 0; i < size; i++) {
> gma_crtc->lut_r[i] = red[i] >> 8;
> gma_crtc->lut_g[i] = green[i] >> 8;
> gma_crtc->lut_b[i] = blue[i] >> 8;
> }
>
> gma_crtc_load_lut(crtc);
> +
> + return 0;
> }
>
> /**
> diff --git a/drivers/gpu/drm/gma500/gma_display.h b/drivers/gpu/drm/gma500/gma_display.h
> index b2491c65f053..e72dd08b701b 100644
> --- a/drivers/gpu/drm/gma500/gma_display.h
> +++ b/drivers/gpu/drm/gma500/gma_display.h
> @@ -72,8 +72,8 @@ extern int gma_crtc_cursor_set(struct drm_crtc *crtc,
> uint32_t width, uint32_t height);
> extern int gma_crtc_cursor_move(struct drm_crtc *crtc, int x, int y);
> extern void gma_crtc_load_lut(struct drm_crtc *crtc);
> -extern void gma_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green,
> - u16 *blue, u32 start, u32 size);
> +extern int gma_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green,
> + u16 *blue, u32 size);
> extern void gma_crtc_dpms(struct drm_crtc *crtc, int mode);
> extern void gma_crtc_prepare(struct drm_crtc *crtc);
> extern void gma_crtc_commit(struct drm_crtc *crtc);
> diff --git a/drivers/gpu/drm/mgag200/mgag200_mode.c b/drivers/gpu/drm/mgag200/mgag200_mode.c
> index 14e64e08909e..f6d5892d03f1 100644
> --- a/drivers/gpu/drm/mgag200/mgag200_mode.c
> +++ b/drivers/gpu/drm/mgag200/mgag200_mode.c
> @@ -1344,19 +1344,20 @@ static void mga_crtc_commit(struct drm_crtc *crtc)
> * use this for 8-bit mode so can't perform smooth fades on deeper modes,
> * but it's a requirement that we provide the function
> */
> -static void mga_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green,
> - u16 *blue, uint32_t start, uint32_t size)
> +static int mga_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green,
> + u16 *blue, uint32_t size)
> {
> struct mga_crtc *mga_crtc = to_mga_crtc(crtc);
> - int end = (start + size > MGAG200_LUT_SIZE) ? MGAG200_LUT_SIZE : start + size;
> int i;
>
> - for (i = start; i < end; i++) {
> + for (i = 0; i < size; i++) {
> mga_crtc->lut_r[i] = red[i] >> 8;
> mga_crtc->lut_g[i] = green[i] >> 8;
> mga_crtc->lut_b[i] = blue[i] >> 8;
> }
> mga_crtc_load_lut(crtc);
> +
> + return 0;
> }
>
> /* Simple cleanup function */
> diff --git a/drivers/gpu/drm/nouveau/dispnv04/crtc.c b/drivers/gpu/drm/nouveau/dispnv04/crtc.c
> index 6f318c54da33..0cb7a18cde26 100644
> --- a/drivers/gpu/drm/nouveau/dispnv04/crtc.c
> +++ b/drivers/gpu/drm/nouveau/dispnv04/crtc.c
> @@ -785,14 +785,14 @@ nv_crtc_disable(struct drm_crtc *crtc)
> nouveau_bo_ref(NULL, &disp->image[nv_crtc->index]);
> }
>
> -static void
> -nv_crtc_gamma_set(struct drm_crtc *crtc, u16 *r, u16 *g, u16 *b, uint32_t start,
> +static int
> +nv_crtc_gamma_set(struct drm_crtc *crtc, u16 *r, u16 *g, u16 *b,
> uint32_t size)
> {
> - int end = (start + size > 256) ? 256 : start + size, i;
> struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc);
> + int i;
>
> - for (i = start; i < end; i++) {
> + for (i = 0; i < size; i++) {
> nv_crtc->lut.r[i] = r[i];
> nv_crtc->lut.g[i] = g[i];
> nv_crtc->lut.b[i] = b[i];
> @@ -805,10 +805,12 @@ nv_crtc_gamma_set(struct drm_crtc *crtc, u16 *r, u16 *g, u16 *b, uint32_t start,
> */
> if (!nv_crtc->base.primary->fb) {
> nv_crtc->lut.depth = 0;
> - return;
> + return 0;
> }
>
> nv_crtc_gamma_load(crtc);
> +
> + return 0;
> }
>
> static int
> diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
> index 3ffc2b0057bf..7a7788212df7 100644
> --- a/drivers/gpu/drm/nouveau/nv50_display.c
> +++ b/drivers/gpu/drm/nouveau/nv50_display.c
> @@ -1346,21 +1346,22 @@ nv50_crtc_cursor_move(struct drm_crtc *crtc, int x, int y)
> return 0;
> }
>
> -static void
> +static int
> nv50_crtc_gamma_set(struct drm_crtc *crtc, u16 *r, u16 *g, u16 *b,
> - uint32_t start, uint32_t size)
> + uint32_t size)
> {
> struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc);
> - u32 end = min_t(u32, start + size, 256);
> u32 i;
>
> - for (i = start; i < end; i++) {
> + for (i = 0; i < size; i++) {
> nv_crtc->lut.r[i] = r[i];
> nv_crtc->lut.g[i] = g[i];
> nv_crtc->lut.b[i] = b[i];
> }
>
> nv50_crtc_lut_load(crtc);
> +
> + return 0;
> }
>
> static void
> diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
> index 6a41b4982647..80f06db1dd34 100644
> --- a/drivers/gpu/drm/radeon/radeon_display.c
> +++ b/drivers/gpu/drm/radeon/radeon_display.c
> @@ -231,19 +231,21 @@ void radeon_crtc_fb_gamma_get(struct drm_crtc *crtc, u16 *red, u16 *green,
> *blue = radeon_crtc->lut_b[regno] << 6;
> }
>
> -static void radeon_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green,
> - u16 *blue, uint32_t start, uint32_t size)
> +static int radeon_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green,
> + u16 *blue, uint32_t size)
> {
> struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc);
> - int end = (start + size > 256) ? 256 : start + size, i;
> + int i;
>
> /* userspace palettes are always correct as is */
> - for (i = start; i < end; i++) {
> + for (i = 0; i < size; i++) {
> radeon_crtc->lut_r[i] = red[i] >> 6;
> radeon_crtc->lut_g[i] = green[i] >> 6;
> radeon_crtc->lut_b[i] = blue[i] >> 6;
> }
> radeon_crtc_load_lut(crtc);
> +
> + return 0;
> }
>
> static void radeon_crtc_destroy(struct drm_crtc *crtc)
> @@ -688,6 +690,7 @@ radeon_crtc_set_config(struct drm_mode_set *set)
> pm_runtime_put_autosuspend(dev->dev);
> return ret;
> }
> +
> static const struct drm_crtc_funcs radeon_crtc_funcs = {
> .cursor_set2 = radeon_crtc_cursor_set2,
> .cursor_move = radeon_crtc_cursor_move,
> diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c
> index 904d0754ad78..4e34f054da5c 100644
> --- a/drivers/gpu/drm/vc4/vc4_crtc.c
> +++ b/drivers/gpu/drm/vc4/vc4_crtc.c
> @@ -175,20 +175,22 @@ vc4_crtc_lut_load(struct drm_crtc *crtc)
> HVS_WRITE(SCALER_GAMDATA, vc4_crtc->lut_b[i]);
> }
>
> -static void
> +static int
> vc4_crtc_gamma_set(struct drm_crtc *crtc, u16 *r, u16 *g, u16 *b,
> - uint32_t start, uint32_t size)
> + uint32_t size)
> {
> struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc);
> u32 i;
>
> - for (i = start; i < start + size; i++) {
> + for (i = 0; i < size; i++) {
> vc4_crtc->lut_r[i] = r[i] >> 8;
> vc4_crtc->lut_g[i] = g[i] >> 8;
> vc4_crtc->lut_b[i] = b[i] >> 8;
> }
>
> vc4_crtc_lut_load(crtc);
> +
> + return 0;
> }
>
> static u32 vc4_get_fifo_full_level(u32 format)
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> index 55231cce73a0..8a69d4da40b5 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
> @@ -1404,9 +1404,9 @@ static int vmw_du_update_layout(struct vmw_private *dev_priv, unsigned num,
> return 0;
> }
>
> -void vmw_du_crtc_gamma_set(struct drm_crtc *crtc,
> - u16 *r, u16 *g, u16 *b,
> - uint32_t start, uint32_t size)
> +int vmw_du_crtc_gamma_set(struct drm_crtc *crtc,
> + u16 *r, u16 *g, u16 *b,
> + uint32_t size)
> {
> struct vmw_private *dev_priv = vmw_priv(crtc->dev);
> int i;
> @@ -1418,6 +1418,8 @@ void vmw_du_crtc_gamma_set(struct drm_crtc *crtc,
> vmw_write(dev_priv, SVGA_PALETTE_BASE + i * 3 + 1, g[i] >> 8);
> vmw_write(dev_priv, SVGA_PALETTE_BASE + i * 3 + 2, b[i] >> 8);
> }
> +
> + return 0;
> }
>
> int vmw_du_connector_dpms(struct drm_connector *connector, int mode)
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h
> index 57203212c501..ff4803c107bc 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.h
> @@ -195,9 +195,9 @@ struct vmw_display_unit {
> void vmw_du_cleanup(struct vmw_display_unit *du);
> void vmw_du_crtc_save(struct drm_crtc *crtc);
> void vmw_du_crtc_restore(struct drm_crtc *crtc);
> -void vmw_du_crtc_gamma_set(struct drm_crtc *crtc,
> +int vmw_du_crtc_gamma_set(struct drm_crtc *crtc,
> u16 *r, u16 *g, u16 *b,
> - uint32_t start, uint32_t size);
> + uint32_t size);
> int vmw_du_crtc_cursor_set2(struct drm_crtc *crtc, struct drm_file *file_priv,
> uint32_t handle, uint32_t width, uint32_t height,
> int32_t hot_x, int32_t hot_y);
> diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h
> index d473dcc91f54..11896c84c4f8 100644
> --- a/include/drm/drm_atomic_helper.h
> +++ b/include/drm/drm_atomic_helper.h
> @@ -147,9 +147,9 @@ void
> __drm_atomic_helper_connector_destroy_state(struct drm_connector_state *state);
> void drm_atomic_helper_connector_destroy_state(struct drm_connector *connector,
> struct drm_connector_state *state);
> -void drm_atomic_helper_legacy_gamma_set(struct drm_crtc *crtc,
> - u16 *red, u16 *green, u16 *blue,
> - uint32_t start, uint32_t size);
> +int drm_atomic_helper_legacy_gamma_set(struct drm_crtc *crtc,
> + u16 *red, u16 *green, u16 *blue,
> + uint32_t size);
>
> /**
> * drm_atomic_crtc_for_each_plane - iterate over planes currently attached to CRTC
> diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
> index d1559cd04e3d..8622bb2f4f25 100644
> --- a/include/drm/drm_crtc.h
> +++ b/include/drm/drm_crtc.h
> @@ -478,8 +478,8 @@ struct drm_crtc_funcs {
> * going on, which should eventually be unified to just one set of
> * hooks.
> */
> - void (*gamma_set)(struct drm_crtc *crtc, u16 *r, u16 *g, u16 *b,
> - uint32_t start, uint32_t size);
> + int (*gamma_set)(struct drm_crtc *crtc, u16 *r, u16 *g, u16 *b,
> + uint32_t size);
>
> /**
> * @destroy:
> --
> 2.5.5
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2016-06-06 16:00 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-06 9:18 [PATCH] drm/core: Change declaration for gamma_set Maarten Lankhorst
2016-06-06 9:28 ` ✗ Ro.CI.BAT: failure for " Patchwork
2016-06-06 16:00 ` Daniel Vetter [this message]
2016-06-06 16:01 ` [PATCH] " Deucher, Alexander
2016-06-06 16:11 ` Emil Velikov
2016-06-06 16:15 ` Maarten Lankhorst
2016-06-06 16:25 ` Emil Velikov
2016-06-06 16:41 ` Maarten Lankhorst
2016-06-06 16:17 ` Emil Velikov
2016-06-06 16:32 ` Maarten Lankhorst
2016-06-07 10:49 ` [PATCH v2] " Maarten Lankhorst
2016-06-07 10:55 ` Patrik Jakobsson
2016-06-07 22:23 ` Sinclair Yeh
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=20160606160002.GA10110@phenom.ffwll.local \
--to=daniel@ffwll.ch \
--cc=alexander.deucher@amd.com \
--cc=bskeggs@redhat.com \
--cc=christian.koenig@amd.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=linux-graphics-maintainer@vmware.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mathieu.larouche@matrox.com \
--cc=treding@nvidia.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: link
Be 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.