[PATCH 2/8] drm/amdgpu: fix 32-bit build warning

2018-05-26 Thread Arnd Bergmann
Casting a pointer to a 64-bit type causes a warning on 32-bit targets:

drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c:473:24: error: cast from 
pointer to integer of different size [-Werror=pointer-to-int-cast]
  lower_32_bits((uint64_t)wptr));
^
drivers/gpu/drm/amd/amdgpu/amdgpu.h:1701:53: note: in definition of macro 
'WREG32'
 #define WREG32(reg, v) amdgpu_mm_wreg(adev, (reg), (v), 0)
 ^
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c:473:10: note: in expansion of 
macro 'lower_32_bits'
  lower_32_bits((uint64_t)wptr));
  ^

The correct method is to cast to 'uintptr_t'.

Fixes: d5a114a6c5f7 ("drm/amdgpu: Add GFXv9 kfd2kgd interface functions")
Signed-off-by: Arnd Bergmann 
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c
index 8f37991df61b..f0c0d3953f69 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c
@@ -470,9 +470,9 @@ static int kgd_hqd_load(struct kgd_dev *kgd, void *mqd, 
uint32_t pipe_id,
WREG32(SOC15_REG_OFFSET(GC, 0, mmCP_HQD_PQ_WPTR_HI),
   upper_32_bits(guessed_wptr));
WREG32(SOC15_REG_OFFSET(GC, 0, mmCP_HQD_PQ_WPTR_POLL_ADDR),
-  lower_32_bits((uint64_t)wptr));
+  lower_32_bits((uintptr_t)wptr));
WREG32(SOC15_REG_OFFSET(GC, 0, mmCP_HQD_PQ_WPTR_POLL_ADDR_HI),
-  upper_32_bits((uint64_t)wptr));
+  upper_32_bits((uintptr_t)wptr));
WREG32(SOC15_REG_OFFSET(GC, 0, mmCP_PQ_WPTR_POLL_CNTL1),
   get_queue_mask(adev, pipe_id, queue_id));
}
-- 
2.9.0

___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx


Re: drm/amdgpu: Add helper function to get buffer domain

2018-05-26 Thread Deucher, Alexander
Both patches are:

Reviewed-by: Alex Deucher 


From: Sharma, Deepak
Sent: Friday, May 25, 2018 8:19:26 PM
To: amd-gfx@lists.freedesktop.org; Deucher, Alexander; mic...@daenzer.net; 
Koenig, Christian
Subject: Re: drm/amdgpu: Add helper function to get buffer domain

If look fine , please give rb for this and
https://patchwork.freedesktop.org/patch/224850/

Thanks,
Deepak

On 05/25/2018 05:12 PM, Deepak Sharma wrote:
> Move logic of getting supported domain to a helper
> function
>
> Signed-off-by: Deepak Sharma 
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c| 10 +++---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 17 -
>   drivers/gpu/drm/amd/amdgpu/amdgpu_object.h |  3 ++-
>   3 files changed, 17 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> index 63758db5e2ea..556406a44da3 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> @@ -750,19 +750,15 @@ int amdgpu_mode_dumb_create(struct drm_file *file_priv,
>struct amdgpu_device *adev = dev->dev_private;
>struct drm_gem_object *gobj;
>uint32_t handle;
> - u32 domain = amdgpu_display_supported_domains(adev);
> + u32 domain;
>int r;
>
>args->pitch = amdgpu_align_pitch(adev, args->width,
> DIV_ROUND_UP(args->bpp, 8), 0);
>args->size = (u64)args->pitch * args->height;
>args->size = ALIGN(args->size, PAGE_SIZE);
> - if (domain == (AMDGPU_GEM_DOMAIN_VRAM | AMDGPU_GEM_DOMAIN_GTT)) {
> - domain = AMDGPU_GEM_DOMAIN_VRAM;
> - if (adev->gmc.real_vram_size <= AMDGPU_SG_THRESHOLD)
> - domain = AMDGPU_GEM_DOMAIN_GTT;
> - }
> -
> + domain = amdgpu_bo_get_preferred_pin_domain(adev,
> + amdgpu_display_supported_domains(adev));
>r = amdgpu_gem_object_create(adev, args->size, 0, domain,
> AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED,
> false, NULL, );
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> index 6a9e46ae7f0a..5e4e1bd90383 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
> @@ -703,11 +703,7 @@ int amdgpu_bo_pin_restricted(struct amdgpu_bo *bo, u32 
> domain,
>/* This assumes only APU display buffers are pinned with (VRAM|GTT).
> * See function amdgpu_display_supported_domains()
> */
> - if (domain == (AMDGPU_GEM_DOMAIN_VRAM | AMDGPU_GEM_DOMAIN_GTT)) {
> - domain = AMDGPU_GEM_DOMAIN_VRAM;
> - if (adev->gmc.real_vram_size <= AMDGPU_SG_THRESHOLD)
> - domain = AMDGPU_GEM_DOMAIN_GTT;
> - }
> + domain = amdgpu_bo_get_preferred_pin_domain(adev, domain);
>
>if (bo->pin_count) {
>uint32_t mem_type = bo->tbo.mem.mem_type;
> @@ -1066,3 +1062,14 @@ u64 amdgpu_bo_gpu_offset(struct amdgpu_bo *bo)
>
>return bo->tbo.offset;
>   }
> +
> +uint32_t amdgpu_bo_get_preferred_pin_domain(struct amdgpu_device *adev,
> + uint32_t domain)
> +{
> + if (domain == (AMDGPU_GEM_DOMAIN_VRAM | AMDGPU_GEM_DOMAIN_GTT)) {
> + domain = AMDGPU_GEM_DOMAIN_VRAM;
> + if (adev->gmc.real_vram_size <= AMDGPU_SG_THRESHOLD)
> + domain = AMDGPU_GEM_DOMAIN_GTT;
> + }
> + return domain;
> +}
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
> index 540e03fa159f..731748033878 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h
> @@ -289,7 +289,8 @@ int amdgpu_bo_restore_from_shadow(struct amdgpu_device 
> *adev,
>  struct reservation_object *resv,
>  struct dma_fence **fence,
>  bool direct);
> -
> +uint32_t amdgpu_bo_get_preferred_pin_domain(struct amdgpu_device *adev,
> + uint32_t domain);
>
>   /*
>* sub allocation
>
___
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx