tree 66bef10f448765635a727ab9bd512032908496aa
parent 96cbd142310cc7281f94739b27d8e4c308d588c5
author Tomi Valkeinen <tomi.valkeinen@ti.com> 1430218895 +0300
committer Tomi Valkeinen <tomi.valkeinen@ti.com> 1435841886 +0300

drm/omap: fix omap_framebuffer_unpin() error handling

omap_framebuffer_unpin() check the return value of omap_gem_put_paddr()
and return immediately if omap_gem_put_paddr() fails.

This patch removes the check for the return value, and also removes the
return value of omap_framebuffer_unpin(), because:

 * Nothing checks the return value of omap_framebuffer_unpin(), and even
   something did check it, there's nothing the caller can do to handle
   the error.

 * If a omap_gem_put_paddr() fails, the framebuffer's other planes will
   be left unreleased. So it's better to call omap_gem_put_paddr() for
   all the planes, even if one would fail.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
