2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-24 13:13:57 +08:00
linux-next/drivers/video
Rob Clark cd5351f4d2 staging: add omapdrm DRM/KMS driver for TI OMAP platforms
A DRM display driver for TI OMAP platform.  Similar to omapfb (fbdev)
and omap_vout (v4l2 display) drivers in the past, this driver uses the
DSS2 driver to access the display hardware, including support for
HDMI, DVI, and various types of LCD panels.  And it implements GEM
support for buffer allocation (for KMS as well as offscreen buffers
used by the xf86-video-omap userspace xorg driver).

The driver maps CRTCs to overlays, encoders to overlay-managers, and
connectors to dssdev's.  Note that this arrangement might change slightly
when support for drm_plane overlays is added.

For GEM support, non-scanout buffers are using the shmem backed pages
provided by GEM core (In drm_gem_object_init()).  In the case of scanout
buffers, which need to be physically contiguous, those are allocated
with CMA and use drm_gem_private_object_init().

See userspace xorg driver:
git://github.com/robclark/xf86-video-omap.git

Refer to this link for CMA (Continuous Memory Allocator):
http://lkml.org/lkml/2011/8/19/302

Links to previous versions of the patch:
v1: http://lwn.net/Articles/458137/
v2: http://patches.linaro.org/4156/
v3: http://patches.linaro.org/4688/
v4: http://patches.linaro.org/4791/

History:

v5: move headers from include/drm at Greg KH's request, minor rebasing
    on 3.2-rc1, pull in private copies of drm_gem_{get,put}_pages()
    because "drm/gem: add functions to get/put pages" patch is not
    merged yet
v4: bit of rework of encoder/connector _dpms() code, modeset_init()
    rework to not use nested functions, update TODO.txt
v3: minor cleanups, improved error handling for dev_load(), some minor
    API changes that will be needed later for tiled buffer support
v2: replace omap_vram with CMA for scanout buffer allocation, remove
    unneeded functions, use dma_addr_t for physical addresses, error
    handling cleanup, refactor attach/detach pages into common drm
    functions, split non-userspace-facing API into omap_priv.h, remove
    plugin API

v1: original

