diff options
author | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2014-10-16 05:19:37 -0400 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2014-10-22 04:07:08 -0400 |
commit | 13a0c40a49380752d8fbe1ff27009df2b5c71fcf (patch) | |
tree | 8cf58b22aa68c68648c933de50d75c003fdc3083 /drivers/video | |
parent | 63cec5a22c13a80d80cb38acdb5b555eafb74ddc (diff) |
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>
Diffstat (limited to 'drivers/video')
-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 a04096a63cb1..ce8a70570756 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) | |||
1837 | struct omap_overlay *ovl = fbdev->overlays[i]; | 1837 | struct omap_overlay *ovl = fbdev->overlays[i]; |
1838 | 1838 | ||
1839 | ovl->disable(ovl); | 1839 | ovl->disable(ovl); |
1840 | |||
1841 | if (ovl->manager) | ||
1842 | ovl->unset_manager(ovl); | ||
1840 | } | 1843 | } |
1841 | 1844 | ||
1842 | for (i = 0; i < fbdev->num_fbs; i++) | 1845 | for (i = 0; i < fbdev->num_fbs; i++) |