[git pull] drm main pull for 3.4-rc1

From: Dave Airlie
Date: Wed Mar 21 2012 - 06:47:16 EST



Hi Linus,

This is the main drm pull request, I'm probably going to send two more
smaller ones, will explain below.

This contains a patch that is also in the fbdev tree, but it should be the
same patch, it added an API for hot unplugging framebuffer devices, and I
need that API for a new driver.

It also contains some changes to the i2c tree which Jean has acked, and
one change to moorestown platform stuff in x86.

Highlights:
new drivers: UDL driver for USB displaylink devices, kms only, should
support correct hotplug operations.
core: i2c speedups + better hotplug support, EDID overriding via firmware
interface - allows user to load a firmware for a broken monitor/kvm from
userspace, it even has documentation for it.
exynos: new HDMI audio + hdmi 1.4 + virtual output driver
gma500: code cleanup
radeon: cleanups, CS optimisations, streamout support and pageflip fix
nouveau: NVD9 displayport support + more reclocking work
i915: re-enabling GMBUS, finish gpu patch (might help hibernation who
knows), missed irq fixes, stencil tiling fixes, interlaced support,
aliasesd PPGTT support for SNB/IVB, swizzling for SNB/IVB, semaphore fixes

As well as the usual bunch of cleanups and fixes all over the place.

I've got two things I'd like to merge a bit later:

a) AMD support for all their new radeonhd 7000 series GPU and APUs. AMD
dropped this a bit late due to insane internal review processes, (please
AMD just follow Intel and let open source guys ship stuff early) however I
don't want to penalise people who own this hardware (since its been on
sale for 3-4 months and GPU hw doesn't exactly have a lifetime in years)
and consign them to using closed drivers for longer than necessary. The
changes are well contained and just plug into the driver new gpu
functionality so they should be fairly regression proof. I just want to
give them a bit of a run on the hw AMD kindly sent me.

b) drm prime/dma-buf interface code. This is just infrastructure code to
expose the dma-buf stuff to drm drivers and to userspace. I'm not planning
on pushing any driver support in this cycle (except maybe exynos), but I'd
like to get the infrastructure code in so for the next cycle I can start
getting the driver support into the individual drivers. We have started
driver support for i915, nouveau and udl along with I think exynos and
omap in staging. However this code relies on the dma-buf tree being pulled
into your tree first since it needs the latest interfaces from that tree.
I'll push to get that tree sent asap.

(oh and any warnings you see in i915 are gcc's fault from what anyone can
see).

Regards,
Dave.

The following changes since commit fde7d9049e55ab85a390be7f415d74c9f62dd0f9:

Linux 3.3-rc7 (2012-03-10 13:49:52 -0800)

are available in the git repository at:
git://people.freedesktop.org/~airlied/linux drm-next

Adam Jackson (7):
drm/i915: Silence _DSM errors
drm/i915: Implement plane-disabled assertion for PCH too
drm/i915: Fix assert_pch_hdmi_disabled to mention HDMI (not DP)
drm/i915: Remove a comment about PCH from the non-PCH path
drm/i915/dp: Tweak auxch clock divider for PCH
drm/i915/dp: Use auxch precharge value of 5 everywhere
drm/i915/dp: Check for AUXCH error before checking for success

Alan Cox (8):
gma500: plug in more of the gamma functionality
gma500: clean up some of the struct fields we no longer use
gma500: now move the Oaktrail save state into its own structure
gma500: Kconfig documentation tweak
gma500: re-order calling on the fix setup so we set up after the DRM layer
gma500: rework register stuff sanely
gma500: Fix resume paths
gma500: suspend/resume support for Cedartrail

Alex Deucher (19):
drm/radeon/kms/dce3+: add support for hw i2c using atom
drm/radeon/kms: add r1xx/r2xx support for CS_KEEP_TILING_FLAGS
drm/radeon/kms: add r1xx/r2xx CS support for tiled textures
drm/radeon/kms: add wait_for_vblank asic callback
drm/radeon/kms: add a radeon asic callback for mc idle
drm/radeon/kms: reorganize hpd callbacks
drm/radeon/kms: reorganize page flip callbacks
drm/radeon/kms: reorganize pm callbacks
drm/radeon/kms: reorganize copy callbacks
drm/radeon/kms: reorganize irq callbacks
drm/radeon/kms: remove unused cp callbacks from radeon_asic
drm/radeon/kms: make ring_start, ring_test, and ib_test per ring
drm/radeon/kms: reorganize gart callbacks
drm/radeon/kms: reorganize display callbacks
drm/radeon/kms: move clock/pcie setting callbacks into pm struct
drm/radeon/kms: reorganize surface callbacks
drm/radeon/kms: clean up radeon_asic struct (v2)
drm/radeon/kms: fix analog load detection on DVI-I connectors
drm/radeon/kms: add connector quirk for Fujitsu D3003-S2 board

Axel Lin (1):
drm: Fix kcalloc parameters swapped

Ben Skeggs (45):
drm/nouveau: move vram detection funcs to chipset-specific fb code
drm/nouveau: memory type detection for the really old chipsets
drm/nv20: split PFB code out of nv10_fb.c
drm/nv20-nv40: add memory type detection
drm/nv50: add memory type detection
drm/nv50: hopefully handle the DDR2/DDR3 memtype detection somewhat better
drm/nvc0: add initial memory type detection
drm/nouveau: rework the init/takedown ordering
drm/nouveau/pm: avoid potential divide-by-zero
drm/nouveau/pm: restructure bios table parsing
drm/nouveau/pm: readback boot perflvl *before* parsing vbios
drm/nouveau/pm: calculate memory timings at perflvl creation time
drm/nouveau/pm: embed timings into perflvl structs
drm/nouveau/pm: introduce ram reclocking helper
drm/nv50/pm: initial work towards proper memory reclocking, with timings
drm/nv50/disp: more accurate function to determine active crtcs
drm/nv50/pm: use hwsq for engine reclocking too
drm/nouveau/pm: track mr2 for gddr3
drm/nv50: fix detection of second vram rank
drm/nouveau/pm: detect when we need dll disabled for gddr3
drm/nouveau/pm: fix dll off -> dll on transitions
drm/nouveau/pm: rework to allow selecting separate profiles for ac/battery
drm/nouveau/pm: extend profile interface for destroy/init/fini
drm/nouveau/mem: handle dll_off for ddr2/ddr3
drm/nouveau: recognise DCB connector type for DP+DVI+VGA DMS-59
drm/nv50-nvc0/vm: support unsnooped system memory
drm/nvc0/fb: detect presense of second rank
drm/nouveau/pm: init only after display subsystem has been created
drm/nouveau/mxm: call mxmi to determine revision before calling mxms
drm/nvc0/pm: restrict pll mode to clocks that can actually use it
drm/nv40/pm: fix fanspeed regression
drm/nvc0/vram: get part count from PUNITS
drm/nvd0/disp: attempt to handle more than 2 crtcs if possible
drm/nouveau/bios: attempt acpi rom fetch before pcirom
drm/nouveau/bios: rework vbios shadowing
drm/nouveau/pm: fix oops if chipset has no pm support at all
drm/nouveau/dp: make functions for executing various bios tables
drm/nouveau/dp: move all nv50/sor-specific code out of nouveau_dp.c
drm/nouveau/dp: make dp dpms function common, call from sor code instead
drm/nvd0/disp: initial implementation of displayport
drm/nvd0/disp: fix dcb sor link matching in supervisor handler
drm/nouveau/dp: account for channel coding overhead in link training
drm/nvd0/disp: move syncs/magic setup to or mode_set
drm/nvd0/disp: disconnect encoders before reprogramming them
drm/nouveau: map first page of mmio early and determine chipset earlier

Ben Widawsky (7):
agp/intel: Add pci id for hostbridge from has/qemu
drm/i915: argument to control retiring behavior
drm/i915: drm/i915: Fix recursive calls to unmap
drm/i915: correct lock type in destroy
drm/i915: use gtfifodbg
drm/i915: catch gtfifo errors on forcewake_put
drm/i915: check gtfifodbg after possibly failed writes

Benson Leung (1):
drm/i915: Fix single msg gmbus_xfers writes

Carsten Emde (1):
drm: allow loading an EDID as firmware to override broken monitor

Chris Wilson (13):
drm/i915: Check that plane/pipe is disabled before removing the fb
drm/i915: Separate fence pin counting from normal bind pin counting
drm/i915: Remove the upper limit on the bo size for mapping into the CPU domain
drm/i915: Handle unmappable buffers during error state capture
drm/i915: Record the tail at each request and use it to estimate the head
drm/i915: Record the in-flight requests at the time of a hang
drm/i915: Record the position of the request upon error
drm/i915/lvds: Always use the presence pin for LVDS on PCH
drm/i915/bios: Downgrade the "signature missing" DRM_ERROR to debug
drm/i915: Only bump refcnt on objects scheduled for eviction
drm/i915: No need to search again after retiring requests
drm/i915: Silence the error message from i915_wait_request()
drm/i915: Only clear the GPU domains upon a successful finish

Christian König (4):
drm/radeon: move ring syncing after bo validation
drm/radeon/kms: no need to align IB like this
drm/radeon: also make the cs_parse function per ring
drm/radeon: fix IB debugfs files for multiple cards

Christoph Bumiller (1):
drm/nv50/display: expose color vibrance control

Dan Carpenter (1):
drm/radeon/evergreen: make texdw[] array larger

Daniel Vetter (54):
drm/i915: kill i915_mem.c
drm/i915: clarify gen2 pageflip cmd
drm/i915: fixup assert_pipe to take the pipe A quirk into account
drm/i915: switch ring->id to be a real id
drm/i915: refactor ring error state capture to use arrays
drm/i915: collect more per ring error state
drm/i915/ringbuffer: kill snb blt workaround
drm/i915: don't trash the gtt when running out of fences
drm/i915: refactor debugfs open function
drm/i915: refactor debugfs create functions
drm/i915: capture error_state also for stuck rings
drm/i915: remove the i915_batchbuffer_info debugfs file
drm/i915: reject GTT domain in relocations
drm/i915: add per-ring fault reg to error_state
drm/i915: fix swizzle detection for gen3
drm/i915: add debugfs file for swizzling information
drm/i915: fall through pwrite_gtt_slow to the shmem slow path
drm/i915: rewrite shmem_pwrite_slow to use copy_from_user
drm/i915: rewrite shmem_pread_slow to use copy_to_user
drm/i915: swizzling support for snb/ivb
drm/i915: consolidate swizzling control bit frobbing
drm/i915: add gen6+ registers to i915_swizzle_info
drm/i915: s/DRM_ERROR/DRM_DEBUG in i915_gem_execbuffer.c
drm/i915: dump even more into the error_state
agp/intel-gtt: export the scratch page dma address
agp/intel-gtt: export the gtt pagetable iomapping
drm/i915: initialization/teardown for the aliasing ppgtt
drm/i915: ppgtt binding/unbinding support
drm/i915: ppgtt register definitions
drm/i915: ppgtt debugfs info
drm/i915: enable ppgtt
Merge remote-tracking branch 'airlied/drm-fixes' into drm-intel-next-queued
drm/i915: clean up interlaced pipeconf bit definitions
drm/i915: fixup interlaced vertical timings confusion, part 1
drm/i915: fixup interlaced vertical timings confusion, part 2
drm/i915: fixup interlaced support on ilk+
drm/i915: don't allow interlaced pipeconf on gen2
drm/i915: correctly program the VSYNCSHIFT register
drm/i915: fixup overlay checks for interlaced modes
drm/i915: outstanding_lazy_request is a u32
drm/i915: fixup seqno allocation logic for lazy_request
drm/i915: enable forcewake voodoo also for gen6
drm/i915: fix up locking inconsistency around gem_do_init
drm/modes: do not enforce an odd vtotal for interlaced modes
Merge remote-tracking branch 'airlied/drm-next' into for-airlied
drm/i915: use the new hdmi_force_audio enum more
drm/i915: error_buffer->ring should be signed
drm/i915: add dev_priv to intel_gmbus
drm/nouveau: do a better job at hiding the NIH i2c bit-banging algo
i2c: export bit-banging algo functions
drm/i915: merge struct intel_gpio into struct intel_gmbus
drm/i915: merge gmbus and gpio i2c adpater into one
drm/i915: i2c: unconditionally set up gpio fallback
drm/i915: reenable gmbus on gen3+ again

