diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-03-01 19:50:33 +0300 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-03-01 19:50:33 +0300 | 
| commit | f3ecc84b09df461639d59a313f50dc21d205e0b1 (patch) | |
| tree | 3f97cfa192141fba2528c109a237827bbd9efb7b | |
| parent | 2d6be4abf514fc26c83d239c7f31da1f95e4a31d (diff) | |
| parent | a44ddbcbbd72ba8569df1ecbb4b1372506454dff (diff) | |
| download | linux-f3ecc84b09df461639d59a313f50dc21d205e0b1.tar.xz | |
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'
| -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 = {  	.llseek		= dma_buf_llseek,  	.poll		= dma_buf_poll,  	.unlocked_ioctl	= dma_buf_ioctl, +#ifdef CONFIG_COMPAT +	.compat_ioctl	= dma_buf_ioctl, +#endif  };  /* 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  config ROCKCHIP_CDN_DP          tristate "Rockchip cdn DP"          depends on DRM_ROCKCHIP +	depends on EXTCON  	select SND_SOC_HDMI_CODEC if SND_SOC          help  	  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)  	ret = pm_runtime_get_sync(dp->dev);  	if (ret < 0) {  		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); @@ -133,6 +133,8 @@ static int cdn_dp_clk_enable(struct cdn_dp_device *dp)  	return 0;  err_set_rate: +	pm_runtime_put(dp->dev); +err_pm_runtime_get:  	clk_disable_unprepare(dp->core_clk);  err_core_clk:  	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[] = {  	VMW_IOCTL_DEF(VMW_PRESENT_READBACK,  		      vmw_present_readback_ioctl,  		      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_kms_update_layout_ioctl, -		      DRM_MASTER | DRM_CONTROL_ALLOW), +		      DRM_RENDER_ALLOW),  	VMW_IOCTL_DEF(VMW_CREATE_SHADER,  		      vmw_shader_define_ioctl,  		      DRM_AUTH | DRM_RENDER_ALLOW), @@ -1123,6 +1128,10 @@ static long vmw_generic_ioctl(struct file *filp, unsigned int cmd,  			return (long) vmw_execbuf_ioctl(dev, arg, file_priv,  							_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)) 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 @@  #include <drm/ttm/ttm_module.h>  #include "vmwgfx_fence.h" -#define VMWGFX_DRIVER_DATE "20160210" +#define VMWGFX_DRIVER_DATE "20170221"  #define VMWGFX_DRIVER_MAJOR 2 -#define VMWGFX_DRIVER_MINOR 11 +#define VMWGFX_DRIVER_MINOR 12  #define VMWGFX_DRIVER_PATCHLEVEL 0  #define VMWGFX_FILE_PAGE_OFFSET 0x00100000  #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,  	void __iomem *rsz = zplane->rsz;  	u32 src_chroma_w = src_w;  	u32 src_chroma_h = src_h; -	u32 fmt; +	int fmt;  	/* Set up source and destination resolution */  	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,  	u32 src_x, src_y, src_w, src_h;  	u32 dst_x, dst_y, dst_w, dst_h;  	uint32_t format; -	u32 fmt; +	int fmt;  	int num_planes;  	int i;  | 
