From patchwork Fri Jul 5 12:10:02 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 11032527 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 02AF714DB for ; Fri, 5 Jul 2019 12:10:17 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E386E28758 for ; Fri, 5 Jul 2019 12:10:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D507428A80; Fri, 5 Jul 2019 12:10:16 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 3487628758 for ; Fri, 5 Jul 2019 12:10:16 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 6975789AB9; Fri, 5 Jul 2019 12:10:14 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-ed1-x542.google.com (mail-ed1-x542.google.com [IPv6:2a00:1450:4864:20::542]) by gabe.freedesktop.org (Postfix) with ESMTPS id 933F089AB9 for ; Fri, 5 Jul 2019 12:10:13 +0000 (UTC) Received: by mail-ed1-x542.google.com with SMTP id p15so8051853eds.8 for ; Fri, 05 Jul 2019 05:10:13 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=osFDVUXQl8diERWFxgIWc6DoKYHsYEo9qu7Q5fX1bFU=; b=BfpvzwRMk0zYUnjc71fN9A6NMlaFMkI44qreGmbcfmN1I8+HcDyLSmPCDmtF1aNuPA l/oUM5Bc9p1PD+t4AlFks0az5T8ZKGlnzufZcGHw+zEyV85iuXzCJgMJBoluDC3qtbrq 4E3q5pFbQZDQO0VF2pVy8EVHktFJU+meaqFs/rdKqcE67qO3p0wdKBmZzcll4t8n5f+3 YYxXS3ygz3DUN+MUuu4uGzGFZi5k6mmMD6Z5jnf1PKkODjgdX6Wsn/3F9RhoPZoyi5Zc AjRLQC2GHI9/HvDqjqZNsQ7VRcHb8ib/1nVkV/+AeGfGZ+izfvYWF8icPQU9mTQyWAPW sFPw== X-Gm-Message-State: APjAAAWxgMwhaFEQ/mDwW0uSE3e0ghTWhdrI/LVbGohaO4rzLgZipjHM tiQegQ/QEkO2eH9dgPWlE+tRSmilXes= X-Google-Smtp-Source: APXvYqyzcCEFVIUwk04Drr1Rs8Rj4BUwa6EB9/6HO+CpjO4PPmKlryOaX/tTIJbrHfJOud40iwUrhA== X-Received: by 2002:a17:906:32d2:: with SMTP id k18mr3254902ejk.232.1562328611854; Fri, 05 Jul 2019 05:10:11 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:569e:0:3106:d637:d723:e855]) by smtp.gmail.com with ESMTPSA id 5sm1524350ejx.58.2019.07.05.05.10.10 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Fri, 05 Jul 2019 05:10:11 -0700 (PDT) From: Daniel Vetter To: DRI Development Subject: [PATCH 1/5] drm/komeda: Remove clock ratio property Date: Fri, 5 Jul 2019 14:10:02 +0200 Message-Id: <20190705121006.26085-1-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=osFDVUXQl8diERWFxgIWc6DoKYHsYEo9qu7Q5fX1bFU=; b=FmtdpGXzYUzVxtDH/p+n+7VXm3DWATo73rEV14aDO9lrQ2L7SqHckyQ44GAbXvQH6/ Usyznsz0/jGhC5U7JOgzb6ulfzCD4Gdn740vRmIRD8Ln3naZt+K4wjDdGjouEmfLeCzN ce0MkXgm7Vz9KUK5NfmWprdeu56/jna9fn2Wk= X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Liviu Dudau , James Qian Wang , Daniel Vetter , Mali DP Maintainers , Lowry Li Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP 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) Cc: James Qian Wang (Arm Technology China) Cc: Liviu Dudau Cc: Mali DP Maintainers Cc: Brian Starkey Signed-off-by: Daniel Vetter Reviewed-by: James Qian Wang (Arm Technology China) --- .../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; };