lkml.org 
[lkml]   [2015]   [Mar]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [PATCH] drm/i915: Fixup legacy plane->crtc link for initial fb config
Date
On Wed, 25 Mar 2015, Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
> This is a very similar bug in the load detect code fixed in
>
> commit 9128b040eb774e04bc23777b005ace2b66ab2a85
> Author: Daniel Vetter <daniel.vetter@ffwll.ch>
> Date: Tue Mar 3 17:31:21 2015 +0100
>
> drm/i915: Fix modeset state confusion in the load detect code
>
> But this time around it was the initial fb code that forgot to update
> the plane->crtc pointer. Otherwise it's the exact same bug, with the
> exact same restrains (any set_config call/ioctl that doesn't disable
> the pipe papers over the bug for free, so fairly hard to hit in normal
> testing). So if you want the full explanation just go read that one
> over there - it's rather long ...
>
> Cc: Matt Roper <matthew.d.roper@intel.com>
> Cc: Linus Torvalds <torvalds@linux-foundation.org>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Josh Boyer <jwboyer@fedoraproject.org>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> ---
> This is the version for -next. The one for -fixes just needs an
> s/primary/intel_crtc->base.primary/ and some fudge in the diff. I just
> want to apply this in both trees since with all the cherry-picking the
> conflicts are fun already and with this patch in both places we can
> just go with the code in -next.

I've also picked this up from -next to drm-intel-fixes.

BR,
Jani.


>
> Cheers, Daniel
> ---
> drivers/gpu/drm/i915/intel_display.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index ceb2e61b4c91..cb508542c6ab 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -2594,6 +2594,7 @@ intel_find_plane_obj(struct intel_crtc *intel_crtc,
>
> primary->fb = &plane_config->fb->base;
> primary->state->crtc = &intel_crtc->base;
> + primary->crtc = &intel_crtc->base;
> update_state_fb(primary);
>
> return;
> @@ -2627,6 +2628,7 @@ intel_find_plane_obj(struct intel_crtc *intel_crtc,
> drm_framebuffer_reference(c->primary->fb);
> primary->fb = c->primary->fb;
> primary->state->crtc = &intel_crtc->base;
> + primary->crtc = &intel_crtc->base;
> update_state_fb(intel_crtc->base.primary);
> obj->frontbuffer_bits |= INTEL_FRONTBUFFER_PRIMARY(intel_crtc->pipe);
> break;
> --
> 2.1.4
>

--
Jani Nikula, Intel Open Source Technology Center


\
 
 \ /
  Last update: 2015-03-26 13:41    [W:0.051 / U:0.476 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site