forked from Minki/linux
drm/radeon: fix modeset tear down code
The ordering caused problems. bug: https://bugs.freedesktop.org/show_bug.cgi?id=98200 Reviewed-and-Tested-by: Michel Dänzer <michel.daenzer@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
b0c80bd5d2
commit
9305ee6fe5
@ -1675,20 +1675,20 @@ int radeon_modeset_init(struct radeon_device *rdev)
|
|||||||
|
|
||||||
void radeon_modeset_fini(struct radeon_device *rdev)
|
void radeon_modeset_fini(struct radeon_device *rdev)
|
||||||
{
|
{
|
||||||
radeon_fbdev_fini(rdev);
|
if (rdev->mode_info.mode_config_initialized) {
|
||||||
|
drm_kms_helper_poll_fini(rdev->ddev);
|
||||||
|
radeon_hpd_fini(rdev);
|
||||||
|
drm_crtc_force_disable_all(rdev->ddev);
|
||||||
|
radeon_fbdev_fini(rdev);
|
||||||
|
radeon_afmt_fini(rdev);
|
||||||
|
drm_mode_config_cleanup(rdev->ddev);
|
||||||
|
rdev->mode_info.mode_config_initialized = false;
|
||||||
|
}
|
||||||
|
|
||||||
kfree(rdev->mode_info.bios_hardcoded_edid);
|
kfree(rdev->mode_info.bios_hardcoded_edid);
|
||||||
|
|
||||||
/* free i2c buses */
|
/* free i2c buses */
|
||||||
radeon_i2c_fini(rdev);
|
radeon_i2c_fini(rdev);
|
||||||
|
|
||||||
if (rdev->mode_info.mode_config_initialized) {
|
|
||||||
radeon_afmt_fini(rdev);
|
|
||||||
drm_kms_helper_poll_fini(rdev->ddev);
|
|
||||||
radeon_hpd_fini(rdev);
|
|
||||||
drm_crtc_force_disable_all(rdev->ddev);
|
|
||||||
drm_mode_config_cleanup(rdev->ddev);
|
|
||||||
rdev->mode_info.mode_config_initialized = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool is_hdtv_mode(const struct drm_display_mode *mode)
|
static bool is_hdtv_mode(const struct drm_display_mode *mode)
|
||||||
|
Loading…
Reference in New Issue
Block a user