Signed-off-by: Rob Clark <rob@ti.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-11-26 17:43:30 -08:00
..
aty radeonfb: use display information in info not in var for panning 2011-08-19 10:30:16 +02:00
backlight Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-06 19:44:47 -08:00
console locking, video: Annotate vga console lock as raw 2011-09-13 11:12:04 +02:00
display Fix common misspellings 2011-03-31 11:26:23 -03:00
geode gx1fb: Fix section mismatch warnings 2011-06-24 17:00:31 +09:00
i810 treewide: fix potentially dangerous trailing ';' in #defined values/expressions 2011-07-21 14:10:00 +02:00
intelfb intelfb: use display information in info not in var for panning 2011-08-19 10:32:31 +02:00
kyro Fix common misspellings 2011-03-31 11:26:23 -03:00
logo fbdev: move logo externs to header file 2009-06-16 19:47:57 -07:00
matrox Fix common misspellings 2011-03-31 11:26:23 -03:00
mb862xx video: Add module.h to drivers/video files who really use it. 2011-10-31 19:31:33 -04:00
mbx ARM: pxa: use correct __iomem annotations 2011-10-08 21:03:07 +08:00
msm video: Add export.h for THIS_MODULE/EXPORT_SYMBOL to drivers/video 2011-10-31 19:31:33 -04:00
nvidia backlight: add backlight type 2011-03-22 17:43:59 -07:00
omap video: Add module.h to drivers/video files who really use it. 2011-10-31 19:31:33 -04:00
omap2 staging: add omapdrm DRM/KMS driver for TI OMAP platforms 2011-11-26 17:43:30 -08:00
pnx4008 ARM: gpio: pnx4008: convert drivers to use asm/gpio.h rather than mach/gpio.h 2011-08-08 14:27:58 +01:00
riva backlight: add backlight type 2011-03-22 17:43:59 -07:00
savage video: Add module.h to drivers/video files who really use it. 2011-10-31 19:31:33 -04:00
sis sisfb: use display information in info not in var for panning 2011-08-19 10:34:52 +02:00
vermilion atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
via video: Add export.h for THIS_MODULE/EXPORT_SYMBOL to drivers/video 2011-10-31 19:31:33 -04:00
68328fb.c 68328fb: use display information in info not in var for panning 2011-08-19 10:28:58 +02:00
acornfb.c acornfb: use display information in info not in var for panning 2011-08-19 10:29:34 +02:00
acornfb.h
amba-clcd.c clk: amba-clcd: convert to clk_prepare()/clk_unprepare() 2011-09-27 09:25:51 +01:00
amifb.c fbdev/amifb: Remove superfluous alignment of frame buffer memory 2011-05-24 16:26:31 +09:00
arcfb.c video: Convert vmalloc/memset to vzalloc 2011-06-02 17:25:35 +09:00
arkfb.c arkfb: use display information in info not in var for panning 2011-08-19 10:29:44 +02:00
asiliantfb.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
atafb_iplan2p2.c
atafb_iplan2p4.c
atafb_iplan2p8.c
atafb_mfb.c
atafb_utils.h
atafb.c m68k/atari: Do not use "/" in interrupt names 2011-05-19 18:19:10 +02:00
atafb.h
atmel_lcdfb.c video: Add module.h to drivers/video files who really use it. 2011-10-31 19:31:33 -04:00
au1100fb.c fb: fix au1100fb bitrot. 2011-10-03 15:52:38 +00:00
au1100fb.h fb: fix au1100fb bitrot. 2011-10-03 15:52:38 +00:00
au1200fb.c video: irq: Remove IRQF_DISABLED 2011-10-03 15:52:22 +00:00
au1200fb.h
bf54x-lq043fb.c video: irq: Remove IRQF_DISABLED 2011-10-03 15:52:22 +00:00
bf537-lq035.c fbdev: bf537-lq035: add missing blacklight properties type 2011-06-02 17:07:35 +09:00
bfin_adv7393fb.c video: irq: Remove IRQF_DISABLED 2011-10-03 15:52:22 +00:00
bfin_adv7393fb.h Fix common misspellings 2011-03-31 11:26:23 -03:00
bfin-lq035q1-fb.c video: irq: Remove IRQF_DISABLED 2011-10-03 15:52:22 +00:00
bfin-t350mcqb-fb.c video: irq: Remove IRQF_DISABLED 2011-10-03 15:52:22 +00:00
broadsheetfb.c video: Convert vmalloc/memset to vzalloc 2011-06-02 17:25:35 +09:00
bt431.h
bt455.h
bw2.c dt/video: Eliminate users of of_platform_{,un}register_driver 2011-02-28 13:22:45 -07:00
c2p_core.h
c2p_iplan2.c
c2p_planar.c fbdev: c2p - Rename c2p to c2p_planar 2009-01-12 20:56:32 +01:00
c2p.h fbdev: c2p - Rename c2p to c2p_planar 2009-01-12 20:56:32 +01:00
carminefb_regs.h
carminefb.c video: Add module.h to drivers/video files who really use it. 2011-10-31 19:31:33 -04:00
carminefb.h
cfbcopyarea.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
cfbfillrect.c fbdev: fix fillrect for 24bpp modes 2009-05-06 16:36:10 -07:00
cfbimgblt.c
cg3.c dt/video: Eliminate users of of_platform_{,un}register_driver 2011-02-28 13:22:45 -07:00
cg6.c video: add missing framebuffer_release in error path 2011-03-22 16:35:44 +09:00
cg14.c video: add missing framebuffer_release in error path 2011-03-22 16:35:44 +09:00
chipsfb.c console: rename acquire/release_console_sem() to console_lock/unlock() 2011-01-26 10:50:06 +10:00
cirrusfb.c m68k: amiga - Zorro bus modalias support 2010-05-17 21:37:41 +02:00
clps711xfb.c clps711xfb: convert to proc_fops 2009-12-16 07:20:04 -08:00
cobalt_lcdfb.c video: Add module.h to drivers/video files who really use it. 2011-10-31 19:31:33 -04:00
controlfb.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-3.x into fbdev-next 2011-08-29 09:14:30 +00:00
controlfb.h
cyber2000fb.c VIDEO: cyberpro: remove unused cyber2000fb_get_fb_var() 2011-02-11 10:16:07 +00:00
cyber2000fb.h VIDEO: cyberpro: remove unused cyber2000fb_get_fb_var() 2011-02-11 10:16:07 +00:00
da8xx-fb.c video: da8xx-fb: Increased resolution configuration of revised LCDC IP 2011-10-04 09:48:58 +00:00
dnfb.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
edid.h video: Fix EDID macros H_SYNC_WIDTH and H_SYNC_OFFSET 2011-03-22 16:45:03 +09:00
efifb.c efifb: Fix call to wrong unregister function 2011-06-14 16:37:46 +09:00
ep93xx-fb.c video: Add module.h to drivers/video files who really use it. 2011-10-31 19:31:33 -04:00
epson1355fb.c Update broken web addresses in the kernel. 2010-10-18 11:03:14 +02:00
fb_ddc.c video: Add module.h to drivers/video files who really use it. 2011-10-31 19:31:33 -04:00
fb_defio.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-3.x into fbdev-next 2011-08-29 09:14:30 +00:00
fb_draw.h fbdev: fix fillrect for 24bpp modes 2009-05-06 16:36:10 -07:00
fb_notify.c video: Add export.h for THIS_MODULE/EXPORT_SYMBOL to drivers/video 2011-10-31 19:31:33 -04:00
fb_sys_fops.c
fb-puv3.c fbdev: unicore32: use display information in info not in var for panning 2011-08-19 10:31:01 +02:00
fbcmap.c framebuffer: fix fbcmap.c kernel-doc warning 2010-11-26 15:05:08 +09:00
fbcvt.c Update broken web addresses in the kernel. 2010-10-18 11:03:14 +02:00
fbmem.c fb: avoid possible deadlock caused by fb_set_suspend 2011-09-02 17:58:29 +00:00
fbmon.c fbdev: fix parsing of standard timings 2011-09-01 00:31:05 +00:00
fbsysfs.c fb: avoid possible deadlock caused by fb_set_suspend 2011-09-02 17:58:29 +00:00
ffb.c video: ffb: fix ffb_probe error path 2011-03-22 16:18:51 +09:00
fm2fb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
fsl-diu-fb.c drivers/video: fsl-diu-fb: merge diu_pool into fsl_diu_data 2011-10-05 01:16:36 +00:00
g364fb.c g364fb: use display information in info not in var for panning 2011-08-19 10:31:09 +02:00
gbefb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
grvga.c video: Add Aeroflex Gaisler GRVGA framebuffer device driver 2011-07-13 16:58:52 +09:00
gxt4500.c gxt4500: use display information in info not in var for panning 2011-08-19 10:31:17 +02:00
hecubafb.c hecubafb: add module_put on error path in hecubafb_probe() 2011-06-24 17:00:39 +09:00
hgafb.c hgafb: use display information in info not in var for panning 2011-08-19 10:31:28 +02:00
hitfb.c hitfb: fix sections 2010-05-25 08:07:09 -07:00
hpfb.c video: hpfb: use resource_size() 2011-03-22 16:07:32 +09:00
igafb.c doc: fix broken references 2011-09-27 18:08:04 +02:00
imsttfb.c imsttfb: use display information in info not in var for panning 2011-08-19 10:31:39 +02:00
imxfb.c drivers/video/imxfb.c: add missing clk_put 2011-06-02 17:07:41 +09:00
jz4740_fb.c console: rename acquire/release_console_sem() to console_lock/unlock() 2011-01-26 10:50:06 +10:00
Kconfig Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2011-11-03 13:28:14 -07:00
leo.c dt/video: Eliminate users of of_platform_{,un}register_driver 2011-02-28 13:22:45 -07:00
macfb.c macfb: fix 24-bit visual and stuff 2010-02-27 18:31:16 +01:00
macmodes.c fbdev: add some missing mac modes 2010-02-27 18:31:14 +01:00
macmodes.h
Makefile Add support for SMSC UFX6000/7000 USB display adapters 2011-09-05 16:21:30 +00:00
maxinefb.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
metronomefb.c video: Convert vmalloc/memset to vzalloc 2011-06-02 17:25:35 +09:00
modedb.c fbdev: fix indentation in modedb.c 2011-09-14 16:40:52 +00:00
mx3fb.c mx3fb: fix NULL pointer dereference in screen blanking. 2011-10-03 15:52:32 +00:00
mxsfb.c video: mxsfb: add missing include of linux/module.h 2011-09-01 00:28:24 +00:00
n411.c
neofb.c neofb: use display information in info not in var for panning 2011-08-19 10:33:02 +02:00
nuc900fb.c video: irq: Remove IRQF_DISABLED 2011-10-03 15:52:22 +00:00
nuc900fb.h Fix common misspellings 2011-03-31 11:26:23 -03:00
offb.c of/address: Clean up function declarations 2010-08-01 01:42:42 -06:00
output.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
p9100.c dt/video: Eliminate users of of_platform_{,un}register_driver 2011-02-28 13:22:45 -07:00
platinumfb.c video: platinumfb: Add __devexit_p at necessary place 2011-10-15 00:19:58 +00:00
platinumfb.h
pm2fb.c pm2fb: use display information in info not in var for panning 2011-08-19 10:33:16 +02:00
pm3fb.c pm3fb: use display information in info not in var for panning 2011-08-19 10:34:01 +02:00
pmag-aa-fb.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
pmag-ba-fb.c VIDEO: PMAG-BA: Fix section mismatch 2010-07-26 19:08:14 +01:00
pmagb-b-fb.c VIDEO: PMAGB-B: Fix section mismatch 2010-07-26 19:08:15 +01:00
ps3fb.c video: irq: Remove IRQF_DISABLED 2011-10-03 15:52:22 +00:00
pvr2fb.c sh: Fix up more 64-bit pgprot truncation on SH-X2 TLB. 2010-02-17 13:23:00 +09:00
pxa3xx-gcu.c video: irq: Remove IRQF_DISABLED 2011-10-03 15:52:22 +00:00
pxa3xx-gcu.h video: add driver for PXA3xx 2D graphics accelerator 2010-12-16 14:31:18 +08:00
pxa168fb.c treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
pxa168fb.h fb: add support of LCD display controller on pxa168/910 (base layer) 2009-06-13 00:09:09 +08:00
pxafb.c Merge branch 'next/fixes' of git://git.linaro.org/people/arnd/arm-soc 2011-11-01 19:55:06 -07:00
pxafb.h ARM: pxafb: rework pxafb overlay memory management 2011-03-16 17:37:03 +08:00
q40fb.c fbdev/m68k: Fix section mismatches in q40fb.c 2010-10-22 09:43:25 +02:00
s1d13xxxfb.c s1d13xxxfb: drop unused code 2010-12-21 01:05:43 +09:00
s3c2410fb.c video: irq: Remove IRQF_DISABLED 2011-10-03 15:52:22 +00:00
s3c2410fb.h s3c-fb: CPUFREQ frequency scaling support 2009-06-16 19:47:59 -07:00
s3c-fb.c video: s3c-fb: Add S5P64X0 specific s3c_fb_driverdata 2011-09-14 17:03:58 +00:00
s3fb.c s3fb: use display information in info not in var for panning 2011-08-19 10:34:34 +02:00
sa1100fb.c video: irq: Remove IRQF_DISABLED 2011-10-03 15:52:22 +00:00
sa1100fb.h sa1100fb: fix color component length for pseudocolor modes 2009-04-13 15:04:29 -07:00
sbuslib.c
sbuslib.h
sgivwfb.c sgivwfb: fix sections 2010-05-25 08:07:09 -07:00
sh7760fb.c drivers/video: Convert release_resource to release_mem_region 2011-05-24 16:08:54 +09:00
sh_mipi_dsi.c video: Add module.h to drivers/video files who really use it. 2011-10-31 19:31:33 -04:00
sh_mobile_hdmi.c fb: sh-mobile: Fix deadlock risk between lock_fb_info() and console_lock() 2011-09-02 18:21:21 +00:00
sh_mobile_lcdcfb.c video: Add module.h to drivers/video files who really use it. 2011-10-31 19:31:33 -04:00
sh_mobile_lcdcfb.h fbdev: sh_mobile_lcdc: Restart LCDC in runtime PM resume handler 2011-08-19 08:22:41 +02:00
sh_mobile_meram.c sh_mobile_meram: Reset ICBs at unregistration time 2011-09-05 16:37:13 +00:00
skeletonfb.c video: Fix speficied typo 2011-06-24 17:14:39 +09:00
sm501fb.c sm501fb: use display information in info not in var for panning 2011-08-19 10:35:10 +02:00
smscufx.c smscufx: change edid data to u8 instead of char 2011-10-03 15:52:05 +00:00
sstfb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
sticore.h Fix common misspellings 2011-03-31 11:26:23 -03:00
stifb.c tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
sunxvr500.c Merge branch 'master' into export-slabh 2010-04-05 11:37:28 +09:00
sunxvr1000.c dt/video: Eliminate users of of_platform_{,un}register_driver 2011-02-28 13:22:45 -07:00
sunxvr2500.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
svgalib.c svga: Make svga_set_timings() take an iomem regbase pointer. 2011-03-22 15:47:22 +09:00
syscopyarea.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
sysfillrect.c fbdev: fix fillrect for 24bpp modes 2009-05-06 16:36:10 -07:00
sysimgblt.c
tcx.c video: add missing framebuffer_release in error path 2011-03-22 16:35:44 +09:00
tdfxfb.c Fix common misspellings 2011-03-31 11:26:23 -03:00
tgafb.c fix typos concerning "initiali[zs]e" 2010-06-16 18:05:05 +02:00
tmiofb.c video: irq: Remove IRQF_DISABLED 2011-10-03 15:52:22 +00:00
tridentfb.c tridentfb: use display information in info not in var for panning 2011-08-19 10:35:18 +02:00
udlfb.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-3.x into fbdev-next 2011-08-29 09:14:30 +00:00
uvesafb.c uvesafb,vesafb: create WC or WB PAT-entries 2011-03-22 16:20:44 +09:00
valkyriefb.c video: Fix speficied typo 2011-06-24 17:14:39 +09:00
valkyriefb.h valkyriefb: various fixes 2010-02-27 18:31:13 +01:00
vesafb.c vesafb: fix memory leak 2011-07-04 16:02:48 +09:00
vfb.c vfb: use display information in info not in var for panning 2011-08-19 10:35:27 +02:00
vga16fb.c vga16fb: use display information in info not in var for panning 2011-08-19 10:35:34 +02:00
vgastate.c
vt8500lcdfb.c video: irq: Remove IRQF_DISABLED 2011-10-03 15:52:22 +00:00
vt8500lcdfb.h ARM: Add support for the display controllers in VT8500 and WM8505 2010-11-09 18:52:07 +09:00
vt8623fb.c vt8623fb: use display information in info not in var for panning 2011-08-19 10:36:20 +02:00
w100fb.c video: Add module.h to drivers/video files who really use it. 2011-10-31 19:31:33 -04:00
w100fb.h
wm8505fb_regs.h ARM: Add support for the display controllers in VT8500 and WM8505 2010-11-09 18:52:07 +09:00
wm8505fb.c fbdev: Modify vsync timing calculation in wm8505fb 2010-12-21 01:05:48 +09:00
wmt_ge_rops.c fbdev: Minor cleanup in WM8505-related code 2010-12-21 01:05:43 +09:00
wmt_ge_rops.h ARM: Add support for the display controllers in VT8500 and WM8505 2010-11-09 18:52:07 +09:00
xen-fbfront.c video: Convert vmalloc/memset to vzalloc 2011-06-02 17:25:35 +09:00
xilinxfb.c Remove unneeded version.h includes from drivers/video/ 2011-06-24 17:16:51 +09:00