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

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

Merge branch 'fbdev-fixes-for-linus' of...

Merge branch 'fbdev-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6

* 'fbdev-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6:
  sisfb: delete osdef.h
  sisfb: move the CONFIG warning to sis_main.c
  sisfb: replace SiS_SetMemory with memset_io
  sisfb: remove InPort/OutPort wrappers
  sisfb: use CONFIG_FB_SIS_301/315 instead of SIS301/315H
  sisfb: delete redudant #define SIS_LINUX_KERNEL
  sisfb: delete dead SIS_XORG_XF86 code
  sisfb: delete fallback code for pci_map_rom()
  sisfb: delete obsolete PCI ROM bug workaround
  fbdev: Update documentation index file.
  lxfb: Program panel v/h sync output polarity correctly
  fbcmap: integer overflow bug
  fbcmap: cleanup white space in fb_alloc_cmap()
  MAINTAINERS: Add fbdev patchwork entry, tidy up file patterns.
  fbdev: da8xx: punt duplicated FBIO_WAITFORVSYNC define
  fbdev: sh_mobile_lcdcfb: fix bug in reconfig()
parents 3070fb88 c07a1c6b
Loading
Loading
Loading
Loading
+25 −7
Original line number Original line Diff line number Diff line
@@ -4,33 +4,41 @@ please mail me.
				    Geert Uytterhoeven <geert@linux-m68k.org>
				    Geert Uytterhoeven <geert@linux-m68k.org>


00-INDEX
00-INDEX
	- this file
	- this file.
arkfb.txt
arkfb.txt
	- info on the fbdev driver for ARK Logic chips.
	- info on the fbdev driver for ARK Logic chips.
aty128fb.txt
aty128fb.txt
	- info on the ATI Rage128 frame buffer driver.
	- info on the ATI Rage128 frame buffer driver.
cirrusfb.txt
cirrusfb.txt
	- info on the driver for Cirrus Logic chipsets.
	- info on the driver for Cirrus Logic chipsets.
cmap_xfbdev.txt
	- an introduction to fbdev's cmap structures.
deferred_io.txt
deferred_io.txt
	- an introduction to deferred IO.
	- an introduction to deferred IO.
efifb.txt
	- info on the EFI platform driver for Intel based Apple computers.
ep93xx-fb.txt
	- info on the driver for EP93xx LCD controller.
fbcon.txt
fbcon.txt
	- intro to and usage guide for the framebuffer console (fbcon).
	- intro to and usage guide for the framebuffer console (fbcon).
framebuffer.txt
framebuffer.txt
	- introduction to frame buffer devices.
	- introduction to frame buffer devices.
imacfb.txt
gxfb.txt
	- info on the generic EFI platform driver for Intel based Macs.
	- info on the framebuffer driver for AMD Geode GX2 based processors.
intel810.txt
intel810.txt
	- documentation for the Intel 810/815 framebuffer driver.
	- documentation for the Intel 810/815 framebuffer driver.
intelfb.txt
intelfb.txt
	- docs for Intel 830M/845G/852GM/855GM/865G/915G/945G fb driver.
	- docs for Intel 830M/845G/852GM/855GM/865G/915G/945G fb driver.
internals.txt
internals.txt
	- quick overview of frame buffer device internals.
	- quick overview of frame buffer device internals.
lxfb.txt
	- info on the framebuffer driver for AMD Geode LX based processors.
matroxfb.txt
matroxfb.txt
	- info on the Matrox framebuffer driver for Alpha, Intel and PPC.
	- info on the Matrox framebuffer driver for Alpha, Intel and PPC.
metronomefb.txt
	- info on the driver for the Metronome display controller.
modedb.txt
modedb.txt
	- info on the video mode database.
	- info on the video mode database.
matroxfb.txt
	- info on the Matrox frame buffer driver.
pvr2fb.txt
pvr2fb.txt
	- info on the PowerVR 2 frame buffer driver.
	- info on the PowerVR 2 frame buffer driver.
