From nobody Thu Dec 18 09:41:01 2025 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 67DA4CA0EC6 for ; Mon, 11 Sep 2023 21:17:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245433AbjIKVJf (ORCPT ); Mon, 11 Sep 2023 17:09:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51512 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241535AbjIKPKi (ORCPT ); Mon, 11 Sep 2023 11:10:38 -0400 Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com [IPv6:2a00:1450:4864:20::532]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 96AD9E4D for ; Mon, 11 Sep 2023 08:10:32 -0700 (PDT) Received: by mail-ed1-x532.google.com with SMTP id 4fb4d7f45d1cf-51e28cac164so12126332a12.1 for ; Mon, 11 Sep 2023 08:10:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1694445031; x=1695049831; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=NUyRxR/Uia4+TvtVoZgzosqJP54jI70l0Rb5PTxSIO0=; b=Meh/e4xCpV26Fw/nFq8XX2zwuLP1q4ZYCG1BALo+J3L7bQVdN4qIrLKywp+xA/jKdo 7RrKnS8xslS0DhkF+KwETOGxqrxyJgpP78aUNLIj0icVSPxz9G9fwTIYlMKQcYxcrI3o NJkgcnLnZpPuCG+945js/6V4gTiWXlTEYguALO+eiNNFFXBOGJ4oW+shjove8XLpIZ2r bMw0Omv7Ql3gEwwb+psYIo4PC9yYxeFZhCrMgn0Z8X67EpFf/BrTxdn9YqN1mytDsvaY FjRgaPdIsPrjTQSy1L9xRORXBF6Iss9nmHNK8LwQV2KFoYPZ30ifYlq1nF15B//fsiOe KfcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694445031; x=1695049831; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=NUyRxR/Uia4+TvtVoZgzosqJP54jI70l0Rb5PTxSIO0=; b=aQAaEH2f2X2PLYmBj9rMeArNxR50PJSY6MR0lC8ziMxvn4ejVbzqzDXo8HillOxcVK AAr9AgqOc7h0l7agMOMkIxUkNUn/OF39+JbiH7QFhRFEAUC+B2GGZ0AeP4hemjRJcMRj ll/4gjFkZi4+yTbxGsPsMKJMo0Oir+TmbBdahJrSKM481jf01hGYuZMd1g/8i/r1dXXL nVzCuZHQhmjmJph6mABcq4tzqne7hwLtgda0hkyJ/HFL1xDrCLOYLsENMODsXw8Q3156 5w8wfrt0Hb1z3k4vgxUPWlk12zxQDRitQ/duNHm3GGnMFWVJ9A0ePFVixJ0sR9a6Doyw 9+2Q== X-Gm-Message-State: AOJu0Yz1Lw7qGe7EeAwJ9H1fJQ8/PwjRkIuLvCYuwtZ4ypvTBCLx3BH1 sFe0HxEp6bY1vKliq6zzkN14gg== X-Google-Smtp-Source: AGHT+IE+SVOvneVGxhxBtIgNA1anBmfCL+Ck3qG8GDP0HLi2b0fxHi9SfaS964iY6COpCxibjHNRVg== X-Received: by 2002:a05:6402:4405:b0:52e:83d0:203e with SMTP id y5-20020a056402440500b0052e83d0203emr18329671eda.10.1694445030938; Mon, 11 Sep 2023 08:10:30 -0700 (PDT) Received: from [10.167.154.1] (178235177061.dynamic-4-waw-k-1-1-0.vectranet.pl. [178.235.177.61]) by smtp.gmail.com with ESMTPSA id n4-20020a056402060400b0052a3ad836basm4681281edv.41.2023.09.11.08.10.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Sep 2023 08:10:30 -0700 (PDT) From: Konrad Dybcio Date: Mon, 11 Sep 2023 17:10:15 +0200 Subject: [PATCH RFT 01/20] media: venus: pm_helpers: Only set rate of the core clock in core_clks_enable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230911-topic-mars-v1-1-a7d38bf87bdb@linaro.org> References: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> In-Reply-To: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> To: Stanimir Varbanov , Vikash Garodia , Bryan O'Donoghue , Andy Gross , Bjorn Andersson , Mauro Carvalho Chehab , Dikshita Agarwal , Philipp Zabel Cc: Marijn Suijten , Stanimir Varbanov , Mauro Carvalho Chehab , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1694445027; l=1871; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=i0/wTGlR4xRp/57GwLT2PI2teveudhcMu4mGxZQVimE=; b=qP4UIXuf88KhwG3ipF2dvMc9LqIsJxto52OAUHUVlVlc/O1A/F94OrRRd7AZqQ5j8nS2Ix201 ucrzgifxSQHAQ4TC7i+TUdhmrViXVYE4JOUlMFtKEsYXwaV5cDRdFU+ X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit c22b1a29497c ("media: venus: core,pm: Vote for min clk freq during venus boot") intended to up the rate of the Venus core clock from the XO minimum to something more reasonable, based on the per- SoC frequency table. Unfortunately, it ended up calling set_rate with that same argument on all clocks in res->clks. Fix that using the OPP API. Fixes: c22b1a29497c ("media: venus: core,pm: Vote for min clk freq during v= enus boot") Signed-off-by: Konrad Dybcio --- drivers/media/platform/qcom/venus/pm_helpers.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media= /platform/qcom/venus/pm_helpers.c index 48c9084bb4db..2bd9c63d0253 100644 --- a/drivers/media/platform/qcom/venus/pm_helpers.c +++ b/drivers/media/platform/qcom/venus/pm_helpers.c @@ -41,24 +41,23 @@ static int core_clks_get(struct venus_core *core) static int core_clks_enable(struct venus_core *core) { const struct venus_resources *res =3D core->res; - const struct freq_tbl *freq_tbl =3D core->res->freq_tbl; - unsigned int freq_tbl_size =3D core->res->freq_tbl_size; - unsigned long freq; + struct dev_pm_opp *opp; + unsigned long freq =3D 0; unsigned int i; int ret; =20 - if (!freq_tbl) - return -EINVAL; + if (core->has_opp_table) { + opp =3D dev_pm_opp_find_freq_ceil(core->dev, &freq); + if (IS_ERR(opp)) + return PTR_ERR(opp); + dev_pm_opp_put(opp); =20 - freq =3D freq_tbl[freq_tbl_size - 1].freq; + ret =3D dev_pm_opp_set_rate(core->dev, freq); + if (ret) + return ret; + } =20 for (i =3D 0; i < res->clks_num; i++) { - if (IS_V6(core)) { - ret =3D clk_set_rate(core->clks[i], freq); - if (ret) - goto err; - } - ret =3D clk_prepare_enable(core->clks[i]); if (ret) goto err; --=20 2.42.0 From nobody Thu Dec 18 09:41:01 2025 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 5FC5FCA0EC6 for ; Mon, 11 Sep 2023 21:49:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1352253AbjIKVsu (ORCPT ); Mon, 11 Sep 2023 17:48:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51528 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241536AbjIKPKj (ORCPT ); Mon, 11 Sep 2023 11:10:39 -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 55F05CCC for ; Mon, 11 Sep 2023 08:10:34 -0700 (PDT) Received: by mail-lf1-x12d.google.com with SMTP id 2adb3069b0e04-500c37d479aso7366869e87.2 for ; Mon, 11 Sep 2023 08:10:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1694445032; x=1695049832; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=cRew6Oc+xnW64sLrM5CmEZevJKHbYAda+Rz+DKx8GYY=; b=c8tBQ5lftp9m9akfa7mZM7dN7m4KwCVDFJq0nKOBeqKJ4yI8VZ56cjYPI7lRFJdCM2 FKHAXbwzVjpzJJrcs7ikjGOypdQXAN1qjhL0NFep3l9fXE6K2g2IJDJndET8SnLXDyti 4cK3YafaiDpdqvomB6SJVTcu5CR1bn7vQulcO9ozcGrPOPSGfhfg1qI1BvyJGFXA/DR4 LWjtvSbIw4QYqDaFILNrBv08Mjl/OzNUTmdgB8xnD9KKtgJwDhr1joGVdqUKkhIQUm5w 055VW5VDbpFLSuGBQN9gdoVFDmNtYmmaJAcZ1A/zO913FlmnZD9BXCFwsBvqgopRNx5Z mevw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694445032; x=1695049832; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cRew6Oc+xnW64sLrM5CmEZevJKHbYAda+Rz+DKx8GYY=; b=CYf/NXdPGuBKF9qyuo+aPgOwzVlb/WSo7kJYlTnWBJX9R2VycsSTkybZU8HsvqFPIp VVyCwtV4MRp+54laE1oY7eq5fb9gR6em97t/UZ28muHhZsssT8rGr1BYJELz+nfi5dVT UEd6RK3PRR52nOj27rj4stgG8OH9uFkOmHKg6u7vhtuPCBjEIQX5Y8/qLaQdwYjIAnrC VmrHLDDctf7ovW8Xr5ogexDo+hUHcXRrmcnrwvUh54M60RDdg/RMWHUILy+OdLn2DeyR 6o4RKqHpaHt0XuiSNdWIHDjHGSLYUejBrd3fUyYVIDEmTlorJriS+T8gch9w609khVr4 004A== X-Gm-Message-State: AOJu0YzBIvQkQrLsZCXfe/UmAPObSZOchvdAbtgTzbofd9v0jPdkk/Hr nb+Uugv048WLR67288b0rGepkw== X-Google-Smtp-Source: AGHT+IFfkZSm2SgFnvhjGd4bD/9sLJAIYrIZkLexHdh26IJHuK5vq8c5x59Jkl+1Eo6Zxjq3cqM2ew== X-Received: by 2002:ac2:4ac7:0:b0:4fe:3364:6c20 with SMTP id m7-20020ac24ac7000000b004fe33646c20mr7707490lfp.16.1694445032494; Mon, 11 Sep 2023 08:10:32 -0700 (PDT) Received: from [10.167.154.1] (178235177061.dynamic-4-waw-k-1-1-0.vectranet.pl. [178.235.177.61]) by smtp.gmail.com with ESMTPSA id n4-20020a056402060400b0052a3ad836basm4681281edv.41.2023.09.11.08.10.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Sep 2023 08:10:32 -0700 (PDT) From: Konrad Dybcio Date: Mon, 11 Sep 2023 17:10:16 +0200 Subject: [PATCH RFT 02/20] media: venus: pm_helpers: Rename core_clks_get to venus_clks_get MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230911-topic-mars-v1-2-a7d38bf87bdb@linaro.org> References: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> In-Reply-To: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> To: Stanimir Varbanov , Vikash Garodia , Bryan O'Donoghue , Andy Gross , Bjorn Andersson , Mauro Carvalho Chehab , Dikshita Agarwal , Philipp Zabel Cc: Marijn Suijten , Stanimir Varbanov , Mauro Carvalho Chehab , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1694445027; l=1211; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=TgOAgouGXSGMwv5uLVeiQ7fWctx4QlplbsMWieUzcN8=; b=FYDz7Y0MnR3QEJGVvP5GQ5j94MwMMavqPgl3u+toJr8vc2WU+Y3EduelTYlplNMbzujrBy2KX P8X+Ht03HPVDwOddKScyKYBxKIzjGzq4d9Kg3QwC/YQBudw6SoFLNX9 X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org "core" is used in multiple contexts when talking about Venus, rename the function to save on confusion. Signed-off-by: Konrad Dybcio --- drivers/media/platform/qcom/venus/pm_helpers.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media= /platform/qcom/venus/pm_helpers.c index 2bd9c63d0253..e2aec0b46126 100644 --- a/drivers/media/platform/qcom/venus/pm_helpers.c +++ b/drivers/media/platform/qcom/venus/pm_helpers.c @@ -23,7 +23,7 @@ =20 static bool legacy_binding; =20 -static int core_clks_get(struct venus_core *core) +static int venus_clks_get(struct venus_core *core) { const struct venus_resources *res =3D core->res; struct device *dev =3D core->dev; @@ -294,7 +294,7 @@ static int core_get_v1(struct venus_core *core) { int ret; =20 - ret =3D core_clks_get(core); + ret =3D venus_clks_get(core); if (ret) return ret; =20 @@ -978,7 +978,7 @@ static int core_get_v4(struct venus_core *core) const struct venus_resources *res =3D core->res; int ret; =20 - ret =3D core_clks_get(core); + ret =3D venus_clks_get(core); if (ret) return ret; =20 --=20 2.42.0 From nobody Thu Dec 18 09:41:01 2025 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 EF079CA0EC3 for ; Mon, 11 Sep 2023 23:02:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346963AbjIKVYN (ORCPT ); Mon, 11 Sep 2023 17:24:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51584 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241546AbjIKPKk (ORCPT ); Mon, 11 Sep 2023 11:10:40 -0400 Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com [IPv6:2a00:1450:4864:20::42e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 89175E50 for ; Mon, 11 Sep 2023 08:10:35 -0700 (PDT) Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-31c93d2a24fso4155902f8f.2 for ; Mon, 11 Sep 2023 08:10:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1694445034; x=1695049834; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=7ht2UJ2SrAZEBCW6MQUWYMxu5nJ3shvvrcqqoVglcXI=; b=TzZ3f7VlRPGg7/misLMDmmMiGHgCXV0MOieoPxMZNZeG6oPgaQ/cyw4AB9K/9+ybOJ 49quPh6n7b4ZcAdzjzObrGAMBTLBMIBJZIpUwl/PzpZOwb/Ub0tjHuA+bVCOdKQXGTgW bLZZ9XreQQro/fKY3ERiGvYpU45MpbD5aI0qORkm389GDUBbzvSZ9vMvvKLdi0iXZyNZ XuEcdxKnFwsZOaDEerfHotGWK0kztBnaFImPiLc4uSDgR6sI8yLo7HQtcng2WR1PBBIa LjfEfTy36RFefoN4ltX03Pewa7jE8o6DaRiQB4hjzoRRXJqrbxDpX06mx5Mm3WCXB1h5 Szeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694445034; x=1695049834; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7ht2UJ2SrAZEBCW6MQUWYMxu5nJ3shvvrcqqoVglcXI=; b=oSLY+SEhwxmgGC2SCnK1qSSmNxWBMJYz3tTyXbfSMgJqFVivRD3PxYqY5iGZFhwakC A09mK8fgzYwURndK8auzN2WWQzOitoWpRvtMN9fypCWkX9EtiXAuKJitFCPXWqSyhK8c aa9Vj5PYWNthMAWasD5UGJtu5yBdxXWD9U0gKJ+spalLfHI8u5UaQyIUFh9fhyUV/6n9 khXyZh9P3aadytVN9DyCqpQlXMhP5ne1Jz0fGFDzKfnBwPIbJDd8YCZrd0mpHhGXSHIY vRdBT9kj7VbdfnPpBcCCG71F4w6CYW4199nYWBDM6quiGjxKPp8Kah+X7xoSwJKCl6V7 rPCA== X-Gm-Message-State: AOJu0Yws6hSFw1vnf/V783IpzEtZdz7sja1YTDKNlhZEbZ2Ddmuy06s8 0qdmYi2NA3agiscrxFjpOGvE5g== X-Google-Smtp-Source: AGHT+IE4nKR0UaC4vAJTRWZ8UGSUUnfSj9OlxBtzCtbNOI2rCiLWLB5iH0M/MLPczrSSHlDGkLqR7g== X-Received: by 2002:adf:ec42:0:b0:31c:6420:ff4 with SMTP id w2-20020adfec42000000b0031c64200ff4mr7695847wrn.36.1694445033966; Mon, 11 Sep 2023 08:10:33 -0700 (PDT) Received: from [10.167.154.1] (178235177061.dynamic-4-waw-k-1-1-0.vectranet.pl. [178.235.177.61]) by smtp.gmail.com with ESMTPSA id n4-20020a056402060400b0052a3ad836basm4681281edv.41.2023.09.11.08.10.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Sep 2023 08:10:33 -0700 (PDT) From: Konrad Dybcio Date: Mon, 11 Sep 2023 17:10:17 +0200 Subject: [PATCH RFT 03/20] media: venus: pm_helpers: Add kerneldoc to venus_clks_get() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230911-topic-mars-v1-3-a7d38bf87bdb@linaro.org> References: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> In-Reply-To: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> To: Stanimir Varbanov , Vikash Garodia , Bryan O'Donoghue , Andy Gross , Bjorn Andersson , Mauro Carvalho Chehab , Dikshita Agarwal , Philipp Zabel Cc: Marijn Suijten , Stanimir Varbanov , Mauro Carvalho Chehab , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1694445027; l=2105; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=Vha5xF+p9BTPxJus7eqd6sGp8qGoiJe2/C4TA/PBKzk=; b=f8G7+PSq8vQ8m0fwoFb7lhAeXAZZFKJlZ2K2ok59naEqYbofKKp6JrLJUliGcyJWrNRkL2vPp 0z5kabW6X0jC391xXkpaCqPIoGArBX9faLYDIv0ZpDgQu4zdI6vQRHx X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org To make it easier to understand the various clock requirements within this driver, add kerneldoc to venus_clk_get() explaining the fluff. Signed-off-by: Konrad Dybcio --- drivers/media/platform/qcom/venus/pm_helpers.c | 28 ++++++++++++++++++++++= ++++ 1 file changed, 28 insertions(+) diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media= /platform/qcom/venus/pm_helpers.c index e2aec0b46126..59e3eaad97ed 100644 --- a/drivers/media/platform/qcom/venus/pm_helpers.c +++ b/drivers/media/platform/qcom/venus/pm_helpers.c @@ -23,6 +23,34 @@ =20 static bool legacy_binding; =20 +/** + * venus_clks_get() - Get Venus clocks that are not bound to a vcodec + * @core: A pointer to the venus core resource + * + * The Venus block (depending on the generation) can be split into a couple + * of clock domains: one for "main logic" and one for each video core (0-2= pcs). + * + * MSM8916 (and possibly other HFIv1 users) only feature the "main logic" + * domain, so this function is the only kind if clk_get necessary there. + * + * MSM8996 (and other HFIv3 users) feature two video cores, with core0 bei= ng + * statically proclaimed a decoder and core1 an encoder, with both having + * their own clock domains. + * + * SDM845 features two video cores, each one of which may or may not be + * subdivided into 2 enc/dec threads. + * + * Other SoCs either feature a single video core (with its own clock domai= n) + * or 1 video core and 1 CVP (Computer Vision Processor) core. In both cas= es + * we treat it the same (CVP only happens to live near-by Venus on the SoC= ). + * + * Due to unfortunate developments in the past, we have to support bindings + * (MSM8996, SDM660, SDM845) that require specifying the clocks and + * power-domains associated with a video core domain in a bogus subnode, + * which means that additional fluff is necessary.. + * + * Return: 0 on success, negative errno on failure. + */ static int venus_clks_get(struct venus_core *core) { const struct venus_resources *res =3D core->res; --=20 2.42.0 From nobody Thu Dec 18 09:41:01 2025 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 706DACA0ECF for ; Mon, 11 Sep 2023 22:26:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237700AbjIKWYw (ORCPT ); Mon, 11 Sep 2023 18:24:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51596 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241550AbjIKPKm (ORCPT ); Mon, 11 Sep 2023 11:10:42 -0400 Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com [IPv6:2a00:1450:4864:20::52c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F33E0FA for ; Mon, 11 Sep 2023 08:10:36 -0700 (PDT) Received: by mail-ed1-x52c.google.com with SMTP id 4fb4d7f45d1cf-52a5c0d949eso5768397a12.0 for ; Mon, 11 Sep 2023 08:10:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1694445035; x=1695049835; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=a74mAUWyNjQUrLkNN32VnDJFxKb6KoEOU6sRKzb9I4w=; b=AK/WtdjbYakEDa9RXDC6KeojelzjuSwH9+PJkfJ9gTPiSESTd/s7rEoGUDR2Y8O2RZ Grcord7fKnsDBx/YiG8vDnZIYF95ZSEfjRHX5Dh6uD69T59OE88qSSN284K6XL4padO4 vGKP0fefE4gE3MgRO0NSfsn0LI2Wp7Ruzasgd45wrkQWvMVbuyTQahMD/004pUw5/mab Mm+YaHh57lO6eG7Km+218fpEdTR8lD7qC+mBi3OSkWlaILYMqWyLpC+SUYqYuRLgcEkN /tuhA1ZAJt6QFydtSNbJfl6qWXgDDvkbhU9ogiZWFWz0S/3/ywdjgmKc67xuIM2Tu0ZE oyLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694445035; x=1695049835; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=a74mAUWyNjQUrLkNN32VnDJFxKb6KoEOU6sRKzb9I4w=; b=dTEgnPL42SZ651YI+N2pm5fYwjWtQNq3O6t9x+B64357UdYS6c5hMfsb/LahF8dr+Q ScLre3cDP4fMIjTpmmAt5NK2Q3+te0sUUafrmBrfi6y+GrWoOWgSvdIlm8ENjBDMz7dA dzT5olaGbRJQo+NOlgxvNym0+R762jkZRCa/30DXpUzw1bWrsizBUvkl96RRIlAMWAl9 LVdQgF/oUuxOZ30+dpcwD96KB9zgnetlJTPAs5BJhqe3tEd8aqNiUyeuthPIo2ZIs2jQ ja7ftNBqDQOfLnL/EWkqfvukEJLL86BvvcgY8AQ8/rVacYnQ1q7v+Dy33QpwnyIP4iLu s2jw== X-Gm-Message-State: AOJu0YzXO5Vrcosw+7bvtb8tdeObxLsOWnmsLsjTsMU/0k2mNPnuI4RY W91KeHSFpcYSZxXrmfb2jCKqZojK2xTQdjiw0K67EA== X-Google-Smtp-Source: AGHT+IFgjmU2G+Cish/os/XJgU5/mjj81gMqFgSuu1O6gF75c7LT4BNdQoX7X5W2JPKjCrV6VKqnjQ== X-Received: by 2002:a05:6402:510:b0:522:ca6b:ad7d with SMTP id m16-20020a056402051000b00522ca6bad7dmr8349316edv.9.1694445035554; Mon, 11 Sep 2023 08:10:35 -0700 (PDT) Received: from [10.167.154.1] (178235177061.dynamic-4-waw-k-1-1-0.vectranet.pl. [178.235.177.61]) by smtp.gmail.com with ESMTPSA id n4-20020a056402060400b0052a3ad836basm4681281edv.41.2023.09.11.08.10.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Sep 2023 08:10:35 -0700 (PDT) From: Konrad Dybcio Date: Mon, 11 Sep 2023 17:10:18 +0200 Subject: [PATCH RFT 04/20] media: venus: core: Set OPP clkname in a common code path MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230911-topic-mars-v1-4-a7d38bf87bdb@linaro.org> References: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> In-Reply-To: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> To: Stanimir Varbanov , Vikash Garodia , Bryan O'Donoghue , Andy Gross , Bjorn Andersson , Mauro Carvalho Chehab , Dikshita Agarwal , Philipp Zabel Cc: Marijn Suijten , Stanimir Varbanov , Mauro Carvalho Chehab , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1694445027; l=2651; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=yWKtspCHH6VembG1lbkjXWBw413nk6iKNGzpyELOez8=; b=n21L3hKCSxuzjuglNuE7A8iIdmVtwk6Vqfkoet7bRWuHYWBjVCo76Z2Ah8Ynj6I31FRrZEjgs SWe8DcyMYZcB/X1vw5cGVJjEuMOhJR3OkbLOJve02C3YZ4/PS4MvkjG X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Calling devm_pm_opp_set_clkname() is repeated for all HFI versions in pm_ops->core_power. Move it to the common codepath. This also lets us get rid of core_get_v1. Signed-off-by: Konrad Dybcio --- drivers/media/platform/qcom/venus/core.c | 5 +++++ drivers/media/platform/qcom/venus/pm_helpers.c | 23 ++--------------------- 2 files changed, 7 insertions(+), 21 deletions(-) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index 054b8e74ba4f..f32b20c3a565 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -317,6 +318,10 @@ static int venus_probe(struct platform_device *pdev) if (!core->pm_ops) return -ENODEV; =20 + ret =3D devm_pm_opp_set_clkname(dev, "core"); + if (ret) + return ret; + if (core->pm_ops->core_get) { ret =3D core->pm_ops->core_get(core); if (ret) diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media= /platform/qcom/venus/pm_helpers.c index 59e3eaad97ed..9bedb3bc7223 100644 --- a/drivers/media/platform/qcom/venus/pm_helpers.c +++ b/drivers/media/platform/qcom/venus/pm_helpers.c @@ -318,21 +318,6 @@ static int load_scale_v1(struct venus_inst *inst) return ret; } =20 -static int core_get_v1(struct venus_core *core) -{ - int ret; - - ret =3D venus_clks_get(core); - if (ret) - return ret; - - ret =3D devm_pm_opp_set_clkname(core->dev, "core"); - if (ret) - return ret; - - return 0; -} - static void core_put_v1(struct venus_core *core) { } @@ -350,7 +335,7 @@ static int core_power_v1(struct venus_core *core, int o= n) } =20 static const struct venus_pm_ops pm_ops_v1 =3D { - .core_get =3D core_get_v1, + .core_get =3D venus_clks_get, .core_put =3D core_put_v1, .core_power =3D core_power_v1, .load_scale =3D load_scale_v1, @@ -423,7 +408,7 @@ static int venc_power_v3(struct device *dev, int on) } =20 static const struct venus_pm_ops pm_ops_v3 =3D { - .core_get =3D core_get_v1, + .core_get =3D venus_clks_get, .core_put =3D core_put_v1, .core_power =3D core_power_v1, .vdec_get =3D vdec_get_v3, @@ -1030,10 +1015,6 @@ static int core_get_v4(struct venus_core *core) if (legacy_binding) return 0; =20 - ret =3D devm_pm_opp_set_clkname(dev, "core"); - if (ret) - return ret; - ret =3D vcodec_domains_get(core); if (ret) return ret; --=20 2.42.0 From nobody Thu Dec 18 09:41:01 2025 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 C2868CA0ED0 for ; Mon, 11 Sep 2023 22:43:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1357695AbjIKWFy (ORCPT ); Mon, 11 Sep 2023 18:05:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51240 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241555AbjIKPKo (ORCPT ); Mon, 11 Sep 2023 11:10:44 -0400 Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com [IPv6:2a00:1450:4864:20::529]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 43692CCC for ; Mon, 11 Sep 2023 08:10:39 -0700 (PDT) Received: by mail-ed1-x529.google.com with SMTP id 4fb4d7f45d1cf-52a1ce529fdso6050105a12.1 for ; Mon, 11 Sep 2023 08:10:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1694445037; x=1695049837; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=hB07AWQ6+/HjqLThhLj5XIDObxfEfer4Yjs2PDgZbco=; b=ZOtQyqzyDIvSBpOgiZn5wCN03fcMB8DKKexIkzt9gck0m4rhhhRweF+RLj+E1x22b0 W7HTTlJx9v73qxNjbP4ARBv8I6j2nnXKPllW0xMgQ+HZ4HL0XNtKfm4CFi0gE31dmSp4 zdxnYymR6lcOQwNj0Hqg05RxA8xM0qHorJY4Vlp7uS53wpywrg93uT0fC5ndfp/K4iI5 ep9jV30RkrC5j3AJFzrmgI62IxTAHcjLDnNsZg1E8BdX+b6tliC/h2X7i1ss8XP70NWV NjAJ3ozguAZdqlaV5LELJY3LgGJPBO8jH3t3y+D2zNCwP8M5lbtNE808bhdwumgTSsax oFUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694445037; x=1695049837; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hB07AWQ6+/HjqLThhLj5XIDObxfEfer4Yjs2PDgZbco=; b=Z4iso+CA5OkeDApHYeH8aC1NcZbEttWdgiHT/Xl0qadsR7K9mZ9aEeYvWxlCtF2Nxi NlQrn5g3ZPSbWfDKopbHQOgRpC96esEKgO+Y+u9ESIsOeHvJ+MGUJO8pHsqWVHYUzX3p ActtjurhCzynz0xlvfTSZ6nicVRJsOOpFFwvi4shsk2bh1+GrCDSunsCzQP2W/WcFDp2 mBcwhtIGG/y8WrjhuYdphODfzU/hulWWu566I7IfgNnQG1ie2M+Dm8AdnlRH+kYNL4F8 e0JEOkfkLbm2/AaP6f0l06K50sOeEP15JnaTQv101gUwK/wWwkpVkVtSqnSMZhNBEC8c 34UA== X-Gm-Message-State: AOJu0YwQ7fgRjdfCAm2eblOXXbQqM00jUE8k5LPNwO3A+L0Ls/N8vh2b lv+QsjAQWXCueOXjxLiExo9pzQ== X-Google-Smtp-Source: AGHT+IHJPABWpI7Eq8rnPAY/s+Tohmf2Ji1RKKVtBhUqvuYbf4fo8qwJMluBqGhBSsrvs20bqX1bFg== X-Received: by 2002:a05:6402:8c3:b0:522:20a0:7eb8 with SMTP id d3-20020a05640208c300b0052220a07eb8mr7959403edz.33.1694445037678; Mon, 11 Sep 2023 08:10:37 -0700 (PDT) Received: from [10.167.154.1] (178235177061.dynamic-4-waw-k-1-1-0.vectranet.pl. [178.235.177.61]) by smtp.gmail.com with ESMTPSA id n4-20020a056402060400b0052a3ad836basm4681281edv.41.2023.09.11.08.10.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Sep 2023 08:10:37 -0700 (PDT) From: Konrad Dybcio Date: Mon, 11 Sep 2023 17:10:19 +0200 Subject: [PATCH RFT 05/20] media: venus: pm_helpers: Kill dead code MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230911-topic-mars-v1-5-a7d38bf87bdb@linaro.org> References: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> In-Reply-To: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> To: Stanimir Varbanov , Vikash Garodia , Bryan O'Donoghue , Andy Gross , Bjorn Andersson , Mauro Carvalho Chehab , Dikshita Agarwal , Philipp Zabel Cc: Marijn Suijten , Stanimir Varbanov , Mauro Carvalho Chehab , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1694445027; l=2141; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=QMvOYSIDhNKQG6pzBZaUv6e9JhH/er8ZMPeUWk6srGI=; b=XK0JQo551H+KBf+i/fiVuIM7cxliwEN1dSWCIJuOIUFCAvdHNT1EBk3XeoIB/hy/oghd/Gh6b LIBRGGfXgMcCgxb3Vkt4cp666O9latCD1vNrsCFGEnccpEky0ql/Vv1 X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org A situation like: if (!foo) goto bar; for (i =3D 0; i < foo; i++) ...1... bar: ...2... is totally identical to: for (i =3D 0; i < 0; i++) // =3D=3D=3D if (0) ...1... ...2... Get rid of such boilerplate. Signed-off-by: Konrad Dybcio --- drivers/media/platform/qcom/venus/pm_helpers.c | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media= /platform/qcom/venus/pm_helpers.c index 9bedb3bc7223..f5130aa3ddfc 100644 --- a/drivers/media/platform/qcom/venus/pm_helpers.c +++ b/drivers/media/platform/qcom/venus/pm_helpers.c @@ -875,9 +875,6 @@ static int vcodec_domains_get(struct venus_core *core) struct device *pd; unsigned int i; =20 - if (!res->vcodec_pmdomains_num) - goto skip_pmdomains; - for (i =3D 0; i < res->vcodec_pmdomains_num; i++) { pd =3D dev_pm_domain_attach_by_name(dev, res->vcodec_pmdomains[i]); @@ -886,7 +883,6 @@ static int vcodec_domains_get(struct venus_core *core) core->pmdomains[i] =3D pd; } =20 -skip_pmdomains: if (!core->res->opp_pmdomain) return 0; =20 @@ -922,16 +918,12 @@ static void vcodec_domains_put(struct venus_core *cor= e) const struct venus_resources *res =3D core->res; unsigned int i; =20 - if (!res->vcodec_pmdomains_num) - goto skip_pmdomains; - for (i =3D 0; i < res->vcodec_pmdomains_num; i++) { if (IS_ERR_OR_NULL(core->pmdomains[i])) continue; dev_pm_domain_detach(core->pmdomains[i], true); } =20 -skip_pmdomains: if (!core->has_opp_table) return; =20 @@ -945,9 +937,6 @@ static int core_resets_reset(struct venus_core *core) unsigned int i; int ret; =20 - if (!res->resets_num) - return 0; - for (i =3D 0; i < res->resets_num; i++) { ret =3D reset_control_assert(core->resets[i]); if (ret) @@ -970,9 +959,6 @@ static int core_resets_get(struct venus_core *core) unsigned int i; int ret; =20 - if (!res->resets_num) - return 0; - for (i =3D 0; i < res->resets_num; i++) { core->resets[i] =3D devm_reset_control_get_exclusive(dev, res->resets[i]); --=20 2.42.0 From nobody Thu Dec 18 09:41:01 2025 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 A0899CA0ECB for ; Mon, 11 Sep 2023 22:50:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1355669AbjIKWBp (ORCPT ); Mon, 11 Sep 2023 18:01:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51260 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241561AbjIKPKp (ORCPT ); Mon, 11 Sep 2023 11:10:45 -0400 Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com [IPv6:2a00:1450:4864:20::530]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ABEE5E4B for ; Mon, 11 Sep 2023 08:10:40 -0700 (PDT) Received: by mail-ed1-x530.google.com with SMTP id 4fb4d7f45d1cf-52c9f1bd05dso5971451a12.3 for ; Mon, 11 Sep 2023 08:10:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1694445039; x=1695049839; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=rgZree7XzpnUt+LTvm3ELxdMecDcHuNrPgAPFwwrlDc=; b=HfLJPspUIOYNlxqjTf6haE4L3OKKIt45rqYpRPXihauSxAXaOMlMLYBLONtGQXj0/X 5s7H+iegg3zpdHZufOaxrsLh3XhluTpnijUHUkbmsND9jvBGC/iAk5RpAGvOaA7zqVTg JWld6t3dAZq+J5h3jI4fyNkisU6WkdUJr37ksp2LoLRYalYQr6GeNY68S/6wPb7FWsWV p+3pRypVJDsD7jPHDm2gE2ya66l/oMJsEuhwSA62E8RVNorsULsfxbXyC38oL2KzvYwp QQv9IU1UG1eoMYHhLvSrc1TOOGog4Bbz6XbCErSoEEFVKT6uA05X61G9XKFy+JupHCf8 iExA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694445039; x=1695049839; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rgZree7XzpnUt+LTvm3ELxdMecDcHuNrPgAPFwwrlDc=; b=aR8xNyN3MBVTUBIhGnUAgY26dA4Mw9kKVpHTqOMAIi/1e4YvLxn8huxBaW5NQ7igU5 xMy7Lm0igQhgz0j2dp0I4R6AJEWj258x2NMJ+6voDcluDBaI6GTHu7aZH/D0jPYAWMGL /b4RfaRMJLEFK7FyxgWnwwHvqwgkJZJK2Osq2zasb8AJp/a29v0qvggUe/SrLKnW2ies K5EC30CwMrvrkNmseCRXAwvquDNzRwJ39FrPCPogKC2CK/+zDgzs9DublYcdejvsFN5n 5jwqXLBQKk8oDcWYmtf5JaY0yKCIBR5Z/U6n4aGtIdDlgmlayDTmGdL1zCh9F3BcwX2l OpVQ== X-Gm-Message-State: AOJu0YwuMaVcp9qSOuAHxIAgHmLCES1PM/HuIQMQDN1bsZnH6/4G1N1E GlytTUYfIYys+7FycqY15KVzIQ== X-Google-Smtp-Source: AGHT+IF6Autm6BEvISkfscmZhEQqCMFFMuaMCAzipStVpgAhuvU5zXf4w1yK4J40FXA+U9ObrHJAsg== X-Received: by 2002:a05:6402:2027:b0:529:4457:92ea with SMTP id ay7-20020a056402202700b00529445792eamr7948487edb.8.1694445039213; Mon, 11 Sep 2023 08:10:39 -0700 (PDT) Received: from [10.167.154.1] (178235177061.dynamic-4-waw-k-1-1-0.vectranet.pl. [178.235.177.61]) by smtp.gmail.com with ESMTPSA id n4-20020a056402060400b0052a3ad836basm4681281edv.41.2023.09.11.08.10.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Sep 2023 08:10:38 -0700 (PDT) From: Konrad Dybcio Date: Mon, 11 Sep 2023 17:10:20 +0200 Subject: [PATCH RFT 06/20] media: venus: pm_helpers: Move reset acquisition to common code MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230911-topic-mars-v1-6-a7d38bf87bdb@linaro.org> References: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> In-Reply-To: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> To: Stanimir Varbanov , Vikash Garodia , Bryan O'Donoghue , Andy Gross , Bjorn Andersson , Mauro Carvalho Chehab , Dikshita Agarwal , Philipp Zabel Cc: Marijn Suijten , Stanimir Varbanov , Mauro Carvalho Chehab , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1694445027; l=2552; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=PPoQc4dWxK9IfdAY7guj4bitRzCDNn4oxWqLDhFKXac=; b=FZ9N6btphy5IyNxFeo26cRZ7A+FoWhLl00Ms967tW3PwzNaN2mpOeDvWI4FHkyMzPdVQ1I8m7 FvaHtLL+VZeDOyU38CHcpwhkyuFVIZxuTq5o9sYz4ulCmz0tCN6Ly9k X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org There is no reason to keep reset_get code local to HFIv4/v6. Move it to the common part. Signed-off-by: Konrad Dybcio --- drivers/media/platform/qcom/venus/core.c | 9 ++++++++- drivers/media/platform/qcom/venus/pm_helpers.c | 23 ----------------------- 2 files changed, 8 insertions(+), 24 deletions(-) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index f32b20c3a565..2445a814b39f 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -284,7 +285,7 @@ static int venus_probe(struct platform_device *pdev) { struct device *dev =3D &pdev->dev; struct venus_core *core; - int ret; + int i, ret; =20 core =3D devm_kzalloc(dev, sizeof(*core), GFP_KERNEL); if (!core) @@ -322,6 +323,12 @@ static int venus_probe(struct platform_device *pdev) if (ret) return ret; =20 + for (i =3D 0; i < core->res->resets_num; i++) { + core->resets[i] =3D devm_reset_control_get_exclusive(dev, core->res->res= ets[i]); + if (IS_ERR(core->resets[i])) + return PTR_ERR(core->resets[i]); + } + if (core->pm_ops->core_get) { ret =3D core->pm_ops->core_get(core); if (ret) diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media= /platform/qcom/venus/pm_helpers.c index f5130aa3ddfc..0e04da8d7eb5 100644 --- a/drivers/media/platform/qcom/venus/pm_helpers.c +++ b/drivers/media/platform/qcom/venus/pm_helpers.c @@ -952,25 +952,6 @@ static int core_resets_reset(struct venus_core *core) return ret; } =20 -static int core_resets_get(struct venus_core *core) -{ - struct device *dev =3D core->dev; - const struct venus_resources *res =3D core->res; - unsigned int i; - int ret; - - for (i =3D 0; i < res->resets_num; i++) { - core->resets[i] =3D - devm_reset_control_get_exclusive(dev, res->resets[i]); - if (IS_ERR(core->resets[i])) { - ret =3D PTR_ERR(core->resets[i]); - return ret; - } - } - - return 0; -} - static int core_get_v4(struct venus_core *core) { struct device *dev =3D core->dev; @@ -994,10 +975,6 @@ static int core_get_v4(struct venus_core *core) if (ret) return ret; =20 - ret =3D core_resets_get(core); - if (ret) - return ret; - if (legacy_binding) return 0; =20 --=20 2.42.0 From nobody Thu Dec 18 09:41:01 2025 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 BE7B9CA0ED0 for ; Mon, 11 Sep 2023 21:57:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1354361AbjIKVxd (ORCPT ); Mon, 11 Sep 2023 17:53:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51280 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241567AbjIKPKr (ORCPT ); Mon, 11 Sep 2023 11:10:47 -0400 Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com [IPv6:2a00:1450:4864:20::52b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1FAE4CCC for ; Mon, 11 Sep 2023 08:10:42 -0700 (PDT) Received: by mail-ed1-x52b.google.com with SMTP id 4fb4d7f45d1cf-52bcb8b199aso5854756a12.3 for ; Mon, 11 Sep 2023 08:10:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1694445040; x=1695049840; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=eqksqqet9giP3P0XUk93/EO90DV32S65YoklfEthG48=; b=PEaa9Hx9TPG6zdx7IL9Bhj96ejuQ/g2a9c9PJ7/rMTSPRb5VAY30ocux9bX67LGiz2 i6Hu9+Fksk2i6VPOKnz0OphxrxN5a4UvZNqweB2ygwpLTe1BMknU8lYdApo4oNmrwe6H dWFLRauaSNljpZDKpOjANwKXLwddvKKEZemIINiTPFXzQG87OMAyr3bFNr+z8wbSE+Hp 2+7RTrpkWoSjMh1QOd+rp0BcGDxio2WU1ZyxugmMFzU6ukFwiF2sW2a3DIxPjq3+11qd c0NaeL7NtWYIk1GGNTUR1w3pxDdvrTmZEdqXDft5MulcsekKONj1WHj+kfN6080yE4mR wEEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694445040; x=1695049840; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=eqksqqet9giP3P0XUk93/EO90DV32S65YoklfEthG48=; b=IteaM7Gue7ZAoz3jPKrsK7AcntjiVnXlWE5zqiwxNb9qFR6QkKk1HameP+SnCWFqRz 3jLfZ1X/YQB9sAXTfwt7oCVDyZBb2nNwn81mUsv8i5D5WrxmcgCV3OKXw5+TBH22WbX6 xxFY0pADYg1BS9ijW09YkzhXlV3ElAkZ8ueCk/rHQrKCUNIarKQY0wyzaGH429M/7N1c aGZv1hzYdsTm8qrvP4yWmfaU/IZ7unwbVB6qON5je7vndd2IZ0XmRdMSqCQ5CCfT5QDE C3gStqJ4YKKnpP7/kHVk5yuAXSNBISowEKiP0i2g/4JjmxbFXLM+GMoRv1Ze+Kmg+iou eR8Q== X-Gm-Message-State: AOJu0YwUO55eXpqSsZjTSxPB745bLGRVVOUVTyI77dxRnvdYEYcQc9Ce 68wUS39QV/4wPxlhEYnpr24MGA== X-Google-Smtp-Source: AGHT+IE+jaw7ewPd1k+s1HIhFxPDeTMpckNkvOy0b0OZFZgjpqByn02zIajpJpJNMZQlXzZ1K2kFhQ== X-Received: by 2002:aa7:dd12:0:b0:52e:5b10:23ac with SMTP id i18-20020aa7dd12000000b0052e5b1023acmr8561749edv.36.1694445040649; Mon, 11 Sep 2023 08:10:40 -0700 (PDT) Received: from [10.167.154.1] (178235177061.dynamic-4-waw-k-1-1-0.vectranet.pl. [178.235.177.61]) by smtp.gmail.com with ESMTPSA id n4-20020a056402060400b0052a3ad836basm4681281edv.41.2023.09.11.08.10.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Sep 2023 08:10:40 -0700 (PDT) From: Konrad Dybcio Date: Mon, 11 Sep 2023 17:10:21 +0200 Subject: [PATCH RFT 07/20] media: venus: pm_helpers: Use reset_bulk API MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230911-topic-mars-v1-7-a7d38bf87bdb@linaro.org> References: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> In-Reply-To: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> To: Stanimir Varbanov , Vikash Garodia , Bryan O'Donoghue , Andy Gross , Bjorn Andersson , Mauro Carvalho Chehab , Dikshita Agarwal , Philipp Zabel Cc: Marijn Suijten , Stanimir Varbanov , Mauro Carvalho Chehab , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1694445027; l=3875; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=6SOAIR/YhjKNkqDg755glJQs4TpNo65/AFLcjoekzPI=; b=wqZ3x2u5JYMEJJayRe/YHzz6FOWYQf8wpqU38EmrFxVlwAa7Qk8rxo4z+QaAzyvTpEsAiU3fs +vd7vaWRJxjD2aqUtu9qFRdDChQJXF7YzAqTZhZD2Y/crOK1RfEJapR X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org All of the resets are toggled together. Use the bulk api to save on some code complexity. Note, this change is not exactly a NOP. Instead of waiting 150-250us between each reset toggle, the behavior now is to assert all the resets, wait 150-250us and deassert all the resets. This should be fine, but the logic here is really abusive, as such assertion requirements should be expressed per-reset_control, in the provider driver. Signed-off-by: Konrad Dybcio --- drivers/media/platform/qcom/venus/core.c | 15 ++++++++++----- drivers/media/platform/qcom/venus/core.h | 4 ++-- drivers/media/platform/qcom/venus/pm_helpers.c | 17 +++++------------ 3 files changed, 17 insertions(+), 19 deletions(-) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index 2445a814b39f..be633e62263c 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -323,11 +323,16 @@ static int venus_probe(struct platform_device *pdev) if (ret) return ret; =20 - for (i =3D 0; i < core->res->resets_num; i++) { - core->resets[i] =3D devm_reset_control_get_exclusive(dev, core->res->res= ets[i]); - if (IS_ERR(core->resets[i])) - return PTR_ERR(core->resets[i]); - } + core->resets =3D devm_kcalloc(dev, core->res->resets_num, sizeof(*core->r= esets), GFP_KERNEL); + if (core->res->resets_num && !core->resets) + return -ENOMEM; + + for (i =3D 0; i < core->res->resets_num; i++) + core->resets[i].id =3D core->res->resets[i]; + + ret =3D devm_reset_control_bulk_get_exclusive(dev, core->res->resets_num,= core->resets); + if (ret) + return ret; =20 if (core->pm_ops->core_get) { ret =3D core->pm_ops->core_get(core); diff --git a/drivers/media/platform/qcom/venus/core.h b/drivers/media/platf= orm/qcom/venus/core.h index 4a633261ece4..515e7d78b7ab 100644 --- a/drivers/media/platform/qcom/venus/core.h +++ b/drivers/media/platform/qcom/venus/core.h @@ -137,7 +137,7 @@ struct venus_format { * @pmdomains: an array of pmdomains struct device pointers * @opp_dl_venus: an device-link for device OPP * @opp_pmdomain: an OPP power-domain - * @resets: an array of reset signals + * @resets: a reset_control_bulk_data array of hardware reset signals * @vdev_dec: a reference to video device structure for decoder instances * @vdev_enc: a reference to video device structure for encoder instances * @v4l2_dev: a holder for v4l2 device structure @@ -190,7 +190,7 @@ struct venus_core { struct device *pmdomains[VIDC_PMDOMAINS_NUM_MAX]; struct device_link *opp_dl_venus; struct device *opp_pmdomain; - struct reset_control *resets[VIDC_RESETS_NUM_MAX]; + struct reset_control_bulk_data *resets; struct video_device *vdev_dec; struct video_device *vdev_enc; struct v4l2_device v4l2_dev; diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media= /platform/qcom/venus/pm_helpers.c index 0e04da8d7eb5..7f22a078b38a 100644 --- a/drivers/media/platform/qcom/venus/pm_helpers.c +++ b/drivers/media/platform/qcom/venus/pm_helpers.c @@ -934,22 +934,15 @@ static void vcodec_domains_put(struct venus_core *cor= e) static int core_resets_reset(struct venus_core *core) { const struct venus_resources *res =3D core->res; - unsigned int i; int ret; =20 - for (i =3D 0; i < res->resets_num; i++) { - ret =3D reset_control_assert(core->resets[i]); - if (ret) - goto err; + ret =3D reset_control_bulk_assert(res->resets_num, core->resets); + if (ret) + return ret; =20 - usleep_range(150, 250); - ret =3D reset_control_deassert(core->resets[i]); - if (ret) - goto err; - } + usleep_range(150, 250); =20 -err: - return ret; + return reset_control_bulk_deassert(res->resets_num, core->resets); } =20 static int core_get_v4(struct venus_core *core) --=20 2.42.0 From nobody Thu Dec 18 09:41:01 2025 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 4F138CA0EC6 for ; Mon, 11 Sep 2023 22:16:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1358442AbjIKWKx (ORCPT ); Mon, 11 Sep 2023 18:10:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51302 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241573AbjIKPKs (ORCPT ); Mon, 11 Sep 2023 11:10:48 -0400 Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com [IPv6:2a00:1450:4864:20::533]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 850EFFA for ; Mon, 11 Sep 2023 08:10:43 -0700 (PDT) Received: by mail-ed1-x533.google.com with SMTP id 4fb4d7f45d1cf-52a5c0d949eso5768539a12.0 for ; Mon, 11 Sep 2023 08:10:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1694445042; x=1695049842; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Y+Ee+p0MgR8f6mi4LN6zTW+Ly80MKvHlH7hIzIx/iCU=; b=Aqshvo2VtW5e0tfNPzDCC6ikf6iuO9yq9RI2WZlC7DF2r1jRGFiAWydnaYYYit5/Tu hH+yqAnblkvW03+OFHPD2kFzugN0OHusgDSGt9tl+2mSKn9FeH6AIIQGj5bUyieCy8aK GAA6gbbklHl0k99/Bdar3ERNdGacgMLfcNK/qnoWDnEOMvc13bYlSct0ovzXBbbT4CWT x5P1jUgW3z4Ife2h8ghgctbioosFDCIb5KAb0eP/OlmkfZWhjcKmL99a2myPZk/KirmM 8EobZMqOrvchPNdteVmJ8SuQKymx05+BdK4MyRfl+lPbW9BUFvPXSMFIAMJ80+WeFxVi C54w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694445042; x=1695049842; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Y+Ee+p0MgR8f6mi4LN6zTW+Ly80MKvHlH7hIzIx/iCU=; b=H//eDNa0Ua9PtZIv8qz/WTnCKh7qCDXLxJsWj0sYlo2Ci8UgYe4ZTycpgarG54uArO pxcP3lzJzzFwR3a/P4iEIv9ElmzA7tTcW0tpQGT5kVFB37VyCMDRlF+Nn7w55btady3k HUWA+EiqxY8EhAYnlNDP/ustbbhiLYel2NXXDcMctzdYjHoukywNpGUtVlG0qo85Biqu TbeFx5MncibFoB8wX+VxErQ65C8aiMHhpetJd0Lrs0vOlRyidQTsX3d9XdvlgfKYXsz9 uGz+jsTrHPesiYGzh6/ny/ICEFsDVR865aAA10V1rdBW0Gs5zYR/WGKd6flNGt2Rqt3o K79w== X-Gm-Message-State: AOJu0Yxe4maug/l2AE46y+LyBv5pO3vvVKv6oyqmABbH0BQroJ1N+GqM 5N5a/o7y1lNm7k6S3fbTgxjFnA== X-Google-Smtp-Source: AGHT+IHX+V1ZfRnb2p4Ait7p0NyTMhK+xnoPHBwMKdGlpVFN5o5gm33rn7JA6oNx0OyzZg92Pk+OTA== X-Received: by 2002:aa7:d9c8:0:b0:525:6666:3551 with SMTP id v8-20020aa7d9c8000000b0052566663551mr7753512eds.27.1694445042122; Mon, 11 Sep 2023 08:10:42 -0700 (PDT) Received: from [10.167.154.1] (178235177061.dynamic-4-waw-k-1-1-0.vectranet.pl. [178.235.177.61]) by smtp.gmail.com with ESMTPSA id n4-20020a056402060400b0052a3ad836basm4681281edv.41.2023.09.11.08.10.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Sep 2023 08:10:41 -0700 (PDT) From: Konrad Dybcio Date: Mon, 11 Sep 2023 17:10:22 +0200 Subject: [PATCH RFT 08/20] media: venus: core: Constify all members of the resource struct MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230911-topic-mars-v1-8-a7d38bf87bdb@linaro.org> References: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> In-Reply-To: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> To: Stanimir Varbanov , Vikash Garodia , Bryan O'Donoghue , Andy Gross , Bjorn Andersson , Mauro Carvalho Chehab , Dikshita Agarwal , Philipp Zabel Cc: Marijn Suijten , Stanimir Varbanov , Mauro Carvalho Chehab , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1694445027; l=2695; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=W0g0byTl6c4puFfQRs30LwSqiMEXDbtkmuwi72umncI=; b=h+Lq+Zn8i1er1pX71A5d9g50NTac8o2WQ32FO2tyoRiMIEanxulG/HCnQs9kEGCslGEsXACs1 S5RLewuAk2JDxlr5PAQwqtuJGb+EIBjLWo3Vlc/hYGQBhvKN7+QaJ7r X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Nothing inside the resource struct needs to be mutable. Sprinkle 'const' all over it. A lot of 'const'. Signed-off-by: Konrad Dybcio --- drivers/media/platform/qcom/venus/core.h | 56 ++++++++++++++++------------= ---- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/drivers/media/platform/qcom/venus/core.h b/drivers/media/platf= orm/qcom/venus/core.h index 515e7d78b7ab..9a38d568117a 100644 --- a/drivers/media/platform/qcom/venus/core.h +++ b/drivers/media/platform/qcom/venus/core.h @@ -57,39 +57,39 @@ enum vpu_version { }; =20 struct venus_resources { - u64 dma_mask; - const struct freq_tbl *freq_tbl; - unsigned int freq_tbl_size; - const struct bw_tbl *bw_tbl_enc; - unsigned int bw_tbl_enc_size; - const struct bw_tbl *bw_tbl_dec; - unsigned int bw_tbl_dec_size; - const struct reg_val *reg_tbl; - unsigned int reg_tbl_size; - const struct hfi_ubwc_config *ubwc_conf; + const u64 dma_mask; + const struct freq_tbl * const freq_tbl; + const unsigned int freq_tbl_size; + const struct bw_tbl * const bw_tbl_enc; + const unsigned int bw_tbl_enc_size; + const struct bw_tbl * const bw_tbl_dec; + const unsigned int bw_tbl_dec_size; + const struct reg_val * const reg_tbl; + const unsigned int reg_tbl_size; + const struct hfi_ubwc_config * const ubwc_conf; const char * const clks[VIDC_CLKS_NUM_MAX]; - unsigned int clks_num; + const unsigned int clks_num; const char * const vcodec0_clks[VIDC_VCODEC_CLKS_NUM_MAX]; const char * const vcodec1_clks[VIDC_VCODEC_CLKS_NUM_MAX]; - unsigned int vcodec_clks_num; + const unsigned int vcodec_clks_num; const char * const vcodec_pmdomains[VIDC_PMDOMAINS_NUM_MAX]; - unsigned int vcodec_pmdomains_num; - const char **opp_pmdomain; - unsigned int vcodec_num; + const unsigned int vcodec_pmdomains_num; + const char * const * const opp_pmdomain; + const unsigned int vcodec_num; const char * const resets[VIDC_RESETS_NUM_MAX]; - unsigned int resets_num; - enum hfi_version hfi_version; - enum vpu_version vpu_version; - u8 num_vpp_pipes; - u32 max_load; - unsigned int vmem_id; - u32 vmem_size; - u32 vmem_addr; - u32 cp_start; - u32 cp_size; - u32 cp_nonpixel_start; - u32 cp_nonpixel_size; - const char *fwname; + const unsigned int resets_num; + const enum hfi_version hfi_version; + const enum vpu_version vpu_version; + const u8 num_vpp_pipes; + const u32 max_load; + const unsigned int vmem_id; + const u32 vmem_size; + const u32 vmem_addr; + const u32 cp_start; + const u32 cp_size; + const u32 cp_nonpixel_start; + const u32 cp_nonpixel_size; + const char * const fwname; }; =20 enum venus_fmt { --=20 2.42.0 From nobody Thu Dec 18 09:41:01 2025 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 7D8FCCA0EC9 for ; Mon, 11 Sep 2023 21:17:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245241AbjIKVJI (ORCPT ); Mon, 11 Sep 2023 17:09:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51354 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241584AbjIKPKu (ORCPT ); Mon, 11 Sep 2023 11:10:50 -0400 Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com [IPv6:2a00:1450:4864:20::52c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 48EEDE5F for ; Mon, 11 Sep 2023 08:10:45 -0700 (PDT) Received: by mail-ed1-x52c.google.com with SMTP id 4fb4d7f45d1cf-52a40cf952dso6051562a12.2 for ; Mon, 11 Sep 2023 08:10:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1694445043; x=1695049843; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=57SqA+LXlncdOSRG7NfyWVutfyFwNDJRXLwGDrFIQwc=; b=xhy7Kiwv+rxwl6x1ytMMjhpvq3xT1Hy3kKP5dD2BwrjZxLUmsBQhRfdHlowffElaqe QKLRMkLTy0VAbbRKyjeCcqMm4+odEshO1kRIkCRNv3RwwUwQPqhvt9NOPGqSRgVWCBUm rrjmmtKXZkU1vs3ngPyWXYsyJddCuPJrrvHC/rLVFEMzXIIC1X94SXkEdSvqA7nDgyMg uNTR/W9iQDq59PoLp1lN93Ae753XEllnZ5RLST2+IH/RONl0AY98+PDuFbziv3a+uR8V /S0eZpPYnikiUf5ZX9x6lNfOpLxX6i9swHz/b3hOGyZSqhWxd2IPtC292nV5TJloVUBw cT3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694445043; x=1695049843; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=57SqA+LXlncdOSRG7NfyWVutfyFwNDJRXLwGDrFIQwc=; b=k/II/32Y8a7qMEPPPpcm5yvIOd7r11BzHhcd7dHOqIuFawaJUQakW/Cz4SCTzvau19 3Vlz/4w1aUGhu17983f3HifvvGWUdDXgTQYM8uieyIrWpMBEWWAlkEC9wro9eLScDLkc dw7PddlhUG7/bJG39jDCqLOdRymDjb0htLWq0s+C7rQwh+8BHO/V1EGZM1N6rqPJ1GrN MMhLusrUgB6KJL2S0baQYgJoMVXILbXZ+bPG3AIAXeTBxrboqMpDb1evX8/bGobfoci6 JPXA3wFi5Q2H02T9wHGCCZJTx4BzUfHwCaLvycqGV6ehVRGqYPN54L1OvzVZcL9MAmyo qnAw== X-Gm-Message-State: AOJu0YwPEqgd+QOH7fHNYoXUkuoomw2miPKG2kI0WrnGeuHmdOASI7jy 9AoNx9mkc0r/LAME2UipORH6Tg== X-Google-Smtp-Source: AGHT+IEM1XY9Q9mfMFjuXXxZ7I4BGgfXUz25Bc65y8IWsWS3kRv9n//07VTtiG7GlZMNexyHlYlgjA== X-Received: by 2002:a05:6402:333:b0:522:3d36:ff27 with SMTP id q19-20020a056402033300b005223d36ff27mr8334041edw.31.1694445043745; Mon, 11 Sep 2023 08:10:43 -0700 (PDT) Received: from [10.167.154.1] (178235177061.dynamic-4-waw-k-1-1-0.vectranet.pl. [178.235.177.61]) by smtp.gmail.com with ESMTPSA id n4-20020a056402060400b0052a3ad836basm4681281edv.41.2023.09.11.08.10.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Sep 2023 08:10:43 -0700 (PDT) From: Konrad Dybcio Date: Mon, 11 Sep 2023 17:10:23 +0200 Subject: [PATCH RFT 09/20] media: venus: core: Deduplicate OPP genpd names MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230911-topic-mars-v1-9-a7d38bf87bdb@linaro.org> References: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> In-Reply-To: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> To: Stanimir Varbanov , Vikash Garodia , Bryan O'Donoghue , Andy Gross , Bjorn Andersson , Mauro Carvalho Chehab , Dikshita Agarwal , Philipp Zabel Cc: Marijn Suijten , Stanimir Varbanov , Mauro Carvalho Chehab , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1694445027; l=2397; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=kcD6HPiGF+k3gCBcQjb5aEtKWIEejr4RKDg3yYPZBxk=; b=cqHVKPHualNUKjgbmwbOyX8dv1M+FNYrsWDzSsXlebm35My/ZRPJeQY3KMnsVDeb10D3vEdzY evpaFxxtljGD0oaNimSg5uCYI/l4N6eRVMKen6RUkY3z7U1fXR4qXnI X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Instead of redefining the same literals over and over again, define them once and point the reference to that definition. Signed-off-by: Konrad Dybcio --- drivers/media/platform/qcom/venus/core.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index be633e62263c..8aac7f60fc81 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -541,6 +541,9 @@ static const struct dev_pm_ops venus_pm_ops =3D { SET_RUNTIME_PM_OPS(venus_runtime_suspend, venus_runtime_resume, NULL) }; =20 +static const char * const pd_names_cx[] =3D { "cx", NULL }; +static const char * const pd_names_mx[] =3D { "mx", NULL }; + static const struct freq_tbl msm8916_freq_table[] =3D { { 352800, 228570000 }, /* 1920x1088 @ 30 + 1280x720 @ 30 */ { 244800, 160000000 }, /* 1920x1088 @ 30 */ @@ -724,7 +727,7 @@ static const struct venus_resources sdm845_res_v2 =3D { .vcodec_clks_num =3D 2, .vcodec_pmdomains =3D { "venus", "vcodec0", "vcodec1" }, .vcodec_pmdomains_num =3D 3, - .opp_pmdomain =3D (const char *[]) { "cx", NULL }, + .opp_pmdomain =3D pd_names_cx, .vcodec_num =3D 2, .max_load =3D 3110400, /* 4096x2160@90 */ .hfi_version =3D HFI_VERSION_4XX, @@ -773,7 +776,7 @@ static const struct venus_resources sc7180_res =3D { .vcodec_clks_num =3D 2, .vcodec_pmdomains =3D { "venus", "vcodec0" }, .vcodec_pmdomains_num =3D 2, - .opp_pmdomain =3D (const char *[]) { "cx", NULL }, + .opp_pmdomain =3D pd_names_cx, .vcodec_num =3D 1, .hfi_version =3D HFI_VERSION_4XX, .vpu_version =3D VPU_VERSION_AR50, @@ -830,7 +833,7 @@ static const struct venus_resources sm8250_res =3D { .vcodec_clks_num =3D 1, .vcodec_pmdomains =3D { "venus", "vcodec0" }, .vcodec_pmdomains_num =3D 2, - .opp_pmdomain =3D (const char *[]) { "mx", NULL }, + .opp_pmdomain =3D pd_names_mx, .vcodec_num =3D 1, .max_load =3D 7833600, .hfi_version =3D HFI_VERSION_6XX, @@ -889,7 +892,7 @@ static const struct venus_resources sc7280_res =3D { .vcodec_clks_num =3D 2, .vcodec_pmdomains =3D { "venus", "vcodec0" }, .vcodec_pmdomains_num =3D 2, - .opp_pmdomain =3D (const char *[]) { "cx", NULL }, + .opp_pmdomain =3D pd_names_cx, .vcodec_num =3D 1, .hfi_version =3D HFI_VERSION_6XX, .vpu_version =3D VPU_VERSION_IRIS2_1, --=20 2.42.0 From nobody Thu Dec 18 09:41:01 2025 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 0FCA4CA0EDA for ; Mon, 11 Sep 2023 21:41:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238183AbjIKVjH (ORCPT ); Mon, 11 Sep 2023 17:39:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59884 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241589AbjIKPKw (ORCPT ); Mon, 11 Sep 2023 11:10:52 -0400 Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com [IPv6:2a00:1450:4864:20::433]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0F2E8CCC for ; Mon, 11 Sep 2023 08:10:47 -0700 (PDT) Received: by mail-wr1-x433.google.com with SMTP id ffacd0b85a97d-31f4a286ae1so4250208f8f.3 for ; Mon, 11 Sep 2023 08:10:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1694445045; x=1695049845; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=spHpGVd+zWE6f7Ydbw/UHW0+Hj7H33rl1DfjyP47SF4=; b=JZcLo7Eg8ALbmFDX5fQEP6gHt0MZgrRZkScd/OEQBWQEKIKaphzqjhvhUTVzCbn3h4 //u4HuR8aNC1A6zb26GYTDYB5PWBaQL3i5V6i3yAnQ8KAtPgOHem04rNQK46mCdeOu72 28pjKCr7mMR7V/A01ahwOzuSuf0jkDTMvnYjBTgY8KJQlrmthn/kJg24tNPYTF1yTtuT pgOk2tj8gIOz11eQcqF4PzOaV7oakpWqq7WMg89H7kPtiRRmZNUWZoHC819ZrUxmKWsZ UnMgMIs/vDz3QRAlkls4y9Tu6rfPLtRGA+bQYeFX9Shpyr6V0DeK/HhlL/AB2G75O54i lWzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694445045; x=1695049845; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=spHpGVd+zWE6f7Ydbw/UHW0+Hj7H33rl1DfjyP47SF4=; b=YjkC+xokx4OX+vte5KGSFw8ztO45G0HE1+CS3Isd9P2XIBlGHe554BsynKO4mfxRF5 pBvCq9YhcMSJIDNYp5MV9O32Ugff1wOKiT/Q7gzsrvJYuaPVlwxNrqgo468c9TPN2FDz 73PyMeJbckf8KqMxNVbH2KTS76GEPmmuBaXmy9PVcbIefhNhk/jNcWLxxd49Pc/rYJ4L kbktyYEJdlKyXzGNoMy3xAXgKG2mtpzvfWUj2Q1w6DnXolwxTRcfWCgCEdCS/2FJrLgk v+hzJur28hOweGpKDSir0TDSx6VZTCbQQuN3KfieOE2phv5NjiTOdmD+Jv6XNEDAywzn XM8A== X-Gm-Message-State: AOJu0YzYBiAioMdF8kEDed7bZYDzFyV6txjqpsSIaZM2oDu4kaCwS4hd S74VesdU8CGKL0A8egTNS6e2VR+6Sudap7OTUE8LHw== X-Google-Smtp-Source: AGHT+IF9n8CHyg52W67gOGjSdWupf5OMQPqUAhCiwoTnkFLT1nNeDkt3jhXGl7lq9AZkswN325E1+w== X-Received: by 2002:a5d:5e07:0:b0:31f:accf:bf0d with SMTP id ce7-20020a5d5e07000000b0031faccfbf0dmr2123820wrb.31.1694445045574; Mon, 11 Sep 2023 08:10:45 -0700 (PDT) Received: from [10.167.154.1] (178235177061.dynamic-4-waw-k-1-1-0.vectranet.pl. [178.235.177.61]) by smtp.gmail.com with ESMTPSA id n4-20020a056402060400b0052a3ad836basm4681281edv.41.2023.09.11.08.10.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Sep 2023 08:10:45 -0700 (PDT) From: Konrad Dybcio Date: Mon, 11 Sep 2023 17:10:24 +0200 Subject: [PATCH RFT 10/20] media: venus: core: Get rid of vcodec_num MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230911-topic-mars-v1-10-a7d38bf87bdb@linaro.org> References: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> In-Reply-To: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> To: Stanimir Varbanov , Vikash Garodia , Bryan O'Donoghue , Andy Gross , Bjorn Andersson , Mauro Carvalho Chehab , Dikshita Agarwal , Philipp Zabel Cc: Marijn Suijten , Stanimir Varbanov , Mauro Carvalho Chehab , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1694445027; l=3392; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=E27PEdtMbBCeTz/SFqV5c29UzEMxfDQhGYV4gJ2hkIU=; b=eP4J6G7A9i2lLxLYhcoqh71Uc92r7ve2wbf+NBuVaQNSf9izMM8bxIK75Ts6XO4kACND90Syh 2QQ2fNoX89ABnCC6EQx1ivSgkt68Jdq1uOFNxGL5VRPfGh+iiIZU7DB X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org That field was only introduced to differentiate between the legacy and non-legacy SDM845 binding. Get rid of it. Signed-off-by: Konrad Dybcio --- drivers/media/platform/qcom/venus/core.c | 5 ----- drivers/media/platform/qcom/venus/core.h | 1 - drivers/media/platform/qcom/venus/pm_helpers.c | 2 +- 3 files changed, 1 insertion(+), 7 deletions(-) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index 8aac7f60fc81..e83c790ccc80 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -654,7 +654,6 @@ static const struct venus_resources sdm660_res =3D { .vcodec0_clks =3D { "vcodec0_core" }, .vcodec1_clks =3D { "vcodec0_core" }, .vcodec_clks_num =3D 1, - .vcodec_num =3D 1, .max_load =3D 1036800, .hfi_version =3D HFI_VERSION_3XX, .vmem_id =3D VIDC_RESOURCE_NONE, @@ -728,7 +727,6 @@ static const struct venus_resources sdm845_res_v2 =3D { .vcodec_pmdomains =3D { "venus", "vcodec0", "vcodec1" }, .vcodec_pmdomains_num =3D 3, .opp_pmdomain =3D pd_names_cx, - .vcodec_num =3D 2, .max_load =3D 3110400, /* 4096x2160@90 */ .hfi_version =3D HFI_VERSION_4XX, .vpu_version =3D VPU_VERSION_AR50, @@ -777,7 +775,6 @@ static const struct venus_resources sc7180_res =3D { .vcodec_pmdomains =3D { "venus", "vcodec0" }, .vcodec_pmdomains_num =3D 2, .opp_pmdomain =3D pd_names_cx, - .vcodec_num =3D 1, .hfi_version =3D HFI_VERSION_4XX, .vpu_version =3D VPU_VERSION_AR50, .vmem_id =3D VIDC_RESOURCE_NONE, @@ -834,7 +831,6 @@ static const struct venus_resources sm8250_res =3D { .vcodec_pmdomains =3D { "venus", "vcodec0" }, .vcodec_pmdomains_num =3D 2, .opp_pmdomain =3D pd_names_mx, - .vcodec_num =3D 1, .max_load =3D 7833600, .hfi_version =3D HFI_VERSION_6XX, .vpu_version =3D VPU_VERSION_IRIS2, @@ -893,7 +889,6 @@ static const struct venus_resources sc7280_res =3D { .vcodec_pmdomains =3D { "venus", "vcodec0" }, .vcodec_pmdomains_num =3D 2, .opp_pmdomain =3D pd_names_cx, - .vcodec_num =3D 1, .hfi_version =3D HFI_VERSION_6XX, .vpu_version =3D VPU_VERSION_IRIS2_1, .num_vpp_pipes =3D 1, diff --git a/drivers/media/platform/qcom/venus/core.h b/drivers/media/platf= orm/qcom/venus/core.h index 9a38d568117a..de180f8e7973 100644 --- a/drivers/media/platform/qcom/venus/core.h +++ b/drivers/media/platform/qcom/venus/core.h @@ -75,7 +75,6 @@ struct venus_resources { const char * const vcodec_pmdomains[VIDC_PMDOMAINS_NUM_MAX]; const unsigned int vcodec_pmdomains_num; const char * const * const opp_pmdomain; - const unsigned int vcodec_num; const char * const resets[VIDC_RESETS_NUM_MAX]; const unsigned int resets_num; const enum hfi_version hfi_version; diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media= /platform/qcom/venus/pm_helpers.c index 7f22a078b38a..816d16f9153a 100644 --- a/drivers/media/platform/qcom/venus/pm_helpers.c +++ b/drivers/media/platform/qcom/venus/pm_helpers.c @@ -622,7 +622,7 @@ min_loaded_core(struct venus_inst *inst, u32 *min_corei= d, u32 *min_load, bool lo VIDC_CORE_ID_1 : VIDC_CORE_ID_2; *min_load =3D min(core1_load, core2_load); =20 - if (cores_max < VIDC_CORE_ID_2 || core->res->vcodec_num < 2) { + if (cores_max < VIDC_CORE_ID_2 || legacy_binding) { *min_coreid =3D VIDC_CORE_ID_1; *min_load =3D core1_load; } --=20 2.42.0 From nobody Thu Dec 18 09:41:01 2025 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 72980CA0EC9 for ; Mon, 11 Sep 2023 22:07:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1355900AbjIKWCT (ORCPT ); Mon, 11 Sep 2023 18:02:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59920 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241594AbjIKPKy (ORCPT ); Mon, 11 Sep 2023 11:10:54 -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 B7BA5E54 for ; Mon, 11 Sep 2023 08:10:48 -0700 (PDT) Received: by mail-lf1-x132.google.com with SMTP id 2adb3069b0e04-502a4f33440so4344653e87.1 for ; Mon, 11 Sep 2023 08:10:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1694445047; x=1695049847; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=KoRoq/DrVvkmjCXseaDmK4CEsiQOZW3LoyiqrnjQB9s=; b=FL7EHe9/CZuMCn13KeDyBF2tco7gj9DSQ98KZqSXvcHD5jc7RJ3C9nRJubp9FJx9gN cjd2DrbiiU2nixHyI/s1/ny/xrha7MsqOeHVNf3srOTKQe6+d8sH45EkSOVcLdTwGRZe ncb8rkVgQr1wxxlJX5dWtvKcMC41EVn2vVkrVM/ESmxeBkZtw98+9zVERmTbpFEd52qB 12SGYPcSQUHoaPi0olbZQwHgazt3I0m6/XGMVfJeiycK6N6ddEcNz/6jjypbnCkxxWLt wJ1JmlyjEYyhtJXi5jk/xcMHg4ieMISoaeG6nS42eDcfJrqb1jf57qVLnqvTNPEEibBa Bvtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694445047; x=1695049847; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KoRoq/DrVvkmjCXseaDmK4CEsiQOZW3LoyiqrnjQB9s=; b=wM3n86fNBAFM+Rh8stX7gkhlW17OENUDfUpOom53JDDBAjDv5oZt3776l+8wGTLmQW Vi8gEsZY2/1E1H18L98q0lDxJtq4xGk7daRaIKE2oR4g8tdSekKgvz+ETze3bFZp5vVp 0ITNrF453G2IFDV0wP9+UwbQz+3KvD0KwOfAjj0hzD5hM+lJJ5S2dz2BkG4J/qBA4lV7 A/evwahA07HfotcfLdnGvH7Tjnw0ejuqHacAV+wwQVGlhcpE0cwO8jEbTrtnrYPA1qnB tt0mzeCJ4BCNo+EzyMXONsFwbqi8iZmF9qbctjCOr4fss19J7RaefozMUfXe5Jb1sdEE IC9g== X-Gm-Message-State: AOJu0Yx8L8Z+sNIGdWX/4kMTmAJUFrH6hX4hRz2R1pB4LMWlppi6LzAG 2N/zyXrHuvcBbsMGHkRcPnc3Qg== X-Google-Smtp-Source: AGHT+IHoUjK7egly+lD/FRgwIWWwd0EnDIrheAdA1IHTTas5hH3dS+VKbAAlXhaXrbGwZUjKW8W1UA== X-Received: by 2002:a05:6512:32ce:b0:500:8725:1351 with SMTP id f14-20020a05651232ce00b0050087251351mr9174605lfg.47.1694445047031; Mon, 11 Sep 2023 08:10:47 -0700 (PDT) Received: from [10.167.154.1] (178235177061.dynamic-4-waw-k-1-1-0.vectranet.pl. [178.235.177.61]) by smtp.gmail.com with ESMTPSA id n4-20020a056402060400b0052a3ad836basm4681281edv.41.2023.09.11.08.10.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Sep 2023 08:10:46 -0700 (PDT) From: Konrad Dybcio Date: Mon, 11 Sep 2023 17:10:25 +0200 Subject: [PATCH RFT 11/20] media: venus: core: Drop cache properties in resource struct MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230911-topic-mars-v1-11-a7d38bf87bdb@linaro.org> References: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> In-Reply-To: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> To: Stanimir Varbanov , Vikash Garodia , Bryan O'Donoghue , Andy Gross , Bjorn Andersson , Mauro Carvalho Chehab , Dikshita Agarwal , Philipp Zabel Cc: Marijn Suijten , Stanimir Varbanov , Mauro Carvalho Chehab , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1694445027; l=4750; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=57eNoVLc7ASkVVxqDox1DzeFGbIIkYlRHNb+x5nOma8=; b=jh0ibHJFu9sbgdYfiEbIJxIc6y4/EIqdz8xPYnEoE30HDEuwsQsATcGFHDvoManghaUvQqknx tuH6SMDJpJND4u6j71qqgAPPFNZbaCnLbKuS1YyYgEXNjLUb3PW8hU7 X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently VMEM/OCMEM/LLCC is disabled on all platforms. Make it unconditional to save on space. These caches will not be enabled until the Venus driver can reference them as chunks of SRAM (they're modelled as separate devices) to avoid hardcoding magic addresses and rougely accessing the hardware, bypassing the normal accessors. Signed-off-by: Konrad Dybcio --- drivers/media/platform/qcom/venus/core.c | 24 ------------------------ drivers/media/platform/qcom/venus/core.h | 3 --- drivers/media/platform/qcom/venus/hfi_venus.c | 7 ++++--- 3 files changed, 4 insertions(+), 30 deletions(-) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index e83c790ccc80..5d4d62751357 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -565,9 +565,6 @@ static const struct venus_resources msm8916_res =3D { .clks_num =3D 3, .max_load =3D 352800, /* 720p@30 + 1080p@30 */ .hfi_version =3D HFI_VERSION_1XX, - .vmem_id =3D VIDC_RESOURCE_NONE, - .vmem_size =3D 0, - .vmem_addr =3D 0, .dma_mask =3D 0xddc00000 - 1, .fwname =3D "qcom/venus-1.8/venus.mdt", }; @@ -598,9 +595,6 @@ static const struct venus_resources msm8996_res =3D { .vcodec_clks_num =3D 1, .max_load =3D 2563200, .hfi_version =3D HFI_VERSION_3XX, - .vmem_id =3D VIDC_RESOURCE_NONE, - .vmem_size =3D 0, - .vmem_addr =3D 0, .dma_mask =3D 0xddc00000 - 1, .fwname =3D "qcom/venus-4.2/venus.mdt", }; @@ -656,9 +650,6 @@ static const struct venus_resources sdm660_res =3D { .vcodec_clks_num =3D 1, .max_load =3D 1036800, .hfi_version =3D HFI_VERSION_3XX, - .vmem_id =3D VIDC_RESOURCE_NONE, - .vmem_size =3D 0, - .vmem_addr =3D 0, .cp_start =3D 0, .cp_size =3D 0x79000000, .cp_nonpixel_start =3D 0x1000000, @@ -705,9 +696,6 @@ static const struct venus_resources sdm845_res =3D { .max_load =3D 3110400, /* 4096x2160@90 */ .hfi_version =3D HFI_VERSION_4XX, .vpu_version =3D VPU_VERSION_AR50, - .vmem_id =3D VIDC_RESOURCE_NONE, - .vmem_size =3D 0, - .vmem_addr =3D 0, .dma_mask =3D 0xe0000000 - 1, .fwname =3D "qcom/venus-5.2/venus.mdt", }; @@ -730,9 +718,6 @@ static const struct venus_resources sdm845_res_v2 =3D { .max_load =3D 3110400, /* 4096x2160@90 */ .hfi_version =3D HFI_VERSION_4XX, .vpu_version =3D VPU_VERSION_AR50, - .vmem_id =3D VIDC_RESOURCE_NONE, - .vmem_size =3D 0, - .vmem_addr =3D 0, .dma_mask =3D 0xe0000000 - 1, .cp_start =3D 0, .cp_size =3D 0x70800000, @@ -777,9 +762,6 @@ static const struct venus_resources sc7180_res =3D { .opp_pmdomain =3D pd_names_cx, .hfi_version =3D HFI_VERSION_4XX, .vpu_version =3D VPU_VERSION_AR50, - .vmem_id =3D VIDC_RESOURCE_NONE, - .vmem_size =3D 0, - .vmem_addr =3D 0, .dma_mask =3D 0xe0000000 - 1, .cp_start =3D 0, .cp_size =3D 0x70800000, @@ -835,9 +817,6 @@ static const struct venus_resources sm8250_res =3D { .hfi_version =3D HFI_VERSION_6XX, .vpu_version =3D VPU_VERSION_IRIS2, .num_vpp_pipes =3D 4, - .vmem_id =3D VIDC_RESOURCE_NONE, - .vmem_size =3D 0, - .vmem_addr =3D 0, .dma_mask =3D 0xe0000000 - 1, .fwname =3D "qcom/vpu-1.0/venus.mbn", }; @@ -892,9 +871,6 @@ static const struct venus_resources sc7280_res =3D { .hfi_version =3D HFI_VERSION_6XX, .vpu_version =3D VPU_VERSION_IRIS2_1, .num_vpp_pipes =3D 1, - .vmem_id =3D VIDC_RESOURCE_NONE, - .vmem_size =3D 0, - .vmem_addr =3D 0, .dma_mask =3D 0xe0000000 - 1, .fwname =3D "qcom/vpu-2.0/venus.mbn", }; diff --git a/drivers/media/platform/qcom/venus/core.h b/drivers/media/platf= orm/qcom/venus/core.h index de180f8e7973..fe4cb566d8e9 100644 --- a/drivers/media/platform/qcom/venus/core.h +++ b/drivers/media/platform/qcom/venus/core.h @@ -81,9 +81,6 @@ struct venus_resources { const enum vpu_version vpu_version; const u8 num_vpp_pipes; const u32 max_load; - const unsigned int vmem_id; - const u32 vmem_size; - const u32 vmem_addr; const u32 cp_start; const u32 cp_size; const u32 cp_nonpixel_start; diff --git a/drivers/media/platform/qcom/venus/hfi_venus.c b/drivers/media/= platform/qcom/venus/hfi_venus.c index 19fc6575a489..e6db820a1d5e 100644 --- a/drivers/media/platform/qcom/venus/hfi_venus.c +++ b/drivers/media/platform/qcom/venus/hfi_venus.c @@ -1075,9 +1075,10 @@ static irqreturn_t venus_isr_thread(struct venus_cor= e *core) venus_process_msg_sys_error(hdev, pkt); break; case HFI_MSG_SYS_INIT: - venus_hfi_core_set_resource(core, res->vmem_id, - res->vmem_size, - res->vmem_addr, + /* Disable OCMEM/VMEM unconditionally until support is added */ + venus_hfi_core_set_resource(core, VIDC_RESOURCE_NONE, + 0, + 0, hdev); break; case HFI_MSG_SYS_RELEASE_RESOURCE: --=20 2.42.0 From nobody Thu Dec 18 09:41:01 2025 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 59632CA0ECE for ; Mon, 11 Sep 2023 22:23:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1376885AbjIKWUn (ORCPT ); Mon, 11 Sep 2023 18:20:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59942 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241598AbjIKPKz (ORCPT ); Mon, 11 Sep 2023 11:10:55 -0400 Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com [IPv6:2a00:1450:4864:20::530]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F0F9BE40 for ; Mon, 11 Sep 2023 08:10:49 -0700 (PDT) Received: by mail-ed1-x530.google.com with SMTP id 4fb4d7f45d1cf-52683b68c2fso6017730a12.0 for ; Mon, 11 Sep 2023 08:10:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1694445048; x=1695049848; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=JB7dev33CQqq2PRU515LRyfUHgQkgO8/svwIwjBxrso=; b=nXBvtg2cYBFaYKERUnVFQptVoWCmSUKpDt+wIKO1oTai6FfArVnq2T1YLT9ZZpdsdX RRWLEZ7II/wav8FWN1yUU9HXh3pa7Vn75G6AM1fFrcEfQWK2zuMnIH3BD78XGdbCdzgw MsK4dn9DeGiRETAcSsw+H0hBzW9qLnqa9ggd8o1yGHhyyxM6/BB5k8ljDOaXcSOyhqOJ SutHGuhrNQDIVFY6fTgm4nDXw+nAN5eTYru7nSOEwzRcy3eQUOiuMM5OsMInezlxfb7k aA31VW3sNiC1BEbiZp2lRDEqVwsHdxtSJHzAqNvIvgBzzci34zNEQ9TKUME+39PRHDiM /46g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694445048; x=1695049848; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JB7dev33CQqq2PRU515LRyfUHgQkgO8/svwIwjBxrso=; b=KnyBRij2l/ZLrkQ8byk0RQragMCkosrckjnomOJRIIkXhnjFlWd0qhym70EerHeIvZ 7n5ulpBEpzuKwmZaYJ2K2y6OTyu/mYxB7mRJCfMoULlqCT0OcBNJ3A7lEpEhn9oUhSt0 mM4CYXE2djJSBl2EF8gpcsAgi1eSXKcmYxZdeW+SINLB334yk4uGb88x3nwTL0ceUsqf NwWTb4H2QHpX1vvMRK1qr8xyC9D8A9rYgabm8Z02w7mqnVk6y4Y6/LpbbK7GiHCE+iKV jxbqWm6ZV05WIWAIX35bXENAS/zL3xzuswkN4J8GUcKL0aBqeJmNlfb2AFO+S2fjvDDv cBjA== X-Gm-Message-State: AOJu0Ywp+Z3DlWR+wEJPD6evYU9hABRItab5YI5Iooc+ng33ZrwFhhOH BM8vw5FvVsMLr6gfvg+nUUPfCA== X-Google-Smtp-Source: AGHT+IHOrUawuw+u7QVtpnfwQLDVGjW95dOdTx3R9QAqJJ8vsJmZNzqMq3h8nCnS59f0knKZHoFyuw== X-Received: by 2002:a50:fc08:0:b0:522:31d5:ee8e with SMTP id i8-20020a50fc08000000b0052231d5ee8emr7942862edr.8.1694445048504; Mon, 11 Sep 2023 08:10:48 -0700 (PDT) Received: from [10.167.154.1] (178235177061.dynamic-4-waw-k-1-1-0.vectranet.pl. [178.235.177.61]) by smtp.gmail.com with ESMTPSA id n4-20020a056402060400b0052a3ad836basm4681281edv.41.2023.09.11.08.10.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Sep 2023 08:10:48 -0700 (PDT) From: Konrad Dybcio Date: Mon, 11 Sep 2023 17:10:26 +0200 Subject: [PATCH RFT 12/20] media: venus: core: Use GENMASK for dma_mask MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230911-topic-mars-v1-12-a7d38bf87bdb@linaro.org> References: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> In-Reply-To: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> To: Stanimir Varbanov , Vikash Garodia , Bryan O'Donoghue , Andy Gross , Bjorn Andersson , Mauro Carvalho Chehab , Dikshita Agarwal , Philipp Zabel Cc: Marijn Suijten , Stanimir Varbanov , Mauro Carvalho Chehab , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1694445027; l=2674; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=0i/wL/gXye6AMRW7xTiL3gEDEa6DSycySKcFuITtV7c=; b=9njRxETBp6BVf2eTPJnydMws8pDjU9hmhMA9EAXKj2fwspYSCUtrrbXXXzUDtbMNERpTc4XGC o9auiXwoKyfB6CwEhwV+FjPvOlFqusbM8zqbH2pm+pJ/7Xq5t3xAfWW X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The raw literals mean very little. Substitute it with more telling bitops macros. Signed-off-by: Konrad Dybcio --- drivers/media/platform/qcom/venus/core.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index 5d4d62751357..4dec10d21b05 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -565,7 +565,7 @@ static const struct venus_resources msm8916_res =3D { .clks_num =3D 3, .max_load =3D 352800, /* 720p@30 + 1080p@30 */ .hfi_version =3D HFI_VERSION_1XX, - .dma_mask =3D 0xddc00000 - 1, + .dma_mask =3D (GENMASK(31, 30) | GENMASK(28, 26) | GENMASK(24, 22)) - 1, .fwname =3D "qcom/venus-1.8/venus.mdt", }; =20 @@ -595,7 +595,7 @@ static const struct venus_resources msm8996_res =3D { .vcodec_clks_num =3D 1, .max_load =3D 2563200, .hfi_version =3D HFI_VERSION_3XX, - .dma_mask =3D 0xddc00000 - 1, + .dma_mask =3D (GENMASK(31, 30) | GENMASK(28, 26) | GENMASK(24, 22)) - 1, .fwname =3D "qcom/venus-4.2/venus.mdt", }; =20 @@ -696,7 +696,7 @@ static const struct venus_resources sdm845_res =3D { .max_load =3D 3110400, /* 4096x2160@90 */ .hfi_version =3D HFI_VERSION_4XX, .vpu_version =3D VPU_VERSION_AR50, - .dma_mask =3D 0xe0000000 - 1, + .dma_mask =3D GENMASK(31, 29) - 1, .fwname =3D "qcom/venus-5.2/venus.mdt", }; =20 @@ -718,7 +718,7 @@ static const struct venus_resources sdm845_res_v2 =3D { .max_load =3D 3110400, /* 4096x2160@90 */ .hfi_version =3D HFI_VERSION_4XX, .vpu_version =3D VPU_VERSION_AR50, - .dma_mask =3D 0xe0000000 - 1, + .dma_mask =3D GENMASK(31, 29) - 1, .cp_start =3D 0, .cp_size =3D 0x70800000, .cp_nonpixel_start =3D 0x1000000, @@ -762,7 +762,7 @@ static const struct venus_resources sc7180_res =3D { .opp_pmdomain =3D pd_names_cx, .hfi_version =3D HFI_VERSION_4XX, .vpu_version =3D VPU_VERSION_AR50, - .dma_mask =3D 0xe0000000 - 1, + .dma_mask =3D GENMASK(31, 29) - 1, .cp_start =3D 0, .cp_size =3D 0x70800000, .cp_nonpixel_start =3D 0x1000000, @@ -817,7 +817,7 @@ static const struct venus_resources sm8250_res =3D { .hfi_version =3D HFI_VERSION_6XX, .vpu_version =3D VPU_VERSION_IRIS2, .num_vpp_pipes =3D 4, - .dma_mask =3D 0xe0000000 - 1, + .dma_mask =3D GENMASK(31, 29) - 1, .fwname =3D "qcom/vpu-1.0/venus.mbn", }; =20 @@ -871,7 +871,7 @@ static const struct venus_resources sc7280_res =3D { .hfi_version =3D HFI_VERSION_6XX, .vpu_version =3D VPU_VERSION_IRIS2_1, .num_vpp_pipes =3D 1, - .dma_mask =3D 0xe0000000 - 1, + .dma_mask =3D GENMASK(31, 29) - 1, .fwname =3D "qcom/vpu-2.0/venus.mbn", }; =20 --=20 2.42.0 From nobody Thu Dec 18 09:41:01 2025 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 3AD33CA0ECD for ; Mon, 11 Sep 2023 22:10:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1358258AbjIKWIX (ORCPT ); Mon, 11 Sep 2023 18:08:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59970 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241604AbjIKPK5 (ORCPT ); Mon, 11 Sep 2023 11:10:57 -0400 Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com [IPv6:2a00:1450:4864:20::535]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0852FE40 for ; Mon, 11 Sep 2023 08:10:52 -0700 (PDT) Received: by mail-ed1-x535.google.com with SMTP id 4fb4d7f45d1cf-522bd411679so5915173a12.0 for ; Mon, 11 Sep 2023 08:10:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1694445050; x=1695049850; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=dl99i48dgkFaFiuiu5aVJ8kJhbaWRuqEuatgk+IWw2o=; b=bB3xlBfauwKWWh6/VqQaM0saC7TVMEgb8exvJY+TC2Ll4kYlFjolOF0jhadlMEMFTZ tVd3b1rMiQlpIm208lr0IrvotSsC+c8xy9lzdDUTiX/gQBxo8WEaaQSKHTAQLSUkrp/b Lj70KCI6B7iQGmzmFzLgMHshxxhHzb9ltKZtloIvoSVUt/a2QcsP0FqykMtWOGUA3Jy+ mbcocYFWgSTpnvwK4OqM0FiBRAA4AyxRinXy8I8mGJlBa7RCW1YPtweMJNd6UDVo3N/m 0wG1j2lwILOR7qtPDog/Q4LUQ7PmNmZ5ScFkTcDRi61nnEAlPAomqLMOJ6pXZeXJOCAm SWcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694445050; x=1695049850; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dl99i48dgkFaFiuiu5aVJ8kJhbaWRuqEuatgk+IWw2o=; b=pVBxd64HbTGMVLgetRj3q7dAkRjqXlqT/4SusL0RSj2ia6fBOOJM2ltOGxOUwax5fc l2h7jiV9g28fgp9HNMW8SxXRQUADgxTt0Sjpi4jVBJRhHmIM/1OMkZT1J6SvKj0gAlYY AHo5GPJvV2rjfcHupa9HyQbU4b2mbAfvIUX12jheenWRhmYVUW32M/aGkvcdWjVQJjU5 /bZpNMfDDQI25P5UKfMfKJ8o1DytDSyc0Y1M4+P50NimcGt5OXE9148hTay2xUqZoIly Tms8PwWzaJpV1oBu1OapKXchKgcbJSuaRDI7myE6aSwA3nRtyeeAZDSydVuMRQBUfGvI k/fg== X-Gm-Message-State: AOJu0YwHz60sEwWvAmJcy4XyJz3B2WcwlUvc+CU+MeWTffYZccKj01dv 4EZC/IohCYzxCaSJLeoirkuGwQ== X-Google-Smtp-Source: AGHT+IGjTwoKuO/nF9f+giZJp6zZCYwNV0et/hED8EkqY7QJ0N5afC2ym6nB9rOu5fmSKCdB4pPe6w== X-Received: by 2002:aa7:d753:0:b0:522:2711:863 with SMTP id a19-20020aa7d753000000b0052227110863mr8641195eds.1.1694445050506; Mon, 11 Sep 2023 08:10:50 -0700 (PDT) Received: from [10.167.154.1] (178235177061.dynamic-4-waw-k-1-1-0.vectranet.pl. [178.235.177.61]) by smtp.gmail.com with ESMTPSA id n4-20020a056402060400b0052a3ad836basm4681281edv.41.2023.09.11.08.10.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Sep 2023 08:10:50 -0700 (PDT) From: Konrad Dybcio Date: Mon, 11 Sep 2023 17:10:27 +0200 Subject: [PATCH RFT 13/20] media: venus: core: Remove cp_start MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230911-topic-mars-v1-13-a7d38bf87bdb@linaro.org> References: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> In-Reply-To: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> To: Stanimir Varbanov , Vikash Garodia , Bryan O'Donoghue , Andy Gross , Bjorn Andersson , Mauro Carvalho Chehab , Dikshita Agarwal , Philipp Zabel Cc: Marijn Suijten , Stanimir Varbanov , Mauro Carvalho Chehab , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1694445027; l=2989; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=h53ZKh/yNo0bLYPAMV5n1Zw9RfUgxMBrX/Tc7gbPrsU=; b=MyR4nzOnMYNiQhw1jH6W3MyPjnn9iMncEi0lurWq1TO1u8q7eGsXCtmFz5wNbn4MLq1ZYMleS 2DmBMguD4EUCFp4kFzbiIdckpfA+/Nsvm4/o53Hzrpc+oIcI4AflYkB X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org It's hardcoded to be zero. Always. Ever since msm-3.10. Or maybe even before. Remove it! Signed-off-by: Konrad Dybcio --- drivers/media/platform/qcom/venus/core.c | 3 --- drivers/media/platform/qcom/venus/core.h | 1 - drivers/media/platform/qcom/venus/firmware.c | 3 +-- 3 files changed, 1 insertion(+), 6 deletions(-) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index 4dec10d21b05..bd624e965a92 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -650,7 +650,6 @@ static const struct venus_resources sdm660_res =3D { .vcodec_clks_num =3D 1, .max_load =3D 1036800, .hfi_version =3D HFI_VERSION_3XX, - .cp_start =3D 0, .cp_size =3D 0x79000000, .cp_nonpixel_start =3D 0x1000000, .cp_nonpixel_size =3D 0x28000000, @@ -719,7 +718,6 @@ static const struct venus_resources sdm845_res_v2 =3D { .hfi_version =3D HFI_VERSION_4XX, .vpu_version =3D VPU_VERSION_AR50, .dma_mask =3D GENMASK(31, 29) - 1, - .cp_start =3D 0, .cp_size =3D 0x70800000, .cp_nonpixel_start =3D 0x1000000, .cp_nonpixel_size =3D 0x24800000, @@ -763,7 +761,6 @@ static const struct venus_resources sc7180_res =3D { .hfi_version =3D HFI_VERSION_4XX, .vpu_version =3D VPU_VERSION_AR50, .dma_mask =3D GENMASK(31, 29) - 1, - .cp_start =3D 0, .cp_size =3D 0x70800000, .cp_nonpixel_start =3D 0x1000000, .cp_nonpixel_size =3D 0x24800000, diff --git a/drivers/media/platform/qcom/venus/core.h b/drivers/media/platf= orm/qcom/venus/core.h index fe4cb566d8e9..16acf738fd6c 100644 --- a/drivers/media/platform/qcom/venus/core.h +++ b/drivers/media/platform/qcom/venus/core.h @@ -81,7 +81,6 @@ struct venus_resources { const enum vpu_version vpu_version; const u8 num_vpp_pipes; const u32 max_load; - const u32 cp_start; const u32 cp_size; const u32 cp_nonpixel_start; const u32 cp_nonpixel_size; diff --git a/drivers/media/platform/qcom/venus/firmware.c b/drivers/media/p= latform/qcom/venus/firmware.c index fe7da2b30482..16e578780be7 100644 --- a/drivers/media/platform/qcom/venus/firmware.c +++ b/drivers/media/platform/qcom/venus/firmware.c @@ -245,7 +245,6 @@ int venus_boot(struct venus_core *core) if (core->use_tz && res->cp_size) { /* * Clues for porting using downstream data: - * cp_start =3D 0 * cp_size =3D venus_ns/virtual-addr-pool[0] - yes, address and not size! * This works, as the non-secure context bank is placed * contiguously right after the Content Protection region. @@ -253,7 +252,7 @@ int venus_boot(struct venus_core *core) * cp_nonpixel_start =3D venus_sec_non_pixel/virtual-addr-pool[0] * cp_nonpixel_size =3D venus_sec_non_pixel/virtual-addr-pool[1] */ - ret =3D qcom_scm_mem_protect_video_var(res->cp_start, + ret =3D qcom_scm_mem_protect_video_var(0, res->cp_size, res->cp_nonpixel_start, res->cp_nonpixel_size); --=20 2.42.0 From nobody Thu Dec 18 09:41:01 2025 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 A3747CA0EC3 for ; Mon, 11 Sep 2023 22:22:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1376351AbjIKWTS (ORCPT ); Mon, 11 Sep 2023 18:19:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59964 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241608AbjIKPK6 (ORCPT ); Mon, 11 Sep 2023 11:10:58 -0400 Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com [IPv6:2a00:1450:4864:20::534]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2E370FA for ; Mon, 11 Sep 2023 08:10:54 -0700 (PDT) Received: by mail-ed1-x534.google.com with SMTP id 4fb4d7f45d1cf-52f3ba561d9so3787696a12.1 for ; Mon, 11 Sep 2023 08:10:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1694445052; x=1695049852; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=0/rSrL3Jo8Jpc/t8ZAB7UTOHWQcf4GkFtv3a0VomhNM=; b=K57uOnbpeorjFFXAGnAYpF7u5ZBIkPY3aVkTJfdW6+1lBoFkxbm+BDGlY6AqXbHVX9 n3iySFntAEFDhsJCON8WF4tvSY1Z07KvUXcL56UhvxF/uG294xWLdST/E5Wapn2aHbC8 NOdcJ/AeuDQUeY4KjIZO4wgWnSylo6YwJd1OQBm+LUmnWGfIenUnJLYvm9iUyKY+PV2i uytgIO1spitbi5P9Lmk1RrXStxYQ+BP4tiBY7p+LTENjyPA1q2+s3BMywiEe/k0qkJiq yP1Ko5n94efy2VhzcVf0dyKNA//XZB4WcdQ1uvnsWb8lJ0f1uT5JE1demc9SnpVsA/DS VHZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694445052; x=1695049852; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0/rSrL3Jo8Jpc/t8ZAB7UTOHWQcf4GkFtv3a0VomhNM=; b=P2RQXM5QK1l9VZIeumgLWvOuVpY3TmjhNA1UiwPY65jnTMiECVyluI9k7FuIlCvEVv grje6nmER+/F2dcPDu+EldffQQRaU8Mdw4wjOPTlBpGvzV5ZUT5oc09hqTJL6hXcEkoa NP7AECDLkuJ+kIozuNPCfZOYb5rYq6fH/wLn0JcEksbkHMuFymeYoRRjwdZbCpbmfnpZ TGBQvzFaqBMNe3EzY+gbUIDAPhjH9ZmZ04U1ED8/AIe0NbTelm3vPOovEZDForQDLlp+ apqnVaZxIFS7QVwRSHRu+2ElDY0f7waWhZEzYj22jUl2DtgDRkutZv4v0uecndFK7JEQ oOkA== X-Gm-Message-State: AOJu0Yz0BnLQEJGAIyMWfBO87L30uk3MH3oRxlSeb0UQM9s4/VwF0zek J+bUwT4lVOT1bJ78wkHXHvA49w== X-Google-Smtp-Source: AGHT+IEbHBYlsbEpKU5/53azlsQctYiikFwyyZJfwzmVd1ZxSwJ1OZjEUyLdZoi/YOdV2fu2bsZbdg== X-Received: by 2002:aa7:d858:0:b0:521:d2ab:e4df with SMTP id f24-20020aa7d858000000b00521d2abe4dfmr12498198eds.19.1694445052439; Mon, 11 Sep 2023 08:10:52 -0700 (PDT) Received: from [10.167.154.1] (178235177061.dynamic-4-waw-k-1-1-0.vectranet.pl. [178.235.177.61]) by smtp.gmail.com with ESMTPSA id n4-20020a056402060400b0052a3ad836basm4681281edv.41.2023.09.11.08.10.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Sep 2023 08:10:52 -0700 (PDT) From: Konrad Dybcio Date: Mon, 11 Sep 2023 17:10:28 +0200 Subject: [PATCH RFT 14/20] media: venus: pm_helpers: Commonize core_power MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230911-topic-mars-v1-14-a7d38bf87bdb@linaro.org> References: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> In-Reply-To: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> To: Stanimir Varbanov , Vikash Garodia , Bryan O'Donoghue , Andy Gross , Bjorn Andersson , Mauro Carvalho Chehab , Dikshita Agarwal , Philipp Zabel Cc: Marijn Suijten , Stanimir Varbanov , Mauro Carvalho Chehab , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1694445027; l=4719; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=mQbHMS1CDlisVrikZ5YTbX8/UuzAFEtVfQ4RIqbJfoc=; b=ifOwzefBF+9s0GX9pPmiv0R+TszTLyxnkyiWw1XYYUYmOGigta0/hS2A2f34zh5uy6c7s4pUo hEQaodokYMBAU/3LxOUfMLYRkEjFgxGVj5Ilmk3H96n1r4MLBMB+OwS X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org core_power_v4 called with num_resets =3D 0 and core->pmdomains[0] =3D=3D NU= LL does exactly the same thing as core_power_v1. Unify them! Signed-off-by: Konrad Dybcio --- drivers/media/platform/qcom/venus/core.c | 21 +++++++-------------- drivers/media/platform/qcom/venus/pm_helpers.c | 17 +---------------- drivers/media/platform/qcom/venus/pm_helpers.h | 2 +- 3 files changed, 9 insertions(+), 31 deletions(-) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index bd624e965a92..0ae118257296 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -480,18 +480,15 @@ static void venus_core_shutdown(struct platform_devic= e *pdev) static __maybe_unused int venus_runtime_suspend(struct device *dev) { struct venus_core *core =3D dev_get_drvdata(dev); - const struct venus_pm_ops *pm_ops =3D core->pm_ops; int ret; =20 ret =3D hfi_core_suspend(core); if (ret) return ret; =20 - if (pm_ops->core_power) { - ret =3D pm_ops->core_power(core, POWER_OFF); - if (ret) - return ret; - } + ret =3D venus_core_power(core, POWER_OFF); + if (ret) + return ret; =20 ret =3D icc_set_bw(core->cpucfg_path, 0, 0); if (ret) @@ -506,8 +503,7 @@ static __maybe_unused int venus_runtime_suspend(struct = device *dev) err_video_path: icc_set_bw(core->cpucfg_path, kbps_to_icc(1000), 0); err_cpucfg_path: - if (pm_ops->core_power) - pm_ops->core_power(core, POWER_ON); + venus_core_power(core, POWER_ON); =20 return ret; } @@ -515,7 +511,6 @@ static __maybe_unused int venus_runtime_suspend(struct = device *dev) static __maybe_unused int venus_runtime_resume(struct device *dev) { struct venus_core *core =3D dev_get_drvdata(dev); - const struct venus_pm_ops *pm_ops =3D core->pm_ops; int ret; =20 ret =3D icc_set_bw(core->video_path, kbps_to_icc(20000), 0); @@ -526,11 +521,9 @@ static __maybe_unused int venus_runtime_resume(struct = device *dev) if (ret) return ret; =20 - if (pm_ops->core_power) { - ret =3D pm_ops->core_power(core, POWER_ON); - if (ret) - return ret; - } + ret =3D venus_core_power(core, POWER_ON); + if (ret) + return ret; =20 return hfi_core_resume(core, false); } diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media= /platform/qcom/venus/pm_helpers.c index 816d16f9153a..ddaa9944fa44 100644 --- a/drivers/media/platform/qcom/venus/pm_helpers.c +++ b/drivers/media/platform/qcom/venus/pm_helpers.c @@ -322,22 +322,9 @@ static void core_put_v1(struct venus_core *core) { } =20 -static int core_power_v1(struct venus_core *core, int on) -{ - int ret =3D 0; - - if (on =3D=3D POWER_ON) - ret =3D core_clks_enable(core); - else - core_clks_disable(core); - - return ret; -} - static const struct venus_pm_ops pm_ops_v1 =3D { .core_get =3D venus_clks_get, .core_put =3D core_put_v1, - .core_power =3D core_power_v1, .load_scale =3D load_scale_v1, }; =20 @@ -410,7 +397,6 @@ static int venc_power_v3(struct device *dev, int on) static const struct venus_pm_ops pm_ops_v3 =3D { .core_get =3D venus_clks_get, .core_put =3D core_put_v1, - .core_power =3D core_power_v1, .vdec_get =3D vdec_get_v3, .vdec_power =3D vdec_power_v3, .venc_get =3D venc_get_v3, @@ -996,7 +982,7 @@ static void core_put_v4(struct venus_core *core) vcodec_domains_put(core); } =20 -static int core_power_v4(struct venus_core *core, int on) +int venus_core_power(struct venus_core *core, int on) { struct device *dev =3D core->dev; struct device *pmctrl =3D core->pmdomains[0]; @@ -1143,7 +1129,6 @@ static int load_scale_v4(struct venus_inst *inst) static const struct venus_pm_ops pm_ops_v4 =3D { .core_get =3D core_get_v4, .core_put =3D core_put_v4, - .core_power =3D core_power_v4, .vdec_get =3D vdec_get_v4, .vdec_put =3D vdec_put_v4, .vdec_power =3D vdec_power_v4, diff --git a/drivers/media/platform/qcom/venus/pm_helpers.h b/drivers/media= /platform/qcom/venus/pm_helpers.h index a492c50c5543..77db940a265c 100644 --- a/drivers/media/platform/qcom/venus/pm_helpers.h +++ b/drivers/media/platform/qcom/venus/pm_helpers.h @@ -12,7 +12,6 @@ struct venus_core; struct venus_pm_ops { int (*core_get)(struct venus_core *core); void (*core_put)(struct venus_core *core); - int (*core_power)(struct venus_core *core, int on); =20 int (*vdec_get)(struct device *dev); void (*vdec_put)(struct device *dev); @@ -28,6 +27,7 @@ struct venus_pm_ops { }; =20 const struct venus_pm_ops *venus_pm_get(enum hfi_version version); +int venus_core_power(struct venus_core *core, int on); =20 static inline int venus_pm_load_scale(struct venus_inst *inst) { --=20 2.42.0 From nobody Thu Dec 18 09:41:01 2025 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 9E74ECA0EC8 for ; Mon, 11 Sep 2023 21:17:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245174AbjIKVI6 (ORCPT ); Mon, 11 Sep 2023 17:08:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60014 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241619AbjIKPLC (ORCPT ); Mon, 11 Sep 2023 11:11:02 -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 453FCE50 for ; Mon, 11 Sep 2023 08:10:56 -0700 (PDT) Received: by mail-lf1-x136.google.com with SMTP id 2adb3069b0e04-500cfb168c6so7427493e87.2 for ; Mon, 11 Sep 2023 08:10:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1694445054; x=1695049854; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=yvaPKLQHScYQL75NptLuZiJ3oU9JIQjkuER4G14i9nw=; b=QX3bWFBY/D9qPrzP8I/jl0O0jOHrSGNCbAQe+YUrEnHM0XWx9uw3VnFkVhBGkE1hAC wtLNSCKIHh1EnvWAlYi+HvoFHIcxKKbQnp3N2/f6GckazCRD5tPZ8rwUgBMTDVAomI1V xUehEVhKGnLqAxo7zDCeunK4a+PYrbZh23QoqZi0I331ttC9sgaMv0yPZTESWtVPbz/C l5B9Ap07iV/QrctrBSqz62bPnRWalW9a5J0hTdWv9XaNUvhdASsND0yMc3yZCTv6H9JH 1PSQOvOf8ghmzOAyB0MhRdG3oh8BDGHGu1nzTAr5TlaiITnmExqCpIa/8wO9yn5ubqhY 00/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694445054; x=1695049854; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yvaPKLQHScYQL75NptLuZiJ3oU9JIQjkuER4G14i9nw=; b=vjw6y5Lr/Hyeg0TfSnH8Bzw8Fco9Ihi+X2wctpaugpoylgXKzDnbqj3H1uR1eb0FNQ zSXBNBdAM7G2wO7C0AhlyTlQ/nqcKTg2wkm4r6syyj07oNKz4/vxagZPodQJ1LiHc9rQ 6jXX3h0Na0J3WJe6fyo4XlXh1TaCtpF2aCaBLfFaIUMciwYM07UpRfZUT5YUFcKG/ZVY eYdNVCc/OZMLVMRAmzGgOSn61JpvymqNu7O53XBgkG1frzmw00T6dhkoXe7JSJJRr8KU MOg5PypiSE3c4xk4Iny2yuSX0vkZ4nuaDqJk13ufvLP8vH8qOKn4owU7JTvUnrjw+EHH 2gig== X-Gm-Message-State: AOJu0YxaBO1D7lFEwDRCfaPaBD2+8fdIz7f5B7R+SVXm3i91VMgc9TDg 7nRsXgWwn/4L6MjaRf+M5xxrJQ== X-Google-Smtp-Source: AGHT+IFRjHjMg9FMe97CBZIsu6FfosSdU73i223AsKTo+cLsnJy2LpkS9EDuYbzgskvudOnK3RPUrg== X-Received: by 2002:a05:6512:33cf:b0:502:a942:d7a8 with SMTP id d15-20020a05651233cf00b00502a942d7a8mr6878275lfg.69.1694445054562; Mon, 11 Sep 2023 08:10:54 -0700 (PDT) Received: from [10.167.154.1] (178235177061.dynamic-4-waw-k-1-1-0.vectranet.pl. [178.235.177.61]) by smtp.gmail.com with ESMTPSA id n4-20020a056402060400b0052a3ad836basm4681281edv.41.2023.09.11.08.10.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Sep 2023 08:10:54 -0700 (PDT) From: Konrad Dybcio Date: Mon, 11 Sep 2023 17:10:29 +0200 Subject: [PATCH RFT 15/20] media: venus: pm_helpers: Remove pm_ops->core_put MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230911-topic-mars-v1-15-a7d38bf87bdb@linaro.org> References: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> In-Reply-To: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> To: Stanimir Varbanov , Vikash Garodia , Bryan O'Donoghue , Andy Gross , Bjorn Andersson , Mauro Carvalho Chehab , Dikshita Agarwal , Philipp Zabel Cc: Marijn Suijten , Stanimir Varbanov , Mauro Carvalho Chehab , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1694445027; l=3955; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=VFHAXP0bCqoE65EEy0HuBDwB4xJnqOaz01+cugNoC1s=; b=qbXg229K/TQjVjjbaca1jaxrvPPICpMOZ4V4ZMrNygnlbBOWJzI3VWWWe5SuTxoa4tyjwpJUu XqtCLLeSD8oC7PoC59MdQWmft1EKPBCfADaFVTRKfm+nHV0K2oL+zvH X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Without and OPP table and with vcodec_pmdomains_num (so, v1, v3 and sdm845_legacy targets), core_put_v4 is a NOP, jut like core_put_v1. Unify them! Signed-off-by: Konrad Dybcio --- drivers/media/platform/qcom/venus/core.c | 8 +++----- drivers/media/platform/qcom/venus/pm_helpers.c | 17 +---------------- drivers/media/platform/qcom/venus/pm_helpers.h | 2 +- 3 files changed, 5 insertions(+), 22 deletions(-) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index 0ae118257296..9a1b0be5d067 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -429,15 +429,14 @@ static int venus_probe(struct platform_device *pdev) err_core_deinit: hfi_core_deinit(core, false); err_core_put: - if (core->pm_ops->core_put) - core->pm_ops->core_put(core); + vcodec_domains_put(core); + return ret; } =20 static void venus_remove(struct platform_device *pdev) { struct venus_core *core =3D platform_get_drvdata(pdev); - const struct venus_pm_ops *pm_ops =3D core->pm_ops; struct device *dev =3D core->dev; int ret; =20 @@ -455,8 +454,7 @@ static void venus_remove(struct platform_device *pdev) pm_runtime_put_sync(dev); pm_runtime_disable(dev); =20 - if (pm_ops->core_put) - pm_ops->core_put(core); + vcodec_domains_put(core); =20 v4l2_device_unregister(&core->v4l2_dev); =20 diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media= /platform/qcom/venus/pm_helpers.c index ddaa9944fa44..9a0e2a00f383 100644 --- a/drivers/media/platform/qcom/venus/pm_helpers.c +++ b/drivers/media/platform/qcom/venus/pm_helpers.c @@ -318,13 +318,8 @@ static int load_scale_v1(struct venus_inst *inst) return ret; } =20 -static void core_put_v1(struct venus_core *core) -{ -} - static const struct venus_pm_ops pm_ops_v1 =3D { .core_get =3D venus_clks_get, - .core_put =3D core_put_v1, .load_scale =3D load_scale_v1, }; =20 @@ -396,7 +391,6 @@ static int venc_power_v3(struct device *dev, int on) =20 static const struct venus_pm_ops pm_ops_v3 =3D { .core_get =3D venus_clks_get, - .core_put =3D core_put_v1, .vdec_get =3D vdec_get_v3, .vdec_power =3D vdec_power_v3, .venc_get =3D venc_get_v3, @@ -899,7 +893,7 @@ static int vcodec_domains_get(struct venus_core *core) return ret; } =20 -static void vcodec_domains_put(struct venus_core *core) +void vcodec_domains_put(struct venus_core *core) { const struct venus_resources *res =3D core->res; unsigned int i; @@ -974,14 +968,6 @@ static int core_get_v4(struct venus_core *core) return 0; } =20 -static void core_put_v4(struct venus_core *core) -{ - if (legacy_binding) - return; - - vcodec_domains_put(core); -} - int venus_core_power(struct venus_core *core, int on) { struct device *dev =3D core->dev; @@ -1128,7 +1114,6 @@ static int load_scale_v4(struct venus_inst *inst) =20 static const struct venus_pm_ops pm_ops_v4 =3D { .core_get =3D core_get_v4, - .core_put =3D core_put_v4, .vdec_get =3D vdec_get_v4, .vdec_put =3D vdec_put_v4, .vdec_power =3D vdec_power_v4, diff --git a/drivers/media/platform/qcom/venus/pm_helpers.h b/drivers/media= /platform/qcom/venus/pm_helpers.h index 77db940a265c..3014b39aa6e3 100644 --- a/drivers/media/platform/qcom/venus/pm_helpers.h +++ b/drivers/media/platform/qcom/venus/pm_helpers.h @@ -11,7 +11,6 @@ struct venus_core; =20 struct venus_pm_ops { int (*core_get)(struct venus_core *core); - void (*core_put)(struct venus_core *core); =20 int (*vdec_get)(struct device *dev); void (*vdec_put)(struct device *dev); @@ -28,6 +27,7 @@ struct venus_pm_ops { =20 const struct venus_pm_ops *venus_pm_get(enum hfi_version version); int venus_core_power(struct venus_core *core, int on); +void vcodec_domains_put(struct venus_core *core); =20 static inline int venus_pm_load_scale(struct venus_inst *inst) { --=20 2.42.0 From nobody Thu Dec 18 09:41:01 2025 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 92ABDCA0ECD for ; Mon, 11 Sep 2023 21:57:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1354374AbjIKVxg (ORCPT ); Mon, 11 Sep 2023 17:53:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60392 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241626AbjIKPLG (ORCPT ); Mon, 11 Sep 2023 11:11:06 -0400 Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com [IPv6:2a00:1450:4864:20::134]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E5A3BE40 for ; Mon, 11 Sep 2023 08:10:58 -0700 (PDT) Received: by mail-lf1-x134.google.com with SMTP id 2adb3069b0e04-502b1bbe5c3so2641966e87.1 for ; Mon, 11 Sep 2023 08:10:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1694445057; x=1695049857; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=0gNkaBIazgKT+Y/aaQW0Dp8svWdByrrW7NRejS4t2Ug=; b=A5NXoSZwLCUoQ8zAjf6cEtcTmCKAuGGrtcWXWGyThsaeaB6lDRGc0WiOnJcVGtvNac pQlb1PQHamhoAoHdxmGotjByvy9fDDifIPJKtBrR/yU1uyoXjKcwJv6WwcXiPAbTIMGj DhDfSe2uFwKv6uKHuJTBU73wFIQqs5fPtTKgtfzUSGbV7D2ZTjW76CNIl/nzW4UbuzGi 7A14BOrQv3dbWHa9d40TpmyKJNflzxG+oIgSlZ0BuitzD9PwvzDTEJ2vbRZ4vj15MZRw pzhswA666hpq7eQAfT84y1ewKa/5bjdef8Qal/f5szLT4I52AV24Rz59NtAGURRIDYo5 koEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694445057; x=1695049857; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0gNkaBIazgKT+Y/aaQW0Dp8svWdByrrW7NRejS4t2Ug=; b=kn9JseqKdfD8whESHYlK9a63BJgezWAaAlgMw9L51MRoEBkVdKMRtcUo7FA2OkxL0J pWbmzaUAXp0TUBQtipZK7njpvvoPtwdO0pjbl+0ow30G+iiJe2OjERs+taw7IbeBHoh4 nnLyqbl6wSDKT5Lja8DaO6wIXaZQ6NaiXXqzW6yDNjX9bGkGWP7vICNinZ4lkKV7Ncf8 1c+Vp5KOlUpGwnjC9lLh1tRs8BZT/fOWYSoXbj1MglSD7YFbPAmLSCt/I9StS7o02aNK tX8pfJI5o4RurqWlJOZxIhf6fmHGHyiIbjBeN6XV5Qs8T1rKVezncKhOBgaEUIU15zLp HLoA== X-Gm-Message-State: AOJu0Yz/+BgrKtquw1P9fzo8EjxSokON9lWECCVzbBj0vs4erEv+jfCf L9sSZ9nFfkLUO5evPz8HFBwJsA== X-Google-Smtp-Source: AGHT+IGRRmd9cbWKL2C+2j8g6d3N2j7KaPpQujwQ3kO7WmwflLukyxC/cY9y2L25hhkwWSAoqRej/A== X-Received: by 2002:a05:6512:3f12:b0:500:ae85:726a with SMTP id y18-20020a0565123f1200b00500ae85726amr9371919lfa.50.1694445056295; Mon, 11 Sep 2023 08:10:56 -0700 (PDT) Received: from [10.167.154.1] (178235177061.dynamic-4-waw-k-1-1-0.vectranet.pl. [178.235.177.61]) by smtp.gmail.com with ESMTPSA id n4-20020a056402060400b0052a3ad836basm4681281edv.41.2023.09.11.08.10.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Sep 2023 08:10:55 -0700 (PDT) From: Konrad Dybcio Date: Mon, 11 Sep 2023 17:10:30 +0200 Subject: [PATCH RFT 16/20] media: venus: core: Define a pointer to core->res MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230911-topic-mars-v1-16-a7d38bf87bdb@linaro.org> References: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> In-Reply-To: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> To: Stanimir Varbanov , Vikash Garodia , Bryan O'Donoghue , Andy Gross , Bjorn Andersson , Mauro Carvalho Chehab , Dikshita Agarwal , Philipp Zabel Cc: Marijn Suijten , Stanimir Varbanov , Mauro Carvalho Chehab , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1694445027; l=2168; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=h0rj/gVk7sNYWd0OnhVJyfmqxcpbrM1z4NX1ZnW541Y=; b=ZTp+yrpjwxhoaPMuA3VDx8wXXn68xxaAwLIajdjPm4nahBeYbl/yf7S7ls/PvJL8MDwmdK5Gx U20wG71OwSuCLVxUYbZ+B4uDxt3mZjXMOnoc1tapNNiGX8OBrhjUiUA X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org To make the code more concise, define a new variable 'res' pointing to the abundantly referenced core->res. Signed-off-by: Konrad Dybcio --- drivers/media/platform/qcom/venus/core.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index 9a1b0be5d067..435f6f10a905 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -283,6 +283,7 @@ static irqreturn_t venus_isr_thread(int irq, void *dev_= id) =20 static int venus_probe(struct platform_device *pdev) { + const struct venus_resources *res; struct device *dev =3D &pdev->dev; struct venus_core *core; int i, ret; @@ -313,9 +314,11 @@ static int venus_probe(struct platform_device *pdev) if (!core->res) return -ENODEV; =20 + res =3D core->res; + mutex_init(&core->pm_lock); =20 - core->pm_ops =3D venus_pm_get(core->res->hfi_version); + core->pm_ops =3D venus_pm_get(res->hfi_version); if (!core->pm_ops) return -ENODEV; =20 @@ -323,14 +326,14 @@ static int venus_probe(struct platform_device *pdev) if (ret) return ret; =20 - core->resets =3D devm_kcalloc(dev, core->res->resets_num, sizeof(*core->r= esets), GFP_KERNEL); - if (core->res->resets_num && !core->resets) + core->resets =3D devm_kcalloc(dev, res->resets_num, sizeof(*core->resets)= , GFP_KERNEL); + if (res->resets_num && !core->resets) return -ENOMEM; =20 - for (i =3D 0; i < core->res->resets_num; i++) - core->resets[i].id =3D core->res->resets[i]; + for (i =3D 0; i < res->resets_num; i++) + core->resets[i].id =3D res->resets[i]; =20 - ret =3D devm_reset_control_bulk_get_exclusive(dev, core->res->resets_num,= core->resets); + ret =3D devm_reset_control_bulk_get_exclusive(dev, res->resets_num, core-= >resets); if (ret) return ret; =20 @@ -340,7 +343,7 @@ static int venus_probe(struct platform_device *pdev) return ret; } =20 - ret =3D dma_set_mask_and_coherent(dev, core->res->dma_mask); + ret =3D dma_set_mask_and_coherent(dev, res->dma_mask); if (ret) goto err_core_put; =20 --=20 2.42.0 From nobody Thu Dec 18 09:41:01 2025 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 5F42DCA0EC7 for ; Mon, 11 Sep 2023 21:17:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244999AbjIKVIh (ORCPT ); Mon, 11 Sep 2023 17:08:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60436 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241634AbjIKPLI (ORCPT ); Mon, 11 Sep 2023 11:11:08 -0400 Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com [IPv6:2a00:1450:4864:20::531]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C456FE50 for ; Mon, 11 Sep 2023 08:11:00 -0700 (PDT) Received: by mail-ed1-x531.google.com with SMTP id 4fb4d7f45d1cf-529fb04a234so6049291a12.3 for ; Mon, 11 Sep 2023 08:11:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1694445059; x=1695049859; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=7Go8soGhozFyZDdpekIDfsnoJQHz3sv19mqRqwFidsQ=; b=upDxVrujiJPei1qqYtTVWI1jVYpExNjNSDi2PlePpNnisPlLKPMla5yu35E4t8/Nyb jyPQVX1/w4+fPLwTWvXLdFrq3bPFT4g3rRkIGmgHHHHz2St+l45cYSRIAiqm+lzebCbc 0p/ro69HqkEP2bWTHvAM/bIV82XZvYum1zMhMP/jJ0viUCDY8yMfDCs3V1X4kd3k0LTq PlUzekWInp/omvFJMfAvUsb/v7KH4EdWKvGEzdOEO8wQaw9rKop1DbJvYe87Lh1uE5cQ w3pocIdbmtindNNSjs0bBpHXNSFNAiUwZf4X3Kdj2HrQrZcuA7qjY2HTIgaMnPOgJAVH VpCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694445059; x=1695049859; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7Go8soGhozFyZDdpekIDfsnoJQHz3sv19mqRqwFidsQ=; b=pIZ1AJDLrHmRS/ERLVOwpINDbKkwoHCZLVdkCWNOttJ61OPouVjBcSHiR5HbiDyKB2 yxaQhyXpvZ3ufzvsvcPAIzEkGXmYag3xg3/KJPeVc/HsVd94Kibw/pBr0jqzkS5XxATh d/HvGCTjbW1llAUD8s6h/dJczWoJuUv78mMp6K/tJMMxyVVhVhuDI7ZbdBZ5n/V6G/Bw hUIpuj7vhTUIVyPPBgDzTAHAkcp/NsXZd+1z4VZUjFABoxGLi3kaMRFX1zxRc6577bp2 YAxYpIysBY0E6SySH9E2atf6AiByX/+SteQFmTG0mq+/b/uPwQ7IxwIR+sb6F3iisgcS uZJw== X-Gm-Message-State: AOJu0YzAF60CUU1bL+89ksbFL85r8DI0IIr7gHKrC1Wtm3sB11JcnyR8 uuAalaNuzotWIM6dESjXmAP9wA== X-Google-Smtp-Source: AGHT+IHiYhxr+24cOk8gE+cu96H02Re+vpcUfn80D1q6RN1itKvte/hfail/Rq+AMq5HFWUU2P0c+g== X-Received: by 2002:aa7:d402:0:b0:52b:c980:43f3 with SMTP id z2-20020aa7d402000000b0052bc98043f3mr8132781edq.28.1694445059295; Mon, 11 Sep 2023 08:10:59 -0700 (PDT) Received: from [10.167.154.1] (178235177061.dynamic-4-waw-k-1-1-0.vectranet.pl. [178.235.177.61]) by smtp.gmail.com with ESMTPSA id n4-20020a056402060400b0052a3ad836basm4681281edv.41.2023.09.11.08.10.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Sep 2023 08:10:58 -0700 (PDT) From: Konrad Dybcio Date: Mon, 11 Sep 2023 17:10:31 +0200 Subject: [PATCH RFT 17/20] media: venus: pm_helpers: Simplify vcodec clock handling MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230911-topic-mars-v1-17-a7d38bf87bdb@linaro.org> References: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> In-Reply-To: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> To: Stanimir Varbanov , Vikash Garodia , Bryan O'Donoghue , Andy Gross , Bjorn Andersson , Mauro Carvalho Chehab , Dikshita Agarwal , Philipp Zabel Cc: Marijn Suijten , Stanimir Varbanov , Mauro Carvalho Chehab , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1694445027; l=13444; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=6BGfkN0sVdRCleGUxSZssA0BPUP+ZuPOYmY/oEbAozY=; b=1nCUwuuaILLiPkIDfKcwswHQCilUZTknH7v5plrM7EyGYYQ8lsMzOj3KlcHD/1ZBTK8ZztY8O 31gjj1nxPffDZikPYdJC7+f9GZOJ7qK6CX2dlayHvw4Ts9C6ODVbdoj X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently the infrastructure is set up for vast expandability, but it's far too complex for what is just 0-2 clocks. Categorize the clocks and simplify their getting. One notable change is that vcodec clocks are switched to use devm_clk_get_optional, which will let us commonize the code further while leaving the burden of figuring out which SoCs need codec-specific clocks and which don't to the bindings checker. Signed-off-by: Konrad Dybcio --- drivers/media/platform/qcom/venus/core.c | 18 ---- drivers/media/platform/qcom/venus/core.h | 9 +- drivers/media/platform/qcom/venus/pm_helpers.c | 129 +++++++++++++--------= ---- 3 files changed, 69 insertions(+), 87 deletions(-) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index 435f6f10a905..42bfcef9449a 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -584,9 +584,6 @@ static const struct venus_resources msm8996_res =3D { .reg_tbl_size =3D ARRAY_SIZE(msm8996_reg_preset), .clks =3D {"core", "iface", "bus", "mbus" }, .clks_num =3D 4, - .vcodec0_clks =3D { "core" }, - .vcodec1_clks =3D { "core" }, - .vcodec_clks_num =3D 1, .max_load =3D 2563200, .hfi_version =3D HFI_VERSION_3XX, .dma_mask =3D (GENMASK(31, 30) | GENMASK(28, 26) | GENMASK(24, 22)) - 1, @@ -639,9 +636,6 @@ static const struct venus_resources sdm660_res =3D { .bw_tbl_dec_size =3D ARRAY_SIZE(sdm660_bw_table_dec), .clks =3D {"core", "iface", "bus", "bus_throttle" }, .clks_num =3D 4, - .vcodec0_clks =3D { "vcodec0_core" }, - .vcodec1_clks =3D { "vcodec0_core" }, - .vcodec_clks_num =3D 1, .max_load =3D 1036800, .hfi_version =3D HFI_VERSION_3XX, .cp_size =3D 0x79000000, @@ -683,9 +677,6 @@ static const struct venus_resources sdm845_res =3D { .bw_tbl_dec_size =3D ARRAY_SIZE(sdm845_bw_table_dec), .clks =3D {"core", "iface", "bus" }, .clks_num =3D 3, - .vcodec0_clks =3D { "core", "bus" }, - .vcodec1_clks =3D { "core", "bus" }, - .vcodec_clks_num =3D 2, .max_load =3D 3110400, /* 4096x2160@90 */ .hfi_version =3D HFI_VERSION_4XX, .vpu_version =3D VPU_VERSION_AR50, @@ -702,9 +693,6 @@ static const struct venus_resources sdm845_res_v2 =3D { .bw_tbl_dec_size =3D ARRAY_SIZE(sdm845_bw_table_dec), .clks =3D {"core", "iface", "bus" }, .clks_num =3D 3, - .vcodec0_clks =3D { "vcodec0_core", "vcodec0_bus" }, - .vcodec1_clks =3D { "vcodec1_core", "vcodec1_bus" }, - .vcodec_clks_num =3D 2, .vcodec_pmdomains =3D { "venus", "vcodec0", "vcodec1" }, .vcodec_pmdomains_num =3D 3, .opp_pmdomain =3D pd_names_cx, @@ -747,8 +735,6 @@ static const struct venus_resources sc7180_res =3D { .bw_tbl_dec_size =3D ARRAY_SIZE(sc7180_bw_table_dec), .clks =3D {"core", "iface", "bus" }, .clks_num =3D 3, - .vcodec0_clks =3D { "vcodec0_core", "vcodec0_bus" }, - .vcodec_clks_num =3D 2, .vcodec_pmdomains =3D { "venus", "vcodec0" }, .vcodec_pmdomains_num =3D 2, .opp_pmdomain =3D pd_names_cx, @@ -799,8 +785,6 @@ static const struct venus_resources sm8250_res =3D { .clks_num =3D 2, .resets =3D { "bus", "core" }, .resets_num =3D 2, - .vcodec0_clks =3D { "vcodec0_core" }, - .vcodec_clks_num =3D 1, .vcodec_pmdomains =3D { "venus", "vcodec0" }, .vcodec_pmdomains_num =3D 2, .opp_pmdomain =3D pd_names_mx, @@ -854,8 +838,6 @@ static const struct venus_resources sc7280_res =3D { .ubwc_conf =3D &sc7280_ubwc_config, .clks =3D {"core", "bus", "iface"}, .clks_num =3D 3, - .vcodec0_clks =3D {"vcodec_core", "vcodec_bus"}, - .vcodec_clks_num =3D 2, .vcodec_pmdomains =3D { "venus", "vcodec0" }, .vcodec_pmdomains_num =3D 2, .opp_pmdomain =3D pd_names_cx, diff --git a/drivers/media/platform/qcom/venus/core.h b/drivers/media/platf= orm/qcom/venus/core.h index 16acf738fd6c..fd78f17c12d8 100644 --- a/drivers/media/platform/qcom/venus/core.h +++ b/drivers/media/platform/qcom/venus/core.h @@ -24,10 +24,11 @@ #define VDBGFW "VenusFW : " =20 #define VIDC_CLKS_NUM_MAX 4 -#define VIDC_VCODEC_CLKS_NUM_MAX 2 #define VIDC_PMDOMAINS_NUM_MAX 3 #define VIDC_RESETS_NUM_MAX 2 =20 +#define MAX_NUM_VCODECS 2 + extern int venus_fw_debug; =20 struct freq_tbl { @@ -69,8 +70,6 @@ struct venus_resources { const struct hfi_ubwc_config * const ubwc_conf; const char * const clks[VIDC_CLKS_NUM_MAX]; const unsigned int clks_num; - const char * const vcodec0_clks[VIDC_VCODEC_CLKS_NUM_MAX]; - const char * const vcodec1_clks[VIDC_VCODEC_CLKS_NUM_MAX]; const unsigned int vcodec_clks_num; const char * const vcodec_pmdomains[VIDC_PMDOMAINS_NUM_MAX]; const unsigned int vcodec_pmdomains_num; @@ -177,8 +176,8 @@ struct venus_core { void __iomem *aon_base; int irq; struct clk *clks[VIDC_CLKS_NUM_MAX]; - struct clk *vcodec0_clks[VIDC_VCODEC_CLKS_NUM_MAX]; - struct clk *vcodec1_clks[VIDC_VCODEC_CLKS_NUM_MAX]; + struct clk *vcodec_core_clks[MAX_NUM_VCODECS]; + struct clk *vcodec_bus_clks[MAX_NUM_VCODECS]; struct icc_path *video_path; struct icc_path *cpucfg_path; bool has_opp_table; diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media= /platform/qcom/venus/pm_helpers.c index 9a0e2a00f383..741b29cc76c9 100644 --- a/drivers/media/platform/qcom/venus/pm_helpers.c +++ b/drivers/media/platform/qcom/venus/pm_helpers.c @@ -110,67 +110,74 @@ static void core_clks_disable(struct venus_core *core) =20 static int core_clks_set_rate(struct venus_core *core, unsigned long freq) { - int ret; + int i, ret; =20 ret =3D dev_pm_opp_set_rate(core->dev, freq); if (ret) return ret; =20 - ret =3D clk_set_rate(core->vcodec0_clks[0], freq); - if (ret) - return ret; - - ret =3D clk_set_rate(core->vcodec1_clks[0], freq); - if (ret) - return ret; + for (i =3D 0; i < MAX_NUM_VCODECS; i++) { + ret =3D clk_set_rate(core->vcodec_core_clks[i], freq); + if (ret) + return ret; + } =20 return 0; } =20 -static int vcodec_clks_get(struct venus_core *core, struct device *dev, - struct clk **clks, const char * const *id) +static int vcodec_clks_get(struct venus_core *core, struct device *dev, u8= id) { - const struct venus_resources *res =3D core->res; - unsigned int i; + char buf[13] =3D { 0 }; /* vcodecX_core\0 */ =20 - for (i =3D 0; i < res->vcodec_clks_num; i++) { - if (!id[i]) - continue; - clks[i] =3D devm_clk_get(dev, id[i]); - if (IS_ERR(clks[i])) - return PTR_ERR(clks[i]); + /* Best we can do is 2 cores */ + if (id > MAX_NUM_VCODECS - 1) { + dev_err(dev, "Got impossible vcodec id %u\n", id); + return -EINVAL; + }; + + snprintf(buf, sizeof(buf), "vcodec%u_core", id); + + /* First try the non-legacy name */ + core->vcodec_core_clks[id] =3D devm_clk_get_optional(dev, buf); + if (IS_ERR(core->vcodec_core_clks[id])) { + /* Try again, with the legacy name */ + core->vcodec_core_clks[id] =3D devm_clk_get_optional(dev, "core"); + if (IS_ERR(core->vcodec_core_clks[id])) + return PTR_ERR(core->vcodec_core_clks[id]); + } + + memset(buf, 0, sizeof(buf)); + snprintf(buf, sizeof(buf), "vcodec%u_bus", id); + + core->vcodec_bus_clks[id] =3D devm_clk_get_optional(dev, buf); + if (IS_ERR(core->vcodec_bus_clks[id])) { + core->vcodec_bus_clks[id] =3D devm_clk_get_optional(dev, "bus"); + if (IS_ERR(core->vcodec_bus_clks[id])) + return PTR_ERR(core->vcodec_bus_clks[id]); } =20 return 0; } =20 -static int vcodec_clks_enable(struct venus_core *core, struct clk **clks) +static int vcodec_clks_enable(struct venus_core *core, u8 id) { - const struct venus_resources *res =3D core->res; - unsigned int i; int ret; =20 - for (i =3D 0; i < res->vcodec_clks_num; i++) { - ret =3D clk_prepare_enable(clks[i]); - if (ret) - goto err; - } + ret =3D clk_prepare_enable(core->vcodec_core_clks[id]); + if (ret) + return ret; =20 - return 0; -err: - while (i--) - clk_disable_unprepare(clks[i]); + ret =3D clk_prepare_enable(core->vcodec_bus_clks[id]); + if (ret) + clk_disable_unprepare(core->vcodec_core_clks[id]); =20 return ret; } =20 -static void vcodec_clks_disable(struct venus_core *core, struct clk **clks) +static void vcodec_clks_disable(struct venus_core *core, u8 id) { - const struct venus_resources *res =3D core->res; - unsigned int i =3D res->vcodec_clks_num; - - while (i--) - clk_disable_unprepare(clks[i]); + clk_disable_unprepare(core->vcodec_bus_clks[id]); + clk_disable_unprepare(core->vcodec_core_clks[id]); } =20 static u32 load_per_instance(struct venus_inst *inst) @@ -343,8 +350,7 @@ static int vdec_get_v3(struct device *dev) { struct venus_core *core =3D dev_get_drvdata(dev); =20 - return vcodec_clks_get(core, dev, core->vcodec0_clks, - core->res->vcodec0_clks); + return vcodec_clks_get(core, dev, 0); } =20 static int vdec_power_v3(struct device *dev, int on) @@ -355,9 +361,9 @@ static int vdec_power_v3(struct device *dev, int on) vcodec_control_v3(core, VIDC_SESSION_TYPE_DEC, true); =20 if (on =3D=3D POWER_ON) - ret =3D vcodec_clks_enable(core, core->vcodec0_clks); + ret =3D vcodec_clks_enable(core, 0); else - vcodec_clks_disable(core, core->vcodec0_clks); + vcodec_clks_disable(core, 0); =20 vcodec_control_v3(core, VIDC_SESSION_TYPE_DEC, false); =20 @@ -368,8 +374,7 @@ static int venc_get_v3(struct device *dev) { struct venus_core *core =3D dev_get_drvdata(dev); =20 - return vcodec_clks_get(core, dev, core->vcodec1_clks, - core->res->vcodec1_clks); + return vcodec_clks_get(core, dev, 1); } =20 static int venc_power_v3(struct device *dev, int on) @@ -380,9 +385,9 @@ static int venc_power_v3(struct device *dev, int on) vcodec_control_v3(core, VIDC_SESSION_TYPE_ENC, true); =20 if (on =3D=3D POWER_ON) - ret =3D vcodec_clks_enable(core, core->vcodec1_clks); + ret =3D vcodec_clks_enable(core, 1); else - vcodec_clks_disable(core, core->vcodec1_clks); + vcodec_clks_disable(core, 1); =20 vcodec_control_v3(core, VIDC_SESSION_TYPE_ENC, false); =20 @@ -441,7 +446,7 @@ static int poweroff_coreid(struct venus_core *core, uns= igned int coreid_mask) if (ret) return ret; =20 - vcodec_clks_disable(core, core->vcodec0_clks); + vcodec_clks_disable(core, 0); =20 ret =3D vcodec_control_v4(core, VIDC_CORE_ID_1, false); if (ret) @@ -457,7 +462,7 @@ static int poweroff_coreid(struct venus_core *core, uns= igned int coreid_mask) if (ret) return ret; =20 - vcodec_clks_disable(core, core->vcodec1_clks); + vcodec_clks_disable(core, 1); =20 ret =3D vcodec_control_v4(core, VIDC_CORE_ID_2, false); if (ret) @@ -484,7 +489,7 @@ static int poweron_coreid(struct venus_core *core, unsi= gned int coreid_mask) if (ret) return ret; =20 - ret =3D vcodec_clks_enable(core, core->vcodec0_clks); + ret =3D vcodec_clks_enable(core, 0); if (ret) return ret; =20 @@ -502,7 +507,7 @@ static int poweron_coreid(struct venus_core *core, unsi= gned int coreid_mask) if (ret) return ret; =20 - ret =3D vcodec_clks_enable(core, core->vcodec1_clks); + ret =3D vcodec_clks_enable(core, 1); if (ret) return ret; =20 @@ -763,20 +768,18 @@ static int vdec_get_v4(struct device *dev) if (!legacy_binding) return 0; =20 - return vcodec_clks_get(core, dev, core->vcodec0_clks, - core->res->vcodec0_clks); + return vcodec_clks_get(core, dev, 0); } =20 static void vdec_put_v4(struct device *dev) { struct venus_core *core =3D dev_get_drvdata(dev); - unsigned int i; =20 if (!legacy_binding) return; =20 - for (i =3D 0; i < core->res->vcodec_clks_num; i++) - core->vcodec0_clks[i] =3D NULL; + core->vcodec_core_clks[0] =3D NULL; + core->vcodec_bus_clks[0] =3D NULL; } =20 static int vdec_power_v4(struct device *dev, int on) @@ -792,9 +795,9 @@ static int vdec_power_v4(struct device *dev, int on) return ret; =20 if (on =3D=3D POWER_ON) - ret =3D vcodec_clks_enable(core, core->vcodec0_clks); + ret =3D vcodec_clks_enable(core, 0); else - vcodec_clks_disable(core, core->vcodec0_clks); + vcodec_clks_disable(core, 0); =20 vcodec_control_v4(core, VIDC_CORE_ID_1, false); =20 @@ -808,20 +811,18 @@ static int venc_get_v4(struct device *dev) if (!legacy_binding) return 0; =20 - return vcodec_clks_get(core, dev, core->vcodec1_clks, - core->res->vcodec1_clks); + return vcodec_clks_get(core, dev, 1); } =20 static void venc_put_v4(struct device *dev) { struct venus_core *core =3D dev_get_drvdata(dev); - unsigned int i; =20 if (!legacy_binding) return; =20 - for (i =3D 0; i < core->res->vcodec_clks_num; i++) - core->vcodec1_clks[i] =3D NULL; + core->vcodec_core_clks[1] =3D NULL; + core->vcodec_bus_clks[1] =3D NULL; } =20 static int venc_power_v4(struct device *dev, int on) @@ -837,9 +838,9 @@ static int venc_power_v4(struct device *dev, int on) return ret; =20 if (on =3D=3D POWER_ON) - ret =3D vcodec_clks_enable(core, core->vcodec1_clks); + ret =3D vcodec_clks_enable(core, 1); else - vcodec_clks_disable(core, core->vcodec1_clks); + vcodec_clks_disable(core, 1); =20 vcodec_control_v4(core, VIDC_CORE_ID_2, false); =20 @@ -940,11 +941,11 @@ static int core_get_v4(struct venus_core *core) =20 dev_info(dev, "%s legacy binding\n", legacy_binding ? "" : "non"); =20 - ret =3D vcodec_clks_get(core, dev, core->vcodec0_clks, res->vcodec0_clks); + ret =3D vcodec_clks_get(core, dev, 0); if (ret) return ret; =20 - ret =3D vcodec_clks_get(core, dev, core->vcodec1_clks, res->vcodec1_clks); + ret =3D vcodec_clks_get(core, dev, 1); if (ret) return ret; =20 --=20 2.42.0 From nobody Thu Dec 18 09:41:01 2025 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 62327CA0EC6 for ; Mon, 11 Sep 2023 21:27:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244500AbjIKVSs (ORCPT ); Mon, 11 Sep 2023 17:18:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60438 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241638AbjIKPLI (ORCPT ); Mon, 11 Sep 2023 11:11:08 -0400 Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com [IPv6:2a00:1450:4864:20::534]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 92242E58 for ; Mon, 11 Sep 2023 08:11:02 -0700 (PDT) Received: by mail-ed1-x534.google.com with SMTP id 4fb4d7f45d1cf-52f3ba561d9so3788027a12.1 for ; Mon, 11 Sep 2023 08:11:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1694445061; x=1695049861; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=116M1Uf4FxkGVcXqN1wBq1UncYtXwEEG2hN8+ByRx2U=; b=Z+Rk4WRCrsSSqttXHrfsPbU2dGv0kPljBb16JEutqFxIf+yVBmWSrpttdE5mUXy7ZO VqUO65FbRH3ib2FzEsmqJTetjhaMxe8doFOOXVCSfBI9Z8xqpq3GRxWvEus42o1FtA3m SkcG+GtRyqhg9HqsoA6NpOj0PrHVY6wO8ts8qpYszaSG3U1XLL+laULKRXqnzPS91gYZ JbzbmVzc9H3xfJLFdUVKspXGTBloFezXxlncrjv4MBFqwde/OkbLPZirHeXepDIx69LZ RUIc+TN/gKy0lLm4hm9aoKHM8agLxXCg9g4TKNhyETeIWx5R4SKbskROhTZoAoNjuslV UG+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694445061; x=1695049861; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=116M1Uf4FxkGVcXqN1wBq1UncYtXwEEG2hN8+ByRx2U=; b=KwqAZL0lcFdpvR1PwmtSGH0+6PZTY2qfgnRTbXmXRNA/hmFzo78tFXDpJL833+YkSZ wIoDq0NJvo1K23JnnltowlJCcGjbQwp2ALmb4qdm6+7Pv5ixynvAFLtgUQVLrf7p4UBQ +NWViw1G2VlfWZPDzXm4GG1I41Bf+AugtF04DicmEOiQPgOAz9w7QBqEPJoLGZcz1f/K Ctu9xg6GBnTS8T+CW0QUAWmqYWB3RvHYXl3FTbo2VlY5Ks1Tfq07wqIL7sd+mCdmHavH ecQAd05nillsyMEBP5griD77+csTccPGa2Qmu4QxDagudXuZh8w8LQSIs2Q7aTXsliCa BSJw== X-Gm-Message-State: AOJu0YzBC46ghm4T6/DfaEJyCUl4pOG0u0IVCombM4wr9jko0aq8MNv+ nFZvjVpMen2udmh3GvLnHb1R6Q== X-Google-Smtp-Source: AGHT+IEvvAGK6lqIPwjV7PEMM+tywxepjWAX/NQ/dlwbyxSX9kJBmKg9i02x5I20YkqjdqPrl/H/Hw== X-Received: by 2002:a05:6402:124f:b0:525:8124:20fe with SMTP id l15-20020a056402124f00b00525812420femr14949632edw.18.1694445061156; Mon, 11 Sep 2023 08:11:01 -0700 (PDT) Received: from [10.167.154.1] (178235177061.dynamic-4-waw-k-1-1-0.vectranet.pl. [178.235.177.61]) by smtp.gmail.com with ESMTPSA id n4-20020a056402060400b0052a3ad836basm4681281edv.41.2023.09.11.08.10.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Sep 2023 08:11:00 -0700 (PDT) From: Konrad Dybcio Date: Mon, 11 Sep 2023 17:10:32 +0200 Subject: [PATCH RFT 18/20] media: venus: pm_helpers: Commonize getting clocks and GenPDs MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230911-topic-mars-v1-18-a7d38bf87bdb@linaro.org> References: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> In-Reply-To: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> To: Stanimir Varbanov , Vikash Garodia , Bryan O'Donoghue , Andy Gross , Bjorn Andersson , Mauro Carvalho Chehab , Dikshita Agarwal , Philipp Zabel Cc: Marijn Suijten , Stanimir Varbanov , Mauro Carvalho Chehab , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1694445027; l=3351; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=9AKWBnlvj+Q6WSygovq46dA98O8B8twaOC1bOaWKQLA=; b=laMrLpKy/LbvHFS/2/vbvWUy7x94OHugyBeOVM5X6pDzlPuwylz6rzNcHKYsAIXhTmLLk01xT kB9YPsDJwwxDP0sYjSuG/sAqkJOojLShhcDAUhZpqAzpWIXt8wnZ0TP X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org As has been the story with the past few commits, much of the resource acquisition logic is totally identical between different generations and there's no good reason to invent a new function for each one. Commonize core_get() and rename it to venus_get_resources() to be more meaningful. Signed-off-by: Konrad Dybcio --- drivers/media/platform/qcom/venus/core.c | 8 +++----- drivers/media/platform/qcom/venus/pm_helpers.c | 5 +---- drivers/media/platform/qcom/venus/pm_helpers.h | 3 +-- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platf= orm/qcom/venus/core.c index 42bfcef9449a..e8a16355d39e 100644 --- a/drivers/media/platform/qcom/venus/core.c +++ b/drivers/media/platform/qcom/venus/core.c @@ -337,11 +337,9 @@ static int venus_probe(struct platform_device *pdev) if (ret) return ret; =20 - if (core->pm_ops->core_get) { - ret =3D core->pm_ops->core_get(core); - if (ret) - return ret; - } + ret =3D venus_get_resources(core); + if (ret) + return ret; =20 ret =3D dma_set_mask_and_coherent(dev, res->dma_mask); if (ret) diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media= /platform/qcom/venus/pm_helpers.c index 741b29cc76c9..6e282a69c7c5 100644 --- a/drivers/media/platform/qcom/venus/pm_helpers.c +++ b/drivers/media/platform/qcom/venus/pm_helpers.c @@ -326,7 +326,6 @@ static int load_scale_v1(struct venus_inst *inst) } =20 static const struct venus_pm_ops pm_ops_v1 =3D { - .core_get =3D venus_clks_get, .load_scale =3D load_scale_v1, }; =20 @@ -395,7 +394,6 @@ static int venc_power_v3(struct device *dev, int on) } =20 static const struct venus_pm_ops pm_ops_v3 =3D { - .core_get =3D venus_clks_get, .vdec_get =3D vdec_get_v3, .vdec_power =3D vdec_power_v3, .venc_get =3D venc_get_v3, @@ -926,7 +924,7 @@ static int core_resets_reset(struct venus_core *core) return reset_control_bulk_deassert(res->resets_num, core->resets); } =20 -static int core_get_v4(struct venus_core *core) +int venus_get_resources(struct venus_core *core) { struct device *dev =3D core->dev; const struct venus_resources *res =3D core->res; @@ -1114,7 +1112,6 @@ static int load_scale_v4(struct venus_inst *inst) } =20 static const struct venus_pm_ops pm_ops_v4 =3D { - .core_get =3D core_get_v4, .vdec_get =3D vdec_get_v4, .vdec_put =3D vdec_put_v4, .vdec_power =3D vdec_power_v4, diff --git a/drivers/media/platform/qcom/venus/pm_helpers.h b/drivers/media= /platform/qcom/venus/pm_helpers.h index 3014b39aa6e3..7a55a55029f3 100644 --- a/drivers/media/platform/qcom/venus/pm_helpers.h +++ b/drivers/media/platform/qcom/venus/pm_helpers.h @@ -10,8 +10,6 @@ struct venus_core; #define POWER_OFF 0 =20 struct venus_pm_ops { - int (*core_get)(struct venus_core *core); - int (*vdec_get)(struct device *dev); void (*vdec_put)(struct device *dev); int (*vdec_power)(struct device *dev, int on); @@ -28,6 +26,7 @@ struct venus_pm_ops { const struct venus_pm_ops *venus_pm_get(enum hfi_version version); int venus_core_power(struct venus_core *core, int on); void vcodec_domains_put(struct venus_core *core); +int venus_get_resources(struct venus_core *core); =20 static inline int venus_pm_load_scale(struct venus_inst *inst) { --=20 2.42.0 From nobody Thu Dec 18 09:41:01 2025 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 50FF3CA0ED5 for ; Mon, 11 Sep 2023 21:48:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1351271AbjIKVm5 (ORCPT ); Mon, 11 Sep 2023 17:42:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60474 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241644AbjIKPLJ (ORCPT ); Mon, 11 Sep 2023 11:11:09 -0400 Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com [IPv6:2a00:1450:4864:20::32d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0C04412E for ; Mon, 11 Sep 2023 08:11:04 -0700 (PDT) Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-401ec23be82so51028985e9.0 for ; Mon, 11 Sep 2023 08:11:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1694445062; x=1695049862; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=asvRsf79Z4t2sQWCzoV7GsZSEWprfQh6kK1bExMAVOg=; b=xjHiblnWXtrmTuD0F5dfIJgT3GvNcDwRUV324X1CCiUrPORvIGA4tY20qPOaykDRAe Xku9M1nRl0gQwRQTZG2DFsL9IGJUBa71sKG68/yX0/rEvhedKeVLnH6gJYWBO4g/9HuO qeW0uGfemgEC3HTRyafsOYCJs9I+gqemobB7C18nIDyZxkvaP6iYdTDNgDXj5uQEGGia hq3n0F1mveVnn0cArgMG71AB7fcLw+e/P89D/ePHtURb0t+8MEE1SmYGd+zaVXZnQYAL nwIufK8zphm707623O0Gv82UE9XG+ykDSuPSurJ6JF06PXMYQ83Ql/W8Cs8SL1wpT3Oz TLsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694445062; x=1695049862; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=asvRsf79Z4t2sQWCzoV7GsZSEWprfQh6kK1bExMAVOg=; b=hOQ4CHxzG2eAiapqC6EbHL3hAJs+CqSVPBAQLYDr1TIjUlMiY1gRcusOl5fMqZfKyV QlOM99FJw393LtptV4WbGZdfM18Cv1bf1EuTVgcGQTI/2/mcIGJWKeaPjGhExtw/NBw1 MLXjavZsDRKTe3jzCvBrJPU+H6fOxR8Pzl11CH5P1hzE87eG77gi9OX7nuSdO3k6B0P0 MqCW9Na2vB2kVVYWZCxCahirkpCGytAyRLx+12g1LfIHs51MxJv5cOu3PK4ZKSbMM9Zq Yiyn35QOfUx8ARimpQf1szR3z46FbA84+5YA7SR4Sfs+rgXdghJxqGs4be7XPz5lPe4S cEGg== X-Gm-Message-State: AOJu0Yxsrl52lnGaIs7smMdFCQg52FXGXbvgGiTdxovjxaTvd2tcKYJ6 z4YideuvKgCGcveFphgfjBLsMqWxsblSrQYU2M3OIQ== X-Google-Smtp-Source: AGHT+IGE5+K1yW8OMCCbQ7LO7syjz0lKVcA0C/SeX6aOskGrNDSwz5DcC1WVx/LeccZYQTPTScyzVQ== X-Received: by 2002:a05:6000:183:b0:30e:19a8:4b0a with SMTP id p3-20020a056000018300b0030e19a84b0amr8128899wrx.2.1694445062479; Mon, 11 Sep 2023 08:11:02 -0700 (PDT) Received: from [10.167.154.1] (178235177061.dynamic-4-waw-k-1-1-0.vectranet.pl. [178.235.177.61]) by smtp.gmail.com with ESMTPSA id n4-20020a056402060400b0052a3ad836basm4681281edv.41.2023.09.11.08.11.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Sep 2023 08:11:02 -0700 (PDT) From: Konrad Dybcio Date: Mon, 11 Sep 2023 17:10:33 +0200 Subject: [PATCH RFT 19/20] media: venus: pm_helpers: Commonize vdec_get() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230911-topic-mars-v1-19-a7d38bf87bdb@linaro.org> References: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> In-Reply-To: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> To: Stanimir Varbanov , Vikash Garodia , Bryan O'Donoghue , Andy Gross , Bjorn Andersson , Mauro Carvalho Chehab , Dikshita Agarwal , Philipp Zabel Cc: Marijn Suijten , Stanimir Varbanov , Mauro Carvalho Chehab , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1694445027; l=3895; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=YlmzYA4YQxxbZ8+I823ZEVUx3rnP0v9rXONFOCmtrvs=; b=KDRi++FuxntqUR4FhQvN/znBeowYpYMg9oFJfeJ2P90qhKY2dUuXl0A5psa8vbOs8KGLaPlj7 I/3Xltr8F6xB8b3OciZAX6Y+pY/HYC9z5I6oAQo6HER3rzMArtLbLaP X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This function can be very easily commonized between the supported gens. Do so! Signed-off-by: Konrad Dybcio --- drivers/media/platform/qcom/venus/pm_helpers.c | 21 +-------------------- drivers/media/platform/qcom/venus/pm_helpers.h | 2 +- drivers/media/platform/qcom/venus/vdec.c | 9 +++++++-- 3 files changed, 9 insertions(+), 23 deletions(-) diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media= /platform/qcom/venus/pm_helpers.c index 6e282a69c7c5..dfb89d2e7387 100644 --- a/drivers/media/platform/qcom/venus/pm_helpers.c +++ b/drivers/media/platform/qcom/venus/pm_helpers.c @@ -125,7 +125,7 @@ static int core_clks_set_rate(struct venus_core *core, = unsigned long freq) return 0; } =20 -static int vcodec_clks_get(struct venus_core *core, struct device *dev, u8= id) +int vcodec_clks_get(struct venus_core *core, struct device *dev, u8 id) { char buf[13] =3D { 0 }; /* vcodecX_core\0 */ =20 @@ -345,13 +345,6 @@ vcodec_control_v3(struct venus_core *core, u32 session= _type, bool enable) writel(1, ctrl); } =20 -static int vdec_get_v3(struct device *dev) -{ - struct venus_core *core =3D dev_get_drvdata(dev); - - return vcodec_clks_get(core, dev, 0); -} - static int vdec_power_v3(struct device *dev, int on) { struct venus_core *core =3D dev_get_drvdata(dev); @@ -394,7 +387,6 @@ static int venc_power_v3(struct device *dev, int on) } =20 static const struct venus_pm_ops pm_ops_v3 =3D { - .vdec_get =3D vdec_get_v3, .vdec_power =3D vdec_power_v3, .venc_get =3D venc_get_v3, .venc_power =3D venc_power_v3, @@ -759,16 +751,6 @@ static int coreid_power_v4(struct venus_inst *inst, in= t on) return ret; } =20 -static int vdec_get_v4(struct device *dev) -{ - struct venus_core *core =3D dev_get_drvdata(dev); - - if (!legacy_binding) - return 0; - - return vcodec_clks_get(core, dev, 0); -} - static void vdec_put_v4(struct device *dev) { struct venus_core *core =3D dev_get_drvdata(dev); @@ -1112,7 +1094,6 @@ static int load_scale_v4(struct venus_inst *inst) } =20 static const struct venus_pm_ops pm_ops_v4 =3D { - .vdec_get =3D vdec_get_v4, .vdec_put =3D vdec_put_v4, .vdec_power =3D vdec_power_v4, .venc_get =3D venc_get_v4, diff --git a/drivers/media/platform/qcom/venus/pm_helpers.h b/drivers/media= /platform/qcom/venus/pm_helpers.h index 7a55a55029f3..4afc57dac865 100644 --- a/drivers/media/platform/qcom/venus/pm_helpers.h +++ b/drivers/media/platform/qcom/venus/pm_helpers.h @@ -10,7 +10,6 @@ struct venus_core; #define POWER_OFF 0 =20 struct venus_pm_ops { - int (*vdec_get)(struct device *dev); void (*vdec_put)(struct device *dev); int (*vdec_power)(struct device *dev, int on); =20 @@ -27,6 +26,7 @@ const struct venus_pm_ops *venus_pm_get(enum hfi_version = version); int venus_core_power(struct venus_core *core, int on); void vcodec_domains_put(struct venus_core *core); int venus_get_resources(struct venus_core *core); +int vcodec_clks_get(struct venus_core *core, struct device *dev, u8 id); =20 static inline int venus_pm_load_scale(struct venus_inst *inst) { diff --git a/drivers/media/platform/qcom/venus/vdec.c b/drivers/media/platf= orm/qcom/venus/vdec.c index dbf305cec120..610beba5ca6d 100644 --- a/drivers/media/platform/qcom/venus/vdec.c +++ b/drivers/media/platform/qcom/venus/vdec.c @@ -1788,8 +1788,13 @@ static int vdec_probe(struct platform_device *pdev) =20 platform_set_drvdata(pdev, core); =20 - if (core->pm_ops->vdec_get) { - ret =3D core->pm_ops->vdec_get(dev); + /* + * If the vcodec core clock is missing by now, it either doesn't exist + * (8916) or deprecated bindings with pre-assigned core functions and + * resources under the decoder node are in use. + */ + if (!core->vcodec_core_clks[0]) { + ret =3D vcodec_clks_get(core, dev, 0); if (ret) return ret; } --=20 2.42.0 From nobody Thu Dec 18 09:41:01 2025 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 64738CA0ECD for ; Mon, 11 Sep 2023 22:22:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1359833AbjIKWSu (ORCPT ); Mon, 11 Sep 2023 18:18:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60500 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241648AbjIKPLK (ORCPT ); Mon, 11 Sep 2023 11:11:10 -0400 Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com [IPv6:2a00:1450:4864:20::529]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A8573FA for ; Mon, 11 Sep 2023 08:11:05 -0700 (PDT) Received: by mail-ed1-x529.google.com with SMTP id 4fb4d7f45d1cf-52a40cf952dso6052171a12.2 for ; Mon, 11 Sep 2023 08:11:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1694445064; x=1695049864; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=HVLqCA/ecvInY4c6THAO1tIs6dKSTPnQEjLvdL4WYHk=; b=pBXgNVDCIDhRiCpll+KwCkJAwuYSnUBAmSmJ2RfBzA0adoxzdEzuS/07u00GO10jmc 1nprwi6uHOxrzAEg/aZf9oCALcvKChIMjEaHOyKw9NJ3uYCN0/G6RT1Tky2OTPi51IZ0 5OgtAA3Z+q1MGLr168WDWdR7MMZVeZO8DS/mH5trz/QficRIvIXFBwSNeHF6QST+nwk4 ScEHvVcNBkihiUg+W2vm2OUIGBVFIS+u1VWwfd+wvHGLxrBMnBaj64aHqMMecxUPwNVE +bfCLeZCT3dXUzmuuoZC2H2qiE2UWh74DpC9oAzJCfDYZUFOu6hqGjh26LfS0/em0HQb qPBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694445064; x=1695049864; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HVLqCA/ecvInY4c6THAO1tIs6dKSTPnQEjLvdL4WYHk=; b=fHiGia0yBCkpGn2BLaTpoejFujZVqdP2o0njMcdu7YbMnKdU8bFz4sQ3DxM0r9IwVA Bt0cJS5YuMpCCSV98LOWhkXnt81h82f6FO5ixccWptBIyInDDIN4AHW2qAVmeUolG8do 7BU5+O5hYrQKkd3v39f2S9lK2QiUhH2jYFnhTUGDiKg1NwbLDZIrJlZvz/yVI4D9nah5 19x0BA8rw/pAtqHtd4pB6S0N637YAmhghoyF9wrnTOXKz5HWNzPt/hLGVYnqdtp+fJ1q XPgNQEVed3eJPGISfRRKwx/89jbRCUrA5IxyfFamwSGIv0Gfn6STYDWo5fd6Lxq8Ki3V s1Bw== X-Gm-Message-State: AOJu0YzkcTVH+o4F9qD18KAfBlibfcYZuz5dHg4ZV6hHDCU8UdQuOEOA lSL2mzDJ/2jLOc9eCmGom2KvBA== X-Google-Smtp-Source: AGHT+IHNS4PmdSp7TCHy+BYzxHt4JAK6ZnEugthWVcBVLN+hPi2VGwGiI2QReNZ350wvDNw4TdzY3Q== X-Received: by 2002:aa7:c904:0:b0:525:70b3:72c2 with SMTP id b4-20020aa7c904000000b0052570b372c2mr8260935edt.14.1694445064234; Mon, 11 Sep 2023 08:11:04 -0700 (PDT) Received: from [10.167.154.1] (178235177061.dynamic-4-waw-k-1-1-0.vectranet.pl. [178.235.177.61]) by smtp.gmail.com with ESMTPSA id n4-20020a056402060400b0052a3ad836basm4681281edv.41.2023.09.11.08.11.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Sep 2023 08:11:03 -0700 (PDT) From: Konrad Dybcio Date: Mon, 11 Sep 2023 17:10:34 +0200 Subject: [PATCH RFT 20/20] media: venus: pm_helpers: Commonize venc_get() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230911-topic-mars-v1-20-a7d38bf87bdb@linaro.org> References: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> In-Reply-To: <20230911-topic-mars-v1-0-a7d38bf87bdb@linaro.org> To: Stanimir Varbanov , Vikash Garodia , Bryan O'Donoghue , Andy Gross , Bjorn Andersson , Mauro Carvalho Chehab , Dikshita Agarwal , Philipp Zabel Cc: Marijn Suijten , Stanimir Varbanov , Mauro Carvalho Chehab , linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1694445027; l=3254; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=vxb2w5wVyktQxR9j1Q6sGaFooRnQRJnrKSI6AeZH57o=; b=33oCSwwyUM3j+SIJKcWOvs5hYfI+HUSZ161Pxwvi8UnJdtfQsPyPhxkcIPoZoYyPRQOt5RpZ5 YIhCik1ceBvCJQ7lLPtb6OObauaxfo62YuhZh+REfQNU9nFAd5JdjmU X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This function can be very easily commonized between the supported gens. Do so! Signed-off-by: Konrad Dybcio --- drivers/media/platform/qcom/venus/pm_helpers.c | 19 ------------------- drivers/media/platform/qcom/venus/pm_helpers.h | 1 - drivers/media/platform/qcom/venus/venc.c | 9 +++++++-- 3 files changed, 7 insertions(+), 22 deletions(-) diff --git a/drivers/media/platform/qcom/venus/pm_helpers.c b/drivers/media= /platform/qcom/venus/pm_helpers.c index dfb89d2e7387..9546ad577b5d 100644 --- a/drivers/media/platform/qcom/venus/pm_helpers.c +++ b/drivers/media/platform/qcom/venus/pm_helpers.c @@ -362,13 +362,6 @@ static int vdec_power_v3(struct device *dev, int on) return ret; } =20 -static int venc_get_v3(struct device *dev) -{ - struct venus_core *core =3D dev_get_drvdata(dev); - - return vcodec_clks_get(core, dev, 1); -} - static int venc_power_v3(struct device *dev, int on) { struct venus_core *core =3D dev_get_drvdata(dev); @@ -388,7 +381,6 @@ static int venc_power_v3(struct device *dev, int on) =20 static const struct venus_pm_ops pm_ops_v3 =3D { .vdec_power =3D vdec_power_v3, - .venc_get =3D venc_get_v3, .venc_power =3D venc_power_v3, .load_scale =3D load_scale_v1, }; @@ -784,16 +776,6 @@ static int vdec_power_v4(struct device *dev, int on) return ret; } =20 -static int venc_get_v4(struct device *dev) -{ - struct venus_core *core =3D dev_get_drvdata(dev); - - if (!legacy_binding) - return 0; - - return vcodec_clks_get(core, dev, 1); -} - static void venc_put_v4(struct device *dev) { struct venus_core *core =3D dev_get_drvdata(dev); @@ -1096,7 +1078,6 @@ static int load_scale_v4(struct venus_inst *inst) static const struct venus_pm_ops pm_ops_v4 =3D { .vdec_put =3D vdec_put_v4, .vdec_power =3D vdec_power_v4, - .venc_get =3D venc_get_v4, .venc_put =3D venc_put_v4, .venc_power =3D venc_power_v4, .coreid_power =3D coreid_power_v4, diff --git a/drivers/media/platform/qcom/venus/pm_helpers.h b/drivers/media= /platform/qcom/venus/pm_helpers.h index 4afc57dac865..cbf54e6c6eab 100644 --- a/drivers/media/platform/qcom/venus/pm_helpers.h +++ b/drivers/media/platform/qcom/venus/pm_helpers.h @@ -13,7 +13,6 @@ struct venus_pm_ops { void (*vdec_put)(struct device *dev); int (*vdec_power)(struct device *dev, int on); =20 - int (*venc_get)(struct device *dev); void (*venc_put)(struct device *dev); int (*venc_power)(struct device *dev, int on); =20 diff --git a/drivers/media/platform/qcom/venus/venc.c b/drivers/media/platf= orm/qcom/venus/venc.c index 44b13696cf82..fd3a1dd7f16c 100644 --- a/drivers/media/platform/qcom/venus/venc.c +++ b/drivers/media/platform/qcom/venus/venc.c @@ -1557,8 +1557,13 @@ static int venc_probe(struct platform_device *pdev) =20 platform_set_drvdata(pdev, core); =20 - if (core->pm_ops->venc_get) { - ret =3D core->pm_ops->venc_get(dev); + /* + * If the vcodec core clock is missing by now, it either doesn't exist + * (8916) or deprecated bindings with pre-assigned core functions and + * resources under the decoder node are in use. + */ + if (!core->vcodec_core_clks[1]) { + ret =3D vcodec_clks_get(core, dev, 1); if (ret) return ret; } --=20 2.42.0