Re: [PATCH] drm/amdgpu/psp: move TMR to cpu invisible vram region
OH, STOP! Good that we talked about that because that would have caused quite a bunch of trouble. The case in amdgpu_ttm_init() would break, we intentionally reserve memory at the beginning of the visible space here to avoid problem switching between VBIOS and KMS. I suggest to first add a dummy pointer to amdgpu_ttm_init() to fix this before you apply this patch. Regards, Christian. Am 19.08.19 um 10:16 schrieb Yin, Tianci (Rico): Thanks very much Christian! I scanned the whole code, only two functions pass in NULL cpu_addr, amdgpu_ttm_init() and gfx_v9_0_ngg_create_buf(), but the related BOs are not further mapped for cpu access. so I think this change is safe. From: Christian König <mailto:ckoenig.leichtzumer...@gmail.com> Sent: Monday, August 19, 2019 16:07 To: Yin, Tianci (Rico) <mailto:tianci@amd.com>; amd-gfx@lists.freedesktop.org<mailto:amd-gfx@lists.freedesktop.org> <mailto:amd-gfx@lists.freedesktop.org> Cc: Xiao, Jack <mailto:jack.x...@amd.com>; Yuan, Xiaojie <mailto:xiaojie.y...@amd.com>; Zhang, Hawking <mailto:hawking.zh...@amd.com> Subject: Re: [PATCH] drm/amdgpu/psp: move TMR to cpu invisible vram region Am 19.08.19 um 10:05 schrieb Tianci Yin: > From: "Tianci.Yin" <mailto:tianci@amd.com> > > so that more visible vram can be available for umd. > > Signed-off-by: Tianci.Yin <mailto:tianci@amd.com> Assuming that you checked that we don't have other users who are using amdgpu_bo_create_kernel() without a CPU pointer this patch is Reviewed-by: Christian König <mailto:christian.koe...@amd.com>. > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 5 +++-- > drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c| 4 ++-- > drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h| 1 - > 3 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > index 1059771..0476790 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > @@ -246,8 +246,9 @@ int amdgpu_bo_create_reserved(struct amdgpu_device *adev, >bp.size = size; >bp.byte_align = align; >bp.domain = domain; > - bp.flags = AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED | > - AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS; > + bp.flags = cpu_addr ? AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED > + : AMDGPU_GEM_CREATE_NO_CPU_ACCESS; > + bp.flags |= AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS; >bp.type = ttm_bo_type_kernel; >bp.resv = NULL; > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c > index 7715c0d..5e7fbbe 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c > @@ -264,7 +264,7 @@ static int psp_tmr_init(struct psp_context *psp) > >ret = amdgpu_bo_create_kernel(psp->adev, tmr_size, PSP_TMR_SIZE, > AMDGPU_GEM_DOMAIN_VRAM, > - &psp->tmr_bo, &psp->tmr_mc_addr, > &psp->tmr_buf); > + &psp->tmr_bo, &psp->tmr_mc_addr, NULL); > >return ret; > } > @@ -1215,7 +1215,7 @@ static int psp_hw_fini(void *handle) > >psp_ring_destroy(psp, PSP_RING_TYPE__KM); > > - amdgpu_bo_free_kernel(&psp->tmr_bo, &psp->tmr_mc_addr, &psp->tmr_buf); > + amdgpu_bo_free_kernel(&psp->tmr_bo, &psp->tmr_mc_addr, NULL); >amdgpu_bo_free_kernel(&psp->fw_pri_bo, > &psp->fw_pri_mc_addr, &psp->fw_pri_buf); >amdgpu_bo_free_kernel(&psp->fence_buf_bo, > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h > b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h > index 0029fa2..48b057d 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h > @@ -172,7 +172,6 @@ struct psp_context >/* tmr buffer */ >struct amdgpu_bo*tmr_bo; >uint64_ttmr_mc_addr; > - void*tmr_buf; > >/* asd firmware and buffer */ >const struct firmware *asd_fw; ___ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx
Re: [PATCH] drm/amdgpu/psp: move TMR to cpu invisible vram region
Thanks very much Christian! I scanned the whole code, only two functions pass in NULL cpu_addr, amdgpu_ttm_init() and gfx_v9_0_ngg_create_buf(), but the related BOs are not further mapped for cpu access. so I think this change is safe. From: Christian König Sent: Monday, August 19, 2019 16:07 To: Yin, Tianci (Rico) ; amd-gfx@lists.freedesktop.org Cc: Xiao, Jack ; Yuan, Xiaojie ; Zhang, Hawking Subject: Re: [PATCH] drm/amdgpu/psp: move TMR to cpu invisible vram region Am 19.08.19 um 10:05 schrieb Tianci Yin: > From: "Tianci.Yin" > > so that more visible vram can be available for umd. > > Signed-off-by: Tianci.Yin Assuming that you checked that we don't have other users who are using amdgpu_bo_create_kernel() without a CPU pointer this patch is Reviewed-by: Christian König . > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 5 +++-- > drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c| 4 ++-- > drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h| 1 - > 3 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > index 1059771..0476790 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > @@ -246,8 +246,9 @@ int amdgpu_bo_create_reserved(struct amdgpu_device *adev, >bp.size = size; >bp.byte_align = align; >bp.domain = domain; > - bp.flags = AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED | > - AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS; > + bp.flags = cpu_addr ? AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED > + : AMDGPU_GEM_CREATE_NO_CPU_ACCESS; > + bp.flags |= AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS; >bp.type = ttm_bo_type_kernel; >bp.resv = NULL; > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c > index 7715c0d..5e7fbbe 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c > @@ -264,7 +264,7 @@ static int psp_tmr_init(struct psp_context *psp) > >ret = amdgpu_bo_create_kernel(psp->adev, tmr_size, PSP_TMR_SIZE, > AMDGPU_GEM_DOMAIN_VRAM, > - &psp->tmr_bo, &psp->tmr_mc_addr, > &psp->tmr_buf); > + &psp->tmr_bo, &psp->tmr_mc_addr, NULL); > >return ret; > } > @@ -1215,7 +1215,7 @@ static int psp_hw_fini(void *handle) > >psp_ring_destroy(psp, PSP_RING_TYPE__KM); > > - amdgpu_bo_free_kernel(&psp->tmr_bo, &psp->tmr_mc_addr, &psp->tmr_buf); > + amdgpu_bo_free_kernel(&psp->tmr_bo, &psp->tmr_mc_addr, NULL); >amdgpu_bo_free_kernel(&psp->fw_pri_bo, > &psp->fw_pri_mc_addr, &psp->fw_pri_buf); >amdgpu_bo_free_kernel(&psp->fence_buf_bo, > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h > b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h > index 0029fa2..48b057d 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h > @@ -172,7 +172,6 @@ struct psp_context >/* tmr buffer */ >struct amdgpu_bo*tmr_bo; >uint64_ttmr_mc_addr; > - void*tmr_buf; > >/* asd firmware and buffer */ >const struct firmware *asd_fw; ___ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx
Re: [PATCH] drm/amdgpu/psp: move TMR to cpu invisible vram region
Am 19.08.19 um 10:05 schrieb Tianci Yin: From: "Tianci.Yin" so that more visible vram can be available for umd. Signed-off-by: Tianci.Yin Assuming that you checked that we don't have other users who are using amdgpu_bo_create_kernel() without a CPU pointer this patch is Reviewed-by: Christian König . --- drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 5 +++-- drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c| 4 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h| 1 - 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c index 1059771..0476790 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c @@ -246,8 +246,9 @@ int amdgpu_bo_create_reserved(struct amdgpu_device *adev, bp.size = size; bp.byte_align = align; bp.domain = domain; - bp.flags = AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED | - AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS; + bp.flags = cpu_addr ? AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED + : AMDGPU_GEM_CREATE_NO_CPU_ACCESS; + bp.flags |= AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS; bp.type = ttm_bo_type_kernel; bp.resv = NULL; diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c index 7715c0d..5e7fbbe 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c @@ -264,7 +264,7 @@ static int psp_tmr_init(struct psp_context *psp) ret = amdgpu_bo_create_kernel(psp->adev, tmr_size, PSP_TMR_SIZE, AMDGPU_GEM_DOMAIN_VRAM, - &psp->tmr_bo, &psp->tmr_mc_addr, &psp->tmr_buf); + &psp->tmr_bo, &psp->tmr_mc_addr, NULL); return ret; } @@ -1215,7 +1215,7 @@ static int psp_hw_fini(void *handle) psp_ring_destroy(psp, PSP_RING_TYPE__KM); - amdgpu_bo_free_kernel(&psp->tmr_bo, &psp->tmr_mc_addr, &psp->tmr_buf); + amdgpu_bo_free_kernel(&psp->tmr_bo, &psp->tmr_mc_addr, NULL); amdgpu_bo_free_kernel(&psp->fw_pri_bo, &psp->fw_pri_mc_addr, &psp->fw_pri_buf); amdgpu_bo_free_kernel(&psp->fence_buf_bo, diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h index 0029fa2..48b057d 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h @@ -172,7 +172,6 @@ struct psp_context /* tmr buffer */ struct amdgpu_bo*tmr_bo; uint64_ttmr_mc_addr; - void*tmr_buf; /* asd firmware and buffer */ const struct firmware *asd_fw; ___ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx
[PATCH] drm/amdgpu/psp: move TMR to cpu invisible vram region
From: "Tianci.Yin" so that more visible vram can be available for umd. Signed-off-by: Tianci.Yin --- drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 5 +++-- drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c| 4 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h| 1 - 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c index 1059771..0476790 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c @@ -246,8 +246,9 @@ int amdgpu_bo_create_reserved(struct amdgpu_device *adev, bp.size = size; bp.byte_align = align; bp.domain = domain; - bp.flags = AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED | - AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS; + bp.flags = cpu_addr ? AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED + : AMDGPU_GEM_CREATE_NO_CPU_ACCESS; + bp.flags |= AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS; bp.type = ttm_bo_type_kernel; bp.resv = NULL; diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c index 7715c0d..5e7fbbe 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c @@ -264,7 +264,7 @@ static int psp_tmr_init(struct psp_context *psp) ret = amdgpu_bo_create_kernel(psp->adev, tmr_size, PSP_TMR_SIZE, AMDGPU_GEM_DOMAIN_VRAM, - &psp->tmr_bo, &psp->tmr_mc_addr, &psp->tmr_buf); + &psp->tmr_bo, &psp->tmr_mc_addr, NULL); return ret; } @@ -1215,7 +1215,7 @@ static int psp_hw_fini(void *handle) psp_ring_destroy(psp, PSP_RING_TYPE__KM); - amdgpu_bo_free_kernel(&psp->tmr_bo, &psp->tmr_mc_addr, &psp->tmr_buf); + amdgpu_bo_free_kernel(&psp->tmr_bo, &psp->tmr_mc_addr, NULL); amdgpu_bo_free_kernel(&psp->fw_pri_bo, &psp->fw_pri_mc_addr, &psp->fw_pri_buf); amdgpu_bo_free_kernel(&psp->fence_buf_bo, diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h index 0029fa2..48b057d 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h @@ -172,7 +172,6 @@ struct psp_context /* tmr buffer */ struct amdgpu_bo*tmr_bo; uint64_ttmr_mc_addr; - void*tmr_buf; /* asd firmware and buffer */ const struct firmware *asd_fw; -- 2.7.4 ___ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx
Re: [PATCH] drm/amdgpu/psp: move TMR to cpu invisible vram region
Thanks Christian, I'll improve the coding style. From: Christian K?nig Sent: Monday, August 19, 2019 15:39 To: Yin, Tianci (Rico) ; amd-gfx@lists.freedesktop.org Cc: Xiao, Jack ; Yuan, Xiaojie ; Zhang, Hawking Subject: Re: [PATCH] drm/amdgpu/psp: move TMR to cpu invisible vram region Am 19.08.19 um 09:34 schrieb Tianci Yin: > From: "Tianci.Yin" > > so that more visible vram can be available for ocl applications. > > Signed-off-by: Tianci.Yin > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 5 +++-- > drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c| 4 ++-- > drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h| 1 - > 3 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > index 1059771..ca35869 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > @@ -246,8 +246,9 @@ int amdgpu_bo_create_reserved(struct amdgpu_device *adev, >bp.size = size; >bp.byte_align = align; >bp.domain = domain; > - bp.flags = AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED | > - AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS; > + bp.flags = (cpu_addr)?AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED > + :AMDGPU_GEM_CREATE_NO_CPU_ACCESS; Coding style: You can drop the "()", but there should be spaces before and after the "?" and ":". And please double check that this change doesn't affect any other user of amdgpu_bo_create_kernel()/amdgpu_bo_create_reserved(). Apart from that looks good to me and is a nice improvement, Christian. > + bp.flags |= AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS; >bp.type = ttm_bo_type_kernel; >bp.resv = NULL; > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c > index 7715c0d..5e7fbbe 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c > @@ -264,7 +264,7 @@ static int psp_tmr_init(struct psp_context *psp) > >ret = amdgpu_bo_create_kernel(psp->adev, tmr_size, PSP_TMR_SIZE, > AMDGPU_GEM_DOMAIN_VRAM, > - &psp->tmr_bo, &psp->tmr_mc_addr, > &psp->tmr_buf); > + &psp->tmr_bo, &psp->tmr_mc_addr, NULL); > >return ret; > } > @@ -1215,7 +1215,7 @@ static int psp_hw_fini(void *handle) > >psp_ring_destroy(psp, PSP_RING_TYPE__KM); > > - amdgpu_bo_free_kernel(&psp->tmr_bo, &psp->tmr_mc_addr, &psp->tmr_buf); > + amdgpu_bo_free_kernel(&psp->tmr_bo, &psp->tmr_mc_addr, NULL); >amdgpu_bo_free_kernel(&psp->fw_pri_bo, > &psp->fw_pri_mc_addr, &psp->fw_pri_buf); >amdgpu_bo_free_kernel(&psp->fence_buf_bo, > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h > b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h > index 0029fa2..48b057d 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h > @@ -172,7 +172,6 @@ struct psp_context >/* tmr buffer */ >struct amdgpu_bo*tmr_bo; >uint64_ttmr_mc_addr; > - void*tmr_buf; > >/* asd firmware and buffer */ >const struct firmware *asd_fw; ___ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx
Re: [PATCH] drm/amdgpu/psp: move TMR to cpu invisible vram region
Am 19.08.19 um 09:34 schrieb Tianci Yin: From: "Tianci.Yin" so that more visible vram can be available for ocl applications. Signed-off-by: Tianci.Yin --- drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 5 +++-- drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c| 4 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h| 1 - 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c index 1059771..ca35869 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c @@ -246,8 +246,9 @@ int amdgpu_bo_create_reserved(struct amdgpu_device *adev, bp.size = size; bp.byte_align = align; bp.domain = domain; - bp.flags = AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED | - AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS; + bp.flags = (cpu_addr)?AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED + :AMDGPU_GEM_CREATE_NO_CPU_ACCESS; Coding style: You can drop the "()", but there should be spaces before and after the "?" and ":". And please double check that this change doesn't affect any other user of amdgpu_bo_create_kernel()/amdgpu_bo_create_reserved(). Apart from that looks good to me and is a nice improvement, Christian. + bp.flags |= AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS; bp.type = ttm_bo_type_kernel; bp.resv = NULL; diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c index 7715c0d..5e7fbbe 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c @@ -264,7 +264,7 @@ static int psp_tmr_init(struct psp_context *psp) ret = amdgpu_bo_create_kernel(psp->adev, tmr_size, PSP_TMR_SIZE, AMDGPU_GEM_DOMAIN_VRAM, - &psp->tmr_bo, &psp->tmr_mc_addr, &psp->tmr_buf); + &psp->tmr_bo, &psp->tmr_mc_addr, NULL); return ret; } @@ -1215,7 +1215,7 @@ static int psp_hw_fini(void *handle) psp_ring_destroy(psp, PSP_RING_TYPE__KM); - amdgpu_bo_free_kernel(&psp->tmr_bo, &psp->tmr_mc_addr, &psp->tmr_buf); + amdgpu_bo_free_kernel(&psp->tmr_bo, &psp->tmr_mc_addr, NULL); amdgpu_bo_free_kernel(&psp->fw_pri_bo, &psp->fw_pri_mc_addr, &psp->fw_pri_buf); amdgpu_bo_free_kernel(&psp->fence_buf_bo, diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h index 0029fa2..48b057d 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h @@ -172,7 +172,6 @@ struct psp_context /* tmr buffer */ struct amdgpu_bo*tmr_bo; uint64_ttmr_mc_addr; - void*tmr_buf; /* asd firmware and buffer */ const struct firmware *asd_fw; ___ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx
[PATCH] drm/amdgpu/psp: move TMR to cpu invisible vram region
From: "Tianci.Yin" so that more visible vram can be available for ocl applications. Signed-off-by: Tianci.Yin --- drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 5 +++-- drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c| 4 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h| 1 - 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c index 1059771..ca35869 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c @@ -246,8 +246,9 @@ int amdgpu_bo_create_reserved(struct amdgpu_device *adev, bp.size = size; bp.byte_align = align; bp.domain = domain; - bp.flags = AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED | - AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS; + bp.flags = (cpu_addr)?AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED + :AMDGPU_GEM_CREATE_NO_CPU_ACCESS; + bp.flags |= AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS; bp.type = ttm_bo_type_kernel; bp.resv = NULL; diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c index 7715c0d..5e7fbbe 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c @@ -264,7 +264,7 @@ static int psp_tmr_init(struct psp_context *psp) ret = amdgpu_bo_create_kernel(psp->adev, tmr_size, PSP_TMR_SIZE, AMDGPU_GEM_DOMAIN_VRAM, - &psp->tmr_bo, &psp->tmr_mc_addr, &psp->tmr_buf); + &psp->tmr_bo, &psp->tmr_mc_addr, NULL); return ret; } @@ -1215,7 +1215,7 @@ static int psp_hw_fini(void *handle) psp_ring_destroy(psp, PSP_RING_TYPE__KM); - amdgpu_bo_free_kernel(&psp->tmr_bo, &psp->tmr_mc_addr, &psp->tmr_buf); + amdgpu_bo_free_kernel(&psp->tmr_bo, &psp->tmr_mc_addr, NULL); amdgpu_bo_free_kernel(&psp->fw_pri_bo, &psp->fw_pri_mc_addr, &psp->fw_pri_buf); amdgpu_bo_free_kernel(&psp->fence_buf_bo, diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h index 0029fa2..48b057d 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h @@ -172,7 +172,6 @@ struct psp_context /* tmr buffer */ struct amdgpu_bo*tmr_bo; uint64_ttmr_mc_addr; - void*tmr_buf; /* asd firmware and buffer */ const struct firmware *asd_fw; -- 2.7.4 ___ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx