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

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'fbdev-for-3.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/plagnioj/linux-fbdev

Pull fbdev fixes from Jean-Christophe PLAGNIOL-VILLARD:
"This contains some small fixes

- Atmel LCDC: fix blank the backlight on remove
- ps3fb: fix compile warning
- OMAPDSS: Fix crash with DT boot"

* tag 'fbdev-for-3.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/plagnioj/linux-fbdev:
atmel_lcdfb: blank the backlight on remove
trivial: atmel_lcdfb: add missing error message
OMAPDSS: Fix crash with DT boot
fbdev/ps3fb: fix compile warning

+42 -5
+3
drivers/gpu/drm/omapdrm/omap_drv.c
··· 649 649 650 650 static int pdev_probe(struct platform_device *device) 651 651 { 652 + if (omapdss_is_initialized() == false) 653 + return -EPROBE_DEFER; 654 + 652 655 DBG("%s", device->name); 653 656 return drm_platform_init(&omap_drm_driver, device); 654 657 }
+3
drivers/media/platform/omap/omap_vout.c
··· 2150 2150 struct omap_dss_device *def_display; 2151 2151 struct omap2video_device *vid_dev = NULL; 2152 2152 2153 + if (omapdss_is_initialized() == false) 2154 + return -EPROBE_DEFER; 2155 + 2153 2156 ret = omapdss_compat_init(); 2154 2157 if (ret) { 2155 2158 dev_err(&pdev->dev, "failed to init dss\n");
+12 -3
drivers/video/atmel_lcdfb.c
··· 223 223 224 224 static void exit_backlight(struct atmel_lcdfb_info *sinfo) 225 225 { 226 - if (sinfo->backlight) 227 - backlight_device_unregister(sinfo->backlight); 226 + if (!sinfo->backlight) 227 + return; 228 + 229 + if (sinfo->backlight->ops) { 230 + sinfo->backlight->props.power = FB_BLANK_POWERDOWN; 231 + sinfo->backlight->ops->update_status(sinfo->backlight); 232 + } 233 + backlight_device_unregister(sinfo->backlight); 228 234 } 229 235 230 236 #else ··· 467 461 if (info->fix.smem_len) { 468 462 unsigned int smem_len = (var->xres_virtual * var->yres_virtual 469 463 * ((var->bits_per_pixel + 7) / 8)); 470 - if (smem_len > info->fix.smem_len) 464 + if (smem_len > info->fix.smem_len) { 465 + dev_err(dev, "Frame buffer is too small (%u) for screen size (need at least %u)\n", 466 + info->fix.smem_len, smem_len); 471 467 return -EINVAL; 468 + } 472 469 } 473 470 474 471 /* Saturate vertical and horizontal timings at maximum values */
+19 -1
drivers/video/omap2/dss/core.c
··· 53 53 module_param_named(def_disp, def_disp_name, charp, 0); 54 54 MODULE_PARM_DESC(def_disp, "default display name"); 55 55 56 + static bool dss_initialized; 57 + 56 58 const char *omapdss_get_default_display_name(void) 57 59 { 58 60 return core.default_display_name; ··· 67 65 return pdata->version; 68 66 } 69 67 EXPORT_SYMBOL(omapdss_get_version); 68 + 69 + bool omapdss_is_initialized(void) 70 + { 71 + return dss_initialized; 72 + } 73 + EXPORT_SYMBOL(omapdss_is_initialized); 70 74 71 75 struct platform_device *dss_get_core_pdev(void) 72 76 { ··· 611 603 return r; 612 604 } 613 605 606 + dss_initialized = true; 607 + 614 608 return 0; 615 609 } 616 610 ··· 643 633 644 634 static int __init omap_dss_init2(void) 645 635 { 646 - return omap_dss_register_drivers(); 636 + int r; 637 + 638 + r = omap_dss_register_drivers(); 639 + if (r) 640 + return r; 641 + 642 + dss_initialized = true; 643 + 644 + return 0; 647 645 } 648 646 649 647 core_initcall(omap_dss_init);
+3
drivers/video/omap2/omapfb/omapfb-main.c
··· 2416 2416 2417 2417 DBG("omapfb_probe\n"); 2418 2418 2419 + if (omapdss_is_initialized() == false) 2420 + return -EPROBE_DEFER; 2421 + 2419 2422 if (pdev->num_resources != 0) { 2420 2423 dev_err(&pdev->dev, "probed for an unknown device\n"); 2421 2424 r = -ENODEV;
+1 -1
drivers/video/ps3fb.c
··· 710 710 r = vm_iomap_memory(vma, info->fix.smem_start, info->fix.smem_len); 711 711 712 712 dev_dbg(info->device, "ps3fb: mmap framebuffer P(%lx)->V(%lx)\n", 713 - info->fix.smem_start + vma->vm_pgoff << PAGE_SHIFT, 713 + info->fix.smem_start + (vma->vm_pgoff << PAGE_SHIFT), 714 714 vma->vm_start); 715 715 716 716 return r;
+1
include/video/omapdss.h
··· 748 748 }; 749 749 750 750 enum omapdss_version omapdss_get_version(void); 751 + bool omapdss_is_initialized(void); 751 752 752 753 int omap_dss_register_driver(struct omap_dss_driver *); 753 754 void omap_dss_unregister_driver(struct omap_dss_driver *);