Message ID | 20190925141442.23236-3-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/3] drm/dp/mst: Reduce nested ifs | expand |
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); >
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);