Message ID | CADnq5_MoThbrDADBHBRXiEGWC8jukwOLyfjfX9-7d0fB0kbpMA@mail.gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi! > >> >4.3-rc7 kernel, graphics works reasonably well in 1600x1200 mode. But > >> >my monitor is native 1920x1080, so that mode looks pretty ugly on > >> >screen. If I go to 1920x1080, I see colored horizontal lines (often > >> >black) as soon as there's graphics activity. > >> > > >> >pavel@half:~$ xrandr > >> >Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192 > >> >VGA-0 connected 1920x1080+0+0 (normal left inverted right x axis y > >> >axis) 478mm x 268mm > >> > 1920x1080 60.00*+ > >> > 1600x1200 60.00 > >> > 1680x1050 59.95 > >> > 1280x1024 75.02 60.02 > >> > 1440x900 59.89 > >> > 1024x768 75.08 60.00 > >> > 800x600 75.00 60.32 > >> > 640x480 75.00 60.00 > >> > 720x400 70.08 > >> > pavel@half:~$ xrandr --output VGA-0 --mode 1600x1200 > >> > pavel@half:~$ xrandr --output VGA-0 --mode 1920x1080 > >> > pavel@half:~$ xrandr --output VGA-0 --mode 1600x1200 > >> > > >> >Any ideas? > >> > >> Alex probably knows more about this, but it sounds like problems with > >> switching the memory clocks on 3D load. > > > >> Try to disable power management completely with radeon.dpm=0 on the kernel > >> command line or nailing the hardware at a specific power level using > >> sysfs. > > > > I tried that, but it still flickers. > > It's probably pll stability. There seem to be a number of regressions > since the pll code was rewritten to support matching the hdmi clocks > more closely. Does this patch help? > > diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c > b/drivers/gpu/drm/radeon/atombios_crtc.c > index dac78ad..b86f06a 100644 > --- a/drivers/gpu/drm/radeon/atombios_crtc.c > +++ b/drivers/gpu/drm/radeon/atombios_crtc.c > @@ -569,6 +569,8 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc, > radeon_crtc->pll_flags = 0; > > if (ASIC_IS_AVIVO(rdev)) { > + radeon_crtc->pll_flags |= RADEON_PLL_PREFER_MINM_OVER_MAXP; > + > if ((rdev->family == CHIP_RS600) || > (rdev->family == CHIP_RS690) || > (rdev->family == CHIP_RS740)) > Help.. maybe... it is tricky to tell. It definitely does _not_ fix the issue completely. > Unfortunately, it can't be applied as is because we had a similar > patch which was reverted because it regressed a bunch of other > systems. The actual pll limits probably need to be tweaked. Any ideas how to tweak the pll limits? Thanks, Pavel
diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c index dac78ad..b86f06a 100644 --- a/drivers/gpu/drm/radeon/atombios_crtc.c +++ b/drivers/gpu/drm/radeon/atombios_crtc.c @@ -569,6 +569,8 @@ static u32 atombios_adjust_pll(struct drm_crtc *crtc, radeon_crtc->pll_flags = 0; if (ASIC_IS_AVIVO(rdev)) { + radeon_crtc->pll_flags |= RADEON_PLL_PREFER_MINM_OVER_MAXP; + if ((rdev->family == CHIP_RS600) || (rdev->family == CHIP_RS690) || (rdev->family == CHIP_RS740))