Hi Linus,
This is the main drm pull request for 4.8, I'm down with a cold at the moment so hopefully this isn't in too bad a state, I finished pulling stuff last week mostly (nouveau fixes just went in today), so only this message should be influenced by illness. Apologies to anyone who's major feature I missed :-)
Dave.
Core: Lockless GEM BO freeing Non-blocking atomic work Documentation changes (rst/sphinx) Prep for new fencing changes Simple display helpers Master/auth changes Register/unregister rework Loads of trivial patches/fixes.
New stuff: ARM Mali display driver (not the 3D chip) sii902x RGB->HDMI bridge
Panel: Support for new panels Improved backlight support
Bridge: Convert ADV7511 to bridge driver ADV7533 support TC358767 (DSI/DPI to eDP) encoder chip support
i915: BXT support enabled by default GVT-g infrastructure GuC command submission and fixes BXT workarounds SKL/BKL workarounds Demidlayering device registration Thundering herd fixes Missing pci ids Atomic updates
amdgpu/radeon: ATPX improvements for better dGPU power control on PX systems New power features for CZ/BR/ST Pipelined BO moves and evictions in TTM GPU scheduler improvements GPU reset improvements Overclocking on dGPUs with amdgpu Polaris powermanagement enabled
nouveau: GK20A/GM20B volt and clock improvements. Initial support for GP100/GP104 GPUs, GP104 will not yet support acceleration due to NVIDIA having not released firmware for them as of yet.
exynos: Exynos5433 SoC with IOMMU support.
vc4: Shader validation for branching imx-drm: Atomic mode setting conversion Reworked DMFC FIFO allocation External bridge support
analogix-dp: RK3399 eDP support Lots of fixes.
rockchip: Lots of small fixes.
msm: DT bindings cleanups Shrinker and madvise support ASoC HDMI codec support
tegra: Host1x driver cleanups SOR reworking for DP support Runtime PM support
omapdrm: PLL enhancements Header refactoring Gamma table support
arcgpu: Simulator support
virtio-gpu: Atomic modesetting fixes.
rcar-du: Misc fixes.
mediatek: MT8173 HDMI support
sti: ASOC HDMI codec support Minor fixes
fsl-dcu: Suspend/resume support Bridge support amdkfd: Minor fixes.
etnaviv: Enable GPU clock gating
hisilicon: Vblank and other fixes
The following changes since commit 523d939ef98fd712632d93a5a2b588e477a7565e:
Linux 4.7 (2016-07-24 12:23:50 -0700)
are available in the git repository at:
git://people.freedesktop.org/~airlied/linux tags/drm-for-v4.8
for you to fetch changes up to 753e7c8cbd8c503b962294303c7b5e9ea8513443:
Merge branch 'linux-4.8' of git://github.com/skeggsb/linux into drm-next (2016-08-02 11:16:02 +1000)
---------------------------------------------------------------- Alex Deucher (59): drm/amdgpu: load different smc firmware on some CI variants drm/radeon: load different smc firmware on some SI variants drm/radeon: load different smc firmware on some CI variants drm/amdgpu/gfx7: expand cp jt size to handle GDS as well drm/radeon/gfx7: expand cp jt size to handle GDS as well drm/amdgpu/gfx8: add state setup for CZ/ST GFX power gating drm/amdgpu/gfx8: rename some pg functions drm/amdgpu: add new GFX powergating types drm/amdgpu/gfx8: add powergating support for CZ/ST drm/amdgpu/gfx8: clean up polaris11 PG enable drm/amdgpu: disable power control on hybrid laptops drm/amdgpu: clean up atpx power control handling drm/amdgpu: add a delay after ATPX dGPU power off drm/amdgpu/atpx: add a query for ATPX dGPU power control drm/amdgpu: use PCI_D3hot for PX systems without dGPU power control drm/amdgpu/atpx: drop forcing of dGPU power control drm/radeon: disable power control on hybrid laptops drm/radeon: clean up atpx power control handling drm/radeon: add a delay after ATPX dGPU power off drm/radeon/atpx: add a query for ATPX dGPU power control drm/radeon: use PCI_D3hot for PX systems without dGPU power control drm/radeon/atpx: drop forcing of dGPU power control drm/amdgpu/atpx: track whether if this is a hybrid graphics platform drm/amdgpu/atpx: hybrid platforms use d3cold drm/amdgpu: drop explicit pci D3/D0 setting for ATPX power control drm/radeon/atpx: track whether if this is a hybrid graphics platform drm/radeon/atpx: hybrid platforms use d3cold drm/radeon: drop explicit pci D3/D0 setting for ATPX power control drm/amdgpu: work around lack of upstream ACPI support for D3cold drm/radeon: work around lack of upstream ACPI support for D3cold drm/amdgpu: properly clean up runtime pm drm/amdgpu/gfx8: fix CP jump table size drm/amdgpu/gfx7: fix CP jump table size drm/radeon/cik: fix CP jump table size drm/amdgpu: disable compute pipeline sync workaround when using fixed fw drm/amdgpu/gmc: make some functions static drm/amdgpu: drop wait_for_mc_idle asic callback drm/amdgpu: move get_gpu_clock_counter into the gfx struct drm/amdgpu: move select_se_sh into the gfx struct drm/amdgpu/gfx7: switch to using the existing rlc callbacks drm/amdgpu/gfx7: make gfx_v7_0_rlc_stop static drm/amdgpu/dce11: update async flip update time drm/amdgpu/powerplay/cz: add missing call to powergate VCE drm/amdgpu: add IP helpers for wait_for_idle and is_idle drm/amdgpu: add missing breaks drm/amdgpu: skip invalid ip blocks in ip helpers drm/amdgpu/gmc8: remove duplicate wait_for_idle functions drm/amdgpu/gmc7: remove duplicate wait_for_idle functions drm/amdgpu: remove more of the ring backup code drm/amdgpu/powerplay: endian fixes for ppatomctrl.c drm/amdgpu: support backlight control for UNIPHY3 drm/radeon: support backlight control for UNIPHY3 drm/amdgpu: disable GFX PG on CZ/BR/ST drm/radeon: fix firmware info version checks drm/amdgpu: fix firmware info version checks drm/amdgpu: init atpx at switcheroo register time (v2) drm/radeon: init atpx at switcheroo register time v2 drm/radeon: drop confusing message about backlight control drm/amdgpu/powerplay: partial revert of endian fixes
Alex Xie (3): drm/amdgpu: Change some variable names to make code easier understood drm/amdgpu: Add comment to describe the purpose of one difficult if statement drm/amdgpu: Initialize the variables in a straight-forward way
Alexandre Courbot (21): drm/nouveau/tegra: fetch gpu_speedo_id drm/nouveau/volt/gk20a: make unused public functions static drm/nouveau/volt/gk20a: constify and name v_scale drm/nouveau/volt/gk20a: rename constructor drm/nouveau/volt/gm20b: add support for vmin parameter drm/nouveau/clk/gk20a: properly protect macro argument drm/nouveau/clk/gk20a: setup slide once during init drm/nouveau/clk/gk20a: reorganize MNP calculation a bit drm/nouveau/clk/gk20a: use nvkm_ functions in slide() drm/nouveau/clk/gk20a: add and use MNP programming functions drm/nouveau/clk/gk20a: parameterize PLL settings drm/nouveau/clk/gk20a: factorize n_lo computation code drm/nouveau/clk/gk20a: improve MNP programming drm/nouveau/clk/gk20a: rename constructor drm/nouveau/clk/gm20b: add glitchless and DFS support drm/nouveau/secboot: fix kerneldoc for secure boot structures drm/nouveau/gr/gf100: handle secure boot errors drm/nouveau/secboot/gm200: make firmware loading re-callable drm/nouveau/secboot: lazy-load firmware and be more resilient drm/nouveau/ttm: remove special handling of coherent objects drm/nouveau/bus: remove cpu_coherent flag
Alexandre Demers (2): drm/amd/powerplay: fix trivial typo and tidy comment drm/amd/powerplay: fix typos in comment in polaris' hwmgr
Alexey Brodkin (2): ARCv2: [vdk] Enable ARC PGU on HS38 VDK ARC: [nsimosci] Enable ARC PGU on nSIM OSCI virtual platforms
Alexey Khoroshilov (1): drm_aux-dev: fix error handling in drm_dp_aux_dev_init()
Ander Conselvan de Oliveira (14): drm/i915: Set crtc_state->lane_count for HDMI drm/i915: Unduplicate CHV signal level code drm/i915: Unduplicate chv_data_lane_soft_reset() drm/i915: Unduplicate CHV phy-releated pre pll enabling code drm/i915: Unduplicate CHV pre-encoder enabling phy logic drm/i915: Unduplicate CHV encoders' post pll disable code drm/i915: Unduplicate VLV signal level code drm/i915: Unduplicate VLV phy pre pll enabling code drm/i915: Unduplicate pre encoder enabling phy code drm/i915: Move VLV HDMI lane reset work around logic to intel_dpio_phy.c drm/i915: Remove intel_clock_t typedef drm/i915: Remove intel_range_t and intel_p2_t typedefs drm/i915: Remove intel_limit_t typedef drm/i915: Fix NULL pointer deference when out of PLLs in IVB
Andrey Gusakov (1): drm/bridge: tc358767: Add DPI to eDP bridge driver
Ankitprasad Sharma (2): drm/i915: Use insert_page for pwrite_fast drm/i915: Support for pread/pwrite from/to non shmem backed objects
Archit Taneja (42): drm/i2c: adv7511: Convert to drm_bridge drm/i2c: adv7511: Move to bridge folder drm/bridge: adv7511: Fix mutex deadlock when interrupts are disabled drm/bridge: adv7533: Initial support for ADV7533 drm/bridge: adv7533: Create a MIPI DSI device drm/bridge: adv7533: Use internal timing generator drm/bridge: adv7533: Change number of DSI lanes dynamically dt-bindings: drm/bridge: Update bindings for ADV7533 drm/msm: Use correct type for physical addresses drm/msm: Print the correct virtual addresses in map/unmap funcs drm/msm/mdp5: Don't get source of MDP core clock drm/msm/mdp4: Clean up some MDP4 clocks dt-bindings: msm/mdp: Fix up clock related bindings drm/msm/dsi: Modify port parsing drm/msm/dsi: Use generic PHY bindings drm/msm/dsi: Use a standard DT binding for data lanes dt-bindings: msm/dsi: Use standard data lanes binding dt-bindings: msm/dsi: Modify port and PHY bindings dt-bindings: msm/dsi: Add assigned clocks bindings dt-bindings: msm/dsi: Some binding doc cleanups drm/msm: Drop the id_table in platform_driver drm/msm: Remove unused fields drm/msm: Get irq number within kms driver itself drm/msm/mdp5: Add MDSS top level driver drm/msm/mdp5: Create a separate MDP5 device drm/msm/mdp5: Prepare new kms_init funcs drm/msm/mdp5: Use the new hierarchy and drop old irq management drm/msm/mdp5: Remove old kms init/destroy funcs drm/msm/mdp5: Use updated MDP5 register names drm/msm/mdp5: Update the register offsets of MDP5 sub-blocks drm/msm: Call pm_runtime_enable/disable for newly created devices drm/msm/mdp5: Add missing mdp5_enable/disable calls drm/msm: Create separate funcs for adding display/gpu components drm/msm: Add display components by parsing MDP ports drm/msm: Add components for MDP5 drm/msm: Drop the gpu binding drm/msm/mdp5: Update compatible strings for MDSS/MDP5 drm/msm/dsi: Don't get DSI index from DT dt-bindings: msm/mdp4: Create a separate binding doc for MDP4 dt-bindings: msm/mdp5: Add MDP5 display bindings dt-bindings: msm/mdp: Provide details on MDP interface ports drm: rcar-du: Remove i2c slave encoder interface for hdmi encoder
Arindam Nath (2): drm/amd/amdgpu: make sure VCE is disabled by default drm/amd/powerplay: make sure VCE is disabled by default
Arnaud Pouliquen (1): drm: sti: Add ASoC generic hdmi codec support.
Arnd Bergmann (3): drm: rockchip: select DRM_GEM_CMA_HELPER drm/mediatek: Remove IOMMU_DMA select amdgpu: use NULL instead of 0 for pointer
Ben Skeggs (71): drm/nouveau/top: take nvkm_device as argument to public functions drm/nouveau/top: add function to lookup interrupt mask for a given device drm/nouveau/mc: allow construction of subclassed device drm/nouveau/mc: take nvkm_device as argument to public functions drm/nouveau/mc: expose device enable/disable separately, as well as reset drm/nouveau/mc: s/intr_mask/intr_stat/ drm/nouveau/mc: support for temporarily masking interrupts from a specific device drm/nouveau/mc/gt215: support for masking interrupts drm/nouveau/mc/gf100-: support for masking interrupts drm/nouveau/mc/gk104-: add pmu reset mask drm/nouveau/secboot: use nvkm_mc_intr_mask/unmask() drm/nouveau/secboot: use nvkm_mc_enable/disable() drm/nouveau/ltc/gm107-: decode interrupt status to human-readable strings drm/nouveau/disp/nv50-: fix lookup of udisp table under certain circumstances drm/nouveau/fifo/gk104-: translate engidx into human-readable name in debug output drm/nouveau/bios: guard against out-of-bounds accesses to image drm/nouveau/bios: pointers beyond end of first image need special handling drm/nouveau/disp/g94: implement workaround for dvi issue on fx380 drm/nouveau: prevent oops if no mmu subdev present drm/nouveau/fb/gf100-: allow selection of an alternate big page size drm/nouveau/core: increase maximum ce instances to 6 drm/nouveau/core: increase maximum nvenc instances to 3 drm/nouveau/core: recognise GP100 chipset drm/nouveau/top/gp100: initial support drm/nouveau/mc/gp100: initial support drm/nouveau/pci/gp100: initial support drm/nouveau/tmr/gp100: initial support drm/nouveau/bios/gp100: initial support drm/nouveau/bios/dp: initial support for 4.2 drm/nouveau/bios/pll: initial support for BIT 'C' version 2 drm/nouveau/bios/rammap: 32-bit bios pointers drm/nouveau/devinit/gp100: initial support drm/nouveau/imem/gp100: initial implementation drm/nouveau/fb/gp100: initial support drm/nouveau/mmu/gp100: initial support drm/nouveau/bar/gp100: initial support drm/nouveau/bus/gp100: initial support drm/nouveau/fuse/gp100: initial support drm/nouveau/gpio/gp100: initial support drm/nouveau/i2c/gm204: initial support drm/nouveau/ibus/gp100: initial support drm/nouveau/ltc/gp100: initial support drm/nouveau/secboot/gm200: initial support drm/nouveau/dma/gp100: initial implementation drm/nouveau/disp/gp100: initial support drm/nouveau/fifo/gp100: initial support drm/nouveau/ce/gp100: initial support drm/nouveau/gr/gp100: initial support drm/nouveau/sw/gp100: initial support drm/nouveau/core: recognise GP104 chipset drm/nouveau/top/gp104: initial support drm/nouveau/mc/gp104: initial support drm/nouveau/pci/gp104: initial support drm/nouveau/tmr/gp104: initial support drm/nouveau/bios/gp104: initial support drm/nouveau/devinit/gp104: initial support drm/nouveau/imem/gp104: initial support drm/nouveau/fb/gp104: initial support drm/nouveau/mmu/gp104: initial support drm/nouveau/bar/gp104: initial support drm/nouveau/bus/gp104: initial support drm/nouveau/fuse/gp104: initial support drm/nouveau/gpio/gp104: initial support drm/nouveau/i2c/gp104: initial support drm/nouveau/ibus/gp104: initial support drm/nouveau/ltc/gp104: initial support drm/nouveau/dma/gp104: initial support drm/nouveau/disp/gp104: initial support drm/nouveau/fifo/gp104: initial support drm/nouveau/ce/gp104: initial support drm/nouveau: check for supported chipset before booting fbdev off the hw
Benjamin Gaignard (5): drm: sti: remove useless call to dev->struct_mutex drm: Add callbacks for late registering drm: sti: use late_register and early_unregister callbacks drm: sti: rework init sequence drm: sti: fix clocking issues in crtc
Benjamin Herrenschmidt (1): drm: Fix broken use of _PAGE_NO_CACHE on powerpc
Bhaktipriya Shridhar (4): gpu: host1x: hw: intr_hw: Remove create_workqueue drm/amdkfd: Remove create_workqueue() drm/qxl: Remove deprecated create_singlethread_workqueue drm/radeon: Remove deprecated create_singlethread_workqueue
Bich Hemon (1): drm/sti: adjust delay for AWG
Bob Paauwe (1): drm/i915: Set legacy properties when using legacy gamma set IOCTL. (v2)
Boris Brezillon (23): drm/atomic: Handle funcs->best_encoder == NULL case drm/atomic: Fix remaining places where !funcs->best_encoder is valid drm: mediatek: Rely on the default ->best_encoder() behavior drm: msm: Rely on the default ->best_encoder() behavior where appropriate drm: sti: Rely on the default ->best_encoder() behavior drm: arc: Rely on the default ->best_encoder() behavior drm: atmel-hlcdc: Rely on the default ->best_encoder() behavior drm: exynos: Rely on the default ->best_encoder() behavior drm: fsl-dcu: Rely on the default ->best_encoder() behavior drm: rcar-du: Rely on the default ->best_encoder() behavior drm: rockchip: Rely on the default ->best_encoder() behavior drm: sun4i: Rely on the default ->best_encoder() behavior drm: tegra: Rely on the default ->best_encoder() behavior drm: vc4: Rely on the default ->best_encoder() behavior drm: virtgpu: Rely on the default ->best_encoder() behavior drm: omap: Rely on the default ->best_encoder() behavior drm/bridge: anx78xx: Rely on the default ->best_encoder() behavior drm/bridge: ptn3460: Rely on the default ->best_encoder() behavior drm/bridge: ps8622: Rely on the default ->best_encoder() behavior drm/bridge: dw-hdmi: Use drm_atomic_helper_best_encoder() drm: i915: Rely on the default ->best_encoder() behavior where appropriate drm/bridge: Add sii902x driver drm/bridge: Add sii902x DT bindings doc
Brian Norris (1): drm/rockchip: fix compile warnings for 64-bit
Brian Starkey (1): drm/arm: mali-dp: Set crtc.port to the port instead of the endpoint
Chris Wilson (254): drm/i915: Protect gen7 irq_seqno_barrier with uncore lock drm/i915: Propagate error from drm_gem_object_init() drm/i915/fbdev: Call intel_unpin_fb_obj() on release drm/i915/overlay: Replace i915_gem_obj_ggtt_offset() with the known flip_addr io-mapping: Specify mapping size for io_mapping_map_wc() drm/i915: Introduce i915_vm_to_ggtt() drm/i915: Move ioremap_wc tracking onto VMA drm/i915: Use i915_vma_pin_iomap on the ringbuffer object drm/i915: Mark the current context as lost on suspend drm/i915: L3 cache remapping is part of context switching drm/i915: Consolidate L3 remapping LRI drm/i915: Remove early l3-remap drm/i915: Rearrange switch_context to load the aliasing ppgtt on first use drm/i915: Unify intel_ring_begin() drm/i915: Remove the identical implementations of request space reservation drm/i915: Manually unwind after a failed request allocation drm/i915: Preallocate enough space for the average request drm/i915: Update execlists context descriptor format commentary drm/i915: Assign every HW context a unique ID drm/i915: Replace the pinned context address with its unique ID drm/i915: Refactor execlists default context pinning drm/i915: Move the magical deferred context allocation into the request drm/i915: Move releasing of the GEM request from free to retire/cancel drm/i915: Track the previous pinned context inside the request drm/i915: Unify GPU resets upon shutdown drm/i915: Bump reserved size for legacy gen8 semaphore emission drm/i915: Trim the flush for the legacy request emission drm/i915: Trim the flush for the execlists request emission drm/i915: Apply strongly ordered RCS breadcrumb to gen8/legacy drm/i915: Fix ordering of sanitize ppgtt and sanitize execlists drm/i915: Fix gen8 semaphores id for legacy mode drm/i915: Fix serialisation of pipecontrol write vs semaphore signal drm/i915: Reload PD tables after semaphore wait on gen8 drm/i915: Enable semaphores for legacy submission on gen8 drm/i915: Report command parser version 0 if disabled drm/i915: Unexport i915_ppgtt_init() drm/i915/execlists: Refactor common engine setup drm/i915: Store a i915 backpointer from engine, and use it x86: Silence 32bit compiler warning in intel_graphics_stolen() drm/i915: Use drm_i915_private as the native pointer for intel_uncore.c drm/i915: Convert intel_overlay.c to use native drm_i915_private pointers drm/i915: Move get-reset-stats ioctl from intel_uncore.c to i915_gem_context.c drm/i915: Complete pending resets before get-reset-stats ioctl drm/i915: Stop retiring requests from busy/wait ioctls drm/i915: Stop automatically retiring requests after a GPU hang drm/i915: Add distinct stubs for PM hibernation phases drm/i915: Update domain tracking for GEM objects on hibernation drm/i915: Lazily migrate the objects after hibernation drm/i915: Skip clearing the GGTT on full-ppgtt systems drm/i915/userptr: Convert to drm_i915_private drm/i915/opregion: Convert to using native drm_i915_private drm/i915/opregion: Rename init/fini functions to register/unregister drm/i915: Rename struct intel_context drm/i915: Apply lockdep annotations to i915_gem_context.c drm/i915: Rename and inline i915_gem_context_get() drm/i915: Name the inner most per-engine intel_context struct drm/i915: Move pinning of dev_priv->kernel_context into its creator drm/i915: Show i915_gem_context owner in debugfs drm/i915: Put the kernel_context in drm_i915_private next to its friends drm/i915: Merge legacy+execlists context structs drm/i915: Rearrange i915_gem_context drm/i915/debugfs: Show context objects in i915_gem_objects drm/i915: Only ignore eDP ports that are connected drm/i915: Silence "unexpected child device config size" for VBT on 845g drm: Only create a cmdline mode if no probed modes match drm: Store the plane's index drm/i915: Add support for mapping an object page by page drm/i915: Introduce i915_gem_object_get_dma_address() drm: Export drm_dev_init() for subclassing drm: Add a callback from connector registering drm: Make drm_connector_register() safe against multiple calls drm: Automatically unregister the connector during cleanup drm/i915: Serialise presentation with imported dmabufs drm: Pass the drm_dp_aux->hw_mutex to i2c for its locking drm: Minimally initialise drm_dp_aux drm: Automatically register/unregister all connectors drm: Protect drm_connector_register_all() under DRIVER_MODESET drm/i915: Move intel_connector->unregister to connector->early_unregister drm/i915: Move backlight unregistration to connector unregistration drm/i915: Avoid use-after-free of intel_encoder in intel_dp_connector_destrpy drm/i915: Extract checking for backing struct pages to a helper drm/i915: pwrite/pread do not require obj->base.filp, just pages drm: Prevent NULL deref in drm_name_info() drm/i915: use ORIGIN_CPU for frontbuffer invalidation on WC mmaps drm/i915/fbdev: Perform async fbdev initialisation much later drm/i915/fbdev: Limit the global async-domain synchronization drm/i915/fbdev: Flush mode configuration before lastclose drm/arc: Remove redundant calls to drm_connector_register_all() drm/atmel-hlcdc: Remove redundant calls to drm_connector_register_all() drm/hisilicon: Remove redundant calls to drm_connector_register_all() drm/mediatek: Remove redundant calls to drm_connector_register_all() drm/msm: Remove redundant calls to drm_connector_register_all() drm/rcar-du: Remove redundant calls to drm_connector_register_all() drm/i915/gvt: Mark i915.enable_gvt as false if loading fails drm/atmel-hlcdc: Remove redundant call to drm_connector_unregister_all() drm/vc4: Remove open-coded drm_connector_register_all() drm/sun4i: Remove open-coded drm_connector_register_all() drm/fb-helper: Reduce READ_ONCE(master) to lockless_dereference drm/i915: Move panel's backlight setup next to panel init drm/i915: Move registration actions to connector->late_register drm/i915: Move backlight registration to connector registration drm/i915: Move connector registration to driver registration drm/i915: Register debugfs interface last drm/i915: Demidlayer driver loading drm/i915: Demidlayer driver unloading drm/i915: Remove redundant drm_connector_register_all() drm/i915: Start exploiting drm_device subclassing drm/i915: Merge i915_dma.c into i915_drv.c drm/i915: Remove user controllable DRM_ERROR for i915_getparam() drm/i915: Remove user controllable DRM_ERROR for intel_get_pipe_from_crtc_id() drm/i915: Split out the PCI driver interface to i915_pci.c drm/i915: Move module init/exit to i915_pci.c drm/i915: Skip idling an idle engine drm/i915: Move legacy kernel context pinning to intel_ringbuffer.c drm/i915: Treat kernel context as initialised drm/i915: Mark all default contexts as uninitialised after context loss drm/i915: No need to wait for idle on L3 remap drm/i915: Split idling from forcing context switch drm/i915: Only switch to default context when evicting from GGTT drm/i915: Remove request->reset_counter Revert "drm/i915: Use atomic commits for legacy page_flips" drm/i915: Use a hybrid scheme for fast register waits drm/i915: Convert sandybridge_pcode_*() to use intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Perform Sandybridge BSD tail write under the forcewake drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() drm/i915/ringbuffer: Move all generic engine->dispatch_batchbuffer together drm/i915/ringbuffer: Move all default irq vfuncs init to a separate func drm/i915/shrinker: Flush active on objects before counting drm/i915: Delay queuing hangcheck to wait-request drm/i915: Remove the dedicated hangcheck workqueue drm/i915: Make queueing the hangcheck work inline drm/i915: Separate GPU hang waitqueue from advance drm/i915: Slaughter the thundering i915_wait_request herd drm/i915: Spin after waking up for an interrupt drm/i915: Use HWS for seqno tracking everywhere drm/i915: Stop mapping the scratch page into CPU space drm/i915: Allocate scratch page from stolen drm/i915: Refactor scratch object allocation for gen2 w/a buffer drm/i915: Add a delay between interrupt and inspecting the final seqno (ilk) drm/i915: Check the CPU cached value in HWS of seqno after waking the waiter drm/i915: Only apply one barrier after a breadcrumb interrupt is posted drm/i915: Stop setting wraparound seqno on initialisation drm/i915: Convert trace-irq to the breadcrumb waiter drm/i915: Embed signaling node into the GEM request drm/i915: Move the get/put irq locking into the caller drm/i915: Simplify enabling user-interrupts with L3-remapping drm/i915: Remove debug noise on detecting fault-injection of missed interrupts drm/i915: Fix random indent in i915_drm_resume() drm/915: Fix long lines and random indent in gen6_set_rps_thresholds() drm/i915: Fix indentation in i915_gem_framebuffer_info() drm/i915: Fix inconsistent indenting in i915_error_state_to_str() drm/i915: Match bitmask size to types in intel_fb_initial_config() drm/i915: Fix inconsistent indenting in vbt_panel_init() drm/i915: Fix buffer overflow in dsi_calc_mnp() drm/i915: Fix inconsistent indentation in intel_pre_enable_lvds() drm/i915: Remove check for !crtc_state in intel_plane_atomic_calc_changes() drm/i915: Only start retire worker when idle drm/i915: Do not keep postponing the idle-work drm/i915: Remove redundant queue_delayed_work() from throttle ioctl drm/i915: Restore waitboost credit to the synchronous waiter drm/i915: Add background commentary to "waitboosting" drm/i915: Flush the RPS bottom-half when the GPU idles drm/i915: Remove stop-rings debugfs interface drm/i915: Record the ringbuffer associated with the request drm/i915: Allow userspace to request no-error-capture upon GPU hangs drm/i915: Hold irq uncore.lock when initialising fw_domains drm/i915: Limit i915_ring_test_irq debugfs to actual rings drm/i915: Mass convert dev->dev_private to to_i915(dev) drm/i915: Replace lockless_dereference(bool) with READ_ONCE() drm/i915: Amalgamate gen6_mm_switch() and vgpu_mm_switch() drm/i915: Clean up GPU hang message drm/i915: Skip capturing an error state if we already have one drm/i915: Split out runtime configuration of device info to its own file drm/i915: Remove use of dev_priv->dev backpointer in __i915_printk() drm/i915: Remove impossible tests for dev->dev_private drm/i915: Convert dev_priv->dev backpointers to dev_priv->drm drm/i915: Always double check for a missed interrupt for new bottom halves drm/i915: Wake up the bottom-half if we steal their interrupt drm/i915: Group the irq breadcrumb variables into the same cacheline drm/i915: Fill unused GGTT with scratch pages for VT-d drm/i915: Select X86_MSR for igt drm/i915: Select DRM_VGEM for igt drm/vgem: Fix mmaping drm/vgem: Enable dmabuf interface for export drm: Unexport drm_connector_register_all() drm: Do a full device unregister when unplugging drm/udl: Unplugging a device now unregisters it drm: Restore double clflush on the last partial cacheline drm/vgem: Use PAGE_KERNEL in place of x86-specific PAGE_KERNEL_IO drm: Don't overwrite user ioctl arg unless requested drm/i915/breadcrumbs: Queue hangcheck before sleeping drm/vgem: Attach sw fences to exported vGEM dma-buf (ioctl) dma-buf: Release module reference on creation failure drm/vgem: Remember to offset relative timeouts to mod_timer() by jiffies drm/sun4i: Remove redundant call to drm_connector_unregister_all() drm: Unexport drm_connector_unregister_all()
Christian König (69): dma-buf/fence: make fence context 64 bit v2 dma-buf/fence: add signal_on_any to the fence array v2 drm/amdgpu: fix coding style in the scheduler v2 drm/amdgpu: remove begin_job/finish_job drm/amdgpu: remove duplicated timeout callback drm/amdgpu: fix coding style in amdgpu_job_free drm/amdgpu: remove use_shed hack in job cleanup drm/amdgpu: properly abstract scheduler timeout handling drm/amdgpu: move locking into the functions who need it drm/amdgpu: fix and cleanup job destruction drm/amdgpu: document amdgpu_sync_get_fence drm/amdgpu: generalize the scheduler fence drm/amdgpu: remove amdgpu_sync_wait drm/amdgpu: add optional ring to amdgpu_sync_is_idle drm/amdgpu: prefer VMIDs idle on the current ring drm/amdgpu: reuse VMIDs assigned to a VM only if there is also a free one drm/amdgpu: use a fence array for VMID management drm/amdgpu: remove now unnecessary checks drm/amdgpu: stop trying to schedule() with a spin held drm/ttm: cleanup ttm_tt_(unbind|destroy) drm/ttm: remove NULL checks when calling ttm_tt_destroy drm/ttm: remove dummy bo_move implementations drm/ttm: add wait for idle in all drivers bo_move functions drm/ttm: wait for BO idle in ttm_bo_move_memcpy drm/ttm: drop wait for idle in ttm_bo_move_buffer drm/ttm: drop waiting for idle in ttm_bo_evict. drm/ttm: wait for BO idle after the move in ttm_bo_swapout drm/amdgpu: sync to buffer moves before VM updates drm/amdgpu: remove pre move wait drm/ttm: remove no_gpu_wait param from ttm_bo_move_accel_cleanup drm/ttm: remove TTM_BO_PRIV_FLAG_MOVING drm/ttm: simplify ttm_bo_wait drm/ttm: add the infrastructure for pipelined evictions drm/amdgpu: save the PD addr before scheduling the job drm/amdgpu: pipeline evictions as well drm/amdgpu: add eviction counter drm/amdgpu: validate VM PTs only on eviction drm/amdgpu: implement HDP functions for UVD v2 drm/amdgpu: don't update page tables for VM emulation drm/ttm: wait for eviction in ttm_bo_force_list_clean drm/ttm: fix stupid parameter inversion in the pipeline code drm/amdgpu: stop disabling irqs when it isn't neccessary drm/amdgpu: fix user fence handling once more drm/amdgpu: shorten amdgpu_job_free_resources drm/amdgpu: earlier free SA resources drm/amdgpu: remove fence parameter from amd_sched_job_init drm/amdgpu: sanitize fence numbers drm/amdgpu: cleanup VCE coding style drm/amdgpu: allow multiple sessions in the same VCE IB drm/amdgpu: cleanup UVD coding style drm/amdgpu: cleanup hw reference handling in the IB tests drm/amdgpu: remove usec timeout loop from IB tests drm/amdgpu: check flush fence context instead of same ring v2 drm/amdgpu: always signal all fences drm/amdgpu: trace need_flush in grab_vm as well drm/amdgpu: return -ENOSPC when running out of UVD handles drm/amdgpu: implement UVD VM mode for Stoney v2 drm/amdgpu: increment driver minor drm/amdgpu: fix indentation in struct amdgpu_ring drm/amdgpu: remove fence_lock drm/amdgpu: add begin/end_use ring callbacks drm/amdgpu: use begin/end_use for UVD power/clock gating drm/amdgpu: use begin/end_use for VCE power/clock gating drm/amdgpu: move UVD IB test into common code v2 drm/amdgpu: add a fence timeout for the IB tests v2 drm/ttm: partial revert "cleanup ttm_tt_(unbind|destroy)" v3 drm/amdgpu: enable UVD VM only on polaris drm/amdgpu: fix default UVD context size drm/amdgpu: enable UVD context buffer for older HW
Chunming Zhou (25): drm/amdgpu: add gpu reset to timeout handler drm/amdgpu: add return value for pci config reset drm/amdgpu: enable BUS master after pci reset drm/amdgpu: block scheduler when gpu reset drm/amdgpu: evict vram when gpu reset drm/amdgpu: add amdgpu_irq_gpu_reset_resume_helper drm/amdgpu: must update page table after gpu reset drm/amdgpu: save/restore bios scratch when gpu reset drm/amdgpu: must update page table after gpu reset drm/amdgpu: stop/resume fb access when gpu reset V3 drm/amdgpu: put old hw fence of job if gpu reset drm/amdgpu: remove evict vram drm/amd: add parent for sched fence drm/amd: add amd_sched_hw_job_reset drm/amdgpu: block ttm first before parking scheduler drm/amdgpu: force completion for gpu reset drm/amdgpu: add amd_sched_job_recovery drm/amdgpu: add a bool to specify if needing vm flush V2 drm/amdgpu: abstract amdgpu_vm_is_gpu_reset drm/amdgpu: recovery hw jobs when gpu reset V3 drm/amdgpu: ib test first after gpu reset drm/amdgpu: clean up ring_backup code, no need more drm/amd: reset hw count when reset job drm/amd: fix deadlock of job_list_lock V2 drm/amdgpu: increase timeout of IB test
Clint Taylor (1): drm/i915/skl: SKL CDCLK change on modeset tracking VCO
Colin Ian King (2): drm/vc4: clean up error exit path on failed dpi_connector allocation drm/vc4: remove redundant ret status check
Dan Carpenter (6): drm/i915/mocs: || vs | typo in get_mocs_settings() drm/mediatek/mtk_mipi_tx: checking the wrong variable qxl: check for kmap failures qxl: silence uninitialized variable warning drm/msm: return -EFAULT instead of bytes remaining drm/rockchip: fix a couple off by one bugs
Daniel Vetter (139): drm/i915: Bail out of pipe config compute loop on LPT drm/i915: Update DRIVER_DATE to 20160508 Revert "mfd: intel_soc_pmic_core: Terminate panel control GPIO lookup table correctly" Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued drm/i915: Simplify control flow in intel_atomic_check a bit. drm/i915/psr: Try to program link training times correctly drm/i915/psr: Make idle_frames sensible again drm/i915/psr: Order DP aux transactions correctly drm/i915/psr: Use ->get_aux_send_ctl functions drm/i915/psr: Implement PSR2 w/a for gen9 drm/i915: Update DRIVER_DATE to 20160522 drm/doc: Drop vblank_disable_allow wording drm/i915: Revert async unpin and nonblocking atomic commit drm/doc: Unify KMS Locking docs drm/hlcd: Use lockless gem BO free callback drm/hisilicon: Use lockless gem BO free callback drm/mediatek: Use lockless gem BO free callback drm/fb-helper: Remove dead code in setcolreg drm/cirrus: Drop redundnant gamma size check drm/msm: Nuke dummy gamma_set/get functions drm/qxl: Don't set a gamma table size drm/vgem: Use lockless gem BO free callback drm: Initialize a linear gamma table by default drm/vc4: Use drm_gem_object_unreference_unlocked drm/vc4: Use lockless gem BO free callback drm/armada: Use lockless gem BO free callback drm/ast: Use lockless gem BO free callback drm/atmel: Use lockless gem BO free callback drm/bochs: Use lockless gem BO free callback drm/cirrus: Use lockless gem BO free callback drm/fls-dcu: Use lockless gem BO free callback drm/mga200g: Use lockless gem BO free callback drm/nouveau: Use lockless gem BO free callback drm/qxl: Use lockless gem BO free callback drm/rcar-du: Use lockless gem BO free callback drm/rockchip: Use lockless gem BO free callback drm/shmob: Use lockless gem BO free callback drm/tilcdc: Use lockless gem BO free callback drm/virtio: Use lockless gem BO free callback drm/sti: Use lockless gem BO free callback drm/rockchip: Use cma gem vm ops drm/msm: Nuke dummy fb->dirty callback drm/omapdrm: Nuke dummy fb->dirty callback drm/sun4i: Use lockless gem BO free callback drm/arcpgu: Use lockless gem BO free callback drm/i915: Revert async unpin and nonblocking atomic commit Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued drm/atomic-helper: use for_each_*_in_state more drm/hdlcd: Clean up crtc hooks drm/i915: Use drm_atomic_get_existing_plane_state drm/msm: Use for_each_*_in_state drm/rcar-du: Use for_each_*_in_state drm/vc4: Use for_each_plane_in_state drm/omap: Use for_each_plane_in_state drm/exynos: Use for_each_crtc_in_state drm/doc: Appease sphinx drm/atomic: Add drm_atomic_crtc_state_for_each_plane_state drm: Consolidate connector arrays in drm_atomic_state drm: Consolidate plane arrays in drm_atomic_state drm: Consolidate crtc arrays in drm_atomic_state drm/atomic-docs: Spelling fixups drm/doc: Update kerneldoc for drm_crtc.h drm/atomic-helper: Fixup kerneldoc for drm_atomic_helper_legacy_gamma_set drm/doc: Improve kernel-doc for drm_fb_cma_helper.c drm/gpu.tmpl: Don't forget to rename the include directives, too drm/doc: Drop kerneldoc for static functions in drm_irq.c drm/doc: Switch to sphinx/rst fixed-width quoting drm/i915: Update DRIVER_DATE to 20160606 drm/atomic-helper: Annotate a bunch more RETURNS: sections drm: Replace fb_helper->atomic with mode_config->atomic_commit drm/arc: Nuke event_list drm/fsl-du: Implement some semblance of vblank event handling drm/hisilicon: Implement some semblance of vblank event handling drm/atomic: kerneldoc for drm_atomic_crtc_needs_modeset Revert "drm/i915/ilk: Don't disable SSC source if it's in use" drm/atomic-helper: Massage swap_state signature somewhat drm/arc: Actually bother with handling atomic events. drm/sun4i: Implement some semblance of vblank event handling drm/atomic: Add struct drm_crtc_commit to track async updates drm/atomic-helper: roll out commit synchronization drm/atomic-helper: nonblocking commit support drm/arc: Implement nonblocking commit correctly drm/hdlcd: Use helper support for nonblocking commits drm/rockchip: Disarm vop->is_enabled drm/rockchip: Fix crtc_state->event signalling drm/rockchip: convert to helper nonblocking atomic commit drm/rockchip: Nuke pending event handling in preclose drm/virtio: Don't reinvent a flipping wheel Merge tag 'sphinx-4.8' of git://git.lwn.net/linux into topic/drm-misc drm/atomic-helpers: Stall on the right commit drm/atomic-helpers: Clear up cleanup_done a bit drm: Nuke legacy maps debugfs files drm: Hide hw.lock cleanup in filp->release better drm: Link directly from drm_master to drm_device drm: Move master functions into drm_auth.c drm: Extract drm_master_open drm: Extract drm_master_relase Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued drm/i915: Signal drm events for atomic drm/i915: Roll out the helper nonblock tracking drm/i915: nonblocking commit drm/i915: Move fb_bits updating later in atomic_commit drm/i915: Use atomic commits for legacy page_flips drm/sti: Don't call drm_helper_disable_unused_functions drm/i915: Update DRIVER_DATE to 20160620 drm: Only do the hw.lock cleanup in master_relase for !MODESET drm: Move authmagic cleanup into drm_master_release drm: Protect authmagic with master_mutex drm: Mark authmagic ioctls as unlocked drm: Mark set/drop master ioctl as unlocked. drm/omapdrm: don't call drm_helper_disable_unused_functions drm/crtc-helper: disable_unused_functions really isn't for atomic drm/amdkfd: Clean up inline handling drm: Move master pointer from drm_minor to drm_device drm: Clean up drm_crtc.h drm: Use dev->name as fallback for dev->unique drm/vgem: Stop calling drm_drv_set_unique drm: Don't call drm_dev_set_unique from platform drivers drm: Nuke SET_UNIQUE ioctl drm: Lobotomize set_busid nonsense for !pci drivers drm: Refactor drop/set master code a bit drm: Extract drm_is_current_master drm: Clear up master tracking booleans drm: document drm_auth.c drm/vc4: Remove unused connector Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued drm/i915: Update DRIVER_DATE to 20160711 drm: Resurrect atomic rmfb code Revert "drm: Resurrect atomic rmfb code" Merge remote-tracking branch 'airlied/drm-next' into topic/drm-misc drm/doc: Add kerneldoc for @index drm/drm-kms.rst: Remove unused drm_fourcc.h include directive drm/doc: document all the properties in drm_mode_config drm: Extract&Document drm_irq.h drm/doc: Fix missing kerneldoc for drm_dp_helper.c drm/dp-mst: Remove tx_down_in_progress drm/dp-mst: Missing kernel doc drm/doc: Spinx leftovers drm: drm_connector->s/connector_id/index/ for consistency
Dave Airlie (46): Merge tag 'topic/drm-misc-2016-06-01' of git://anongit.freedesktop.org/drm-intel into drm-next Merge branch 'drm-intel-next' of git://anongit.freedesktop.org/drm-intel into drm-next Backmerge tag 'v4.7-rc2' into drm-next Merge tag 'topic/lockless-gem-bo-freeing-2016-06-01' of git://anongit.freedesktop.org/drm-intel into drm-next Merge tag 'topic/drm-misc-2016-06-07' of git://anongit.freedesktop.org/drm-intel into drm-next Merge tag 'drm-intel-next-2016-06-06' of git://anongit.freedesktop.org/drm-intel into drm-next Merge branch 'virtio-gpu-for-airlied' of git://git.kraxel.org/linux into drm-next Merge tag 'omapdrm-4.8' of git://git.kernel.org/.../tomba/linux into drm-next Merge branch 'topic-arcpgu-sim' of https://github.com/foss-for-synopsys-dwc-arc-processors/linux into drm-next Merge tag 'topic/drm-misc-2016-06-15' of git://anongit.freedesktop.org/drm-intel into drm-next Merge branch 'for-upstream/mali-dp' of git://linux-arm.org/linux-ld into drm-next Merge tag 'drm-sii902x' of github.com:bbrezillon/linux-at91 into drm-next Merge tag 'topic/drm-misc-2016-06-22-updated' of git://anongit.freedesktop.org/drm-intel into drm-next Merge tag 'drm-intel-next-2016-06-20' of git://anongit.freedesktop.org/drm-intel into drm-next Merge branch 'drm/next/du' of git://linuxtv.org/pinchartl/media into drm-next Merge tag 'mediatek-drm-2016-06-20' of git://git.pengutronix.de/git/pza/linux into drm-next Merge branch 'sti-drm-next-2016-06-30' of http://git.linaro.org/people/benjamin.gaignard/kernel into drm-next Back-merge tag 'v4.7-rc5' into drm-next Merge branch 'for-next' of http://git.agner.ch/git/linux-drm-fsl-dcu into drm-next Merge tag 'asoc-hdmi-codec-pdata' of git://git.kernel.org/.../broonie/sound into drm-next Merge tag 'drm-amdkfd-next-2016-07-03' of git://people.freedesktop.org/~gabbayo/linux into drm-next Merge branch 'drm-etnaviv-next' of git://git.pengutronix.de/git/lst/linux into drm-next Merge tag 'drm-hisilicon-next-2016-07-04' of github.com:xin3liang/linux into drm-next Merge branch 'drm-next-4.8' of git://people.freedesktop.org/~agd5f/linux into drm-next Merge branch 'linux-4.8' of git://github.com/skeggsb/linux into drm-next Merge tag 'topic/drm-misc-2016-07-14' of git://anongit.freedesktop.org/drm-intel into drm-next Merge tag 'drm-intel-next-2016-07-11' of git://anongit.freedesktop.org/drm-intel into drm-next Merge tag 'drm-vc4-next-2016-07-12' of https://github.com/anholt/linux into drm-next Merge branch 'exynos-drm-next' of git://git.kernel.org/.../daeinki/drm-exynos into drm-next Merge tag 'imx-drm-next-2016-07-14' of git://git.pengutronix.de/git/pza/linux into drm-next Merge branch 'upstream/analogix-dp-20160705' of git://github.com/yakir-Yang/linux into drm-next Merge tag 'drm/tegra/for-4.8-rc1' of git://anongit.freedesktop.org/tegra/linux into drm-next Merge tag 'drm/panel/for-4.8-rc1' of git://anongit.freedesktop.org/tegra/linux into drm-next Merge tag 'drm-vc4-next-2016-07-15' of https://github.com/anholt/linux into drm-next Merge branch 'msm-next' of git://people.freedesktop.org/~robclark/linux into drm-next Merge branch 'drm_bridge_for_4.8' of https://github.com/boddob/linux into drm-next Merge branch 'drm-rockchip-next-fixes-2016-07-19' of https://github.com/markyzq/kernel-drm-rockchip into drm-next Merge branch 'for-next' of http://git.agner.ch/git/linux-drm-fsl-dcu into drm-next Backmerge tag 'v4.7' into drm-next Merge tag 'topic/drm-misc-2016-07-22' of git://anongit.freedesktop.org/drm-intel into drm-next Merge tag 'drm-intel-next-fixes-2016-07-25' of git://anongit.freedesktop.org/drm-intel into drm-next Merge branch 'drm-next-4.8' of git://people.freedesktop.org/~agd5f/linux into drm-next Merge tag 'topic/drm-misc-2016-07-28' of git://anongit.freedesktop.org/drm-intel into drm-next Merge branch 'drm-next-4.8' of git://people.freedesktop.org/~agd5f/linux into drm-next Merge tag 'imx-drm-fixes-2016-07-27' of git://git.pengutronix.de/git/pza/linux into drm-next Merge branch 'linux-4.8' of git://github.com/skeggsb/linux into drm-next
Dave Gordon (29): drm/i915: rename i915_gem_alloc_object() to i915_gem_object_create() drm/i915: refactor i915_gem_object_pin_map() drm/i915: optimise i915_gem_object_map() for small objects drm/i915: Introduce & use new lightweight SGL iterators drm/i915: Inline sg_next() for the optimised SGL iterator drm/i915/guc: rename loader entry points drm/i915/guc: distinguish HAS_GUC() from HAS_GUC_UCODE/HAS_GUC_SCHED drm/i915/guc: add enable_guc_loading parameter drm/i915/guc: pass request (not client) to i915_guc_{wq_check_space, submit}() drm/i915/guc: don't spinwait if the GuC's workqueue is full drm/i915/guc: rework guc_add_workqueue_item() drm/i915/guc: fix GuC loading/submission check drm/i915/guc: disable GuC submission earlier during GuC (re)load drm/i915/guc: enable GuC loading & submission by default drm/i915/guc: suppress GuC-related message on non-GuC platforms drm/i915/guc: prefer 'dev_priv' to 'dev' for static functions drm/i915/guc: prefer 'dev_priv' to 'dev' for intra-module functions drm/i915/guc: add doorbell map to debugfs/i915_guc_info drm/i915/guc: prefer __set/clear_bit() to bitmap_set/clear() drm/i915/guc: remove writes to GEN8_DRBREG registers drm/i915/guc: move guc_ring_doorbell() nearer to callsite drm/i915/guc: refactor doorbell management code drm/i915/guc: replace assign_doorbell() with select_doorbell_register() drm/i915/guc: (re)initialise doorbell h/w when enabling GuC submission drm/i915/guc: index host arrays by i915 engine ID, not guc_id drm/i915: tweak gen6_for_{each_pde, all_pdes} macros drm/i915/guc: don't ever forward VBlank to the GuC drm/i915: convert a few more E->dev_private to to_i915(E) drm/i915: avoid wait_for_atomic() in non-atomic host2guc_action()
David Mao (2): drm/amd/amdgpu : Refine tracepoints to track more information drm/amd/amdgpu : adding new tracepoints to track memory information.
David Weinehall (1): drm/i915: only disable memory self-refresh on GMCH
Deepak M (3): drm/i915: Parsing the PWM cntrl and CABC ON/OFF fields in VBT drm/i915: Parse LFP brightness control field in VBT drm/i915/dsi: CABC support for Panel PWM backlight control
Doug Anderson (1): dt-bindings: Add vendor prefix for Starry
Douglas Anderson (2): dt-bindings: Add Starry KR122EA0SRA panel binding drm/panel: simple: Add support for Starry KR122EA0SRA panel
Edmondo Tommasina (1): drm/radeon: allow PACKET3_PFP_SYNC_ME on evergreen
Edward O'Callaghan (7): drivers/amdgpu: Remove spurious semicolons drivers/amdgpu: Use 'true/false' for bool typed variables drivers/amdgpu: Use canonical form in branch predicates drivers/amdgpu: Remove redundant NULL check before kfree() drivers/amdgpu: Remove redundant casts on kzalloc() calls drivers/amdgpu: Use canonical boolean form in various predicates drivers/amdgpu: Remove redundant itermediate return val
Eric Anholt (9): Merge tag 'drm-vc4-fixes-2016-06-06' into drm-vc4-next drm/vc4: Bind the HVS before we bind the individual CRTCs. drm/vc4: Add a getparam ioctl for getting the V3D identity regs. drm/vc4: Move validation's current/max ip into the validation struct. drm/vc4: Add a bitmap of branch targets during shader validation. drm/vc4: Add support for branching in shader validation. drm/vc4: Add a getparam to signal support for branches. drm/vc4: Fix definition of QPU_R_MS_REV_FLAGS drm/vc4: Fix a "the the" typo in a comment.
Eric Huang (24): drm/amdgpu: add powerplay sclk OD support through sysfs (v2) drm/amd/powerplay: add sclk OD support on Fiji drm/amd/powerplay: add sclk OD support on Tonga drm/amd/powerplay: add sclk OD support on Polaris10 drm/amdgpu: add the new common pm code to select the clock levels drm/amdgpu: add the new common pm code to support sclk OD drm/amdgpu: add the CI code to enable clock level selection drm/amdgpu: add the CI code to enable sclk OD(OverDrive) drm/amdgpu: add the common code to support mclk OD drm/amdgpu: add mclk OD(overdrive) support for CI drm/amd/powerplay: add mclk OD(overdrive) support for Tonga drm/amd/powerplay: add mclk OD(overdrive) support for Fiji drm/amd/powerplay: add mclk OD(overdrive) support for Polaris10 drm/amd/powerplay: set UVD clocks bypass mode for Polaris10 drm/amd/powerplay: keep soft_pp_table pointer value for re-uploading drm/amd/powerplay: add event task of disable dynamic state management drm/amd/powerplay: add function disable_dpm_tasks for Fiji drm/amd/powerplay: add disable dpm tasks for Tonga drm/amd/powerplay: add disable dpm tasks for Polaris10 drm/amd/powerplay: change backend allocation to backend init drm/amd/powerplay: add uploading pptable and resetting powerplay support drm/amd/powerplay: remove useless pp_table codes for Tonga/Fiji/Polaris10 drm/amd/powerplay: remove useless soft pptable in Asic related backend drm/amdgpu: some improvement in parsing inputs
Fabio Estevam (3): drm/imx: imx-tve: check the value returned by regulator_set_voltage() drm/imx: imx-tve: remove unneeded 'or' operation drm/imx: imx-tve: fix the error message
Frank Binns (4): drm/i915: Fix misleading driver debug message drm: fix some spelling mistakes drm/amd/amdgpu: Set DRIVER_MODESET feature flag at build time drm/vmwgfx: Stop checking minor type directly
Geert Uytterhoeven (1): MAINTAINERS: Add file patterns for drm device tree bindings
Gerd Hoffmann (8): virtio-gpu: fix output lookup virtio-gpu: fix output lookup virtio-gpu: add atomic_commit function virtio-gpu: switch to atomic cursor interfaces add cursor hotspot to drm_framebuffer virtio-gpu: pick up hotspot from framebuffer virtio-gpu: use src not crtc drm/i915: use #defines for qemu subsystem ids
Gustavo Padovan (32): dma-buf/fence: add fence_array fences v6 drm/fence: add fence to drm_pending_event dma-buf/sync_file: fix build warning with context format type drm/armada: use drm_crtc_send_vblank_event() drm/atmel: use drm_crtc_send_vblank_event() drm/qxl: use drm_crtc_send_vblank_event() drm/udl: use drm_crtc_send_vblank_event() drm/virtio: use drm_crtc_send_vblank_event() drm/amdgpu: use drm_crtc_vblank_{get,put}() drm/armada: use drm_crtc_vblank_{get,put}() drm/atmel: use drm_crtc_vblank_{get,put}() drm/qxl: use drm_crtc_vblank_{get,put}() drm/radeon: use drm_crtc_vblank_{get,put}() drm/shmobile: use drm_crtc_vblank_{get,put}() Documentation: add fence-array to kernel DocBook drm/nouveau: replace legacy vblank helpers drm: remove legacy drm_send_vblank_event() drm: remove legacy drm_arm_vblank_event() drm: make drm_vblank_{get,put}() static drm/amdgpu: use drm_crtc_vblank_{on,off}() drm/radeon: use drm_crtc_vblank_{on,off}() drm/amdgpu: use crtc directly in drm_crtc_vblank_put() drm/radeon: use crtc directly in drm_crtc_vblank_put() drm/gma500: use drm_crtc_vblank_{on,off}() drm: make drm_vblank_count_and_time() static drm/armada: use drm_crtc_handle_vblank() drm/atmel: use drm_crtc_handle_vblank() drm/nouveau: use drm_crtc_handle_vblank() drm/rcar-du: use drm_crtc_handle_vblank() drm/tilcdc: use drm_crtc_handle_vblank() MAINTAINERS: add entry for the Sync File Framework dma-buf/sync_file: improve Kconfig description for Sync Files
Heinrich Schuchardt (1): drm/mm: avoid possible null pointer dereference
Huang Rui (17): drm/amdgpu: add powercontainment module parameter drm/amdgpu: factor out the AMDGPU_INFO_FW_VERSION case branch into amdgpu_firmware_info drm/amdgpu: introduce a firmware debugfs to dump all current firmware versions drm/amdgpu: change pcie_gen_cap magic code to macro drm/amdgpu: rename smumgr to smum for dpm drm/amdgpu: no need load microcode at sdma if powerplay is enabled drm/amdgpu: add ucode_start_address into cgs_firmware_info drm/amd/powerplay: add SMU register macro for future use drm/amdgpu: add new definitions into ppsmc.h for iceland drm/amd/powerplay: add atomctrl_get_voltage_evv function in ppatomctrl drm/amd/powerplay: fix the incorrect return value drm/amd/powerplay: add pp_tables_get_response_times function in process pptables drm/amdgpu: make amdgpu_cgs_call_acpi_method as static drm/amdgpu: fix incorrect type of info_id drm/amd/powerplay: rename smum header guards drm/amdgpu: add new definition in bif header drm/amdgpu: add query device id and revision id into system info entry at CGS
Ilia Mirkin (1): drm/nouveau/gr/nv3x: fix instobj write offsets in gr setup
Imre Deak (31): drm/i915/bdw: Add missing delay during L3 SQC credit programming drm/i915: Clean up L3 SQC register field definitions drm/i915/chv: Tune L3 SQC credits based on actual latencies drm/i915/gen9: Avoid using negative array index in skl_update_plane() drm/i915: Add comments about fixed pipe->transcoder/PLL mapping drm/i915: Handle error return from dma_set_coherent_mask() drm/i915: Remove redundant const from function return type drm/i915/gen9: Assume CDCLK PLL is off if it's not locked drm/i915/bxt: Sanitize CDCLK to fix breakage during S4 resume drm/i915/bxt: Wait for PHY1 GRC calibration synchronously drm/i915: Factor out intel_power_well_get/put drm/i915/bxt: Move DDI PHY enabling/disabling to the power well code drm/i915/bxt: Set DDI PHY lane latency optimization during modeset drm/i915/bxt: Rename broxton to bxt in PHY/CDCLK function prefixes drm/i915/bxt: Sanitiy check the PHY lane power down status drm/i915/ibx, cpt: Don't attempt to register eDP if LVDS was detected drm/i915: Initialize the PPS HW before its first use drm/i915: Group all the PPS init steps to one place drm/i915/bxt: Fix PPS lost state after suspend breaking eDP link training drm/i915: Deduplicate PPS register retrieval drm/i915: Factor out helper to read out PPS HW state drm/i915: Sanity check PPS HW state drm/i915/bxt: Avoid early timeout during PLL enable drm/i915/lpt: Avoid early timeout during FDI PHY reset drm/i915/hsw: Avoid early timeout during LCPLL disable/restore drm/i915: Avoid early timeout during AUX transfers drm/i915: Fix log type for RC6 debug messages drm/i915/bxt: Fix sanity check for BIOS RC6 setup drm/i915/bxt: Remove the preliminary_hw_support flag drm/i915/gen9: Clean up MOCS table definitions drm/i915/bxt: Fix inadvertent CPU snooping due to incorrect MOCS config
Jani Nikula (17): drm/i915/dsi: don't pretend we support SC GPIOs drm/i915/dsi: add support for sequence block v3 gpio for VLV drm/i915/dsi: add support for gpio elements on CHV drm/i915/lvds: separate border enable readout from panel fitter drm/i915: don't mix bitwise and logical operations for has_snoop drm/i915/dsi: Add DCS control for Panel PWM drm/i915/dsi: fix bxt split screen and color issue Documentation/gpu: add new gpu.rst converted from DocBook gpu.tmpl Documentation/gpu: split up the gpu documentation MAINTAINERS: add Documentation/gpu and Documentation/gpu/i915.rst Documentation/gpu: use recommended order of heading markers Documentation/gpu: convert the KMS properties table to CSV Documentation/gpu: split up mm, kms and kms-helpers from internals Documentation/DocBook: remove gpu.tmpl drm/i915/opregion: add acpi defines from the spec drm/i915/opregion: abstract acpi display type getter for a connector drm/i915/opregion: handle missing connector types for acpi display types
Jie Qiu (2): drm/mediatek: Add HDMI support drm/mediatek: enable hdmi output control bit
John Keeping (4): drm/rockchip: dw_hdmi: remove unused #include drm/rockchip: fb: add missing header drm/rockchip: fix "should it be static?" warnings drm/rockchip: allocate correct crtc state structure on reset
Jon Hunter (8): drm/tegra: dpaux: Clean-up on probe failure drm/tegra: dpaux: Add helpers for setting up pads dt-bindings: display: Update Tegra DPAUX documentation drm/tegra: Prepare DPAUX for supporting generic PM domains dt-bindings: Add bindings for Tegra DPAUX pinctrl driver drm/tegra: dpaux: Add pinctrl support drm/tegra: dsi: Prepare for generic PM domain support drm/tegra: sor: Prepare for generic PM domain support
Joonas Lahtinen (2): drm/i915: Canonicalize stolen memory calculations drm/i915: Function per early graphics quirk
Joshua Clayton (2): drm/panel: simple: Add support for Sharp LQ101K1LY04 dt-bindings: display: Add Sharp LQ101K1LY04 panel binding
Julia Lawall (1): drm/nouveau/gr/gk20a: delete unneeded second newline
Junwei Zhang (1): drm/amdgpu/dce8: fix flash with white screen on monitor
Jyri Sarha (4): drm: drm_helper_crtc_enable_color_mgmt() => drm_crtc_enable_color_mgmt() drm/omapdrm: Add gamma table support to DSS dispc drm/omapdrm: Workaround for errata i734 (LCD1 Gamma) in DSS dispc drm/omapdrm: Implement gamma_lut atomic crtc properties
Karol Herbst (2): drm/nouveau/volt: save the voltage range we are able to set drm/nouveau/hwmon: add in_min and in_max
Ken Wang (1): drm/amdgpu: remove gfx8 registers that vary between asics
Kenneth Graunke (1): drm/i915: Allow MI_LOAD_REGISTER_REG between whitelisted registers.
Kumar, Mahesh (3): drm/i915/skl+: calculate ddb minimum allocation (v6) drm/i915/skl+: calculate plane pixel rate (v4) drm/i915/skl+: Use scaling amount for plane data rate calculation (v4)
Kuninori Morimoto (2): drm: rcar-du: error message is not needed for drm_vblank_init() drm: rcar-du: error message is not needed for EPROBE_DEFER
Laurent Pinchart (7): drm: omapdrm: panel-lgphilips-lb035q02: Remove unused backlight GPIO drm: omapdrm: Remove unused omap_gem_tiled_size function drm: omapdrm: Remove unused omap_framebuffer_bo function drm/ast: Remove useless drm_fb_get_bpp_depth() call drm/qxl: Remove useless drm_fb_get_bpp_depth() call drm: Move format-related helpers to drm_fourcc.c drm/msm: Replace drm_fb_get_bpp_depth() with drm_format_plane_cpp()
Lee Jones (1): drm/sti: use new Reset API
Leo Liu (1): drm/amdgpu: free handles after fini the context
Liu Ying (11): drm/atomic-helper: Do not call ->mode_fixup for CRTC which will be disabled drm/imx: ipuv3 plane: Check different types of plane separately gpu: ipu-v3: ipu-dmfc: Use static DMFC FIFO allocation mechanism drm/imx: atomic phase 1: Use transitional atomic CRTC and plane helpers drm/imx: atomic phase 2 step 1: Wire up state ->reset, ->duplicate and ->destroy drm/imx: atomic phase 2 step 2: Track plane_state->fb correctly in ->page_flip drm/imx: Remove encoders' ->prepare callbacks drm/imx: atomic phase 3 step 1: Use atomic configuration drm/bridge: dw-hdmi: Remove the legacy drm_connector_funcs structure drm/imx: atomic phase 3 step 2: Legacy callback fixups drm/imx: atomic phase 3 step 3: Advertise DRIVER_ATOMIC
Liviu Dudau (5): drm: Update obsolete information from {enable/disable}_vblank hooks. drm: Fix comment making reference to non-existing function dt/bindings: display: Add DT bindings for Mali Display Processors. drm/arm: Add support for Mali Display Processors MAINTAINERS: Add entry for Mali-DP driver
Lothar Waßmann (1): drm/imx: parallel-display: check return code from of_get_drm_display_mode()
Lucas Stach (3): drm/etnaviv: improve error reporting in GPU init path drm/etnaviv: remove generic GPU init failure reporting drm/imx: imx-ldb: check return code on panel attach
Lukas Wunner (21): vga_switcheroo: Add helper for deferred probing vga_switcheroo: Support deferred probing of audio clients drm: Remove dev_pm_ops from drm_class drm/i915: Don't unregister fbdev's fb twice drm/nouveau: Don't leak runtime pm ref on driver unload drm/nouveau: Forbid runtime pm on driver unload drm/radeon: Don't leak runtime pm ref on driver unload drm/radeon: Don't leak runtime pm ref on driver load drm/radeon: Forbid runtime pm on driver unload drm/amdgpu: Don't leak runtime pm ref on driver unload drm/amdgpu: Don't leak runtime pm ref on driver load drm/amdgpu: Forbid runtime pm on driver unload drm: Add helpers to turn off CRTCs drm/nouveau: Turn off CRTCs on driver unload drm/radeon: Turn off CRTCs on driver unload drm/amdgpu: Turn off CRTCs on driver unload drm: Use helper to turn off CRTC drm/i2c/ch7006: Use helper to turn off CRTC drm/nouveau/dispnv04: Use helper to turn off CRTC vga_switcheroo: Sphinxify docs apple-gmux: Sphinxify docs
Lyude (11): Revert "drm/i915: start adding dp mst audio" drm/i915/ilk: Don't disable SSC source if it's in use drm/i915/ilk: Don't disable SSC source if it's in use drm/i915/fbc: Disable on HSW by default for now drm/radeon: Poll for both connect/disconnect on analog connectors drm/amdgpu: Poll for both connect/disconnect on analog connectors drm/i915/vlv: Make intel_crt_reset() per-encoder drm/i915/vlv: Reset the ADPA in vlv_display_power_well_init() drm/i915/vlv: Disable HPD in valleyview_crt_detect_hotplug() drm/i915: Enable polling when we don't have hpd drm/amdgpu: Disable RPM helpers while reprobing connectors on resume
Maarten Lankhorst (28): drm/i915: Dump pipe config when intel_modeset_pipe_config fails. drm/core: Add drm_accurate_vblank_count, v5. drm/i915: Remove stallcheck special handling, v3. drm/i915: Remove intel_finish_page_flip_plane. drm/i915: Remove intel_prepare_page_flip, v3. drm/i915: Add support for detecting vblanks when hw frame counter is unavailable. drm/i915: Unify unpin_work and mmio_work into flip_work, v2. Revert "drm/i915: Avoid stalling on pending flips for legacy cursor updates" drm/i915: Allow mmio updates on all platforms, v2. drm/i915: Convert flip_work to a list. drm/i915: Add the exclusive fence to plane_state. drm/i915: Rework intel_crtc_page_flip to be almost atomic, v3. drm/i915: Remove cs based page flip support. drm/i915: Remove use_mmio_flip kernel parameter. drm/i915: Remove queue_flip pointer. drm/i915: Remove reset_counter from intel_crtc. drm/i915: Pass atomic states to fbc update functions. drm/i915: Prepare connectors for nonblocking checks. drm/i915: Make unpin async. Reapply "drm/i915: Avoid stalling on pending flips for legacy cursor updates" drm/i915: Check for unpin correctness. drm/i915: Allow nonblocking update of pageflips. drm/core: Change declaration for gamma_set. Reapply "drm/i915: Pass atomic states to fbc update, functions." drm/i915: Use connector->name in drrs debugfs. drm/i915: Use connector_type instead of intel_encoder->type for DP. drm/i915: Use atomic state and connector_type in i915_sink_src drm/i915: Use connector_type for printing in intel_connector_info, v2.
Marek Szyprowski (5): drm/exynos: iommu: move dma_params configuration code to separate functions drm/exynos: iommu: add a check if all sub-devices have iommu controller drm/exynos: iommu: remove unused entries from exynos_drm_private strcuture drm/exynos: iommu: move ARM specific code to exynos_drm_iommu.h drm/exynos: iommu: add support for ARM64 specific code for IOMMU glue
Mario Kleiner (1): drm/vc4: Implement precise vblank timestamping.
Mark Yao (2): drm/rockchip: vop: correct the source size of uv scale factor setting drm/rockchip: vop: correct rk3036 register define
Markus Elfring (32): drm/msm/hdmi: Delete an unnecessary check before the function call "kfree" drm/msm: Delete unnecessary checks before drm_gem_object_unreference_unlocked() drm/msm: Delete an unnecessary check before drm_gem_object_unreference() drm/bochs: Delete an unnecessary check before drm_gem_object_unreference_unlocked() drm/rockchip: Delete an unnecessary check before drm_gem_object_unreference_unlocked() drm/vc4: Delete unnecessary checks before two function calls drm/arcpgu: Delete an unnecessary check before drm_fbdev_cma_hotplug_event() drm/virtgpu: Delete unnecessary checks before drm_gem_object_unreference_unlocked() drm/tegra: Delete an unnecessary check before the function call "vunmap" drm/cirrus: Delete an unnecessary check before drm_gem_object_unreference_unlocked() drm/hdlcd: Delete an unnecessary check before drm_fbdev_cma_hotplug_event() drm/ast: Delete an unnecessary check before drm_gem_object_unreference_unlocked() drm/rockchip: Delete an unnecessary check before drm_gem_object_unreference_unlocked() drm/ttm: Delete an unnecessary check before the function call "ttm_tt_destroy" drm/atomic: Delete an unnecessary check before drm_property_unreference_blob() GPU-DRM-sun4i: Delete an unnecessary check before drm_fbdev_cma_hotplug_event() GPU-DRM-Exynos: Delete an unnecessary check before the function call "vunmap" GPU-DRM-OMAP: Delete unnecessary checks before two function calls GPU-DRM-GMA500: Delete unnecessary checks before two function calls drm/bridge: ps8622: Delete an unnecessary check before backlight_device_unregister() drm/mgag200: Delete an unnecessary check before drm_gem_object_unreference_unlocked() drm/qxl: Delete an unnecessary check before drm_gem_object_unreference_unlocked() drm/vmwgfx: Delete an unnecessary check before the function call "vfree" drm/etnaviv: Delete unnecessary checks before two function calls drm/etnaviv: Optimize error handling in etnaviv_gem_new_userptr() GPU-DRM-Radeon: Delete an unnecessary check before drm_gem_object_unreference_unlocked() drm/amdgpu: Delete an unnecessary check before drm_gem_object_unreference_unlocked() drm/amdgpu: One function call less in amdgpu_cgs_acpi_eval_object() after error detection drm/amdgpu: Delete a variable in amdgpu_cgs_acpi_eval_object() drm/amdgpu: Delete an unnecessary variable initialisation in amdgpu_cgs_acpi_eval_object() drm/amdgpu: Change assignment for a variable in amdgpu_cgs_acpi_eval_object() drm/amd/powerplay: Change assignment for a buffer variable in phm_dispatch_table() v2
Masanari Iida (1): drm: Fix a typo in drm_ioctl.c
Mathias Krause (3): dma-buf: propagate errors from dma_buf_describe() on debugfs read dma-buf: remove dma_buf directory on bufinfo file creation errors dma-buf: remove dma_buf_debugfs_create_file()
Matt Roper (19): drm/i915: Reorganize WM structs/unions in CRTC state drm/i915: Rename s/skl_compute_pipe_wm/skl_build_pipe_wm/ drm/i915/gen9: Cache plane data rates in CRTC state drm/i915/gen9: Allow calculation of data rate for in-flight state (v2) drm/i915/gen9: Store plane minimum blocks in CRTC wm state (v2) drm/i915: Track whether an atomic transaction changes the active CRTC's drm/i915/gen9: Allow skl_allocate_pipe_ddb() to operate on in-flight state (v3) drm/i915: Add distrust_bios_wm flag to dev_priv (v2) drm/i915/gen9: Compute DDB allocation at atomic check time (v4) drm/i915/gen9: Drop re-allocation of DDB at atomic commit (v2) drm/i915/gen9: Calculate plane WM's from state drm/i915/gen9: Allow watermark calculation on in-flight atomic state (v3) drm/i915/gen9: Use a bitmask to track dirty pipe watermarks drm/i915/gen9: Propagate watermark calculation failures up the call chain drm/i915/gen9: Calculate watermarks during atomic 'check' (v2) drm/i915/gen9: Reject display updates that exceed wm limitations (v2) drm/i915: Remove wm_config from dev_priv/intel_atomic_state drm/i915: Don't try to calculate relative data rates during hw readout drm/i915/gen9: Re-allocate DDB only for changed pipes
Matthew Auld (4): drm/i915: tidy up gen8_init_scratch drm/i915: remove i915_gem_object_ggtt_unbind drm: use seqlock for vblank time/count drm: fix send_vblank_event use-after-free error
Matthias Beyer (1): drivers: gpu: drm: amd: powerplay: hwmgr: Remove unused variable
Meng Yi (2): drm/fsl-dcu: rework codes to support of_graph dt binding for panel drm/fsl-dcu: add support for drm bridge
Michał Winiarski (1): drm/i915: Set softmin frequency on idle->busy transition
Michel Dänzer (2): drm/amdgpu: Unpin BO if we can't get fences in amdgpu_crtc_page_flip drm: Only handle _DRM_VBLANK_NEXTONMISS once
Mika Kahola (1): drm/i915: Revert DisplayPort fast link training feature
Mika Kuoppala (28): drm/i915/skl: Add WaDisableGafsUnitClkGating drm/i915/kbl: Init gen9 workarounds drm/i915/kbl: Add REVID macro drm/i915/kbl: Add WaSkipStolenMemoryFirstPage for A0 drm/i915/gen9: Always apply WaForceContextSaveRestoreNonCoherent drm/i915: Mimic skl with WaForceEnableNonCoherent drm/i915/kbl: Add WaEnableGapsTsvCreditFix drm/i915/kbl: Add WaDisableFenceDestinationToSLM for A0 drm/i915/kbl: Add WaDisableSDEUnitClockGating drm/i915/edp: Add WaKVMNotificationOnConfigChange:bdw drm/i915/kbl: Add WaDisableLSQCROPERFforOCL drm/i915/gen9: Enable must set chicken bits in config0 reg drm/i915/kbl: Add WaDisableGamClockGating drm/i915/kbl: Add WaDisableDynamicCreditSharing drm/i915: Add WaInsertDummyPushConstP for bxt and kbl drm/i915/gen9: Add WaDisableSkipCaching drm/i915/skl: Add WAC6entrylatency drm/i915/kbl: Add WaForGAMHang drm/i915/kbl: Add WaDisableGafsUnitClkGating drm/i915/kbl: Add WaDisableSbeCacheDispatchPortSharing drm/i915/gen9: Add WaEnableChickenDCPR drm/i915/skl: Extend WaDisableChickenBitTSGBarrierAckForFFSliceCS drm/i915/kbl: Add WaClearSlmSpaceAtContextSwitch drm/i915/gen9: Add WaFbcTurnOffFbcWatermark drm/i915/gen9: Add WaFbcWakeMemOn drm/i195/fbc: Add WaFbcNukeOnHostModify drm/i915/gen9: Add WaFbcHighMemBwCorruptionAvoidance drm/i915/gen9: Add WaInPlaceDecompressionHang
Mikulas Patocka (1): drm/nouveau/fbcon: fix font width not divisible by 8
Monk Liu (2): drm/amdgpu: clear RB at ring init drm/amdgpu: fix ring debugfs bug
Nicholas Mc Guire (1): drm/radeon/ci add comment to document intentionally unreachable code
Nick Hoath (1): drm/i915/guc: Add Broxton GuC firmware loading support
Nicolai Hähnle (5): drm/amdgpu: add amdgpu.cg_mask and amdgpu.pg_mask parameters drm/amdgpu: remove cgs_acpi_method_argument member method_length drm/amdgpu: add disable_cu parameter drm/amdgpu/gfx7: set USER_SHADER_ARRAY_CONFIG based on disable_cu parameter drm/amdgpu/gfx8: set USER_SHADER_ARRAY_CONFIG based on disable_cu parameter
Nils Wallménius (2): drm/amd/powerplay: Mark functions of ppevvmath.h static drm/amd/powerplay: Delete unused functions in ppevvmath.h
Noralf Trønnes (1): drm: Add helper for simple display pipeline
Oded Gabbay (1): drm/amdkfd: destroy mutex if process creation fails
Patrik Jakobsson (1): drm/i915/dmc: Step away from symbolic links
Paul Bolle (1): drm/vmwgfx: use *_32_bits() macros
Paulo Zanoni (2): drm/i915/fbc: update busy_bits even for GTT and flip flushes drm/i915/fbc: sanitize i915.enable_fbc during FBC init
Peter Antoine (3): drm/i915/bxt: reserve space for RC6 in the the GuC WOPCM Revert "drm/i915/kbl: drm/i915: Avoid GuC loading for now on Kabylake." i915/guc: Add Kabylake GuC Loading
Peter Chen (12): gpu: drm: vc4_hdmi: add missing of_node_put after calling of_parse_phandle gpu: drm: sti_compositor: add missing of_node_put after calling of_parse_phandle gpu: drm: sti_vdo: add missing of_node_put after calling of_parse_phandle gpu: drm: sti_hqvdp: add missing of_node_put after calling of_parse_phandle gpu: drm: sti_vtg: add missing of_node_put after calling of_parse_phandle gpu: drm: rockchip_drm_drv: add missing of_node_put after calling of_parse_phandle gpu: drm: omapdrm: connector-dvi: add missing of_node_put after calling of_parse_phandle gpu: drm: omapdrm: dss-of: add missing of_node_put after calling of_parse_phandle gpu: drm: exynos_hdmi: add missing of_node_put after calling of_parse_phandle gpu: drm: arcpgu_drv: add missing of_node_put after calling of_parse_phandle drm/fsl-dcu: add missing of_node_put after calling of_parse_phandle drm/msm: add missing of_node_put after calling of_parse_phandle
Peter Ujfalusi (23): omapfb: panel-tpo-td028ttec1: Remove legacy boot support omapfb: panel-nec-nl8048hl11: Remove legacy boot support omapfb: panel-tpo-td043mtea1: Remove legacy boot support omapfb: panel-sharp-ls037v7dw01: Remove legacy boot support omapfb: panel-lgphilips-lb035q02: Remove legacy boot support omapfb: panel-dsi-cm: Remove legacy boot support omapfb: connector-hdmi: Remove legacy boot support omapfb: connector-dvi: Remove legacy boot support omapfb: encoder-tfp410: Remove legacy boot support omapfb: encoder-tpd12s015: No need to include video/omap-panle-data.h drm/omap: displays: Do not include video/omap-panel-data.h if not needed omapdss: omap-panel-data.h: Remove struct omap_dss_device declaration drm/omap: connector-analog-tv: Support only Composite type in legacy boot omapfb: connector-analog-tv: Support only Composite type in legacy boot omapdss: omap-panel-data.h: Remove connector_type from atv pdata drm/omap: Remove reference to pdata->default_device omapfb: Remove reference to pdata->default_device platform_data: omapdss: Remove unused members from omap_dss_board_info omapdss: hdmi audio: Make header file independent of video/omapdss.h drm/omap: Do not include video/omapdss.h directly in drivers omapfb: Create new header file for omapfb DSS implementation [media] omap_vout: Switch to use the video/omapfb_dss.h header file drm/omap: Remove the video/omapdss.h and move it's content to local header file
Peter Wu (4): drm/nouveau/acpi: ensure matching ACPI handle and supported functions drm/nouveau/acpi: return supported DSM functions drm/nouveau/acpi: check for function 0x1B before using it drm/nouveau/acpi: fix lockup with PCIe runtime PM
Philipp Zabel (9): dt-bindings: drm/mediatek: Add Mediatek HDMI dts binding dt-bindings: hdmi-connector: add DDC I2C bus phandle documentation drm/imx: remove empty mode_set encoder callbacks drm/imx: store internal bus configuration in crtc state drm/imx: turn remaining container_of macros into inline functions gpu: ipu-v3: ipu-dc: don't bug out on invalid bus_format drm/imx: parallel-display: add bridge support dt-bindings: tc358767: add DT documentation drm/imx: imx-ldb: do not try to dereference crtc->state->state in encoder mode_set
Praveen Paneri (2): drm/i915: Unbind objects in shrinker only if device is runtime active drm/i915: Add rpm get/put in oom and vmap notifier
Ramalingam C (2): drm/i915/BXT: Retrieving the horizontal timing for DSI drm/i915/bxt: Adjusting the error in horizontal timings retrieval
Randy Dunlap (1): drm/i915: fix build errors when ACPI is not enabled
Rex Zhu (15): drm/amd/powerplay: functions's return state was reversed drm/amd/powerplay: change condition judgment as function's return value changed. drm/amdgpu: get number of shade engine by cgs interface. drm/amd/powerplay: add mvdd dpm support. drm/amd/powerplay: add shared definitions for di/dt feature. drm/amd/powerplay: add definitions related to di/dt feature for fiji and polaris. drm/amdgpu: add read/write function for GC CAC programming drm/amd/powerplay: don't add invalid voltage. drm/amd/powerplay: populate SMC ACPI minimum voltage using VBIOS boot SCLK and MCLK drm/amd/powerplay: enable DiDt feature for polaris10/11. drm/amd/powerplay: fix typo error when set clock gate state. Revert "drm/amd/powerplay: workaround issue that when uvd dpm disabled," drm/amdgpu: add bypass mode for vce3.0 drm/amd/powerplay: fix issue can't enable vce dpm. drm/amdgpu: add destroy session when generate VCE destroy msg.
Rob Clark (11): drm/prime: fix error path deadlock fail drm/msm: use mutex_lock_interruptible for submit ioctl drm/msm: add madvise ioctl drm/msm: add put_iova() helper drm/msm: shrinker support drm/msm: change gem->vmap() to get/put drm/msm: wire up vmap shrinker drm/msm: deal with arbitrary # of cmd buffers drm/msm: bump kernel api version drm/msm/rd: split out snapshot_buf helper drm/msm/rd: add module param to dump all bo's
Rob Herring (1): drm: vc4: enable XBGR8888 and ABGR8888 pixel formats
Robin Murphy (1): drm/fb_cma_helper: Implement fb_mmap callback
Rodrigo Vivi (5): drm/i915/kbl: Introduce the first official DMC for Kabylake. drm/i915: Add more Kabylake PCI IDs. drm/i915: Removing PCI IDs that are no longer listed as Kabylake. drm/i915: Introduce Kabypoint PCH for Kabylake H/DT. drm/i915/guc: Revert "drm/i915/guc: enable GuC loading & submission by default"
Roy Spliet (2): drm/nouveau/clk/gf100-: Clean up PLL locking test drm/nouveau/clk/gf100: Read secondary bypass postdiv when required
Russell King (1): drm/etnaviv: enable GPU module level clock gating support
Ruud Derwig (1): drm/arcpgu: Make ARC PGU usable on simulation platforms
SF Markus Elfring (1): drm/amd/powerplay: Delete an unnecessary variable initialisation in phm_dispatch_table()
Sagar Arun Kamble (1): drm/i915: Update GEN6_PMINTRMSK setup with GuC enabled
Sebastian Reichel (1): drm: omapdrm: add DSI mapping
Sergei Shtylyov (1): rcar-du: add/rename DEFR6 TCON bits
Slava Grigorev (3): drm/amdgpu: temporary comment out unused static const structures to fix the build drm/amdgpu: comment out unused defaults_bonaire_pro static const structures to fix the build drm/amdgpu: comment out unused defaults_staturn_pro static const structure to fix the build
Srinivas Kandagatla (1): drm: msm: Add ASoC generic hdmi audio codec support.
Stefan Agner (7): drm/fb_cma_helper: add suspend helper drm/fsl-dcu: store layer registers in soc_data drm/fsl-dcu: move layer initialization to plane file drm/fsl-dcu: use clk helpers drm/fsl-dcu: implement suspend/resume using atomic helpers drm/fsl-dcu: disable vblank events on CRTC disable drm/fsl-dcu: use drm_mode_config_cleanup on initialization errors
Stefan Christ (1): drm/gma500: remove unnecessary stub for fb_ioctl()
Sudip Mukherjee (1): drm: fb: cma: fix memory leak
Thierry Reding (32): drm/panel: simple: Fix a couple of physical sizes drm/panel: simple: Remove gratuitous blank line drm/dsi: Add uevent callback Merge branch 'devel-dt-free-map' of git://git.kernel.org/.../linusw/linux-pinctrl into drm/tegra/for-next gpu: host1x: Consistently use unsigned int for counts gpu: host1x: Use unsigned int consistently for IDs gpu: host1x: channel: Use correct type gpu: host1x: cdma: Drop unnecessary local variable gpu: host1x: syncpt: Use kcalloc() instead of kzalloc() gpu: host1x: Fix a couple of checkpatch warnings gpu: host1x: Whitespace cleanup for readability gpu: host1x: Remove redundant parentheses gpu: host1x: Constify array of action handlers gpu: host1x: Remove useless local variable drm/tegra: sor: Factor out tegra_sor_set_parent_clock() drm/tegra: sor: Rename tegra_sor_calc_config() drm/tegra: sor: Split out tegra_sor_apply_config() drm/tegra: sor: Extract tegra_sor_mode_set() drm/tegra: sor: Do not support deep color modes drm/tegra: hdmi: Enable audio over HDMI drm/tegra: dc: Implement runtime PM drm/tegra: dsi: Implement runtime PM drm/tegra: hdmi: Implement runtime PM drm/tegra: sor: Implement runtime PM drm/panel: simple: Update backlight state property drm/qxl: Remove dead code drm/dsi: Make set_tear_scanline command consistent drm/tegra: sor: Implement sor1_brick clock dt-bindings: display: tegra: Add source clock for SOR drm/tegra: sor: Use sor1_src clock to set parent for HDMI drm/tegra: sor: Make XBAR configurable per SoC drm/tegra: sor: Reject HDMI 2.0 modes
Tim Gore (3): drm/i915:bxt: implement WaProgramL3SqcReg1DefaultForPerf drm/i915/gen9: implement WaConextSwitchWithConcurrentTLBInvalidate drm/i915:gen9: implement WaMediaPoolStateCmdInWABB
Tina Ruchandani (1): drm/sti: Use 64-bit timestamps
Tobias Jakobi (22): drm/exynos: use logical AND in exynos_drm_plane_check_size() drm/exynos: make fbdev support really optional drm/rockchip: make fbdev support really optional drm/rcar-du: make fbdev support really optional drm/atmel-hlcdc: make fbdev support really optional drm/nouveau: make fbdev support really optional drm/arc: make fbdev support really optional drm/armada: make fbdev support really optional drm/omap: make fbdev support really optional drm/mgag200: make fbdev support really optional drm/cirrus: make fbdev support really optional drm/qxl: make fbdev support really optional drm/imx: make fbdev support really optional drm/shmobile: make fbdev support really optional drm/gma500: make fbdev support really optional drm/tilcdc: make fbdev support really optional drm/fsl-dcu: make fbdev support really optional drm/bochs: make fbdev support really optional drm/udl: make fbdev support really optional drm/virtio: make fbdev support really optional drm/ast: make fbdev support really optional drm/arm: make fbdev support really optional
Tom O'Rourke (1): drm/i915/guc: Use major_minor version for filename
Tom St Denis (17): drm/amdgpu/gfx8: Enable GFX PG on CZ drm/amdgpu/gfx8: Add serdes wait for idle in CGCG en/disable drm/amd/amdgpu: Convert ring debugfs entries to binary drm/amd/amdgpu: ring debugfs is read in increments of 4 bytes drm/amdgpu/trace: Add tracepoints to MMIO read/writes drm/amdgpu/gfx8: Switch Stoney to share CZ's RLC functions drm/amdgpu/gfx8: Enable CG on Stoney drm/amdgpu/gfx8: Enable PG on Stoney drm/amdgpu/gfx8: Tidy up various PG helpers drm/amdgpu/gfx80: Add QUICK_PG bit to GFX header and use it. drm/amdgpu/uvd6: De-numberify startup drm/amd/gfx: add instance field to select_se_sh (v3) drm/amd/amdgpu: Add gca config debug entry (v4) drm/amd/amdgpu: Add bank selection for MMIO debugfs (v3) drm/amd/powerplay: Unify family defines drm/amd/powerplay: move clockgating to after ungating power in pp for uvd/vce drm/amd/powerplay: remove enable_clock_power_gatings_tasks from initialize and resume events
Tomasz Figa (1): drm/rockchip: Finish initialization before registering DRM device
Tomeu Vizoso (3): drm/rockchip: Drop drm_driver.load/unload callbacks drm/rockchip: Use atomic PM helpers drm/rockchip: Resume DP early
Tomi Valkeinen (33): drm/omap: remove unused enum omap_hdmi_flags drm/omap: remove unused enum omap_overlay_manager_caps drm/omap: fix wrong variable type drm/omap: video-pll: add missing data for clkout2 & 3 drm/omap: copy enum omap_dss_clk_source drm/omap: rename omap_dss_clk_source drm/omap: remove dss_feat_get_clk_source_name() drm/omap: rename dss_get_generic_clk_source_name() drm/omap: rename dss_clk_source enums drm/omap: Add missing clock sources drm/omap: add field for PLL type drm/omap: clean up the LCD clk mux code drm/omap: add PLL helper funcs drm/omap: cleanup dispc_mgr_lclk_rate() drm/omap: cleanup dispc_fclk_rate() drm/omap: cleanup DPI clock source handling drm/omap: fix DPI clkout index handling drm/omap: HDMI PLL: use runtime pm drm/omap: rename PLL calc functions drm/omap: move HDMI PLL calc function to pll.c drm/omap: generalize dss_pll_calc_b() drm/omap: add comments for PLL calculations drm/omap: support type B PLL for DPI drm/omap: DPI: rename "DSI" related names drm/omap: remove unneeded gpio includes drm/omap: remove unnecessary pitch round-up drm/omap: remove align_pitch() drm/omap: fix pitch round-up MAINTAINERS: Add maintainer for OMAP DRM driver MAINTAINERS: Add maintainer for TI LCDC DRM driver drm/omap: rename panel/encoder Kconfig names Merge branch '4.8/omapdrm-pll' (omapdrm PLL work) Merge omapdss header refactoring
Tvrtko Ursulin (33): drm/i915: Remove i915_gem_obj_size drm/i915: Simplify i915_gem_obj_to_ggtt_view drm/i915: Simplify i915_gem_obj_ggtt_offset_view drm/i915: Simplify i915_gem_obj_ggtt_bound_view drm/i915: Store LRC hardware id in the request drm/i915: Stop tracking execlists retired requests drm/i915: Simplify intel_mark_busy/idle drm/i915: Small display interrupt handlers tidy drm/i915: Make IS_GENx macros work on a mask drm/i915: Promote IS_BROADWELL to a simple macro drm/i915: Replace "INTEL_INFO->gen == x" checks with IS_GENx drm/i915: Do not use a bitfield for INTEL_INFO->num_pipes drm/i915: Introduce IS_GEN macro drm/i915/guc: Disable automatic GuC firmware loading drm/i915: Fix a buch of kerneldoc warnings drm/i915/guc: Remove one unnecessary variable drm/i915: Small compaction of the engine init code drm/i915/debug: Select PREEMPT_COUNT when enabling debugging drm/i915: Use atomic waits for short non-atomic ones drm/i915: Consolidate write_tail vfunc initializer drm/i915: Consolidate add_request vfunc drm/i915: Consolidate seqno_barrier vfunc drm/i915: Consolidate get and put irq vfuncs drm/i915: Consolidate get/set_seqno drm/i915: Consolidate init_hw vfunc drm/i915: Consolidate dispatch_execbuffer vfunc drm/i915: Consolidate semaphore vfuncs init drm/i915: Move semaphore object creation into intel_ring_init_semaphores drm/i915: Compact Gen8 semaphore initialization drm/i915: Compact gen8_ring_sync drm/i915: Consolidate legacy semaphore initialization drm/i915: Trim some if-else braces drm/i915: Explicitly convert some macros to boolean values
Uwe Kleine-König (3): devicetree/bindings: add reset-gpios and vcc-supply for panel-dpi drm/omap: panel-dpi: make (limited) use of a reset gpio drm/omap: panel-dpi: implement support for a vcc regulator
Valdis Kletnieks (1): Fix annoyingly awkward typo in drm_edid_load.c
Ville Syrjälä (76): drm/i915: Unify VLV/CHV DPOunit clock gating disable/enable drm/i915: Update RAWCLK_FREQ register on VLV/CHV drm/i915: Update CDCLK_FREQ register on BDW after changing cdclk frequency drm/i915: Use cached cdclk value in i915_audio_component_get_cdclk_freq() drm/i915: Fix comments about GMBUSFREQ register mfd: intel_soc_pmic_core: Terminate panel control GPIO lookup table correctly drm: Add helper for DP++ adaptors drm/i915: Respect DP++ adaptor TMDS clock limit drm/i915: Enable/disable TMDS output buffers in DP++ adaptor as needed drm/i915: Determine DP++ type 1 DVI adaptor presence based on VBT drm/i915: Calculate IPS linetime watermark based on future cdclk drm/i915: Add a FIXME about crtc !active vs. watermarks drm/i915: Re-enable GGTT earlier during resume on pre-gen6 platforms drm/i915: s/DPPL/DPLL/ for SKL DPLLs drm/i915: Drop checks for max_pixclk failures in cdclk computation drm/i915: Extract broadwell_calc_cdclk() drm/i915: Untangle .fdi_link_train and cdclk vfunc setup drm/i915: Don't pass dev_priv to broxton_calc_cdclk() drm/i915: Use ilk_max_pixel_rate() for BXT cdclk calculation drm/i915: Use skl_cdclk_decimal() on bxt drm/i915: Remove 10% cdclk guardband on BXT drm/i915: Extract skl_dpll0_disable() drm/i915: Kill off dead code from skl_dpll0_enable() drm/i915: s/freq/cdclk/ drm/i915: s/required_vco/vco/ in skl cdclk code drm/i915: Program BXT_CDCLK_CD2X_PIPE drm/i915: Eliminate the CDCLK_CTL RMW on BXT drm/i915: Don't leave old junk in ilk active watermarks on readout drm/i915: Ignore stale wm register values on resume on ilk-bdw (v2) drm/i915: Enable GSE interrupt on BDW+ drm/i915: Fix BXT min_pixclk after state readout drm/i915: Move the SKL DPLL0 VCO computation into intel_dp_compute_config() drm/i915: Extract skl_calc_cdclk() drm/i915: Actually read out DPLL0 vco on skl from hardware drm/i915: Report the current DPLL0 vco on SKL/KBL drm/i915: Allow enable/disable of DPLL0 around cdclk changes on SKL drm/i915: Keep track of preferred cdclk vco frequency on SKL drm/i915: Beef up skl_sanitize_cdclk() a bit drm/i915: Unify SKL cdclk init paths drm/i915: Move SKL+ DBUF enable/disable to display core init/uninit drm/i915: Make 308 and 671 MHz cdclks more accurate on SKL drm/i915: Rename skl_vco_freq to cdclk_pll.vco drm/i915: Store cdclk PLL reference clock under dev_priv drm/i915: Extract bxt DE PLL enable/disable from broxton_set_cdclk() drm/i915: Store BXT DE PLL vco and ref clocks in dev_priv drm/i915: Update cached cdclk state from broxton_init_cdclk() drm/i915: Rewrite broxton_get_display_clock_speed() in terms of the DE PLL vco/refclk drm/i915: Make bxt_set_cdclk() operate in terms of the current vs target DE PLL vco drm/i915: Replace bxt_verify_cdclk_state() with a more generic cdclk check drm/i915: Set BXT cdclk to minimum initially drm/i915: Assert the dbuf is enabled when disabling DC5/6 drm/i915: Reject modeset if the dotclock is too high drm/i915: Use crtc->name in debug messages drm/i915: Use plane->name in debug prints drm/i915: Set crtc->name to "pipe A", "pipe B", etc. drm/i915: Don't leak primary/cursor planes on crtc init failure drm/i915: Give meaningful names to all the planes drm/i915: Give encoders useful names drm/i915: kill STANDARD/CURSOR plane screams drm/i915: Extract physical display dimensions from VBT drm/i915: Check VBT for port presence in addition to the strap on VLV/CHV drm: Deal with rotation in drm_plane_helper_check_update() drm/i915: Refresh cached DP port register value on resume drm/i915: Don't mark eDP encoders as MST capable drm/i915: Remove encoder type checks from MST suspend/resume drm/i915: Add output_types bitmask into the crtc state drm/i915: Unify intel_pipe_has_type() and intel_pipe_will_have_type() drm/i915: Replace manual lvds and sdvo/hdmi counting with intel_crtc_has_type() drm/i915: Kill has_dp_encoder from pipe_config drm/i915: Replace some open coded intel_crtc_has_dp_encoder()s drm/i915: s/INTEL_OUTPUT_DISPLAYPORT/INTEL_OUTPUT_DP/ drm/i915: Kill has_dsi_encoder drm/i915: Simplify hdmi_12bpc_possible() drm/i915: Check for invalid cloning earlier during modeset drm/i915: Unbreak interrupts on pre-gen6 drm: aux ->transfer() can return 0, deal with it
Vinay Simha BN (1): drm/dsi: Implement set tear scanline
Wei Yongjun (11): drm/i915: Fix missing unlock on error in i915_ppgtt_info() drm/hisilicon: Fix return value check in ade_dts_parse() drm/msm/dsi: Fix return value check in msm_dsi_host_set_display_mode() drm/msm/hdmi: use PTR_ERR_OR_ZERO() to simplify the code drm/vgem: Fix non static symbol warning drm/arc: Fix some sparse warnings drm/arc: Remove redundant dev_err call in arcpgu_load() drm/virtio: Fix non static symbol warning drm/rockchip: analogix_dp: add missing clk_disable_unprepare() on error drm/arm: mali-dp: Remove redundant dev_err call in malidp_bind() drm/arm: mali-dp: Fix error return code in malidp_bind()
Xinliang Liu (2): drm/hisilicon: Fix ADE vblank on/off handling drm/hisilicon: Fix ADE vblank on/off handling
Yakir Yang (20): drm/rockchip: analogix_dp: split the lcdc select setting into device data drm/bridge: analogix_dp: correct the register bit define error in ANALOGIX_DP_PLL_REG_1 drm/bridge: analogix_dp: some rockchip chips need to flip REF_CLK bit setting drm/rockchip: analogix_dp: add rk3399 eDP support drm/rockchip: analogix_dp: make panel detect to an optional action drm/bridge: analogix_dp: passing the connector as an argument in .get_modes() drm/rockchip: analogix_dp: correct the connector display color format and bpc drm/rockchip: analogix_dp: update the comments about why need to hardcode VOP output mode drm/bridge: analogix_dp: fix no drm hpd event when panel plug in drm/rockchip: analogix_dp: introduce the pclk for grf dt-bindings: analogix_dp: rockchip: correct the wrong compatible name dt-bindings: Add LG LP097QX1-SPA1 panel binding drm/panel: simple: Add support for LG LP097QX1-SPA1 panel dt-bindings: Add Samsung LSN122DL01-C01 panel binding drm/panel: simple: Add support for Samsung LSN122DL01-C01 panel dt-bindings: Add Sharp LQ123P1JX31 panel binding drm/panel: simple: Add support for Sharp LQ123P1JX31 panel dt-bindings: Add support for LG LP079QX1-SP0V panel drm/panel: simple: Add support for LG LP079QX1-SP0V panel drm/rockchip: vop: add uv_vir register field for RK3036 VOP
Yetunde Adebisi (3): drm/dp: Add definition for Display Control DPCD Registers capability size drm/i915: Read eDP Display control capability registers drm/i915: Add Backlight Control using DPCD for eDP connectors (v9)
Zhi Wang (10): drm/i915: Factor out i915_pvinfo.h drm/i915: Use offsetof() to calculate the offset of members in PVINFO page drm/i915: Fold vGPU active check into inner functions drm/i915: gvt: Introduce the basic architecture of GVT-g drm/i915: Make ring buffer size of a LRC context configurable drm/i915: Make addressing mode bits in context descriptor configurable drm/i915: Introduce execlist context status change notification drm/i915: Support LRC context single submission drm/i915: Introduce GVT context creation API drm/i915: Set the access right of kernel param "i915.enable_gvt" to read-only.
Zoltan Kuscsik (1): drm/hisilicon: add select HISI_KIRIN_DW_DSI
arun.siluvery@linux.intel.com (5): drm/i915/gen9: Add WaVFEStateAfterPipeControlwithMediaStateClear drm/i915:bxt: Enable Pooled EU support drm/i915/bxt: Add WaEnablePooledEuFor2x6 drm/i915/bxt: Add WaDisablePooledEuLoadBalancingFix drm/i915/bxt: Export pooled eu info to userspace
jimqu (2): drm/amdgpu: S3 resume fail on Polaris10 drm/amdgpu: correct coding style
yanyang1 (1): drm/amdgpu: print smc fw info in CGS.
Documentation/.gitignore | 1 + Documentation/DocBook/Makefile | 9 +- Documentation/DocBook/device-drivers.tmpl | 4 + Documentation/DocBook/gpu.tmpl | 3540 -------------------- Documentation/Makefile.sphinx | 63 + Documentation/conf.py | 414 +++ .../devicetree/bindings/display/arm,malidp.txt | 65 + .../bindings/display/bridge/adi,adv7511.txt | 26 +- .../bindings/display/bridge/analogix_dp.txt | 1 + .../devicetree/bindings/display/bridge/sii902x.txt | 35 + .../bindings/display/bridge/toshiba,tc358767.txt | 53 + .../bindings/display/connector/hdmi-connector.txt | 1 + .../devicetree/bindings/display/fsl,dcu.txt | 9 +- .../bindings/display/mediatek/mediatek,hdmi.txt | 148 + .../devicetree/bindings/display/msm/dsi.txt | 117 +- .../devicetree/bindings/display/msm/mdp.txt | 59 - .../devicetree/bindings/display/msm/mdp4.txt | 112 + .../devicetree/bindings/display/msm/mdp5.txt | 160 + .../bindings/display/panel/lg,lp079qx1-sp0v.txt | 7 + .../bindings/display/panel/lg,lp097qx1-spa1.txt | 7 + .../bindings/display/panel/panel-dpi.txt | 2 + .../display/panel/samsung,lsn122dl01-c01.txt | 7 + .../bindings/display/panel/sharp,lq101k1ly04.txt | 7 + .../bindings/display/panel/sharp,lq123p1jx31.txt | 7 + .../bindings/display/panel/starry,kr122ea0sra.txt | 7 + .../display/rockchip/analogix_dp-rockchip.txt | 9 +- .../display/tegra/nvidia,tegra20-host1x.txt | 13 +- .../pinctrl/nvidia,tegra124-dpaux-padctl.txt | 60 + .../devicetree/bindings/vendor-prefixes.txt | 1 + Documentation/dmaengine/provider.txt | 2 +- Documentation/gpu/drm-internals.rst | 381 +++ Documentation/gpu/drm-kms-helpers.rst | 260 ++ Documentation/gpu/drm-kms.rst | 653 ++++ Documentation/gpu/drm-mm.rst | 454 +++ Documentation/gpu/drm-uapi.rst | 111 + Documentation/gpu/i915.rst | 347 ++ Documentation/gpu/index.rst | 14 + Documentation/gpu/introduction.rst | 51 + Documentation/gpu/kms-properties.csv | 128 + Documentation/gpu/vga-switcheroo.rst | 98 + Documentation/index.rst | 24 + Documentation/kernel-parameters.txt | 5 +- Documentation/mic/mpssd/mpssd.c | 4 +- Documentation/security/self-protection.txt | 28 +- Documentation/sphinx/convert_template.sed | 18 + Documentation/sphinx/kernel-doc.py | 127 + Documentation/sphinx/post_convert.sed | 23 + Documentation/sphinx/tmplcvt | 19 + Documentation/sync_file.txt | 6 +- Documentation/zh_CN/CodingStyle | 581 ++-- MAINTAINERS | 42 +- Makefile | 5 +- arch/arc/boot/dts/nsimosci.dts | 14 +- arch/arc/boot/dts/nsimosci_hs.dts | 14 +- arch/arc/boot/dts/nsimosci_hs_idu.dts | 14 +- arch/arc/boot/dts/vdk_axs10x_mb.dtsi | 13 +- arch/arc/boot/dts/vdk_hs38_smp.dts | 2 +- arch/arc/configs/nsimosci_defconfig | 3 +- arch/arc/configs/nsimosci_hs_defconfig | 3 +- arch/arc/configs/nsimosci_hs_smp_defconfig | 3 +- arch/arc/configs/vdk_hs38_smp_defconfig | 7 +- arch/arm/mach-omap2/board-ldp.c | 3 +- arch/arm/mach-omap2/board-rx51-video.c | 4 +- arch/arm/mach-omap2/display.c | 2 +- arch/arm/mach-omap2/display.h | 5 + arch/arm/mach-omap2/dss-common.c | 2 +- arch/x86/kernel/early-quirks.c | 404 ++- drivers/char/agp/intel-gtt.c | 8 + drivers/dma-buf/Kconfig | 15 +- drivers/dma-buf/Makefile | 2 +- drivers/dma-buf/dma-buf.c | 59 +- drivers/dma-buf/fence-array.c | 144 + drivers/dma-buf/fence.c | 8 +- drivers/dma-buf/sync_file.c | 2 +- drivers/gpu/drm/Makefile | 5 +- drivers/gpu/drm/amd/amdgpu/amdgpu.h | 112 +- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 4 +- drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c | 25 +- drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c | 68 +- drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c | 14 +- drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c | 3 + drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 57 +- drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 7 +- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 41 +- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 287 +- drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 18 +- drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 31 +- drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 17 +- drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 44 + drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h | 2 + drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 22 +- drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 12 + drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 80 +- drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 264 +- drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 3 + drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 172 +- drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 230 +- drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 90 +- drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h | 115 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 15 +- drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 98 +- drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.h | 3 + drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 170 +- drivers/gpu/drm/amd/amdgpu/amdgpu_vce.h | 4 +- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 334 +- drivers/gpu/drm/amd/amdgpu/atombios_encoders.c | 1 + drivers/gpu/drm/amd/amdgpu/ci_dpm.c | 216 +- drivers/gpu/drm/amd/amdgpu/ci_dpm.h | 1 + drivers/gpu/drm/amd/amdgpu/cik.c | 25 +- drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 50 +- drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 3 +- drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 16 +- drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 21 +- drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 83 +- drivers/gpu/drm/amd/amdgpu/fiji_smc.c | 2 +- drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 137 +- drivers/gpu/drm/amd/amdgpu/gfx_v7_0.h | 7 - drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 468 ++- drivers/gpu/drm/amd/amdgpu/gfx_v8_0.h | 1 - drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 41 +- drivers/gpu/drm/amd/amdgpu/gmc_v7_0.h | 7 - drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 46 +- drivers/gpu/drm/amd/amdgpu/gmc_v8_0.h | 7 - drivers/gpu/drm/amd/amdgpu/iceland_dpm.c | 2 +- drivers/gpu/drm/amd/amdgpu/iceland_smc.c | 4 +- .../amdgpu/{iceland_smumgr.h => iceland_smum.h} | 4 +- drivers/gpu/drm/amd/amdgpu/kv_dpm.c | 8 +- drivers/gpu/drm/amd/amdgpu/ppsmc.h | 4 + drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 77 +- drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 48 +- drivers/gpu/drm/amd/amdgpu/tonga_smc.c | 2 +- drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c | 77 +- drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c | 76 +- drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c | 182 +- drivers/gpu/drm/amd/amdgpu/vce_v2_0.c | 2 + drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 160 +- drivers/gpu/drm/amd/amdgpu/vi.c | 57 +- .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.h | 4 +- drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 3 - drivers/gpu/drm/amd/amdkfd/kfd_process.c | 4 +- drivers/gpu/drm/amd/include/amd_pcie.h | 14 + drivers/gpu/drm/amd/include/amd_shared.h | 11 +- .../gpu/drm/amd/include/asic_reg/bif/bif_5_0_d.h | 1 + .../gpu/drm/amd/include/asic_reg/gca/gfx_8_0_d.h | 3 + .../drm/amd/include/asic_reg/gca/gfx_8_0_sh_mask.h | 108 +- .../gpu/drm/amd/include/asic_reg/uvd/uvd_6_0_d.h | 2 + drivers/gpu/drm/amd/include/cgs_common.h | 19 +- drivers/gpu/drm/amd/powerplay/amd_powerplay.c | 153 +- .../drm/amd/powerplay/eventmgr/eventactionchains.c | 2 - .../gpu/drm/amd/powerplay/eventmgr/eventtasks.c | 3 +- .../drm/amd/powerplay/hwmgr/cz_clockpowergating.c | 17 +- drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c | 23 +- .../amd/powerplay/hwmgr/fiji_clockpowergating.c | 2 +- drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.c | 404 ++- drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.h | 3 - .../gpu/drm/amd/powerplay/hwmgr/fiji_powertune.c | 74 +- .../gpu/drm/amd/powerplay/hwmgr/fiji_powertune.h | 15 + .../gpu/drm/amd/powerplay/hwmgr/functiontables.c | 9 +- .../gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c | 26 +- drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c | 10 +- .../powerplay/hwmgr/polaris10_clockpowergating.c | 20 +- .../gpu/drm/amd/powerplay/hwmgr/polaris10_hwmgr.c | 464 ++- .../gpu/drm/amd/powerplay/hwmgr/polaris10_hwmgr.h | 6 +- .../drm/amd/powerplay/hwmgr/polaris10_powertune.c | 590 ++++ .../drm/amd/powerplay/hwmgr/polaris10_powertune.h | 26 +- drivers/gpu/drm/amd/powerplay/hwmgr/pp_acpi.c | 2 +- drivers/gpu/drm/amd/powerplay/hwmgr/ppatomctrl.c | 303 +- drivers/gpu/drm/amd/powerplay/hwmgr/ppatomctrl.h | 1 + drivers/gpu/drm/amd/powerplay/hwmgr/ppevvmath.h | 165 +- .../gpu/drm/amd/powerplay/hwmgr/processpptables.c | 33 +- .../gpu/drm/amd/powerplay/hwmgr/processpptables.h | 17 +- drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c | 272 +- drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.h | 3 - .../amd/powerplay/hwmgr/tonga_processpptables.c | 27 +- drivers/gpu/drm/amd/powerplay/inc/amd_powerplay.h | 7 + .../gpu/drm/amd/powerplay/inc/hardwaremanager.h | 1 + drivers/gpu/drm/amd/powerplay/inc/hwmgr.h | 10 +- drivers/gpu/drm/amd/powerplay/inc/smumgr.h | 29 + drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c | 5 +- .../gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c | 3 +- drivers/gpu/drm/amd/scheduler/gpu_sched_trace.h | 4 +- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 190 +- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 60 +- drivers/gpu/drm/amd/scheduler/sched_fence.c | 81 +- drivers/gpu/drm/arc/Kconfig | 1 - drivers/gpu/drm/arc/Makefile | 2 +- drivers/gpu/drm/arc/arcpgu.h | 2 +- drivers/gpu/drm/arc/arcpgu_crtc.c | 16 +- drivers/gpu/drm/arc/arcpgu_drv.c | 64 +- drivers/gpu/drm/arc/arcpgu_hdmi.c | 18 - drivers/gpu/drm/arc/arcpgu_sim.c | 128 + drivers/gpu/drm/arm/Kconfig | 17 +- drivers/gpu/drm/arm/Makefile | 2 + drivers/gpu/drm/arm/hdlcd_crtc.c | 19 - drivers/gpu/drm/arm/hdlcd_drv.c | 13 +- drivers/gpu/drm/arm/malidp_crtc.c | 216 ++ drivers/gpu/drm/arm/malidp_drv.c | 519 +++ drivers/gpu/drm/arm/malidp_drv.h | 54 + drivers/gpu/drm/arm/malidp_hw.c | 691 ++++ drivers/gpu/drm/arm/malidp_hw.h | 241 ++ drivers/gpu/drm/arm/malidp_planes.c | 298 ++ drivers/gpu/drm/arm/malidp_regs.h | 172 + drivers/gpu/drm/armada/Kconfig | 4 - drivers/gpu/drm/armada/armada_crtc.c | 16 +- drivers/gpu/drm/armada/armada_drv.c | 3 +- drivers/gpu/drm/armada/armada_overlay.c | 1 + drivers/gpu/drm/ast/Kconfig | 4 - drivers/gpu/drm/ast/ast_drv.c | 2 +- drivers/gpu/drm/ast/ast_fb.c | 3 - drivers/gpu/drm/ast/ast_main.c | 3 +- drivers/gpu/drm/ast/ast_mode.c | 10 +- drivers/gpu/drm/ast/ast_ttm.c | 13 +- drivers/gpu/drm/atmel-hlcdc/Kconfig | 1 - drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c | 6 +- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 19 +- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c | 12 - drivers/gpu/drm/bochs/Kconfig | 4 - drivers/gpu/drm/bochs/bochs_drv.c | 2 +- drivers/gpu/drm/bochs/bochs_mm.c | 15 +- drivers/gpu/drm/bridge/Kconfig | 19 + drivers/gpu/drm/bridge/Makefile | 3 + drivers/gpu/drm/bridge/adv7511/Kconfig | 15 + drivers/gpu/drm/bridge/adv7511/Makefile | 3 + drivers/gpu/drm/{i2c => bridge/adv7511}/adv7511.h | 103 + .../adv7511.c => bridge/adv7511/adv7511_drv.c} | 324 +- drivers/gpu/drm/bridge/adv7511/adv7533.c | 265 ++ drivers/gpu/drm/bridge/analogix-anx78xx.c | 8 - drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 3 +- drivers/gpu/drm/bridge/analogix/analogix_dp_core.h | 8 +- drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c | 12 +- drivers/gpu/drm/bridge/analogix/analogix_dp_reg.h | 5 +- drivers/gpu/drm/bridge/dw-hdmi.c | 30 +- drivers/gpu/drm/bridge/nxp-ptn3460.c | 8 - drivers/gpu/drm/bridge/parade-ps8622.c | 14 +- drivers/gpu/drm/bridge/sii902x.c | 467 +++ drivers/gpu/drm/bridge/tc358767.c | 1413 ++++++++ drivers/gpu/drm/cirrus/Kconfig | 4 - drivers/gpu/drm/cirrus/cirrus_drv.c | 2 +- drivers/gpu/drm/cirrus/cirrus_main.c | 4 +- drivers/gpu/drm/cirrus/cirrus_mode.c | 11 +- drivers/gpu/drm/cirrus/cirrus_ttm.c | 13 +- drivers/gpu/drm/drm_atomic.c | 105 +- drivers/gpu/drm/drm_atomic_helper.c | 566 +++- drivers/gpu/drm/drm_auth.c | 285 +- drivers/gpu/drm/drm_bridge.c | 2 +- drivers/gpu/drm/drm_bufs.c | 8 +- drivers/gpu/drm/drm_cache.c | 1 + drivers/gpu/drm/drm_crtc.c | 717 ++-- drivers/gpu/drm/drm_crtc_helper.c | 36 +- drivers/gpu/drm/drm_crtc_internal.h | 88 +- drivers/gpu/drm/drm_debugfs.c | 3 - drivers/gpu/drm/drm_dp_aux_dev.c | 3 +- drivers/gpu/drm/drm_dp_helper.c | 58 +- drivers/gpu/drm/drm_dp_mst_topology.c | 14 +- drivers/gpu/drm/drm_drv.c | 245 +- drivers/gpu/drm/drm_edid_load.c | 2 +- drivers/gpu/drm/drm_fb_cma_helper.c | 43 +- drivers/gpu/drm/drm_fb_helper.c | 56 +- drivers/gpu/drm/drm_fops.c | 149 +- drivers/gpu/drm/drm_fourcc.c | 320 ++ drivers/gpu/drm/drm_gem.c | 2 +- drivers/gpu/drm/drm_info.c | 117 +- drivers/gpu/drm/drm_internal.h | 21 +- drivers/gpu/drm/drm_ioctl.c | 176 +- drivers/gpu/drm/drm_irq.c | 243 +- drivers/gpu/drm/drm_legacy.h | 8 +- drivers/gpu/drm/drm_lock.c | 240 +- drivers/gpu/drm/drm_memory.c | 2 +- drivers/gpu/drm/drm_mipi_dsi.c | 38 + drivers/gpu/drm/drm_mm.c | 4 +- drivers/gpu/drm/drm_modes.c | 4 +- drivers/gpu/drm/drm_modeset_lock.c | 13 +- drivers/gpu/drm/drm_pci.c | 51 - drivers/gpu/drm/drm_plane_helper.c | 38 +- drivers/gpu/drm/drm_platform.c | 18 - drivers/gpu/drm/drm_prime.c | 10 +- drivers/gpu/drm/drm_probe_helper.c | 21 +- drivers/gpu/drm/drm_scatter.c | 2 +- drivers/gpu/drm/drm_simple_kms_helper.c | 206 ++ drivers/gpu/drm/drm_sysfs.c | 71 - drivers/gpu/drm/drm_vm.c | 58 +- drivers/gpu/drm/drm_vma_manager.c | 3 + drivers/gpu/drm/etnaviv/etnaviv_drv.c | 5 +- drivers/gpu/drm/etnaviv/etnaviv_gem.c | 16 +- drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 54 +- drivers/gpu/drm/etnaviv/etnaviv_gpu.h | 2 +- drivers/gpu/drm/etnaviv/state_hi.xml.h | 7 + drivers/gpu/drm/exynos/Kconfig | 6 +- drivers/gpu/drm/exynos/exynos_dp.c | 4 +- drivers/gpu/drm/exynos/exynos_drm_dpi.c | 9 - drivers/gpu/drm/exynos/exynos_drm_drv.c | 18 +- drivers/gpu/drm/exynos/exynos_drm_drv.h | 2 - drivers/gpu/drm/exynos/exynos_drm_dsi.c | 9 - drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 3 +- drivers/gpu/drm/exynos/exynos_drm_iommu.c | 77 +- drivers/gpu/drm/exynos/exynos_drm_iommu.h | 91 + drivers/gpu/drm/exynos/exynos_drm_vidi.c | 8 - drivers/gpu/drm/exynos/exynos_hdmi.c | 10 +- drivers/gpu/drm/fsl-dcu/Kconfig | 5 - drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c | 44 +- drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 49 +- drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h | 2 + drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.c | 15 +- drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_output.h | 3 +- drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c | 16 + drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.h | 1 + drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c | 87 +- drivers/gpu/drm/fsl-dcu/fsl_tcon.c | 1 + drivers/gpu/drm/gma500/Kconfig | 4 - drivers/gpu/drm/gma500/cdv_intel_hdmi.c | 3 +- drivers/gpu/drm/gma500/cdv_intel_lvds.c | 9 +- drivers/gpu/drm/gma500/framebuffer.c | 9 - drivers/gpu/drm/gma500/gma_display.c | 11 +- drivers/gpu/drm/gma500/gma_display.h | 4 +- drivers/gpu/drm/gma500/psb_drv.c | 6 +- drivers/gpu/drm/gma500/psb_intel_display.c | 7 - drivers/gpu/drm/gma500/psb_intel_lvds.c | 9 +- drivers/gpu/drm/hisilicon/kirin/Kconfig | 1 + drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 34 +- drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 11 +- drivers/gpu/drm/i2c/Kconfig | 6 - drivers/gpu/drm/i2c/Makefile | 2 - drivers/gpu/drm/i2c/ch7006_drv.c | 9 +- drivers/gpu/drm/i915/Kconfig | 22 + drivers/gpu/drm/i915/Kconfig.debug | 3 + drivers/gpu/drm/i915/Makefile | 12 +- drivers/gpu/drm/i915/gvt/Makefile | 5 + drivers/gpu/drm/i915/gvt/debug.h | 34 + drivers/gpu/drm/i915/gvt/gvt.c | 145 + drivers/gpu/drm/i915/gvt/gvt.h | 69 + drivers/gpu/drm/i915/gvt/hypercall.h | 38 + drivers/gpu/drm/i915/gvt/mpt.h | 49 + drivers/gpu/drm/i915/i915_cmd_parser.c | 53 +- drivers/gpu/drm/i915/i915_debugfs.c | 569 ++-- drivers/gpu/drm/i915/i915_dma.c | 1587 --------- drivers/gpu/drm/i915/i915_drv.c | 2120 ++++++++---- drivers/gpu/drm/i915/i915_drv.h | 786 +++-- drivers/gpu/drm/i915/i915_gem.c | 1262 ++++--- drivers/gpu/drm/i915/i915_gem_batch_pool.c | 6 +- drivers/gpu/drm/i915/i915_gem_context.c | 515 +-- drivers/gpu/drm/i915/i915_gem_dmabuf.h | 45 + drivers/gpu/drm/i915/i915_gem_evict.c | 55 +- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 44 +- drivers/gpu/drm/i915/i915_gem_fence.c | 38 +- drivers/gpu/drm/i915/i915_gem_gtt.c | 390 ++- drivers/gpu/drm/i915/i915_gem_gtt.h | 84 +- drivers/gpu/drm/i915/i915_gem_render_state.c | 45 +- drivers/gpu/drm/i915/i915_gem_shrinker.c | 58 +- drivers/gpu/drm/i915/i915_gem_stolen.c | 10 +- drivers/gpu/drm/i915/i915_gem_tiling.c | 8 +- drivers/gpu/drm/i915/i915_gem_userptr.c | 12 +- drivers/gpu/drm/i915/i915_gpu_error.c | 203 +- drivers/gpu/drm/i915/i915_guc_reg.h | 6 +- drivers/gpu/drm/i915/i915_guc_submission.c | 538 +-- drivers/gpu/drm/i915/i915_irq.c | 807 ++--- drivers/gpu/drm/i915/i915_params.c | 23 +- drivers/gpu/drm/i915/i915_params.h | 5 +- drivers/gpu/drm/i915/i915_pci.c | 503 +++ drivers/gpu/drm/i915/i915_pvinfo.h | 113 + drivers/gpu/drm/i915/i915_reg.h | 65 +- drivers/gpu/drm/i915/i915_suspend.c | 8 +- drivers/gpu/drm/i915/i915_sysfs.c | 40 +- drivers/gpu/drm/i915/i915_trace.h | 54 +- drivers/gpu/drm/i915/i915_vgpu.c | 44 +- drivers/gpu/drm/i915/i915_vgpu.h | 92 +- drivers/gpu/drm/i915/intel_atomic.c | 5 +- drivers/gpu/drm/i915/intel_audio.c | 50 +- drivers/gpu/drm/i915/intel_bios.c | 23 +- drivers/gpu/drm/i915/intel_bios.h | 16 +- drivers/gpu/drm/i915/intel_breadcrumbs.c | 595 ++++ drivers/gpu/drm/i915/intel_color.c | 23 +- drivers/gpu/drm/i915/intel_crt.c | 78 +- drivers/gpu/drm/i915/intel_csr.c | 25 +- drivers/gpu/drm/i915/intel_ddi.c | 274 +- drivers/gpu/drm/i915/intel_device_info.c | 388 +++ drivers/gpu/drm/i915/intel_display.c | 2673 ++++++++------- drivers/gpu/drm/i915/intel_dp.c | 1087 +++--- drivers/gpu/drm/i915/intel_dp_aux_backlight.c | 172 + drivers/gpu/drm/i915/intel_dp_mst.c | 25 +- drivers/gpu/drm/i915/intel_dpio_phy.c | 470 +++ drivers/gpu/drm/i915/intel_dpll_mgr.c | 63 +- drivers/gpu/drm/i915/intel_drv.h | 353 +- drivers/gpu/drm/i915/intel_dsi.c | 135 +- drivers/gpu/drm/i915/intel_dsi.h | 4 + drivers/gpu/drm/i915/intel_dsi_dcs_backlight.c | 179 + drivers/gpu/drm/i915/intel_dsi_panel_vbt.c | 90 +- drivers/gpu/drm/i915/intel_dsi_pll.c | 42 +- drivers/gpu/drm/i915/intel_dvo.c | 41 +- drivers/gpu/drm/i915/intel_fbc.c | 116 +- drivers/gpu/drm/i915/intel_fbdev.c | 122 +- drivers/gpu/drm/i915/intel_fifo_underrun.c | 30 +- drivers/gpu/drm/i915/intel_guc.h | 50 +- drivers/gpu/drm/i915/intel_guc_fwif.h | 3 +- drivers/gpu/drm/i915/intel_guc_loader.c | 222 +- drivers/gpu/drm/i915/intel_gvt.c | 104 + drivers/gpu/drm/i915/intel_gvt.h | 45 + drivers/gpu/drm/i915/intel_hdmi.c | 429 +-- drivers/gpu/drm/i915/intel_hotplug.c | 134 +- drivers/gpu/drm/i915/intel_i2c.c | 22 +- drivers/gpu/drm/i915/intel_lrc.c | 964 +++--- drivers/gpu/drm/i915/intel_lrc.h | 24 +- drivers/gpu/drm/i915/intel_lvds.c | 58 +- drivers/gpu/drm/i915/intel_mocs.c | 100 +- drivers/gpu/drm/i915/intel_modes.c | 4 +- drivers/gpu/drm/i915/intel_opregion.c | 210 +- drivers/gpu/drm/i915/intel_overlay.c | 151 +- drivers/gpu/drm/i915/intel_panel.c | 48 +- drivers/gpu/drm/i915/intel_pm.c | 1466 ++++---- drivers/gpu/drm/i915/intel_psr.c | 118 +- drivers/gpu/drm/i915/intel_ringbuffer.c | 1323 ++++---- drivers/gpu/drm/i915/intel_ringbuffer.h | 176 +- drivers/gpu/drm/i915/intel_runtime_pm.c | 282 +- drivers/gpu/drm/i915/intel_sdvo.c | 87 +- drivers/gpu/drm/i915/intel_sideband.c | 32 +- drivers/gpu/drm/i915/intel_sprite.c | 75 +- drivers/gpu/drm/i915/intel_tv.c | 19 +- drivers/gpu/drm/i915/intel_uncore.c | 328 +- drivers/gpu/drm/i915/intel_vbt_defs.h | 6 + drivers/gpu/drm/imx/Kconfig | 1 - drivers/gpu/drm/imx/dw_hdmi-imx.c | 32 +- drivers/gpu/drm/imx/imx-drm-core.c | 121 +- drivers/gpu/drm/imx/imx-drm.h | 21 +- drivers/gpu/drm/imx/imx-ldb.c | 189 +- drivers/gpu/drm/imx/imx-tve.c | 97 +- drivers/gpu/drm/imx/ipuv3-crtc.c | 400 +-- drivers/gpu/drm/imx/ipuv3-plane.c | 548 ++- drivers/gpu/drm/imx/ipuv3-plane.h | 16 - drivers/gpu/drm/imx/parallel-display.c | 149 +- drivers/gpu/drm/mediatek/Kconfig | 9 +- drivers/gpu/drm/mediatek/Makefile | 7 + drivers/gpu/drm/mediatek/mtk_cec.c | 265 ++ drivers/gpu/drm/mediatek/mtk_cec.h | 26 + drivers/gpu/drm/mediatek/mtk_drm_drv.c | 13 +- drivers/gpu/drm/mediatek/mtk_drm_plane.c | 1 + drivers/gpu/drm/mediatek/mtk_dsi.c | 9 - drivers/gpu/drm/mediatek/mtk_hdmi.c | 1828 ++++++++++ drivers/gpu/drm/mediatek/mtk_hdmi.h | 23 + drivers/gpu/drm/mediatek/mtk_hdmi_ddc.c | 358 ++ drivers/gpu/drm/mediatek/mtk_hdmi_regs.h | 238 ++ drivers/gpu/drm/mediatek/mtk_mipi_tx.c | 2 +- drivers/gpu/drm/mediatek/mtk_mt8173_hdmi_phy.c | 515 +++ drivers/gpu/drm/mgag200/Kconfig | 4 - drivers/gpu/drm/mgag200/mgag200_drv.c | 2 +- drivers/gpu/drm/mgag200/mgag200_main.c | 4 +- drivers/gpu/drm/mgag200/mgag200_mode.c | 9 +- drivers/gpu/drm/mgag200/mgag200_ttm.c | 13 +- drivers/gpu/drm/msm/Kconfig | 1 + drivers/gpu/drm/msm/Makefile | 2 + drivers/gpu/drm/msm/adreno/adreno_gpu.c | 17 +- drivers/gpu/drm/msm/dsi/dsi.c | 2 +- drivers/gpu/drm/msm/dsi/dsi_cfg.c | 8 + drivers/gpu/drm/msm/dsi/dsi_cfg.h | 2 + drivers/gpu/drm/msm/dsi/dsi_host.c | 69 +- drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 32 +- drivers/gpu/drm/msm/dsi/phy/dsi_phy.h | 2 + drivers/gpu/drm/msm/dsi/phy/dsi_phy_20nm.c | 4 +- drivers/gpu/drm/msm/dsi/phy/dsi_phy_28nm.c | 4 + drivers/gpu/drm/msm/dsi/phy/dsi_phy_28nm_8960.c | 2 + drivers/gpu/drm/msm/edp/edp_connector.c | 10 - drivers/gpu/drm/msm/hdmi/hdmi.c | 117 +- drivers/gpu/drm/msm/hdmi/hdmi.h | 14 + drivers/gpu/drm/msm/hdmi/hdmi_connector.c | 8 - drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c | 2 +- drivers/gpu/drm/msm/mdp/mdp4/mdp4_dtv_encoder.c | 31 +- drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.c | 44 +- drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.h | 2 + drivers/gpu/drm/msm/mdp/mdp4/mdp4_lvds_connector.c | 9 - drivers/gpu/drm/msm/mdp/mdp5/mdp5.xml.h | 203 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_cfg.c | 113 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_cmd_encoder.c | 14 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c | 16 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_ctl.c | 26 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_encoder.c | 10 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_irq.c | 125 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c | 339 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.h | 16 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_mdss.c | 235 ++ drivers/gpu/drm/msm/mdp/mdp5/mdp5_smp.c | 22 +- drivers/gpu/drm/msm/msm_atomic.c | 39 +- drivers/gpu/drm/msm/msm_drv.c | 270 +- drivers/gpu/drm/msm/msm_drv.h | 24 +- drivers/gpu/drm/msm/msm_fb.c | 12 +- drivers/gpu/drm/msm/msm_fbdev.c | 17 +- drivers/gpu/drm/msm/msm_gem.c | 139 +- drivers/gpu/drm/msm/msm_gem.h | 23 +- drivers/gpu/drm/msm/msm_gem_prime.c | 4 +- drivers/gpu/drm/msm/msm_gem_shrinker.c | 168 + drivers/gpu/drm/msm/msm_gem_submit.c | 26 +- drivers/gpu/drm/msm/msm_iommu.c | 6 +- drivers/gpu/drm/msm/msm_kms.h | 8 +- drivers/gpu/drm/msm/msm_perf.c | 7 +- drivers/gpu/drm/msm/msm_rd.c | 71 +- drivers/gpu/drm/msm/msm_ringbuffer.c | 6 +- drivers/gpu/drm/nouveau/Kconfig | 6 - drivers/gpu/drm/nouveau/dispnv04/crtc.c | 12 +- drivers/gpu/drm/nouveau/dispnv04/disp.c | 10 - drivers/gpu/drm/nouveau/dispnv04/tvnv17.c | 9 +- drivers/gpu/drm/nouveau/include/nvif/cl0080.h | 1 + drivers/gpu/drm/nouveau/include/nvif/class.h | 10 + drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 18 +- drivers/gpu/drm/nouveau/include/nvkm/core/tegra.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/engine/ce.h | 2 + drivers/gpu/drm/nouveau/include/nvkm/engine/disp.h | 2 + drivers/gpu/drm/nouveau/include/nvkm/engine/fifo.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/engine/gr.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/subdev/bios.h | 10 +- drivers/gpu/drm/nouveau/include/nvkm/subdev/fb.h | 4 + drivers/gpu/drm/nouveau/include/nvkm/subdev/ltc.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/subdev/mc.h | 14 +- drivers/gpu/drm/nouveau/include/nvkm/subdev/pci.h | 1 + .../gpu/drm/nouveau/include/nvkm/subdev/secboot.h | 3 +- drivers/gpu/drm/nouveau/include/nvkm/subdev/top.h | 9 +- drivers/gpu/drm/nouveau/include/nvkm/subdev/volt.h | 3 + drivers/gpu/drm/nouveau/nouveau_abi16.c | 1 + drivers/gpu/drm/nouveau/nouveau_acpi.c | 105 +- drivers/gpu/drm/nouveau/nouveau_bo.c | 75 +- drivers/gpu/drm/nouveau/nouveau_chan.c | 3 +- drivers/gpu/drm/nouveau/nouveau_display.c | 27 +- drivers/gpu/drm/nouveau/nouveau_display.h | 3 +- drivers/gpu/drm/nouveau/nouveau_drm.c | 36 +- drivers/gpu/drm/nouveau/nouveau_fence.h | 3 +- drivers/gpu/drm/nouveau/nouveau_hwmon.c | 36 + drivers/gpu/drm/nouveau/nouveau_ttm.c | 1 + drivers/gpu/drm/nouveau/nouveau_usif.c | 1 - drivers/gpu/drm/nouveau/nv04_fbcon.c | 4 +- drivers/gpu/drm/nouveau/nv50_display.c | 11 +- drivers/gpu/drm/nouveau/nv50_fbcon.c | 2 +- drivers/gpu/drm/nouveau/nvc0_fbcon.c | 2 +- drivers/gpu/drm/nouveau/nvkm/core/subdev.c | 6 +- drivers/gpu/drm/nouveau/nvkm/engine/ce/Kbuild | 2 + drivers/gpu/drm/nouveau/nvkm/engine/ce/gp100.c | 102 + drivers/gpu/drm/nouveau/nvkm/engine/ce/gp104.c | 44 + drivers/gpu/drm/nouveau/nvkm/engine/ce/priv.h | 1 + drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 72 + drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c | 12 +- drivers/gpu/drm/nouveau/nvkm/engine/device/user.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild | 9 + .../gpu/drm/nouveau/nvkm/engine/disp/basegp104.c | 38 + .../gpu/drm/nouveau/nvkm/engine/disp/channv50.h | 1 + .../gpu/drm/nouveau/nvkm/engine/disp/coregf119.c | 2 +- .../gpu/drm/nouveau/nvkm/engine/disp/coregp100.c | 38 + .../gpu/drm/nouveau/nvkm/engine/disp/coregp104.c | 78 + .../gpu/drm/nouveau/nvkm/engine/disp/dmacgf119.c | 2 +- .../gpu/drm/nouveau/nvkm/engine/disp/dmacgp104.c | 66 + .../gpu/drm/nouveau/nvkm/engine/disp/dmacnv50.h | 10 + drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c | 9 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gk104.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/disp/gk110.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/disp/gm107.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/disp/gm200.c | 1 + drivers/gpu/drm/nouveau/nvkm/engine/disp/gp100.c | 55 + drivers/gpu/drm/nouveau/nvkm/engine/disp/gp104.c | 81 + drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 136 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h | 2 + .../gpu/drm/nouveau/nvkm/engine/disp/ovlygk104.c | 2 +- .../gpu/drm/nouveau/nvkm/engine/disp/ovlygp104.c | 38 + .../gpu/drm/nouveau/nvkm/engine/disp/rootgp100.c | 58 + .../gpu/drm/nouveau/nvkm/engine/disp/rootgp104.c | 58 + .../gpu/drm/nouveau/nvkm/engine/disp/rootnv50.h | 2 + drivers/gpu/drm/nouveau/nvkm/engine/fifo/Kbuild | 2 + .../gpu/drm/nouveau/nvkm/engine/fifo/changk104.h | 1 + drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 9 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gp100.c | 67 + .../gpu/drm/nouveau/nvkm/engine/fifo/gpfifogp100.c | 34 + drivers/gpu/drm/nouveau/nvkm/engine/gr/Kbuild | 2 + drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.h | 2 + drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf117.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk104.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp100.c | 179 + drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 18 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.h | 2 + drivers/gpu/drm/nouveau/nvkm/engine/gr/gk20a.c | 1 - drivers/gpu/drm/nouveau/nvkm/engine/gr/gm200.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gp100.c | 171 + drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/base.c | 59 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/dp.c | 8 + drivers/gpu/drm/nouveau/nvkm/subdev/bios/image.c | 7 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/pll.c | 20 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/pmu.c | 20 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/rammap.c | 6 +- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gf100.c | 28 +- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk104.c | 8 +- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk20a.c | 394 +-- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk20a.h | 96 +- drivers/gpu/drm/nouveau/nvkm/subdev/clk/gm20b.c | 896 ++++- drivers/gpu/drm/nouveau/nvkm/subdev/fb/Kbuild | 3 + drivers/gpu/drm/nouveau/nvkm/subdev/fb/base.c | 6 + drivers/gpu/drm/nouveau/nvkm/subdev/fb/gf100.c | 19 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/gf100.h | 2 + drivers/gpu/drm/nouveau/nvkm/subdev/fb/gk104.c | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/fb/gk20a.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/gm107.c | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/fb/gm200.c | 19 + drivers/gpu/drm/nouveau/nvkm/subdev/fb/gp100.c | 69 + drivers/gpu/drm/nouveau/nvkm/subdev/fb/gp104.c | 43 + drivers/gpu/drm/nouveau/nvkm/subdev/fb/priv.h | 5 + drivers/gpu/drm/nouveau/nvkm/subdev/fb/ram.h | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgp100.c | 146 + drivers/gpu/drm/nouveau/nvkm/subdev/ltc/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gf100.c | 3 +- drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gm107.c | 12 +- drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gp100.c | 75 + drivers/gpu/drm/nouveau/nvkm/subdev/ltc/priv.h | 3 + drivers/gpu/drm/nouveau/nvkm/subdev/mc/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/mc/base.c | 118 +- drivers/gpu/drm/nouveau/nvkm/subdev/mc/g84.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/mc/g98.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/mc/gf100.c | 11 +- drivers/gpu/drm/nouveau/nvkm/subdev/mc/gk104.c | 2 + drivers/gpu/drm/nouveau/nvkm/subdev/mc/gk20a.c | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/mc/gp100.c | 103 + drivers/gpu/drm/nouveau/nvkm/subdev/mc/gt215.c | 9 +- drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv04.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv11.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv17.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv44.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv50.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/mc/priv.h | 12 +- drivers/gpu/drm/nouveau/nvkm/subdev/pci/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/pci/base.c | 14 +- drivers/gpu/drm/nouveau/nvkm/subdev/pci/gp100.c | 44 + drivers/gpu/drm/nouveau/nvkm/subdev/secboot/base.c | 28 +- .../gpu/drm/nouveau/nvkm/subdev/secboot/gm200.c | 88 +- .../gpu/drm/nouveau/nvkm/subdev/secboot/gm20b.c | 54 +- drivers/gpu/drm/nouveau/nvkm/subdev/secboot/priv.h | 18 +- drivers/gpu/drm/nouveau/nvkm/subdev/top/base.c | 28 +- drivers/gpu/drm/nouveau/nvkm/subdev/top/gk104.c | 39 +- drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.c | 14 +- drivers/gpu/drm/nouveau/nvkm/subdev/volt/gk20a.c | 27 +- drivers/gpu/drm/nouveau/nvkm/subdev/volt/gk20a.h | 11 +- drivers/gpu/drm/nouveau/nvkm/subdev/volt/gm20b.c | 40 +- drivers/gpu/drm/omapdrm/Kconfig | 5 - drivers/gpu/drm/omapdrm/displays/Kconfig | 28 +- drivers/gpu/drm/omapdrm/displays/Makefile | 28 +- .../gpu/drm/omapdrm/displays/connector-analog-tv.c | 11 +- drivers/gpu/drm/omapdrm/displays/connector-dvi.c | 5 +- drivers/gpu/drm/omapdrm/displays/connector-hdmi.c | 4 +- drivers/gpu/drm/omapdrm/displays/encoder-opa362.c | 3 +- drivers/gpu/drm/omapdrm/displays/encoder-tfp410.c | 3 +- .../gpu/drm/omapdrm/displays/encoder-tpd12s015.c | 3 +- drivers/gpu/drm/omapdrm/displays/panel-dpi.c | 26 +- drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c | 7 +- .../omapdrm/displays/panel-lgphilips-lb035q02.c | 22 +- .../drm/omapdrm/displays/panel-nec-nl8048hl11.c | 2 +- .../drm/omapdrm/displays/panel-sharp-ls037v7dw01.c | 4 +- .../drm/omapdrm/displays/panel-sony-acx565akm.c | 3 +- .../drm/omapdrm/displays/panel-tpo-td028ttec1.c | 3 +- .../drm/omapdrm/displays/panel-tpo-td043mtea1.c | 2 +- drivers/gpu/drm/omapdrm/dss/core.c | 5 +- drivers/gpu/drm/omapdrm/dss/dispc.c | 471 ++- drivers/gpu/drm/omapdrm/dss/dispc.h | 5 + drivers/gpu/drm/omapdrm/dss/dispc_coefs.c | 2 +- drivers/gpu/drm/omapdrm/dss/display.c | 2 +- drivers/gpu/drm/omapdrm/dss/dpi.c | 136 +- drivers/gpu/drm/omapdrm/dss/dsi.c | 57 +- drivers/gpu/drm/omapdrm/dss/dss-of.c | 10 +- drivers/gpu/drm/omapdrm/dss/dss.c | 255 +- drivers/gpu/drm/omapdrm/dss/dss.h | 45 +- drivers/gpu/drm/omapdrm/dss/dss_features.c | 46 +- drivers/gpu/drm/omapdrm/dss/dss_features.h | 1 - drivers/gpu/drm/omapdrm/dss/hdmi.h | 6 +- drivers/gpu/drm/omapdrm/dss/hdmi4.c | 11 +- drivers/gpu/drm/omapdrm/dss/hdmi5.c | 11 +- drivers/gpu/drm/omapdrm/dss/hdmi_common.c | 2 +- drivers/gpu/drm/omapdrm/dss/hdmi_phy.c | 2 +- drivers/gpu/drm/omapdrm/dss/hdmi_pll.c | 78 +- drivers/gpu/drm/omapdrm/dss/hdmi_wp.c | 2 +- drivers/gpu/drm/omapdrm/dss/omapdss.h | 871 ++++- drivers/gpu/drm/omapdrm/dss/output.c | 3 +- drivers/gpu/drm/omapdrm/dss/pll.c | 129 +- drivers/gpu/drm/omapdrm/dss/rfbi.c | 2 +- drivers/gpu/drm/omapdrm/dss/sdi.c | 2 +- drivers/gpu/drm/omapdrm/dss/venc.c | 3 +- drivers/gpu/drm/omapdrm/dss/video-pll.c | 9 +- drivers/gpu/drm/omapdrm/omap_connector.c | 10 - drivers/gpu/drm/omapdrm/omap_crtc.c | 56 + drivers/gpu/drm/omapdrm/omap_drv.c | 16 +- drivers/gpu/drm/omapdrm/omap_drv.h | 14 - drivers/gpu/drm/omapdrm/omap_fb.c | 20 +- drivers/gpu/drm/omapdrm/omap_fbdev.c | 8 +- drivers/gpu/drm/omapdrm/omap_gem.c | 15 +- drivers/gpu/drm/panel/panel-simple.c | 166 +- drivers/gpu/drm/qxl/Kconfig | 5 - drivers/gpu/drm/qxl/qxl_cmd.c | 2 +- drivers/gpu/drm/qxl/qxl_display.c | 11 +- drivers/gpu/drm/qxl/qxl_draw.c | 5 +- drivers/gpu/drm/qxl/qxl_drv.c | 2 +- drivers/gpu/drm/qxl/qxl_drv.h | 1 - drivers/gpu/drm/qxl/qxl_fb.c | 4 - drivers/gpu/drm/qxl/qxl_kms.c | 10 +- drivers/gpu/drm/qxl/qxl_release.c | 2 +- drivers/gpu/drm/qxl/qxl_ttm.c | 10 +- drivers/gpu/drm/radeon/atombios_crtc.c | 4 +- drivers/gpu/drm/radeon/atombios_encoders.c | 1 + drivers/gpu/drm/radeon/ci_dpm.c | 5 +- drivers/gpu/drm/radeon/cik.c | 17 +- drivers/gpu/drm/radeon/evergreen_cs.c | 7 + drivers/gpu/drm/radeon/evergreend.h | 1 + drivers/gpu/drm/radeon/radeon.h | 2 +- drivers/gpu/drm/radeon/radeon_acpi.c | 7 - drivers/gpu/drm/radeon/radeon_atombios.c | 4 +- drivers/gpu/drm/radeon/radeon_atpx_handler.c | 67 +- drivers/gpu/drm/radeon/radeon_connectors.c | 15 +- drivers/gpu/drm/radeon/radeon_device.c | 4 + drivers/gpu/drm/radeon/radeon_display.c | 24 +- drivers/gpu/drm/radeon/radeon_drv.c | 26 +- drivers/gpu/drm/radeon/radeon_kms.c | 5 +- drivers/gpu/drm/radeon/radeon_legacy_crtc.c | 4 +- drivers/gpu/drm/radeon/radeon_pm.c | 13 +- drivers/gpu/drm/radeon/radeon_ttm.c | 10 +- drivers/gpu/drm/radeon/si.c | 45 +- drivers/gpu/drm/rcar-du/Kconfig | 1 - drivers/gpu/drm/rcar-du/Makefile | 4 +- drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 2 +- drivers/gpu/drm/rcar-du/rcar_du_drv.c | 17 +- drivers/gpu/drm/rcar-du/rcar_du_encoder.c | 15 +- drivers/gpu/drm/rcar-du/rcar_du_encoder.h | 10 +- drivers/gpu/drm/rcar-du/rcar_du_hdmicon.c | 117 - drivers/gpu/drm/rcar-du/rcar_du_hdmicon.h | 31 - drivers/gpu/drm/rcar-du/rcar_du_hdmienc.c | 68 +- drivers/gpu/drm/rcar-du/rcar_du_kms.c | 10 +- drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c | 1 - drivers/gpu/drm/rcar-du/rcar_du_plane.c | 20 +- drivers/gpu/drm/rcar-du/rcar_du_regs.h | 5 +- drivers/gpu/drm/rcar-du/rcar_du_vgacon.c | 3 - drivers/gpu/drm/rockchip/Kconfig | 5 +- drivers/gpu/drm/rockchip/analogix_dp-rockchip.c | 189 +- drivers/gpu/drm/rockchip/dw-mipi-dsi.c | 9 - drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 1 - drivers/gpu/drm/rockchip/inno_hdmi.c | 9 - drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 210 +- drivers/gpu/drm/rockchip/rockchip_drm_drv.h | 12 +- drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 81 +- drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c | 5 +- drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 2 +- drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 90 +- drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 7 +- drivers/gpu/drm/shmobile/Kconfig | 1 - drivers/gpu/drm/shmobile/shmob_drm_crtc.c | 4 +- drivers/gpu/drm/shmobile/shmob_drm_drv.c | 3 +- drivers/gpu/drm/sis/sis_mm.c | 2 +- drivers/gpu/drm/sti/Kconfig | 1 + drivers/gpu/drm/sti/sti_awg_utils.c | 4 +- drivers/gpu/drm/sti/sti_compositor.c | 26 +- drivers/gpu/drm/sti/sti_compositor.h | 3 + drivers/gpu/drm/sti/sti_crtc.c | 71 +- drivers/gpu/drm/sti/sti_cursor.c | 39 +- drivers/gpu/drm/sti/sti_drv.c | 148 +- drivers/gpu/drm/sti/sti_drv.h | 1 + drivers/gpu/drm/sti/sti_dvo.c | 43 +- drivers/gpu/drm/sti/sti_gdp.c | 46 +- drivers/gpu/drm/sti/sti_hda.c | 43 +- drivers/gpu/drm/sti/sti_hdmi.c | 350 +- drivers/gpu/drm/sti/sti_hdmi.h | 13 + drivers/gpu/drm/sti/sti_hqvdp.c | 40 +- drivers/gpu/drm/sti/sti_mixer.c | 12 +- drivers/gpu/drm/sti/sti_mixer.h | 2 + drivers/gpu/drm/sti/sti_plane.c | 40 +- drivers/gpu/drm/sti/sti_plane.h | 9 +- drivers/gpu/drm/sti/sti_tvout.c | 43 +- drivers/gpu/drm/sti/sti_vid.c | 12 +- drivers/gpu/drm/sti/sti_vid.h | 2 + drivers/gpu/drm/sti/sti_vtg.c | 3 +- drivers/gpu/drm/sun4i/sun4i_crtc.c | 12 + drivers/gpu/drm/sun4i/sun4i_drv.c | 13 +- drivers/gpu/drm/sun4i/sun4i_framebuffer.c | 3 +- drivers/gpu/drm/sun4i/sun4i_rgb.c | 10 - drivers/gpu/drm/sun4i/sun4i_tv.c | 9 - drivers/gpu/drm/tegra/dc.c | 176 +- drivers/gpu/drm/tegra/dpaux.c | 245 +- drivers/gpu/drm/tegra/drm.c | 4 +- drivers/gpu/drm/tegra/drm.h | 2 - drivers/gpu/drm/tegra/dsi.c | 248 +- drivers/gpu/drm/tegra/fb.c | 2 +- drivers/gpu/drm/tegra/hdmi.c | 508 ++- drivers/gpu/drm/tegra/hdmi.h | 21 +- drivers/gpu/drm/tegra/output.c | 9 +- drivers/gpu/drm/tegra/rgb.c | 1 - drivers/gpu/drm/tegra/sor.c | 717 ++-- drivers/gpu/drm/tegra/sor.h | 3 + drivers/gpu/drm/tilcdc/Kconfig | 1 - drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 2 +- drivers/gpu/drm/tilcdc/tilcdc_drv.c | 3 +- drivers/gpu/drm/ttm/ttm_bo.c | 165 +- drivers/gpu/drm/ttm/ttm_bo_util.c | 111 +- drivers/gpu/drm/ttm/ttm_bo_vm.c | 19 +- drivers/gpu/drm/ttm/ttm_tt.c | 6 +- drivers/gpu/drm/udl/Kconfig | 5 - drivers/gpu/drm/udl/udl_drv.c | 1 - drivers/gpu/drm/udl/udl_modeset.c | 2 +- drivers/gpu/drm/vc4/vc4_bo.c | 2 - drivers/gpu/drm/vc4/vc4_crtc.c | 183 +- drivers/gpu/drm/vc4/vc4_dpi.c | 23 +- drivers/gpu/drm/vc4/vc4_drv.c | 70 +- drivers/gpu/drm/vc4/vc4_drv.h | 12 +- drivers/gpu/drm/vc4/vc4_gem.c | 11 +- drivers/gpu/drm/vc4/vc4_hdmi.c | 22 +- drivers/gpu/drm/vc4/vc4_kms.c | 15 +- drivers/gpu/drm/vc4/vc4_plane.c | 13 +- drivers/gpu/drm/vc4/vc4_qpu_defines.h | 17 +- drivers/gpu/drm/vc4/vc4_regs.h | 22 +- drivers/gpu/drm/vc4/vc4_validate.c | 13 +- drivers/gpu/drm/vc4/vc4_validate_shaders.c | 449 ++- drivers/gpu/drm/vgem/Makefile | 2 +- drivers/gpu/drm/vgem/vgem_drv.c | 291 +- drivers/gpu/drm/vgem/vgem_drv.h | 20 +- drivers/gpu/drm/vgem/vgem_fence.c | 283 ++ drivers/gpu/drm/via/via_mm.c | 2 +- drivers/gpu/drm/virtio/Kconfig | 4 - drivers/gpu/drm/virtio/virtgpu_display.c | 187 +- drivers/gpu/drm/virtio/virtgpu_drm_bus.c | 10 - drivers/gpu/drm/virtio/virtgpu_drv.c | 3 +- drivers/gpu/drm/virtio/virtgpu_drv.h | 3 +- drivers/gpu/drm/virtio/virtgpu_plane.c | 150 +- drivers/gpu/drm/virtio/virtgpu_ttm.c | 6 + drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c | 7 +- drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 8 +- drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 1 + drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 4 +- drivers/gpu/drm/vmwgfx/vmwgfx_fence.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 8 +- drivers/gpu/drm/vmwgfx/vmwgfx_kms.h | 4 +- drivers/gpu/host1x/cdma.c | 42 +- drivers/gpu/host1x/channel.c | 5 +- drivers/gpu/host1x/debug.c | 38 +- drivers/gpu/host1x/dev.c | 16 +- drivers/gpu/host1x/dev.h | 38 +- drivers/gpu/host1x/hw/cdma_hw.c | 23 +- drivers/gpu/host1x/hw/channel_hw.c | 5 +- drivers/gpu/host1x/hw/debug_hw.c | 36 +- drivers/gpu/host1x/hw/intr_hw.c | 30 +- drivers/gpu/host1x/hw/syncpt_hw.c | 10 +- drivers/gpu/host1x/intr.c | 16 +- drivers/gpu/host1x/intr.h | 4 +- drivers/gpu/host1x/job.c | 8 +- drivers/gpu/host1x/syncpt.c | 58 +- drivers/gpu/host1x/syncpt.h | 8 +- drivers/gpu/ipu-v3/ipu-dc.c | 9 +- drivers/gpu/ipu-v3/ipu-di.c | 3 - drivers/gpu/ipu-v3/ipu-dmfc.c | 213 +- drivers/gpu/vga/vga_switcheroo.c | 62 +- drivers/media/platform/omap/omap_vout.c | 2 +- drivers/media/platform/omap/omap_voutdef.h | 2 +- drivers/media/platform/omap/omap_voutlib.c | 2 +- drivers/net/ethernet/mellanox/mlx4/pd.c | 4 +- drivers/pinctrl/pinconf-generic.c | 8 + drivers/platform/x86/apple-gmux.c | 55 +- drivers/staging/android/sync.h | 3 +- .../omap2/omapfb/displays/connector-analog-tv.c | 10 +- .../fbdev/omap2/omapfb/displays/connector-dvi.c | 60 +- .../fbdev/omap2/omapfb/displays/connector-hdmi.c | 44 +- .../fbdev/omap2/omapfb/displays/encoder-opa362.c | 2 +- .../fbdev/omap2/omapfb/displays/encoder-tfp410.c | 46 +- .../omap2/omapfb/displays/encoder-tpd12s015.c | 3 +- .../video/fbdev/omap2/omapfb/displays/panel-dpi.c | 2 +- .../fbdev/omap2/omapfb/displays/panel-dsi-cm.c | 54 +- .../omapfb/displays/panel-lgphilips-lb035q02.c | 58 +- .../omap2/omapfb/displays/panel-nec-nl8048hl11.c | 47 +- .../omapfb/displays/panel-sharp-ls037v7dw01.c | 83 +- .../omap2/omapfb/displays/panel-sony-acx565akm.c | 2 +- .../omap2/omapfb/displays/panel-tpo-td028ttec1.c | 45 +- .../omap2/omapfb/displays/panel-tpo-td043mtea1.c | 46 +- drivers/video/fbdev/omap2/omapfb/dss/apply.c | 2 +- drivers/video/fbdev/omap2/omapfb/dss/core.c | 4 +- .../video/fbdev/omap2/omapfb/dss/dispc-compat.c | 2 +- drivers/video/fbdev/omap2/omapfb/dss/dispc.c | 2 +- drivers/video/fbdev/omap2/omapfb/dss/dispc_coefs.c | 2 +- .../video/fbdev/omap2/omapfb/dss/display-sysfs.c | 2 +- drivers/video/fbdev/omap2/omapfb/dss/display.c | 2 +- drivers/video/fbdev/omap2/omapfb/dss/dpi.c | 2 +- drivers/video/fbdev/omap2/omapfb/dss/dsi.c | 2 +- drivers/video/fbdev/omap2/omapfb/dss/dss-of.c | 2 +- drivers/video/fbdev/omap2/omapfb/dss/dss.c | 2 +- drivers/video/fbdev/omap2/omapfb/dss/dss.h | 11 + .../video/fbdev/omap2/omapfb/dss/dss_features.c | 2 +- drivers/video/fbdev/omap2/omapfb/dss/hdmi.h | 3 +- drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c | 2 +- drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c | 2 +- drivers/video/fbdev/omap2/omapfb/dss/hdmi_common.c | 2 +- drivers/video/fbdev/omap2/omapfb/dss/hdmi_phy.c | 2 +- drivers/video/fbdev/omap2/omapfb/dss/hdmi_pll.c | 2 +- drivers/video/fbdev/omap2/omapfb/dss/hdmi_wp.c | 2 +- .../video/fbdev/omap2/omapfb/dss/manager-sysfs.c | 2 +- drivers/video/fbdev/omap2/omapfb/dss/manager.c | 3 +- drivers/video/fbdev/omap2/omapfb/dss/output.c | 2 +- .../video/fbdev/omap2/omapfb/dss/overlay-sysfs.c | 2 +- drivers/video/fbdev/omap2/omapfb/dss/overlay.c | 2 +- drivers/video/fbdev/omap2/omapfb/dss/pll.c | 2 +- drivers/video/fbdev/omap2/omapfb/dss/rfbi.c | 2 +- drivers/video/fbdev/omap2/omapfb/dss/sdi.c | 2 +- drivers/video/fbdev/omap2/omapfb/dss/venc.c | 2 +- drivers/video/fbdev/omap2/omapfb/dss/video-pll.c | 2 +- drivers/video/fbdev/omap2/omapfb/omapfb-ioctl.c | 2 +- drivers/video/fbdev/omap2/omapfb/omapfb-main.c | 2 +- drivers/video/fbdev/omap2/omapfb/omapfb-sysfs.c | 2 +- drivers/video/fbdev/omap2/omapfb/omapfb.h | 2 +- include/drm/bridge/analogix_dp.h | 9 +- include/drm/drmP.h | 167 +- include/drm/drm_atomic.h | 82 +- include/drm/drm_atomic_helper.h | 42 +- include/drm/drm_auth.h | 59 + include/drm/drm_crtc.h | 858 +++-- include/drm/drm_crtc_helper.h | 3 - include/drm/drm_dp_helper.h | 11 +- include/drm/drm_dp_mst_helper.h | 141 +- include/drm/drm_fb_cma_helper.h | 1 + include/drm/drm_fb_helper.h | 11 - include/drm/drm_fourcc.h | 37 + include/drm/drm_irq.h | 183 + include/drm/drm_legacy.h | 2 + include/drm/drm_mipi_dsi.h | 3 + include/drm/drm_modes.h | 2 + include/drm/drm_modeset_helper_vtables.h | 49 +- include/drm/drm_plane_helper.h | 1 + include/drm/drm_simple_kms_helper.h | 94 + include/drm/i915_drm.h | 3 + include/drm/intel-gtt.h | 3 + include/drm/ttm/ttm_bo_api.h | 4 +- include/drm/ttm/ttm_bo_driver.h | 35 +- include/linux/dma-buf.h | 2 - include/linux/fence-array.h | 73 + include/linux/fence.h | 13 +- include/linux/io-mapping.h | 10 +- include/linux/pinctrl/pinconf-generic.h | 2 + include/linux/platform_data/omapdss.h | 37 + include/linux/vga_switcheroo.h | 2 + include/sound/hdmi-codec.h | 13 +- include/sound/omap-hdmi-audio.h | 9 +- include/uapi/drm/amdgpu_drm.h | 32 +- include/uapi/drm/i915_drm.h | 3 + include/uapi/drm/msm_drm.h | 25 +- include/uapi/drm/vc4_drm.h | 13 + include/uapi/drm/vgem_drm.h | 62 + include/video/imx-ipu-v3.h | 3 - include/video/omap-panel-data.h | 157 - include/video/{omapdss.h => omapfb_dss.h} | 80 +- scripts/kernel-doc | 393 ++- sound/soc/codecs/hdmi-codec.c | 15 +- sound/soc/omap/omap-hdmi-audio.c | 1 - 947 files changed, 49505 insertions(+), 25855 deletions(-) create mode 100644 Documentation/.gitignore delete mode 100644 Documentation/DocBook/gpu.tmpl create mode 100644 Documentation/Makefile.sphinx create mode 100644 Documentation/conf.py create mode 100644 Documentation/devicetree/bindings/display/arm,malidp.txt create mode 100644 Documentation/devicetree/bindings/display/bridge/sii902x.txt create mode 100644 Documentation/devicetree/bindings/display/bridge/toshiba,tc358767.txt create mode 100644 Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.txt delete mode 100644 Documentation/devicetree/bindings/display/msm/mdp.txt create mode 100644 Documentation/devicetree/bindings/display/msm/mdp4.txt create mode 100644 Documentation/devicetree/bindings/display/msm/mdp5.txt create mode 100644 Documentation/devicetree/bindings/display/panel/lg,lp079qx1-sp0v.txt create mode 100644 Documentation/devicetree/bindings/display/panel/lg,lp097qx1-spa1.txt create mode 100644 Documentation/devicetree/bindings/display/panel/samsung,lsn122dl01-c01.txt create mode 100644 Documentation/devicetree/bindings/display/panel/sharp,lq101k1ly04.txt create mode 100644 Documentation/devicetree/bindings/display/panel/sharp,lq123p1jx31.txt create mode 100644 Documentation/devicetree/bindings/display/panel/starry,kr122ea0sra.txt create mode 100644 Documentation/devicetree/bindings/pinctrl/nvidia,tegra124-dpaux-padctl.txt create mode 100644 Documentation/gpu/drm-internals.rst create mode 100644 Documentation/gpu/drm-kms-helpers.rst create mode 100644 Documentation/gpu/drm-kms.rst create mode 100644 Documentation/gpu/drm-mm.rst create mode 100644 Documentation/gpu/drm-uapi.rst create mode 100644 Documentation/gpu/i915.rst create mode 100644 Documentation/gpu/index.rst create mode 100644 Documentation/gpu/introduction.rst create mode 100644 Documentation/gpu/kms-properties.csv create mode 100644 Documentation/gpu/vga-switcheroo.rst create mode 100644 Documentation/index.rst create mode 100644 Documentation/sphinx/convert_template.sed create mode 100644 Documentation/sphinx/kernel-doc.py create mode 100644 Documentation/sphinx/post_convert.sed create mode 100755 Documentation/sphinx/tmplcvt create mode 100644 drivers/dma-buf/fence-array.c rename drivers/gpu/drm/amd/amdgpu/{iceland_smumgr.h => iceland_smum.h} (96%) create mode 100644 drivers/gpu/drm/arc/arcpgu_sim.c create mode 100644 drivers/gpu/drm/arm/malidp_crtc.c create mode 100644 drivers/gpu/drm/arm/malidp_drv.c create mode 100644 drivers/gpu/drm/arm/malidp_drv.h create mode 100644 drivers/gpu/drm/arm/malidp_hw.c create mode 100644 drivers/gpu/drm/arm/malidp_hw.h create mode 100644 drivers/gpu/drm/arm/malidp_planes.c create mode 100644 drivers/gpu/drm/arm/malidp_regs.h create mode 100644 drivers/gpu/drm/bridge/adv7511/Kconfig create mode 100644 drivers/gpu/drm/bridge/adv7511/Makefile rename drivers/gpu/drm/{i2c => bridge/adv7511}/adv7511.h (82%) rename drivers/gpu/drm/{i2c/adv7511.c => bridge/adv7511/adv7511_drv.c} (80%) create mode 100644 drivers/gpu/drm/bridge/adv7511/adv7533.c create mode 100644 drivers/gpu/drm/bridge/sii902x.c create mode 100644 drivers/gpu/drm/bridge/tc358767.c create mode 100644 drivers/gpu/drm/drm_fourcc.c create mode 100644 drivers/gpu/drm/drm_simple_kms_helper.c create mode 100644 drivers/gpu/drm/i915/gvt/Makefile create mode 100644 drivers/gpu/drm/i915/gvt/debug.h create mode 100644 drivers/gpu/drm/i915/gvt/gvt.c create mode 100644 drivers/gpu/drm/i915/gvt/gvt.h create mode 100644 drivers/gpu/drm/i915/gvt/hypercall.h create mode 100644 drivers/gpu/drm/i915/gvt/mpt.h delete mode 100644 drivers/gpu/drm/i915/i915_dma.c create mode 100644 drivers/gpu/drm/i915/i915_gem_dmabuf.h create mode 100644 drivers/gpu/drm/i915/i915_pci.c create mode 100644 drivers/gpu/drm/i915/i915_pvinfo.h create mode 100644 drivers/gpu/drm/i915/intel_breadcrumbs.c create mode 100644 drivers/gpu/drm/i915/intel_device_info.c create mode 100644 drivers/gpu/drm/i915/intel_dp_aux_backlight.c create mode 100644 drivers/gpu/drm/i915/intel_dpio_phy.c create mode 100644 drivers/gpu/drm/i915/intel_dsi_dcs_backlight.c create mode 100644 drivers/gpu/drm/i915/intel_gvt.c create mode 100644 drivers/gpu/drm/i915/intel_gvt.h create mode 100644 drivers/gpu/drm/mediatek/mtk_cec.c create mode 100644 drivers/gpu/drm/mediatek/mtk_cec.h create mode 100644 drivers/gpu/drm/mediatek/mtk_hdmi.c create mode 100644 drivers/gpu/drm/mediatek/mtk_hdmi.h create mode 100644 drivers/gpu/drm/mediatek/mtk_hdmi_ddc.c create mode 100644 drivers/gpu/drm/mediatek/mtk_hdmi_regs.h create mode 100644 drivers/gpu/drm/mediatek/mtk_mt8173_hdmi_phy.c create mode 100644 drivers/gpu/drm/msm/mdp/mdp5/mdp5_mdss.c create mode 100644 drivers/gpu/drm/msm/msm_gem_shrinker.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/ce/gp100.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/ce/gp104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/basegp104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/coregp100.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/coregp104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/dmacgp104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/gp100.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/gp104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/ovlygp104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgp100.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgp104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/fifo/gp100.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/fifo/gpfifogp100.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp100.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/gr/gp100.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/fb/gp100.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/fb/gp104.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgp100.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gp100.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/mc/gp100.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/pci/gp100.c delete mode 100644 drivers/gpu/drm/rcar-du/rcar_du_hdmicon.c delete mode 100644 drivers/gpu/drm/rcar-du/rcar_du_hdmicon.h create mode 100644 drivers/gpu/drm/vgem/vgem_fence.c create mode 100644 include/drm/drm_auth.h create mode 100644 include/drm/drm_fourcc.h create mode 100644 include/drm/drm_irq.h create mode 100644 include/drm/drm_simple_kms_helper.h create mode 100644 include/linux/fence-array.h create mode 100644 include/linux/platform_data/omapdss.h create mode 100644 include/uapi/drm/vgem_drm.h rename include/video/{omapdss.h => omapfb_dss.h} (91%)
On Mon, Aug 1, 2016 at 9:32 PM, Dave Airlie airlied@linux.ie wrote:
This is the main drm pull request for 4.8, I'm down with a cold at the moment so hopefully this isn't in too bad a state, I finished pulling stuff last week mostly (nouveau fixes just went in today), so only this message should be influenced by illness. Apologies to anyone who's major feature I missed :-)
i915: BXT support enabled by default GVT-g infrastructure GuC command submission and fixes BXT workarounds SKL/BKL workarounds Demidlayering device registration Thundering herd fixes Missing pci ids Atomic updates
Hmm. I did the merge and pushed it out, but testing it on my laptop shows some very annoying flickering problem.
The screen goes dark for a very short while (one frame? Who knows? Seems longer occasionally). I have no idea what triggers it, but it happens quite a lot when it happens. Like once every second or two. And it seems to happen most of the time, although right now it happens to be behaving nicely, so sometimes it goes for a while without the flickering.
Things *work*, but the flickering is nasty enough to make the end result painful to use.
The only thing I see in dmesg that looks bad is
[drm:intel_set_cpu_fifo_underrun_reporting [i915]] *ERROR* uncleared fifo underrun on pipe A [drm:intel_cpu_fifo_underrun_irq_handler [i915]] *ERROR* CPU pipe A FIFO underrun
but I've seen that before, and it happens a couple of times during boot. Not once per second.
This is my old Vaio 11 Pro, now running Fedora 24 (up-to-date as of today).
So it's bog-standard intel graphics (i5-4200U - Haswell ULT).
Suggestions to try?
Linus
On Tue, Aug 2, 2016 at 4:26 AM, Linus Torvalds torvalds@linux-foundation.org wrote:
On Mon, Aug 1, 2016 at 9:32 PM, Dave Airlie airlied@linux.ie wrote:
This is the main drm pull request for 4.8, I'm down with a cold at the moment so hopefully this isn't in too bad a state, I finished pulling stuff last week mostly (nouveau fixes just went in today), so only this message should be influenced by illness. Apologies to anyone who's major feature I missed :-)
i915: BXT support enabled by default GVT-g infrastructure GuC command submission and fixes BXT workarounds SKL/BKL workarounds Demidlayering device registration Thundering herd fixes Missing pci ids Atomic updates
Hmm. I did the merge and pushed it out, but testing it on my laptop shows some very annoying flickering problem.
The screen goes dark for a very short while (one frame? Who knows? Seems longer occasionally). I have no idea what triggers it, but it happens quite a lot when it happens. Like once every second or two. And it seems to happen most of the time, although right now it happens to be behaving nicely, so sometimes it goes for a while without the flickering.
Things *work*, but the flickering is nasty enough to make the end result painful to use.
The only thing I see in dmesg that looks bad is
[drm:intel_set_cpu_fifo_underrun_reporting [i915]] *ERROR* uncleared fifo underrun on pipe A [drm:intel_cpu_fifo_underrun_irq_handler [i915]] *ERROR* CPU pipe A FIFO underrun
but I've seen that before, and it happens a couple of times during boot. Not once per second.
This is my old Vaio 11 Pro, now running Fedora 24 (up-to-date as of today).
So it's bog-standard intel graphics (i5-4200U - Haswell ULT).
Suggestions to try?
psr or fbc are the likely culprits. More likely fbc if the underruns correlate with the flicker (but note that by default we only report them once per modest, needs to be reset with a dpms or suspend/resume). Driver should even pick up the new module option settings at runtime (but again you need to force a modeset, just suspend/resume quickly), so fast to test. -Daniel
On Tue, Aug 02, 2016 at 10:00:12AM +0200, Daniel Vetter wrote:
On Tue, Aug 2, 2016 at 4:26 AM, Linus Torvalds torvalds@linux-foundation.org wrote:
On Mon, Aug 1, 2016 at 9:32 PM, Dave Airlie airlied@linux.ie wrote:
This is the main drm pull request for 4.8, I'm down with a cold at the moment so hopefully this isn't in too bad a state, I finished pulling stuff last week mostly (nouveau fixes just went in today), so only this message should be influenced by illness. Apologies to anyone who's major feature I missed :-)
i915: BXT support enabled by default GVT-g infrastructure GuC command submission and fixes BXT workarounds SKL/BKL workarounds Demidlayering device registration Thundering herd fixes Missing pci ids Atomic updates
Hmm. I did the merge and pushed it out, but testing it on my laptop shows some very annoying flickering problem.
The screen goes dark for a very short while (one frame? Who knows? Seems longer occasionally). I have no idea what triggers it, but it happens quite a lot when it happens. Like once every second or two. And it seems to happen most of the time, although right now it happens to be behaving nicely, so sometimes it goes for a while without the flickering.
Things *work*, but the flickering is nasty enough to make the end result painful to use.
The only thing I see in dmesg that looks bad is
[drm:intel_set_cpu_fifo_underrun_reporting [i915]] *ERROR* uncleared fifo underrun on pipe A [drm:intel_cpu_fifo_underrun_irq_handler [i915]] *ERROR* CPU pipe A FIFO underrun
but I've seen that before, and it happens a couple of times during boot. Not once per second.
This is my old Vaio 11 Pro, now running Fedora 24 (up-to-date as of today).
So it's bog-standard intel graphics (i5-4200U - Haswell ULT).
Suggestions to try?
psr or fbc are the likely culprits. More likely fbc if the underruns correlate with the flicker (but note that by default we only report them once per modest, needs to be reset with a dpms or suspend/resume). Driver should even pick up the new module option settings at runtime (but again you need to force a modeset, just suspend/resume quickly), so fast to test.
I think FBC is still disabled by default on HSW.
So PSR seems more likely. The underruns might point at some watermark fail though :(
I have a couple of pending PSR patches you may want to try as well, if i915.enable_psr=0 helps.
First set is here: git://github.com/vsyrjala/linux.git psr_setup_time_2 This should be perfectly safe to go in actually, as it will only result in disabling PSR with certain panels.
The second set is here: git://github.com/vsyrjala/linux.git psr_fixes_2 This one I think is causing some kind of slight regression on one machine in our CI system. Still not sure what's going on there.
On Tue, Aug 2, 2016 at 4:10 AM, Ville Syrjälä ville.syrjala@linux.intel.com wrote:
I have a couple of pending PSR patches you may want to try as well, if i915.enable_psr=0 helps.
Yes. i915.enable_psr=0 seems to make the bad flickering go away.
I'll try your git trees out later, but what exactly changed with regards to psr lately? It's set as a "dangerous" option, and even just clearing it caused
Setting dangerous option enable_psr - tainting kernel
which seems entirely bogus.
Linus
On Tue, 02 Aug 2016, Linus Torvalds torvalds@linux-foundation.org wrote:
On Tue, Aug 2, 2016 at 4:10 AM, Ville Syrjälä ville.syrjala@linux.intel.com wrote:
I have a couple of pending PSR patches you may want to try as well, if i915.enable_psr=0 helps.
Yes. i915.enable_psr=0 seems to make the bad flickering go away.
I'll try your git trees out later, but what exactly changed with regards to psr lately? It's set as a "dangerous" option, and even just clearing it caused
Setting dangerous option enable_psr - tainting kernel
which seems entirely bogus.
The warning comes from kernel/params.c for module_param_named_unsafe() which has no way of knowing which values are safe, and complains if the option is set at all.
BR, Jani.
On Tue, Aug 2, 2016 at 4:10 AM, Ville Syrjälä ville.syrjala@linux.intel.com wrote:
So PSR seems more likely. The underruns might point at some watermark fail though :(
I have a couple of pending PSR patches you may want to try as well, if i915.enable_psr=0 helps.
First set is here: git://github.com/vsyrjala/linux.git psr_setup_time_2 This should be perfectly safe to go in actually, as it will only result in disabling PSR with certain panels.
This first git pull fixes it for me, as far as I can tell. I'm not sure that the problem is 100% reproducible, but I booted into each kernel twice, and the current git tree is broken, while with your psr_setup_time_2 branch pulled it works. So it does seem to be the fix.
The second set is here: git://github.com/vsyrjala/linux.git psr_fixes_2
I didn't even test that one.
Should I just pull that psr_setup_time2 branch for real? I'd like to get a real pull request with explanations etc, but other than that it looks good to go.
Linus
On Tue, Aug 2, 2016 at 6:40 PM, Linus Torvalds torvalds@linux-foundation.org wrote:
On Tue, Aug 2, 2016 at 4:10 AM, Ville Syrjälä ville.syrjala@linux.intel.com wrote:
So PSR seems more likely. The underruns might point at some watermark fail though :(
I have a couple of pending PSR patches you may want to try as well, if i915.enable_psr=0 helps.
First set is here: git://github.com/vsyrjala/linux.git psr_setup_time_2 This should be perfectly safe to go in actually, as it will only result in disabling PSR with certain panels.
This first git pull fixes it for me, as far as I can tell. I'm not sure that the problem is 100% reproducible, but I booted into each kernel twice, and the current git tree is broken, while with your psr_setup_time_2 branch pulled it works. So it does seem to be the fix.
The second set is here: git://github.com/vsyrjala/linux.git psr_fixes_2
I didn't even test that one.
Should I just pull that psr_setup_time2 branch for real? I'd like to get a real pull request with explanations etc, but other than that it looks good to go.
Hm, I reviewed all the patches from Ville already. I gues they were stuck because we didn't have someone who reported that it's fixed, plus they lacked an ack from Dave for the 2 core patches. tbh I'd just apply them all to drm-intel-fixes and then send out a pull for that (there's two more bugfix patches on it which missed Dave's main pull by a notch). Dave/Jani? -Daniel
On Tue, Aug 02, 2016 at 08:01:14PM +0200, Daniel Vetter wrote:
On Tue, Aug 2, 2016 at 6:40 PM, Linus Torvalds torvalds@linux-foundation.org wrote:
On Tue, Aug 2, 2016 at 4:10 AM, Ville Syrjälä ville.syrjala@linux.intel.com wrote:
So PSR seems more likely. The underruns might point at some watermark fail though :(
I have a couple of pending PSR patches you may want to try as well, if i915.enable_psr=0 helps.
First set is here: git://github.com/vsyrjala/linux.git psr_setup_time_2 This should be perfectly safe to go in actually, as it will only result in disabling PSR with certain panels.
This first git pull fixes it for me, as far as I can tell. I'm not sure that the problem is 100% reproducible, but I booted into each kernel twice, and the current git tree is broken, while with your psr_setup_time_2 branch pulled it works. So it does seem to be the fix.
The second set is here: git://github.com/vsyrjala/linux.git psr_fixes_2
I didn't even test that one.
Should I just pull that psr_setup_time2 branch for real? I'd like to get a real pull request with explanations etc, but other than that it looks good to go.
Hm, I reviewed all the patches from Ville already. I gues they were stuck because we didn't have someone who reported that it's fixed, plus they lacked an ack from Dave for the 2 core patches.
+ they were part of a series that included a rotten apple responsible for a BAT regression
tbh I'd just apply them all to drm-intel-fixes and then send out a pull for that (there's two more bugfix patches on it which missed Dave's main pull by a notch). Dave/Jani?
-Daniel
Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch
On Mon, 1 Aug 2016, Linus Torvalds wrote:
This is the main drm pull request for 4.8, I'm down with a cold at the moment so hopefully this isn't in too bad a state, I finished pulling stuff last week mostly (nouveau fixes just went in today), so only this message should be influenced by illness. Apologies to anyone who's major feature I missed :-)
i915: BXT support enabled by default GVT-g infrastructure GuC command submission and fixes BXT workarounds SKL/BKL workarounds Demidlayering device registration Thundering herd fixes Missing pci ids Atomic updates
Hmm. I did the merge and pushed it out, but testing it on my laptop shows some very annoying flickering problem.
In addition to that, what I see with current git (HEAD == 731c7d3a205, i.e. the drm merge) is lockdep report during bootup about AB-BA between mode_config.mutex and fb_notifier_list rwsem; will probably not have time to look into it more (look at the code and / or bisect) until tomorrow, so sending out early as a heads-up.
Also, trying to suspend the machine to disk hangs, with the "suspend" LED constantly blinking, LCD being blank, but the machine never actually powering off. Not sure whether it might not be the very deadlock actually triggering for real.
[ 8.731638] fbcon: inteldrmfb (fb0) is primary device
[ 8.732611] ====================================================== [ 8.732612] [ INFO: possible circular locking dependency detected ] [ 8.732614] 4.7.0-10753-g731c7d3 #459 Not tainted [ 8.732614] ------------------------------------------------------- [ 8.732615] kworker/u8:3/60 is trying to acquire lock: [ 8.732650] (&dev->mode_config.mutex){+.+.+.}, at: [<ffffffffc02bfd00>] drm_modeset_lock_all+0x40/0x120 [drm] [ 8.732651] but task is already holding lock: [ 8.732657] ((fb_notifier_list).rwsem){++++.+}, at: [<ffffffff8d08fe2a>] __blocking_notifier_call_chain+0x3a/0x70 [ 8.732658] which lock already depends on the new lock.
[ 8.732658] the existing dependency chain (in reverse order) is: [ 8.732661] -> #1 ((fb_notifier_list).rwsem){++++.+}: [ 8.732665] [<ffffffff8d0c22d0>] lock_acquire+0xb0/0x1e0 [ 8.732669] [<ffffffff8d6a0b25>] down_write+0x55/0xc0 [ 8.732671] [<ffffffff8d08ffb1>] blocking_notifier_chain_register+0x21/0xb0 [ 8.732674] [<ffffffff8d3d1318>] fb_register_client+0x18/0x20 [ 8.732676] [<ffffffff8d3d0b88>] backlight_device_register+0x138/0x250 [ 8.732746] [<ffffffffc0568912>] intel_backlight_device_register+0xa2/0x160 [i915] [ 8.732791] [<ffffffffc053735e>] intel_connector_register+0xe/0x10 [i915] [ 8.732809] [<ffffffffc02ae389>] drm_connector_register+0x49/0x80 [drm] [ 8.732827] [<ffffffffc02b28a0>] drm_modeset_register_all+0x1d0/0x260 [drm] [ 8.732843] [<ffffffffc02a9c22>] drm_dev_register+0xc2/0xd0 [drm] [ 8.732878] [<ffffffffc04a6ce5>] i915_driver_load+0x745/0x13e0 [i915] [ 8.732914] [<ffffffffc04b173f>] i915_pci_probe+0x4f/0x70 [i915] [ 8.732917] [<ffffffff8d3af7d5>] local_pci_probe+0x45/0xa0 [ 8.732920] [<ffffffff8d3b0bf1>] pci_device_probe+0xe1/0x130 [ 8.732923] [<ffffffff8d489be8>] driver_probe_device+0x1a8/0x460 [ 8.732925] [<ffffffff8d489f6d>] __driver_attach+0xcd/0xf0 [ 8.732927] [<ffffffff8d4878a4>] bus_for_each_dev+0x64/0xa0 [ 8.732929] [<ffffffff8d4894ee>] driver_attach+0x1e/0x20 [ 8.732931] [<ffffffff8d488f83>] bus_add_driver+0x1d3/0x290 [ 8.732933] [<ffffffff8d48ad30>] driver_register+0x60/0xe0 [ 8.732935] [<ffffffff8d3af100>] __pci_register_driver+0x60/0x70 [ 8.732972] [<ffffffffc05ec05d>] i915_init+0x5d/0x64 [i915] [ 8.732975] [<ffffffff8d00041d>] do_one_initcall+0x3d/0x160 [ 8.732979] [<ffffffff8d182bfd>] do_init_module+0x60/0x1dc [ 8.732982] [<ffffffff8d107a5e>] load_module+0x142e/0x1bf0 [ 8.732984] [<ffffffff8d108449>] SYSC_finit_module+0xa9/0xd0 [ 8.732986] [<ffffffff8d10848e>] SyS_finit_module+0xe/0x10 [ 8.732989] [<ffffffff8d6a38e9>] entry_SYSCALL_64_fastpath+0x1c/0xac [ 8.732992] -> #0 (&dev->mode_config.mutex){+.+.+.}: [ 8.732995] [<ffffffff8d0c1e7c>] __lock_acquire+0x16cc/0x1700 [ 8.732997] [<ffffffff8d0c22d0>] lock_acquire+0xb0/0x1e0 [ 8.732999] [<ffffffff8d69f2d1>] mutex_lock_nested+0x71/0x390 [ 8.733019] [<ffffffffc02bfd00>] drm_modeset_lock_all+0x40/0x120 [drm] [ 8.733034] [<ffffffffc047640b>] drm_fb_helper_restore_fbdev_mode_unlocked+0x2b/0x80 [drm_kms_helper] [ 8.733043] [<ffffffffc047648c>] drm_fb_helper_set_par+0x2c/0x50 [drm_kms_helper] [ 8.733088] [<ffffffffc05476aa>] intel_fbdev_set_par+0x1a/0x60 [i915] [ 8.733091] [<ffffffff8d3ce2b8>] fbcon_init+0x4d8/0x550 [ 8.733094] [<ffffffff8d450526>] visual_init+0xd6/0x130 [ 8.733097] [<ffffffff8d452ab6>] do_bind_con_driver+0x146/0x310 [ 8.733099] [<ffffffff8d452f66>] do_take_over_console+0x106/0x180 [ 8.733101] [<ffffffff8d3c9777>] do_fbcon_takeover+0x57/0xb0 [ 8.733104] [<ffffffff8d3cedd6>] fbcon_event_notify+0x726/0x870 [ 8.733106] [<ffffffff8d08fbfe>] notifier_call_chain+0x4e/0xa0 [ 8.733109] [<ffffffff8d08fe43>] __blocking_notifier_call_chain+0x53/0x70 [ 8.733111] [<ffffffff8d08fe76>] blocking_notifier_call_chain+0x16/0x20 [ 8.733113] [<ffffffff8d3d135b>] fb_notifier_call_chain+0x1b/0x20 [ 8.733116] [<ffffffff8d3d3379>] register_framebuffer+0x239/0x320 [ 8.733126] [<ffffffffc047670a>] drm_fb_helper_initial_config+0x25a/0x3a3 [drm_kms_helper] [ 8.733169] [<ffffffffc0548938>] intel_fbdev_initial_config+0x18/0x30 [i915] [ 8.733172] [<ffffffff8d091aaa>] async_run_entry_fn+0x4a/0x140 [ 8.733174] [<ffffffff8d08771e>] process_one_work+0x1de/0x670 [ 8.733176] [<ffffffff8d087cd5>] worker_thread+0x125/0x4a0 [ 8.733178] [<ffffffff8d08e7e2>] kthread+0xf2/0x110 [ 8.733181] [<ffffffff8d6a3b2f>] ret_from_fork+0x1f/0x40 [ 8.733181] other info that might help us debug this:
[ 8.733182] Possible unsafe locking scenario:
[ 8.733183] CPU0 CPU1 [ 8.733183] ---- ---- [ 8.733185] lock((fb_notifier_list).rwsem); [ 8.733186] lock(&dev->mode_config.mutex); [ 8.733187] lock((fb_notifier_list).rwsem); [ 8.733188] lock(&dev->mode_config.mutex); [ 8.733189] *** DEADLOCK ***
[ 8.733190] 6 locks held by kworker/u8:3/60: [ 8.733194] #0: ("events_unbound"){.+.+.+}, at: [<ffffffff8d08769f>] process_one_work+0x15f/0x670 [ 8.733198] #1: ((&entry->work)){+.+.+.}, at: [<ffffffff8d08769f>] process_one_work+0x15f/0x670 [ 8.733201] #2: (registration_lock){+.+.+.}, at: [<ffffffff8d3d3167>] register_framebuffer+0x27/0x320 [ 8.733205] #3: (console_lock){+.+.+.}, at: [<ffffffff8d3d3396>] register_framebuffer+0x256/0x320 [ 8.733208] #4: (&fb_info->lock){+.+.+.}, at: [<ffffffff8d3d178d>] lock_fb_info+0x1d/0x40 [ 8.733212] #5: ((fb_notifier_list).rwsem){++++.+}, at: [<ffffffff8d08fe2a>] __blocking_notifier_call_chain+0x3a/0x70 [ 8.733212] stack backtrace: [ 8.733214] CPU: 1 PID: 60 Comm: kworker/u8:3 Not tainted 4.7.0-10753-g731c7d3 #459 [ 8.733215] Hardware name: LENOVO 7470BN2/7470BN2, BIOS 6DET38WW (2.02 ) 12/19/2008 [ 8.733218] Workqueue: events_unbound async_run_entry_fn [ 8.733221] 0000000000000000 ffff95f0b77537d8 ffffffff8d36c09e ffffffff8e822d00 [ 8.733224] ffffffff8e822d00 ffff95f0b7753818 ffffffff8d18205b ffff95f0b7753850 [ 8.733226] ffff95f0b774d718 0000000000000005 0000000000000006 ffff95f0b774cd40 [ 8.733227] Call Trace: [ 8.733230] [<ffffffff8d36c09e>] dump_stack+0x67/0x99 [ 8.733232] [<ffffffff8d18205b>] print_circular_bug+0x200/0x20e [ 8.733235] [<ffffffff8d0c1e7c>] __lock_acquire+0x16cc/0x1700 [ 8.733238] [<ffffffff8d0a17c8>] ? sched_clock_local+0x18/0x80 [ 8.733240] [<ffffffff8d0c22d0>] lock_acquire+0xb0/0x1e0 [ 8.733260] [<ffffffffc02bfd00>] ? drm_modeset_lock_all+0x40/0x120 [drm] [ 8.733262] [<ffffffff8d69f2d1>] mutex_lock_nested+0x71/0x390 [ 8.733281] [<ffffffffc02bfd00>] ? drm_modeset_lock_all+0x40/0x120 [drm] [ 8.733301] [<ffffffffc02bfd00>] ? drm_modeset_lock_all+0x40/0x120 [drm] [ 8.733304] [<ffffffff8d1ec87c>] ? kmem_cache_alloc_trace+0x25c/0x320 [ 8.733322] [<ffffffffc02bfce5>] ? drm_modeset_lock_all+0x25/0x120 [drm] [ 8.733341] [<ffffffffc02bfd00>] drm_modeset_lock_all+0x40/0x120 [drm] [ 8.733351] [<ffffffffc047640b>] drm_fb_helper_restore_fbdev_mode_unlocked+0x2b/0x80 [drm_kms_helper] [ 8.733360] [<ffffffffc047648c>] drm_fb_helper_set_par+0x2c/0x50 [drm_kms_helper] [ 8.733403] [<ffffffffc05476aa>] intel_fbdev_set_par+0x1a/0x60 [i915] [ 8.733406] [<ffffffff8d3ce2b8>] fbcon_init+0x4d8/0x550 [ 8.733408] [<ffffffff8d450526>] visual_init+0xd6/0x130 [ 8.733410] [<ffffffff8d452ab6>] do_bind_con_driver+0x146/0x310 [ 8.733413] [<ffffffff8d452f66>] do_take_over_console+0x106/0x180 [ 8.733415] [<ffffffff8d3c9777>] do_fbcon_takeover+0x57/0xb0 [ 8.733417] [<ffffffff8d3cedd6>] fbcon_event_notify+0x726/0x870 [ 8.733419] [<ffffffff8d08fbfe>] notifier_call_chain+0x4e/0xa0 [ 8.733422] [<ffffffff8d08fe43>] __blocking_notifier_call_chain+0x53/0x70 [ 8.733424] [<ffffffff8d08fe76>] blocking_notifier_call_chain+0x16/0x20 [ 8.733426] [<ffffffff8d3d135b>] fb_notifier_call_chain+0x1b/0x20 [ 8.733427] [<ffffffff8d3d3379>] register_framebuffer+0x239/0x320 [ 8.733430] [<ffffffff8d4817c0>] ? vga_switcheroo_client_fb_set+0x60/0x70 [ 8.733440] [<ffffffffc047670a>] drm_fb_helper_initial_config+0x25a/0x3a3 [drm_kms_helper] [ 8.733483] [<ffffffffc0548938>] intel_fbdev_initial_config+0x18/0x30 [i915] [ 8.733484] [<ffffffff8d091aaa>] async_run_entry_fn+0x4a/0x140 [ 8.733486] [<ffffffff8d08771e>] process_one_work+0x1de/0x670 [ 8.733488] [<ffffffff8d08769f>] ? process_one_work+0x15f/0x670 [ 8.733490] [<ffffffff8d087cd5>] worker_thread+0x125/0x4a0 [ 8.733492] [<ffffffff8d087bb0>] ? process_one_work+0x670/0x670 [ 8.733494] [<ffffffff8d08e7e2>] kthread+0xf2/0x110 [ 8.733497] [<ffffffff8d6a3b2f>] ret_from_fork+0x1f/0x40 [ 8.733499] [<ffffffff8d08e6f0>] ? kthread_create_on_node+0x220/0x220
On Tue, 2 Aug 2016, Jiri Kosina wrote:
In addition to that, what I see with current git (HEAD == 731c7d3a205, i.e. the drm merge) is lockdep report during bootup about AB-BA between mode_config.mutex and fb_notifier_list rwsem; will probably not have time to look into it more (look at the code and / or bisect) until tomorrow, so sending out early as a heads-up.
Also, trying to suspend the machine to disk hangs, with the "suspend" LED constantly blinking, LCD being blank, but the machine never actually powering off. Not sure whether it might not be the very deadlock actually triggering for real.
Ok, I tried HEAD == 7a66ecf (per-drm merge kernel from yesterday), and it doesn't produce the AB-BA warning (so it's really introduced by the last merge), but still has the suspend issue, so those are two separate issues.
On Tue, 02 Aug 2016, Jiri Kosina jikos@kernel.org wrote:
On Mon, 1 Aug 2016, Linus Torvalds wrote:
This is the main drm pull request for 4.8, I'm down with a cold at the moment so hopefully this isn't in too bad a state, I finished pulling stuff last week mostly (nouveau fixes just went in today), so only this message should be influenced by illness. Apologies to anyone who's major feature I missed :-)
i915: BXT support enabled by default GVT-g infrastructure GuC command submission and fixes BXT workarounds SKL/BKL workarounds Demidlayering device registration Thundering herd fixes Missing pci ids Atomic updates
Hmm. I did the merge and pushed it out, but testing it on my laptop shows some very annoying flickering problem.
In addition to that, what I see with current git (HEAD == 731c7d3a205, i.e. the drm merge) is lockdep report during bootup about AB-BA between mode_config.mutex and fb_notifier_list rwsem; will probably not have time to look into it more (look at the code and / or bisect) until tomorrow, so sending out early as a heads-up.
Also, trying to suspend the machine to disk hangs, with the "suspend" LED constantly blinking, LCD being blank, but the machine never actually powering off. Not sure whether it might not be the very deadlock actually triggering for real.
There was [1] before my vacation to fix this, but it doesn't seem to have gone anywhere since. And it doesn't refer what caused the lockdep splat to begin with.
BR, Jani.
[1] http://patchwork.freedesktop.org/patch/msgid/1467286256-8870-1-git-send-emai...
[ 8.731638] fbcon: inteldrmfb (fb0) is primary device
[ 8.732611] ====================================================== [ 8.732612] [ INFO: possible circular locking dependency detected ] [ 8.732614] 4.7.0-10753-g731c7d3 #459 Not tainted [ 8.732614] ------------------------------------------------------- [ 8.732615] kworker/u8:3/60 is trying to acquire lock: [ 8.732650] (&dev->mode_config.mutex){+.+.+.}, at: [<ffffffffc02bfd00>] drm_modeset_lock_all+0x40/0x120 [drm] [ 8.732651] but task is already holding lock: [ 8.732657] ((fb_notifier_list).rwsem){++++.+}, at: [<ffffffff8d08fe2a>] __blocking_notifier_call_chain+0x3a/0x70 [ 8.732658] which lock already depends on the new lock.
[ 8.732658] the existing dependency chain (in reverse order) is: [ 8.732661] -> #1 ((fb_notifier_list).rwsem){++++.+}: [ 8.732665] [<ffffffff8d0c22d0>] lock_acquire+0xb0/0x1e0 [ 8.732669] [<ffffffff8d6a0b25>] down_write+0x55/0xc0 [ 8.732671] [<ffffffff8d08ffb1>] blocking_notifier_chain_register+0x21/0xb0 [ 8.732674] [<ffffffff8d3d1318>] fb_register_client+0x18/0x20 [ 8.732676] [<ffffffff8d3d0b88>] backlight_device_register+0x138/0x250 [ 8.732746] [<ffffffffc0568912>] intel_backlight_device_register+0xa2/0x160 [i915] [ 8.732791] [<ffffffffc053735e>] intel_connector_register+0xe/0x10 [i915] [ 8.732809] [<ffffffffc02ae389>] drm_connector_register+0x49/0x80 [drm] [ 8.732827] [<ffffffffc02b28a0>] drm_modeset_register_all+0x1d0/0x260 [drm] [ 8.732843] [<ffffffffc02a9c22>] drm_dev_register+0xc2/0xd0 [drm] [ 8.732878] [<ffffffffc04a6ce5>] i915_driver_load+0x745/0x13e0 [i915] [ 8.732914] [<ffffffffc04b173f>] i915_pci_probe+0x4f/0x70 [i915] [ 8.732917] [<ffffffff8d3af7d5>] local_pci_probe+0x45/0xa0 [ 8.732920] [<ffffffff8d3b0bf1>] pci_device_probe+0xe1/0x130 [ 8.732923] [<ffffffff8d489be8>] driver_probe_device+0x1a8/0x460 [ 8.732925] [<ffffffff8d489f6d>] __driver_attach+0xcd/0xf0 [ 8.732927] [<ffffffff8d4878a4>] bus_for_each_dev+0x64/0xa0 [ 8.732929] [<ffffffff8d4894ee>] driver_attach+0x1e/0x20 [ 8.732931] [<ffffffff8d488f83>] bus_add_driver+0x1d3/0x290 [ 8.732933] [<ffffffff8d48ad30>] driver_register+0x60/0xe0 [ 8.732935] [<ffffffff8d3af100>] __pci_register_driver+0x60/0x70 [ 8.732972] [<ffffffffc05ec05d>] i915_init+0x5d/0x64 [i915] [ 8.732975] [<ffffffff8d00041d>] do_one_initcall+0x3d/0x160 [ 8.732979] [<ffffffff8d182bfd>] do_init_module+0x60/0x1dc [ 8.732982] [<ffffffff8d107a5e>] load_module+0x142e/0x1bf0 [ 8.732984] [<ffffffff8d108449>] SYSC_finit_module+0xa9/0xd0 [ 8.732986] [<ffffffff8d10848e>] SyS_finit_module+0xe/0x10 [ 8.732989] [<ffffffff8d6a38e9>] entry_SYSCALL_64_fastpath+0x1c/0xac [ 8.732992] -> #0 (&dev->mode_config.mutex){+.+.+.}: [ 8.732995] [<ffffffff8d0c1e7c>] __lock_acquire+0x16cc/0x1700 [ 8.732997] [<ffffffff8d0c22d0>] lock_acquire+0xb0/0x1e0 [ 8.732999] [<ffffffff8d69f2d1>] mutex_lock_nested+0x71/0x390 [ 8.733019] [<ffffffffc02bfd00>] drm_modeset_lock_all+0x40/0x120 [drm] [ 8.733034] [<ffffffffc047640b>] drm_fb_helper_restore_fbdev_mode_unlocked+0x2b/0x80 [drm_kms_helper] [ 8.733043] [<ffffffffc047648c>] drm_fb_helper_set_par+0x2c/0x50 [drm_kms_helper] [ 8.733088] [<ffffffffc05476aa>] intel_fbdev_set_par+0x1a/0x60 [i915] [ 8.733091] [<ffffffff8d3ce2b8>] fbcon_init+0x4d8/0x550 [ 8.733094] [<ffffffff8d450526>] visual_init+0xd6/0x130 [ 8.733097] [<ffffffff8d452ab6>] do_bind_con_driver+0x146/0x310 [ 8.733099] [<ffffffff8d452f66>] do_take_over_console+0x106/0x180 [ 8.733101] [<ffffffff8d3c9777>] do_fbcon_takeover+0x57/0xb0 [ 8.733104] [<ffffffff8d3cedd6>] fbcon_event_notify+0x726/0x870 [ 8.733106] [<ffffffff8d08fbfe>] notifier_call_chain+0x4e/0xa0 [ 8.733109] [<ffffffff8d08fe43>] __blocking_notifier_call_chain+0x53/0x70 [ 8.733111] [<ffffffff8d08fe76>] blocking_notifier_call_chain+0x16/0x20 [ 8.733113] [<ffffffff8d3d135b>] fb_notifier_call_chain+0x1b/0x20 [ 8.733116] [<ffffffff8d3d3379>] register_framebuffer+0x239/0x320 [ 8.733126] [<ffffffffc047670a>] drm_fb_helper_initial_config+0x25a/0x3a3 [drm_kms_helper] [ 8.733169] [<ffffffffc0548938>] intel_fbdev_initial_config+0x18/0x30 [i915] [ 8.733172] [<ffffffff8d091aaa>] async_run_entry_fn+0x4a/0x140 [ 8.733174] [<ffffffff8d08771e>] process_one_work+0x1de/0x670 [ 8.733176] [<ffffffff8d087cd5>] worker_thread+0x125/0x4a0 [ 8.733178] [<ffffffff8d08e7e2>] kthread+0xf2/0x110 [ 8.733181] [<ffffffff8d6a3b2f>] ret_from_fork+0x1f/0x40 [ 8.733181] other info that might help us debug this:
[ 8.733182] Possible unsafe locking scenario:
[ 8.733183] CPU0 CPU1 [ 8.733183] ---- ---- [ 8.733185] lock((fb_notifier_list).rwsem); [ 8.733186] lock(&dev->mode_config.mutex); [ 8.733187] lock((fb_notifier_list).rwsem); [ 8.733188] lock(&dev->mode_config.mutex); [ 8.733189] *** DEADLOCK ***
[ 8.733190] 6 locks held by kworker/u8:3/60: [ 8.733194] #0: ("events_unbound"){.+.+.+}, at: [<ffffffff8d08769f>] process_one_work+0x15f/0x670 [ 8.733198] #1: ((&entry->work)){+.+.+.}, at: [<ffffffff8d08769f>] process_one_work+0x15f/0x670 [ 8.733201] #2: (registration_lock){+.+.+.}, at: [<ffffffff8d3d3167>] register_framebuffer+0x27/0x320 [ 8.733205] #3: (console_lock){+.+.+.}, at: [<ffffffff8d3d3396>] register_framebuffer+0x256/0x320 [ 8.733208] #4: (&fb_info->lock){+.+.+.}, at: [<ffffffff8d3d178d>] lock_fb_info+0x1d/0x40 [ 8.733212] #5: ((fb_notifier_list).rwsem){++++.+}, at: [<ffffffff8d08fe2a>] __blocking_notifier_call_chain+0x3a/0x70 [ 8.733212] stack backtrace: [ 8.733214] CPU: 1 PID: 60 Comm: kworker/u8:3 Not tainted 4.7.0-10753-g731c7d3 #459 [ 8.733215] Hardware name: LENOVO 7470BN2/7470BN2, BIOS 6DET38WW (2.02 ) 12/19/2008 [ 8.733218] Workqueue: events_unbound async_run_entry_fn [ 8.733221] 0000000000000000 ffff95f0b77537d8 ffffffff8d36c09e ffffffff8e822d00 [ 8.733224] ffffffff8e822d00 ffff95f0b7753818 ffffffff8d18205b ffff95f0b7753850 [ 8.733226] ffff95f0b774d718 0000000000000005 0000000000000006 ffff95f0b774cd40 [ 8.733227] Call Trace: [ 8.733230] [<ffffffff8d36c09e>] dump_stack+0x67/0x99 [ 8.733232] [<ffffffff8d18205b>] print_circular_bug+0x200/0x20e [ 8.733235] [<ffffffff8d0c1e7c>] __lock_acquire+0x16cc/0x1700 [ 8.733238] [<ffffffff8d0a17c8>] ? sched_clock_local+0x18/0x80 [ 8.733240] [<ffffffff8d0c22d0>] lock_acquire+0xb0/0x1e0 [ 8.733260] [<ffffffffc02bfd00>] ? drm_modeset_lock_all+0x40/0x120 [drm] [ 8.733262] [<ffffffff8d69f2d1>] mutex_lock_nested+0x71/0x390 [ 8.733281] [<ffffffffc02bfd00>] ? drm_modeset_lock_all+0x40/0x120 [drm] [ 8.733301] [<ffffffffc02bfd00>] ? drm_modeset_lock_all+0x40/0x120 [drm] [ 8.733304] [<ffffffff8d1ec87c>] ? kmem_cache_alloc_trace+0x25c/0x320 [ 8.733322] [<ffffffffc02bfce5>] ? drm_modeset_lock_all+0x25/0x120 [drm] [ 8.733341] [<ffffffffc02bfd00>] drm_modeset_lock_all+0x40/0x120 [drm] [ 8.733351] [<ffffffffc047640b>] drm_fb_helper_restore_fbdev_mode_unlocked+0x2b/0x80 [drm_kms_helper] [ 8.733360] [<ffffffffc047648c>] drm_fb_helper_set_par+0x2c/0x50 [drm_kms_helper] [ 8.733403] [<ffffffffc05476aa>] intel_fbdev_set_par+0x1a/0x60 [i915] [ 8.733406] [<ffffffff8d3ce2b8>] fbcon_init+0x4d8/0x550 [ 8.733408] [<ffffffff8d450526>] visual_init+0xd6/0x130 [ 8.733410] [<ffffffff8d452ab6>] do_bind_con_driver+0x146/0x310 [ 8.733413] [<ffffffff8d452f66>] do_take_over_console+0x106/0x180 [ 8.733415] [<ffffffff8d3c9777>] do_fbcon_takeover+0x57/0xb0 [ 8.733417] [<ffffffff8d3cedd6>] fbcon_event_notify+0x726/0x870 [ 8.733419] [<ffffffff8d08fbfe>] notifier_call_chain+0x4e/0xa0 [ 8.733422] [<ffffffff8d08fe43>] __blocking_notifier_call_chain+0x53/0x70 [ 8.733424] [<ffffffff8d08fe76>] blocking_notifier_call_chain+0x16/0x20 [ 8.733426] [<ffffffff8d3d135b>] fb_notifier_call_chain+0x1b/0x20 [ 8.733427] [<ffffffff8d3d3379>] register_framebuffer+0x239/0x320 [ 8.733430] [<ffffffff8d4817c0>] ? vga_switcheroo_client_fb_set+0x60/0x70 [ 8.733440] [<ffffffffc047670a>] drm_fb_helper_initial_config+0x25a/0x3a3 [drm_kms_helper] [ 8.733483] [<ffffffffc0548938>] intel_fbdev_initial_config+0x18/0x30 [i915] [ 8.733484] [<ffffffff8d091aaa>] async_run_entry_fn+0x4a/0x140 [ 8.733486] [<ffffffff8d08771e>] process_one_work+0x1de/0x670 [ 8.733488] [<ffffffff8d08769f>] ? process_one_work+0x15f/0x670 [ 8.733490] [<ffffffff8d087cd5>] worker_thread+0x125/0x4a0 [ 8.733492] [<ffffffff8d087bb0>] ? process_one_work+0x670/0x670 [ 8.733494] [<ffffffff8d08e7e2>] kthread+0xf2/0x110 [ 8.733497] [<ffffffff8d6a3b2f>] ret_from_fork+0x1f/0x40 [ 8.733499] [<ffffffff8d08e6f0>] ? kthread_create_on_node+0x220/0x220
On Tue, 2 Aug 2016, Jani Nikula wrote:
This is the main drm pull request for 4.8, I'm down with a cold at the moment so hopefully this isn't in too bad a state, I finished pulling stuff last week mostly (nouveau fixes just went in today), so only this message should be influenced by illness. Apologies to anyone who's major feature I missed :-)
i915: BXT support enabled by default GVT-g infrastructure GuC command submission and fixes BXT workarounds SKL/BKL workarounds Demidlayering device registration Thundering herd fixes Missing pci ids Atomic updates
Hmm. I did the merge and pushed it out, but testing it on my laptop shows some very annoying flickering problem.
In addition to that, what I see with current git (HEAD == 731c7d3a205, i.e. the drm merge) is lockdep report during bootup about AB-BA between mode_config.mutex and fb_notifier_list rwsem; will probably not have time to look into it more (look at the code and / or bisect) until tomorrow, so sending out early as a heads-up.
Also, trying to suspend the machine to disk hangs, with the "suspend" LED constantly blinking, LCD being blank, but the machine never actually powering off. Not sure whether it might not be the very deadlock actually triggering for real.
There was [1] before my vacation to fix this, but it doesn't seem to have gone anywhere since. And it doesn't refer what caused the lockdep splat to begin with.
Confirmed, that patch fixes the lockdep splat, so for that part
Tested-by: Jiri Kosina jkosina@suse.cz
dri-devel@lists.freedesktop.org