All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH 1/3] drm/amdgpu: add bypass mode for vce3.0
       [not found] ` <1468861197-7620-1-git-send-email-Rex.Zhu-5C7GfCeVMHo@public.gmane.org>
@ 2016-07-22  0:10   ` Eric Huang
       [not found]     ` <57916469.6020901-5C7GfCeVMHo@public.gmane.org>
  2016-07-27 12:55   ` Deucher, Alexander
  1 sibling, 1 reply; 4+ messages in thread
From: Eric Huang @ 2016-07-22  0:10 UTC (permalink / raw)
  To: Rex Zhu, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

Looks good to me. Reviewed-by: Eric Huang <JinhuiEric.Huang@amd.com>

Regards,
Eric

On 07/18/2016 12:59 PM, Rex Zhu wrote:
> Change-Id: I68aa5431146b21990a998a777e00139f0478407f
> Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 15 +++++++++++++++
>   1 file changed, 15 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c b/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c
> index 30e8099..962aa5e 100644
> --- a/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c
> @@ -604,6 +604,18 @@ static int vce_v3_0_process_interrupt(struct amdgpu_device *adev,
>   	return 0;
>   }
>   
> +static void vce_v3_set_bypass_mode(struct amdgpu_device *adev, bool enable)
> +{
> +	u32 tmp = RREG32_SMC(ixGCK_DFS_BYPASS_CNTL);
> +
> +	if (enable)
> +		tmp |= GCK_DFS_BYPASS_CNTL__BYPASSECLK_MASK;
> +	else
> +		tmp &= ~GCK_DFS_BYPASS_CNTL__BYPASSECLK_MASK;
> +
> +	WREG32_SMC(ixGCK_DFS_BYPASS_CNTL, tmp);
> +}
> +
>   static int vce_v3_0_set_clockgating_state(void *handle,
>   					  enum amd_clockgating_state state)
>   {
> @@ -611,6 +623,9 @@ static int vce_v3_0_set_clockgating_state(void *handle,
>   	bool enable = (state == AMD_CG_STATE_GATE) ? true : false;
>   	int i;
>   
> +	if (adev->asic_type == CHIP_POLARIS10)
> +		vce_v3_set_bypass_mode(adev, enable);
> +
>   	if (!(adev->cg_flags & AMD_CG_SUPPORT_VCE_MGCG))
>   		return 0;
>   

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

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

* Re: [PATCH 2/3] drm/amd/powerplay: fix issue can't enable vce dpm.
       [not found]   ` <1468861197-7620-2-git-send-email-Rex.Zhu-5C7GfCeVMHo@public.gmane.org>
@ 2016-07-22  0:17     ` Eric Huang
  0 siblings, 0 replies; 4+ messages in thread
From: Eric Huang @ 2016-07-22  0:17 UTC (permalink / raw)
  To: Rex Zhu, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

Looks good to me. Reviewed-by: Eric Huang <JinhuiEric.Huang@amd.com>

Regards,
Eric

On 07/18/2016 12:59 PM, Rex Zhu wrote:
> Change-Id: I4e09b1c1685657c68a1b4a73928bcaf0ac025d7d
> Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
> ---
>   .../powerplay/hwmgr/polaris10_clockpowergating.c   | 14 +++++++--
>   .../gpu/drm/amd/powerplay/hwmgr/polaris10_hwmgr.c  | 34 +++++++---------------
>   .../gpu/drm/amd/powerplay/hwmgr/polaris10_hwmgr.h  |  2 +-
>   3 files changed, 22 insertions(+), 28 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/polaris10_clockpowergating.c b/drivers/gpu/drm/amd/powerplay/hwmgr/polaris10_clockpowergating.c
> index aeec25c..3d324d8 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/polaris10_clockpowergating.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/polaris10_clockpowergating.c
> @@ -131,11 +131,19 @@ int polaris10_phm_powergate_vce(struct pp_hwmgr *hwmgr, bool bgate)
>   
>   	data->vce_power_gated = bgate;
>   
> -	if (bgate)
> +	if (bgate) {
> +		cgs_set_clockgating_state(hwmgr->device,
> +				AMD_IP_BLOCK_TYPE_VCE,
> +				AMD_CG_STATE_GATE);
> +		polaris10_update_vce_dpm(hwmgr, true);
>   		polaris10_phm_powerdown_vce(hwmgr);
> -	else
> +	} else {
>   		polaris10_phm_powerup_vce(hwmgr);
> -
> +		polaris10_update_vce_dpm(hwmgr, false);
> +		cgs_set_clockgating_state(hwmgr->device,
> +				AMD_IP_BLOCK_TYPE_VCE,
> +				AMD_CG_STATE_UNGATE);
> +	}
>   	return 0;
>   }
>   
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/polaris10_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/polaris10_hwmgr.c
> index 5370c0f..ab3151a 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/polaris10_hwmgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/polaris10_hwmgr.c
> @@ -4422,25 +4422,20 @@ int polaris10_update_uvd_dpm(struct pp_hwmgr *hwmgr, bool bgate)
>   	return polaris10_enable_disable_uvd_dpm(hwmgr, !bgate);
>   }
>   
> -static int polaris10_update_vce_dpm(struct pp_hwmgr *hwmgr, const void *input)
> +int polaris10_update_vce_dpm(struct pp_hwmgr *hwmgr, bool bgate)
>   {
> -	const struct phm_set_power_state_input *states =
> -			(const struct phm_set_power_state_input *)input;
>   	struct polaris10_hwmgr *data = (struct polaris10_hwmgr *)(hwmgr->backend);
> -	const struct polaris10_power_state *polaris10_nps =
> -			cast_const_phw_polaris10_power_state(states->pnew_state);
> -	const struct polaris10_power_state *polaris10_cps =
> -			cast_const_phw_polaris10_power_state(states->pcurrent_state);
> -
>   	uint32_t mm_boot_level_offset, mm_boot_level_value;
>   	struct phm_ppt_v1_information *table_info =
>   			(struct phm_ppt_v1_information *)(hwmgr->pptable);
>   
> -	if (polaris10_nps->vce_clks.evclk > 0 &&
> -	(polaris10_cps == NULL || polaris10_cps->vce_clks.evclk == 0)) {
> -
> -		data->smc_state_table.VceBootLevel =
> +	if (!bgate) {
> +		if (phm_cap_enabled(hwmgr->platform_descriptor.platformCaps,
> +						PHM_PlatformCaps_StablePState))
> +			data->smc_state_table.VceBootLevel =
>   				(uint8_t) (table_info->mm_dep_table->count - 1);
> +		else
> +			data->smc_state_table.VceBootLevel = 0;
>   
>   		mm_boot_level_offset = data->dpm_table_start +
>   				offsetof(SMU74_Discrete_DpmTable, VceBootLevel);
> @@ -4453,18 +4448,14 @@ static int polaris10_update_vce_dpm(struct pp_hwmgr *hwmgr, const void *input)
>   		cgs_write_ind_register(hwmgr->device,
>   				CGS_IND_REG__SMC, mm_boot_level_offset, mm_boot_level_value);
>   
> -		if (phm_cap_enabled(hwmgr->platform_descriptor.platformCaps, PHM_PlatformCaps_StablePState)) {
> +		if (phm_cap_enabled(hwmgr->platform_descriptor.platformCaps, PHM_PlatformCaps_StablePState))
>   			smum_send_msg_to_smc_with_parameter(hwmgr->smumgr,
>   					PPSMC_MSG_VCEDPM_SetEnabledMask,
>   					(uint32_t)1 << data->smc_state_table.VceBootLevel);
> -
> -			polaris10_enable_disable_vce_dpm(hwmgr, true);
> -		} else if (polaris10_nps->vce_clks.evclk == 0 &&
> -				polaris10_cps != NULL &&
> -				polaris10_cps->vce_clks.evclk > 0)
> -			polaris10_enable_disable_vce_dpm(hwmgr, false);
>   	}
>   
> +	polaris10_enable_disable_vce_dpm(hwmgr, !bgate);
> +
>   	return 0;
>   }
>   
> @@ -4651,11 +4642,6 @@ static int polaris10_set_power_state_tasks(struct pp_hwmgr *hwmgr, const void *i
>   			"Failed to generate DPM level enabled mask!",
>   			result = tmp_result);
>   
> -	tmp_result = polaris10_update_vce_dpm(hwmgr, input);
> -	PP_ASSERT_WITH_CODE((0 == tmp_result),
> -			"Failed to update VCE DPM!",
> -			result = tmp_result);
> -
>   	tmp_result = polaris10_update_sclk_threshold(hwmgr);
>   	PP_ASSERT_WITH_CODE((0 == tmp_result),
>   			"Failed to update SCLK threshold!",
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/polaris10_hwmgr.h b/drivers/gpu/drm/amd/powerplay/hwmgr/polaris10_hwmgr.h
> index 402f5c0..dabbb5d 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/polaris10_hwmgr.h
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/polaris10_hwmgr.h
> @@ -353,6 +353,6 @@ int polaris10_hwmgr_init(struct pp_hwmgr *hwmgr);
>   int polaris10_update_uvd_dpm(struct pp_hwmgr *hwmgr, bool bgate);
>   int polaris10_update_samu_dpm(struct pp_hwmgr *hwmgr, bool bgate);
>   int polaris10_enable_disable_vce_dpm(struct pp_hwmgr *hwmgr, bool enable);
> -
> +int polaris10_update_vce_dpm(struct pp_hwmgr *hwmgr, bool bgate);
>   #endif
>   

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

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

* Re: [PATCH 1/3] drm/amdgpu: add bypass mode for vce3.0
       [not found]     ` <57916469.6020901-5C7GfCeVMHo@public.gmane.org>
@ 2016-07-25  2:09       ` Alexandre Demers
  0 siblings, 0 replies; 4+ messages in thread
From: Alexandre Demers @ 2016-07-25  2:09 UTC (permalink / raw)
  To: Eric Huang, Rex Zhu, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

Please, keep a similar syntax to other functions and to the file name.

"vce_v3_set_bypass_mode" should be "vce_v3_0_set_bypass_mode".

Alexandre Demers

On 2016-07-21 20:10, Eric Huang wrote:
> Looks good to me. Reviewed-by: Eric Huang <JinhuiEric.Huang@amd.com>
>
> Regards,
> Eric
>
> On 07/18/2016 12:59 PM, Rex Zhu wrote:
>> Change-Id: I68aa5431146b21990a998a777e00139f0478407f
>> Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
>> ---
>>   drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 15 +++++++++++++++
>>   1 file changed, 15 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c 
>> b/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c
>> index 30e8099..962aa5e 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c
>> @@ -604,6 +604,18 @@ static int vce_v3_0_process_interrupt(struct 
>> amdgpu_device *adev,
>>       return 0;
>>   }
>>   +static void vce_v3_set_bypass_mode(struct amdgpu_device *adev, 
>> bool enable)
>> +{
>> +    u32 tmp = RREG32_SMC(ixGCK_DFS_BYPASS_CNTL);
>> +
>> +    if (enable)
>> +        tmp |= GCK_DFS_BYPASS_CNTL__BYPASSECLK_MASK;
>> +    else
>> +        tmp &= ~GCK_DFS_BYPASS_CNTL__BYPASSECLK_MASK;
>> +
>> +    WREG32_SMC(ixGCK_DFS_BYPASS_CNTL, tmp);
>> +}
>> +
>>   static int vce_v3_0_set_clockgating_state(void *handle,
>>                         enum amd_clockgating_state state)
>>   {
>> @@ -611,6 +623,9 @@ static int vce_v3_0_set_clockgating_state(void 
>> *handle,
>>       bool enable = (state == AMD_CG_STATE_GATE) ? true : false;
>>       int i;
>>   +    if (adev->asic_type == CHIP_POLARIS10)
>> +        vce_v3_set_bypass_mode(adev, enable);
>> +
>>       if (!(adev->cg_flags & AMD_CG_SUPPORT_VCE_MGCG))
>>           return 0;
>
> _______________________________________________
> 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] 4+ messages in thread

* RE: [PATCH 1/3] drm/amdgpu: add bypass mode for vce3.0
       [not found] ` <1468861197-7620-1-git-send-email-Rex.Zhu-5C7GfCeVMHo@public.gmane.org>
  2016-07-22  0:10   ` [PATCH 1/3] drm/amdgpu: add bypass mode for vce3.0 Eric Huang
@ 2016-07-27 12:55   ` Deucher, Alexander
  1 sibling, 0 replies; 4+ messages in thread
From: Deucher, Alexander @ 2016-07-27 12:55 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: Zhu, Rex



> -----Original Message-----
> From: amd-gfx [mailto:amd-gfx-bounces@lists.freedesktop.org] On Behalf
> Of Rex Zhu
> Sent: Monday, July 18, 2016 1:00 PM
> To: amd-gfx@lists.freedesktop.org
> Cc: Zhu, Rex
> Subject: [PATCH 1/3] drm/amdgpu: add bypass mode for vce3.0
> 
> Change-Id: I68aa5431146b21990a998a777e00139f0478407f
> Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 15 +++++++++++++++
>  1 file changed, 15 insertions(+)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c
> b/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c
> index 30e8099..962aa5e 100644
> --- a/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/vce_v3_0.c
> @@ -604,6 +604,18 @@ static int vce_v3_0_process_interrupt(struct
> amdgpu_device *adev,
>  	return 0;
>  }
> 
> +static void vce_v3_set_bypass_mode(struct amdgpu_device *adev, bool
> enable)

For consistency, please change the function name to:
vce_v3_0_set_bypass_mode()

With that fixed:
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>

> +{
> +	u32 tmp = RREG32_SMC(ixGCK_DFS_BYPASS_CNTL);
> +
> +	if (enable)
> +		tmp |= GCK_DFS_BYPASS_CNTL__BYPASSECLK_MASK;
> +	else
> +		tmp &= ~GCK_DFS_BYPASS_CNTL__BYPASSECLK_MASK;
> +
> +	WREG32_SMC(ixGCK_DFS_BYPASS_CNTL, tmp);
> +}
> +
>  static int vce_v3_0_set_clockgating_state(void *handle,
>  					  enum amd_clockgating_state state)
>  {
> @@ -611,6 +623,9 @@ static int vce_v3_0_set_clockgating_state(void
> *handle,
>  	bool enable = (state == AMD_CG_STATE_GATE) ? true : false;
>  	int i;
> 
> +	if (adev->asic_type == CHIP_POLARIS10)
> +		vce_v3_set_bypass_mode(adev, enable);
> +
>  	if (!(adev->cg_flags & AMD_CG_SUPPORT_VCE_MGCG))
>  		return 0;
> 
> --
> 1.9.1
> 
> _______________________________________________
> 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] 4+ messages in thread

end of thread, other threads:[~2016-07-27 12:55 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <1468861197-7620-1-git-send-email-Rex.Zhu@amd.com>
     [not found] ` <1468861197-7620-2-git-send-email-Rex.Zhu@amd.com>
     [not found]   ` <1468861197-7620-2-git-send-email-Rex.Zhu-5C7GfCeVMHo@public.gmane.org>
2016-07-22  0:17     ` [PATCH 2/3] drm/amd/powerplay: fix issue can't enable vce dpm Eric Huang
     [not found] ` <1468861197-7620-1-git-send-email-Rex.Zhu-5C7GfCeVMHo@public.gmane.org>
2016-07-22  0:10   ` [PATCH 1/3] drm/amdgpu: add bypass mode for vce3.0 Eric Huang
     [not found]     ` <57916469.6020901-5C7GfCeVMHo@public.gmane.org>
2016-07-25  2:09       ` Alexandre Demers
2016-07-27 12: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.