Minor fbdev fixes for 3.13.
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.14 (GNU/Linux) iQIcBAABAgAGBQJSoGkLAAoJEPo9qoy8lh71jssP+wbZbhM9IDRTfkPaJLWc9DNK 7xPBZk8wMq/QiVNaGZBqpqO8naAA+FgtV9iKV4HzMX3bZOcTA+5QG7KiI/qBfsko J1IN+5x8KsD+VMsBOVr2TuRikKerJ4wDYX/KBoMsTgSaNBALUyYRjfkK73QDW4bJ dwVqxdsVluXctfcHPYw8kidL/oj7ayD/CZQK72qLxvLpSe86lgu2FOP15uAmFuwV ROVQG8LJ/PD7wJP+lxaL4oDQb26kRGa6+KqGlX7gy/bgCDd12/VApcH6RRLD0ZF4 sQZMO+u4JEI0pqQZEqIfw+UGX+k3KtIm3tMIFoaffVP5By4GEaeWIvIaeolzs/KR nJ2heZ4TWzdsz3RTAUJ4lMuppBEaiDqSzKTmLMVciwrZtMxCeru3ytOJu6XFfj5C aqYinjFJcSb5BrQC+w1MozXioBh3N1ry55Aeku99wgOODun+oebKK4QkEpHXGqiV lqqs5y0BEPlGGUl2wmWZLnHq6b4hVv9ijNI1M5bdQuS9h1ym7aov/IVM1fUte3zM nP9Tgoorip0ma76ApK9LRozkiFN0dqqKUozZbeq42bZsIqyXtR3LGaulzeg6hpkB qdgagTJzjIRv1lYZVneEYnaprWR6SO5pQroUHt3Hd5PuRDOzyrT9WiLtWMRKkGAB PQ3OoGhdmObVXtTsNyO9 =jsG4 -----END PGP SIGNATURE----- Merge tag 'fbdev-fixes-3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux Pull minor fbdev fixes from Tomi Valkeinen. * tag 'fbdev-fixes-3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: video: vt8500: fix error handling in probe() atmel_lcdfb: fix module autoload fbdev: sh_mobile_meram: Fix defined but not used compiler warnings video: kyro: fix incorrect sizes when copying to userspace ARM: OMAPFB: panel-sony-acx565akm: fix bad unlock balance
This commit is contained in:
commit
59fb2f0e9e
|
@ -131,6 +131,7 @@ static const struct platform_device_id atmel_lcdfb_devtypes[] = {
|
||||||
/* terminator */
|
/* terminator */
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
MODULE_DEVICE_TABLE(platform, atmel_lcdfb_devtypes);
|
||||||
|
|
||||||
static struct atmel_lcdfb_config *
|
static struct atmel_lcdfb_config *
|
||||||
atmel_lcdfb_get_config(struct platform_device *pdev)
|
atmel_lcdfb_get_config(struct platform_device *pdev)
|
||||||
|
|
|
@ -624,15 +624,15 @@ static int kyrofb_ioctl(struct fb_info *info,
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
case KYRO_IOCTL_UVSTRIDE:
|
case KYRO_IOCTL_UVSTRIDE:
|
||||||
if (copy_to_user(argp, &deviceInfo.ulOverlayUVStride, sizeof(unsigned long)))
|
if (copy_to_user(argp, &deviceInfo.ulOverlayUVStride, sizeof(deviceInfo.ulOverlayUVStride)))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
break;
|
break;
|
||||||
case KYRO_IOCTL_STRIDE:
|
case KYRO_IOCTL_STRIDE:
|
||||||
if (copy_to_user(argp, &deviceInfo.ulOverlayStride, sizeof(unsigned long)))
|
if (copy_to_user(argp, &deviceInfo.ulOverlayStride, sizeof(deviceInfo.ulOverlayStride)))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
break;
|
break;
|
||||||
case KYRO_IOCTL_OVERLAY_OFFSET:
|
case KYRO_IOCTL_OVERLAY_OFFSET:
|
||||||
if (copy_to_user(argp, &deviceInfo.ulOverlayOffset, sizeof(unsigned long)))
|
if (copy_to_user(argp, &deviceInfo.ulOverlayOffset, sizeof(deviceInfo.ulOverlayOffset)))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -526,6 +526,8 @@ static int acx565akm_panel_power_on(struct omap_dss_device *dssdev)
|
||||||
struct omap_dss_device *in = ddata->in;
|
struct omap_dss_device *in = ddata->in;
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
|
mutex_lock(&ddata->mutex);
|
||||||
|
|
||||||
dev_dbg(&ddata->spi->dev, "%s\n", __func__);
|
dev_dbg(&ddata->spi->dev, "%s\n", __func__);
|
||||||
|
|
||||||
in->ops.sdi->set_timings(in, &ddata->videomode);
|
in->ops.sdi->set_timings(in, &ddata->videomode);
|
||||||
|
@ -614,10 +616,7 @@ static int acx565akm_enable(struct omap_dss_device *dssdev)
|
||||||
if (omapdss_device_is_enabled(dssdev))
|
if (omapdss_device_is_enabled(dssdev))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
mutex_lock(&ddata->mutex);
|
|
||||||
r = acx565akm_panel_power_on(dssdev);
|
r = acx565akm_panel_power_on(dssdev);
|
||||||
mutex_unlock(&ddata->mutex);
|
|
||||||
|
|
||||||
if (r)
|
if (r)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
|
|
|
@ -569,6 +569,7 @@ EXPORT_SYMBOL_GPL(sh_mobile_meram_cache_update);
|
||||||
* Power management
|
* Power management
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#if defined(CONFIG_PM_SLEEP) || defined(CONFIG_PM_RUNTIME)
|
||||||
static int sh_mobile_meram_suspend(struct device *dev)
|
static int sh_mobile_meram_suspend(struct device *dev)
|
||||||
{
|
{
|
||||||
struct platform_device *pdev = to_platform_device(dev);
|
struct platform_device *pdev = to_platform_device(dev);
|
||||||
|
@ -611,6 +612,7 @@ static int sh_mobile_meram_resume(struct device *dev)
|
||||||
meram_write_reg(priv->base, common_regs[i], priv->regs[i]);
|
meram_write_reg(priv->base, common_regs[i], priv->regs[i]);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif /* CONFIG_PM_SLEEP || CONFIG_PM_RUNTIME */
|
||||||
|
|
||||||
static UNIVERSAL_DEV_PM_OPS(sh_mobile_meram_dev_pm_ops,
|
static UNIVERSAL_DEV_PM_OPS(sh_mobile_meram_dev_pm_ops,
|
||||||
sh_mobile_meram_suspend,
|
sh_mobile_meram_suspend,
|
||||||
|
|
|
@ -293,8 +293,7 @@ static int vt8500lcd_probe(struct platform_device *pdev)
|
||||||
+ sizeof(u32) * 16, GFP_KERNEL);
|
+ sizeof(u32) * 16, GFP_KERNEL);
|
||||||
if (!fbi) {
|
if (!fbi) {
|
||||||
dev_err(&pdev->dev, "Failed to initialize framebuffer device\n");
|
dev_err(&pdev->dev, "Failed to initialize framebuffer device\n");
|
||||||
ret = -ENOMEM;
|
return -ENOMEM;
|
||||||
goto failed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
strcpy(fbi->fb.fix.id, "VT8500 LCD");
|
strcpy(fbi->fb.fix.id, "VT8500 LCD");
|
||||||
|
@ -327,15 +326,13 @@ static int vt8500lcd_probe(struct platform_device *pdev)
|
||||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||||
if (res == NULL) {
|
if (res == NULL) {
|
||||||
dev_err(&pdev->dev, "no I/O memory resource defined\n");
|
dev_err(&pdev->dev, "no I/O memory resource defined\n");
|
||||||
ret = -ENODEV;
|
return -ENODEV;
|
||||||
goto failed_fbi;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
res = request_mem_region(res->start, resource_size(res), "vt8500lcd");
|
res = request_mem_region(res->start, resource_size(res), "vt8500lcd");
|
||||||
if (res == NULL) {
|
if (res == NULL) {
|
||||||
dev_err(&pdev->dev, "failed to request I/O memory\n");
|
dev_err(&pdev->dev, "failed to request I/O memory\n");
|
||||||
ret = -EBUSY;
|
return -EBUSY;
|
||||||
goto failed_fbi;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fbi->regbase = ioremap(res->start, resource_size(res));
|
fbi->regbase = ioremap(res->start, resource_size(res));
|
||||||
|
@ -346,17 +343,19 @@ static int vt8500lcd_probe(struct platform_device *pdev)
|
||||||
}
|
}
|
||||||
|
|
||||||
disp_timing = of_get_display_timings(pdev->dev.of_node);
|
disp_timing = of_get_display_timings(pdev->dev.of_node);
|
||||||
if (!disp_timing)
|
if (!disp_timing) {
|
||||||
return -EINVAL;
|
ret = -EINVAL;
|
||||||
|
goto failed_free_io;
|
||||||
|
}
|
||||||
|
|
||||||
ret = of_get_fb_videomode(pdev->dev.of_node, &of_mode,
|
ret = of_get_fb_videomode(pdev->dev.of_node, &of_mode,
|
||||||
OF_USE_NATIVE_MODE);
|
OF_USE_NATIVE_MODE);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
goto failed_free_io;
|
||||||
|
|
||||||
ret = of_property_read_u32(pdev->dev.of_node, "bits-per-pixel", &bpp);
|
ret = of_property_read_u32(pdev->dev.of_node, "bits-per-pixel", &bpp);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
goto failed_free_io;
|
||||||
|
|
||||||
/* try allocating the framebuffer */
|
/* try allocating the framebuffer */
|
||||||
fb_mem_len = of_mode.xres * of_mode.yres * 2 * (bpp / 8);
|
fb_mem_len = of_mode.xres * of_mode.yres * 2 * (bpp / 8);
|
||||||
|
@ -364,7 +363,8 @@ static int vt8500lcd_probe(struct platform_device *pdev)
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
if (!fb_mem_virt) {
|
if (!fb_mem_virt) {
|
||||||
pr_err("%s: Failed to allocate framebuffer\n", __func__);
|
pr_err("%s: Failed to allocate framebuffer\n", __func__);
|
||||||
return -ENOMEM;
|
ret = -ENOMEM;
|
||||||
|
goto failed_free_io;
|
||||||
}
|
}
|
||||||
|
|
||||||
fbi->fb.fix.smem_start = fb_mem_phys;
|
fbi->fb.fix.smem_start = fb_mem_phys;
|
||||||
|
@ -447,9 +447,6 @@ failed_free_io:
|
||||||
iounmap(fbi->regbase);
|
iounmap(fbi->regbase);
|
||||||
failed_free_res:
|
failed_free_res:
|
||||||
release_mem_region(res->start, resource_size(res));
|
release_mem_region(res->start, resource_size(res));
|
||||||
failed_fbi:
|
|
||||||
kfree(fbi);
|
|
||||||
failed:
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue