Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

fbdev: sh_mobile_lcdc: use correct number of modes, when using the default

Fix zero mode number, when using the default 720p mode.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

authored by

Guennadi Liakhovetski and committed by
Paul Mundt
5fd284e6 5ae0cf82

+8 -6
+8 -6
drivers/video/sh_mobile_lcdcfb.c
··· 1198 1198 const struct fb_videomode *mode = cfg->lcd_cfg; 1199 1199 unsigned long max_size = 0; 1200 1200 int k; 1201 + int num_cfg; 1201 1202 1202 1203 ch->info = framebuffer_alloc(0, &pdev->dev); 1203 1204 if (!ch->info) { ··· 1234 1233 info->fix = sh_mobile_lcdc_fix; 1235 1234 info->fix.smem_len = max_size * (cfg->bpp / 8) * 2; 1236 1235 1237 - if (!mode) 1236 + if (!mode) { 1238 1237 mode = &default_720p; 1238 + num_cfg = 1; 1239 + } else { 1240 + num_cfg = ch->cfg.num_cfg; 1241 + } 1242 + 1243 + fb_videomode_to_modelist(mode, num_cfg, &info->modelist); 1239 1244 1240 1245 fb_videomode_to_var(var, mode); 1241 1246 /* Default Y virtual resolution is 2x panel size */ ··· 1289 1282 1290 1283 for (i = 0; i < j; i++) { 1291 1284 struct sh_mobile_lcdc_chan *ch = priv->ch + i; 1292 - const struct fb_videomode *mode = ch->cfg.lcd_cfg; 1293 - 1294 - if (!mode) 1295 - mode = &default_720p; 1296 1285 1297 1286 info = ch->info; 1298 1287 ··· 1301 1298 } 1302 1299 } 1303 1300 1304 - fb_videomode_to_modelist(mode, ch->cfg.num_cfg, &info->modelist); 1305 1301 error = register_framebuffer(info); 1306 1302 if (error < 0) 1307 1303 goto err1;