2014-01-30 02:50:05

by Dave Airlie

[permalink] [raw]
Subject: [git pull] drm next tree


Hi Linus,

Been a bit busy, first week of kids school, and waiting on other trees to go in before I could send this, so its a bit later than I'd normally like.

For some reason the request-pull and the merge into your tree look different,
since some of the changes in this have already gone in via the arm-soc tree
and dma stuff, all for tegra. Hopefully nobody rebased when they shouldn't.

Highlights:
core: timestamp fixes, lots of misc cleanups
new drivers: bochs virtual vga
vmwgfx: major overhaul for their nextgen virt gpu.
i915: runtime D3 on HSW, watermark fixes, power well work, fbc fixes, bdw is no longer prelim.
nouveau: gk110/208 acceleration, more pm groundwork, old overlay support
radeon: dpm rework and clockgating for CIK, pci config reset, big endian fixes
tegra: panel support and DSI support, build as module, prime.
armada, omap, gma500, rcar, exynos, mgag200, cirrus, ast: fixes
msm: hdmi support for mdp5

Dave.

The following changes since commit d8ec26d7f8287f5788a494f56e8814210f0e64be:

Linux 3.13 (2014-01-19 18:40:07 -0800)

are available in the git repository at:

git://people.freedesktop.org/~airlied/linux drm-next

for you to fetch changes up to ef64cf9d06049e4e9df661f3be60b217e476bee1:

Merge branch 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-next (2014-01-30 10:46:06 +1000)

----------------------------------------------------------------

Akash Goel (1):
drm/i915: Fix the offset issue for the stolen GEM objects

Alex Deucher (59):
drm/radeon/dpm: remove unnecessary checks in dpm_init
drm/radeon/si: drop cg_update from dpm code
drm/radeon/cik: drop cg_update from dpm code
drm/radeon: re-order firmware loading in preparation for dpm rework
drm/radeon/dpm: add a late enable callback
drm/radeon/dpm: add late_enable for rs780/rs880/rv6xx
drm/radeon/dpm: add late_enable for rv7xx-NI
drm/radeon/dpm: add late_enable for sumo
drm/radeon/dpm: add late_enable for trinity
drm/radeon/dpm: add late_enable for SI
drm/radeon/dpm: add late_enable for CI
drm/radeon/dpm: add late_enable for KB/KV
drm/radeon/dpm: switch on new late_enable callback
drm/radeon/pm: move pm handling into the asic specific code
drm/radeon: enable gfx cgcg on CIK dGPUs
drm/radeon: enable gfx cgcg on CIK APUs
drm/radeon: enable dpm by default on CI dGPUs
drm/radeon: enable dpm by default on CI APUs
drm/radeon: remove generic rptr/wptr functions (v2)
drm/radeon: fix pptable.h portability
drm/radeon: warn users when hw_i2c is enabled (v2)
drm/radeon/dpm: make some functions static for CI
drm/radeon/dpm: make some functions static for sumo
drm/radeon/dpm: make some functions static for TN
drm/radeon: move com/atombios scratch reg functions to radeon_mode.h
drm/radeon: add hard_reset module parameter
drm/radeon: add pci config hard reset
drm/radeon: implement pci config reset for r6xx/7xx (v3)
drm/radeon: implement pci config reset for evergreen/cayman (v2)
drm/radeon: implement pci config reset for SI (v2)
drm/radeon: implement pci config reset for CIK (v3)
Revert "drm/radeon: disable CIK CP semaphores for now"
drm/radeon: consolidate cp hdp flushing code for CIK
drm/radeon: consolidate sdma hdp flushing code for CIK
drm/radeon/cik: use POLL_REG_MEM special op for sDMA HDP flush
drm/radeon/cik: use WAIT_REG_MEM special op for CP HDP flush
drm/radeon: disable dpm on BTC
drm/radeon/cik: use hw defaults for TC_CFG registers
drm/radeon: disable ss on DP for DCE3.x
drm/radeon/dp: bump i2c-over-aux retries to 7
drm/radeon/dp: use usleep_range rather than udelay
drm/radeon/dp: sleep after powering up the display
drm/radeon: add query to fetch the max engine clock (v2)
drm/radeon: handle ss percentage divider properly
drm/radeon: bail early from enable ss in certain cases
drm/radeon: write gfx pg bases even when gfx pg is disabled
drm/radeon: fix endian handling in radeon_atom_init_mc_reg_table
drm/radeon/dpm: disable mclk switching on desktop RV770
drm/radeon: fix surface sync in fence on cayman (v2)
drm/radeon: set the full cache bit for fences on r7xx+
drm/radeon: fix minor typos in si_dpm.c
drm/radeon: add UVD support for OLAND
drm/radeon/runpm: don't runtime suspend non-PX cards
drm/radeon: skip async dma init on r6xx
drm/radeon: clean up active vram sizing
drm/radeon: fix DAC interrupt handling on DCE5+
drm/radeon: set si_notify_smc_display_change properly
drm/radeon/DCE4+: clear bios scratch dpms bit (v2)
drm/radeon/dce8: workaround for atom BlankCrtc table

Andrzej Hajda (1):
drm: Add MIPI DSI bus support

Archit Taneja (5):
drm/omap: fix: Defer probe if an omapdss device requests for it at connect
drm/omap: fix: disconnect devices when omapdrm module is removed
drm/omap: fix: disable encoder before destroying it
drm/omap: fix: change dev_unload order
drm/omap: Enable DT support for DMM

Ben Skeggs (59):
drm/nouveau/vm: reduce number of entry-points to vm_map()
drm/nouveau/ttm: tidy up creation of temporary buffer move vmas
drm/nouveau/ttm: explicity sync with kernel channel before moving buffer
drm/nouveau/ttm: explicitly wait for bo idle before memcpy buffer move
drm/nouveau/gem: remove (now) unneeded pre-validate fence sync
drm/nvc0-/gr: bring in some macros to abstract falcon isa differences
drm/nvf0/gr: remove a copy+pasto in ctx reglist
drm/nv108/fifo: initial support
drm/nv108/ce: enable copy engines
drm/nv108/gr: initial support (need external fuc)
drm/nvc0-/gr: fiddle some magic around strand init
drm/nvc0-/gr: handle fwmthd interrupts in ucode
drm/nv108/gr: enable acceleration with our chsw ucode
drm/nvf0/gr: enable acceleration with our chsw ucode
drm/nve0/fifo: s/playlist/runlist/
drm/nve0/fifo: s/subfifo/PBDMA/
drm/nve0/fifo: populate PBDMA status bitfield with more definitions
drm/nve0/fifo: document more intr status bits
drm/nve0/fifo: update human-readable mmu fault descriptions
drm/nve0/fifo: keep mmu fault interrupts enabled at all times
drm/nve0/fifo: recover from mmu faults on bar1/bar3
drm/nve0/fb/gddr5: fix behaviour of lp3 setting
drm/nve0/fb/gddr5: fix an assumption of sane memory controller layout
drm/nouveau/bios: make common code to handle ramcfg strap etc
drm/nve0/fb: typo in register name
drm/nve0/fb/gddr5: not all memory partitions are created equal
drm/nve0/fb/gddr5: punt all 10f910/914 accesses through ram_train
drm/nve0/fb/gddr5: switch off some other random bit at some point
drm/nve0/fb/gddr5: fix calculation of RDQS setting
drm/nouveau/fb/gddr5: modify mr8 with high bits of CL/WR
drm/nve0/fb/gddr5: note another semi-unknown
drm/nouveau/bios: timing 2.0 entries can have subentries
drm/nve0/fb/gddr5: fixup delays a bit
drm/nve0/fb/gddr5: somewhat better attempt at 100770/10f604/610/614
drm/nve0/fb: note the memory voltage toggle, not using it yet
drm/nve0/fb/gddr5: found LP3 setting
drm/nve0/fb/gddr5: parse bios data into struct rather than using directly
drm/nouveau/clk: allow fb to signal it needs to do a multi-stage reclock
drm/nve0/fb: multi-stage reclock is required for certain transitions
drm/nve0/fb: it's now safe to obey the memory voltage setting properly
drm/nve0/fb/gddr5: 10f698/69c
drm/nouveau/fb/gddr5: make sure we update mr7 when we're supposed to
drm/nve0/clk: report ddr memory frequency
drm/nve0/fb/gddr5: more 10f200 stuff
drm/nvc0-/fb: hook up skeleton interrupt handler
drm/nve0/fb/gddr5: yet another random 10f200 bit
drm/nve0/fb/gddr5: merge a fix from ddr3 for one of the timing settings
drm/nve0/fb: turn off some bits in 10f584 at init
drm/nouveau/pwr: have rd/wr32 routines clobber data instead of addr
drm/nouveau/pwr: implement a simple i2c stack
drm/nouveau/instmem: tidy up the subdev class definition
drm/nouveau/instmem: tidy up the object class definition
drm/nouveau/bar: tidy up the subdev and object class definitions
drm/nouveau/devinit: tidy up the subdev class definition
drm/nouveau: create base display from common code
drm/nouveau: call drm_vblank_cleanup() earlier
drm/nv50: fill in crtc mode struct members from crtc_mode_fixup
drm/nouveau/disp: add a method to fetch info needed by drm vblank timestamping
drm/nouveau: implement hooks for needed for drm vblank timestamping support

Ben Widawsky (17):
drm/i915: Require HW contexts (when possible)
drm/i915: Fix BDW PPGTT error path
drm/i915: Add a few missed bits to the mm
drm/i915: Disallow dynamic ppgtt param modification
drm/i915: Demote drop_caches_set print
drm/i915: Removed unused vm args
drm/i915: Remove defunct ctx switch comments
drm/i915: Missed dropped VMA conversion
drm/i915: Move the gtt mm takedown to cleanup
drm/i915/bdw: Force all Data Cache Data Port access to be Non-Coherent
drm/i915/bdw: Implement ff workarounds
drm/i915: Reorder/respace MI instruction definition
drm/i915: Don't emit mbox updates without semaphores
drm/i915: Clarify relocation errnos
drm/i915: Fix disabled semaphores
drm/i915: Make semaphore modparam RO
drm/i915/ppgtt: Defer request freeing on reset

Borislav Petkov (2):
i915, debugfs: Fix uninitialized warning
i915, fbdev: Fix Kconfig typo

Chon Ming Lee (4):
drm/i915/vlv: Workaround a punit issue in DDR data rate for 1333.
drm/i915/vlv: For i915_cur_delayinfo, the max frequency reporting wrong value.
drm/i915/vlv: Rename VLV DPIO register to be more structure to match configdb document.
drm/i915/vlv: Make the vlv_dpio_read/vlv_dpio_write more PHY centric

Chris Wilson (18):
drm/i915: Initialise min/max frequencies before updating RPS registers
drm/i915: Hold pc8 lock around toggling pc8.gpu_idle
drm/i915: Drop forcewake w/a for missed interrupts/seqno on Sandybridge
drm/i915: Do not attempt to re-enable an unconnected primary plane
drm/i915: Add a timing breadcrumb to panel waits
drm/i915: Fix ordering of unbind vs unpin pages
drm/i915: Do hw quiescing first during unload
video/fb: Propagate error code from failing to unregister conflicting fb
drm/i915: Mention when we enable the Ironlake iommu workarounds
drm/i915: Avoid dereference past end of page array in gen6_ppgtt_insert_entries()
drm/i915: Avoid dereference past end of page array in gen8_ppgtt_insert_entries()
drm/i915: Flush outstanding requests before allocating new seqno
drm/i915: Only WARN about a stuck hotplug irq ONCE
drm/i915: Only complain about a rogue hotplug IRQ after disabling
drm/i915: Include more information in disabled hotplug interrupt warning
drm/i915: Wait for completion of pending flips when starved of fences
drm/i915: Repeat evictions whilst pageflip completions are outstanding
drm/i915: Decouple GPU error reporting from ring initialisation

Christian K?nig (10):
drm/radeon: improve ring debugfs a bit
drm/radeon: report the real offset in radeon_sa_bo_dump_debug_info
drm/radeon: update fence values in before reporting them
drm/radeon: cleanup radeon_ttm debugfs handling
drm/radeon: add VRAM debugfs access v3
drm/radeon: add GART debugfs access v3
drm/radeon: don't power gate paused UVD streams
drm/radeon: fix VMID use tracking
drm/radeon: add missing trace point
drm/radeon: add ring to fence trace functions

Damien Lespiau (6):
drm/i915: Return a drm_mode_status enum in the mode_valid vfuncs
drm/i915: Fix copy/paste DP vs eDP error in comment
drm/i915: Remove if 0'ed static arrays
drm/i915: Use IS_VALLEYVIEW() to test the is_valleyview flag
drm/i915: Introduce new intel_output_name()
drm: Make the connector mode_valid() vfunc return a drm_mode_status enum

Dan Carpenter (2):
drm: use memdup_user() as a cleanup
drm/tegra: Fix small leak on error in tegra_fb_alloc()

Daniel Vetter (59):
drm/i915/ns2501: Rip out the reenable hack
drm/i915: tune reset dmesg output a bit
drm/i915: Make AGP=n work even on gen3
drm/i915: Kill legeacy AGP for gen3 kms
drm/i915: Deprecated UMS support
drm/i915: Use for_each_pipe in intel_display_crc_init
drm/i915: Reject opening of pipe crc files for invalid pipes
Merge branch 'bdw-fixes' into backlight-rework
Merge branch 'backlight-rework' into drm-intel-next-queued
drm/i915: dp aux irq support for g4x/vlv
drm/i915: remove intel_uncore_clear_errors
drm/i915: Fix module unloading with DRM_I915_UMS=n
drm/i915: drop the right force-wake engine in the vlv mmio funcs
drm/i915: make sparse happy for the new vlv mmio read function
drm/i915/sdvo: Fix up debug output to not split lines
drm/i915/lvds: don't restore hw state in the lid notifier for pch platforms
Merge tag 'v3.13-rc3' into drm-intel-next-queued
drm/i915: Use symbolic names for booleans in i915_semaphore_is_enabled
drm/i915: kick firmware fbs even when i915 fbdev is disabled
drm: Don't split up debug output
drm/rcar: call drm_put_dev directly in the ->remove hook
drm/exynos: call drm_put_dev directly from ->remove
drm/imx: directly call drm_put_dev in ->remove
drm/tilcdc: call drm_put_dev directly from ->remove
drm/omap: call drm_put_dev directly in ->remove
drm/shmob: call drm_put_dev directly from ->remove hook
drm/armada: directly call drm_put_dev in ->remove
drm/msm: call drm_put_dev directly in ->remove
drm: rip out drm_platform_exit
drm: restrict the device list for shadow attached drivers
drm/bufs: remove handling of _DRM_GEM mappings
drm: kill DRIVER_REQUIRE_AGP
drm: ->agp_init can't fail
drm: rip out drm_core_has_AGP
drm: remove agp_init() bus callback
drm: inline drm_agp_destroy
drm: kill the ->agp_destroy callback
drm: remove global_mutex locking around agp_init
drm: rip out DRM_AGP_MEM and DRM_AGP_KERN
drm: Kill DRM_HZ
drm: Kill DRM_IRQ_ARGS
drm: Kill DRM_WAKUP and DRM_INIT_WAITQUEUE
drm: Kill DRM_COPY_(TO|FROM)_USER
drm: Kill DRM_*MEMORYBARRIER
drm: Kill DRM_SUSER
drm/gma500: Remove dead code
drm: rip out dev->ioctl_count tracking
drm: Kill file_priv->ioctl_count tracking
drm: remove dev->vma_count
drm/i915: grab a pages pin count for preallocate stolen
drm/i915: Drop I915_ prefix from HAS_FBC
drm/i915: i830M has watermarks like i855
drm/i915: s/hotplugt_status_gen4/hotplug_status_g4x/
drm: store the gem vma offset manager in a typed pointer
drm/gma500: Remove unused function declaration
Merge commit origin/master into drm-intel-next
drm/gem: Always initialize the gem object in object_init
drm/i915: Tune down reset_stat output from ERROR to debug
Revert "drm/i915: Mask reserved bits in display/sprite address registers"

