On 07/03/16 10:52, Laurent Pinchart wrote:
Hi Tomi,
Thank you for the patch.
On Monday 22 February 2016 19:10:24 Tomi Valkeinen wrote:
In order to remove uses of 'struct omap_overlay_manager' from omapdrm, this patch removes the crtc->mgr field.
To accomplish that, a new static array is added along the current 'omap_crtcs' static array, which is used to store the output device connected to a crtc.
Optimally we'd use the struct omap_crtc to store this information, but at the time when omap_crtc_dss_connect() is called, we don't yet have the omap_crtc instances. This might possibly be fixed later, but for now the static array does the job.
Signed-off-by: Tomi Valkeinen tomi.valkeinen@ti.com
drivers/gpu/drm/omapdrm/omap_crtc.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-)
diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c index b1ed18bf1b1b..104e70a91fd8 100644 --- a/drivers/gpu/drm/omapdrm/omap_crtc.c +++ b/drivers/gpu/drm/omapdrm/omap_crtc.c @@ -34,14 +34,6 @@ struct omap_crtc { const char *name; enum omap_channel channel;
/*
* Temporary: eventually this will go away, but it is needed
* for now to keep the output's happy. (They only need
* mgr->id.) Eventually this will be replaced w/ something
* more common-panel-framework-y
*/
struct omap_overlay_manager *mgr;
struct omap_video_timings timings;
struct omap_drm_irq vblank_irq;
@@ -100,17 +92,20 @@ int omap_crtc_wait_pending(struct drm_crtc *crtc)
/* ovl-mgr-id -> crtc */ static struct omap_crtc *omap_crtcs[8]; +static struct omap_dss_device *omap_crtc_output[8];
We should really move away from global structures, not adding more of them :-/ Could you add this to your (or my) todo list ?
Agreed.
This restructuring series was becoming quite large and confusing already, and I didn't see an obvious solution to this problem. So, as we already had the omap_crtcs[], I went the easy way.
Tomi