From patchwork Fri Jul 7 19:39:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 700119 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id F2BC1C0015E for ; Fri, 7 Jul 2023 19:42:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233054AbjGGTmd (ORCPT ); Fri, 7 Jul 2023 15:42:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60930 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233051AbjGGTlR (ORCPT ); Fri, 7 Jul 2023 15:41:17 -0400 Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com [IPv6:2a00:1450:4864:20::12f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A6B222D52 for ; Fri, 7 Jul 2023 12:39:45 -0700 (PDT) Received: by mail-lf1-x12f.google.com with SMTP id 2adb3069b0e04-4fb9ae4cef6so3690010e87.3 for ; Fri, 07 Jul 2023 12:39:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1688758784; x=1691350784; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ZC0/5bXEsuHujngkcxb69wPizikqv0P8Uq9N9rSIaSc=; b=irHyIT5U6hcW3HCfefIjq6zUr7hVHnkb6dPbETKuxXePnm0kYedSBCMGM1hc72sUh7 3FqmAPxruf3cBN8VsO7Nh2tY3CNec42acK3SPhDe+UPExHeDXWysTpYL/ZoKw8u8h5ra KgxxMjKmUlFTESO2vNjj9t0RGa2d32erLdhCKZF9t2RQPqCr0N3WTfoeedn4aKhCcAgm Ihw6RTI0/W+ioB2ZpkTj8TmwlAKB6J+03F9VfN+MgLGV9pV46MH88UhjAKXlT0oR1w2r HyNxhbyeFqIsF4qseDraSV9hzIQd2Ifi+0ei+03yY7YEjnuZFFhJrGsilrGihLVYSh2P VUKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688758784; x=1691350784; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZC0/5bXEsuHujngkcxb69wPizikqv0P8Uq9N9rSIaSc=; b=iK8xgygkATm9adCG+V7WdZAgOxJq4fFRIY9IbRDIhCh8rP6k/tZtuADljNWSWyzES2 L/DqVLy2n3q2it2uw0dqWhkhn2OKCKLWjy2OxX0nyogyhA3CvWo8Larr9Ua8y7WcK/00 BukcatVj5Lsgvzgei8VY98rM9dIe8JiEouIjSe6o+nUMiqBXtIm2MxoY96UFqmxsE/pv 3AISe86sekDG4cC0acLNeKeePdjkNznoBV6Rp+1jEiKRaiW/LnR334Bvr3qaiXFoRZC4 QdURUNwOjKNcI6KSDnIfZYBn+AM1AkCdMaFeGx85NzvFUj2a1axPAi2hhmiCd+Y/3Mee TUaQ== X-Gm-Message-State: ABy/qLblJzUZWogdB21BTmGt1p2eQzyKPFalheJW0c5ZgZCtAHtEu/K/ D3TP0kYDGd9AQPDhDn+R0VvBxQ== X-Google-Smtp-Source: APBJJlGf0tThZBJ0n0VqdJJEEMFaVduUgRRNX9wjXo2ASpXK/RhgQB9SgzN+BTlYPLNTiTS8J9AAeg== X-Received: by 2002:a05:6512:694:b0:4fb:91c5:fd38 with SMTP id t20-20020a056512069400b004fb91c5fd38mr5523040lfe.0.1688758783925; Fri, 07 Jul 2023 12:39:43 -0700 (PDT) Received: from umbar.unikie.fi ([192.130.178.91]) by smtp.gmail.com with ESMTPSA id q16-20020a19a410000000b004fba759bf44sm778995lfc.277.2023.07.07.12.39.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Jul 2023 12:39:43 -0700 (PDT) From: Dmitry Baryshkov To: Rob Clark , Sean Paul , Abhinav Kumar , Marijn Suijten Cc: Stephen Boyd , David Airlie , Daniel Vetter , Bjorn Andersson , linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, Konrad Dybcio Subject: [PATCH v3 01/11] drm/msm/dpu: drop enum dpu_core_perf_data_bus_id Date: Fri, 7 Jul 2023 22:39:32 +0300 Message-Id: <20230707193942.3806526-2-dmitry.baryshkov@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230707193942.3806526-1-dmitry.baryshkov@linaro.org> References: <20230707193942.3806526-1-dmitry.baryshkov@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Drop the leftover of bus-client -> interconnect conversion, the enum dpu_core_perf_data_bus_id. Fixes: cb88482e2570 ("drm/msm/dpu: clean up references of DPU custom bus scaling") Reviewed-by: Konrad Dybcio Reviewed-by: Abhinav Kumar Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h index e3795995e145..29bb8ee2bc26 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h @@ -14,19 +14,6 @@ #define DPU_PERF_DEFAULT_MAX_CORE_CLK_RATE 412500000 -/** - * enum dpu_core_perf_data_bus_id - data bus identifier - * @DPU_CORE_PERF_DATA_BUS_ID_MNOC: DPU/MNOC data bus - * @DPU_CORE_PERF_DATA_BUS_ID_LLCC: MNOC/LLCC data bus - * @DPU_CORE_PERF_DATA_BUS_ID_EBI: LLCC/EBI data bus - */ -enum dpu_core_perf_data_bus_id { - DPU_CORE_PERF_DATA_BUS_ID_MNOC, - DPU_CORE_PERF_DATA_BUS_ID_LLCC, - DPU_CORE_PERF_DATA_BUS_ID_EBI, - DPU_CORE_PERF_DATA_BUS_ID_MAX, -}; - /** * struct dpu_core_perf_params - definition of performance parameters * @max_per_pipe_ib: maximum instantaneous bandwidth request From patchwork Fri Jul 7 19:39:33 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 700118 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BAB40EB64DA for ; Fri, 7 Jul 2023 19:42:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233087AbjGGTme (ORCPT ); Fri, 7 Jul 2023 15:42:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60936 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233056AbjGGTlR (ORCPT ); Fri, 7 Jul 2023 15:41:17 -0400 Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com [IPv6:2a00:1450:4864:20::135]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EE3CF2D55 for ; Fri, 7 Jul 2023 12:39:46 -0700 (PDT) Received: by mail-lf1-x135.google.com with SMTP id 2adb3069b0e04-4fba1288bbdso3375378e87.1 for ; Fri, 07 Jul 2023 12:39:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1688758785; x=1691350785; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=NjoI3Dx1Y7JEO/QjjX2Gq34JkRG4tKXD0+CPY31Fy3E=; b=TotxLp9WEbEa1H0ui4tZtY7EzhGfQ3fBWZC5iUtDBnbwg0MTlgsGk1A3H9rzvZQh0x VurNoqfvegRbAAw+d1xNGyniWPDdLER8VAVoUOBdSuGV/BIyDEJEwfSci02GHpCfaeLl ILhnVBkMtfvfQuld9mw9cgMzSNJVwvlIulPYELfS3fmefr3zPOeTDURxyw4Fz9hrLR6X QdmuNbI0yE3gnlNoy68rWkgkAgdMj0RQdZtX9Zb8OpruTWxkabvv97Sn+6EB9IiTu3CA 2Dmm8G3QJubAyrP7MOptZafM1OU7SeSI27Cgd2MFFSW+P3ryciIDpqa5CKqhqQ2WoFZD D5TA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688758785; x=1691350785; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=NjoI3Dx1Y7JEO/QjjX2Gq34JkRG4tKXD0+CPY31Fy3E=; b=jUWd6r74RrUjqgxloz9oYCniwJ629NpDIN0R4fgYxYEWRpq/Vddo9MzYdfAqd5Vxr+ 4qmQqOIsZZKK65V2nf6m2O/GE1txghXbWegIvFylmeQG+BwsZMjwMB0wyQqSkaQx7+yM RQ+CRPKrkHq7Em5VnTI796gtYq/em4ZD/K6lipQV3RKx1ent5nHk3R4g4MwcRHLctkn3 zgzLR/HEB0/dOFSjdyllVb5dSw2unXfGTPiZYK8vNeh5LqDLH4+eCv+vymdjsh0KbrYt 7IlzWBQ/7nv+y/eXGAQiQXWpqZAbs7ys7gpdOYJYEJ0CG9L/f+3Rzq3EDMRxA8bU1OTM B1Ng== X-Gm-Message-State: ABy/qLZZvrjVFJYqd/1UFgIDtn8KYZy1U+HUmnOgHW3BrKxmwSG+nNrT kpTSW0+izdO7dGoLo/d37BVPxA== X-Google-Smtp-Source: APBJJlFdYPw4GxOROVzMAnYhE6vEelZplJXJjnXlGWENi3d9i5ezSHyTJHzQS0wP8tC7Ahq3f0VVZA== X-Received: by 2002:a05:6512:36c5:b0:4fb:8f79:631 with SMTP id e5-20020a05651236c500b004fb8f790631mr4796453lfs.46.1688758784667; Fri, 07 Jul 2023 12:39:44 -0700 (PDT) Received: from umbar.unikie.fi ([192.130.178.91]) by smtp.gmail.com with ESMTPSA id q16-20020a19a410000000b004fba759bf44sm778995lfc.277.2023.07.07.12.39.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Jul 2023 12:39:44 -0700 (PDT) From: Dmitry Baryshkov To: Rob Clark , Sean Paul , Abhinav Kumar , Marijn Suijten Cc: Stephen Boyd , David Airlie , Daniel Vetter , Bjorn Andersson , linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org Subject: [PATCH v3 02/11] drm/msm/dpu: core_perf: extract bandwidth aggregation function Date: Fri, 7 Jul 2023 22:39:33 +0300 Message-Id: <20230707193942.3806526-3-dmitry.baryshkov@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230707193942.3806526-1-dmitry.baryshkov@linaro.org> References: <20230707193942.3806526-1-dmitry.baryshkov@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org 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 --- drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c | 39 +++++++++++-------- 1 file changed, 22 insertions(+), 17 deletions(-) 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 1d9d83d7b99e..333dcfe57800 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c @@ -206,33 +206,38 @@ 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; + 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; + + dpu_core_perf_aggregate(crtc->dev, dpu_crtc_get_client_type(crtc), &perf); if (!kms->num_paths) return 0; From patchwork Fri Jul 7 19:39:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 700117 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 614A7C001DD for ; Fri, 7 Jul 2023 19:42:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233090AbjGGTmf (ORCPT ); Fri, 7 Jul 2023 15:42:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60926 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233055AbjGGTlR (ORCPT ); Fri, 7 Jul 2023 15:41:17 -0400 Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com [IPv6:2a00:1450:4864:20::12e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 215792D56 for ; Fri, 7 Jul 2023 12:39:47 -0700 (PDT) Received: by mail-lf1-x12e.google.com with SMTP id 2adb3069b0e04-4fb761efa7aso3564849e87.0 for ; Fri, 07 Jul 2023 12:39:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1688758785; x=1691350785; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Ln26l+vUCSi4edYTgivRAGgTHzh3pendnmUbrCgVtyc=; b=TSmNh5jSebPGeymulBDAEcubNE5cn9xQeWeeImrgx/Zzp1QzZacwkj+LIkcUCmXcoX UnfhUgHRj5FUcwnyNF05DlhwqEKeolRqmQdfSgfGfz/CsBfzg8iHlx8+cfmiX84bGTjz 3Hmujaw7GS1NUQGRzsJxPAbDEHVupaEyenZnkUX7dkToVty+L2Jlqr+emV1Gms+VqrWP c80FOzhD48gg7JtasLqCb0zxeqc7rwvkP4hWaixVNQf4lfnkDd6ec6+yIhlIXV7Zds+4 RzLRBcl7CSrIr1LvcDUs6tcHFqvBDzaWm+2AaAiZum0QOOrf2vV31kaEbe9oTZbCwkw8 cTtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688758785; x=1691350785; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Ln26l+vUCSi4edYTgivRAGgTHzh3pendnmUbrCgVtyc=; b=CEwTkZw10OPJpd6VISQRHTV49j6p3cAVhZ55uEwQMK/pP8GrxclNZf0u71PNkUGJam vVl+t9mxxtKnOYQBM9eeDgF02cP4rYWUZ34ObvyUaS+7cJlb+UJlizejLQuujfTN534r yamoLt9aHj6xajC0LIcZ94Pxi6WQuCZ9BIXKod+Drq1CQzGndkXBE+sNOUqkEfgJuQ9w Znn//RD5gLjSBhnFGW4aM4R5YFruQXwXwGbqdpKFB9WcCb0V20bXyjRTAHCvXAf4LSze SPXiNjtxFiBeIYsVy5BL7ROvcvdz6ZBvr7b+56+8fv8Cvl4g/mLbEJ8DfcUSOXYgViLy oGVA== X-Gm-Message-State: ABy/qLbhesDFxwBwsryAtXDjve94ON6CmdLeugNlt1YpTpEVDw46kaEY qo+vSS2vds1wr6ncSIA6AtEpdQ== X-Google-Smtp-Source: APBJJlF9I+uOMWU3r1bX/Qzz+m3+Ve61FTi0gpIC8FEbD7mHoduGOmKBdvKypzuq/c3Kd4tzp4L0pw== X-Received: by 2002:a05:6512:33ce:b0:4f8:5600:9e5e with SMTP id d14-20020a05651233ce00b004f856009e5emr5377782lfg.47.1688758785404; Fri, 07 Jul 2023 12:39:45 -0700 (PDT) Received: from umbar.unikie.fi ([192.130.178.91]) by smtp.gmail.com with ESMTPSA id q16-20020a19a410000000b004fba759bf44sm778995lfc.277.2023.07.07.12.39.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Jul 2023 12:39:45 -0700 (PDT) From: Dmitry Baryshkov To: Rob Clark , Sean Paul , Abhinav Kumar , Marijn Suijten Cc: Stephen Boyd , David Airlie , Daniel Vetter , Bjorn Andersson , linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org Subject: [PATCH v3 03/11] drm/msm/dpu: core_perf: bail earlier if there are no ICC paths Date: Fri, 7 Jul 2023 22:39:34 +0300 Message-Id: <20230707193942.3806526-4-dmitry.baryshkov@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230707193942.3806526-1-dmitry.baryshkov@linaro.org> References: <20230707193942.3806526-1-dmitry.baryshkov@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Skip bandwidth aggregation and return early if there are no interconnect paths defined for the DPU device. Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 333dcfe57800..05d340aa18c5 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c @@ -237,11 +237,11 @@ static int _dpu_core_perf_crtc_update_bus(struct dpu_kms *kms, int i, ret = 0; u64 avg_bw; - dpu_core_perf_aggregate(crtc->dev, dpu_crtc_get_client_type(crtc), &perf); - 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*/ From patchwork Fri Jul 7 19:39:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 701219 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D4E71C001E0 for ; Fri, 7 Jul 2023 19:42:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233109AbjGGTmg (ORCPT ); Fri, 7 Jul 2023 15:42:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60942 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233057AbjGGTlS (ORCPT ); Fri, 7 Jul 2023 15:41:18 -0400 Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com [IPv6:2a00:1450:4864:20::133]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AFEF72D57 for ; Fri, 7 Jul 2023 12:39:47 -0700 (PDT) Received: by mail-lf1-x133.google.com with SMTP id 2adb3069b0e04-4f4b2bc1565so3705621e87.2 for ; Fri, 07 Jul 2023 12:39:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1688758786; x=1691350786; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=qQpKCEoX0wDzwvYtZYOLMhBvx89hv9TtO2VMOF5Zspg=; b=d8kd4LwCK8JmRRCtZ7vWwUrKfbcjO/NRfw++krZjQ+tGGGt0z1ZUrUP3B/S3fwi1T8 IkCVOVTYUW8T7L5vGkXUUPXlF9GKFZqNXq0gzZn0b2MfrxZhjObf9yyNXsV6w1rXPTb2 iW8C3LFac4rZoh4Y2kFBBIGc2BQqEeIYnxfVcrHf3AuH4oZ2gdc9GvWnKmqGbQdMV0It CCfn/KFK12jPZrfxxAMu1zqhhWHWqkRq4QIXs/AzMq2/5bEYH3+JnYzUH16ImM+3JUSc 8pxLbaAYAzrQKcbPjdThYknBuIhRiqLZ+aIKuIG5+NMKIz2RVJwtHqxAZMF7GcB1mmJw zMtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688758786; x=1691350786; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qQpKCEoX0wDzwvYtZYOLMhBvx89hv9TtO2VMOF5Zspg=; b=I0HIeITNypeU8gHGCn7N+zo9Kef4jVbOOo0VQEvOHHdVPyaGXrs0IDb9qiAVSH5IwO oTJykfgEasKUcDgtuHofc6RaFuV3HlQp0dpiQFt0lu55k+x4FLqAyiFm/e7WWli7j8sS dGJ6lYaOeXpz5puueZJylBacVQEceoqepM/eI7HE6ECxXSjevpAy8Ng9p7wNkU3bdUJE ZxCgMZQSaDM0hIY4/f0M/GN2E1DFZXznVB3GyOqeU5VeienTDkjDewHHnnAiX2A39l8s 2jOf4uwQoOcbThpeCx3Mpb70V6g+VZOjSuVOISKP+d/H3CDcI/wmcOpTID2maddXErug x4kg== X-Gm-Message-State: ABy/qLYdYEdoCELW3bthsSogRK9qLj3koKufTQz3irfHduwf5y1zYUBR 4cysfKdtYk2PEn+1FQcXEom0tQ== X-Google-Smtp-Source: APBJJlHfbUdQtSsSktig1onHXDKAXml/Kgjl06pRamnL6+L3U9sxnMRrUS4tVsN3iFrTAN9JCGYVxA== X-Received: by 2002:ac2:57cd:0:b0:4fb:7772:7bae with SMTP id k13-20020ac257cd000000b004fb77727baemr4383238lfo.6.1688758786063; Fri, 07 Jul 2023 12:39:46 -0700 (PDT) Received: from umbar.unikie.fi ([192.130.178.91]) by smtp.gmail.com with ESMTPSA id q16-20020a19a410000000b004fba759bf44sm778995lfc.277.2023.07.07.12.39.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Jul 2023 12:39:45 -0700 (PDT) From: Dmitry Baryshkov To: Rob Clark , Sean Paul , Abhinav Kumar , Marijn Suijten Cc: Stephen Boyd , David Airlie , Daniel Vetter , Bjorn Andersson , linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org Subject: [PATCH v3 04/11] drm/msm/dpu: drop separate dpu_core_perf_tune overrides Date: Fri, 7 Jul 2023 22:39:35 +0300 Message-Id: <20230707193942.3806526-5-dmitry.baryshkov@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230707193942.3806526-1-dmitry.baryshkov@linaro.org> References: <20230707193942.3806526-1-dmitry.baryshkov@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org The values in struct dpu_core_perf_tune are fixed per the core perf mode. Drop the 'tune' values and substitute them with known values when performing perf management. Note: min_bus_vote was not used at all, so it is just silently dropped. Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c | 29 ++++++++----------- drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h | 4 --- 2 files changed, 12 insertions(+), 21 deletions(-) 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 05d340aa18c5..348550ac7e51 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c @@ -235,7 +235,7 @@ static int _dpu_core_perf_crtc_update_bus(struct dpu_kms *kms, { struct dpu_core_perf_params perf = { 0 }; int i, ret = 0; - u64 avg_bw; + u32 avg_bw; if (!kms->num_paths) return 0; @@ -291,10 +291,16 @@ void dpu_core_perf_crtc_release_bw(struct drm_crtc *crtc) static u64 _dpu_core_perf_get_core_clk_rate(struct dpu_kms *kms) { - u64 clk_rate = kms->perf.perf_tune.min_core_clk; + u64 clk_rate; struct drm_crtc *crtc; struct dpu_crtc_state *dpu_cstate; + if (kms->perf.perf_tune.mode == DPU_PERF_MODE_FIXED) + return kms->perf.fix_core_clk_rate; + + if (kms->perf.perf_tune.mode == DPU_PERF_MODE_MINIMUM) + return kms->perf.max_core_clk_rate; + drm_for_each_crtc(crtc, kms->dev) { if (crtc->enabled) { dpu_cstate = to_dpu_crtc_state(crtc->state); @@ -305,11 +311,6 @@ static u64 _dpu_core_perf_get_core_clk_rate(struct dpu_kms *kms) } } - if (kms->perf.perf_tune.mode == DPU_PERF_MODE_FIXED) - clk_rate = kms->perf.fix_core_clk_rate; - - DRM_DEBUG_ATOMIC("clk:%llu\n", clk_rate); - return clk_rate; } @@ -397,6 +398,8 @@ int dpu_core_perf_crtc_update(struct drm_crtc *crtc, if (update_clk) { clk_rate = _dpu_core_perf_get_core_clk_rate(kms); + DRM_DEBUG_ATOMIC("clk:%llu\n", clk_rate); + trace_dpu_core_perf_update_clk(kms->dev, stop_req, clk_rate); clk_rate = min(clk_rate, kms->perf.max_core_clk_rate); @@ -418,7 +421,6 @@ static ssize_t _dpu_core_perf_mode_write(struct file *file, const char __user *user_buf, size_t count, loff_t *ppos) { struct dpu_core_perf *perf = file->private_data; - const struct dpu_perf_cfg *cfg = perf->catalog->perf; u32 perf_mode = 0; int ret; @@ -433,14 +435,9 @@ static ssize_t _dpu_core_perf_mode_write(struct file *file, DRM_INFO("fix performance mode\n"); } else if (perf_mode == DPU_PERF_MODE_MINIMUM) { /* run the driver with max clk and BW vote */ - perf->perf_tune.min_core_clk = perf->max_core_clk_rate; - perf->perf_tune.min_bus_vote = - (u64) cfg->max_bw_high * 1000; DRM_INFO("minimum performance mode\n"); } else if (perf_mode == DPU_PERF_MODE_NORMAL) { /* reset the perf tune params to 0 */ - perf->perf_tune.min_core_clk = 0; - perf->perf_tune.min_bus_vote = 0; DRM_INFO("normal performance mode\n"); } perf->perf_tune.mode = perf_mode; @@ -456,10 +453,8 @@ static ssize_t _dpu_core_perf_mode_read(struct file *file, char buf[128]; len = scnprintf(buf, sizeof(buf), - "mode %d min_mdp_clk %llu min_bus_vote %llu\n", - perf->perf_tune.mode, - perf->perf_tune.min_core_clk, - perf->perf_tune.min_bus_vote); + "mode %d\n", + perf->perf_tune.mode); return simple_read_from_buffer(buff, count, ppos, buf, len); } diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h index 29bb8ee2bc26..c965dfbc3007 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h @@ -29,13 +29,9 @@ struct dpu_core_perf_params { /** * struct dpu_core_perf_tune - definition of performance tuning control * @mode: performance mode - * @min_core_clk: minimum core clock - * @min_bus_vote: minimum bus vote */ struct dpu_core_perf_tune { u32 mode; - u64 min_core_clk; - u64 min_bus_vote; }; /** From patchwork Fri Jul 7 19:39:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 701218 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4C751C001DF for ; Fri, 7 Jul 2023 19:42:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229471AbjGGTmg (ORCPT ); Fri, 7 Jul 2023 15:42:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60946 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233061AbjGGTlS (ORCPT ); Fri, 7 Jul 2023 15:41:18 -0400 Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com [IPv6:2a00:1450:4864:20::12d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 674DD2D58 for ; Fri, 7 Jul 2023 12:39:48 -0700 (PDT) Received: by mail-lf1-x12d.google.com with SMTP id 2adb3069b0e04-4fbaef9871cso3560382e87.0 for ; Fri, 07 Jul 2023 12:39:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1688758786; x=1691350786; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jS4QBjRPTQXKPDD7wlMbL4lf3gZh4eLDOWteEpntJqI=; b=jQ+aH2OJquXlDHELj0Tga/BRfi7MuxLfq0CbtfTvY7o+udJ30AwllW+89IziYe4t2r xTrMNT6XExiJZE0LueKf/jRRVZvn7BLPcNFH7Kvum23+mn5mD63yx4/4NL+Efe55SmIk Zj7Jgxi4f8WzNDr42C+/xO5VSvn+JrEQ0by9xOjbw4ydNh4GzRZxagXMudAxv++BxrOG tUPuxKmC3ksvfSNGMWZF8uTBGYJsu73FEw8Vy5Rl/RHypb6CU1EssZgwQTZfp/IsCoGx 3dDWX3Gha1Cie7g4ZV37ggJ8SJDVMX5A1Zk8CYB9O1OqIPfdfwyzNLBl4oDSlnBLhr/4 23IQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688758786; x=1691350786; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jS4QBjRPTQXKPDD7wlMbL4lf3gZh4eLDOWteEpntJqI=; b=VQR0jiSH+sH2/gX5XQZ8HHXNbGVWV2nNeYBfwqq9yAdXEk/3BaDci4z5eeTM7JqUAo 8SuNRt3Ycha5FywA9oPJahSOMqUS1HYug2C5g44yMa7Ahog6ivIzJvISKtL0tCEpHfoD a1dEubwbq4fG9g6T2KfNqGLJnULiZxB0xOWbtHCvjPTphaW+hWHf8jlF51Wyxamx/JAn Y/lCDPPcOFl2ENJHqiJ32C/E481EGY73GqVvAZuqtIh7BqFkdu4T4S//nP1MDnFbEZuf M6XeidREB0O5MXXrw3INtLkoNgSHOBektzZx97yEc4H94SBxbIkjrh5n6fad55/vBQ8W yxnQ== X-Gm-Message-State: ABy/qLb0DQJZxwYZe/1OVMbhgXQXF8E0vPTQBa8RtASWfn9wRBVCgBJs 5LPQIQNRmfAjXPUDlIJNca3HRg== X-Google-Smtp-Source: APBJJlFy5KM/w4/k4Md3037veJ8vqKUoZJvmQr5DOrbOa1BC1Bssjuvqs5yL9M+xEcWFA3K2jbtW5Q== X-Received: by 2002:a05:6512:2521:b0:4fb:c0b5:63d4 with SMTP id be33-20020a056512252100b004fbc0b563d4mr5257145lfb.43.1688758786799; Fri, 07 Jul 2023 12:39:46 -0700 (PDT) Received: from umbar.unikie.fi ([192.130.178.91]) by smtp.gmail.com with ESMTPSA id q16-20020a19a410000000b004fba759bf44sm778995lfc.277.2023.07.07.12.39.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Jul 2023 12:39:46 -0700 (PDT) From: Dmitry Baryshkov To: Rob Clark , Sean Paul , Abhinav Kumar , Marijn Suijten Cc: Stephen Boyd , David Airlie , Daniel Vetter , Bjorn Andersson , linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, Konrad Dybcio Subject: [PATCH v3 05/11] drm/msm/dpu: rework indentation in dpu_core_perf Date: Fri, 7 Jul 2023 22:39:36 +0300 Message-Id: <20230707193942.3806526-6-dmitry.baryshkov@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230707193942.3806526-1-dmitry.baryshkov@linaro.org> References: <20230707193942.3806526-1-dmitry.baryshkov@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org dpu_core_perf.c contains several multi-line conditions which are hard to comprehent because of the indentation. Rework the identation of these conditions to make it easier to understand them. Reviewed-by: Abhinav Kumar Acked-by: Konrad Dybcio Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) 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 348550ac7e51..87bf4e5cb8e7 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c @@ -173,8 +173,8 @@ int dpu_core_perf_crtc_check(struct drm_crtc *crtc, drm_for_each_crtc(tmp_crtc, crtc->dev) { if (tmp_crtc->enabled && - (dpu_crtc_get_client_type(tmp_crtc) == - curr_client_type) && (tmp_crtc != crtc)) { + dpu_crtc_get_client_type(tmp_crtc) == curr_client_type && + tmp_crtc != crtc) { struct dpu_crtc_state *tmp_cstate = to_dpu_crtc_state(tmp_crtc->state); @@ -365,10 +365,8 @@ int dpu_core_perf_crtc_update(struct drm_crtc *crtc, update_bus = true; } - if ((params_changed && - (new->core_clk_rate > old->core_clk_rate)) || - (!params_changed && - (new->core_clk_rate < old->core_clk_rate))) { + if ((params_changed && new->core_clk_rate > old->core_clk_rate) || + (!params_changed && new->core_clk_rate < old->core_clk_rate)) { old->core_clk_rate = new->core_clk_rate; update_clk = true; } From patchwork Fri Jul 7 19:39:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 700116 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id CD876C0015E for ; Fri, 7 Jul 2023 19:42:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231316AbjGGTmh (ORCPT ); Fri, 7 Jul 2023 15:42:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60966 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233062AbjGGTlU (ORCPT ); Fri, 7 Jul 2023 15:41:20 -0400 Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com [IPv6:2a00:1450:4864:20::133]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5B3722D5B for ; Fri, 7 Jul 2023 12:39:49 -0700 (PDT) Received: by mail-lf1-x133.google.com with SMTP id 2adb3069b0e04-4fb73ba3b5dso3749042e87.1 for ; Fri, 07 Jul 2023 12:39:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1688758787; x=1691350787; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Laxhs4MhlwLEvLM6RtFZiqdn1NdcNH8rdbDgylBaRvA=; b=m0cH+BN3XtATLF4rMBCP7SOibTlvfF61jWhwBSwut8+WyoEmZ9fbDyD8z5mNU3vZBL aIfdAGHxgSU1hX0zgnocBTojGkDah4jPullVkDB51xLRvOkrKPWOcBBY6iG584PoK/Wr fCvoKmLl0pB4T8Py0pVLgBCAdI8CNNkeuIZPUhRrprBABXycwF5L+cEn54ND1F9417Cr 9GMA35pWdoywrsfC8+eHPLKbsGwoKwL4g3/Vbce7lmDjuuNrAcWRUV7glgI3iItGRHuo dvvP+AJqlLu7WSNnyDQ4S6IDLrwNkjqBLmso2iH+FjMDFO7xQ8MW1n9Gbya7srb1ir3D LeaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688758787; x=1691350787; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Laxhs4MhlwLEvLM6RtFZiqdn1NdcNH8rdbDgylBaRvA=; b=AbWU5O33bcSdgi3Lw+HqHAIfplYRgjUGW4kOeQSPy+3VJQUl7GhnNwdfNIOaDE0Cbl OMD9gHCExuaX5VdQ5C5umJMzJ/50s8aAm5ED7QFYTQpK1eNo1PUwS4UrL9vmxeq/0JPG 2k2Ee87IR8BEvcxxRFnqgRYw0wh5Nz03AY2ZuyHMzs/619TTKWiHjjBl0GrcG2xFSA+S kSjY1CMLpnj1lRVhHPQiJyP27c2CYgvvBt6ebl9SDNxzD1DYN9z2mPDGjAmacxsfB5qb C8ok5076E28y/B4VyIBWL39U/67P9mCfWww8cnHcuTbC7Wo0Z4rT865q+bIbsekJO6qT CwvA== X-Gm-Message-State: ABy/qLaBp6CkDdpZq92hTk2UHkTFm3EqkeDH6IaSlskcnk9AUmn/SH0C Mz/UUnQpOmqDn9kdRZ9zL55p8A== X-Google-Smtp-Source: APBJJlGJs/vPxtA9yCBl0AhL+K9vcvwyraYiudXkoTr2YhJePv9YpXA/h1rF8iSGUGNIvUDd53/IIw== X-Received: by 2002:a19:670b:0:b0:4f8:742f:3bed with SMTP id b11-20020a19670b000000b004f8742f3bedmr4473722lfc.37.1688758787533; Fri, 07 Jul 2023 12:39:47 -0700 (PDT) Received: from umbar.unikie.fi ([192.130.178.91]) by smtp.gmail.com with ESMTPSA id q16-20020a19a410000000b004fba759bf44sm778995lfc.277.2023.07.07.12.39.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Jul 2023 12:39:47 -0700 (PDT) From: Dmitry Baryshkov To: Rob Clark , Sean Paul , Abhinav Kumar , Marijn Suijten Cc: Stephen Boyd , David Airlie , Daniel Vetter , Bjorn Andersson , linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org Subject: [PATCH v3 06/11] drm/msm/dpu: drop the dpu_core_perf_crtc_update()'s stop_req param Date: Fri, 7 Jul 2023 22:39:37 +0300 Message-Id: <20230707193942.3806526-7-dmitry.baryshkov@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230707193942.3806526-1-dmitry.baryshkov@linaro.org> References: <20230707193942.3806526-1-dmitry.baryshkov@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org The stop_req is true only in the dpu_crtc_disable() case, when crtc->enable has already been set to false. This renders the stop_req argument useless. Remove it completely. Reviewed-by: Abhinav Kumar Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c | 12 ++++++------ drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h | 3 +-- drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 6 +++--- 3 files changed, 10 insertions(+), 11 deletions(-) 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 87bf4e5cb8e7..df1e47282777 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c @@ -315,7 +315,7 @@ static u64 _dpu_core_perf_get_core_clk_rate(struct dpu_kms *kms) } int dpu_core_perf_crtc_update(struct drm_crtc *crtc, - int params_changed, bool stop_req) + int params_changed) { struct dpu_core_perf_params *new, *old; bool update_bus = false, update_clk = false; @@ -339,13 +339,13 @@ int dpu_core_perf_crtc_update(struct drm_crtc *crtc, dpu_crtc = to_dpu_crtc(crtc); dpu_cstate = to_dpu_crtc_state(crtc->state); - DRM_DEBUG_ATOMIC("crtc:%d stop_req:%d core_clk:%llu\n", - crtc->base.id, stop_req, kms->perf.core_clk_rate); + DRM_DEBUG_ATOMIC("crtc:%d enabled:%d core_clk:%llu\n", + crtc->base.id, crtc->enabled, kms->perf.core_clk_rate); old = &dpu_crtc->cur_perf; new = &dpu_cstate->new_perf; - if (crtc->enabled && !stop_req) { + if (crtc->enabled) { /* * cases for bus bandwidth update. * 1. new bandwidth vote - "ab or ib vote" is higher @@ -378,7 +378,7 @@ int dpu_core_perf_crtc_update(struct drm_crtc *crtc, } trace_dpu_perf_crtc_update(crtc->base.id, new->bw_ctl, - new->core_clk_rate, stop_req, update_bus, update_clk); + new->core_clk_rate, !crtc->enabled, update_bus, update_clk); if (update_bus) { ret = _dpu_core_perf_crtc_update_bus(kms, crtc); @@ -398,7 +398,7 @@ int dpu_core_perf_crtc_update(struct drm_crtc *crtc, DRM_DEBUG_ATOMIC("clk:%llu\n", clk_rate); - trace_dpu_core_perf_update_clk(kms->dev, stop_req, clk_rate); + trace_dpu_core_perf_update_clk(kms->dev, !crtc->enabled, clk_rate); clk_rate = min(clk_rate, kms->perf.max_core_clk_rate); ret = dev_pm_opp_set_rate(&kms->pdev->dev, clk_rate); diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h index c965dfbc3007..c0097b67f9dd 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h @@ -75,11 +75,10 @@ int dpu_core_perf_crtc_check(struct drm_crtc *crtc, * dpu_core_perf_crtc_update - update performance of the given crtc * @crtc: Pointer to crtc * @params_changed: true if crtc parameters are modified - * @stop_req: true if this is a stop request * return: zero if success, or error code otherwise */ int dpu_core_perf_crtc_update(struct drm_crtc *crtc, - int params_changed, bool stop_req); + int params_changed); /** * dpu_core_perf_crtc_release_bw - release bandwidth of the given crtc diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c index 1edf2b6b0a26..8ce7586e2ddf 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c @@ -718,7 +718,7 @@ static void dpu_crtc_frame_event_cb(void *data, u32 event) void dpu_crtc_complete_commit(struct drm_crtc *crtc) { trace_dpu_crtc_complete_commit(DRMID(crtc)); - dpu_core_perf_crtc_update(crtc, 0, false); + dpu_core_perf_crtc_update(crtc, 0); _dpu_crtc_complete_flip(crtc); } @@ -884,7 +884,7 @@ static void dpu_crtc_atomic_flush(struct drm_crtc *crtc, return; /* update performance setting before crtc kickoff */ - dpu_core_perf_crtc_update(crtc, 1, false); + dpu_core_perf_crtc_update(crtc, 1); /* * Final plane updates: Give each plane a chance to complete all @@ -1100,7 +1100,7 @@ static void dpu_crtc_disable(struct drm_crtc *crtc, atomic_set(&dpu_crtc->frame_pending, 0); } - dpu_core_perf_crtc_update(crtc, 0, true); + dpu_core_perf_crtc_update(crtc, 0); drm_for_each_encoder_mask(encoder, crtc->dev, crtc->state->encoder_mask) dpu_encoder_register_frame_event_callback(encoder, NULL, NULL); From patchwork Fri Jul 7 19:39:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 700114 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 32647EB64DA for ; Fri, 7 Jul 2023 19:42:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229914AbjGGTmj (ORCPT ); Fri, 7 Jul 2023 15:42:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60976 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233068AbjGGTlW (ORCPT ); Fri, 7 Jul 2023 15:41:22 -0400 Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com [IPv6:2a00:1450:4864:20::12d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F13342D5D for ; Fri, 7 Jul 2023 12:39:49 -0700 (PDT) Received: by mail-lf1-x12d.google.com with SMTP id 2adb3069b0e04-4fb7dc16ff0so3540274e87.2 for ; Fri, 07 Jul 2023 12:39:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1688758788; x=1691350788; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=fV20qJjhQMxnWZudY/qNoeS0dM6w3FxhdIxObPt2ia8=; b=BA6sv2+3ROkS0dWaoFjhp7MjRXD0ziQ8TvPqyZgXwpnehrALuDXEr3105N5wWWW+Vt upvN72KNRPtgR2dZ2pviDUscHJb9HVkpoZHPAqP7qyMt0VV88sh4Kwm4GtljQS+9BK3K YSnm/7sSqxZm7L0Uv1cuAFkcBNS2/9vDx3VVvukqE1nKCbRqBr0kbBxi7l8O92zhbZXn 7iyOSApGbb3e6kxqrqJ7+phSjSkkT3zEfV4xvkyrfgOJnlhgi5/xebCDwy9f0w0w8cPj muNtE5xr+q5n0Lkt0m7yJoLJcdXBdQlZqxvfWWoQ377Cenhc9DDrErqiBxQbmHHfc/XQ RrHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688758788; x=1691350788; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fV20qJjhQMxnWZudY/qNoeS0dM6w3FxhdIxObPt2ia8=; b=YS05PHzMnc4cxgZ5NvHjQiesZypz6J1qTPPT4YwhaHcHpuoW6Sa+xeb19dEPfwOuOL VrMqsiENK0A1r2hfy44BbOGdNzZQvvZlt9v9291ck3d4TOm0E6zDIzL1tW7AauyD3kRN zHcA9F1NpxFkGVxvKYeBKsQN6KPRtmHFW9Jw5YiSBPyKSkGwI8rbmhxfx1a6aOT3ANmg AOJec3ou7eLl4Kuzt2SM5x5bDYCbVAs1VHqZPxfWNraJUHfwu1U/+zczEkfBgXuPYIB8 T9SwwPVMmKfUT0QObBR8hxQDag0VPFTHjZ4fz9D1QHlnLriV05Zp9z1eD2occzDvL4t3 ortg== X-Gm-Message-State: ABy/qLbyl6YDYcjVY3TTr3NupXSjaquSngSG0pr+Zqv7hkzOPoe58Nqm MgxacXW/ATknqvpGdtMQg6u7OA== X-Google-Smtp-Source: APBJJlHOU9fwgAq6z+wwhZggMRLNUgWh9cawX0SxFTbdthPAIS68OvBo6jNON9XU/8NhgqoKeC8U0w== X-Received: by 2002:ac2:4642:0:b0:4fb:2c1e:4e03 with SMTP id s2-20020ac24642000000b004fb2c1e4e03mr4809315lfo.32.1688758788296; Fri, 07 Jul 2023 12:39:48 -0700 (PDT) Received: from umbar.unikie.fi ([192.130.178.91]) by smtp.gmail.com with ESMTPSA id q16-20020a19a410000000b004fba759bf44sm778995lfc.277.2023.07.07.12.39.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Jul 2023 12:39:47 -0700 (PDT) From: Dmitry Baryshkov To: Rob Clark , Sean Paul , Abhinav Kumar , Marijn Suijten Cc: Stephen Boyd , David Airlie , Daniel Vetter , Bjorn Andersson , linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, Konrad Dybcio Subject: [PATCH v3 07/11] drm/msm/dpu: use dpu_perf_cfg in DPU core_perf code Date: Fri, 7 Jul 2023 22:39:38 +0300 Message-Id: <20230707193942.3806526-8-dmitry.baryshkov@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230707193942.3806526-1-dmitry.baryshkov@linaro.org> References: <20230707193942.3806526-1-dmitry.baryshkov@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Simplify dpu_core_perf code by using only dpu_perf_cfg instead of using full-featured catalog data. Acked-by: Konrad Dybcio Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c | 73 ++++++++----------- drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h | 8 +- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 2 +- 3 files changed, 35 insertions(+), 48 deletions(-) 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 df1e47282777..8db97583ef18 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c @@ -33,11 +33,11 @@ enum dpu_perf_mode { /** * _dpu_core_perf_calc_bw() - to calculate BW per crtc - * @kms: pointer to the dpu_kms + * @perf_cfg: performance configuration * @crtc: pointer to a crtc * Return: returns aggregated BW for all planes in crtc. */ -static u64 _dpu_core_perf_calc_bw(struct dpu_kms *kms, +static u64 _dpu_core_perf_calc_bw(const struct dpu_perf_cfg *perf_cfg, struct drm_crtc *crtc) { struct drm_plane *plane; @@ -53,7 +53,7 @@ static u64 _dpu_core_perf_calc_bw(struct dpu_kms *kms, crtc_plane_bw += pstate->plane_fetch_bw; } - bw_factor = kms->catalog->perf->bw_inefficiency_factor; + bw_factor = perf_cfg->bw_inefficiency_factor; if (bw_factor) { crtc_plane_bw *= bw_factor; do_div(crtc_plane_bw, 100); @@ -64,12 +64,12 @@ static u64 _dpu_core_perf_calc_bw(struct dpu_kms *kms, /** * _dpu_core_perf_calc_clk() - to calculate clock per crtc - * @kms: pointer to the dpu_kms + * @perf_cfg: performance configuration * @crtc: pointer to a crtc * @state: pointer to a crtc state * Return: returns max clk for all planes in crtc. */ -static u64 _dpu_core_perf_calc_clk(struct dpu_kms *kms, +static u64 _dpu_core_perf_calc_clk(const struct dpu_perf_cfg *perf_cfg, struct drm_crtc *crtc, struct drm_crtc_state *state) { struct drm_plane *plane; @@ -90,7 +90,7 @@ static u64 _dpu_core_perf_calc_clk(struct dpu_kms *kms, crtc_clk = max(pstate->plane_clk, crtc_clk); } - clk_factor = kms->catalog->perf->clk_inefficiency_factor; + clk_factor = perf_cfg->clk_inefficiency_factor; if (clk_factor) { crtc_clk *= clk_factor; do_div(crtc_clk, 100); @@ -106,30 +106,32 @@ static struct dpu_kms *_dpu_crtc_get_kms(struct drm_crtc *crtc) return to_dpu_kms(priv->kms); } -static void _dpu_core_perf_calc_crtc(struct dpu_kms *kms, - struct drm_crtc *crtc, - struct drm_crtc_state *state, - struct dpu_core_perf_params *perf) +static void _dpu_core_perf_calc_crtc(const struct dpu_core_perf *core_perf, + struct drm_crtc *crtc, + struct drm_crtc_state *state, + struct dpu_core_perf_params *perf) { - if (!kms || !kms->catalog || !crtc || !state || !perf) { + const struct dpu_perf_cfg *perf_cfg = core_perf->perf_cfg; + + if (!perf_cfg || !crtc || !state || !perf) { DPU_ERROR("invalid parameters\n"); return; } memset(perf, 0, sizeof(struct dpu_core_perf_params)); - if (kms->perf.perf_tune.mode == DPU_PERF_MODE_MINIMUM) { + if (core_perf->perf_tune.mode == DPU_PERF_MODE_MINIMUM) { perf->bw_ctl = 0; perf->max_per_pipe_ib = 0; perf->core_clk_rate = 0; - } else if (kms->perf.perf_tune.mode == DPU_PERF_MODE_FIXED) { - perf->bw_ctl = kms->perf.fix_core_ab_vote; - perf->max_per_pipe_ib = kms->perf.fix_core_ib_vote; - perf->core_clk_rate = kms->perf.fix_core_clk_rate; + } else if (core_perf->perf_tune.mode == DPU_PERF_MODE_FIXED) { + perf->bw_ctl = core_perf->fix_core_ab_vote; + perf->max_per_pipe_ib = core_perf->fix_core_ib_vote; + perf->core_clk_rate = core_perf->fix_core_clk_rate; } else { - perf->bw_ctl = _dpu_core_perf_calc_bw(kms, crtc); - perf->max_per_pipe_ib = kms->catalog->perf->min_dram_ib; - perf->core_clk_rate = _dpu_core_perf_calc_clk(kms, crtc, state); + perf->bw_ctl = _dpu_core_perf_calc_bw(perf_cfg, crtc); + perf->max_per_pipe_ib = perf_cfg->min_dram_ib; + perf->core_clk_rate = _dpu_core_perf_calc_clk(perf_cfg, crtc, state); } DRM_DEBUG_ATOMIC( @@ -154,10 +156,6 @@ int dpu_core_perf_crtc_check(struct drm_crtc *crtc, } kms = _dpu_crtc_get_kms(crtc); - if (!kms->catalog) { - DPU_ERROR("invalid parameters\n"); - return 0; - } /* we only need bandwidth check on real-time clients (interfaces) */ if (dpu_crtc_get_client_type(crtc) == NRT_CLIENT) @@ -166,7 +164,7 @@ int dpu_core_perf_crtc_check(struct drm_crtc *crtc, dpu_cstate = to_dpu_crtc_state(state); /* obtain new values */ - _dpu_core_perf_calc_crtc(kms, crtc, state, &dpu_cstate->new_perf); + _dpu_core_perf_calc_crtc(&kms->perf, crtc, state, &dpu_cstate->new_perf); bw_sum_of_intfs = dpu_cstate->new_perf.bw_ctl; curr_client_type = dpu_crtc_get_client_type(crtc); @@ -189,7 +187,7 @@ int dpu_core_perf_crtc_check(struct drm_crtc *crtc, bw = DIV_ROUND_UP_ULL(bw_sum_of_intfs, 1000); DRM_DEBUG_ATOMIC("calculated bandwidth=%uk\n", bw); - threshold = kms->catalog->perf->max_bw_high; + threshold = kms->perf.perf_cfg->max_bw_high; DRM_DEBUG_ATOMIC("final threshold bw limit = %d\n", threshold); @@ -270,11 +268,6 @@ void dpu_core_perf_crtc_release_bw(struct drm_crtc *crtc) } kms = _dpu_crtc_get_kms(crtc); - if (!kms->catalog) { - DPU_ERROR("invalid kms\n"); - return; - } - dpu_crtc = to_dpu_crtc(crtc); if (atomic_dec_return(&kms->bandwidth_ref) > 0) @@ -331,10 +324,6 @@ int dpu_core_perf_crtc_update(struct drm_crtc *crtc, } kms = _dpu_crtc_get_kms(crtc); - if (!kms->catalog) { - DPU_ERROR("invalid kms\n"); - return -EINVAL; - } dpu_crtc = to_dpu_crtc(crtc); dpu_cstate = to_dpu_crtc_state(crtc->state); @@ -466,7 +455,6 @@ static const struct file_operations dpu_core_perf_mode_fops = { int dpu_core_perf_debugfs_init(struct dpu_kms *dpu_kms, struct dentry *parent) { struct dpu_core_perf *perf = &dpu_kms->perf; - const struct dpu_mdss_cfg *catalog = perf->catalog; struct dentry *entry; entry = debugfs_create_dir("core_perf", parent); @@ -478,15 +466,15 @@ int dpu_core_perf_debugfs_init(struct dpu_kms *dpu_kms, struct dentry *parent) debugfs_create_u32("enable_bw_release", 0600, entry, (u32 *)&perf->enable_bw_release); debugfs_create_u32("threshold_low", 0600, entry, - (u32 *)&catalog->perf->max_bw_low); + (u32 *)&perf->perf_cfg->max_bw_low); debugfs_create_u32("threshold_high", 0600, entry, - (u32 *)&catalog->perf->max_bw_high); + (u32 *)&perf->perf_cfg->max_bw_high); debugfs_create_u32("min_core_ib", 0600, entry, - (u32 *)&catalog->perf->min_core_ib); + (u32 *)&perf->perf_cfg->min_core_ib); debugfs_create_u32("min_llcc_ib", 0600, entry, - (u32 *)&catalog->perf->min_llcc_ib); + (u32 *)&perf->perf_cfg->min_llcc_ib); debugfs_create_u32("min_dram_ib", 0600, entry, - (u32 *)&catalog->perf->min_dram_ib); + (u32 *)&perf->perf_cfg->min_dram_ib); debugfs_create_file("perf_mode", 0600, entry, (u32 *)perf, &dpu_core_perf_mode_fops); debugfs_create_u64("fix_core_clk_rate", 0600, entry, @@ -509,17 +497,16 @@ void dpu_core_perf_destroy(struct dpu_core_perf *perf) perf->max_core_clk_rate = 0; perf->core_clk = NULL; - perf->catalog = NULL; perf->dev = NULL; } int dpu_core_perf_init(struct dpu_core_perf *perf, struct drm_device *dev, - const struct dpu_mdss_cfg *catalog, + const struct dpu_perf_cfg *perf_cfg, struct clk *core_clk) { perf->dev = dev; - perf->catalog = catalog; + perf->perf_cfg = perf_cfg; perf->core_clk = core_clk; perf->max_core_clk_rate = clk_get_rate(core_clk); diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h index c0097b67f9dd..f4b84e67138c 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h @@ -38,7 +38,7 @@ struct dpu_core_perf_tune { * struct dpu_core_perf - definition of core performance context * @dev: Pointer to drm device * @debugfs_root: top level debug folder - * @catalog: Pointer to catalog configuration + * @perf_cfg: Platform-specific performance configuration * @core_clk: Pointer to the core clock * @core_clk_rate: current core clock rate * @max_core_clk_rate: maximum allowable core clock rate @@ -51,7 +51,7 @@ struct dpu_core_perf_tune { struct dpu_core_perf { struct drm_device *dev; struct dentry *debugfs_root; - const struct dpu_mdss_cfg *catalog; + const struct dpu_perf_cfg *perf_cfg; struct clk *core_clk; u64 core_clk_rate; u64 max_core_clk_rate; @@ -96,12 +96,12 @@ void dpu_core_perf_destroy(struct dpu_core_perf *perf); * dpu_core_perf_init - initialize the given core performance context * @perf: Pointer to core performance context * @dev: Pointer to drm device - * @catalog: Pointer to catalog + * @perf_cfg: Pointer to platform performance configuration * @core_clk: pointer to core clock */ int dpu_core_perf_init(struct dpu_core_perf *perf, struct drm_device *dev, - const struct dpu_mdss_cfg *catalog, + const struct dpu_perf_cfg *perf_cfg, struct clk *core_clk); struct dpu_kms; diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c index aa8499de1b9f..6e62606e32de 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c @@ -1115,7 +1115,7 @@ static int dpu_kms_hw_init(struct msm_kms *kms) dpu_kms->hw_vbif[vbif->id] = hw; } - rc = dpu_core_perf_init(&dpu_kms->perf, dev, dpu_kms->catalog, + rc = dpu_core_perf_init(&dpu_kms->perf, dev, dpu_kms->catalog->perf, msm_clk_bulk_get_clock(dpu_kms->clocks, dpu_kms->num_clocks, "core")); if (rc) { DPU_ERROR("failed to init perf %d\n", rc); From patchwork Fri Jul 7 19:39:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 700115 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 025A7EB64D9 for ; Fri, 7 Jul 2023 19:42:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231962AbjGGTmi (ORCPT ); Fri, 7 Jul 2023 15:42:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60982 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233073AbjGGTlW (ORCPT ); Fri, 7 Jul 2023 15:41:22 -0400 Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com [IPv6:2a00:1450:4864:20::136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9B2652D5F for ; Fri, 7 Jul 2023 12:39:50 -0700 (PDT) Received: by mail-lf1-x136.google.com with SMTP id 2adb3069b0e04-4f9fdb0ef35so3758290e87.0 for ; Fri, 07 Jul 2023 12:39:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1688758789; x=1691350789; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=eMS5RBPqHVqs87G+UYNLaCY9ptiod57kKCBDK4uyt7o=; b=KaL0rSaFQXuHDWwA8yNV+prMZSRv+qXg3iVJH7xBTe+3464wPhy+aea+R8GR/LqG9U CojklpuISIT4LokuUKYB3qTrjuUtv8SnQiX3OTEk0a/2iAFiYLX+MjlAYEt2K0fVEKW0 HRo8WEyUfFJgXO/R/hKDqzYp9JdaX85mcetlRLNRPO/iUbsCbhI0Az+zuYV2y6DEG/Jr iADtr9W70nfY8WSEFnG9gf6KwcN/KR4sulpYnqObF9u66EZOhhuysYUtw/6ENqq9jE54 dq+kdg8+TIxRqIoryfQb1QF4tVLGxEFR3pT4kCoOrHMfi57I3bDLkUOTKEMYKVtLolET BvbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688758789; x=1691350789; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=eMS5RBPqHVqs87G+UYNLaCY9ptiod57kKCBDK4uyt7o=; b=eE8CBi+DUcwtNuAcFSwqQhkOoqTDKRKlmjKoxx1lNdLoCU8UAZ63vQxkzXQDMPaaxz PgWvENhrH9FFYRP9yK8iANk8FdGNzuN2qdZJdaSLTVQfnt9ysSexk7UfyinB96ZrnHJc YA41L+YqqNFdeB8SzwsOdLg/97QHMg9VA9a75kzKa5cJcrhZ5xFuex+aAifu42WbcOWI +Z3io3urBOdiBOYPOm9jtv+stl5SgvXNJiB6lasH942nd/0sfTPhXml9RM5fyYdCYV70 n48wmb4MlOhvbbKPWO0CFS/r32FQU/l7xPKWOS3p47k4T8TnhxrtLpLKhgqMIPsTCXAI z49A== X-Gm-Message-State: ABy/qLZ2j7MU7CQGTpmCSBIC2P7U4RJS9d9IrQYjT+/3l1zywXvqQAeS EAK4GXYE59f7BUjwv0Zpm9RfcQ== X-Google-Smtp-Source: APBJJlFWQVrF8cuuFHAlJfxbz00GyOw7Efvgvo8dY4Bzx6I4W1/JlJS8CVWFd4/T+Er0GO9O5+xRyw== X-Received: by 2002:a19:434a:0:b0:4f8:7614:48a5 with SMTP id m10-20020a19434a000000b004f8761448a5mr4311684lfj.66.1688758788995; Fri, 07 Jul 2023 12:39:48 -0700 (PDT) Received: from umbar.unikie.fi ([192.130.178.91]) by smtp.gmail.com with ESMTPSA id q16-20020a19a410000000b004fba759bf44sm778995lfc.277.2023.07.07.12.39.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Jul 2023 12:39:48 -0700 (PDT) From: Dmitry Baryshkov To: Rob Clark , Sean Paul , Abhinav Kumar , Marijn Suijten Cc: Stephen Boyd , David Airlie , Daniel Vetter , Bjorn Andersson , linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, Konrad Dybcio Subject: [PATCH v3 08/11] drm/msm/dpu: remove unused fields from struct dpu_core_perf Date: Fri, 7 Jul 2023 22:39:39 +0300 Message-Id: <20230707193942.3806526-9-dmitry.baryshkov@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230707193942.3806526-1-dmitry.baryshkov@linaro.org> References: <20230707193942.3806526-1-dmitry.baryshkov@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Remove dpu_core_perf::dev and dpu_core_perf::debugfs_root fields, they are not used by the code. Reviewed-by: Konrad Dybcio Signed-off-by: Dmitry Baryshkov Reviewed-by: Abhinav Kumar --- drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c | 3 --- drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h | 6 ------ drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 2 +- 3 files changed, 1 insertion(+), 10 deletions(-) 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 8db97583ef18..afd75750380c 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c @@ -497,15 +497,12 @@ void dpu_core_perf_destroy(struct dpu_core_perf *perf) perf->max_core_clk_rate = 0; perf->core_clk = NULL; - perf->dev = NULL; } int dpu_core_perf_init(struct dpu_core_perf *perf, - struct drm_device *dev, const struct dpu_perf_cfg *perf_cfg, struct clk *core_clk) { - perf->dev = dev; perf->perf_cfg = perf_cfg; perf->core_clk = core_clk; diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h index f4b84e67138c..e718d523ff30 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h @@ -36,8 +36,6 @@ struct dpu_core_perf_tune { /** * struct dpu_core_perf - definition of core performance context - * @dev: Pointer to drm device - * @debugfs_root: top level debug folder * @perf_cfg: Platform-specific performance configuration * @core_clk: Pointer to the core clock * @core_clk_rate: current core clock rate @@ -49,8 +47,6 @@ struct dpu_core_perf_tune { * @fix_core_ab_vote: fixed core ab vote in bps used in mode 2 */ struct dpu_core_perf { - struct drm_device *dev; - struct dentry *debugfs_root; const struct dpu_perf_cfg *perf_cfg; struct clk *core_clk; u64 core_clk_rate; @@ -95,12 +91,10 @@ void dpu_core_perf_destroy(struct dpu_core_perf *perf); /** * dpu_core_perf_init - initialize the given core performance context * @perf: Pointer to core performance context - * @dev: Pointer to drm device * @perf_cfg: Pointer to platform performance configuration * @core_clk: pointer to core clock */ int dpu_core_perf_init(struct dpu_core_perf *perf, - struct drm_device *dev, const struct dpu_perf_cfg *perf_cfg, struct clk *core_clk); diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c index 6e62606e32de..631b6b679bae 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c @@ -1115,7 +1115,7 @@ static int dpu_kms_hw_init(struct msm_kms *kms) dpu_kms->hw_vbif[vbif->id] = hw; } - rc = dpu_core_perf_init(&dpu_kms->perf, dev, dpu_kms->catalog->perf, + rc = dpu_core_perf_init(&dpu_kms->perf, dpu_kms->catalog->perf, msm_clk_bulk_get_clock(dpu_kms->clocks, dpu_kms->num_clocks, "core")); if (rc) { DPU_ERROR("failed to init perf %d\n", rc); From patchwork Fri Jul 7 19:39:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 701217 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8445BC00528 for ; Fri, 7 Jul 2023 19:42:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231976AbjGGTmh (ORCPT ); Fri, 7 Jul 2023 15:42:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60544 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233074AbjGGTlX (ORCPT ); Fri, 7 Jul 2023 15:41:23 -0400 Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com [IPv6:2a00:1450:4864:20::236]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 769B32139 for ; Fri, 7 Jul 2023 12:39:51 -0700 (PDT) Received: by mail-lj1-x236.google.com with SMTP id 38308e7fff4ca-2b6ff1ad155so42615311fa.0 for ; Fri, 07 Jul 2023 12:39:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1688758790; x=1691350790; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=1DEnZwVUAJML8EpbXmdP0CSsN5z4sVoNZMc92oALgwU=; b=coO9/JvOLjw/Or1JsuBG+fEdkn9aCi6zCbFLKSdxqwFW8w22qa4BN1DmNIsdXoLmzf wWtCBaeJE/GWYx4E5alOCnzLWmf6sbqiImLeoQmseEYZctfln29GQ0H5jaI2Dx8GTmLa tSFX4ArxacWPxo36X6GmWy+DnOQy+GABw3F4lL81w2NyfobcroSj1Y6gMkSmrfOwlI5K SDlwV+0koPe5RgtTw6dgpPWLsipxzoBGmHRjvrkDpGrOS5Jnj7VJL/zRDJGbYFlblOSK cjsBWbjbgMkVIm/dJCTkAJa+4FZlgnOS4K5ksTc+3/ih2nhIXZvjAG13HzLlzQGip9v3 CgFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688758790; x=1691350790; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1DEnZwVUAJML8EpbXmdP0CSsN5z4sVoNZMc92oALgwU=; b=KQJi/ws1PFPfKjvojLmsMEGE+YR1481A4HEXucjs9MAbc0vq6ACS+jLdET1TCc4cbs wZaELDHJgoDBfd181MuqmJi0YT9e1rTxrl9ti+1X/9n5BGHYIyTeWMHjszkyA6OYNhhx gqjan1xmlbgTIuMIsDz7Olp+kz069v/VEcsWz5WckTchALo+K0mZVPrc8zltSLmG+LkI T0qVt9i9bZ7Ae+CUJ+IJFB3poXJ1dDolB1YyAF7+l/srxCKeR2SnTeaXFnjcvDYHTIiT xUaLOHl4+FLb+RdDIEEEq1Hnd6efu3yCwYZuDVwgH3QclARLa+gVeKgcrHBVUuISPV/v pdQA== X-Gm-Message-State: ABy/qLYzZ3XkePtYqj4aRuri6ldEa2j87zYgFu+OddMgYjO8Tvr8jUab o9QSsk/xf1a0vS/yKrU7poa2kCWxWPpEuIajPCI= X-Google-Smtp-Source: APBJJlGC/eiqlgA5hEg30i5pWnlS9zOvhENdz44F1AQhiHKOpFn5oHBr7SM5ijdh37rPLJ/JZF27Sg== X-Received: by 2002:ac2:4bd5:0:b0:4f9:dac6:2f3d with SMTP id o21-20020ac24bd5000000b004f9dac62f3dmr2425167lfq.13.1688758789763; Fri, 07 Jul 2023 12:39:49 -0700 (PDT) Received: from umbar.unikie.fi ([192.130.178.91]) by smtp.gmail.com with ESMTPSA id q16-20020a19a410000000b004fba759bf44sm778995lfc.277.2023.07.07.12.39.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Jul 2023 12:39:49 -0700 (PDT) From: Dmitry Baryshkov To: Rob Clark , Sean Paul , Abhinav Kumar , Marijn Suijten Cc: Stephen Boyd , David Airlie , Daniel Vetter , Bjorn Andersson , linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org Subject: [PATCH v3 09/11] drm/msm/dpu: core_perf: remove extra clk_round_rate() call Date: Fri, 7 Jul 2023 22:39:40 +0300 Message-Id: <20230707193942.3806526-10-dmitry.baryshkov@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230707193942.3806526-1-dmitry.baryshkov@linaro.org> References: <20230707193942.3806526-1-dmitry.baryshkov@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org The dev_pm_opp_set_rate() already contains a call for clk_round_rate for the passed value. Stop calling it manually from _dpu_core_perf_get_core_clk_rate(). It is slightly incorrect to call it this way, as we should round the final calculated clock rate rather than rounding all the intermediate values. Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c | 2 -- 1 file changed, 2 deletions(-) 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 afd75750380c..a570810c9254 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c @@ -299,8 +299,6 @@ static u64 _dpu_core_perf_get_core_clk_rate(struct dpu_kms *kms) dpu_cstate = to_dpu_crtc_state(crtc->state); clk_rate = max(dpu_cstate->new_perf.core_clk_rate, clk_rate); - clk_rate = clk_round_rate(kms->perf.core_clk, - clk_rate); } } From patchwork Fri Jul 7 19:39:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 701216 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 476F9C04A6A for ; Fri, 7 Jul 2023 19:42:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230166AbjGGTmj (ORCPT ); Fri, 7 Jul 2023 15:42:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33846 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233081AbjGGTlX (ORCPT ); Fri, 7 Jul 2023 15:41:23 -0400 Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com [IPv6:2a00:1450:4864:20::12a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 39974213C for ; Fri, 7 Jul 2023 12:39:52 -0700 (PDT) Received: by mail-lf1-x12a.google.com with SMTP id 2adb3069b0e04-4fb9ae4cef6so3690234e87.3 for ; Fri, 07 Jul 2023 12:39:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1688758790; x=1691350790; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=stYVLsEgOMltlLU01Ln5wiaTK1sjCVpmWow+sg/bmWw=; b=y+6d/Z3cAs8oqki/XdIT5t+QkdEvWcbIbEcxqIC24+60NzkhyGLOABMzlP9//QjHNd KpeheGP/g0My+z1wZrDrxf2w0kMF72S7mQC6aRfFHt6yOCU/N+F6P8eoF8hFCgCq+Khh /b0caZLKvsJ4B+c2QoAjUx8i1X8E2/Geeq8wFJP+xClodXm+XU70UJKBTWHVp2JqrepI 3xBf7msvLapmiuhhTdQIRVPAWFntJv3YpqqqBcDmD1H929EYCHqRcfZsQuG5N2AcxAKZ hcY2+EzDbKmZkpBF0Ofaqrb/bJCU72Rjok5evob+UmYvjdtnkSraS+tw3NoGjdy3OCyY 1RFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688758790; x=1691350790; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=stYVLsEgOMltlLU01Ln5wiaTK1sjCVpmWow+sg/bmWw=; b=iD9YoaPJxWMhxzyOwhsHxoJc90Jm8E/VcmxFLLgOVQvHhF4zl2RrxYlH0+NjeGmC7X Xz99ySLnwpq2YlDf5dvcM6fvB/gJ3qH/2m9YfXETLc08ihC2kuFx/5IS2pq1Z/jLmNig ct5FeFpjkSYSRPlUyvxrJvtVhmQM2Utq+7O6p0hjliyO20ySiGXSiLeTK8r02qJF5Tt/ SeIk2mYhMFTz9NMqqkdxpmtjmpcpXa5dMAY3LWVS08YSrJy+3Bb0fV/xmxqQGUiQYN7y RZiA3CzgLxNbY6LZ9fEIMIy8WRDqN+chHjW4mecznIe2JLq+4FaklvLrHJwUBM+f4LWK N4Jg== X-Gm-Message-State: ABy/qLYb4J7Bl70W3n0tJSc2pBRSqgkoW/PHdn9UIsp25w2BD8kqR/fT 6Oyyc8JgdFXXvCgfG9RQmjy3bg== X-Google-Smtp-Source: APBJJlHDcfDnE6tihaK1q0IR27ghObqQBeF13prI3Uxwi0uKWTZBqUDCQI2Jv8hYdNNpdczeHL8J5A== X-Received: by 2002:a19:645e:0:b0:4fb:8948:2b2b with SMTP id b30-20020a19645e000000b004fb89482b2bmr4464509lfj.48.1688758790538; Fri, 07 Jul 2023 12:39:50 -0700 (PDT) Received: from umbar.unikie.fi ([192.130.178.91]) by smtp.gmail.com with ESMTPSA id q16-20020a19a410000000b004fba759bf44sm778995lfc.277.2023.07.07.12.39.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Jul 2023 12:39:50 -0700 (PDT) From: Dmitry Baryshkov To: Rob Clark , Sean Paul , Abhinav Kumar , Marijn Suijten Cc: Stephen Boyd , David Airlie , Daniel Vetter , Bjorn Andersson , linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org Subject: [PATCH v3 10/11] drm/msm/dpu: move max clock decision to dpu_kms. Date: Fri, 7 Jul 2023 22:39:41 +0300 Message-Id: <20230707193942.3806526-11-dmitry.baryshkov@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230707193942.3806526-1-dmitry.baryshkov@linaro.org> References: <20230707193942.3806526-1-dmitry.baryshkov@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org dpu_core_perf should not make decisions on the maximum possible core clock rate. Pass the value from dpu_kms_hw_init(). Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c | 11 ++--------- drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h | 8 ++------ drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 13 +++++++++++-- 3 files changed, 15 insertions(+), 17 deletions(-) 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 a570810c9254..e9d71c0855df 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c @@ -494,21 +494,14 @@ void dpu_core_perf_destroy(struct dpu_core_perf *perf) } perf->max_core_clk_rate = 0; - perf->core_clk = NULL; } int dpu_core_perf_init(struct dpu_core_perf *perf, const struct dpu_perf_cfg *perf_cfg, - struct clk *core_clk) + unsigned long max_core_clk_rate) { perf->perf_cfg = perf_cfg; - perf->core_clk = core_clk; - - perf->max_core_clk_rate = clk_get_rate(core_clk); - if (!perf->max_core_clk_rate) { - DPU_DEBUG("optional max core clk rate, use default\n"); - perf->max_core_clk_rate = DPU_PERF_DEFAULT_MAX_CORE_CLK_RATE; - } + perf->max_core_clk_rate = max_core_clk_rate; return 0; } diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h index e718d523ff30..8cc55752db5e 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h @@ -12,8 +12,6 @@ #include "dpu_hw_catalog.h" -#define DPU_PERF_DEFAULT_MAX_CORE_CLK_RATE 412500000 - /** * struct dpu_core_perf_params - definition of performance parameters * @max_per_pipe_ib: maximum instantaneous bandwidth request @@ -37,7 +35,6 @@ struct dpu_core_perf_tune { /** * struct dpu_core_perf - definition of core performance context * @perf_cfg: Platform-specific performance configuration - * @core_clk: Pointer to the core clock * @core_clk_rate: current core clock rate * @max_core_clk_rate: maximum allowable core clock rate * @perf_tune: debug control for performance tuning @@ -48,7 +45,6 @@ struct dpu_core_perf_tune { */ struct dpu_core_perf { const struct dpu_perf_cfg *perf_cfg; - struct clk *core_clk; u64 core_clk_rate; u64 max_core_clk_rate; struct dpu_core_perf_tune perf_tune; @@ -92,11 +88,11 @@ void dpu_core_perf_destroy(struct dpu_core_perf *perf); * dpu_core_perf_init - initialize the given core performance context * @perf: Pointer to core performance context * @perf_cfg: Pointer to platform performance configuration - * @core_clk: pointer to core clock + * @max_core_clk_rate: Maximum core clock rate */ int dpu_core_perf_init(struct dpu_core_perf *perf, const struct dpu_perf_cfg *perf_cfg, - struct clk *core_clk); + unsigned long max_core_clk_rate); struct dpu_kms; diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c index 631b6b679bae..f01b2278c01a 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c @@ -1011,11 +1011,14 @@ unsigned long dpu_kms_get_clk_rate(struct dpu_kms *dpu_kms, char *clock_name) return clk_get_rate(clk); } +#define DPU_PERF_DEFAULT_MAX_CORE_CLK_RATE 412500000 + static int dpu_kms_hw_init(struct msm_kms *kms) { struct dpu_kms *dpu_kms; struct drm_device *dev; int i, rc = -EINVAL; + unsigned long max_core_clk_rate; u32 core_rev; if (!kms) { @@ -1115,8 +1118,14 @@ static int dpu_kms_hw_init(struct msm_kms *kms) dpu_kms->hw_vbif[vbif->id] = hw; } - rc = dpu_core_perf_init(&dpu_kms->perf, dpu_kms->catalog->perf, - msm_clk_bulk_get_clock(dpu_kms->clocks, dpu_kms->num_clocks, "core")); + /* TODO: use the same max_freq as in dpu_kms_hw_init */ + max_core_clk_rate = dpu_kms_get_clk_rate(dpu_kms, "core"); + if (!max_core_clk_rate) { + DPU_DEBUG("max core clk rate not determined, using default\n"); + max_core_clk_rate = DPU_PERF_DEFAULT_MAX_CORE_CLK_RATE; + } + + rc = dpu_core_perf_init(&dpu_kms->perf, dpu_kms->catalog->perf, max_core_clk_rate); if (rc) { DPU_ERROR("failed to init perf %d\n", rc); goto perf_err; From patchwork Fri Jul 7 19:39:42 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 701215 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E2FDFC0015E for ; Fri, 7 Jul 2023 19:42:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232181AbjGGTmk (ORCPT ); Fri, 7 Jul 2023 15:42:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60546 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229890AbjGGTlY (ORCPT ); Fri, 7 Jul 2023 15:41:24 -0400 Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com [IPv6:2a00:1450:4864:20::132]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 119EA213D for ; Fri, 7 Jul 2023 12:39:53 -0700 (PDT) Received: by mail-lf1-x132.google.com with SMTP id 2adb3069b0e04-4fb9ae4cef6so3690339e87.3 for ; Fri, 07 Jul 2023 12:39:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1688758791; x=1691350791; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=vU1c/49oWLanKaAejW+DzYDq4MN30Rv8CE3BrFargO4=; b=f22t/0QgU2biLMJ3EILzJv7IMP4A/lRW7TXSYNMbMFKfzqLp9Xs/Z+0v/2zLAg4rYc wNZUnJSd06U+DFK85P1StmNBBfpg8H73sep3agFlqQ9m6dJq2IXhp3YO4T1Cq14apA54 crAuyWXmYwI4GOwBZsLRDF9eq3YIO9EtK9+S1fH/Qo6ot/e0mkneA88+2wZcZvWQr1Y0 FbZJMdEO4fnPv2hHaMfxdSYaq16MpijN5BOVV9ZcLK8OMAWoqTUgP8/pwVkhXLbFaBMR tBxPhZTpVGj/BTXi5QMeukDz3vN0sbob6PnRfonDh/uQuQTeRxIGxRHCPCbfV2a2X6mJ GmDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688758791; x=1691350791; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vU1c/49oWLanKaAejW+DzYDq4MN30Rv8CE3BrFargO4=; b=U+mO7xzSS7HwwyIEy6QdBUUEJvNKxPwcnyOgiMSt28EvjmRBWdrS00KYBbqTNfTp3t ZrQ2J2cKDdqMCeuXH30T8yeIUiquoTqmHlncLuLj+t1JlMRh3r1pv/Kf/C02cgTgyjyE yGkL98ggkFKlk5waQEOy53C1aaM1bauce8QWn8VxY7F18D49dzaBV2Tujt4rzh62xMb1 WMuuJDEzm0OiaNcKCWHQ8ZId9vuSqojbSynXKJHn1nY0mqVrzAUgo6H1R8RaX1vMUje9 yWP0kMnkyYNi+p711ayMyH5sT/YAQ0CDM86w7UikRpGZFng3EvjFFP7jzSLrEKbO/rUI TBgA== X-Gm-Message-State: ABy/qLbDmNJX731aAXFzj3q+9XGSMDBV2mxk3kn6LQjpvDx2ELCCpiHA E8LQpfRrCjnqy/hYxEH4CAfGMA== X-Google-Smtp-Source: APBJJlEZVx588V4IAHYVE54c/6CgIOxr/uFZfiqyxqLh/ZfRYrV+xq3/7BRQY2yCFYEnzOodRdQpHw== X-Received: by 2002:a05:6512:3b86:b0:4f9:5396:ed1b with SMTP id g6-20020a0565123b8600b004f95396ed1bmr5635257lfv.28.1688758791247; Fri, 07 Jul 2023 12:39:51 -0700 (PDT) Received: from umbar.unikie.fi ([192.130.178.91]) by smtp.gmail.com with ESMTPSA id q16-20020a19a410000000b004fba759bf44sm778995lfc.277.2023.07.07.12.39.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Jul 2023 12:39:50 -0700 (PDT) From: Dmitry Baryshkov To: Rob Clark , Sean Paul , Abhinav Kumar , Marijn Suijten Cc: Stephen Boyd , David Airlie , Daniel Vetter , Bjorn Andersson , linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, Konrad Dybcio Subject: [PATCH v3 11/11] drm/msm/dpu: drop dpu_core_perf_destroy() Date: Fri, 7 Jul 2023 22:39:42 +0300 Message-Id: <20230707193942.3806526-12-dmitry.baryshkov@linaro.org> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230707193942.3806526-1-dmitry.baryshkov@linaro.org> References: <20230707193942.3806526-1-dmitry.baryshkov@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org This function does nothing, just clears one struct field. Drop it now. Acked-by: Konrad Dybcio Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c | 10 ---------- drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h | 6 ------ drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 1 - 3 files changed, 17 deletions(-) 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 e9d71c0855df..adb932b0f49c 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c @@ -486,16 +486,6 @@ int dpu_core_perf_debugfs_init(struct dpu_kms *dpu_kms, struct dentry *parent) } #endif -void dpu_core_perf_destroy(struct dpu_core_perf *perf) -{ - if (!perf) { - DPU_ERROR("invalid parameters\n"); - return; - } - - perf->max_core_clk_rate = 0; -} - int dpu_core_perf_init(struct dpu_core_perf *perf, const struct dpu_perf_cfg *perf_cfg, unsigned long max_core_clk_rate) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h index 8cc55752db5e..4186977390bd 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h @@ -78,12 +78,6 @@ int dpu_core_perf_crtc_update(struct drm_crtc *crtc, */ void dpu_core_perf_crtc_release_bw(struct drm_crtc *crtc); -/** - * dpu_core_perf_destroy - destroy the given core performance context - * @perf: Pointer to core performance context - */ -void dpu_core_perf_destroy(struct dpu_core_perf *perf); - /** * dpu_core_perf_init - initialize the given core performance context * @perf: Pointer to core performance context diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c index f01b2278c01a..44b0daf70c4e 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c @@ -1171,7 +1171,6 @@ static int dpu_kms_hw_init(struct msm_kms *kms) return 0; drm_obj_init_err: - dpu_core_perf_destroy(&dpu_kms->perf); hw_intr_init_err: perf_err: power_error: