Completely ignore EDID for KMS, use user-supplied kernel param (video=)?

Paul Sokolovsky pmiscml at gmail.com
Tue Nov 23 12:38:48 PST 2010


Hello,

On Tue, 23 Nov 2010 02:00:51 -0500
Alex Deucher <alexdeucher at gmail.com> wrote:

[]

> > My specific issue is that there's an LVDS (of MSI X410/X430
> > notebook) which has right dimensions and refresh rate, but wrong,
> > if not say unrelated, clock settings. The end result is that
> > there's tearing-off, broken sync like on an old dying TV. More
> > details are at
> > http://wwww.ubuntuforums.org/showthread.php?p=10120939 . That's on
> > 2.6.35 (stock Ubuntu 10.10 kernel). I was able to set CVT timings
> > on X which gave stable picture, but no luck persuading kernel to do
> > the same (I used video=LVDS-1:1366x768M at 60 param, also tried more
> > conventional modes like 1024x768).
> >
> > I'd appreciate any hints.
> 
> Assuming your laptop contains a radeon, the panel timing comes from a
> table in the vbios.  The timing problem is most likely not due to an
> EDID problem, but to pll dividers that that panel doesn't like.  Try
> booting with radeon.new_pll=0 on the kernel command line or try kernel
> 2.6.37.

Pure magic! ;-) Thanks for quick reply, that worked, even though I
really thought that's a case of broken EDID, as X had the same
behavior, which I could work around by setting CVT timing using xrandr
(while nomodeset for kernel). Just for the info, that was for Radeon HD
3200, though the same issue was reported for Radeon X1250.

However, can you please elaborate about overring mode for KMS-based
driver on the kernel command line? I studied kernel source more myself,
and see that video= parsing for KMS is being performed by
drm_fb_helper.c, and its routines seem to be called by the radeon
driver. So, based on the code

        DRM_DEBUG_KMS("cmdline mode for connector %s
        %dx%d@%dHz%s%s%s\n", drm_get_connector_name(connector), xres,
        yres, (refresh) ? refresh : 60, (rb) ? " reduced blanking" :
                "", (margins) ? " with margins" : "", (interlace) ?
                " interlaced" : "");

I set following kernel params:

drm.debug=7 video=LVDS-1:1366x768M at 60

But expected output didn't appear in dmesg. I also tried
"video=LVDS:1366x768M at 60" with the same result. What could be wrong?

> 
> Alex


-- 
Best regards,
 Paul                          mailto:pmiscml at gmail.com


More information about the dri-devel mailing list