Commit ebe0f244 authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Dave Airlie

drm: Make the CRTC gamma_set operation optional

Drivers for hardware without gamma support should not be forced to
implement a no-op gamma set operation.
Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Rob Clark <rob.clark@linaro.org>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent e6ecefaa
...@@ -3332,6 +3332,11 @@ int drm_mode_gamma_set_ioctl(struct drm_device *dev, ...@@ -3332,6 +3332,11 @@ int drm_mode_gamma_set_ioctl(struct drm_device *dev,
} }
crtc = obj_to_crtc(obj); crtc = obj_to_crtc(obj);
if (crtc->funcs->gamma_set == NULL) {
ret = -ENOSYS;
goto out;
}
/* memcpy into gamma store */ /* memcpy into gamma store */
if (crtc_lut->gamma_size != crtc->gamma_size) { if (crtc_lut->gamma_size != crtc->gamma_size) {
ret = -EINVAL; ret = -EINVAL;
......
...@@ -136,6 +136,9 @@ static void drm_fb_helper_restore_lut_atomic(struct drm_crtc *crtc) ...@@ -136,6 +136,9 @@ static void drm_fb_helper_restore_lut_atomic(struct drm_crtc *crtc)
{ {
uint16_t *r_base, *g_base, *b_base; uint16_t *r_base, *g_base, *b_base;
if (crtc->funcs->gamma_set == NULL)
return;
r_base = crtc->gamma_store; r_base = crtc->gamma_store;
g_base = r_base + crtc->gamma_size; g_base = r_base + crtc->gamma_size;
b_base = g_base + crtc->gamma_size; b_base = g_base + crtc->gamma_size;
......
...@@ -36,12 +36,6 @@ struct omap_crtc { ...@@ -36,12 +36,6 @@ struct omap_crtc {
struct drm_framebuffer *old_fb; 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) static void omap_crtc_destroy(struct drm_crtc *crtc)
{ {
struct omap_crtc *omap_crtc = to_omap_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, ...@@ -198,7 +192,6 @@ static int omap_crtc_page_flip_locked(struct drm_crtc *crtc,
} }
static const struct drm_crtc_funcs omap_crtc_funcs = { static const struct drm_crtc_funcs omap_crtc_funcs = {
.gamma_set = omap_crtc_gamma_set,
.set_config = drm_crtc_helper_set_config, .set_config = drm_crtc_helper_set_config,
.destroy = omap_crtc_destroy, .destroy = omap_crtc_destroy,
.page_flip = omap_crtc_page_flip_locked, .page_flip = omap_crtc_page_flip_locked,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment