drm/i915: Use the correct scanout alignment for fbcon.
This fixes a potential modesetting error during boot with plymouth on Broadwater and Crestline introduced with 9df47c. The framebuffer was hard-coding an alignment of 64K, but the modesetting code required the documented alignment of 128K. The result was that we would attempt to unbind the pinned fbcon buffer, triggering an ERROR and ultimately failing the mode change. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Родитель
9934c13298
Коммит
127bd2ac91
|
@ -1255,7 +1255,7 @@ out_disable:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
int
|
||||||
intel_pin_and_fence_fb_obj(struct drm_device *dev, struct drm_gem_object *obj)
|
intel_pin_and_fence_fb_obj(struct drm_device *dev, struct drm_gem_object *obj)
|
||||||
{
|
{
|
||||||
struct drm_i915_gem_object *obj_priv = to_intel_bo(obj);
|
struct drm_i915_gem_object *obj_priv = to_intel_bo(obj);
|
||||||
|
|
|
@ -215,6 +215,9 @@ extern void intel_init_clock_gating(struct drm_device *dev);
|
||||||
extern void ironlake_enable_drps(struct drm_device *dev);
|
extern void ironlake_enable_drps(struct drm_device *dev);
|
||||||
extern void ironlake_disable_drps(struct drm_device *dev);
|
extern void ironlake_disable_drps(struct drm_device *dev);
|
||||||
|
|
||||||
|
extern int intel_pin_and_fence_fb_obj(struct drm_device *dev,
|
||||||
|
struct drm_gem_object *obj);
|
||||||
|
|
||||||
extern int intel_framebuffer_init(struct drm_device *dev,
|
extern int intel_framebuffer_init(struct drm_device *dev,
|
||||||
struct intel_framebuffer *ifb,
|
struct intel_framebuffer *ifb,
|
||||||
struct drm_mode_fb_cmd *mode_cmd,
|
struct drm_mode_fb_cmd *mode_cmd,
|
||||||
|
|
|
@ -98,7 +98,7 @@ static int intelfb_create(struct intel_fbdev *ifbdev,
|
||||||
|
|
||||||
mutex_lock(&dev->struct_mutex);
|
mutex_lock(&dev->struct_mutex);
|
||||||
|
|
||||||
ret = i915_gem_object_pin(fbo, 64*1024);
|
ret = intel_pin_and_fence_fb_obj(dev, fbo);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
DRM_ERROR("failed to pin fb: %d\n", ret);
|
DRM_ERROR("failed to pin fb: %d\n", ret);
|
||||||
goto out_unref;
|
goto out_unref;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче