Commit f3ecc84b authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'drm-fixes-for-v4.11-rc1' of git://people.freedesktop.org/~airlied/linux

Pull drm fixes from Dave Airlie:
 "Misc fixes for v4.11-rc1.

  This is a selection of fixes for recent bugs, the vmwgfx one is
  important to avoid a regression, and compat ioctl one is pretty urgent
  for stable. Otherwise nothing too much.

  I've got a separate pull req for some AST hw IBM need to enable"

* tag 'drm-fixes-for-v4.11-rc1' of git://people.freedesktop.org/~airlied/linux:
  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'
parents 2d6be4ab a44ddbcb
...@@ -325,6 +325,9 @@ static const struct file_operations dma_buf_fops = { ...@@ -325,6 +325,9 @@ static const struct file_operations dma_buf_fops = {
.llseek = dma_buf_llseek, .llseek = dma_buf_llseek,
.poll = dma_buf_poll, .poll = dma_buf_poll,
.unlocked_ioctl = dma_buf_ioctl, .unlocked_ioctl = dma_buf_ioctl,
#ifdef CONFIG_COMPAT
.compat_ioctl = dma_buf_ioctl,
#endif
}; };
/* /*
......
...@@ -24,6 +24,7 @@ config ROCKCHIP_ANALOGIX_DP ...@@ -24,6 +24,7 @@ config ROCKCHIP_ANALOGIX_DP
config ROCKCHIP_CDN_DP config ROCKCHIP_CDN_DP
tristate "Rockchip cdn DP" tristate "Rockchip cdn DP"
depends on DRM_ROCKCHIP depends on DRM_ROCKCHIP
depends on EXTCON
select SND_SOC_HDMI_CODEC if SND_SOC select SND_SOC_HDMI_CODEC if SND_SOC
help help
This selects support for Rockchip SoC specific extensions This selects support for Rockchip SoC specific extensions
......
...@@ -111,7 +111,7 @@ static int cdn_dp_clk_enable(struct cdn_dp_device *dp) ...@@ -111,7 +111,7 @@ static int cdn_dp_clk_enable(struct cdn_dp_device *dp)
ret = pm_runtime_get_sync(dp->dev); ret = pm_runtime_get_sync(dp->dev);
if (ret < 0) { if (ret < 0) {
DRM_DEV_ERROR(dp->dev, "cannot get pm runtime %d\n", ret); DRM_DEV_ERROR(dp->dev, "cannot get pm runtime %d\n", ret);
goto err_pclk; goto err_pm_runtime_get;
} }
reset_control_assert(dp->core_rst); reset_control_assert(dp->core_rst);
...@@ -133,6 +133,8 @@ static int cdn_dp_clk_enable(struct cdn_dp_device *dp) ...@@ -133,6 +133,8 @@ static int cdn_dp_clk_enable(struct cdn_dp_device *dp)
return 0; return 0;
err_set_rate: err_set_rate:
pm_runtime_put(dp->dev);
err_pm_runtime_get:
clk_disable_unprepare(dp->core_clk); clk_disable_unprepare(dp->core_clk);
err_core_clk: err_core_clk:
clk_disable_unprepare(dp->pclk); clk_disable_unprepare(dp->pclk);
......
...@@ -199,9 +199,14 @@ static const struct drm_ioctl_desc vmw_ioctls[] = { ...@@ -199,9 +199,14 @@ static const struct drm_ioctl_desc vmw_ioctls[] = {
VMW_IOCTL_DEF(VMW_PRESENT_READBACK, VMW_IOCTL_DEF(VMW_PRESENT_READBACK,
vmw_present_readback_ioctl, vmw_present_readback_ioctl,
DRM_MASTER | DRM_AUTH), DRM_MASTER | DRM_AUTH),
/*
* The permissions of the below ioctl are overridden in
* vmw_generic_ioctl(). We require either
* DRM_MASTER or capable(CAP_SYS_ADMIN).
*/
VMW_IOCTL_DEF(VMW_UPDATE_LAYOUT, VMW_IOCTL_DEF(VMW_UPDATE_LAYOUT,
vmw_kms_update_layout_ioctl, vmw_kms_update_layout_ioctl,
DRM_MASTER | DRM_CONTROL_ALLOW), DRM_RENDER_ALLOW),
VMW_IOCTL_DEF(VMW_CREATE_SHADER, VMW_IOCTL_DEF(VMW_CREATE_SHADER,
vmw_shader_define_ioctl, vmw_shader_define_ioctl,
DRM_AUTH | DRM_RENDER_ALLOW), DRM_AUTH | DRM_RENDER_ALLOW),
...@@ -1123,6 +1128,10 @@ static long vmw_generic_ioctl(struct file *filp, unsigned int cmd, ...@@ -1123,6 +1128,10 @@ static long vmw_generic_ioctl(struct file *filp, unsigned int cmd,
return (long) vmw_execbuf_ioctl(dev, arg, file_priv, return (long) vmw_execbuf_ioctl(dev, arg, file_priv,
_IOC_SIZE(cmd)); _IOC_SIZE(cmd));
} else if (nr == DRM_COMMAND_BASE + DRM_VMW_UPDATE_LAYOUT) {
if (!drm_is_current_master(file_priv) &&
!capable(CAP_SYS_ADMIN))
return -EACCES;
} }
if (unlikely(ioctl->cmd != cmd)) if (unlikely(ioctl->cmd != cmd))
......
...@@ -41,9 +41,9 @@ ...@@ -41,9 +41,9 @@
#include <drm/ttm/ttm_module.h> #include <drm/ttm/ttm_module.h>
#include "vmwgfx_fence.h" #include "vmwgfx_fence.h"
#define VMWGFX_DRIVER_DATE "20160210" #define VMWGFX_DRIVER_DATE "20170221"
#define VMWGFX_DRIVER_MAJOR 2 #define VMWGFX_DRIVER_MAJOR 2
#define VMWGFX_DRIVER_MINOR 11 #define VMWGFX_DRIVER_MINOR 12
#define VMWGFX_DRIVER_PATCHLEVEL 0 #define VMWGFX_DRIVER_PATCHLEVEL 0
#define VMWGFX_FILE_PAGE_OFFSET 0x00100000 #define VMWGFX_FILE_PAGE_OFFSET 0x00100000
#define VMWGFX_FIFO_STATIC_SIZE (1024*1024) #define VMWGFX_FIFO_STATIC_SIZE (1024*1024)
......
...@@ -159,7 +159,7 @@ static void zx_vl_rsz_setup(struct zx_plane *zplane, uint32_t format, ...@@ -159,7 +159,7 @@ static void zx_vl_rsz_setup(struct zx_plane *zplane, uint32_t format,
void __iomem *rsz = zplane->rsz; void __iomem *rsz = zplane->rsz;
u32 src_chroma_w = src_w; u32 src_chroma_w = src_w;
u32 src_chroma_h = src_h; u32 src_chroma_h = src_h;
u32 fmt; int fmt;
/* Set up source and destination resolution */ /* Set up source and destination resolution */
zx_writel(rsz + RSZ_SRC_CFG, RSZ_VER(src_h - 1) | RSZ_HOR(src_w - 1)); 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,7 +203,7 @@ static void zx_vl_plane_atomic_update(struct drm_plane *plane,
u32 src_x, src_y, src_w, src_h; u32 src_x, src_y, src_w, src_h;
u32 dst_x, dst_y, dst_w, dst_h; u32 dst_x, dst_y, dst_w, dst_h;
uint32_t format; uint32_t format;
u32 fmt; int fmt;
int num_planes; int num_planes;
int i; int i;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment