Hi Linus, sorry this is a bit later than I expected got sidetracked into a real-life gastro bug for a couple of days just after merge window opened, Main features amongst it all: new stub driver for poulsbo backlight support drm core: kdb lut support, lots of cleanups, edid enhancement for audio capability ttm: optimised eviction process (saves a lot of unnecessary object movement) + allow an alternate underlying memory manager to be plugged in vmware: bring in line with upstream changes + use alternate memory manager nouveau: iniital power management support, hardware inter-channel sync, better handling of gpu errors and non-mappable VRAM, tiling corruption fixes, nvaf support radeon: new fences on r6xx+, spread spectrum improvements on r5xx+ (DP support and LVDS fixes), evergreen blit support, ppl fixes, lots of tiling fixes intel: rework of AGP/DRM driver interfaces to be a lot cleaner, support for using the whole GTT range instead of just the CPU mappable region lots of eDP fixes, unload fixes, DP audio support, also a lot of output from the Chris Wilson bugfixing machine. Dave. The following changes since commit 2b666ca4a68cbc22483b0f2e1ba3c0e59b01ae9e: Merge branch 'fix/misc' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 (2010-10-17 09:38:08 -0700) are available in the git repository at: ssh://master.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git drm-core-next Alex Deucher (18): drm/radeon/kms: clean up r6xx/r7xx blit init (v2) drm/radeon/kms: enable writeback (v2) drm/radeon/kms/r6xx+: use new style fencing (v3) drm/radeon/kms: properly handle 40 bit MC addresses in the cursor code drm/radeon/kms: prefer high post dividers in legacy pll algo drm/radeon/kms: remove some pll algo flags drm/radeon/kms: remove new pll algo drm/radeon/kms: rework spread spectrum handling drm/radeon/kms: add drm blit support for evergreen drm/radeon/kms: make sure blit addr masks are 64 bit drm/radeon/kms: avivo cursor workaround applies to evergreen as well drm/radeon/kms/evergreen: add some additional safe regs v2 drm/radeon/kms: implement display watermark support for evergreen drm/radeon/kms: MC vram map needs to be >= pci aperture size drm/radeon/kms/evergreen: set the clear state to the blit state drm/radeon/kms: fix 2D tile height alignment in the r600 CS checker drm/radeon/kms: properly compute group_size on 6xx/7xx drm/radeon/kms: fix r6xx/7xx 1D tiling CS checker v2 Andrea Gelmini (1): drivers: gpu: drm: i915: Fix a typo. Ben Skeggs (56): drm/nv50: add new accelerated bo move funtion drm/nouveau: move check for no-op bo move before memcpy fallback drm/nouveau: remove second map of notifier bo drm/nouveau: require explicit unmap of kmapped bos drm/nouveau: have nv_mask return original register value drm/nouveau: move ramht code out of nouveau_object.c, nothing to see here drm/nouveau: modify object accessors, offset in bytes rather than dwords drm/nouveau: rebase per-channel pramin heap offsets to 0 drm/nouveau: remove nouveau_gpuobj_ref completely, replace with sanity drm/nouveau: simplify fake gpu objects drm/nv50: allow gpuobjs that aren't mapped into aperture drm/nv50: calculate vram reordering block size drm/nouveau: rework init ordering so nv50_instmem.c can be less bad drm/nouveau: tidy ram{ht,fc,ro} a bit drm/nouveau: add spinlock around ramht modifications drm/nouveau: fix gpuobj refcount to use atomics drm/nouveau: protect gpuobj list + global instmem heap with spinlock drm/nouveau: remove nouveau_gpuobj_late_takedown drm/nouveau: protect ramht_find() from oopsing if on channel without ramht drm/nv50: move vm trap to nv50_fb.c drm/nv50: report BAR access faults drm/nv50: fix SOR count for early chipsets drm/nouveau: better handling of unmappable vram drm/nouveau: handle fifo pusher errors better drm/nouveau: we can't free ACPI EDID, so make a copy that we can drm/nv50: mark PCIEGART pages non-present rather than using dummy page drm/nouveau: zero dummy page drm/nv50: fix 100c90 write on nva3 drm/nouveau: make the behaviour of get_pll_limits() consistent drm/nouveau: make bios code easier to use externally drm/nouveau: import initial work on vbios performance table parsing drm/nv50: import initial clock get/set routines + hook up pm engine drm/nv04-nv40: import initial pm backend drm/nouveau: allow static performance level setting drm/nouveau: restore perflvl on resume, and restore boot perflvl on unload drm/nouveau: fix potential accuracy loss when parsing perf 0x1c tables drm/nouveau: implement parsing of DCB 2.2 GPIO table drm/nouveau: fix thinko in volt 0x1x parsing drm/nv50: flush bar1 vm / dma object setup before poking 0x1708 drm/nouveau: correct INIT_DP_CONDITION subcondition 5 drm/nouveau: add debugfs file to forcibly evict everything from vram drm/nv50: assume smaller tiles for bo moves drm/nouveau: fix chipset vs card_type thinko drm/nouveau: fix panels using straps-based mode detection drm/nouveau: v3.0 pll limits tables have type<->register mapping too drm/nv50: use pll type rather than register for CRTC PLL drm/nouveau: enable enhanced framing only if DP display supports it drm/nouveau: pass perflvl struct to clock_pre() drm/nouveau: run perflvl and M table scripts on mem clock change drm/nva3: split pm backend out from nv50 drm/nouveau: fix typo in c2aa91afea5f7e7ae4530fabd37414a79c03328c drm/nouveau: fix required mode bandwidth calculation for DP drm/nv50: prevent (IB_PUT == IB_GET) for occurring unless idle drm/nouveau: parse voltage from perf 0x40 entires drm/ttm: introduce utility function to free an allocated memory node drm/ttm: restructure to allow driver to plug in alternate memory manager Bryan Freed (1): drm/i915: Initialize panel timing registers if VBIOS did not Chia-I Wu (1): drm/i915: Fix current fb blocking for page flip Chris Ball (3): drm/radeon/kms: Implement KDB debug hooks for radeon KMS. drm/nouveau/kms: Implement KDB debug hooks for nouveau KMS. drm/nouveau/kms: Avoid a hang entering KDB with VT accel on. Chris Wilson (190): Merge remote branch 'airlied/drm-core-next' into HEAD drm/i915: Drop the msleep parameter to wait_for() drm/i915: Avoid using msleep under kdb and wait_for() drm/i915/crt: Flush register prior to waiting for vblank. drm/i915: Rename i915_opregion.c to intel_opregion.c drm/i915: Use the VBT from OpRegion when available (v3) drm/i915: Addin-offset is an unreliable indicator of LVDS presence (v2) drm/i915: Ironlake page-flipping is per-plane not per-pipe drm/i915/tv: Preserve reserved DAC bits during mode-setting drm/i915/tv: Poll for DAC state change drm/i915/tv: Mark the format names as constant and so avoid the memleak drm/i915: Sanity check user framebuffer parameters on creation drm/i915/sdvo: Preserve pixel-multiplier drm/i915/overlay: Whitespace drm/i915/overlay: Missing breaks between case statements for color depth drm/i915/overlay: Ensure that the reg_bo is in the GTT prior to writing. drm/i915/overlay: Move capabilities bits to common info block. drm/i915/overlay: Use non-atomic mappings for the common case. drm/i915/overlay: Tidy attribute checking. drm/i915/overlay: Use the recommended page alignment for physical regs drm/i915/overlay: Destroy reg_bo on shutdown. drm/i915/overlay: Remove duplicated definition of OFC_UPDATE drm/i915/overlay: Tidy update_pfit_vscale_ratio() drm/i915/overlay: Tidy check_overlay_dst() drm/i915/overlay: Refactor do_wait_request() drm/i915/overlay: Explicitly pass regs from map to unmap drm/i915/overlay: Combine SWITCH_OFF into a single step drm/i915/overlay: Tidy release_old_vid() drm/i915: Preallocate requests drm/i915/overlay: Make do_put_image() as static drm/i915/overlay: Workaround i830 overlay activation bug. drm/i915/overlay: Pass interruptible to switch_off() drm/i915/overlay: Make the overlay control struct opaque. drm/i915/overlay: Use a continuation hook to finish work after a flip. drm/i915: Compile out error state without DEBUG_FS drm/i915: Remove the random SyncFlush during initialisation drm/i915: Kill the active list spinlock drm/i915: Quieten sparse warnings for missing prototypes. drm/i915: Remove redundant initialisation of fb_base drm/i915: Refactor panel backlight controls drm/i915/tv: After disabling the pipe, use wait_for_vblank_off() drm/i915: Show device capabilities in debugfs drm/i915: Show framebuffer info in debugfs drm/i915: Clear scanline waits after disabling the pipe. drm/i915: Add ringbuffer wait reset to hangcheck drm/i915: Remove impossible error handling from bit17 swizzling drm/i915/dp: Flush the PLL register write before sleeping drm/i915: Rename intel_encoder->enc to base for consistency drm/i915: Use the direct mapping of pipe->crtc drm/i915: Make the connector->encoder relationship explicit drm/i915/debug: Include Ironlake in self-refresh status drm/i915: Adapt workqueue to new alloc_workqueue interface drm/i915: Ensure all PLL registers are flushed before a udelay() drm/i915: Only call udelay() when waiting for clocks to stabilise drm/i915: Use the real FDI frequency for determining b/w Merge branch 'drm-intel-fixes' into drm-intel-next drm/i915: Fix updating FBC drm/i915: Tidy Ironlake watermark computation drm/i915: Use macros to switch between equivalent pipe registers drm/i915/dp: Convert a udelay(17000) to a sleep during link-off drm/i915/i2c: The bit-banging interface controls the delay, drop ours drm/i915/lvds: Remove busy wait for powering down the panel drm/i915/lvds: Remove busy wait for powering up the panel. drm/i915: Use msleep instead of mdelay during wait_vblank_off drm/i915/sdvo: Poll command status 5 times without delay on read drm/i915/bios: Prevent NULL dereference after allocation failure drm/i915/lvds: Ensure panel is unlocked for Ironlake or the panel fitter drm/i915/lvds: Remove incorrect mode locking drm/i915/lvds: Move private data to the connector from the device. drm/i915: Share crtc setup and teardown between dpms and disable/enable drm/i915: Fix an overlay regression from 7e7d76c drm/i915: Initialize intel_crtc->active drm/i915: Remove redundant initialisation of crtc->pipe drm/i915: Reduce hangcheck frequency drm/i915: Consolidate flushing the display plane drm/i915: Fix regression in ba3d8d749b agp/intel: Use macro to set the count of the size array drm/i915: Push pipelining of display plane flushes to the caller drm/i915: Allow get_fence_reg() to be uninterruptible drm/i915/i2c: Track the parent encoder rather than just the dev drm/i915: Remove unused intel_ringbuffer->ring_flag drm/i915/sdvo: Tidy intel_sdvo_hdmi_sink_detect drm/i915/sdvo: Propagate i2c error from switching DDC control bus. agp/intel: Remove redundant setting of gtt_mappable_entries agp/intel: Fix resume regression from 2d2430cf drm/i915/sdvo: Only create the analog encoder as required drm/i915/sdvo: Mark the status as unknown if attached with EDID drm/i915: call drm_encoder_init first drm/i915: use GMBUS to manage i2c links Merge branch 'drm-intel-fixes' into HEAD drm/i915: Cache LVDS EDID drm/i915: INTEL_INFO->gen supercedes i8xx, i9xx, i965g drm/i915: After a reset perform a forced modeset drm/i915/debug: Dump BSD ring buffers to debugfs drm/i915: Inline i915_gem_ring_retire_request() drm/i915: Only emit a flush request on the active ring. drm/i915: Clear flushing lists on GPU reset drm/i915: Clear GPU read domains on reset drm/i915: Clean up bo lists on all hung gpus drm/i915/ringbuffer: Implement advance using set_tail drm/i915/ringbuffer: Mark the initialisation structs as constant. drm/i915: Use ring->flush() instead of MI_FLUSH drm/i915/ringbuffer: whitespace cleanup drm/i915: Track gpu fence usage drm/i915: Merge ring flushing and lazy requests drm/i915: Drain any pending flips on the fb prior to unpinning drm/i915: Track pinned objects drm/i915: Disable output polling across suspend & resume drm/i915: Drop crtc->fb pin on disable. drm/i915: Use the correct DPB GMBUS port for GPIOE drm/i915/lvds: Unlock the PP register when panel-fitting drm/i915: Don't overwrite the returned error-code drm/i915: Clear the gpu_write_list on resetting write_domain upon hang drm/i915: Don't offset the pin used for crt_ddc drm/i915: Drop ring->lazy_request drm/i915: Disable "disabled FBC" message when a no-op drm/i915/crt: Use a DDC probe on 0xA0 before load-detect drm/i915: Remove the broken flush_ring from page-flip drm/i915/tv: Sleep before checking for state changes. drm/i915/lvds: Probe DDC on creation drm/i915: Remove idle timer debugging messages drm/i915/ringbuffer: Fix sign of ring space. drm/i915: Remove unused dev_priv->panel_wants_dither drm/i915: Use an uninterruptible wait for page-flips during modeset drm/i915/lvds: Use the GMBUS pin if specified in VBT drm/i915: Parse the eDP link configuration from the vBIOS drm/i915: Only hold a process-local lock whilst throttling. drm/i915: Adjust hangcheck EIO semantics drm/i915: Make the mutex_lock interruptible on ioctl paths drm/i915: Convert the file mutex into a spinlock drm/i915: fix debugging compilation error from previous commit drm/i915: Ensure that the mode change flushing is currently uninterruptible Revert "drm/i915: Drop ring->lazy_request" drm/i915/sdvo: Fix GMBUSification drm/i915: Use i2c bit banging instead of GMBUS MAINTAINERS: Add contact details for drm/i915 Merge branch 'drm-intel-fixes' into drm-intel-next drm/i915: Disable LVDS i2c probing when using GPIO bit banging drm/i915: Tidy dvo_ch7017 and print out which chip we detect drm/i915/dvo: Fix panel and DDC i2c pins drm/i915/debug: Remove defunct WATCH_LRU drm/i915/debug: Remove default WATCH_BUF drm/i915: Avoid blocking the kworker thread on a stuck mutex drm/i915/debug: Convert i915_verify_active() to scan all lists drm/i915: Report the deferred free list in debugfs drm/i915/debugfs: Include list totals drm/i915: Make get/put pages static drm/i915: Remove redundant deletion of obj->gpu_write_list drm: Move the GTT accounting to i915 drm/i915: Force the domain to CPU on unbinding whilst wedged. drm/i915: Clear fence registers on GPU reset drm/i915: Try to reset gen2 devices. drm/i915: Only print 'generating error event' if we actually are drm/i915: If the GPU hangs twice within 5 seconds, declare it wedged. drm/i915: Don't mask the return code whilst relocating. Merge branch 'drm-intel-fixes' into drm-intel-next Merge branch 'drm-intel-fixes' into drm-intel-next drm/i915: Skip pread/pwrite if size to copy is 0. drm/i915: Avoid circular locking from intel_fbdev_fini() drm/i915: Wait for pending flips on the GPU Merge remote branch 'airlied/drm-core-next' into tmp Revert "drm/i915: Prevent module unload to avoid random memory corruption" drm/i915: Remove duplicate set of ADPA definitions drm/i915: restore fixed FDI link rate on Sandybridge drm/i915: Sleep whilst waiting for the ring drm/i915/dp: Add 'force_audio' property drm/i915/sdvo: Add 'force_audio' property drm/i915/hdmi: Add 'force_audio' property drm/i915: Avoid vmallocing a buffer for the relocations drm/i915: Perform relocations in CPU domain [if in CPU domain] drm/i915: Avoid taking the mutex for dropping the refcnt upon creation drm/i915: Attempt to prefault user pages for pread/pwrite drm/i915: Rearrange acquisition of mutex during pwrite drm/i915: rearrange mutex acquisition for pread agp/intel: Also add B43.1 to list of supported devices drm/i915: Do interrupible mutex lock first to avoid locking for unreference drm/i915: cache the last object lookup during pin_and_relocate() drm/i915: Simplify most HAS_BSD() checks drm/i915: Track objects in global active list (as well as per-ring) drm/i915: Copy the updated reloc->presumed_offset back to the user drm/i915/ringbuffer: Fix emit batch buffer regression from 8187a2b drm/i915/ringbuffer: Remove broken intel_fill_struct() drm/i915: Enable SandyBridge blitter ring drm/i915: IS_IRONLAKE is synonymous with gen == 5 drm/i915/sdvo: Remove unused encoding member drm/i915: Fix flushing regression from 9af90d19f agp/intel: Restore valid PTE bit for Sandybridge after bdd3072 drm/i915/ringbuffer: Write the value passed in to the tail register drm/i915: Invalidate the to-ring, flush the old-ring when updating domains drm/i915: Move gpu_write_list to per-ring Dan Carpenter (1): i915: snprintf returns large values Daniel Vetter (85): drm: don't export drm_sg_alloc drm: kill kernel_context_switch callbacks drm: kill procfs callbacks drm: kill dma_ready callbacks drm: kill gem_free_object_unlocked driver callback drm: kill context_ctor callback drm: don't export drm_get_drawable_info drm: drop return value of drm_free_agp drm: kill drm_map_ofs callbacks drm: don't export dri1 locking functions drm: replace drawable ioctl by noops drm: kill agp indirection mess drm: kill dev->timer drm: kill get_reg_ofs callback drm/i915: unload: fix intel dp encoder cleanup drm/i915: unload: fix error_work races drm/i915: unload: fix hotplug_work races drm/i915: unload: don't leak error state drm/i915: unload: fix idle_timer/idle_work races drm/i915: unload: fix unpin_work related races drm/i915: unload: ensure that gem is idle drm/i915: unload: fix retire_work races drm/i915: allow lazy emitting of requests drm/i915: move flushing list processing to i915_gem_flush drm/i915: only one interrupt per batchbuffer is not enough! drm/i915: move flushing list processing to i915_retire_commands drm/i915: kill a no longer necessary BUG_ON drm/i915: drop seqno argument from i915_gem_object_move_to_active drm/i915: move the wait_rendering call into flush_gpu_write_domain drm/i915: drop i915_add_request right in front of i915_wait_request agp/intel: split out gmch/gtt probe, part 2 agp/intel: make intel-gtt.c into a real source file intel-gtt: introduce drm/intel-gtt.h intel-gtt: store a local pointer to the bridge pci dev intel-gtt: s/intel_i830_init_gtt_entries/intel_gtt_stolen_entries intel-gtt: new function intel_gtt_mappable_entries intel-gtt: generic intel_fake_agp_fetch_size intel-gtt: sane variable names for intel_gtt_stolen_entries intel-gtt: drop unnecessary conditions in intel_gtt_stolen_entries intel-gtt: adjust overhead entries in intel_gtt_stolen_entries intel-gtt: s/i8[13]0/fake_agp for generic functions intel-gtt: fix gtt_total_entries detection intel-gtt: introduce intel_gtt_driver intel-gtt: i915: use detected gtt size for mapping intel-gtt: i965: use detected gtt size for mapping intel-gtt: i830: adjust ioremap of regs and gtt to i9xx intel-gtt: consolidate the gtt ioremap calls intel-gtt: consolidate i830 setup intel-gtt: consolidate i9xx setup intel-gtt: call init_gtt_init in probe function intel-gtt: use chipset generation number some more drm/i915: drop prealloc_start from i915_dma gtt init drm/i915: die, i915_probe_agp, die drm/i915: kill duplicated/unneeded register defines drm/i915: add relative ring register macros drm/i915: use new macros to access the ring tail register drm/i915: use new macros to access the ring start register drm/i915: use new macros to access the ring head register drm/i915: use new macros to access the ring ctl register drm/i915: don't explicitly initialize ringbuffer members to zero drm/i915: drop alignment ringbuffer parameter intel-gtt: initialize our own scratch page intel-gtt: introduce pte write function for i8xx/i915/i945 intel-gtt: introduce pte write function for g33/i965/gm45 intel-gtt: introduce pte write function for gen6 intel-gtt: drop agp scratch page support stuff agp: kill agp_(map|unmap)_page intel-gtt: generic (insert|remove)_entries for i830 intel-gtt: generic (insert|remove)_entries for i915 intel-gtt: generic (insert|remove)_entries for g33/i965 intel-gtt: generic (insert|remove)_entries for sandybridge intel-gtt: kill mask_memory functions intel-gtt: move chipset flush to the gtt driver struct intel-gtt: consolidate fake_agp driver structs agp: kill agp_(unmap|map)_memory intel-gtt: clean up gtt size reporting intel-gtt: store the dma mask size in intel_gtt_driver intel-gtt add a cleanup function for chipset specific stuff drm/i915: kill now unnecessary gtt defines from i915_reg.h drm/i915: fix ACTHD for gen <= 3 drm/i915: kill per-ring macros drm/i915: kill ring->get_active_head drm/i915: kill ring->setup_status_page drm: readd drm_lock_free in drm_unlock drm/i915: Fix oops on HWS unload Dave Airlie (13): Merge remote branch 'origin/master' of /home/airlied/kernel//linux-2.6 into drm-core-next Merge remote branch 'intel/drm-intel-next' of ../drm-next into drm-core-next Merge remote branch 'korg/drm-fixes' into drm-vmware-next Merge branch 'drm-vmware-next' into drm-core-next Merge remote branch 'nouveau/for-airlied' of ../drm-nouveau-next into drm-core-next Merge branch 'drm-kdb-next' into drm-core-next Merge branch 'drm-radeon-next' of ../drm-radeon-next into drm-core-next Merge branch 'drm-fixes' of /home/airlied/kernel/linux-2.6 into drm-core-next drm/ttm: add unlocked variant of new manager put node. Revert "drm/radeon/kms: remove some pll algo flags" Merge remote branch 'intel/drm-intel-next' of ../drm-next into drm-core-next drm/radeon/r600: fix tiling issues in CS checker. drm/radeon/kms: don't poll dac load detect. David Härdeman (1): i915: enable AVI infoframe for intel_hdmi.c [v4] Emil Velikov (1): drm/nouveau: don't use the default pll limits in table v2.1 on nv50+ cards Francesco Marella (1): drm/nv40: fix reading temp value Francisco Jerez (30): drm/nouveau: Fix suspend on some nv4x AGP cards. drm/nv20: Use the nv30 CRTC bandwidth calculation code. drm/nv17-nv4x: Fix analog load detection false positive on rare occasions. drm/nv40: Try to set up CRE_LCD even if it has unknown bits set. drm/nouveau: Break some long lines in the TV-out code. drm/nouveau: Don't remove ramht entries from the neighboring channels. drm/nouveau: Don't enable AGP FW on nv18. drm/nouveau: Add module parameter to override the default AGP rate. drm/nouveau: PRAMIN is available from the start on pre-nv50. drm/nouveau: Remove implicit argument from nv_wait(). drm/nouveau: Simplify tile region handling. drm/nouveau: Try to fetch an EDID from OF if DDC fails. drm/nouveau: Parse old style perf tables. drm/nv10: Don't oops if the card wants to switch to a channel with no grctx. drm/nouveau: Don't try to parse a GPIO table on early DCBv2.2 BIOSes. drm/nouveau: Add sane sensor correction defaults for nv4a. drm/nouveau: Fix parsing of the temperature constant correction. drm/nouveau: Double the perf table memory clocks on pre-G71 cards. drm/nouveau: Refactor nouveau_temp_get() into engine pointers. drm/nouveau: Add support for I2C hardware monitoring devices. drm/nouveau: Misc cleanup of the PM code. drm/nouveau: Fix perf table parsing on BMP v5.25. drm/nv30-nv40: Fix postdivider mask when writing engine/memory PLLs. drm/nv0x-nv4x: Leave the 0x40 bit untouched when changing CRE_LCD. drm/nouveau: Minor refactoring/cleanup of the fence code. drm/nouveau: Provide a means to have arbitrary work run on fence completion. drm/nouveau: Use semaphores to handle inter-channel sync in hardware. drm/nouveau: Synchronize buffer object moves in hardware. drm/nv50: Fix large 3D performance regression caused by the interchannel sync patches. agp/amd-k7: Allow binding user memory to the AGP GART. Hette Visser (1): drm/i915/dp: Wait for PP_CONTROL to take effect. Jan Beulich (1): some clean up to intel-gtt.c Jason Wessel (5): drm, kdb, kms: Add an enter argument to mode_set_base_atomic() API radeon, kdb, kms: Save and restore the LUT on atomic KMS enter/exit Revert "radeon, kdb, kms: Save and restore the LUT on atomic KMS enter/exit" kdb, kms: Save and restore the LUT on atomic KMS enter/exit drm, kdb, kms: Change mode_set_base_atomic() enter argument to be an enum Jean Delvare (1): drm/ttm: Simplify ttm_bo_wait_unreserved Jesse Barnes (40): drm/i915: add MMIO debug output drm/i915: fix pipeconf dither bit definitions drm/i915: set dither bits on eDP panels too drm/i915: fix eDP detection drm/i915: use 125MHz reference clock for PCH attached eDP drm/i915: use VDD AUX for panel power around detection and in prepare drm/i915: split DP link training across panel power sequencing drm/i915: don't change VDD AUX status in panel power functions drm/i915: make sure VDD AUX power has time to settle drm/i915: make sure panel is sequenced off when starting a mode set drm/i915: split Ironlake CRTC enable/disable code drm/i915: split i9xx CRTC enable/disable code drm/i915: don't unlock panel regs drm/i915: use i915 and Ironlake CRTC enable/disable functions in prepare/commit drm/i915: enable PCH PLL, FDI training and transcoder even for eDP drm/i915: split Ironlake FDI enable function drm/i915: don't write TU size to N1 reg drm/i915: set FDI RX TU size to match transmit size drm/i915: enable thermal reporting for IPS drm/i915/dp: convert eDP checks to functions and document drm/i915/dp: remove redundant is_pch_edp checks drm/i915/dp: correct eDP lane count and bpp drm/i915: add eDP checking functions for the display code drm/i915: remove broken intel_pch_has_edp function drm/i915: fix CPU vs PCH eDP confusion drm/i915/dp: eDP power sequencing fixes drm/i915: add _DSM support drm/i915: fetch eDP configuration data from the VBT drm/i915: add Ironlake clock gating workaround for FDI link training drm/i915: fix PCH eDP SSC support drm/i915: use 120MHz refclk in PCH eDP case too drm/i915: use DPLL_DVO_HIGH_SPEED for PCH eDP drm/i915: fix ironlake CRTC enable/disable drm/i915: don't program FDI RX/TX in mode_set drm/i915/dp: cache eDP DPCD data drm/i915/dp: use VBT provided eDP params if available drm/i915/dp: don't bother with DP PLL for PCH attached eDP drm/i915/dp: make eDP PLL functions work as advertised drm/i915: diasable clock gating for the panel power sequencer drm/i915/dp: down the DP link even if the reg indicates it's already down Keith Packard (3): drm/i915: avoid struct mutex output_poll mutex lock loop on unload drm/i915: mark display port DPMS state as 'ON' when enabling output drm/i915: Free hardware status page on unload when physically mapped Kenneth Graunke (3): drm/i915: Actually set the reset bit in i965_reset. drm/i915: Rename graphics reset registers. drm/i915: Add support for GPU soft reset on Ironlake. Lee, Chun-Yi (1): gpu: Add Intel GMA500(Poulsbo) Stub Driver Marcin Ko¶cielnicki (2): drm/nv50: demagic grctx, and add NVAF support drm/nouveau: Add a module option to force card POST. Mario Kleiner (2): drm/radeon: Add function for display scanout position query. drm/radeon: Modify radeon_pm_in_vbl to use radeon_get_crtc_scanoutpos() Marius Gröger (1): drm/radeon: add properties to configure the width of the underscan borders Martin Peres (1): drm/nouveau: Add temperature support (vbios parsing, readings, hwmon) Matthew Garrett (1): drm/i915: Don't disable panel for modesetting if pfit hasn't changed Phil Turmel (1): drm/nouveau: Fix build regression, undefined reference to `acpi_video_get_edid' Roy Spliet (2): drm/nouveau: Import initial memory timing work drm/nouveau: fix thinkos in mem timing table recordlen check Simon Que (1): i915: Added function to initialize VBT settings Sitsofe Wheeler (1): drm/i915: Revert extra intel_wait_for_vblank to prevent stalls. Thomas Hellstrom (14): drm/vmwgfx: Really support other depths than 32 drm/vmwgfx: Fix ACPI S3 & S4 functionality. drm/vmwgfx: Add new-style PM hooks to improve hibernation behavior drm: vmwgfx: Add a struct drm_file parameter to the dirty framebuffer callback drm/vmwgfx: Take the ttm lock around the dirty ioctl drm/vmwgfx: Prune modes based on available VRAM size drm/vmwgfx: Don't flush fb if we're in the suspended state. drm/vmwgfx: Add a parameter to get the max fb size drm/vmwgfx: Add modinfo version drm/vmwgfx: Save at least one screen layout drm/vmwgfx: Bump minor and driver date drm/ttm: Avoid using the ttm_mem_type_manager::put_locked function drm/ttm: Optimize delayed buffer destruction vmwgfx: Implement a proper GMR eviction mechanism Xiang, Haihao (4): drm/i915: fix HAS_BSD with a device info flag drm/i915: do not export the instances of struct intel_ring_buffer drm/i915: add set_tail hook in struct intel_ring_buffer drm/i915: add a new BSD ring buffer for Sandybridge Yuanhan Liu (2): drm/i915/crt: Make sure the hotplug interrupt is enabled drm/i915: Update hotplug interrupts register definitions for Sandybridge Zhenyu Wang (4): drm/i915: Fix GPIO pin to register mapping drm/edid: add helper function to detect monitor audio capability drm/i915: Enable DisplayPort audio drm/i915: Enable HDMI audio for monitor with audio support MAINTAINERS | 9 + drivers/char/agp/Makefile | 1 + drivers/char/agp/agp.h | 5 - drivers/char/agp/amd-k7-agp.c | 6 +- drivers/char/agp/backend.c | 22 +- drivers/char/agp/generic.c | 8 - drivers/char/agp/intel-agp.c | 201 +-- drivers/char/agp/intel-agp.h | 43 +- drivers/char/agp/intel-gtt.c | 1612 +++++----- drivers/gpu/Makefile | 2 +- drivers/gpu/drm/Makefile | 2 +- drivers/gpu/drm/drm_agpsupport.c | 40 +- drivers/gpu/drm/drm_context.c | 8 - drivers/gpu/drm/drm_crtc.c | 3 +- drivers/gpu/drm/drm_debugfs.c | 1 - drivers/gpu/drm/drm_drawable.c | 198 -- drivers/gpu/drm/drm_drv.c | 10 +- drivers/gpu/drm/drm_edid.c | 93 +- drivers/gpu/drm/drm_fb_helper.c | 32 +- drivers/gpu/drm/drm_gem.c | 14 - drivers/gpu/drm/drm_info.c | 14 - drivers/gpu/drm/drm_lock.c | 30 +- drivers/gpu/drm/drm_memory.c | 14 +- drivers/gpu/drm/drm_proc.c | 14 - drivers/gpu/drm/drm_scatter.c | 2 - drivers/gpu/drm/drm_stub.c | 4 - drivers/gpu/drm/drm_vm.c | 13 +- drivers/gpu/drm/i810/i810_drv.c | 2 - drivers/gpu/drm/i830/i830_drv.c | 2 - drivers/gpu/drm/i915/Makefile | 4 +- drivers/gpu/drm/i915/dvo_ch7017.c | 66 +- drivers/gpu/drm/i915/dvo_ch7xxx.c | 10 +- drivers/gpu/drm/i915/dvo_ivch.c | 10 +- drivers/gpu/drm/i915/dvo_sil164.c | 10 +- drivers/gpu/drm/i915/dvo_tfp410.c | 10 +- drivers/gpu/drm/i915/i915_debugfs.c | 336 ++- drivers/gpu/drm/i915/i915_dma.c | 360 +-- drivers/gpu/drm/i915/i915_drv.c | 214 +- drivers/gpu/drm/i915/i915_drv.h | 271 ++- drivers/gpu/drm/i915/i915_gem.c | 2211 +++++++------- drivers/gpu/drm/i915/i915_gem_debug.c | 148 +- drivers/gpu/drm/i915/i915_gem_evict.c | 72 +- drivers/gpu/drm/i915/i915_gem_tiling.c | 54 +- drivers/gpu/drm/i915/i915_irq.c | 259 +- drivers/gpu/drm/i915/i915_reg.h | 335 ++- drivers/gpu/drm/i915/i915_suspend.c | 28 +- drivers/gpu/drm/i915/intel_acpi.c | 286 ++ drivers/gpu/drm/i915/intel_bios.c | 234 +- drivers/gpu/drm/i915/intel_bios.h | 6 +- drivers/gpu/drm/i915/intel_crt.c | 127 +- drivers/gpu/drm/i915/intel_display.c | 2357 ++++++++------- drivers/gpu/drm/i915/intel_dp.c | 658 +++-- drivers/gpu/drm/i915/intel_drv.h | 160 +- drivers/gpu/drm/i915/intel_dvo.c | 69 +- drivers/gpu/drm/i915/intel_fb.c | 29 +- drivers/gpu/drm/i915/intel_hdmi.c | 193 +- drivers/gpu/drm/i915/intel_i2c.c | 484 +++- drivers/gpu/drm/i915/intel_lvds.c | 435 ++-- drivers/gpu/drm/i915/intel_modes.c | 16 +- .../drm/i915/{i915_opregion.c => intel_opregion.c} | 181 +- drivers/gpu/drm/i915/intel_overlay.c | 1006 ++++--- drivers/gpu/drm/i915/intel_panel.c | 109 + drivers/gpu/drm/i915/intel_ringbuffer.c | 457 ++-- drivers/gpu/drm/i915/intel_ringbuffer.h | 81 +- drivers/gpu/drm/i915/intel_sdvo.c | 1076 +++---- drivers/gpu/drm/i915/intel_tv.c | 165 +- drivers/gpu/drm/mga/mga_drv.c | 2 - drivers/gpu/drm/nouveau/Kconfig | 1 + drivers/gpu/drm/nouveau/Makefile | 6 +- drivers/gpu/drm/nouveau/nouveau_acpi.c | 2 +- drivers/gpu/drm/nouveau/nouveau_bios.c | 366 ++- drivers/gpu/drm/nouveau/nouveau_bios.h | 43 +- drivers/gpu/drm/nouveau/nouveau_bo.c | 290 ++- drivers/gpu/drm/nouveau/nouveau_calc.c | 10 +- drivers/gpu/drm/nouveau/nouveau_channel.c | 23 +- drivers/gpu/drm/nouveau/nouveau_connector.c | 54 +- drivers/gpu/drm/nouveau/nouveau_connector.h | 3 + drivers/gpu/drm/nouveau/nouveau_debugfs.c | 16 + drivers/gpu/drm/nouveau/nouveau_dma.c | 32 +- drivers/gpu/drm/nouveau/nouveau_dma.h | 1 + drivers/gpu/drm/nouveau/nouveau_dp.c | 10 +- drivers/gpu/drm/nouveau/nouveau_drv.c | 23 +- drivers/gpu/drm/nouveau/nouveau_drv.h | 253 +- drivers/gpu/drm/nouveau/nouveau_encoder.h | 1 + drivers/gpu/drm/nouveau/nouveau_fbcon.c | 6 + drivers/gpu/drm/nouveau/nouveau_fence.c | 318 ++- drivers/gpu/drm/nouveau/nouveau_gem.c | 4 +- drivers/gpu/drm/nouveau/nouveau_grctx.h | 2 +- drivers/gpu/drm/nouveau/nouveau_hw.c | 45 +- drivers/gpu/drm/nouveau/nouveau_i2c.c | 8 +- drivers/gpu/drm/nouveau/nouveau_i2c.h | 5 +- drivers/gpu/drm/nouveau/nouveau_irq.c | 123 +- drivers/gpu/drm/nouveau/nouveau_mem.c | 363 ++- drivers/gpu/drm/nouveau/nouveau_notifier.c | 9 +- drivers/gpu/drm/nouveau/nouveau_object.c | 776 ++---- drivers/gpu/drm/nouveau/nouveau_perf.c | 205 ++ drivers/gpu/drm/nouveau/nouveau_pm.c | 518 +++ drivers/gpu/drm/nouveau/nouveau_pm.h | 74 + drivers/gpu/drm/nouveau/nouveau_ramht.c | 289 ++ drivers/gpu/drm/nouveau/nouveau_ramht.h | 55 + drivers/gpu/drm/nouveau/nouveau_reg.h | 9 +- drivers/gpu/drm/nouveau/nouveau_sgdma.c | 68 +- drivers/gpu/drm/nouveau/nouveau_state.c | 123 +- drivers/gpu/drm/nouveau/nouveau_temp.c | 309 ++ drivers/gpu/drm/nouveau/nouveau_volt.c | 212 ++ drivers/gpu/drm/nouveau/nv04_crtc.c | 60 +- drivers/gpu/drm/nouveau/nv04_dac.c | 11 +- drivers/gpu/drm/nouveau/nv04_dfp.c | 39 +- drivers/gpu/drm/nouveau/nv04_fbcon.c | 9 +- drivers/gpu/drm/nouveau/nv04_fifo.c | 68 +- drivers/gpu/drm/nouveau/nv04_instmem.c | 140 +- drivers/gpu/drm/nouveau/nv04_pm.c | 81 + drivers/gpu/drm/nouveau/nv04_tv.c | 10 +- drivers/gpu/drm/nouveau/nv10_fifo.c | 19 +- drivers/gpu/drm/nouveau/nv10_graph.c | 2 +- drivers/gpu/drm/nouveau/nv17_tv.c | 110 +- drivers/gpu/drm/nouveau/nv17_tv.h | 15 +- drivers/gpu/drm/nouveau/nv17_tv_modes.c | 48 +- drivers/gpu/drm/nouveau/nv20_graph.c | 506 ++-- drivers/gpu/drm/nouveau/nv40_fifo.c | 20 +- drivers/gpu/drm/nouveau/nv40_graph.c | 16 +- drivers/gpu/drm/nouveau/nv40_grctx.c | 6 +- drivers/gpu/drm/nouveau/nv50_crtc.c | 87 +- drivers/gpu/drm/nouveau/nv50_cursor.c | 2 +- drivers/gpu/drm/nouveau/nv50_dac.c | 4 +- drivers/gpu/drm/nouveau/nv50_display.c | 92 +- drivers/gpu/drm/nouveau/nv50_fb.c | 40 + drivers/gpu/drm/nouveau/nv50_fbcon.c | 4 +- drivers/gpu/drm/nouveau/nv50_fifo.c | 286 +- drivers/gpu/drm/nouveau/nv50_graph.c | 51 +- drivers/gpu/drm/nouveau/nv50_grctx.c | 3305 +++++++++++++------- drivers/gpu/drm/nouveau/nv50_instmem.c | 418 ++-- drivers/gpu/drm/nouveau/nv50_pm.c | 131 + drivers/gpu/drm/nouveau/nv50_sor.c | 4 +- drivers/gpu/drm/nouveau/nva3_pm.c | 95 + drivers/gpu/drm/nouveau/nvc0_fifo.c | 6 - drivers/gpu/drm/nouveau/nvc0_instmem.c | 13 +- drivers/gpu/drm/nouveau/nvreg.h | 1 + drivers/gpu/drm/r128/r128_drv.c | 2 - drivers/gpu/drm/radeon/Makefile | 2 +- drivers/gpu/drm/radeon/atombios_crtc.c | 406 ++- drivers/gpu/drm/radeon/evergreen.c | 564 ++++- drivers/gpu/drm/radeon/evergreen_blit_kms.c | 772 +++++ drivers/gpu/drm/radeon/evergreen_blit_shaders.c | 348 ++ drivers/gpu/drm/radeon/evergreen_blit_shaders.h | 35 + drivers/gpu/drm/radeon/evergreend.h | 20 + drivers/gpu/drm/radeon/r100.c | 100 +- drivers/gpu/drm/radeon/r300.c | 15 +- drivers/gpu/drm/radeon/r420.c | 16 +- drivers/gpu/drm/radeon/r520.c | 11 +- drivers/gpu/drm/radeon/r600.c | 179 +- drivers/gpu/drm/radeon/r600_blit_kms.c | 51 +- drivers/gpu/drm/radeon/r600_cs.c | 36 +- drivers/gpu/drm/radeon/r600d.h | 21 + drivers/gpu/drm/radeon/radeon.h | 23 +- drivers/gpu/drm/radeon/radeon_asic.c | 6 +- drivers/gpu/drm/radeon/radeon_asic.h | 11 +- drivers/gpu/drm/radeon/radeon_atombios.c | 129 +- drivers/gpu/drm/radeon/radeon_connectors.c | 65 +- drivers/gpu/drm/radeon/radeon_cursor.c | 43 +- drivers/gpu/drm/radeon/radeon_device.c | 83 +- drivers/gpu/drm/radeon/radeon_display.c | 405 ++-- drivers/gpu/drm/radeon/radeon_drv.c | 11 +- drivers/gpu/drm/radeon/radeon_encoders.c | 16 +- drivers/gpu/drm/radeon/radeon_fb.c | 2 + drivers/gpu/drm/radeon/radeon_fence.c | 10 +- drivers/gpu/drm/radeon/radeon_legacy_crtc.c | 49 +- drivers/gpu/drm/radeon/radeon_mode.h | 53 +- drivers/gpu/drm/radeon/radeon_object.c | 6 +- drivers/gpu/drm/radeon/radeon_pm.c | 70 +- drivers/gpu/drm/radeon/radeon_ring.c | 12 +- drivers/gpu/drm/radeon/radeon_ttm.c | 34 +- drivers/gpu/drm/radeon/reg_srcs/evergreen | 8 + drivers/gpu/drm/radeon/rs400.c | 15 +- drivers/gpu/drm/radeon/rs600.c | 15 +- drivers/gpu/drm/radeon/rs690.c | 15 +- drivers/gpu/drm/radeon/rv515.c | 15 +- drivers/gpu/drm/radeon/rv770.c | 38 +- drivers/gpu/drm/savage/savage_drv.c | 2 - drivers/gpu/drm/sis/sis_drv.c | 3 - drivers/gpu/drm/tdfx/tdfx_drv.c | 2 - drivers/gpu/drm/ttm/Makefile | 3 +- drivers/gpu/drm/ttm/ttm_agp_backend.c | 3 +- drivers/gpu/drm/ttm/ttm_bo.c | 305 +- drivers/gpu/drm/ttm/ttm_bo_manager.c | 148 + drivers/gpu/drm/ttm/ttm_bo_util.c | 12 +- drivers/gpu/drm/via/via_drv.c | 2 - drivers/gpu/drm/vmwgfx/Makefile | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c | 84 +- drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 130 +- drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 40 +- drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 29 +- drivers/gpu/drm/vmwgfx/vmwgfx_fb.c | 13 +- drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c | 38 +- drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c | 137 + drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c | 3 + drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 200 +- drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 28 +- drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 75 - drivers/gpu/stub/Kconfig | 13 + drivers/gpu/stub/Makefile | 1 + drivers/gpu/stub/poulsbo.c | 64 + drivers/video/Kconfig | 2 + include/drm/drmP.h | 45 +- include/drm/drm_crtc.h | 4 +- include/drm/drm_crtc_helper.h | 8 +- include/drm/drm_dp_helper.h | 3 + include/drm/i915_drm.h | 6 +- include/drm/intel-gtt.h | 18 + include/drm/ttm/ttm_bo_api.h | 3 +- include/drm/ttm/ttm_bo_driver.h | 27 +- include/drm/vmwgfx_drm.h | 1 + 212 files changed, 18764 insertions(+), 11690 deletions(-) delete mode 100644 drivers/gpu/drm/drm_drawable.c create mode 100644 drivers/gpu/drm/i915/intel_acpi.c rename drivers/gpu/drm/i915/{i915_opregion.c => intel_opregion.c} (81%) create mode 100644 drivers/gpu/drm/nouveau/nouveau_perf.c create mode 100644 drivers/gpu/drm/nouveau/nouveau_pm.c create mode 100644 drivers/gpu/drm/nouveau/nouveau_pm.h create mode 100644 drivers/gpu/drm/nouveau/nouveau_ramht.c create mode 100644 drivers/gpu/drm/nouveau/nouveau_ramht.h create mode 100644 drivers/gpu/drm/nouveau/nouveau_temp.c create mode 100644 drivers/gpu/drm/nouveau/nouveau_volt.c create mode 100644 drivers/gpu/drm/nouveau/nv04_pm.c create mode 100644 drivers/gpu/drm/nouveau/nv50_pm.c create mode 100644 drivers/gpu/drm/nouveau/nva3_pm.c create mode 100644 drivers/gpu/drm/radeon/evergreen_blit_kms.c create mode 100644 drivers/gpu/drm/radeon/evergreen_blit_shaders.c create mode 100644 drivers/gpu/drm/radeon/evergreen_blit_shaders.h create mode 100644 drivers/gpu/drm/ttm/ttm_bo_manager.c create mode 100644 drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c create mode 100644 drivers/gpu/stub/Kconfig create mode 100644 drivers/gpu/stub/Makefile create mode 100644 drivers/gpu/stub/poulsbo.c create mode 100644 include/drm/intel-gtt.h