pxafb.txt
pxafb.txt
@@ -39,13 +47,23 @@ s3fb.txt
	- info on the fbdev driver for S3 Trio/Virge chips.
	- info on the fbdev driver for S3 Trio/Virge chips.
sa1100fb.txt
sa1100fb.txt
	- information about the driver for the SA-1100 LCD controller.
	- information about the driver for the SA-1100 LCD controller.
sh7760fb.txt
	- info on the SH7760/SH7763 integrated LCDC Framebuffer driver.
sisfb.txt
sisfb.txt
	- info on the framebuffer device driver for various SiS chips.
	- info on the framebuffer device driver for various SiS chips.
sstfb.txt
sstfb.txt
	- info on the frame buffer driver for 3dfx' Voodoo Graphics boards.
	- info on the frame buffer driver for 3dfx' Voodoo Graphics boards.
tgafb.txt
tgafb.txt
	- info on the TGA (DECChip 21030) frame buffer driver
	- info on the TGA (DECChip 21030) frame buffer driver.
tridentfb.txt
	info on the framebuffer driver for some Trident chip based cards.
uvesafb.txt
	- info on the userspace VESA (VBE2+ compliant) frame buffer device.
vesafb.txt
vesafb.txt
	- info on the VESA frame buffer device
	- info on the VESA frame buffer device.
viafb.modes
	- list of modes for VIA Integration Graphic Chip.
viafb.txt
	- info on the VIA Integration Graphic Chip console framebuffer driver.
vt8623fb.txt
vt8623fb.txt
	- info on the fb driver for the graphics core in VIA VT8623 chipsets.
	- info on the fb driver for the graphics core in VIA VT8623 chipsets.
+3 −1
Original line number Original line Diff line number Diff line
@@ -2444,10 +2444,12 @@ F: drivers/net/wan/sdla.c
FRAMEBUFFER LAYER
FRAMEBUFFER LAYER
L:	linux-fbdev@vger.kernel.org
L:	linux-fbdev@vger.kernel.org
W:	http://linux-fbdev.sourceforge.net/
W:	http://linux-fbdev.sourceforge.net/
Q:	http://patchwork.kernel.org/project/linux-fbdev/list/
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6.git
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6.git
S:	Orphan
S:	Orphan
F:	Documentation/fb/
F:	Documentation/fb/
F:	drivers/video/fb*
F:	drivers/video/
F:	include/video/
F:	include/linux/fb.h
F:	include/linux/fb.h


FREESCALE DMA DRIVER
FREESCALE DMA DRIVER
+43 −25
Original line number Original line Diff line number Diff line
@@ -88,34 +88,48 @@ static const struct fb_cmap default_16_colors = {
 *
 *
 */
 */


int fb_alloc_cmap(struct fb_cmap *cmap, int len, int transp)
int fb_alloc_cmap_gfp(struct fb_cmap *cmap, int len, int transp, gfp_t flags)
{
{
	int size = len * sizeof(u16);
	int size = len * sizeof(u16);
	int ret = -ENOMEM;


	if (cmap->len != len) {
	if (cmap->len != len) {
		fb_dealloc_cmap(cmap);
		fb_dealloc_cmap(cmap);
		if (!len)
		if (!len)
			return 0;
			return 0;
	if (!(cmap->red = kmalloc(size, GFP_ATOMIC)))

		cmap->red = kmalloc(size, flags);
		if (!cmap->red)
			goto fail;
			goto fail;
	if (!(cmap->green = kmalloc(size, GFP_ATOMIC)))
		cmap->green = kmalloc(size, flags);
		if (!cmap->green)
			goto fail;
			goto fail;
	if (!(cmap->blue = kmalloc(size, GFP_ATOMIC)))
		cmap->blue = kmalloc(size, flags);
		if (!cmap->blue)
			goto fail;
			goto fail;
		if (transp) {
		if (transp) {
	    if (!(cmap->transp = kmalloc(size, GFP_ATOMIC)))
			cmap->transp = kmalloc(size, flags);
			if (!cmap->transp)
				goto fail;
				goto fail;
	} else
		} else {
			cmap->transp = NULL;
			cmap->transp = NULL;
		}
		}
	}
	cmap->start = 0;
	cmap->start = 0;
	cmap->len = len;
	cmap->len = len;
    fb_copy_cmap(fb_default_cmap(len), cmap);
	ret = fb_copy_cmap(fb_default_cmap(len), cmap);
	if (ret)
		goto fail;
	return 0;
	return 0;


fail:
fail:
	fb_dealloc_cmap(cmap);
	fb_dealloc_cmap(cmap);
    return -ENOMEM;
	return ret;
}

int fb_alloc_cmap(struct fb_cmap *cmap, int len, int transp)
{
	return fb_alloc_cmap_gfp(cmap, len, transp, GFP_ATOMIC);
}
}


/**
/**
@@ -250,8 +264,12 @@ int fb_set_user_cmap(struct fb_cmap_user *cmap, struct fb_info *info)
	int rc, size = cmap->len * sizeof(u16);
	int rc, size = cmap->len * sizeof(u16);
	struct fb_cmap umap;
	struct fb_cmap umap;


	if (size < 0 || size < cmap->len)
		return -E2BIG;

	memset(&umap, 0, sizeof(struct fb_cmap));
	memset(&umap, 0, sizeof(struct fb_cmap));
	rc = fb_alloc_cmap(&umap, cmap->len, cmap->transp != NULL);
	rc = fb_alloc_cmap_gfp(&umap, cmap->len, cmap->transp != NULL,
				GFP_KERNEL);
	if (rc)
	if (rc)
		return rc;
		return rc;
	if (copy_from_user(umap.red, cmap->red, size) ||
	if (copy_from_user(umap.red, cmap->red, size) ||
+2 −2
Original line number Original line Diff line number Diff line
@@ -276,10 +276,10 @@ static void lx_graphics_enable(struct fb_info *info)
		write_fp(par, FP_PT1, 0);
		write_fp(par, FP_PT1, 0);
		temp = FP_PT2_SCRC;
		temp = FP_PT2_SCRC;


		if (info->var.sync & FB_SYNC_HOR_HIGH_ACT)
		if (!(info->var.sync & FB_SYNC_HOR_HIGH_ACT))
			temp |= FP_PT2_HSP;
			temp |= FP_PT2_HSP;


		if (info->var.sync & FB_SYNC_VERT_HIGH_ACT)
		if (!(info->var.sync & FB_SYNC_VERT_HIGH_ACT))
			temp |= FP_PT2_VSP;
			temp |= FP_PT2_VSP;


		write_fp(par, FP_PT2, temp);
		write_fp(par, FP_PT2, temp);
+2 −2
Original line number Original line Diff line number Diff line
@@ -860,7 +860,7 @@ static void sh_mobile_fb_reconfig(struct fb_info *info)
		/* Couldn't reconfigure, hopefully, can continue as before */
		/* Couldn't reconfigure, hopefully, can continue as before */
		return;
		return;


	info->fix.line_length = mode2.xres * (ch->cfg.bpp / 8);
	info->fix.line_length = mode1.xres * (ch->cfg.bpp / 8);


	/*
	/*
	 * fb_set_var() calls the notifier change internally, only if
	 * fb_set_var() calls the notifier change internally, only if
@@ -868,7 +868,7 @@ static void sh_mobile_fb_reconfig(struct fb_info *info)
	 * user event, we have to call the chain ourselves.
	 * user event, we have to call the chain ourselves.
	 */
	 */
	event.info = info;
	event.info = info;
	event.data = &mode2;
	event.data = &mode1;
	fb_notifier_call_chain(evnt, &event);
	fb_notifier_call_chain(evnt, &event);
}
}


Loading