Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4e910c7a authored by Jyri Sarha's avatar Jyri Sarha
Browse files

drm/tilcdc: Flush flip-work workqueue before drm_flip_work_cleanup()



Flush flip-work workqueue before drm_flip_work_cleanup(). It causes a
nasty warning if there is unfinished flip-work in the queue when
drm_flip_work_cleanup() is called. The flush_workqueue() has to be
called before drm_crtc_cleanup() for unref_worker() to be able to do
its job.

Signed-off-by: default avatarJyri Sarha <jsarha@ti.com>
Reviewed-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
parent 642e5167
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@
#include "drm_flip_work.h"
#include <drm/drm_plane_helper.h>
#include <drm/drm_atomic_helper.h>
#include <linux/workqueue.h>

#include "tilcdc_drv.h"
#include "tilcdc_regs.h"
@@ -227,9 +228,12 @@ static bool tilcdc_crtc_is_on(struct drm_crtc *crtc)
static void tilcdc_crtc_destroy(struct drm_crtc *crtc)
{
	struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc);
	struct tilcdc_drm_private *priv = crtc->dev->dev_private;

	tilcdc_crtc_disable(crtc);

	flush_workqueue(priv->wq);

	of_node_put(crtc->port);
	drm_crtc_cleanup(crtc);
	drm_flip_work_cleanup(&tilcdc_crtc->unref_work);