[git pull] drm pull for gardenshed-rc1
From: Dave Airlie
Date: Tue May 24 2011 - 05:55:01 EST
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