mirror of https://gitee.com/openkylin/linux.git
drm/i915: Use crtc->state in intel_fbdev_init_bios
fbdev init shouldn't race with userspace since it's called from intel_modeset_init, so it's safe to dereference crtc->state and assume nothing changed yet. At least not more harmful than crtc->config. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20181004094604.2646-11-maarten.lankhorst@linux.intel.com
This commit is contained in:
parent
0e5fa64610
commit
6e3d9dd0ae
drivers/gpu/drm/i915
|
@ -593,7 +593,7 @@ static bool intel_fbdev_init_bios(struct drm_device *dev,
|
|||
* pipe. Note we need to use the selected fb's pitch and bpp
|
||||
* rather than the current pipe's, since they differ.
|
||||
*/
|
||||
cur_size = intel_crtc->config->base.adjusted_mode.crtc_hdisplay;
|
||||
cur_size = crtc->state->adjusted_mode.crtc_hdisplay;
|
||||
cur_size = cur_size * fb->base.format->cpp[0];
|
||||
if (fb->base.pitches[0] < cur_size) {
|
||||
DRM_DEBUG_KMS("fb not wide enough for plane %c (%d vs %d)\n",
|
||||
|
@ -603,13 +603,13 @@ static bool intel_fbdev_init_bios(struct drm_device *dev,
|
|||
break;
|
||||
}
|
||||
|
||||
cur_size = intel_crtc->config->base.adjusted_mode.crtc_vdisplay;
|
||||
cur_size = crtc->state->adjusted_mode.crtc_vdisplay;
|
||||
cur_size = intel_fb_align_height(&fb->base, 0, cur_size);
|
||||
cur_size *= fb->base.pitches[0];
|
||||
DRM_DEBUG_KMS("pipe %c area: %dx%d, bpp: %d, size: %d\n",
|
||||
pipe_name(intel_crtc->pipe),
|
||||
intel_crtc->config->base.adjusted_mode.crtc_hdisplay,
|
||||
intel_crtc->config->base.adjusted_mode.crtc_vdisplay,
|
||||
crtc->state->adjusted_mode.crtc_hdisplay,
|
||||
crtc->state->adjusted_mode.crtc_vdisplay,
|
||||
fb->base.format->cpp[0] * 8,
|
||||
cur_size);
|
||||
|
||||
|
|
Loading…
Reference in New Issue