mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-23 04:34:11 +08:00
drm/radeon/kms: clean up gart dummy page handling
As per Konrad's original patch, the dummy page used by the gart code and allocated in radeon_gart_init() was not freed properly in radeon_gart_fini(). At the same time r6xx and newer allocated and freed the dummy page on their own. So to do Konrad's patch one better, just remove the allocation and freeing of the dummy page in the r6xx, 7xx, evergreen, and ni code and allocate and free in the gart_init/fini() functions for all asics. Cc: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Acked-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
d85023a3cd
commit
92656d707e
@ -3036,9 +3036,6 @@ int evergreen_init(struct radeon_device *rdev)
|
|||||||
{
|
{
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
r = radeon_dummy_page_init(rdev);
|
|
||||||
if (r)
|
|
||||||
return r;
|
|
||||||
/* This don't do much */
|
/* This don't do much */
|
||||||
r = radeon_gem_init(rdev);
|
r = radeon_gem_init(rdev);
|
||||||
if (r)
|
if (r)
|
||||||
@ -3150,7 +3147,6 @@ void evergreen_fini(struct radeon_device *rdev)
|
|||||||
radeon_atombios_fini(rdev);
|
radeon_atombios_fini(rdev);
|
||||||
kfree(rdev->bios);
|
kfree(rdev->bios);
|
||||||
rdev->bios = NULL;
|
rdev->bios = NULL;
|
||||||
radeon_dummy_page_fini(rdev);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void evergreen_pcie_gen2_enable(struct radeon_device *rdev)
|
static void evergreen_pcie_gen2_enable(struct radeon_device *rdev)
|
||||||
|
@ -2509,9 +2509,6 @@ int r600_init(struct radeon_device *rdev)
|
|||||||
{
|
{
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
r = radeon_dummy_page_init(rdev);
|
|
||||||
if (r)
|
|
||||||
return r;
|
|
||||||
if (r600_debugfs_mc_info_init(rdev)) {
|
if (r600_debugfs_mc_info_init(rdev)) {
|
||||||
DRM_ERROR("Failed to register debugfs file for mc !\n");
|
DRM_ERROR("Failed to register debugfs file for mc !\n");
|
||||||
}
|
}
|
||||||
@ -2625,7 +2622,6 @@ void r600_fini(struct radeon_device *rdev)
|
|||||||
radeon_atombios_fini(rdev);
|
radeon_atombios_fini(rdev);
|
||||||
kfree(rdev->bios);
|
kfree(rdev->bios);
|
||||||
rdev->bios = NULL;
|
rdev->bios = NULL;
|
||||||
radeon_dummy_page_fini(rdev);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -285,4 +285,6 @@ void radeon_gart_fini(struct radeon_device *rdev)
|
|||||||
rdev->gart.pages = NULL;
|
rdev->gart.pages = NULL;
|
||||||
rdev->gart.pages_addr = NULL;
|
rdev->gart.pages_addr = NULL;
|
||||||
rdev->gart.ttm_alloced = NULL;
|
rdev->gart.ttm_alloced = NULL;
|
||||||
|
|
||||||
|
radeon_dummy_page_fini(rdev);
|
||||||
}
|
}
|
||||||
|
@ -1255,9 +1255,6 @@ int rv770_init(struct radeon_device *rdev)
|
|||||||
{
|
{
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
r = radeon_dummy_page_init(rdev);
|
|
||||||
if (r)
|
|
||||||
return r;
|
|
||||||
/* This don't do much */
|
/* This don't do much */
|
||||||
r = radeon_gem_init(rdev);
|
r = radeon_gem_init(rdev);
|
||||||
if (r)
|
if (r)
|
||||||
@ -1372,7 +1369,6 @@ void rv770_fini(struct radeon_device *rdev)
|
|||||||
radeon_atombios_fini(rdev);
|
radeon_atombios_fini(rdev);
|
||||||
kfree(rdev->bios);
|
kfree(rdev->bios);
|
||||||
rdev->bios = NULL;
|
rdev->bios = NULL;
|
||||||
radeon_dummy_page_fini(rdev);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rv770_pcie_gen2_enable(struct radeon_device *rdev)
|
static void rv770_pcie_gen2_enable(struct radeon_device *rdev)
|
||||||
|
Loading…
Reference in New Issue
Block a user