Dave Airlie (27):
Merge tag 'drm-intel-next-2013-11-29' of git://people.freedesktop.org/~danvet/drm-intel into drm-next
drm/agpsupport: use kzalloc instead of kmalloc/memset
Merge branch 'drm/next/du' of git://linuxtv.org/pinchartl/fbdev into drm-next
Merge tag 'drm/for-3.14-rc1' of git://anongit.freedesktop.org/tegra/linux into drm-next
Merge tag 'drm-intel-next-2013-12-13' of git://people.freedesktop.org/~danvet/drm-intel into drm-next
Merge branch 'msm-next' of git://people.freedesktop.org/~robclark/linux into drm-next
Merge branch 'drm-next-3.14-wip' of git://people.freedesktop.org/~agd5f/linux into drm-next
Merge branch 'exynos-drm-next' of git://git.kernel.org/.../daeinki/drm-exynos into drm-next
Merge tag 'ttm-next-2014-01-13' of git://people.freedesktop.org/~thomash/linux into drm-next
Merge tag 'vmwgfx-next-2014-01-13' of git://people.freedesktop.org/~thomash/linux into drm-next
drm/mgag200: fix oops in cursor code.
Merge tag 'vmwgfx-next-2014-01-17' of git://people.freedesktop.org/~thomash/linux into drm-next
Merge branch 'drm-intel-next' of git://people.freedesktop.org/~danvet/drm-intel into drm-next
Merge branch 'drm-next-3.14' of git://people.freedesktop.org/~agd5f/linux into drm-next
Merge branch 'vmwgfx-next' of git://people.freedesktop.org/~thomash/linux into drm-next
Merge branch 'topic/core-stuff' of git://people.freedesktop.org/~danvet/drm-intel into drm-next
Merge branch 'drm-vbl-timestamp' of git://gitorious.org/vsyrjala/linux into drm-next
drm/mgag200: on cards with < 2MB VRAM default to 16-bit
Merge branch 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-next
Merge branch 'gma500-next' of git://github.com/patjak/drm-gma500 into drm-next
Merge tag 'omapdrm-3.14' of git://git.kernel.org/.../tomba/linux into drm-next
Merge branch 'drm-armada-fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-cubox into drm-next
Merge tag 'drm-intel-fixes-2014-01-28' of git://people.freedesktop.org/~danvet/drm-intel into drm-next
drm: ast,cirrus,mgag200: use drm_can_sleep
Merge tag 'drm/for-3.14-rc1-20140123' of git://anongit.freedesktop.org/tegra/linux into drm-next
Merge branch 'drm-next-3.14' of git://people.freedesktop.org/~agd5f/linux into drm-next
Merge branch 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-next

Deepak S (6):
drm/i915: Add power well arguments to force wake routines.
drm/i915/vlv: Valleyview support for forcewake Individual power wells.
drm/i915: Enabling DebugFS for valleyview forcewake counts
drm/i915/vlv: Update Wait for FIFO and wait for 20 free entries. v3
drm/i915: Remove duplicate intel_uncore_forcewake_reset.
drm/i915/vlv: Add drpc debugfs support for valleyview

Geert Uytterhoeven (2):
drm/edid: Make edid_load() return a void *
drm/i915: Spelling s/auxilliary/auxiliary/

Gerd Hoffmann (1):
drm/bochs: new driver

Ilia Mirkin (10):
drm/nv10/plane: add YUYV support
drm/nv04/plane: add support for nv04/nv05 video overlay
drm/nouveau/falcon: use vmalloc to create firwmare copies
drm/nouveau/device: provide a way for devinit to mark engines as disabled
drm/nv50-/devinit: prevent use of engines marked as disabled by hw/vbios
drm/nouveau/devinit: lock/unlock crtc regs for all devices, not just pre-nv50
drm/nv50/gr: add more trap names to print on error
drm/nv50/gr: update list of mp errors, make it a bitfield
drm/nv50/gr: print mpc trap name when it's not an mp trap
drm/nouveau: resume display if any later suspend bits fail

Imre Deak (16):
drm/i915: add audio power domain
drm/i915: support for multiple power wells
drm/i915: add always-on power wells instead of special casing them
drm/i915: use IS_HASWELL/BROADWELL instead of HAS_POWER_WELL
drm/i915: don't do BDW/HSW specific powerdomains init on other platforms
drm/i915: add a default always-on power well
drm/i915: add a debugfs entry for power domain info
drm/i915: add intel_display_power_enabled_sw() for use in atomic ctx
drm/i915: simplify platform specific code in hsw_write_wm_values
drm/i915: remove unused WM defines
drm/i915: s/haswell_update_wm/ilk_update_wm/
drm/i915: vlv: make CRI clock enabling explicit during resume
drm/i915: vlv: W/a for hotplug/manual VGA detection
drm/i915: g4x/vlv: fix dp aux interrupt mask
drm/i915: don't disable the DP port if the link is lost
drm/i915: don't disable DP port after a failed link training

Inki Dae (1):
drm/exynos: use a new anon file for exynos gem mmaper

Jakob Bornecrantz (1):
drm/vmwgfx: Invalidate surface on non-readback unbind

Jani Nikula (19):
drm/i915: clean up backlight conditional build
drm/i915: make backlight info per-connector
drm/i915: make asle notifications update backlight on all connectors
drm/i915: handle backlight through chip specific functions
drm/i915: fix gen2-gen3 backlight set
drm/i915: vlv does not have pipe field in backlight registers
drm/i915: move backlight level setting in enable/disable to hooks
drm/i915: use the initialized backlight max value instead of reading it
drm/i915: debug print on backlight register
drm/i915: gather backlight information at setup
drm/i915: do full backlight setup at enable time
drm/i915: remove QUIRK_NO_PCH_PWM_ENABLE
drm/i915: nuke get max backlight functions
drm/i915: do not save/restore backlight registers in KMS
drm/i915: use __packed instead of __attribute__((packed))
drm/i915: parse backlight modulation frequency from the BIOS VBT
drm/i915: only build i915_debugfs.c when CONFIG_DEBUG_FS is enabled
drm/i915: remove duplicate MODULE_LICENSE definition
drm/i915: add braces around KHz/MHz macro parameters

Jeff Mahoney (1):
drm/nouveau: make vga_switcheroo code depend on VGA_SWITCHEROO

Jesse Barnes (18):
drm/i915: add bunit read/write routines
drm/i915: move VLV DDR freq fetch into init_clock_gating
drm/i915/vlv: modeset_global_* for VLV v7
drm/i915/vlv: split CCK and DDR freq usage
drm/i915/vlv: fixup DDR freq detection per Punit spec
drm/i915: drop duplicate ggtt vma list add in setup_global_gtt
drm/i915: split fb allocation and initialization v2
drm/i915: protect HSW power well check with IS_HASWELL in redisable_vga
drm/i915/vlv: use a lower RC6 timeout on VLV
drm/i915/vlv: use parallel context restore when coming out of RC6
drm/i915: drop DRM_ERROR in intel_fbdev init
drm/i915/vlv: add early DPIO init v3
drm/i915/vlv: split DPIO init and reset
drm/i915: check modeset state after a pipe_set_base if using fastboot
drm/i915: fix fastboot pfit disable hack to update pipe w/h
drm/i915: use crtc_htotal when calculating ilk watermarks
drm/i915/bdw: don't try to check IPS state on BDW v2
drm/i915/bdw: remove preliminary_hw_support flag from BDW

Kenneth Graunke (1):
drm/i915: Allow reading the TIMESTAMP register on Gen8.

Kristen Carlson Accardi (1):
i915: send D1 opregion notification

Kristian Hogsberg (1):
drm: Don't reference objects in the flink name idr

Laurent Pinchart (6):
drm/rcar-du: Don't cast crtc to rcrtc twice in the same function
drm/rcar-du: Update plane pitch in .mode_set_base() operation
drm/rcar-du: Split features and quirks
drm/rcar-du: Add LVDS_LANES quirk
drm/rcar-du: Add support for the r8a7791 DU
drm: shmob_drm: Check clk_prepare_enable() return value

Maarten Lankhorst (4):
drm/nouveau: fix m2mf copy to tiled gart
drm/nv50-: map TTM_PL_SYSTEM through a BAR for CPU access
drm/nouveau: hold mutex while syncing to kernel channel
drm/nouveau: fix lock unbalance in nouveau_crtc_page_flip

Marc Dietrich (1):
drm/panel: Add support for Samsung LTN101NT05 panel

Marek Ol??k (1):
drm/radeon: skip colorbuffer checking if COLOR_INFO.FORMAT is set to INVALID

Martin Koegler (1):
drm/cirrus: Fix cirrus drm driver for fbdev + qemu

Michel D?nzer (1):
radeon/pm: Guard access to rdev->pm.power_state array

Mika Kuoppala (6):
drm/i915: add i915_reset_count
drm/i915: add i915_get_reset_stats_ioctl
drm/i915: check i915_get_reset_stats_ioctl args
drm/i915: check context reset stats before relocations
drm/i915: Fix timeout with missed interrupts in __wait_seqno
drm/i915: dont call irq_put when irq test is on

Patrik Jakobsson (1):
drm/gma500: Lock struct_mutex around cursor updates

Paul Walmsley (1):
gpu: host1x: clk_round_rate() can return a zero upon error

Paulo Zanoni (27):
drm/i915: reuse WRPLL when possible
drm/i915: change CRTC assertion on LCPLL disable
drm/i915: WARN if !HAS_PC8 when enabling/disabling PC8
drm/i915: get a PC8 reference when enabling the power well
drm/i915: add initial Runtime PM functions
drm/i915: do adapter power state notification at runtime PM
drm/i915: add runtime put/get calls at the basic places
drm/i915: add some runtime PM get/put calls
drm/i915: get a runtime PM reference when the panel VDD is on
drm/i915: do not assert DE_PCH_EVENT_IVB enabled
drm/i915: disable interrupts when enabling PC8
drm/i915: add runtime PM support on Haswell
drm/i915: don't enable VDD just to enable the panel
drm/i915: don't touch the VDD when disabling the panel
drm/i915: fix VDD override off wait
drm/i915: remove i915_disable_vga_mem declaration
drm/i915: extract hsw_power_well_post_{enable, disable}
drm/i915: touch VGA MSR after we enable the power well
drm/i915: split intel_ddi_pll_mode_set in 2 pieces
drm/i915: cancel the hangcheck before runtime suspend
drm/i915: release the GTT mmaps when going into D3
drm/i915: add runtime PM support on Haswell
drm: do not steal the display if we have a master
drm/i915: avoid unclaimed registers when capturing the error state
drm/i915: fix wrong PLL debug messages.
drm/i915: don't set modes for 2 connectors on the same encoder
drm/i915: only apply GAMMA_MODE IPS WA on HSW

Randy Dunlap (1):
gpu: fix qxl missing crc32_le

Rashika (15):
drivers: gpu: Include appropriate header file in drm_usb.c
drivers: gpu: Mark function as static and remove unused function in ast_main.c
drivers: gpu: Mark functions as static in ast_mode.c
drivers: gpu: Mark functions as static in ast_ttm.c
drivers: gpu: Mark function as static in cirrus_main.c
drivers: gpu: Mark functions as static in cirrus_mode.c
drivers: gpu: Mark functions as static and remove unused function in cirrus_ttm.c
drivers: gpu: Mark function as static in mgag200_main.c
drivers: gpu: Mark functions as static in mgag200_mode.c
drivers: gpu: Mark functions as static in mgag200_ttm.c
drivers: gpu: Include appropriate header file in mga_ioc32.c
drivers: gpu: Mark function as static in qxl_kms.c
drivers: gpu: Mark function as static in sis_drv.c
drivers: gpu: Mark function as static in via_drv.c
drivers: gpu: Include appropriate header file in r128_ioc32.c

Rashika Kheria (18):
drivers: gpu: Mark function as static in cdv_intel_dp.c
drivers: gpu: Mark function as static in radeon_object.c
drivers: gpu: Mark functions as static in radeon_device.c
drivers: gpu: Mark function as static in radeon_kms.c
drivers: gpu: Mark function as static in radeon_gem.c
drivers: gpu: Mark function as static in r600_hdmi.c
drivers: gpu: Add static keyword to the definition of KMS_INVALID_IOCTL in radeon_kms.c
drivers: gpu: Include appropriate header file in si_smc.c and remove prototype declaration from header file sislands_smc.h
drivers: gpu: Move prototype declaration to header file radeon_mode.h from atombios_i2c.c
drivers: gpu: Include appropriate header file in ci_smc.c
drivers: gpu: Move prototype declaration to header file radeon_mode.h
drivers: gpu: Move prototype declarations to header file radeon_mode.h from radeon_atombios.c and radeon_combios.c
drivers: gpu: Mark function as static in ttm_bo.c
drivers: gpu: Mark function as static in ttm_bo_util.c
drivers: gpu: Remove unused function in ttm_lock.c
drivers: gpu: Mark functions as static in vmwgfx_kms.c
drivers: gpu: Mark functions as static in vmwgfx_buffer.c
drivers: gpu: Mark functions as static in vmwgfx_fence.c

Rob Clark (14):
drm: add DRM_ERROR_RATELIMITED
drm/msm: COMPILE_TEST support
drm/msm: add missing MODULE_FIRMWARE()s
drm/msm: fix bus scaling
drm/msm: add support for non-IOMMU systems
drm/msm: add support for msm8060ab/bstem
drm/msm: move mdp4 -> mdp/mdp4
drm/msm: resync generated headers
drm/msm: mdp4_format -> mdp_format
drm/msm: split out msm_kms.h
drm/msm: move irq utils to mdp_kms
drm/msm: add hdmi support for apq8x74/mdp5
drm/msm: add mdp5/apq8x74
drm/msm: add a330/apq8x74

Russell King (2):
drm: provide a helper for the encoder possible_crtcs mask
DRM: armada: fix missing DRM_KMS_FB_HELPER select

Seung-Woo Kim (1):
drm/exynos: fix build error caused by removed drm core macros

Shobhit Kumar (7):
drm/i915: Add more dev ops for MIPI sub encoder
drm/i915: Use FLISDSI interface for band gap reset
drm/i915: Compute dsi_clk from pixel clock
drm/i915: Try harder to get best m, n, p values with minimal error
drm/i915: Reorganize the DSI enable/disable sequence
drm/i915: Remove redundant DSI PLL enabling
drm/i915: Parametrize the dphy and other spec specific parameters

Stanislaw Gruszka (1):
i915: remove pm_qos request on error

Stephen Warren (3):
drm/tegra: fix compile w/ CONFIG_DYNAMIC_DEBUG
drm/panel: Add support for Chunghwa CLAA101WA01A panel
drm/panel: update EDID BLOB in panel_simple_get_modes()

Takashi Iwai (1):
drm/cirrus: correct register values for 16bpp

Tetsuo Handa (1):
drm/i915: Fix refcount leak and possible NULL pointerdereference.

