From mboxrd@z Thu Jan 1 00:00:00 1970 From: bugzilla-daemon@freedesktop.org Subject: [Bug 76564] [AMD Fusion E-350] HDMI refresh rates doesn't match expectations Date: Mon, 31 Mar 2014 18:09:56 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1408483010==" Return-path: Received: from culpepper.freedesktop.org (unknown [131.252.210.165]) by gabe.freedesktop.org (Postfix) with ESMTP id 580BD6E3C9 for ; Mon, 31 Mar 2014 11:09:56 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org --===============1408483010== Content-Type: multipart/alternative; boundary="1396289396.1Bd62.2999"; charset="us-ascii" --1396289396.1Bd62.2999 Date: Mon, 31 Mar 2014 18:09:56 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable https://bugs.freedesktop.org/show_bug.cgi?id=3D76564 Christian K=C3=B6nig changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |deathsimple@vodafone.de --- Comment #45 from Christian K=C3=B6nig --- (In reply to comment #44) > (In reply to comment #43) > > We could also update the adjusted mode clock to the actual clock set by= the > > pll so that drm_calc_timestamping_constants() uses the actual clock val= ue on > > the PLL. E.g., > >=20 > > diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c > > b/drivers/gpu/drm/radeon/atombios_crtc.c > > index daa4dd3..2a2da82 100644 > > --- a/drivers/gpu/drm/radeon/atombios_crtc.c > > +++ b/drivers/gpu/drm/radeon/atombios_crtc.c > > @@ -1085,6 +1085,7 @@ static void atombios_crtc_set_pll(struct drm_crtc > > *crtc, struct drm_display_mode > > atombios_crtc_program_ss(rdev, ATOM_ENABLE, > > radeon_crtc->pll_id, > > radeon_crtc->crtc_id, > > &radeon_crtc->ss); > > } > > + mode->clock =3D pll_clock * 10; > > } > >=20=20 > > static int dce4_crtc_do_set_base(struct drm_crtc *crtc, >=20 > I think that would only help if radeon_compute_pll_avivo could not compute > an exact match. In the case of 23.976Hz the target clock is 74170kHz and = the > PLL is set exactly to this value. > This does raise another question why the target clock' last digit is alwa= ys > zero? For example, for 23.976Hz the target clock should be 74176kHz (with > correct rounding). I looked through the source code, but the target clock > seems to come all the way from some deep generic drm code. >=20 > 74176kHz could be matched by the PLL using fb=3D927.2, post_div=3D10 and > ref_div=3D125 You might want to take a look at atombios_adjust_pll which does the mode fi= xup before a mode is actually used. Since atombios always works with 10khz pixel clock which always sets the ta= rget clocks last digit to zero. --=20 You are receiving this mail because: You are the assignee for the bug. --1396289396.1Bd62.2999 Date: Mon, 31 Mar 2014 18:09:56 +0000 MIME-Version: 1.0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Christian K=C3=B6nig changed bug 76564<= /a>
What Removed Added
CC   deathsimple@vodafone.de

Commen= t # 45 on bug 76564<= /a> from Christian K=C3=B6nig
(In reply to comment #=
44)
> (In reply to comment #43)
> > We could also update the adjusted mode clock to the actual clock =
set by the
> > pll so that drm_calc_timestamping_constants() uses the actual clo=
ck value on
> > the PLL.  E.g.,
> >=20
> > diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c
> > b/drivers/gpu/drm/radeon/atombios_crtc.c
> > index daa4dd3..2a2da82 100644
> > --- a/drivers/gpu/drm/radeon/atombios_crtc.c
> > +++ b/drivers/gpu/drm/radeon/atombios_crtc.c
> > @@ -1085,6 +1085,7 @@ static void atombios_crtc_s=
et_pll(struct drm_crtc
> > *crtc, struct drm_display_mode
> >                 atombios_crtc_program_ss(rdev, ATOM_ENABLE,
> > radeon_crtc->pll_id,
> >                                          radeon_crtc->crtc_id,
> > &radeon_crtc->ss);
> >         }
> > +       mode->clock =3D pll_clock * 10;
> >  }
> >=20=20
> >  static int dce4_crtc_do_set_base(struct drm_crtc *crtc,
>=20
> I think that would only help if radeon_compute_pll_avivo could not com=
pute
> an exact match. In the case of 23.976Hz the target clock is 74170kHz a=
nd the
> PLL is set exactly to this value.
> This does raise another question why the target clock' last digit is a=
lways
> zero? For example, for 23.976Hz the target clock should be 74176kHz (w=
ith
> correct rounding). I looked through the source code, but the target cl=
ock
> seems to come all the way from some deep generic drm code.
>=20
> 74176kHz could be matched by the PLL using fb=3D927.2, post_div=3D10 a=
nd
> ref_div=3D125

You might want to take a look at atombios_adjust_pll which does the mode fi=
xup
before a mode is actually used.

Since atombios always works with 10khz pixel clock which always sets the ta=
rget
clocks last digit to zero.


You are receiving this mail because: =20=20=20=20=20=20
  • You are the assignee for the bug.
--1396289396.1Bd62.2999-- --===============1408483010== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel --===============1408483010==--