On 6.07.2023 23:10, Rob Clark wrote: > From: Rob Clark <robdclark@xxxxxxxxxxxx> > > This is used in a few places, including one that is parsed by userspace > tools. So let's standardize it a bit better. > > Signed-off-by: Rob Clark <robdclark@xxxxxxxxxxxx> > --- Userspace parsed this weird string instead of the hex-based chipid? weird^2 Konrad > drivers/gpu/drm/msm/adreno/adreno_device.c | 8 +++----- > drivers/gpu/drm/msm/adreno/adreno_gpu.c | 19 ++++++++----------- > drivers/gpu/drm/msm/adreno/adreno_gpu.h | 6 ++++++ > 3 files changed, 17 insertions(+), 16 deletions(-) > > diff --git a/drivers/gpu/drm/msm/adreno/adreno_device.c b/drivers/gpu/drm/msm/adreno/adreno_device.c > index dcd6363ac7b0..fd2e183bce60 100644 > --- a/drivers/gpu/drm/msm/adreno/adreno_device.c > +++ b/drivers/gpu/drm/msm/adreno/adreno_device.c > @@ -661,14 +661,12 @@ static int adreno_bind(struct device *dev, struct device *master, void *data) > info = adreno_info(config.rev); > > if (!info) { > - dev_warn(drm->dev, "Unknown GPU revision: %u.%u.%u.%u\n", > - config.rev.core, config.rev.major, > - config.rev.minor, config.rev.patchid); > + dev_warn(drm->dev, "Unknown GPU revision: %"ADRENO_CHIPID_FMT"\n", > + ADRENO_CHIPID_ARGS(config.rev)); > return -ENXIO; > } > > - DBG("Found GPU: %u.%u.%u.%u", config.rev.core, config.rev.major, > - config.rev.minor, config.rev.patchid); > + DBG("Found GPU: %"ADRENO_CHIPID_FMT, ADRENO_CHIPID_ARGS(config.rev)); > > priv->is_a2xx = info->family < ADRENO_3XX; > priv->has_cached_coherent = > diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/adreno/adreno_gpu.c > index 75ff7fb46099..1a982a926f21 100644 > --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c > +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c > @@ -847,10 +847,9 @@ void adreno_show(struct msm_gpu *gpu, struct msm_gpu_state *state, > if (IS_ERR_OR_NULL(state)) > return; > > - drm_printf(p, "revision: %d (%d.%d.%d.%d)\n", > - adreno_gpu->info->revn, adreno_gpu->rev.core, > - adreno_gpu->rev.major, adreno_gpu->rev.minor, > - adreno_gpu->rev.patchid); > + drm_printf(p, "revision: %u (%"ADRENO_CHIPID_FMT")\n", > + adreno_gpu->info->revn, > + ADRENO_CHIPID_ARGS(adreno_gpu->rev)); > /* > * If this is state collected due to iova fault, so fault related info > * > @@ -921,10 +920,9 @@ void adreno_dump_info(struct msm_gpu *gpu) > struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu); > int i; > > - printk("revision: %d (%d.%d.%d.%d)\n", > - adreno_gpu->info->revn, adreno_gpu->rev.core, > - adreno_gpu->rev.major, adreno_gpu->rev.minor, > - adreno_gpu->rev.patchid); > + printk("revision: %u (%"ADRENO_CHIPID_FMT")\n", > + adreno_gpu->info->revn, > + ADRENO_CHIPID_ARGS(adreno_gpu->rev)); > > for (i = 0; i < gpu->nr_rings; i++) { > struct msm_ringbuffer *ring = gpu->rb[i]; > @@ -1105,9 +1103,8 @@ int adreno_gpu_init(struct drm_device *drm, struct platform_device *pdev, > speedbin = 0xffff; > adreno_gpu->speedbin = (uint16_t) (0xffff & speedbin); > > - gpu_name = devm_kasprintf(dev, GFP_KERNEL, "%d.%d.%d.%d", > - rev->core, rev->major, rev->minor, > - rev->patchid); > + gpu_name = devm_kasprintf(dev, GFP_KERNEL, "%"ADRENO_CHIPID_FMT, > + ADRENO_CHIPID_ARGS(config->rev)); > if (!gpu_name) > return -ENOMEM; > > diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.h b/drivers/gpu/drm/msm/adreno/adreno_gpu.h > index 2fa14dcd4e40..73e7155f164c 100644 > --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.h > +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.h > @@ -66,6 +66,12 @@ struct adreno_rev { > #define ADRENO_REV(core, major, minor, patchid) \ > ((struct adreno_rev){ core, major, minor, patchid }) > > +/* Helper for formating the chip_id in the way that userspace tools like > + * crashdec expect. > + */ > +#define ADRENO_CHIPID_FMT "u.%u.%u.%u" > +#define ADRENO_CHIPID_ARGS(_r) (_r).core, (_r).major, (_r).minor, (_r).patchid > + > struct adreno_gpu_funcs { > struct msm_gpu_funcs base; > int (*get_timestamp)(struct msm_gpu *gpu, uint64_t *value);