2015-04-20 03:32:44

by Dave Airlie

[permalink] [raw]
Subject: git pull] drm for v4.1-rc1


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%)


2015-04-21 16:08:22

by Linus Torvalds

[permalink] [raw]
Subject: Re: git pull] drm for v4.1-rc1

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

2015-04-21 21:13:03

by Bjorn Helgaas

[permalink] [raw]
Subject: Re: git pull] drm for v4.1-rc1

On Tue, Apr 21, 2015 at 11:07 AM, Linus Torvalds
<[email protected]> wrote:
> 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?

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

2015-04-23 21:30:22

by Bjorn Helgaas

[permalink] [raw]
Subject: Re: git pull] drm for v4.1-rc1

[+cc Matthew]

On Tue, Apr 21, 2015 at 09:07:45AM -0700, Linus Torvalds wrote:
> 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.

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

2015-04-23 21:56:05

by Matthew Garrett

[permalink] [raw]
Subject: Re: git pull] drm for v4.1-rc1

On Thu, Apr 23, 2015 at 2:30 PM, Bjorn Helgaas <[email protected]> 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?

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...

> int pcibios_add_device(struct pci_dev *dev)
> {
> if (dev-is-default-vga-device) {
> dev->rom = 0xC0000;
> dev->romlen = 0x20000;
> }

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?

2015-04-23 22:47:14

by Linus Torvalds

[permalink] [raw]
Subject: Re: git pull] drm for v4.1-rc1

On Thu, Apr 23, 2015 at 2:56 PM, Matthew Garrett
<[email protected]> wrote:
> On Thu, Apr 23, 2015 at 2:30 PM, Bjorn Helgaas <[email protected]> wrote:
>>
>> int pcibios_add_device(struct pci_dev *dev)
>> {
>> if (dev-is-default-vga-device) {
>> dev->rom = 0xC0000;
>> dev->romlen = 0x20000;
>> }
>
> 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?

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

2015-04-23 22:59:54

by Matthew Garrett

[permalink] [raw]
Subject: Re: git pull] drm for v4.1-rc1

On Thu, Apr 23, 2015 at 3:47 PM, Linus Torvalds
<[email protected]> 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.

> 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.

If only - nvidias used to rewrite their image at runtime.

--
Matthew Garrett | [email protected]

2015-04-24 00:56:05

by Alex Deucher

[permalink] [raw]
Subject: Re: git pull] drm for v4.1-rc1

On Thu, Apr 23, 2015 at 5:30 PM, Bjorn Helgaas <[email protected]> wrote:
> [+cc Matthew]
>
> On Tue, Apr 21, 2015 at 09:07:45AM -0700, Linus Torvalds wrote:
>> 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.
>
> 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?

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

>
> 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
> _______________________________________________
> dri-devel mailing list
> [email protected]
> http://lists.freedesktop.org/mailman/listinfo/dri-devel

2015-06-05 21:18:40

by Stefan Lippers-Hollmann

[permalink] [raw]
Subject: Re: git pull] drm for v4.1-rc1

Hi

On 2015-04-20, Dave Airlie wrote:
[...]
> 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)
[...]
> 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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Reported-and-tested-by: Nicolas Kalkhof <[email protected]>
Signed-off-by: Daniel Vetter <[email protected]>
Signed-off-by: Jani Nikula <[email protected]>

: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


Attachments:
(No filename) (819.00 B)
Digitale Signatur von OpenPGP

2015-06-06 23:53:13

by Ville Syrjälä

[permalink] [raw]
Subject: Re: git pull] drm for v4.1-rc1

On Fri, Jun 05, 2015 at 11:18:21PM +0200, Stefan Lippers-Hollmann wrote:
> Hi
>
> On 2015-04-20, Dave Airlie wrote:
> [...]
> > 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)
> [...]
> > 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]

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;
--
2.3.6

--
Ville Syrj?l?
Intel OTC

2015-06-07 02:33:23

by Stefan Lippers-Hollmann

[permalink] [raw]
Subject: Re: git pull] drm for v4.1-rc1

Hi

On 2015-06-07, Ville Syrjälä wrote:
> On Fri, Jun 05, 2015 at 11:18:21PM +0200, Stefan Lippers-Hollmann wrote:
> > Hi
> >
> > On 2015-04-20, Dave Airlie wrote:
> > [...]
> > > 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)
> > [...]
> > > 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]
>
> 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?

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


