* [PATCH 1/1] drm/amdgpu: drop setting buffer funcs in sdma442
@ 2024-03-15 9:16 Le Ma
2024-03-15 9:22 ` Zhang, Hawking
2024-03-15 10:13 ` Lazar, Lijo
0 siblings, 2 replies; 6+ messages in thread
From: Le Ma @ 2024-03-15 9:16 UTC (permalink / raw)
To: amd-gfx; +Cc: hawking.zhang, Asher.Song, alexander.deucher, Le Ma
To fix the entity rq NULL issue. This setting has been moved to upper level.
Fixes b70438004a14 ("drm/amdgpu: move buffer funcs setting up a level")
Signed-off-by: Le Ma <le.ma@amd.com>
---
drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c | 20 +-------------------
1 file changed, 1 insertion(+), 19 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c b/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
index eaa4f5f49949..589a734982a7 100644
--- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
+++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
@@ -431,16 +431,11 @@ static void sdma_v4_4_2_inst_gfx_stop(struct amdgpu_device *adev,
struct amdgpu_ring *sdma[AMDGPU_MAX_SDMA_INSTANCES];
u32 doorbell_offset, doorbell;
u32 rb_cntl, ib_cntl;
- int i, unset = 0;
+ int i;
for_each_inst(i, inst_mask) {
sdma[i] = &adev->sdma.instance[i].ring;
- if ((adev->mman.buffer_funcs_ring == sdma[i]) && unset != 1) {
- amdgpu_ttm_set_buffer_funcs_status(adev, false);
- unset = 1;
- }
-
rb_cntl = RREG32_SDMA(i, regSDMA_GFX_RB_CNTL);
rb_cntl = REG_SET_FIELD(rb_cntl, SDMA_GFX_RB_CNTL, RB_ENABLE, 0);
WREG32_SDMA(i, regSDMA_GFX_RB_CNTL, rb_cntl);
@@ -490,17 +485,10 @@ static void sdma_v4_4_2_inst_page_stop(struct amdgpu_device *adev,
struct amdgpu_ring *sdma[AMDGPU_MAX_SDMA_INSTANCES];
u32 rb_cntl, ib_cntl;
int i;
- bool unset = false;
for_each_inst(i, inst_mask) {
sdma[i] = &adev->sdma.instance[i].page;
- if ((adev->mman.buffer_funcs_ring == sdma[i]) &&
- (!unset)) {
- amdgpu_ttm_set_buffer_funcs_status(adev, false);
- unset = true;
- }
-
rb_cntl = RREG32_SDMA(i, regSDMA_PAGE_RB_CNTL);
rb_cntl = REG_SET_FIELD(rb_cntl, SDMA_PAGE_RB_CNTL,
RB_ENABLE, 0);
@@ -950,13 +938,7 @@ static int sdma_v4_4_2_inst_start(struct amdgpu_device *adev,
r = amdgpu_ring_test_helper(page);
if (r)
return r;
-
- if (adev->mman.buffer_funcs_ring == page)
- amdgpu_ttm_set_buffer_funcs_status(adev, true);
}
-
- if (adev->mman.buffer_funcs_ring == ring)
- amdgpu_ttm_set_buffer_funcs_status(adev, true);
}
return r;
--
2.43.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* RE: [PATCH 1/1] drm/amdgpu: drop setting buffer funcs in sdma442
2024-03-15 9:16 [PATCH 1/1] drm/amdgpu: drop setting buffer funcs in sdma442 Le Ma
@ 2024-03-15 9:22 ` Zhang, Hawking
2024-03-15 10:13 ` Lazar, Lijo
1 sibling, 0 replies; 6+ messages in thread
From: Zhang, Hawking @ 2024-03-15 9:22 UTC (permalink / raw)
To: Ma, Le, amd-gfx@lists.freedesktop.org; +Cc: Song, Asher, Deucher, Alexander
[AMD Official Use Only - General]
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Regards,
Hawking
-----Original Message-----
From: Ma, Le <Le.Ma@amd.com>
Sent: Friday, March 15, 2024 17:16
To: amd-gfx@lists.freedesktop.org
Cc: Zhang, Hawking <Hawking.Zhang@amd.com>; Song, Asher <Asher.Song@amd.com>; Deucher, Alexander <Alexander.Deucher@amd.com>; Ma, Le <Le.Ma@amd.com>
Subject: [PATCH 1/1] drm/amdgpu: drop setting buffer funcs in sdma442
To fix the entity rq NULL issue. This setting has been moved to upper level.
Fixes b70438004a14 ("drm/amdgpu: move buffer funcs setting up a level")
Signed-off-by: Le Ma <le.ma@amd.com>
---
drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c | 20 +-------------------
1 file changed, 1 insertion(+), 19 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c b/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
index eaa4f5f49949..589a734982a7 100644
--- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
+++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
@@ -431,16 +431,11 @@ static void sdma_v4_4_2_inst_gfx_stop(struct amdgpu_device *adev,
struct amdgpu_ring *sdma[AMDGPU_MAX_SDMA_INSTANCES];
u32 doorbell_offset, doorbell;
u32 rb_cntl, ib_cntl;
- int i, unset = 0;
+ int i;
for_each_inst(i, inst_mask) {
sdma[i] = &adev->sdma.instance[i].ring;
- if ((adev->mman.buffer_funcs_ring == sdma[i]) && unset != 1) {
- amdgpu_ttm_set_buffer_funcs_status(adev, false);
- unset = 1;
- }
-
rb_cntl = RREG32_SDMA(i, regSDMA_GFX_RB_CNTL);
rb_cntl = REG_SET_FIELD(rb_cntl, SDMA_GFX_RB_CNTL, RB_ENABLE, 0);
WREG32_SDMA(i, regSDMA_GFX_RB_CNTL, rb_cntl); @@ -490,17 +485,10 @@ static void sdma_v4_4_2_inst_page_stop(struct amdgpu_device *adev,
struct amdgpu_ring *sdma[AMDGPU_MAX_SDMA_INSTANCES];
u32 rb_cntl, ib_cntl;
int i;
- bool unset = false;
for_each_inst(i, inst_mask) {
sdma[i] = &adev->sdma.instance[i].page;
- if ((adev->mman.buffer_funcs_ring == sdma[i]) &&
- (!unset)) {
- amdgpu_ttm_set_buffer_funcs_status(adev, false);
- unset = true;
- }
-
rb_cntl = RREG32_SDMA(i, regSDMA_PAGE_RB_CNTL);
rb_cntl = REG_SET_FIELD(rb_cntl, SDMA_PAGE_RB_CNTL,
RB_ENABLE, 0);
@@ -950,13 +938,7 @@ static int sdma_v4_4_2_inst_start(struct amdgpu_device *adev,
r = amdgpu_ring_test_helper(page);
if (r)
return r;
-
- if (adev->mman.buffer_funcs_ring == page)
- amdgpu_ttm_set_buffer_funcs_status(adev, true);
}
-
- if (adev->mman.buffer_funcs_ring == ring)
- amdgpu_ttm_set_buffer_funcs_status(adev, true);
}
return r;
--
2.43.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 1/1] drm/amdgpu: drop setting buffer funcs in sdma442
2024-03-15 9:16 [PATCH 1/1] drm/amdgpu: drop setting buffer funcs in sdma442 Le Ma
2024-03-15 9:22 ` Zhang, Hawking
@ 2024-03-15 10:13 ` Lazar, Lijo
2024-03-15 10:19 ` Lazar, Lijo
2024-03-15 12:15 ` Ma, Le
1 sibling, 2 replies; 6+ messages in thread
From: Lazar, Lijo @ 2024-03-15 10:13 UTC (permalink / raw)
To: Le Ma, amd-gfx; +Cc: hawking.zhang, Asher.Song, alexander.deucher
On 3/15/2024 2:46 PM, Le Ma wrote:
> To fix the entity rq NULL issue. This setting has been moved to upper level.
>
Need to call amdgpu_ttm_set_buffer_funcs_status(adev, true/false) in
mode-2 reset handlers as well.
Thanks,
Lijo
> Fixes b70438004a14 ("drm/amdgpu: move buffer funcs setting up a level")
>
> Signed-off-by: Le Ma <le.ma@amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c | 20 +-------------------
> 1 file changed, 1 insertion(+), 19 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c b/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
> index eaa4f5f49949..589a734982a7 100644
> --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
> +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
> @@ -431,16 +431,11 @@ static void sdma_v4_4_2_inst_gfx_stop(struct amdgpu_device *adev,
> struct amdgpu_ring *sdma[AMDGPU_MAX_SDMA_INSTANCES];
> u32 doorbell_offset, doorbell;
> u32 rb_cntl, ib_cntl;
> - int i, unset = 0;
> + int i;
>
> for_each_inst(i, inst_mask) {
> sdma[i] = &adev->sdma.instance[i].ring;
>
> - if ((adev->mman.buffer_funcs_ring == sdma[i]) && unset != 1) {
> - amdgpu_ttm_set_buffer_funcs_status(adev, false);
> - unset = 1;
> - }
> -
> rb_cntl = RREG32_SDMA(i, regSDMA_GFX_RB_CNTL);
> rb_cntl = REG_SET_FIELD(rb_cntl, SDMA_GFX_RB_CNTL, RB_ENABLE, 0);
> WREG32_SDMA(i, regSDMA_GFX_RB_CNTL, rb_cntl);
> @@ -490,17 +485,10 @@ static void sdma_v4_4_2_inst_page_stop(struct amdgpu_device *adev,
> struct amdgpu_ring *sdma[AMDGPU_MAX_SDMA_INSTANCES];
> u32 rb_cntl, ib_cntl;
> int i;
> - bool unset = false;
>
> for_each_inst(i, inst_mask) {
> sdma[i] = &adev->sdma.instance[i].page;
>
> - if ((adev->mman.buffer_funcs_ring == sdma[i]) &&
> - (!unset)) {
> - amdgpu_ttm_set_buffer_funcs_status(adev, false);
> - unset = true;
> - }
> -
> rb_cntl = RREG32_SDMA(i, regSDMA_PAGE_RB_CNTL);
> rb_cntl = REG_SET_FIELD(rb_cntl, SDMA_PAGE_RB_CNTL,
> RB_ENABLE, 0);
> @@ -950,13 +938,7 @@ static int sdma_v4_4_2_inst_start(struct amdgpu_device *adev,
> r = amdgpu_ring_test_helper(page);
> if (r)
> return r;
> -
> - if (adev->mman.buffer_funcs_ring == page)
> - amdgpu_ttm_set_buffer_funcs_status(adev, true);
> }
> -
> - if (adev->mman.buffer_funcs_ring == ring)
> - amdgpu_ttm_set_buffer_funcs_status(adev, true);
> }
>
> return r;
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/1] drm/amdgpu: drop setting buffer funcs in sdma442
2024-03-15 10:13 ` Lazar, Lijo
@ 2024-03-15 10:19 ` Lazar, Lijo
2024-03-15 12:15 ` Ma, Le
1 sibling, 0 replies; 6+ messages in thread
From: Lazar, Lijo @ 2024-03-15 10:19 UTC (permalink / raw)
To: Le Ma, amd-gfx; +Cc: hawking.zhang, Asher.Song, alexander.deucher
On 3/15/2024 3:43 PM, Lazar, Lijo wrote:
>
>
> On 3/15/2024 2:46 PM, Le Ma wrote:
>> To fix the entity rq NULL issue. This setting has been moved to upper level.
>>
>
> Need to call amdgpu_ttm_set_buffer_funcs_status(adev, true/false) in
> mode-2 reset handlers as well.
>
Please also check if it's required here as well -
amdgpu_device_ip_reinit_late_sriov()
Thanks,
Lijo
> Thanks,
> Lijo
>
>> Fixes b70438004a14 ("drm/amdgpu: move buffer funcs setting up a level")
>>
>> Signed-off-by: Le Ma <le.ma@amd.com>
>> ---
>> drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c | 20 +-------------------
>> 1 file changed, 1 insertion(+), 19 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c b/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
>> index eaa4f5f49949..589a734982a7 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
>> @@ -431,16 +431,11 @@ static void sdma_v4_4_2_inst_gfx_stop(struct amdgpu_device *adev,
>> struct amdgpu_ring *sdma[AMDGPU_MAX_SDMA_INSTANCES];
>> u32 doorbell_offset, doorbell;
>> u32 rb_cntl, ib_cntl;
>> - int i, unset = 0;
>> + int i;
>>
>> for_each_inst(i, inst_mask) {
>> sdma[i] = &adev->sdma.instance[i].ring;
>>
>> - if ((adev->mman.buffer_funcs_ring == sdma[i]) && unset != 1) {
>> - amdgpu_ttm_set_buffer_funcs_status(adev, false);
>> - unset = 1;
>> - }
>> -
>> rb_cntl = RREG32_SDMA(i, regSDMA_GFX_RB_CNTL);
>> rb_cntl = REG_SET_FIELD(rb_cntl, SDMA_GFX_RB_CNTL, RB_ENABLE, 0);
>> WREG32_SDMA(i, regSDMA_GFX_RB_CNTL, rb_cntl);
>> @@ -490,17 +485,10 @@ static void sdma_v4_4_2_inst_page_stop(struct amdgpu_device *adev,
>> struct amdgpu_ring *sdma[AMDGPU_MAX_SDMA_INSTANCES];
>> u32 rb_cntl, ib_cntl;
>> int i;
>> - bool unset = false;
>>
>> for_each_inst(i, inst_mask) {
>> sdma[i] = &adev->sdma.instance[i].page;
>>
>> - if ((adev->mman.buffer_funcs_ring == sdma[i]) &&
>> - (!unset)) {
>> - amdgpu_ttm_set_buffer_funcs_status(adev, false);
>> - unset = true;
>> - }
>> -
>> rb_cntl = RREG32_SDMA(i, regSDMA_PAGE_RB_CNTL);
>> rb_cntl = REG_SET_FIELD(rb_cntl, SDMA_PAGE_RB_CNTL,
>> RB_ENABLE, 0);
>> @@ -950,13 +938,7 @@ static int sdma_v4_4_2_inst_start(struct amdgpu_device *adev,
>> r = amdgpu_ring_test_helper(page);
>> if (r)
>> return r;
>> -
>> - if (adev->mman.buffer_funcs_ring == page)
>> - amdgpu_ttm_set_buffer_funcs_status(adev, true);
>> }
>> -
>> - if (adev->mman.buffer_funcs_ring == ring)
>> - amdgpu_ttm_set_buffer_funcs_status(adev, true);
>> }
>>
>> return r;
^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [PATCH 1/1] drm/amdgpu: drop setting buffer funcs in sdma442
2024-03-15 10:13 ` Lazar, Lijo
2024-03-15 10:19 ` Lazar, Lijo
@ 2024-03-15 12:15 ` Ma, Le
2024-03-15 12:23 ` Lazar, Lijo
1 sibling, 1 reply; 6+ messages in thread
From: Ma, Le @ 2024-03-15 12:15 UTC (permalink / raw)
To: Lazar, Lijo, amd-gfx@lists.freedesktop.org
Cc: Zhang, Hawking, Song, Asher, Deucher, Alexander
[-- Attachment #1: Type: text/plain, Size: 4251 bytes --]
[AMD Official Use Only - General]
> -----Original Message-----
> From: Lazar, Lijo <Lijo.Lazar@amd.com<mailto:Lijo.Lazar@amd.com>>
> Sent: Friday, March 15, 2024 6:14 PM
> To: Ma, Le <Le.Ma@amd.com<mailto:Le.Ma@amd.com>>; amd-gfx@lists.freedesktop.org<mailto:amd-gfx@lists.freedesktop.org>
> Cc: Zhang, Hawking <Hawking.Zhang@amd.com<mailto:Hawking.Zhang@amd.com>>; Song, Asher
> <Asher.Song@amd.com<mailto:Asher.Song@amd.com>>; Deucher, Alexander <Alexander.Deucher@amd.com<mailto:Alexander.Deucher@amd.com>>
> Subject: Re: [PATCH 1/1] drm/amdgpu: drop setting buffer funcs in sdma442
>
>
>
> On 3/15/2024 2:46 PM, Le Ma wrote:
> > To fix the entity rq NULL issue. This setting has been moved to upper level.
> >
>
> Need to call amdgpu_ttm_set_buffer_funcs_status(adev, true/false) in
> mode-2 reset handlers as well.
Thanks for pointing out this. I think we can make another separated patch to handle it for mode2 since this patch is for alignment purpose. Actually, the set_buffer_funcs will not be unset/set in reset case as the conditions below:
void amdgpu_ttm_set_buffer_funcs_status(struct amdgpu_device *adev, bool enable)
{
struct ttm_resource_manager *man = ttm_manager_type(&adev->mman.bdev, TTM_PL_VRAM);
uint64_t size;
int r;
if (!adev->mman.initialized || amdgpu_in_reset(adev) ||
adev->mman.buffer_funcs_enabled == enable || adev->gmc.is_app_apu)
return;
>
> Thanks,
> Lijo
>
> > Fixes b70438004a14 ("drm/amdgpu: move buffer funcs setting up a
> > level")
> >
> > Signed-off-by: Le Ma <le.ma@amd.com<mailto:le.ma@amd.com>>
> > ---
> > drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c | 20 +-------------------
> > 1 file changed, 1 insertion(+), 19 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
> > b/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
> > index eaa4f5f49949..589a734982a7 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
> > @@ -431,16 +431,11 @@ static void sdma_v4_4_2_inst_gfx_stop(struct
> amdgpu_device *adev,
> > struct amdgpu_ring *sdma[AMDGPU_MAX_SDMA_INSTANCES];
> > u32 doorbell_offset, doorbell;
> > u32 rb_cntl, ib_cntl;
> > - int i, unset = 0;
> > + int i;
> >
> > for_each_inst(i, inst_mask) {
> > sdma[i] = &adev->sdma.instance[i].ring;
> >
> > - if ((adev->mman.buffer_funcs_ring == sdma[i]) && unset != 1) {
> > - amdgpu_ttm_set_buffer_funcs_status(adev, false);
> > - unset = 1;
> > - }
> > -
> > rb_cntl = RREG32_SDMA(i, regSDMA_GFX_RB_CNTL);
> > rb_cntl = REG_SET_FIELD(rb_cntl, SDMA_GFX_RB_CNTL,
> RB_ENABLE, 0);
> > WREG32_SDMA(i, regSDMA_GFX_RB_CNTL, rb_cntl); @@ -
> 490,17 +485,10 @@
> > static void sdma_v4_4_2_inst_page_stop(struct amdgpu_device *adev,
> > struct amdgpu_ring *sdma[AMDGPU_MAX_SDMA_INSTANCES];
> > u32 rb_cntl, ib_cntl;
> > int i;
> > - bool unset = false;
> >
> > for_each_inst(i, inst_mask) {
> > sdma[i] = &adev->sdma.instance[i].page;
> >
> > - if ((adev->mman.buffer_funcs_ring == sdma[i]) &&
> > - (!unset)) {
> > - amdgpu_ttm_set_buffer_funcs_status(adev, false);
> > - unset = true;
> > - }
> > -
> > rb_cntl = RREG32_SDMA(i, regSDMA_PAGE_RB_CNTL);
> > rb_cntl = REG_SET_FIELD(rb_cntl, SDMA_PAGE_RB_CNTL,
> > RB_ENABLE, 0);
> > @@ -950,13 +938,7 @@ static int sdma_v4_4_2_inst_start(struct
> amdgpu_device *adev,
> > r = amdgpu_ring_test_helper(page);
> > if (r)
> > return r;
> > -
> > - if (adev->mman.buffer_funcs_ring == page)
> > - amdgpu_ttm_set_buffer_funcs_status(adev,
> true);
> > }
> > -
> > - if (adev->mman.buffer_funcs_ring == ring)
> > - amdgpu_ttm_set_buffer_funcs_status(adev, true);
> > }
> >
> > return r;
[-- Attachment #2: Type: text/html, Size: 17505 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/1] drm/amdgpu: drop setting buffer funcs in sdma442
2024-03-15 12:15 ` Ma, Le
@ 2024-03-15 12:23 ` Lazar, Lijo
0 siblings, 0 replies; 6+ messages in thread
From: Lazar, Lijo @ 2024-03-15 12:23 UTC (permalink / raw)
To: Ma, Le, amd-gfx@lists.freedesktop.org
Cc: Zhang, Hawking, Song, Asher, Deucher, Alexander
On 3/15/2024 5:45 PM, Ma, Le wrote:
> [AMD Official Use Only - General]
>
>
>
>> -----Original Message-----
>> From: Lazar, Lijo <_Lijo.Lazar@amd.com_ <mailto:Lijo.Lazar@amd.com>>
>> Sent: Friday, March 15, 2024 6:14 PM
>> To: Ma, Le <_Le.Ma@amd.com_ <mailto:Le.Ma@amd.com>>; _amd-gfx@lists.freedesktop.org_
> <mailto:amd-gfx@lists.freedesktop.org>
>> Cc: Zhang, Hawking <_Hawking.Zhang@amd.com_ <mailto:Hawking.Zhang@amd.com>>; Song, Asher
>> <_Asher.Song@amd.com_ <mailto:Asher.Song@amd.com>>; Deucher, Alexander
> <_Alexander.Deucher@amd.com_ <mailto:Alexander.Deucher@amd.com>>
>> Subject: Re: [PATCH 1/1] drm/amdgpu: drop setting buffer funcs in sdma442
>>
>>
>>
>> On 3/15/2024 2:46 PM, Le Ma wrote:
>> > To fix the entity rq NULL issue. This setting has been moved to upper level.
>> >
>>
>> Need to call amdgpu_ttm_set_buffer_funcs_status(adev, true/false) in
>> mode-2 reset handlers as well.
>
> Thanks for pointing out this. I think we can make another separated
> patch to handle it for mode2 since this patch is for alignment purpose.
> Actually, the set_buffer_funcs will not be unset/set in reset case as
> the conditions below:
>
> void amdgpu_ttm_set_buffer_funcs_status(struct amdgpu_device *adev, bool
> enable)
> {
> struct ttm_resource_manager *man =
> ttm_manager_type(&adev->mman.bdev, TTM_PL_VRAM);
> uint64_t size;
> int r;
>
> if (!adev->mman.initialized || amdgpu_in_reset(adev) ||
> adev->mman.buffer_funcs_enabled == enable ||
> adev->gmc.is_app_apu)
> return;
>
>
Thanks for clarifying.
In this case, we don't require that since reset() condition is set. I
saw amdgpu_ttm_set_buffer_funcs_status(tmp_adev, true) getting called in
amdgpu_do_asic_reset(), thought it was affected by reset.
Thanks,
Lijo
>>
>> Thanks,
>> Lijo
>>
>> > Fixes b70438004a14 ("drm/amdgpu: move buffer funcs setting up a
>> > level")
>> >
>> > Signed-off-by: Le Ma <_le.ma@amd.com_ <mailto:le.ma@amd.com>>
>> > ---
>> > drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c | 20 +-------------------
>> > 1 file changed, 1 insertion(+), 19 deletions(-)
>> >
>> > diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
>> > b/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
>> > index eaa4f5f49949..589a734982a7 100644
>> > --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
>> > +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
>> > @@ -431,16 +431,11 @@ static void sdma_v4_4_2_inst_gfx_stop(struct
>> amdgpu_device *adev,
>> > struct amdgpu_ring *sdma[AMDGPU_MAX_SDMA_INSTANCES];
>> > u32 doorbell_offset, doorbell;
>> > u32 rb_cntl, ib_cntl;
>> > - int i, unset = 0;
>> > + int i;
>> >
>> > for_each_inst(i, inst_mask) {
>> > sdma[i] = &adev->sdma.instance[i].ring;
>> >
>> > - if ((adev->mman.buffer_funcs_ring == sdma[i]) && unset != 1) {
>> > - amdgpu_ttm_set_buffer_funcs_status(adev, false);
>> > - unset = 1;
>> > - }
>> > -
>> > rb_cntl = RREG32_SDMA(i, regSDMA_GFX_RB_CNTL);
>> > rb_cntl = REG_SET_FIELD(rb_cntl, SDMA_GFX_RB_CNTL,
>> RB_ENABLE, 0);
>> > WREG32_SDMA(i, regSDMA_GFX_RB_CNTL, rb_cntl); @@ -
>> 490,17 +485,10 @@
>> > static void sdma_v4_4_2_inst_page_stop(struct amdgpu_device *adev,
>> > struct amdgpu_ring *sdma[AMDGPU_MAX_SDMA_INSTANCES];
>> > u32 rb_cntl, ib_cntl;
>> > int i;
>> > - bool unset = false;
>> >
>> > for_each_inst(i, inst_mask) {
>> > sdma[i] = &adev->sdma.instance[i].page;
>> >
>> > - if ((adev->mman.buffer_funcs_ring == sdma[i]) &&
>> > - (!unset)) {
>> > - amdgpu_ttm_set_buffer_funcs_status(adev, false);
>> > - unset = true;
>> > - }
>> > -
>> > rb_cntl = RREG32_SDMA(i, regSDMA_PAGE_RB_CNTL);
>> > rb_cntl = REG_SET_FIELD(rb_cntl, SDMA_PAGE_RB_CNTL,
>> > RB_ENABLE, 0);
>> > @@ -950,13 +938,7 @@ static int sdma_v4_4_2_inst_start(struct
>> amdgpu_device *adev,
>> > r = amdgpu_ring_test_helper(page);
>> > if (r)
>> > return r;
>> > -
>> > - if (adev->mman.buffer_funcs_ring == page)
>> > - amdgpu_ttm_set_buffer_funcs_status(adev,
>> true);
>> > }
>> > -
>> > - if (adev->mman.buffer_funcs_ring == ring)
>> > - amdgpu_ttm_set_buffer_funcs_status(adev, true);
>> > }
>> >
>> > return r;
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-03-15 12:23 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-15 9:16 [PATCH 1/1] drm/amdgpu: drop setting buffer funcs in sdma442 Le Ma
2024-03-15 9:22 ` Zhang, Hawking
2024-03-15 10:13 ` Lazar, Lijo
2024-03-15 10:19 ` Lazar, Lijo
2024-03-15 12:15 ` Ma, Le
2024-03-15 12:23 ` Lazar, Lijo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox