linux/drivers/gpu/drm/tegra
Thierry Reding 1d1e6fe9b5 drm/tegra: Fix error handling cleanup
The DRM driver's ->load() implementation didn't do a good job (no job at
all really) cleaning up on failure. Fix that by undoing any prior setup
when an error occurs. This requires a bit of rework to make it possible
to clean up fbdev midway.

This was tested by injecting errors at various points during the
initialization sequence and verifying that error cleanup didn't crash
and no memory leaked (using kmemleak).

Reported-by: Stéphane Marchesin <marcheu@chromium.org>
Reported-by: Sean Paul <seanpaul@chromium.org>
Reviewed-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2014-11-13 16:14:48 +01:00
..
dc.c drm/tegra: dc: Add powergate support 2014-11-13 16:11:59 +01:00
dc.h drm/tegra: Implement more tiling modes 2014-08-04 10:07:34 +02:00
dpaux.c drm/tegra: Renaming DP training vswing pre emph defines 2014-09-03 11:05:41 +02:00
dpaux.h drm/tegra: dp: Support address-only I2C-over-AUX transactions 2014-04-08 16:12:36 +02:00
drm.c drm/tegra: Fix error handling cleanup 2014-11-13 16:14:48 +01:00
drm.h drm/tegra: Fix error handling cleanup 2014-11-13 16:14:48 +01:00
dsi.c drm/tegra: dsi: Set up PHY_TIMING & BTA_TIMING registers earlier 2014-11-13 16:12:44 +01:00
dsi.h drm/tegra: dsi: Implement host transfers 2014-11-13 16:12:36 +01:00
fb.c drm/tegra: Fix error handling cleanup 2014-11-13 16:14:48 +01:00
gem.c drm/tegra: gem: Use dma_mmap_writecombine() 2014-11-13 16:14:48 +01:00
gem.h drm: Extract <drm/drm_gem.h> 2014-09-24 11:43:41 +10:00
gr2d.c drm/tegra: add MODULE_DEVICE_TABLEs 2014-08-04 10:07:39 +02:00
gr2d.h drm/tegra: Use symbolic names for gr2d registers 2013-10-31 09:55:44 +01:00
gr3d.c ARM: SoC cleanups for 3.17 2014-08-08 11:00:26 -07:00
gr3d.h drm/tegra: Add 3D support 2013-10-31 09:55:45 +01:00
hdmi.c drm/tegra: add MODULE_DEVICE_TABLEs 2014-08-04 10:07:39 +02:00
hdmi.h drm/tegra: hdmi - Disable LVDS mode 2014-06-05 23:09:25 +02:00
Kconfig drm/tegra: Depend on COMMON_CLK 2014-11-13 16:10:27 +01:00
Makefile drm/tegra: Remove host1x drm_bus implementation 2014-06-05 23:14:46 +02:00
mipi-phy.c drm/tegra: Relicense under GPL v2 2014-04-04 09:12:51 +02:00
mipi-phy.h drm/tegra: Relicense under GPL v2 2014-04-04 09:12:51 +02:00
output.c drm/tegra: DPMS off/on in encoder prepare/commit 2014-11-13 16:12:04 +01:00
rgb.c drm/tegra: dc - Compute shift clock divider in output drivers 2014-06-05 23:09:33 +02:00
sor.c ARM: SoC cleanups for 3.17 2014-08-08 11:00:26 -07:00
sor.h drm/tegra: sor - Add CRC debugfs support 2014-06-05 23:09:17 +02:00