b3f266e428
This patch moves the sun4i_layers_init call from sun4i_drv_bind to sun4i_crtc_init, and the layers pointer from struct sun4i_drv to struct sun4i_crtc. The layers are bound to a specific crtc, and they are not directly used once initiated. They are used through their included drm_plane structures. Moving the layers into the crtc facilitates binding them to the crtc explicitly, by setting the corresponding bit in their .possible_crtcs fields right after the crtc is initialized. This is done in a later patch. Signed-off-by: Chen-Yu Tsai <wens@csie.org> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
32 lines
810 B
C
32 lines
810 B
C
/*
|
|
* Copyright (C) 2015 Free Electrons
|
|
* Copyright (C) 2015 NextThing Co
|
|
*
|
|
* Maxime Ripard <maxime.ripard@free-electrons.com>
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License as
|
|
* published by the Free Software Foundation; either version 2 of
|
|
* the License, or (at your option) any later version.
|
|
*/
|
|
|
|
#ifndef _SUN4I_CRTC_H_
|
|
#define _SUN4I_CRTC_H_
|
|
|
|
struct sun4i_crtc {
|
|
struct drm_crtc crtc;
|
|
struct drm_pending_vblank_event *event;
|
|
|
|
struct sun4i_drv *drv;
|
|
struct sun4i_layer **layers;
|
|
};
|
|
|
|
static inline struct sun4i_crtc *drm_crtc_to_sun4i_crtc(struct drm_crtc *crtc)
|
|
{
|
|
return container_of(crtc, struct sun4i_crtc, crtc);
|
|
}
|
|
|
|
struct sun4i_crtc *sun4i_crtc_init(struct drm_device *drm);
|
|
|
|
#endif /* _SUN4I_CRTC_H_ */
|