Message ID | 20191122184625.20151-1-mikita.lipski@amd.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] drm/dsc: Return unsigned long on compute offset | expand |
On Fri, 22 Nov 2019, <mikita.lipski@amd.com> wrote: > From: Mikita Lipski <mikita.lipski@amd.com> > > We shouldn't compare int with unsigned long to find the max value > and since we are not expecting negative value returned from > compute_offset we should make this function return unsigned long > so we can compare the values when computing rc parameters. > > v2: Modified function parameters to unsigned type for type > consistency I don't think that really addresses the review. But all the same, current drm-tip does not have a compute_offset() function, and the only reference to it in my email are your patches, so this is completely unactionable anyway. In any case I think the root cause for your issues is the unfounded use of unsigned longs in drm_dsc_compute_rc_parameters(). Fix that and many of your problems go away. BR, Jani. > > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > Cc: Nikola Cornij <nikola.cornij@amd.com> > Cc: Harry Wentland <harry.wentland@amd.com> > Signed-off-by: Mikita Lipski <mikita.lipski@amd.com> > --- > drivers/gpu/drm/drm_dsc.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/drm_dsc.c b/drivers/gpu/drm/drm_dsc.c > index 74f3527f567d..ccce0297da64 100644 > --- a/drivers/gpu/drm/drm_dsc.c > +++ b/drivers/gpu/drm/drm_dsc.c > @@ -245,11 +245,11 @@ void drm_dsc_pps_payload_pack(struct drm_dsc_picture_parameter_set *pps_payload, > } > EXPORT_SYMBOL(drm_dsc_pps_payload_pack); > > -static int compute_offset(struct drm_dsc_config *vdsc_cfg, int pixels_per_group, > - int groups_per_line, int grpcnt) > +static unsigned long compute_offset(struct drm_dsc_config *vdsc_cfg, unsigned int pixels_per_group, > + unsigned long groups_per_line, unsigned long grpcnt) > { > - int offset = 0; > - int grpcnt_id = DIV_ROUND_UP(vdsc_cfg->initial_xmit_delay, pixels_per_group); > + unsigned long offset = 0; > + unsigned long grpcnt_id = DIV_ROUND_UP(vdsc_cfg->initial_xmit_delay, pixels_per_group); > > if (grpcnt <= grpcnt_id) > offset = DIV_ROUND_UP(grpcnt * pixels_per_group * vdsc_cfg->bits_per_pixel, 16);
diff --git a/drivers/gpu/drm/drm_dsc.c b/drivers/gpu/drm/drm_dsc.c index 74f3527f567d..ccce0297da64 100644 --- a/drivers/gpu/drm/drm_dsc.c +++ b/drivers/gpu/drm/drm_dsc.c @@ -245,11 +245,11 @@ void drm_dsc_pps_payload_pack(struct drm_dsc_picture_parameter_set *pps_payload, } EXPORT_SYMBOL(drm_dsc_pps_payload_pack); -static int compute_offset(struct drm_dsc_config *vdsc_cfg, int pixels_per_group, - int groups_per_line, int grpcnt) +static unsigned long compute_offset(struct drm_dsc_config *vdsc_cfg, unsigned int pixels_per_group, + unsigned long groups_per_line, unsigned long grpcnt) { - int offset = 0; - int grpcnt_id = DIV_ROUND_UP(vdsc_cfg->initial_xmit_delay, pixels_per_group); + unsigned long offset = 0; + unsigned long grpcnt_id = DIV_ROUND_UP(vdsc_cfg->initial_xmit_delay, pixels_per_group); if (grpcnt <= grpcnt_id) offset = DIV_ROUND_UP(grpcnt * pixels_per_group * vdsc_cfg->bits_per_pixel, 16);