Hi Linus, core: updates for 30-bit color intel: Ivybridge support + hopeful rc6 support nouveau: rewritten engine support for adding PCOPY engine radeon: Displayport overhaul for pending Llano APU along with more cayman and fusion fixes.
There is also a platform/x86 driver for the MXM GPU standard for allowing switchable graphics support on nvidia hw, Matthew has acked it coming via my tree. Also the VGA ARB is now smarter about devices hiding behind bridges. Dave. The following changes since commit 0ee5623f9a6e52df90a78bd21179f8ab370e102e: Linux 2.6.39-rc6 (2011-05-03 19:59:13 -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 (31): drm/radeon/kms: remove some underscan leftovers drm/radeon/kms: add support for thermal chips on combios asics drm/radeon/kms: set i2c adapter class to I2C_CLASS_DDC drm/radeon/kms: fix up r1xx-rs4xx i2c buses drm/radeon/kms: fix some logic errors in combios i2c mapping drm/radeon/kms: DCE4.1 DIG encoders are fully routeable just like DCE3.2 drm/radeon/kms: properly handle bpc >8 in atom command tables drm/radeon/kms: spread spectrum fixes drm/radeon/kms: fix up DP clock programming on DCE4/5 drm/radeon/kms: adjust eDP handling (v2) drm/radeon/kms: fix eDP panel power function drm/radeon/kms: make sure eDP panel is on for modesetting drm/radeon/kms: add some dp encoder/connector helper funcs drm/radeon/kms: improve DP detect logic drm/radeon/kms: improve aux error handling drm/radeon/kms: handle DP bridges drm/dp: add some new DP regs for DP 1.2 drm/radeon/kms: atombios.h updates for DP panel mode drm/radeon/kms/atom: add support for setting DP panel mode drm/radeon/kms: rewrite DP handling drm/radeon/kms: simplify hotplug handler logic drm/radeon/kms: bail early for eDP in hotplug callback drm/radeon/kms: fixup eDP connector handling drm/radeon/kms: properly set the CLK_REF bit for DCE3 devices drm/radeon/kms: the SS_Id field in the LCD table if for LVDS only drm/radeon/evergreen/btc/fusion: setup hdp to invalidate and flush when asked drm/radeon/kms: fix typo in spread spectrum code drm/radeon/kms/cayman: fix typo in register mask drm/radeon/kms/atom: move dig phy init out of modesetting drm/radeon/kms: properly set num banks for fusion asics drm/radeon/kms: bump kms version number Alex Williamson (2): vga_switcheroo: Remove unbalanced pci_enable_device drm/i915/lvds: Only act on lid notify when the device is on Andrew Morton (1): drivers/gpu/drm/radeon/atom.c: fix warning Ben Skeggs (43): drm/nvc0: more vm fault engines drm/nvc0: more vm fault reasons drm/nvc0: decode gpc/hubclient on vm fault drm/nouveau: use static vidshift of 2 on volt 0x30 tables drm/nouveau: move engine object creation into per-engine hooks drm/nouveau: remove some unused members from dev_priv drm/nouveau: working towards a common way to represent engines drm/nv50/gr: move to exec engine interfaces drm/nvc0/gr: move to exec engine interfaces drm/nv40/gr: move to exec engine interfaces drm/nv20-nv30/gr: move to exec engine interface drm/nv10/gr: move to exec engine interfaces drm/nv04/gr: move to exec engine interfaces drm/nouveau: move set_tile_region to nouveau_exec_engine drm/nouveau: remove remnants of nouveau_pgraph_engine from nouveau_channel drm/nouveau: fix suspend failure path to reinitialise all engines drm/nouveau: remove remnants of nouveau_pgraph_engine drm/nva3: implement support for copy engine drm/nvc0: implement support for copy engines drm/nv40/vpe: add support for PMPEG drm/nv84: add support for PMPEG drm/nv50: rename nv84_mpeg to nv50_mpeg drm/nv50: support PMPEG on original nv50 drm/nvc0/gr: better handling of fuc firmware drm/nvc0/fifo: kick channels off during suspend drm/nvc0/fifo: restore context table on resume drm/nvc0/gr: no need to store context in graph_fini() drm/nvc0/fifo: stick user area into a gpuobj rather than a bo drm/nv40/gr: oops, fix random bits getting set in engine obj drm/nouveau: pull refclk from vbios on limits 0x40 boards drm/nva3: somewhat improve clock reporting drm/nouveau: fix uninitialised variable warning drm/nouveau: recognise DCB connector type 0x41 as LVDS drm/nv50: respect LVDS link count from EDID on SPWG panels drm/nvc0/gr: calculate some more of our magic numbers drm/nva3/pm: initial pass at set_clock() hook drm/nva3: support for memory timing map table drm/nouveau/pm: remove memtiming support check when assigning to perflvl drm/nvc0/pm: correct core/mem/shader perflvl parsing drm/nvc0/pm: parse clock for pll 0x0a (0x137020) from perf table drm/nva3/pm: allow use of divisor 16 drm/nouveau/pm: translate ramcfg strap through ram restrict table drm/nva3/clk: better pll calculation when no fractional fb div available Ben Widawsky (10): drm/i915: fix ilk rc6 teardown locking drm/1915: ringbuffer wait for idle function drm/i915: fix rc6 initialization on Ironlake drm/i915: debugfs for context information drm/i915: proper use of forcewake drm/i915: reference counted forcewake drm/i915: forcewake struct mutex locking fixes drm/i915: move gen6 rps handling to workqueue drm/i915: debugfs interface for forcewake reference count drm/i915: forcewake debugfs fix Chris Wilson (19): drm: Take lock around probes for drm_fb_helper_hotplug_event drm: Export the command-line mode parser drm/i915: Release object along create user fb error path drm/i915/dp: Be paranoid in case we disable a DP before it is attached drm/i915: Only enable the plane after setting the fb base (pre-ILK) drm/i915: fix intel_crtc_clock_get pipe reads after "cleanup cleanup" drm/i915: Move the irq wait queue initialisation into the ring init drm/i915: Simplify return value from intel_get_load_detect_pipe drm/i915: Propagate failure to set mode for load-detect pipe drm/i915: Don't store temporary load-detect variables in the generic encoder drm/i915: Remove unused supported_crtc from intel_load_detect_pipe drm/i915: Pass the saved adjusted_mode when adding to the load-detect crtc drm/i915: Remove dead code from intel_get_load_detect_pipe() drm/i915: Remove dead code from intel_release_load_detect_pipe() drm/i915: Attach a fb to the load-detect pipe drm/i915: Rename agp_type to cache_level drm/i915: Do not clflush snooped objects drm/i915: Disable all outputs early, before KMS takeover drm/i915/sdvo: Reorder i2c initialisation before ddc proxy Dave Airlie (16): drm/fb: fix CONFIG_DRM=m && CONFIG_FB=n platform/x86: add MXM WMI driver. nouveau/acpi: hook up to the MXM method for mux switching. vgaarb: use bridges to control VGA routing where possible. nouveau: add optimus detection to DSM code. mxm/wmi: add MXMX interface entry point. Merge remote branch 'korg/drm-nvidia-switch-fixes' into drm-core-next drm/mxm: fix Kconfig options for when to build MXM WMI driver. Merge remote branch 'keithp/drm-intel-next' of /ssd/git/drm-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 'keithp/drm-intel-next' of ../drm-next into drm-core-next drm/radeon/cayman: setup hdp to invalidate and flush when asked drm/radeon/kms: add wait idle ioctl for eg->cayman drm/radeon/kms: fix incorrect comparison in cayman setup code. drm/radeon/kms: fix tile_config value reported to userspace on cayman. Merge branch 'drm-radeon-next' of /ssd/git/drm-radeon-next into drm-core-next Emil Velikov (5): drm/nouveau: Fix indentation-related checkpatch.pl error messages. drm/nouveau: Clean up trailing whitespace and C99-style comments. drm/nouveau: Fix brace placement checkpatch.pl errors. drm/nouveau: Fix missing whitespace checkpatch.pl errors. drm/nv50: improve nv50_pm_get_clock() Eric Anholt (12): drm/i915: Split the crtc_mode_set function along HAS_PCH_SPLIT() lines. drm/i915: Move the vblank pre/post modeset to the common crtc_mode_set. drm/i915: Remove the PCH paths from the pre-Ironlake crtc_mode_set(). drm/i915: Drop the eDP paths from the pre-Ironlake crtc_mode_set. drm/i915: Drop the remaining bit of Ironlake code from i9xx_crtc_mode_set(). drm/i915: Drop non-HAS_PCH_SPLIT() code from ironlake_crtc_mode_set(). drm/i915: Drop remaining pre-Ironlake code from ironlake_crtc_mode_set(). drm/i915: Clean up leftover DPLL and LVDS register choice from pch split. drm/i915: Fold the DPLL limit defines into the structs that use them. drm/i915: Use existing function instead of open-coding fence reg clear. drm/i915: Add support for fence registers on Ivybridge. drm/i915: Update the location of the ringbuffers' HWS_PGA registers for IVB. Feng, Boqun (2): drm/i915: fix user irq miss in BSD ring on g4x drm/i915: clean up unused ring_get_irq/ring_put_irq functions Jesse Barnes (25): drm: add bit depth parsing drm: parse color format support for digital displays drm/i915: use i915_enable_rc6 on SNB too drm/i915: make FDI training a display function drm/i915: split irq handling into per-chipset functions drm/i915: split enable/disable vblank code into chipset specific functions drm/i915: add IS_GEN7 macro to cover Ivy Bridge and later drm/i915: add IS_IVYBRIDGE macro for checks drm/i915: Ivy Bridge has split display and pipe control drm/i915: add swizzle/tiling support for Ivy Bridge drm/i915: manual FDI training for Ivy Bridge drm/i915: treat Ivy Bridge watermarks like Sandy Bridge drm/i915: interrupt & vblank support for Ivy Bridge drm/i915: page flip support for Ivy Bridge drm/i915: ring support for Ivy Bridge agp/intel: add Ivy Bridge support drm/i915: add PantherPoint PCH ID drm/i915: add Ivy Bridge PCI IDs and driver feature structs drm/i915: set IBX pch type explicitly drm/i915: split clock gating init into per-chipset functions drm/i915: add Ivybridge clock gating init function drm/i915: split PCH clock gating init drm/i915: add fbc enable flag, but disable by default drm/i915: enable rc6 by default drm/i915: initialize gen6 rps work queue on Sandy Bridge and Ivy Bridge Jimmy Rentz (2): drm/nouveau: Free nv04 instmem ramin heap at card takedown drm/nouveau: Fix a crash at card takedown for NV40 and older cards Joe Perches (2): drm: Create and use drm_err drm: Verify debug message arguments Keith Packard (2): MAINTAINERS: Switch maintainer for drm/i915 to Keith Packard drm/i915: FDI link training broken on Ironlake by Ivybridge integration Marcin Slusarz (1): drm/nouveau: make cursor_set implementation consistent with other drivers Martin Peres (3): drm/nouveau: name the boot perflvl "boot" drm/nouveau/pm: fix compilation failure when CONFIG_POWER_SUPPLY is not set drm/nouveau: Associate memtimings with performance levels on cards <= nv98 Michel D?nzer (1): agp/uninorth: Fix lockups with radeon KMS and >1x. Randy Dunlap (1): drm: fix nouveau_acpi build Roy Spliet (1): drm/nouveau: improve memtiming table parsing MAINTAINERS | 4 +- drivers/char/agp/intel-agp.c | 3 + drivers/char/agp/intel-agp.h | 8 + drivers/char/agp/intel-gtt.c | 10 + drivers/char/agp/uninorth-agp.c | 2 +- drivers/gpu/drm/drm_edid.c | 61 +- drivers/gpu/drm/drm_fb_helper.c | 233 +-- drivers/gpu/drm/drm_irq.c | 9 +- drivers/gpu/drm/drm_modes.c | 156 ++ drivers/gpu/drm/drm_stub.c | 21 + drivers/gpu/drm/i915/i915_debugfs.c | 131 ++- drivers/gpu/drm/i915/i915_dma.c | 60 +- drivers/gpu/drm/i915/i915_drv.c | 68 +- drivers/gpu/drm/i915/i915_drv.h | 113 +- drivers/gpu/drm/i915/i915_gem.c | 36 +- drivers/gpu/drm/i915/i915_gem_gtt.c | 35 +- drivers/gpu/drm/i915/i915_gem_tiling.c | 2 +- drivers/gpu/drm/i915/i915_irq.c | 311 +++- drivers/gpu/drm/i915/i915_reg.h | 35 +- drivers/gpu/drm/i915/i915_suspend.c | 3 +- drivers/gpu/drm/i915/intel_bios.c | 6 +- drivers/gpu/drm/i915/intel_crt.c | 24 +- drivers/gpu/drm/i915/intel_display.c | 2307 ++++++++++++++++----------- drivers/gpu/drm/i915/intel_dp.c | 17 +- drivers/gpu/drm/i915/intel_drv.h | 19 +- drivers/gpu/drm/i915/intel_lvds.c | 3 + drivers/gpu/drm/i915/intel_ringbuffer.c | 88 +- drivers/gpu/drm/i915/intel_ringbuffer.h | 35 +- drivers/gpu/drm/i915/intel_sdvo.c | 10 +- drivers/gpu/drm/i915/intel_tv.c | 13 +- drivers/gpu/drm/nouveau/Kconfig | 2 + drivers/gpu/drm/nouveau/Makefile | 2 + drivers/gpu/drm/nouveau/nouveau_acpi.c | 108 ++- drivers/gpu/drm/nouveau/nouveau_bios.c | 7 +- drivers/gpu/drm/nouveau/nouveau_bios.h | 1 + drivers/gpu/drm/nouveau/nouveau_channel.c | 20 +- drivers/gpu/drm/nouveau/nouveau_connector.c | 8 +- drivers/gpu/drm/nouveau/nouveau_display.c | 2 +- drivers/gpu/drm/nouveau/nouveau_drv.c | 25 +- drivers/gpu/drm/nouveau/nouveau_drv.h | 208 +-- drivers/gpu/drm/nouveau/nouveau_grctx.h | 10 +- drivers/gpu/drm/nouveau/nouveau_mem.c | 68 +- drivers/gpu/drm/nouveau/nouveau_object.c | 118 +-- drivers/gpu/drm/nouveau/nouveau_perf.c | 92 +- drivers/gpu/drm/nouveau/nouveau_pm.c | 21 +- drivers/gpu/drm/nouveau/nouveau_reg.h | 14 +- drivers/gpu/drm/nouveau/nouveau_state.c | 217 ++-- drivers/gpu/drm/nouveau/nouveau_vm.h | 3 +- drivers/gpu/drm/nouveau/nouveau_volt.c | 10 +- drivers/gpu/drm/nouveau/nv04_crtc.c | 9 +- drivers/gpu/drm/nouveau/nv04_graph.c | 383 +++-- drivers/gpu/drm/nouveau/nv04_instmem.c | 3 + drivers/gpu/drm/nouveau/nv10_graph.c | 212 ++-- drivers/gpu/drm/nouveau/nv20_graph.c | 510 +++---- drivers/gpu/drm/nouveau/nv40_fifo.c | 2 + drivers/gpu/drm/nouveau/nv40_graph.c | 323 ++-- drivers/gpu/drm/nouveau/nv40_mpeg.c | 311 ++++ drivers/gpu/drm/nouveau/nv50_calc.c | 68 +- drivers/gpu/drm/nouveau/nv50_crtc.c | 13 +- drivers/gpu/drm/nouveau/nv50_display.c | 18 +- drivers/gpu/drm/nouveau/nv50_graph.c | 442 +++--- drivers/gpu/drm/nouveau/nv50_grctx.c | 10 +- drivers/gpu/drm/nouveau/nv50_mpeg.c | 256 +++ drivers/gpu/drm/nouveau/nv50_pm.c | 15 + drivers/gpu/drm/nouveau/nv50_vm.c | 12 +- drivers/gpu/drm/nouveau/nv84_crypt.c | 135 ++- drivers/gpu/drm/nouveau/nva3_copy.c | 226 +++ drivers/gpu/drm/nouveau/nva3_copy.fuc | 870 ++++++++++ drivers/gpu/drm/nouveau/nva3_copy.fuc.h | 534 +++++++ drivers/gpu/drm/nouveau/nva3_pm.c | 169 ++- drivers/gpu/drm/nouveau/nvc0_copy.c | 243 +++ drivers/gpu/drm/nouveau/nvc0_copy.fuc.h | 527 ++++++ drivers/gpu/drm/nouveau/nvc0_fifo.c | 142 ++- drivers/gpu/drm/nouveau/nvc0_graph.c | 600 ++++---- drivers/gpu/drm/nouveau/nvc0_graph.h | 29 +- drivers/gpu/drm/nouveau/nvc0_grctx.c | 20 +- drivers/gpu/drm/radeon/atom.c | 4 +- drivers/gpu/drm/radeon/atombios.h | 22 +- drivers/gpu/drm/radeon/atombios_crtc.c | 132 +- drivers/gpu/drm/radeon/atombios_dp.c | 1046 +++++++------ drivers/gpu/drm/radeon/evergreen.c | 14 +- drivers/gpu/drm/radeon/evergreend.h | 2 + drivers/gpu/drm/radeon/ni.c | 8 +- drivers/gpu/drm/radeon/nid.h | 4 +- drivers/gpu/drm/radeon/radeon_asic.c | 4 + drivers/gpu/drm/radeon/radeon_combios.c | 117 ++- drivers/gpu/drm/radeon/radeon_connectors.c | 607 +++++--- drivers/gpu/drm/radeon/radeon_device.c | 3 + drivers/gpu/drm/radeon/radeon_display.c | 10 +- drivers/gpu/drm/radeon/radeon_drv.c | 3 +- drivers/gpu/drm/radeon/radeon_encoders.c | 252 +++- drivers/gpu/drm/radeon/radeon_i2c.c | 2 + drivers/gpu/drm/radeon/radeon_mode.h | 19 +- drivers/gpu/vga/vga_switcheroo.c | 6 - drivers/gpu/vga/vgaarb.c | 113 ++- drivers/pci/pci.c | 25 +- drivers/platform/x86/Kconfig | 7 + drivers/platform/x86/Makefile | 1 + drivers/platform/x86/mxm-wmi.c | 111 ++ include/drm/drmP.h | 49 +- include/drm/drm_crtc.h | 6 +- include/drm/drm_dp_helper.h | 5 + include/drm/drm_edid.h | 25 +- include/drm/drm_fb_helper.h | 18 +- include/linux/mxm-wmi.h | 33 + include/linux/pci.h | 7 +- 106 files changed, 9440 insertions(+), 4056 deletions(-) create mode 100644 drivers/gpu/drm/nouveau/nv40_mpeg.c create mode 100644 drivers/gpu/drm/nouveau/nv50_mpeg.c create mode 100644 drivers/gpu/drm/nouveau/nva3_copy.c create mode 100644 drivers/gpu/drm/nouveau/nva3_copy.fuc create mode 100644 drivers/gpu/drm/nouveau/nva3_copy.fuc.h create mode 100644 drivers/gpu/drm/nouveau/nvc0_copy.c create mode 100644 drivers/gpu/drm/nouveau/nvc0_copy.fuc.h create mode 100644 drivers/platform/x86/mxm-wmi.c create mode 100644 include/linux/mxm-wmi.h