2015-11-09 00:46:56

by Dave Airlie

[permalink] [raw]
Subject: [git pull] drm for 4.4-rc1


Hi Linus,

I Was Almost Tempted To Capitalise Every Word, but then I decided I
couldn't read it myself!

There are some conflicts with your tree in MAINTAINERS, i915 and amdgpu,
they are all fairly trivial, I've pushed a drm-next-merged branch if you
want to check anything out.

I've also got one pull request for the sti driver outstanding. It relied
on a commit in Greg's tree and I didn't find out in time, that commit is
in your tree now so I might send that along once this is merged.

I also had the accidental misfortune to have access to a Skylake on my
desk for a few days, and I've had to encourage Intel to try harder, which
seems to be happening now.

Here is the main drm-next pull request for 4.4.

Highlights:

New driver:
vc4 driver for the Rasberry Pi VPU.
(From Eric Anholt at Broadcom.)

Core:
Atomic fbdev support
Atomic helpers for runtime pm
dp/aux i2c STATUS_UPDATE handling
struct_mutex usage cleanups.
Generic of probing support.

Documentation:
Kerneldoc for VGA switcheroo code.
Rename to gpu instead of drm to reflect scope.

i915:
Skylake GuC firmware fixes
HPD A support
VBT backlight fallbacks
Fastboot by default for some systems
FBC work
BXT/SKL workarounds
Skylake deeper sleep state fixes

amdgpu:
Enable GPU scheduler by default
New atombios opcodes
GPUVM debugging options
Stoney support.
Fencing cleanups.

radeon:
More efficient CS checking

nouveau:
gk20a instance memory handling improvements.
Improved PGOB detection and GK107 support
Kepler GDDR5 PLL statbility improvement
G8x/GT2xx reclock improvements
new userspace API compatiblity fixes.

virtio-gpu:
Add 3D support - qemu 2.5 has it merged for it's gtk backend.

msm:
Initial msm88896 (snapdragon 8200)

exynos:
HDMI cleanups
Enable mixer driver byt default
Add DECON-TV support

vmwgfx:
Move to using memremap + fixes.

rcar-du:
Add support for R8A7793/4 DU

armada:
Remove support for non-component mode
Improved plane handling
Power savings while in DPMS off.

tda998x:
Remove unused slave encoder support
Use more HDMI helpers
Fix EDID read handling

dwhdmi:
Interlace video mode support for ipu-v3/dw_hdmi
Hotplug state fixes
Audio driver integration

imx:
More color formats support.

tegra:
Minor fixes/improvements.


The following changes since commit 06d1ee32a4d25356a710b49d5e95dbdd68bdf505:

Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux (2015-10-13 09:45:21 -0700)

are available in the git repository at:

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

for you to fetch changes up to 816d2206f0f9953ca854e4ff1a2749a5cbd62715:

Merge tag 'drm-intel-next-fixes-2015-11-06' of git://anongit.freedesktop.org/drm-intel into drm-next (2015-11-07 17:16:59 +1000)

----------------------------------------------------------------
Adam Richter (1):
drm: fix mutex leak in drm_dp_get_mst_branch_device

Akash Goel (1):
drm/i915/bxt: Set time interval unit to 0.833us

Alex Dai (10):
drm/i915: GuC-specific firmware loader
drm/i915: Debugfs interface to read GuC load status
drm/i915: Prepare for GuC-based command submission
drm/i915: Enable GuC firmware log
drm/i915: Integrate GuC-based command submission
drm/i915/guc: Support GuC version 4.3
drm/i915: Notify GuC rc6 state
drm/i915/guc: Fix a bug in GuC status check
drm/i915/guc: Media domain bit needed when notify GuC rc6 state
drm/i915/guc: Add host2guc notification for suspend and resume

Alex Deucher (33):
drm/amdgpu: split gfx8 gpu init into sw and hw parts
drm/amdgpu: disable hw semaphores by default
drm/amdgpu/atom: implement debug opcode
drm/amdgpu/atom: add support for process ds opcode
drm/amdgpu/atom: add support for new mul32 opcodes (v2)
drm/amdgpu/atom: add support for new div32 opcodes (v3)
drm/amdgpu/dce10: Use cursor_set2 hook for enabling / disabling the HW cursor
drm/amdgpu/dce10: Re-show the cursor after a modeset (v2)
drm/amdgpu/dce10: Move hotspot handling out of set_cursor
drm/amdgpu/dce10: Clean up reference counting and pinning of the cursor BOs
drm/amdgpu/dce10: Fold set_cursor() into show_cursor()
drm/amdgpu/dce11: Use cursor_set2 hook for enabling / disabling the HW cursor
drm/amdgpu/dce11: Re-show the cursor after a modeset (v2)
drm/amdgpu/dce11: Move hotspot handling out of set_cursor
drm/amdgpu/dce11: Clean up reference counting and pinning of the cursor BOs
drm/amdgpu/dce11: Fold set_cursor() into show_cursor()
drm/amdgpu/dce8: Use cursor_set2 hook for enabling / disabling the HW cursor
drm/amdgpu/dce8: Re-show the cursor after a modeset (v2)
drm/amdgpu/dce8: Move hotspot handling out of set_cursor
drm/amdgpu/dce8: Clean up reference counting and pinning of the cursor BOs
drm/amdgpu/dce8: Fold set_cursor() into show_cursor()
drm/amdgpu: unpin cursor BOs on suspend and pin them again on resume
drm/amdgpu: rework sdma structures
drm/amdgpu: clean up pageflip interrupt handling
drm/amdgpu/gfx8: set TC_WB_ACTION_EN in RELEASE_MEM packet
drm/amdgpu/dce: simplify suspend/resume
drm/amdgpu/dce8: optimize pageflip
drm/amdgpu/dce10: optimize pageflip
drm/amdgpu/dce11: optimize pageflip
drm/radeon/dce4+: optimize pageflip (v2)
drm/amdgpu: add some additional CZ revisions
drm/amdgpu: add GFX 8.1 register headers
drm/amdgpu: don't VT switch on suspend

Alexandre Courbot (9):
drm/nouveau/pmu: do not assume a PMU is present
drm/nouveau/timer: re-introduce nvkm_wait_xsec macros
drm/nouveau/ltc: add hooks for invalidate and flush
drm/nouveau/ltc/gf100: add flush/invalidate functions
drm/nouveau/instmem/gk20a: use direct CPU access
drm/nouveau/platform: allow to specify the IOMMU bit
drm/nouveau/instmem/gk20a: make use of the IOMMU bit
drm/nouveau/ttm: convert to DMA API
drm/nouveau/ttm: set the DMA mask for platform devices

Ander Conselvan de Oliveira (1):
drm/i915: Rename DP link training functions

Andrzej Hajda (29):
drm/i915: fix handling gen8_emit_flush_coherentl3_wa result
drm/exynos/hdmi: remove support for deprecated compatible
drm/exynos/hdmi: use mappings for registers with IP dependent address
drm/exynos/hdmi: move PLL stabilization check code to separate function
drm/exynos/hdmi: simplify HDMI-PHY power sequence
drm/exynos/hdmi: replace all writeb with writel
drm/exynos/hdmi: fix removal order
drm/exynos/hdmi: use optional regulator_get for hdmi-en
drm/exynos/hdmi: use constant size array for regulators
drm/exynos/hdmi: simplify clock re-parenting
drm/exynos/hdmi: convert to gpiod API
drm/exynos/hdmi: remove deprecated hdmi_resources structure
drm/exynos/hdmi: convert container_of macro to inline function
drm/exynos/hdmi: improve HDMI/ACR related code
drm/exynos/hdmi: remove unused field
gpu: ipu-v3: fix div_ratio type
drm/exynos/decon5433: add PCLK clock
drm/exynos/decon5433: fix timing registers writes
drm/exynos/decon5433: add function to set particular register bits
drm/exynos/decon5433: merge different flag fields
drm/exynos/decon5433: remove duplicated initialization
drm/exynos/decon5433: add support for DECON-TV
drm/exynos: add atomic_check callback to exynos_crtc
drm/exynos/mixer: replace direct cross-driver call with drm mode validation
drm/exynos: separate Mixer and HDMI drivers
drm/exynos: abstract out common dependency
drm/exynos: re-arrange Kconfig entries
drm/exynos: simplify Kconfig component names
ARM: exynos_defconfig: enable Exynos DRM Mixer driver

Animesh Manna (7):
drm/i915/bxt: Path added of dmc firmware ver1 for BXT.
drm/i915/bxt: Stepping info added for bxt.
drm/i915/bxt: Modified HAS_CSR, added support for BXT
drm/i915/skl: Added a check for the hardware status of csr fw before loading.
drm/i915/skl Remove the call for csr uninitialization from suspend path
drm/i915/skl: Do not disable cdclk PLL if csr firmware is present
drm/i915/skl: Block disable call for pw1 if dmc firmware is present.

Archit Taneja (1):
drm/msm: Remove local fbdev emulation Kconfig option

Arun Siluvery (19):
drm/i915: Change SRM, LRM instructions to use correct length
drm/i915/gen9: Add WaDisableSamplerPowerBypassForSOPingPong
drm/i915/bxt: Add WaSetClckGatingDisableMedia
drm/i915/bxt: Update revision id for BXT C0
drm/i915/gen9: Handle error returned by gen9_init_workarounds
drm/i915/gen9: Merge two WA as they part of same register
drm/i915/bxt: Add WaStoreMultiplePTEenable name
drm/i915/skl: Remove WaDisableSDEUnitClockGating
drm/i915/skl: Remove WaSetGAPSunitClckGateDisable
drm/i915/skl: Remove WaDisableVFUnitClockGating
drm/i915/gen8: Add gen8_init_workarounds for common WA
drm/i915/gen8: Move INSTPM WA to common function
drm/i915/gen8: Move WaDisableAsyncFlipPerfMode to common init fn
drm/i915/gen8: Move WaDisablePartialInstShootdown to common init fn
drm/i915/gen8: Move HiZ RAW stall optimization disable WA to common init fn
drm/i915/gen8: Move Wa4x4STCOptimizationDisable to common init fn
drm/i915/gen8: Move GEN7_GT_MODE WA to common init fn
drm/i915/gen8: Move WaForceEnableNonCoherent to common init fn
drm/i915/gen8: Move WaHdcDisableFetchWhenMasked to common init fn

Ben Skeggs (11):
drm/nouveau: remove unnecessary usage of object handles
drm/nouveau/pci/g84: split implementation from nv50
drm/nouveau/pci/g94: split implementation from nv40
drm/nouveau/pci/nv46: attempt to fix msi, and re-enable by default
drm/nouveau/pci: prepare for chipset-specific initialisation tasks
drm/nouveau/pmu/gk104: check fuse to determine presence of PGOB
drm/nouveau/pmu/gk107: enable PGOB codepaths
drm/nouveau/abi16: remove unused argument from nouveau_abi16_get()
drm/nouveau/abi16: introduce locked variant of nouveau_abi16_get()
drm/nouveau/abi16: implement limited interoperability with usif/nvif
drm/nouveau: bump patchlevel to indicate availability of abi16/nvif interop

Bjorn Andersson (1):
drm: msm: dsi: Don't attempt changing voltage of switches

Bob Paauwe (4):
dtrm/edid: Allow comma separated edid binaries. (v3)
drm/i915/skl: Don't clear all watermarks when updating. (v2)
drm/i915/skl+: Enable pipe CSC on cursor planes. (v2)
drm/i915/skl: Enable pipe gamma for sprite planes.

Chris Wilson (15):
drm/i915: Do not check or a stalled pageflip prior to it being queued
drm/i915: Refactor common ringbuffer allocation code
drm/i915: Fix cmdparser STORE/LOAD command descriptors
drm/i915: Defer adding preallocated stolen objects to the VM list
drm/i915: Only update the current userptr worker
drm/i915: Fix userptr deadlock with aliased GTT mmappings
drm/i915: Use a task to cancel the userptr on invalidate_range
drm/i915: shrinker_control->nr_to_scan is now unsigned long
drm/i915: Add a tracepoint for the shrinker
drm/i915: During shrink_all we only need to idle the GPU
drm/i915: Remove dead i915_gem_evict_everything()
drm/i915: Avoid GPU stalls from kswapd
drm/i915: Kill DRI1 cliprects
drm/i915: Hold dev->event_lock whilst inspecting intel_crtc->unpin_work
drm/i915: Drop i915_gem_obj_is_pinned() from set-cache-level

Christian K?nig (23):
drm/amdgpu: also trace already allocated VMIDs
drm/amdgpu: only print meaningful VM faults
drm/amdgpu: add option to stop on VM fault
drm/amdgpu: add option to clear VM page tables after every submit
drm/amdgpu: add VM CS mapping trace point
drm/amdgpu: remove old lockup detection infrastructure
drm/amdgpu: remove the exclusive lock
drm/amdgpu: change VM size default to 64GB
drm/amdgpu: ignore scheduler fences from the same entity
dma-buf/fence: add fence_wait_any_timeout function v2
dma-buf/fence: add fence_is_later()
drm/amdgpu: remove unneeded fence functions
drm/amdgpu: switch to common fence_wait_any_timeout v2
drm/amdgpu: move ring_from_fence to common code
drm/amdgpu: use common fences for VMID management v2
drm/amdgpu: use the new fence_is_later
drm/amdgpu: use common fence for sync
drm/amdgpu: remove amdgpu_fence_ref/unref
drm/amdgpu: fix stoping the scheduler timeout
drm/amdgpu: fix fence fallback check
drm/amdgpu: remove now unused fence functions
drm/amdgpu: remove AMDGPU_FENCE_OWNER_MOVE
drm/amdgpu: group together common fence implementation

Chunming Zhou (4):
drm/amdgpu: add vram usage into debugfs
drm/amdgpu: add TOPDOWN flag to the whole vram
drm/amdgpu: enable scheduler by default
drm/amdgpu: fix the broken vm->mutex V2

Damien Lespiau (1):
drm/i915/bxt: Fix wrongly placed ')' in I915_READ()

Dan Carpenter (2):
drm/i915: unlock on error in i915_ppgtt_info()
drm/amdgpu: cleanup on error in amdgpu_cs_ioctl()

Dan Williams (1):
drm/vmwgfx: switch from ioremap_cache to memremap

Daniel Stone (1):
drm/i915: Fix locking around GuC firmware load

Daniel Vetter (44):
drm/i915: Update DRIVER_DATE to 20150828
Merge tag 'drm-intel-next-fixes-2015-09-02' into drm-intel-next-queued
drm/i915: Update comments around base bpp
drm/atomic-helper: properly annotate functions in kerneldoc
drm/fb-helper: Use -errno return in restore_mode_unlocked
drm: Make drm_fb_unregister/remove accept NULL fb
drm/fb-helper: Add module option to disable fbdev emulation
drm/atomic: refuse changing CRTC for planes directly
drm/atomic-helper: Add option to update planes only on active crtc
drm/atomic-helper: Pimp docs with recommendations for rpm drivers
drm: Nuke drm_framebuffer->helper_private
drm/i915: Update DRIVER_DATE to 20150911
Merge remote-tracking branch 'drm-intel/drm-intel-next-queued' into drm-intel-next-queued
drm/i915: Mark debug mod options as _unsafe
Merge tag 'v4.3-rc2' into topic/drm-misc
drm/i915: Update DRIVER_DATE to 20150928
Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next
drm/doc: Update docs about device instance setup
drm: Remove __OS_HAS_AGP
drm: Define a drm_invalid_op ioctl implementation
drm/drm_ioctl.c: kerneldoc
drm/vmwgfx: Stop checking for DRM_UNLOCKED
drm: Remove dummy agp ioctl wrappers
drm/i915: Remove setparam ioctl
drm: Hack around CONFIG_AGP=m build failures
drm/i915: Fix kerneldoc for i915_gem_shrink_all
Merge remote-tracking branch 'takashi/topic/drm-sync-audio-rate' into drm-intel-next-queued
drm/i915: Resurrect golden context on gen6/7
Revert "drm/i915: Add hot_plug hook for hdmi encoder"
Revert "drm/i915: Call encoder hotplug for init and resume cases"
drm/i915: Update DRIVER_DATE to 20151010
drm/i915: restore ggtt double-bind avoidance
drm/radeon: Use rdev->gem.mutex to protect hyperz/cmask owners
drm/i915: Mark getparam ioctl as DRM_UNLOCKED
drm: Enforce unlocked ioctl operation for kms driver ioctls
drm/<drivers>: Drop DRM_UNLOCKED from modeset drivers
drm/doc: Rename docbook to gpu.tmpl
drm/gem: Drop struct_mutex requirement from drm_gem_mmap_obj
drm/gem: Check locking in drm_gem_object_unreference
drm/gem: Use container_of in drm_gem_object_free
drm/vgem: Drop vgem_drm_gem_mmap
drm/gem: Use kref_get_unless_zero for the weak mmap references
drm/fb-helper: Set plane rotation directly
drm/fb-helper: Fix fb refcounting in pan_display_atomic

Danilo Cesar Lemes de Paula (1):
drm/doc: Fixing xml documentation warning

Dave Airlie (33):
Merge tag 'topic/drm-misc-2015-09-25' of git://anongit.freedesktop.org/drm-intel into drm-next
Merge tag 'drm-intel-next-2015-09-11' of git://anongit.freedesktop.org/drm-intel into drm-next
Merge branch 'drm-armada-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into drm-next
Merge branch 'drm-tda998x-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into drm-next
Merge branch 'drm-next-4.4' of git://people.freedesktop.org/~agd5f/linux into drm-next
Merge tag 'drm-intel-next-2015-09-28-merged' of git://anongit.freedesktop.org/drm-intel into drm-next
Merge tag 'topic/drm-misc-2015-10-08' of git://anongit.freedesktop.org/drm-intel into drm-next
Merge commit '06d1ee32a4d25356a710b49d5e95dbdd68bdf505' of git://git.kernel.org/.../torvalds/linux into drm-next
Merge branch 'drm-dwhdmi-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into drm-next
virtio-gpu: don't free things on ttm_bo_init failure
virtio-gpu: add basic prime support
virtio-gpu: mark as a render gpu
Merge branch 'virtio-gpu-for-drm-next' of git://git.kraxel.org/linux into drm-next
Merge branch 'drm/next/du' of git://linuxtv.org/pinchartl/fbdev into drm-next
Merge tag 'drm-intel-next-2015-10-10' of git://anongit.freedesktop.org/drm-intel into drm-next
Merge tag 'topic/drm-misc-2015-10-19' of git://anongit.freedesktop.org/drm-intel into drm-next
Merge tag 'drm-vc4-next-2015-10-21' of http://github.com/anholt/linux into drm-next
Merge branch 'drm/next/du' of git://linuxtv.org/pinchartl/fbdev into drm-next
Merge branch 'msm-next' of git://people.freedesktop.org/~robclark/linux into drm-next
Merge tag 'drm-intel-next-fixes-2015-10-22' of git://anongit.freedesktop.org/drm-intel into drm-next
Merge branch 'drm-next-4.4' of git://people.freedesktop.org/~agd5f/linux into drm-next
Merge tag 'topic/drm-misc-2015-10-22' of git://anongit.freedesktop.org/drm-intel into drm-next
Merge branch 'vmwgfx-next' of git://people.freedesktop.org/~thomash/linux into drm-next
Merge branch 'exynos-drm-next' of git://git.kernel.org/.../daeinki/drm-exynos into drm-next
Merge branch 'linux-4.4' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-next
drm/amdgpu: don't oops on failure to load (v2)
drm/amd/scheduler: don't oops on failure to load
Merge branch 'drm-next-4.4' of git://people.freedesktop.org/~agd5f/linux into drm-next
Merge tag 'imx-drm-next-2015-10-30' of git://git.pengutronix.de/git/pza/linux into drm-next
Merge tag 'drm/tegra/for-4.4-rc1' of git://anongit.freedesktop.org/tegra/linux into drm-next
Merge tag 'drm/panel/for-4.4-rc1' of git://anongit.freedesktop.org/tegra/linux into drm-next
Merge branch 'vmwgfx-next' of git://people.freedesktop.org/~thomash/linux into drm-next
Merge tag 'drm-intel-next-fixes-2015-11-06' of git://anongit.freedesktop.org/drm-intel into drm-next

Dave Gordon (5):
drm/i915: Expose one LRC function for GuC submission mode
drm/i915: Implementation of GuC submission client
drm/i915: Interrupt routing for GuC submission
drm/i915: Debugfs interface for GuC submission statistics
drm/i915: fix driver's versions of WARN_ON & WARN_ON_ONCE

David Herrmann (2):
drm: simplify drm_sysfs_destroy() via IS_ERR_OR_NULL()
drm: move drm_class into drm_sysfs.c

Derek Foreman (2):
drm/vc4: Use the fbdev_cma helpers
drm/vc4: Allow vblank to be disabled

Dmitry Osipenko (1):
gpu: host1x: Fix MLOCK's debug info

Dongwon Kim (1):
drm/i915: Do not hardcode s_max, ss_max and eu_mask for BXT

Egbert Eich (1):
drm/i915: Avoid race of intel_crt_detect_hotplug() with HPD interrupt, v2

Eric Anholt (2):
drm/vc4: Add devicetree bindings for VC4.
drm/vc4: Add KMS support for Raspberry Pi.

Fabio Estevam (1):
gpu: ipu-v3: ipu-csi: bool test doesn't need a comparison to false

Flora Cui (3):
drm/amdgpu: extract common code in vi_common_early_init
drm/amdgpu: update Fiji's rev id
drm/amdgpu: update Fiji's Golden setting

Francisco Jerez (3):
drm/i915: Bump command parser version number.
drm/i915: Don't warn if the workaround list is empty.
drm/i915: Hook up ring workaround writes at context creation time on Gen6-7.

Geert Uytterhoeven (1):
drm: rcar-du: Remove obsolete rcar-du-r8a779x platform_device_id entries

Geliang Tang (5):
drm/i915: fix kernel-doc warnings in i915_gem.c
drm: fix kernel-doc warnings in drm_crtc.h
drm: drm_atomic_crtc_get_property should be static
drm/i915: fix task reference leak in i915_debugfs.c
drm: fix trivial typos

Gerd Hoffmann (5):
virtio-gpu: add virtio_gpu_queue_ctrl_buffer_locked
virtio-gpu: add & use virtio_gpu_queue_fenced_ctrl_buffer
virtio-gpu: wait for cursor updates finish
virtio-gpu: add 3d/virgl support
virtio-gpu: add page flip support

Graham Whaley (1):
doc: drm: Fix mis-spelling of i915_guc_submission includes

Grazvydas Ignotas (4):
drm/radeon: simplify register checker
drm/radeon: split evergreen_cs_check_reg
drm/radeon: refactor register check loop
drm/radeon: remove volatile qualifier

Gustavo Padovan (3):
drm: WARN_ON if a modeset driver uses legacy suspend/resume helpers
drm/exynos: add global macro for the default primary plane
drm/exynos: add cursor plane support

Hai Li (1):
drm/msm/dsi: Updata LNn_CFG4 register settings for 28nm PHY

Harry Wentland (1):
drm/amdgpu: Make amdgpu_mn functions inline

Ilia Mirkin (5):
drm/nouveau/gem: return only valid domain when there's only one
drm/nouveau/gr: document mp error 0x10
drm/nouveau/gr: add FERMI_COMPUTE_B class to GF110+
drm/nouveau/pci: enable c800 magic for Lenovo Y510P
drm/nouveau/pci: enable c800 magic for Medion Erazer X7827

Imre Deak (9):
drm/i915/bxt: work around HW coherency issue when accessing GPU seqno
drm/i915/bxt: don't allow cached GEM mappings on A stepping
drm/i915: access the PP_CONTROL reg only pre GEN5
drm/i915: access the PP_ON_DELAYS/PP_OFF_DELAYS regs only pre GEN5
drm/i915/bxt: fix RC6 residency time calculation
drm/i915: remove duplicate names for the render ring INSTDONE register
drm/i915: rename INSTDONE to GEN2_INSTDONE
drm/i915: rename INSTDONE1 to GEN4_INSTDONE1
drm/i915/skl: disable display side power well support for now

Ingi Kim (1):
drm/exynos: fix spelling errors

Insu Yun (1):
drm: correctly check failed allocation

Jani Nikula (28):
drm/i915: remove excessive scaler debugging messages
drm/i915: move ibx_digital_port_connected to intel_dp.c
drm/i915: make g4x_digital_port_connected return boolean status
drm/i915: add MISSING_CASE annotation to ibx_digital_port_connected
drm/i915: add common intel_digital_port_connected function
drm/i915: split ibx_digital_port_connected to ibx and cpt variants
drm/i915: split g4x_digital_port_connected to g4x and vlv variants
drm/i915/bxt: Use correct live status register for BXT platform
drm/dp: add drm_dp_tps3_supported helper
drm/i915/dp: use the drm dp helper for determining sink tps3 support
drm/i915: move intel_hrawclk() to intel_display.c
drm/i915: add yesno utility function
drm/i915/dp: move TPS3 logic to where it's used
drm/i915: ignore link rate in TPS3 selection
drm/i915: use the yesno helper for logging
drm/i915: use pch backlight override on hsw too
drm/i915: initialize backlight max from VBT
drm/i915: don't hard code vlv backlight frequency if unset
drm/i915/skl: handle port E in cpt_digital_port_connected
drm/i915/ddi: warn instead of oops on invalid ddi encoder type
drm/i915/ddi: use switch case instead of if ladder for ddi_get_encoder_port
drm/i915: make backlight hooks connector specific
drm/i915/snb: remove pre-production hardware workaround
drm/i915/chv: remove pre-production hardware workarounds
MAINTAINERS: add link to the Intel Graphics for Linux web site
drm/i915: add hotplug activation period to hotplug update mask
drm/i915: disable CPU PWM also on LPT/SPT backlight disable
drm/i915: add quirk to enable backlight on Dell Chromebook 11 (2015)

Javier Martinez Canillas (2):
drm/i915/irq: Fix kernel-doc warnings
drm/i915/irq: Fix misspelled word register in kernel-doc

Jesse Barnes (6):
drm/i915: make CSR firmware messages less verbose
drm/i915: don't try to load GuC fw on pre-gen9
drm/i915: add more debug info for when atomic updates fail v3
drm/i915: cleanup pipe_update trace functions with new crtc debug info v3
drm/i915: fix crash in error state readout on non-execlist platforms v2
drm/i915: fixup runtime PM handling v2

Joonas Lahtinen (2):
drm: Add DRM_ROTATE_MASK and DRM_REFLECT_MASK
drm: Use DRM_ROTATE_MASK and DRM_REFLECT_MASK

Joonyoung Shim (2):
drm/exynos: fix to detach device of iommu
drm/exynos: cleanup name of gem object for exynos_drm

Jordan Justen (1):
drm/i915: Add GEN7_GPGPU_DISPATCHDIMX/Y/Z to the register whitelist

Julia Lawall (2):
drm: i915: drop null test before destroy functions
drm/nouveau/disp,pm: constify nvkm_object_func structures

Junwei Zhang (3):
drm/amdgpu: add timer to fence to detect scheduler lockup
drm/amdgpu: fix lockup when clean pending fences
drm/amdgpu: remove the unnecessary parameter adev for amdgpu_fence_wait_any()

Karol Herbst (1):
drm/nouveau/pll/gk104: fix PLL instability due to bad configuration with gddr5

Kumar, Mahesh (2):
drm/i915/skl: Avoid using un-initialized bits_per_pixel
drm/i915/skl+: Add YUV pixel format in Capability list

Laurent Pinchart (6):
drm/atomic-helper: Don't skip plane disabling on active CRTC
drm: rcar-du: Add dependency on OF
drm: rcar-du: Enable DU0 to DPAD connection on R8A7791
drm: rcar-du: Fix plane state free in plane reset handler
drm: rcar-du: Add support for the R8A7793 DU
drm: rcar-du: Add support for the R8A7794 DU

Libin Yang (2):
drm/i915: add kerneldoc for i915_audio_component
drm/i915: DocBook add i915_component.h support

Liviu Dudau (4):
drm: Introduce generic probe function for component based masters.
drm/imx: Convert the probe function to the generic drm_of_component_probe()
drm/rockchip: Convert the probe function to the generic drm_of_component_probe()
drm/armada: Convert the probe function to the generic drm_of_component_probe()

Lucas Stach (3):
gpu: ipu-v3: add support for ARGB4444 16-bit color format
drm/imx: enable ARGB4444 16-bit color format
drm/imx: hdmi: fix HDMI setup to allow modes larger than FullHD

Lukas Wunner (21):
vga_switcheroo: Document _ALL_ the things!
drm/i915: Spell vga_switcheroo consistently
drm: Spell vga_switcheroo consistently
vga_switcheroo: Sort headers alphabetically
vga_switcheroo: Set active attribute to false for audio clients
vga_switcheroo: Add missing locking
drm/radeon: Spell vga_switcheroo consistently
drm/amdgpu: Spell vga_switcheroo consistently
drm/i915: Drop unnecessary #include <linux/vga_switcheroo.h>
drm/radeon: Drop unnecessary #include <linux/vga_switcheroo.h>
drm/amdgpu: Drop unnecessary #include <linux/vga_switcheroo.h>
vga_switcheroo: Use enum vga_switcheroo_state instead of int
vga_switcheroo: Use VGA_SWITCHEROO_UNKNOWN_ID instead of -1
vga_switcheroo: Use enum vga_switcheroo_client_id instead of int
gpu/doc: Fix up remaining occurrences of old document title
gpu/doc: Add vga_switcheroo documentation
gpu/doc: Convert to markdown harder
drm: Fix return value of drm_framebuffer_init()
ALSA: hda - Spell vga_switcheroo consistently
vga_switcheroo: Constify vga_switcheroo_handler
vga_switcheroo: Drop client power state VGA_SWITCHEROO_INIT

Maarten Lankhorst (25):
Partially revert "drm/i915: Use full atomic modeset."
drm/i915: Fix module initialisation, v2.
drm/i915: Remove start frame argument to pipe_update_begin/end.
drm/i915: Also record time difference if vblank evasion fails, v2.
drm/atomic: Make sure lock is held in trylock contexts.
drm/atomic: Make prepare_fb/cleanup_fb only take state, v3.
drm/core: Do not call drm_framebuffer_remove internally during teardown.
drm/i915: Use atomic plane state in the primary plane update.
drm/i915: Use the plane state in intel_crtc_info.
drm/i915: Use the atomic state in intel_update_primary_planes.
drm/i915: Use atomic state when changing cursor visibility.
drm/i915: Remove legacy plane updates for cursor and sprite planes.
drm/i915: Do not handle a null plane state.
drm/i915: Use crtc->state for duplication.
drm/i915: Set csc coefficients in update_pipe_size.
drm/i915: Remove references to crtc->active from intel_fbdev.c
drm/i915: Always try to inherit the initial fb.
drm/i915: Make updating pipe without modeset atomic.
drm/i915: skip modeset if compatible for everyone.
drm/i915: Fix fastboot scalers for skylake.
drm/core: Preserve the framebuffer after removing it.
drm/core: Preserve the fb id on close.
drm/i915: Add primary plane to mask if it's visible
drm/i915/skl: Prevent unclaimed register writes on skylake.
drm/i915: Extend DSL readout fix to BDW and SKL.

Marek Szyprowski (1):
drm/exynos/gem: remove DMA-mapping hacks used for constructing page array

Martin Peres (5):
drm/nouveau/bios/volt: add support for pwm-based volt management
drm/nouveau/volt: add support for non-vid-based voltage controllers
drm/nouveau/volt/gk104: add support for pwm and gpio modes
drm/nouveau/gm107: add voltage control using the new gk104 volt class
drm/nouveau/gm204/6: add voltage control using the new gk104 volt class

Masanari Iida (1):
drm/i915: Fix warnings while make xmldocs caused by intel_lrc.c

Matt Roper (15):
drm/i915: Don't leak VBT mode data
drm/fbdev: Update legacy plane->fb refcounting for atomic restore
drm/i915: Drop redundant watermark programming
drm/i915: Eliminate usage of plane_wm_parameters from ILK-style WM code (v2)
drm/i915: Eliminate usage of pipe_wm_parameters from ILK-style WM (v2)
drm/i915: Determine I915_MAX_PLANES from plane enum
drm/i915/skl: Simplify wm structures slightly (v2)
drm/i915/skl: Eliminate usage of pipe_wm_parameters from SKL-style WM (v3)
drm/i915/ivb: Move WaCxSRDisabledForSpriteScaling w/a to atomic check
drm/i915: Drop intel_update_sprite_watermarks
drm/i915: Calculate pipe watermarks into CRTC state (v3)
drm/i915: Calculate ILK-style watermarks during atomic check (v3)
drm/i915: Don't set plane visible during HW readout if CRTC is off
drm/i915: Calculate watermark configuration during atomic check (v2)
drm/i915: Partial revert of atomic watermark series

Micha? Winiarski (2):
drm/i915/gtt: Avoid calling kcalloc in a loop when allocating temp bitmaps
drm/i915/gtt: Do not initialize drm_mm twice.

Michel Thierry (24):
drm/i915: Remove unnecessary gen8_clamp_pd
drm/i915/gen8: Make pdp allocation more dynamic
drm/i915/gen8: Abstract PDP usage
drm/i915/gen8: Generalize PTE writing for GEN8 PPGTT
drm/i915/gen8: Add dynamic page trace events
drm/i915/gen8: Add PML4 structure
drm/i915/gen8: implement alloc/free for 4lvl
drm/i915/gen8: Add 4 level switching infrastructure and lrc support
drm/i915/gen8: Pass sg_iter through pte inserts
drm/i915/gen8: Add 4 level support in insert_entries and clear_range
drm/i915/gen8: Initialize PDPs and PML4
drm/i915: Expand error state's address width to 64b
drm/i915/gen8: Add ppgtt info and debug_dump
drm/i915: object size needs to be u64
drm/i915: batch_obj vm offset must be u64
drm/i915/userptr: Kill user_size limit check
drm/i915/gtt: Allow >= 4GB offsets in X86_32
drm/i915: Use complete virtual address range on 32-bit platforms
drm/i915: Always pass dev pointer in pdp_init
drm/mm: Do DRM_MM_CREATE_TOP adj_start calculation after color_adjust
drm/i915: WaEnableForceRestoreInCtxtDescForVCS is for video engines only
drm/i915/lrc: Prevent preemption when lite-restore is disabled
drm/i915: Wa32bitGeneralStateOffset & Wa32bitInstructionBaseOffset
drm/i915: prevent out of range pt in the PDE macros (take 3)

Mika Kahola (5):
drm/i915: Store max dotclock
drm/i915: LVDS pixel clock check
drm/i915: DSI pixel clock check
drm/i915: DVO pixel clock check
drm/i915: Add CD and pixel clock information

Mika Kuoppala (2):
drm/i915: Move skl/bxt gt specific workarounds to ring init
drm/i915: Do graphics device reset under forcewake

Mikko Rapeli (5):
include/uapi/drm/sis_drm.h: move sis_file_private to drivers/gpu/drm/sis/sis_drv.h
via_drm.h: move struct via_file_private definition to drivers/gpu/drm/via/via_drv.h
savage_drm.h: include <drm/drm.h>
r128_drm.h: include drm/drm.h
drm/i810_drm.h: include drm/drm.h

Nick Hoath (4):
drm/i915/bxt: Clean up bxt_init_clock_gating
drm/i915/gen9: Add WaDisableMinuteIaClockGating
drm/i915: Split alloc from init for lrc
drm/i915: Remove extraneous request cancel.

Paulo Zanoni (18):
drm/i915: gen 9 can check for unclaimed registers too
drm/i915: fix the FBC work allocation failure path
drm/i915: check for the supported strides on HSW+ FBC
drm/i915: avoid the last 8mb of stolen on BDW/SKL
drm/i915: print the correct amount of bytes allocated for the CFB
drm/i915: don't enable FBC when pixel rate exceeds 95% on HSW/BDW
drm/i915: apply WaFbcAsynchFlipDisableFbcQueue earlier
drm/i915: don't apply WaFbcAsynchFlipDisableFbcQueue on SKL
drm/i915: reject invalid formats for FBC
drm/i915: fix FBC for cases where crtc->base.y is non-zero
drm/i915: don't use the first stolen page on Broadwell
drm/i915: extract fbc_supported()
drm/i915: export size_is_valid() from __intel_fbc_update()
drm/i915: don't allocate fbcon from stolen memory if it's too big
drm/i915: remove pre-atomic check from SKL update_primary_plane
drm/i915: fix CFB size calculation
drm/i915: fix FBC buffer size checks
drm/i915: revert a few more watermark commits

Philipp Zabel (5):
MAINTAINERS: Add IPUv3 core driver to the i.MX DRM driver section
gpu: ipu-v3: add support for 15-bit RGB with 1-bit alpha formats
drm/imx: enable 15-bit RGB with 1-bit alpha formats
gpu: ipu-v3: add support for RGBX8888 and RGBA8888 pixel formats
drm/imx: ipuv3-plane: enable support for RGBX8888 and RGBA8888 pixel formats

Philippe De Muyter (1):
gpu: ipu-v3: csi: add support for 8 bpp grayscale sensors.

Pierre Moreau (1):
drm/nouveau/pci: Handle 5-bit and 8-bit tag field

Rasmus Villemoes (2):
drm/i915: Fix comparison bug
vgaarb: use kzalloc in vga_arbiter_add_pci_device()

Rob Clark (7):
drm: cleanup modesetting ioctls, one param per line
drm/fb-helper: add headerdoc for drm_fb_helper
drm/fb-helper: atomic restore_fbdev_mode()..
drm/fb-helper: atomic pan_display()..
drm/i915: enable atomic fb-helper
drm: misc cleanup
drm/msm: update generated headers

Robert Beckett (2):
drm/i915/gen9: WA ST Unit Power Optimization Disable
drm/i915: Detect virtual south bridge

Rodrigo Vivi (7):
drm/i915: Force sink crc stop before start.
drm/i915: Save latest known sink CRC to compensate delayed counter reset.
drm/i915: Dont -ETIMEDOUT on identical new and previous (count, crc).
drm/i915: Also call frontbuffer flip when disabling planes.
drm/i915: Future proof interrupt handler.
drm/i915: Future proof uncore_init.
drm/i915: Future proof panel fitter.

Roy Spliet (9):
drm/nouveau/bios/rammap: Identify DLLoff for >= GF100
drm/nouveau/fb/ramgt215: Transform GPIO ramfuc method from FBVREF-specific to generic
drm/nouveau/fb/ramgt215: Change FBVDD/Q when BIOS asks for it
drm/nouveau/fb/ramgt215: Restructure r111100 calculation for DDR2
drm/nouveau/fb/ramnv50: Voltage GPIOs
drm/nouveau/fb/ramnv50: Deal with cards without timing entries
drm/nouveau/fb/ramnv50: Script changes for G94 and up
drm/nouveau/bus/hwsq: Implement VBLANK waiting heuristic
drm/nouveau/clk/g84: Enable reclocking for GDDR3 G94-G200

Russell King (44):
drm/i2c: tda998x: remove useless NULL checks
drm/i2c: tda998x: report whether we actually handled the IRQ
drm/i2c: tda998x: re-implement "Fix EDID read timeout on HDMI connect"
drm/i2c: tda998x: convert to u8/u16/u32 types
drm/i2c: tda998x: handle all outstanding interrupts
drm/i2c: tda998x: use more HDMI helpers
drm/armada: remove non-component support
drm/armada: move vbl code into armada_crtc
drm/armada: use drm_plane_force_disable() to disable the overlay plane
drm/armada: disable CRTC clock during DPMS
drm/armada: redo locking and atomics for armada_drm_crtc_complete_frame_work()
drm/armada: rename overlay identifiers
drm/armada: factor out retirement of old fb
drm/i2c: tda998x: remove DRM slave encoder support
drm/i2c: tda998x: remove encoder pointer
drm/i2c: tda998x: move connector into struct tda998x_priv
drm/i2c: tda998x: kill struct tda998x_priv2
drm/i2c: tda998x: clean up after struct tda998x_priv2 removal
drm/armada: use xchg() to atomically update dplane->old_fb
drm/armada: update armada overlay to use drm_universal_plane_init()
drm/armada: introduce generic armada_plane struct
drm/armada: add primary plane creation
drm/armada: allocate primary plane ourselves
drm/armada: provide a common helper to disable a plane
drm/armada: move write to dma_ctrl0 to armada_drm_crtc_plane_disable()
drm/armada: move the update of dplane->ctrl0 out of spinlock
drm/armada: move the locking for armada_drm_vbl_event_remove()
drm/armada: move frame wait into armada_frame
drm/armada: move CRTC flip work to primary plane work
drm/armada: convert overlay plane vbl worker to a armada plane worker
drm/armada: move frame wait wakeup into plane work
gpu: imx: simplify sync polarity setting
gpu: imx: fix support for interlaced modes
drm: bridge/dw_hdmi: add support for interlaced video modes
drm: bridge/dw_hdmi: add connector mode forcing
drm: bridge/dw_hdmi: improve HDMI enable/disable handling
drm: bridge/dw_hdmi-ahb-audio: add audio driver
drm: bridge/dw_hdmi-ahb-audio: parse ELD from HDMI driver
drm: bridge/dw_hdmi-ahb-audio: basic support for multi-channel PCM audio
drm: bridge/dw_hdmi-ahb-audio: allow larger buffer sizes
drm: bridge/dw_hdmi: avoid being recursive in N calculation
drm: bridge/dw_hdmi: adjust pixel clock values in N calculation
drm: bridge/dw_hdmi: remove ratio support from ACR code
drm: bridge/dw_hdmi: replace CTS calculation for the ACR

Sagar Arun Kamble (10):
drm/i915: Fix fb object's frontbuffer-bits
drm/i915/bxt: WaGsvDisableTurbo
drm/i915: Increase maximum polling time to 50ms for forcewake request/clear ack
drm/i915: Add IS_SKL_GT3 and IS_SKL_GT4 macro.
drm/i915: WaRsDisableCoarsePowerGating
drm/i915: WaRsUseTimeoutMode
drm/i915: WaRsDoubleRc6WrlWithCoarsePowerGating
drm/i915: Program GuC MAX IDLE Count
drm/i915/guc: Don't forward flip interrupts to GuC
drm/i915: Update Promotion timer for RC6 TO Mode

Samuel Li (10):
drm/amdgpu: add Stoney chip family
drm/amdgpu: add GMC support for Stoney
drm/amdgpu: Update SMC/DPM for Stoney
drm/amdgpu: add DCE support for Stoney
drm/amdgpu: add SDMA support for Stoney (v2)
drm/amdgpu: add GFX support for Stoney (v2)
drm/amdgpu: add UVD support for Stoney
drm/amdgpu: add VCE support for Stoney (v2)
drm/amdgpu: update the core VI support for Stoney
drm/amdgpu: add Stoney pci ids

Samuel Pitoiset (1):
drm/nouveau/ibus/gf100: increase wait timeout to avoid read faults

Shashank Sharma (10):
drm/i915: add attached connector to hdmi container
drm/i915/bxt: Enable BXT DSI PLL
drm/i915/bxt: Disable DSI PLL for BXT
drm/i915/bxt: DSI prepare changes for BXT
drm/i915/bxt: DSI encoder support in CRTC modeset
drm/i915/bxt: DSI enable for BXT
drm/i915/bxt: Program Tx Rx and Dphy clocks
drm/i915/bxt: DSI disable and post-disable
drm/i915/bxt: get_hw_state for BXT
drm/i915/bxt: get DSI pixelclock

Sonika Jindal (8):
drm/i915/bxt: Add HPD support for DDIA
drm/i915/bxt: WA for swapped HPD pins in A stepping
drm/i915/bxt: Use intel_encoder->hpd_pin to check live status
drm/i915: Check live status before reading edid
drm/i915/bxt: eDP low vswing support
drm/i915/bxt: Set oscaledcompmethod to enable scale value
drm/i915: Call encoder hotplug for init and resume cases
drm/i915: Add hot_plug hook for hdmi encoder

Stephane Viau (7):
drm/msm/mdp5: remove the cfg pointer from SMP struct
drm/msm: Fix IOMMU clean up path in case msm_iommu_new() fails
drm/msm/mdp5: Avoid printing error messages for optional clocks
drm/msm/hdmi: Add basic HDMI support for msm8996
drm/msm/mdp5: Use the newly introduced enum mdp_component_type
drm/msm/mdp: Add Software Pixel Extension support
drm/msm/mdp5: Basic support for MDP5 v1.7 (MSM8996)

Sudip Mukherjee (3):
drm/i915: use error path
drm/nouveau: remove unused function
drm/nouveau: fix memory leak

Sunil Kamath (1):
drm/i915/bxt: Modify BXT BLC according to VBT changes

Thierry Reding (7):
drm/atomic-helper: Implement drm_atomic_helper_duplicate_state()
drm/gma500: Remove DP_LINK_STATUS_SIZE redefinition
drm/irq: Rename drm_crtc -> crtc
drm/irq: Add drm_crtc_vblank_count_and_time()
drm/irq: Use unsigned int pipe in public API
drm/tegra: fb: Remove gratuituous blank line
drm/tegra: dc: Request/free syncpoint at init/exit

Thomas Daniel (1):
drm/i915: Fix maxfifo watermark calc on vlv cursor planes

Thomas Hellstrom (4):
drm/vmwgfx: Turn off support for multisample count != 0 v2
drm/vmwgfx: Replace iowrite/ioread with volatile memory accesses
drm/vmwgfx: Properly flush cursor updates and page-flips
drm/vmwgfx: Relax irq locking somewhat

Tomas Elf (1):
drm/i915: Early exit from semaphore_waits_for for execlist mode.

Tomasz Stanislawski (1):
drm: exynos: mixer: fix using usleep() in atomic context

Tvrtko Ursulin (7):
drm/i915: Remove one very outdated comment
drm/i915: Support planar formats in tile height calculations
drm/i915: Support appending to the rotated pages mapping
drm/i915: Support NV12 in rotated GGTT mapping
drm/i915: Enable querying offset of UV plane with intel_plane_obj_offset
drm/i915: Clean up associated VMAs on context destruction
drm/i915: Remove wrong warning from i915_gem_context_clean

Vandana Kannan (1):
drm/i915: Renaming CCK related reg definitions

Ville Syrj?l? (135):
drm/i915: clflush on pin_to_display after pwrite to UC bo in LLC
drm/i915: Clean up DP/HDMI limited color range handling
drm/i915: Don't use link_bw for PLL setup
drm/i915: Don't pass clock to DDI PLL select functions
drm/i915: Avoid confusion between DP and TRANS_DP_CTL in DP .get_config()
drm/i915: Move intel_dp->lane_count into pipe_config
drm/i915: Don't use link_bw to select between TP1 and TP3
drm/i915: Kill intel_dp->{link_bw, rate_select}
drm/i915: Put back lane_count into intel_dp and add link_rate too
drm/i915: Always program m2 fractional value on CHV
drm/i915: Always program unique transition scale for CHV
drm/i915: Add encoder->post_pll_disable() hooks and move CHV clock buffer disables there
drm/i915: Move DPIO port init earlier
drm/i915: Add locking around chv_phy_control_init()
drm/i915: Move VLV/CHV prepare_pll later
drm/i915: Add vlv_dport_to_phy()
drm/i915: Fix some gcc warnings
drm/i915: Use ARRAY_SIZE() instead of hand rolling it
drm/i915: Make some string arrays const
drm/i915: Move DPLL ref/cri/VGA mode frobbing to the disp2d well enable
drm/i915: Implement PHY lane power gating for CHV
drm/i915: Trick CL2 into life on CHV when using pipe B with port B
drm/i915: Force common lane on for the PPS kick on CHV
drm/i915: Enable DPIO SUS clock gating on CHV
drm/i915: Force CL2 off in CHV x1 PHY
drm/i915: Clean up CHV lane soft reset programming
drm/i915: Add some CHV DPIO lane power state asserts
drm/i915: Add CHV PHY LDO power sanity checks
drm/i915: Fix clock readout when pipes are enabled w/o ports
drm/i915: Factor out intel_crtc_has_encoders()
drm/i915: Clean up various HPD defines
drm/i915: Extract intel_hpd_enabled_irqs()
drm/i915: Factor out ilk_update_display_irq()
drm/i915: Add HAS_PCH_LPT_LP() macro
drm/i915: Rename BXT PORTA HPD defines
drm/i915: Move {pin, long}_mask initialization to caller from intel_get_hpd_pins()
drm/i915: Introduce spt_irq_handler()
drm/i915: Add port A HPD support for ILK/SNB
drm/i915: Add port A HPD support for IVB/HSW
drm/i915: LPT:LP needs port A HPD enabled in both north and south
drm/i915: Add port A HPD support for BDW
drm/i915: Add port A HPD support for SPT
drm/i915: Reinitialize HPD after runtime D3
drm/i915: Rewrite bxt_hpd_handler() to look like everyone else
drm/i915: Refactor the hpd irq handling functions
drm/i915: Rewrite BXT HPD code to conform to pre-existing style
drm/i915: Don't call intel_get_hpd_pins() when there's no hotplug interrupt
drm/i915: Dump pfit state as hex
drm: Constify generic_edid_names[]
drm: Constify TV mode names
drm/i2c/ch7006: Constify ch7006_tv_norms[] and ch7006_modes[]
drm/dp: s/I2C_STATUS/I2C_WRITE_STATUS_UPDATE/
drm/i915: Handle DP_AUX_I2C_WRITE_STATUS_UPDATE
drm/radeon: Handle DP_AUX_I2C_WRITE_STATUS_UPDATE
drm/tegra: Handle I2C_WRITE_STATUS_UPDATE for address only writes
drm/dp: Use I2C_WRITE_STATUS_UPDATE to drain partial I2C_WRITE requests
drm: Make some modes const when iterating through them
drm: Remove the 'mode' argument from drm_select_eld()
drm: Make drm_av_sync_delay() 'mode' argument const
drm/i915: Set stolen reserved to 0 for pre-g4x platforms
drm/i915: Assign hwmode after encoder state readout
drm/i915: Move sprite/cursor plane disable to intel_sanitize_crtc()
drm/i915: Move scanline_offset and timestamping constant setup to intel_modeset_readout_hw_state()
drm/i915: Implement stolen reserved detection for ctg/elk
drm/i915: Make sure we don't detect eDP on g4x
drm/i915: Ignore "digital output" and "not HDMI output" bits for eDP detection
drm/i915: Don't pass sdvo_reg to intel_sdvo_select_{ddc, i2c}_bus()
drm/i915: Parametrize LRC registers
drm/i915: Parametrize GEN7_GT_SCRATCH and GEN7_LRA_LIMITS
drm/i915: Parametrize FBC_TAG registers
drm/i915: Parametrize ILK turbo registers
drm/i915: Replace raw numbers with the approproate register name in ILK turbo code
drm/i915: Parametrize TV luma/chroma filter registers
drm/i915: Parametrize DDI_BUF_TRANS registers
drm/i915: Parametrize CSR_PROGRAM registers
drm: s/int crtc/unsigned int pipe/ straggles
drm: Move timestamping constants into drm_vblank_crtc
drm: Stop using linedur_ns and pixeldur_ns for vblank timestamps
drm: Kill pixeldur_ns
drm/i915: Fix vblank count variable types
drm: Pass flags to drm_update_vblank_count()
drm: Limit the number of .get_vblank_counter() retries
drm: Clean up drm_calc_vbltimestamp_from_scanoutpos() vbl_status
drm: store_vblank() is never called with NULL timestamp
drm: Use vblank timestamps to guesstimate how many vblanks were missed
drm/i915: Use intel_panel for DVO fixed mode handling
drm/i915: Always call the adjusted mode 'adjusted_mode'
drm/i915: Parametrize fence registers
drm/i915: s/mode/adjusted_mode/ in functions that really get passed the adjusted_mode
drm/i915: Always use crtc_ timings when dealing with adjustead_mode
drm/i915: Move HDMI aspect ratio setup to .compute_config()
drm/i915: Constify adjusted_mode
drm/i915: Add HDMI aspect ratio property for SDVO
drm/i915: Parametrize UOS_RSA_SCRATCH
drm/i915: Add LO/HI PRIVATE_PAT registers
drm/i915: Always use GEN8_RING_PDP_{LDW, UDW} instead of hand rolling the register offsets
drm/i915: Include MCHBAR_MIRROR_BASE in ILK_GDSR
drm/i915: Parametrize PALETTE and LGC_PALETTE
drm/i915: s/_CURACNTR/CURCNTR(PIPE_A)/
drm/i915: Add VLV_HDMIB etc. which already include VLV_DISPLAY_BASE
drm/i915: s/DDI_BUF_CTL_A/DDI_BUF_CTL(PORT_A)/
drm/i915: Read czclk from CCK on vlv/chv
drm/i915: Simplify vlv/chv rc6 residency calculation
drm/i915: Use czclk_freq in vlv c0 residency calculations
drm/i915: s/_FDI_RXA_.../FDI_RX_...(PIPE_A)/
drm/i915: s/_TRANSA_CHICKEN/TRANS_CHICKEN(PIPE_A)/
drm/i915: Refactor ilk_update_wm (v3)
drm: Don't zero vblank timestamps from the irq handler
drm/i915: s/GET_CFG_CR1_REG/DPLL_CFGCR1/ etc.
drm/i915: Don't bypass LRC on CHV
drm/i915: Skip CHV PHY asserts until PHY has been fully reset
drm: Stop using drm_vblank_count() as the hw frame counter
drm/i915: Determine the stolen memory base address on gen2
drm/i915: Eliminate weird parameter inversion from BXT PPS registers
drm/i915: Parametrize HSW video DIP data registers
drm/i915: Include gpio_mmio_base in GMBUS reg defines
drm/i915: Protect register macro arguments
drm/i915: Fix a few bad hex numbers in register defines
drm/i915: Turn GEN5_ASSERT_IIR_IS_ZERO() into a function
drm/i915: s/PIPE_FRMCOUNT_GM45/PIPE_FRMCOUNT_G4X/ etc.
drm/i915: Parametrize and fix SWF registers
drm/i915: Throw out some useless variables
drm/i915: Clean up LVDS register handling
drm/i915: Remove dev_priv argument from NEEDS_FORCE_WAKE
drm/i915: Kill the leftover RMW from ivb_sprite_disable()
drm: Don't use '\' for string literal concatenation
drm: Add DRM_DEBUG_VBL()
drm: Don't leak fb when plane crtc coodinates are bad
drm: Swap w/h when converting the mode to src coordidates for a rotated primary plane
drm: Refactor plane src coordinate checks
drm: Check crtc viewport correctly with rotated primary plane on atomic drivers
drm: Check plane src coordinates correctly during page flip for atomic drivers
drm/i915: Use round to closest when computing the CEA 1.001 pixel clocks
drm/edid: Fix up clock for CEA/HDMI modes specified via detailed timings
drm/edid: Round to closest when computing the CEA/HDMI alternate clock

Vivek Kasireddy (1):
drm/i915: Skip fence installation for objects with rotated views (v4)

Williams, Dan J (1):
i915: switch from acpi_os_ioremap to memremap

Zhiyuan Lv (4):
drm/i915: preallocate pdps for 32 bit vgpu
drm/i915: Always enable execlists on BDW for vgpu
drm/i915: Update PV INFO page definition for Intel GVT-g
drm/i915: guest i915 notification for Intel GVT-g

kbuild test robot (3):
drm/i915/bxt: vlv_dsi_reset_clocks() can be static
drm/bridge: ps8622: Fix coccinelle warnings
drm/bridge: ptn3460: Fix coccinelle warnings

?ukasz Daniluk (1):
drm/i915/bdw: Check for slice, subslice and EU count for BDW

Documentation/DocBook/Makefile | 2 +-
Documentation/DocBook/{drm.tmpl => gpu.tmpl} | 209 +-
.../devicetree/bindings/display/brcm,bcm-vc4.txt | 65 +
Documentation/devicetree/bindings/drm/msm/hdmi.txt | 3 +
Documentation/devicetree/bindings/drm/msm/mdp.txt | 3 +-
.../devicetree/bindings/video/renesas,du.txt | 14 +-
Documentation/kernel-parameters.txt | 15 +-
MAINTAINERS | 2 +
arch/arm/configs/exynos_defconfig | 1 +
drivers/dma-buf/fence.c | 98 +
drivers/gpu/drm/Kconfig | 2 +
drivers/gpu/drm/Makefile | 6 +-
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 104 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 1 -
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c | 4 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 4 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c | 4 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c | 1 -
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 48 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 3 +
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 47 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 25 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 22 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 397 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 29 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 4 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 72 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 12 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 2 +
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 71 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c | 43 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 3 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 55 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h | 12 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 7 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 5 +
drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 5 +
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 74 +-
drivers/gpu/drm/amd/amdgpu/atom.c | 53 +-
drivers/gpu/drm/amd/amdgpu/atom.h | 2 +-
drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 149 +-
drivers/gpu/drm/amd/amdgpu/cz_dpm.c | 21 +-
drivers/gpu/drm/amd/amdgpu/cz_smc.c | 60 +-
drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 241 +-
drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 260 +-
drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 243 +-
drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 20 -
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 890 +-
drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 44 +-
drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 52 +-
drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 175 +-
drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 213 +-
drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c | 1 -
drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c | 1 -
drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c | 1 -
drivers/gpu/drm/amd/amdgpu/vce_v2_0.c | 1 -
drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 6 +-
drivers/gpu/drm/amd/amdgpu/vi.c | 50 +-
drivers/gpu/drm/amd/include/amd_shared.h | 1 +
.../gpu/drm/amd/include/asic_reg/gca/gfx_8_1_d.h | 2791 +++
.../drm/amd/include/asic_reg/gca/gfx_8_1_enum.h | 6808 ++++++
.../drm/amd/include/asic_reg/gca/gfx_8_1_sh_mask.h | 21368 +++++++++++++++++++
drivers/gpu/drm/amd/include/atombios.h | 2 +-
drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 52 +-
drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 7 +-
drivers/gpu/drm/armada/Kconfig | 9 -
drivers/gpu/drm/armada/Makefile | 3 +-
drivers/gpu/drm/armada/armada_crtc.c | 258 +-
drivers/gpu/drm/armada/armada_crtc.h | 34 +-
drivers/gpu/drm/armada/armada_drm.h | 16 -
drivers/gpu/drm/armada/armada_drv.c | 221 +-
drivers/gpu/drm/armada/armada_output.c | 142 -
drivers/gpu/drm/armada/armada_output.h | 33 -
drivers/gpu/drm/armada/armada_overlay.c | 147 +-
drivers/gpu/drm/armada/armada_slave.c | 139 -
drivers/gpu/drm/armada/armada_slave.h | 26 -
drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 8 +-
drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c | 6 +-
drivers/gpu/drm/bridge/Kconfig | 12 +
drivers/gpu/drm/bridge/Makefile | 1 +
drivers/gpu/drm/bridge/dw_hdmi-ahb-audio.c | 653 +
drivers/gpu/drm/bridge/dw_hdmi-audio.h | 14 +
drivers/gpu/drm/bridge/dw_hdmi.c | 391 +-
drivers/gpu/drm/bridge/dw_hdmi.h | 3 +
drivers/gpu/drm/bridge/nxp-ptn3460.c | 1 -
drivers/gpu/drm/bridge/parade-ps8622.c | 1 -
drivers/gpu/drm/drm_agpsupport.c | 4 -
drivers/gpu/drm/drm_atomic.c | 28 +-
drivers/gpu/drm/drm_atomic_helper.c | 325 +-
drivers/gpu/drm/drm_bufs.c | 6 +-
drivers/gpu/drm/drm_crtc.c | 148 +-
drivers/gpu/drm/drm_dp_helper.c | 44 +-
drivers/gpu/drm/drm_dp_mst_topology.c | 7 +-
drivers/gpu/drm/drm_drv.c | 67 +-
drivers/gpu/drm/drm_edid.c | 60 +-
drivers/gpu/drm/drm_edid_load.c | 43 +-
drivers/gpu/drm/drm_fb_helper.c | 212 +-
drivers/gpu/drm/drm_gem.c | 47 +-
drivers/gpu/drm/drm_gem_cma_helper.c | 2 -
drivers/gpu/drm/drm_internal.h | 2 +-
drivers/gpu/drm/drm_ioc32.c | 6 +-
drivers/gpu/drm/drm_ioctl.c | 93 +-
drivers/gpu/drm/drm_irq.c | 367 +-
drivers/gpu/drm/drm_memory.c | 6 +-
drivers/gpu/drm/drm_mm.c | 6 +-
drivers/gpu/drm/drm_modeset_lock.c | 2 +
drivers/gpu/drm/drm_of.c | 88 +
drivers/gpu/drm/drm_pci.c | 11 +
drivers/gpu/drm/drm_plane_helper.c | 6 +-
drivers/gpu/drm/drm_platform.c | 3 +
drivers/gpu/drm/drm_rect.c | 4 +-
drivers/gpu/drm/drm_sysfs.c | 49 +-
drivers/gpu/drm/drm_vm.c | 8 +-
drivers/gpu/drm/drm_vma_manager.c | 40 +-
drivers/gpu/drm/exynos/Kconfig | 75 +-
drivers/gpu/drm/exynos/Makefile | 3 +-
drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 324 +-
drivers/gpu/drm/exynos/exynos7_drm_decon.c | 7 +-
drivers/gpu/drm/exynos/exynos_drm_crtc.c | 16 +-
drivers/gpu/drm/exynos/exynos_drm_crtc.h | 4 +-
drivers/gpu/drm/exynos/exynos_drm_drv.c | 28 +-
drivers/gpu/drm/exynos/exynos_drm_drv.h | 5 +
drivers/gpu/drm/exynos/exynos_drm_fb.c | 45 +-
drivers/gpu/drm/exynos/exynos_drm_fb.h | 5 +-
drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 53 +-
drivers/gpu/drm/exynos/exynos_drm_fimc.c | 16 +-
drivers/gpu/drm/exynos/exynos_drm_fimd.c | 7 +-
drivers/gpu/drm/exynos/exynos_drm_gem.c | 275 +-
drivers/gpu/drm/exynos/exynos_drm_gem.h | 15 +-
drivers/gpu/drm/exynos/exynos_drm_gsc.c | 12 +-
drivers/gpu/drm/exynos/exynos_drm_iommu.c | 3 +-
drivers/gpu/drm/exynos/exynos_drm_plane.c | 20 +-
drivers/gpu/drm/exynos/exynos_drm_plane.h | 2 +
drivers/gpu/drm/exynos/exynos_drm_vidi.c | 8 +-
drivers/gpu/drm/exynos/exynos_hdmi.c | 496 +-
drivers/gpu/drm/exynos/exynos_mixer.c | 17 +-
drivers/gpu/drm/exynos/exynos_mixer.h | 20 -
drivers/gpu/drm/exynos/regs-hdmi.h | 33 +-
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 7 +-
drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c | 2 -
drivers/gpu/drm/gma500/cdv_intel_dp.c | 1 -
drivers/gpu/drm/gma500/psb_drv.h | 6 +-
drivers/gpu/drm/gma500/psb_irq.c | 8 +-
drivers/gpu/drm/gma500/psb_irq.h | 6 +-
drivers/gpu/drm/i2c/ch7006_drv.c | 6 +-
drivers/gpu/drm/i2c/ch7006_mode.c | 26 +-
drivers/gpu/drm/i2c/ch7006_priv.h | 12 +-
drivers/gpu/drm/i2c/tda998x_drv.c | 487 +-
drivers/gpu/drm/i915/Makefile | 4 +
drivers/gpu/drm/i915/dvo.h | 4 +-
drivers/gpu/drm/i915/dvo_ch7017.c | 4 +-
drivers/gpu/drm/i915/dvo_ch7xxx.c | 4 +-
drivers/gpu/drm/i915/dvo_ivch.c | 12 +-
drivers/gpu/drm/i915/dvo_ns2501.c | 4 +-
drivers/gpu/drm/i915/dvo_sil164.c | 4 +-
drivers/gpu/drm/i915/dvo_tfp410.c | 4 +-
drivers/gpu/drm/i915/i915_cmd_parser.c | 17 +-
drivers/gpu/drm/i915/i915_debugfs.c | 264 +-
drivers/gpu/drm/i915/i915_dma.c | 246 +-
drivers/gpu/drm/i915/i915_drv.c | 83 +-
drivers/gpu/drm/i915/i915_drv.h | 154 +-
drivers/gpu/drm/i915/i915_gem.c | 272 +-
drivers/gpu/drm/i915/i915_gem_context.c | 31 +
drivers/gpu/drm/i915/i915_gem_evict.c | 45 -
drivers/gpu/drm/i915/i915_gem_execbuffer.c | 167 +-
drivers/gpu/drm/i915/i915_gem_fence.c | 47 +-
drivers/gpu/drm/i915/i915_gem_gtt.c | 878 +-
drivers/gpu/drm/i915/i915_gem_gtt.h | 77 +-
drivers/gpu/drm/i915/i915_gem_shrinker.c | 21 +-
drivers/gpu/drm/i915/i915_gem_stolen.c | 181 +-
drivers/gpu/drm/i915/i915_gem_userptr.c | 333 +-
drivers/gpu/drm/i915/i915_gpu_error.c | 78 +-
drivers/gpu/drm/i915/i915_guc_reg.h | 21 +-
drivers/gpu/drm/i915/i915_guc_submission.c | 975 +
drivers/gpu/drm/i915/i915_irq.c | 686 +-
drivers/gpu/drm/i915/i915_params.c | 43 +-
drivers/gpu/drm/i915/i915_reg.h | 593 +-
drivers/gpu/drm/i915/i915_suspend.c | 45 +-
drivers/gpu/drm/i915/i915_sysfs.c | 34 +-
drivers/gpu/drm/i915/i915_trace.h | 78 +-
drivers/gpu/drm/i915/i915_vgpu.h | 34 +-
drivers/gpu/drm/i915/intel_acpi.c | 3 +-
drivers/gpu/drm/i915/intel_atomic.c | 13 +-
drivers/gpu/drm/i915/intel_atomic_plane.c | 6 +-
drivers/gpu/drm/i915/intel_audio.c | 220 +-
drivers/gpu/drm/i915/intel_bios.c | 43 +-
drivers/gpu/drm/i915/intel_bios.h | 3 -
drivers/gpu/drm/i915/intel_crt.c | 15 +-
drivers/gpu/drm/i915/intel_csr.c | 41 +-
drivers/gpu/drm/i915/intel_ddi.c | 182 +-
drivers/gpu/drm/i915/intel_display.c | 1035 +-
drivers/gpu/drm/i915/intel_dp.c | 838 +-
drivers/gpu/drm/i915/intel_dp_mst.c | 26 +-
drivers/gpu/drm/i915/intel_drv.h | 101 +-
drivers/gpu/drm/i915/intel_dsi.c | 323 +-
drivers/gpu/drm/i915/intel_dsi.h | 7 +-
drivers/gpu/drm/i915/intel_dsi_pll.c | 243 +-
drivers/gpu/drm/i915/intel_dvo.c | 64 +-
drivers/gpu/drm/i915/intel_fbc.c | 264 +-
drivers/gpu/drm/i915/intel_fbdev.c | 23 +-
drivers/gpu/drm/i915/intel_guc.h | 124 +
drivers/gpu/drm/i915/intel_guc_fwif.h | 31 +-
drivers/gpu/drm/i915/intel_guc_loader.c | 608 +
drivers/gpu/drm/i915/intel_hdmi.c | 306 +-
drivers/gpu/drm/i915/intel_i2c.c | 54 +-
drivers/gpu/drm/i915/intel_lrc.c | 427 +-
drivers/gpu/drm/i915/intel_lrc.h | 18 +-
drivers/gpu/drm/i915/intel_lvds.c | 50 +-
drivers/gpu/drm/i915/intel_modes.c | 9 +
drivers/gpu/drm/i915/intel_opregion.c | 92 +-
drivers/gpu/drm/i915/intel_panel.c | 525 +-
drivers/gpu/drm/i915/intel_pm.c | 569 +-
drivers/gpu/drm/i915/intel_psr.c | 18 +-
drivers/gpu/drm/i915/intel_ringbuffer.c | 262 +-
drivers/gpu/drm/i915/intel_ringbuffer.h | 15 +-
drivers/gpu/drm/i915/intel_runtime_pm.c | 492 +-
drivers/gpu/drm/i915/intel_sdvo.c | 51 +-
drivers/gpu/drm/i915/intel_sprite.c | 59 +-
drivers/gpu/drm/i915/intel_tv.c | 14 +-
drivers/gpu/drm/i915/intel_uncore.c | 49 +-
drivers/gpu/drm/imx/dw_hdmi-imx.c | 16 +-
drivers/gpu/drm/imx/imx-drm-core.c | 65 +-
drivers/gpu/drm/imx/ipuv3-plane.c | 16 +
drivers/gpu/drm/mga/mga_dma.c | 4 +-
drivers/gpu/drm/mga/mga_drv.h | 6 +-
drivers/gpu/drm/mga/mga_irq.c | 20 +-
drivers/gpu/drm/msm/Kconfig | 14 -
drivers/gpu/drm/msm/Makefile | 2 +-
drivers/gpu/drm/msm/adreno/a2xx.xml.h | 9 +-
drivers/gpu/drm/msm/adreno/a3xx.xml.h | 27 +-
drivers/gpu/drm/msm/adreno/a4xx.xml.h | 15 +-
drivers/gpu/drm/msm/adreno/adreno_common.xml.h | 13 +-
drivers/gpu/drm/msm/adreno/adreno_pm4.xml.h | 9 +-
drivers/gpu/drm/msm/dsi/dsi.xml.h | 238 +-
drivers/gpu/drm/msm/dsi/dsi_host.c | 2 +-
drivers/gpu/drm/msm/dsi/mmss_cc.xml.h | 8 +-
drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 2 +-
drivers/gpu/drm/msm/dsi/phy/dsi_phy_28nm.c | 6 +-
drivers/gpu/drm/msm/dsi/sfpb.xml.h | 21 +-
drivers/gpu/drm/msm/edp/edp.xml.h | 8 +-
drivers/gpu/drm/msm/hdmi/hdmi.c | 17 +-
drivers/gpu/drm/msm/hdmi/hdmi.xml.h | 8 +-
drivers/gpu/drm/msm/hdmi/qfprom.xml.h | 8 +-
drivers/gpu/drm/msm/mdp/mdp4/mdp4.xml.h | 8 +-
drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c | 10 +-
drivers/gpu/drm/msm/mdp/mdp5/mdp5.xml.h | 86 +-
drivers/gpu/drm/msm/mdp/mdp5/mdp5_cfg.c | 95 +-
drivers/gpu/drm/msm/mdp/mdp5/mdp5_cfg.h | 11 +-
drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c | 46 +-
drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.h | 2 +
drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 211 +-
drivers/gpu/drm/msm/mdp/mdp5/mdp5_smp.c | 8 +-
drivers/gpu/drm/msm/mdp/mdp_common.xml.h | 15 +-
drivers/gpu/drm/msm/mdp/mdp_kms.h | 6 +
drivers/gpu/drm/msm/msm_atomic.c | 2 +-
drivers/gpu/drm/msm/msm_drv.c | 36 +-
drivers/gpu/drm/msm/msm_fbdev.c | 5 -
drivers/gpu/drm/msm/msm_gem_prime.c | 2 -
drivers/gpu/drm/msm/msm_gpu.c | 8 +
drivers/gpu/drm/nouveau/dispnv04/tvmodesnv17.c | 2 +-
drivers/gpu/drm/nouveau/dispnv04/tvnv17.h | 2 +-
drivers/gpu/drm/nouveau/include/nvif/os.h | 1 +
drivers/gpu/drm/nouveau/include/nvkm/core/tegra.h | 13 +-
.../drm/nouveau/include/nvkm/subdev/bios/gpio.h | 1 +
.../gpu/drm/nouveau/include/nvkm/subdev/bios/pmu.h | 2 -
.../drm/nouveau/include/nvkm/subdev/bios/ramcfg.h | 2 +-
.../drm/nouveau/include/nvkm/subdev/bios/volt.h | 15 +-
drivers/gpu/drm/nouveau/include/nvkm/subdev/bus.h | 1 +
drivers/gpu/drm/nouveau/include/nvkm/subdev/ibus.h | 1 +
drivers/gpu/drm/nouveau/include/nvkm/subdev/ltc.h | 4 +
drivers/gpu/drm/nouveau/include/nvkm/subdev/pci.h | 5 +-
.../gpu/drm/nouveau/include/nvkm/subdev/timer.h | 10 +
drivers/gpu/drm/nouveau/include/nvkm/subdev/volt.h | 1 +
drivers/gpu/drm/nouveau/nouveau_abi16.c | 84 +-
drivers/gpu/drm/nouveau/nouveau_abi16.h | 4 +-
drivers/gpu/drm/nouveau/nouveau_acpi.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_bo.c | 8 +-
drivers/gpu/drm/nouveau/nouveau_chan.c | 30 +-
drivers/gpu/drm/nouveau/nouveau_chan.h | 3 +-
drivers/gpu/drm/nouveau/nouveau_display.c | 32 +-
drivers/gpu/drm/nouveau/nouveau_display.h | 11 +-
drivers/gpu/drm/nouveau/nouveau_drm.c | 41 +-
drivers/gpu/drm/nouveau/nouveau_drm.h | 14 +-
drivers/gpu/drm/nouveau/nouveau_gem.c | 13 +-
drivers/gpu/drm/nouveau/nouveau_platform.c | 19 +-
drivers/gpu/drm/nouveau/nouveau_sysfs.c | 5 +-
drivers/gpu/drm/nouveau/nouveau_ttm.c | 31 +-
drivers/gpu/drm/nouveau/nouveau_usif.c | 15 +-
drivers/gpu/drm/nouveau/nv50_display.c | 7 +-
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 83 +-
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c | 9 +-
drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c | 13 +-
.../gpu/drm/nouveau/nvkm/engine/disp/rootnv04.c | 2 +-
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 1 +
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf110.c | 1 +
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf117.c | 1 +
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf119.c | 1 +
drivers/gpu/drm/nouveau/nvkm/engine/pm/base.c | 2 +-
drivers/gpu/drm/nouveau/nvkm/subdev/bios/pmu.c | 13 -
drivers/gpu/drm/nouveau/nvkm/subdev/bios/rammap.c | 4 +-
drivers/gpu/drm/nouveau/nvkm/subdev/bios/volt.c | 17 +-
drivers/gpu/drm/nouveau/nvkm/subdev/bus/hwsq.c | 32 +
drivers/gpu/drm/nouveau/nvkm/subdev/bus/hwsq.h | 6 +
drivers/gpu/drm/nouveau/nvkm/subdev/clk/g84.c | 2 +-
drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr3.c | 10 +-
drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr5.c | 3 +-
drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c | 141 +-
drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgt215.c | 123 +-
drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv50.c | 121 +-
drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramseq.h | 1 +
drivers/gpu/drm/nouveau/nvkm/subdev/fb/sddr2.c | 6 +
drivers/gpu/drm/nouveau/nvkm/subdev/fb/sddr3.c | 4 +-
drivers/gpu/drm/nouveau/nvkm/subdev/gpio/nv50.c | 2 +-
drivers/gpu/drm/nouveau/nvkm/subdev/ibus/Kbuild | 1 +
drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gf100.c | 17 +-
drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gf117.c | 51 +
drivers/gpu/drm/nouveau/nvkm/subdev/ibus/priv.h | 7 +
.../gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c | 371 +-
drivers/gpu/drm/nouveau/nvkm/subdev/ltc/base.c | 14 +
drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gf100.c | 32 +
drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gk104.c | 2 +
drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gm107.c | 2 +
drivers/gpu/drm/nouveau/nvkm/subdev/ltc/priv.h | 5 +
drivers/gpu/drm/nouveau/nvkm/subdev/pci/Kbuild | 4 +-
drivers/gpu/drm/nouveau/nvkm/subdev/pci/base.c | 11 +
drivers/gpu/drm/nouveau/nvkm/subdev/pci/g84.c | 64 +
drivers/gpu/drm/nouveau/nvkm/subdev/pci/g94.c | 39 +
drivers/gpu/drm/nouveau/nvkm/subdev/pci/gf100.c | 1 +
drivers/gpu/drm/nouveau/nvkm/subdev/pci/nv40.c | 2 +-
.../drm/nouveau/nvkm/subdev/pci/{nv50.c => nv46.c} | 14 +-
drivers/gpu/drm/nouveau/nvkm/subdev/pci/priv.h | 6 +
drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.c | 2 +-
drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk104.c | 4 +
drivers/gpu/drm/nouveau/nvkm/subdev/volt/Kbuild | 1 +
drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.c | 11 +-
drivers/gpu/drm/nouveau/nvkm/subdev/volt/gk104.c | 119 +
drivers/gpu/drm/nouveau/nvkm/subdev/volt/priv.h | 6 +
drivers/gpu/drm/omapdrm/omap_crtc.c | 3 -
drivers/gpu/drm/omapdrm/omap_drv.c | 18 +-
drivers/gpu/drm/omapdrm/omap_drv.h | 4 +-
drivers/gpu/drm/omapdrm/omap_fb.c | 4 +-
drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c | 3 -
drivers/gpu/drm/omapdrm/omap_irq.c | 16 +-
drivers/gpu/drm/omapdrm/omap_plane.c | 12 +-
drivers/gpu/drm/qxl/qxl_drv.c | 7 +-
drivers/gpu/drm/qxl/qxl_ioctl.c | 14 +-
drivers/gpu/drm/r128/r128_cce.c | 12 +-
drivers/gpu/drm/r128/r128_drv.h | 6 +-
drivers/gpu/drm/r128/r128_irq.c | 16 +-
drivers/gpu/drm/radeon/atombios_dp.c | 1 +
drivers/gpu/drm/radeon/cayman_blit_shaders.c | 2 +-
drivers/gpu/drm/radeon/evergreen.c | 32 +-
drivers/gpu/drm/radeon/evergreen_blit_shaders.c | 2 +-
drivers/gpu/drm/radeon/evergreen_cs.c | 104 +-
drivers/gpu/drm/radeon/r600_blit_shaders.c | 2 +-
drivers/gpu/drm/radeon/r600_cp.c | 14 +-
drivers/gpu/drm/radeon/radeon_acpi.c | 1 -
drivers/gpu/drm/radeon/radeon_agp.c | 8 +-
drivers/gpu/drm/radeon/radeon_asic.c | 1 -
drivers/gpu/drm/radeon/radeon_atpx_handler.c | 4 +-
drivers/gpu/drm/radeon/radeon_bios.c | 1 -
drivers/gpu/drm/radeon/radeon_cp.c | 16 +-
drivers/gpu/drm/radeon/radeon_device.c | 2 +-
drivers/gpu/drm/radeon/radeon_display.c | 37 +-
drivers/gpu/drm/radeon/radeon_drv.c | 16 +-
drivers/gpu/drm/radeon/radeon_drv.h | 6 +-
drivers/gpu/drm/radeon/radeon_irq.c | 38 +-
drivers/gpu/drm/radeon/radeon_kms.c | 138 +-
drivers/gpu/drm/radeon/radeon_mode.h | 8 +-
drivers/gpu/drm/radeon/radeon_pm.c | 4 +-
drivers/gpu/drm/radeon/radeon_ttm.c | 10 +-
drivers/gpu/drm/rcar-du/Kconfig | 2 +-
drivers/gpu/drm/rcar-du/rcar_du_drv.c | 48 +-
drivers/gpu/drm/rcar-du/rcar_du_group.c | 5 +-
drivers/gpu/drm/rcar-du/rcar_du_kms.c | 2 +-
drivers/gpu/drm/rcar-du/rcar_du_plane.c | 45 +-
drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 89 +-
drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 3 -
drivers/gpu/drm/shmobile/shmob_drm_drv.c | 6 +-
drivers/gpu/drm/sis/sis_drv.h | 4 +
drivers/gpu/drm/sti/sti_crtc.c | 16 +-
drivers/gpu/drm/sti/sti_crtc.h | 4 +-
drivers/gpu/drm/sti/sti_drv.c | 4 +-
drivers/gpu/drm/tegra/dc.c | 16 +-
drivers/gpu/drm/tegra/dpaux.c | 3 +-
drivers/gpu/drm/tegra/drm.c | 37 +-
drivers/gpu/drm/tegra/fb.c | 1 -
drivers/gpu/drm/tilcdc/tilcdc_drv.c | 6 +-
drivers/gpu/drm/vc4/Kconfig | 13 +
drivers/gpu/drm/vc4/Makefile | 17 +
drivers/gpu/drm/vc4/vc4_bo.c | 52 +
drivers/gpu/drm/vc4/vc4_crtc.c | 672 +
drivers/gpu/drm/vc4/vc4_debugfs.c | 39 +
drivers/gpu/drm/vc4/vc4_drv.c | 298 +
drivers/gpu/drm/vc4/vc4_drv.h | 145 +
drivers/gpu/drm/vc4/vc4_hdmi.c | 590 +
drivers/gpu/drm/vc4/vc4_hvs.c | 163 +
drivers/gpu/drm/vc4/vc4_kms.c | 67 +
drivers/gpu/drm/vc4/vc4_plane.c | 320 +
drivers/gpu/drm/vc4/vc4_regs.h | 570 +
drivers/gpu/drm/vgem/vgem_drv.c | 55 +-
drivers/gpu/drm/via/via_drv.h | 10 +-
drivers/gpu/drm/via/via_irq.c | 17 +-
drivers/gpu/drm/virtio/Makefile | 3 +-
drivers/gpu/drm/virtio/virtgpu_display.c | 57 +-
drivers/gpu/drm/virtio/virtgpu_drv.c | 28 +-
drivers/gpu/drm/virtio/virtgpu_drv.h | 72 +
drivers/gpu/drm/virtio/virtgpu_fence.c | 2 +-
drivers/gpu/drm/virtio/virtgpu_gem.c | 41 +
drivers/gpu/drm/virtio/virtgpu_ioctl.c | 573 +
drivers/gpu/drm/virtio/virtgpu_kms.c | 133 +-
drivers/gpu/drm/virtio/virtgpu_object.c | 11 +-
drivers/gpu/drm/virtio/virtgpu_prime.c | 71 +
drivers/gpu/drm/virtio/virtgpu_ttm.c | 1 +
drivers/gpu/drm/virtio/virtgpu_vq.c | 322 +-
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 72 +-
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 43 +-
drivers/gpu/drm/vmwgfx/vmwgfx_fence.c | 24 +-
drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c | 132 +-
drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c | 38 +-
drivers/gpu/drm/vmwgfx/vmwgfx_irq.c | 113 +-
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 31 +-
drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 2 +
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 2 +
drivers/gpu/host1x/hw/debug_hw.c | 2 +-
drivers/gpu/host1x/hw/hw_host1x01_sync.h | 8 +-
drivers/gpu/host1x/hw/hw_host1x02_sync.h | 8 +-
drivers/gpu/host1x/hw/hw_host1x04_sync.h | 8 +-
drivers/gpu/ipu-v3/ipu-common.c | 5 +
drivers/gpu/ipu-v3/ipu-cpmem.c | 87 +-
drivers/gpu/ipu-v3/ipu-csi.c | 5 +-
drivers/gpu/ipu-v3/ipu-dc.c | 15 +-
drivers/gpu/ipu-v3/ipu-di.c | 129 +-
drivers/gpu/vga/vga_switcheroo.c | 382 +-
drivers/gpu/vga/vgaarb.c | 4 +-
drivers/platform/x86/apple-gmux.c | 2 +-
include/drm/drmP.h | 48 +-
include/drm/drm_agpsupport.h | 57 +-
include/drm/drm_atomic_helper.h | 12 +-
include/drm/drm_crtc.h | 18 +-
include/drm/drm_dp_helper.h | 9 +-
include/drm/drm_edid.h | 5 +-
include/drm/drm_fb_helper.h | 31 +-
include/drm/drm_gem.h | 5 +-
include/drm/drm_modeset_lock.h | 10 +-
include/drm/drm_of.h | 13 +
include/drm/drm_plane_helper.h | 2 -
include/drm/drm_vma_manager.h | 24 +-
include/drm/i915_component.h | 64 +-
include/linux/fb.h | 2 +-
include/linux/fence.h | 25 +-
include/linux/vga_switcheroo.h | 100 +-
include/uapi/drm/Kbuild | 1 +
include/uapi/drm/amdgpu_drm.h | 2 +-
include/uapi/drm/drm_mode.h | 42 +-
include/uapi/drm/i810_drm.h | 2 +
include/uapi/drm/i915_drm.h | 3 +-
include/uapi/drm/nouveau_drm.h | 8 -
include/uapi/drm/r128_drm.h | 2 +
include/uapi/drm/savage_drm.h | 2 +
include/uapi/drm/sis_drm.h | 4 -
include/uapi/drm/via_drm.h | 4 -
include/uapi/drm/virtgpu_drm.h | 167 +
include/uapi/linux/virtio_gpu.h | 112 +-
include/video/exynos5433_decon.h | 29 +
sound/pci/hda/hda_controller.h | 2 +-
sound/pci/hda/hda_intel.c | 15 +-
sound/pci/hda/hda_intel.h | 2 +-
sound/pci/hda/patch_hdmi.c | 19 +
470 files changed, 53638 insertions(+), 9863 deletions(-)
rename Documentation/DocBook/{drm.tmpl => gpu.tmpl} (97%)
create mode 100644 Documentation/devicetree/bindings/display/brcm,bcm-vc4.txt
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/gca/gfx_8_1_d.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/gca/gfx_8_1_enum.h
create mode 100644 drivers/gpu/drm/amd/include/asic_reg/gca/gfx_8_1_sh_mask.h
delete mode 100644 drivers/gpu/drm/armada/armada_output.c
delete mode 100644 drivers/gpu/drm/armada/armada_output.h
delete mode 100644 drivers/gpu/drm/armada/armada_slave.c
delete mode 100644 drivers/gpu/drm/armada/armada_slave.h
create mode 100644 drivers/gpu/drm/bridge/dw_hdmi-ahb-audio.c
create mode 100644 drivers/gpu/drm/bridge/dw_hdmi-audio.h
delete mode 100644 drivers/gpu/drm/exynos/exynos_mixer.h
create mode 100644 drivers/gpu/drm/i915/i915_guc_submission.c
create mode 100644 drivers/gpu/drm/i915/intel_guc.h
create mode 100644 drivers/gpu/drm/i915/intel_guc_loader.c
create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/ibus/gf117.c
create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/ibus/priv.h
create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/pci/g84.c
create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/pci/g94.c
rename drivers/gpu/drm/nouveau/nvkm/subdev/pci/{nv50.c => nv46.c} (83%)
create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/volt/gk104.c
create mode 100644 drivers/gpu/drm/vc4/Kconfig
create mode 100644 drivers/gpu/drm/vc4/Makefile
create mode 100644 drivers/gpu/drm/vc4/vc4_bo.c
create mode 100644 drivers/gpu/drm/vc4/vc4_crtc.c
create mode 100644 drivers/gpu/drm/vc4/vc4_debugfs.c
create mode 100644 drivers/gpu/drm/vc4/vc4_drv.c
create mode 100644 drivers/gpu/drm/vc4/vc4_drv.h
create mode 100644 drivers/gpu/drm/vc4/vc4_hdmi.c
create mode 100644 drivers/gpu/drm/vc4/vc4_hvs.c
create mode 100644 drivers/gpu/drm/vc4/vc4_kms.c
create mode 100644 drivers/gpu/drm/vc4/vc4_plane.c
create mode 100644 drivers/gpu/drm/vc4/vc4_regs.h
create mode 100644 drivers/gpu/drm/virtio/virtgpu_ioctl.c
create mode 100644 drivers/gpu/drm/virtio/virtgpu_prime.c
create mode 100644 include/uapi/drm/virtgpu_drm.h


2015-12-10 03:04:36

by Stefan Lippers-Hollmann

[permalink] [raw]
Subject: Re: [git pull] drm for 4.4-rc1

Hi

On 2015-11-09, Dave Airlie wrote:
[...]
The following changes since commit 06d1ee32a4d25356a710b49d5e95dbdd68bdf505:

Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux (2015-10-13 09:45:21 -0700)

are available in the git repository at:

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

for you to fetch changes up to 816d2206f0f9953ca854e4ff1a2749a5cbd62715:

Merge tag 'drm-intel-next-fixes-2015-11-06' of git://anongit.freedesktop.org/drm-intel into drm-next (2015-11-07 17:16:59 +1000)
[...]
> drm/i915: Check live status before reading edid
[...]

This patch seems to introduce a regression for i915 in Linus'
v4.4-rc4-60-g9a0f76f, relative to v4.3 (and 4.3.1), on a sandy-bridge
(Intel DH67CL) system with a single HDMI connected monitor (Medion MD20094)
attached. Immediately after the modeswitch, the monitor switches off and
stays off. Nothing catches my eyes in dmesg or Xorg.0.log, but bisecting
the issue points me at:

237ed86c693d8a8e4db476976aeb30df4deac74b is the first bad commit
commit 237ed86c693d8a8e4db476976aeb30df4deac74b
Author: Sonika Jindal <[email protected]>
Date: Tue Sep 15 09:44:20 2015 +0530

drm/i915: Check live status before reading edid

The Bspec is very clear that Live status must be checked about before
trying to read EDID over DDC channel. This patch makes sure that HDMI
EDID is read only when live status is up.

The live status doesn't seem to perform very consistent across various
platforms when tested with different monitors. The reason behind that is
some monitors are late to provide right voltage to set live_status up.
So, after getting the interrupt, for a small duration, live status reg
fluctuates, and then settles down showing the correct staus.

This is explained here in, in a rough way:
HPD line ________________
|\ T1 = Monitor Hotplug causing IRQ
| \______________________________________
| |
| |
| | T2 = Live status is stable
| | _____________________________________
| | /|
Live status _____________|_|/ |
| | |
| | |
| | |
T0 T1 T2

(Between T1 and T2 Live status fluctuates or can be even low, depending on
the monitor)

After several experiments, we have concluded that a max delay
of 30ms is enough to allow the live status to settle down with
most of the monitors. This total delay of 30ms has been split into
a resolution of 3 retries of 10ms each, for the better cases.

This delay is kept at 30ms, keeping in consideration that, HDCP compliance
expect the HPD handler to respond a plug out in 100ms, by disabling port.

v2: Adding checks for VLV/CHV as well. Reusing old ibx and g4x functions
to check digital port status. Adding a separate function to get bxt live
status (Daniel)
v3: Using intel_encoder->hpd_pin to check the live status (Siva)
Moving the live status read to intel_hdmi_probe and passing parameter
to read/not to read the edid. (me)
v4:
* Added live status check for all platforms using
intel_digital_port_connected.
* Rebased on top of Jani's DP cleanup series
* Some monitors take time in setting the live status. So retry for few
times if this is a connect HPD
v5: Removed extra "drm/i915" from commit message. Adding Shashank's sob
which was missed.
v6: Drop the (!detect_edid && !live_status check) check because for DDI
ports which are enumerated as hdmi as well as DP, we don't have a
mechanism to differentiate between DP and hdmi inside the encoder's
hot_plug. This leads to call to the hdmi's hot_plug hook for DP as well
as hdmi which leads to issues during unplug because of the above check.
v7: Make intel_digital_port_connected global in this patch, some
reformatting of while loop, adding a print when live status is not
up. (Rodrigo)
v8: Rebase it on nightly which involved skipping the hot_plug hook for now
and letting the live_status check happen in detect until the hpd handling
part is finalized (Daniel)

Signed-off-by: Shashank Sharma <[email protected]>
Signed-off-by: Sonika Jindal <[email protected]>
Reviewed-by: Rodrigo Vivi <[email protected]>
Signed-off-by: Daniel Vetter <[email protected]>

:040000 040000 85f19ff45ffe39cee99a7a9b0e9dadf9fe71553f 0094b6c634580a496c5cdbf77f13fe5fa769c3e3 M drivers

$ git bisect log
# bad: [9a0f76fde9ad2c00c0cf13aaf3dfb9d886dc578c] Merge tag 'for-linus-4.4-1' of git://git.code.sf.net/p/openipmi/linux-ipmi
# good: [6a13feb9c82803e2b815eca72fa7a9f5561d7861] Linux 4.3
git bisect start 'HEAD' 'v4.3'
# good: [8e483ed1342a4ea45b70f0f33ac54eff7a33d918] Merge tag 'char-misc-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
git bisect good 8e483ed1342a4ea45b70f0f33ac54eff7a33d918
# bad: [3e82806b97398d542a5e03bd94861f79ce10ecee] Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
git bisect bad 3e82806b97398d542a5e03bd94861f79ce10ecee
# good: [0280d1a099da1d211e76ec47cc0944c993a36316] Merge tag 'sound-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
git bisect good 0280d1a099da1d211e76ec47cc0944c993a36316
# good: [123a28d8b522b03dd97c1f791245924088616ac0] Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs
git bisect good 123a28d8b522b03dd97c1f791245924088616ac0
# bad: [b10f1b20171945b49988b2b1fe68cb312cc36d32] drm/i915/skl: Prevent unclaimed register writes on skylake.
git bisect bad b10f1b20171945b49988b2b1fe68cb312cc36d32
# bad: [89e3e1427629027dc33e576fc002880a02a7e50c] drm/i915: Support NV12 in rotated GGTT mapping
git bisect bad 89e3e1427629027dc33e576fc002880a02a7e50c
# good: [0b2eb33e5e2b4aaeaa786d551a1b5f08904a9bfc] drm/i915: LPT:LP needs port A HPD enabled in both north and south
git bisect good 0b2eb33e5e2b4aaeaa786d551a1b5f08904a9bfc
# good: [eb120ef6a3e18780e7464e7de70221d06dfe5845] drm/i915: add more debug info for when atomic updates fail v3
git bisect good eb120ef6a3e18780e7464e7de70221d06dfe5845
# bad: [7aefe2b50a0be5c85e7702bff110e5e187fbe4b5] drm/i915: Fix fastboot scalers for skylake.
git bisect bad 7aefe2b50a0be5c85e7702bff110e5e187fbe4b5
# good: [83e3337204b2385d20e149c8fe91bb2719978df2] drm/i915: Increase maximum polling time to 50ms for forcewake request/clear ack
git bisect good 83e3337204b2385d20e149c8fe91bb2719978df2
# bad: [9eca6832f7254d49d25494da7d47c0f8a24f7862] drm/i915: Move scanline_offset and timestamping constant setup to intel_modeset_readout_hw_state()
git bisect bad 9eca6832f7254d49d25494da7d47c0f8a24f7862
# good: [d2e08c0f34438af791482de8abf2c8e4e573b1d3] drm/i915/bxt: DSI prepare changes for BXT
git bisect good d2e08c0f34438af791482de8abf2c8e4e573b1d3
# bad: [7f4c62840cc416986f983a8c68f7010c97e06daf] drm/i915: Assign hwmode after encoder state readout
git bisect bad 7f4c62840cc416986f983a8c68f7010c97e06daf
# bad: [237ed86c693d8a8e4db476976aeb30df4deac74b] drm/i915: Check live status before reading edid
git bisect bad 237ed86c693d8a8e4db476976aeb30df4deac74b
# first bad commit: [237ed86c693d8a8e4db476976aeb30df4deac74b] drm/i915: Check live status before reading edid

Unfortunately reverting only this patch on top of v4.4-rc4-60-g9a0f76f
doesn't appear to be quite straight forward. What is the best approach
to debug this further?

The very same kernel works fine on two ivy-bridge systems (different
monitors, one connected via HDMI, one via DVI) and an Atom N270 based
system (Intel D945GSEJT, monitor connected via DVI).

Regards
Stefan Lippers-Hollmann

2015-12-10 07:59:18

by Daniel Vetter

[permalink] [raw]
Subject: Re: [git pull] drm for 4.4-rc1

On Thu, Dec 10, 2015 at 04:04:20AM +0100, Stefan Lippers-Hollmann wrote:
> Hi
>
> On 2015-11-09, Dave Airlie wrote:
> [...]
> The following changes since commit 06d1ee32a4d25356a710b49d5e95dbdd68bdf505:
>
> Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux (2015-10-13 09:45:21 -0700)
>
> are available in the git repository at:
>
> git://people.freedesktop.org/~airlied/linux drm-next
>
> for you to fetch changes up to 816d2206f0f9953ca854e4ff1a2749a5cbd62715:
>
> Merge tag 'drm-intel-next-fixes-2015-11-06' of git://anongit.freedesktop.org/drm-intel into drm-next (2015-11-07 17:16:59 +1000)
> [...]
> > drm/i915: Check live status before reading edid
> [...]
>
> This patch seems to introduce a regression for i915 in Linus'
> v4.4-rc4-60-g9a0f76f, relative to v4.3 (and 4.3.1), on a sandy-bridge
> (Intel DH67CL) system with a single HDMI connected monitor (Medion MD20094)
> attached. Immediately after the modeswitch, the monitor switches off and
> stays off. Nothing catches my eyes in dmesg or Xorg.0.log, but bisecting
> the issue points me at:
>
> 237ed86c693d8a8e4db476976aeb30df4deac74b is the first bad commit
> commit 237ed86c693d8a8e4db476976aeb30df4deac74b
> Author: Sonika Jindal <[email protected]>
> Date: Tue Sep 15 09:44:20 2015 +0530
>
> drm/i915: Check live status before reading edid
>
> The Bspec is very clear that Live status must be checked about before
> trying to read EDID over DDC channel. This patch makes sure that HDMI
> EDID is read only when live status is up.
>
> The live status doesn't seem to perform very consistent across various
> platforms when tested with different monitors. The reason behind that is
> some monitors are late to provide right voltage to set live_status up.
> So, after getting the interrupt, for a small duration, live status reg
> fluctuates, and then settles down showing the correct staus.
>
> This is explained here in, in a rough way:
> HPD line ________________
> |\ T1 = Monitor Hotplug causing IRQ
> | \______________________________________
> | |
> | |
> | | T2 = Live status is stable
> | | _____________________________________
> | | /|
> Live status _____________|_|/ |
> | | |
> | | |
> | | |
> T0 T1 T2
>
> (Between T1 and T2 Live status fluctuates or can be even low, depending on
> the monitor)
>
> After several experiments, we have concluded that a max delay
> of 30ms is enough to allow the live status to settle down with
> most of the monitors. This total delay of 30ms has been split into
> a resolution of 3 retries of 10ms each, for the better cases.
>
> This delay is kept at 30ms, keeping in consideration that, HDCP compliance
> expect the HPD handler to respond a plug out in 100ms, by disabling port.
>
> v2: Adding checks for VLV/CHV as well. Reusing old ibx and g4x functions
> to check digital port status. Adding a separate function to get bxt live
> status (Daniel)
> v3: Using intel_encoder->hpd_pin to check the live status (Siva)
> Moving the live status read to intel_hdmi_probe and passing parameter
> to read/not to read the edid. (me)
> v4:
> * Added live status check for all platforms using
> intel_digital_port_connected.
> * Rebased on top of Jani's DP cleanup series
> * Some monitors take time in setting the live status. So retry for few
> times if this is a connect HPD
> v5: Removed extra "drm/i915" from commit message. Adding Shashank's sob
> which was missed.
> v6: Drop the (!detect_edid && !live_status check) check because for DDI
> ports which are enumerated as hdmi as well as DP, we don't have a
> mechanism to differentiate between DP and hdmi inside the encoder's
> hot_plug. This leads to call to the hdmi's hot_plug hook for DP as well
> as hdmi which leads to issues during unplug because of the above check.
> v7: Make intel_digital_port_connected global in this patch, some
> reformatting of while loop, adding a print when live status is not
> up. (Rodrigo)
> v8: Rebase it on nightly which involved skipping the hot_plug hook for now
> and letting the live_status check happen in detect until the hpd handling
> part is finalized (Daniel)
>
> Signed-off-by: Shashank Sharma <[email protected]>
> Signed-off-by: Sonika Jindal <[email protected]>
> Reviewed-by: Rodrigo Vivi <[email protected]>
> Signed-off-by: Daniel Vetter <[email protected]>
>
> :040000 040000 85f19ff45ffe39cee99a7a9b0e9dadf9fe71553f 0094b6c634580a496c5cdbf77f13fe5fa769c3e3 M drivers
>
> $ git bisect log
> # bad: [9a0f76fde9ad2c00c0cf13aaf3dfb9d886dc578c] Merge tag 'for-linus-4.4-1' of git://git.code.sf.net/p/openipmi/linux-ipmi
> # good: [6a13feb9c82803e2b815eca72fa7a9f5561d7861] Linux 4.3
> git bisect start 'HEAD' 'v4.3'
> # good: [8e483ed1342a4ea45b70f0f33ac54eff7a33d918] Merge tag 'char-misc-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
> git bisect good 8e483ed1342a4ea45b70f0f33ac54eff7a33d918
> # bad: [3e82806b97398d542a5e03bd94861f79ce10ecee] Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
> git bisect bad 3e82806b97398d542a5e03bd94861f79ce10ecee
> # good: [0280d1a099da1d211e76ec47cc0944c993a36316] Merge tag 'sound-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
> git bisect good 0280d1a099da1d211e76ec47cc0944c993a36316
> # good: [123a28d8b522b03dd97c1f791245924088616ac0] Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs
> git bisect good 123a28d8b522b03dd97c1f791245924088616ac0
> # bad: [b10f1b20171945b49988b2b1fe68cb312cc36d32] drm/i915/skl: Prevent unclaimed register writes on skylake.
> git bisect bad b10f1b20171945b49988b2b1fe68cb312cc36d32
> # bad: [89e3e1427629027dc33e576fc002880a02a7e50c] drm/i915: Support NV12 in rotated GGTT mapping
> git bisect bad 89e3e1427629027dc33e576fc002880a02a7e50c
> # good: [0b2eb33e5e2b4aaeaa786d551a1b5f08904a9bfc] drm/i915: LPT:LP needs port A HPD enabled in both north and south
> git bisect good 0b2eb33e5e2b4aaeaa786d551a1b5f08904a9bfc
> # good: [eb120ef6a3e18780e7464e7de70221d06dfe5845] drm/i915: add more debug info for when atomic updates fail v3
> git bisect good eb120ef6a3e18780e7464e7de70221d06dfe5845
> # bad: [7aefe2b50a0be5c85e7702bff110e5e187fbe4b5] drm/i915: Fix fastboot scalers for skylake.
> git bisect bad 7aefe2b50a0be5c85e7702bff110e5e187fbe4b5
> # good: [83e3337204b2385d20e149c8fe91bb2719978df2] drm/i915: Increase maximum polling time to 50ms for forcewake request/clear ack
> git bisect good 83e3337204b2385d20e149c8fe91bb2719978df2
> # bad: [9eca6832f7254d49d25494da7d47c0f8a24f7862] drm/i915: Move scanline_offset and timestamping constant setup to intel_modeset_readout_hw_state()
> git bisect bad 9eca6832f7254d49d25494da7d47c0f8a24f7862
> # good: [d2e08c0f34438af791482de8abf2c8e4e573b1d3] drm/i915/bxt: DSI prepare changes for BXT
> git bisect good d2e08c0f34438af791482de8abf2c8e4e573b1d3
> # bad: [7f4c62840cc416986f983a8c68f7010c97e06daf] drm/i915: Assign hwmode after encoder state readout
> git bisect bad 7f4c62840cc416986f983a8c68f7010c97e06daf
> # bad: [237ed86c693d8a8e4db476976aeb30df4deac74b] drm/i915: Check live status before reading edid
> git bisect bad 237ed86c693d8a8e4db476976aeb30df4deac74b
> # first bad commit: [237ed86c693d8a8e4db476976aeb30df4deac74b] drm/i915: Check live status before reading edid
>
> Unfortunately reverting only this patch on top of v4.4-rc4-60-g9a0f76f
> doesn't appear to be quite straight forward. What is the best approach
> to debug this further?
>
> The very same kernel works fine on two ivy-bridge systems (different
> monitors, one connected via HDMI, one via DVI) and an Atom N270 based
> system (Intel D945GSEJT, monitor connected via DVI).

A few things to test:
- How does that screen fare on a working machine? Would tell us if the
issue is with the sink or the source.

- Please boot up with drm.debug=0xe on a working and broken kernel, grab
dmesg for both.

- Extending the timeout magic might be worth a shot like in the below
patch. Crank up retry if it doesn't help.

Thanks, Daniel

diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index c3978bad5ca0..86ebaac548b3 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -1387,7 +1387,7 @@ intel_hdmi_detect(struct drm_connector *connector, bool force)
struct intel_hdmi *intel_hdmi = intel_attached_hdmi(connector);
struct drm_i915_private *dev_priv = to_i915(connector->dev);
bool live_status = false;
- unsigned int retry = 3;
+ unsigned int retry = 10;

DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n",
connector->base.id, connector->name);
@@ -1397,7 +1397,7 @@ intel_hdmi_detect(struct drm_connector *connector, bool force)
while (!live_status && --retry) {
live_status = intel_digital_port_connected(dev_priv,
hdmi_to_dig_port(intel_hdmi));
- mdelay(10);
+ msleep(10);
}

if (!live_status)

--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

2015-12-10 12:42:36

by Jani Nikula

[permalink] [raw]
Subject: Re: [git pull] drm for 4.4-rc1

On Thu, 10 Dec 2015, Daniel Vetter <[email protected]> wrote:
> On Thu, Dec 10, 2015 at 04:04:20AM +0100, Stefan Lippers-Hollmann wrote:
>> Hi
>>
>> On 2015-11-09, Dave Airlie wrote:
>> [...]
>> The following changes since commit 06d1ee32a4d25356a710b49d5e95dbdd68bdf505:
>>
>> Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux (2015-10-13 09:45:21 -0700)
>>
>> are available in the git repository at:
>>
>> git://people.freedesktop.org/~airlied/linux drm-next
>>
>> for you to fetch changes up to 816d2206f0f9953ca854e4ff1a2749a5cbd62715:
>>
>> Merge tag 'drm-intel-next-fixes-2015-11-06' of git://anongit.freedesktop.org/drm-intel into drm-next (2015-11-07 17:16:59 +1000)
>> [...]
>> > drm/i915: Check live status before reading edid
>> [...]
>>
>> This patch seems to introduce a regression for i915 in Linus'
>> v4.4-rc4-60-g9a0f76f, relative to v4.3 (and 4.3.1), on a sandy-bridge
>> (Intel DH67CL) system with a single HDMI connected monitor (Medion MD20094)
>> attached. Immediately after the modeswitch, the monitor switches off and
>> stays off. Nothing catches my eyes in dmesg or Xorg.0.log, but bisecting
>> the issue points me at:
>>
>> 237ed86c693d8a8e4db476976aeb30df4deac74b is the first bad commit
>> commit 237ed86c693d8a8e4db476976aeb30df4deac74b
>> Author: Sonika Jindal <[email protected]>
>> Date: Tue Sep 15 09:44:20 2015 +0530
>>
>> drm/i915: Check live status before reading edid
>>
>> The Bspec is very clear that Live status must be checked about before
>> trying to read EDID over DDC channel. This patch makes sure that HDMI
>> EDID is read only when live status is up.
>>
>> The live status doesn't seem to perform very consistent across various
>> platforms when tested with different monitors. The reason behind that is
>> some monitors are late to provide right voltage to set live_status up.
>> So, after getting the interrupt, for a small duration, live status reg
>> fluctuates, and then settles down showing the correct staus.
>>
>> This is explained here in, in a rough way:
>> HPD line ________________
>> |\ T1 = Monitor Hotplug causing IRQ
>> | \______________________________________
>> | |
>> | |
>> | | T2 = Live status is stable
>> | | _____________________________________
>> | | /|
>> Live status _____________|_|/ |
>> | | |
>> | | |
>> | | |
>> T0 T1 T2
>>
>> (Between T1 and T2 Live status fluctuates or can be even low, depending on
>> the monitor)
>>
>> After several experiments, we have concluded that a max delay
>> of 30ms is enough to allow the live status to settle down with
>> most of the monitors. This total delay of 30ms has been split into
>> a resolution of 3 retries of 10ms each, for the better cases.
>>
>> This delay is kept at 30ms, keeping in consideration that, HDCP compliance
>> expect the HPD handler to respond a plug out in 100ms, by disabling port.
>>
>> v2: Adding checks for VLV/CHV as well. Reusing old ibx and g4x functions
>> to check digital port status. Adding a separate function to get bxt live
>> status (Daniel)
>> v3: Using intel_encoder->hpd_pin to check the live status (Siva)
>> Moving the live status read to intel_hdmi_probe and passing parameter
>> to read/not to read the edid. (me)
>> v4:
>> * Added live status check for all platforms using
>> intel_digital_port_connected.
>> * Rebased on top of Jani's DP cleanup series
>> * Some monitors take time in setting the live status. So retry for few
>> times if this is a connect HPD
>> v5: Removed extra "drm/i915" from commit message. Adding Shashank's sob
>> which was missed.
>> v6: Drop the (!detect_edid && !live_status check) check because for DDI
>> ports which are enumerated as hdmi as well as DP, we don't have a
>> mechanism to differentiate between DP and hdmi inside the encoder's
>> hot_plug. This leads to call to the hdmi's hot_plug hook for DP as well
>> as hdmi which leads to issues during unplug because of the above check.
>> v7: Make intel_digital_port_connected global in this patch, some
>> reformatting of while loop, adding a print when live status is not
>> up. (Rodrigo)
>> v8: Rebase it on nightly which involved skipping the hot_plug hook for now
>> and letting the live_status check happen in detect until the hpd handling
>> part is finalized (Daniel)
>>
>> Signed-off-by: Shashank Sharma <[email protected]>
>> Signed-off-by: Sonika Jindal <[email protected]>
>> Reviewed-by: Rodrigo Vivi <[email protected]>
>> Signed-off-by: Daniel Vetter <[email protected]>
>>
>> :040000 040000 85f19ff45ffe39cee99a7a9b0e9dadf9fe71553f 0094b6c634580a496c5cdbf77f13fe5fa769c3e3 M drivers
>>
>> $ git bisect log
>> # bad: [9a0f76fde9ad2c00c0cf13aaf3dfb9d886dc578c] Merge tag 'for-linus-4.4-1' of git://git.code.sf.net/p/openipmi/linux-ipmi
>> # good: [6a13feb9c82803e2b815eca72fa7a9f5561d7861] Linux 4.3
>> git bisect start 'HEAD' 'v4.3'
>> # good: [8e483ed1342a4ea45b70f0f33ac54eff7a33d918] Merge tag 'char-misc-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
>> git bisect good 8e483ed1342a4ea45b70f0f33ac54eff7a33d918
>> # bad: [3e82806b97398d542a5e03bd94861f79ce10ecee] Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
>> git bisect bad 3e82806b97398d542a5e03bd94861f79ce10ecee
>> # good: [0280d1a099da1d211e76ec47cc0944c993a36316] Merge tag 'sound-4.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
>> git bisect good 0280d1a099da1d211e76ec47cc0944c993a36316
>> # good: [123a28d8b522b03dd97c1f791245924088616ac0] Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs
>> git bisect good 123a28d8b522b03dd97c1f791245924088616ac0
>> # bad: [b10f1b20171945b49988b2b1fe68cb312cc36d32] drm/i915/skl: Prevent unclaimed register writes on skylake.
>> git bisect bad b10f1b20171945b49988b2b1fe68cb312cc36d32
>> # bad: [89e3e1427629027dc33e576fc002880a02a7e50c] drm/i915: Support NV12 in rotated GGTT mapping
>> git bisect bad 89e3e1427629027dc33e576fc002880a02a7e50c
>> # good: [0b2eb33e5e2b4aaeaa786d551a1b5f08904a9bfc] drm/i915: LPT:LP needs port A HPD enabled in both north and south
>> git bisect good 0b2eb33e5e2b4aaeaa786d551a1b5f08904a9bfc
>> # good: [eb120ef6a3e18780e7464e7de70221d06dfe5845] drm/i915: add more debug info for when atomic updates fail v3
>> git bisect good eb120ef6a3e18780e7464e7de70221d06dfe5845
>> # bad: [7aefe2b50a0be5c85e7702bff110e5e187fbe4b5] drm/i915: Fix fastboot scalers for skylake.
>> git bisect bad 7aefe2b50a0be5c85e7702bff110e5e187fbe4b5
>> # good: [83e3337204b2385d20e149c8fe91bb2719978df2] drm/i915: Increase maximum polling time to 50ms for forcewake request/clear ack
>> git bisect good 83e3337204b2385d20e149c8fe91bb2719978df2
>> # bad: [9eca6832f7254d49d25494da7d47c0f8a24f7862] drm/i915: Move scanline_offset and timestamping constant setup to intel_modeset_readout_hw_state()
>> git bisect bad 9eca6832f7254d49d25494da7d47c0f8a24f7862
>> # good: [d2e08c0f34438af791482de8abf2c8e4e573b1d3] drm/i915/bxt: DSI prepare changes for BXT
>> git bisect good d2e08c0f34438af791482de8abf2c8e4e573b1d3
>> # bad: [7f4c62840cc416986f983a8c68f7010c97e06daf] drm/i915: Assign hwmode after encoder state readout
>> git bisect bad 7f4c62840cc416986f983a8c68f7010c97e06daf
>> # bad: [237ed86c693d8a8e4db476976aeb30df4deac74b] drm/i915: Check live status before reading edid
>> git bisect bad 237ed86c693d8a8e4db476976aeb30df4deac74b
>> # first bad commit: [237ed86c693d8a8e4db476976aeb30df4deac74b] drm/i915: Check live status before reading edid
>>
>> Unfortunately reverting only this patch on top of v4.4-rc4-60-g9a0f76f
>> doesn't appear to be quite straight forward. What is the best approach
>> to debug this further?
>>
>> The very same kernel works fine on two ivy-bridge systems (different
>> monitors, one connected via HDMI, one via DVI) and an Atom N270 based
>> system (Intel D945GSEJT, monitor connected via DVI).
>
> A few things to test:

The very first thing to do is to ensure you've tried v4.4-rc4, which
contains

commit 0f5a9be15797f78c9a34e432f26c796165b6e49a
Author: Imre Deak <[email protected]>
Date: Fri Nov 27 18:55:29 2015 +0200

drm/i915: take a power domain reference while checking the HDMI live status

BR,
Jani.




> - How does that screen fare on a working machine? Would tell us if the
> issue is with the sink or the source.
>
> - Please boot up with drm.debug=0xe on a working and broken kernel, grab
> dmesg for both.
>
> - Extending the timeout magic might be worth a shot like in the below
> patch. Crank up retry if it doesn't help.
>
> Thanks, Daniel
>
> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> index c3978bad5ca0..86ebaac548b3 100644
> --- a/drivers/gpu/drm/i915/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> @@ -1387,7 +1387,7 @@ intel_hdmi_detect(struct drm_connector *connector, bool force)
> struct intel_hdmi *intel_hdmi = intel_attached_hdmi(connector);
> struct drm_i915_private *dev_priv = to_i915(connector->dev);
> bool live_status = false;
> - unsigned int retry = 3;
> + unsigned int retry = 10;
>
> DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n",
> connector->base.id, connector->name);
> @@ -1397,7 +1397,7 @@ intel_hdmi_detect(struct drm_connector *connector, bool force)
> while (!live_status && --retry) {
> live_status = intel_digital_port_connected(dev_priv,
> hdmi_to_dig_port(intel_hdmi));
> - mdelay(10);
> + msleep(10);
> }
>
> if (!live_status)

--
Jani Nikula, Intel Open Source Technology Center

2015-12-14 06:14:29

by Stefan Lippers-Hollmann

[permalink] [raw]
Subject: Re: [git pull] drm for 4.4-rc1

Hi

On 2015-12-10, Daniel Vetter wrote:
> On Thu, Dec 10, 2015 at 04:04:20AM +0100, Stefan Lippers-Hollmann wrote:
> > On 2015-11-09, Dave Airlie wrote:
[...]
> > This patch seems to introduce a regression for i915 in Linus'
> > v4.4-rc4-60-g9a0f76f, relative to v4.3 (and 4.3.1), on a sandy-bridge
> > (Intel DH67CL) system with a single HDMI connected monitor (Medion MD20094)
> > attached. Immediately after the modeswitch, the monitor switches off and
> > stays off. Nothing catches my eyes in dmesg or Xorg.0.log, but bisecting
> > the issue points me at:
> >
> > 237ed86c693d8a8e4db476976aeb30df4deac74b is the first bad commit
> > commit 237ed86c693d8a8e4db476976aeb30df4deac74b
> > Author: Sonika Jindal <[email protected]>
> > Date: Tue Sep 15 09:44:20 2015 +0530
> >
> > drm/i915: Check live status before reading edid
[...]

This is strange, after connecting a different monitor (Fujitsu-Siemens
Scaleoview D19-1) as a second screen via DVI, both monitors came up fine
and even after removing it (and reverting everything to the status quo
ante), this HDMI connected Medion MD20094 monitor continues to work on
the previously broken sandy-bridge DH67CL mainboard.
Despite this problem being 100% reproducable and bisectable before,
including multiple power cycles and replacing the HDMI cable, I have not
been able to reproduce the issue again.

> A few things to test:
> - How does that screen fare on a working machine? Would tell us if the
> issue is with the sink or the source.

It is working fine on a Baytrail-D (ASRock Q1900DC-ITX) and an ivy-bridge
(Gigabyte GA-H77M-D3H r1.1) system - and now on the previously affected
sandy-bridge system (Intel DH67CL) as well.

> - Please boot up with drm.debug=0xe on a working and broken kernel, grab
> dmesg for both.

dmesg-v4.4-rc4-113-g0bd0f1e-working.gz is attached, unfortunately I'm no
longer able to reproduce the previous failure (tested with easy of the
bisection steps, identical kernel binaries as before, and v4.4-rc5 as
well), so I can't provide a broken trace.

> - Extending the timeout magic might be worth a shot like in the below
> patch. Crank up retry if it doesn't help.
[...]

I can only imagine that it was right beyond the brink of the timeout
before and something had a lasting, but probably subtile, effect on the
timing after temporarily connecting the second screen; it is working now.

On 2015-12-10, Jani Nikula wrote:
[...]
> The very first thing to do is to ensure you've tried v4.4-rc4, which
> contains

I tested both plain v4.4-rc4 and v4.4-rc4-60-g9a0f76f

> commit 0f5a9be15797f78c9a34e432f26c796165b6e49a
> Author: Imre Deak <[email protected]>
> Date: Fri Nov 27 18:55:29 2015 +0200
>
> drm/i915: take a power domain reference while checking the HDMI live status

both containing this patch.


Thanks a lot and sorry for your trouble, I'll report back if anything
changes - or if I can reproduce the problem again.

Regards
Stefan Lippers-Hollmann


Attachments:
(No filename) (2.92 kB)
dmesg-v4.4-rc4-113-g0bd0f1e-working.gz (21.42 kB)
Download all attachments

2015-12-14 08:30:19

by Daniel Vetter

[permalink] [raw]
Subject: Re: [git pull] drm for 4.4-rc1

On Mon, Dec 14, 2015 at 07:14:09AM +0100, Stefan Lippers-Hollmann wrote:
> Hi
>
> On 2015-12-10, Daniel Vetter wrote:
> > On Thu, Dec 10, 2015 at 04:04:20AM +0100, Stefan Lippers-Hollmann wrote:
> > > On 2015-11-09, Dave Airlie wrote:
> [...]
> > > This patch seems to introduce a regression for i915 in Linus'
> > > v4.4-rc4-60-g9a0f76f, relative to v4.3 (and 4.3.1), on a sandy-bridge
> > > (Intel DH67CL) system with a single HDMI connected monitor (Medion MD20094)
> > > attached. Immediately after the modeswitch, the monitor switches off and
> > > stays off. Nothing catches my eyes in dmesg or Xorg.0.log, but bisecting
> > > the issue points me at:
> > >
> > > 237ed86c693d8a8e4db476976aeb30df4deac74b is the first bad commit
> > > commit 237ed86c693d8a8e4db476976aeb30df4deac74b
> > > Author: Sonika Jindal <[email protected]>
> > > Date: Tue Sep 15 09:44:20 2015 +0530
> > >
> > > drm/i915: Check live status before reading edid
> [...]
>
> This is strange, after connecting a different monitor (Fujitsu-Siemens
> Scaleoview D19-1) as a second screen via DVI, both monitors came up fine
> and even after removing it (and reverting everything to the status quo
> ante), this HDMI connected Medion MD20094 monitor continues to work on
> the previously broken sandy-bridge DH67CL mainboard.
> Despite this problem being 100% reproducable and bisectable before,
> including multiple power cycles and replacing the HDMI cable, I have not
> been able to reproduce the issue again.
>
> > A few things to test:
> > - How does that screen fare on a working machine? Would tell us if the
> > issue is with the sink or the source.
>
> It is working fine on a Baytrail-D (ASRock Q1900DC-ITX) and an ivy-bridge
> (Gigabyte GA-H77M-D3H r1.1) system - and now on the previously affected
> sandy-bridge system (Intel DH67CL) as well.
>
> > - Please boot up with drm.debug=0xe on a working and broken kernel, grab
> > dmesg for both.
>
> dmesg-v4.4-rc4-113-g0bd0f1e-working.gz is attached, unfortunately I'm no
> longer able to reproduce the previous failure (tested with easy of the
> bisection steps, identical kernel binaries as before, and v4.4-rc5 as
> well), so I can't provide a broken trace.
>
> > - Extending the timeout magic might be worth a shot like in the below
> > patch. Crank up retry if it doesn't help.
> [...]
>
> I can only imagine that it was right beyond the brink of the timeout
> before and something had a lasting, but probably subtile, effect on the
> timing after temporarily connecting the second screen; it is working now.
>
> On 2015-12-10, Jani Nikula wrote:
> [...]
> > The very first thing to do is to ensure you've tried v4.4-rc4, which
> > contains
>
> I tested both plain v4.4-rc4 and v4.4-rc4-60-g9a0f76f
>
> > commit 0f5a9be15797f78c9a34e432f26c796165b6e49a
> > Author: Imre Deak <[email protected]>
> > Date: Fri Nov 27 18:55:29 2015 +0200
> >
> > drm/i915: take a power domain reference while checking the HDMI live status
>
> both containing this patch.
>
>
> Thanks a lot and sorry for your trouble, I'll report back if anything
> changes - or if I can reproduce the problem again.

Ah no worries, this happens fairly often ;-) Could be the cable had a bad
day or something like that. Also someone from intel noticed that the delay
isn't quite working like it should (we don't do the full 3x10ms delay),
patch for that should go to upstream hopefuly soon.

Anyway, thanks for reporting.

Cheers, Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch