diff options
Diffstat (limited to 'drivers/gpu/drm/tegra/drm.h')
| -rw-r--r-- | drivers/gpu/drm/tegra/drm.h | 43 | 
1 files changed, 32 insertions, 11 deletions
diff --git a/drivers/gpu/drm/tegra/drm.h b/drivers/gpu/drm/tegra/drm.h index 741b5dc2742..6dd75a2600e 100644 --- a/drivers/gpu/drm/tegra/drm.h +++ b/drivers/gpu/drm/tegra/drm.h @@ -18,16 +18,6 @@  #include <drm/drm_fb_cma_helper.h>  #include <drm/drm_fixed.h> -struct tegra_framebuffer { -	struct drm_framebuffer base; -	struct drm_gem_cma_object *obj; -}; - -static inline struct tegra_framebuffer *to_tegra_fb(struct drm_framebuffer *fb) -{ -	return container_of(fb, struct tegra_framebuffer, base); -} -  struct host1x {  	struct drm_device *drm;  	struct device *dev; @@ -44,7 +34,6 @@ struct host1x {  	struct list_head clients;  	struct drm_fbdev_cma *fbdev; -	struct tegra_framebuffer fb;  };  struct host1x_client; @@ -75,6 +64,7 @@ struct tegra_output;  struct tegra_dc {  	struct host1x_client client; +	spinlock_t lock;  	struct host1x *host1x;  	struct device *dev; @@ -94,6 +84,9 @@ struct tegra_dc {  	struct drm_info_list *debugfs_files;  	struct drm_minor *minor;  	struct dentry *debugfs; + +	/* page-flip handling */ +	struct drm_pending_vblank_event *event;  };  static inline struct tegra_dc *host1x_client_to_dc(struct host1x_client *client) @@ -118,6 +111,34 @@ static inline unsigned long tegra_dc_readl(struct tegra_dc *dc,  	return readl(dc->regs + (reg << 2));  } +struct tegra_dc_window { +	struct { +		unsigned int x; +		unsigned int y; +		unsigned int w; +		unsigned int h; +	} src; +	struct { +		unsigned int x; +		unsigned int y; +		unsigned int w; +		unsigned int h; +	} dst; +	unsigned int bits_per_pixel; +	unsigned int format; +	unsigned int stride[2]; +	unsigned long base[3]; +}; + +/* from dc.c */ +extern unsigned int tegra_dc_format(uint32_t format); +extern int tegra_dc_setup_window(struct tegra_dc *dc, unsigned int index, +				 const struct tegra_dc_window *window); +extern void tegra_dc_enable_vblank(struct tegra_dc *dc); +extern void tegra_dc_disable_vblank(struct tegra_dc *dc); +extern void tegra_dc_cancel_page_flip(struct drm_crtc *crtc, +				      struct drm_file *file); +  struct tegra_output_ops {  	int (*enable)(struct tegra_output *output);  	int (*disable)(struct tegra_output *output);  |