diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2016-11-03 17:47:51 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-11-18 10:51:49 +0100 |
commit | 9d76a886eb2f0c1f26a717925d73bc7a64afa8d4 (patch) | |
tree | 65d598a74152ef47b046b4099ef5c35dea2f7b50 | |
parent | 6e652d18d73d16b959cf6d55c7341912d656f1e9 (diff) | |
download | lwn-9d76a886eb2f0c1f26a717925d73bc7a64afa8d4.tar.gz lwn-9d76a886eb2f0c1f26a717925d73bc7a64afa8d4.zip |
drm/amdgpu: fix crash in acp_hw_fini
commit 757124d95c42bb579d67df51e51789849929ee31 upstream.
On CZ/ST systems with AZ rather than ACP audio, we need to bail
early in hw_fini since there is nothing to do.
bug: https://bugs.freedesktop.org/show_bug.cgi?id=98276
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c index 892d60fb225b..2057683f7b59 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c @@ -395,9 +395,12 @@ static int acp_hw_fini(void *handle) { int i, ret; struct device *dev; - struct amdgpu_device *adev = (struct amdgpu_device *)handle; + /* return early if no ACP */ + if (!adev->acp.acp_genpd) + return 0; + for (i = 0; i < ACP_DEVS ; i++) { dev = get_mfd_cell_dev(adev->acp.acp_cell[i].name, i); ret = pm_genpd_remove_device(&adev->acp.acp_genpd->gpd, dev); |