All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] drm/amd/powerplay: fix suspend error on DPM disabled
@ 2017-04-10  9:37 Huang Rui
       [not found] ` <1491817071-17014-1-git-send-email-ray.huang-5C7GfCeVMHo@public.gmane.org>
  0 siblings, 1 reply; 6+ messages in thread
From: Huang Rui @ 2017-04-10  9:37 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Alex Deucher; +Cc: Huang Rui

Signed-off-by: Huang Rui <ray.huang@amd.com>
---
 drivers/gpu/drm/amd/powerplay/amd_powerplay.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/powerplay/amd_powerplay.c b/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
index 9da5b0b..f73e80c 100644
--- a/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
+++ b/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
@@ -251,7 +251,9 @@ static int pp_suspend(void *handle)
 
 	ret = pp_check(pp_handle);
 
-	if (ret != 0)
+	if (ret == PP_DPM_DISABLED)
+		return 0;
+	else if (ret != 0)
 		return ret;
 
 	eventmgr = pp_handle->eventmgr;
-- 
2.7.4

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

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/3] drm/amdgpu: do not free fence buf when driver probes.
       [not found] ` <1491817071-17014-1-git-send-email-ray.huang-5C7GfCeVMHo@public.gmane.org>
@ 2017-04-10  9:37   ` Huang Rui
  2017-04-10  9:37   ` [PATCH 3/3] drm/amdgpu: fix to clear ASIC INIT COMPLETE bit on resuming phase Huang Rui
  1 sibling, 0 replies; 6+ messages in thread
From: Huang Rui @ 2017-04-10  9:37 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Alex Deucher; +Cc: Huang Rui

Fence buf needs to be used on suspend/resume phase.

Signed-off-by: Huang Rui <ray.huang@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
index 68ccaed..19180aa 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
@@ -358,8 +358,6 @@ static int psp_load_fw(struct amdgpu_device *adev)
 	if (ret)
 		goto failed_mem;
 
-	amdgpu_bo_free_kernel(&psp->fence_buf_bo,
-			      &psp->fence_buf_mc_addr, &psp->fence_buf);
 	kfree(cmd);
 
 	return 0;
@@ -423,6 +421,10 @@ static int psp_hw_fini(void *handle)
 		amdgpu_bo_free_kernel(&psp->fw_pri_bo,
 				      &psp->fw_pri_mc_addr, &psp->fw_pri_buf);
 
+	if (psp->fence_buf_bo)
+		amdgpu_bo_free_kernel(&psp->fence_buf_bo,
+				      &psp->fence_buf_mc_addr, &psp->fence_buf);
+
 	return 0;
 }
 
-- 
2.7.4

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

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 3/3] drm/amdgpu: fix to clear ASIC INIT COMPLETE bit on resuming phase
       [not found] ` <1491817071-17014-1-git-send-email-ray.huang-5C7GfCeVMHo@public.gmane.org>
  2017-04-10  9:37   ` [PATCH 2/3] drm/amdgpu: do not free fence buf when driver probes Huang Rui
@ 2017-04-10  9:37   ` Huang Rui
       [not found]     ` <1491817071-17014-3-git-send-email-ray.huang-5C7GfCeVMHo@public.gmane.org>
  1 sibling, 1 reply; 6+ messages in thread
From: Huang Rui @ 2017-04-10  9:37 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Alex Deucher; +Cc: Huang Rui

ASIC_INIT_COMPLETE bit must be cleared during S3 resuming phase,
because VBIOS will check the bit to decide if execute ASIC_Init
posting via kernel driver.

Signed-off-by: Huang Rui <ray.huang@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c     | 5 ++++-
 drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c | 6 +++++-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
index ad43299..b0dd72a8 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
@@ -1727,8 +1727,11 @@ void amdgpu_atombios_scratch_regs_restore(struct amdgpu_device *adev)
 {
 	int i;
 
-	for (i = 0; i < AMDGPU_BIOS_NUM_SCRATCH; i++)
+	for (i = 0; i < AMDGPU_BIOS_NUM_SCRATCH; i++) {
+		if (i == 7)
+			adev->bios_scratch[i] &= ~ATOM_S7_ASIC_INIT_COMPLETE_MASK;
 		WREG32(mmBIOS_SCRATCH_0 + i, adev->bios_scratch[i]);
+	}
 }
 
 void amdgpu_atombios_scratch_regs_engine_hung(struct amdgpu_device *adev,
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c
index 4b9abd6..c7e28bf 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c
@@ -26,6 +26,7 @@
 #include "atomfirmware.h"
 #include "amdgpu_atomfirmware.h"
 #include "atom.h"
+#include "atombios.h"
 
 #define get_index_into_master_table(master_table, table_name) (offsetof(struct master_table, table_name) / sizeof(uint16_t))
 
@@ -77,8 +78,11 @@ void amdgpu_atomfirmware_scratch_regs_restore(struct amdgpu_device *adev)
 {
 	int i;
 
-	for (i = 0; i < AMDGPU_BIOS_NUM_SCRATCH; i++)
+	for (i = 0; i < AMDGPU_BIOS_NUM_SCRATCH; i++) {
+		if (i == 7)
+			adev->bios_scratch[i] &= ~ATOM_S7_ASIC_INIT_COMPLETE_MASK;
 		WREG32(adev->bios_scratch_reg_offset + i, adev->bios_scratch[i]);
+	}
 }
 
 int amdgpu_atomfirmware_allocate_fb_scratch(struct amdgpu_device *adev)
-- 
2.7.4

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

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 3/3] drm/amdgpu: fix to clear ASIC INIT COMPLETE bit on resuming phase
       [not found]     ` <1491817071-17014-3-git-send-email-ray.huang-5C7GfCeVMHo@public.gmane.org>
@ 2017-04-10 12:09       ` Grazvydas Ignotas
       [not found]         ` <CANOLnOOcnUitqWAWjtTEa0U69pEj5mFMMJZSHrKz5S_TQEcoDA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  2017-04-10 14:55       ` Deucher, Alexander
  1 sibling, 1 reply; 6+ messages in thread
From: Grazvydas Ignotas @ 2017-04-10 12:09 UTC (permalink / raw)
  To: Huang Rui; +Cc: Alex Deucher, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW


[-- Attachment #1.1: Type: text/plain, Size: 1284 bytes --]

On Mon, Apr 10, 2017 at 12:37 PM, Huang Rui <ray.huang-5C7GfCeVMHo@public.gmane.org> wrote:

> ASIC_INIT_COMPLETE bit must be cleared during S3 resuming phase,
> because VBIOS will check the bit to decide if execute ASIC_Init
> posting via kernel driver.
>
> Signed-off-by: Huang Rui <ray.huang-5C7GfCeVMHo@public.gmane.org>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c     | 5 ++++-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c | 6 +++++-
>  2 files changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
> index ad43299..b0dd72a8 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
> @@ -1727,8 +1727,11 @@ void amdgpu_atombios_scratch_regs_restore(struct
> amdgpu_device *adev)
>  {
>         int i;
>
> -       for (i = 0; i < AMDGPU_BIOS_NUM_SCRATCH; i++)
> +       for (i = 0; i < AMDGPU_BIOS_NUM_SCRATCH; i++) {
> +               if (i == 7)
> +                       adev->bios_scratch[i] &=
> ~ATOM_S7_ASIC_INIT_COMPLETE_MASK;
>

Maybe move this line before the loop?
A comment may also be useful so that somebody doesn't delete the code again
in future.

Gražvydas

[-- Attachment #1.2: Type: text/html, Size: 1880 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [PATCH 3/3] drm/amdgpu: fix to clear ASIC INIT COMPLETE bit on resuming phase
       [not found]     ` <1491817071-17014-3-git-send-email-ray.huang-5C7GfCeVMHo@public.gmane.org>
  2017-04-10 12:09       ` Grazvydas Ignotas
@ 2017-04-10 14:55       ` Deucher, Alexander
  1 sibling, 0 replies; 6+ messages in thread
From: Deucher, Alexander @ 2017-04-10 14:55 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: Huang, Ray

> -----Original Message-----
> From: amd-gfx [mailto:amd-gfx-bounces@lists.freedesktop.org] On Behalf
> Of Huang Rui
> Sent: Monday, April 10, 2017 5:38 AM
> To: amd-gfx@lists.freedesktop.org; Deucher, Alexander
> Cc: Huang, Ray
> Subject: [PATCH 3/3] drm/amdgpu: fix to clear ASIC INIT COMPLETE bit on
> resuming phase
> 
> ASIC_INIT_COMPLETE bit must be cleared during S3 resuming phase,
> because VBIOS will check the bit to decide if execute ASIC_Init
> posting via kernel driver.
> 
> Signed-off-by: Huang Rui <ray.huang@amd.com>

Series is:
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c     | 5 ++++-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c | 6 +++++-
>  2 files changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
> index ad43299..b0dd72a8 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
> @@ -1727,8 +1727,11 @@ void
> amdgpu_atombios_scratch_regs_restore(struct amdgpu_device *adev)
>  {
>  	int i;
> 
> -	for (i = 0; i < AMDGPU_BIOS_NUM_SCRATCH; i++)
> +	for (i = 0; i < AMDGPU_BIOS_NUM_SCRATCH; i++) {
> +		if (i == 7)
> +			adev->bios_scratch[i] &=
> ~ATOM_S7_ASIC_INIT_COMPLETE_MASK;
>  		WREG32(mmBIOS_SCRATCH_0 + i, adev->bios_scratch[i]);
> +	}
>  }
> 
>  void amdgpu_atombios_scratch_regs_engine_hung(struct amdgpu_device
> *adev,
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c
> index 4b9abd6..c7e28bf 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c
> @@ -26,6 +26,7 @@
>  #include "atomfirmware.h"
>  #include "amdgpu_atomfirmware.h"
>  #include "atom.h"
> +#include "atombios.h"
> 
>  #define get_index_into_master_table(master_table, table_name)
> (offsetof(struct master_table, table_name) / sizeof(uint16_t))
> 
> @@ -77,8 +78,11 @@ void
> amdgpu_atomfirmware_scratch_regs_restore(struct amdgpu_device
> *adev)
>  {
>  	int i;
> 
> -	for (i = 0; i < AMDGPU_BIOS_NUM_SCRATCH; i++)
> +	for (i = 0; i < AMDGPU_BIOS_NUM_SCRATCH; i++) {
> +		if (i == 7)
> +			adev->bios_scratch[i] &=
> ~ATOM_S7_ASIC_INIT_COMPLETE_MASK;
>  		WREG32(adev->bios_scratch_reg_offset + i, adev-
> >bios_scratch[i]);
> +	}
>  }
> 
>  int amdgpu_atomfirmware_allocate_fb_scratch(struct amdgpu_device
> *adev)
> --
> 2.7.4
> 
> _______________________________________________
> amd-gfx mailing list
> amd-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 3/3] drm/amdgpu: fix to clear ASIC INIT COMPLETE bit on resuming phase
       [not found]         ` <CANOLnOOcnUitqWAWjtTEa0U69pEj5mFMMJZSHrKz5S_TQEcoDA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2017-04-11  3:41           ` Huang Rui
  0 siblings, 0 replies; 6+ messages in thread
From: Huang Rui @ 2017-04-11  3:41 UTC (permalink / raw)
  To: Grazvydas Ignotas
  Cc: Deucher, Alexander, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

On Mon, Apr 10, 2017 at 08:09:17PM +0800, Grazvydas Ignotas wrote:
> On Mon, Apr 10, 2017 at 12:37 PM, Huang Rui <ray.huang@amd.com> wrote:
> 
>     ASIC_INIT_COMPLETE bit must be cleared during S3 resuming phase,
>     because VBIOS will check the bit to decide if execute ASIC_Init
>     posting via kernel driver.
> 
>     Signed-off-by: Huang Rui <ray.huang@amd.com>
>     ---
>      drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c     | 5 ++++-
>      drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c | 6 +++++-
>      2 files changed, 9 insertions(+), 2 deletions(-)
> 
>     diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c b/drivers/gpu/drm
>     /amd/amdgpu/amdgpu_atombios.c
>     index ad43299..b0dd72a8 100644
>     --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
>     +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
>     @@ -1727,8 +1727,11 @@ void amdgpu_atombios_scratch_regs_restore(struct
>     amdgpu_device *adev)
>      {
>             int i;
> 
>     -       for (i = 0; i < AMDGPU_BIOS_NUM_SCRATCH; i++)
>     +       for (i = 0; i < AMDGPU_BIOS_NUM_SCRATCH; i++) {
>     +               if (i == 7)
>     +                       adev->bios_scratch[i] &=
>     ~ATOM_S7_ASIC_INIT_COMPLETE_MASK;
> 
> 
> Maybe move this line before the loop?
> A comment may also be useful so that somebody doesn't delete the code again in
> future.
> 

OK. I'm fine to move it before this loop.

	/*
	 * VBIOS will check ASIC_INIT_COMPLETE bit to decide if
	 * execute ASIC_Init posting via driver
	 */
	adev->bios_scratch[7] &= ~ATOM_S7_ASIC_INIT_COMPLETE_MASK;

Thanks,
Rui
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-04-11  3:41 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-10  9:37 [PATCH 1/3] drm/amd/powerplay: fix suspend error on DPM disabled Huang Rui
     [not found] ` <1491817071-17014-1-git-send-email-ray.huang-5C7GfCeVMHo@public.gmane.org>
2017-04-10  9:37   ` [PATCH 2/3] drm/amdgpu: do not free fence buf when driver probes Huang Rui
2017-04-10  9:37   ` [PATCH 3/3] drm/amdgpu: fix to clear ASIC INIT COMPLETE bit on resuming phase Huang Rui
     [not found]     ` <1491817071-17014-3-git-send-email-ray.huang-5C7GfCeVMHo@public.gmane.org>
2017-04-10 12:09       ` Grazvydas Ignotas
     [not found]         ` <CANOLnOOcnUitqWAWjtTEa0U69pEj5mFMMJZSHrKz5S_TQEcoDA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-04-11  3:41           ` Huang Rui
2017-04-10 14:55       ` Deucher, Alexander

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.