Attachments:
(No filename) (2.04 kB)
D945GCLF2.dmesg.gz (15.56 kB)
(No filename) (819.00 B)
Digitale Signatur von OpenPGP
Download all attachments
Subject: Re: git pull] drm for v4.1-rc1

On Sun, 2015-06-07 at 04:32 +0200, Stefan Lippers-Hollmann wrote:
> Hi
>
> On 2015-06-07, Ville Syrjälä wrote:
> > On Fri, Jun 05, 2015 at 11:18:21PM +0200, Stefan Lippers-Hollmann wrote:
> > > Hi
> > >
> > > On 2015-04-20, Dave Airlie wrote:
> > > [...]
> > > > 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)
> > > [...]
> > > > 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]
> >
> > 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?
>
> 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.

Could you repeat the process with drm.debug=0xe in your kernel command
line and send the logs again?

Thanks,
Ander

Subject: [PATCH] drm/i915: Properly initialize SDVO analog connectors

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 <[email protected]>
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 <[email protected]>
---
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;

--
2.1.0

Subject: Re: git pull] drm for v4.1-rc1

On Mon, 2015-06-08 at 11:06 +0300, Ander Conselvan De Oliveira wrote:
> On Sun, 2015-06-07 at 04:32 +0200, Stefan Lippers-Hollmann wrote:
> > Hi
> >
> > On 2015-06-07, Ville Syrjälä wrote:
> > > On Fri, Jun 05, 2015 at 11:18:21PM +0200, Stefan Lippers-Hollmann wrote:
> > > > Hi
> > > >
> > > > On 2015-04-20, Dave Airlie wrote:
> > > > [...]
> > > > > 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)
> > > > [...]
> > > > > 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]
> > >
> > > 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?
> >
> > 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.
>
> Could you repeat the process with drm.debug=0xe in your kernel command
> line and send the logs again?

Never mind, Ville's patch produced all the information necessary. Please
give the patch I just sent a try.

Thanks,
Ander

2015-06-08 10:29:17

by Stefan Lippers-Hollmann

[permalink] [raw]
Subject: Re: git pull] drm for v4.1-rc1

Hi

On 2015-06-08, Ander Conselvan De Oliveira wrote:
> On Mon, 2015-06-08 at 11:06 +0300, Ander Conselvan De Oliveira wrote:
> > On Sun, 2015-06-07 at 04:32 +0200, Stefan Lippers-Hollmann wrote:
> > > On 2015-06-07, Ville Syrjälä wrote:
> > > > On Fri, Jun 05, 2015 at 11:18:21PM +0200, Stefan Lippers-Hollmann wrote:
> > > > > 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]
> > > >
> > > > 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?
> > >
> > > 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.
> >
> > Could you repeat the process with drm.debug=0xe in your kernel command
> > line and send the logs again?
>
> Never mind, Ville's patch produced all the information necessary. Please
> give the patch I just sent a try.

Thanks a lot, as already reported as a response to your patch, your
change "drm/i915: Allocate connector state together with the connectors"
fixes the problem for me.

Regards
Stefan Lippers-Hollmann

Subject: [Fwd: Re: [PATCH] drm/i915: Properly initialize SDVO analog connectors]

Thanks for testing.

-------- Forwarded Message --------
From: Stefan Lippers-Hollmann <[email protected]>
To: Ander Conselvan de Oliveira <[email protected]>
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:
> 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.

Thanks a lot, this patch is working (on top of 4.1-rc7).

> commit 08d9bc920d465bbbbd762cac9383249c19bf69a2
> Author: Ander Conselvan de Oliveira
<[email protected]>
> 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
<[email protected]>

Feel free to add:

Tested-by: Stefan Lippers-Hollmann <[email protected]>

Regards
Stefan Lippers-Hollmann

2015-06-08 10:53:20

by Jani Nikula

[permalink] [raw]
Subject: Re: [PATCH] drm/i915: Properly initialize SDVO analog connectors

On Mon, 08 Jun 2015, Ander Conselvan de Oliveira <[email protected]> wrote:
> 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 <[email protected]>
> 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 <[email protected]>

Pushed to drm-intel-fixes, thanks for the patch and testing.

BR,
Jani.



> ---
> 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;
>
> --
> 2.1.0
>

--
Jani Nikula, Intel Open Source Technology Center