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