On Sun, Jan 25, 2026 at 6:37 AM Dmitry Baryshkov <[email protected]> wrote: > > Currently the database stores macrotile_mode in the data. However it > can be derived from the rest of the data: it should be used for UBWC > encoding >= 3.0 except for several corner cases (SM8150 and SC8180X).
FWIW, there is a UBWC version 3.1 not currently reflected in the code which adds the 8-channel macrotile mode. If we just added that and made SM8150 and SC8180X be 3.1 then we could derive it from the version. Connor > > The ubwc_bank_spread field seems to be based on the impreside data we > had for the MDSS and DPU programming. In some cases UBWC engine inside > the display controller doesn't need to program it, although bank spread > is to be enabled. > > Bank swizzle is also currently stored as is, but it is almost standard > (banks 1-3 for UBWC 1.0 and 2-3 for other versions), the only exception > being Lemans (it uses only bank 3). > > Add helpers returning values from the config for now. They will be > rewritten later, in a separate series, but having the helper now > simplifies refacroring the code later. > > Tested-by: Wangao Wang <[email protected]> > Signed-off-by: Dmitry Baryshkov <[email protected]> > --- > include/linux/soc/qcom/ubwc.h | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/include/linux/soc/qcom/ubwc.h b/include/linux/soc/qcom/ubwc.h > index 5bdeca18d54d..f5d0e2341261 100644 > --- a/include/linux/soc/qcom/ubwc.h > +++ b/include/linux/soc/qcom/ubwc.h > @@ -84,4 +84,19 @@ static inline bool qcom_ubwc_min_acc_length_64b(const > struct qcom_ubwc_cfg_data > cfg->ubwc_dec_version == UBWC_3_0); > } > > +static inline bool qcom_ubwc_macrotile_mode(const struct qcom_ubwc_cfg_data > *cfg) > +{ > + return cfg->macrotile_mode; > +} > + > +static inline bool qcom_ubwc_bank_spread(const struct qcom_ubwc_cfg_data > *cfg) > +{ > + return cfg->ubwc_bank_spread; > +} > + > +static inline u32 qcom_ubwc_swizzle(const struct qcom_ubwc_cfg_data *cfg) > +{ > + return cfg->ubwc_swizzle; > +} > + > #endif /* __QCOM_UBWC_H__ */ > > -- > 2.47.3 >
