Message ID | 20230329-rfc-msm-dsc-helper-v12-5-9cdb7401f614@quicinc.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Introduce MSM-specific DSC helpers | expand |
On 2023-05-17 15:27:18, Jessica Zhang wrote: > Introduce MSM-specific DSC helper methods, as some calculations are > common between DP and DSC. > > Signed-off-by: Jessica Zhang <quic_jesszhan@quicinc.com> > --- > drivers/gpu/drm/msm/msm_dsc_helper.h | 38 ++++++++++++++++++++++++++++++++++++ > 1 file changed, 38 insertions(+) > > diff --git a/drivers/gpu/drm/msm/msm_dsc_helper.h b/drivers/gpu/drm/msm/msm_dsc_helper.h > new file mode 100644 > index 000000000000..c7d7ed026368 > --- /dev/null > +++ b/drivers/gpu/drm/msm/msm_dsc_helper.h > @@ -0,0 +1,38 @@ > +/* SPDX-License-Identifier: GPL-2.0-only */ > +/* > + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved > + * > + * Helper methods for MSM-specific DSC calculations that are common between timing engine, > + * DSI, and DP. > + */ > + > +#ifndef MSM_DSC_HELPER_H_ > +#define MSM_DSC_HELPER_H_ > + > +#include <linux/math.h> > +#include <drm/display/drm_dsc_helper.h> > + > +/** > + * msm_dsc_calculate_slices_per_intf() - get number of slices per interface Oh no, we just went to get to match the function below, and now this is back at calculate. My bad, I wasn't clear enough in previous review: I meant the ext after the -, so "get number of" -> "calculate number of". Sorry! > + * @dsc: Pointer to drm dsc config struct > + * @intf_width: interface width in pixels > + * Returns: Integer representing the number of slices for the given interface > + */ > +static inline u32 msm_dsc_calculate_slices_per_intf(const struct drm_dsc_config *dsc, int intf_width) u32... also for intf_width? - Marijn > +{ > + return DIV_ROUND_UP(intf_width, dsc->slice_width); > +} > + > +/** > + * msm_dsc_get_bytes_per_line() - calculate bytes per line > + * @dsc: Pointer to drm dsc config struct > + * Returns: Integer value representing bytes per line. DSI and DP need > + * to perform further calculations to turn this into pclk_per_intf, > + * such as dividing by different values depending on if widebus is enabled. > + */ > +static inline u32 msm_dsc_get_bytes_per_line(const struct drm_dsc_config *dsc) > +{ > + return dsc->slice_count * dsc->slice_chunk_size; > +} > + > +#endif /* MSM_DSC_HELPER_H_ */ > > -- > 2.40.1 >
On 5/17/2023 4:01 PM, Marijn Suijten wrote: > On 2023-05-17 15:27:18, Jessica Zhang wrote: >> Introduce MSM-specific DSC helper methods, as some calculations are >> common between DP and DSC. >> >> Signed-off-by: Jessica Zhang <quic_jesszhan@quicinc.com> >> --- >> drivers/gpu/drm/msm/msm_dsc_helper.h | 38 ++++++++++++++++++++++++++++++++++++ >> 1 file changed, 38 insertions(+) >> >> diff --git a/drivers/gpu/drm/msm/msm_dsc_helper.h b/drivers/gpu/drm/msm/msm_dsc_helper.h >> new file mode 100644 >> index 000000000000..c7d7ed026368 >> --- /dev/null >> +++ b/drivers/gpu/drm/msm/msm_dsc_helper.h >> @@ -0,0 +1,38 @@ >> +/* SPDX-License-Identifier: GPL-2.0-only */ >> +/* >> + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved >> + * >> + * Helper methods for MSM-specific DSC calculations that are common between timing engine, >> + * DSI, and DP. >> + */ >> + >> +#ifndef MSM_DSC_HELPER_H_ >> +#define MSM_DSC_HELPER_H_ >> + >> +#include <linux/math.h> >> +#include <drm/display/drm_dsc_helper.h> >> + >> +/** >> + * msm_dsc_calculate_slices_per_intf() - get number of slices per interface > > Oh no, we just went to get to match the function below, and now this is > back at calculate. My bad, I wasn't clear enough in previous review: I > meant the ext after the -, so "get number of" -> "calculate number of". Hi Marijn, Got it. > > Sorry! > >> + * @dsc: Pointer to drm dsc config struct >> + * @intf_width: interface width in pixels >> + * Returns: Integer representing the number of slices for the given interface >> + */ >> +static inline u32 msm_dsc_calculate_slices_per_intf(const struct drm_dsc_config *dsc, int intf_width) > > u32... also for intf_width? Acked. Thanks, Jessica Zhang > > - Marijn > >> +{ >> + return DIV_ROUND_UP(intf_width, dsc->slice_width); >> +} >> + >> +/** >> + * msm_dsc_get_bytes_per_line() - calculate bytes per line >> + * @dsc: Pointer to drm dsc config struct >> + * Returns: Integer value representing bytes per line. DSI and DP need >> + * to perform further calculations to turn this into pclk_per_intf, >> + * such as dividing by different values depending on if widebus is enabled. >> + */ >> +static inline u32 msm_dsc_get_bytes_per_line(const struct drm_dsc_config *dsc) >> +{ >> + return dsc->slice_count * dsc->slice_chunk_size; >> +} >> + >> +#endif /* MSM_DSC_HELPER_H_ */ >> >> -- >> 2.40.1 >>
diff --git a/drivers/gpu/drm/msm/msm_dsc_helper.h b/drivers/gpu/drm/msm/msm_dsc_helper.h new file mode 100644 index 000000000000..c7d7ed026368 --- /dev/null +++ b/drivers/gpu/drm/msm/msm_dsc_helper.h @@ -0,0 +1,38 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved + * + * Helper methods for MSM-specific DSC calculations that are common between timing engine, + * DSI, and DP. + */ + +#ifndef MSM_DSC_HELPER_H_ +#define MSM_DSC_HELPER_H_ + +#include <linux/math.h> +#include <drm/display/drm_dsc_helper.h> + +/** + * msm_dsc_calculate_slices_per_intf() - get number of slices per interface + * @dsc: Pointer to drm dsc config struct + * @intf_width: interface width in pixels + * Returns: Integer representing the number of slices for the given interface + */ +static inline u32 msm_dsc_calculate_slices_per_intf(const struct drm_dsc_config *dsc, int intf_width) +{ + return DIV_ROUND_UP(intf_width, dsc->slice_width); +} + +/** + * msm_dsc_get_bytes_per_line() - calculate bytes per line + * @dsc: Pointer to drm dsc config struct + * Returns: Integer value representing bytes per line. DSI and DP need + * to perform further calculations to turn this into pclk_per_intf, + * such as dividing by different values depending on if widebus is enabled. + */ +static inline u32 msm_dsc_get_bytes_per_line(const struct drm_dsc_config *dsc) +{ + return dsc->slice_count * dsc->slice_chunk_size; +} + +#endif /* MSM_DSC_HELPER_H_ */
Introduce MSM-specific DSC helper methods, as some calculations are common between DP and DSC. Signed-off-by: Jessica Zhang <quic_jesszhan@quicinc.com> --- drivers/gpu/drm/msm/msm_dsc_helper.h | 38 ++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+)