Re: [Freedreno] [PATCH v2 5/6] drm/msm/dpu: drop unused lm_max_width from RM
On 16/05/2021 04:21, Arnaud Vrac wrote: Hi Dmitry, Le dim. 16 mai 2021 à 00:58, Dmitry Baryshkov a écrit : No code uses lm_max_width from resource manager, so drop it. I have a pending patch which uses this value to properly determine the number of LMs to use in the topology. Currently the code uses a hardcoded value of MAX_HDISPLAY_SPLIT (1080), but in reality I believe it should be the lm max width (typically 2560). This will avoid using two LMs to render resolutions like 1280x720 or 1920x1080. As a second thought, I think we better have this value in the hw_catalog itself rather than calculating it in the dpu_rm. WDYT? I haven't managed to make hdmi work yet on DPU (testing on MSM8998) so I'm not ready to send the patch yet, but it doesn't seem to trigger any error. -Arnaud Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c | 12 drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h | 4 2 files changed, 16 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c index c36700a06ff2..ec4387ad1182 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c @@ -88,18 +88,6 @@ int dpu_rm_init(struct dpu_rm *rm, goto fail; } rm->mixer_blks[lm->id - LM_0] = &hw->base; - - if (!rm->lm_max_width) { - rm->lm_max_width = lm->sblk->maxwidth; - } else if (rm->lm_max_width != lm->sblk->maxwidth) { - /* -* Don't expect to have hw where lm max widths differ. -* If found, take the min. -*/ - DPU_ERROR("unsupported: lm maxwidth differs\n"); - if (rm->lm_max_width > lm->sblk->maxwidth) - rm->lm_max_width = lm->sblk->maxwidth; - } } for (i = 0; i < cat->ctl_count; i++) { diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h index ee90b1233430..0c9113581d71 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h @@ -17,14 +17,10 @@ struct dpu_global_state; * struct dpu_rm - DPU dynamic hardware resource manager * @mixer_blks: array of layer mixer hardware resources * @ctl_blks: array of ctl hardware resources - * @lm_max_width: cached layer mixer maximum width - * @rm_lock: resource manager mutex */ struct dpu_rm { struct dpu_hw_blk *mixer_blks[LM_MAX - LM_0]; struct dpu_hw_blk *ctl_blks[CTL_MAX - CTL_0]; - - uint32_t lm_max_width; }; struct dpu_kms; -- 2.30.2 ___ Freedreno mailing list Freedreno@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/freedreno -- With best wishes Dmitry ___ Freedreno mailing list Freedreno@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/freedreno
Re: [Freedreno] [PATCH v2 5/6] drm/msm/dpu: drop unused lm_max_width from RM
Hi Dmitry, Le dim. 16 mai 2021 à 00:58, Dmitry Baryshkov a écrit : > > No code uses lm_max_width from resource manager, so drop it. I have a pending patch which uses this value to properly determine the number of LMs to use in the topology. Currently the code uses a hardcoded value of MAX_HDISPLAY_SPLIT (1080), but in reality I believe it should be the lm max width (typically 2560). This will avoid using two LMs to render resolutions like 1280x720 or 1920x1080. I haven't managed to make hdmi work yet on DPU (testing on MSM8998) so I'm not ready to send the patch yet, but it doesn't seem to trigger any error. -Arnaud > > Signed-off-by: Dmitry Baryshkov > --- > drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c | 12 > drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h | 4 > 2 files changed, 16 deletions(-) > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c > b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c > index c36700a06ff2..ec4387ad1182 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c > @@ -88,18 +88,6 @@ int dpu_rm_init(struct dpu_rm *rm, > goto fail; > } > rm->mixer_blks[lm->id - LM_0] = &hw->base; > - > - if (!rm->lm_max_width) { > - rm->lm_max_width = lm->sblk->maxwidth; > - } else if (rm->lm_max_width != lm->sblk->maxwidth) { > - /* > -* Don't expect to have hw where lm max widths differ. > -* If found, take the min. > -*/ > - DPU_ERROR("unsupported: lm maxwidth differs\n"); > - if (rm->lm_max_width > lm->sblk->maxwidth) > - rm->lm_max_width = lm->sblk->maxwidth; > - } > } > > for (i = 0; i < cat->ctl_count; i++) { > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h > b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h > index ee90b1233430..0c9113581d71 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h > @@ -17,14 +17,10 @@ struct dpu_global_state; > * struct dpu_rm - DPU dynamic hardware resource manager > * @mixer_blks: array of layer mixer hardware resources > * @ctl_blks: array of ctl hardware resources > - * @lm_max_width: cached layer mixer maximum width > - * @rm_lock: resource manager mutex > */ > struct dpu_rm { > struct dpu_hw_blk *mixer_blks[LM_MAX - LM_0]; > struct dpu_hw_blk *ctl_blks[CTL_MAX - CTL_0]; > - > - uint32_t lm_max_width; > }; > > struct dpu_kms; > -- > 2.30.2 > > ___ > Freedreno mailing list > Freedreno@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/freedreno ___ Freedreno mailing list Freedreno@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/freedreno