[3/3] drm/dp/mst: Replace the fixed point thing with straight calculation
diff mbox series

Message ID 20190925141442.23236-3-ville.syrjala@linux.intel.com
State New
Headers show
Series
  • [1/3] drm/dp/mst: Reduce nested ifs
Related show

Commit Message

Ville Syrjälä Sept. 25, 2019, 2:14 p.m. UTC
From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Get rid of the drm_fixp_from_fraction() usage and just do the
straightforward calculation directly.

Cc: Lyude Paul <lyude@redhat.com>
Cc: Harry Wentland <harry.wentland@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/drm_dp_mst_topology.c | 18 ++----------------
 1 file changed, 2 insertions(+), 16 deletions(-)

Comments

Lyude Paul Sept. 26, 2019, 12:07 a.m. UTC | #1
Reviewed-by: Lyude Paul <lyude@redhat.com>

Cc: Mikita Lipski - figured you'd want to know ahead of time you'll need to
update your changes to drm_dp_calc_pbn_mode() to match

On Wed, 2019-09-25 at 17:14 +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Get rid of the drm_fixp_from_fraction() usage and just do the
> straightforward calculation directly.
> 
> Cc: Lyude Paul <lyude@redhat.com>
> Cc: Harry Wentland <harry.wentland@amd.com>
> Cc: Alex Deucher <alexander.deucher@amd.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/drm_dp_mst_topology.c | 18 ++----------------
>  1 file changed, 2 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c
> b/drivers/gpu/drm/drm_dp_mst_topology.c
> index d4644a3c1324..f899a4432311 100644
> --- a/drivers/gpu/drm/drm_dp_mst_topology.c
> +++ b/drivers/gpu/drm/drm_dp_mst_topology.c
> @@ -32,7 +32,6 @@
>  #include <drm/drm_atomic_helper.h>
>  #include <drm/drm_dp_mst_helper.h>
>  #include <drm/drm_drv.h>
> -#include <drm/drm_fixed.h>
>  #include <drm/drm_print.h>
>  #include <drm/drm_probe_helper.h>
>  
> @@ -3840,13 +3839,6 @@ EXPORT_SYMBOL(drm_dp_check_act_status);
>   */
>  int drm_dp_calc_pbn_mode(int clock, int bpp)
>  {
> -	u64 kbps;
> -	s64 peak_kbps;
> -	u32 numerator;
> -	u32 denominator;
> -
> -	kbps = clock * bpp;
> -
>  	/*
>  	 * margin 5300ppm + 300ppm ~ 0.6% as per spec, factor is 1.006
>  	 * The unit of 54/64Mbytes/sec is an arbitrary unit chosen based on
> @@ -3857,14 +3849,8 @@ int drm_dp_calc_pbn_mode(int clock, int bpp)
>  	 * peak_kbps *= (64/54)
>  	 * peak_kbps *= 8    convert to bytes
>  	 */
> -
> -	numerator = 64 * 1006;
> -	denominator = 54 * 8 * 1000 * 1000;
> -
> -	kbps *= numerator;
> -	peak_kbps = drm_fixp_from_fraction(kbps, denominator);
> -
> -	return drm_fixp2int_ceil(peak_kbps);
> +	return DIV_ROUND_UP_ULL(mul_u32_u32(clock * bpp, 64 * 1006),
> +				8 * 54 * 1000 * 1000);
>  }
>  EXPORT_SYMBOL(drm_dp_calc_pbn_mode);
>

Patch
diff mbox series

diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c
index d4644a3c1324..f899a4432311 100644
--- a/drivers/gpu/drm/drm_dp_mst_topology.c
+++ b/drivers/gpu/drm/drm_dp_mst_topology.c
@@ -32,7 +32,6 @@ 
 #include <drm/drm_atomic_helper.h>
 #include <drm/drm_dp_mst_helper.h>
 #include <drm/drm_drv.h>
-#include <drm/drm_fixed.h>
 #include <drm/drm_print.h>
 #include <drm/drm_probe_helper.h>
 
@@ -3840,13 +3839,6 @@  EXPORT_SYMBOL(drm_dp_check_act_status);
  */
 int drm_dp_calc_pbn_mode(int clock, int bpp)
 {
-	u64 kbps;
-	s64 peak_kbps;
-	u32 numerator;
-	u32 denominator;
-
-	kbps = clock * bpp;
-
 	/*
 	 * margin 5300ppm + 300ppm ~ 0.6% as per spec, factor is 1.006
 	 * The unit of 54/64Mbytes/sec is an arbitrary unit chosen based on
@@ -3857,14 +3849,8 @@  int drm_dp_calc_pbn_mode(int clock, int bpp)
 	 * peak_kbps *= (64/54)
 	 * peak_kbps *= 8    convert to bytes
 	 */
-
-	numerator = 64 * 1006;
-	denominator = 54 * 8 * 1000 * 1000;
-
-	kbps *= numerator;
-	peak_kbps = drm_fixp_from_fraction(kbps, denominator);
-
-	return drm_fixp2int_ceil(peak_kbps);
+	return DIV_ROUND_UP_ULL(mul_u32_u32(clock * bpp, 64 * 1006),
+				8 * 54 * 1000 * 1000);
 }
 EXPORT_SYMBOL(drm_dp_calc_pbn_mode);