[Intel-gfx] [PATCH 20/31] drm/i915: simplify the reduced clock handling for pch plls

Damien Lespiau damien.lespiau at intel.com
Thu Jun 13 14:32:03 CEST 2013


On Thu, Jun 13, 2013 at 01:35:44PM +0200, Daniel Vetter wrote:
> On Thu, Jun 13, 2013 at 1:26 PM, Damien Lespiau
> <damien.lespiau at intel.com> wrote:
> > On Wed, Jun 05, 2013 at 01:34:22PM +0200, Daniel Vetter wrote:
> >> Just move the lowfreq_avail logic out of the register writing as a
> >> prep step for the next patch, which will coalesce all the pch pll
> >> enabling into one spot.
> >>
> >> Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> >> ---
> >>  drivers/gpu/drm/i915/intel_display.c | 11 ++++++-----
> >>  1 file changed, 6 insertions(+), 5 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> >> index ecf0b1e..fc1b5f7 100644
> >> --- a/drivers/gpu/drm/i915/intel_display.c
> >> +++ b/drivers/gpu/drm/i915/intel_display.c
> >> @@ -5686,7 +5686,10 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc,
> >>               if (encoder->pre_pll_enable)
> >>                       encoder->pre_pll_enable(encoder);
> >>
> >> -     intel_crtc->lowfreq_avail = false;
> >> +     if (is_lvds && has_reduced_clock && i915_powersave)
> >> +             intel_crtc->lowfreq_avail = true;
> >
> > is_lvds doesn't seem necessary as ironlake_compute_clocks() won't set
> > has_reduced_clock to true if !is_lvds. Doesn't hurt either.
> 
> I want to move this all into encoder compute_config callbacks anyway,
> so that we can neatly subsume eDP DRRS support, too. Until that's
> fixed I don't care about a bit of fluff ...
> 
> >> +     else
> >> +             intel_crtc->lowfreq_avail = false;
> >>
> >>       if (intel_crtc->config.has_pch_encoder) {
> >>               pll = intel_crtc_to_shared_dpll(intel_crtc);
> >> @@ -5704,12 +5707,10 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc,
> >>                */
> >>               I915_WRITE(PCH_DPLL(pll->id), dpll);
> >>
> >> -             if (is_lvds && has_reduced_clock && i915_powersave) {
> >> +             if (has_reduced_clock)
> >>                       I915_WRITE(PCH_FP1(pll->id), fp2);
> >
> > Hum this is not quite the same condition? i915_powersave could be false
> > and we don't want to take that branch? maybe reuse lowfreq_avail?
> >
> > Maybe compute_clocks() could check i915_powersave itself and set
> > has_reduced_clock (or use_reduced_clock) correctly.
> 
> Well the entire lowfreq stuff is ripe for overhaul anyway, my plan is
> to move it all into the pipe config.
> 
> For this case here of writing the FP1 register it doesn't matter if we
> uncodntionally do it, since FP1 doesn't have any effect if we don't
> enable the lowfreq mode. Which despite the appearance we currently
> don't do at all on ilk+ ;-)
> 
> I should have mentioned this in the comment message. r-b if I fix that
> while applying?

yes!

Reviewed-by: Damien Lespiau <damien.lespiau at intel.com>

-- 
Damien

> -Daniel
> 
> >
> >> -                     intel_crtc->lowfreq_avail = true;
> >> -             } else {
> >> +             else
> >>                       I915_WRITE(PCH_FP1(pll->id), fp);
> >> -             }
> >>       }
> >>
> >>       intel_set_pipe_timings(intel_crtc);
> >> --
> >> 1.7.11.7
> >>
> >> _______________________________________________
> >> Intel-gfx mailing list
> >> Intel-gfx at 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



More information about the Intel-gfx mailing list