diff options
| -rw-r--r-- | Documentation/fb/00-INDEX | 32 | ||||
| -rw-r--r-- | MAINTAINERS | 4 | ||||
| -rw-r--r-- | drivers/video/fbcmap.c | 68 | ||||
| -rw-r--r-- | drivers/video/geode/lxfb_ops.c | 4 | ||||
| -rw-r--r-- | drivers/video/sh_mobile_lcdcfb.c | 4 | ||||
| -rw-r--r-- | drivers/video/sis/init.c | 685 | ||||
| -rw-r--r-- | drivers/video/sis/init.h | 63 | ||||
| -rw-r--r-- | drivers/video/sis/init301.c | 467 | ||||
| -rw-r--r-- | drivers/video/sis/init301.h | 43 | ||||
| -rw-r--r-- | drivers/video/sis/initextlfb.c | 7 | ||||
| -rw-r--r-- | drivers/video/sis/osdef.h | 133 | ||||
| -rw-r--r-- | drivers/video/sis/sis.h | 1 | ||||
| -rw-r--r-- | drivers/video/sis/sis_main.c | 30 | ||||
| -rw-r--r-- | drivers/video/sis/vgatypes.h | 11 | ||||
| -rw-r--r-- | drivers/video/sis/vstruct.h | 12 | ||||
| -rw-r--r-- | include/linux/fb.h | 1 | ||||
| -rw-r--r-- | include/video/da8xx-fb.h | 1 |
17 files changed, 285 insertions, 1281 deletions
diff --git a/Documentation/fb/00-INDEX b/Documentation/fb/00-INDEX index a618fd99c9f0..30a70542e823 100644 --- a/Documentation/fb/00-INDEX +++ b/Documentation/fb/00-INDEX | |||
| @@ -4,33 +4,41 @@ please mail me. | |||
| 4 | Geert Uytterhoeven <geert@linux-m68k.org> | 4 | Geert Uytterhoeven <geert@linux-m68k.org> |
| 5 | 5 | ||
| 6 | 00-INDEX | 6 | 00-INDEX |
| 7 | - this file | 7 | - this file. |
| 8 | arkfb.txt | 8 | arkfb.txt |
| 9 | - info on the fbdev driver for ARK Logic chips. | 9 | - info on the fbdev driver for ARK Logic chips. |
| 10 | aty128fb.txt | 10 | aty128fb.txt |
| 11 | - info on the ATI Rage128 frame buffer driver. | 11 | - info on the ATI Rage128 frame buffer driver. |
| 12 | cirrusfb.txt | 12 | cirrusfb.txt |
| 13 | - info on the driver for Cirrus Logic chipsets. | 13 | - info on the driver for Cirrus Logic chipsets. |
| 14 | cmap_xfbdev.txt | ||
| 15 | - an introduction to fbdev's cmap structures. | ||
| 14 | deferred_io.txt | 16 | deferred_io.txt |
| 15 | - an introduction to deferred IO. | 17 | - an introduction to deferred IO. |
| 18 | efifb.txt | ||
| 19 | - info on the EFI platform driver for Intel based Apple computers. | ||
| 20 | ep93xx-fb.txt | ||
| 21 | - info on the driver for EP93xx LCD controller. | ||
| 16 | fbcon.txt | 22 | fbcon.txt |
| 17 | - intro to and usage guide for the framebuffer console (fbcon). | 23 | - intro to and usage guide for the framebuffer console (fbcon). |
| 18 | framebuffer.txt | 24 | framebuffer.txt |
| 19 | - introduction to frame buffer devices. | 25 | - introduction to frame buffer devices. |
| 20 | imacfb.txt | 26 | gxfb.txt |
| 21 | - info on the generic EFI platform driver for Intel based Macs. | 27 | - info on the framebuffer driver for AMD Geode GX2 based processors. |
| 22 | intel810.txt | 28 | intel810.txt |
| 23 | - documentation for the Intel 810/815 framebuffer driver. | 29 | - documentation for the Intel 810/815 framebuffer driver. |
| 24 | intelfb.txt | 30 | intelfb.txt |
| 25 | - docs for Intel 830M/845G/852GM/855GM/865G/915G/945G fb driver. | 31 | - docs for Intel 830M/845G/852GM/855GM/865G/915G/945G fb driver. |
| 26 | internals.txt | 32 | internals.txt |
| 27 | - quick overview of frame buffer device internals. | 33 | - quick overview of frame buffer device internals. |
| 34 | lxfb.txt | ||
| 35 | - info on the framebuffer driver for AMD Geode LX based processors. | ||
| 28 | matroxfb.txt | 36 | matroxfb.txt |
| 29 | - info on the Matrox framebuffer driver for Alpha, Intel and PPC. | 37 | - info on the Matrox framebuffer driver for Alpha, Intel and PPC. |
| 38 | metronomefb.txt | ||
| 39 | - info on the driver for the Metronome display controller. | ||
| 30 | modedb.txt | 40 | modedb.txt |
| 31 | - info on the video mode database. | 41 | - info on the video mode database. |
| 32 | matroxfb.txt | ||
| 33 | - info on the Matrox frame buffer driver. | ||
| 34 | pvr2fb.txt | 42 | pvr2fb.txt |
| 35 | - info on the PowerVR 2 frame buffer driver. | 43 | - info on the PowerVR 2 frame buffer driver. |
| 36 | pxafb.txt | 44 | pxafb.txt |
| @@ -39,13 +47,23 @@ s3fb.txt | |||
| 39 | - info on the fbdev driver for S3 Trio/Virge chips. | 47 | - info on the fbdev driver for S3 Trio/Virge chips. |
| 40 | sa1100fb.txt | 48 | sa1100fb.txt |
| 41 | - information about the driver for the SA-1100 LCD controller. | 49 | - information about the driver for the SA-1100 LCD controller. |
| 50 | sh7760fb.txt | ||
| 51 | - info on the SH7760/SH7763 integrated LCDC Framebuffer driver. | ||
| 42 | sisfb.txt | 52 | sisfb.txt |
| 43 | - info on the framebuffer device driver for various SiS chips. | 53 | - info on the framebuffer device driver for various SiS chips. |
| 44 | sstfb.txt | 54 | sstfb.txt |
| 45 | - info on the frame buffer driver for 3dfx' Voodoo Graphics boards. | 55 | - info on the frame buffer driver for 3dfx' Voodoo Graphics boards. |
| 46 | tgafb.txt | 56 | tgafb.txt |
| 47 | - info on the TGA (DECChip 21030) frame buffer driver | 57 | - info on the TGA (DECChip 21030) frame buffer driver. |
| 58 | tridentfb.txt | ||
| 59 | info on the framebuffer driver for some Trident chip based cards. | ||
| 60 | uvesafb.txt | ||
| 61 | - info on the userspace VESA (VBE2+ compliant) frame buffer device. | ||
| 48 | vesafb.txt | 62 | vesafb.txt |
| 49 | - info on the VESA frame buffer device | 63 | - info on the VESA frame buffer device. |
| 64 | viafb.modes | ||
| 65 | - list of modes for VIA Integration Graphic Chip. | ||
| 66 | viafb.txt | ||
| 67 | - info on the VIA Integration Graphic Chip console framebuffer driver. | ||
| 50 | vt8623fb.txt | 68 | vt8623fb.txt |
| 51 | - info on the fb driver for the graphics core in VIA VT8623 chipsets. | 69 | - info on the fb driver for the graphics core in VIA VT8623 chipsets. |
diff --git a/MAINTAINERS b/MAINTAINERS index b49ba9a43bf8..98fc0450d7e1 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
| @@ -2444,10 +2444,12 @@ F: drivers/net/wan/sdla.c | |||
| 2444 | FRAMEBUFFER LAYER | 2444 | FRAMEBUFFER LAYER |
| 2445 | L: linux-fbdev@vger.kernel.org | 2445 | L: linux-fbdev@vger.kernel.org |
| 2446 | W: http://linux-fbdev.sourceforge.net/ | 2446 | W: http://linux-fbdev.sourceforge.net/ |
| 2447 | Q: http://patchwork.kernel.org/project/linux-fbdev/list/ | ||
| 2447 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6.git | 2448 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-2.6.git |
| 2448 | S: Orphan | 2449 | S: Orphan |
| 2449 | F: Documentation/fb/ | 2450 | F: Documentation/fb/ |
| 2450 | F: drivers/video/fb* | 2451 | F: drivers/video/ |
| 2452 | F: include/video/ | ||
| 2451 | F: include/linux/fb.h | 2453 | F: include/linux/fb.h |
| 2452 | 2454 | ||
| 2453 | FREESCALE DMA DRIVER | 2455 | FREESCALE DMA DRIVER |
diff --git a/drivers/video/fbcmap.c b/drivers/video/fbcmap.c index f53b9f1d6aba..affdf3e32cf3 100644 --- a/drivers/video/fbcmap.c +++ b/drivers/video/fbcmap.c | |||
| @@ -88,34 +88,48 @@ static const struct fb_cmap default_16_colors = { | |||
| 88 | * | 88 | * |
| 89 | */ | 89 | */ |
| 90 | 90 | ||
| 91 | int fb_alloc_cmap(struct fb_cmap *cmap, int len, int transp) | 91 | int fb_alloc_cmap_gfp(struct fb_cmap *cmap, int len, int transp, gfp_t flags) |
| 92 | { | 92 | { |
| 93 | int size = len*sizeof(u16); | 93 | int size = len * sizeof(u16); |
| 94 | 94 | int ret = -ENOMEM; | |
| 95 | if (cmap->len != len) { | 95 | |
| 96 | fb_dealloc_cmap(cmap); | 96 | if (cmap->len != len) { |
| 97 | if (!len) | 97 | fb_dealloc_cmap(cmap); |
| 98 | return 0; | 98 | if (!len) |
| 99 | if (!(cmap->red = kmalloc(size, GFP_ATOMIC))) | 99 | return 0; |
| 100 | goto fail; | 100 | |
| 101 | if (!(cmap->green = kmalloc(size, GFP_ATOMIC))) | 101 | cmap->red = kmalloc(size, flags); |
| 102 | goto fail; | 102 | if (!cmap->red) |
| 103 | if (!(cmap->blue = kmalloc(size, GFP_ATOMIC))) | 103 | goto fail; |
| 104 | goto fail; | 104 | cmap->green = kmalloc(size, flags); |
| 105 | if (transp) { | 105 | if (!cmap->green) |
| 106 | if (!(cmap->transp = kmalloc(size, GFP_ATOMIC))) | 106 | goto fail; |
| 107 | cmap->blue = kmalloc(size, flags); | ||
| 108 | if (!cmap->blue) | ||
| 109 | goto fail; | ||
| 110 | if (transp) { | ||
| 111 | cmap->transp = kmalloc(size, flags); | ||
| 112 | if (!cmap->transp) | ||
| 113 | goto fail; | ||
| 114 | } else { | ||
| 115 | cmap->transp = NULL; | ||
| 116 | } | ||
| 117 | } | ||
| 118 | cmap->start = 0; | ||
| 119 | cmap->len = len; | ||
| 120 | ret = fb_copy_cmap(fb_default_cmap(len), cmap); | ||
| 121 | if (ret) | ||
| 107 | goto fail; | 122 | goto fail; |
| 108 | } else | 123 | return 0; |
| 109 | cmap->transp = NULL; | ||
| 110 | } | ||
| 111 | cmap->start = 0; | ||
| 112 | cmap->len = len; | ||
| 113 | fb_copy_cmap(fb_default_cmap(len), cmap); | ||
| 114 | return 0; | ||
| 115 | 124 | ||
| 116 | fail: | 125 | fail: |
| 117 | fb_dealloc_cmap(cmap); | 126 | fb_dealloc_cmap(cmap); |
| 118 | return -ENOMEM; | 127 | return ret; |
| 128 | } | ||
| 129 | |||
| 130 | int fb_alloc_cmap(struct fb_ | ||
