diff options
author | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2014-10-16 12:19:37 +0300 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2014-10-22 11:07:08 +0300 |
commit | 13a0c40a49380752d8fbe1ff27009df2b5c71fcf (patch) | |
tree | 8cf58b22aa68c68648c933de50d75c003fdc3083 | |
parent | 63cec5a22c13a80d80cb38acdb5b555eafb74ddc (diff) | |
download | op-kernel-dev-13a0c40a49380752d8fbe1ff27009df2b5c71fcf.zip op-kernel-dev-13a0c40a49380752d8fbe1ff27009df2b5c71fcf.tar.gz |
OMAPFB: fix releasing overlays
omapfb disables all the overlays when freeing resources, but it should
also remove those overlays from overlay managers.
Not doing so causes a crash if omapfb is unbound and bound, or omapfb
module is removed and loaded, while keeping omapdss around.
Fix this by calling unset_manager() for all overlays.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
-rw-r--r-- | drivers/video/fbdev/omap2/omapfb/omapfb-main.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/video/fbdev/omap2/omapfb/omapfb-main.c b/drivers/video/fbdev/omap2/omapfb/omapfb-main.c index a04096a..ce8a705 100644 --- a/drivers/video/fbdev/omap2/omapfb/omapfb-main.c +++ b/drivers/video/fbdev/omap2/omapfb/omapfb-main.c @@ -1837,6 +1837,9 @@ static void omapfb_free_resources(struct omapfb2_device *fbdev) struct omap_overlay *ovl = fbdev->overlays[i]; ovl->disable(ovl); + + if (ovl->manager) + ovl->unset_manager(ovl); } for (i = 0; i < fbdev->num_fbs; i++) |