Thierry Reding (39):
Merge tag 'tegra-for-3.14-dmas-resets-rework' into drm/for-next
Merge tag 'tegra-for-3.14-powergate' into drm/for-next
of: Add MIPI DSI bus device tree bindings
of: Add simple panel device tree binding
drm: Add panel support
drm/panel: Add simple panel support
drm/panel: Add support for Panasonic VVX10F004B0
drm/tegra: Implement panel support
gpu: host1x: Update host1x device tree example
gpu: host1x: Add MIPI pad calibration DT bindings
drm: Implement dummies for debugfs helpers
drm/dp: Use AUX constants from specification
gpu: host1x: Add MIPI pad calibration support
gpu: host1x: Export public API
gpu: host1x: Use the correct HW headers for host1x02
gpu: host1x: Fix more sparse warnings
gpu: host1x: Increase compile test coverage
gpu: host1x: Fix build warnings
gpu: host1x: Add Tegra124 support
drm/tegra: Allow the driver to be built as a module
drm/tegra: Increase compile test coverage
drm/tegra: Remove spurious blank line
drm/tegra: Do not export tegra_bo_ops
drm/tegra: Fix HDMI audio frequency typo
drm/tegra: Track HDMI enable state
drm/tegra: Disable outputs for power-saving
drm/tegra: Add DSI support
drm/tegra: Sort reverse-dependencies alphabetically
drm/tegra: Make legacy fbdev support optional
drm/tegra: Add Tegra124 DC support
drm/tegra: Relocate some output-specific code
drm/tegra: Add PRIME support
drm: Move drm_encoder_crtc_ok() to core
drm/i915: Use drm_encoder_crtc_ok()
drm/tegra: Fix possible CRTC mask for RGB outputs
drm/tegra: Clarify how panel modes override others
drm/tegra: Use proper data type
gpu: host1x: Remove unnecessary include
drm/tegra: Obtain head number from DT

Thomas Hellstrom (36):
drm/ttm: Use VM_PFNMAP for shared bo maps
drm/ttm: Refuse to fault (prime-) imported pages
drm/ttm: Correctly set page mapping and -index members
drm/ttm: ttm object security fixes for render nodes
drm/vmwgfx: Fix the driver for large dma addresses
drm/vmwgfx: Update the svga3d register header file for new device version
drm/vmwgfx: Update the driver user-space interface for guest-backed objects
drm/vmwgfx: Replace vram_size with prim_bb_mem for calculation of max resolution
drm/vmwgfx: Update the svga register definition
drm/vmwgfx: Adapt capability reporting to new hardware version
drm/vmwgfx: Add MOB management
drm/vmwgfx: Hook up MOBs to TTM as a separate memory type
drm/vmwgfx: Read bounding box memory from the appropriate register
drm/vmwgfx: Add the possibility to validate a buffer as a MOB
drm/vmwgfx: Hook up guest-backed queries
drm/vmwgfx: Detach backing store from its resources when it is evicted
drm/vmwgfx: Hook up guest-backed contexts
drm/vmwgfx: Hook up guest-backed surfaces
drm/vmwgfx: Add guest-backed shaders
drm/vmwgfx: Validate guest-backed shader const commands
drm/vmwgfx: Add new unused (by user-space) commands to the verifier
drm/vmwgfx: Enable 3D for new hardware version
drm/vmwgfx: Fix up the vmwgfx_drv.h header for new files
drm/vmwgfx: Extend the command verifier to handle guest-backed on / off
drm/vmwgfx: Implement a buffer object synccpu ioctl.
drm/vmwgfx: Add a parameter to get max MOB memory size
drm/vmwgfx: Block the BIND_SHADERCONSTS command
drm/vmwgfx: Track context bindings and scrub them upon exiting execbuf
drm/vmwgfx: Persistent tracking of context bindings
drm/vmwgfx: Ditch the vmw_dummy_query_bo_prepare function
drm/vmwgfx: Use the linux DMA api also for MOBs
drm/vmwgfx: Update otable definitions
drm/vmwgfx: Fix surface framebuffer check for guest-backed surfaces
drm/vmwgfx: Implement 64-bit Otable- and MOB binding v2
drm/vmwgfx: Silence the device command verifier
drm/vmwgfx: Fix recently introduced sparse / smatch warnings and errors

Thomas Wood (2):
drm/edid: split VIC display mode lookup into a separate function
drm/edid: parse the list of additional 3D modes

Todd Previte (2):
drm/dp: Clarify automated test constant and add constant for FAUX test pattern
drm/i915: VLV2 - Fix hotplug detect bits

Tomi Valkeinen (1):
drm/omap: fix (un)registering irqs inside an irq handler

Vandana Kannan (2):
drm/i915: Make downclock deduction common for all panels
drm/edid: Populate picture aspect ratio for CEA modes

Ville Syrj?l? (75):
drm/i915: Sanitize prepare_pipes after valleyview_modeset_global_pipes()
drm/i915: Improve vlv_gpu_freq() and vlv_freq_opcode()
drm/i915: Pass dev_priv to vlv_gpu_freq() and vlv_freq_opcode()
drm/i915: Fix gen3/4 vblank counter wraparound
drm/i915: Use frame counter for intel_wait_for_vblank() on CTG
drm/i915: Kill vlv_update_rps_cur_delay()
drm/i915: Use clamp_t() when limiting cur_delay
drm/i915: Make AGP support optional
drm/i915: Limit FBC flush to post batch flush
drm/i915: Emit SRM after the MSG_FBC_REND_STATE LRI
drm/i915: Set has_fbc=true for all SNB+, except VLV
drm/i915: Use plane_name() in gen7_enable_fbc()
drm/i915: Enable pipe gamma for sprites
drm/i915: Don't set the fence number in DPFC_CTL on SNB
drm/i915: Report all GTFIFODBG errors
drm/i915: Fix GT wake FIFO free entries for VLV
drm/i915: Fix port name in vlv_wait_port_ready() timeout warning
drm/i915: Avoid div-by-zero in clock calculation funcs
drm/i915: Add REG_WRITE_FOOTER
drm/i915: Fix bogus FBC1 defines
drm/i915: Fix FBC1 plane checks for gen2
drm/i915: Reorganize FBC function pointer initializaition
drm/i915: Swap primary planes on gen2 for FBC
drm/i915: Don't cast away const from infoframe buffer
drm/i915: Move VLV PHY CRI clock enable into intel_init_dpio()
drm/i915: Use 32bit read for BB_ADDR
drm/i915: Record BB_ADDR for every ring
drm/i915: Extract p2 divider correctly for gen2 LVDS dual channel
drm/i915: Change N divider minimum from 3 to 2 for gen2
drm/i915: Increase gen2 vco frequency limit to 1512 MHz
drm/i915: Fix 66 MHz LVDS SSC freq for gen2
drm/i915: Decrease gen2 vco frequency minimum to 908 MHz
drm/i915: Gen2 FBC1 CFB pitch wants 32B units
drm/i915: FBC_CONTROL2 is gen4 only
drm/i915: Enable FBC for all mobile gen2 and gen3 platforms
drm/i915: Rework the FBC interval/stall stuff a bit
drm/i915: Clear out old GT FIFO errors in intel_uncore_early_sanitize()
drm/i915/bdw: Don't use forcewake needlessly
drm/i915: Add IVB DDB partitioning control
drm/i915: Add ILK/SNB/IVB WM latency field support
drm/i915: Avoid computing invalid WM levels when sprites/scaling is enabled
drm/i915: Fix LP1 sprite watermarks for ILK/SNB
drm/i915: Fix LP1+ watermark disabling ILK
drm/i915: Don't merge LP1+ watermarks on ILK/SNB/IVB when multiple pipes are enabled
drm/i915: Disable FBC WM on ILK, and disable LP2+ when FBC is enabled
drm/i915: Linetime watermarks are a HSW feature
drm/i915: Disable LP1+ watermarks safely in init
drm/i915: Move ILK/SNB/IVB over to the HSW WM code
drm/i915: Try to fix the messy IVB sprite scaling workaround
drm/i915: Don't disable primary when color keying is used
drm/i915: Avoid underruns when disabling sprites
Revert "drm/i915/sprite: Always enable the scaler on IronLake"
drm: Push dirtyfb ioctl kms locking down to drivers
drm/i915: Fix watermark code for BDW
drm/i915: Enable watermarks for BDW
drm/i915: Simplify watermark/init_clock_gating setup
drm/i915: Don't swap planes on 830M
drm/i915: No panel fitter on 830M or non-mobile gen2/3 platforms
drm/i915: 830M doesn't have an LVDS port
drm/i915: Fix 915GM self-refresh enable/disable
drm: Pass the display mode to drm_calc_timestamping_constants()
drm: Pass the display mode to drm_calc_vbltimestamp_from_scanoutpos()
drm/i915: Kill hwmode save/restore
drm/i915: Call drm_calc_timestamping_constants() earlier
drm: Improve drm_calc_timestamping_constants() documentation
drm: Simplify the math in drm_calc_timestamping_constants()
drm/radeon: Populate crtc_clock in radeon_atom_get_tv_timings()
drm: Use crtc_clock in drm_calc_timestamping_constants()
drm: Change {pixel,line,frame}dur_ns from s64 to int
drm/i915: Fix scanoutpos calculations for interlaced modes
drm: Fix vblank timestamping constants for interlaced modes
drm: Pass 'flags' from the caller to .get_scanout_position()
drm/radeon: Move the early vblank IRQ fixup to radeon_get_crtc_scanoutpos()
drm/i915: Add a kludge for DSL incrementing too late and ISR not working
drm/i915: Eliminate lots of WARNs when there's no backlight present

Wei Yongjun (4):
drm/rcar-du: fix return value check in rcar_du_lvdsenc_get_resources()
drm/i915: fix return value check of debugfs_create_file()
drm/rcar-du: Fix return value check in rcar_du_lvdsenc_get_resources()
drm/tegra: Fix return value check

Wolfram Sang (1):
drm/tegra: Don't check resource with devm_ioremap_resource()

Zack Rusin (1):
drm/vmwgfx: Make sure that the multisampling is off

.../bindings/arm/tegra/nvidia,tegra20-pmc.txt | 1 +
.../bindings/clock/nvidia,tegra114-car.txt | 4 +
.../bindings/clock/nvidia,tegra124-car.txt | 63 +
.../bindings/clock/nvidia,tegra20-car.txt | 4 +
.../bindings/clock/nvidia,tegra30-car.txt | 4 +
.../devicetree/bindings/dma/tegra20-apbdma.txt | 14 +
.../bindings/gpu/nvidia,tegra20-host1x.txt | 137 ++
.../devicetree/bindings/i2c/nvidia,tegra20-i2c.txt | 27 +-
.../bindings/input/nvidia,tegra20-kbc.txt | 9 +
.../devicetree/bindings/mipi/dsi/mipi-dsi-bus.txt | 98 ++
.../bindings/mipi/nvidia,tegra114-mipi.txt | 41 +
.../bindings/mmc/nvidia,tegra20-sdhci.txt | 9 +
.../devicetree/bindings/nvec/nvidia,nvec.txt | 12 +
.../devicetree/bindings/panel/auo,b101aw03.txt | 7 +
.../bindings/panel/chunghwa,claa101wa01a.txt | 7 +
.../bindings/panel/chunghwa,claa101wb03.txt | 7 +
.../bindings/panel/panasonic,vvx10f004b00.txt | 7 +
.../bindings/panel/samsung,ltn101nt05.txt | 7 +
.../devicetree/bindings/panel/simple-panel.txt | 21 +
.../bindings/pci/nvidia,tegra20-pcie.txt | 26 +-
.../devicetree/bindings/pwm/nvidia,tegra20-pwm.txt | 9 +
.../devicetree/bindings/rtc/nvidia,tegra20-rtc.txt | 3 +
.../bindings/serial/nvidia,tegra20-hsuart.txt | 19 +-
.../bindings/sound/nvidia,tegra-audio-alc5632.txt | 7 +-
.../bindings/sound/nvidia,tegra-audio-rt5640.txt | 7 +-
.../bindings/sound/nvidia,tegra-audio-wm8753.txt | 7 +-
.../bindings/sound/nvidia,tegra-audio-wm8903.txt | 7 +-
.../bindings/sound/nvidia,tegra-audio-wm9712.txt | 7 +-
.../bindings/sound/nvidia,tegra20-ac97.txt | 20 +-
.../bindings/sound/nvidia,tegra20-i2s.txt | 19 +-
.../bindings/sound/nvidia,tegra30-ahub.txt | 63 +-
.../bindings/sound/nvidia,tegra30-i2s.txt | 11 +-
.../bindings/spi/nvidia,tegra114-spi.txt | 24 +-
.../bindings/spi/nvidia,tegra20-sflash.txt | 20 +-
.../bindings/spi/nvidia,tegra20-slink.txt | 20 +-
.../bindings/timer/nvidia,tegra20-timer.txt | 3 +
.../bindings/timer/nvidia,tegra30-timer.txt | 3 +
.../bindings/usb/nvidia,tegra20-ehci.txt | 7 +-
arch/arm/boot/dts/tegra114.dtsi | 157 +-
arch/arm/boot/dts/tegra20-paz00.dts | 2 +
arch/arm/boot/dts/tegra20.dtsi | 136 +-
arch/arm/boot/dts/tegra30.dtsi | 175 +-
arch/arm/mach-tegra/Kconfig | 2 +
arch/arm/mach-tegra/powergate.c | 203 ++-
drivers/char/Makefile | 2 +-
drivers/char/agp/Kconfig | 5 +
drivers/char/agp/Makefile | 2 +-
drivers/char/agp/intel-agp.c | 5 -
drivers/char/agp/intel-gtt.c | 18 +
drivers/clk/tegra/Makefile | 7 +-
drivers/clk/tegra/clk-id.h | 235 +++
drivers/clk/tegra/clk-periph-gate.c | 30 +-
drivers/clk/tegra/clk-periph.c | 72 +-
drivers/clk/tegra/clk-pll.c | 407 +++--
drivers/clk/tegra/clk-tegra-audio.c | 215 +++
drivers/clk/tegra/clk-tegra-fixed.c | 111 ++
drivers/clk/tegra/clk-tegra-periph.c | 674 ++++++++
drivers/clk/tegra/clk-tegra-pmc.c | 132 ++
drivers/clk/tegra/clk-tegra-super-gen4.c | 149 ++
drivers/clk/tegra/clk-tegra114.c | 1688 +++++---------------
drivers/clk/tegra/clk-tegra124.c | 1424 +++++++++++++++++
drivers/clk/tegra/clk-tegra20.c | 817 ++++------
drivers/clk/tegra/clk-tegra30.c | 1504 ++++++-----------
drivers/clk/tegra/clk.c | 214 +++
drivers/clk/tegra/clk.h | 116 +-
drivers/dma/dmaengine.c | 63 +-
drivers/dma/mmp_pdma.c | 30 +-
drivers/dma/of-dma.c | 15 +-
drivers/dma/tegra20-apb-dma.c | 52 +-
drivers/gpu/drm/Kconfig | 8 +
drivers/gpu/drm/Makefile | 4 +
drivers/gpu/drm/armada/Kconfig | 1 +
drivers/gpu/drm/armada/armada_drv.c | 3 +-
drivers/gpu/drm/ast/ast_fb.c | 2 +-
drivers/gpu/drm/ast/ast_main.c | 49 +-
drivers/gpu/drm/ast/ast_mode.c | 20 +-
drivers/gpu/drm/ast/ast_ttm.c | 6 +-
drivers/gpu/drm/bochs/Kconfig | 11 +
drivers/gpu/drm/bochs/Makefile | 4 +
drivers/gpu/drm/bochs/bochs.h | 164 ++
drivers/gpu/drm/bochs/bochs_drv.c | 178 +++
drivers/gpu/drm/bochs/bochs_fbdev.c | 215 +++
drivers/gpu/drm/bochs/bochs_hw.c | 177 ++
drivers/gpu/drm/bochs/bochs_kms.c | 294 ++++
drivers/gpu/drm/bochs/bochs_mm.c | 546 +++++++
drivers/gpu/drm/cirrus/cirrus_drv.h | 2 +-
drivers/gpu/drm/cirrus/cirrus_fbdev.c | 5 +-
drivers/gpu/drm/cirrus/cirrus_main.c | 2 +-
drivers/gpu/drm/cirrus/cirrus_mode.c | 12 +-
drivers/gpu/drm/cirrus/cirrus_ttm.c | 26 +-
drivers/gpu/drm/drm_agpsupport.c | 35 +-
drivers/gpu/drm/drm_buffer.c | 2 +-
drivers/gpu/drm/drm_bufs.c | 10 +-
drivers/gpu/drm/drm_crtc.c | 25 +-
drivers/gpu/drm/drm_crtc_helper.c | 31 +-
drivers/gpu/drm/drm_drv.c | 4 -
drivers/gpu/drm/drm_edid.c | 289 ++--
drivers/gpu/drm/drm_edid_load.c | 4 +-
drivers/gpu/drm/drm_fb_helper.c | 6 +
drivers/gpu/drm/drm_fops.c | 11 +-
drivers/gpu/drm/drm_gem.c | 45 +-
drivers/gpu/drm/drm_info.c | 16 +-
drivers/gpu/drm/drm_irq.c | 119 +-
drivers/gpu/drm/drm_memory.c | 15 +-
drivers/gpu/drm/drm_mipi_dsi.c | 315 ++++
drivers/gpu/drm/drm_panel.c | 100 ++
drivers/gpu/drm/drm_pci.c | 38 +-
drivers/gpu/drm/drm_platform.c | 12 -
drivers/gpu/drm/drm_stub.c | 31 +-
drivers/gpu/drm/drm_usb.c | 2 +-
drivers/gpu/drm/drm_vm.c | 10 +-
drivers/gpu/drm/exynos/exynos_drm_drv.c | 25 +-
drivers/gpu/drm/exynos/exynos_drm_drv.h | 1 +
drivers/gpu/drm/exynos/exynos_drm_fimd.c | 6 +-
drivers/gpu/drm/exynos/exynos_drm_gem.c | 74 +-
drivers/gpu/drm/exynos/exynos_drm_gem.h | 3 +
drivers/gpu/drm/exynos/exynos_mixer.c | 6 +-
drivers/gpu/drm/gma500/accel_2d.c | 2 +-
drivers/gpu/drm/gma500/cdv_intel_dp.c | 39 +-
drivers/gpu/drm/gma500/gma_display.c | 12 +-
drivers/gpu/drm/gma500/psb_drv.h | 8 +-
drivers/gpu/drm/gma500/psb_intel_drv.h | 5 -
drivers/gpu/drm/gma500/psb_irq.c | 19 +-
drivers/gpu/drm/gma500/psb_irq.h | 2 +-
drivers/gpu/drm/i810/i810_dma.c | 4 +
drivers/gpu/drm/i810/i810_drv.c | 2 +-
drivers/gpu/drm/i915/Kconfig | 32 +-
drivers/gpu/drm/i915/Makefile | 3 +-
drivers/gpu/drm/i915/dvo_ns2501.c | 73 +-
drivers/gpu/drm/i915/i915_debugfs.c | 288 +++-
drivers/gpu/drm/i915/i915_dma.c | 53 +-
drivers/gpu/drm/i915/i915_drv.c | 106 +-
drivers/gpu/drm/i915/i915_drv.h | 164 +-
drivers/gpu/drm/i915/i915_gem.c | 123 +-
drivers/gpu/drm/i915/i915_gem_context.c | 45 +-
drivers/gpu/drm/i915/i915_gem_evict.c | 27 +-
drivers/gpu/drm/i915/i915_gem_execbuffer.c | 69 +-
drivers/gpu/drm/i915/i915_gem_gtt.c | 54 +-
drivers/gpu/drm/i915/i915_gem_stolen.c | 3 +-
drivers/gpu/drm/i915/i915_gpu_error.c | 34 +-
drivers/gpu/drm/i915/i915_irq.c | 161 +-
drivers/gpu/drm/i915/i915_reg.h | 335 ++--
drivers/gpu/drm/i915/i915_suspend.c | 49 +-
drivers/gpu/drm/i915/i915_sysfs.c | 49 +-
drivers/gpu/drm/i915/i915_ums.c | 27 +
drivers/gpu/drm/i915/intel_bios.c | 37 +-
drivers/gpu/drm/i915/intel_bios.h | 64 +-
drivers/gpu/drm/i915/intel_crt.c | 5 +-
drivers/gpu/drm/i915/intel_ddi.c | 148 +-
drivers/gpu/drm/i915/intel_display.c | 592 +++++--
drivers/gpu/drm/i915/intel_dp.c | 164 +-
drivers/gpu/drm/i915/intel_drv.h | 47 +-
drivers/gpu/drm/i915/intel_dsi.c | 193 ++-
drivers/gpu/drm/i915/intel_dsi.h | 21 +
drivers/gpu/drm/i915/intel_dsi_pll.c | 119 +-
drivers/gpu/drm/i915/intel_dvo.c | 5 +-
drivers/gpu/drm/i915/intel_fbdev.c | 65 +-
drivers/gpu/drm/i915/intel_hdmi.c | 87 +-
drivers/gpu/drm/i915/intel_i2c.c | 15 +-
drivers/gpu/drm/i915/intel_lvds.c | 90 +-
drivers/gpu/drm/i915/intel_opregion.c | 47 +-
drivers/gpu/drm/i915/intel_overlay.c | 2 +-
drivers/gpu/drm/i915/intel_panel.c | 958 +++++++----
drivers/gpu/drm/i915/intel_pm.c | 1671 +++++++------------
drivers/gpu/drm/i915/intel_ringbuffer.c | 54 +-
drivers/gpu/drm/i915/intel_sdvo.c | 62 +-
drivers/gpu/drm/i915/intel_sdvo_regs.h | 40 +-
drivers/gpu/drm/i915/intel_sideband.c | 43 +-
drivers/gpu/drm/i915/intel_sprite.c | 86 +-
drivers/gpu/drm/i915/intel_uncore.c | 319 +++-
drivers/gpu/drm/mga/mga_dma.c | 4 +-
drivers/gpu/drm/mga/mga_drv.h | 4 +-
drivers/gpu/drm/mga/mga_ioc32.c | 1 +
drivers/gpu/drm/mga/mga_irq.c | 8 +-
drivers/gpu/drm/mga/mga_state.c | 2 +-
drivers/gpu/drm/mgag200/mgag200_cursor.c | 8 +-
drivers/gpu/drm/mgag200/mgag200_fb.c | 9 +-
drivers/gpu/drm/mgag200/mgag200_main.c | 7 +-
drivers/gpu/drm/mgag200/mgag200_mode.c | 6 +-
drivers/gpu/drm/mgag200/mgag200_ttm.c | 6 +-
drivers/gpu/drm/msm/Kconfig | 3 +-
drivers/gpu/drm/msm/Makefile | 21 +-
drivers/gpu/drm/msm/NOTES | 20 +-
drivers/gpu/drm/msm/adreno/a2xx.xml.h | 125 +-
drivers/gpu/drm/msm/adreno/a3xx.xml.h | 116 +-
drivers/gpu/drm/msm/adreno/a3xx_gpu.c | 190 ++-
drivers/gpu/drm/msm/adreno/a3xx_gpu.h | 4 +
drivers/gpu/drm/msm/adreno/adreno_common.xml.h | 171 +-
drivers/gpu/drm/msm/adreno/adreno_gpu.c | 25 +-
drivers/gpu/drm/msm/adreno/adreno_gpu.h | 9 +
drivers/gpu/drm/msm/adreno/adreno_pm4.xml.h | 30 +-
drivers/gpu/drm/msm/dsi/dsi.xml.h | 8 +-
drivers/gpu/drm/msm/dsi/mmss_cc.xml.h | 8 +-
drivers/gpu/drm/msm/dsi/sfpb.xml.h | 8 +-
drivers/gpu/drm/msm/hdmi/hdmi.c | 201 ++-
drivers/gpu/drm/msm/hdmi/hdmi.h | 38 +-
drivers/gpu/drm/msm/hdmi/hdmi.xml.h | 83 +-
drivers/gpu/drm/msm/hdmi/hdmi_bridge.c | 71 +
drivers/gpu/drm/msm/hdmi/hdmi_connector.c | 139 +-
drivers/gpu/drm/msm/hdmi/hdmi_phy_8x74.c | 157 ++
drivers/gpu/drm/msm/hdmi/qfprom.xml.h | 8 +-
drivers/gpu/drm/msm/{ => mdp}/mdp4/mdp4.xml.h | 88 +-
drivers/gpu/drm/msm/{ => mdp}/mdp4/mdp4_crtc.c | 26 +-
.../gpu/drm/msm/{ => mdp}/mdp4/mdp4_dtv_encoder.c | 6 +-
drivers/gpu/drm/msm/mdp/mdp4/mdp4_irq.c | 93 ++
drivers/gpu/drm/msm/{ => mdp}/mdp4/mdp4_kms.c | 61 +-
drivers/gpu/drm/msm/{ => mdp}/mdp4/mdp4_kms.h | 56 +-
drivers/gpu/drm/msm/{ => mdp}/mdp4/mdp4_plane.c | 6 +-
drivers/gpu/drm/msm/mdp/mdp5/mdp5.xml.h | 1036 ++++++++++++
drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c | 569 +++++++
drivers/gpu/drm/msm/mdp/mdp5/mdp5_encoder.c | 258 +++
drivers/gpu/drm/msm/mdp/mdp5/mdp5_irq.c | 111 ++
drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c | 350 ++++
drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.h | 213 +++
drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 389 +++++
drivers/gpu/drm/msm/mdp/mdp5/mdp5_smp.c | 173 ++
drivers/gpu/drm/msm/mdp/mdp5/mdp5_smp.h | 41 +
drivers/gpu/drm/msm/mdp/mdp_common.xml.h | 78 +
.../msm/{mdp4/mdp4_format.c => mdp/mdp_format.c} | 13 +-
drivers/gpu/drm/msm/mdp/mdp_kms.c | 144 ++
drivers/gpu/drm/msm/mdp/mdp_kms.h | 97 ++
drivers/gpu/drm/msm/mdp4/mdp4_irq.c | 203 ---
drivers/gpu/drm/msm/msm_drv.c | 132 +-
drivers/gpu/drm/msm/msm_drv.h | 64 +-
drivers/gpu/drm/msm/msm_fb.c | 1 +
drivers/gpu/drm/msm/msm_gem.c | 170 +-
drivers/gpu/drm/msm/msm_gem.h | 5 +
drivers/gpu/drm/msm/msm_gpu.c | 39 +-
drivers/gpu/drm/msm/msm_gpu.h | 6 +-
drivers/gpu/drm/msm/msm_iommu.c | 148 ++
drivers/gpu/drm/msm/msm_kms.h | 68 +
drivers/gpu/drm/msm/msm_mmu.h | 47 +
drivers/gpu/drm/nouveau/Makefile | 7 +
drivers/gpu/drm/nouveau/core/core/engine.c | 23 +-
drivers/gpu/drm/nouveau/core/engine/copy/nvc0.c | 6 -
drivers/gpu/drm/nouveau/core/engine/copy/nve0.c | 6 -
drivers/gpu/drm/nouveau/core/engine/device/nv04.c | 8 +-
drivers/gpu/drm/nouveau/core/engine/device/nv10.c | 32 +-
drivers/gpu/drm/nouveau/core/engine/device/nv20.c | 16 +-
drivers/gpu/drm/nouveau/core/engine/device/nv30.c | 20 +-
drivers/gpu/drm/nouveau/core/engine/device/nv40.c | 64 +-
drivers/gpu/drm/nouveau/core/engine/device/nv50.c | 56 +-
drivers/gpu/drm/nouveau/core/engine/device/nvc0.c | 36 +-
drivers/gpu/drm/nouveau/core/engine/device/nve0.c | 28 +-
drivers/gpu/drm/nouveau/core/engine/disp/nv04.c | 38 +-
drivers/gpu/drm/nouveau/core/engine/disp/nv50.c | 30 +
drivers/gpu/drm/nouveau/core/engine/disp/nv50.h | 7 +-
drivers/gpu/drm/nouveau/core/engine/disp/nv84.c | 1 +
drivers/gpu/drm/nouveau/core/engine/disp/nv94.c | 1 +
drivers/gpu/drm/nouveau/core/engine/disp/nva3.c | 3 +-
drivers/gpu/drm/nouveau/core/engine/disp/nvd0.c | 50 +-
drivers/gpu/drm/nouveau/core/engine/disp/nve0.c | 5 +-
drivers/gpu/drm/nouveau/core/engine/disp/nvf0.c | 5 +-
drivers/gpu/drm/nouveau/core/engine/disp/vga.c | 9 +-
drivers/gpu/drm/nouveau/core/engine/falcon.c | 20 +-
drivers/gpu/drm/nouveau/core/engine/fifo/nv108.c | 37 +
drivers/gpu/drm/nouveau/core/engine/fifo/nvc0.c | 1 +
drivers/gpu/drm/nouveau/core/engine/fifo/nve0.c | 414 +++--
drivers/gpu/drm/nouveau/core/engine/fifo/nve0.h | 17 +
.../gpu/drm/nouveau/core/engine/graph/ctxnv108.c | 1408 ++++++++++++++++
.../gpu/drm/nouveau/core/engine/graph/ctxnvf0.c | 7 +-
.../gpu/drm/nouveau/core/engine/graph/fuc/com.fuc | 138 +-
.../gpu/drm/nouveau/core/engine/graph/fuc/gpc.fuc | 137 +-
.../nouveau/core/engine/graph/fuc/gpcnv108.fuc5 | 42 +
.../nouveau/core/engine/graph/fuc/gpcnv108.fuc5.h | 473 ++++++
.../nouveau/core/engine/graph/fuc/gpcnvc0.fuc.h | 704 ++++----
.../nouveau/core/engine/graph/fuc/gpcnvd7.fuc.h | 766 +++++----
.../nouveau/core/engine/graph/fuc/gpcnve0.fuc.h | 766 +++++----
.../nouveau/core/engine/graph/fuc/gpcnvf0.fuc.h | 766 +++++----
.../gpu/drm/nouveau/core/engine/graph/fuc/hub.fuc | 382 ++---
.../nouveau/core/engine/graph/fuc/hubnv108.fuc5 | 40 +
.../nouveau/core/engine/graph/fuc/hubnv108.fuc5.h | 916 +++++++++++
.../nouveau/core/engine/graph/fuc/hubnvc0.fuc.h | 1238 +++++++-------
.../nouveau/core/engine/graph/fuc/hubnvd7.fuc.h | 1238 +++++++-------
.../nouveau/core/engine/graph/fuc/hubnve0.fuc.h | 1202 +++++++-------
.../nouveau/core/engine/graph/fuc/hubnvf0.fuc.h | 1202 +++++++-------
.../drm/nouveau/core/engine/graph/fuc/macros.fuc | 141 +-
drivers/gpu/drm/nouveau/core/engine/graph/nv108.c | 236 +++
drivers/gpu/drm/nouveau/core/engine/graph/nv50.c | 166 +-
drivers/gpu/drm/nouveau/core/engine/graph/nvc0.c | 3 +
drivers/gpu/drm/nouveau/core/engine/graph/nvc0.h | 10 +
drivers/gpu/drm/nouveau/core/engine/graph/nvf0.c | 10 +-
drivers/gpu/drm/nouveau/core/include/core/class.h | 22 +
drivers/gpu/drm/nouveau/core/include/core/device.h | 4 +-
drivers/gpu/drm/nouveau/core/include/engine/fifo.h | 1 +
.../gpu/drm/nouveau/core/include/engine/graph.h | 1 +
drivers/gpu/drm/nouveau/core/include/subdev/bar.h | 23 +-
.../drm/nouveau/core/include/subdev/bios/ramcfg.h | 66 +
.../drm/nouveau/core/include/subdev/bios/rammap.h | 26 +-
.../drm/nouveau/core/include/subdev/bios/timing.h | 12 +-
.../gpu/drm/nouveau/core/include/subdev/devinit.h | 39 +-
drivers/gpu/drm/nouveau/core/include/subdev/fb.h | 13 +
.../gpu/drm/nouveau/core/include/subdev/instmem.h | 34 +-
drivers/gpu/drm/nouveau/core/include/subdev/vm.h | 4 -
drivers/gpu/drm/nouveau/core/subdev/bar/base.c | 6 +-
drivers/gpu/drm/nouveau/core/subdev/bar/nv50.c | 3 +-
drivers/gpu/drm/nouveau/core/subdev/bar/nvc0.c | 3 +-
drivers/gpu/drm/nouveau/core/subdev/bar/priv.h | 26 +
drivers/gpu/drm/nouveau/core/subdev/bios/init.c | 48 +-
drivers/gpu/drm/nouveau/core/subdev/bios/ramcfg.c | 67 +
drivers/gpu/drm/nouveau/core/subdev/bios/rammap.c | 107 +-
drivers/gpu/drm/nouveau/core/subdev/bios/timing.c | 70 +-
drivers/gpu/drm/nouveau/core/subdev/clock/base.c | 9 +-
drivers/gpu/drm/nouveau/core/subdev/clock/nv04.c | 2 +-
drivers/gpu/drm/nouveau/core/subdev/clock/nve0.c | 2 +-
drivers/gpu/drm/nouveau/core/subdev/devinit/base.c | 34 +-
drivers/gpu/drm/nouveau/core/subdev/devinit/nv04.c | 36 +-
drivers/gpu/drm/nouveau/core/subdev/devinit/nv04.h | 23 +
drivers/gpu/drm/nouveau/core/subdev/devinit/nv05.c | 41 +-
drivers/gpu/drm/nouveau/core/subdev/devinit/nv10.c | 41 +-
drivers/gpu/drm/nouveau/core/subdev/devinit/nv1a.c | 37 +-
drivers/gpu/drm/nouveau/core/subdev/devinit/nv20.c | 41 +-
drivers/gpu/drm/nouveau/core/subdev/devinit/nv50.c | 32 +-
drivers/gpu/drm/nouveau/core/subdev/devinit/nv50.h | 18 +
drivers/gpu/drm/nouveau/core/subdev/devinit/nv84.c | 63 +
drivers/gpu/drm/nouveau/core/subdev/devinit/nv98.c | 62 +
drivers/gpu/drm/nouveau/core/subdev/devinit/nva3.c | 50 +-
drivers/gpu/drm/nouveau/core/subdev/devinit/nvaf.c | 63 +
drivers/gpu/drm/nouveau/core/subdev/devinit/nvc0.c | 44 +-
drivers/gpu/drm/nouveau/core/subdev/devinit/priv.h | 38 +-
drivers/gpu/drm/nouveau/core/subdev/fb/gddr5.c | 72 +-
drivers/gpu/drm/nouveau/core/subdev/fb/nvc0.c | 16 +
drivers/gpu/drm/nouveau/core/subdev/fb/priv.h | 2 +-
drivers/gpu/drm/nouveau/core/subdev/fb/ramnv50.c | 18 +-
drivers/gpu/drm/nouveau/core/subdev/fb/ramnva3.c | 22 +-
drivers/gpu/drm/nouveau/core/subdev/fb/ramnvc0.c | 24 +-
drivers/gpu/drm/nouveau/core/subdev/fb/ramnve0.c | 614 ++++---
drivers/gpu/drm/nouveau/core/subdev/instmem/base.c | 135 +-
drivers/gpu/drm/nouveau/core/subdev/instmem/nv04.c | 140 +-
drivers/gpu/drm/nouveau/core/subdev/instmem/nv04.h | 4 +-
drivers/gpu/drm/nouveau/core/subdev/instmem/nv40.c | 44 +-
drivers/gpu/drm/nouveau/core/subdev/instmem/nv50.c | 117 +-
drivers/gpu/drm/nouveau/core/subdev/instmem/priv.h | 56 +
drivers/gpu/drm/nouveau/core/subdev/mc/nvc0.c | 2 +
.../gpu/drm/nouveau/core/subdev/pwr/fuc/i2c_.fuc | 393 +++++
.../gpu/drm/nouveau/core/subdev/pwr/fuc/kernel.fuc | 32 +-
.../gpu/drm/nouveau/core/subdev/pwr/fuc/macros.fuc | 53 +
.../gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc | 3 +
.../drm/nouveau/core/subdev/pwr/fuc/nv108.fuc.h | 467 +++++-
.../gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc | 3 +
.../gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc.h | 484 +++++-
.../gpu/drm/nouveau/core/subdev/pwr/fuc/nvc0.fuc | 3 +
.../gpu/drm/nouveau/core/subdev/pwr/fuc/nvc0.fuc.h | 484 +++++-
.../gpu/drm/nouveau/core/subdev/pwr/fuc/nvd0.fuc | 3 +
.../gpu/drm/nouveau/core/subdev/pwr/fuc/nvd0.fuc.h | 533 ++++--
drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/os.h | 19 +
drivers/gpu/drm/nouveau/core/subdev/vm/base.c | 22 +-
drivers/gpu/drm/nouveau/dispnv04/disp.c | 5 -
drivers/gpu/drm/nouveau/dispnv04/disp.h | 1 -
drivers/gpu/drm/nouveau/dispnv04/overlay.c | 183 ++-
drivers/gpu/drm/nouveau/nouveau_acpi.c | 6 +
drivers/gpu/drm/nouveau/nouveau_bo.c | 197 +--
drivers/gpu/drm/nouveau/nouveau_display.c | 133 +-
drivers/gpu/drm/nouveau/nouveau_display.h | 5 +
drivers/gpu/drm/nouveau/nouveau_dma.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_dma.h | 2 +-
drivers/gpu/drm/nouveau/nouveau_drm.c | 16 +-
drivers/gpu/drm/nouveau/nouveau_drm.h | 1 +
drivers/gpu/drm/nouveau/nouveau_fence.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_gem.c | 10 +-
drivers/gpu/drm/nouveau/nouveau_sgdma.c | 17 +-
drivers/gpu/drm/nouveau/nouveau_ttm.c | 1 +
drivers/gpu/drm/nouveau/nv50_display.c | 23 +-
drivers/gpu/drm/omapdrm/omap_crtc.c | 11 +-
drivers/gpu/drm/omapdrm/omap_debugfs.c | 2 +-
drivers/gpu/drm/omapdrm/omap_dmm_tiler.c | 9 +
drivers/gpu/drm/omapdrm/omap_drv.c | 86 +-
drivers/gpu/drm/omapdrm/omap_drv.h | 5 +-
drivers/gpu/drm/omapdrm/omap_encoder.c | 3 +
drivers/gpu/drm/omapdrm/omap_fb.c | 4 +
drivers/gpu/drm/omapdrm/omap_irq.c | 26 +-
drivers/gpu/drm/panel/Kconfig | 19 +
drivers/gpu/drm/panel/Makefile | 1 +
drivers/gpu/drm/panel/panel-simple.c | 548 +++++++
drivers/gpu/drm/qxl/qxl_display.c | 9 +-
drivers/gpu/drm/qxl/qxl_drv.h | 2 +-
drivers/gpu/drm/qxl/qxl_ioctl.c | 4 +-
drivers/gpu/drm/qxl/qxl_irq.c | 2 +-
drivers/gpu/drm/qxl/qxl_kms.c | 2 +-
drivers/gpu/drm/r128/r128_cce.c | 4 +-
drivers/gpu/drm/r128/r128_drv.h | 4 +-
drivers/gpu/drm/r128/r128_ioc32.c | 1 +
drivers/gpu/drm/r128/r128_irq.c | 2 +-
drivers/gpu/drm/r128/r128_state.c | 66 +-
drivers/gpu/drm/radeon/atombios_crtc.c | 52 +-
drivers/gpu/drm/radeon/atombios_dp.c | 54 +-
drivers/gpu/drm/radeon/atombios_i2c.c | 2 -
drivers/gpu/drm/radeon/btc_dpm.c | 20 +-
drivers/gpu/drm/radeon/ci_dpm.c | 70 +-
drivers/gpu/drm/radeon/ci_smc.c | 1 +
drivers/gpu/drm/radeon/cik.c | 369 ++++-
drivers/gpu/drm/radeon/cik_sdma.c | 120 +-
drivers/gpu/drm/radeon/cikd.h | 11 +
drivers/gpu/drm/radeon/cypress_dpm.c | 15 -
drivers/gpu/drm/radeon/evergreen.c | 99 +-
drivers/gpu/drm/radeon/evergreen_cs.c | 5 +-
drivers/gpu/drm/radeon/evergreen_reg.h | 1 +
drivers/gpu/drm/radeon/evergreend.h | 4 +
drivers/gpu/drm/radeon/kv_dpm.c | 48 +-
drivers/gpu/drm/radeon/ni.c | 141 +-
drivers/gpu/drm/radeon/ni_dma.c | 77 +-
drivers/gpu/drm/radeon/ni_dpm.c | 21 +-
drivers/gpu/drm/radeon/nid.h | 1 +
drivers/gpu/drm/radeon/pptable.h | 4 +-
drivers/gpu/drm/radeon/r100.c | 38 +-
drivers/gpu/drm/radeon/r300.c | 7 +
drivers/gpu/drm/radeon/r300_cmdbuf.c | 8 +-
drivers/gpu/drm/radeon/r420.c | 7 +
drivers/gpu/drm/radeon/r520.c | 5 +
drivers/gpu/drm/radeon/r600.c | 166 +-
drivers/gpu/drm/radeon/r600_cp.c | 4 +-
drivers/gpu/drm/radeon/r600_cs.c | 7 +-
drivers/gpu/drm/radeon/r600_dma.c | 19 +-
drivers/gpu/drm/radeon/r600_dpm.c | 20 +-
drivers/gpu/drm/radeon/r600_dpm.h | 2 -
drivers/gpu/drm/radeon/r600_hdmi.c | 2 +-
drivers/gpu/drm/radeon/r600d.h | 8 +
drivers/gpu/drm/radeon/radeon.h | 19 +-
drivers/gpu/drm/radeon/radeon_asic.c | 85 +-
drivers/gpu/drm/radeon/radeon_asic.h | 64 +-
drivers/gpu/drm/radeon/radeon_atombios.c | 46 +-
drivers/gpu/drm/radeon/radeon_combios.c | 16 -
drivers/gpu/drm/radeon/radeon_connectors.c | 9 -
drivers/gpu/drm/radeon/radeon_cp.c | 6 +-
drivers/gpu/drm/radeon/radeon_cs.c | 12 +-
drivers/gpu/drm/radeon/radeon_device.c | 23 +-
drivers/gpu/drm/radeon/radeon_display.c | 46 +-
drivers/gpu/drm/radeon/radeon_drv.c | 13 +-
drivers/gpu/drm/radeon/radeon_drv.h | 2 +-
drivers/gpu/drm/radeon/radeon_fence.c | 8 +-
drivers/gpu/drm/radeon/radeon_gart.c | 9 +-
drivers/gpu/drm/radeon/radeon_gem.c | 2 +-
drivers/gpu/drm/radeon/radeon_i2c.c | 3 +
drivers/gpu/drm/radeon/radeon_irq.c | 10 +-
drivers/gpu/drm/radeon/radeon_irq_kms.c | 4 +-
drivers/gpu/drm/radeon/radeon_kms.c | 24 +-
drivers/gpu/drm/radeon/radeon_mem.c | 2 +-
drivers/gpu/drm/radeon/radeon_mode.h | 36 +
drivers/gpu/drm/radeon/radeon_object.c | 2 +-
drivers/gpu/drm/radeon/radeon_pm.c | 158 +-
drivers/gpu/drm/radeon/radeon_ring.c | 94 +-
drivers/gpu/drm/radeon/radeon_sa.c | 6 +-
drivers/gpu/drm/radeon/radeon_state.c | 18 +-
drivers/gpu/drm/radeon/radeon_trace.h | 21 +-
drivers/gpu/drm/radeon/radeon_ttm.c | 197 ++-
drivers/gpu/drm/radeon/radeon_uvd.c | 3 +
drivers/gpu/drm/radeon/rs400.c | 7 +
drivers/gpu/drm/radeon/rs600.c | 7 +
drivers/gpu/drm/radeon/rs690.c | 7 +
drivers/gpu/drm/radeon/rs780_dpm.c | 8 -
drivers/gpu/drm/radeon/rv515.c | 7 +
drivers/gpu/drm/radeon/rv6xx_dpm.c | 10 -
drivers/gpu/drm/radeon/rv770.c | 58 +-
drivers/gpu/drm/radeon/rv770_dpm.c | 35 +-
drivers/gpu/drm/radeon/rv770_dpm.h | 4 -
drivers/gpu/drm/radeon/rv770d.h | 7 +
drivers/gpu/drm/radeon/si.c | 163 +-
drivers/gpu/drm/radeon/si_dpm.c | 69 +-
drivers/gpu/drm/radeon/si_smc.c | 1 +
drivers/gpu/drm/radeon/sid.h | 9 +-
drivers/gpu/drm/radeon/sislands_smc.h | 2 -
drivers/gpu/drm/radeon/sumo_dpm.c | 21 +-
drivers/gpu/drm/radeon/sumo_smc.c | 1 -
drivers/gpu/drm/radeon/trinity_dpm.c | 21 +-
drivers/gpu/drm/radeon/trinity_smc.c | 3 -
drivers/gpu/drm/radeon/uvd_v2_2.c | 1 +
drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 3 +-
drivers/gpu/drm/rcar-du/rcar_du_drv.c | 28 +-
drivers/gpu/drm/rcar-du/rcar_du_drv.h | 14 +-
drivers/gpu/drm/rcar-du/rcar_du_kms.c | 4 +-
drivers/gpu/drm/rcar-du/rcar_du_lvdsenc.c | 28 +-
drivers/gpu/drm/rcar-du/rcar_du_plane.c | 21 +-
drivers/gpu/drm/savage/savage_bci.c | 10 +-
drivers/gpu/drm/savage/savage_state.c | 8 +-
drivers/gpu/drm/shmobile/shmob_drm_crtc.c | 18 +-
drivers/gpu/drm/shmobile/shmob_drm_drv.c | 4 +-
drivers/gpu/drm/sis/sis_drv.c | 2 +-
drivers/gpu/drm/sis/sis_mm.c | 2 +-
drivers/gpu/drm/tegra/Kconfig | 25 +-
drivers/gpu/drm/tegra/Makefile | 2 +
drivers/gpu/drm/tegra/bus.c | 1 -
drivers/gpu/drm/tegra/dc.c | 117 +-
drivers/gpu/drm/tegra/dc.h | 9 +
drivers/gpu/drm/tegra/drm.c | 21 +-
drivers/gpu/drm/tegra/drm.h | 15 +
drivers/gpu/drm/tegra/dsi.c | 971 +++++++++++
drivers/gpu/drm/tegra/dsi.h | 134 ++
drivers/gpu/drm/tegra/fb.c | 45 +-
drivers/gpu/drm/tegra/gem.c | 183 ++-
drivers/gpu/drm/tegra/gem.h | 9 +-
drivers/gpu/drm/tegra/gr3d.c | 22 +-
drivers/gpu/drm/tegra/hdmi.c | 78 +-
drivers/gpu/drm/tegra/mipi-phy.c | 138 ++
drivers/gpu/drm/tegra/mipi-phy.h | 65 +
drivers/gpu/drm/tegra/output.c | 51 +-
drivers/gpu/drm/tegra/rgb.c | 47 +-
drivers/gpu/drm/tilcdc/tilcdc_drv.c | 6 +-
drivers/gpu/drm/ttm/ttm_bo.c | 2 +-
drivers/gpu/drm/ttm/ttm_bo_util.c | 6 +-
drivers/gpu/drm/ttm/ttm_bo_vm.c | 32 +-
drivers/gpu/drm/ttm/ttm_lock.c | 8 -
drivers/gpu/drm/ttm/ttm_object.c | 90 +-
drivers/gpu/drm/ttm/ttm_tt.c | 27 +-
drivers/gpu/drm/udl/udl_fb.c | 12 +-
drivers/gpu/drm/via/via_dma.c | 12 +-
drivers/gpu/drm/via/via_dmablit.c | 20 +-
drivers/gpu/drm/via/via_drv.c | 2 +-
drivers/gpu/drm/via/via_drv.h | 2 +-
drivers/gpu/drm/via/via_irq.c | 10 +-
drivers/gpu/drm/via/via_video.c | 8 +-
drivers/gpu/drm/vmwgfx/Makefile | 2 +-
drivers/gpu/drm/vmwgfx/svga3d_reg.h | 718 ++++++++-
drivers/gpu/drm/vmwgfx/svga_reg.h | 10 +-
drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c | 182 ++-
drivers/gpu/drm/vmwgfx/vmwgfx_context.c | 531 ++++++
drivers/gpu/drm/vmwgfx/vmwgfx_dmabuf.c | 8 +-
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 211 ++-
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 213 ++-
drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 872 +++++++++-
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c | 9 +-
drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c | 107 +-
drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c | 160 +-
drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c | 15 +-
drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c | 39 +-
drivers/gpu/drm/vmwgfx/vmwgfx_irq.c | 2 +-
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 38 +-
drivers/gpu/drm/vmwgfx/vmwgfx_mob.c | 652 ++++++++
drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 195 ++-
drivers/gpu/drm/vmwgfx/vmwgfx_shader.c | 441 +++++
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 471 +++++-
drivers/gpu/host1x/Kconfig | 2 +-
drivers/gpu/host1x/Makefile | 4 +-
drivers/gpu/host1x/bus.c | 2 +
drivers/gpu/host1x/channel.c | 5 +
drivers/gpu/host1x/debug.c | 13 +-
drivers/gpu/host1x/dev.c | 28 +-
drivers/gpu/host1x/dev.h | 2 +
drivers/gpu/host1x/hw/host1x02.c | 4 +-
drivers/gpu/host1x/hw/host1x02_hardware.h | 142 ++
drivers/gpu/host1x/hw/host1x04.c | 42 +
drivers/gpu/host1x/hw/host1x04.h | 26 +
drivers/gpu/host1x/hw/host1x04_hardware.h | 142 ++
drivers/gpu/host1x/hw/hw_host1x02_uclass.h | 6 +
drivers/gpu/host1x/hw/hw_host1x04_channel.h | 121 ++
drivers/gpu/host1x/hw/hw_host1x04_sync.h | 243 +++
drivers/gpu/host1x/hw/hw_host1x04_uclass.h | 181 +++
drivers/gpu/host1x/hw/intr_hw.c | 1 -
drivers/gpu/host1x/job.c | 6 +
drivers/gpu/host1x/mipi.c | 275 ++++
drivers/gpu/host1x/syncpt.c | 9 +
drivers/i2c/busses/i2c-tegra.c | 13 +-
drivers/input/keyboard/tegra-kbc.c | 13 +-
drivers/pci/host/pci-tegra.c | 53 +-
drivers/spi/Kconfig | 3 +
drivers/spi/spi-tegra114.c | 66 +-
drivers/spi/spi-tegra20-sflash.c | 18 +-
drivers/spi/spi-tegra20-slink.c | 66 +-
drivers/staging/imx-drm/imx-drm-core.c | 3 +-
drivers/staging/nvec/nvec.c | 11 +-
drivers/staging/nvec/nvec.h | 5 +-
drivers/tty/serial/serial-tegra.c | 38 +-
drivers/usb/host/ehci-tegra.c | 14 +-
drivers/video/fbmem.c | 31 +-
drivers/video/omap2/dss/dispc.c | 1 -
include/drm/drmP.h | 81 +-
include/drm/drm_agpsupport.h | 33 +-
include/drm/drm_crtc.h | 30 +-
include/drm/drm_crtc_helper.h | 4 +-
include/drm/drm_dp_helper.h | 35 +-
include/drm/drm_mipi_dsi.h | 158 ++
include/drm/drm_os_linux.h | 37 -
include/drm/drm_panel.h | 82 +
include/drm/ttm/ttm_bo_driver.h | 9 +
include/drm/ttm/ttm_object.h | 18 +-
include/dt-bindings/clock/tegra114-car.h | 8 +-
include/dt-bindings/clock/tegra124-car.h | 341 ++++
include/dt-bindings/clock/tegra20-car.h | 2 +-
include/dt-bindings/clock/tegra30-car.h | 12 +-
include/linux/clk/tegra.h | 7 -
include/linux/dmaengine.h | 9 +
include/linux/fb.h | 4 +-
include/linux/host1x.h | 6 +
include/linux/tegra-powergate.h | 55 +-
include/sound/dmaengine_pcm.h | 10 +
include/uapi/drm/drm.h | 1 -
include/uapi/drm/i915_drm.h | 21 +-
include/uapi/drm/radeon_drm.h | 2 +
include/uapi/drm/vmwgfx_drm.h | 260 +++
sound/soc/soc-devres.c | 41 +
sound/soc/soc-generic-dmaengine-pcm.c | 56 +-
sound/soc/tegra/Kconfig | 2 +
sound/soc/tegra/tegra20_ac97.c | 11 -
sound/soc/tegra/tegra20_i2s.c | 20 +-
sound/soc/tegra/tegra30_ahub.c | 138 +-
sound/soc/tegra/tegra30_ahub.h | 11 +-
sound/soc/tegra/tegra30_i2s.c | 97 +-
sound/soc/tegra/tegra30_i2s.h | 3 +
sound/soc/tegra/tegra_pcm.c | 17 +-
sound/soc/tegra/tegra_pcm.h | 5 +
599 files changed, 42355 insertions(+), 15446 deletions(-)
create mode 100644 Documentation/devicetree/bindings/clock/nvidia,tegra124-car.txt
create mode 100644 Documentation/devicetree/bindings/mipi/dsi/mipi-dsi-bus.txt
create mode 100644 Documentation/devicetree/bindings/mipi/nvidia,tegra114-mipi.txt
create mode 100644 Documentation/devicetree/bindings/panel/auo,b101aw03.txt
create mode 100644 Documentation/devicetree/bindings/panel/chunghwa,claa101wa01a.txt
create mode 100644 Documentation/devicetree/bindings/panel/chunghwa,claa101wb03.txt
create mode 100644 Documentation/devicetree/bindings/panel/panasonic,vvx10f004b00.txt
create mode 100644 Documentation/devicetree/bindings/panel/samsung,ltn101nt05.txt
create mode 100644 Documentation/devicetree/bindings/panel/simple-panel.txt
create mode 100644 drivers/clk/tegra/clk-id.h
create mode 100644 drivers/clk/tegra/clk-tegra-audio.c
create mode 100644 drivers/clk/tegra/clk-tegra-fixed.c
create mode 100644 drivers/clk/tegra/clk-tegra-periph.c
create mode 100644 drivers/clk/tegra/clk-tegra-pmc.c
create mode 100644 drivers/clk/tegra/clk-tegra-super-gen4.c
create mode 100644 drivers/clk/tegra/clk-tegra124.c
create mode 100644 drivers/gpu/drm/bochs/Kconfig
create mode 100644 drivers/gpu/drm/bochs/Makefile
create mode 100644 drivers/gpu/drm/bochs/bochs.h
create mode 100644 drivers/gpu/drm/bochs/bochs_drv.c
create mode 100644 drivers/gpu/drm/bochs/bochs_fbdev.c
create mode 100644 drivers/gpu/drm/bochs/bochs_hw.c
create mode 100644 drivers/gpu/drm/bochs/bochs_kms.c
create mode 100644 drivers/gpu/drm/bochs/bochs_mm.c
create mode 100644 drivers/gpu/drm/drm_mipi_dsi.c
create mode 100644 drivers/gpu/drm/drm_panel.c
create mode 100644 drivers/gpu/drm/msm/hdmi/hdmi_phy_8x74.c
rename drivers/gpu/drm/msm/{ => mdp}/mdp4/mdp4.xml.h (94%)
rename drivers/gpu/drm/msm/{ => mdp}/mdp4/mdp4_crtc.c (96%)
rename drivers/gpu/drm/msm/{ => mdp}/mdp4/mdp4_dtv_encoder.c (98%)
create mode 100644 drivers/gpu/drm/msm/mdp/mdp4/mdp4_irq.c
rename drivers/gpu/drm/msm/{ => mdp}/mdp4/mdp4_kms.c (89%)
rename drivers/gpu/drm/msm/{ => mdp}/mdp4/mdp4_kms.h (79%)
rename drivers/gpu/drm/msm/{ => mdp}/mdp4/mdp4_plane.c (98%)
create mode 100644 drivers/gpu/drm/msm/mdp/mdp5/mdp5.xml.h
create mode 100644 drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c
create mode 100644 drivers/gpu/drm/msm/mdp/mdp5/mdp5_encoder.c
create mode 100644 drivers/gpu/drm/msm/mdp/mdp5/mdp5_irq.c
create mode 100644 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c
create mode 100644 drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.h
create mode 100644 drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
create mode 100644 drivers/gpu/drm/msm/mdp/mdp5/mdp5_smp.c
create mode 100644 drivers/gpu/drm/msm/mdp/mdp5/mdp5_smp.h
create mode 100644 drivers/gpu/drm/msm/mdp/mdp_common.xml.h
rename drivers/gpu/drm/msm/{mdp4/mdp4_format.c => mdp/mdp_format.c} (85%)
create mode 100644 drivers/gpu/drm/msm/mdp/mdp_kms.c
create mode 100644 drivers/gpu/drm/msm/mdp/mdp_kms.h
delete mode 100644 drivers/gpu/drm/msm/mdp4/mdp4_irq.c
create mode 100644 drivers/gpu/drm/msm/msm_iommu.c
create mode 100644 drivers/gpu/drm/msm/msm_kms.h
create mode 100644 drivers/gpu/drm/msm/msm_mmu.h
create mode 100644 drivers/gpu/drm/nouveau/core/engine/fifo/nv108.c
create mode 100644 drivers/gpu/drm/nouveau/core/engine/fifo/nve0.h
create mode 100644 drivers/gpu/drm/nouveau/core/engine/graph/ctxnv108.c
create mode 100644 drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnv108.fuc5
create mode 100644 drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnv108.fuc5.h
create mode 100644 drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnv108.fuc5
create mode 100644 drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnv108.fuc5.h
create mode 100644 drivers/gpu/drm/nouveau/core/engine/graph/nv108.c
create mode 100644 drivers/gpu/drm/nouveau/core/include/subdev/bios/ramcfg.h
create mode 100644 drivers/gpu/drm/nouveau/core/subdev/bar/priv.h
create mode 100644 drivers/gpu/drm/nouveau/core/subdev/bios/ramcfg.c
create mode 100644 drivers/gpu/drm/nouveau/core/subdev/devinit/nv04.h
create mode 100644 drivers/gpu/drm/nouveau/core/subdev/devinit/nv50.h
create mode 100644 drivers/gpu/drm/nouveau/core/subdev/devinit/nv84.c
create mode 100644 drivers/gpu/drm/nouveau/core/subdev/devinit/nv98.c
create mode 100644 drivers/gpu/drm/nouveau/core/subdev/devinit/nvaf.c
create mode 100644 drivers/gpu/drm/nouveau/core/subdev/instmem/priv.h
create mode 100644 drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/i2c_.fuc
create mode 100644 drivers/gpu/drm/panel/Kconfig
create mode 100644 drivers/gpu/drm/panel/Makefile
create mode 100644 drivers/gpu/drm/panel/panel-simple.c
create mode 100644 drivers/gpu/drm/tegra/dsi.c
create mode 100644 drivers/gpu/drm/tegra/dsi.h
create mode 100644 drivers/gpu/drm/tegra/mipi-phy.c
create mode 100644 drivers/gpu/drm/tegra/mipi-phy.h
create mode 100644 drivers/gpu/drm/vmwgfx/vmwgfx_mob.c
create mode 100644 drivers/gpu/drm/vmwgfx/vmwgfx_shader.c
create mode 100644 drivers/gpu/host1x/hw/host1x02_hardware.h
create mode 100644 drivers/gpu/host1x/hw/host1x04.c
create mode 100644 drivers/gpu/host1x/hw/host1x04.h
create mode 100644 drivers/gpu/host1x/hw/host1x04_hardware.h
create mode 100644 drivers/gpu/host1x/hw/hw_host1x04_channel.h
create mode 100644 drivers/gpu/host1x/hw/hw_host1x04_sync.h
create mode 100644 drivers/gpu/host1x/hw/hw_host1x04_uclass.h
create mode 100644 drivers/gpu/host1x/mipi.c
create mode 100644 include/drm/drm_mipi_dsi.h
create mode 100644 include/drm/drm_panel.h
create mode 100644 include/dt-bindings/clock/tegra124-car.h


2014-01-30 04:54:07

by Linus Torvalds

[permalink] [raw]
Subject: Re: [git pull] drm next tree

On Wed, Jan 29, 2014 at 6:49 PM, Dave Airlie <[email protected]> wrote:
>
> For some reason the request-pull and the merge into your tree look different,
> since some of the changes in this have already gone in via the arm-soc tree
> and dma stuff, all for tegra. Hopefully nobody rebased when they shouldn't.

Looks more like it's just a few cross-merges, which then ends up
meaning that there are multiple merge-bases and not just one common
ancestor commit.

In that case, a simple "git diff" can't do a great job, and the actual
merge diff will usually end up different.

Linus

2014-01-30 12:33:35

by Paul Bolle

[permalink] [raw]
Subject: Re: [git pull] drm next tree

Dave Airlie schreef op do 30-01-2014 om 02:49 [+0000]:
> Christian König (10):
> [...]
> drm/radeon: add GART debugfs access v3
> [...]

That one generates a bit of (warning) noise when building on 32 bits
x86:

In file included from include/asm-generic/bug.h:13:0,
from [...]/linux/arch/x86/include/asm/bug.h:38,
from include/linux/bug.h:4,
from include/drm/drm_mm.h:39,
from include/drm/drm_vma_manager.h:26,
from include/drm/ttm/ttm_bo_api.h:35,
from drivers/gpu/drm/radeon/radeon_ttm.c:32:
drivers/gpu/drm/radeon/radeon_ttm.c: In function 'radeon_ttm_gtt_read':
include/linux/kernel.h:712:17: warning: comparison of distinct pointer types lacks a cast [enabled by default]
(void) (&_min1 == &_min2); \
^
drivers/gpu/drm/radeon/radeon_ttm.c:938:22: note: in expansion of macro 'min'
ssize_t cur_size = min(size, PAGE_SIZE - off);
^

