Hi Linus, This is the main pull request for the drm for this merge window. It has two conflicts with your tree, I've fixed them up in a separate drm-linus-merged branch if you don't want to exercise your merging fingers.
Highlights: drm core: add plane support and userspace interface to expose overlays for intel and soc hardwre. Lots of code removal through restructing by Daniel Vetter. EDID support for CEA modes. ttm: DMA aware page pool added, allows for use under Xen, and makes support for radeon VM easier. radeon: multi-ring support, semaphore support, better IB pool support, add VM support for Cayman and upcoming GPUs, evergreen HDMI audio support gma500: Initial GMA500 KMS driver moved from staging into drm proper. nouveau: HDMI audio support, lots of power management fixes, overscan connector property, initial nvd9 support, exynos: hdmi support, pm support, plane support. intel: better HDMI ELD support, plane support, GEN 7 streamout support. The Intel guys are also having process issues again, and then Intel pull request was very late and it looked like nobody was pulling stuff into a -next tree at all regularly. I'm sort of tempted to just drop anything more from them for this cycle, to give them time to sort themselves out for the next one. I think there is one missed IRQ fix from them I'd like to see, the rest I'm thinking can wait. Dave. The following changes since commit 6abff3c78051e40130a1c653f874fb12b9d40254: vmwgfx: Clip cliprects against screen boundaries in present and dirty (2011-12-19 14:06:05 +0000) are available in the git repository at: git://people.freedesktop.org/~airlied/linux drm-core-next Akshay Joshi (1): gma500: Convert spaces to tabs in accel_2d.c. Alan Cox (31): gma500: Move the basic driver out of staging gma500: GEM and GEM glue gma500: introduce the GTT and MMU handling logic gma500: introduce the framebuffer support code gma500: Add device framework gma500: Add the glue to the various BIOS and firmware interfaces gma500: Add the i2c bus support gma500: Add the core DRM files and headers gma500: Add Poulsbo support gma500: Add Oaktrail support gma500: Add support for Cedarview gma500: Now connect up to the DRM build to finish the job drm/gma500: begin pruning dead bits of API gma500: Rename the ioctls to avoid clashing with the legacy drivers gma500: kill off NUM_PIPE define gma500: Move the API gma500: kill virtual mapping support gma500: do a pass over the FIXME tags gma500: kill bogus code gma500: Fix backlight crash gma500: frame buffer locking gma500: gtt based hardware scrolling console gma500: Be smarter about layout gma500: Fix oaktrail probing part 1 gma500: Oaktrail BIOS handling gma500: Final enables for Oaktrail gma500: Oaktrail fixes gma500/oaktrail: panel display quality fix gma500: Add the E6xx PCI identifier we are missing gma500: Fix Cedarview support (Correct version) gma500: remove no_fb bits Alex Deucher (9): drm/radeon/kms: add support for multiple fence queues v2 drm/radeon/kms: add some new ring params to better handle other ring types drm/radeon/kms: add cayman specific fence_ring_emit drm/radeon/kms: add support for per-ring fence interrupts drm/radeon/kms: add missing ring ready check in sync tests drm/radeon/kms: disable writeback on pre-R300 asics drm/radeon/kms: sync across multiple rings when doing bo moves v3 drm/radeon/kms: check if vm is supported in VA ioctl drm/radeon/kms: remove pointless CS flags priority struct Arjan van de Ven (1): drm: Make the per-driver file_operations struct const Ben Skeggs (88): drm/nv40/pm: parse fan pwm divisor from vbios tables drm/nv40/pm: implement first type of pwm fanspeed funcs drm/nv41/pm: implement a second type of fanspeed pwm drm/nouveau/pm: hook up fanspeed get/set if they're present drm/nouveau/vdec: implement stub modules for the known engines drm/nv50/pm: add support for pwm fan control drm/nv50/pm: mostly nailed down fan pwm frequency selection drm/nouveau/gpio: remove invert flag, use state[] everywhere drm/nouveau/pm: introduce generic handler for on-chip fan controller drm/nv50/pm: convert to new fanspeed pwm controller hooks drm/nv40/pm: convert to new pwm hooks, also fixing pwm type detection drm/nouveau/pm: remove defunct fanspeed_set/get from pm table drm/nv50/pm: s/unk05/vdec/ drm/nouveau/hdmi: build ELD from EDID, notify audio driver of its presence drm/nouveau/hdmi: add hdmi register accessors to handle hdmi block move drm/nouveau/hdmi: enable sending of avi/audio infoframes drm/nv50/crtc: disable flip overlay around scaling mode changes drm/nouveau: move master modesetting init to nouveau_display drm/nouveau: add overscan compensation connector properties drm/nv50/disp: move sync routine to where it can be used by other modules drm/nv50/disp: synchronise display right after init drm/nv50/disp: completely reset disp if master evo channel active at init drm/nv50/disp: disconnect encoders before reprogramming them drm/nv50/disp: wait for encoder disconnect to complete before link training drm/nouveau: determine a value for display_info.bpc if edid doesn't drm/nouveau: no need to pass parameters into set_scale/dither drm/nouveau: improve dithering properties, and implement proper auto mode drm/nouveau: don't pretend to support the DVI-I 'select subconnector' prop drm/nv50/disp: allow interlaced and doublescan modes on digital outputs drm/nouveau/disp: kill off nouveau_crtc.mode drm/nv50/disp: rewrite crtc timing calculation, with proper names and fixes drm/nv50/disp: fix scaling of doublescan modes drm/nv50/pm: rewrite clock management, and switch to the new pm hooks drm/nv04-nv30/pm: port to newer interfaces drm/nouveau/pm: remove the older interfaces completely drm/nouveau/pm: change volt/fan before upclock, but after downclock drm/nv50/pm: free state struct after setting clocks drm/nv50/disp: stricter check for evo being active on init drm/nvc0/gr: update fuc source to assemble with latest envyas drm/nvc0/gr: add initial support for nvd9, not quite there yet.. drm/nv50/pm: 0x84/0x86 can't use "1" for nvclk src, need 0x50 method drm/nv50/pm: fix thinko which lead to clocks being slightly off sometimes drm/nv50/pm: avoid touching dom6/vdec clocks if perflvl doesn't define it drm/nv50/pm: stabilise transition to 100MHz mclk a bit drm/nv50/pm: only touch 0x611200 on nv92- drm/nva3/copy: update fuc source for latest envytools drm/nva3/copy: fix typo in fuc which caused host to not recieve exceptions drm/nouveau/hdmi: enable audio for nva3:nvd0 chipsets drm/nvd0/disp: send eld to the audio codec drm/nvd0/disp: enable hdmi on sor if hdmi monitor present drm/nvd0/disp: hook evo up to debugging drm/nvd0/disp: enable hdmi audio drm/nouveau/pm: fix missing volt changes when boot voltage is undefined drm/nouveau/disp: introduce proper init/fini, separate from create/destroy drm/nouveau: re-jig fbcon suspend/resume process a little drm/nv50/disp: fix evo for create/init + destroy/fini split drm/nouveau: shutdown display on suspend/hibernate drm/nvd0/disp: update crtc timing calculations for interlace/doublescan drm/nvd0/disp: scaler updates, overscan compensation etc drm/nvd0/disp: init display sync channels drm/nvd0/disp: have evo names now, use them drm/nvd0/disp: make it clearer that the cursor regs are pio evo channels drm/nvd0/disp: add support for page flipping drm/nvd0/disp: initialise overlay channels drm/nvd0/disp: handle yet another interrupt drm/nvd0/disp: rename sync channel to flip channel drm/nvd0/disp: use single, shared, sync bo for all evo channels drm/nouveau/bios: pass drm_device to ROMPTR, rather than nvbios drm/nouveau/bios: fold fixup_legacy_i2c drm/nouveau/bios: start refactoring dcb routines drm/nouveau/i2c: do parsing of i2c-related vbios info in nouveau_i2c.c drm/nouveau/i2c: tidy up bit-bang helpers, also fixing nv50 setsda bug drm/nouveau/i2c: fix debug message drm/nouveau/i2c: handle bit-banging ourselves drm/nouveau/disp: parse connector info directly in nouveau_connector.c drm/nouveau/mxm: initial implementation of dcb sanitisation drm/nouveau/mxm: implement wmi shadow method drm/nouveau/mxm: implement _DSM shadow method drm/nouveau/mxm: implement ROM shadow method drm/nouveau/dp: remove broken display depth function, use the improved one drm/nv04/disp: handle dual-link spwg panels without needing quirks drm/nouveau/hwsq: remove some magic, give proper opcode names drm/nouveau: just pass gpio line to pwm_*, not entire gpio struct drm/nouveau/gpio: reimplement as nouveau_gpio.c, fixing a number of issues drm/nv40/disp: implement support for hotplug irq drm/nouveau: move hpd enable/disable to common code drm/nvc0/pm: initial engine reclocking drm/nouveau/ttm: fix crash as a result of a recent ttm change Ben Widawsky (4): drm/i915: relative_constants_mode race fix drm/i915: Force sync command ordering (Gen6+) drm/i915: Update GEN6_RP_CONTROL definitions drm/i915: drpc debugfs update for gen6 Chen Jie (1): drm/radeon/benchmark: common modes sweep ignores 640x480 at 32 Christian K?nig (15): drm/radeon: fix debugfs handling v3 drm/radeon: no need to check all relocs for duplicates drm/radeon: fix a spelling mistake drm/radeon/kms: add support for semaphores v3 drm/radeon: make all functions work with multiple rings. drm/radeon: make ring rptr and wptr register offsets variable drm/radeon: make cp variable an array drm/radeon: Add radeon_test_syncing function v2 drm/radeon: make some asic pointers per ring drm/radeon: add radeon_fence_count_emited function drm/radeon: disable compute rings on cayman for now drm/radeon: rename struct radeon_cp to radeon_ring drm/radeon: move ring debugfs into radeon_ring.c drm/radeon: improve radeon_test_syncing function drm/radeon/kms: Add support for multi-ring sync in CS ioctl (v2) Christian Schmidt (4): drm/edid: support CEA video modes. drm_edid_to_eld: check for CEA data blocks only from structure revision 3 on Fix wrong assumptions in cea_for_each_detailed_block v2 drm/intel: Fix initialization if startup happens in interlaced mode [v2] Dan Carpenter (4): drm/radeon: use after free in radeon_vm_bo_add() drm/radeon: double lock typo in radeon_vm_bo_rmv() drm/ttm: fix condition (and vs or) gma500: silence gcc warnings in mid_get_vbt_data() Daniel Vetter (16): drm/i915: check ACTHD of all rings drm/sis: track obj->drm_fd relations in the driver drm/via: track obj->drm_fd relations in the driver drm/sman: kill owner tracking interface functions drm/sman: rip out owner tracking drm/via: track user->memblock mapping with idr drm/sis: track user->memblock mapping with idr drm/sman: kill user_hash_tab drm/via: use drm_mm instead of drm_sman drm/sis: use drm_mm instead of drm_sman drm: kill drm_sman drm/i810: cleanup reclaim_buffers drm/i810: don't acces hw regs in lastclose drm/i915: kicking rings stuck on semaphores considered harmful drm/i915: don't bail out of intel_wait_ring_buffer too early drm/sis|via: don't return stack garbage from free_mem ioctl Dave Airlie (23): Merge branch 'drm-plane-jbarnes' into drm-core-next gma500: fixup build versus latest header changes. Merge branch 'drm-gma500-alanc' into drm-core-next drm/gma500: port framebuffer to new plane interface. drm/radeon/kms: fix up for BIG ENDIAN breakage drm: move the fb bpp/depth helper into the core. drm: Merge branch 'drm-gma500-alancox' into drm-core-next drm: Merge branch 'drm-cleanups-jbarnes' into drm-core-next drm/Merge branch 'drm-ttm-glisse' of ../drm-radeon-next into drm-core-next staging/gma500: fixup staging code to build following core changes. Merge tag 'v3.2-rc6' of /home/airlied/devel/kernel/linux-2.6 into drm-core-next Merge branch 'drm-radeon-next' of ../drm-radeon-next into drm-core-next drm/radeon/kms: don't use 0 bpc for adjusting hdmi clock Merge branch 'exynos-drm-next' of git://git.infradead.org/users/kmpark/linux-samsung into drm-core-next Merge remote-tracking branch 'pfdo/drm-fixes' into drm-core-next Merge branch 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-core-next Merge branch 'for-airlied' of git://people.freedesktop.org/~danvet/drm into drm-core-next drm: add missing exports for i810 driver. Merge branch 'exynos-drm-next' of git://git.infradead.org/users/kmpark/linux-samsung into drm-core-next Merge branch 'drm-intel-next' of git://people.freedesktop.org/~keithp/linux into drm-core-next Merge branch 'drm-radeon-testing' of ../drm-radeon-next into drm-core-next drm: introduce drm_can_sleep and use in intel/radeon drivers. (v2) drm/nouveau/pm: fix build with HWMON off Eric Anholt (5): drm/i915: Set two chicken bits implicated in missed IRQs on Ivybridge. drm/i915: Do the fallback non-IRQ wait in ring throttle, too. drm/i915: Work around gen7 BLT ring synchronization issues. drm/i915: Make the fallback IRQ wait not sleep. drm/i915: Add support for resetting the SO write pointers on gen7. Francisco Jerez (2): drm/nouveau: Fix pushbufs over the 4GB mark. drm/nouveau: Fix notifier blocks over the 4GB mark. Hugh Dickins (1): drm: avoid switching to text console if there is no panic timeout Ilija Hadzic (4): drm/gma500: remove genrated file drm/gma500: fix compile error drm: no need to hold global mutex for static data drm: make DRM_UNLOCKED ioctls with their own mutex Inki Dae (5): drm/exynos: updated crtc and encoder dpms framework. drm/exynos: added pm support. drm/exynos: change driver name. drm/exynos: extend vblank off delay time. drm/exynos: added mutex lock and code clean. Jerome Glisse (17): drm/ttm: remove userspace backed ttm object support drm/ttm: remove split btw highmen and lowmem page drm/ttm: remove unused backend flags field drm/ttm: use ttm put pages function to properly restore cache attribute drm/ttm: test for dma_address array allocation failure drm/ttm: page allocation use page array instead of list drm/ttm: merge ttm_backend and ttm_tt V5 drm/ttm: introduce callback for ttm_tt populate & unpopulate V4 drm/ttm: isolate dma data from ttm_tt V4 drm/ttm: simplify memory accounting for ttm user v2 drm/ttm: callback move_notify any time bo placement change v4 drm/radeon: precompute fence cpu/gpu addr once v3 drm/radeon: introduce a sub allocator and convert ib pool to it v4 drm/radeon: make ib size variable drm/radeon: allocate semaphore from the ib pool drm/radeon: GPU virtual memory support v22 ttm: fix agp since ttm tt rework Jesse Barnes (18): drm: add plane support v3 drm: add an fb creation ioctl that takes a pixel format v5 drm/staging/gma500: fix linux-next build drm: remove unused connector_count field from drm_display_mode drm: fix comments for drm_crtc struct drm: add comments for drm_encoder_funcs drm: add drm_encoder comments drm: remove unused fields in drm_connector and document the rest drm: document drm_mode_set structure drm: document and cleanup drm_mode_config_funcs drm: document the drm_mode_group structure drm: document the drm_mode_config structure drm: remove some potentially dangerous DRM_ERRORs drm/i915: add SNB and IVB video sprite support v6 drm/i915: track sprite coverage and disable primary plane if possible drm/i915: add color key support v4 drm/i915: don't disable a PCH DPLL that's in use drm/i915: only set the intel_crtc DPMS mode to on if the mode set succeeded Joonyoung Shim (8): drm/exynos: Fix compile errors drm/exynos: Use struct drm_mode_fb_cmd2 drm/exynos: add runtime pm feature for fimd drm/exynos: Add plane support with fimd drm/exynos: gem code cleanup drm/exynos: Fix a fake mmap offset creation drm/exynos: Split creation of gem object and gem handle drm/exynos: remove buffer creation of fbdev from drm framebuffer creation Keith Packard (1): drm/i915: Clean up multi-threaded forcewake patch Konrad Rzeszutek Wilk (6): swiotlb: Expose swiotlb_nr_tlb function to modules drm/ttm: provide dma aware ttm page pool code V9 drm/radeon/kms: enable the ttm dma pool if swiotlb is on V4 drm/nouveau: enable the ttm dma pool when swiotlb is active V3 drm/ttm/dma: Only call set_pages_array_wb when the page is not in WB pool. drm/ttm/dma: Fix accounting error when calling ttm_mem_global_free_page and don't try to free freed pages. Marcin Slusarz (2): drm/nouveau: print correct engine number which failed to unload/idle drm/nv50: fix page faulting for 128MB page table sizes Martin Peres (6): drm/nouveau/pm: manual pwm fanspeed management for nv40+ boards drm/nvd0: read temperature as we did on nv84+ boards drm/nouveau/pm: make clocks_set return an error code clocks_set can fail. drm/nv50/pm: s/PLL_UNK05/PLL_VDEC/ drm/nv50/pm: fix a typo in clock calculation drm/nv50/pm: introduce hwsq-based memory reclocking Maxim Levitsky (4): drm/nv50: also report errors in MP1/MP2 when they happen. drm/nouveau: disable output polling through suspend. drm/nouveau: restore performance mode a bit later. drm/nouveau: restore cursors after restoring mode Michel D?nzer (1): radeon: Fix disabling PCI bus mastering on big endian hosts. Patrik Jakobsson (12): gma500: Only register interrupt handler for poulsbo hardware gma500: Don't enable MSI on Poulsbo gma500: Add VBLANK support for Poulsbo hardware gma500: Initial support for our encoder and connector structs gma500: Remove psb_intel_output from ddc_probe and ddc_get_modes gma500: Fix encoder type checking for connectors gma500: Convert PSB LVDS to new output handling gma500: Add support for Intel GMBUS gma500: Replace SDVO code with slightly modified version from i915 gma500: Convert Cedarview to work with new output handling gma500: Convert Oaktrail to work with new output handling gma500: SDVO DDC bus guessing isn't working so hardcode it instead Rafa? Mi?ecki (6): drm/radeon/kms: do not force DVI mode on DCE4 if audio is on drm/radeon/kms: minor HDMI audio cleanups drm/radeon/kms: support for audio on Evergreen drm/radeon/kms: setup HDMI mode on Evergreen encoders drm/radeon/kms: workaround invalid AVI infoframe checksum issue drm/radeon/kms: define TMDS/LVTM HDMI enabling bits Rob Clark (3): drm: call connector dpms fxn, when setting config drm: disconnect plane from fb/crtc when disabled drm: add support for private planes Seung-Woo Kim (3): drm: Add multi buffer plane pixel formats drm/exynos: Support multi buffers drm/exynos: added hdmi display support Tormod Volden (1): agp: Fix multi-line warning message whitespace Ville Syrj?l? (14): drm: Redefine pixel formats drm: Add a missing ')' drm: Install drm_fourcc.h drm: fourcc: Use __u32 instead of u32 drm: plane: mutex_unlock() was missing drm: Fix __user sparse warnings drm: plane: Clear plane.crtc and plane.fb after disable_plane() drm: plane: Check source coordinates drm: plane: Check crtc coordinates against integer overflows in setplane ioctl drm: plane: Make 'formats' parameter to drm_plane_init() const drm: plane: Check that the fb pixel format is supported by the plane drm: Check that the requested pixel format is valid drm: Replace pitch with pitches[] in drm_framebuffer drm: Add drm_format_num_planes() utility function Wu Fengguang (5): drm/i915: fix ELD writing for SandyBridge drm/i915: rename audio ELD registers drm/i915: dont trigger hotplug events on unchanged ELD drm/i915: HDMI hot remove notification to audio driver drm/i915: DisplayPort hot remove notification to audio driver drivers/char/agp/generic.c | 8 +- drivers/gpu/drm/Kconfig | 3 + drivers/gpu/drm/Makefile | 3 +- drivers/gpu/drm/drm_context.c | 5 +- drivers/gpu/drm/drm_crtc.c | 608 ++++++- drivers/gpu/drm/drm_crtc_helper.c | 50 +- drivers/gpu/drm/drm_drv.c | 14 +- drivers/gpu/drm/drm_edid.c | 103 +- drivers/gpu/drm/drm_edid_modes.h | 284 +++ drivers/gpu/drm/drm_fb_helper.c | 7 + drivers/gpu/drm/drm_fops.c | 2 +- drivers/gpu/drm/drm_ioctl.c | 15 +- drivers/gpu/drm/drm_lock.c | 3 + drivers/gpu/drm/drm_sman.c | 351 ---- drivers/gpu/drm/exynos/Kconfig | 7 + drivers/gpu/drm/exynos/Makefile | 5 +- drivers/gpu/drm/exynos/exynos_ddc.c | 58 + drivers/gpu/drm/exynos/exynos_drm_buf.c | 5 +- drivers/gpu/drm/exynos/exynos_drm_buf.h | 3 - drivers/gpu/drm/exynos/exynos_drm_crtc.c | 89 +- drivers/gpu/drm/exynos/exynos_drm_drv.c | 35 +- drivers/gpu/drm/exynos/exynos_drm_drv.h | 29 +- drivers/gpu/drm/exynos/exynos_drm_encoder.c | 135 +- drivers/gpu/drm/exynos/exynos_drm_encoder.h | 5 + drivers/gpu/drm/exynos/exynos_drm_fb.c | 166 +-- drivers/gpu/drm/exynos/exynos_drm_fb.h | 24 +- drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 84 +- drivers/gpu/drm/exynos/exynos_drm_fimd.c | 292 +++- drivers/gpu/drm/exynos/exynos_drm_gem.c | 227 ++-- drivers/gpu/drm/exynos/exynos_drm_gem.h | 53 +- drivers/gpu/drm/exynos/exynos_drm_hdmi.c | 439 +++++ drivers/gpu/drm/exynos/exynos_drm_hdmi.h | 73 + drivers/gpu/drm/exynos/exynos_drm_plane.c | 163 ++ drivers/gpu/drm/exynos/exynos_drm_plane.h | 14 + drivers/gpu/drm/exynos/exynos_hdmi.c | 1176 ++++++++++++ drivers/gpu/drm/exynos/exynos_hdmi.h | 87 + drivers/gpu/drm/exynos/exynos_hdmiphy.c | 58 + drivers/gpu/drm/exynos/exynos_mixer.c | 1070 +++++++++++ drivers/gpu/drm/exynos/exynos_mixer.h | 92 + drivers/gpu/drm/exynos/regs-hdmi.h | 147 ++ drivers/gpu/drm/exynos/regs-mixer.h | 141 ++ drivers/gpu/drm/exynos/regs-vp.h | 91 + drivers/gpu/drm/gma500/Kconfig | 27 + drivers/gpu/drm/gma500/Makefile | 40 + drivers/gpu/drm/gma500/accel_2d.c | 364 ++++ drivers/gpu/drm/gma500/backlight.c | 49 + drivers/gpu/drm/gma500/cdv_device.c | 351 ++++ drivers/gpu/drm/gma500/cdv_device.h | 36 + drivers/gpu/drm/gma500/cdv_intel_crt.c | 333 ++++ drivers/gpu/drm/gma500/cdv_intel_display.c | 1508 +++++++++++++++ drivers/gpu/drm/gma500/cdv_intel_hdmi.c | 394 ++++ drivers/gpu/drm/gma500/cdv_intel_lvds.c | 732 +++++++ drivers/gpu/drm/gma500/framebuffer.c | 831 ++++++++ drivers/gpu/drm/gma500/framebuffer.h | 47 + drivers/gpu/drm/gma500/gem.c | 292 +++ drivers/gpu/drm/gma500/gem_glue.c | 89 + drivers/gpu/drm/gma500/gem_glue.h | 2 + drivers/gpu/drm/gma500/gtt.c | 553 ++++++ drivers/gpu/drm/gma500/gtt.h | 64 + drivers/gpu/drm/gma500/intel_bios.c | 303 +++ drivers/gpu/drm/gma500/intel_bios.h | 430 +++++ drivers/gpu/drm/gma500/intel_gmbus.c | 493 +++++ drivers/gpu/drm/gma500/intel_i2c.c | 169 ++ drivers/gpu/drm/gma500/intel_opregion.c | 81 + drivers/gpu/drm/gma500/mid_bios.c | 263 +++ drivers/gpu/drm/gma500/mid_bios.h | 21 + drivers/gpu/drm/gma500/mmu.c | 858 +++++++++ drivers/gpu/drm/gma500/oaktrail.h | 252 +++ drivers/gpu/drm/gma500/oaktrail_crtc.c | 604 ++++++ drivers/gpu/drm/gma500/oaktrail_device.c | 512 +++++ drivers/gpu/drm/gma500/oaktrail_hdmi.c | 859 +++++++++ drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c | 328 ++++ drivers/gpu/drm/gma500/oaktrail_lvds.c | 449 +++++ drivers/gpu/drm/gma500/power.c | 316 ++++ drivers/gpu/drm/gma500/power.h | 67 + drivers/gpu/drm/gma500/psb_device.c | 328 ++++ drivers/gpu/drm/gma500/psb_drv.c | 703 +++++++ drivers/gpu/drm/gma500/psb_drv.h | 956 ++++++++++ drivers/gpu/drm/gma500/psb_intel_display.c | 1446 ++++++++++++++ drivers/gpu/drm/gma500/psb_intel_display.h | 28 + drivers/gpu/drm/gma500/psb_intel_drv.h | 289 +++ drivers/gpu/drm/gma500/psb_intel_lvds.c | 868 +++++++++ drivers/gpu/drm/gma500/psb_intel_modes.c | 75 + drivers/gpu/drm/gma500/psb_intel_reg.h | 1309 +++++++++++++ drivers/gpu/drm/gma500/psb_intel_sdvo.c | 2617 ++++++++++++++++++++++++++ drivers/gpu/drm/gma500/psb_intel_sdvo_regs.h | 723 +++++++ drivers/gpu/drm/gma500/psb_irq.c | 564 ++++++ drivers/gpu/drm/gma500/psb_irq.h | 45 + drivers/gpu/drm/gma500/psb_lid.c | 88 + drivers/gpu/drm/gma500/psb_reg.h | 582 ++++++ drivers/gpu/drm/i810/i810_dma.c | 19 +- drivers/gpu/drm/i810/i810_drv.c | 24 +- drivers/gpu/drm/i810/i810_drv.h | 6 +- drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/i915_debugfs.c | 86 +- drivers/gpu/drm/i915/i915_dma.c | 5 + drivers/gpu/drm/i915/i915_drv.c | 38 +- drivers/gpu/drm/i915/i915_drv.h | 8 +- drivers/gpu/drm/i915/i915_gem.c | 10 +- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 63 +- drivers/gpu/drm/i915/i915_irq.c | 22 +- drivers/gpu/drm/i915/i915_reg.h | 186 ++- drivers/gpu/drm/i915/intel_display.c | 360 +++- drivers/gpu/drm/i915/intel_dp.c | 1 + drivers/gpu/drm/i915/intel_drv.h | 51 +- drivers/gpu/drm/i915/intel_fb.c | 19 +- drivers/gpu/drm/i915/intel_hdmi.c | 8 +- drivers/gpu/drm/i915/intel_ringbuffer.c | 30 +- drivers/gpu/drm/i915/intel_sprite.c | 668 +++++++ drivers/gpu/drm/mga/mga_drv.c | 29 +- drivers/gpu/drm/nouveau/Makefile | 9 +- drivers/gpu/drm/nouveau/nouveau_bios.c | 904 +++------- drivers/gpu/drm/nouveau/nouveau_bios.h | 69 +- drivers/gpu/drm/nouveau/nouveau_bo.c | 119 ++- drivers/gpu/drm/nouveau/nouveau_channel.c | 2 + drivers/gpu/drm/nouveau/nouveau_connector.c | 403 +++-- drivers/gpu/drm/nouveau/nouveau_connector.h | 36 +- drivers/gpu/drm/nouveau/nouveau_crtc.h | 6 +- drivers/gpu/drm/nouveau/nouveau_debugfs.c | 3 +- drivers/gpu/drm/nouveau/nouveau_display.c | 198 ++- drivers/gpu/drm/nouveau/nouveau_dma.c | 14 +- drivers/gpu/drm/nouveau/nouveau_dp.c | 22 +- drivers/gpu/drm/nouveau/nouveau_drv.c | 80 +- drivers/gpu/drm/nouveau/nouveau_drv.h | 133 +- drivers/gpu/drm/nouveau/nouveau_fb.h | 4 +- drivers/gpu/drm/nouveau/nouveau_fbcon.c | 22 +- drivers/gpu/drm/nouveau/nouveau_gpio.c | 400 ++++ drivers/gpu/drm/nouveau/nouveau_gpio.h | 71 + drivers/gpu/drm/nouveau/nouveau_hdmi.c | 258 +++ drivers/gpu/drm/nouveau/nouveau_hwsq.h | 115 ++ drivers/gpu/drm/nouveau/nouveau_i2c.c | 556 ++++-- drivers/gpu/drm/nouveau/nouveau_i2c.h | 21 +- drivers/gpu/drm/nouveau/nouveau_mem.c | 10 +- drivers/gpu/drm/nouveau/nouveau_mxm.c | 677 +++++++ drivers/gpu/drm/nouveau/nouveau_notifier.c | 2 +- drivers/gpu/drm/nouveau/nouveau_object.c | 25 +- drivers/gpu/drm/nouveau/nouveau_perf.c | 18 +- drivers/gpu/drm/nouveau/nouveau_pm.c | 382 ++++- drivers/gpu/drm/nouveau/nouveau_pm.h | 24 +- drivers/gpu/drm/nouveau/nouveau_sgdma.c | 179 +-- drivers/gpu/drm/nouveau/nouveau_state.c | 197 +- drivers/gpu/drm/nouveau/nouveau_temp.c | 29 +- drivers/gpu/drm/nouveau/nouveau_vm.c | 3 +- drivers/gpu/drm/nouveau/nouveau_vm.h | 2 +- drivers/gpu/drm/nouveau/nouveau_volt.c | 15 +- drivers/gpu/drm/nouveau/nv04_crtc.c | 14 +- drivers/gpu/drm/nouveau/nv04_dac.c | 14 +- drivers/gpu/drm/nouveau/nv04_dfp.c | 16 +- drivers/gpu/drm/nouveau/nv04_display.c | 5 + drivers/gpu/drm/nouveau/nv04_pm.c | 109 +- drivers/gpu/drm/nouveau/nv04_timer.c | 3 +- drivers/gpu/drm/nouveau/nv10_gpio.c | 117 +- drivers/gpu/drm/nouveau/nv17_tv.c | 20 +- drivers/gpu/drm/nouveau/nv40_pm.c | 50 +- drivers/gpu/drm/nouveau/nv50_crtc.c | 347 ++-- drivers/gpu/drm/nouveau/nv50_dac.c | 7 +- drivers/gpu/drm/nouveau/nv50_display.c | 140 +- drivers/gpu/drm/nouveau/nv50_display.h | 4 + drivers/gpu/drm/nouveau/nv50_evo.c | 12 +- drivers/gpu/drm/nouveau/nv50_fifo.c | 6 +- drivers/gpu/drm/nouveau/nv50_gpio.c | 272 +--- drivers/gpu/drm/nouveau/nv50_graph.c | 4 +- drivers/gpu/drm/nouveau/nv50_pm.c | 783 +++++++- drivers/gpu/drm/nouveau/nv50_sor.c | 28 +- drivers/gpu/drm/nouveau/nv50_vm.c | 2 +- drivers/gpu/drm/nouveau/nv84_bsp.c | 83 + drivers/gpu/drm/nouveau/nv84_vp.c | 83 + drivers/gpu/drm/nouveau/nv98_crypt.c | 78 + drivers/gpu/drm/nouveau/nv98_ppp.c | 78 + drivers/gpu/drm/nouveau/nva3_copy.fuc | 262 ++-- drivers/gpu/drm/nouveau/nva3_copy.fuc.h | 2 +- drivers/gpu/drm/nouveau/nva3_pm.c | 6 +- drivers/gpu/drm/nouveau/nvc0_copy.fuc.h | 2 +- drivers/gpu/drm/nouveau/nvc0_graph.c | 6 +- drivers/gpu/drm/nouveau/nvc0_graph.fuc | 56 +- drivers/gpu/drm/nouveau/nvc0_graph.h | 1 + drivers/gpu/drm/nouveau/nvc0_grctx.c | 127 +- drivers/gpu/drm/nouveau/nvc0_grgpc.fuc | 217 ++- drivers/gpu/drm/nouveau/nvc0_grgpc.fuc.h | 80 +- drivers/gpu/drm/nouveau/nvc0_grhub.fuc | 311 ++-- drivers/gpu/drm/nouveau/nvc0_grhub.fuc.h | 96 +- drivers/gpu/drm/nouveau/nvc0_pm.c | 237 +++ drivers/gpu/drm/nouveau/nvd0_display.c | 833 +++++++-- drivers/gpu/drm/r128/r128_drv.c | 30 +- drivers/gpu/drm/radeon/Makefile | 5 +- drivers/gpu/drm/radeon/atom.c | 2 + drivers/gpu/drm/radeon/atombios_crtc.c | 6 +- drivers/gpu/drm/radeon/atombios_encoders.c | 35 +- drivers/gpu/drm/radeon/evergreen.c | 241 ++- drivers/gpu/drm/radeon/evergreen_blit_kms.c | 242 ++-- drivers/gpu/drm/radeon/evergreen_cs.c | 246 +++- drivers/gpu/drm/radeon/evergreen_reg.h | 13 + drivers/gpu/drm/radeon/evergreend.h | 65 +- drivers/gpu/drm/radeon/ni.c | 395 +++- drivers/gpu/drm/radeon/nid.h | 35 + drivers/gpu/drm/radeon/r100.c | 232 ++-- drivers/gpu/drm/radeon/r200.c | 21 +- drivers/gpu/drm/radeon/r300.c | 160 +- drivers/gpu/drm/radeon/r420.c | 49 +- drivers/gpu/drm/radeon/r500_reg.h | 2 + drivers/gpu/drm/radeon/r520.c | 25 +- drivers/gpu/drm/radeon/r600.c | 273 ++-- drivers/gpu/drm/radeon/r600_audio.c | 57 +- drivers/gpu/drm/radeon/r600_blit_kms.c | 235 ++-- drivers/gpu/drm/radeon/r600_cp.c | 2 +- drivers/gpu/drm/radeon/r600_cs.c | 8 +- drivers/gpu/drm/radeon/r600_hdmi.c | 65 +- drivers/gpu/drm/radeon/r600d.h | 2 + drivers/gpu/drm/radeon/radeon.h | 367 +++- drivers/gpu/drm/radeon/radeon_asic.c | 197 ++- drivers/gpu/drm/radeon/radeon_asic.h | 48 +- drivers/gpu/drm/radeon/radeon_benchmark.c | 8 +- drivers/gpu/drm/radeon/radeon_cs.c | 302 +++- drivers/gpu/drm/radeon/radeon_device.c | 76 +- drivers/gpu/drm/radeon/radeon_display.c | 10 +- drivers/gpu/drm/radeon/radeon_drv.c | 69 +- drivers/gpu/drm/radeon/radeon_fb.c | 24 +- drivers/gpu/drm/radeon/radeon_fence.c | 307 ++-- drivers/gpu/drm/radeon/radeon_gart.c | 425 ++++- drivers/gpu/drm/radeon/radeon_gem.c | 147 ++- drivers/gpu/drm/radeon/radeon_irq_kms.c | 24 +- drivers/gpu/drm/radeon/radeon_kms.c | 47 +- drivers/gpu/drm/radeon/radeon_legacy_crtc.c | 2 +- drivers/gpu/drm/radeon/radeon_mode.h | 2 +- drivers/gpu/drm/radeon/radeon_object.c | 38 +- drivers/gpu/drm/radeon/radeon_object.h | 32 + drivers/gpu/drm/radeon/radeon_pm.c | 34 +- drivers/gpu/drm/radeon/radeon_ring.c | 465 +++--- drivers/gpu/drm/radeon/radeon_sa.c | 189 ++ drivers/gpu/drm/radeon/radeon_semaphore.c | 178 ++ drivers/gpu/drm/radeon/radeon_test.c | 269 +++- drivers/gpu/drm/radeon/radeon_ttm.c | 355 ++-- drivers/gpu/drm/radeon/rs400.c | 27 +- drivers/gpu/drm/radeon/rs600.c | 38 +- drivers/gpu/drm/radeon/rs690.c | 30 +- drivers/gpu/drm/radeon/rv515.c | 106 +- drivers/gpu/drm/radeon/rv770.c | 63 +- drivers/gpu/drm/savage/savage_drv.c | 23 +- drivers/gpu/drm/sis/sis_drv.c | 56 +- drivers/gpu/drm/sis/sis_drv.h | 7 +- drivers/gpu/drm/sis/sis_mm.c | 199 ++- drivers/gpu/drm/tdfx/tdfx_drv.c | 23 +- drivers/gpu/drm/ttm/Makefile | 4 + drivers/gpu/drm/ttm/ttm_agp_backend.c | 105 +- drivers/gpu/drm/ttm/ttm_bo.c | 90 +- drivers/gpu/drm/ttm/ttm_bo_util.c | 32 +- drivers/gpu/drm/ttm/ttm_bo_vm.c | 9 +- drivers/gpu/drm/ttm/ttm_memory.c | 2 + drivers/gpu/drm/ttm/ttm_page_alloc.c | 184 ++- drivers/gpu/drm/ttm/ttm_page_alloc_dma.c | 1143 +++++++++++ drivers/gpu/drm/ttm/ttm_tt.c | 324 +--- drivers/gpu/drm/via/via_drv.c | 48 +- drivers/gpu/drm/via/via_drv.h | 7 +- drivers/gpu/drm/via/via_map.c | 10 +- drivers/gpu/drm/via/via_mm.c | 135 +- drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c | 71 +- drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 30 +- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 32 +- drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 1 + drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 4 +- drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 35 +- drivers/staging/gma500/accel_2d.c | 2 +- drivers/staging/gma500/cdv_intel_display.c | 4 +- drivers/staging/gma500/framebuffer.c | 41 +- drivers/staging/gma500/mdfld_intel_display.c | 4 +- drivers/staging/gma500/mrst_crtc.c | 4 +- drivers/staging/gma500/power.c | 2 +- drivers/staging/gma500/psb_drv.c | 23 +- drivers/staging/gma500/psb_intel_display.c | 4 +- drivers/xen/swiotlb-xen.c | 2 +- include/drm/Kbuild | 1 + include/drm/drm.h | 4 + include/drm/drmP.h | 10 +- include/drm/drm_crtc.h | 212 ++- include/drm/drm_crtc_helper.h | 5 +- include/drm/drm_fourcc.h | 137 ++ include/drm/drm_mode.h | 74 +- include/drm/drm_sman.h | 176 -- include/drm/exynos_drm.h | 37 + include/drm/gma_drm.h | 91 + include/drm/i915_drm.h | 40 + include/drm/radeon_drm.h | 36 + include/drm/sis_drm.h | 4 + include/drm/ttm/ttm_bo_api.h | 24 +- include/drm/ttm/ttm_bo_driver.h | 203 +-- include/drm/ttm/ttm_page_alloc.h | 77 +- include/drm/via_drm.h | 4 + include/linux/swiotlb.h | 2 +- lib/swiotlb.c | 5 +- 289 files changed, 43103 insertions(+), 6739 deletions(-) delete mode 100644 drivers/gpu/drm/drm_sman.c create mode 100644 drivers/gpu/drm/exynos/exynos_ddc.c create mode 100644 drivers/gpu/drm/exynos/exynos_drm_hdmi.c create mode 100644 drivers/gpu/drm/exynos/exynos_drm_hdmi.h create mode 100644 drivers/gpu/drm/exynos/exynos_drm_plane.c create mode 100644 drivers/gpu/drm/exynos/exynos_drm_plane.h create mode 100644 drivers/gpu/drm/exynos/exynos_hdmi.c create mode 100644 drivers/gpu/drm/exynos/exynos_hdmi.h create mode 100644 drivers/gpu/drm/exynos/exynos_hdmiphy.c create mode 100644 drivers/gpu/drm/exynos/exynos_mixer.c create mode 100644 drivers/gpu/drm/exynos/exynos_mixer.h create mode 100644 drivers/gpu/drm/exynos/regs-hdmi.h create mode 100644 drivers/gpu/drm/exynos/regs-mixer.h create mode 100644 drivers/gpu/drm/exynos/regs-vp.h create mode 100644 drivers/gpu/drm/gma500/Kconfig create mode 100644 drivers/gpu/drm/gma500/Makefile create mode 100644 drivers/gpu/drm/gma500/accel_2d.c create mode 100644 drivers/gpu/drm/gma500/backlight.c create mode 100644 drivers/gpu/drm/gma500/cdv_device.c create mode 100644 drivers/gpu/drm/gma500/cdv_device.h create mode 100644 drivers/gpu/drm/gma500/cdv_intel_crt.c create mode 100644 drivers/gpu/drm/gma500/cdv_intel_display.c create mode 100644 drivers/gpu/drm/gma500/cdv_intel_hdmi.c create mode 100644 drivers/gpu/drm/gma500/cdv_intel_lvds.c create mode 100644 drivers/gpu/drm/gma500/framebuffer.c create mode 100644 drivers/gpu/drm/gma500/framebuffer.h create mode 100644 drivers/gpu/drm/gma500/gem.c create mode 100644 drivers/gpu/drm/gma500/gem_glue.c create mode 100644 drivers/gpu/drm/gma500/gem_glue.h create mode 100644 drivers/gpu/drm/gma500/gtt.c create mode 100644 drivers/gpu/drm/gma500/gtt.h create mode 100644 drivers/gpu/drm/gma500/intel_bios.c create mode 100644 drivers/gpu/drm/gma500/intel_bios.h create mode 100644 drivers/gpu/drm/gma500/intel_gmbus.c create mode 100644 drivers/gpu/drm/gma500/intel_i2c.c create mode 100644 drivers/gpu/drm/gma500/intel_opregion.c create mode 100644 drivers/gpu/drm/gma500/mid_bios.c create mode 100644 drivers/gpu/drm/gma500/mid_bios.h create mode 100644 drivers/gpu/drm/gma500/mmu.c create mode 100644 drivers/gpu/drm/gma500/oaktrail.h create mode 100644 drivers/gpu/drm/gma500/oaktrail_crtc.c create mode 100644 drivers/gpu/drm/gma500/oaktrail_device.c create mode 100644 drivers/gpu/drm/gma500/oaktrail_hdmi.c create mode 100644 drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c create mode 100644 drivers/gpu/drm/gma500/oaktrail_lvds.c create mode 100644 drivers/gpu/drm/gma500/power.c create mode 100644 drivers/gpu/drm/gma500/power.h create mode 100644 drivers/gpu/drm/gma500/psb_device.c create mode 100644 drivers/gpu/drm/gma500/psb_drv.c create mode 100644 drivers/gpu/drm/gma500/psb_drv.h create mode 100644 drivers/gpu/drm/gma500/psb_intel_display.c create mode 100644 drivers/gpu/drm/gma500/psb_intel_display.h create mode 100644 drivers/gpu/drm/gma500/psb_intel_drv.h create mode 100644 drivers/gpu/drm/gma500/psb_intel_lvds.c create mode 100644 drivers/gpu/drm/gma500/psb_intel_modes.c create mode 100644 drivers/gpu/drm/gma500/psb_intel_reg.h create mode 100644 drivers/gpu/drm/gma500/psb_intel_sdvo.c create mode 100644 drivers/gpu/drm/gma500/psb_intel_sdvo_regs.h create mode 100644 drivers/gpu/drm/gma500/psb_irq.c create mode 100644 drivers/gpu/drm/gma500/psb_irq.h create mode 100644 drivers/gpu/drm/gma500/psb_lid.c create mode 100644 drivers/gpu/drm/gma500/psb_reg.h create mode 100644 drivers/gpu/drm/i915/intel_sprite.c create mode 100644 drivers/gpu/drm/nouveau/nouveau_gpio.c create mode 100644 drivers/gpu/drm/nouveau/nouveau_gpio.h create mode 100644 drivers/gpu/drm/nouveau/nouveau_hdmi.c create mode 100644 drivers/gpu/drm/nouveau/nouveau_hwsq.h create mode 100644 drivers/gpu/drm/nouveau/nouveau_mxm.c create mode 100644 drivers/gpu/drm/nouveau/nv84_bsp.c create mode 100644 drivers/gpu/drm/nouveau/nv84_vp.c create mode 100644 drivers/gpu/drm/nouveau/nv98_crypt.c create mode 100644 drivers/gpu/drm/nouveau/nv98_ppp.c create mode 100644 drivers/gpu/drm/radeon/radeon_sa.c create mode 100644 drivers/gpu/drm/radeon/radeon_semaphore.c create mode 100644 drivers/gpu/drm/ttm/ttm_page_alloc_dma.c create mode 100644 include/drm/drm_fourcc.h delete mode 100644 include/drm/drm_sman.h create mode 100644 include/drm/gma_drm.h