Re: [PATCH v2 0/4] Retrieve information about DDR from SMEM

From: Dmitry Baryshkov
Date: Thu Apr 10 2025 - 15:49:49 EST


On Thu, Apr 10, 2025 at 07:43:43PM +0200, Konrad Dybcio wrote:
> SMEM allows the OS to retrieve information about the DDR memory.
> Among that information, is a semi-magic value called 'HBB', or Highest
> Bank address Bit, which multimedia drivers (for hardware like Adreno
> and MDSS) must retrieve in order to program the IP blocks correctly.
>
> This series introduces an API to retrieve that value, uses it in the
> aforementioned programming sequences and exposes available DDR
> frequencies in debugfs (to e.g. pass to aoss_qmp debugfs). More
> information can be exposed in the future, as needed.
>
> Signed-off-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxxxx>
> ---
> Changes in v2:
> - Avoid checking for < 0 on unsigned types
> - Overwrite Adreno UBWC data to keep the data shared with userspace
> coherent with what's programmed into the hardware
> - Call get_hbb() in msm_mdss_enable() instead of all UBWC setup
> branches separately
> - Pick up Bjorn's rb on patch 1
> - Link to v1: https://lore.kernel.org/r/20250409-topic-smem_dramc-v1-0-94d505cd5593@xxxxxxxxxxxxxxxx
>
> ---
> Konrad Dybcio (4):
> soc: qcom: Expose DDR data from SMEM
> drm/msm/a5xx: Get HBB dynamically, if available
> drm/msm/a6xx: Get HBB dynamically, if available
> drm/msm/mdss: Get HBB dynamically, if available
>
> drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 12 +-
> drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 15 +-
> drivers/gpu/drm/msm/msm_mdss.c | 30 ++--

This misses the dpu_hw_sspp.c, which uses ubwc_config from msm_mdss.c
(but the config isn't being updated with the acquired HBB value).

I'd suggest behaving it slightly differntly: can we please have a helper
module (in drivers/soc/qcom) which would return UBWC configuration data.
We can start with HBB values, migrating the rest of UBWC-related flags
one by one.

Also, were you able to solve the issue of the platforms where GPU and
MDSS disagreed upon HBB data?

> drivers/soc/qcom/Makefile | 3 +-
> drivers/soc/qcom/smem.c | 14 +-
> drivers/soc/qcom/smem.h | 9 ++
> drivers/soc/qcom/smem_dramc.c | 287 ++++++++++++++++++++++++++++++++++
> include/linux/soc/qcom/smem.h | 4 +
> 8 files changed, 360 insertions(+), 14 deletions(-)
> ---
> base-commit: 46086739de22d72319e37c37a134d32db52e1c5c
> change-id: 20250409-topic-smem_dramc-6467187ac865
>
> Best regards,
> --
> Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxxxx>
>

--
With best wishes
Dmitry