Message ID | 20230329-rfc-msm-dsc-helper-v14-3-bafc7be95691@quicinc.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | Introduce MSM-specific DSC helpers | expand |
On 2023-05-24 10:45:16, Jessica Zhang wrote: > Add helper to get the integer value of drm_dsc_config.bits_per_pixel > > Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org> > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > Signed-off-by: Jessica Zhang <quic_jesszhan@quicinc.com> Nit: if there comes a v15, perhaps this can be squashed with patch 1/9? I always thought they were separate because one extends the header while this extends the C file... but now both extend the C file with helpers. > --- > drivers/gpu/drm/display/drm_dsc_helper.c | 13 +++++++++++++ > include/drm/display/drm_dsc_helper.h | 1 + > 2 files changed, 14 insertions(+) > > diff --git a/drivers/gpu/drm/display/drm_dsc_helper.c b/drivers/gpu/drm/display/drm_dsc_helper.c > index b31fe9849784..4424380c6cb6 100644 > --- a/drivers/gpu/drm/display/drm_dsc_helper.c > +++ b/drivers/gpu/drm/display/drm_dsc_helper.c > @@ -1436,6 +1436,19 @@ int drm_dsc_compute_rc_parameters(struct drm_dsc_config *vdsc_cfg) > } > EXPORT_SYMBOL(drm_dsc_compute_rc_parameters); > > +/** > + * drm_dsc_get_bpp_int() - Get integer bits per pixel value for the given DRM DSC config > + * @vdsc_cfg: Pointer to DRM DSC config struct > + * > + * Return: Integer BPP value > + */ > +u32 drm_dsc_get_bpp_int(const struct drm_dsc_config *vdsc_cfg) > +{ > + WARN_ON_ONCE(vdsc_cfg->bits_per_pixel & 0xf); You did not add linux/bug.h back, presumably because Dmitry added another use of WARN_ON_ONCE to this file in a previous series and it compiles fine as the definition trickles in via another header? - Marijn > + return vdsc_cfg->bits_per_pixel >> 4; > +} > +EXPORT_SYMBOL(drm_dsc_get_bpp_int); > + > /** > * drm_dsc_initial_scale_value() - Calculate the initial scale value for the given DSC config > * @dsc: Pointer to DRM DSC config struct > diff --git a/include/drm/display/drm_dsc_helper.h b/include/drm/display/drm_dsc_helper.h > index f4e18e5d077a..913aa2071232 100644 > --- a/include/drm/display/drm_dsc_helper.h > +++ b/include/drm/display/drm_dsc_helper.h > @@ -27,6 +27,7 @@ int drm_dsc_setup_rc_params(struct drm_dsc_config *vdsc_cfg, enum drm_dsc_params > int drm_dsc_compute_rc_parameters(struct drm_dsc_config *vdsc_cfg); > u8 drm_dsc_initial_scale_value(const struct drm_dsc_config *dsc); > u32 drm_dsc_flatness_det_thresh(const struct drm_dsc_config *dsc); > +u32 drm_dsc_get_bpp_int(const struct drm_dsc_config *vdsc_cfg); > > #endif /* _DRM_DSC_HELPER_H_ */ > > > -- > 2.40.1 >
On 5/24/2023 12:14 PM, Marijn Suijten wrote: > On 2023-05-24 10:45:16, Jessica Zhang wrote: >> Add helper to get the integer value of drm_dsc_config.bits_per_pixel >> >> Reviewed-by: Marijn Suijten <marijn.suijten@somainline.org> >> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> >> Signed-off-by: Jessica Zhang <quic_jesszhan@quicinc.com> > > Nit: if there comes a v15, perhaps this can be squashed with patch 1/9? > I always thought they were separate because one extends the header while > this extends the C file... but now both extend the C file with helpers. Hi Marijn, Sure, will squash this if there is a v15. > >> --- >> drivers/gpu/drm/display/drm_dsc_helper.c | 13 +++++++++++++ >> include/drm/display/drm_dsc_helper.h | 1 + >> 2 files changed, 14 insertions(+) >> >> diff --git a/drivers/gpu/drm/display/drm_dsc_helper.c b/drivers/gpu/drm/display/drm_dsc_helper.c >> index b31fe9849784..4424380c6cb6 100644 >> --- a/drivers/gpu/drm/display/drm_dsc_helper.c >> +++ b/drivers/gpu/drm/display/drm_dsc_helper.c >> @@ -1436,6 +1436,19 @@ int drm_dsc_compute_rc_parameters(struct drm_dsc_config *vdsc_cfg) >> } >> EXPORT_SYMBOL(drm_dsc_compute_rc_parameters); >> >> +/** >> + * drm_dsc_get_bpp_int() - Get integer bits per pixel value for the given DRM DSC config >> + * @vdsc_cfg: Pointer to DRM DSC config struct >> + * >> + * Return: Integer BPP value >> + */ >> +u32 drm_dsc_get_bpp_int(const struct drm_dsc_config *vdsc_cfg) >> +{ >> + WARN_ON_ONCE(vdsc_cfg->bits_per_pixel & 0xf); > > You did not add linux/bug.h back, presumably because Dmitry added > another use of WARN_ON_ONCE to this file in a previous series and it > compiles fine as the definition trickles in via another header? Yep, this compiles fine without any error or warning. Thanks, Jessica Zhang > > - Marijn > >> + return vdsc_cfg->bits_per_pixel >> 4; >> +} >> +EXPORT_SYMBOL(drm_dsc_get_bpp_int); >> + >> /** >> * drm_dsc_initial_scale_value() - Calculate the initial scale value for the given DSC config >> * @dsc: Pointer to DRM DSC config struct >> diff --git a/include/drm/display/drm_dsc_helper.h b/include/drm/display/drm_dsc_helper.h >> index f4e18e5d077a..913aa2071232 100644 >> --- a/include/drm/display/drm_dsc_helper.h >> +++ b/include/drm/display/drm_dsc_helper.h >> @@ -27,6 +27,7 @@ int drm_dsc_setup_rc_params(struct drm_dsc_config *vdsc_cfg, enum drm_dsc_params >> int drm_dsc_compute_rc_parameters(struct drm_dsc_config *vdsc_cfg); >> u8 drm_dsc_initial_scale_value(const struct drm_dsc_config *dsc); >> u32 drm_dsc_flatness_det_thresh(const struct drm_dsc_config *dsc); >> +u32 drm_dsc_get_bpp_int(const struct drm_dsc_config *vdsc_cfg); >> >> #endif /* _DRM_DSC_HELPER_H_ */ >> >> >> -- >> 2.40.1 >>
On 2023-05-24 15:38:23, Jessica Zhang wrote: <snip> > >> + WARN_ON_ONCE(vdsc_cfg->bits_per_pixel & 0xf); > > > > You did not add linux/bug.h back, presumably because Dmitry added > > another use of WARN_ON_ONCE to this file in a previous series and it > > compiles fine as the definition trickles in via another header? > > Yep, this compiles fine without any error or warning. Yes it does, just curious (CC Dmitry) if that is expected/intended: I am not familiar enough with the current header includes to say for sure. Dmitry seemed to rely on it already being available in https://git.kernel.org/torvalds/c/2b470e5531f57c1b9bfa129cca0ee17a2ecd2183 but that could have been an oversight? - Marijn
On Thu, 25 May 2023 at 23:18, Marijn Suijten <marijn.suijten@somainline.org> wrote: > > On 2023-05-24 15:38:23, Jessica Zhang wrote: > <snip> > > >> + WARN_ON_ONCE(vdsc_cfg->bits_per_pixel & 0xf); > > > > > > You did not add linux/bug.h back, presumably because Dmitry added > > > another use of WARN_ON_ONCE to this file in a previous series and it > > > compiles fine as the definition trickles in via another header? > > > > Yep, this compiles fine without any error or warning. > > Yes it does, just curious (CC Dmitry) if that is expected/intended: I am > not familiar enough with the current header includes to say for sure. > > Dmitry seemed to rely on it already being available in > https://git.kernel.org/torvalds/c/2b470e5531f57c1b9bfa129cca0ee17a2ecd2183 I think I did not care about including <linux/bug.h> I checked that current set of headers provides WARN_ON_ONCE, that's all. > but that could have been an oversight? > > - Marijn
diff --git a/drivers/gpu/drm/display/drm_dsc_helper.c b/drivers/gpu/drm/display/drm_dsc_helper.c index b31fe9849784..4424380c6cb6 100644 --- a/drivers/gpu/drm/display/drm_dsc_helper.c +++ b/drivers/gpu/drm/display/drm_dsc_helper.c @@ -1436,6 +1436,19 @@ int drm_dsc_compute_rc_parameters(struct drm_dsc_config *vdsc_cfg) } EXPORT_SYMBOL(drm_dsc_compute_rc_parameters); +/** + * drm_dsc_get_bpp_int() - Get integer bits per pixel value for the given DRM DSC config + * @vdsc_cfg: Pointer to DRM DSC config struct + * + * Return: Integer BPP value + */ +u32 drm_dsc_get_bpp_int(const struct drm_dsc_config *vdsc_cfg) +{ + WARN_ON_ONCE(vdsc_cfg->bits_per_pixel & 0xf); + return vdsc_cfg->bits_per_pixel >> 4; +} +EXPORT_SYMBOL(drm_dsc_get_bpp_int); + /** * drm_dsc_initial_scale_value() - Calculate the initial scale value for the given DSC config * @dsc: Pointer to DRM DSC config struct diff --git a/include/drm/display/drm_dsc_helper.h b/include/drm/display/drm_dsc_helper.h index f4e18e5d077a..913aa2071232 100644 --- a/include/drm/display/drm_dsc_helper.h +++ b/include/drm/display/drm_dsc_helper.h @@ -27,6 +27,7 @@ int drm_dsc_setup_rc_params(struct drm_dsc_config *vdsc_cfg, enum drm_dsc_params int drm_dsc_compute_rc_parameters(struct drm_dsc_config *vdsc_cfg); u8 drm_dsc_initial_scale_value(const struct drm_dsc_config *dsc); u32 drm_dsc_flatness_det_thresh(const struct drm_dsc_config *dsc); +u32 drm_dsc_get_bpp_int(const struct drm_dsc_config *vdsc_cfg); #endif /* _DRM_DSC_HELPER_H_ */