[Intel-gfx] [PATCH 7/8] drm/i915/lvds: Remove magic from PLL programming

Imre Deak imre.deak at intel.com
Wed Apr 26 15:04:26 UTC 2017


On Wed, Apr 26, 2017 at 05:50:06PM +0300, Ville Syrjälä wrote:
> On Wed, Apr 26, 2017 at 04:40:12PM +0300, Imre Deak wrote:
> > This looks like a left-over from enabling work. I don't have the
> > specification to check whether we have to set
> > CH7017_LVDS_PLL_FEEDBACK_DEFAULT_RESERVED, for now just keep things
> > as-is, removing the magic so that static checkers don't complain.
> 
> The spec does list the top two bits as reserved with the default value
> of 10b. I don't see any mention of how reserved bits should be handled
> though. But I think I'd just change it to set them to the default value.

Ok, can change that based on the above.

--Imre

> 
> The whole thing just looks like an oversight in the original ddx commit,
> whose commit message isn't all that helpful:
> 
> commit 04e936935f0b0045600241424f1d04a6721a2432
> Author: Eric Anholt <eric at anholt.net>
> Date:   Mon Oct 1 17:29:35 2007 -0700
> 
>     Bring the CH7017 driver closer to spec.
>     
>     This is also closer to what my hardware is programmed with, except for some
>     very confusing off-by-one bugs in an unexpected direction.
> 
> > 
> > Signed-off-by: Imre Deak <imre.deak at intel.com>
> > ---
> >  drivers/gpu/drm/i915/dvo_ch7017.c | 7 +++++--
> >  1 file changed, 5 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/dvo_ch7017.c b/drivers/gpu/drm/i915/dvo_ch7017.c
> > index b3c7c19..c0712a5 100644
> > --- a/drivers/gpu/drm/i915/dvo_ch7017.c
> > +++ b/drivers/gpu/drm/i915/dvo_ch7017.c
> > @@ -280,10 +280,13 @@ static void ch7017_mode_set(struct intel_dvo_device *dvo,
> >  			(0 << CH7017_PHASE_DETECTOR_SHIFT);
> >  	} else {
> >  		outputs_enable = CH7017_LVDS_CHANNEL_A | CH7017_CHARGE_PUMP_HIGH;
> > -		lvds_pll_feedback_div = CH7017_LVDS_PLL_FEEDBACK_DEFAULT_RESERVED |
> > +		/*
> > +		 * FIXME: Check if CH7017_LVDS_PLL_FEEDBACK_DEFAULT_RESERVED
> > +		 * needs to be also set for the following.
> > +		 */
> > +		lvds_pll_feedback_div =
> >  			(2 << CH7017_LVDS_PLL_FEED_BACK_DIVIDER_SHIFT) |
> >  			(3 << CH7017_LVDS_PLL_FEED_FORWARD_DIVIDER_SHIFT);
> > -		lvds_pll_feedback_div = 35;
> >  		lvds_control_2 = (3 << CH7017_LOOP_FILTER_SHIFT) |
> >  			(0 << CH7017_PHASE_DETECTOR_SHIFT);
> >  		if (1) { /* XXX: dual channel panel detection.  Assume yes for now. */
> > -- 
> > 2.5.0
> > 
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 
> -- 
> Ville Syrjälä
> Intel OTC


More information about the Intel-gfx mailing list