drm/rockchip: vop: Fix vop crtc cleanup
authorDouglas Anderson <dianders@chromium.org>
Mon, 7 Mar 2016 22:00:52 +0000 (14:00 -0800)
committerMark Yao <mark.yao@rock-chips.com>
Mon, 28 Mar 2016 06:48:32 +0000 (14:48 +0800)
commit328b51c0f5a07f3ee891ff012eb7f454be9d17c0
treee80c90ed0aa607fb16da161091eab81f3a78e9be
parent948cf42700b15fc65ec4cc3ac52a8bbeb84b87ef
drm/rockchip: vop: Fix vop crtc cleanup

This fixes a few problems in the vop crtc cleanup (handling error
paths and cleanup upon exit):

* The vop_create_crtc() error path had an unsafe version of the
  iterator used for iterating over all planes (though it was
  destroying planes in the iterator so should have used the safe
  version)

* vop_destroy_crtc() - wasn't calling vop_plane_destroy(), which made
  slub_debug unhappy, at least if we ended up running this due to a
  deferred probe.

* In vop_create_crtc() if we were missing the "port" device tree node
  we would fail but not return an error (found by code inspection).

Fix these problems.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
drivers/gpu/drm/rockchip/rockchip_drm_vop.c