diff options
Diffstat (limited to 'drivers/gpu/drm/omapdrm/omap_fb.c')
| -rw-r--r-- | drivers/gpu/drm/omapdrm/omap_fb.c | 16 | 
1 files changed, 16 insertions, 0 deletions
| diff --git a/drivers/gpu/drm/omapdrm/omap_fb.c b/drivers/gpu/drm/omapdrm/omap_fb.c index ad202dfc1a49..610962396eb0 100644 --- a/drivers/gpu/drm/omapdrm/omap_fb.c +++ b/drivers/gpu/drm/omapdrm/omap_fb.c @@ -145,6 +145,14 @@ static uint32_t get_linear_addr(struct plane *plane,  	return plane->paddr + offset;  } +bool omap_framebuffer_supports_rotation(struct drm_framebuffer *fb) +{ +	struct omap_framebuffer *omap_fb = to_omap_framebuffer(fb); +	struct plane *plane = &omap_fb->planes[0]; + +	return omap_gem_flags(plane->bo) & OMAP_BO_TILED; +} +  /* update ovl info for scanout, handles cases of multi-planar fb's, etc.   */  void omap_framebuffer_update_scanout(struct drm_framebuffer *fb, @@ -449,6 +457,14 @@ struct drm_framebuffer *omap_framebuffer_init(struct drm_device *dev,  			goto fail;  		} +		if (i > 0 && pitch != mode_cmd->pitches[i - 1]) { +			dev_err(dev->dev, +				"pitches are not the same between framebuffer planes %d != %d\n", +				pitch, mode_cmd->pitches[i - 1]); +			ret = -EINVAL; +			goto fail; +		} +  		plane->bo     = bos[i];  		plane->offset = mode_cmd->offsets[i];  		plane->pitch  = pitch; | 
