[PATCH 1/5] drm/komeda: Remove clock ratio property
james qian wang (Arm Technology China)
james.qian.wang at arm.com
Tue Jul 9 08:06:53 UTC 2019
On Fri, Jul 05, 2019 at 02:10:02PM +0200, Daniel Vetter wrote:
> Properties are uapi like anything else, with all the usual rules
> regarding review, testcases, open source userspace ... Furthermore
> driver-private kms properties are highly discouraged, over the past
> few years we've realized we need to make a serious effort at better
> standardizing this stuff.
>
> >From the discussion with Liviu the solution for these here needs
> multiple pieces:
>
> - For being able to reliably read the memory clock we need a DT
> property, plus maybe DT override snippets to fix it if it's wrong.
>
> - For exposing plane limitations to userspace there's TEST_ONLY. There
> is a bit a gap in telling userspace better that scaling doesn't work
> due to limits (atm a good strategy is to retry again without scaling
> when adding a plane didn't work the first time around). But that
> needs a more generic solution, not exposing something extremely
> komeda specific.
>
> - If this is needed by validation tools, you can still expose it in
> debugfs. We have an entire nice infrastructure for debug printing of
> kms objects already, see the various atomic_print_state callbacks
> and infrastructure around them.
>
> Fixes: 1f7f9ab7900e ("drm/komeda: Add engine clock requirement check for the downscaling")
> Cc: Lowry Li (Arm Technology China) <lowry.li at arm.com>
> Cc: James Qian Wang (Arm Technology China) <james.qian.wang at arm.com>
> Cc: Liviu Dudau <liviu.dudau at arm.com>
> Cc: Mali DP Maintainers <malidp at foss.arm.com>
> Cc: Brian Starkey <brian.starkey at arm.com>
> Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>
Hi Daniel:
Thank you for the patch!
Reviewed-by: James Qian Wang (Arm Technology China) <james.qian.wang at arm.com>
> ---
> .../gpu/drm/arm/display/komeda/komeda_crtc.c | 39 -------------------
> .../gpu/drm/arm/display/komeda/komeda_kms.h | 3 --
> 2 files changed, 42 deletions(-)
>
> diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c b/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c
> index 3f222f464eb2..e852dc27f1b8 100644
> --- a/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c
> +++ b/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c
> @@ -454,24 +454,6 @@ static void komeda_crtc_vblank_disable(struct drm_crtc *crtc)
> mdev->funcs->on_off_vblank(mdev, kcrtc->master->id, false);
> }
>
> -static int
> -komeda_crtc_atomic_get_property(struct drm_crtc *crtc,
> - const struct drm_crtc_state *state,
> - struct drm_property *property, uint64_t *val)
> -{
> - struct komeda_crtc *kcrtc = to_kcrtc(crtc);
> - struct komeda_crtc_state *kcrtc_st = to_kcrtc_st(state);
> -
> - if (property == kcrtc->clock_ratio_property) {
> - *val = kcrtc_st->clock_ratio;
> - } else {
> - DRM_DEBUG_DRIVER("Unknown property %s\n", property->name);
> - return -EINVAL;
> - }
> -
> - return 0;
> -}
> -
> static const struct drm_crtc_funcs komeda_crtc_funcs = {
> .gamma_set = drm_atomic_helper_legacy_gamma_set,
> .destroy = drm_crtc_cleanup,
> @@ -482,7 +464,6 @@ static const struct drm_crtc_funcs komeda_crtc_funcs = {
> .atomic_destroy_state = komeda_crtc_atomic_destroy_state,
> .enable_vblank = komeda_crtc_vblank_enable,
> .disable_vblank = komeda_crtc_vblank_disable,
> - .atomic_get_property = komeda_crtc_atomic_get_property,
> };
>
> int komeda_kms_setup_crtcs(struct komeda_kms_dev *kms,
> @@ -518,22 +499,6 @@ int komeda_kms_setup_crtcs(struct komeda_kms_dev *kms,
> return 0;
> }
>
> -static int komeda_crtc_create_clock_ratio_property(struct komeda_crtc *kcrtc)
> -{
> - struct drm_crtc *crtc = &kcrtc->base;
> - struct drm_property *prop;
> -
> - prop = drm_property_create_range(crtc->dev, DRM_MODE_PROP_ATOMIC,
> - "CLOCK_RATIO", 0, U64_MAX);
> - if (!prop)
> - return -ENOMEM;
> -
> - drm_object_attach_property(&crtc->base, prop, 0);
> - kcrtc->clock_ratio_property = prop;
> -
> - return 0;
> -}
> -
> static int komeda_crtc_create_slave_planes_property(struct komeda_crtc *kcrtc)
> {
> struct drm_crtc *crtc = &kcrtc->base;
> @@ -590,10 +555,6 @@ static int komeda_crtc_add(struct komeda_kms_dev *kms,
>
> crtc->port = kcrtc->master->of_output_port;
>
> - err = komeda_crtc_create_clock_ratio_property(kcrtc);
> - if (err)
> - return err;
> -
> err = komeda_crtc_create_slave_planes_property(kcrtc);
> if (err)
> return err;
> diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_kms.h b/drivers/gpu/drm/arm/display/komeda/komeda_kms.h
> index 219fa3f0c336..2775f34bf4ab 100644
> --- a/drivers/gpu/drm/arm/display/komeda/komeda_kms.h
> +++ b/drivers/gpu/drm/arm/display/komeda/komeda_kms.h
> @@ -95,9 +95,6 @@ struct komeda_crtc {
> /** @disable_done: this flip_done is for tracing the disable */
> struct completion *disable_done;
>
> - /** @clock_ratio_property: property for ratio of (aclk << 32)/pxlclk */
> - struct drm_property *clock_ratio_property;
> -
> /** @slave_planes_property: property for slaves of the planes */
> struct drm_property *slave_planes_property;
> };
> --
> 2.20.1
More information about the dri-devel
mailing list