From patchwork Sat Jun 24 12:23:45 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Konrad Dybcio X-Patchwork-Id: 695752 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 C37E8EB64DD for ; Sat, 24 Jun 2023 12:23:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233145AbjFXMXw (ORCPT ); Sat, 24 Jun 2023 08:23:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51710 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233134AbjFXMXv (ORCPT ); Sat, 24 Jun 2023 08:23:51 -0400 Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com [IPv6:2a00:1450:4864:20::131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 094D511C for ; Sat, 24 Jun 2023 05:23:50 -0700 (PDT) Received: by mail-lf1-x131.google.com with SMTP id 2adb3069b0e04-4f004cc54f4so1991470e87.3 for ; Sat, 24 Jun 2023 05:23:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1687609428; x=1690201428; 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=4mlusQIqHLc3L1kKJFIe3oY0E4pRPb3J1UORktAQD1k=; b=OZGC+9QI1M3ODN9W7x37gwtYeEEBZK1C4ZBcjZxWEjq+3+Csf55wDuNCEuAoUCMFA2 z7pg9Wg6+Xhr3fK5LtK/iPlPJq7TfMZC0OwOL+Z0ChzK13P/ldd6DrUokIboyx9QYnOO 08vGi/1T5NHk6NcnPBMUIzmbYsI5BpWi0cEIAhmTY8cLJbnQ6OjihjmIudftwqRiaGM5 xpN8EmGucaHcmnPQ6Ja5JNX30N1+W3xf0PriZf8eclootT9EEBYTwQvSAfMnsR7Bu00s VZYgwiIoCCJJbDuxHTARjplZEDBG0AQcwxjbcO8h42KRvK6nYwYXOotf0mgMWuh3TFxQ k1og== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687609428; x=1690201428; 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=4mlusQIqHLc3L1kKJFIe3oY0E4pRPb3J1UORktAQD1k=; b=GSr2RW+5iVsS+rHOF/GNSU7qCB4hU31ma/dD0/TX8iA0t5xq0mB3w7AzkckC5Y28Db O6QQ9cfwdCzL1DQ7kmfC3DQ3+WMh/BenrarHUSLtKgMMFlXkgrJShCUhZTOq6EVYiWgl ndW0wRl8zHEozN62RKYs/kHXFHSK69ygLWxd1dLqu6OGVf50KdauJB1iVgy4rF/wzM5r NsxYCVNR2MVRNAxLVaPfCBgNnBb/fiC0Z5D9xzeFK5xLx/tkFiX/RDFB9z3QtE47Jv6s E5RgpmGuOJJCqYZHdm/QIRueaNIJD41ku/twjZXwcarGssWG6YH97yOwH+8bkmj7gAMH Y/3A== X-Gm-Message-State: AC+VfDzG+yF/nsj6hYdMEsN3HHPK2n6g7xgH+LSht+vmcrKDrvvNVJPB NlQfebeMWtx998lZgUkHyKm8z60foMr8VYcSRUg= X-Google-Smtp-Source: ACHHUZ5wvzrIOG2lC6PssO6R/HYy7Ys+3tceM2SMKPFaFQEPBrqqNy/ZeOtox/aofROgKnSiCgG8Qg== X-Received: by 2002:a05:6512:31c8:b0:4f9:5d34:44b1 with SMTP id j8-20020a05651231c800b004f95d3444b1mr8229225lfe.2.1687609428226; Sat, 24 Jun 2023 05:23:48 -0700 (PDT) Received: from [192.168.1.101] (abyk197.neoplus.adsl.tpnet.pl. [83.9.30.197]) by smtp.gmail.com with ESMTPSA id s13-20020a19ad4d000000b004f00189e1dcsm260200lfd.117.2023.06.24.05.23.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 24 Jun 2023 05:23:47 -0700 (PDT) From: Konrad Dybcio Date: Sat, 24 Jun 2023 14:23:45 +0200 Subject: [PATCH v2 1/3] firmware: qcom_scm: Always try to consume all three clocks MIME-Version: 1.0 Message-Id: <20230623-topic-scm_cleanup-v2-1-9db8c583138d@linaro.org> References: <20230623-topic-scm_cleanup-v2-0-9db8c583138d@linaro.org> In-Reply-To: <20230623-topic-scm_cleanup-v2-0-9db8c583138d@linaro.org> To: Andy Gross , Bjorn Andersson Cc: Marijn Suijten , 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=1687609426; l=5055; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=c6mXCk54PRq5wka3veC3/OftoitCZW2RQQCuecVwHSI=; b=CohtLcSjA2HX4NMnCMM24PR0MDttb7QJBE91IfGXR0mpfZQ66Toy6jR1mwMo2hrzJi23GRBNq 5PuMfr8LJhmDSUG+OpbyI+R7P41eN91mImDT+XPkMy9LQ+wIKsWP3Ge X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org The code for handling more than 1 clock is a bit messy and requires one to add new, SoC-specific compatibles if one wants to attach a clock. Switch devm_clk_get to devm_clk_get_optional to prevent throwing it from throwing errors when the clock is absent and defer checking the clock requirements to dt schema. This lets us get rid of compatibles that aren't necessary for backwards compatibility *and* will hopefully prevent the addition of meaningless new compatibles. Signed-off-by: Konrad Dybcio --- drivers/firmware/qcom_scm.c | 73 ++++++++------------------------------------- 1 file changed, 13 insertions(+), 60 deletions(-) diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c index fde33acd46b7..237d05d6208b 100644 --- a/drivers/firmware/qcom_scm.c +++ b/drivers/firmware/qcom_scm.c @@ -26,10 +26,6 @@ static bool download_mode = IS_ENABLED(CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT); module_param(download_mode, bool, 0); -#define SCM_HAS_CORE_CLK BIT(0) -#define SCM_HAS_IFACE_CLK BIT(1) -#define SCM_HAS_BUS_CLK BIT(2) - struct qcom_scm { struct device *dev; struct clk *core_clk; @@ -1405,7 +1401,6 @@ static irqreturn_t qcom_scm_irq_handler(int irq, void *data) static int qcom_scm_probe(struct platform_device *pdev) { struct qcom_scm *scm; - unsigned long clks; int irq, ret; scm = devm_kzalloc(&pdev->dev, sizeof(*scm), GFP_KERNEL); @@ -1418,50 +1413,27 @@ static int qcom_scm_probe(struct platform_device *pdev) mutex_init(&scm->scm_bw_lock); - clks = (unsigned long)of_device_get_match_data(&pdev->dev); - scm->path = devm_of_icc_get(&pdev->dev, NULL); if (IS_ERR(scm->path)) return dev_err_probe(&pdev->dev, PTR_ERR(scm->path), "failed to acquire interconnect path\n"); - scm->core_clk = devm_clk_get(&pdev->dev, "core"); + scm->core_clk = devm_clk_get_optional(&pdev->dev, "core"); if (IS_ERR(scm->core_clk)) { if (PTR_ERR(scm->core_clk) == -EPROBE_DEFER) return PTR_ERR(scm->core_clk); - - if (clks & SCM_HAS_CORE_CLK) { - dev_err(&pdev->dev, "failed to acquire core clk\n"); - return PTR_ERR(scm->core_clk); - } - - scm->core_clk = NULL; } - scm->iface_clk = devm_clk_get(&pdev->dev, "iface"); + scm->iface_clk = devm_clk_get_optional(&pdev->dev, "iface"); if (IS_ERR(scm->iface_clk)) { if (PTR_ERR(scm->iface_clk) == -EPROBE_DEFER) return PTR_ERR(scm->iface_clk); - - if (clks & SCM_HAS_IFACE_CLK) { - dev_err(&pdev->dev, "failed to acquire iface clk\n"); - return PTR_ERR(scm->iface_clk); - } - - scm->iface_clk = NULL; } - scm->bus_clk = devm_clk_get(&pdev->dev, "bus"); + scm->bus_clk = devm_clk_get_optional(&pdev->dev, "bus"); if (IS_ERR(scm->bus_clk)) { if (PTR_ERR(scm->bus_clk) == -EPROBE_DEFER) return PTR_ERR(scm->bus_clk); - - if (clks & SCM_HAS_BUS_CLK) { - dev_err(&pdev->dev, "failed to acquire bus clk\n"); - return PTR_ERR(scm->bus_clk); - } - - scm->bus_clk = NULL; } scm->reset.ops = &qcom_scm_pas_reset_ops; @@ -1512,38 +1484,19 @@ static void qcom_scm_shutdown(struct platform_device *pdev) } static const struct of_device_id qcom_scm_dt_match[] = { - { .compatible = "qcom,scm-apq8064", - /* FIXME: This should have .data = (void *) SCM_HAS_CORE_CLK */ - }, - { .compatible = "qcom,scm-apq8084", .data = (void *)(SCM_HAS_CORE_CLK | - SCM_HAS_IFACE_CLK | - SCM_HAS_BUS_CLK) - }, + { .compatible = "qcom,scm-apq8064" }, + { .compatible = "qcom,scm-apq8084" }, { .compatible = "qcom,scm-ipq4019" }, - { .compatible = "qcom,scm-mdm9607", .data = (void *)(SCM_HAS_CORE_CLK | - SCM_HAS_IFACE_CLK | - SCM_HAS_BUS_CLK) }, - { .compatible = "qcom,scm-msm8660", .data = (void *) SCM_HAS_CORE_CLK }, - { .compatible = "qcom,scm-msm8960", .data = (void *) SCM_HAS_CORE_CLK }, - { .compatible = "qcom,scm-msm8916", .data = (void *)(SCM_HAS_CORE_CLK | - SCM_HAS_IFACE_CLK | - SCM_HAS_BUS_CLK) - }, - { .compatible = "qcom,scm-msm8953", .data = (void *)(SCM_HAS_CORE_CLK | - SCM_HAS_IFACE_CLK | - SCM_HAS_BUS_CLK) - }, - { .compatible = "qcom,scm-msm8974", .data = (void *)(SCM_HAS_CORE_CLK | - SCM_HAS_IFACE_CLK | - SCM_HAS_BUS_CLK) - }, - { .compatible = "qcom,scm-msm8976", .data = (void *)(SCM_HAS_CORE_CLK | - SCM_HAS_IFACE_CLK | - SCM_HAS_BUS_CLK) - }, + { .compatible = "qcom,scm-mdm9607" }, + { .compatible = "qcom,scm-msm8660" }, + { .compatible = "qcom,scm-msm8960" }, + { .compatible = "qcom,scm-msm8916" }, + { .compatible = "qcom,scm-msm8953" }, + { .compatible = "qcom,scm-msm8974" }, + { .compatible = "qcom,scm-msm8976" }, { .compatible = "qcom,scm-msm8994" }, { .compatible = "qcom,scm-msm8996" }, - { .compatible = "qcom,scm-sm6375", .data = (void *)SCM_HAS_CORE_CLK }, + { .compatible = "qcom,scm-sm6375" }, { .compatible = "qcom,scm" }, {} }; From patchwork Sat Jun 24 12:23:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Konrad Dybcio X-Patchwork-Id: 695751 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 780A4EB64DA for ; Sat, 24 Jun 2023 12:23:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233168AbjFXMXy (ORCPT ); Sat, 24 Jun 2023 08:23:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51726 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233157AbjFXMXw (ORCPT ); Sat, 24 Jun 2023 08:23:52 -0400 Received: from mail-lf1-x12f.google.com (mail-lf1-x12f.google.com [IPv6:2a00:1450:4864:20::12f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B98EA83 for ; Sat, 24 Jun 2023 05:23:51 -0700 (PDT) Received: by mail-lf1-x12f.google.com with SMTP id 2adb3069b0e04-4fa16c6a85cso310524e87.3 for ; Sat, 24 Jun 2023 05:23:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1687609430; x=1690201430; 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=avKiWxoWYl1UXVnI1jhFRgj1Bd8Ey8Z1YlDdy76fbHw=; b=Y/r6vNeazTy5SqQSn7ySKBYS/EBpIMfd7saTZB52qjSq5nZEBXdxO4wWvT8zv6rMrO wZyWiR+0Tnfojf1i9AC5wqXMGQOyzw7Am2DdITaQAj/w2MeP2uY+GgDx6+i/bO2nCh7R ejJwJggxe/DpvTjOam5ljnvaB1OYct/bTIAqWtACIdNRUFA+gVMPv+meTW6eMeC+0Hod y5TgEkdnnF9RCFhINPanmzx6Lvc1A35m0fDUo8nVmyySkRLsLHOVbaWZhuKKlUqnZYnr gamLQAzCSH/X6JOQvqrQjebbafRTQY+fxE7qIjoFcqhMzKU5OzKE9C/mJRAcvuk+/pnB jUDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687609430; x=1690201430; 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=avKiWxoWYl1UXVnI1jhFRgj1Bd8Ey8Z1YlDdy76fbHw=; b=CY0narGwdvZFMgl3FtF6c4zVdkBP7GFYCB++JUHYkMYHSIOHNAURb8wqv1sBFhIFel c1yjsiRBwOiXq83SBFFwozT6v725+TsO0a2jnEqRENwef+ctpF1dLDxRLVnI6g1056Jg S9o4PNbg6B1PpThQckDt6FLL5RyioJf7jKHgNyL/NwrlPUhpClG6fCpYRtNFK3DyxIgD pP5nkOo13MFRYqmWdIJAsv7meMvfOvYeYNyp4IGjkVF/xfu5TIEVzvkqEjudGr6MdSV6 tKYNTj8oeZtp3ZTOUNRR02r1H3AX8RpYkNUpmLs/QmEqpzqbg6efxcBEG7VYALbDko/O P4/g== X-Gm-Message-State: AC+VfDxAVPgmU3BP0tNovkJ6osGgFxz7CzfxqQuxNmc3LCR/T8N+dapd pAhhf+GRMouEVqi8pcIPXj1nnA== X-Google-Smtp-Source: ACHHUZ7UTAx2/bEt+ZSl5QD0opwRKHGjqzeFROyYfCzAssepJG3s6vylbvwcndvYK/Kdd5NyeYH6kw== X-Received: by 2002:ac2:4992:0:b0:4f8:453f:58f3 with SMTP id f18-20020ac24992000000b004f8453f58f3mr16346770lfl.40.1687609430036; Sat, 24 Jun 2023 05:23:50 -0700 (PDT) Received: from [192.168.1.101] (abyk197.neoplus.adsl.tpnet.pl. [83.9.30.197]) by smtp.gmail.com with ESMTPSA id s13-20020a19ad4d000000b004f00189e1dcsm260200lfd.117.2023.06.24.05.23.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 24 Jun 2023 05:23:49 -0700 (PDT) From: Konrad Dybcio Date: Sat, 24 Jun 2023 14:23:47 +0200 Subject: [PATCH v2 3/3] firmware: qcom_scm: Drop useless compatibles MIME-Version: 1.0 Message-Id: <20230623-topic-scm_cleanup-v2-3-9db8c583138d@linaro.org> References: <20230623-topic-scm_cleanup-v2-0-9db8c583138d@linaro.org> In-Reply-To: <20230623-topic-scm_cleanup-v2-0-9db8c583138d@linaro.org> To: Andy Gross , Bjorn Andersson Cc: Marijn Suijten , 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=1687609426; l=1502; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=2851rppnMfhTFcDTpFWS0mg9wSl32exm/NRmmxF+T/w=; b=Qy3D0ksutlS9UBuf6hqlAIbaAbyXSeHcDCXBDPBTZYPkD2ERbRol6/AF6Z8ZTspgmJZHgNBjx x6ELhXKung9BQemO4xI9iX3W25RZf4QdqPkxrMs4VF+BTUIB7z+cHss X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org There are three categories of compatibles within the driver: 1. Ones which were introduced without a qcom,scm fallback 2. Ones which were introduced with a qcom,scm fallback 3. Ones which were defined but never used Keep 1 for backwards compatibility and axe 2 & 3. Signed-off-by: Konrad Dybcio --- drivers/firmware/qcom_scm.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c index b8398002205d..b6055b1c18d8 100644 --- a/drivers/firmware/qcom_scm.c +++ b/drivers/firmware/qcom_scm.c @@ -1478,20 +1478,15 @@ static void qcom_scm_shutdown(struct platform_device *pdev) } static const struct of_device_id qcom_scm_dt_match[] = { + { .compatible = "qcom,scm" }, + + /* Legacy entries kept for backwards compatibility */ { .compatible = "qcom,scm-apq8064" }, { .compatible = "qcom,scm-apq8084" }, { .compatible = "qcom,scm-ipq4019" }, - { .compatible = "qcom,scm-mdm9607" }, - { .compatible = "qcom,scm-msm8660" }, - { .compatible = "qcom,scm-msm8960" }, - { .compatible = "qcom,scm-msm8916" }, { .compatible = "qcom,scm-msm8953" }, { .compatible = "qcom,scm-msm8974" }, - { .compatible = "qcom,scm-msm8976" }, - { .compatible = "qcom,scm-msm8994" }, { .compatible = "qcom,scm-msm8996" }, - { .compatible = "qcom,scm-sm6375" }, - { .compatible = "qcom,scm" }, {} }; MODULE_DEVICE_TABLE(of, qcom_scm_dt_match);