drm/amdgpu: gtt offset should be 64 bit

Submitted by Cui, Flora on Sept. 14, 2016, 9:13 a.m.

Details

Message ID 1473844418-22724-1-git-send-email-Flora.Cui@amd.com
State New
Headers show
Series "drm/amdgpu: gtt offset should be 64 bit" ( rev: 1 ) in AMD X.Org drivers

Not browsing as part of any series.

Commit Message

Cui, Flora Sept. 14, 2016, 9:13 a.m.
Change-Id: I05618a472b1ebf381575d02e226264609bf4db7f
Signed-off-by: Flora Cui <Flora.Cui@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu.h      |  4 ++--
 drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | 10 ++++------
 2 files changed, 6 insertions(+), 8 deletions(-)

Patch hide | download patch | download mbox

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index 282e00d..f07f1c9 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -619,9 +619,9 @@  int amdgpu_gart_table_vram_pin(struct amdgpu_device *adev);
 void amdgpu_gart_table_vram_unpin(struct amdgpu_device *adev);
 int amdgpu_gart_init(struct amdgpu_device *adev);
 void amdgpu_gart_fini(struct amdgpu_device *adev);
-void amdgpu_gart_unbind(struct amdgpu_device *adev, unsigned offset,
+void amdgpu_gart_unbind(struct amdgpu_device *adev, u64 offset,
 			int pages);
-int amdgpu_gart_bind(struct amdgpu_device *adev, unsigned offset,
+int amdgpu_gart_bind(struct amdgpu_device *adev, u64 offset,
 		     int pages, struct page **pagelist,
 		     dma_addr_t *dma_addr, uint32_t flags);
 int amdgpu_ttm_recover_gart(struct amdgpu_device *adev);
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
index 921bce2..7968f77 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
@@ -221,11 +221,10 @@  void amdgpu_gart_table_vram_free(struct amdgpu_device *adev)
  * Unbinds the requested pages from the gart page table and
  * replaces them with the dummy page (all asics).
  */
-void amdgpu_gart_unbind(struct amdgpu_device *adev, unsigned offset,
+void amdgpu_gart_unbind(struct amdgpu_device *adev, u64 offset,
 			int pages)
 {
-	unsigned t;
-	unsigned p;
+	u64 t, p;
 	int i, j;
 	u64 page_base;
 	uint32_t flags = AMDGPU_PTE_SYSTEM;
@@ -268,12 +267,11 @@  void amdgpu_gart_unbind(struct amdgpu_device *adev, unsigned offset,
  * (all asics).
  * Returns 0 for success, -EINVAL for failure.
  */
-int amdgpu_gart_bind(struct amdgpu_device *adev, unsigned offset,
+int amdgpu_gart_bind(struct amdgpu_device *adev, u64 offset,
 		     int pages, struct page **pagelist, dma_addr_t *dma_addr,
 		     uint32_t flags)
 {
-	unsigned t;
-	unsigned p;
+	uint64_t t, p;
 	uint64_t page_base;
 	int i, j;
 

Comments

Am 14.09.2016 um 11:13 schrieb Flora Cui:
> Change-Id: I05618a472b1ebf381575d02e226264609bf4db7f
> Signed-off-by: Flora Cui <Flora.Cui@amd.com>

Didn't Felix came up with the same patch a few weeks ago?

Anyway the fix is clearly not committed. Patch is Reviewed-by: Christian 
König <christian.koenig@amd.com>.

Regards,
Christian.

> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu.h      |  4 ++--
>   drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | 10 ++++------
>   2 files changed, 6 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> index 282e00d..f07f1c9 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> @@ -619,9 +619,9 @@ int amdgpu_gart_table_vram_pin(struct amdgpu_device *adev);
>   void amdgpu_gart_table_vram_unpin(struct amdgpu_device *adev);
>   int amdgpu_gart_init(struct amdgpu_device *adev);
>   void amdgpu_gart_fini(struct amdgpu_device *adev);
> -void amdgpu_gart_unbind(struct amdgpu_device *adev, unsigned offset,
> +void amdgpu_gart_unbind(struct amdgpu_device *adev, u64 offset,
>   			int pages);
> -int amdgpu_gart_bind(struct amdgpu_device *adev, unsigned offset,
> +int amdgpu_gart_bind(struct amdgpu_device *adev, u64 offset,
>   		     int pages, struct page **pagelist,
>   		     dma_addr_t *dma_addr, uint32_t flags);
>   int amdgpu_ttm_recover_gart(struct amdgpu_device *adev);
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
> index 921bce2..7968f77 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
> @@ -221,11 +221,10 @@ void amdgpu_gart_table_vram_free(struct amdgpu_device *adev)
>    * Unbinds the requested pages from the gart page table and
>    * replaces them with the dummy page (all asics).
>    */
> -void amdgpu_gart_unbind(struct amdgpu_device *adev, unsigned offset,
> +void amdgpu_gart_unbind(struct amdgpu_device *adev, u64 offset,
>   			int pages)
>   {
> -	unsigned t;
> -	unsigned p;
> +	u64 t, p;
>   	int i, j;
>   	u64 page_base;
>   	uint32_t flags = AMDGPU_PTE_SYSTEM;
> @@ -268,12 +267,11 @@ void amdgpu_gart_unbind(struct amdgpu_device *adev, unsigned offset,
>    * (all asics).
>    * Returns 0 for success, -EINVAL for failure.
>    */
> -int amdgpu_gart_bind(struct amdgpu_device *adev, unsigned offset,
> +int amdgpu_gart_bind(struct amdgpu_device *adev, u64 offset,
>   		     int pages, struct page **pagelist, dma_addr_t *dma_addr,
>   		     uint32_t flags)
>   {
> -	unsigned t;
> -	unsigned p;
> +	uint64_t t, p;
>   	uint64_t page_base;
>   	int i, j;
>
yes. i just find it out. it's commit 9040cf0a in 4.6 branch yet not in
4.7. please ignore this commit.

On Wed, Sep 14, 2016 at 11:32:32AM +0200, Christian König wrote:
> Am 14.09.2016 um 11:13 schrieb Flora Cui:
> >Change-Id: I05618a472b1ebf381575d02e226264609bf4db7f
> >Signed-off-by: Flora Cui <Flora.Cui@amd.com>
> 
> Didn't Felix came up with the same patch a few weeks ago?
> 
> Anyway the fix is clearly not committed. Patch is Reviewed-by: Christian
> König <christian.koenig@amd.com>.
> 
> Regards,
> Christian.
> 
> >---
> >  drivers/gpu/drm/amd/amdgpu/amdgpu.h      |  4 ++--
> >  drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | 10 ++++------
> >  2 files changed, 6 insertions(+), 8 deletions(-)
> >
> >diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> >index 282e00d..f07f1c9 100644
> >--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> >+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> >@@ -619,9 +619,9 @@ int amdgpu_gart_table_vram_pin(struct amdgpu_device *adev);
> >  void amdgpu_gart_table_vram_unpin(struct amdgpu_device *adev);
> >  int amdgpu_gart_init(struct amdgpu_device *adev);
> >  void amdgpu_gart_fini(struct amdgpu_device *adev);
> >-void amdgpu_gart_unbind(struct amdgpu_device *adev, unsigned offset,
> >+void amdgpu_gart_unbind(struct amdgpu_device *adev, u64 offset,
> >  			int pages);
> >-int amdgpu_gart_bind(struct amdgpu_device *adev, unsigned offset,
> >+int amdgpu_gart_bind(struct amdgpu_device *adev, u64 offset,
> >  		     int pages, struct page **pagelist,
> >  		     dma_addr_t *dma_addr, uint32_t flags);
> >  int amdgpu_ttm_recover_gart(struct amdgpu_device *adev);
> >diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
> >index 921bce2..7968f77 100644
> >--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
> >+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
> >@@ -221,11 +221,10 @@ void amdgpu_gart_table_vram_free(struct amdgpu_device *adev)
> >   * Unbinds the requested pages from the gart page table and
> >   * replaces them with the dummy page (all asics).
> >   */
> >-void amdgpu_gart_unbind(struct amdgpu_device *adev, unsigned offset,
> >+void amdgpu_gart_unbind(struct amdgpu_device *adev, u64 offset,
> >  			int pages)
> >  {
> >-	unsigned t;
> >-	unsigned p;
> >+	u64 t, p;
> >  	int i, j;
> >  	u64 page_base;
> >  	uint32_t flags = AMDGPU_PTE_SYSTEM;
> >@@ -268,12 +267,11 @@ void amdgpu_gart_unbind(struct amdgpu_device *adev, unsigned offset,
> >   * (all asics).
> >   * Returns 0 for success, -EINVAL for failure.
> >   */
> >-int amdgpu_gart_bind(struct amdgpu_device *adev, unsigned offset,
> >+int amdgpu_gart_bind(struct amdgpu_device *adev, u64 offset,
> >  		     int pages, struct page **pagelist, dma_addr_t *dma_addr,
> >  		     uint32_t flags)
> >  {
> >-	unsigned t;
> >-	unsigned p;
> >+	uint64_t t, p;
> >  	uint64_t page_base;
> >  	int i, j;
> 
>