diff options
author | Dave Airlie <airlied@redhat.com> | 2017-02-27 21:28:00 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2017-02-27 21:28:00 -0500 |
commit | a44ddbcbbd72ba8569df1ecbb4b1372506454dff (patch) | |
tree | fba92dd66e9d670ed8e9d13825c90806898ad12c | |
parent | 45554b2357d5782497e59f09146cc3636d6ad551 (diff) | |
parent | 888022c0473d079bff9b47fb50434b1f20f8f37f (diff) |
Merge tag 'drm-misc-next-fixes-2017-02-27' of git://anongit.freedesktop.org/git/drm-misc into drm-next
Misc fixes for the 4.11 merge window.
- vmwgfx drm_control node compat patch
- rockchip&zte fix
- compat32 support for dma-buf ioctl (cc: stable ofc, since this is a
massive fumble. oops)
* tag 'drm-misc-next-fixes-2017-02-27' of git://anongit.freedesktop.org/git/drm-misc:
dma-buf: add support for compat ioctl
drm/vmwgfx: Work around drm removal of control nodes
drm/rockchip: cdn-dp: Fix error handling
drm/rockchip: add extcon dependency for DP
drm: zte: fix static checker warning on variable 'fmt'
-rw-r--r-- | drivers/dma-buf/dma-buf.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/rockchip/Kconfig | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/rockchip/cdn-dp-core.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 11 | ||||
-rw-r--r-- | drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/zte/zx_plane.c | 4 |
6 files changed, 21 insertions, 6 deletions
diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c index 718f832a5c71..0007b792827b 100644 --- a/drivers/dma-buf/dma-buf.c +++ b/drivers/dma-buf/dma-buf.c | |||
@@ -325,6 +325,9 @@ static const struct file_operations dma_buf_fops = { | |||
325 | .llseek = dma_buf_llseek, | 325 | .llseek = dma_buf_llseek, |
326 | .poll = dma_buf_poll, | 326 | .poll = dma_buf_poll, |
327 | .unlocked_ioctl = dma_buf_ioctl, | 327 | .unlocked_ioctl = dma_buf_ioctl, |
328 | #ifdef CONFIG_COMPAT | ||
329 | .compat_ioctl = dma_buf_ioctl, | ||
330 | #endif | ||
328 | }; | 331 | }; |
329 | 332 | ||
330 | /* | 333 | /* |
diff --git a/drivers/gpu/drm/rockchip/Kconfig b/drivers/gpu/drm/rockchip/Kconfig index ad31b3eb408f..0e4eb845cbb0 100644 --- a/drivers/gpu/drm/rockchip/Kconfig +++ b/drivers/gpu/drm/rockchip/Kconfig | |||
@@ -24,6 +24,7 @@ config ROCKCHIP_ANALOGIX_DP | |||
24 | config ROCKCHIP_CDN_DP | 24 | config ROCKCHIP_CDN_DP |
25 | tristate "Rockchip cdn DP" | 25 | tristate "Rockchip cdn DP" |
26 | depends on DRM_ROCKCHIP | 26 | depends on DRM_ROCKCHIP |
27 | depends on EXTCON | ||
27 | select SND_SOC_HDMI_CODEC if SND_SOC | 28 | select SND_SOC_HDMI_CODEC if SND_SOC |
28 | help | 29 | help |
29 | This selects support for Rockchip SoC specific extensions | 30 | This selects support for Rockchip SoC specific extensions |
diff --git a/drivers/gpu/drm/rockchip/cdn-dp-core.c b/drivers/gpu/drm/rockchip/cdn-dp-core.c index 9ab67a670885..fd79a70b8552 100644 --- a/drivers/gpu/drm/rockchip/cdn-dp-core.c +++ b/drivers/gpu/drm/rockchip/cdn-dp-core.c | |||
@@ -111,7 +111,7 @@ static int cdn_dp_clk_enable(struct cdn_dp_device *dp) | |||
111 | ret = pm_runtime_get_sync(dp->dev); | 111 | ret = pm_runtime_get_sync(dp->dev); |
112 | if (ret < 0) { | 112 | if (ret < 0) { |
113 | DRM_DEV_ERROR(dp->dev, "cannot get pm runtime %d\n", ret); | 113 | DRM_DEV_ERROR(dp->dev, "cannot get pm runtime %d\n", ret); |
114 | goto err_pclk; | 114 | goto err_pm_runtime_get; |
115 | } | 115 | } |
116 | 116 | ||
117 | reset_control_assert(dp->core_rst); | 117 | reset_control_assert(dp->core_rst); |
@@ -133,6 +133,8 @@ static int cdn_dp_clk_enable(struct cdn_dp_device *dp) | |||
133 | return 0; | 133 | return 0; |
134 | 134 | ||
135 | err_set_rate: | 135 | err_set_rate: |
136 | pm_runtime_put(dp->dev); | ||
137 | err_pm_runtime_get: | ||
136 | clk_disable_unprepare(dp->core_clk); | 138 | clk_disable_unprepare(dp->core_clk); |
137 | err_core_clk: | 139 | err_core_clk: |
138 | clk_disable_unprepare(dp->pclk); | 140 | clk_disable_unprepare(dp->pclk); |
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c index 541a5887dd6c..d08f26973d0b 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | |||
@@ -199,9 +199,14 @@ static const struct drm_ioctl_desc vmw_ioctls[] = { | |||
199 | VMW_IOCTL_DEF(VMW_PRESENT_READBACK, | 199 | VMW_IOCTL_DEF(VMW_PRESENT_READBACK, |
200 | vmw_present_readback_ioctl, | 200 | vmw_present_readback_ioctl, |
201 | DRM_MASTER | DRM_AUTH), | 201 | DRM_MASTER | DRM_AUTH), |
202 | /* | ||
203 | * The permissions of the below ioctl are overridden in | ||
204 | * vmw_generic_ioctl(). We require either | ||
205 | * DRM_MASTER or capable(CAP_SYS_ADMIN). | ||
206 | */ | ||
202 | VMW_IOCTL_DEF(VMW_UPDATE_LAYOUT, | 207 | VMW_IOCTL_DEF(VMW_UPDATE_LAYOUT, |
203 | vmw_kms_update_layout_ioctl, | 208 | vmw_kms_update_layout_ioctl, |
204 | DRM_MASTER | DRM_CONTROL_ALLOW), | 209 | DRM_RENDER_ALLOW), |
205 | VMW_IOCTL_DEF(VMW_CREATE_SHADER, | 210 | VMW_IOCTL_DEF(VMW_CREATE_SHADER, |
206 | vmw_shader_define_ioctl, | 211 | vmw_shader_define_ioctl, |
207 | DRM_AUTH | DRM_RENDER_ALLOW), | 212 | DRM_AUTH | DRM_RENDER_ALLOW), |
@@ -1123,6 +1128,10 @@ static long vmw_generic_ioctl(struct file *filp, unsigned int cmd, | |||
1123 | 1128 | ||
1124 | return (long) vmw_execbuf_ioctl(dev, arg, file_priv, | 1129 | return (long) vmw_execbuf_ioctl(dev, arg, file_priv, |
1125 | _IOC_SIZE(cmd)); | 1130 | _IOC_SIZE(cmd)); |
1131 | } else if (nr == DRM_COMMAND_BASE + DRM_VMW_UPDATE_LAYOUT) { | ||
1132 | if (!drm_is_current_master(file_priv) && | ||
1133 | !capable(CAP_SYS_ADMIN)) | ||
1134 | return -EACCES; | ||
1126 | } | 1135 | } |
1127 | 1136 | ||
1128 | if (unlikely(ioctl->cmd != cmd)) | 1137 | if (unlikely(ioctl->cmd != cmd)) |
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h index 1e59a486bba8..59ff4197173a 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | |||
@@ -41,9 +41,9 @@ | |||
41 | #include <drm/ttm/ttm_module.h> | 41 | #include <drm/ttm/ttm_module.h> |
42 | #include "vmwgfx_fence.h" | 42 | #include "vmwgfx_fence.h" |
43 | 43 | ||
44 | #define VMWGFX_DRIVER_DATE "20160210" | 44 | #define VMWGFX_DRIVER_DATE "20170221" |
45 | #define VMWGFX_DRIVER_MAJOR 2 | 45 | #define VMWGFX_DRIVER_MAJOR 2 |
46 | #define VMWGFX_DRIVER_MINOR 11 | 46 | #define VMWGFX_DRIVER_MINOR 12 |
47 | #define VMWGFX_DRIVER_PATCHLEVEL 0 | 47 | #define VMWGFX_DRIVER_PATCHLEVEL 0 |
48 | #define VMWGFX_FILE_PAGE_OFFSET 0x00100000 | 48 | #define VMWGFX_FILE_PAGE_OFFSET 0x00100000 |
49 | #define VMWGFX_FIFO_STATIC_SIZE (1024*1024) | 49 | #define VMWGFX_FIFO_STATIC_SIZE (1024*1024) |
diff --git a/drivers/gpu/drm/zte/zx_plane.c b/drivers/gpu/drm/zte/zx_plane.c index 1d08ba381098..d646ac931663 100644 --- a/drivers/gpu/drm/zte/zx_plane.c +++ b/drivers/gpu/drm/zte/zx_plane.c | |||
@@ -159,7 +159,7 @@ static void zx_vl_rsz_setup(struct zx_plane *zplane, uint32_t format, | |||
159 | void __iomem *rsz = zplane->rsz; | 159 | void __iomem *rsz = zplane->rsz; |
160 | u32 src_chroma_w = src_w; | 160 | u32 src_chroma_w = src_w; |
161 | u32 src_chroma_h = src_h; | 161 | u32 src_chroma_h = src_h; |
162 | u32 fmt; | 162 | int fmt; |
163 | 163 | ||
164 | /* Set up source and destination resolution */ | 164 | /* Set up source and destination resolution */ |
165 | zx_writel(rsz + RSZ_SRC_CFG, RSZ_VER(src_h - 1) | RSZ_HOR(src_w - 1)); | 165 | zx_writel(rsz + RSZ_SRC_CFG, RSZ_VER(src_h - 1) | RSZ_HOR(src_w - 1)); |
@@ -203,7 +203,7 @@ static void zx_vl_plane_atomic_update(struct drm_plane *plane, | |||
203 | u32 src_x, src_y, src_w, src_h; | 203 | u32 src_x, src_y, src_w, src_h; |
204 | u32 dst_x, dst_y, dst_w, dst_h; | 204 | u32 dst_x, dst_y, dst_w, dst_h; |
205 | uint32_t format; | 205 | uint32_t format; |
206 | u32 fmt; | 206 | int fmt; |
207 | int num_planes; | 207 | int num_planes; |
208 | int i; | 208 | int i; |
209 | 209 | ||