AMD-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/amdgpu: change vblank_time's calculation method to reduce computational error.
@ 2016-10-10  9:30 Rex Zhu
       [not found] ` <1476091817-23581-1-git-send-email-Rex.Zhu-5C7GfCeVMHo@public.gmane.org>
  0 siblings, 1 reply; 2+ messages in thread
From: Rex Zhu @ 2016-10-10  9:30 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: Rex Zhu

Change-Id: If0f10dc8002ef8b923177cbf36d0d76316bd017c
Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c
index fe36caf..14f57d9 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c
@@ -113,24 +113,26 @@ void amdgpu_dpm_print_ps_status(struct amdgpu_device *adev,
 	printk("\n");
 }
 
+
 u32 amdgpu_dpm_get_vblank_time(struct amdgpu_device *adev)
 {
 	struct drm_device *dev = adev->ddev;
 	struct drm_crtc *crtc;
 	struct amdgpu_crtc *amdgpu_crtc;
-	u32 line_time_us, vblank_lines;
+	u32 vblank_in_pixels;
 	u32 vblank_time_us = 0xffffffff; /* if the displays are off, vblank time is max */
 
 	if (adev->mode_info.num_crtc && adev->mode_info.mode_config_initialized) {
 		list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
 			amdgpu_crtc = to_amdgpu_crtc(crtc);
 			if (crtc->enabled && amdgpu_crtc->enabled && amdgpu_crtc->hw_mode.clock) {
-				line_time_us = (amdgpu_crtc->hw_mode.crtc_htotal * 1000) /
-					amdgpu_crtc->hw_mode.clock;
-				vblank_lines = amdgpu_crtc->hw_mode.crtc_vblank_end -
+				vblank_in_pixels =
+					amdgpu_crtc->hw_mode.crtc_htotal *
+					(amdgpu_crtc->hw_mode.crtc_vblank_end -
 					amdgpu_crtc->hw_mode.crtc_vdisplay +
-					(amdgpu_crtc->v_border * 2);
-				vblank_time_us = vblank_lines * line_time_us;
+					(amdgpu_crtc->v_border * 2));
+
+				vblank_time_us = vblank_in_pixels * 1000 / amdgpu_crtc->hw_mode.clock;
 				break;
 			}
 		}
-- 
1.9.1

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

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

* Re: [PATCH] drm/amdgpu: change vblank_time's calculation method to reduce computational error.
       [not found] ` <1476091817-23581-1-git-send-email-Rex.Zhu-5C7GfCeVMHo@public.gmane.org>
@ 2016-10-10 16:26   ` Alex Deucher
  0 siblings, 0 replies; 2+ messages in thread
From: Alex Deucher @ 2016-10-10 16:26 UTC (permalink / raw)
  To: Rex Zhu; +Cc: amd-gfx list

On Mon, Oct 10, 2016 at 5:30 AM, Rex Zhu <Rex.Zhu@amd.com> wrote:
> Change-Id: If0f10dc8002ef8b923177cbf36d0d76316bd017c
> Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>

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

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c | 14 ++++++++------
>  1 file changed, 8 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c
> index fe36caf..14f57d9 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c
> @@ -113,24 +113,26 @@ void amdgpu_dpm_print_ps_status(struct amdgpu_device *adev,
>         printk("\n");
>  }
>
> +
>  u32 amdgpu_dpm_get_vblank_time(struct amdgpu_device *adev)
>  {
>         struct drm_device *dev = adev->ddev;
>         struct drm_crtc *crtc;
>         struct amdgpu_crtc *amdgpu_crtc;
> -       u32 line_time_us, vblank_lines;
> +       u32 vblank_in_pixels;
>         u32 vblank_time_us = 0xffffffff; /* if the displays are off, vblank time is max */
>
>         if (adev->mode_info.num_crtc && adev->mode_info.mode_config_initialized) {
>                 list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
>                         amdgpu_crtc = to_amdgpu_crtc(crtc);
>                         if (crtc->enabled && amdgpu_crtc->enabled && amdgpu_crtc->hw_mode.clock) {
> -                               line_time_us = (amdgpu_crtc->hw_mode.crtc_htotal * 1000) /
> -                                       amdgpu_crtc->hw_mode.clock;
> -                               vblank_lines = amdgpu_crtc->hw_mode.crtc_vblank_end -
> +                               vblank_in_pixels =
> +                                       amdgpu_crtc->hw_mode.crtc_htotal *
> +                                       (amdgpu_crtc->hw_mode.crtc_vblank_end -
>                                         amdgpu_crtc->hw_mode.crtc_vdisplay +
> -                                       (amdgpu_crtc->v_border * 2);
> -                               vblank_time_us = vblank_lines * line_time_us;
> +                                       (amdgpu_crtc->v_border * 2));
> +
> +                               vblank_time_us = vblank_in_pixels * 1000 / amdgpu_crtc->hw_mode.clock;
>                                 break;
>                         }
>                 }
> --
> 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] 2+ messages in thread

end of thread, other threads:[~2016-10-10 16:26 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-10  9:30 [PATCH] drm/amdgpu: change vblank_time's calculation method to reduce computational error Rex Zhu
     [not found] ` <1476091817-23581-1-git-send-email-Rex.Zhu-5C7GfCeVMHo@public.gmane.org>
2016-10-10 16:26   ` Alex Deucher

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox