Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c361cb59 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'fbdev-for-3.10-rc4' of...

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
parents 6cf3c736 56c21b53
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -649,6 +649,9 @@ static void pdev_shutdown(struct platform_device *device)

static int pdev_probe(struct platform_device *device)
{
	if (omapdss_is_initialized() == false)
		return -EPROBE_DEFER;

	DBG("%s", device->name);
	return drm_platform_init(&omap_drm_driver, device);
}
+3 −0
Original line number Diff line number Diff line
@@ -2150,6 +2150,9 @@ static int __init omap_vout_probe(struct platform_device *pdev)
	struct omap_dss_device *def_display;
	struct omap2video_device *vid_dev = NULL;

	if (omapdss_is_initialized() == false)
		return -EPROBE_DEFER;

	ret = omapdss_compat_init();
	if (ret) {
		dev_err(&pdev->dev, "failed to init dss\n");
+12 −3
Original line number Diff line number Diff line
@@ -223,7 +223,13 @@ static void init_backlight(struct atmel_lcdfb_info *sinfo)

static void exit_backlight(struct atmel_lcdfb_info *sinfo)
{
	if (sinfo->backlight)
	if (!sinfo->backlight)
		return;

	if (sinfo->backlight->ops) {
		sinfo->backlight->props.power = FB_BLANK_POWERDOWN;
		sinfo->backlight->ops->update_status(sinfo->backlight);
	}
	backlight_device_unregister(sinfo->backlight);
}

@@ -461,9 +467,12 @@ static int atmel_lcdfb_check_var(struct fb_var_screeninfo *var,
	if (info->fix.smem_len) {
		unsigned int smem_len = (var->xres_virtual * var->yres_virtual
					 * ((var->bits_per_pixel + 7) / 8));
		if (smem_len > info->fix.smem_len)
		if (smem_len > info->fix.smem_len) {
			dev_err(dev, "Frame buffer is too small (%u) for screen size (need at least %u)\n",
				info->fix.smem_len, smem_len);
			return -EINVAL;
		}
	}

	/* Saturate vertical and horizontal timings at maximum values */
	var->vsync_len = min_t(u32, var->vsync_len,
+19 −1
Original line number Diff line number Diff line
@@ -53,6 +53,8 @@ static char *def_disp_name;
module_param_named(def_disp, def_disp_name, charp, 0);
MODULE_PARM_DESC(def_disp, "default display name");

static bool dss_initialized;

const char *omapdss_get_default_display_name(void)
{
	return core.default_display_name;
@@ -66,6 +68,12 @@ enum omapdss_version omapdss_get_version(void)
}
EXPORT_SYMBOL(omapdss_get_version);

bool omapdss_is_initialized(void)
{
	return dss_initialized;
}
EXPORT_SYMBOL(omapdss_is_initialized);

struct platform_device *dss_get_core_pdev(void)
{
	return core.pdev;
@@ -603,6 +611,8 @@ static int __init omap_dss_init(void)
		return r;
	}

	dss_initialized = true;

	return 0;
}

@@ -633,7 +643,15 @@ static int __init omap_dss_init(void)

static int __init omap_dss_init2(void)
{
	return omap_dss_register_drivers();
	int r;

	r = omap_dss_register_drivers();
	if (r)
		return r;

	dss_initialized = true;

	return 0;
}

core_initcall(omap_dss_init);
+3 −0
Original line number Diff line number Diff line
@@ -2416,6 +2416,9 @@ static int omapfb_probe(struct platform_device *pdev)

	DBG("omapfb_probe\n");

	if (omapdss_is_initialized() == false)
		return -EPROBE_DEFER;

	if (pdev->num_resources != 0) {
		dev_err(&pdev->dev, "probed for an unknown device\n");
		r = -ENODEV;
Loading