From: "Zanoni, Paulo R" <paulo.r.zanoni@intel.com>
To: "intel-gfx@lists.freedesktop.org"
<intel-gfx@lists.freedesktop.org>,
"maarten.lankhorst@linux.intel.com"
<maarten.lankhorst@linux.intel.com>
Subject: Re: [PATCH 04/18] drm/i915: extract crtc_is_valid() on the FBC code
Date: Thu, 22 Oct 2015 19:26:36 +0000 [thread overview]
Message-ID: <1445541994.3449.6.camel@intel.com> (raw)
In-Reply-To: <562895C2.40602@linux.intel.com>
Em Qui, 2015-10-22 às 09:52 +0200, Maarten Lankhorst escreveu:
> Op 20-10-15 om 15:49 schreef Paulo Zanoni:
> > We're going to kill intel_fbc_find_crtc(), that's why a big part of
> > the logic moved from intel_fbc_find_crtc() to crtc_is_valid().
> >
> > Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
> > ---
> > drivers/gpu/drm/i915/intel_fbc.c | 26 ++++++++++++++++----------
> > 1 file changed, 16 insertions(+), 10 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_fbc.c
> > b/drivers/gpu/drm/i915/intel_fbc.c
> > index b9cfd16..1162787 100644
> > --- a/drivers/gpu/drm/i915/intel_fbc.c
> > +++ b/drivers/gpu/drm/i915/intel_fbc.c
> > @@ -538,27 +538,33 @@ static void set_no_fbc_reason(struct
> > drm_i915_private *dev_priv,
> > DRM_DEBUG_KMS("Disabling FBC: %s\n", reason);
> > }
> >
> > +static bool crtc_is_valid(struct intel_crtc *crtc)
> > +{
> > + struct drm_i915_private *dev_priv = crtc->base.dev-
> > >dev_private;
> > + enum pipe pipe = crtc->pipe;
> > +
> > + if ((IS_HASWELL(dev_priv) || INTEL_INFO(dev_priv)->gen >=
> > 8) &&
> > + pipe != PIPE_A)
> > + return false;
> > +
> > + return intel_crtc_active(&crtc->base) &&
> > + to_intel_plane_state(crtc->base.primary->state)-
> > >visible &&
> > + crtc->base.primary->fb != NULL;
> > +}
> >
> I've been considering something like this, but could it be changed to
> take atomic states as arguments?
I'm not sure. All I know is that this is still (both now and at the end
of the series) being called while the CRTC is already enabled, not
during modeset paths. The visible/invisible case seems to be the most
important check. The other two checks are like this simply because this
code was written a loooong time ago and was never updated while the
rest of the tree evolved.
Since there are so many things to update on the FBC code I was just
trying to move the code around without really over-analyzing it since
it seemed to be working. But I guess these days any line of i915 code
touched on a patch has to be perfect :)
Anyway, I'll try to update this code on this series since you & Chris &
Ville already asked about it.
> That way it will be easier to use when >1 flip depth is allowed in
> the future, and intel_crtc_active is not
> a check that should be used here.
>
> At some point in the near future I want to convert intel_unpin_work
> to take the previous and next crtc/plane
> states, that would become a lot easier if this code would be more
> atomic like. :)
>
> ~Maarten
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2015-10-22 19:26 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-20 13:49 [PATCH 00/18] Yet another FBC series Paulo Zanoni
2015-10-20 13:49 ` [PATCH 01/18] drm/i915: change no_fbc_reason from enum to string Paulo Zanoni
2015-10-21 6:52 ` Daniel Vetter
2015-10-20 13:49 ` [PATCH 02/18] drm/i915: don't stop+start FBC at every flip Paulo Zanoni
2015-10-21 7:04 ` Daniel Vetter
2015-10-21 7:12 ` Ville Syrjälä
2015-10-21 7:40 ` Ville Syrjälä
2015-10-20 13:49 ` [PATCH 03/18] drm/i915: only nuke FBC when a drawing operation triggers a flush Paulo Zanoni
2015-10-20 15:59 ` Chris Wilson
2015-10-21 17:08 ` Zanoni, Paulo R
2015-10-21 17:31 ` chris
2015-10-21 17:51 ` Zanoni, Paulo R
2015-10-20 13:49 ` [PATCH 04/18] drm/i915: extract crtc_is_valid() on the FBC code Paulo Zanoni
2015-10-20 15:52 ` Chris Wilson
2015-10-21 17:16 ` Zanoni, Paulo R
2015-10-21 17:28 ` chris
2015-10-22 7:52 ` Maarten Lankhorst
2015-10-22 19:26 ` Zanoni, Paulo R [this message]
2015-10-22 19:42 ` Ville Syrjälä
2015-10-20 13:49 ` [PATCH 05/18] drm/i915: set dev_priv->fbc.crtc before scheduling the enable work Paulo Zanoni
2015-10-20 16:03 ` Chris Wilson
2015-10-21 17:27 ` Zanoni, Paulo R
2015-10-21 18:15 ` chris
2015-10-20 13:49 ` [PATCH 06/18] drm/i915: use struct intel_crtc *crtc at __intel_fbc_update() Paulo Zanoni
2015-10-20 13:49 ` [PATCH 07/18] drm/i915: fix the __intel_fbc_update() comments Paulo Zanoni
2015-10-21 12:37 ` Chris Wilson
2015-10-21 17:32 ` Zanoni, Paulo R
2015-10-21 17:38 ` chris
2015-10-22 20:15 ` Zanoni, Paulo R
2015-10-20 13:49 ` [PATCH 08/18] drm/i915: pass the crtc as an argument to intel_fbc_update() Paulo Zanoni
2015-10-20 13:49 ` [PATCH 09/18] drm/i915: don't disable_fbc() if FBC is already disabled Paulo Zanoni
2015-10-20 13:49 ` [PATCH 10/18] drm/i915: introduce is_active/activate/deactivate to the FBC terminology Paulo Zanoni
2015-10-21 12:34 ` Chris Wilson
2015-10-21 17:45 ` Zanoni, Paulo R
2015-10-21 17:55 ` chris
2015-10-20 13:49 ` [PATCH 11/18] drm/i915: refactor FBC deactivation at init Paulo Zanoni
2015-10-21 12:59 ` Chris Wilson
2015-10-20 13:49 ` [PATCH 12/18] drm/i915: introduce intel_fbc_{enable, disable} Paulo Zanoni
2015-10-20 15:55 ` Chris Wilson
2015-10-20 13:49 ` [PATCH 13/18] drm/i915: remove too-frequent FBC debug message Paulo Zanoni
2015-10-21 13:01 ` Chris Wilson
2015-10-21 18:19 ` Zanoni, Paulo R
2015-10-22 19:52 ` chris
2015-10-20 13:50 ` [PATCH 14/18] drm/i915: fix the CFB size check Paulo Zanoni
2015-10-20 13:50 ` [PATCH 15/18] drm/i915: alloc/free the FBC CFB during enable/disable Paulo Zanoni
2015-10-21 7:11 ` Daniel Vetter
2015-10-21 7:20 ` Ville Syrjälä
2015-10-21 7:24 ` Daniel Vetter
2015-10-21 18:30 ` Zanoni, Paulo R
2015-10-22 7:59 ` Daniel Vetter
2015-10-20 13:50 ` [PATCH 16/18] drm/i915: move adjusted_mode checks from fbc_update to fbc_enable Paulo Zanoni
2015-10-20 13:50 ` [PATCH 17/18] drm/i915: move clock frequency " Paulo Zanoni
2015-10-20 13:50 ` [PATCH 18/18] drm/i915: check for FBC planes in the same place as the pipes Paulo Zanoni
2015-10-20 21:22 ` [PATCH igt 1/4] kms_frontbuffer_tracking: unset crtcs after getting the base blue CRC Paulo Zanoni
2015-10-20 21:22 ` [PATCH igt 2/4] kms_frontbuffer_tracking: add flag to not assert feature status Paulo Zanoni
2015-10-20 21:22 ` [PATCH igt 3/4] kms_frontbuffer_tracking: add stridechange subtest Paulo Zanoni
2015-10-20 21:22 ` [PATCH igt 4/4] kms_frontbuffer_tracking: remove opt.only_feature Paulo Zanoni
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1445541994.3449.6.camel@intel.com \
--to=paulo.r.zanoni@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=maarten.lankhorst@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.