diff options
| author | Dave Airlie <airlied@redhat.com> | 2018-03-21 14:07:03 +1000 | 
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2018-03-21 14:07:03 +1000 | 
| commit | 78230c46ec0a91dd4256c9e54934b3c7095a7ee3 (patch) | |
| tree | f812daca099880181fb666a3d98298bf5f249d57 /drivers/gpu/drm/omapdrm/omap_gem.c | |
| parent | b65bd40311565a58b12f400e95e8aa0a1e3a8878 (diff) | |
| parent | 037f03155b7d87e85168b4296516bfda5c9f6380 (diff) | |
Merge tag 'omapdrm-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux into drm-next
omapdrm patches for v4.17
* Fix sparse warnings from omapdrm
* HPD support for DVI connector
* Big cleanup to remove static variables
* tag 'omapdrm-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (69 commits)
  drm/omap: fix compile error when DPI is disabled
  drm/omap: fix compile error when debugfs is disabled
  drm: omapdrm: displays: panel-dsi-cm: Fix field access before set
  drm/omap: cleanup color space conversion
  drm/omap: Allow HDMI audio setup even if we do not have video configured
  drm/omap: fix maximum sizes
  drm/omap: add writeback funcs to dispc_ops
  drm/omap: fix scaling limits for WB
  drm/omap: fix WB height with interlace
  drm/omap: fix WBDELAYCOUNT with interlace
  drm/omap: fix WBDELAYCOUNT for HDMI
  drm/omap: set WB channel-in in wb_setup()
  drm/omap: Add pclk setting case when channel is DSS_WB
  drm/omap: dispc: disp_wb_setup to check return code
  drm/omap: remove leftover enums
  dt-bindings: display: add HPD gpio to DVI connector
  drm/omap: add HPD support to connector-dvi
  drm/omap: Init fbdev emulation only when we have displays
  drm/omap: cleanup fbdev init/free
  drm/omap: fix omap_fbdev_free() when omap_fbdev_create() wasn't called
  ...
