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

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

Merge tag 'fbdev-main-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux into next

Pull main fbdev changes from Tomi Valkeinen:
 "Mainly fixes and small improvements.  The biggest change seems to be
  backlight control support for mx3fb"

* tag 'fbdev-main-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (31 commits)
  drivers/video/fbdev/fb-puv3.c: Add header files for function unifb_mmap
  video: fbdev: s3fb.c: Fix for possible null pointer dereference
  video: fbdev: grvga.c: Fix for possible null pointer dereference
  matroxfb: perform a dummy read of M_STATUS
  video: of: display_timing: fix default native-mode setting
  video: delete unneeded call to platform_get_drvdata
  video: mx3fb: Add backlight control support
  video: omap: delete support for early fbmem allocation
  video: of: display_timing: remove two unsafe error messages
  fbdev: fbmem: remove positive test on unsigned values
  fbcon: Fix memory leak in con2fb_release_oldinfo()
  video: Kconfig: Add a dependency to the Goldfish framebuffer driver
  video: exynos: Add a dependency to the menu
  video: mx3fb: Use devm_kzalloc
  video/nuc900: allow modular build
  video: atmel needs FB_BACKLIGHT
  video: export fb_prepare_logo
  video/mbx: fix building debugfs support
  video/omap: fix modular build
  video: clarify I2C dependencies
  ...
parents 4dc4226f fbc6c4a1
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -748,6 +748,7 @@ static int con2fb_release_oldinfo(struct vc_data *vc, struct fb_info *oldinfo,
		fbcon_del_cursor_timer(oldinfo);
		kfree(ops->cursor_state.mask);
		kfree(ops->cursor_data);
		kfree(ops->cursor_src);
		kfree(ops->fontbuffer);
		kfree(oldinfo->fbcon_par);
		oldinfo->fbcon_par = NULL;
+8 −3
Original line number Diff line number Diff line
@@ -360,6 +360,7 @@ config FB_CYBER2000_DDC
config FB_CYBER2000_I2C
	bool "CyberPro 2000/2010/5000 I2C support"
	depends on FB_CYBER2000 && I2C && ARCH_NETWINDER
	depends on I2C=y || FB_CYBER2000=m
	select I2C_ALGOBIT
	help
	  Enable support for the I2C video decoder interface on the
@@ -966,6 +967,7 @@ config FB_S1D13XXX
config FB_ATMEL
	tristate "AT91/AT32 LCD Controller support"
	depends on FB && HAVE_FB_ATMEL
	select FB_BACKLIGHT
	select FB_CFB_FILLRECT
	select FB_CFB_COPYAREA
	select FB_CFB_IMAGEBLIT
@@ -1971,6 +1973,7 @@ config FB_W100
config FB_SH_MOBILE_LCDC
	tristate "SuperH Mobile LCDC framebuffer support"
	depends on FB && (SUPERH || ARCH_SHMOBILE) && HAVE_CLK
	depends on FB_SH_MOBILE_MERAM || !FB_SH_MOBILE_MERAM
	select FB_SYS_FILLRECT
	select FB_SYS_COPYAREA
	select FB_SYS_IMAGEBLIT
@@ -1993,7 +1996,7 @@ config FB_SH_MOBILE_HDMI

config FB_TMIO
	tristate "Toshiba Mobile IO FrameBuffer support"
	depends on FB && MFD_CORE
	depends on FB && (MFD_TMIO || COMPILE_TEST)
	select FB_CFB_FILLRECT
	select FB_CFB_COPYAREA
	select FB_CFB_IMAGEBLIT
@@ -2062,7 +2065,7 @@ config FB_S3C2410_DEBUG
	  through sysfs

config FB_NUC900
        bool "NUC900 LCD framebuffer support"
        tristate "NUC900 LCD framebuffer support"
        depends on FB && ARCH_W90X900
        select FB_CFB_FILLRECT
        select FB_CFB_COPYAREA
@@ -2169,7 +2172,7 @@ config FB_XILINX

config FB_GOLDFISH
	tristate "Goldfish Framebuffer"
	depends on FB && HAS_DMA
	depends on FB && HAS_DMA && (GOLDFISH || COMPILE_TEST)
	select FB_CFB_FILLRECT
	select FB_CFB_COPYAREA
	select FB_CFB_IMAGEBLIT
@@ -2295,6 +2298,7 @@ endchoice
config FB_MB862XX_I2C
	bool "Support I2C bus on MB862XX GDC"
	depends on FB_MB862XX && I2C
	depends on FB_MB862XX=m || I2C=y
	default y
	help
	  Selecting this option adds Coral-P(A)/Lime GDC I2C bus adapter
@@ -2332,6 +2336,7 @@ config FB_MX3
	select FB_CFB_FILLRECT
	select FB_CFB_COPYAREA
	select FB_CFB_IMAGEBLIT
	select BACKLIGHT_CLASS_DEVICE
	default y
	help
	  This is a framebuffer device for the i.MX31 LCD Controller. So
+0 −2
Original line number Diff line number Diff line
@@ -717,8 +717,6 @@ static int bfin_bf54x_remove(struct platform_device *pdev)
#ifdef CONFIG_PM
static int bfin_bf54x_suspend(struct platform_device *pdev, pm_message_t state)
{
	struct fb_info *fbinfo = platform_get_drvdata(pdev);

	bfin_write_EPPI0_CONTROL(bfin_read_EPPI0_CONTROL() & ~EPPI_EN);
	disable_dma(CH_EPPI0);
	bfin_write_EPPI0_STATUS(0xFFFF);
+4 −3
Original line number Diff line number Diff line
@@ -433,7 +433,7 @@ static void fb_do_show_logo(struct fb_info *info, struct fb_image *image,
			image->dx += image->width + 8;
		}
	} else if (rotate == FB_ROTATE_UD) {
		for (x = 0; x < num && image->dx >= 0; x++) {
		for (x = 0; x < num; x++) {
			info->fbops->fb_imageblit(info, image);
			image->dx -= image->width + 8;
		}
@@ -445,7 +445,7 @@ static void fb_do_show_logo(struct fb_info *info, struct fb_image *image,
			image->dy += image->height + 8;
		}
	} else if (rotate == FB_ROTATE_CCW) {
		for (x = 0; x < num && image->dy >= 0; x++) {
		for (x = 0; x < num; x++) {
			info->fbops->fb_imageblit(info, image);
			image->dy -= image->height + 8;
		}
@@ -674,6 +674,7 @@ int fb_show_logo(struct fb_info *info, int rotate)
int fb_prepare_logo(struct fb_info *info, int rotate) { return 0; }
int fb_show_logo(struct fb_info *info, int rotate) { return 0; }
#endif /* CONFIG_LOGO */
EXPORT_SYMBOL(fb_prepare_logo);
EXPORT_SYMBOL(fb_show_logo);

static void *fb_seq_start(struct seq_file *m, loff_t *pos)
@@ -1179,7 +1180,7 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
			return -EFAULT;
		if (con2fb.console < 1 || con2fb.console > MAX_NR_CONSOLES)
			return -EINVAL;
		if (con2fb.framebuffer < 0 || con2fb.framebuffer >= FB_MAX)
		if (con2fb.framebuffer >= FB_MAX)
			return -EINVAL;
		if (!registered_fb[con2fb.framebuffer])
			request_module("fb%d", con2fb.framebuffer);
+8 −1
Original line number Diff line number Diff line
@@ -1012,13 +1012,20 @@ void fb_edid_add_monspecs(unsigned char *edid, struct fb_monspecs *specs)
	while (pos < edid[2]) {
		u8 len = edid[pos] & 0x1f, type = (edid[pos] >> 5) & 7;
		pr_debug("Data block %u of %u bytes\n", type, len);
		if (type == 2)
		if (type == 2) {
			for (i = pos; i < pos + len; i++) {
				u8 idx = edid[pos + i] & 0x7f;
				svd[svd_n++] = idx;
				pr_debug("N%sative mode #%d\n",
					 edid[pos + i] & 0x80 ? "" : "on-n", idx);
			}
		} else if (type == 3 && len >= 3) {
			/* Check Vendor Specific Data Block.  For HDMI,
			   it is always 00-0C-03 for HDMI Licensing, LLC. */
			if (edid[pos + 1] == 3 && edid[pos + 2] == 0xc &&
			    edid[pos + 3] == 0)
				specs->misc |= FB_MISC_HDMI;
		}
		pos += len + 1;
	}

Loading