From patchwork Tue Apr 30 15:06:11 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leonard Crestez X-Patchwork-Id: 10923777 X-Patchwork-Delegate: rjw@sisk.pl Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 63C2A933 for ; Tue, 30 Apr 2019 15:06:20 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 543CA285E8 for ; Tue, 30 Apr 2019 15:06:20 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 486E7288A9; Tue, 30 Apr 2019 15:06:20 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C6565285E8 for ; Tue, 30 Apr 2019 15:06:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726150AbfD3PGT (ORCPT ); Tue, 30 Apr 2019 11:06:19 -0400 Received: from mail-eopbgr50089.outbound.protection.outlook.com ([40.107.5.89]:30126 "EHLO EUR03-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725995AbfD3PGS (ORCPT ); Tue, 30 Apr 2019 11:06:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ig1Wrbhoin6EXNLkp5xNBfhV8s78xH9gLtnPEZMutrQ=; b=EsAuthXkizoIxqPHR5nj58R417bZ10F6nTSeNHjVU6ypx9iHnwsynoeuQY3kPhowIyb7gYpTQTC0vKAEk0BhVayL53M3RaPxOo2QM8re2cJC/C9KLXtnj5LMEpLxFTPPtST/5eZSQGLyikGaptHq+X7UK0x6y7YGdBJA67VYd1I= Received: from AM6PR04MB6440.eurprd04.prod.outlook.com (20.179.244.217) by AM6PR04MB5895.eurprd04.prod.outlook.com (20.179.3.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1856.10; Tue, 30 Apr 2019 15:06:11 +0000 Received: from AM6PR04MB6440.eurprd04.prod.outlook.com ([fe80::14c2:1e08:524c:6ff4]) by AM6PR04MB6440.eurprd04.prod.outlook.com ([fe80::14c2:1e08:524c:6ff4%2]) with mapi id 15.20.1856.008; Tue, 30 Apr 2019 15:06:11 +0000 From: Leonard Crestez To: Ulf Hansson , Lucas Stach , Shawn Guo CC: Aisheng Dong , Fabio Estevam , Viresh Kumar , "Rafael J. Wysocki" , "linux-pm@vger.kernel.org" , "kernel@pengutronix.de" , dl-linux-imx , "linux-arm-kernel@lists.infradead.org" Subject: [PATCH v5 1/2] PM / Domains: Add GENPD_FLAG_RPM_ALWAYS_ON flag Thread-Topic: [PATCH v5 1/2] PM / Domains: Add GENPD_FLAG_RPM_ALWAYS_ON flag Thread-Index: AQHU/2Y/h66odknpyEW0dAeBUTxZEg== Date: Tue, 30 Apr 2019 15:06:11 +0000 Message-ID: <30247a52be55c3cb31d16b8ac0710d3ad51eea09.1556636234.git.leonard.crestez@nxp.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [89.37.124.34] x-mailer: git-send-email 2.17.1 x-clientproxiedby: VI1PR0902CA0058.eurprd09.prod.outlook.com (2603:10a6:802:1::47) To AM6PR04MB6440.eurprd04.prod.outlook.com (2603:10a6:20b:f4::25) authentication-results: spf=none (sender IP is ) smtp.mailfrom=leonard.crestez@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c57fd939-aadd-4ef0-70ed-08d6cd7d61ac x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(4618075)(2017052603328)(7193020);SRVR:AM6PR04MB5895; x-ms-traffictypediagnostic: AM6PR04MB5895: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:5516; x-forefront-prvs: 00235A1EEF x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(396003)(136003)(376002)(366004)(346002)(39860400002)(199004)(189003)(8936002)(81156014)(25786009)(81166006)(8676002)(6486002)(36756003)(478600001)(52116002)(6116002)(68736007)(3846002)(4326008)(2906002)(186003)(305945005)(102836004)(53936002)(26005)(386003)(476003)(7736002)(2616005)(486006)(11346002)(44832011)(73956011)(76176011)(6512007)(6436002)(50226002)(6506007)(64756008)(66556008)(66446008)(66476007)(66946007)(71190400001)(14444005)(256004)(446003)(71200400001)(110136005)(54906003)(97736004)(99286004)(5660300002)(118296001)(14454004)(66066001)(316002)(86362001);DIR:OUT;SFP:1101;SCL:1;SRVR:AM6PR04MB5895;H:AM6PR04MB6440.eurprd04.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: +KgWLs9wjNSvj3YeU79N8EjI9BcArJgCBSyS/65m/JZ7afHF+OYsWBYXCH0AkseGzq7b64AToMGocxGllIWOSe8djPWX1zogtjrWP7ozmJX6gmNMCTlAeJCdOdjTC2T033hxzkYC4YKMeo8Bu2ADKUGGwzCqgDjBlEPJIxOTxDLbetA7WVs3sZxk6JiPzOD+dgp0WyIAxCAiFPwePk/lCNXnkcuX8FWApFeMbSjQj9oT/uxrIFJCXE/0UqYXyURRBXFP+tbLc1CH7bDmKR9Ea2jG0/q0+lO8XB9Lbm5VNqS4K8aGts7enetn0stfvJRTwfXAV6glZnr0B2nvW4i7/zWO+FUD0qw/FUNuSF3jv7oLhp/R629rGIods1811lco/IvSvFDfxdl4+qqTiE+rYpzQVe3v3zJkLLJy7kOvS50= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: c57fd939-aadd-4ef0-70ed-08d6cd7d61ac X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Apr 2019 15:06:11.5252 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB5895 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This is for power domains which can only be powered off for suspend but not as part of runtime PM. Suggested-by: Ulf Hansson Signed-off-by: Leonard Crestez Reviewed-by: Ulf Hansson --- drivers/base/power/domain.c | 8 ++++++-- include/linux/pm_domain.h | 4 ++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c index 7a6aa2318915..33c30c1e6a30 100644 --- a/drivers/base/power/domain.c +++ b/drivers/base/power/domain.c @@ -126,10 +126,11 @@ static const struct genpd_lock_ops genpd_spin_ops = { #define genpd_status_on(genpd) (genpd->status == GPD_STATE_ACTIVE) #define genpd_is_irq_safe(genpd) (genpd->flags & GENPD_FLAG_IRQ_SAFE) #define genpd_is_always_on(genpd) (genpd->flags & GENPD_FLAG_ALWAYS_ON) #define genpd_is_active_wakeup(genpd) (genpd->flags & GENPD_FLAG_ACTIVE_WAKEUP) #define genpd_is_cpu_domain(genpd) (genpd->flags & GENPD_FLAG_CPU_DOMAIN) +#define genpd_is_rpm_always_on(genpd) (genpd->flags & GENPD_FLAG_RPM_ALWAYS_ON) static inline bool irq_safe_dev_in_no_sleep_domain(struct device *dev, const struct generic_pm_domain *genpd) { bool ret; @@ -513,11 +514,13 @@ static int genpd_power_off(struct generic_pm_domain *genpd, bool one_dev_on, /* * Abort power off for the PM domain in the following situations: * (1) The domain is configured as always on. * (2) When the domain has a subdomain being powered on. */ - if (genpd_is_always_on(genpd) || atomic_read(&genpd->sd_count) > 0) + if (genpd_is_always_on(genpd) || + genpd_is_rpm_always_on(genpd) || + atomic_read(&genpd->sd_count) > 0) return -EBUSY; list_for_each_entry(pdd, &genpd->dev_list, list_node) { enum pm_qos_flags_status stat; @@ -1810,11 +1813,12 @@ int pm_genpd_init(struct generic_pm_domain *genpd, genpd->dev_ops.stop = pm_clk_suspend; genpd->dev_ops.start = pm_clk_resume; } /* Always-on domains must be powered on at initialization. */ - if (genpd_is_always_on(genpd) && !genpd_status_on(genpd)) + if ((genpd_is_always_on(genpd) || genpd_is_rpm_always_on(genpd)) && + !genpd_status_on(genpd)) return -EINVAL; if (genpd_is_cpu_domain(genpd) && !zalloc_cpumask_var(&genpd->cpus, GFP_KERNEL)) return -ENOMEM; diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h index 0e8e356bed6a..b21f35f0ee2e 100644 --- a/include/linux/pm_domain.h +++ b/include/linux/pm_domain.h @@ -51,16 +51,20 @@ * deploy idle power management support for CPUs * and groups of CPUs. Note that, the backend * driver must then comply with the so called, * last-man-standing algorithm, for the CPUs in the * PM domain. + * + * GENPD_FLAG_RPM_ALWAYS_ON: Instructs genpd to always keep the PM domain + * powered on except for system suspend. */ #define GENPD_FLAG_PM_CLK (1U << 0) #define GENPD_FLAG_IRQ_SAFE (1U << 1) #define GENPD_FLAG_ALWAYS_ON (1U << 2) #define GENPD_FLAG_ACTIVE_WAKEUP (1U << 3) #define GENPD_FLAG_CPU_DOMAIN (1U << 4) +#define GENPD_FLAG_RPM_ALWAYS_ON (1U << 5) enum gpd_status { GPD_STATE_ACTIVE = 0, /* PM domain is active */ GPD_STATE_POWER_OFF, /* PM domain is off */ }; From patchwork Tue Apr 30 15:06:12 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leonard Crestez X-Patchwork-Id: 10923775 X-Patchwork-Delegate: rjw@sisk.pl Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 40D3F92A for ; Tue, 30 Apr 2019 15:06:17 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2FC96285E8 for ; Tue, 30 Apr 2019 15:06:17 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 22A98288A9; Tue, 30 Apr 2019 15:06:17 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C15EE285E8 for ; Tue, 30 Apr 2019 15:06:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726048AbfD3PGQ (ORCPT ); Tue, 30 Apr 2019 11:06:16 -0400 Received: from mail-eopbgr130043.outbound.protection.outlook.com ([40.107.13.43]:54787 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726006AbfD3PGQ (ORCPT ); Tue, 30 Apr 2019 11:06:16 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qCyXE2v0gaGjYZIuzW3baa0FKPpsncWzwhLAVdtmFlM=; b=Nnj7Nrxe5vJgrYIDfMOiYaavkMREGMOt8rX2bm1Y/yiy8ATDw5QpcLoPi6bftHJuIeeGxsBOz2sCneZrkdlvQBv4By9c6GuWYTAihrO6dWG4PNUDtYTX6MQn6W9LtMi1Ry0dxrMjgIWVnbhS6NYK5Cgrhfhzw6Qt68QmU31MAN0= Received: from AM6PR04MB6440.eurprd04.prod.outlook.com (20.179.244.217) by AM6PR04MB5478.eurprd04.prod.outlook.com (20.178.93.158) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1856.10; Tue, 30 Apr 2019 15:06:12 +0000 Received: from AM6PR04MB6440.eurprd04.prod.outlook.com ([fe80::14c2:1e08:524c:6ff4]) by AM6PR04MB6440.eurprd04.prod.outlook.com ([fe80::14c2:1e08:524c:6ff4%2]) with mapi id 15.20.1856.008; Tue, 30 Apr 2019 15:06:12 +0000 From: Leonard Crestez To: Ulf Hansson , Lucas Stach , Shawn Guo CC: Aisheng Dong , Fabio Estevam , Viresh Kumar , "Rafael J. Wysocki" , "linux-pm@vger.kernel.org" , "kernel@pengutronix.de" , dl-linux-imx , "linux-arm-kernel@lists.infradead.org" Subject: [PATCH v5 2/2] soc: imx: gpc: Use GENPD_FLAG_RPM_ALWAYS_ON for ERR009619 Thread-Topic: [PATCH v5 2/2] soc: imx: gpc: Use GENPD_FLAG_RPM_ALWAYS_ON for ERR009619 Thread-Index: AQHU/2Y/OY5ccvekDkmJRXHYA33jSA== Date: Tue, 30 Apr 2019 15:06:12 +0000 Message-ID: <8f53bef00e72aa35d146210bb71ca05b8a3af141.1556636234.git.leonard.crestez@nxp.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [89.37.124.34] x-mailer: git-send-email 2.17.1 x-clientproxiedby: VI1PR0902CA0058.eurprd09.prod.outlook.com (2603:10a6:802:1::47) To AM6PR04MB6440.eurprd04.prod.outlook.com (2603:10a6:20b:f4::25) authentication-results: spf=none (sender IP is ) smtp.mailfrom=leonard.crestez@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 2aa435b3-0c2e-4f36-fd1c-08d6cd7d6239 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(4618075)(2017052603328)(7193020);SRVR:AM6PR04MB5478; x-ms-traffictypediagnostic: AM6PR04MB5478: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-forefront-prvs: 00235A1EEF x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(396003)(376002)(346002)(136003)(39860400002)(366004)(199004)(189003)(8936002)(6116002)(50226002)(81156014)(3846002)(81166006)(8676002)(66446008)(4326008)(25786009)(64756008)(66476007)(66556008)(6512007)(73956011)(2906002)(66066001)(86362001)(66946007)(52116002)(53936002)(118296001)(36756003)(99286004)(316002)(110136005)(54906003)(7736002)(44832011)(305945005)(97736004)(14444005)(6506007)(386003)(102836004)(26005)(11346002)(186003)(446003)(256004)(486006)(476003)(6436002)(5660300002)(6486002)(14454004)(478600001)(71200400001)(71190400001)(68736007)(76176011)(2616005);DIR:OUT;SFP:1101;SCL:1;SRVR:AM6PR04MB5478;H:AM6PR04MB6440.eurprd04.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: A8KeZJb3yRx9e626m8wGmurcZ4NXukO23oGR5KNBr9mhzDpkZLrukHYCKVDQqaVEBjoqPiS+wfeFelRBnJMWSvabjsc/qHzjeC0uOgRvLVL6LJ4ofC209nTfRhEn19vOEyh5GWG5XoNfAylgO0TdLhf6lQSkOuwEJ1PQsEpVk4yc6kjHlQHuNlyM+Sb54JbGjKIqyvy+wyvUoDE2IJG8CxoiL6SNC+r2a986F0zjzBRtLaqxIMV785c878KDaDflFgXO1qI/+90N7kNObXSAM8FWNN6FyDv/lPC11FlrxbCGEa1kZNfu9RRgSY57PL2I5fYTiF5jfoDD3ajwPFbb22o917+aI75YRMaEBSvpQ1EVcqSVIXTEwb/dEAIsPQCKvoxSiRxgpNHfH0AelEkp+vUjXEwcbpTWI/Q/iIPPW48= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2aa435b3-0c2e-4f36-fd1c-08d6cd7d6239 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Apr 2019 15:06:12.4839 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB5478 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This allows PU domain to be turned off in suspend and save power. Signed-off-by: Leonard Crestez Reviewed-by: Ulf Hansson --- drivers/soc/imx/gpc.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/soc/imx/gpc.c b/drivers/soc/imx/gpc.c index a8f1e47ce698..d9231bd3c691 100644 --- a/drivers/soc/imx/gpc.c +++ b/drivers/soc/imx/gpc.c @@ -427,14 +427,23 @@ static int imx_gpc_probe(struct platform_device *pdev) dev_err(&pdev->dev, "failed to init regmap: %d\n", ret); return ret; } - /* Disable PU power down in normal operation if ERR009619 is present */ + /* + * Disable PU power down by runtime PM if ERR009619 is present. + * + * The PRE clock will be paused for several cycles when turning on the + * PU domain LDO from power down state. If PRE is in use at that time, + * the IPU/PRG cannot get the correct display data from the PRE. + * + * This is not a concern when the whole system enters suspend state, so + * it's safe to power down PU in this case. + */ if (of_id_data->err009619_present) imx_gpc_domains[GPC_PGC_DOMAIN_PU].base.flags |= - GENPD_FLAG_ALWAYS_ON; + GENPD_FLAG_RPM_ALWAYS_ON; /* Keep DISP always on if ERR006287 is present */ if (of_id_data->err006287_present) imx_gpc_domains[GPC_PGC_DOMAIN_DISPLAY].base.flags |= GENPD_FLAG_ALWAYS_ON;