diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 93ff6c03733e..3c14240cc002 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -3095,7 +3095,6 @@ static int intel_crtc_cursor_set(struct drm_crtc *crtc, | |||
3095 | struct drm_gem_object *bo; | 3095 | struct drm_gem_object *bo; |
3096 | struct drm_i915_gem_object *obj_priv; | 3096 | struct drm_i915_gem_object *obj_priv; |
3097 | int pipe = intel_crtc->pipe; | 3097 | int pipe = intel_crtc->pipe; |
3098 | int plane = intel_crtc->plane; | ||
3099 | uint32_t control = (pipe == 0) ? CURACNTR : CURBCNTR; | 3098 | uint32_t control = (pipe == 0) ? CURACNTR : CURBCNTR; |
3100 | uint32_t base = (pipe == 0) ? CURABASE : CURBBASE; | 3099 | uint32_t base = (pipe == 0) ? CURABASE : CURBBASE; |
3101 | uint32_t temp = I915_READ(control); | 3100 | uint32_t temp = I915_READ(control); |
@@ -3182,9 +3181,6 @@ static int intel_crtc_cursor_set(struct drm_crtc *crtc, | |||
3182 | drm_gem_object_unreference(intel_crtc->cursor_bo); | 3181 | drm_gem_object_unreference(intel_crtc->cursor_bo); |
3183 | } | 3182 | } |
3184 | 3183 | ||
3185 | if ((IS_I965G(dev) || plane == 0)) | ||
3186 | intel_update_fbc(crtc, &crtc->mode); | ||
3187 | |||
3188 | mutex_unlock(&dev->struct_mutex); | 3184 | mutex_unlock(&dev->struct_mutex); |
3189 | 3185 | ||
3190 | intel_crtc->cursor_addr = addr; | 3186 | intel_crtc->cursor_addr = addr; |
@@ -3244,6 +3240,16 @@ void intel_crtc_fb_gamma_set(struct drm_crtc *crtc, u16 red, u16 green, | |||
3244 | intel_crtc->lut_b[regno] = blue >> 8; | 3240 | intel_crtc->lut_b[regno] = blue >> 8; |
3245 | } | 3241 | } |
3246 | 3242 | ||
3243 | void intel_crtc_fb_gamma_get(struct drm_crtc *crtc, u16 *red, u16 *green, | ||
3244 | u16 *blue, int regno) | ||
3245 | { | ||
3246 | struct intel_crtc *intel_crtc = to_intel_crtc(crtc); | ||
3247 | |||
3248 | *red = intel_crtc->lut_r[regno] << 8; | ||
3249 | *green = intel_crtc->lut_g[regno] << 8; | ||
3250 | *blue = intel_crtc->lut_b[regno] << 8; | ||
3251 | } | ||
3252 | |||
3247 | static void intel_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green, | 3253 | static void intel_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green, |
3248 | u16 *blue, uint32_t size) | 3254 | u16 *blue, uint32_t size) |
3249 | { | 3255 | { |
@@ -3835,6 +3841,7 @@ static const struct drm_crtc_helper_funcs intel_helper_funcs = { | |||
3835 | .mode_set_base = intel_pipe_set_base, | 3841 | .mode_set_base = intel_pipe_set_base, |
3836 | .prepare = intel_crtc_prepare, | 3842 | .prepare = intel_crtc_prepare, |
3837 | .commit = intel_crtc_commit, | 3843 | .commit = intel_crtc_commit, |
3844 | .load_lut = intel_crtc_load_lut, | ||
3838 | }; | 3845 | }; |
3839 | 3846 | ||
3840 | static const struct drm_crtc_funcs intel_crtc_funcs = { | 3847 | static const struct drm_crtc_funcs intel_crtc_funcs = { |