From: Daniel Vetter <daniel@ffwll.ch>
To: Jani Nikula <jani.nikula@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 2/2] drm/i915: clean up and simplify i9xx_crtc_mode_set wrt PLL handling
Date: Fri, 13 Sep 2013 16:07:19 +0200 [thread overview]
Message-ID: <20130913140719.GA32145@phenom.ffwll.local> (raw)
In-Reply-To: <87bo3wn8ob.fsf@intel.com>
On Fri, Sep 13, 2013 at 04:38:28PM +0300, Jani Nikula wrote:
> On Fri, 13 Sep 2013, Daniel Vetter <daniel@ffwll.ch> wrote:
> > On Fri, Sep 13, 2013 at 11:03:09AM +0300, Jani Nikula wrote:
> >> Flat out skip anything to do with PLL if we have a DSI encoder (and thus
> >> DSI PLL). Also skip PLL computation if the encoder has already set
> >> clocks. This allows for some tidying up of the code, including a
> >> superfluous call to intel_limit() for LVDS downclock path.
> >>
> >> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> >> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > Tried to merge this but the baseline seems to be off, at least wrt dinq.
> > Do I miss some patches that I should apply first?
>
> This one depends on "drm/i915: do not update cursor in crtc mode set" in
> this thread (my patch but with Ville's commit message amendmend). Did
> you push the assert patch before that? It's a good order.
I've pushed the assert patch to dinq, the real fixes need to go to -fixes.
Tbh I'm a bit confused about what to put where, so please scream ;-)
For Ville's patches I'm waiting a bit for Paulo to take a look and ack
them.
-Daniel
>
> Jani.
>
>
>
> > -Daniel
> >
> >> ---
> >> drivers/gpu/drm/i915/intel_display.c | 44 +++++++++++++++++-----------------
> >> 1 file changed, 22 insertions(+), 22 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> >> index 0446dc7..6a51cc2 100644
> >> --- a/drivers/gpu/drm/i915/intel_display.c
> >> +++ b/drivers/gpu/drm/i915/intel_display.c
> >> @@ -4892,9 +4892,12 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
> >> num_connectors++;
> >> }
> >>
> >> - refclk = i9xx_get_refclk(crtc, num_connectors);
> >> + if (is_dsi)
> >> + goto skip_dpll;
> >> +
> >> + if (!intel_crtc->config.clock_set) {
> >> + refclk = i9xx_get_refclk(crtc, num_connectors);
> >>
> >> - if (!is_dsi && !intel_crtc->config.clock_set) {
> >> /*
> >> * Returns a set of divisors for the desired target clock with
> >> * the given refclk, or FALSE. The returned values represent
> >> @@ -4905,28 +4908,25 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
> >> ok = dev_priv->display.find_dpll(limit, crtc,
> >> intel_crtc->config.port_clock,
> >> refclk, NULL, &clock);
> >> - if (!ok && !intel_crtc->config.clock_set) {
> >> + if (!ok) {
> >> DRM_ERROR("Couldn't find PLL settings for mode!\n");
> >> return -EINVAL;
> >> }
> >> - }
> >>
> >> - if (!is_dsi && is_lvds && dev_priv->lvds_downclock_avail) {
> >> - /*
> >> - * Ensure we match the reduced clock's P to the target clock.
> >> - * If the clocks don't match, we can't switch the display clock
> >> - * by using the FP0/FP1. In such case we will disable the LVDS
> >> - * downclock feature.
> >> - */
> >> - limit = intel_limit(crtc, refclk);
> >> - has_reduced_clock =
> >> - dev_priv->display.find_dpll(limit, crtc,
> >> - dev_priv->lvds_downclock,
> >> - refclk, &clock,
> >> - &reduced_clock);
> >> - }
> >> - /* Compat-code for transition, will disappear. */
> >> - if (!intel_crtc->config.clock_set) {
> >> + if (is_lvds && dev_priv->lvds_downclock_avail) {
> >> + /*
> >> + * Ensure we match the reduced clock's P to the target
> >> + * clock. If the clocks don't match, we can't switch
> >> + * the display clock by using the FP0/FP1. In such case
> >> + * we will disable the LVDS downclock feature.
> >> + */
> >> + has_reduced_clock =
> >> + dev_priv->display.find_dpll(limit, crtc,
> >> + dev_priv->lvds_downclock,
> >> + refclk, &clock,
> >> + &reduced_clock);
> >> + }
> >> + /* Compat-code for transition, will disappear. */
> >> intel_crtc->config.dpll.n = clock.n;
> >> intel_crtc->config.dpll.m1 = clock.m1;
> >> intel_crtc->config.dpll.m2 = clock.m2;
> >> @@ -4939,14 +4939,14 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
> >> has_reduced_clock ? &reduced_clock : NULL,
> >> num_connectors);
> >> } else if (IS_VALLEYVIEW(dev)) {
> >> - if (!is_dsi)
> >> - vlv_update_pll(intel_crtc);
> >> + vlv_update_pll(intel_crtc);
> >> } else {
> >> i9xx_update_pll(intel_crtc,
> >> has_reduced_clock ? &reduced_clock : NULL,
> >> num_connectors);
> >> }
> >>
> >> +skip_dpll:
> >> /* Set up the display plane register */
> >> dspcntr = DISPPLANE_GAMMA_ENABLE;
> >>
> >> --
> >> 1.7.9.5
> >>
> >> _______________________________________________
> >> Intel-gfx mailing list
> >> Intel-gfx@lists.freedesktop.org
> >> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
> >
> > --
> > Daniel Vetter
> > Software Engineer, Intel Corporation
> > +41 (0) 79 365 57 48 - http://blog.ffwll.ch
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
> --
> Jani Nikula, Intel Open Source Technology Center
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
next prev parent reply other threads:[~2013-09-13 14:07 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-12 19:45 [PATCH 0/3] drm/i915: HSW modeset hang fix ville.syrjala
2013-09-12 19:45 ` [PATCH 1/3] drm/i915: do not update cursor in crtc mode set ville.syrjala
2013-09-12 20:09 ` Chris Wilson
2013-09-13 7:30 ` [Intel-gfx] " Ville Syrjälä
2013-09-13 8:03 ` [PATCH 1/2] drm/i915: add asserts for cursor disabled Jani Nikula
2013-09-13 8:03 ` [PATCH 2/2] drm/i915: clean up and simplify i9xx_crtc_mode_set wrt PLL handling Jani Nikula
2013-09-13 13:00 ` Daniel Vetter
2013-09-13 13:38 ` Jani Nikula
2013-09-13 14:07 ` Daniel Vetter [this message]
2013-09-13 14:47 ` Ville Syrjälä
2013-09-13 8:48 ` [PATCH 1/2] drm/i915: add asserts for cursor disabled Chris Wilson
2013-09-13 11:57 ` Ville Syrjälä
2013-09-13 12:59 ` Daniel Vetter
2013-09-12 19:45 ` [PATCH 2/3] drm/i915: Don't enable the cursor on a disable pipe ville.syrjala
2013-09-12 20:08 ` Chris Wilson
2013-09-13 7:28 ` [Intel-gfx] " Ville Syrjälä
2013-09-12 19:45 ` [PATCH 3/3] drm/i915: Don't enable sprites on a disabled pipe ville.syrjala
2013-09-12 20:13 ` [Intel-gfx] " Chris Wilson
2013-09-13 7:40 ` Ville Syrjälä
2013-09-13 7:50 ` Ville Syrjälä
2013-09-13 7:54 ` Ville Syrjälä
2013-09-13 8:43 ` Chris Wilson
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=20130913140719.GA32145@phenom.ffwll.local \
--to=daniel@ffwll.ch \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@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.