Guys:

I googled around and found this bug report after getting hit with the "FBIOPUT_VSCREENINFO succeeded but modified mode" error. Curious, I modified my fbdev_modes_equal() as follows:

static Bool
fbdev_modes_equal(struct fb_var_screeninfo *set, struct fb_var_screeninfo *req)
{
 xf86DrvMsg(-1, X_WARNING,
            "xres_virtual %d %d\n"
            "yres_virtual %d %d\n"
            "bits_per_pixel %d %d\n"
            "red.length %d %d\n"
            "green.length %d %d\n"
            "blue.length %d %d\n"
            "xres %d %d\n"
            "yres %d %d\n"
            "pixclock %d %d\n"
            "right_margin %d %d\n"
            "hsync_len %d %d\n"
            "left_margin %d %d\n"
            "lower_margin %d %d\n"
            "vsync_len %d %d\n"
            "upper_margin %d %d\n"
            "sync %d %d\n"
            "vmode %d %d\n",
            set->xres_virtual, req->xres_virtual,
            set->yres_virtual, req->yres_virtual,
            set->bits_per_pixel, req->bits_per_pixel,
            set->red.length, req->red.length,
            set->green.length, req->green.length,
            set->blue.length, req->blue.length,
            set->xres, req->xres, set->yres, req->yres,
            set->pixclock, req->pixclock,
            set->right_margin, req->right_margin,
            set->hsync_len, req->hsync_len,
            set->left_margin, req->left_margin,
            set->lower_margin, req->lower_margin,
            set->vsync_len, req->vsync_len,
            set->upper_margin, req->upper_margin,
            set->sync, req->sync, set->vmode, req->vmode);

 return 1;
}


... and rebuilt the xorg-server-1.4.1~git20080131 package. My target is an IMX27ADS (arm) board, running sid. A day later :), the output:

xres_virtual 240 240
yres_virtual 320 320
bits_per_pixel 16 16
red.length 5 5
green.length 6 6
blue.length 5 5
xres 240 240
yres 320 320
pixclock 185942 185942
right_margin 16 16
hsync_len 1 1
left_margin 9 9
lower_margin 9 9
vsync_len 1 1
upper_margin 7 7
sync 2013265921 1
vmode 0 0



So on my platform, the difference is in the sync value. Not quite sure what that value is, and still tracking down whether the fb driver in the kernel is supposed to be setting it or not. Or whether the logic in fbdev_modes_equal() should be looking at it at all.


b.g.

--
Bill Gatliff
[EMAIL PROTECTED]




--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to