[git pull] drm for rc1

From: Dave Airlie
Date: Mon Jan 10 2011 - 18:00:23 EST



Hi Linus,

non-drm changes:
one kref change we needed that went on list with no comments

New hardware:
radeon: add support for Fusion APUs and Radeon HD6xxx chipsets
nouveau: Fermi acceleration support (requires external fw for now)

Highlights:
core/drivers: add support for high precision vblank timestamps
radeon: pageflipping support, Gen2 PCIE support
nouveau: reworked VRAM and VM support
intel: better ILK/SNB powersaving support, Full GTT support

There are also some switcheroo patches to further improve it, though I
have a later patch blocking on an x86 platform driver for the nvidia/intel
switcher.

Dave.

The following changes since commit 989d873fc5b6a96695b97738dea8d9f02a60f8ab:

Merge master.kernel.org:/home/rmk/linux-2.6-arm (2011-01-03 16:37:01 -0800)

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 (63):
drm/radeon/kms: add pageflip ioctl support (v3)
drm/radeon/kms: setup mc chremap properly on r7xx/evergreen
drm/radeon/kms: upstream ObjectID.h updates
drm/radeon/kms: upstream atombios.h updates
drm/radeon/kms: upstream power table updates
drm/radeon/kms: add new family id for AMD Ontario APUs
drm/radeon/kms: atom changes for DCE4.1 devices
drm/radeon/kms: Add support for external encoders on fusion APUs
drm/radeon/kms: add support for ss overrides on Fusion APUs
drm/radeon/kms: move r7xx/evergreen to its own vram_gtt setup function
drm/radeon/kms: MC setup changes for fusion APUs
drm/radeon/kms: evergreen.c updates for fusion
drm/radeon/kms: add radeon_asic struct for AMD Ontario fusion APUs
drm/radeon/kms: fill in GPU init for AMD Ontario Fusion APUs
drm/radeon/kms: add thermal sensor support for fusion APUs
drm/radeon/kms: add bo blit support for Ontario fusion APUs
drm/radeon/kms: refactor atombios power state fetching
drm/radeon/kms: add power table parsing support for Ontario fusion APUs
drm/radeon/kms: enable MSIs on fusion APUs
drm/radeon/kms: add Ontario Fusion APU pci ids
drm/radeon/kms: add Ontario APU ucode loading support
drm/radeon/kms: improve pflip precision on r1xx-r4xx
drm/radeon/kms: fix vram start calculation on ontario (v2)
drm/radeon/kms: properly print ontario chip id
drm/radeon/kms: fix DCE4.1 dig routing (v2)
drm/radeon/kms/atom: clean up op_mask handler
drm/radeon/kms: use LCD physical size from vbios tables if available
drm/radeon/kms: parse the extended LCD info block
drm/radeon/kms: disable bo moves using the blitter
drm/radeon/kms: implement gpu lockup check for evergreen
drm/radeon/kms: adjust quirk for acer laptop
drm/radeon/kms: add quirk for Mac Radeon HD 2600 card
drm/radeon/kms: add pcie get/set lane support for r6xx/r7xx/evergreen
drm/radeon/kms: add support for gen2 pcie link speeds
drm/radeon/kms: set the MSB of the HDP slice size
drm/radeon/kms: fix some typos in evergreen pm4 defines
drm/radeon/kms: clean up ASIC_IS_DCE41() macro
drm/radeon/kms: add NI chip families
drm/radeon/kms: update display watermark calculations for DCE5
drm/radeon/kms: DCE5 supports 16k display surfaces
drm/radeon/kms: DCE5 atom SetPixelClock updates
drm/radeon/kms: DCE5 atom spread spectrum updates
drm/radeon/kms: DCE5 atom transmitter control updates
drm/radeon/kms: DCE5 atom dig encoder updates
drm/radeon/kms: dac dpms updates for DCE5
drm/radeon/kms: dvo dpms updates for DCE5
drm/radeon/kms: parse DCE5 encoder caps when setting up encoders
drm/radeon/kms: handle NI thermal controller
drm/radeon/kms: add disabled vbios accessor for NI asics
drm/radeon/kms: fill gpu init for NI asics
drm/radeon/kms: add backend map workaround for barts
drm/radeon/kms: adjust default clock/vddc tracking for pm on DCE5
drm/radeon/kms: always use writeback/events for fences on NI
drm/radeon/kms: add bo blit support for NI
drm/radeon/kms: add ni_reg.h
drm/radeon/kms: add support for DCE5 display LUTs
drm/radeon/kms: add ucode loader for NI
drm/radeon/kms/ni: load default sclk/mclk/vddc at pm init
drm/radeon/kms: add radeon_asic struct for NI asics
drm/radeon/kms: don't enable pcie gen2 on NI yet
drm/radeon/kms: add NI pci ids
drm/radeon/kms: only enable hdmi features if the monitor supports audio
drm/radeon/kms: disable underscan by default

Ben Hutchings (1):
drm/nouveau: Only select ACPI_VIDEO if its dependencies are met

Ben Skeggs (91):
drm/nouveau: tidy fifo swmthd handler a little
drm/nouveau: disallow fbcon accel if running in interrupt context
drm/nouveau: add per-channel mutex, use to lock access to drm's channel
drm/nouveau: add more fine-grained locking to channel list + structures
drm/nouveau: switch to unlocked ioctls
drm/nouveau: remove cpu_writers lock
drm/nouveau: fix thinko in channel locking in semaphore path
drm/nouveau: use interruptible waits during pushbuf validation
drm/nouveau: return error from nouveau_ramht_remove() if not found
drm/nouveau: hook up acpi power supply change tracking
drm/nouveau: fallback to sw fbcon if we can't get mutex immediately
drm/nv50: remove some unnecessary PDISPLAY init
drm/nouveau: pass gpuobj alignment request down into backing allocator
drm/nouveau: store engine type in gpuobj class structs
drm/nouveau: use object class structs more extensively
drm/nouveau: only expose the object classes that are supported by the chipset
drm/nv84: add support for the PCRYPT engine
drm/nv50: remove excessive alignment of graph/crypt contexts
drm/nv50: create graph and crypt contexts on demand
drm/nv50: clearer separation of the stages of evo init
drm/nv50: move evo handling to nv50_evo.c
drm/nv50: initial work to allow multiple evo channels
drm/nv50: rework evo init to match nvidia more closely
drm/nv50: improve evo error handler when more than just channel 0 active
drm/nv50: fix evo instmem alignment
drm/nv10: fix thinko and let nv17 do 3d again :)
drm/nouveau: add support for MSI
drm/nv50: regression fix, point NVAA/NVAC at correct PM functions
drm/nv50: fix compute object class
drm/nv50: 0x50c0 apparently works on NVA3+ too, so lets allow it
drm/nouveau: allow irq handlers to be installed by engine-specific code
drm/nv84: move PCRYPT ISR out of nouveau_irq.c
drm/nv50: move GPIO ISR to nv50_gpio.c
drm/nv50: use register/unregister functionality for PDISPLAY ISR
drm/nouveau: move bitfield/enum helpers to nouveau_util.c
drm/nv04-nv40: register vblank isr
drm/nouveau: move PFIFO ISR into nv04_fifo.c
drm/nouveau: tidy+move PGRAPH ISRs to their respective *_graph.c files
drm/nv04-nv40: unregister irq handler on destroy
drm/nv50: rework PGPIO IRQ handling and hotplug detection
drm/nouveau: simplify gpuobj suspend/resume
drm/nouveau: rework gpu-specific instmem interfaces
drm/nv50: allocate page for unknown PFB object in nv50_fb.c
drm/nv50: fix 0x100c90 init for NVAF
drm/nouveau: remove dummy page use from PCI(E)GART, use PTE present instead
drm/nv84: fix minor issues in PCRYPT implementation
drm/nouveau: remove some useless GETPARAMs
drm/nouveau: tidy up and extend dma object creation interfaces
drm/nouveau: make fifo.create_context() responsible for mapping control regs
drm/nouveau: implicitly insert non-DMA objects into RAMHT
drm/nouveau: introduce a util function to wait on reg != val
drm/nouveau: no need to zero dma objects, we fill them completely anyway
drm/nouveau: wrap calls to ttm_bo_validate()
drm/nouveau: fix use of drm_mm_node in semaphore object
drm/nv50: implement custom vram mm
drm/nv50: import new vm code
drm/nv50: implement BAR1/BAR3 management on top of new VM code
drm/nv50: implement global channel address space on new VM code
drm/nv50: enable 4KiB pages for small vram allocations
drm/nv50: enable non-contig vram allocations where requested
drm/nv50: tidy up PCIEGART implementation
drm/nouveau: allow gpuobj vinst to be a virtual address when necessary
drm/nouveau: kick vram functions out into an "engine"
drm/ttm: delay freeing of old node during move_memcpy until after iounmap
drm/nv50: fix smatch warning in nv50_vram.c
drm/nv50: add missing license header to nv50_fbcon.c
drm/nouveau: modify vm to accomodate dual page tables for nvc0
drm/nvc0: import initial vm backend
drm/nvc0: initial vm implementation, use for bar1/bar3 management
drm/nvc0: create shared channel vm
drm/nvc0: reject the notifier_alloc ioctl
drm/nvc0: gpuobj_new need only check validity and init the relevant engine
drm/nvc0: implement channel structure initialisation
drm/nvc0: skip dma object creation for drm channel
drm/nvc0: fix channel dma init paths
drm/nvc0: implement fencing
drm/nvc0: implement pfifo engine hooks
drm/nvc0: implement pgraph engine hooks
drm/nvc0: implement fbcon acceleration
drm/nvc0: initial support for tiled buffer objects
drm/nvc0: accelerate ttm buffer moves
drm/nvc0: kill off a couple more magics
drm/nvc0: nuke left-over debug messages
drm/nvc0: parse a couple more PGRAPH_INTR
drm/nv50: sync up gr data error names with rnn, use for nvc0 also
drm/nvc0: reserve only subc 0 for kernel use
drm/nvc0/pfifo: support for chipsets with only one PSUBFIFO (0xc1)
drm/nvc0/pgraph: more unit names
drm/nvc0/pgraph: fix 0x406028/0x405870 init
drm/nvc0: fix init without firmware present
drm/nouveau: create grctx on the fly on all chipsets

Chris Wilson (135):
drm/i915/ringbuffer: Drop the redundant dev from the vfunc interface
drm/i915: Propagate errors from writing to ringbuffer
drm/i915: Move object to GPU domains after dispatching execbuffer
drm/i915: Fix hangcheck to handle multiple rings
drm/i915/debugfs: Include info for the other rings
drm/i915: Remove the confusing global waiting/irq seqno
drm/i915: Propagate error from failing to queue a request
drm/i915: Bail early if we try to mmap an object too large to be mapped.
drm/i915: Use the agp_size determined from the GTT
drm/i915: Capture ERROR register on Sandybridge hangs
drm/i915: Use pci_iomap for remapping the MMIO registers.
drm/i915/ringbuffer: Check that we setup the ringbuffer
drm/i915: Make the inactive object shrinker per-device
drm/i915: Remove mmap_offset
drm/i915: Eliminate nested get/put pages
drm/i915: Kill GTT mappings when moving from GTT domain
drm/i915: Do not return -1 from shrinker when nr_to_scan == 0
drm/i915: Convert BUG_ON(pin_count) from an impossible condition
drm/i915: Only enforce fence limits inside the GTT.
drm/i915: Remove the duplicate domain-change tracepoint for GPU flush
drm/i915/ringbuffer: Disable the ringbuffer on cleanup.
drm/i915: Record BLT engine error state
drm/i915/ringbuffer: Remove duplicate initialisation of ring control
agp/intel: Sandybridge doesn't require GMCH enabling
drm/i915/debugfs: Display the contents of the BLT and BSD status pages
drm/i915: Switch to using pci_iounmap in conjunction with pci_iomap
drm/i915: Check if the GPU hung whilst waiting for the ring to clear
drm/i915/ringbuffer: Use the HEAD auto-reporting mechanism
drm/i915: Record BSD engine error state
drm/i915: Fix typo from e5281ccd in i915_gem_attach_phys_object()
drm/i915: Evict just the purgeable GTT entries on the first pass
agp/intel: the GMCH is always enabled for integrated processor graphics
drm/i915/debugfs: Report ring in error state
drm/i915: Apply big hammer to serialise buffer access between rings
drm/i915: Move the invalidate|flush information out of the device struct
Merge branch 'drm-intel-fixes' into drm-intel-next
Revert "drm/i915: add MMIO debug output"
Merge branch 'drm-intel-fixes' into drm-intel-next
drm/i915: Drop the iomem accessors when writing to the kmapped blt batch
drm/i915: Ensure that if we ever try to pin+fence it is mappable.
Merge branch 'drm-intel-fixes' into drm-intel-next
drm/i915: Handle GPU hangs during fault gracefully.
drm/i915/ringbuffer: Be consistent in use of ring->size when initialising
drm/i915/ringbuffer: Ignore failure to setup the ring on Sandybridge
drm/i915: POSTING_READs are simply flushes and so irrelevant to tracing
drm/i915: Fix unload after failed initialisation
drm/i915: Unconditionally get the fence reg when pinning scanout
drm/i915: Only add the lazy request if we end up waiting for it.
drm/i915: Remove the global irq wait queue
Revert "drm/i915/ringbuffer: Ignore failure to setup the ring on Sandybridge"
drm/i915: Remove the definitions for Primary Ring Buffer
drm/i915: Fix current tiling check for relaxed fencing
Merge branch 'drm-intel-fixes' into drm-intel-next
drm/i915: Convert (void)I915_READ to POSTING_READ
drm/i915/crt: Introduce struct intel_crt
drm/i915: Capture pinned buffers on error
drm/i915: Capture interesting display registers on error
Merge branch 'drm-intel-fixes' into drm-intel-next
Merge branch 'drm-intel-next' of arrandale:git/linux-2.6 into drm-intel-next
drm/i915: Avoid oops when capturing NULL ring for inactive pinned buffers
drm/i915/panel: Restore saved value of BLC_PWM_CTL
drm/i915: Compute physical addresses from base of stolen memory
agp/intel: Remove the artificial cap on stolen size
agp/intel: Remove confusion of stolen entries not stolen memory
drm/i915: Contract the magic IPS constants into a direct LUT
Merge branch 'drm-intel-fixes' into drm-intel-next
drm/i915: Use drm_i915_gem_object as the preferred type
drm/i915: Not all mappable regions require GTT fence regions
agp/intel: Remove duplicate const
drm/i915: Record fence registers on error.
drm/i915: Move the implementation details of PIPE_CONTROL to the ringbuffer
drm/i915: Remove a defunct BUG_ON
drm/i915: Extend hangcheck timeout
drm/i915: Thread the pipelining ring through the callers.
drm/i915: Rework execbuffer pinning
drm/i915: More accurately track last fence usage by the GPU
drm/i915: Only save and restore fences for UMS
drm/i915: Tweak on-error bbaddr parsing for clarity
drm/i915: Mark a few functions as __must_check
drm/i915: Defer accounting until read from debugfs
drm/i915: Split i915_gem_execbuffer into its own file.
drm/i915: Avoid allocation for execbuffer object list
drm/i915/execbuffer: On error, starting unwinding from the previous object
Merge branch 'drm-intel-fixes' into drm-intel-next
drm/i915: Release fenced GTT mapping on suspend
drm/i915: Move instruction state invalidation from execbuffer to flush
drm/i915/ringbuffer: Handle cliprects in the caller
drm/i915/lvds: Disable panel-fitter on gen4 for 1:1 scale factors
drm/i915: Prevent stalling for a GTT read back from a read-only GPU target
drm/i915: Pipelined fencing [infrastructure]
drm/i915: Remove inactive LRU tracking from set_domain_ioctl
drm/i915: Kill the get_fence tracepoint
Merge branch 'drm-intel-fixes' into drm-intel-next
drm/i915/lvds: Connect the PWM to the LVDS pipe
drm/i915: Explain why we need to write DPLL twice
drm/i915: Enable CB tuning of the Display PLL
drm/i915: Re-enable RC6 for power-savings.
drm/i915: Allow LVDS to be on pipe A for Ironlake+
drm/i915: Be paranoid and bail on resetting if we can't take the lock.
drm/i915: Implement GPU semaphores for inter-ring synchronisation on SNB
drm/i915: Enable self-refresh for Ironlake
Merge branch 'drm-intel-fixes' into drm-intel-next
Merge branch 'drm-intel-fixes' into drm-intel-next
drm/i915/dp: Trivial code tidy
drm/i915: Avoid using PIPE_CONTROL on Ironlake
drm/i915: Power Context register is only available for gen4 mobiles
drm/i915: caps.has_rc6 is no longer used, remove it.
drm/i915: Ignore fenced commands for gpu access on gen4
drm/i915: Uncouple render/power ctx before suspending
drm/i915: Completely disable fence pipelining.
drm/i915: Only emit a flush if there is an outstanding gpu write
drm/i915: Wait for the bo if a display flip is pipelined on the other ring
Merge branch 'drm-intel-fixes' into drm-intel-next
drm/i915: Disable renderctx powersaving support for Ironlake
drm/i915: Re-arm the idle timers if the device is still busy
drm/i915: Eliminate drm_gem_object_lookup during relocation
drm/i915: Mark the user reloc error paths as unlikely
drm/i915: driver.suspend and .resume are always set
drm/i915: Restore GTT mapping first upon resume
drm/i915/gtt: Clear the cachelines upon resume
drm/i915: Terminate the FORCE WAKE after we have finished reading
drm/i915: Enable RC6 autodownclocking on Sandybridge
Merge branch 'drm-intel-fixes' into drm-intel-next
drm/i915/ringbuffer: Make IRQ refcnting atomic
Merge branch 'drm-intel-fixes' into drm-intel-next
drm/i915: Poll for seqno completion if IRQ is disabled
drm/i915: Pass clock limits down to PLL matcher
Revert "drm/i915: Avoid using PIPE_CONTROL on Ironlake"
drm/i915: Wait for vblank before unpinning old fb
Merge remote branch 'airlied/drm-core-next' into drm-intel-next
drm/i915/sdvo: Border and stall select became test bits in gen5
drm/i915: Enable EI mode for RCx decision making on Sandybridge
drm/i915: Allow the application to choose the constant addressing mode
drm/i915: Undo "Uncouple render/power ctx before suspending"
drm: Restore the old_fb upon modeset failure

Dan Carpenter (2):
drm/nouveau: sizeof() vs ARRAY_SIZE()
vga_switcheroo: comparing too few characters in strncmp()

Daniel Vetter (29):
drm_mm: add support for range-restricted fair-lru scans
drm/i915: range-restricted eviction support
drm/i915: range-restricted bind_to_gtt
drm/i915: unbind unmappable objects on fault/pin
drm/i915: use the complete gtt
intel-gtt: save PGETBL_CTL later in the setup process
intel-gtt: maximize ggtt size on platforms that support this
drm/i915: add mappable to gem_object_bind tracepoint
drm/i915: add accounting for mappable objects in gtt v2
drm/i915: revert pageflip/mappable related abi breakage
drm/i915: kill mappable/fenceable disdinction
drm/i915: fix relaxed tiling for gen <= 3 && !g33
intel-gtt: drop dcache support for i830 and later
intel-gtt: kill unneeded sandybridge memory types
intel-gtt: switch i81x to the write_entry helpers
intel-gtt: switch i81x to the common initialization helpers
intel-gtt: fold i81x-only dcache support into the generic driver
drm/i915|intel-gtt: consolidate intel-gtt.h headers
drm/i915/gtt: call chipset flush directly
drm: kill drm_agp_chipset_flush
agp: kill agp_flush_chipset and corresponding ioctl
drm/i915: track objects in the gtt
drm/i915: restore gtt on resume in the drm instead of in intel-gtt.ko
agp: kill agp_rebind_memory
drm/i915: move gtt handling to i915_gem_gtt.c
intel-gtt: export api for drm/i915
drm/i915: no more agp for gem
drm/i915: Add a mechanism for pipelining fence register updates
radeon: consolidate asic-specific function decls for pre-r600

Dave Airlie (20):
drm/ttm: Add a bo list reserve fastpath (v2)
Merge branch 'drm-ttm-next' into drm-core-next
Merge branch 'drm-radeon-next' of ../drm-radeon-next into drm-core-next
Merge branch 'drm-radeon-fusion' of ../drm-radeon-next into drm-core-next
drm/radeon: add initial tracepoint support.
Merge remote branch 'nouveau/drm-nouveau-next' of ../drm-nouveau-next into drm-core-next
Merge remote branch 'nouveau/drm-nouveau-next' of /ssd/git/drm-nouveau-next into drm-core-next
Merge remote branch 'intel/drm-intel-next' of /ssd/git/drm-next into drm-core-next
Merge branch 'master' of /home/airlied/kernel/linux-2.6 into drm-core-next
vga_switcheroo: print the IGD/DIS flag in the debugfs output.
vga_switcheroo: make power switch handler optional
vga_switcheroo: add debugging mux switch option.
drm/nouveau: add delayed switch complete callback.
nouveau/acpi: improve detection of what is IGD and what is DIS.
vga_switcheroo: add reprobe hook for fbcon to recheck connected outputs.
drm/switcheroo: track state of switch in drivers.
vga_switcheroo: split switching into two stages.
vga_switcheroo: fix build with non switcheroo enabled path.
Merge remote branch 'nouveau/drm-nouveau-next' of ../drm-nouveau-next into drm-core-next
Merge branch 'drm-radeon-ni' of ../drm-radeon-next into drm-core-next

David Fries (1):
drm/kms: load fbcon from drm_kms_helper

Eric Anholt (5):
drm/i915: Apply B-spec mandated workaround for read flushes on Ironlake.
drm/i915: Apply display workaround required according to the B-Spec.
drm/i915: Correct a comment about the use of the workqueue.
drm/i915: Also reinit the BSD and BLT rings after a GPU reset.
drm/i915: Add support for GPU reset on gen6.

Francisco Jerez (29):
drm/nouveau: Leave BO eviction synchronization for later.
drm/nouveau: Use lazy fence waits when doing software interchannel sync.
drm/nouveau: Refactor context destruction to avoid a lock ordering issue.
drm/nouveau: Fix race condition in channel refcount handling.
drm/nouveau: Add unlocked variants of nouveau_channel_get/put.
drm/nouveau: Fix lock unbalance on card take down.
drm/nouveau: Implement weak channel references.
drm/nouveau: Make fences take a weak channel reference.
drm/nouveau: Avoid race in the interchannel sync code.
drm/nouveau: Take fence spinlock in nouveau_fence_channel_fini().
drm/nv40: Ignore sync-to-vblank active when waiting for idle.
drm/nv04: Make CRTC base changes effective in the next hsync.
drm/nouveau: Implement the vblank DRM hooks.
drm/nouveau: Implement the pageflip ioctl.
drm/nouveau: Call drm_vblank_pre/post_modeset() around mode setting.
drm/nv50: Keep track of the head a channel is vsync'ing to.
drm/nouveau: Add a separate class for the kernel channel mutex.
drm/nouveau: Rework tile region handling.
drm/nv20: Add Z compression support.
drm/nouveau: Fix sleep while atomic in nouveau_bo_fence().
drm/nouveau: fabricate DCB encoder table for iMac G4
drm/nv04-nv40: Give "gpuobj->cinst" the same meaning as on nv50.
drm/nv04-nv10: Don't re-enable FIFO access multiple times after IRQ dispatch.
drm/nouveau: Synchronize with the user channel before GPU object destruction.
drm/nouveau: Use WC memory on the AGP GART.
drm/nouveau: Spin for a bit in nouveau_fence_wait() before yielding the CPU.
drm/nouveau: Avoid potential race between nouveau_fence_update() and context takedown.
drm/nv04-nv40: Fix up PCI(E) GART DMA object bus address calculation.
drm/nv50: fix a couple of vm init issues

James Simmons (2):
drm/fb: Don't expose mmio for fbdev emulation layer
drm: Update fbdev fb_fix_screeninfo

Jesse Barnes (1):
drm/i915: dynamic render p-state support for Sandy Bridge

Keith Packard (2):
drm/i915: Take advantage of auto-polling CRT hotplug detection on PCH hardware
drm/i915: Fix restore of 965 fence regs since the register tracing change.

Lucas Stach (1):
drm/nouveau: fix hwmon device binding

Marcin Slusarz (1):
drm/nouveau: fix annoying nouveau_fence type issue

Marek Olšák (3):
drm/radeon/kms: allow r500 US_FORMAT regs in the CS checker
drm/radeon/kms: add ARGB2101010 colorbuffer support for r500
drm/radeon/kms: manage r300 CMASK RAM access and allow CMASK clear

Mario Kleiner (7):
drm/vblank: Add support for precise vblank timestamping.
drm/kms/radeon: Add support for precise vblank timestamping.
drm/kms/radeon: Reorder vblank and pageflip interrupt handling.
drm/kms/radeon: Use high precision timestamps for pageflip completion events.
drm/i915: Add support for precise vblank timestamping (v2)
drm/i915: Add Guess-o-matic for pageflip timestamping.
drm-vblank: Always return true vblank count of scheduled vblank event.

Michel Hermier (1):
drm/nouveau: Validate channel indices passed from userspace.

Tejun Heo (1):
drm/radeon: use system_wq instead of dev_priv->wq

Thomas Hellstrom (9):
kref: Add a kref_sub function
drm/ttm: Use kref_sub instead of repeatedly calling kref_put
drm/ttm: Optimize ttm_eu_backoff_reservation
drm/ttm: Don't deadlock on recursive multi-bo reservations
drm/ttm/radeon/nouveau: Kill the bo lock in favour of a bo device fence_lock
drm/ttm: Improved fencing of buffer object lists
drm/ttm/vmwgfx: Have TTM manage the validation sequence.
drm/ttm: Fix up io_mem_reserve / io_mem_free calling
drm/radeon: Use the ttm execbuf utilities

Tijl Coosemans (1):
drm/radeon: Definition of R_0003C2_GENMO_WT seems wrong

Yuanhan Liu (5):
drm/i915: trace down all the register write and read
drm/i915: Add untraced register read/write interface
drm/i915: filter out the read/write of GPIO registers from debug tracing
drm/i915: Add self-refresh support on Sandybridge
drm/i915: Add frame buffer compression on Sandybridge

Zhenyu Wang (2):
agp/intel: fix cache control for sandybridge
agp/intel: restore cache behavior on sandybridge

Zou Nan hai (2):
drm/i915: SNB BLT workaround
drm/i915/ringbuffer: set FORCE_WAKE bit before reading ring register

drivers/char/agp/agp.h | 1 -
drivers/char/agp/compat_ioctl.c | 1 -
drivers/char/agp/compat_ioctl.h | 1 -
drivers/char/agp/frontend.c | 8 -
drivers/char/agp/generic.c | 27 -
drivers/char/agp/intel-agp.c | 5 -
drivers/char/agp/intel-agp.h | 14 +-
drivers/char/agp/intel-gtt.c | 778 +++---
drivers/gpu/drm/drm_agpsupport.c | 6 -
drivers/gpu/drm/drm_crtc_helper.c | 18 +-
drivers/gpu/drm/drm_fb_helper.c | 61 +-
drivers/gpu/drm/drm_fops.c | 2 +
drivers/gpu/drm/drm_irq.c | 566 ++++-
drivers/gpu/drm/drm_mm.c | 40 +-
drivers/gpu/drm/drm_stub.c | 10 +
drivers/gpu/drm/i915/Makefile | 2 +
drivers/gpu/drm/i915/i915_debugfs.c | 471 +++-
drivers/gpu/drm/i915/i915_dma.c | 794 +++---
drivers/gpu/drm/i915/i915_drv.c | 80 +-
drivers/gpu/drm/i915/i915_drv.h | 605 +++--
drivers/gpu/drm/i915/i915_gem.c | 3764 +++++++++-----------------
drivers/gpu/drm/i915/i915_gem_debug.c | 23 +-
drivers/gpu/drm/i915/i915_gem_evict.c | 125 +-
drivers/gpu/drm/i915/i915_gem_execbuffer.c | 1343 +++++++++
drivers/gpu/drm/i915/i915_gem_gtt.c | 99 +
drivers/gpu/drm/i915/i915_gem_tiling.c | 139 +-
drivers/gpu/drm/i915/i915_irq.c | 724 ++++--
drivers/gpu/drm/i915/i915_reg.h | 193 ++-
drivers/gpu/drm/i915/i915_suspend.c | 104 +-
drivers/gpu/drm/i915/i915_trace.h | 91 +-
drivers/gpu/drm/i915/intel_display.c | 999 ++++++--
drivers/gpu/drm/i915/intel_dp.c | 3 +-
drivers/gpu/drm/i915/intel_drv.h | 22 +-
drivers/gpu/drm/i915/intel_fb.c | 32 +-
drivers/gpu/drm/i915/intel_i2c.c | 21 +-
drivers/gpu/drm/i915/intel_lvds.c | 43 +-
drivers/gpu/drm/i915/intel_opregion.c | 8 +-
drivers/gpu/drm/i915/intel_overlay.c | 116 +-
drivers/gpu/drm/i915/intel_panel.c | 52 +-
drivers/gpu/drm/i915/intel_ringbuffer.c | 1007 ++++---
drivers/gpu/drm/i915/intel_ringbuffer.h | 136 +-
drivers/gpu/drm/i915/intel_sdvo.c | 7 +-
drivers/gpu/drm/i915/intel_tv.c | 14 +-
drivers/gpu/drm/nouveau/Kconfig | 2 +-
drivers/gpu/drm/nouveau/Makefile | 17 +-
drivers/gpu/drm/nouveau/nouveau_acpi.c | 11 +-
drivers/gpu/drm/nouveau/nouveau_bios.c | 102 +-
drivers/gpu/drm/nouveau/nouveau_bo.c | 319 ++-
drivers/gpu/drm/nouveau/nouveau_channel.c | 383 ++--
drivers/gpu/drm/nouveau/nouveau_connector.c | 54 +-
drivers/gpu/drm/nouveau/nouveau_display.c | 207 ++
drivers/gpu/drm/nouveau/nouveau_dma.c | 32 +-
drivers/gpu/drm/nouveau/nouveau_dma.h | 9 +-
drivers/gpu/drm/nouveau/nouveau_dp.c | 6 +-
drivers/gpu/drm/nouveau/nouveau_drv.c | 58 +-
drivers/gpu/drm/nouveau/nouveau_drv.h | 425 ++-
drivers/gpu/drm/nouveau/nouveau_fbcon.c | 189 +-
drivers/gpu/drm/nouveau/nouveau_fbcon.h | 18 +-
drivers/gpu/drm/nouveau/nouveau_fence.c | 117 +-
drivers/gpu/drm/nouveau/nouveau_gem.c | 171 +-
drivers/gpu/drm/nouveau/nouveau_hw.c | 11 +-
drivers/gpu/drm/nouveau/nouveau_irq.c | 1210 +--------
drivers/gpu/drm/nouveau/nouveau_mem.c | 426 ++--
drivers/gpu/drm/nouveau/nouveau_mm.c | 271 ++
drivers/gpu/drm/nouveau/nouveau_mm.h | 67 +
drivers/gpu/drm/nouveau/nouveau_notifier.c | 44 +-
drivers/gpu/drm/nouveau/nouveau_object.c | 754 +++---
drivers/gpu/drm/nouveau/nouveau_pm.c | 33 +-
drivers/gpu/drm/nouveau/nouveau_ramht.c | 11 +-
drivers/gpu/drm/nouveau/nouveau_ramht.h | 2 +-
drivers/gpu/drm/nouveau/nouveau_reg.h | 75 +-
drivers/gpu/drm/nouveau/nouveau_sgdma.c | 212 +-
drivers/gpu/drm/nouveau/nouveau_state.c | 300 ++-
drivers/gpu/drm/nouveau/nouveau_util.c | 69 +
drivers/gpu/drm/nouveau/nouveau_util.h | 45 +
drivers/gpu/drm/nouveau/nouveau_vm.c | 439 +++
drivers/gpu/drm/nouveau/nouveau_vm.h | 113 +
drivers/gpu/drm/nouveau/nv04_crtc.c | 8 +-
drivers/gpu/drm/nouveau/nv04_dac.c | 12 +-
drivers/gpu/drm/nouveau/nv04_display.c | 21 +
drivers/gpu/drm/nouveau/nv04_fbcon.c | 102 +-
drivers/gpu/drm/nouveau/nv04_fifo.c | 240 ++-
drivers/gpu/drm/nouveau/nv04_graph.c | 645 +++--
drivers/gpu/drm/nouveau/nv04_instmem.c | 50 +-
drivers/gpu/drm/nouveau/nv10_fb.c | 124 +-
drivers/gpu/drm/nouveau/nv10_fifo.c | 19 +-
drivers/gpu/drm/nouveau/nv10_graph.c | 203 +-
drivers/gpu/drm/nouveau/nv20_graph.c | 244 ++-
drivers/gpu/drm/nouveau/nv30_fb.c | 23 +-
drivers/gpu/drm/nouveau/nv40_fb.c | 22 +-
drivers/gpu/drm/nouveau/nv40_fifo.c | 20 +-
drivers/gpu/drm/nouveau/nv40_graph.c | 205 ++-
drivers/gpu/drm/nouveau/nv50_crtc.c | 27 +-
drivers/gpu/drm/nouveau/nv50_display.c | 422 +---
drivers/gpu/drm/nouveau/nv50_display.h | 2 -
drivers/gpu/drm/nouveau/nv50_evo.c | 345 +++
drivers/gpu/drm/nouveau/nv50_evo.h | 10 +
drivers/gpu/drm/nouveau/nv50_fb.c | 71 +-
drivers/gpu/drm/nouveau/nv50_fbcon.c | 114 +-
drivers/gpu/drm/nouveau/nv50_fifo.c | 42 +-
drivers/gpu/drm/nouveau/nv50_gpio.c | 198 ++-
drivers/gpu/drm/nouveau/nv50_graph.c | 677 +++++-
drivers/gpu/drm/nouveau/nv50_instmem.c | 375 ++--
drivers/gpu/drm/nouveau/nv50_vm.c | 180 ++
drivers/gpu/drm/nouveau/nv50_vram.c | 190 ++
drivers/gpu/drm/nouveau/nv84_crypt.c | 140 +
drivers/gpu/drm/nouveau/nvc0_fbcon.c | 269 ++
drivers/gpu/drm/nouveau/nvc0_fifo.c | 365 +++
drivers/gpu/drm/nouveau/nvc0_graph.c | 705 +++++-
drivers/gpu/drm/nouveau/nvc0_graph.h | 64 +
drivers/gpu/drm/nouveau/nvc0_grctx.c | 2874 ++++++++++++++++++++
drivers/gpu/drm/nouveau/nvc0_instmem.c | 317 ++--
drivers/gpu/drm/nouveau/nvc0_vm.c | 123 +
drivers/gpu/drm/nouveau/nvc0_vram.c | 99 +
drivers/gpu/drm/nouveau/nvreg.h | 3 +-
drivers/gpu/drm/radeon/Makefile | 5 +-
drivers/gpu/drm/radeon/ObjectID.h | 48 +
drivers/gpu/drm/radeon/atom.c | 14 +-
drivers/gpu/drm/radeon/atombios.h | 997 +++++++-
drivers/gpu/drm/radeon/atombios_crtc.c | 57 +-
drivers/gpu/drm/radeon/evergreen.c | 806 +++++--
drivers/gpu/drm/radeon/evergreen_blit_kms.c | 92 +-
drivers/gpu/drm/radeon/evergreen_reg.h | 6 +
drivers/gpu/drm/radeon/evergreend.h | 53 +-
drivers/gpu/drm/radeon/ni.c | 316 +++
drivers/gpu/drm/radeon/ni_reg.h | 86 +
drivers/gpu/drm/radeon/nid.h | 41 +
drivers/gpu/drm/radeon/r100.c | 78 +-
drivers/gpu/drm/radeon/r100d.h | 2 +-
drivers/gpu/drm/radeon/r300.c | 21 +-
drivers/gpu/drm/radeon/r300d.h | 1 +
drivers/gpu/drm/radeon/r500_reg.h | 4 +
drivers/gpu/drm/radeon/r600.c | 357 ++-
drivers/gpu/drm/radeon/r600d.h | 48 +
drivers/gpu/drm/radeon/radeon.h | 151 +-
drivers/gpu/drm/radeon/radeon_asic.c | 153 +-
drivers/gpu/drm/radeon/radeon_asic.h | 65 +-
drivers/gpu/drm/radeon/radeon_atombios.c | 1246 ++++++----
drivers/gpu/drm/radeon/radeon_bios.c | 41 +
drivers/gpu/drm/radeon/radeon_combios.c | 3 +-
drivers/gpu/drm/radeon/radeon_connectors.c | 9 +-
drivers/gpu/drm/radeon/radeon_cs.c | 17 +-
drivers/gpu/drm/radeon/radeon_device.c | 35 +-
drivers/gpu/drm/radeon/radeon_display.c | 391 +++-
drivers/gpu/drm/radeon/radeon_drv.c | 11 +-
drivers/gpu/drm/radeon/radeon_encoders.c | 205 ++-
drivers/gpu/drm/radeon/radeon_family.h | 4 +
drivers/gpu/drm/radeon/radeon_fb.c | 4 -
drivers/gpu/drm/radeon/radeon_fence.c | 4 +
drivers/gpu/drm/radeon/radeon_irq_kms.c | 46 +-
drivers/gpu/drm/radeon/radeon_kms.c | 64 +-
drivers/gpu/drm/radeon/radeon_mode.h | 16 +-
drivers/gpu/drm/radeon/radeon_object.c | 57 +-
drivers/gpu/drm/radeon/radeon_object.h | 7 +-
drivers/gpu/drm/radeon/radeon_pm.c | 94 +-
drivers/gpu/drm/radeon/radeon_reg.h | 13 +
drivers/gpu/drm/radeon/radeon_trace.h | 82 +
drivers/gpu/drm/radeon/radeon_trace_points.c | 9 +
drivers/gpu/drm/radeon/reg_srcs/rv515 | 16 +
drivers/gpu/drm/radeon/rs600.c | 118 +-
drivers/gpu/drm/radeon/rv770.c | 196 ++-
drivers/gpu/drm/radeon/rv770d.h | 47 +
drivers/gpu/drm/ttm/ttm_bo.c | 156 +-
drivers/gpu/drm/ttm/ttm_bo_util.c | 138 +-
drivers/gpu/drm/ttm/ttm_bo_vm.c | 29 +-
drivers/gpu/drm/ttm/ttm_execbuf_util.c | 169 +-
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 1 -
drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 3 +-
drivers/gpu/drm/vmwgfx/vmwgfx_fb.c | 3 -
drivers/gpu/vga/vga_switcheroo.c | 78 +-
include/drm/drmP.h | 102 +-
include/drm/drm_crtc.h | 9 +
include/drm/drm_fb_helper.h | 3 -
include/drm/drm_mm.h | 7 +
include/drm/drm_pciids.h | 40 +
include/drm/i915_drm.h | 12 +
include/drm/intel-gtt.h | 35 +-
include/drm/nouveau_drm.h | 5 +-
include/drm/radeon_drm.h | 1 +
include/drm/ttm/ttm_bo_api.h | 50 +-
include/drm/ttm/ttm_bo_driver.h | 152 +-
include/drm/ttm/ttm_execbuf_util.h | 11 +-
include/linux/agp_backend.h | 2 -
include/linux/intel-gtt.h | 20 -
include/linux/kref.h | 2 +
include/linux/vga_switcheroo.h | 2 +
lib/kref.c | 30 +
187 files changed, 24781 insertions(+), 10722 deletions(-)
create mode 100644 drivers/gpu/drm/i915/i915_gem_execbuffer.c
create mode 100644 drivers/gpu/drm/i915/i915_gem_gtt.c
create mode 100644 drivers/gpu/drm/nouveau/nouveau_mm.c
create mode 100644 drivers/gpu/drm/nouveau/nouveau_mm.h
create mode 100644 drivers/gpu/drm/nouveau/nouveau_util.c
create mode 100644 drivers/gpu/drm/nouveau/nouveau_util.h
create mode 100644 drivers/gpu/drm/nouveau/nouveau_vm.c
create mode 100644 drivers/gpu/drm/nouveau/nouveau_vm.h
create mode 100644 drivers/gpu/drm/nouveau/nv50_evo.c
create mode 100644 drivers/gpu/drm/nouveau/nv50_vm.c
create mode 100644 drivers/gpu/drm/nouveau/nv50_vram.c
create mode 100644 drivers/gpu/drm/nouveau/nv84_crypt.c
create mode 100644 drivers/gpu/drm/nouveau/nvc0_fbcon.c
create mode 100644 drivers/gpu/drm/nouveau/nvc0_graph.h
create mode 100644 drivers/gpu/drm/nouveau/nvc0_grctx.c
create mode 100644 drivers/gpu/drm/nouveau/nvc0_vm.c
create mode 100644 drivers/gpu/drm/nouveau/nvc0_vram.c
create mode 100644 drivers/gpu/drm/radeon/ni.c
create mode 100644 drivers/gpu/drm/radeon/ni_reg.h
create mode 100644 drivers/gpu/drm/radeon/nid.h
create mode 100644 drivers/gpu/drm/radeon/radeon_trace.h
create mode 100644 drivers/gpu/drm/radeon/radeon_trace_points.c
delete mode 100644 include/linux/intel-gtt.h