Danny Kukawka (1):
Revert "drivers/gpu/drm/i915/intel_overlay.c needs seq_file.h"

Dave Airlie (19):
Merge branch 'for-airlied' of git://people.freedesktop.org/~danvet/drm-intel into drm-core-next
Merge branch 'drm-vmware-next' into drm-core-next
Merge tag 'drm-intel-next-2012-02-07' of git://people.freedesktop.org/~danvet/drm-intel into drm-core-next
drm: move pci bus master enable into driver.
drm: add some caps for userspace to discover more info for dumb KMS driver (v2)
Merge tag 'drm-intel-next-2012-02-16-merge-resolved' of git://people.freedesktop.org/~danvet/drm-intel into drm-core-next
drm: drop setting vm_file to filp
Merge branch 'drm-gma500-alanc' into drm-core-next
Merge branch 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-core-next
drm/nouveau: add userspace fallback hints.
drm: Merge tag 'v3.3-rc7' into drm-core-next
drm/sysfs: protect sysfs removal code against being run twice.
drm/modeset: add helper to unplug all connectors from sysfs
drm: add core support for unplugging a device (v2)
drm/udl: initial UDL driver (v4)
drm: fix build with UDL if USB is a module
drm/usb: move usb support into a separate module
drm/radeon: dp only enable enhanced framing if sink supports.
Merge tag 'drm-intel-next-2012-03-01' of git://people.freedesktop.org/~danvet/drm-intel into drm-next

Eric Anholt (2):
drm/i915: Remove the MI_FLUSH_ENABLE setting.
drm/i915: Correct the bit number for the MI_FLUSH_ENABLE.

Eugeni Dodonov (5):
drm/i915: there is no pipe CxSR on ironlake
drm/i915: fix typo in function name
drm/i915: add a LLC feature flag in device description
drm/i915: print out which pixel format we do not support
drm: give up on edid retries when i2c bus is not responding

Eunchul Kim (1):
drm/exynos: add default pixel format for plane

Felix Kuehling (1):
drm/radeon: fix deferred page-flip detection logic on Avivo-based ASICs

Ilija Hadzic (2):
drm/radeon/kms: common definitions for blit copy code
drm/radeon/kms: remove benchmarks shorter than one page

Inki Dae (4):
drm/exynos: added mode_fixup feature and code clean.
drm/exynos: update gem and buffer framework.
drm/exynos: added new funtion to get/put dma address.
drm/exynos: added virtual display driver.

Jakob Bornecrantz (5):
vmwgfx: Rework fence event action
vmwgfx: Make it possible to get fence from execbuf
vmwgfx: Pipe fence out of screen object dirty functions
vmwgfx: Add page flip support
vmwgfx: Pick up the initial size from the width and height regs

Jean Delvare (3):
drm/kms: Make i2c buses faster
drm/radeon/kms: Use the standard VESA timeout for DDC channels
drm/nouveau: Fix module parameter description formats

Jerome Glisse (1):
drm/radeon: add support for evergreen/ni tiling informations v11

Jesper Juhl (1):
intel, gma500, lvds: Fix use after free and mem leak in psb_intel_lvds_init()

Jesse Barnes (3):
drm/i915: split 9xx refclk & sdvo tv code out
drm/i915: split out pll divider code
drm/i915: properly mask and or watermark values for sprites

Joe Perches (1):
drm/ttm: Use pr_fmt and pr_<level>

Joonyoung Shim (7):
drm/exynos: remove exynos_mixer.h
drm/exynos: add HDMI version 1.4 support
drm/exynos: release pending pageflip events when closed
drm/exynos: remove module of exynos drm subdrv
drm/exynos: add subdrv open/close functions
drm/exynos: add is_local member in exynos_drm_subdrv struct
drm/exynos: cleanup exynos_hdmi.h

Julia Lawall (2):
drivers/gpu/drm/radeon/radeon_cs.c: eliminate possible double free
drivers/gpu/drm/savage/savage_state.c: add missing kfree

Kay Sievers (1):
udlfb: remove sysfs framebuffer device with USB .disconnect()

Kirill A. Shutemov (40):
gma500: make init_pm callback in struct psb_op optional
gma500: initial medfield merge
gma500: psbfb_create(): move depth initialization out of loop
gma500: mdfld_dsi_output_init() drop unused parameter
gma500: medfield: drop a bit of dead code
gma500: gem_glue: add missing include
gma500: drop unused psbfb_suspend()/psbfb_resume()
gma500: mark psb_fbdev_destroy() and psb_fbdev_fini() as static
gma500: gtt: mark psb_gtt_entry() and psb_gtt_alloc() as static
gma500: mmu: drop unused psb_get_default_pd_addr()
gma500: mmu: mark psb_mmu_free_pt() and psb_mmu_pt_alloc_map_lock() as static
gma500: use DRM_IOCTL_DEF_DRV instead of custom PSB_IOCTL_DEF
gma500: fix ioctl confict
gma500: psb_driver_load(): drop unused variables
gma500: mark psb_driver_device_is_agp() and psb_driver_preclose() as static
gma500: fix two -Wmissing-field-initializers warnings
gma500: fix cdv_intel_wait_for_vblank() prototype
gma500: cdv_intel_crt: add missing include
gma500: cdv_intel_crt: drop dead code
gma500: cdv_intel_crt: drop unused variables
gma500: cdv_intel_crt: mark few functions as static
gma500: cdv_intel_hdmi: add missing include
gma500: cdv_intel_lvds: mark few functions as static
gma500: cdv_intel_lvds: #if 0 currently unused functions
gma500: mdfld_device: mark few functions as static
gma500: mdfld_dsi_dpi: drop unused variables
gma500: mdfld_dsi_pkg_sender: fix -Wtype-limits warning
gma500: mdfld_intel_display: drop unused variables
gma500: oaktrail_crtc: mark few functions as static
gma500: oaktrail_crtc: drop unused variables
gma500: oaktrail_hdmi: drop dead code
gma500: oaktrail_hdmi: fix -Wmissing-field-initializers warning
gma500: mark oaktrail_backlight_init() as static
gma500: oaktrail_hdmi_i2c_access() drop unused variable
gma500: oaktrail_lvds_init() drop unused variable
gma500: drop unused psb_intel_modeset_cleanup()
gma500: mark psb_intel_pipe_set_base() as static
gma500: psb_intel_display: drop unused variables
gma500: mark psb_intel_sdvo_hdmi_sink_detect() as static
gma500: psb_irq: mark mid_{enable, disable}_pipe_event() as static

Mandeep Singh Baines (1):
drm: remove master fd restriction on mode setting getters

Marc Gariepy (1):
drm/i915: Ignore LVDS on hp t5745 and hp st5747 thin client

Marek Olšák (9):
drm/radeon/kms: add support for streamout v7
drm/radeon/kms: skip cb/db checking if SX_MISC is 1 on r600+
drm/radeon/kms: make some DRM errors more informative
drm/radeon/kms: compute GPU addresses correctly on evergreen
drm/radeon/kms: optimize streamout checking for evergreen
drm/radeon/kms: skip db/cb/streamout checking when possible on evergreen
drm/radeon/kms: remove some unused variables in evergreen_cs_track
drm/radeon/kms: compute GPU addresses correctly on r600
drm/radeon/kms: skip db/cb/streamout checking when possible on r600

Martin Peres (6):
drm/nouveau/pm: style fixes
drm/nouveau/pm: restore fan speed after suspend
drm/nouveau: move pwm_divisor to the nouveau_pm_fan struct
drm/nouveau/pm: improve the reclocking logs' readability
drm/nv50/pm: wait for all fifo-connected engines to idle before reclocking
drm/nv50/hwsq: some nv92 fixes

Matt Turner (3):
drm: remove unneeded redefinition of DDC_ADDR
drm/radeon: use DDC_ADDR instead of hard-coding it
drm/i915: use DDC_ADDR instead of hard-coding it

Michel Dänzer (3):
drm/radeon: Restrict offset for legacy hardware cursor.
drm/radeon: Restrict offset for legacy display engine.
drm/radeon: Drop radeon_gem_object_(un)pin.

Paulo Zanoni (2):
drm/i915: set interlaced bits for TRANSCONF
drm/i915: add missing SDVO bits for interlaced modes on ILK

Peter Ross (2):
drm/i915: allow interlaced mode output on the SDVO connector
drm/i915: allow interlaced mode output on the HDMI connector

Philipp Grete (1):
drm/i915: Fixes distorted external screen image on HP 2730p

Rob Clark (1):
drm: cope with platformdev->id == -1

Roy Spliet (3):
drm/nouveau/pm: improve memory timing generation
drm/nouveau/pm: implement DDR2/DDR3/GDDR3/GDDR5 MR generation and validation
drm/nouveau/pm: several fixes for nvc0 memory timings

Sascha Hauer (15):
drm crtc: add forgotten idr cleanup functions
drm/edid: drm modes have to be free with drm_mode_destroy
drm crtc: use drm_mode_destroy instead of kfree in drm_mode_remove
drm drm_fb_helper: destroy modes
drm: add proper return value for drm_mode_crtc_set_gamma_size
drm fb helper: use drm_helper_connector_dpms to do dpms
drm fb helper: remove unused variable conn_limit
drm fb helper: remove unused variable crtc_id
drm crtc: Fix locking comments
drm crtc_helper: use list_for_each_entry
drm exynos: use drm_fb_helper_set_par directly
drm: add convenience function to create an enum property
drm: add convenience function to create an range property
drm: do not set fb_info->pixmap fields
drm: remove unused code

Sean Paul (2):
drm/i915: Only look for matching clocks for LVDS downclock
drm/i915: Don't lock panel registers when downclocking

Seung-Woo Kim (1):
drm/exynos: enable hdmi audio feature

Simon Que (1):
drivers: i915: Fix BLC PWM register setup

Thomas Hellstrom (4):
vmwgfx: Clean up pending event references to struct drm_file objects on close
drm/vmwgfx: Treat out-of-range initial width and height as host errors
vmwgfx: Move function declaration to correct header
drm/vmwgfx: Bump driver minor

Thomas Meyer (1):
drm/i915: Use kcalloc instead of kzalloc to allocate array

Tvrtko Ursulin (1):
drm/radeon/kms: reduce probe latency on digital connectors

Ville Syrjälä (13):
drm: Reject mode set with current fb if no current fb is bound
drm: Change drm_display_mode::type to unsigned
drm: Warn if mode to umode conversion overflows the destination types
drm: Check crtc x and y coordinates
drm: Make drm_mode_attachmode() void
drm: Fix memory leak in drm_mode_setcrtc()
drm: Check user mode against overflows
drm: Check CRTC viewport against framebuffer size
drm: Fix drm_mode_attachmode_crtc()
drm: Make drm_crtc_convert_{umode, to_umode} static and constify their params
drm: Handle drm_object_get() failures
drm: Use a flexible array member for blob property data
drm: Add drm_mode_copy()

Wu Fengguang (2):
drm/i915: set AUD_CONFIG N_value_index for DisplayPort
drm/i915: add a "force-dvi" HDMI audio mode

Xi Wang (1):
drm/nouveau/dp: fix bad comparison in dp_link_train_commit()

Yoichi Yuasa (1):
gma500: Fix mmap frambuffer

Yufeng Shen (1):
drm/i915: Fix race condition in accessing GMBUS

Documentation/EDID/1024x768.S | 44 +
Documentation/EDID/1280x1024.S | 44 +
Documentation/EDID/1680x1050.S | 44 +
Documentation/EDID/1920x1080.S | 44 +
Documentation/EDID/HOWTO.txt | 39 +
Documentation/EDID/Makefile | 26 +
Documentation/EDID/edid.S | 261 ++++
Documentation/EDID/hex | 1 +
Documentation/kernel-parameters.txt | 15 +
arch/x86/platform/mrst/mrst.c | 16 +
drivers/char/agp/intel-agp.c | 1 +
drivers/char/agp/intel-gtt.c | 10 +-
drivers/gpu/drm/Kconfig | 18 +
drivers/gpu/drm/Makefile | 7 +-
drivers/gpu/drm/drm_crtc.c | 448 +++++---
drivers/gpu/drm/drm_crtc_helper.c | 22 +-
drivers/gpu/drm/drm_drv.c | 16 +-
drivers/gpu/drm/drm_edid.c | 12 +-
drivers/gpu/drm/drm_edid_load.c | 250 ++++
drivers/gpu/drm/drm_fb_helper.c | 88 +--
drivers/gpu/drm/drm_fops.c | 8 +
drivers/gpu/drm/drm_gem.c | 4 +-
drivers/gpu/drm/drm_ioctl.c | 8 +
drivers/gpu/drm/drm_irq.c | 4 +-
drivers/gpu/drm/drm_memory.c | 19 -
drivers/gpu/drm/drm_modes.c | 30 +-
drivers/gpu/drm/drm_pci.c | 2 -
drivers/gpu/drm/drm_platform.c | 12 +-
drivers/gpu/drm/drm_stub.c | 26 +
drivers/gpu/drm/drm_sysfs.c | 7 +-
drivers/gpu/drm/drm_usb.c | 2 -
drivers/gpu/drm/drm_vm.c | 5 +-
drivers/gpu/drm/exynos/Kconfig | 14 +-
drivers/gpu/drm/exynos/Makefile | 11 +-
drivers/gpu/drm/exynos/exynos_ddc.c | 1 -
drivers/gpu/drm/exynos/exynos_drm_buf.c | 191 +++-
drivers/gpu/drm/exynos/exynos_drm_buf.h | 22 +-
drivers/gpu/drm/exynos/exynos_drm_connector.c | 35 +-
drivers/gpu/drm/exynos/exynos_drm_core.c | 140 +--
drivers/gpu/drm/exynos/exynos_drm_crtc.c | 12 +-
drivers/gpu/drm/exynos/exynos_drm_drv.c | 94 ++-
drivers/gpu/drm/exynos/exynos_drm_drv.h | 38 +-
drivers/gpu/drm/exynos/exynos_drm_encoder.c | 24 +-
drivers/gpu/drm/exynos/exynos_drm_fb.c | 6 -
drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 118 +--
drivers/gpu/drm/exynos/exynos_drm_fimd.c | 20 +-
drivers/gpu/drm/exynos/exynos_drm_gem.c | 364 ++++++-
drivers/gpu/drm/exynos/exynos_drm_gem.h | 29 +-
drivers/gpu/drm/exynos/exynos_drm_hdmi.c | 115 +--
drivers/gpu/drm/exynos/exynos_drm_hdmi.h | 5 +
drivers/gpu/drm/exynos/exynos_drm_plane.c | 8 +-
drivers/gpu/drm/exynos/exynos_drm_vidi.c | 676 +++++++++++
drivers/gpu/drm/exynos/exynos_drm_vidi.h | 36 +
drivers/gpu/drm/exynos/exynos_hdmi.c | 1437 +++++++++++++++++++++--
drivers/gpu/drm/exynos/exynos_hdmi.h | 50 -
drivers/gpu/drm/exynos/exynos_mixer.c | 57 +-
drivers/gpu/drm/exynos/exynos_mixer.h | 92 --
drivers/gpu/drm/exynos/regs-hdmi.h | 488 +++++++-
drivers/gpu/drm/gma500/Kconfig | 10 +-
drivers/gpu/drm/gma500/Makefile | 10 +
drivers/gpu/drm/gma500/cdv_device.c | 169 +++-
drivers/gpu/drm/gma500/cdv_device.h | 2 +-
drivers/gpu/drm/gma500/cdv_intel_crt.c | 1 +
drivers/gpu/drm/gma500/cdv_intel_display.c | 91 +--
drivers/gpu/drm/gma500/cdv_intel_hdmi.c | 1 +
drivers/gpu/drm/gma500/cdv_intel_lvds.c | 16 +-
drivers/gpu/drm/gma500/framebuffer.c | 64 +-
drivers/gpu/drm/gma500/gem_glue.c | 1 +
drivers/gpu/drm/gma500/gtt.c | 4 +-
drivers/gpu/drm/gma500/intel_gmbus.c | 2 +-
drivers/gpu/drm/gma500/mdfld_device.c | 691 +++++++++++
drivers/gpu/drm/gma500/mdfld_dsi_dpi.c | 1017 ++++++++++++++++
drivers/gpu/drm/gma500/mdfld_dsi_dpi.h | 79 ++
drivers/gpu/drm/gma500/mdfld_dsi_output.c | 618 ++++++++++
drivers/gpu/drm/gma500/mdfld_dsi_output.h | 378 ++++++
drivers/gpu/drm/gma500/mdfld_dsi_pkg_sender.c | 694 +++++++++++
drivers/gpu/drm/gma500/mdfld_dsi_pkg_sender.h | 92 ++
drivers/gpu/drm/gma500/mdfld_intel_display.c | 1180 ++++++++++++++++++
drivers/gpu/drm/gma500/mdfld_output.c | 74 ++
drivers/gpu/drm/gma500/mdfld_output.h | 77 ++
drivers/gpu/drm/gma500/mdfld_tmd_vid.c | 201 ++++
drivers/gpu/drm/gma500/mdfld_tpo_vid.c | 124 ++
drivers/gpu/drm/gma500/mmu.c | 13 +-
drivers/gpu/drm/gma500/oaktrail_crtc.c | 18 +-
drivers/gpu/drm/gma500/oaktrail_device.c | 211 ++--
drivers/gpu/drm/gma500/oaktrail_hdmi.c | 401 +------
drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c | 6 +-
drivers/gpu/drm/gma500/oaktrail_lvds.c | 5 +-
drivers/gpu/drm/gma500/power.c | 17 +-
drivers/gpu/drm/gma500/psb_device.c | 34 +-
drivers/gpu/drm/gma500/psb_drv.c | 65 +-
drivers/gpu/drm/gma500/psb_drv.h | 435 ++++----
drivers/gpu/drm/gma500/psb_intel_display.c | 50 +-
drivers/gpu/drm/gma500/psb_intel_lvds.c | 21 +-
drivers/gpu/drm/gma500/psb_intel_reg.h | 9 +
drivers/gpu/drm/gma500/psb_intel_sdvo.c | 30 +-
drivers/gpu/drm/gma500/psb_irq.c | 62 +-
drivers/gpu/drm/gma500/psb_irq.h | 2 +
drivers/gpu/drm/gma500/tc35876x-dsi-lvds.c | 829 +++++++++++++
drivers/gpu/drm/gma500/tc35876x-dsi-lvds.h | 38 +
drivers/gpu/drm/i2c/ch7006_drv.c | 5 +-
drivers/gpu/drm/i810/i810_dma.c | 3 +-
drivers/gpu/drm/i915/Makefile | 2 +-
drivers/gpu/drm/i915/i915_debugfs.c | 324 +++---
drivers/gpu/drm/i915/i915_dma.c | 66 +-
drivers/gpu/drm/i915/i915_drv.c | 49 +-
drivers/gpu/drm/i915/i915_drv.h | 164 ++-
drivers/gpu/drm/i915/i915_gem.c | 528 +++++----
drivers/gpu/drm/i915/i915_gem_evict.c | 21 +-
drivers/gpu/drm/i915/i915_gem_execbuffer.c | 205 ++--
drivers/gpu/drm/i915/i915_gem_gtt.c | 275 +++++-
drivers/gpu/drm/i915/i915_gem_tiling.c | 23 +-
drivers/gpu/drm/i915/i915_irq.c | 197 ++--
drivers/gpu/drm/i915/i915_mem.c | 387 ------
drivers/gpu/drm/i915/i915_reg.h | 132 ++-
drivers/gpu/drm/i915/intel_acpi.c | 2 +-
drivers/gpu/drm/i915/intel_bios.c | 4 +-
drivers/gpu/drm/i915/intel_crt.c | 5 +-
drivers/gpu/drm/i915/intel_display.c | 388 ++++---
drivers/gpu/drm/i915/intel_dp.c | 23 +-
drivers/gpu/drm/i915/intel_drv.h | 1 +
drivers/gpu/drm/i915/intel_dvo.c | 1 -
drivers/gpu/drm/i915/intel_fb.c | 6 +-
drivers/gpu/drm/i915/intel_hdmi.c | 23 +-
drivers/gpu/drm/i915/intel_i2c.c | 210 ++--
drivers/gpu/drm/i915/intel_lvds.c | 31 +
drivers/gpu/drm/i915/intel_modes.c | 34 +-
drivers/gpu/drm/i915/intel_overlay.c | 18 +-
drivers/gpu/drm/i915/intel_panel.c | 6 +-
drivers/gpu/drm/i915/intel_ringbuffer.c | 210 ++--
drivers/gpu/drm/i915/intel_ringbuffer.h | 35 +-
drivers/gpu/drm/i915/intel_sdvo.c | 43 +-
drivers/gpu/drm/i915/intel_sprite.c | 4 +-
drivers/gpu/drm/i915/intel_tv.c | 2 +-
drivers/gpu/drm/mga/mga_dma.c | 2 +
drivers/gpu/drm/nouveau/Makefile | 3 +-
drivers/gpu/drm/nouveau/nouveau_bios.c | 275 +++--
drivers/gpu/drm/nouveau/nouveau_bios.h | 6 +-
drivers/gpu/drm/nouveau/nouveau_connector.c | 29 +-
drivers/gpu/drm/nouveau/nouveau_crtc.h | 3 +
drivers/gpu/drm/nouveau/nouveau_display.c | 37 +-
drivers/gpu/drm/nouveau/nouveau_dp.c | 314 ++----
drivers/gpu/drm/nouveau/nouveau_drv.c | 18 +-
drivers/gpu/drm/nouveau/nouveau_drv.h | 150 ++-
drivers/gpu/drm/nouveau/nouveau_encoder.h | 18 +
drivers/gpu/drm/nouveau/nouveau_fbcon.c | 6 +-
drivers/gpu/drm/nouveau/nouveau_i2c.c | 8 +-
drivers/gpu/drm/nouveau/nouveau_mem.c | 809 +++++++++----
drivers/gpu/drm/nouveau/nouveau_mxm.c | 39 +-
drivers/gpu/drm/nouveau/nouveau_perf.c | 409 ++++---
drivers/gpu/drm/nouveau/nouveau_pm.c | 235 +++-
drivers/gpu/drm/nouveau/nouveau_pm.h | 22 +
drivers/gpu/drm/nouveau/nouveau_state.c | 232 ++--
drivers/gpu/drm/nouveau/nv04_fb.c | 34 +
drivers/gpu/drm/nouveau/nv10_fb.c | 126 +--
drivers/gpu/drm/nouveau/nv20_fb.c | 148 +++
drivers/gpu/drm/nouveau/nv40_fb.c | 45 +
drivers/gpu/drm/nouveau/nv50_crtc.c | 42 +-
drivers/gpu/drm/nouveau/nv50_dac.c | 7 +-
drivers/gpu/drm/nouveau/nv50_display.c | 27 +-
drivers/gpu/drm/nouveau/nv50_display.h | 2 +
drivers/gpu/drm/nouveau/nv50_evo.h | 3 +-
drivers/gpu/drm/nouveau/nv50_pm.c | 397 ++++---
drivers/gpu/drm/nouveau/nv50_sor.c | 213 +++-
drivers/gpu/drm/nouveau/nv50_vm.c | 29 +-
drivers/gpu/drm/nouveau/nv50_vram.c | 17 +
drivers/gpu/drm/nouveau/nvc0_pm.c | 2 +-
drivers/gpu/drm/nouveau/nvc0_vm.c | 4 +-
drivers/gpu/drm/nouveau/nvc0_vram.c | 33 +-
drivers/gpu/drm/nouveau/nvd0_display.c | 336 ++++--
drivers/gpu/drm/r128/r128_drv.c | 1 +
drivers/gpu/drm/radeon/Makefile | 2 +-
drivers/gpu/drm/radeon/atombios_crtc.c | 20 +-
drivers/gpu/drm/radeon/atombios_dp.c | 3 +-
drivers/gpu/drm/radeon/atombios_i2c.c | 139 +++
drivers/gpu/drm/radeon/evergreen.c | 56 +-
drivers/gpu/drm/radeon/evergreen_blit_kms.c | 12 +-
drivers/gpu/drm/radeon/evergreen_cs.c | 1178 +++++++++++++++++--
drivers/gpu/drm/radeon/evergreen_reg.h | 1 +
drivers/gpu/drm/radeon/evergreend.h | 377 ++++++
drivers/gpu/drm/radeon/ni.c | 6 +-
drivers/gpu/drm/radeon/r100.c | 109 ++-
drivers/gpu/drm/radeon/r200.c | 29 +-
drivers/gpu/drm/radeon/r300.c | 9 +-
drivers/gpu/drm/radeon/r420.c | 2 +-
drivers/gpu/drm/radeon/r500_reg.h | 2 +
drivers/gpu/drm/radeon/r520.c | 4 +-
drivers/gpu/drm/radeon/r600.c | 26 +-
drivers/gpu/drm/radeon/r600_blit_kms.c | 15 +-
drivers/gpu/drm/radeon/r600_cs.c | 629 +++++++---
drivers/gpu/drm/radeon/r600d.h | 20 +
drivers/gpu/drm/radeon/radeon.h | 241 +++--
drivers/gpu/drm/radeon/radeon_asic.c | 1579 +++++++++++++++----------
drivers/gpu/drm/radeon/radeon_asic.h | 24 +-
drivers/gpu/drm/radeon/radeon_atombios.c | 14 +
drivers/gpu/drm/radeon/radeon_benchmark.c | 24 +-
drivers/gpu/drm/radeon/radeon_blit_common.h | 44 +
drivers/gpu/drm/radeon/radeon_clocks.c | 2 +-
drivers/gpu/drm/radeon/radeon_connectors.c | 31 +
drivers/gpu/drm/radeon/radeon_cp.c | 2 +
drivers/gpu/drm/radeon/radeon_cs.c | 39 +-
drivers/gpu/drm/radeon/radeon_cursor.c | 20 +-
drivers/gpu/drm/radeon/radeon_display.c | 90 +-
drivers/gpu/drm/radeon/radeon_drv.c | 5 +-
drivers/gpu/drm/radeon/radeon_fb.c | 11 +-
drivers/gpu/drm/radeon/radeon_gem.c | 26 -
drivers/gpu/drm/radeon/radeon_i2c.c | 32 +-
drivers/gpu/drm/radeon/radeon_kms.c | 2 +
drivers/gpu/drm/radeon/radeon_legacy_crtc.c | 4 +-
drivers/gpu/drm/radeon/radeon_object.c | 64 +-
drivers/gpu/drm/radeon/radeon_object.h | 2 +
drivers/gpu/drm/radeon/radeon_pm.c | 6 +-
drivers/gpu/drm/radeon/radeon_reg.h | 2 +
drivers/gpu/drm/radeon/radeon_ring.c | 8 +-
drivers/gpu/drm/radeon/radeon_ttm.c | 15 +-
drivers/gpu/drm/radeon/reg_srcs/cayman | 24 +-
drivers/gpu/drm/radeon/reg_srcs/evergreen | 24 +-
drivers/gpu/drm/radeon/reg_srcs/r600 | 20 +-
drivers/gpu/drm/radeon/rs400.c | 2 +-
drivers/gpu/drm/radeon/rs600.c | 23 +-
drivers/gpu/drm/radeon/rs690.c | 4 +-
drivers/gpu/drm/radeon/rv515.c | 5 +-
drivers/gpu/drm/radeon/rv770.c | 4 +-
drivers/gpu/drm/savage/savage_state.c | 5 +-
drivers/gpu/drm/sis/sis_drv.c | 2 +
drivers/gpu/drm/ttm/ttm_agp_backend.c | 4 +-
drivers/gpu/drm/ttm/ttm_bo.c | 72 +-
drivers/gpu/drm/ttm/ttm_bo_vm.c | 5 +-
drivers/gpu/drm/ttm/ttm_memory.c | 12 +-
drivers/gpu/drm/ttm/ttm_object.c | 5 +-
drivers/gpu/drm/ttm/ttm_page_alloc.c | 55 +-
drivers/gpu/drm/ttm/ttm_page_alloc_dma.c | 60 +-
drivers/gpu/drm/ttm/ttm_tt.c | 8 +-
drivers/gpu/drm/udl/Kconfig | 12 +
drivers/gpu/drm/udl/Makefile | 6 +
drivers/gpu/drm/udl/udl_connector.c | 141 +++
drivers/gpu/drm/udl/udl_drv.c | 99 ++
drivers/gpu/drm/udl/udl_drv.h | 141 +++
drivers/gpu/drm/udl/udl_encoder.c | 80 ++
drivers/gpu/drm/udl/udl_fb.c | 611 ++++++++++
drivers/gpu/drm/udl/udl_gem.c | 227 ++++
drivers/gpu/drm/udl/udl_main.c | 338 ++++++
drivers/gpu/drm/udl/udl_modeset.c | 414 +++++++
drivers/gpu/drm/udl/udl_transfer.c | 253 ++++
drivers/gpu/drm/via/via_map.c | 2 +
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 55 +
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 10 +-
drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 15 +-
drivers/gpu/drm/vmwgfx/vmwgfx_fb.c | 22 +-
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c | 252 +++--
drivers/gpu/drm/vmwgfx/vmwgfx_fence.h | 9 +-
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 91 ++-
drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 8 +
drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 4 +-
drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 38 +-
drivers/i2c/algos/i2c-algo-bit.c | 3 +-
drivers/video/fbmem.c | 18 +-
drivers/video/udlfb.c | 2 +-
include/drm/drm.h | 2 +
include/drm/drmP.h | 25 +-
include/drm/drm_crtc.h | 48 +-
include/drm/drm_edid.h | 1 +
include/drm/drm_fb_helper.h | 2 -
include/drm/exynos_drm.h | 26 +
include/drm/gma_drm.h | 2 +-
include/drm/i915_drm.h | 1 +
include/drm/intel-gtt.h | 4 +
include/drm/radeon_drm.h | 24 +-
include/linux/fb.h | 1 +
include/linux/i2c-algo-bit.h | 1 +
include/linux/i2c/tc35876x.h | 11 +
271 files changed, 22737 insertions(+), 6488 deletions(-)
create mode 100644 Documentation/EDID/1024x768.S
create mode 100644 Documentation/EDID/1280x1024.S
create mode 100644 Documentation/EDID/1680x1050.S
create mode 100644 Documentation/EDID/1920x1080.S
create mode 100644 Documentation/EDID/HOWTO.txt
create mode 100644 Documentation/EDID/Makefile
create mode 100644 Documentation/EDID/edid.S
create mode 100644 Documentation/EDID/hex
create mode 100644 drivers/gpu/drm/drm_edid_load.c
create mode 100644 drivers/gpu/drm/exynos/exynos_drm_vidi.c
create mode 100644 drivers/gpu/drm/exynos/exynos_drm_vidi.h
delete mode 100644 drivers/gpu/drm/exynos/exynos_mixer.h
create mode 100644 drivers/gpu/drm/gma500/mdfld_device.c
create mode 100644 drivers/gpu/drm/gma500/mdfld_dsi_dpi.c
create mode 100644 drivers/gpu/drm/gma500/mdfld_dsi_dpi.h
create mode 100644 drivers/gpu/drm/gma500/mdfld_dsi_output.c
create mode 100644 drivers/gpu/drm/gma500/mdfld_dsi_output.h
create mode 100644 drivers/gpu/drm/gma500/mdfld_dsi_pkg_sender.c
create mode 100644 drivers/gpu/drm/gma500/mdfld_dsi_pkg_sender.h
create mode 100644 drivers/gpu/drm/gma500/mdfld_intel_display.c
create mode 100644 drivers/gpu/drm/gma500/mdfld_output.c
create mode 100644 drivers/gpu/drm/gma500/mdfld_output.h
create mode 100644 drivers/gpu/drm/gma500/mdfld_tmd_vid.c
create mode 100644 drivers/gpu/drm/gma500/mdfld_tpo_vid.c
create mode 100644 drivers/gpu/drm/gma500/tc35876x-dsi-lvds.c
create mode 100644 drivers/gpu/drm/gma500/tc35876x-dsi-lvds.h
delete mode 100644 drivers/gpu/drm/i915/i915_mem.c
create mode 100644 drivers/gpu/drm/nouveau/nv20_fb.c
create mode 100644 drivers/gpu/drm/radeon/atombios_i2c.c
create mode 100644 drivers/gpu/drm/radeon/radeon_blit_common.h
create mode 100644 drivers/gpu/drm/udl/Kconfig
create mode 100644 drivers/gpu/drm/udl/Makefile
create mode 100644 drivers/gpu/drm/udl/udl_connector.c
create mode 100644 drivers/gpu/drm/udl/udl_drv.c
create mode 100644 drivers/gpu/drm/udl/udl_drv.h
create mode 100644 drivers/gpu/drm/udl/udl_encoder.c
create mode 100644 drivers/gpu/drm/udl/udl_fb.c
create mode 100644 drivers/gpu/drm/udl/udl_gem.c
create mode 100644 drivers/gpu/drm/udl/udl_main.c
create mode 100644 drivers/gpu/drm/udl/udl_modeset.c
create mode 100644 drivers/gpu/drm/udl/udl_transfer.c
create mode 100644 include/linux/i2c/tc35876x.h