RE: [PATCH] drm/amdgpu: remove unused and mostly unimplemented CGS functions

2017-04-26 Thread Deucher, Alexander
> -Original Message-
> From: amd-gfx [mailto:amd-gfx-boun...@lists.freedesktop.org] On Behalf
> Of Christian König
> Sent: Wednesday, April 26, 2017 9:14 AM
> To: amd-gfx@lists.freedesktop.org
> Subject: [PATCH] drm/amdgpu: remove unused and mostly unimplemented
> CGS functions
> 
> From: Christian König 
> 
> Those functions are all unused and some not even implemented.
> 
> Signed-off-by: Christian König 

I think some of this is used by the ACP driver (cgs_get_pci_resource for 
example).  Make sure that is enabled in your build.  You might also want to 
check with Felix for KFD.

Alex

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c  | 233 
>  drivers/gpu/drm/amd/include/cgs_common.h | 303 -
> --
>  2 files changed, 536 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
> index a1a2d44..93f5dcc 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
> @@ -42,82 +42,6 @@ struct amdgpu_cgs_device {
>   struct amdgpu_device *adev =\
>   ((struct amdgpu_cgs_device *)cgs_device)->adev
> 
> -static int amdgpu_cgs_gpu_mem_info(struct cgs_device *cgs_device, enum
> cgs_gpu_mem_type type,
> -uint64_t *mc_start, uint64_t *mc_size,
> -uint64_t *mem_size)
> -{
> - CGS_FUNC_ADEV;
> - switch(type) {
> - case CGS_GPU_MEM_TYPE__VISIBLE_CONTIG_FB:
> - case CGS_GPU_MEM_TYPE__VISIBLE_FB:
> - *mc_start = 0;
> - *mc_size = adev->mc.visible_vram_size;
> - *mem_size = adev->mc.visible_vram_size - adev-
> >vram_pin_size;
> - break;
> - case CGS_GPU_MEM_TYPE__INVISIBLE_CONTIG_FB:
> - case CGS_GPU_MEM_TYPE__INVISIBLE_FB:
> - *mc_start = adev->mc.visible_vram_size;
> - *mc_size = adev->mc.real_vram_size - adev-
> >mc.visible_vram_size;
> - *mem_size = *mc_size;
> - break;
> - case CGS_GPU_MEM_TYPE__GART_CACHEABLE:
> - case CGS_GPU_MEM_TYPE__GART_WRITECOMBINE:
> - *mc_start = adev->mc.gtt_start;
> - *mc_size = adev->mc.gtt_size;
> - *mem_size = adev->mc.gtt_size - adev->gart_pin_size;
> - break;
> - default:
> - return -EINVAL;
> - }
> -
> - return 0;
> -}
> -
> -static int amdgpu_cgs_gmap_kmem(struct cgs_device *cgs_device, void
> *kmem,
> - uint64_t size,
> - uint64_t min_offset, uint64_t max_offset,
> - cgs_handle_t *kmem_handle, uint64_t
> *mcaddr)
> -{
> - CGS_FUNC_ADEV;
> - int ret;
> - struct amdgpu_bo *bo;
> - struct page *kmem_page = vmalloc_to_page(kmem);
> - int npages = ALIGN(size, PAGE_SIZE) >> PAGE_SHIFT;
> -
> - struct sg_table *sg = drm_prime_pages_to_sg(&kmem_page,
> npages);
> - ret = amdgpu_bo_create(adev, size, PAGE_SIZE, false,
> -AMDGPU_GEM_DOMAIN_GTT, 0, sg, NULL,
> &bo);
> - if (ret)
> - return ret;
> - ret = amdgpu_bo_reserve(bo, false);
> - if (unlikely(ret != 0))
> - return ret;
> -
> - /* pin buffer into GTT */
> - ret = amdgpu_bo_pin_restricted(bo,
> AMDGPU_GEM_DOMAIN_GTT,
> -min_offset, max_offset, mcaddr);
> - amdgpu_bo_unreserve(bo);
> -
> - *kmem_handle = (cgs_handle_t)bo;
> - return ret;
> -}
> -
> -static int amdgpu_cgs_gunmap_kmem(struct cgs_device *cgs_device,
> cgs_handle_t kmem_handle)
> -{
> - struct amdgpu_bo *obj = (struct amdgpu_bo *)kmem_handle;
> -
> - if (obj) {
> - int r = amdgpu_bo_reserve(obj, false);
> - if (likely(r == 0)) {
> - amdgpu_bo_unpin(obj);
> - amdgpu_bo_unreserve(obj);
> - }
> - amdgpu_bo_unref(&obj);
> -
> - }
> - return 0;
> -}
> -
>  static int amdgpu_cgs_alloc_gpu_mem(struct cgs_device *cgs_device,
>   enum cgs_gpu_mem_type type,
>   uint64_t size, uint64_t align,
> @@ -349,96 +273,6 @@ static void amdgpu_cgs_write_ind_register(struct
> cgs_device *cgs_device,
>   WARN(1, "Invalid indirect register space");
>  }
> 
> -static uint8_t amdgpu_cgs_read_pci_config_byte(struct cgs_device
> *cgs_device, unsigned addr)
> -{
> - CGS_FUNC_ADEV;
> - uint8_t val;
> - int ret = pci_read_config_byte(adev->pdev, addr, &val);
> - if (WARN(ret, "pci_read_config_byte error"))
> - return 0;
> - return val;
> -}
> -
> -static uint16_t amdgpu_cgs_read_pci_config_word(struct cgs_device
> *cgs_device, unsigned addr)
> -{
> - CGS_FUNC_ADEV;
> - uint16_t val;
> - int ret = pci_read_config_word(adev->pdev, addr, &val);
> - if (WARN(ret, "pci_read_config_word error"))
> 

Re: [PATCH] drm/amdgpu: remove unused and mostly unimplemented CGS functions

2017-04-27 Thread Christian König

Am 26.04.2017 um 18:36 schrieb Deucher, Alexander:

-Original Message-
From: amd-gfx [mailto:amd-gfx-boun...@lists.freedesktop.org] On Behalf
Of Christian König
Sent: Wednesday, April 26, 2017 9:14 AM
To: amd-gfx@lists.freedesktop.org
Subject: [PATCH] drm/amdgpu: remove unused and mostly unimplemented
CGS functions

From: Christian König 

Those functions are all unused and some not even implemented.

Signed-off-by: Christian König 

I think some of this is used by the ACP driver (cgs_get_pci_resource for 
example).  Make sure that is enabled in your build.  You might also want to 
check with Felix for KFD.


Good point. I was only searching outside of the amdgpu subdirectory for 
users. Why is a file which is part of amdgpu even using this?


v2 is on the list.

Christian.



Alex


---
  drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c  | 233 
  drivers/gpu/drm/amd/include/cgs_common.h | 303 -
--
  2 files changed, 536 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
index a1a2d44..93f5dcc 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
@@ -42,82 +42,6 @@ struct amdgpu_cgs_device {
struct amdgpu_device *adev =\
((struct amdgpu_cgs_device *)cgs_device)->adev

-static int amdgpu_cgs_gpu_mem_info(struct cgs_device *cgs_device, enum
cgs_gpu_mem_type type,
-  uint64_t *mc_start, uint64_t *mc_size,
-  uint64_t *mem_size)
-{
-   CGS_FUNC_ADEV;
-   switch(type) {
-   case CGS_GPU_MEM_TYPE__VISIBLE_CONTIG_FB:
-   case CGS_GPU_MEM_TYPE__VISIBLE_FB:
-   *mc_start = 0;
-   *mc_size = adev->mc.visible_vram_size;
-   *mem_size = adev->mc.visible_vram_size - adev-

vram_pin_size;

-   break;
-   case CGS_GPU_MEM_TYPE__INVISIBLE_CONTIG_FB:
-   case CGS_GPU_MEM_TYPE__INVISIBLE_FB:
-   *mc_start = adev->mc.visible_vram_size;
-   *mc_size = adev->mc.real_vram_size - adev-

mc.visible_vram_size;

-   *mem_size = *mc_size;
-   break;
-   case CGS_GPU_MEM_TYPE__GART_CACHEABLE:
-   case CGS_GPU_MEM_TYPE__GART_WRITECOMBINE:
-   *mc_start = adev->mc.gtt_start;
-   *mc_size = adev->mc.gtt_size;
-   *mem_size = adev->mc.gtt_size - adev->gart_pin_size;
-   break;
-   default:
-   return -EINVAL;
-   }
-
-   return 0;
-}
-
-static int amdgpu_cgs_gmap_kmem(struct cgs_device *cgs_device, void
*kmem,
-   uint64_t size,
-   uint64_t min_offset, uint64_t max_offset,
-   cgs_handle_t *kmem_handle, uint64_t
*mcaddr)
-{
-   CGS_FUNC_ADEV;
-   int ret;
-   struct amdgpu_bo *bo;
-   struct page *kmem_page = vmalloc_to_page(kmem);
-   int npages = ALIGN(size, PAGE_SIZE) >> PAGE_SHIFT;
-
-   struct sg_table *sg = drm_prime_pages_to_sg(&kmem_page,
npages);
-   ret = amdgpu_bo_create(adev, size, PAGE_SIZE, false,
-  AMDGPU_GEM_DOMAIN_GTT, 0, sg, NULL,
&bo);
-   if (ret)
-   return ret;
-   ret = amdgpu_bo_reserve(bo, false);
-   if (unlikely(ret != 0))
-   return ret;
-
-   /* pin buffer into GTT */
-   ret = amdgpu_bo_pin_restricted(bo,
AMDGPU_GEM_DOMAIN_GTT,
-  min_offset, max_offset, mcaddr);
-   amdgpu_bo_unreserve(bo);
-
-   *kmem_handle = (cgs_handle_t)bo;
-   return ret;
-}
-
-static int amdgpu_cgs_gunmap_kmem(struct cgs_device *cgs_device,
cgs_handle_t kmem_handle)
-{
-   struct amdgpu_bo *obj = (struct amdgpu_bo *)kmem_handle;
-
-   if (obj) {
-   int r = amdgpu_bo_reserve(obj, false);
-   if (likely(r == 0)) {
-   amdgpu_bo_unpin(obj);
-   amdgpu_bo_unreserve(obj);
-   }
-   amdgpu_bo_unref(&obj);
-
-   }
-   return 0;
-}
-
  static int amdgpu_cgs_alloc_gpu_mem(struct cgs_device *cgs_device,
enum cgs_gpu_mem_type type,
uint64_t size, uint64_t align,
@@ -349,96 +273,6 @@ static void amdgpu_cgs_write_ind_register(struct
cgs_device *cgs_device,
WARN(1, "Invalid indirect register space");
  }

-static uint8_t amdgpu_cgs_read_pci_config_byte(struct cgs_device
*cgs_device, unsigned addr)
-{
-   CGS_FUNC_ADEV;
-   uint8_t val;
-   int ret = pci_read_config_byte(adev->pdev, addr, &val);
-   if (WARN(ret, "pci_read_config_byte error"))
-   return 0;
-   return val;
-}
-
-static uint16_t amdgpu_cgs_read_pci_config_word(struct cgs_device
*cgs_device, unsigned addr)
-{
-   CGS_FUNC_ADEV;
-   uint16_t val;
-   int ret = 

RE: [PATCH] drm/amdgpu: remove unused and mostly unimplemented CGS functions

2017-04-27 Thread Kuehling, Felix
KFD doesn't use CGS.

Regards,
  Felix

-Original Message-
From: amd-gfx [mailto:amd-gfx-boun...@lists.freedesktop.org] On Behalf Of 
Deucher, Alexander
Sent: Wednesday, April 26, 2017 12:36 PM
To: 'Christian König'; amd-gfx@lists.freedesktop.org
Subject: RE: [PATCH] drm/amdgpu: remove unused and mostly unimplemented CGS 
functions

> -Original Message-
> From: amd-gfx [mailto:amd-gfx-boun...@lists.freedesktop.org] On Behalf 
> Of Christian König
> Sent: Wednesday, April 26, 2017 9:14 AM
> To: amd-gfx@lists.freedesktop.org
> Subject: [PATCH] drm/amdgpu: remove unused and mostly unimplemented 
> CGS functions
> 
> From: Christian König 
> 
> Those functions are all unused and some not even implemented.
> 
> Signed-off-by: Christian König 

I think some of this is used by the ACP driver (cgs_get_pci_resource for 
example).  Make sure that is enabled in your build.  You might also want to 
check with Felix for KFD.

Alex

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c  | 233 
>   drivers/gpu/drm/amd/include/cgs_common.h | 
> 303 -
> --
>  2 files changed, 536 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
> index a1a2d44..93f5dcc 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
> @@ -42,82 +42,6 @@ struct amdgpu_cgs_device {
>   struct amdgpu_device *adev =\
>   ((struct amdgpu_cgs_device *)cgs_device)->adev
> 
> -static int amdgpu_cgs_gpu_mem_info(struct cgs_device *cgs_device, 
> enum cgs_gpu_mem_type type,
> -uint64_t *mc_start, uint64_t *mc_size,
> -uint64_t *mem_size)
> -{
> - CGS_FUNC_ADEV;
> - switch(type) {
> - case CGS_GPU_MEM_TYPE__VISIBLE_CONTIG_FB:
> - case CGS_GPU_MEM_TYPE__VISIBLE_FB:
> - *mc_start = 0;
> - *mc_size = adev->mc.visible_vram_size;
> - *mem_size = adev->mc.visible_vram_size - adev-
> >vram_pin_size;
> - break;
> - case CGS_GPU_MEM_TYPE__INVISIBLE_CONTIG_FB:
> - case CGS_GPU_MEM_TYPE__INVISIBLE_FB:
> - *mc_start = adev->mc.visible_vram_size;
> - *mc_size = adev->mc.real_vram_size - adev-
> >mc.visible_vram_size;
> - *mem_size = *mc_size;
> - break;
> - case CGS_GPU_MEM_TYPE__GART_CACHEABLE:
> - case CGS_GPU_MEM_TYPE__GART_WRITECOMBINE:
> - *mc_start = adev->mc.gtt_start;
> - *mc_size = adev->mc.gtt_size;
> - *mem_size = adev->mc.gtt_size - adev->gart_pin_size;
> - break;
> - default:
> - return -EINVAL;
> - }
> -
> - return 0;
> -}
> -
> -static int amdgpu_cgs_gmap_kmem(struct cgs_device *cgs_device, void 
> *kmem,
> - uint64_t size,
> - uint64_t min_offset, uint64_t max_offset,
> - cgs_handle_t *kmem_handle, uint64_t
> *mcaddr)
> -{
> - CGS_FUNC_ADEV;
> - int ret;
> - struct amdgpu_bo *bo;
> - struct page *kmem_page = vmalloc_to_page(kmem);
> - int npages = ALIGN(size, PAGE_SIZE) >> PAGE_SHIFT;
> -
> - struct sg_table *sg = drm_prime_pages_to_sg(&kmem_page,
> npages);
> - ret = amdgpu_bo_create(adev, size, PAGE_SIZE, false,
> -AMDGPU_GEM_DOMAIN_GTT, 0, sg, NULL,
> &bo);
> - if (ret)
> - return ret;
> - ret = amdgpu_bo_reserve(bo, false);
> - if (unlikely(ret != 0))
> - return ret;
> -
> - /* pin buffer into GTT */
> - ret = amdgpu_bo_pin_restricted(bo,
> AMDGPU_GEM_DOMAIN_GTT,
> -min_offset, max_offset, mcaddr);
> - amdgpu_bo_unreserve(bo);
> -
> - *kmem_handle = (cgs_handle_t)bo;
> - return ret;
> -}
> -
> -static int amdgpu_cgs_gunmap_kmem(struct cgs_device *cgs_device, 
> cgs_handle_t kmem_handle) -{
> - struct amdgpu_bo *obj = (struct amdgpu_bo *)kmem_handle;
> -
> - if (obj) {
> - int r = amdgpu_bo_reserve(obj, false);
> - if (likely(r == 0)) {
> - amdgpu_bo_unpin(obj);
> - amdgpu_bo_unreserve(obj);
> - }
> - amdgpu_bo_unref(&obj);
> -
> - }
> - return 0;
> -}
> -
>  static int amdgpu_cgs_alloc_gpu_mem(struct cgs_device *cgs_device,
>   enum cgs_gpu_mem_type type,
>   uint64_

Re: [PATCH] drm/amdgpu: remove unused and mostly unimplemented CGS functions v2

2017-04-27 Thread Alex Deucher
On Thu, Apr 27, 2017 at 9:22 AM, Christian König
 wrote:
> From: Christian König 
>
> Those functions are all unused and some not even implemented.
>
> v2: keep cgs_get_pci_resource it is used by the ACP driver.
>
> Signed-off-by: Christian König 

Reviewed-by: Alex Deucher 

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c  | 198 ---
>  drivers/gpu/drm/amd/include/cgs_common.h | 270 
> ---
>  2 files changed, 468 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
> index a1a2d44..9d22ebd 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
> @@ -42,82 +42,6 @@ struct amdgpu_cgs_device {
> struct amdgpu_device *adev =\
> ((struct amdgpu_cgs_device *)cgs_device)->adev
>
> -static int amdgpu_cgs_gpu_mem_info(struct cgs_device *cgs_device, enum 
> cgs_gpu_mem_type type,
> -  uint64_t *mc_start, uint64_t *mc_size,
> -  uint64_t *mem_size)
> -{
> -   CGS_FUNC_ADEV;
> -   switch(type) {
> -   case CGS_GPU_MEM_TYPE__VISIBLE_CONTIG_FB:
> -   case CGS_GPU_MEM_TYPE__VISIBLE_FB:
> -   *mc_start = 0;
> -   *mc_size = adev->mc.visible_vram_size;
> -   *mem_size = adev->mc.visible_vram_size - adev->vram_pin_size;
> -   break;
> -   case CGS_GPU_MEM_TYPE__INVISIBLE_CONTIG_FB:
> -   case CGS_GPU_MEM_TYPE__INVISIBLE_FB:
> -   *mc_start = adev->mc.visible_vram_size;
> -   *mc_size = adev->mc.real_vram_size - 
> adev->mc.visible_vram_size;
> -   *mem_size = *mc_size;
> -   break;
> -   case CGS_GPU_MEM_TYPE__GART_CACHEABLE:
> -   case CGS_GPU_MEM_TYPE__GART_WRITECOMBINE:
> -   *mc_start = adev->mc.gtt_start;
> -   *mc_size = adev->mc.gtt_size;
> -   *mem_size = adev->mc.gtt_size - adev->gart_pin_size;
> -   break;
> -   default:
> -   return -EINVAL;
> -   }
> -
> -   return 0;
> -}
> -
> -static int amdgpu_cgs_gmap_kmem(struct cgs_device *cgs_device, void *kmem,
> -   uint64_t size,
> -   uint64_t min_offset, uint64_t max_offset,
> -   cgs_handle_t *kmem_handle, uint64_t *mcaddr)
> -{
> -   CGS_FUNC_ADEV;
> -   int ret;
> -   struct amdgpu_bo *bo;
> -   struct page *kmem_page = vmalloc_to_page(kmem);
> -   int npages = ALIGN(size, PAGE_SIZE) >> PAGE_SHIFT;
> -
> -   struct sg_table *sg = drm_prime_pages_to_sg(&kmem_page, npages);
> -   ret = amdgpu_bo_create(adev, size, PAGE_SIZE, false,
> -  AMDGPU_GEM_DOMAIN_GTT, 0, sg, NULL, &bo);
> -   if (ret)
> -   return ret;
> -   ret = amdgpu_bo_reserve(bo, false);
> -   if (unlikely(ret != 0))
> -   return ret;
> -
> -   /* pin buffer into GTT */
> -   ret = amdgpu_bo_pin_restricted(bo, AMDGPU_GEM_DOMAIN_GTT,
> -  min_offset, max_offset, mcaddr);
> -   amdgpu_bo_unreserve(bo);
> -
> -   *kmem_handle = (cgs_handle_t)bo;
> -   return ret;
> -}
> -
> -static int amdgpu_cgs_gunmap_kmem(struct cgs_device *cgs_device, 
> cgs_handle_t kmem_handle)
> -{
> -   struct amdgpu_bo *obj = (struct amdgpu_bo *)kmem_handle;
> -
> -   if (obj) {
> -   int r = amdgpu_bo_reserve(obj, false);
> -   if (likely(r == 0)) {
> -   amdgpu_bo_unpin(obj);
> -   amdgpu_bo_unreserve(obj);
> -   }
> -   amdgpu_bo_unref(&obj);
> -
> -   }
> -   return 0;
> -}
> -
>  static int amdgpu_cgs_alloc_gpu_mem(struct cgs_device *cgs_device,
> enum cgs_gpu_mem_type type,
> uint64_t size, uint64_t align,
> @@ -349,62 +273,6 @@ static void amdgpu_cgs_write_ind_register(struct 
> cgs_device *cgs_device,
> WARN(1, "Invalid indirect register space");
>  }
>
> -static uint8_t amdgpu_cgs_read_pci_config_byte(struct cgs_device 
> *cgs_device, unsigned addr)
> -{
> -   CGS_FUNC_ADEV;
> -   uint8_t val;
> -   int ret = pci_read_config_byte(adev->pdev, addr, &val);
> -   if (WARN(ret, "pci_read_config_byte error"))
> -   return 0;
> -   return val;
> -}
> -
> -static uint16_t amdgpu_cgs_read_pci_config_word(struct cgs_device 
> *cgs_device, unsigned addr)
> -{
> -   CGS_FUNC_ADEV;
> -   uint16_t val;
> -   int ret = pci_read_config_word(adev->pdev, addr, &val);
> -   if (WARN(ret, "pci_read_config_word error"))
> -   return 0;
> -   return val;
> -}
> -
> -static uint32_t amdgpu_cgs_read_pci_config_dword(struct cgs_device 
> *cgs_device,
> -