Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4747410pxj; Tue, 22 Jun 2021 07:13:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy994aV2UGaQGpSpde1mk4T5SKtQYFMIjzC2wgKruaHBOgQZz7vdPpErJ2W4dJrLWL8/fXM X-Received: by 2002:a17:906:3006:: with SMTP id 6mr4330019ejz.73.1624371183928; Tue, 22 Jun 2021 07:13:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1624371183; cv=none; d=google.com; s=arc-20160816; b=XqBwpvkPjplYculXXpD4FAraI4dXMZAlTH3zJKkPhh8S5CcQ0K5a04fOu7mOYWTVGJ yJAKgQx+1Dch7B4gRF3W3dp0aiOR3n8cgHPEMhNHcFXb8hC6XTs3I9zuF/APILDzdIRF PkgMWZTdZyqAU+cofJbFuts+7rJ/aE+hPgKG+oyIIaPfWKY6iAMqn9Dgd/Zfqv2XhCly coIRezrduaToULmgkikB75VmoMRsJfyXhkhekldEXdN1mPfKLuCRgB1akBcAgNt4hsoQ 4fjCkC3qLCqcSitszpntEsuW0ZuHC5VIVYu2a7Lm34SuZb7r5tMaj9mVUfkbVzYcccK2 ycQw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=X3poTWU2xb7nDsJBkixJJc+7RCqRZI0MjRel3tVVJ6s=; b=j8PM/8G2YfgGEWEX5nnuNYyla1pwUqSL+n3NkGR2Mx4IG94OdSZXE+2ASZlI78mlP0 Fa8y4Nk0HBIZBieEp0SNmh/g0Vn8o1B5ZqVSbtUOA/rcc+IkshBSEJmIJClct5Z/MmSN rzHdvE+BfDBrMVIYFxlZuOu7zpFzmiNeDDYgOq0TUiO1I6uu1IfrndHFdqIgyzv9QQED rG/L5jzD2ssGNzYOBVW7fEmZIFf3oXRLUCOS5WxuW1Wkh3uGn4T8ZOap9A1V/UtoPOXU Mfd9REouZhSNRMNxoY4xyMGKCM5oloDYdov7LH+I4/DNsRUSgOz79GrYhlP9TZR69xFa 8A0A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d22si9058268edp.25.2021.06.22.07.12.32; Tue, 22 Jun 2021 07:13:03 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231489AbhFVONs (ORCPT + 99 others); Tue, 22 Jun 2021 10:13:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41338 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231536AbhFVONq (ORCPT ); Tue, 22 Jun 2021 10:13:46 -0400 Received: from relay01.th.seeweb.it (relay01.th.seeweb.it [IPv6:2001:4b7a:2000:18::162]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A273EC06175F for ; Tue, 22 Jun 2021 07:11:28 -0700 (PDT) Received: from IcarusMOD.eternityproject.eu (unknown [2.237.20.237]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by m-r1.th.seeweb.it (Postfix) with ESMTPSA id 1E9991F9C8; Tue, 22 Jun 2021 16:11:26 +0200 (CEST) From: AngeloGioacchino Del Regno To: bjorn.andersson@linaro.org Cc: agross@kernel.org, daniel.lezcano@linaro.org, rjw@rjwysocki.net, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-arm-msm@vger.kernel.org, phone-devel@vger.kernel.org, konrad.dybcio@somainline.org, marijn.suijten@somainline.org, martin.botka@somainline.org, jeffrey.l.hugo@gmail.com, jami.kettunen@somainline.org, ~postmarketos/upstreaming@lists.sr.ht, devicetree@vger.kernel.org, robh+dt@kernel.org, stephan@gerhold.net, AngeloGioacchino Del Regno Subject: [PATCH v7 0/5] Implement SPM/SAW for MSM8998 and SDM6xx Date: Tue, 22 Jun 2021 16:11:12 +0200 Message-Id: <20210622141117.358893-1-angelogioacchino.delregno@somainline.org> X-Mailer: git-send-email 2.32.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Changes in v7: - Fixed functionality breakage on ARM for cpuidle-qcom-spm... now it works :)) - Reworded description of patch 1/5 Changes in v6: - Moved cpuidle_driver to be private to cpuidle-qcom-spm (unused in spm.c), now we are assigning the cpuidle_driver structure fields inside of the spm_cpuidle_register function; this also fixes the cpumask assignment issue from v5 - Fixed another contamination from 2/3 in 1/3 (argh!! :]) - Added dt-bindings documentation for the SPM driver Changes in v5: - Fixed contamination from patch 2/3 in patch 1/3 - Fixed missing bits in cpuidle-qcom-spm (thanks Stephan) Changes in v4: - Huge patch series has been split for better reviewability, as suggested by Bjorn Changes in v3: - Rebased (no changes - was in previous series' v3) Changes in v2: - Fixed MSM8998 SAW parameters on SPM driver Tested on the following smartphones: - Sony Xperia XA2 (SDM630) - Sony Xperia XA2 Ultra (SDM630) - Sony Xperia 10 (SDM630) - Sony Xperia XZ Premium (MSM8998) - F(x)Tec Pro 1 (MSM8998) This is a component that we can find on very old chips, like MSM8974; there, it has been used to actually do the power scaling basically "on its own" - sending the cores in a specific sleep mode to save power. On the newer ones, including MSM8998, SDM630, 660 and others, it is still present! Though, this time, it's being used for the cluster caches and it has a different firmware (and maybe it's also slightly different HW), implementing the SAWv4.1 set and getting controlled *not by the OS* but by other controllers in the SoC (like the OSM). Contrary from MSM8974 and the like, this new version of the SPM just requires us to set the initial parameters for AVS and *nothing else*, as its states will be totally managed internally. AngeloGioacchino Del Regno (5): cpuidle: qcom_spm: Detach state machine from main SPM handling dt-bindings: soc: qcom: Add devicetree binding for QCOM SPM soc: qcom: spm: Implement support for SAWv4.1, SDM630/660 L2 AVS soc: qcom: spm: Add compatible for MSM8998 SAWv4.1 L2 dt-bindings: soc: qcom: spm: Document SDM660 and MSM8998 compatibles .../bindings/soc/qcom/qcom,spm.yaml | 76 +++++ drivers/cpuidle/Kconfig.arm | 1 + drivers/cpuidle/cpuidle-qcom-spm.c | 304 ++++-------------- drivers/soc/qcom/Kconfig | 9 + drivers/soc/qcom/Makefile | 1 + drivers/soc/qcom/spm.c | 240 ++++++++++++++ include/soc/qcom/spm.h | 43 +++ 7 files changed, 438 insertions(+), 236 deletions(-) create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,spm.yaml create mode 100644 drivers/soc/qcom/spm.c create mode 100644 include/soc/qcom/spm.h -- 2.32.0