On Thu, May 17, 2012 at 5:27 AM, Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> wrote: > Drivers for hardware without gamma support should not be forced to > implement a no-op gamma set operation. > > Signed-off-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > Cc: Rob Clark <rob.clark@xxxxxxxxxx> Reviewed-by: Rob Clark <rob@xxxxxx> > --- > drivers/gpu/drm/drm_crtc.c | 5 +++++ > drivers/gpu/drm/drm_fb_helper.c | 3 +++ > drivers/staging/omapdrm/omap_crtc.c | 7 ------- > 3 files changed, 8 insertions(+), 7 deletions(-) > > diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c > index bfc9b86..aa80d4a 100644 > --- a/drivers/gpu/drm/drm_crtc.c > +++ b/drivers/gpu/drm/drm_crtc.c > @@ -3173,6 +3173,11 @@ int drm_mode_gamma_set_ioctl(struct drm_device *dev, > } > crtc = obj_to_crtc(obj); > > + if (crtc->funcs->gamma_set == NULL) { > + ret = -ENOSYS; > + goto out; > + } > + > /* memcpy into gamma store */ > if (crtc_lut->gamma_size != crtc->gamma_size) { > ret = -EINVAL; > diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c > index bd92616..f0b81d7 100644 > --- a/drivers/gpu/drm/drm_fb_helper.c > +++ b/drivers/gpu/drm/drm_fb_helper.c > @@ -136,6 +136,9 @@ static void drm_fb_helper_restore_lut_atomic(struct drm_crtc *crtc) > { > uint16_t *r_base, *g_base, *b_base; > > + if (crtc->funcs->gamma_set == NULL) > + return; > + > r_base = crtc->gamma_store; > g_base = r_base + crtc->gamma_size; > b_base = g_base + crtc->gamma_size; > diff --git a/drivers/staging/omapdrm/omap_crtc.c b/drivers/staging/omapdrm/omap_crtc.c > index 490a7f1..8b864af 100644 > --- a/drivers/staging/omapdrm/omap_crtc.c > +++ b/drivers/staging/omapdrm/omap_crtc.c > @@ -36,12 +36,6 @@ struct omap_crtc { > struct drm_framebuffer *old_fb; > }; > > -static void omap_crtc_gamma_set(struct drm_crtc *crtc, > - u16 *red, u16 *green, u16 *blue, uint32_t start, uint32_t size) > -{ > - /* not supported.. at least not yet */ > -} > - > static void omap_crtc_destroy(struct drm_crtc *crtc) > { > struct omap_crtc *omap_crtc = to_omap_crtc(crtc); > @@ -198,7 +192,6 @@ static int omap_crtc_page_flip_locked(struct drm_crtc *crtc, > } > > static const struct drm_crtc_funcs omap_crtc_funcs = { > - .gamma_set = omap_crtc_gamma_set, > .set_config = drm_crtc_helper_set_config, > .destroy = omap_crtc_destroy, > .page_flip = omap_crtc_page_flip_locked, > -- > 1.7.3.4 > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel