Hi Linus,
First up, this tree contains a backmerge of your tree, as it merges cleanly but then fails to build on ARM due to an API change, I've included the fixed up patch in the merge commit.
The unmerged, unfixed tree is in my drm-next branch if you want to confirm things. The fixup is 3 trivial ^regulator_set_optimum_mode^regulator_set_load in drivers/gpu/drm/msm/dsi/dsi_host.c.
I've also been delayed waiting for Grant's tree to merge, but that is in now so I'm not dragging in stuff from that any longer.
Highlights:
Core: Virtual GEM layer merged, this has been around for a long time, and it provides a software backed device that allows userspace to use it as a GEM shared memory handler. This makes it a lot easier to do certain things when you have no GPU but still have to deal with DRI expectations.
atomic helper updates. framebuffer modifier interface added. i2c over auxch displayport fixes. fb width/height confusion fixes.
new driver for ps8622/ps8625 bridge chips lots of new panels
i915: more plane atomic conversion vGPU guest support for XenGT Skylake workarounds and fixes Y-tiling support work on dynamic pagetable allocation EU count report param for gen9+ CHV fixes (no longer prelim) remove ilk rc6 frontbuffer tracking for fbc Displayport link rate refactoring sprite colorkey refactor
radeon: Displayport MST support (not enabled by default) non-ATOM native hw auxch support (DCE5+) output csc support new queries for userspace debug support new VCE packet
nouveau: gk20a iommu support gm107 graphics support more gm20x bringup (waiting on signed nvidia fw).
amdkfd: multiple kgd instance support use 64-bit time accessors
msm: stolen memory support DSI and dual-DSI support snapdragon 410 support
exynos: cleanups for atomic and pageflip imx-drm: more media-bus formats TV output prep drm panel support
tegra: hw vblank counter using host1x syncpoints omap: universal plane support prep work for atomic modesetting
rcar-du: ported to atomic modesetting
atmel-hlcdc: ported to atomic modesetting added suspend/resume support
sti: ported to atomic modesetting
dwhdmi: more compliant audio support update rockchip phy support
tda998x: DT probing for attached crtcs simplified EDID reading
rockchip: fixes adv7511: fixes
Dave.
The following changes since commit 09d51602cf84a1264946711dd4ea0dddbac599a1:
Merge branch 'turbostat' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux (2015-04-19 14:31:41 -0700)
are available in the git repository at:
git://people.freedesktop.org/~airlied/linux drm-next-merged
for you to fetch changes up to 2c33ce009ca2389dbf0535d0672214d09738e35e:
Merge Linus master into drm-next (2015-04-20 13:05:20 +1000)
---------------------------------------------------------------- Akash Goel (12): drm/i915: Removed the read of RP_STATE_CAP from sysfs/debugfs functions drm/i915/skl: Added new macros drm/i915/skl: Updated intel_gpu_freq() and intel_freq_opcode() drm/i915/skl: Updated the gen6_init_rps_frequencies function drm/i915/skl: Updated the gen6_set_rps function drm/i915/skl: Restructured the gen6_set_rps_thresholds function drm/i915/skl: Updated the gen6_rps_limits function drm/i915/skl: Updated the gen9_enable_rps function drm/i915/skl: Updated the act_freq_mhz_show sysfs function drm/i915/skl: Updated the i915_frequency_info debugfs function drm/i915/skl: Enabling processing of Turbo interrupts drm/i915/skl: Enable the RPS interrupts programming
Alex Deucher (27): drm/radeon: add an output_csc property drm/radeon: implement output csc property for DCE5+ drm/radeon: setup quantization_range in AVI infoframe drm/radeon: add INFO query for GPU temperature drm/radeon/dpm: add new callbacks to get the current sclk/mclk drm/radeon/rs780: implement get_current_sclk/mclk drm/radeon/rv6xx: implement get_current_sclk/mclk drm/radeon/rv7xx/eg: implement get_current_sclk/mclk drm/radeon/btc: implement get_current_sclk/mclk drm/radeon: remove some rv7xx leftovers from btc dpm code drm/radeon/ni: implement get_current_sclk/mclk drm/radeon/si: implement get_current_sclk/mclk drm/radeon/ci: implement get_current_sclk/mclk drm/radeon/sumo: implement get_current_sclk/mclk drm/radeon/tn: implement get_current_sclk/mclk drm/radeon/kv: implement get_current_sclk/mclk drm/radeon: add INFO query for current sclk/mclk drm/radeon: add new callback for info ioctl register accessor drm/radeon: add get_allowed_info_register function for r1xx-r5xx drm/radeon: add get_allowed_info_register for r6xx/r7xx drm/radeon: add get_allowed_info_register for EG/BTC drm/radeon: add get_allowed_info_register for cayman/TN drm/radeon: add get_allowed_info_register for SI drm/radeon: add get_allowed_info_register for CIK drm/radeon: add support for read reg query from radeon info ioctl drm/radeon: fix doublescan modes (v2) radeon/cik: add support for short HPD irqs
Alexandre Courbot (11): make RAM device optional drm/nouveau/instmem/gk20a: move memory allocation to instmem drm/nouveau/gk20a: remove RAM device drm/nouveau/instmem/gk20a: use DMA attributes drm/nouveau/platform: probe IOMMU if present drm/nouveau/instmem/gk20a: add IOMMU support drm/nouveau/gem: allow user-space to specify an object should be coherent drm/nouveau/instmem/gk20a: fix crash during error path drm/nouveau/platform: release IOMMU's mm upon exit drm/nouveau/platform: fix probe error path drm/nouveau/pmu/gk20a: add some missing statics
Ander Conselvan de Oliveira (28): drm/i915: Look at staged config when fixing pipe_src_w for LVDS drm/i915: Set crtc backpointer when duplicating crtc state drm/i915: Add a for_each_intel_connector macro drm/i915: Improve staged config logging drm/i915: Simplify the way BC bifurcation state consistency is kept drm/i915: Add intel_atomic_get_crtc_state() helper function drm/i915: Pass acquire ctx also to intel_release_load_detect_pipe() drm/i915: Allocate a drm_atomic_state for the legacy modeset code drm/i915: Allocate a crtc_state also when the crtc is being disabled drm/i915: Implement connector state duplication drm/i915: Update dummy connector atomic state with current config drm/i915: Copy the staged connector config to the legacy atomic state drm/i915: Don't use encoder->new_crtc in intel_modeset_pipe_config() drm/i915: Don't use encoder->new_crtc in compute_baseline_pipe_bpp() drm/i915: Don't depend on encoder->new_crtc in intel_dp_compute_config() drm/i915: Don't depend on encoder->new_crtc in intel_hdmi_compute_config drm/i915: Use atomic state in intel_ddi_crtc_get_new_encoder() drm/i915: Don't use staged config in intel_dp_mst_compute_config() drm/i915: Don't use encoder->new_crtc in intel_lvds_compute_config() drm/i915: Pass an atomic state to modeset_global_resources() functions drm/i915: Convert intel_pipe_will_have_type() to using atomic state drm/i915: Don't look at staged config crtc when changing DRRS state drm/i915: Remove usage of encoder->new_crtc from clock computations drm/i915: Handle error to get connector state when staging config drm/atomic: Clear crtcs, connectors and planes when clearing state drm/atomic: Don't try to free a NULL state drm/atomic: Add for_each_{connector,crtc,plane}_in_state helper macros drm/i915: Allocate connector state together with the connectors
Andreas Ruprecht (1): drm/i915: Remove references to previously removed UMS config option
Beata Michalska (1): drm/exynos/ipp: Validate buffer enqueue requests
Ben Skeggs (22): drm/nouveau/devinit/nv04: change owner to int drm/nouveau: bump driver patchlevel for coherent flag drm/nouveau/disp/nv50-: fix push buffers in vram drm/nouveau/disp/gf110-: fix base channel update debug/error output drm/nouveau/pmu/gk110: implement gr power-up magic like PGOB on earlier chips drm/nouveau/pmu/gk208: implement gr power-up magic with gk110_pmu_pgob() drm/nouveau/gr/gk104-gk20a: call pmu to disable any power-gating before ctor() drm/nouveau/gr: fix engine name, cosmetic search+replace mistake drm/nouveau/gr/gf100-: support mmio access with gpc offset from gpccs ucode drm/nouveau/gr/gm107: support tpc "strand" ctxsw in gpccs ucode drm/nouveau/gr/gf100-: add symbolic names for classes drm/nouveau/gr/gk104-: correct crop/zrop num_active_fbps setting drm/nouveau/gr/gm107: very slightly demagic part of attrib cb setup drm/nouveau/gr/gk104-: prevent reading non-existent regs in intr handler drm/nouveau/fifo/gm204: initial support drm/nouveau: add support for gm20x fifo channels drm/nouveau/ce/gm204: initial support drm/nouveau: support for buffer moves via MaxwellDmaCopyA drm/nouveau/gr/gm204: initial init+ctx code drm/nouveau/fifo/gm206: enable support via gm204 code drm/nouveau/ce/gm206: enable support via gm204 code drm/nouveau/gr/gm206: initial init+ctx code
Ben Widawsky (11): drm/i915/trace: Fix offsets for 64b drm/i915: Rename to GEN8_LEGACY_PDPES drm/i915: Setup less PPGTT on failed page_directory drm/i915/gen8: Un-hardcode number of page directories drm/i915: page table abstractions drm/i915: Complete page table structures drm/i915: Create page table allocators drm/i915: Extract context switch skip and add pd load logic drm/i915: Track GEN6 page table usage drm/i915: Track page table reload need drm/i915: Initialize all contexts
Benjamin Gaignard (2): drm: check that planes types are correct while initializing CRTC drm: sti: convert driver to atomic modeset
Boris BREZILLON (1): drm/panel: simple: Add support for Shelly SCA07010-BFN-LNN
Boris Brezillion (1): Add RGB444_1X12 and RGB565_1X16 media bus formats
Boris Brezillon (2): drm: atmel-hlcdc: Atomic mode-setting conversion drm: atmel-hlcdc: add discard area support
Caesar Wang (1): drm: rockchip: Turn off VT switching on suspend
Chris Ruffin (1): drm/bochs: disable video before changing video mode
Chris Wilson (10): drm/i915: Trim the command parser allocations drm/i915: Clarify obj->map_and_fenceable drm: Lighten sysfs connector 'status' drm/i915: Disable the mmio.debug WARN after it fires drm/i915: Move drm_framebuffer_unreference out of struct_mutex for flips drm/i915: Fallback to using CPU relocations for large batch buffers drm/i915: Relax RPS contraints to allows setting minfreq on idle drm/i915: Improved w/a for rps on Baytrail drm/i915: Use down ei for manual Baytrail RPS calculations drm/i915: Skip allocating shadow batch for 0-length batches
Christian König (2): drm/radeon: add userptr config option drm/radeon: allow creating overlapping userptrs
Clint Taylor (1): drm/i915/chv: Remove DPIO force latency causing interpair skew issue
Damien Lespiau (58): drm/i915/skl: Remove the check enforcing VCS2 to be gen8 only drm/i915/skl: Split the SKL PCI ids by GT drm/i915/skl: Declare that GT3 has a second VCS drm/i915: Put update_state_fb() next to the fb update drm/i915: Use an intermediate variable to avoid repeating ourselves drm/i915: Don't try to reference the fb in get_initial_plane_config() drm/i915: Store the initial framebuffer in initial_plane_config drm/i915: Fix atomic state when reusing the firmware fb drm/i915: Make sure the primary plane is enabled before reading out the fb state drm/i915: Support not having an init clock gating function defined drm/i915/bdw: Implement WaForceContextSaveRestoreNonCoherent drm/i915: Garbage collect orphaned prototypes drm/i915: Make intel_ring_setup_status_page() static drm/i915: Remove intel_dsi_cmd.h drm/i915: Make intel_lr_context_render_state_init() static drm/i915: Make intel_logical_ring_advance_and_submit() static drm/i915: Make intel_dp_check_link_status() static drm/i915: Make intel_dp_unpack_aux() static drm/i915: Make intel_unpin_fb_obj() static drm/i915: Remove the IS_SNB_GT1 define drm/i915: Detect eDRAM with the enabled bit only drm/i915/skl: Also detect eDRAM on SKL drm/i915/skl: Document the WM read latency W/A with its name drm/i915/skl: Provide a gen9 specific init_render_ring() drm/i915/skl: Make the init clock gating function skylake specific drm/i915/skl: Implement WaSetGAPSunitClckGateDisable drm/i915/skl: Document that we implement WaRsClearFWBitsAtReset drm/i915/skl: Introduce a SKL specific init_workarounds() drm/i915/skl: Implement WaDisablePartialResolveInVc drm/i915/skl: Implement WaDisableLSQCROPERFforOCL drm/i915/skl: Implement WaDisableHDCInvalidation drm/i915/skl: Implement WaDisableChickenBitTSGBarrierAckForFFSliceCS drm/i915/skl: Implement WaCcsTlbPrefetchDisable:skl drm/i915/skl: Implement WaBarrierPerformanceFixDisable drm/i915/skl: Implement WaSetDisablePixMaskCammingAndRhwoInCommonSliceChicken drm/i915/skl: Implement WaEnableLbsSlaRetryTimerDecrement drm/i915/skl: Fix always true comparison in a revision id check drm/i915/skl: Use a LRI for WaDisableDgMirrorFixInHalfSliceChicken5 drm: Fix drm_crtc_vblank_get() documentation drm: Fix the CRTC_STEREO_DOUBLE_ONLY define to include stero modes drm/i915/skl: Implement WaDisablePowerCompilerClockGating drm/i915/skl: Tune IZ hashing when subslices are unbalanced drm/i915/skl: Make sure to allocate mininum sizes in the DDB drm/i915/skl: Allow scanning out Y and Yf fbs drm/i915/skl: Adjust intel_fb_align_height() for Yb/Yf tiling drm/i915/skl: Teach pin_and_fence_fb_obj() about Y tiling constraints drm/i915/skl: Adjust get_plane_config() to support Yb/Yf tiling drm/i915: Make for_each_plane() take dev_priv as argument drm/i915: Make for_each_sprite() take dev_priv as argument drm/i915/skl: Only use the 800mV+2bB HDMI translation entry drm/i915/skl: Make gen8_irq_power_well_post_enable() take a pipe mask drm/i915/skl: Introduce enable_requested and is_enabled in the power well code drm/i915/skl: Mirror what we do on HSW for the power well enable log message drm/i915/skl: Restore pipe interrupt registers after power well enabling drm/i915: Remove unused condition in hsw_power_well_post_enable() drm/i915/skl: Restore the DDI translation tables when enabling PW1 drm/i915: Exit early from psr_status if PSR is not supported by the device drm/i915/skl: Implement WaDisableHBR2
Dan Carpenter (4): drm/i915: cleanup some indenting drm/i915: fix a printk format drm/i915: memory leak in __i915_gem_vma_create() drm/nouveau/mxm: indent an if statement
Daniel Kurtz (2): drm/rockchip: Only alloc a kmap for fbdev gem object drm/rockchip: register all connectors after bind
Daniel Stone (7): drm: mode: Fix typo in kerneldoc drm: fb_helper: Simplify exit condition drm: mode: Allow NULL modes for equality check drm: crtc_helper: Update hwmode before mode_set call drm: atomic: Expose CRTC active property drm: atomic: Allow setting CRTC active property drm/exynos: Fix FIMD buffer size calculation
Daniel Vetter (46): drm/i915: Add fb format modifier support drm/i915: Set up fb format modifier for initial plane config drm/i915: Switch intel_fb_align_height to fb format modifiers drm/i915: Use fb format modifiers in skylake_update_primary_plane drm/i915: Update DRIVER_DATE to 20150214 drm/irq: Add drm_crtc_vblank_reset drm/i915: Drop pipe_enable checks in vblank funcs drm/i915: Flatten DRIVER_MODESET checks in i915_irq.c drm/i915: Switch to drm_crtc variants of vblank functions drm/irq: Don't call ->get_vblank_counter directly from irq_uninstall/cleanup drm: WARN if drm_handle_vblank is called errornously drm: Add DRM_DEBUG_ATOMIC drm: If available use atomic state in getcrtc ioctl drm/atomic-helper: Rename commmit_post/pre_planes drm/atomic-helpers: make mode_set hooks optional drm/i915: Remove DRIVER_MODESET checks in load/unload/close code drm/i915: Remove DRIVER_MODESET checks from suspend/resume code drm/i915: Remove DRIVER_MODESET checks in the gpu reset code drm/i915: Remove DRIVER_MODESET checks from gem code drm/i915: Remove regfile code&data for UMS suspend/resume drm/i915: Remove DRIVER_MODESET checks from modeset code drm/i915: Update DRIVER_DATE to 20150227 drm: Remove redundant code in the getencoder ioctl drm/atomic-helper: Fix kerneldoc for prepare_planes drm: Fixup racy refcounting in plane_force_disable drm/plane-helper: unexport drm_primary_helper_create_plane drm/plane-helper: Fixup mismerge drm/i915: Remove irq-related FIXME in reset code Revert "drm/i915: Switch planes from transitional helpers to full atomic helpers" drm/fourcc: 64 #defines need ULL postfix drm/i915: Add ULL postfix to VGT_MAGIC constant drm/i915: Update DRIVER_DATE to 20150313 Merge tag 'drm-intel-fixes-2015-03-19' into drm-intel-next drm/i915: Extract i915_gem_shrinker.c drm/i915: kerneldoc for i915_gem_shrinker.c drm/i915: Fixup legacy plane->crtc link for initial fb config drm/i915: Add initial_ prefix to bios fb takeover code drm/i915: always preserve bios swizzling drm/i915: Rip out GET_SPRITE_COLORKEY ioctl drm/i915: Add module param to test the load detect code drm/atomic-helpers: Properly avoid full modeset dance drm/i915: Update DRIVER_DATE to 20150327 Merge tag 'v4.0-rc6' into drm-intel-next drm/i915: Fix locking in DRRS flush/invalidate hooks drm/i915: Don't cancel DRRS worker synchronously for flush/invalidate drm/i915: Dont enable CS_PARSER_ERROR interrupts at all
Dave Airlie (46): Merge tag 'topic/drm-misc-2015-02-25' of git://anongit.freedesktop.org/drm-intel 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/atomic' of git://linuxtv.org/pinchartl/fbdev into drm-next Merge branch 'drm-atmel-hlcdc-devel' of git://github.com/bbrezillon/linux-at91 into drm-next Merge tag 'drm-intel-next-2015-02-14' of git://anongit.freedesktop.org/drm-intel into drm-next Merge tag 'drm-intel-next-2015-02-27' of git://anongit.freedesktop.org/drm-intel into drm-next Merge tag 'v4.0-rc3' into drm-next Merge tag 'topic/drm-misc-2015-03-10' of git://anongit.freedesktop.org/drm-intel into drm-next Merge tag 'topic/drm-misc-2015-03-18' of git://anongit.freedesktop.org/drm-intel into drm-next Merge branch 'drm_next' of https://github.com/markyzq/kernel-drm-rockchip into drm-next drm/radeon: program auxch directly (v2) drm/dp_mst: add a function to retrieve vcpi slots radeon: introduce a dp_work handler radeon/evergreen: add support for short HPD irqs radeon/si: add support for short HPD irqs radeon/fb: add wrapper functions around fb connector add/remove drm/radeon: add some MST registers drm/radeon: add new atombios encoder/transmitter interfaces drm/radeon: export max link rate calculation drm/radeon: improve encoder picking functions (v2) drm/radeon: add DisplayPort MST support (v2) Merge branch 'drm-next-4.1' of git://people.freedesktop.org/~agd5f/linux into drm-next Merge branch 'drm/next/adv7511' of git://linuxtv.org/pinchartl/fbdev into drm-next Merge branch 'drm/next/rcar-du' of git://linuxtv.org/pinchartl/fbdev into drm-next Merge tag 'drm-intel-next-2015-03-13-merge' of git://anongit.freedesktop.org/drm-intel into drm-next Merge branch 'drm-st-next-2015-03-19' of git://git.linaro.org/people/benjamin.gaignard/kernel into drm-next Merge tag 'drm-amdkfd-next-2015-03-25' of git://people.freedesktop.org/~gabbayo/linux into drm-next Merge branch 'drm-atmel-hlcdc-4.1-fixes' of git://github.com/bbrezillon/linux-at91 into drm-next Merge tag 'drm-intel-next-2015-03-27-merge' of git://anongit.freedesktop.org/drm-intel into drm-next Merge tag 'topic/drm-misc-2015-03-31' of git://anongit.freedesktop.org/drm-intel into drm-next Merge branch 'drm-next0401' of git://github.com/markyzq/kernel-drm-rockchip into drm-next Merge tag 'omapdrm-4.1' of git://git.kernel.org/.../tomba/linux into drm-next Merge tag 'drm/tegra/for-4.1-rc1' of git://anongit.freedesktop.org/tegra/linux into drm-next Merge tag 'drm/panel/for-4.1-rc1' of git://anongit.freedesktop.org/tegra/linux into drm-next Merge branch 'msm-next' of git://people.freedesktop.org/~robclark/linux into drm-next Merge tag 'imx-drm-fixes-2015-03-31' of git://git.pengutronix.de/git/pza/linux into drm-next Merge tag 'v4.0-rc7' into drm-next Merge branch 'exynos-drm-next' of git://git.kernel.org/.../daeinki/drm-exynos into drm-next Merge tag 'of-graph-drm-2015-04-08' of git://git.pengutronix.de/git/pza/linux into drm-next Merge tag 'imx-drm-next-2015-03-31' of git://git.pengutronix.de/git/pza/linux into drm-next Merge branch 'linux-4.1' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-next Merge branch 'drm-next-4.1' of git://people.freedesktop.org/~agd5f/linux into drm-next Merge branch 'drm-dwhdmi-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into drm-next Merge tag 'topic/drm-misc-2015-04-15' of git://anongit.freedesktop.org/drm-intel into drm-next Merge tag 'drm-intel-next-fixes-2015-04-15' of git://anongit.freedesktop.org/drm-intel into drm-next Merge Linus master into drm-next
Dave Gordon (1): drm/i915: FIFO space query code refactor
Durgadoss R (1): drm/i915: Enable eDP DRRS for CHV
Emil Velikov (1): drm: line wrap DRM_IOCTL_DEF* macros
Geert Uytterhoeven (1): drm/i915: Spelling s/auxilliary/auxiliary/
Grygorii Strashko (2): drm/omap: add hibernation callbacks drm/omap: tiler: add hibernation callback
Gustavo Padovan (7): drm/exynos: fimd: fix alpha setting for XR24 pixel format drm/exynos: remove unused exynos_crtc->win_enable() callback drm/exynos: remove struct *_win_data abstraction on planes drm/exynos: preset zpos value for overlay planes drm/exynos: make zpos property immutable drm/exynos: remove exynos_plane_destroy() drm/exynos: remove leftover functions declarations
Hai Li (8): drm/msm/mdp5: Add pingpong entry to mdp5 config table drm/msm/mdp5: Update generated mdp5 header file with DSI support drm/msm/mdp5: Fix PIPE source image size settings drm/msm/dsi: Update generated DSI header file drm/msm/mdp5: Move *_modeset_init out of construct_encoder function drm/msm: Add split display interface drm/msm: Initial add DSI connector support drm/msm/mdp5: Enable DSI connector in msm drm driver
Heiko Stuebner (1): drm/rockchip: fix clk enable disable mismatch in vop_crtc_mode_set
Hoath, Nicholas (6): drm/i915: ring w/a initialisation for gen 9 drm/i915: ring w/a gen 9 revision definitions drm/i915/gen9: Implement WaDisablePartialInstShootdown drm/i915/gen9: Implement WaDisableSDEUnitClockGating drm/i915/gen9: Implement Wa4x4STCOptimizationDisable drm/i915/gen9: Implement WaForceEnableNonCoherent
Huang Lin (1): drm/panel: simple: Add support for AUO b101ean01 panel
Hyungwon Hwang (2): drm/exynos: dsi: remove the empty mode_valid callback drm/exynos: fimd: check whether exynos_drm_crtc_create succeed or not
Imre Deak (5): drm/i915: factor out vlv_PLL_is_optimal drm/i915: check for div-by-zero in vlv_PLL_is_optimal drm/i915/chv: use vlv_PLL_is_optimal in chv_find_best_dpll drm/i915: fix race when clearing RPS IIR bits drm/i915: move clearing of RPS interrupt bits from disable to reset time
Jan Vesely (1): drm/nouveau/bios: fix fetching from acpi on certain systems
Jani Nikula (19): drm/i915/fbc: fix the check for already reserved fbc size drm/dp: indentation and ordering cleanups drm/dp: add DPCD definitions from eDP 1.2 drm/dp: add DPCD definitions from DP 1.1 and 1.2a drm/dp: add DPCD definitions from eDP 1.4 drm/i915: remove indirection in the PCI ID macros drm/i915: redefine WARN_ON_ONCE to include the condition drm/i915/dp: return number of bytes written for short aux/i2c writes drm/exynos: constify all struct drm_*_helper funcs pointers drm/mgag200: constify all struct drm_*_helper funcs pointers drm/gma500: constify all struct drm_*_helper funcs pointers drm/radeon: constify all struct drm_*_helper funcs pointers drm/nouveau: constify all struct drm_*_helper funcs pointers drm/qxl: constify all struct drm_*_helper funcs pointers drm/drm: constify all struct drm_*_helper funcs pointers drm/edid: add #defines for ELD versions drm/radeon: constify more struct drm_*_helper funcs pointers drm/armada: constify struct drm_encoder_helper_funcs pointer drm: make crtc/encoder/connector/plane helper_private a const pointer
Jeff McGee (6): drm/i915/skl: Determine SKL slice/subslice/EU info drm/i915/skl: Add SKL HW status to SSEU status drm/i915: Request full SSEU enablement on Gen9 drm/i915/chv: Determine CHV slice/subslice/EU info drm/i915/chv: Add CHV HW status to SSEU status drm/i915: Export total subslice and EU counts
Jesse Barnes (2): drm/i915/skl: port A fuse straps don't work on early SKL steppings drm/i915: make unsupported fb modifier message DRM_DEBUG
Joe Perches (1): MAINTAINERS: Remove rcar-du.h entry
John Harrison (4): drm/i915: Rename 'flags' to 'dispatch_flags' for better code reading drm/i915: Add missing trace point to LRC execbuff code path drm/i915: Cache ringbuf pointer in request structure drm/i915: Remove ironlake rc6 support
John Hunter (4): drm: Fix some typo mistake of the annotations drm: change connector to tmp_connector drm: Fix some typos drm: fix trivial typo mistake
John Stultz (1): drm/amdkfd: Convert timestamping to use 64bit time accessors
Joonas Lahtinen (2): drm/i915: Do not use ggtt_view with (aliasing) PPGTT drm/i915: Compare GGTT view structs instead of types
Joonyoung Shim (2): drm/exynos: use src_x and src_y instead of fb_x and fb_y drm/exynos: add ratio calculation
Julia Lawall (1): drm/i2c: tda998x: fix misspelling of current function in string
Krzysztof Kozlowski (1): drm/exynos: Enable DP clock to fix display on Exynos5250 and other
Laurent Pinchart (57): drm/i2c: tda998x: use drm_do_get_edid() drm/atomic-helpers: Fix documentation typos and wrong copy&paste drm/atomic: Rename drm_atomic_helper_commit_pre_planes() state argument drm: rcar-du: Don't disable unused functions at init time drm: rcar-du: Remove drm_fbdev_cma_restore_mode() call at init time drm: rcar-du: Don't set connector->encoder at init time drm: rcar-du: Reorder CRTC functions drm: rcar-du: Wait for page flip completion when turning the CRTC off drm: rcar-du: Turn vblank on/off when enabling/disabling CRTC drm: rcar-du: Disable fbdev emulation when no connector is present drm: rcar-du: Define macros for the max number of groups, CRTCs and LVDS drm: rcar-du: Implement universal plane support drm: rcar-du: Fix hardware plane allocation drm: rcar-du: Implement planes atomic operations drm: rcar-du: Handle primary plane config through atomic plane ops drm: rcar-du: Wire up atomic state object scaffolding drm: rcar-du: Remove private copy of plane size and position drm: rcar-du: Replace LVDS encoder DPMS by enable/disable drm: rcar-du: Rework encoder enable/disable for atomic updates drm: rcar-du: Rework HDMI encoder enable/disable for atomic updates drm: rcar-du: Rework CRTC enable/disable for atomic updates drm: rcar-du: Switch plane update to atomic helpers drm: rcar-du: Switch mode config to atomic helpers drm: rcar-du: Switch connector DPMS to atomic helpers drm: rcar-du: Replace encoder mode_fixup with atomic_check drm: rcar-du: Implement asynchronous commit support drm: rcar-du: Switch page flip to atomic helpers drm: rcar-du: Switch plane set_property to atomic helpers drm: rcar-du: Rework plane setup code drm: rcar-du: Replace plane crtc and enabled fields by plane state drm: rcar-du: Remove unneeded rcar_du_crtc plane field drm: rcar-du: Move plane format to plane state drm: rcar-du: Move plane commit code from CRTC start to CRTC resume drm: rcar-du: Move group locking inside rcar_du_crtc_update_planes() drm: rcar-du: Fix race condition in hardware plane allocator drm: Share plane pixel format check code between legacy and atomic drm: Check in setcrtc if the primary plane supports the fb pixel format drm: rcar-du: Fix framebuffer reference leak through plane state drm: rcar-du: Don't initialize event->pipe field drm: rcar-du: Enable the atomic updates API drm: adv7511: Fix DDC error interrupt handling drm: adv7511: Fix nested sleep when reading EDID drm: adv7511: Refactor power management drm: omapdrm: Fix indentation of structure and array initializers drm: omapdrm: Refactor CRTC creation code drm: omapdrm: Remove unused variables drm: omapdrm: Switch to the universal plane API drm: omapdrm: Rename omap_plane_dpms() to omap_plane_set_enable() drm: omapdrm: Reset the zorder property when disabling a plane drm: omapdrm: Fix race condition between GO and vblank IRQ drm: omapdrm: Remove manual update display support drm: omapdrm: Remove omap_crtc->full_update field drm: omapdrm: Avoid function forward declaration in omap_crtc.c drm: omapdrm: Prefix all plane functions with omap_plane_ drm: omapdrm: Pass integer source coordinates to omap_plane_mode_set() drm: omapdrm: Planes are already disabled when destroyed drm: omapdrm: Reorder CRTC functions
Lauri Peltonen (2): drm/nouveau/graph/nvc0: Fix engine pointer retrieval drm/nouveau/gr/gf100: Clear notify interrupt
Leo Liu (1): drm/radeon: add video usability info support for VCE
Maarten Lankhorst (2): drm/radeon: dont switch vt on suspend drm: Use kref_put_mutex in drm_gem_object_unreference_unlocked
Mandeep Singh Baines (1): drm/exynos: track vblank events on a per crtc basis
Mark Yao (5): drm/rockchip: vop: fix vop vsync/hsync polarity drm/rockchip: vop use is_enabled instead of dpms mode drm/rockchip: vop: set vop enabled after enable iommu drm/rockchip: vop: power off until vop standby take effect drm/rockchip: vop: add vop power domain support
Martin Peres (1): drm/nouveau/fuse/gm107: simplify the return logic
Matt Roper (13): drm/i915: Keep plane->state updated on pageflip drm/i915: Switch planes from transitional helpers to full atomic helpers drm/i915: Ensure plane->state->fb stays in sync with plane->fb drm/i915: Use enabled value from crtc_state rather than crtc (v2) drm/i915: Ensure crtc_state backpointer is always initialized drm/i915: Kill intel_crtc->cursor_{width, height} (v2) drm/i915: Use plane->state->fb in watermark code (v2) drm/i915: Don't clobber plane state on internal disables drm/i915: Update intel_crtc_active() to use state values (v2) drm/i915: Use crtc->state->active in ilk/skl watermark calculations (v3) drm/i915: Don't assume primary & cursor are always on for wm calculation (v4) drm/i915: Move vblank wait determination to 'check' phase drm: Make integer overflow checking cover universal cursor updates (v2)
Michael Grzeschik (1): drm/panel: simple: Add support for Innolux ZJ070NA-01P
Michel Thierry (9): drm/i915: Plumb drm_device through page tables operations drm/i915: Add missing description to parameter in alloc_pt_range drm/i915: page table generalizations drm/i915: Do not leak objects after capturing error state drm/i915: Prevent out of range pt in gen6_for_each_pde drm/i915: Fix i915_dma_map_single positive error code drm/i915: Remove unnecessary gen6_ppgtt_unmap_pages drm/i915: Finish gen6/7 dynamic page table allocation drm/i915: Add dynamic page trace events
Mika Kuoppala (5): drm/i915: Add process identifier to requests drm/i915: Setup all page directories for gen8 drm/i915: Do both mt and gen6 style forcewake reset on ivb probe drm/i915: Fix vmap_batch page iterator overrun drm/i915: Add fault address to error state for gen8 and gen9
Neil Roberts (1): drm/i915: Add I915_PARAM_REVISION
Nick Hoath (5): drm/i915/gen9: Implement WaDisableDgMirrorFixInHalfSliceChicken5 drm/i915/gen9: h/w w/a: syncing dependencies between camera and graphics drm/i915/gen9: Implement WaEnableYV12BugFixInHalfSliceChicken7 drm/i915: gen 9 h/w w/a Fix stepping check drm/i915: gen 9 h/w w/a (WaEnableForceRestoreInCtxtDescForVCS)
Nicolas Ferre (1): drm/panel: simple: Add support for Innolux AT043TN24
Oded Gabbay (3): drm/amdkfd: rename fence_wait_timeout drm/amdkfd: Remove unused field from struct qcm_process_device drm/amdkfd: add debug prints for process teardown
Paulo Zanoni (10): drm/i915: don't try to find crtcs for FBC if it's disabled drm/i915: don't keep reassigning FBC_UNSUPPORTED drm/i915: change dev_priv->fbc.plane to dev_priv->fbc.crtc drm/i915: extract intel_fbc_find_crtc() drm/i915: HSW+ FBC is tied to pipe A drm/i915: gen5+ can have FBC with multiple pipes drm/i915: don't reallocate the compressed FB at every frame drm/i915: pass which operation triggered the frontbuffer tracking drm/i915: also do frontbuffer tracking on pwrites drm/i915: add frontbuffer tracking to FBC
Philipp Zabel (26): drm/imx: Add support for interlaced scanout drm/imx: ipuv3-crtc: Allow to divide DI clock from TVEv2 Add LVDS RGB media bus formats Add BGR888_1X24 and GBR888_1X24 media bus formats Add YUV8_1X24 media bus format Add RGB666_1X24_CPADHI media bus format drm/imx: switch to use media bus formats drm/imx: consolidate bus format variable names gpu: ipu-v3: limit pixel clock divider to 8-bits gpu: ipu-v3: turns out the IPU can only downsize 4:1 drm/imx: imx-ldb: add drm_panel support drm/imx: imx-ldb: reset display clock input when disabling LVDS drm/imx: imx-ldb: allow to determine bus format from the connected panel drm/panel: Add bus format for Giantplus GPG482739QS5 panel of: Add vendor prefix for Ortus Technology Co., Ltd. drm/panel: Add support for OrtusTech COM43H4M85ULC panel drm/panel: Add display timing support drm/panel: simple: Add display timing support drm/panel: Add display timing for HannStar HSD070PWW1 of: Add vendor prefix for Ampire Co., Ltd. drm/panel: Add support for Ampire AM-800480R3TMQW-A1H 800x480 7" panel drm: use for_each_endpoint_of_node macro in drm_of_find_possible_crtcs drm/imx: use for_each_endpoint_of_node macro in imx_drm_encoder_get_mux_id drm/rcar-du: use for_each_endpoint_of_node macro drm/rockchip: use for_each_endpoint_of_node macro, drop endpoint reference on break media-bus: Fixup RGB444_1X12, RGB565_1X16, and YUV8_1X24 media bus format
Ramalingam C (4): drm/i915: Add support for DRRS in intel_dp_set_m_n drm/i915: Enhancing eDP DRRS debug message drm/i915: Fixing mutex deadlock window at eDP DRRS drm/i915: Removing the drrs capability enum initialization
Rob Clark (12): drm: add support for tiled/compressed/etc modifier in addfb2 drm/fb: document drm_fb_helper_surface_size drm/atomic: minor kerneldoc typo fix drm/cma: use correct fb width/height drm/exynos: use correct fb width/height drm/rockchip: use correct fb width/height drm/fb: small cleanup drm/fb: handle tiled connectors better drm/msm: split out vram initialization drm/msm: add support for "stolen" mem drm/msm/hdmi: add 74.176MHz and 154.0MHz pix clks drm: export tile-group functions
Rodrigo Vivi (4): drm/i915: Make sure we invalidate frontbuffer on fbcon. drm/i915: Fix sink crc connector iteration drm/i915: kill i915.powersave drm/i915: Remove duplicated psr.active unset
Roy Spliet (2): drm/nouveau/pbus/hwsq: Support strided register writes drm/nouveau/pbus/hwsq: Make code size u16
Russell King (4): drm/i2c: tda998x: add OF support for finding attached CRTCs drm: bridge/dw_hdmi: combine hdmi_set_clock_regenerator_n() and hdmi_regenerate_cts() drm: bridge/dw_hdmi: protect n/cts setting with a mutex drm: bridge/dw_hdmi: adjust n/cts setting order
Satheeshakrishna M (1): drm/i915/skl: Implementation of SKL display power well support
Scott Wood (1): drm: %pF is only for function pointers
Sean Paul (1): drm/tegra: gem: Return 64-bit offset for mmap(2)
Shobhit Kumar (1): drm/i915: Correct the variable holding the value for EOT to write
Simon Farnsworth (1): drm/dp: Use large transactions for I2C over AUX
Sonika Jindal (6): drm: Adding edp1.4 specific dpcd macros drm/i915/skl: Support for edp low_vswing param in vbt drm/i915/skl: Add support for edp1.4 low vswing drm/i915/skl: Read sink supported rates from edp panel drm/i915/skl: Add support for edp 1.4 intermediate frequencies drm/i915/skl: Program PLL for edp1.4 intermediate frequencies
Stephane Viau (12): drm/msm/mdp5: only flush on a CRTC ->atomic_flush() drm/msm/mdp5: Update generated header files drm/msm/mdp5: Enhance operation mode for pipeline configuration drm/msm/mdp5: Add START signal to kick off certain pipelines drm/msm/mdp5: Make the intf connection in config module drm/msm/mdp5: Update headers (introduce MDP5 domain) drm/msm/mdp5: Separate MDP5 domain from MDSS domain drm/msm/mdp5: Update headers (remove enum mdp5_client_id) drm/msm/mdp5: Get SMP client list from mdp5_cfg drm/msm/mdp5: Add hardware configuration for msm8x16 drm/msm/mdp5: Update headers (add CTL flush bits) drm/msm/mdp5: Remove CTL flush dummy bits
Stéphane Marchesin (1): drm/panel: simple: Add support for Samsung LTN140AT29 panel
Sylvain Rochet (3): drm: atmel-hlcdc: Add PM suspend/resume support drm: atmel-hlcdc: Add pinctrl PM select sleep,default state in CRTC suspend/resume drm: atmel-hlcdc: use appropriate enabled flag in suspend/resume
Thierry Reding (16): drm/bridge: ps8622: Fix sparse warnings drm/bridge: ptn3460: Fix sparse warnings drm: Remove unused DRM_MODE_OBJECT_BRIDGE drm/tegra: dc: Check for valid parent clock drm/tegra: Provide debugfs file for the IOVA space drm/tegra: sor: Registers are 32-bit drm/tegra: sor: Dump registers via debugfs gpu: host1x: Export host1x_syncpt_read() drm/tegra: dc: Implement hardware VBLANK counter drm/atomic: Add helpers for state-subclassing drivers drm/tegra: dc: Use base atomic state helpers drm/tegra: dc: Remove unused function drm/tegra: dc: Remove unused callbacks drm/tegra: dc: Document tegra_dc_state_setup_clock() drm/tegra: hdmi: Resets are synchronous drm/tegra: hdmi: Name register fields consistently
Thomas Daniel (2): drm/i915: Reset logical ring contexts' head and tail during GPU reset drm/i915: Shift driver's HWSP usage out of reserved range
Tobias Jakobi (3): drm/exynos: fix typos in hdmi and mixer drm/exynos: remove superfluous error messages drm/exynos: mixer: add 2x scaling to mixer_graph_buffer
Tomeu Vizoso (1): drm/tegra: sor: Reset during initialization
Tomi Valkeinen (20): drm/omap: fix encoder-crtc mapping drm/omap: page_flip: return -EBUSY if flip pending drm/omap: clear omap_obj->paddr in omap_gem_put_paddr() drm/omap: add pin refcounting to omap_framebuffer drm/omap: add a comment why locking is missing drm/omap: fix operation without fbdev drm/omap: fix error handling in omap_framebuffer_create() drm/omap: handle incompatible buffer stride and pixel size drm/omap: fix TILER on OMAP5 drm/omap: fix plane's channel selection drm/omap: tiler: fix race condition with engine->async drm/omap: remove dummy PM functions drm/omap: stop connector polling during suspend drm/omap: use DRM_ERROR_RATELIMITED() for error irqs drm/omap: fix race with error_irq drm/omap: only ignore DIGIT SYNC LOST for TV output drm/omap: do not use BUG_ON(!spin_is_locked(x)) drm/omap: fix race condition with dev->obj_list drm/omap: fix race conditon in DMM drm/omap: keep ref to old_fb
Tommi Rantala (1): drm/i915: fix definition of the DRM_IOCTL_I915_GET_SPRITE_COLORKEY ioctl
Tvrtko Ursulin (25): drm/i915: Track old framebuffer instead of object drm/i915: Add tiled framebuffer modifiers drm/i915: Show frame buffer modifier in debug info drm/i915/skl: CS flips are not supported with execlists drm/i915/skl: Use fb modifiers for sprites drm/i915: Use fb modifiers in intel_check_cursor_plane drm/i915: Use fb modifiers in intel_pin_and_fence_fb_obj drm/i915: Announce support for framebuffer modifiers drm/i915/skl: Add new displayable tiling formats drm/i915/skl: Updated watermark programming drm/i915/skl: Update watermarks for Y tiling drm/i915/skl: Allow Y (and Yf) frame buffer creation drm: Pass in new and old plane state to prepare_fb and cleanup_fb drm: Complete moving rotation property to core drm/i915: Rotation property is now handled in DRM core drm/i915: Turn on PIN_GLOBAL in i915_gem_object_ggtt_pin drm/i915/skl: Extract tile height code into a helper function drm/i915: Use GGTT view when (un)pinning objects to planes drm/i915: Pass in plane state when (un)pinning frame buffers drm/i915: Helper function to determine GGTT view from plane state drm/i915/skl: Support secondary (rotated) frame buffer mapping drm/i915/skl: Query display address through a wrapper drm/i915/skl: Take 90/270 rotation into account in watermark calculations drm/i915/skl: Fix up positive error code drm/i915: Move drm_framebuffer_unreference out of struct_mutex for takeover
Vandana Kannan (4): drm/i915/bdw: Add support for DRRS to switch RR drm/i915: Support for RR switching on VLV Documentation/drm: DocBook integration for DRRS drm/i915: Add debugfs entry for DRRS
Vidya Srinivas (1): drm/i915: Program PFI credits for VLV
Vijay Purushothaman (5): drm/i915: Add new PHY reg definitions for lock threshold drm/i915: Limit max VCO supported in CHV to 6.48GHz drm/i915: Disable M2 frac division for integer case drm/i915: Initialize CHV digital lock detect threshold drm/i915: Update prop, int co-eff and gain threshold for CHV
Ville Syrjälä (54): drm/i915: Introduce intel_set_rps() drm/i915: Add media rc6 residency file to sysfs drm/i915: Fix struct_mutex deadlock due to merge fumble drm/atomic: Constify a bunch of functions pointer structs drm: Silence sparse warnings drm/i915: Reduce CHV DPLL min vco frequency to 4.8 GHz drm/i915: Reduce CHV DDL multiplier to 16/8 drm/i915: Kill DRAIN_LATENCY_PRECISION_* defines drm/i915: Simplify VLV drain latency computation drm/i915: Hide VLV DDL precision handling drm/i915: Reorganize VLV DDL setup drm/i915: Pass plane to vlv_compute_drain_latency() drm/i915: Read out display FIFO size on VLV/CHV drm/i915: Make sure PND deadline mode is enabled on VLV/CHV drm/i915: Allow pixel clock up to 95% of cdclk on CHV drm/i915: Fix chv cdclk support drm/i915: Rewrite VLV/CHV watermark code drm/i915: Enable the maxfifo PM5 mode when appropriate on CHV drm/i915: Disable DDR DVFS on CHV drm/i915: Remove debug prints from primary plane update funcs drm/i915: Reduce clutter by using the local plane pointer drm/i915: Use plane->state->fb instead of plane->fb in intel_plane_restore() drm/i915: Add polish to VLV WM shift+mask operations drm/i915: Use FW_WM() macro for older gmch platforms too drm/i915: Rewrite some some of the FDI lane checks drm/i915: Rewrite IVB FDI bifurcation conflict checks drm/i915: Read CHV_PLL_DW8 from the correct offset drm/i915: Remove the preliminary_hw_support shackles from CHV drm/i915: Make the DP rates int instead of uint32_t drm/i915: Store the converted link rates in intel_dp->supported_rates[] drm/i915: Don't copy the DP source rates arrays drm/i915: Don't copy sink rates either drm/i915: Remove special case from intel_supported_rates() drm/i915: Fully separate source vs. sink rates drm/i915: Hide the source vs. sink rate handling from intel_dp_compute_config() drm/i915: Fix max link rate in intel_dp_mode_valid() drm/i915: Use DP_LINK_RATE_SET whenever possible drm/i915: Fix MST link rate handling drm/i915: Avoid overflowing the DP link rate arrays drm/i915: Add eDP intermediate frequencies for CHV drm/i915: Include the sink/source/supported rates in debug output drm/i915: Unconfuse DP link rate array names drm/i915: Send out the full AUX address drm/i915: Kill intel_plane->obj drm/i915: Eliminate the RMW sprite colorkey management drm/i915: Eliminate plane control register RMW from sprite code drm/i915: Fix SKL sprite disable double buffer register update drm/i915: Use usleep_range() in wait_for() drm/dp: Print the number of bytes processed for aux nacks drm: Fix DRM_IOCTL_DEF_DRV() drm: Drop ioctl->cmd_drv drm: Simplify core vs. drv ioctl handling drm: Use max() to make the ioctl alloc size code cleaner drm: Rewrite drm_ioctl_flags() to resemble the new drm_ioctl() code
Vincent Batts (1): drm/radeon: typo in parameter description
Vincent Palatin (1): drm/bridge: Add I2C based driver for ps8622/ps8625 bridge
Xihan Zhang (1): drm/amdkfd: Add multiple kgd support
Yakir Yang (3): drm: bridge/dw_hdmi: fixed codec style drm: bridge/dw_hdmi: separate VLEVCTRL settting into platform driver drm: rockchip/dw_hdmi-rockchip: improve for HDMI electrical test
Yannick Guerrini (2): drm: Fix trivial typos in comments drm/i915: Fix trivial typos in comments and warning message
Yu Zhang (8): drm/i915: Introduce a PV INFO page structure for Intel GVT-g. drm/i915: Adds graphic address space ballooning logic drm/i915: Partition the fence registers for vGPU in i915 driver drm/i915: Disable framebuffer compression for i915 driver in VM drm/i915: Add the display switch logic for vGPU in i915 driver drm/i915: Disable power management for i915 driver in VM drm/i915: Create vGPU specific MMIO operations to reduce traps drm/i915: Support alias ppgtt in VM if ppgtt is enabled
Zach Reizner (1): drm/vgem: implement virtual GEM
Zhi Wang (1): drm/i915: Introduce bit definitions of CTXT_SR_CTRL register.
kbuild test robot (3): drm/i915: fix simple_return.cocci warnings drm/i915/skl: fix semicolon.cocci warnings drm/i915: fix simple_return.cocci warnings
Documentation/DocBook/drm.tmpl | 29 +- Documentation/DocBook/media/v4l/subdev-formats.xml | 426 ++++- Documentation/devicetree/bindings/drm/imx/ldb.txt | 62 +- .../bindings/panel/ampire,am800480r3tmqwa1h.txt | 7 + .../devicetree/bindings/panel/auo,b101ean01.txt | 7 + .../bindings/panel/innolux,at043tn24.txt | 7 + .../bindings/panel/innolux,zj070na-01p.txt | 7 + .../bindings/panel/ortustech,com43h4m85ulc.txt | 7 + .../bindings/panel/samsung,ltn140at29-301.txt | 7 + .../bindings/panel/shelly,sca07010-bfn-lnn.txt | 7 + .../devicetree/bindings/vendor-prefixes.txt | 2 + MAINTAINERS | 1 - drivers/gpu/drm/Kconfig | 9 + drivers/gpu/drm/Makefile | 1 + drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 13 +- drivers/gpu/drm/amd/amdkfd/kfd_device.c | 17 +- .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 18 +- drivers/gpu/drm/amd/amdkfd/kfd_doorbell.c | 17 +- drivers/gpu/drm/amd/amdkfd/kfd_module.c | 12 +- drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c | 13 +- drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 14 +- drivers/gpu/drm/amd/amdkfd/kfd_process.c | 6 + drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 12 +- drivers/gpu/drm/amd/include/kgd_kfd_interface.h | 64 +- drivers/gpu/drm/armada/armada_output.h | 2 +- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c | 311 ++- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 40 + drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.h | 62 +- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_layer.c | 4 +- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_layer.h | 3 +- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c | 41 +- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c | 640 ++++--- drivers/gpu/drm/bochs/bochs_hw.c | 1 + drivers/gpu/drm/bridge/Kconfig | 11 + drivers/gpu/drm/bridge/Makefile | 1 + drivers/gpu/drm/bridge/dw_hdmi.c | 54 +- drivers/gpu/drm/bridge/ps8622.c | 684 +++++++ drivers/gpu/drm/bridge/ptn3460.c | 2 +- drivers/gpu/drm/drm_atomic.c | 205 +- drivers/gpu/drm/drm_atomic_helper.c | 660 +++---- drivers/gpu/drm/drm_bridge.c | 2 +- drivers/gpu/drm/drm_crtc.c | 114 +- drivers/gpu/drm/drm_crtc_helper.c | 34 +- drivers/gpu/drm/drm_dp_helper.c | 80 +- drivers/gpu/drm/drm_dp_mst_topology.c | 13 + drivers/gpu/drm/drm_drv.c | 2 +- drivers/gpu/drm/drm_fb_cma_helper.c | 2 +- drivers/gpu/drm/drm_fb_helper.c | 62 +- drivers/gpu/drm/drm_info.c | 1 + drivers/gpu/drm/drm_ioc32.c | 2 +- drivers/gpu/drm/drm_ioctl.c | 63 +- drivers/gpu/drm/drm_irq.c | 58 +- drivers/gpu/drm/drm_modes.c | 12 +- drivers/gpu/drm/drm_of.c | 10 +- drivers/gpu/drm/drm_pci.c | 1 + drivers/gpu/drm/drm_plane_helper.c | 39 +- drivers/gpu/drm/drm_probe_helper.c | 2 +- drivers/gpu/drm/drm_sysfs.c | 61 +- drivers/gpu/drm/drm_vm.c | 1 + drivers/gpu/drm/exynos/exynos7_drm_decon.c | 178 +- drivers/gpu/drm/exynos/exynos_dp_core.c | 10 + drivers/gpu/drm/exynos/exynos_drm_crtc.c | 101 +- drivers/gpu/drm/exynos/exynos_drm_crtc.h | 7 +- drivers/gpu/drm/exynos/exynos_drm_drv.c | 27 - drivers/gpu/drm/exynos/exynos_drm_drv.h | 40 +- drivers/gpu/drm/exynos/exynos_drm_dsi.c | 7 - drivers/gpu/drm/exynos/exynos_drm_fb.c | 10 +- drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 5 +- drivers/gpu/drm/exynos/exynos_drm_fimd.c | 251 ++- drivers/gpu/drm/exynos/exynos_drm_fimd.h | 15 + drivers/gpu/drm/exynos/exynos_drm_ipp.c | 44 + drivers/gpu/drm/exynos/exynos_drm_plane.c | 78 +- drivers/gpu/drm/exynos/exynos_drm_plane.h | 7 +- drivers/gpu/drm/exynos/exynos_drm_vidi.c | 136 +- drivers/gpu/drm/exynos/exynos_hdmi.c | 4 +- drivers/gpu/drm/exynos/exynos_mixer.c | 260 ++- drivers/gpu/drm/exynos/regs-mixer.h | 2 +- drivers/gpu/drm/gma500/cdv_intel_display.c | 2 +- drivers/gpu/drm/gma500/cdv_intel_hdmi.c | 2 +- drivers/gpu/drm/gma500/cdv_intel_lvds.c | 2 +- drivers/gpu/drm/gma500/gma_display.c | 10 +- drivers/gpu/drm/gma500/mdfld_dsi_output.c | 2 +- drivers/gpu/drm/gma500/mdfld_intel_display.c | 2 +- drivers/gpu/drm/gma500/oaktrail_crtc.c | 2 +- drivers/gpu/drm/gma500/oaktrail_hdmi.c | 2 +- drivers/gpu/drm/gma500/psb_intel_display.c | 2 +- drivers/gpu/drm/gma500/psb_intel_lvds.c | 2 +- drivers/gpu/drm/i2c/adv7511.c | 197 +- drivers/gpu/drm/i2c/tda998x_drv.c | 101 +- drivers/gpu/drm/i915/Makefile | 7 +- drivers/gpu/drm/i915/i915_cmd_parser.c | 75 +- drivers/gpu/drm/i915/i915_debugfs.c | 352 +++- drivers/gpu/drm/i915/i915_dma.c | 242 ++- drivers/gpu/drm/i915/i915_drv.c | 178 +- drivers/gpu/drm/i915/i915_drv.h | 392 ++-- drivers/gpu/drm/i915/i915_gem.c | 545 ++---- drivers/gpu/drm/i915/i915_gem_context.c | 115 +- drivers/gpu/drm/i915/i915_gem_evict.c | 4 + drivers/gpu/drm/i915/i915_gem_execbuffer.c | 194 +- drivers/gpu/drm/i915/i915_gem_gtt.c | 1068 +++++++---- drivers/gpu/drm/i915/i915_gem_gtt.h | 160 +- drivers/gpu/drm/i915/i915_gem_shrinker.c | 335 ++++ drivers/gpu/drm/i915/i915_gem_stolen.c | 8 +- drivers/gpu/drm/i915/i915_gpu_error.c | 22 +- drivers/gpu/drm/i915/i915_irq.c | 294 +-- drivers/gpu/drm/i915/i915_params.c | 19 +- drivers/gpu/drm/i915/i915_reg.h | 199 +- drivers/gpu/drm/i915/i915_suspend.c | 215 +-- drivers/gpu/drm/i915/i915_sysfs.c | 78 +- drivers/gpu/drm/i915/i915_trace.h | 107 +- drivers/gpu/drm/i915/i915_ums.c | 552 ------ drivers/gpu/drm/i915/i915_vgpu.c | 264 +++ drivers/gpu/drm/i915/i915_vgpu.h | 91 + drivers/gpu/drm/i915/intel_atomic.c | 16 +- drivers/gpu/drm/i915/intel_atomic_plane.c | 24 +- drivers/gpu/drm/i915/intel_bios.c | 7 + drivers/gpu/drm/i915/intel_bios.h | 1 + drivers/gpu/drm/i915/intel_crt.c | 11 +- drivers/gpu/drm/i915/intel_ddi.c | 111 +- drivers/gpu/drm/i915/intel_display.c | 1788 ++++++++++++------ drivers/gpu/drm/i915/intel_dp.c | 459 ++++- drivers/gpu/drm/i915/intel_dp_mst.c | 38 +- drivers/gpu/drm/i915/intel_drv.h | 126 +- drivers/gpu/drm/i915/intel_dsi.c | 5 +- drivers/gpu/drm/i915/intel_dvo.c | 3 +- drivers/gpu/drm/i915/intel_fbc.c | 184 +- drivers/gpu/drm/i915/intel_fbdev.c | 32 +- drivers/gpu/drm/i915/intel_frontbuffer.c | 21 +- drivers/gpu/drm/i915/intel_hdmi.c | 29 +- drivers/gpu/drm/i915/intel_lrc.c | 208 +- drivers/gpu/drm/i915/intel_lrc.h | 12 +- drivers/gpu/drm/i915/intel_lvds.c | 11 +- drivers/gpu/drm/i915/intel_opregion.c | 6 +- drivers/gpu/drm/i915/intel_overlay.c | 5 +- drivers/gpu/drm/i915/intel_pm.c | 1286 +++++++------ drivers/gpu/drm/i915/intel_psr.c | 2 - drivers/gpu/drm/i915/intel_ringbuffer.c | 351 ++-- drivers/gpu/drm/i915/intel_ringbuffer.h | 13 +- drivers/gpu/drm/i915/intel_runtime_pm.c | 266 ++- drivers/gpu/drm/i915/intel_sdvo.c | 25 +- drivers/gpu/drm/i915/intel_sprite.c | 476 ++--- drivers/gpu/drm/i915/intel_tv.c | 5 +- drivers/gpu/drm/i915/intel_uncore.c | 69 +- drivers/gpu/drm/imx/Kconfig | 1 + drivers/gpu/drm/imx/dw_hdmi-imx.c | 14 +- drivers/gpu/drm/imx/imx-drm-core.c | 25 +- drivers/gpu/drm/imx/imx-drm.h | 10 +- drivers/gpu/drm/imx/imx-ldb.c | 196 +- drivers/gpu/drm/imx/imx-tve.c | 6 +- drivers/gpu/drm/imx/ipuv3-crtc.c | 24 +- drivers/gpu/drm/imx/ipuv3-plane.c | 7 +- drivers/gpu/drm/imx/ipuv3-plane.h | 2 +- drivers/gpu/drm/imx/parallel-display.c | 13 +- drivers/gpu/drm/mgag200/mgag200_mode.c | 2 +- drivers/gpu/drm/msm/Kconfig | 11 + drivers/gpu/drm/msm/Makefile | 5 + drivers/gpu/drm/msm/dsi/dsi.c | 212 +++ drivers/gpu/drm/msm/dsi/dsi.h | 117 ++ drivers/gpu/drm/msm/dsi/dsi.xml.h | 418 +++- drivers/gpu/drm/msm/dsi/dsi_host.c | 1993 ++++++++++++++++++++ drivers/gpu/drm/msm/dsi/dsi_manager.c | 705 +++++++ drivers/gpu/drm/msm/dsi/dsi_phy.c | 352 ++++ drivers/gpu/drm/msm/hdmi/hdmi_phy_8960.c | 34 + drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c | 6 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5.xml.h | 399 ++-- drivers/gpu/drm/msm/mdp/mdp5/mdp5_cfg.c | 102 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_cfg.h | 18 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_cmd_encoder.c | 343 ++++ drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c | 86 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_ctl.c | 315 +++- drivers/gpu/drm/msm/mdp/mdp5/mdp5_ctl.h | 75 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_encoder.c | 83 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_irq.c | 26 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c | 200 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.h | 75 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 10 +- drivers/gpu/drm/msm/mdp/mdp5/mdp5_smp.c | 64 +- drivers/gpu/drm/msm/msm_atomic.c | 4 +- drivers/gpu/drm/msm/msm_drv.c | 100 +- drivers/gpu/drm/msm/msm_drv.h | 29 + drivers/gpu/drm/msm/msm_fbdev.c | 3 +- drivers/gpu/drm/msm/msm_gem.c | 25 +- drivers/gpu/drm/msm/msm_gem.h | 5 +- drivers/gpu/drm/msm/msm_kms.h | 4 + drivers/gpu/drm/nouveau/dispnv04/crtc.c | 4 +- drivers/gpu/drm/nouveau/dispnv04/dac.c | 4 +- drivers/gpu/drm/nouveau/dispnv04/dfp.c | 4 +- drivers/gpu/drm/nouveau/dispnv04/disp.c | 6 +- drivers/gpu/drm/nouveau/dispnv04/tvnv04.c | 4 +- drivers/gpu/drm/nouveau/dispnv04/tvnv17.c | 4 +- drivers/gpu/drm/nouveau/include/nvif/class.h | 10 + drivers/gpu/drm/nouveau/include/nvkm/engine/ce.h | 3 + drivers/gpu/drm/nouveau/include/nvkm/engine/fifo.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/engine/gr.h | 4 +- .../gpu/drm/nouveau/include/nvkm/subdev/instmem.h | 1 + drivers/gpu/drm/nouveau/include/nvkm/subdev/pmu.h | 1 + drivers/gpu/drm/nouveau/nouveau_bo.c | 2 + drivers/gpu/drm/nouveau/nouveau_chan.c | 3 +- drivers/gpu/drm/nouveau/nouveau_connector.c | 4 +- drivers/gpu/drm/nouveau/nouveau_display.c | 9 +- drivers/gpu/drm/nouveau/nouveau_drm.c | 1 + drivers/gpu/drm/nouveau/nouveau_drm.h | 4 +- drivers/gpu/drm/nouveau/nouveau_gem.c | 3 + drivers/gpu/drm/nouveau/nouveau_platform.c | 79 +- drivers/gpu/drm/nouveau/nouveau_platform.h | 18 + drivers/gpu/drm/nouveau/nouveau_ttm.c | 3 + drivers/gpu/drm/nouveau/nv84_fence.c | 14 +- drivers/gpu/drm/nouveau/nvkm/engine/ce/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/engine/ce/gm204.c | 173 ++ drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 10 +- drivers/gpu/drm/nouveau/nvkm/engine/device/gk104.c | 6 +- drivers/gpu/drm/nouveau/nvkm/engine/device/gm100.c | 16 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gf110.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 7 +- drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.h | 2 + drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm204.c | 57 + drivers/gpu/drm/nouveau/nvkm/engine/gr/Kbuild | 4 + drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.h | 29 + drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk104.c | 16 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.c | 20 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm204.c | 1054 +++++++++++ drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm206.c | 83 + drivers/gpu/drm/nouveau/nvkm/engine/gr/fuc/gpc.fuc | 114 +- .../drm/nouveau/nvkm/engine/gr/fuc/gpcgf100.fuc3.h | 294 +-- .../drm/nouveau/nvkm/engine/gr/fuc/gpcgf117.fuc3.h | 354 ++-- .../drm/nouveau/nvkm/engine/gr/fuc/gpcgk104.fuc3.h | 354 ++-- .../drm/nouveau/nvkm/engine/gr/fuc/gpcgk110.fuc3.h | 354 ++-- .../drm/nouveau/nvkm/engine/gr/fuc/gpcgk208.fuc5.h | 230 +-- .../drm/nouveau/nvkm/engine/gr/fuc/gpcgm107.fuc5 | 2 +- .../drm/nouveau/nvkm/engine/gr/fuc/gpcgm107.fuc5.h | 480 +++-- .../gpu/drm/nouveau/nvkm/engine/gr/fuc/macros.fuc | 32 + drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 22 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.h | 20 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf108.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf110.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk104.c | 17 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk110.c | 45 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk110b.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk208.c | 47 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gk20a.c | 4 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gm107.c | 26 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gm204.c | 387 ++++ drivers/gpu/drm/nouveau/nvkm/engine/gr/gm206.c | 40 + .../gpu/drm/nouveau/nvkm/subdev/bios/shadowacpi.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/bus/hwsq.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/bus/hwsq.h | 44 +- drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv04.h | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/Kbuild | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/fb/base.c | 26 +- drivers/gpu/drm/nouveau/nvkm/subdev/fb/gk20a.c | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/fb/priv.h | 1 - drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk20a.c | 149 -- drivers/gpu/drm/nouveau/nvkm/subdev/fuse/gm107.c | 4 +- drivers/gpu/drm/nouveau/nvkm/subdev/instmem/Kbuild | 1 + .../gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c | 440 +++++ drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gf100.c | 10 +- drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.c | 2 +- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk110.c | 95 + drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk208.c | 1 + drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk20a.c | 7 +- drivers/gpu/drm/nouveau/nvkm/subdev/pmu/priv.h | 2 + drivers/gpu/drm/omapdrm/omap_connector.c | 12 - drivers/gpu/drm/omapdrm/omap_crtc.c | 622 +++--- drivers/gpu/drm/omapdrm/omap_dmm_priv.h | 8 +- drivers/gpu/drm/omapdrm/omap_dmm_tiler.c | 80 +- drivers/gpu/drm/omapdrm/omap_dmm_tiler.h | 1 + drivers/gpu/drm/omapdrm/omap_drv.c | 241 +-- drivers/gpu/drm/omapdrm/omap_drv.h | 23 +- drivers/gpu/drm/omapdrm/omap_fb.c | 66 +- drivers/gpu/drm/omapdrm/omap_fbdev.c | 57 +- drivers/gpu/drm/omapdrm/omap_gem.c | 10 +- drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c | 20 +- drivers/gpu/drm/omapdrm/omap_irq.c | 2 +- drivers/gpu/drm/omapdrm/omap_plane.c | 146 +- drivers/gpu/drm/panel/Kconfig | 1 + drivers/gpu/drm/panel/panel-simple.c | 256 ++- drivers/gpu/drm/qxl/qxl_drv.c | 2 +- drivers/gpu/drm/radeon/Kconfig | 8 + drivers/gpu/drm/radeon/Makefile | 2 +- drivers/gpu/drm/radeon/atombios_crtc.c | 25 +- drivers/gpu/drm/radeon/atombios_dp.c | 17 +- drivers/gpu/drm/radeon/atombios_encoders.c | 171 +- drivers/gpu/drm/radeon/btc_dpm.c | 55 +- drivers/gpu/drm/radeon/ci_dpm.c | 14 + drivers/gpu/drm/radeon/cik.c | 132 +- drivers/gpu/drm/radeon/cikd.h | 2 + drivers/gpu/drm/radeon/evergreen.c | 129 +- drivers/gpu/drm/radeon/evergreend.h | 1 + drivers/gpu/drm/radeon/kv_dpm.c | 23 + drivers/gpu/drm/radeon/ni.c | 29 + drivers/gpu/drm/radeon/ni_dpm.c | 36 + drivers/gpu/drm/radeon/ni_reg.h | 44 + drivers/gpu/drm/radeon/nid.h | 47 + drivers/gpu/drm/radeon/r600.c | 26 + drivers/gpu/drm/radeon/radeon.h | 12 +- drivers/gpu/drm/radeon/radeon_asic.c | 49 + drivers/gpu/drm/radeon/radeon_asic.h | 30 + drivers/gpu/drm/radeon/radeon_atombios.c | 1 + drivers/gpu/drm/radeon/radeon_audio.c | 24 + drivers/gpu/drm/radeon/radeon_connectors.c | 132 +- drivers/gpu/drm/radeon/radeon_device.c | 5 + drivers/gpu/drm/radeon/radeon_display.c | 15 +- drivers/gpu/drm/radeon/radeon_dp_auxch.c | 206 ++ drivers/gpu/drm/radeon/radeon_dp_mst.c | 782 ++++++++ drivers/gpu/drm/radeon/radeon_drv.c | 13 +- drivers/gpu/drm/radeon/radeon_encoders.c | 14 +- drivers/gpu/drm/radeon/radeon_fb.c | 11 + drivers/gpu/drm/radeon/radeon_irq_kms.c | 15 + drivers/gpu/drm/radeon/radeon_kfd.c | 10 +- drivers/gpu/drm/radeon/radeon_kms.c | 29 + drivers/gpu/drm/radeon/radeon_legacy_encoders.c | 2 +- drivers/gpu/drm/radeon/radeon_mn.c | 102 +- drivers/gpu/drm/radeon/radeon_mode.h | 72 + drivers/gpu/drm/radeon/radeon_vce.c | 1 + drivers/gpu/drm/radeon/rs780_dpm.c | 22 + drivers/gpu/drm/radeon/rv6xx_dpm.c | 46 + drivers/gpu/drm/radeon/rv770_dpm.c | 44 + drivers/gpu/drm/radeon/si.c | 130 +- drivers/gpu/drm/radeon/si_dpm.c | 36 + drivers/gpu/drm/radeon/sid.h | 1 + drivers/gpu/drm/radeon/sumo_dpm.c | 28 + drivers/gpu/drm/radeon/trinity_dpm.c | 25 + drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 400 ++-- drivers/gpu/drm/rcar-du/rcar_du_crtc.h | 8 +- drivers/gpu/drm/rcar-du/rcar_du_drv.c | 20 +- drivers/gpu/drm/rcar-du/rcar_du_drv.h | 16 +- drivers/gpu/drm/rcar-du/rcar_du_encoder.c | 71 +- drivers/gpu/drm/rcar-du/rcar_du_group.h | 5 + drivers/gpu/drm/rcar-du/rcar_du_hdmicon.c | 9 +- drivers/gpu/drm/rcar-du/rcar_du_hdmienc.c | 65 +- drivers/gpu/drm/rcar-du/rcar_du_kms.c | 349 +++- drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c | 9 +- drivers/gpu/drm/rcar-du/rcar_du_lvdsenc.c | 18 +- drivers/gpu/drm/rcar-du/rcar_du_lvdsenc.h | 8 +- drivers/gpu/drm/rcar-du/rcar_du_plane.c | 422 ++--- drivers/gpu/drm/rcar-du/rcar_du_plane.h | 69 +- drivers/gpu/drm/rcar-du/rcar_du_vgacon.c | 9 +- drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 14 +- drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 30 +- drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c | 7 +- drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 17 +- drivers/gpu/drm/rockchip/rockchip_drm_gem.h | 3 +- drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 143 +- drivers/gpu/drm/sti/sti_drm_crtc.c | 175 +- drivers/gpu/drm/sti/sti_drm_drv.c | 86 +- drivers/gpu/drm/sti/sti_drm_drv.h | 6 + drivers/gpu/drm/sti/sti_drm_plane.c | 66 +- drivers/gpu/drm/sti/sti_dvo.c | 6 +- drivers/gpu/drm/sti/sti_hda.c | 6 +- drivers/gpu/drm/sti/sti_hdmi.c | 6 +- drivers/gpu/drm/tegra/dc.c | 105 +- drivers/gpu/drm/tegra/dc.h | 7 +- drivers/gpu/drm/tegra/drm.c | 22 +- drivers/gpu/drm/tegra/drm.h | 4 +- drivers/gpu/drm/tegra/hdmi.c | 4 +- drivers/gpu/drm/tegra/hdmi.h | 2 +- drivers/gpu/drm/tegra/sor.c | 202 +- drivers/gpu/drm/vgem/Makefile | 4 + drivers/gpu/drm/vgem/vgem_dma_buf.c | 94 + drivers/gpu/drm/vgem/vgem_drv.c | 364 ++++ .../drm/{i915/intel_dsi_cmd.h => vgem/vgem_drv.h} | 46 +- drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 4 +- drivers/gpu/host1x/syncpt.c | 6 + drivers/gpu/ipu-v3/ipu-dc.c | 18 +- drivers/gpu/ipu-v3/ipu-di.c | 9 +- drivers/gpu/ipu-v3/ipu-ic.c | 4 +- include/drm/bridge/dw_hdmi.h | 5 +- include/drm/drmP.h | 20 +- include/drm/drm_atomic.h | 24 + include/drm/drm_atomic_helper.h | 20 +- include/drm/drm_crtc.h | 21 +- include/drm/drm_crtc_helper.h | 9 +- include/drm/drm_dp_helper.h | 176 +- include/drm/drm_dp_mst_helper.h | 2 + include/drm/drm_edid.h | 2 + include/drm/drm_fb_helper.h | 19 + include/drm/drm_gem.h | 14 +- include/drm/drm_modes.h | 2 +- include/drm/drm_panel.h | 5 + include/drm/drm_plane_helper.h | 12 +- include/drm/i915_pciids.h | 77 +- include/linux/host1x.h | 1 + include/uapi/drm/drm.h | 1 + include/uapi/drm/drm_fourcc.h | 78 + include/uapi/drm/drm_mode.h | 9 + include/uapi/drm/i915_drm.h | 5 +- include/uapi/drm/nouveau_drm.h | 1 + include/uapi/drm/radeon_drm.h | 4 + include/uapi/drm/tegra_drm.h | 3 +- include/uapi/linux/media-bus-format.h | 13 +- include/video/imx-ipu-v3.h | 2 +- include/video/samsung_fimd.h | 11 + 396 files changed, 25495 insertions(+), 10222 deletions(-) create mode 100644 Documentation/devicetree/bindings/panel/ampire,am800480r3tmqwa1h.txt create mode 100644 Documentation/devicetree/bindings/panel/auo,b101ean01.txt create mode 100644 Documentation/devicetree/bindings/panel/innolux,at043tn24.txt create mode 100644 Documentation/devicetree/bindings/panel/innolux,zj070na-01p.txt create mode 100644 Documentation/devicetree/bindings/panel/ortustech,com43h4m85ulc.txt create mode 100644 Documentation/devicetree/bindings/panel/samsung,ltn140at29-301.txt create mode 100644 Documentation/devicetree/bindings/panel/shelly,sca07010-bfn-lnn.txt create mode 100644 drivers/gpu/drm/bridge/ps8622.c create mode 100644 drivers/gpu/drm/exynos/exynos_drm_fimd.h create mode 100644 drivers/gpu/drm/i915/i915_gem_shrinker.c delete mode 100644 drivers/gpu/drm/i915/i915_ums.c create mode 100644 drivers/gpu/drm/i915/i915_vgpu.c create mode 100644 drivers/gpu/drm/i915/i915_vgpu.h create mode 100644 drivers/gpu/drm/msm/dsi/dsi.c create mode 100644 drivers/gpu/drm/msm/dsi/dsi.h create mode 100644 drivers/gpu/drm/msm/dsi/dsi_host.c create mode 100644 drivers/gpu/drm/msm/dsi/dsi_manager.c create mode 100644 drivers/gpu/drm/msm/dsi/dsi_phy.c create mode 100644 drivers/gpu/drm/msm/mdp/mdp5/mdp5_cmd_encoder.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/ce/gm204.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm204.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm204.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm206.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/gr/gm204.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/gr/gm206.c delete mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk20a.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c create mode 100644 drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk110.c create mode 100644 drivers/gpu/drm/radeon/radeon_dp_auxch.c create mode 100644 drivers/gpu/drm/radeon/radeon_dp_mst.c create mode 100644 drivers/gpu/drm/vgem/Makefile create mode 100644 drivers/gpu/drm/vgem/vgem_dma_buf.c create mode 100644 drivers/gpu/drm/vgem/vgem_drv.c rename drivers/gpu/drm/{i915/intel_dsi_cmd.h => vgem/vgem_drv.h} (51%)
Hmm. The odd Intel PCI resource mess is back.
Or maybe it never went away.
I get these when suspending. Things *work*, but it's really spamming my logs a fair bit:
i915 0000:00:02.0: BAR 6: [??? 0x00000000 flags 0x2] has bogus alignment pci_bus 0000:01: Allocating resources pci_bus 0000:02: Allocating resources i915 0000:00:02.0: BAR 6: [??? 0x00000000 flags 0x2] has bogus alignment i915 0000:00:02.0: BAR 6: [??? 0x00000000 flags 0x2] has bogus alignment i915 0000:00:02.0: BAR 6: [??? 0x00000000 flags 0x2] has bogus alignment i915 0000:00:02.0: BAR 6: [??? 0x00000000 flags 0x2] has bogus alignment i915 0000:00:02.0: BAR 6: [??? 0x00000000 flags 0x2] has bogus alignment i915 0000:00:02.0: BAR 6: [??? 0x00000000 flags 0x2] has bogus alignment
That resource is complete garbage. "flags 0x2" is not even a valid flag value. I'm *guessing* it might be IORESOURCE_ROM_SHADOW, but if that is valid, then it should also have have had the IORESOURCE_MEM bit, and it doesn't.
(The low 8 bits of the resource flags depend on the high bits, which is why I say that I'm "guessing" at that ROM_SHADOW bit. It could be something else, like a IORESOURCE_MEM_CACHEABLE PnP bit - but that should not show up for PCI, and "BAR 6" is normally the ROM resource, so the ROM_SHADOW bit makes some sense.
The only place that sets IORESOURCE_ROM_SHADOW that I find is the x86 pci_fixup_video() function. That one checks for PCI_COMMAND_IO | PCI_COMMAND_MEMORY in the PCI command word, though. Why are the other bits not set?
Both i915/dri people and PCI people on the Cc. This warning does *not* happen at bootup, but only at suspend time. So my suspicion is that somebody messes with the PCI ROM resource, and disables it or something, but the IORESOURCE_ROM_SHADOW never gets cleared. And then because res->flags is non-zero, the PCI scanning code doesn't ignore the resource.
Just before the whole bogus alignment check, the PCI code does
if (!(r->flags) || r->parent) continue;
(don't ask me about the odd parenthesis) which *should* have triggered, but that IORESOURCE_ROM_SHADOW bit screws things up.
Anybody?
Linus
On Tue, Apr 21, 2015 at 11:07 AM, Linus Torvalds torvalds@linux-foundation.org wrote:
I'll look into this. It's been around a long time, but hasn't percolated to the top of my list until now.
https://bugzilla.kernel.org/show_bug.cgi?id=16063 says "echo 1
/sys/bus/pci/rescan" is also a reproducer.
Bjorn
[+cc Matthew]
On Tue, Apr 21, 2015 at 09:07:45AM -0700, Linus Torvalds wrote:
Your i915 does not have a ROM BAR in hardware. If the default video device has no ROM BAR, pci_fixup_video() sets IORESOURCE_ROM_SHADOW even though the resource flags are zero because the BAR itself doesn't exist.
If IORESOURCE_ROM_SHADOW is set, pci_map_rom() assumes there's a shadow ROM image at 0xC0000. Is there a shadow image even if the device itself doesn't have a ROM BAR?
We could fabricate a resource even if the BAR doesn't exist, e.g., "flags = IORESOURCE_MEM | ... | IORESOURCE_ROM_SHADOW", but that would be ugly and error-prone in other places that use the ROM.
Matthew added dev->rom for ROM images supplied by the platform (84c1b80e3263 ("PCI: Add support for non-BAR ROMs")). A shadow image seems like a similar thing. I think it would be cleaner to get rid of IORESOURCE_ROM_SHADOW altogether and instead set "dev->rom = 0xC0000" if there's a shadow image, e.g.:
int pcibios_add_device(struct pci_dev *dev) { if (dev-is-default-vga-device) { dev->rom = 0xC0000; dev->romlen = 0x20000; }
pa_data = boot_params.hdr.setup_data; while (pa_data) { ... if (data->type == SETUP_PCI) { rom = (struct pci_setup_rom *)data;
if (dev-is-rom-dev) { dev->rom = ... dev->romlen = rom->pcilen; } } }
But the rules for figuring out which image to use seem ... complicated.
Bjorn
On Thu, Apr 23, 2015 at 2:30 PM, Bjorn Helgaas bhelgaas@google.com wrote:
On UEFI systems, there's no special reason to believe that there's anything at 0xc0000 - it depends on whether a CSM got loaded or not. Everything is awful. So...
I don't know what we want to do here. This is, at some level, fundamentally wrong - however, it also wouldn't surprise me if this is also the only copy of the video ROM we have on some UEFI systems, especially since I believe that Windows 7 still required that there be a legacy ROM it could use for bootloader modesetting on UEFI platforms. So simply making this conditional on BIOS may break existing machines. But if there *is* a ROM there then we should be able to id it from the usual video ROM signature?
On Thu, Apr 23, 2015 at 2:56 PM, Matthew Garrett matthew.garrett@coreos.com wrote:
I'm not sure why we want that IORESOURCE_ROM_SHADOW thing at all, but yes, if what this is all about is the magic video ROM at 0xc0000, then
(a) it should have nothing what-so-ever to do with the actual PCI BAR, since it's been *ages* since people actually had an expansion rom like that, and it's much more common that the video ROM comes as part of the system BIOS on laptops etc.
(b) yes, the sane thing to do would be to just look for the ROM signature, 0x55 0xaa at 2kB incrementing headers (and checking the proper checksum too).
There is no way to see that from the PCI device state, because as mentioned, quite often the "ROM" is entirely fake, and is not just some shadowed copy of a real underlying hardware ROM, but is fundamentally just a RAM image decompressed from some other source and then marked read-only.
Linus
On Thu, Apr 23, 2015 at 3:47 PM, Linus Torvalds torvalds@linux-foundation.org wrote:
I'm not sure why we want that IORESOURCE_ROM_SHADOW thing at all, but yes, if what this is all about is the magic video ROM at 0xc0000, then
It's used in the PCI layer to say "Read from 0xc0000 rather than the ROM BAR" and then ends up as a shorthand for "Was this the boot video device" in various places because we're bad at software.
If only - nvidias used to rewrite their image at runtime.
On Thu, Apr 23, 2015 at 5:30 PM, Bjorn Helgaas bhelgaas@google.com wrote:
Very likely yes. With integrated APUs and mobile dGPUs, the vbios image is often stored as part of the system rom rather than as a dedicated rom for the GPU. The vbios image is then copied to the shadow location during sbios init to provide OS access to the rom.
Alex
Hi
On 2015-04-20, Dave Airlie wrote: [...]
[...]
Ander Conselvan de Oliveira (28):
[...]
drm/i915: Allocate connector state together with the connectors
[...]
This commit introduces a regression relative to v4.0 on an Intel D945GCLF2 mainboard[1] (Atom 330) with Intel 82945G/GZ onboard graphics using its (only-) VGA connector for me.
v4.1-rc6-52-gff25ea8: [ 13.265699] BUG: unable to handle kernel NULL pointer dereference at 0000000000000010 [ 13.265723] IP: [<ffffffffa0556f01>] intel_modeset_update_connector_atomic_state+0x61/0x90 [i915] [ 13.265803] PGD 0 [ 13.265810] Oops: 0002 [#1] PREEMPT SMP [ 13.265820] Modules linked in: iTCO_wdt i915(+) iTCO_vendor_support snd_hda_codec_realtek snd_hda_codec_generic coretemp gpio_ich pcspkr lpc_ich mfd_core video i2c_algo_bit drm_kms_helper snd_hda_intel drm snd_hda_controller i2c_i801 i2c_core evdev snd_hda_codec psmouse sg serio_raw intel_agp intel_gtt rng_core snd_hda_core snd_hwdep snd_pcm snd_timer snd soundcore floppy(+) 8250_fintek acpi_cpufreq button processor fuse parport_pc ppdev lp parport autofs4 ext4 crc16 jbd2 mbcache dm_mod sr_mod cdrom sd_mod ata_generic pata_acpi ata_piix libata scsi_mod uhci_hcd ehci_pci ehci_hcd usbcore usb_common r8169 mii [ 13.265958] CPU: 0 PID: 211 Comm: systemd-udevd Not tainted 4.1.0-rc6-aptosid-amd64 #1 aptosid 4.1~rc6-1~git65.slh.1 [ 13.265971] Hardware name: /D945GCLF2, BIOS LF94510J.86A.0278.2010.0414.2000 04/14/2010 [ 13.265999] task: ffff8800372f65c0 ti: ffff88007958c000 task.ti: ffff88007958c000 [ 13.266005] RIP: 0010:[<ffffffffa0556f01>] [<ffffffffa0556f01>] intel_modeset_update_connector_atomic_state+0x61/0x90 [i915] [ 13.266005] RSP: 0018:ffff88007958f820 EFLAGS: 00010246 [ 13.266005] RAX: ffff88007b0ba800 RBX: ffff88000010b378 RCX: ffff88003738c000 [ 13.266005] RDX: 0000000000000000 RSI: ffff88003738b408 RDI: ffff88000010b330 [ 13.266005] RBP: ffff88007c010000 R08: ffff88007c010000 R09: ffff88003738b000 [ 13.266005] R10: 0000000000000292 R11: 0000000000000020 R12: ffff88000010b348 [ 13.266005] R13: ffff88000010b000 R14: ffff88007c018688 R15: 0000000000000000 [ 13.266005] FS: 00007f4af014a880(0000) GS:ffff88007f200000(0000) knlGS:0000000000000000 [ 13.266005] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 13.266005] CR2: 0000000000000010 CR3: 00000000371b2000 CR4: 00000000000007f0 [ 13.266005] Stack: [ 13.266005] ffffffffa05709d0 ffff880000000002 ffff88007c010000 ffff88000010b330 [ 13.266005] 0000000079f44a80 ffff88000010b348 ffff88000010b378 ffff88000010b000 [ 13.266005] ffffffffa00f7949 ffff88000010b000 ffff880000000000 ffff880079f44a80 [ 13.266005] Call Trace: [ 13.266005] [<ffffffffa05709d0>] ? intel_modeset_setup_hw_state+0x7e0/0xdb0 [i915] [ 13.266005] [<ffffffffa00f7949>] ? drm_modeset_lock_all_crtcs+0xa9/0xc0 [drm] [ 13.266005] [<ffffffffa05719f4>] ? intel_modeset_init+0x8f4/0x1700 [i915] [ 13.266005] [<ffffffffa054c9fb>] ? gen2_read32+0x1b/0x30 [i915] [ 13.266005] [<ffffffffa05a4acf>] ? i915_driver_load+0xe6f/0x13d0 [i915] [ 13.266005] [<ffffffff8109f96f>] ? __wake_up+0x2f/0x50 [ 13.266005] [<ffffffff8143b220>] ? netlink_broadcast_filtered+0x130/0x380 [ 13.266005] [<ffffffff8127a450>] ? kobj_ns_drop+0x50/0x50 [ 13.266005] [<ffffffff8127a79c>] ? kobject_uevent_env+0xfc/0x400 [ 13.266005] [<ffffffff81392612>] ? get_device+0x12/0x30 [ 13.266005] [<ffffffff814ff7ff>] ? klist_add_tail+0x1f/0x50 [ 13.266005] [<ffffffff81393efd>] ? device_add+0x21d/0x650 [ 13.266005] [<ffffffffa00e214c>] ? drm_dev_register+0x9c/0xf0 [drm] [ 13.266005] [<ffffffffa00e4f54>] ? drm_get_pci_dev+0x84/0x1f0 [drm] [ 13.266005] [<ffffffff813a0607>] ? __pm_runtime_resume+0x47/0x60 [ 13.266005] [<ffffffff812c052a>] ? local_pci_probe+0x3a/0xa0 [ 13.266005] [<ffffffff812c16a4>] ? pci_match_device+0xe4/0x110 [ 13.266005] [<ffffffff812c17f8>] ? pci_device_probe+0xe8/0x140 [ 13.266005] [<ffffffff81396f59>] ? driver_probe_device+0x179/0x2f0 [ 13.266005] [<ffffffff8139719b>] ? __driver_attach+0x7b/0x80 [ 13.266005] [<ffffffff81397120>] ? __device_attach+0x50/0x50 [ 13.266005] [<ffffffff81394eeb>] ? bus_for_each_dev+0x6b/0xc0 [ 13.266005] [<ffffffff813965d8>] ? bus_add_driver+0x178/0x230 [ 13.266005] [<ffffffffa022b000>] ? 0xffffffffa022b000 [ 13.266005] [<ffffffff813977ce>] ? driver_register+0x5e/0xf0 [ 13.266005] [<ffffffff81002108>] ? do_one_initcall+0x98/0x1f0 [ 13.266005] [<ffffffff81508d8e>] ? do_init_module+0x50/0x1b0 [ 13.266005] [<ffffffff810d70f3>] ? load_module+0x1ae3/0x2010 [ 13.266005] [<ffffffff810d4670>] ? __symbol_put+0x70/0x70 [ 13.266005] [<ffffffff810d49bd>] ? copy_module_from_fd.isra.55+0xdd/0x170 [ 13.266005] [<ffffffff810d77ed>] ? SyS_finit_module+0x8d/0xa0 [ 13.266005] [<ffffffff8150f56e>] ? system_call_fastpath+0x12/0x71 [ 13.266005] Code: 03 00 00 48 8b 49 40 48 89 4a 08 48 8b 50 18 48 39 d7 48 8d 42 e8 74 3a 48 8b 90 b8 02 00 00 48 85 d2 75 c6 48 8b 90 70 03 00 00 <48> c7 42 10 00 00 00 00 48 8b 90 70 03 00 00 48 c7 42 08 00 00 [ 13.266005] RIP [<ffffffffa0556f01>] intel_modeset_update_connector_atomic_state+0x61/0x90 [i915] [ 13.266005] RSP <ffff88007958f820> [ 13.266005] CR2: 0000000000000010 [ 13.267502] ---[ end trace 365d8347f4bc917c ]---
00:02.0 VGA compatible controller: Intel Corporation 82945G/GZ Integrated Graphics Controller (rev 02) (prog-if 00 [VGA controller]) Subsystem: Intel Corporation Device 464c Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 16 Region 0: Memory at 90200000 (32-bit, non-prefetchable) [size=512K] Region 1: I/O ports at 20e0 [size=8] Region 2: Memory at 80000000 (32-bit, prefetchable) [size=256M] Region 3: Memory at 90280000 (32-bit, non-prefetchable) [size=256K] Expansion ROM at <unassigned> [disabled] Capabilities: [90] MSI: Enable- Count=1/1 Maskable- 64bit- Address: 00000000 Data: 0000 Capabilities: [d0] Power Management version 2 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Kernel driver in use: i915
The monitor switches off immediately when the modeswitch occurs and stays off, the system won't reboot normally afterwards.
Bisecting this problem hints at:
$ git bisect bad 08d9bc920d465bbbbd762cac9383249c19bf69a2 is the first bad commit commit 08d9bc920d465bbbbd762cac9383249c19bf69a2 Author: Ander Conselvan de Oliveira ander.conselvan.de.oliveira@intel.com Date: Fri Apr 10 10:59:10 2015 +0300
drm/i915: Allocate connector state together with the connectors
Connector states were being allocated in intel_setup_outputs() in loop over all connectors. That meant hot-added connectors would have a NULL state. Since the change to use a struct drm_atomic_state for the legacy modeset, connector states are necessary for the i915 driver to function properly, so that would lead to oopses.
Broken by
commit 944b0c76575753da5a332aab0a1d8c6df65a076b Author: Ander Conselvan de Oliveira ander.conselvan.de.oliveira@intel.com Date: Fri Mar 20 16:18:07 2015 +0200
drm/i915: Copy the staged connector config to the legacy atomic state
v2: Fix test for intel_connector_init() success in lvds and sdvo (PRTS)
Signed-off-by: Ander Conselvan de Oliveira ander.conselvan.de.oliveira@intel.com Reported-and-tested-by: Nicolas Kalkhof nkalkhof@web.de Signed-off-by: Daniel Vetter daniel.vetter@ffwll.ch Signed-off-by: Jani Nikula jani.nikula@intel.com
:040000 040000 cc9b8038218687b7b98630970239fd0e05637c6e 46c31b06a2be069098ff6ee0f509edad019b3c43 M drivers
$ git bisect log git bisect start # bad: [ff25ea8f4eeea252bfcaf65289fa57ba6de080dd] Merge branch 'fixes' of git://git.infradead.org/users/vkoul/slave-dma git bisect bad ff25ea8f4eeea252bfcaf65289fa57ba6de080dd # good: [39a8804455fb23f09157341d3ba7db6d7ae6ee76] Linux 4.0 git bisect good 39a8804455fb23f09157341d3ba7db6d7ae6ee76 # good: [6d50ff91d9780263160262daeb6adfdda8ddbc6c] Merge tag 'locks-v4.1-1' of git://git.samba.org/jlayton/linux git bisect good 6d50ff91d9780263160262daeb6adfdda8ddbc6c # bad: [1fc149933fd49a5b0e7738dc0853dbfbac4ae0e1] Merge tag 'char-misc-4.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc git bisect bad 1fc149933fd49a5b0e7738dc0853dbfbac4ae0e1 # good: [e2fdae7e7c5a690b10b2d2891ec819e554dc033d] Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc git bisect good e2fdae7e7c5a690b10b2d2891ec819e554dc033d # bad: [cec32a47010647e8b0603726ebb75b990a4057a4] media-bus: Fixup RGB444_1X12, RGB565_1X16, and YUV8_1X24 media bus format git bisect bad cec32a47010647e8b0603726ebb75b990a4057a4 # good: [3cd919fc010043d67259ccf37ca5c5892582051e] drm/i915: Remove duplicated psr.active unset git bisect good 3cd919fc010043d67259ccf37ca5c5892582051e # good: [67a0375f5e27c1daa50554de7a01fdfa4a9ea0bf] Merge tag 'omapdrm-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux into drm-next git bisect good 67a0375f5e27c1daa50554de7a01fdfa4a9ea0bf # good: [bb1dc08c94ead1b98e750caf535422f79363c1a2] Merge tag 'of-graph-drm-2015-04-08' of git://git.pengutronix.de/git/pza/linux into drm-next git bisect good bb1dc08c94ead1b98e750caf535422f79363c1a2 # good: [89025bd458a572f15e30f59d1ac5acb599cb53bc] drm/nouveau/fifo/gm204: initial support git bisect good 89025bd458a572f15e30f59d1ac5acb599cb53bc # good: [52139bdea1558e854123d7a07e7648f5a8c77a5c] Merge branch 'drm-dwhdmi-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into drm-next git bisect good 52139bdea1558e854123d7a07e7648f5a8c77a5c # good: [16bb079e45f2c3a795b6b0546535cd6466275ec5] drm/radeon: constify more struct drm_*_helper funcs pointers git bisect good 16bb079e45f2c3a795b6b0546535cd6466275ec5 # bad: [37ef01ab5d24d1d520dc79f6a98099d451c2a901] drm/i915: Dont enable CS_PARSER_ERROR interrupts at all git bisect bad 37ef01ab5d24d1d520dc79f6a98099d451c2a901 # good: [af8fcb9c58f1b2f02ddc04ba64710aaa52da00db] drm/i915/chv: Remove DPIO force latency causing interpair skew issue git bisect good af8fcb9c58f1b2f02ddc04ba64710aaa52da00db # bad: [e0d6149b3debce1a7e17dfda7c2829935917dc58] drm/i915: Move drm_framebuffer_unreference out of struct_mutex for takeover git bisect bad e0d6149b3debce1a7e17dfda7c2829935917dc58 # bad: [08d9bc920d465bbbbd762cac9383249c19bf69a2] drm/i915: Allocate connector state together with the connectors git bisect bad 08d9bc920d465bbbbd762cac9383249c19bf69a2 # first bad commit: [08d9bc920d465bbbbd762cac9383249c19bf69a2] drm/i915: Allocate connector state together with the connectors
Reverting just this commit on top of yesterday evening's v4.1-rc6-52-gff25ea8 avoids the problem for me.
Using the very same kernel, other i915 based systems are fine for me: DP && HDMI: 00:02.0 VGA compatible controller [0300]: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller [8086:0162] (rev 09) DVI: 00:02.0 VGA compatible controller [0300]: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller [8086:0152] (rev 09) headless: 00:02.0 VGA compatible controller [0300]: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller [8086:0152] (rev 09) headless: 00:02.0 VGA compatible controller [0300]: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Graphics & Display [8086:0f31] (rev 0e) HDMI: 00:02.0 VGA compatible controller [0300]: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller [8086:0122] (rev 09) LVDS: 00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile 945GSE Express Integrated Graphics Controller [8086:27ae] (rev 03) headless: 00:02.0 VGA compatible controller [0300]: Intel Corporation 82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device [8086:2562] (rev 01)
Regards Stefan Lippers-Hollmann
[1] http://www.intel.com/support/motherboards/desktop/d945gclf2/sb/CS-029540.htm
On Fri, Jun 05, 2015 at 11:18:21PM +0200, Stefan Lippers-Hollmann wrote:
Hmm. Smells like a connector with a NULL state pointer, and the bad commit touched exactly the part that sets it up. I can't immediately spot any place where we'd forget to set it up though.
Can you try with something like this so we'd at least find out which connector(s) is/are at fault here?
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index 3007b44..c10f423 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c @@ -918,6 +918,8 @@ int drm_connector_init(struct drm_device *dev,
connector->debugfs_entry = NULL;
+ WARN(1, "connector = %p\n", connector); + out_put: if (ret) drm_mode_object_put(dev, &connector->base); diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index d0f3cbc..dd8ced7 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -10332,6 +10332,10 @@ static void intel_modeset_update_connector_atomic_state(struct drm_device *dev) struct intel_connector *connector;
for_each_intel_connector(dev, connector) { + if (WARN(!connector->base.state, + "connector = %p\n", &connector->base)) + continue; + if (connector->base.encoder) { connector->base.state->best_encoder = connector->base.encoder;
Hi
On 2015-06-07, Ville Syrjälä wrote:
With the patch applied, the kernel (v4.1-rc6-104-g4b17069) locks up even harder, so I had to switch to a serial console in order to fetch the boot messages:
[ 13.492784] connector = ffff880079bb8000 [ 13.910439] connector = ffff8800795b5800 [ 14.463114] connector = ffff8800795b6000 [ 14.700707] connector = ffff8800795b6800 [ 14.869418] connector = ffff8800795b7000 [ 14.923848] connector = ffff8800795b7000
Full, gzipped, bootlog attached - thanks a lot for your efforts.
Regards Stefan Lippers-Hollmann
In the commit below, I missed the connector allocation in the function intel_sdvo_analog_init(), leading to those connectors to have a NULL state pointer.
commit 08d9bc920d465bbbbd762cac9383249c19bf69a2 Author: Ander Conselvan de Oliveira ander.conselvan.de.oliveira@intel.com Date: Fri Apr 10 10:59:10 2015 +0300
drm/i915: Allocate connector state together with the connectors
Signed-off-by: Ander Conselvan de Oliveira ander.conselvan.de.oliveira@intel.com --- drivers/gpu/drm/i915/intel_sdvo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c index d24ef75..aa2fd75 100644 --- a/drivers/gpu/drm/i915/intel_sdvo.c +++ b/drivers/gpu/drm/i915/intel_sdvo.c @@ -2554,7 +2554,7 @@ intel_sdvo_analog_init(struct intel_sdvo *intel_sdvo, int device)
DRM_DEBUG_KMS("initialising analog device %d\n", device);
- intel_sdvo_connector = kzalloc(sizeof(*intel_sdvo_connector), GFP_KERNEL); + intel_sdvo_connector = intel_sdvo_connector_alloc(); if (!intel_sdvo_connector) return false;
Thanks for testing.
-------- Forwarded Message -------- From: Stefan Lippers-Hollmann s.l-h@gmx.de To: Ander Conselvan de Oliveira ander.conselvan.de.oliveira@intel.com Subject: Re: [PATCH] drm/i915: Properly initialize SDVO analog connectors Date: Mon, 8 Jun 2015 12:16:04 +0200
Hi
On 2015-06-08, Ander Conselvan de Oliveira wrote:
Thanks a lot, this patch is working (on top of 4.1-rc7).
commit 08d9bc920d465bbbbd762cac9383249c19bf69a2 Author: Ander Conselvan de Oliveira
ander.conselvan.de.oliveira@intel.com
ander.conselvan.de.oliveira@intel.com
Feel free to add:
Tested-by: Stefan Lippers-Hollmann s.l-h@gmx.de
Regards Stefan Lippers-Hollmann
On Mon, 08 Jun 2015, Ander Conselvan de Oliveira ander.conselvan.de.oliveira@intel.com wrote:
Pushed to drm-intel-fixes, thanks for the patch and testing.
BR, Jani.
dri-devel@lists.freedesktop.org