Diffstat (limited to 'drivers/gpu/drm/omapdrm/omap_gem.c')
| -rw-r--r-- | drivers/gpu/drm/omapdrm/omap_gem.c | 41 | 
1 files changed, 22 insertions, 19 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_gem.c b/drivers/gpu/drm/omapdrm/omap_gem.c index 443469d4fa46..0faf042b82e1 100644 --- a/drivers/gpu/drm/omapdrm/omap_gem.c +++ b/drivers/gpu/drm/omapdrm/omap_gem.c @@ -39,13 +39,13 @@ struct omap_gem_object {  	struct list_head mm_list; -	uint32_t flags; +	u32 flags;  	/** width/height for tiled formats (rounded up to slot boundaries) */ -	uint16_t width, height; +	u16 width, height;  	/** roll applied when mapping to DMM */ -	uint32_t roll; +	u32 roll;  	/**  	 * dma_addr contains the buffer DMA address. It is valid for @@ -73,7 +73,7 @@ struct omap_gem_object {  	/**  	 * # of users of dma_addr  	 */ -	uint32_t dma_addr_cnt; +	u32 dma_addr_cnt;  	/**  	 * If the buffer has been imported from a dmabuf the OMAP_DB_DMABUF flag @@ -137,7 +137,7 @@ struct omap_drm_usergart {   */  /** get mmap offset */ -static uint64_t mmap_offset(struct drm_gem_object *obj) +static u64 mmap_offset(struct drm_gem_object *obj)  {  	struct drm_device *dev = obj->dev;  	int ret; @@ -331,14 +331,15 @@ static void omap_gem_detach_pages(struct drm_gem_object *obj)  }  /* get buffer flags */ -uint32_t omap_gem_flags(struct drm_gem_object *obj) +u32 omap_gem_flags(struct drm_gem_object *obj)  {  	return to_omap_bo(obj)->flags;  } -uint64_t omap_gem_mmap_offset(struct drm_gem_object *obj) +u64 omap_gem_mmap_offset(struct drm_gem_object *obj)  { -	uint64_t offset; +	u64 offset; +  	mutex_lock(&obj->dev->struct_mutex);  	offset = mmap_offset(obj);  	mutex_unlock(&obj->dev->struct_mutex); @@ -649,7 +650,7 @@ int omap_gem_dumb_create(struct drm_file *file, struct drm_device *dev,   * into user memory. We don't have to do much here at the moment.   */  int omap_gem_dumb_map_offset(struct drm_file *file, struct drm_device *dev, -		uint32_t handle, uint64_t *offset) +		u32 handle, u64 *offset)  {  	struct drm_gem_object *obj;  	int ret = 0; @@ -675,10 +676,10 @@ fail:   *   * Call only from non-atomic contexts.   */ -int omap_gem_roll(struct drm_gem_object *obj, uint32_t roll) +int omap_gem_roll(struct drm_gem_object *obj, u32 roll)  {  	struct omap_gem_object *omap_obj = to_omap_bo(obj); -	uint32_t npages = obj->size >> PAGE_SHIFT; +	u32 npages = obj->size >> PAGE_SHIFT;  	int ret = 0;  	if (roll > npages) { @@ -808,7 +809,7 @@ int omap_gem_pin(struct drm_gem_object *obj, dma_addr_t *dma_addr)  	if (!is_contiguous(omap_obj) && priv->has_dmm) {  		if (omap_obj->dma_addr_cnt == 0) {  			struct page **pages; -			uint32_t npages = obj->size >> PAGE_SHIFT; +			u32 npages = obj->size >> PAGE_SHIFT;  			enum tiler_fmt fmt = gem2fmt(omap_obj->flags);  			struct tiler_block *block; @@ -904,7 +905,7 @@ void omap_gem_unpin(struct drm_gem_object *obj)   * specified orientation and x,y offset from top-left corner of buffer   * (only valid for tiled 2d buffers)   */ -int omap_gem_rotated_dma_addr(struct drm_gem_object *obj, uint32_t orient, +int omap_gem_rotated_dma_addr(struct drm_gem_object *obj, u32 orient,  		int x, int y, dma_addr_t *dma_addr)  {  	struct omap_gem_object *omap_obj = to_omap_bo(obj); @@ -921,7 +922,7 @@ int omap_gem_rotated_dma_addr(struct drm_gem_object *obj, uint32_t orient,  }  /* Get tiler stride for the buffer (only valid for 2d tiled buffers) */ -int omap_gem_tiled_stride(struct drm_gem_object *obj, uint32_t orient) +int omap_gem_tiled_stride(struct drm_gem_object *obj, u32 orient)  {  	struct omap_gem_object *omap_obj = to_omap_bo(obj);  	int ret = -EINVAL; @@ -1003,7 +1004,8 @@ int omap_gem_resume(struct drm_device *dev)  	list_for_each_entry(omap_obj, &priv->obj_list, mm_list) {  		if (omap_obj->block) {  			struct drm_gem_object *obj = &omap_obj->base; -			uint32_t npages = obj->size >> PAGE_SHIFT; +			u32 npages = obj->size >> PAGE_SHIFT; +  			WARN_ON(!omap_obj->pages);  /* this can't happen */  			ret = tiler_pin(omap_obj->block,  					omap_obj->pages, npages, @@ -1027,7 +1029,7 @@ int omap_gem_resume(struct drm_device *dev)  void omap_gem_describe(struct drm_gem_object *obj, struct seq_file *m)  {  	struct omap_gem_object *omap_obj = to_omap_bo(obj); -	uint64_t off; +	u64 off;  	off = drm_vma_node_start(&obj->vma_node); @@ -1115,7 +1117,7 @@ void omap_gem_free_object(struct drm_gem_object *obj)  /* GEM buffer object constructor */  struct drm_gem_object *omap_gem_new(struct drm_device *dev, -		union omap_gem_size gsize, uint32_t flags) +		union omap_gem_size gsize, u32 flags)  {  	struct omap_drm_private *priv = dev->dev_private;  	struct omap_gem_object *omap_obj; @@ -1280,7 +1282,7 @@ done:  /* convenience method to construct a GEM buffer object, and userspace handle */  int omap_gem_new_handle(struct drm_device *dev, struct drm_file *file, -		union omap_gem_size gsize, uint32_t flags, uint32_t *handle) +		union omap_gem_size gsize, u32 flags, u32 *handle)  {  	struct drm_gem_object *obj;  	int ret; @@ -1327,7 +1329,8 @@ void omap_gem_init(struct drm_device *dev)  	/* reserve 4k aligned/wide regions for userspace mappings: */  	for (i = 0; i < ARRAY_SIZE(fmts); i++) { -		uint16_t h = 1, w = PAGE_SIZE >> i; +		u16 h = 1, w = PAGE_SIZE >> i; +  		tiler_align(fmts[i], &w, &h);  		/* note: since each region is 1 4kb page wide, and minimum  		 * number of rows, the height ends up being the same as the  | 