I suppose the last line should read
ssize_t cur_size = min(size, (size_t) PAGE_SIZE - off);

to silence this. But I haven't tested yet.


Paul Bolle

2014-01-30 15:55:15

by Jiri Kosina

[permalink] [raw]
Subject: Re: [git pull] drm next tree

On Thu, 30 Jan 2014, Dave Airlie wrote:

> git://people.freedesktop.org/~airlied/linux drm-next
[ ... snip ... ]
> Daniel Vetter (59):
[ ... snip ... ]
> drm/i915: dp aux irq support for g4x/vlv

This commit causes all kinds of havoc on my ThinkPad x200s. It results in

irq 16: nobody cared (try booting with the "irqpoll" option)
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.12.0-00854-g4aeebd7 #1
Hardware name: LENOVO 7470BN2/7470BN2, BIOS 6DET38WW (2.02 ) 12/19/2008
ffff8800795186c0 ffff88007c203e08 ffffffff81582503 ffff88007c203e38
ffffffff810a6a98 ffff88007c203e88 ffff880079518600 0000000000000000
0000000000000010 ffff88007c203e78 ffffffff810a6d43 00000010ffc4af9d
Call Trace:
<IRQ> [<ffffffff81582503>] dump_stack+0x7a/0x97
[<ffffffff810a6a98>] __report_bad_irq+0x38/0xf0
[<ffffffff810a6d43>] note_interrupt+0x1f3/0x240
[<ffffffff810a42d2>] handle_irq_event_percpu+0x142/0x220
[<ffffffff810a43f9>] handle_irq_event+0x49/0x70
[<ffffffff810a7561>] handle_fasteoi_irq+0x61/0x100
[<ffffffff81004a89>] handle_irq+0x59/0x150
[<ffffffff81052b6e>] ? _local_bh_enable+0xe/0x10
[<ffffffff81052bf1>] ? irq_enter+0x81/0x90
[<ffffffff8100403b>] do_IRQ+0x5b/0xe0
[<ffffffff81588aaf>] common_interrupt+0x6f/0x6f
<EOI> [<ffffffff81588b5c>] ? retint_restore_args+0xe/0xe
[<ffffffff8146c767>] ? poll_idle+0x47/0x90
[<ffffffff8146c740>] ? poll_idle+0x20/0x90
[<ffffffff810acd96>] ? ktime_get+0x56/0xd0
[<ffffffff8146c7f0>] cpuidle_enter_state+0x40/0xd0
[<ffffffff8146cc0a>] cpuidle_idle_call+0x10a/0x160
[<ffffffff8100b7b9>] arch_cpu_idle+0x9/0x30
[<ffffffff810a370b>] cpu_idle_loop+0x8b/0x270
[<ffffffff810a390e>] cpu_startup_entry+0x1e/0x20
[<ffffffff8157a0c3>] rest_init+0xd3/0xe0
[<ffffffff81579ff0>] ? csum_partial_copy_generic+0x170/0x170
[<ffffffff81ad905c>] start_kernel+0x3b3/0x461
[<ffffffff81ad8a96>] ? repair_env_string+0x58/0x58
[<ffffffff81ad84d1>] x86_64_start_reservations+0x1b/0x32
[<ffffffff81ad8622>] x86_64_start_kernel+0x13a/0x141
handlers:
[<ffffffffa00acbc0>] usb_hcd_irq [usbcore]
Disabling IRQ #16

and things go south afterwards (the machine hangs randomly, I/O is
horribly slow, etc etc).

This is the same machine that was the reason for

commit c12aba5aa0e60b7947bc8b6ea25ef55c4acf81a4
Author: Jiri Kosina <[email protected]>
Date: Tue Mar 19 09:56:57 2013 +0100

drm/i915: stop using GMBUS IRQs on Gen4 chips

back then in 3.9 timeframe, so it might be somehow related. It's, at the
end of the day, again IRQ 16 -- and see the changelog of c12aba5a why this
is rather mysterious (IRQ 16 is assigned to the card when it's not using
MSI, but it *is* in fact using MSI in all the cases).

--
Jiri Kosina
SUSE Labs

2014-02-07 10:08:31

by Jiri Kosina

[permalink] [raw]
Subject: Re: [git pull] drm next tree

On Thu, 30 Jan 2014, Jiri Kosina wrote:

> > git://people.freedesktop.org/~airlied/linux drm-next
> [ ... snip ... ]
> > Daniel Vetter (59):
> [ ... snip ... ]
> > drm/i915: dp aux irq support for g4x/vlv
>
> This commit causes all kinds of havoc on my ThinkPad x200s. It results in
[ ... snip ... ]

Not having received any response, I suggest the following for 3.14




From: Jiri Kosina <[email protected]>
Subject: [PATCH] Revert "drm/i915: dp aux irq support for g4x/vlv"

This reverts commit 4aeebd7443e36b0a40032e518a9338f48bd27efc.

Conflicts:

drivers/gpu/drm/i915/i915_reg.h

This commit causes all kinds of havoc on my ThinkPad x200s. It results in

irq 16: nobody cared (try booting with the "irqpoll" option)
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.12.0-00854-g4aeebd7 #1
Hardware name: LENOVO 7470BN2/7470BN2, BIOS 6DET38WW (2.02 ) 12/19/2008
ffff8800795186c0 ffff88007c203e08 ffffffff81582503 ffff88007c203e38
ffffffff810a6a98 ffff88007c203e88 ffff880079518600 0000000000000000
0000000000000010 ffff88007c203e78 ffffffff810a6d43 00000010ffc4af9d
Call Trace:
<IRQ> [<ffffffff81582503>] dump_stack+0x7a/0x97
[<ffffffff810a6a98>] __report_bad_irq+0x38/0xf0
[<ffffffff810a6d43>] note_interrupt+0x1f3/0x240
[<ffffffff810a42d2>] handle_irq_event_percpu+0x142/0x220
[<ffffffff810a43f9>] handle_irq_event+0x49/0x70
[<ffffffff810a7561>] handle_fasteoi_irq+0x61/0x100
[<ffffffff81004a89>] handle_irq+0x59/0x150
[<ffffffff81052b6e>] ? _local_bh_enable+0xe/0x10
[<ffffffff81052bf1>] ? irq_enter+0x81/0x90
[<ffffffff8100403b>] do_IRQ+0x5b/0xe0
[<ffffffff81588aaf>] common_interrupt+0x6f/0x6f
<EOI> [<ffffffff81588b5c>] ? retint_restore_args+0xe/0xe
[<ffffffff8146c767>] ? poll_idle+0x47/0x90
[<ffffffff8146c740>] ? poll_idle+0x20/0x90
[<ffffffff810acd96>] ? ktime_get+0x56/0xd0
[<ffffffff8146c7f0>] cpuidle_enter_state+0x40/0xd0
[<ffffffff8146cc0a>] cpuidle_idle_call+0x10a/0x160
[<ffffffff8100b7b9>] arch_cpu_idle+0x9/0x30
[<ffffffff810a370b>] cpu_idle_loop+0x8b/0x270
[<ffffffff810a390e>] cpu_startup_entry+0x1e/0x20
[<ffffffff8157a0c3>] rest_init+0xd3/0xe0
[<ffffffff81579ff0>] ? csum_partial_copy_generic+0x170/0x170
[<ffffffff81ad905c>] start_kernel+0x3b3/0x461
[<ffffffff81ad8a96>] ? repair_env_string+0x58/0x58
[<ffffffff81ad84d1>] x86_64_start_reservations+0x1b/0x32
[<ffffffff81ad8622>] x86_64_start_kernel+0x13a/0x141
handlers:
[<ffffffffa00acbc0>] usb_hcd_irq [usbcore]
Disabling IRQ #16

and things go south afterwards (the machine hangs randomly, I/O is
horribly slow, etc).

Signed-off-by: Jiri Kosina <[email protected]>

---
drivers/gpu/drm/i915/i915_irq.c | 7 -------
drivers/gpu/drm/i915/i915_reg.h | 5 -----
drivers/gpu/drm/i915/intel_dp.c | 2 +-
3 files changed, 1 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 17d8fcb..b7fae5b 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -1480,9 +1480,6 @@ static irqreturn_t valleyview_irq_handler(int irq, void *arg)

intel_hpd_irq_handler(dev, hotplug_trigger, hpd_status_i915);

- if (hotplug_status & DP_AUX_CHANNEL_MASK_INT_STATUS_G4X)
- dp_aux_irq_handler(dev);
-
I915_WRITE(PORT_HOTPLUG_STAT, hotplug_status);
I915_READ(PORT_HOTPLUG_STAT);
}
@@ -3670,10 +3667,6 @@ static irqreturn_t i965_irq_handler(int irq, void *arg)
intel_hpd_irq_handler(dev, hotplug_trigger,
IS_G4X(dev) ? hpd_status_g4x : hpd_status_i915);

- if (IS_G4X(dev) &&
- (hotplug_status & DP_AUX_CHANNEL_MASK_INT_STATUS_G4X))
- dp_aux_irq_handler(dev);
-
I915_WRITE(PORT_HOTPLUG_STAT, hotplug_status);
I915_READ(PORT_HOTPLUG_STAT);
}
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index a48b7ca..94b4cd5 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -2139,11 +2139,6 @@
#define CRT_HOTPLUG_MONITOR_COLOR (3 << 8)
#define CRT_HOTPLUG_MONITOR_MONO (2 << 8)
#define CRT_HOTPLUG_MONITOR_NONE (0 << 8)
-#define DP_AUX_CHANNEL_D_INT_STATUS_G4X (1 << 6)
-#define DP_AUX_CHANNEL_C_INT_STATUS_G4X (1 << 5)
-#define DP_AUX_CHANNEL_B_INT_STATUS_G4X (1 << 4)
-#define DP_AUX_CHANNEL_MASK_INT_STATUS_G4X (7 << 4)
-
/* SDVO is different across gen3/4 */
#define SDVOC_HOTPLUG_INT_STATUS_G4X (1 << 3)
#define SDVOB_HOTPLUG_INT_STATUS_G4X (1 << 2)
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 5ede4e8..464c047 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -404,7 +404,7 @@ intel_dp_aux_ch(struct intel_dp *intel_dp,
int i, ret, recv_bytes;
uint32_t status;
int try, precharge, clock = 0;
- bool has_aux_irq = true;
+ bool has_aux_irq = INTEL_INFO(dev)->gen >= 5 && !IS_VALLEYVIEW(dev);
uint32_t timeout;

/* dp aux is extremely sensitive to irq latency, hence request the
--
Jiri Kosina
SUSE Labs

2014-02-07 11:07:11

by Jani Nikula

[permalink] [raw]
Subject: Re: [git pull] drm next tree

On Fri, 07 Feb 2014, Jiri Kosina <[email protected]> wrote:
> On Thu, 30 Jan 2014, Jiri Kosina wrote:
>
>> > git://people.freedesktop.org/~airlied/linux drm-next
>> [ ... snip ... ]
>> > Daniel Vetter (59):
>> [ ... snip ... ]
>> > drm/i915: dp aux irq support for g4x/vlv
>>
>> This commit causes all kinds of havoc on my ThinkPad x200s. It results in
> [ ... snip ... ]
>
> Not having received any response, I suggest the following for 3.14

Daniel, it's your commit this bisects to...

If we end up having to revert, I'd just touch the has_aux_irq part, for
example:

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 5ede4e8..464c047 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -404,7 +404,7 @@ intel_dp_aux_ch(struct intel_dp *intel_dp,
int i, ret, recv_bytes;
uint32_t status;
int try, precharge, clock = 0;
- bool has_aux_irq = true;
+ bool has_aux_irq = INTEL_INFO(dev)->gen >= 5;
uint32_t timeout;

/* dp aux is extremely sensitive to irq latency, hence request the

or even INTEL_INFO(dev)->gen != 4.

But up to Daniel.


BR,
Jani.




>
>
>
>
> From: Jiri Kosina <[email protected]>
> Subject: [PATCH] Revert "drm/i915: dp aux irq support for g4x/vlv"
>
> This reverts commit 4aeebd7443e36b0a40032e518a9338f48bd27efc.
>
> Conflicts:
>
> drivers/gpu/drm/i915/i915_reg.h
>
> This commit causes all kinds of havoc on my ThinkPad x200s. It results in
>
> irq 16: nobody cared (try booting with the "irqpoll" option)
> CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.12.0-00854-g4aeebd7 #1
> Hardware name: LENOVO 7470BN2/7470BN2, BIOS 6DET38WW (2.02 ) 12/19/2008
> ffff8800795186c0 ffff88007c203e08 ffffffff81582503 ffff88007c203e38
> ffffffff810a6a98 ffff88007c203e88 ffff880079518600 0000000000000000
> 0000000000000010 ffff88007c203e78 ffffffff810a6d43 00000010ffc4af9d
> Call Trace:
> <IRQ> [<ffffffff81582503>] dump_stack+0x7a/0x97
> [<ffffffff810a6a98>] __report_bad_irq+0x38/0xf0
> [<ffffffff810a6d43>] note_interrupt+0x1f3/0x240
> [<ffffffff810a42d2>] handle_irq_event_percpu+0x142/0x220
> [<ffffffff810a43f9>] handle_irq_event+0x49/0x70
> [<ffffffff810a7561>] handle_fasteoi_irq+0x61/0x100
> [<ffffffff81004a89>] handle_irq+0x59/0x150
> [<ffffffff81052b6e>] ? _local_bh_enable+0xe/0x10
> [<ffffffff81052bf1>] ? irq_enter+0x81/0x90
> [<ffffffff8100403b>] do_IRQ+0x5b/0xe0
> [<ffffffff81588aaf>] common_interrupt+0x6f/0x6f
> <EOI> [<ffffffff81588b5c>] ? retint_restore_args+0xe/0xe
> [<ffffffff8146c767>] ? poll_idle+0x47/0x90
> [<ffffffff8146c740>] ? poll_idle+0x20/0x90
> [<ffffffff810acd96>] ? ktime_get+0x56/0xd0
> [<ffffffff8146c7f0>] cpuidle_enter_state+0x40/0xd0
> [<ffffffff8146cc0a>] cpuidle_idle_call+0x10a/0x160
> [<ffffffff8100b7b9>] arch_cpu_idle+0x9/0x30
> [<ffffffff810a370b>] cpu_idle_loop+0x8b/0x270
> [<ffffffff810a390e>] cpu_startup_entry+0x1e/0x20
> [<ffffffff8157a0c3>] rest_init+0xd3/0xe0
> [<ffffffff81579ff0>] ? csum_partial_copy_generic+0x170/0x170
> [<ffffffff81ad905c>] start_kernel+0x3b3/0x461
> [<ffffffff81ad8a96>] ? repair_env_string+0x58/0x58
> [<ffffffff81ad84d1>] x86_64_start_reservations+0x1b/0x32
> [<ffffffff81ad8622>] x86_64_start_kernel+0x13a/0x141
> handlers:
> [<ffffffffa00acbc0>] usb_hcd_irq [usbcore]
> Disabling IRQ #16
>
> and things go south afterwards (the machine hangs randomly, I/O is
> horribly slow, etc).
>
> Signed-off-by: Jiri Kosina <[email protected]>
>
> ---
> drivers/gpu/drm/i915/i915_irq.c | 7 -------
> drivers/gpu/drm/i915/i915_reg.h | 5 -----
> drivers/gpu/drm/i915/intel_dp.c | 2 +-
> 3 files changed, 1 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index 17d8fcb..b7fae5b 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -1480,9 +1480,6 @@ static irqreturn_t valleyview_irq_handler(int irq, void *arg)
>
> intel_hpd_irq_handler(dev, hotplug_trigger, hpd_status_i915);
>
> - if (hotplug_status & DP_AUX_CHANNEL_MASK_INT_STATUS_G4X)
> - dp_aux_irq_handler(dev);
> -
> I915_WRITE(PORT_HOTPLUG_STAT, hotplug_status);
> I915_READ(PORT_HOTPLUG_STAT);
> }
> @@ -3670,10 +3667,6 @@ static irqreturn_t i965_irq_handler(int irq, void *arg)
> intel_hpd_irq_handler(dev, hotplug_trigger,
> IS_G4X(dev) ? hpd_status_g4x : hpd_status_i915);
>
> - if (IS_G4X(dev) &&
> - (hotplug_status & DP_AUX_CHANNEL_MASK_INT_STATUS_G4X))
> - dp_aux_irq_handler(dev);
> -
> I915_WRITE(PORT_HOTPLUG_STAT, hotplug_status);
> I915_READ(PORT_HOTPLUG_STAT);
> }
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index a48b7ca..94b4cd5 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -2139,11 +2139,6 @@
> #define CRT_HOTPLUG_MONITOR_COLOR (3 << 8)
> #define CRT_HOTPLUG_MONITOR_MONO (2 << 8)
> #define CRT_HOTPLUG_MONITOR_NONE (0 << 8)
> -#define DP_AUX_CHANNEL_D_INT_STATUS_G4X (1 << 6)
> -#define DP_AUX_CHANNEL_C_INT_STATUS_G4X (1 << 5)
> -#define DP_AUX_CHANNEL_B_INT_STATUS_G4X (1 << 4)
> -#define DP_AUX_CHANNEL_MASK_INT_STATUS_G4X (7 << 4)
> -
> /* SDVO is different across gen3/4 */
> #define SDVOC_HOTPLUG_INT_STATUS_G4X (1 << 3)
> #define SDVOB_HOTPLUG_INT_STATUS_G4X (1 << 2)
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 5ede4e8..464c047 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -404,7 +404,7 @@ intel_dp_aux_ch(struct intel_dp *intel_dp,
> int i, ret, recv_bytes;
> uint32_t status;
> int try, precharge, clock = 0;
> - bool has_aux_irq = true;
> + bool has_aux_irq = INTEL_INFO(dev)->gen >= 5 && !IS_VALLEYVIEW(dev);
> uint32_t timeout;
>
> /* dp aux is extremely sensitive to irq latency, hence request the
> --
> Jiri Kosina
> SUSE Labs
> _______________________________________________
> dri-devel mailing list
> [email protected]
> http://lists.freedesktop.org/mailman/listinfo/dri-devel

--
Jani Nikula, Intel Open Source Technology Center

2014-02-07 13:40:54

by Jiri Kosina

[permalink] [raw]
Subject: Re: [git pull] drm next tree

On Fri, 7 Feb 2014, Jani Nikula wrote:

> >> > git://people.freedesktop.org/~airlied/linux drm-next
> >> [ ... snip ... ]
> >> > Daniel Vetter (59):
> >> [ ... snip ... ]
> >> > drm/i915: dp aux irq support for g4x/vlv
> >>
> >> This commit causes all kinds of havoc on my ThinkPad x200s. It results in
> > [ ... snip ... ]
> >
> > Not having received any response, I suggest the following for 3.14
>
> Daniel, it's your commit this bisects to...
>
> If we end up having to revert, I'd just touch the has_aux_irq part, for
> example:
>
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 5ede4e8..464c047 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -404,7 +404,7 @@ intel_dp_aux_ch(struct intel_dp *intel_dp,
> int i, ret, recv_bytes;
> uint32_t status;
> int try, precharge, clock = 0;
> - bool has_aux_irq = true;
> + bool has_aux_irq = INTEL_INFO(dev)->gen >= 5;
> uint32_t timeout;
>
> /* dp aux is extremely sensitive to irq latency, hence request the

That, obviously, works for my system as well. Feel free to add

Reported-and-tested-by: Jiri Kosina <[email protected]>

if you are going with this instead of the revert.

--
Jiri Kosina
SUSE Labs

2014-02-07 14:06:01

by Daniel Vetter

[permalink] [raw]
Subject: Re: [git pull] drm next tree

On Fri, Feb 7, 2014 at 2:40 PM, Jiri Kosina <[email protected]> wrote:
> On Fri, 7 Feb 2014, Jani Nikula wrote:
>
>> >> > git://people.freedesktop.org/~airlied/linux drm-next
>> >> [ ... snip ... ]
>> >> > Daniel Vetter (59):
>> >> [ ... snip ... ]
>> >> > drm/i915: dp aux irq support for g4x/vlv
>> >>
>> >> This commit causes all kinds of havoc on my ThinkPad x200s. It results in
>> > [ ... snip ... ]
>> >
>> > Not having received any response, I suggest the following for 3.14
>>
>> Daniel, it's your commit this bisects to...
>>
>> If we end up having to revert, I'd just touch the has_aux_irq part, for
>> example:
>>
>> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
>> index 5ede4e8..464c047 100644
>> --- a/drivers/gpu/drm/i915/intel_dp.c
>> +++ b/drivers/gpu/drm/i915/intel_dp.c
>> @@ -404,7 +404,7 @@ intel_dp_aux_ch(struct intel_dp *intel_dp,
>> int i, ret, recv_bytes;
>> uint32_t status;
>> int try, precharge, clock = 0;
>> - bool has_aux_irq = true;
>> + bool has_aux_irq = INTEL_INFO(dev)->gen >= 5;
>> uint32_t timeout;
>>
>> /* dp aux is extremely sensitive to irq latency, hence request the
>
> That, obviously, works for my system as well. Feel free to add
>
> Reported-and-tested-by: Jiri Kosina <[email protected]>
>
> if you are going with this instead of the revert.

Sorry for missing your report here. Before we disable this again for
gen4 I want to make sure that it's the same irq misrouting issue which
was already the cause for the gmbus irq mess. Can you please boot with
pci=nomsi (so that i915 uses irq16)?

If that's confirmed then I think we should add the same comment we've
added in intel_i2c.c to this code so that no one dares to wake this
dragon again. I'll do that when I commit the fix.

Thanks, Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch

2014-02-07 14:15:27

by Jiri Kosina

[permalink] [raw]
Subject: Re: [git pull] drm next tree

On Fri, 7 Feb 2014, Daniel Vetter wrote:

> Sorry for missing your report here. Before we disable this again for
> gen4 I want to make sure that it's the same irq misrouting issue which
> was already the cause for the gmbus irq mess. Can you please boot with
> pci=nomsi (so that i915 uses irq16)?
>
> If that's confirmed then I think we should add the same comment we've
> added in intel_i2c.c to this code so that no one dares to wake this
> dragon again. I'll do that when I commit the fix.

Confirmed, with MSI disabled, i915 is using IRQ 16 and everything is
working well.

--
Jiri Kosina
SUSE Labs

2014-02-20 21:03:00

by Paul Bolle

[permalink] [raw]
Subject: [PATCH] drm/radeon: silence GCC warning on 32 bit

Building radeon_ttm.o on 32 bit x86 triggers a warning:
In file included from include/asm-generic/bug.h:13:0,
from [...]/arch/x86/include/asm/bug.h:38,
from include/linux/bug.h:4,
from include/drm/drm_mm.h:39,
from include/drm/drm_vma_manager.h:26,
from include/drm/ttm/ttm_bo_api.h:35,
from drivers/gpu/drm/radeon/radeon_ttm.c:32:
drivers/gpu/drm/radeon/radeon_ttm.c: In function 'radeon_ttm_gtt_read':
include/linux/kernel.h:712:17: warning: comparison of distinct pointer types lacks a cast [enabled by default]
(void) (&_min1 == &_min2); \
^
drivers/gpu/drm/radeon/radeon_ttm.c:938:22: note: in expansion of macro 'min'
ssize_t cur_size = min(size, PAGE_SIZE - off);
^

Silence this warning by casting "PAGE_SIZE - off" to size_t. Since
"PAGE_SIZE - off" is between 0 and PAGE_SIZE, and PAGE_SIZE is at most
21 bits wide while size_t is at least 32 bits wide, this should be safe.

Signed-off-by: Paul Bolle <[email protected]>
---
Compile tested only (on 32 and 64 bit x86).

drivers/gpu/drm/radeon/radeon_ttm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c
index 77f5b0c..5c87979 100644
--- a/drivers/gpu/drm/radeon/radeon_ttm.c
+++ b/drivers/gpu/drm/radeon/radeon_ttm.c
@@ -935,7 +935,7 @@ static ssize_t radeon_ttm_gtt_read(struct file *f, char __user *buf,
while (size) {
loff_t p = *pos / PAGE_SIZE;
unsigned off = *pos & ~PAGE_MASK;
- ssize_t cur_size = min(size, PAGE_SIZE - off);
+ ssize_t cur_size = min(size, (size_t)(PAGE_SIZE - off));
struct page *page;
void *ptr;

--
1.8.5.3

2014-02-20 21:07:14

by Ilia Mirkin

[permalink] [raw]
Subject: Re: [PATCH] drm/radeon: silence GCC warning on 32 bit

On Thu, Feb 20, 2014 at 4:02 PM, Paul Bolle <[email protected]> wrote:
> Building radeon_ttm.o on 32 bit x86 triggers a warning:
> In file included from include/asm-generic/bug.h:13:0,
> from [...]/arch/x86/include/asm/bug.h:38,
> from include/linux/bug.h:4,
> from include/drm/drm_mm.h:39,
> from include/drm/drm_vma_manager.h:26,
> from include/drm/ttm/ttm_bo_api.h:35,
> from drivers/gpu/drm/radeon/radeon_ttm.c:32:
> drivers/gpu/drm/radeon/radeon_ttm.c: In function 'radeon_ttm_gtt_read':
> include/linux/kernel.h:712:17: warning: comparison of distinct pointer types lacks a cast [enabled by default]
> (void) (&_min1 == &_min2); \
> ^
> drivers/gpu/drm/radeon/radeon_ttm.c:938:22: note: in expansion of macro 'min'
> ssize_t cur_size = min(size, PAGE_SIZE - off);
> ^
>
> Silence this warning by casting "PAGE_SIZE - off" to size_t. Since
> "PAGE_SIZE - off" is between 0 and PAGE_SIZE, and PAGE_SIZE is at most
> 21 bits wide while size_t is at least 32 bits wide, this should be safe.
>
> Signed-off-by: Paul Bolle <[email protected]>
> ---
> Compile tested only (on 32 and 64 bit x86).
>
> drivers/gpu/drm/radeon/radeon_ttm.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c
> index 77f5b0c..5c87979 100644
> --- a/drivers/gpu/drm/radeon/radeon_ttm.c
> +++ b/drivers/gpu/drm/radeon/radeon_ttm.c
> @@ -935,7 +935,7 @@ static ssize_t radeon_ttm_gtt_read(struct file *f, char __user *buf,
> while (size) {
> loff_t p = *pos / PAGE_SIZE;
> unsigned off = *pos & ~PAGE_MASK;
> - ssize_t cur_size = min(size, PAGE_SIZE - off);
> + ssize_t cur_size = min(size, (size_t)(PAGE_SIZE - off));

Isn't the usual way of dealing with these to do something like

ssize_t cur_size = min_t(ssize_t, size, PAGE_SIZE - off)

> struct page *page;
> void *ptr;
>
> --
> 1.8.5.3
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

2014-02-20 21:24:56

by Paul Bolle

[permalink] [raw]
Subject: Re: [PATCH] drm/radeon: silence GCC warning on 32 bit

On Thu, 2014-02-20 at 16:07 -0500, Ilia Mirkin wrote:
> On Thu, Feb 20, 2014 at 4:02 PM, Paul Bolle <[email protected]> wrote:
> > @@ -935,7 +935,7 @@ static ssize_t radeon_ttm_gtt_read(struct file *f, char __user *buf,
> > while (size) {
> > loff_t p = *pos / PAGE_SIZE;
> > unsigned off = *pos & ~PAGE_MASK;
> > - ssize_t cur_size = min(size, PAGE_SIZE - off);
> > + ssize_t cur_size = min(size, (size_t)(PAGE_SIZE - off));
>
> Isn't the usual way of dealing with these to do something like
>
> ssize_t cur_size = min_t(ssize_t, size, PAGE_SIZE - off)

I wouldn't know. I did
$ git grep -n "(size_t)(PAGE_SIZE"
arch/powerpc/mm/dma-noncoherent.c:357: size_t seg_size = min((size_t)(PAGE_SIZE - offset), size);
arch/tile/kernel/pci-dma.c:176: size_t bytes = min(size, (size_t)(PAGE_SIZE - offset));
arch/tile/kernel/pci-dma.c:192: size_t bytes = min(size, (size_t)(PAGE_SIZE - offset));
drivers/net/wireless/ti/wlcore/main.c:806: len = min(maxlen, (size_t)(PAGE_SIZE - wl->fwlog_size));
drivers/scsi/libfc/fc_libfc.c:143: (size_t)(PAGE_SIZE - (off & ~PAGE_MASK)));
drivers/target/tcm_fc/tfc_io.c:160: tlen = min(tlen, (size_t)(PAGE_SIZE -
drivers/target/tcm_fc/tfc_io.c:311: tlen = min(tlen, (size_t)(PAGE_SIZE -

and concluded my solution was acceptable. Is your alternative considered
to be better?


Paul Bolle

2014-02-21 08:20:55

by Thierry Reding

[permalink] [raw]
Subject: Re: [PATCH] drm/radeon: silence GCC warning on 32 bit

On Thu, Feb 20, 2014 at 10:24:53PM +0100, Paul Bolle wrote:
> On Thu, 2014-02-20 at 16:07 -0500, Ilia Mirkin wrote:
> > On Thu, Feb 20, 2014 at 4:02 PM, Paul Bolle <[email protected]> wrote:
> > > @@ -935,7 +935,7 @@ static ssize_t radeon_ttm_gtt_read(struct file *f, char __user *buf,
> > > while (size) {
> > > loff_t p = *pos / PAGE_SIZE;
> > > unsigned off = *pos & ~PAGE_MASK;
> > > - ssize_t cur_size = min(size, PAGE_SIZE - off);
> > > + ssize_t cur_size = min(size, (size_t)(PAGE_SIZE - off));
> >
> > Isn't the usual way of dealing with these to do something like
> >
> > ssize_t cur_size = min_t(ssize_t, size, PAGE_SIZE - off)
>
> I wouldn't know. I did
> $ git grep -n "(size_t)(PAGE_SIZE"
> arch/powerpc/mm/dma-noncoherent.c:357: size_t seg_size = min((size_t)(PAGE_SIZE - offset), size);
> arch/tile/kernel/pci-dma.c:176: size_t bytes = min(size, (size_t)(PAGE_SIZE - offset));
> arch/tile/kernel/pci-dma.c:192: size_t bytes = min(size, (size_t)(PAGE_SIZE - offset));
> drivers/net/wireless/ti/wlcore/main.c:806: len = min(maxlen, (size_t)(PAGE_SIZE - wl->fwlog_size));
> drivers/scsi/libfc/fc_libfc.c:143: (size_t)(PAGE_SIZE - (off & ~PAGE_MASK)));
> drivers/target/tcm_fc/tfc_io.c:160: tlen = min(tlen, (size_t)(PAGE_SIZE -
> drivers/target/tcm_fc/tfc_io.c:311: tlen = min(tlen, (size_t)(PAGE_SIZE -
>
> and concluded my solution was acceptable. Is your alternative considered
> to be better?

Yes, min_t() is specifically meant for this type of situation. On a side
note, I think cur_size should be size_t rather than ssize_t.

Thierry


Attachments:
(No filename) (1.68 kB)
(No filename) (836.00 B)
Download all attachments