diff options
| -rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 68 |
1 files changed, 36 insertions, 32 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 432fc04c6bff..4fc21e047a2d 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
| @@ -6215,36 +6215,6 @@ cleanup_work: | |||
| 6215 | return ret; | 6215 | return ret; |
| 6216 | } | 6216 | } |
| 6217 | 6217 | ||
| 6218 | static void intel_crtc_reset(struct drm_crtc *crtc) | ||
| 6219 | { | ||
| 6220 | struct intel_crtc *intel_crtc = to_intel_crtc(crtc); | ||
| 6221 | |||
| 6222 | /* Reset flags back to the 'unknown' status so that they | ||
| 6223 | * will be correctly set on the initial modeset. | ||
| 6224 | */ | ||
| 6225 | intel_crtc->dpms_mode = -1; | ||
| 6226 | } | ||
| 6227 | |||
| 6228 | static struct drm_crtc_helper_funcs intel_helper_funcs = { | ||
| 6229 | .dpms = intel_crtc_dpms, | ||
| 6230 | .mode_fixup = intel_crtc_mode_fixup, | ||
| 6231 | .mode_set = intel_crtc_mode_set, | ||
| 6232 | .mode_set_base = intel_pipe_set_base, | ||
| 6233 | .mode_set_base_atomic = intel_pipe_set_base_atomic, | ||
| 6234 | .load_lut = intel_crtc_load_lut, | ||
| 6235 | .disable = intel_crtc_disable, | ||
| 6236 | }; | ||
| 6237 | |||
| 6238 | static const struct drm_crtc_funcs intel_crtc_funcs = { | ||
| 6239 | .reset = intel_crtc_reset, | ||
| 6240 | .cursor_set = intel_crtc_cursor_set, | ||
| 6241 | .cursor_move = intel_crtc_cursor_move, | ||
| 6242 | .gamma_set = intel_crtc_gamma_set, | ||
| 6243 | .set_config = drm_crtc_helper_set_config, | ||
| 6244 | .destroy = intel_crtc_destroy, | ||
| 6245 | .page_flip = intel_crtc_page_flip, | ||
| 6246 | }; | ||
| 6247 | |||
| 6248 | static void intel_sanitize_modesetting(struct drm_device *dev, | 6218 | static void intel_sanitize_modesetting(struct drm_device *dev, |
| 6249 | int pipe, int plane) | 6219 | int pipe, int plane) |
| 6250 | { | 6220 | { |
| @@ -6281,6 +6251,42 @@ static void intel_sanitize_modesetting(struct drm_device *dev, | |||
| 6281 | intel_disable_pipe(dev_priv, pipe); | 6251 | intel_disable_pipe(dev_priv, pipe); |
| 6282 | } | 6252 | } |
| 6283 | 6253 | ||
| 6254 | static void intel_crtc_reset(struct drm_crtc *crtc) | ||
| 6255 | { | ||
| 6256 | struct drm_device *dev = crtc->dev; | ||
| 6257 | struct intel_crtc *intel_crtc = to_intel_crtc(crtc); | ||
| 6258 | |||
| 6259 | /* Reset flags back to the 'unknown' status so that they | ||
| 6260 | * will be correctly set on the initial modeset. | ||
| 6261 | */ | ||
| 6262 | intel_crtc->dpms_mode = -1; | ||
| 6263 | |||
| 6264 | /* We need to fix up any BIOS configuration that conflicts with | ||
| 6265 | * our expectations. | ||
| 6266 | */ | ||
| 6267 | intel_sanitize_modesetting(dev, intel_crtc->pipe, intel_crtc->plane); | ||
| 6268 | } | ||
| 6269 | |||
| 6270 | static struct drm_crtc_helper_funcs intel_helper_funcs = { | ||
| 6271 | .dpms = intel_crtc_dpms, | ||
| 6272 | .mode_fixup = intel_crtc_mode_fixup, | ||
| 6273 | .mode_set = intel_crtc_mode_set, | ||
| 6274 | .mode_set_base = intel_pipe_set_base, | ||
| 6275 | .mode_set_base_atomic = intel_pipe_set_base_atomic, | ||
| 6276 | .load_lut = intel_crtc_load_lut, | ||
| 6277 | .disable = intel_crtc_disable, | ||
| 6278 | }; | ||
| 6279 | |||
| 6280 | static const struct drm_crtc_funcs intel_crtc_funcs = { | ||
| 6281 | .reset = intel_crtc_reset, | ||
| 6282 | .cursor_set = intel_crtc_cursor_set, | ||
| 6283 | .cursor_move = intel_crtc_cursor_move, | ||
| 6284 | .gamma_set = intel_crtc_gamma_set, | ||
| 6285 | .set_config = drm_crtc_helper_set_config, | ||
| 6286 | .destroy = intel_crtc_destroy, | ||
| 6287 | .page_flip = intel_crtc_page_flip, | ||
| 6288 | }; | ||
| 6289 | |||
| 6284 | static void intel_crtc_init(struct drm_device *dev, int pipe) | 6290 | static void intel_crtc_init(struct drm_device *dev, int pipe) |
| 6285 | { | 6291 | { |
| 6286 | drm_i915_private_t *dev_priv = dev->dev_private; | 6292 | drm_i915_private_t *dev_priv = dev->dev_private; |
| @@ -6330,8 +6336,6 @@ static void intel_crtc_init(struct drm_device *dev, int pipe) | |||
| 6330 | 6336 | ||
| 6331 | setup_timer(&intel_crtc->idle_timer, intel_crtc_idle_timer, | 6337 | setup_timer(&intel_crtc->idle_timer, intel_crtc_idle_timer, |
| 6332 | (unsigned long)intel_crtc); | 6338 | (unsigned long)intel_crtc); |
| 6333 | |||
| 6334 | intel_sanitize_modesetting(dev, intel_crtc->pipe, intel_crtc->plane); | ||
| 6335 | } | 6339 | } |
| 6336 | 6340 | ||
| 6337 | int intel_get_pipe_from_crtc_id(struct drm_device *dev, void *data, | 6341 | int intel_get_pipe_from_crtc_id(struct drm_device *dev, void *data, |
