drm/ast: Add cursor-plane data structure
Cursor state is currently located throughout struct ast_private. Having struct ast_cursor_plane as dedicated data structure for cursors helps to organize the modesetting code. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20210209134632.12157-7-tzimmermann@suse.de
This commit is contained in:
parent
718c22865f
commit
a0ba992d17
|
@ -81,6 +81,9 @@ enum ast_tx_chip {
|
|||
#define AST_DRAM_4Gx16 7
|
||||
#define AST_DRAM_8Gx16 8
|
||||
|
||||
/*
|
||||
* Cursor plane
|
||||
*/
|
||||
|
||||
#define AST_MAX_HWC_WIDTH 64
|
||||
#define AST_MAX_HWC_HEIGHT 64
|
||||
|
@ -99,6 +102,20 @@ enum ast_tx_chip {
|
|||
#define AST_HWC_SIGNATURE_HOTSPOTX 0x14
|
||||
#define AST_HWC_SIGNATURE_HOTSPOTY 0x18
|
||||
|
||||
struct ast_cursor_plane {
|
||||
struct drm_plane base;
|
||||
};
|
||||
|
||||
static inline struct ast_cursor_plane *
|
||||
to_ast_cursor_plane(struct drm_plane *plane)
|
||||
{
|
||||
return container_of(plane, struct ast_cursor_plane, base);
|
||||
}
|
||||
|
||||
/*
|
||||
* Connector with i2c channel
|
||||
*/
|
||||
|
||||
struct ast_i2c_chan {
|
||||
struct i2c_adapter adapter;
|
||||
struct drm_device *dev;
|
||||
|
@ -116,6 +133,10 @@ to_ast_connector(struct drm_connector *connector)
|
|||
return container_of(connector, struct ast_connector, base);
|
||||
}
|
||||
|
||||
/*
|
||||
* Device
|
||||
*/
|
||||
|
||||
struct ast_private {
|
||||
struct drm_device base;
|
||||
|
||||
|
@ -136,7 +157,7 @@ struct ast_private {
|
|||
} cursor;
|
||||
|
||||
struct drm_plane primary_plane;
|
||||
struct drm_plane cursor_plane;
|
||||
struct ast_cursor_plane cursor_plane;
|
||||
struct drm_crtc crtc;
|
||||
struct drm_encoder encoder;
|
||||
struct ast_connector connector;
|
||||
|
|
|
@ -932,7 +932,8 @@ static const struct drm_plane_funcs ast_cursor_plane_funcs = {
|
|||
static int ast_cursor_plane_init(struct ast_private *ast)
|
||||
{
|
||||
struct drm_device *dev = &ast->base;
|
||||
struct drm_plane *cursor_plane = &ast->cursor_plane;
|
||||
struct ast_cursor_plane *ast_cursor_plane = &ast->cursor_plane;
|
||||
struct drm_plane *cursor_plane = &ast_cursor_plane->base;
|
||||
size_t size, i;
|
||||
struct drm_gem_vram_object *gbo;
|
||||
int ret;
|
||||
|
@ -1178,7 +1179,7 @@ static int ast_crtc_init(struct drm_device *dev)
|
|||
int ret;
|
||||
|
||||
ret = drm_crtc_init_with_planes(dev, crtc, &ast->primary_plane,
|
||||
&ast->cursor_plane, &ast_crtc_funcs,
|
||||
&ast->cursor_plane.base, &ast_crtc_funcs,
|
||||
NULL);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
|
Loading…
Reference in New Issue