Message ID | 20240314-dpu-perf-rework-v3-2-79fa4e065574@linaro.org |
---|---|
State | New |
Headers | show |
Series | drm/msm/dpu: rework debugfs interface of dpu_core_perf | expand |
On 3/13/2024 6:10 PM, Dmitry Baryshkov wrote: > In preparation to refactoring the dpu_core_perf debugfs interface, > extract the bandwidth aggregation function from > _dpu_core_perf_crtc_update_bus(). > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- > drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c | 45 +++++++++++++++------------ > 1 file changed, 25 insertions(+), 20 deletions(-) > no need of core_perf : in the subject line. > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c > index 68fae048a9a8..87b892069526 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c > @@ -204,36 +204,41 @@ int dpu_core_perf_crtc_check(struct drm_crtc *crtc, > return 0; > } > > -static int _dpu_core_perf_crtc_update_bus(struct dpu_kms *kms, > - struct drm_crtc *crtc) > +static void dpu_core_perf_aggregate(struct drm_device *ddev, > + enum dpu_crtc_client_type curr_client_type, > + struct dpu_core_perf_params *perf) > { > - struct dpu_core_perf_params perf = { 0 }; > - enum dpu_crtc_client_type curr_client_type > - = dpu_crtc_get_client_type(crtc); > - struct drm_crtc *tmp_crtc; > struct dpu_crtc_state *dpu_cstate; > - int i, ret = 0; > - u64 avg_bw; > - > - if (!kms->num_paths) > - return 0; > + struct drm_crtc *tmp_crtc; > > - drm_for_each_crtc(tmp_crtc, crtc->dev) { > + drm_for_each_crtc(tmp_crtc, ddev) { > if (tmp_crtc->enabled && > - curr_client_type == > - dpu_crtc_get_client_type(tmp_crtc)) { > + curr_client_type == dpu_crtc_get_client_type(tmp_crtc)) { > dpu_cstate = to_dpu_crtc_state(tmp_crtc->state); > > - perf.max_per_pipe_ib = max(perf.max_per_pipe_ib, > - dpu_cstate->new_perf.max_per_pipe_ib); > + perf->max_per_pipe_ib = max(perf->max_per_pipe_ib, > + dpu_cstate->new_perf.max_per_pipe_ib); > > - perf.bw_ctl += dpu_cstate->new_perf.bw_ctl; > + perf->bw_ctl += dpu_cstate->new_perf.bw_ctl; > > - DRM_DEBUG_ATOMIC("crtc=%d bw=%llu paths:%d\n", > - tmp_crtc->base.id, > - dpu_cstate->new_perf.bw_ctl, kms->num_paths); > + DRM_DEBUG_ATOMIC("crtc=%d bw=%llu\n", > + tmp_crtc->base.id, > + dpu_cstate->new_perf.bw_ctl); > } > } > +} > + > +static int _dpu_core_perf_crtc_update_bus(struct dpu_kms *kms, > + struct drm_crtc *crtc) > +{ since you have fixed some of the formatting inside the function, do you also want to align struct drm_crtc *crtc with the opening braces? With that fixed, Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com> > + struct dpu_core_perf_params perf = { 0 }; > + int i, ret = 0; > + u64 avg_bw; > + > + if (!kms->num_paths) > + return 0; > + > + dpu_core_perf_aggregate(crtc->dev, dpu_crtc_get_client_type(crtc), &perf); > > avg_bw = perf.bw_ctl; > do_div(avg_bw, (kms->num_paths * 1000)); /*Bps_to_icc*/ >
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c index 68fae048a9a8..87b892069526 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c @@ -204,36 +204,41 @@ int dpu_core_perf_crtc_check(struct drm_crtc *crtc, return 0; } -static int _dpu_core_perf_crtc_update_bus(struct dpu_kms *kms, - struct drm_crtc *crtc) +static void dpu_core_perf_aggregate(struct drm_device *ddev, + enum dpu_crtc_client_type curr_client_type, + struct dpu_core_perf_params *perf) { - struct dpu_core_perf_params perf = { 0 }; - enum dpu_crtc_client_type curr_client_type - = dpu_crtc_get_client_type(crtc); - struct drm_crtc *tmp_crtc; struct dpu_crtc_state *dpu_cstate; - int i, ret = 0; - u64 avg_bw; - - if (!kms->num_paths) - return 0; + struct drm_crtc *tmp_crtc; - drm_for_each_crtc(tmp_crtc, crtc->dev) { + drm_for_each_crtc(tmp_crtc, ddev) { if (tmp_crtc->enabled && - curr_client_type == - dpu_crtc_get_client_type(tmp_crtc)) { + curr_client_type == dpu_crtc_get_client_type(tmp_crtc)) { dpu_cstate = to_dpu_crtc_state(tmp_crtc->state); - perf.max_per_pipe_ib = max(perf.max_per_pipe_ib, - dpu_cstate->new_perf.max_per_pipe_ib); + perf->max_per_pipe_ib = max(perf->max_per_pipe_ib, + dpu_cstate->new_perf.max_per_pipe_ib); - perf.bw_ctl += dpu_cstate->new_perf.bw_ctl; + perf->bw_ctl += dpu_cstate->new_perf.bw_ctl; - DRM_DEBUG_ATOMIC("crtc=%d bw=%llu paths:%d\n", - tmp_crtc->base.id, - dpu_cstate->new_perf.bw_ctl, kms->num_paths); + DRM_DEBUG_ATOMIC("crtc=%d bw=%llu\n", + tmp_crtc->base.id, + dpu_cstate->new_perf.bw_ctl); } } +} + +static int _dpu_core_perf_crtc_update_bus(struct dpu_kms *kms, + struct drm_crtc *crtc) +{ + struct dpu_core_perf_params perf = { 0 }; + int i, ret = 0; + u64 avg_bw; + + if (!kms->num_paths) + return 0; + + dpu_core_perf_aggregate(crtc->dev, dpu_crtc_get_client_type(crtc), &perf); avg_bw = perf.bw_ctl; do_div(avg_bw, (kms->num_paths * 1000)); /*Bps_to_icc*/
In preparation to refactoring the dpu_core_perf debugfs interface, extract the bandwidth aggregation function from _dpu_core_perf_crtc_update_bus(). Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c | 45 +++++++++++++++------------ 1 file changed, 25 insertions(+), 20 deletions(-)