[PATCH 4/4] drm/vc4: Implement atomic_print_state for HVS channel state

Daniel Vetter daniel at ffwll.ch
Thu Mar 24 17:14:55 UTC 2022


On Thu, Mar 24, 2022 at 03:47:24PM +0100, Maxime Ripard wrote:
> The HVS state configuration is useful when debugging what's going on in
> the vc4 hardware pipeline. Add an implementation of .atomic_print_state.
> 
> Signed-off-by: Maxime Ripard <maxime at cerno.tech>

On the two vc4 patches:

Acked-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> ---
>  drivers/gpu/drm/vc4/vc4_kms.c | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
> 
> diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c
> index 26b771c919b1..bffd81d4bfcf 100644
> --- a/drivers/gpu/drm/vc4/vc4_kms.c
> +++ b/drivers/gpu/drm/vc4/vc4_kms.c
> @@ -701,9 +701,26 @@ static void vc4_hvs_channels_destroy_state(struct drm_private_obj *obj,
>  	kfree(hvs_state);
>  }
>  
> +static void vc4_hvs_channels_print_state(struct drm_printer *p,
> +					 const struct drm_private_state *state)
> +{
> +	struct vc4_hvs_state *hvs_state = to_vc4_hvs_state(state);
> +	unsigned int i;
> +
> +	drm_printf(p, "HVS State\n");
> +	drm_printf(p, "\tCore Clock Rate: %lu\n", hvs_state->core_clock_rate);
> +
> +	for (i = 0; i < HVS_NUM_CHANNELS; i++) {
> +		drm_printf(p, "\tChannel %d\n", i);
> +		drm_printf(p, "\t\tin use=%d\n", hvs_state->fifo_state[i].in_use);
> +		drm_printf(p, "\t\tload=%lu\n", hvs_state->fifo_state[i].fifo_load);
> +	}
> +}
> +
>  static const struct drm_private_state_funcs vc4_hvs_state_funcs = {
>  	.atomic_duplicate_state = vc4_hvs_channels_duplicate_state,
>  	.atomic_destroy_state = vc4_hvs_channels_destroy_state,
> +	.atomic_print_state = vc4_hvs_channels_print_state,
>  };
>  
>  static void vc4_hvs_channels_obj_fini(struct drm_device *dev, void *unused)
> -- 
> 2.35.1
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the dri-devel mailing list