From: Ulf Hansson <ulf.hansson@linaro.org> To: Wolfram Sang <wsa@the-dreams.de>, "Rafael J . Wysocki" <rjw@rjwysocki.net>, Len Brown <lenb@kernel.org>, linux-acpi@vger.kernel.org, linux-pm@vger.kernel.org Cc: Kevin Hilman <khilman@kernel.org>, Jarkko Nikula <jarkko.nikula@linux.intel.com>, Andy Shevchenko <andriy.shevchenko@linux.intel.com>, Mika Westerberg <mika.westerberg@linux.intel.com>, Jisheng Zhang <jszhang@marvell.com>, John Stultz <john.stultz@linaro.org>, Guodong Xu <guodong.xu@linaro.org>, Sumit Semwal <sumit.semwal@linaro.org>, Haojian Zhuang <haojian.zhuang@linaro.org>, linux-arm-kernel@lists.infradead.org, linux-i2c@vger.kernel.org, Ulf Hansson <ulf.hansson@linaro.org> Subject: [PATCH v2 0/9] PM / ACPI / i2c: Deploy runtime PM centric path for system sleep Date: Wed, 23 Aug 2017 16:42:00 +0200 [thread overview] Message-ID: <1503499329-28834-1-git-send-email-ulf.hansson@linaro.org> (raw) The i2c designware platform driver, drivers/i2c/busses/i2c-designware-platdrv.c, isn't well optimized for system sleep. What makes this driver particularly interesting is because it's a cross-SoC driver, which sometimes means there is an ACPI PM domain attached to the i2c device and sometimes not. The driver is being used on both x86 and ARM. In principle, to optimize the system sleep support in i2c driver, this series enables the proven runtime PM centric path for the i2c driver. However, to do that the ACPI PM domain also have to collaborate and understand this behaviour. Therefore a number of changes, patch 1 to patch 7, makes the needed changes to the ACPI PM domain. In patch8 and patch 9, the i2c driver gets optimized and is converted to the runtime PM centric path for system sleep. It shall be noted, the behaviour of the ACPI PM domain should remain intact, still taking benefit of using the direct_complete path during system sleep, except for those drivers that explicitly request it not to (via a new ACPI API added in this series). This series has been tested on an ARM64 Hikey board, which isn't having the i2c device attached to the ACPI PM domain. This means that the ACPI changes needs to be tested on some relevant Intel SoCs and it's greatly appreciated is someone could help out with this, so is of course review comments. Some news in v2: - The v1 contained a fix for the i2c driver, this has been sent separately [1] and picked up for fixes by Wolfram for v4.13-rcs. However the fix has not yet reached Linus' tree. The changes on i2c driver are based upon that change. - To simplify for testers, I have published a branch [2] based upon Rafael's pm tree and linux-next branch, which also includes the above patch. - Rephrased the coverletter to clarify the intent of this series. - Addressed review comments from v1. [1] http://patchwork.ozlabs.org/patch/799803/ [2] git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc.git acpi_pm_i2c_rpm_path_v2 Kind regards Ulf Hansson Ulf Hansson (9): PM / ACPI: Restore acpi_subsys_complete() PM / Sleep: Remove pm_complete_with_resume_check() PM / ACPI: Split code validating need for runtime resume in ->prepare() PM / ACPI: Split acpi_lpss_suspend_late|resume_early() PM / ACPI: Provide option to disable direct_complete for ACPI devices PM / ACPI: Enable the runtime PM centric approach for system sleep PM / ACPI: Avoid runtime resuming device in acpi_subsys_suspend|freeze() i2c: designware: Don't resume device in the ->complete() callback i2c: designware: Deploy the runtime PM centric approach for system sleep drivers/acpi/acpi_lpss.c | 81 +++++++++---- drivers/acpi/device_pm.c | 169 ++++++++++++++++++++++++---- drivers/base/power/generic_ops.c | 23 ---- drivers/i2c/busses/i2c-designware-platdrv.c | 35 +----- include/acpi/acpi_bus.h | 1 + include/linux/acpi.h | 4 + include/linux/pm.h | 1 - 7 files changed, 218 insertions(+), 96 deletions(-) -- 2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: ulf.hansson@linaro.org (Ulf Hansson) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v2 0/9] PM / ACPI / i2c: Deploy runtime PM centric path for system sleep Date: Wed, 23 Aug 2017 16:42:00 +0200 [thread overview] Message-ID: <1503499329-28834-1-git-send-email-ulf.hansson@linaro.org> (raw) The i2c designware platform driver, drivers/i2c/busses/i2c-designware-platdrv.c, isn't well optimized for system sleep. What makes this driver particularly interesting is because it's a cross-SoC driver, which sometimes means there is an ACPI PM domain attached to the i2c device and sometimes not. The driver is being used on both x86 and ARM. In principle, to optimize the system sleep support in i2c driver, this series enables the proven runtime PM centric path for the i2c driver. However, to do that the ACPI PM domain also have to collaborate and understand this behaviour. Therefore a number of changes, patch 1 to patch 7, makes the needed changes to the ACPI PM domain. In patch8 and patch 9, the i2c driver gets optimized and is converted to the runtime PM centric path for system sleep. It shall be noted, the behaviour of the ACPI PM domain should remain intact, still taking benefit of using the direct_complete path during system sleep, except for those drivers that explicitly request it not to (via a new ACPI API added in this series). This series has been tested on an ARM64 Hikey board, which isn't having the i2c device attached to the ACPI PM domain. This means that the ACPI changes needs to be tested on some relevant Intel SoCs and it's greatly appreciated is someone could help out with this, so is of course review comments. Some news in v2: - The v1 contained a fix for the i2c driver, this has been sent separately [1] and picked up for fixes by Wolfram for v4.13-rcs. However the fix has not yet reached Linus' tree. The changes on i2c driver are based upon that change. - To simplify for testers, I have published a branch [2] based upon Rafael's pm tree and linux-next branch, which also includes the above patch. - Rephrased the coverletter to clarify the intent of this series. - Addressed review comments from v1. [1] http://patchwork.ozlabs.org/patch/799803/ [2] git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc.git acpi_pm_i2c_rpm_path_v2 Kind regards Ulf Hansson Ulf Hansson (9): PM / ACPI: Restore acpi_subsys_complete() PM / Sleep: Remove pm_complete_with_resume_check() PM / ACPI: Split code validating need for runtime resume in ->prepare() PM / ACPI: Split acpi_lpss_suspend_late|resume_early() PM / ACPI: Provide option to disable direct_complete for ACPI devices PM / ACPI: Enable the runtime PM centric approach for system sleep PM / ACPI: Avoid runtime resuming device in acpi_subsys_suspend|freeze() i2c: designware: Don't resume device in the ->complete() callback i2c: designware: Deploy the runtime PM centric approach for system sleep drivers/acpi/acpi_lpss.c | 81 +++++++++---- drivers/acpi/device_pm.c | 169 ++++++++++++++++++++++++---- drivers/base/power/generic_ops.c | 23 ---- drivers/i2c/busses/i2c-designware-platdrv.c | 35 +----- include/acpi/acpi_bus.h | 1 + include/linux/acpi.h | 4 + include/linux/pm.h | 1 - 7 files changed, 218 insertions(+), 96 deletions(-) -- 2.7.4
next reply other threads:[~2017-08-23 14:42 UTC|newest] Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-08-23 14:42 Ulf Hansson [this message] 2017-08-23 14:42 ` [PATCH v2 0/9] PM / ACPI / i2c: Deploy runtime PM centric path for system sleep Ulf Hansson 2017-08-23 14:42 ` [PATCH v2 1/9] PM / ACPI: Restore acpi_subsys_complete() Ulf Hansson 2017-08-23 14:42 ` Ulf Hansson 2017-08-23 22:41 ` Rafael J. Wysocki 2017-08-23 22:41 ` Rafael J. Wysocki 2017-08-23 14:42 ` [PATCH v2 2/9] PM / Sleep: Remove pm_complete_with_resume_check() Ulf Hansson 2017-08-23 14:42 ` Ulf Hansson 2017-08-23 14:42 ` [PATCH v2 3/9] PM / ACPI: Split code validating need for runtime resume in ->prepare() Ulf Hansson 2017-08-23 14:42 ` Ulf Hansson 2017-08-23 14:42 ` [PATCH v2 4/9] PM / ACPI: Split acpi_lpss_suspend_late|resume_early() Ulf Hansson 2017-08-23 14:42 ` Ulf Hansson 2017-08-23 14:42 ` [PATCH v2 5/9] PM / ACPI: Provide option to disable direct_complete for ACPI devices Ulf Hansson 2017-08-23 14:42 ` Ulf Hansson 2017-08-23 23:39 ` Rafael J. Wysocki 2017-08-23 23:39 ` Rafael J. Wysocki 2017-08-24 0:13 ` Rafael J. Wysocki 2017-08-24 0:13 ` Rafael J. Wysocki 2017-08-24 0:20 ` Rafael J. Wysocki 2017-08-24 0:20 ` Rafael J. Wysocki 2017-08-24 1:03 ` Rafael J. Wysocki 2017-08-24 1:03 ` Rafael J. Wysocki 2017-08-24 9:15 ` Ulf Hansson 2017-08-24 9:15 ` Ulf Hansson 2017-08-24 16:35 ` Rafael J. Wysocki 2017-08-24 16:35 ` Rafael J. Wysocki 2017-08-24 21:50 ` Rafael J. Wysocki 2017-08-24 21:50 ` Rafael J. Wysocki 2017-08-25 13:42 ` Rafael J. Wysocki 2017-08-25 13:42 ` Rafael J. Wysocki 2017-08-28 1:30 ` Rafael J. Wysocki 2017-08-28 1:30 ` Rafael J. Wysocki 2017-08-28 8:31 ` Ulf Hansson 2017-08-28 8:31 ` Ulf Hansson 2017-08-28 12:39 ` Rafael J. Wysocki 2017-08-28 12:39 ` Rafael J. Wysocki 2017-08-28 12:54 ` Ulf Hansson 2017-08-28 12:54 ` Ulf Hansson 2017-08-28 13:40 ` Rafael J. Wysocki 2017-08-28 13:40 ` Rafael J. Wysocki 2017-08-28 14:24 ` Ulf Hansson 2017-08-28 14:24 ` Ulf Hansson 2017-08-28 21:14 ` Rafael J. Wysocki 2017-08-28 21:14 ` Rafael J. Wysocki 2017-08-25 9:28 ` Ulf Hansson 2017-08-25 9:28 ` Ulf Hansson 2017-08-25 12:23 ` Rafael J. Wysocki 2017-08-25 12:23 ` Rafael J. Wysocki 2017-08-24 8:19 ` Ulf Hansson 2017-08-24 8:19 ` Ulf Hansson 2017-08-24 14:57 ` Rafael J. Wysocki 2017-08-24 14:57 ` Rafael J. Wysocki 2017-08-25 9:04 ` Ulf Hansson 2017-08-25 9:04 ` Ulf Hansson 2017-08-23 14:42 ` [PATCH v2 6/9] PM / ACPI: Enable the runtime PM centric approach for system sleep Ulf Hansson 2017-08-23 14:42 ` Ulf Hansson 2017-08-23 14:42 ` [PATCH v2 7/9] PM / ACPI: Avoid runtime resuming device in acpi_subsys_suspend|freeze() Ulf Hansson 2017-08-23 14:42 ` Ulf Hansson 2017-08-23 14:42 ` [PATCH v2 8/9] i2c: designware: Don't resume device in the ->complete() callback Ulf Hansson 2017-08-23 14:42 ` Ulf Hansson 2017-08-23 14:42 ` [PATCH v2 9/9] i2c: designware: Deploy the runtime PM centric approach for system sleep Ulf Hansson 2017-08-23 14:42 ` Ulf Hansson 2017-08-25 14:10 ` [PATCH v2 0/9] PM / ACPI / i2c: Deploy runtime PM centric path " Jarkko Nikula 2017-08-25 14:10 ` Jarkko Nikula 2017-08-29 0:18 ` [PATCH 0/3] PM / ACPI / i2c: Runtime PM aware system sleep handling Rafael J. Wysocki 2017-08-29 0:18 ` Rafael J. Wysocki 2017-08-29 0:20 ` [PATCH 1/3] PM / core: Add SAFE_SUSPEND driver flag Rafael J. Wysocki 2017-08-29 0:20 ` Rafael J. Wysocki 2017-08-29 14:57 ` Ulf Hansson 2017-08-29 14:57 ` Ulf Hansson 2017-08-29 15:02 ` Rafael J. Wysocki 2017-08-29 15:02 ` Rafael J. Wysocki 2017-08-29 0:59 ` [PATCH 2/3] PM / ACPI: Use SAFE_SUSPEND in the generic ACPI PM domain Rafael J. Wysocki 2017-08-29 0:59 ` Rafael J. Wysocki 2017-08-29 0:59 ` [PATCH 3/3] PM: i2c-designware-platdrv: System sleep handling rework Rafael J. Wysocki 2017-08-29 0:59 ` Rafael J. Wysocki 2017-08-29 16:38 ` Rafael J. Wysocki 2017-08-29 16:38 ` Rafael J. Wysocki 2017-08-29 16:40 ` Rafael J. Wysocki 2017-08-29 16:40 ` Rafael J. Wysocki 2017-08-29 10:29 ` [PATCH 0/3] PM / ACPI / i2c: Runtime PM aware system sleep handling Johannes Stezenbach 2017-08-29 10:29 ` Johannes Stezenbach 2017-08-29 11:44 ` Ulf Hansson 2017-08-29 11:44 ` Ulf Hansson 2017-08-29 13:53 ` Johannes Stezenbach 2017-08-29 13:53 ` Johannes Stezenbach 2017-08-29 14:43 ` Rafael J. Wysocki 2017-08-29 14:43 ` Rafael J. Wysocki 2017-08-29 15:05 ` Ulf Hansson 2017-08-29 15:05 ` Ulf Hansson 2017-08-29 16:44 ` Rafael J. Wysocki 2017-08-29 16:44 ` Rafael J. Wysocki 2017-08-29 14:49 ` Rafael J. Wysocki 2017-08-29 14:49 ` Rafael J. Wysocki
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1503499329-28834-1-git-send-email-ulf.hansson@linaro.org \ --to=ulf.hansson@linaro.org \ --cc=andriy.shevchenko@linux.intel.com \ --cc=guodong.xu@linaro.org \ --cc=haojian.zhuang@linaro.org \ --cc=jarkko.nikula@linux.intel.com \ --cc=john.stultz@linaro.org \ --cc=jszhang@marvell.com \ --cc=khilman@kernel.org \ --cc=lenb@kernel.org \ --cc=linux-acpi@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-i2c@vger.kernel.org \ --cc=linux-pm@vger.kernel.org \ --cc=mika.westerberg@linux.intel.com \ --cc=rjw@rjwysocki.net \ --cc=sumit.semwal@linaro.org \ --cc=wsa@the-dreams.de \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.