ACK/Cmnt: [PATCH 1/1][SRU][B] drm/amdgpu: fix&cleanups for wb_clear
Stefan Bader
stefan.bader at canonical.com
Thu Apr 18 13:55:43 UTC 2019
On 17.04.19 08:27, You-Sheng Yang wrote:
> From: Monk Liu <Monk.Liu at amd.com>
>
> BugLink: https://bugs.launchpad.net/bugs/1825074
>
> fix:
> should do right shift on wb before clearing
>
> cleanups:
> 1,should memset all wb buffer
> 2,set max wb number to 128 (total 4KB) is big enough
>
> Signed-off-by: Monk Liu <Monk.Liu at amd.com>
> Acked-by: Alex Deucher <alexander.deucher at amd.com>
> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
> (cherry picked from commit 73469585510d5161368c899b7eacd58c824b2b24)
> Signed-off-by: You-Sheng Yang <vicamo.yang at canonical.com>
Acked-by: Stefan Bader <stefan.bader at canonical.com>
> ---
What about Cosmic and Disco?
-Stefan
> drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 +-
> drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 5 +++--
> 2 files changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> index c90346191e5ac..9d0891a146a17 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> @@ -1155,7 +1155,7 @@ static inline void amdgpu_set_ib_value(struct amdgpu_cs_parser *p,
> /*
> * Writeback
> */
> -#define AMDGPU_MAX_WB 512 /* Reserve at most 512 WB slots for amdgpu-owned rings. */
> +#define AMDGPU_MAX_WB 128 /* Reserve at most 128 WB slots for amdgpu-owned rings. */
>
> struct amdgpu_wb {
> struct amdgpu_bo *wb_obj;
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index 1e3461ec43919..ade8d0eaccb04 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -526,7 +526,7 @@ static int amdgpu_wb_init(struct amdgpu_device *adev)
> memset(&adev->wb.used, 0, sizeof(adev->wb.used));
>
> /* clear wb memory */
> - memset((char *)adev->wb.wb, 0, AMDGPU_MAX_WB * sizeof(uint32_t));
> + memset((char *)adev->wb.wb, 0, AMDGPU_MAX_WB * sizeof(uint32_t) * 8);
> }
>
> return 0;
> @@ -564,8 +564,9 @@ int amdgpu_wb_get(struct amdgpu_device *adev, u32 *wb)
> */
> void amdgpu_wb_free(struct amdgpu_device *adev, u32 wb)
> {
> + wb >>= 3;
> if (wb < adev->wb.num_wb)
> - __clear_bit(wb >> 3, adev->wb.used);
> + __clear_bit(wb, adev->wb.used);
> }
>
> /**
>
More information about the kernel-team
mailing list