On Thu, 19 Nov 2009 18:58:01 +0100
Krzysztof Helt <krz...@po...> wrote:
> From: Krzysztof Helt <krz...@wp...>
>
> If the i810fb driver is configured for use only predefined discrete video modes
> the wrong pixclock value is used. The par->regs.pixclock value is a value from
> the previous mode when a video mode is switched. It results in unreadable screen
> if the old video mode has higher resolution and the new mode with the old (high)
> pixclock is outside attached monitor's specs.
>
> Signed-off-by: Krzysztof Helt <krz...@wp...>
> ---
> I have noticed this testing the patch named "i810fb: Fix stack exploding".
>
> This patch requires my patch send to Alan Cox and Andrew Morton
> named "i810fb: Fix stack exploding".
>
> --- drivers/video/i810/i810_dvt.c~ 2009-11-17 19:38:11.002864450 +0100
> +++ drivers/video/i810/i810_dvt.c 2009-11-19 18:48:52.518846238 +0100
Please use `patch -p1' form. That would be:
--- a/drivers/video/i810/i810_dvt.c
+++ a/drivers/video/i810/i810_dvt.c
> @@ -233,7 +233,7 @@ static int i810fb_find_best_mode(u32 xre
> void i810fb_encode_registers(const struct fb_var_screeninfo *var,
> struct i810fb_par *par, u32 xres, u32 yres)
> {
> - u32 i_best = i810fb_find_best_mode(xres, yres, par->regs.pixclock);
> + u32 i_best = i810fb_find_best_mode(xres, yres, var->pixclock);
>
> par->regs = std_modes[i_best];
Confused. My drivers/video/i810/i810_dvt.c is quiet different from yours:
void i810fb_encode_registers(const struct fb_var_screeninfo *var,
struct i810fb_par *par, u32 xres, u32 yres)
{
u32 diff = 0, diff_best = 0xFFFFFFFF, i = 0, i_best = 0;
u8 hfl;
|