diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-08-01 21:44:08 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-08-01 21:44:08 -0400 |
| commit | 731c7d3a205ba89b475b2aa71b5f13dd6ae3de56 (patch) | |
| tree | d2b9c3e0a98b94dfc3e4e60e35622c0143ef4ed4 /drivers/gpu/drm/armada | |
| parent | 77a87824ed676ca8ff8482e4157d3adb284fd381 (diff) | |
| parent | 753e7c8cbd8c503b962294303c7b5e9ea8513443 (diff) | |
Merge tag 'drm-for-v4.8' of git://people.freedesktop.org/~airlied/linux
Merge drm updates from Dave Airlie:
"This is the main drm pull request for 4.8.
I'm down with a cold at the moment so hopefully this isn't in too bad
a state, I finished pulling stuff last week mostly (nouveau fixes just
went in today), so only this message should be influenced by illness.
Apologies to anyone who's major feature I missed :-)
Core:
Lockless GEM BO freeing
Non-blocking atomic work
Documentation changes (rst/sphinx)
Prep for new fencing changes
Simple display helpers
Master/auth changes
Register/unregister rework
Loads of trivial patches/fixes.
New stuff:
ARM Mali display driver (not the 3D chip)
sii902x RGB->HDMI bridge
Panel:
Support for new panels
Improved backlight support
Bridge:
Convert ADV7511 to bridge driver
ADV7533 support
TC358767 (DSI/DPI to eDP) encoder chip support
i915:
BXT support enabled by default
GVT-g infrastructure
GuC command submission and fixes
BXT workarounds
SKL/BKL workarounds
Demidlayering device registration
Thundering herd fixes
Missing pci ids
Atomic updates
amdgpu/radeon:
ATPX improvements for better dGPU power control on PX systems
New power features for CZ/BR/ST
Pipelined BO moves and evictions in TTM
GPU scheduler improvements
GPU reset improvements
Overclocking on dGPUs with amdgpu
Polaris powermanagement enabled
nouveau:
GK20A/GM20B volt and clock improvements.
Initial support for GP100/GP104 GPUs, GP104 will not yet support
acceleration due to NVIDIA having not released firmware for them as of yet.
exynos:
Exynos5433 SoC with IOMMU support.
vc4:
Shader validation for branching
imx-drm:
Atomic mode setting conversion
Reworked DMFC FIFO allocation
External bridge support
analogix-dp:
RK3399 eDP support
Lots of fixes.
rockchip:
Lots of small fixes.
msm:
DT bindings cleanups
Shrinker and madvise support
ASoC HDMI codec support
tegra:
Host1x driver cleanups
SOR reworking for DP support
Runtime PM support
omapdrm:
PLL enhancements
Header refactoring
Gamma table support
arcgpu:
Simulator support
virtio-gpu:
Atomic modesetting fixes.
rcar-du:
Misc fixes.
mediatek:
MT8173 HDMI support
sti:
ASOC HDMI codec support
Minor fixes
fsl-dcu:
Suspend/resume support
Bridge support
amdkfd:
Minor fixes.
etnaviv:
Enable GPU clock gating
hisilicon:
Vblank and other fixes"
* tag 'drm-for-v4.8' of git://people.freedesktop.org/~airlied/linux: (1575 commits)
drm/nouveau/gr/nv3x: fix instobj write offsets in gr setup
drm/nouveau/acpi: fix lockup with PCIe runtime PM
drm/nouveau/acpi: check for function 0x1B before using it
drm/nouveau/acpi: return supported DSM functions
drm/nouveau/acpi: ensure matching ACPI handle and supported functions
drm/nouveau/fbcon: fix font width not divisible by 8
drm/amd/powerplay: remove enable_clock_power_gatings_tasks from initialize and resume events
drm/amd/powerplay: move clockgating to after ungating power in pp for uvd/vce
drm/amdgpu: add query device id and revision id into system info entry at CGS
drm/amdgpu: add new definition in bif header
drm/amd/powerplay: rename smum header guards
drm/amdgpu: enable UVD context buffer for older HW
drm/amdgpu: fix default UVD context size
drm/amdgpu: fix incorrect type of info_id
drm/amdgpu: make amdgpu_cgs_call_acpi_method as static
drm/amdgpu: comment out unused defaults_staturn_pro static const structure to fix the build
drm/amdgpu: enable UVD VM only on polaris
drm/amdgpu: increase timeout of IB test
drm/amdgpu: add destroy session when generate VCE destroy msg.
drm/amd: fix deadlock of job_list_lock V2
...
Diffstat (limited to 'drivers/gpu/drm/armada')
| -rw-r--r-- | drivers/gpu/drm/armada/Kconfig | 4 | ||||
| -rw-r--r-- | drivers/gpu/drm/armada/armada_crtc.c | 16 | ||||
| -rw-r--r-- | drivers/gpu/drm/armada/armada_drv.c | 3 | ||||
| -rw-r--r-- | drivers/gpu/drm/armada/armada_overlay.c | 1 |
4 files changed, 10 insertions, 14 deletions
diff --git a/drivers/gpu/drm/armada/Kconfig b/drivers/gpu/drm/armada/Kconfig index eb773e9af313..15f3ecfb16f1 100644 --- a/drivers/gpu/drm/armada/Kconfig +++ b/drivers/gpu/drm/armada/Kconfig | |||
| @@ -1,11 +1,7 @@ | |||
| 1 | config DRM_ARMADA | 1 | config DRM_ARMADA |
| 2 | tristate "DRM support for Marvell Armada SoCs" | 2 | tristate "DRM support for Marvell Armada SoCs" |
| 3 | depends on DRM && HAVE_CLK && ARM | 3 | depends on DRM && HAVE_CLK && ARM |
| 4 | select FB_CFB_FILLRECT | ||
| 5 | select FB_CFB_COPYAREA | ||
| 6 | select FB_CFB_IMAGEBLIT | ||
| 7 | select DRM_KMS_HELPER | 4 | select DRM_KMS_HELPER |
| 8 | select DRM_KMS_FB_HELPER | ||
| 9 | help | 5 | help |
| 10 | Support the "LCD" controllers found on the Marvell Armada 510 | 6 | Support the "LCD" controllers found on the Marvell Armada 510 |
| 11 | devices. There are two controllers on the device, each controller | 7 | devices. There are two controllers on the device, each controller |
diff --git a/drivers/gpu/drm/armada/armada_crtc.c b/drivers/gpu/drm/armada/armada_crtc.c index 3130aa8bcdd0..2f58e9e2a59c 100644 --- a/drivers/gpu/drm/armada/armada_crtc.c +++ b/drivers/gpu/drm/armada/armada_crtc.c | |||
| @@ -199,7 +199,7 @@ static void armada_drm_plane_work_run(struct armada_crtc *dcrtc, | |||
| 199 | /* Handle any pending frame work. */ | 199 | /* Handle any pending frame work. */ |
| 200 | if (work) { | 200 | if (work) { |
| 201 | work->fn(dcrtc, plane, work); | 201 | work->fn(dcrtc, plane, work); |
| 202 | drm_vblank_put(dcrtc->crtc.dev, dcrtc->num); | 202 | drm_crtc_vblank_put(&dcrtc->crtc); |
| 203 | } | 203 | } |
| 204 | 204 | ||
| 205 | wake_up(&plane->frame_wait); | 205 | wake_up(&plane->frame_wait); |
| @@ -210,7 +210,7 @@ int armada_drm_plane_work_queue(struct armada_crtc *dcrtc, | |||
| 210 | { | 210 | { |
| 211 | int ret; | 211 | int ret; |
| 212 | 212 | ||
| 213 | ret = drm_vblank_get(dcrtc->crtc.dev, dcrtc->num); | 213 | ret = drm_crtc_vblank_get(&dcrtc->crtc); |
| 214 | if (ret) { | 214 | if (ret) { |
| 215 | DRM_ERROR("failed to acquire vblank counter\n"); | 215 | DRM_ERROR("failed to acquire vblank counter\n"); |
| 216 | return ret; | 216 | return ret; |
| @@ -218,7 +218,7 @@ int armada_drm_plane_work_queue(struct armada_crtc *dcrtc, | |||
| 218 | 218 | ||
| 219 | ret = cmpxchg(&plane->work, NULL, work) ? -EBUSY : 0; | 219 | ret = cmpxchg(&plane->work, NULL, work) ? -EBUSY : 0; |
| 220 | if (ret) | 220 | if (ret) |
| 221 | drm_vblank_put(dcrtc->crtc.dev, dcrtc->num); | 221 | drm_crtc_vblank_put(&dcrtc->crtc); |
| 222 | 222 | ||
| 223 | return ret; | 223 | return ret; |
| 224 | } | 224 | } |
| @@ -234,7 +234,7 @@ struct armada_plane_work *armada_drm_plane_work_cancel( | |||
| 234 | struct armada_plane_work *work = xchg(&plane->work, NULL); | 234 | struct armada_plane_work *work = xchg(&plane->work, NULL); |
| 235 | 235 | ||
| 236 | if (work) | 236 | if (work) |
| 237 | drm_vblank_put(dcrtc->crtc.dev, dcrtc->num); | 237 | drm_crtc_vblank_put(&dcrtc->crtc); |
| 238 | 238 | ||
| 239 | return work; | 239 | return work; |
| 240 | } | 240 | } |
| @@ -260,7 +260,7 @@ static void armada_drm_crtc_complete_frame_work(struct armada_crtc *dcrtc, | |||
| 260 | 260 | ||
| 261 | if (fwork->event) { | 261 | if (fwork->event) { |
| 262 | spin_lock_irqsave(&dev->event_lock, flags); | 262 | spin_lock_irqsave(&dev->event_lock, flags); |
| 263 | drm_send_vblank_event(dev, dcrtc->num, fwork->event); | 263 | drm_crtc_send_vblank_event(&dcrtc->crtc, fwork->event); |
| 264 | spin_unlock_irqrestore(&dev->event_lock, flags); | 264 | spin_unlock_irqrestore(&dev->event_lock, flags); |
| 265 | } | 265 | } |
| 266 | 266 | ||
| @@ -410,7 +410,7 @@ static void armada_drm_crtc_irq(struct armada_crtc *dcrtc, u32 stat) | |||
| 410 | DRM_ERROR("graphics underflow on crtc %u\n", dcrtc->num); | 410 | DRM_ERROR("graphics underflow on crtc %u\n", dcrtc->num); |
| 411 | 411 | ||
| 412 | if (stat & VSYNC_IRQ) | 412 | if (stat & VSYNC_IRQ) |
| 413 | drm_handle_vblank(dcrtc->crtc.dev, dcrtc->num); | 413 | drm_crtc_handle_vblank(&dcrtc->crtc); |
| 414 | 414 | ||
| 415 | spin_lock(&dcrtc->irq_lock); | 415 | spin_lock(&dcrtc->irq_lock); |
| 416 | ovl_plane = dcrtc->plane; | 416 | ovl_plane = dcrtc->plane; |
| @@ -592,9 +592,9 @@ static int armada_drm_crtc_mode_set(struct drm_crtc *crtc, | |||
| 592 | 592 | ||
| 593 | if (interlaced ^ dcrtc->interlaced) { | 593 | if (interlaced ^ dcrtc->interlaced) { |
| 594 | if (adj->flags & DRM_MODE_FLAG_INTERLACE) | 594 | if (adj->flags & DRM_MODE_FLAG_INTERLACE) |
| 595 | drm_vblank_get(dcrtc->crtc.dev, dcrtc->num); | 595 | drm_crtc_vblank_get(&dcrtc->crtc); |
| 596 | else | 596 | else |
| 597 | drm_vblank_put(dcrtc->crtc.dev, dcrtc->num); | 597 | drm_crtc_vblank_put(&dcrtc->crtc); |
| 598 | dcrtc->interlaced = interlaced; | 598 | dcrtc->interlaced = interlaced; |
| 599 | } | 599 | } |
| 600 | 600 | ||
diff --git a/drivers/gpu/drm/armada/armada_drv.c b/drivers/gpu/drm/armada/armada_drv.c index 439824a61aa5..f5ebdd681445 100644 --- a/drivers/gpu/drm/armada/armada_drv.c +++ b/drivers/gpu/drm/armada/armada_drv.c | |||
| @@ -189,7 +189,6 @@ static struct drm_driver armada_drm_driver = { | |||
| 189 | .load = armada_drm_load, | 189 | .load = armada_drm_load, |
| 190 | .lastclose = armada_drm_lastclose, | 190 | .lastclose = armada_drm_lastclose, |
| 191 | .unload = armada_drm_unload, | 191 | .unload = armada_drm_unload, |
| 192 | .set_busid = drm_platform_set_busid, | ||
| 193 | .get_vblank_counter = drm_vblank_no_hw_counter, | 192 | .get_vblank_counter = drm_vblank_no_hw_counter, |
| 194 | .enable_vblank = armada_drm_enable_vblank, | 193 | .enable_vblank = armada_drm_enable_vblank, |
| 195 | .disable_vblank = armada_drm_disable_vblank, | 194 | .disable_vblank = armada_drm_disable_vblank, |
| @@ -197,7 +196,7 @@ static struct drm_driver armada_drm_driver = { | |||
| 197 | .debugfs_init = armada_drm_debugfs_init, | 196 | .debugfs_init = armada_drm_debugfs_init, |
| 198 | .debugfs_cleanup = armada_drm_debugfs_cleanup, | 197 | .debugfs_cleanup = armada_drm_debugfs_cleanup, |
| 199 | #endif | 198 | #endif |
| 200 | .gem_free_object = armada_gem_free_object, | 199 | .gem_free_object_unlocked = armada_gem_free_object, |
| 201 | .prime_handle_to_fd = drm_gem_prime_handle_to_fd, | 200 | .prime_handle_to_fd = drm_gem_prime_handle_to_fd, |
| 202 | .prime_fd_to_handle = drm_gem_prime_fd_to_handle, | 201 | .prime_fd_to_handle = drm_gem_prime_fd_to_handle, |
| 203 | .gem_prime_export = armada_gem_prime_export, | 202 | .gem_prime_export = armada_gem_prime_export, |
diff --git a/drivers/gpu/drm/armada/armada_overlay.c b/drivers/gpu/drm/armada/armada_overlay.c index 148e8a42b2c6..1ee707ef6b8d 100644 --- a/drivers/gpu/drm/armada/armada_overlay.c +++ b/drivers/gpu/drm/armada/armada_overlay.c | |||
| @@ -121,6 +121,7 @@ armada_ovl_plane_update(struct drm_plane *plane, struct drm_crtc *crtc, | |||
| 121 | int ret; | 121 | int ret; |
| 122 | 122 | ||
| 123 | ret = drm_plane_helper_check_update(plane, crtc, fb, &src, &dest, &clip, | 123 | ret = drm_plane_helper_check_update(plane, crtc, fb, &src, &dest, &clip, |
| 124 | BIT(DRM_ROTATE_0), | ||
| 124 | 0, INT_MAX, true, false, &visible); | 125 | 0, INT_MAX, true, false, &visible); |
| 125 | if (ret) | 126 | if (ret) |
| 126 | return ret; | 127 | return ret; |
