From patchwork Thu Sep 5 22:02:50 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kevin Hilman X-Patchwork-Id: 13793012 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 566C0CE7A9F for ; Thu, 5 Sep 2024 22:05:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=sc6ykz7pAchdOMHhEbbrDf/awas5HhLjGMs4xS7f/rM=; b=TdNmh4GsTYQ+eSkRTqKOmVQfrW nLgPWw3hIdUe2j4bhjz2xpZBn4YkTcibON0T5JuwToXMf+HKvXtvIGMK0jNI1Rw215n34kSsVcLim 4dJcgIDuPayXkGgjAPDAav7kuWuZvdiWLgOijZtXPrS332CK3048N9dK4jaypekOylBA1fxd7mAmJ TrnFzCQxJ1V1jLt3WTP3AIgkHsEeWJI4B3uAiKs57oxgYDqKt62D8YyaarlrmTWseDgsg30Kq9nGO W+PoOnpMLmP2kibUlkyNa7ACz076jl3Yfql0ys/tLtwDApgI4d9lx9JI6iHV5wk6mFIrXvtXWRNVj o458d4gQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1smKbk-00000009xgX-3jXb; Thu, 05 Sep 2024 22:05:40 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1smKZq-00000009xOD-1mol for linux-arm-kernel@bombadil.infradead.org; Thu, 05 Sep 2024 22:03:42 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Cc:To:In-Reply-To:References: Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Sender:Reply-To:Content-ID:Content-Description; bh=sc6ykz7pAchdOMHhEbbrDf/awas5HhLjGMs4xS7f/rM=; b=lJ0ByPB18XCLrrVtRCxRI9ivgr FJnaHqMCG52E0iqtjCRGwbopL/tiyFjCaud5kv1urk/1HDDwYucPMWu0mAMnfS91wLLH8e+nXXt/K WcWZa7ig1G0GWoweotDL1IMumcIabr2xLUnKTHgOO7XCwyf2OeKjNDVM79ccMQCrG0IJc6B3lECYn gETPyUf8OihdVL5edZnIlB1vw+NtobSOm7wNz3dMC0oGmLCkKq4NqOJrnwA+vUFadylizFKNaVpMM dJzW+EAc5ZgVviRhQQoSd2CUxgFdY2GUqr8fFpYiqkOOcbELKY37cTW19fVI6zR0V+b97yxBsku6z sDCJP1fA==; Received: from mail-pf1-x435.google.com ([2607:f8b0:4864:20::435]) by desiato.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1smKZa-00000000YsH-3J5U for linux-arm-kernel@lists.infradead.org; Thu, 05 Sep 2024 22:03:40 +0000 Received: by mail-pf1-x435.google.com with SMTP id d2e1a72fcca58-70cec4aa1e4so954142b3a.1 for ; Thu, 05 Sep 2024 15:03:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1725573804; x=1726178604; darn=lists.infradead.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=sc6ykz7pAchdOMHhEbbrDf/awas5HhLjGMs4xS7f/rM=; b=M9PldPROKzhqMH8MCmv6QvTtkswZgmEWfc7XhBj1zvf2gQuRx5dahyQ+yVV0R7i7Ra 7cs+Ny7O8dTziUg+P9QSLtUfMpb2fKgQdfhjl5XjquotNX7mDMZEC5lJsi0bTgcU1vcD AD0kjIWpCHBsS37eHEGuwxpmQhvNK29JfqrcMteVoakDsaJ5G3X+bmCHldO9viUxsmYZ UaSPtM9wGEnjEEJmQTCQz4nJv2QBiL8Y3sp51wGCWw3Og1ky4hg/qhRP/S2MeZwYjPmV HgbxC7CEc/CYi39fg6LGA9bBp4mHNAj1ieAZzTUyUMpaw77XKimgRJm9v0op7TiruGU+ IjuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725573804; x=1726178604; 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=sc6ykz7pAchdOMHhEbbrDf/awas5HhLjGMs4xS7f/rM=; b=mlxmquNsbCLqmoelump8aawD7DKCcP39MhAxkVj+p+UQNNG582+rGJoyXccuCQcfL6 Ws6vIH7kQHyjol27GsAh/XBNP43hJYTv5kqzEBwuePuQUmXgAebbNQMEZWZ2bKYal4cB WGovjmluqF4O7arbiOMTZAOkH4PVloHTKCHMpfwuuRAYrBFeR7BD1nAeR437eST7jhgg XdfjivRGIeb5tXYaC+1Rr1vlnaa16o3ZVc6PVPGKo9kqec6tLkGgcn/4kl/v5J4FP4yz BkaHqfT6VjhOdHH7dlFAke+k5kygMtVJl8Bry7dBgTWeggb0fnjkfM9p9clFGPOeNx5j 06oQ== X-Forwarded-Encrypted: i=1; AJvYcCXLcR+r1EDK0z9ZjGPKEdSEFKcDK63m8hr1LOcSd5EJC6rS6C6SnYqhWUL1Z0fIajJIY3S7xDxc3ZSP4LGq8yNd@lists.infradead.org X-Gm-Message-State: AOJu0YwYD2/gv/oNwvew2gaf1L/UsphzsjD9sCOd7TGCrhxKQZPD/NoN ssn3UnzCKGy51NChjkxaDOYTUeHEBSPq81f1f9XnpU/+T86rj9nkPXWfn5/ZYP0= X-Google-Smtp-Source: AGHT+IHFrsZBGQdJYYGOPjjjAC19zc1JTjaAGcw/Wmj4frCMa9mnrDm/wtLkyPcB7KXhhAbpzOir+Q== X-Received: by 2002:a17:902:e54e:b0:206:c5cf:9721 with SMTP id d9443c01a7336-206c5cf99f7mr71822995ad.1.1725573803768; Thu, 05 Sep 2024 15:03:23 -0700 (PDT) Received: from localhost ([71.212.170.185]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-206ae913363sm33104195ad.6.2024.09.05.15.03.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Sep 2024 15:03:23 -0700 (PDT) From: Kevin Hilman Date: Thu, 05 Sep 2024 15:02:50 -0700 Subject: [PATCH v3 2/3] pmdomain: ti_sci: add wakeup constraint management MIME-Version: 1.0 Message-Id: <20240905-lpm-v6-10-constraints-pmdomain-v3-2-e359cbb39654@baylibre.com> References: <20240905-lpm-v6-10-constraints-pmdomain-v3-0-e359cbb39654@baylibre.com> In-Reply-To: <20240905-lpm-v6-10-constraints-pmdomain-v3-0-e359cbb39654@baylibre.com> To: Ulf Hansson , linux-pm@vger.kernel.org Cc: Nishanth Menon , Vibhore Vardhan , Dhruva Gole , Akashdeep Kaur , Sebin Francis , Markus Schneider-Pargmann , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1720; i=khilman@baylibre.com; h=from:subject:message-id; bh=swZQv+32F9CI/ZQkJsomr4F+HEjzkbq8crWIZokZMtI=; b=owEBbQKS/ZANAwAKAVk3GJrT+8ZlAcsmYgBm2iqpHOswXF88oDhZOs6DJGg50D+JNq/25gzHA NomnGVbc0eJAjMEAAEKAB0WIQR7h0YOFpJ/qfW/8QxZNxia0/vGZQUCZtoqqQAKCRBZNxia0/vG ZQZnD/sGt1adz0t+vhx0pzyqXNQn/9PwpwDm35NLi5FZQD8hwPalQ3gUqacez00E0OV3+61thCk 7Phdb0Ri5qPXZsghfFrqP2KKrvpq8lW831JPhsla1l1OrGEwl53d2YSSRBk4L+D1LGqxaIccO2e MqU+PJXkv+OnCOUMuWOP5bPKN6Z80Mlwb8ElGWeRRDJyFN1pH0BrgFhSi7+Ti52u2RZlJNHNVsU N2w33NNK2Icrvg1/NaSC8sZeipc0ywsu1ortTIrjRxcLyRuUqojHGqIKwBLzSR26PabjFvzNYOa QvDARWLaEnQNcNr1OaGE9lIrPnKufbxzJ544TaIsTHh0mv26/hKIyCPU17H4Uzkt2WSb8L0Ph0X aNyJPs58xLsSS+jTZ0P/jOEgmkPH3VWwVDhgirQ3kfd6ztnp0TsveG/WqTFH7lisLWYFw8Xs65G cifEprKq+NxRLXflwObxKynW6Wdq8jEBK6p9d9N23iz/7DyVlZwAo+r4jnnkmCrqpoXvA9A8E+V dD9MCCX04YR0WCrnnlLcoEIYtY+YObkpn8q5wnQhLquN1a729LUPxFCe041TPqORI9J0YylN7ca KHzSWhC4gjZ/p19Khaz8Dwzd5BA/5ltpEDjJVTyXfLQ8uD/J0mV+l/kCmBaiAZ+xDO1puT7I8z7 6Vx/0kQxtIPGBpA== X-Developer-Key: i=khilman@baylibre.com; a=openpgp; fpr=7B87460E16927FA9F5BFF10C5937189AD3FBC665 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240905_230334_537964_53973ED2 X-CRM114-Status: GOOD ( 14.10 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org During system-wide suspend, check all devices connected to PM domain to see if they are wakeup-enabled. If so, set a TI SCI device constraint. Note: DM firmware clears all constraints on resume. Co-developed-by: Vibhore Vardhan Signed-off-by: Vibhore Vardhan Signed-off-by: Kevin Hilman Signed-off-by: Dhruva Gole Reviewed-by: Ulf Hansson --- drivers/pmdomain/ti/ti_sci_pm_domains.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/drivers/pmdomain/ti/ti_sci_pm_domains.c b/drivers/pmdomain/ti/ti_sci_pm_domains.c index bb95c40ab3ea..1ab1e46924ab 100644 --- a/drivers/pmdomain/ti/ti_sci_pm_domains.c +++ b/drivers/pmdomain/ti/ti_sci_pm_domains.c @@ -74,6 +74,21 @@ static void ti_sci_pd_set_lat_constraint(struct device *dev, s32 val) pd->idx, val); } +static inline void ti_sci_pd_set_wkup_constraint(struct device *dev) +{ + struct generic_pm_domain *genpd = pd_to_genpd(dev->pm_domain); + struct ti_sci_pm_domain *pd = genpd_to_ti_sci_pd(genpd); + const struct ti_sci_handle *ti_sci = pd->parent->ti_sci; + int ret; + + if (device_may_wakeup(dev)) { + ret = ti_sci->ops.pm_ops.set_device_constraint(ti_sci, pd->idx, + TISCI_MSG_CONSTRAINT_SET); + if (!ret) + dev_dbg(dev, "ti_sci_pd: ID:%d set device constraint.\n", pd->idx); + } +} + /* * ti_sci_pd_power_off(): genpd power down hook * @domain: pointer to the powerdomain to power off @@ -115,6 +130,8 @@ static int ti_sci_pd_suspend(struct device *dev) if (ti_sci_pd_is_valid_constraint(val)) ti_sci_pd_set_lat_constraint(dev, val); + ti_sci_pd_set_wkup_constraint(dev); + return 0; }