From: Hans de Goede <hdegoede@redhat.com>
To: Marek Maslanka <mmaslanka@google.com>,
LKML <linux-kernel@vger.kernel.org>
Cc: "Daniel Lezcano" <daniel.lezcano@linaro.org>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Rajneesh Bhardwaj" <irenic.rajneesh@gmail.com>,
"David E Box" <david.e.box@intel.com>,
"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
platform-driver-x86@vger.kernel.org
Subject: Re: [PATCH v5 1/2] clocksource: acpi_pm: Add external callback for suspend/resume
Date: Mon, 12 Aug 2024 10:03:39 +0200 [thread overview]
Message-ID: <935e8c82-3c91-4c9a-8e43-e6045b28279d@redhat.com> (raw)
In-Reply-To: <20240812043741.3434744-1-mmaslanka@google.com>
Hi,
Thank you for your patch.
On 8/12/24 6:37 AM, Marek Maslanka wrote:
> Provides the capability to register an external callback for the ACPI PM
> timer, which is called during the suspend and resume processes.
>
> Signed-off-by: Marek Maslanka <mmaslanka@google.com>
>
> ---
> Changes in v5:
> - Rename acpi_pm_register_suspend_resume_callback to
> acpi_pmtmr_register_suspend_resume_callback and move prototype to
> include/linux/acpi_pmtmr.h
> - Remove the acpi_pm.h header added in the previous patch.
> - Link to v4: https://lore.kernel.org/lkml/20240809131343.1173369-1-mmaslanka@google.com/
> ---
> ---
> drivers/clocksource/acpi_pm.c | 24 ++++++++++++++++++++++++
> include/linux/acpi_pmtmr.h | 8 ++++++++
> 2 files changed, 32 insertions(+)
>
> diff --git a/drivers/clocksource/acpi_pm.c b/drivers/clocksource/acpi_pm.c
> index 82338773602ca..fab19b7de55c1 100644
> --- a/drivers/clocksource/acpi_pm.c
> +++ b/drivers/clocksource/acpi_pm.c
> @@ -25,6 +25,10 @@
> #include <asm/io.h>
> #include <asm/time.h>
>
> +static void *suspend_resume_cb_data;
> +
> +static void (*suspend_resume_callback)(void *data, bool suspend);
> +
> /*
> * The I/O port the PMTMR resides at.
> * The location is detected during setup_arch(),
> @@ -58,6 +62,24 @@ u32 acpi_pm_read_verified(void)
> return v2;
> }
>
> +void acpi_pmtmr_register_suspend_resume_callback(void (*cb)(void *data, bool suspend), void *data)
> +{
> + suspend_resume_callback = cb;
> + suspend_resume_cb_data = data;
> +}
The intel-pmc driver which is a consumer of this symbol can be build as
a module, so this needs a EXPORT_SYMBOL_GPL().
Also the pmc driver can be unbound from its device, or the entire
module can be removed, so this also needs an unregister function
to match, so that the pmc driver can unregister its callback
from pmc_core_remove().
Regards,
Hans
> +
> +static void acpi_pm_suspend(struct clocksource *cs)
> +{
> + if (suspend_resume_callback)
> + suspend_resume_callback(suspend_resume_cb_data, true);
> +}
> +
> +static void acpi_pm_resume(struct clocksource *cs)
> +{
> + if (suspend_resume_callback)
> + suspend_resume_callback(suspend_resume_cb_data, false);
> +}
> +
> static u64 acpi_pm_read(struct clocksource *cs)
> {
> return (u64)read_pmtmr();
> @@ -69,6 +91,8 @@ static struct clocksource clocksource_acpi_pm = {
> .read = acpi_pm_read,
> .mask = (u64)ACPI_PM_MASK,
> .flags = CLOCK_SOURCE_IS_CONTINUOUS,
> + .suspend = acpi_pm_suspend,
> + .resume = acpi_pm_resume,
> };
>
>
> diff --git a/include/linux/acpi_pmtmr.h b/include/linux/acpi_pmtmr.h
> index 50d88bf1498d7..a5262d28b97e0 100644
> --- a/include/linux/acpi_pmtmr.h
> +++ b/include/linux/acpi_pmtmr.h
> @@ -26,6 +26,14 @@ static inline u32 acpi_pm_read_early(void)
> return acpi_pm_read_verified() & ACPI_PM_MASK;
> }
>
> +/**
> + * Register callback for suspend and resume event
> + *
> + * @cb Callback triggered on suspend and resume
> + * @data Data passed with the callback
> + */
> +void acpi_pmtmr_register_suspend_resume_callback(void (*cb)(void *data, bool suspend), void *data);
> +
> #else
>
> static inline u32 acpi_pm_read_early(void)
next prev parent reply other threads:[~2024-08-12 8:03 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-01 22:25 [PATCH] platform/x86:intel/pmc: Enable the ACPI PM Timer to be turned off when suspended Marek Maslanka
2024-07-02 8:02 ` Hans de Goede
2024-07-02 22:41 ` Marek Maślanka
2024-07-03 11:38 ` [PATCH v2] " Marek Maslanka
2024-07-03 16:30 ` Rajneesh Bhardwaj
2024-07-11 15:34 ` David E. Box
2024-07-15 12:39 ` Marek Maślanka
2024-07-30 12:05 ` [PATCH v3] " Marek Maslanka
2024-07-30 12:57 ` Ilpo Järvinen
2024-07-30 16:08 ` Thomas Gleixner
2024-07-31 14:44 ` Marek Maślanka
2024-07-31 16:33 ` Thomas Gleixner
2024-07-31 21:41 ` Marek Maślanka
2024-07-31 21:46 ` Thomas Gleixner
2024-08-06 7:24 ` Ilpo Järvinen
2024-08-09 13:13 ` [PATCH v4 1/2] clocksource: acpi_pm: Add external callback for suspend/resume Marek Maslanka
2024-08-09 13:13 ` [PATCH v4 2/2] platform/x86:intel/pmc: Enable the ACPI PM Timer to be turned off when suspended Marek Maslanka
2024-08-09 16:36 ` Thomas Gleixner
2024-08-12 4:40 ` [PATCH v5 " Marek Maslanka
2024-08-12 7:49 ` Ilpo Järvinen
2024-08-12 18:42 ` [PATCH v6 " Marek Maslanka
2024-08-19 11:31 ` Hans de Goede
2024-09-06 18:56 ` [tip: timers/core] " tip-bot2 for Marek Maslanka
2024-08-09 19:15 ` [PATCH v4 1/2] clocksource: acpi_pm: Add external callback for suspend/resume Thomas Gleixner
2024-08-12 4:37 ` [PATCH v5 " Marek Maslanka
2024-08-12 8:03 ` Hans de Goede [this message]
2024-08-12 18:41 ` [PATCH v6 " Marek Maslanka
2024-08-19 11:31 ` Hans de Goede
2024-08-19 11:35 ` Hans de Goede
2024-08-19 18:31 ` Daniel Lezcano
2024-09-06 18:56 ` [tip: timers/core] " tip-bot2 for Marek Maslanka
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=935e8c82-3c91-4c9a-8e43-e6045b28279d@redhat.com \
--to=hdegoede@redhat.com \
--cc=daniel.lezcano@linaro.org \
--cc=david.e.box@intel.com \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=irenic.rajneesh@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mmaslanka@google.com \
--cc=platform-driver-x86@vger.kernel.org \
--cc=tglx@linutronix.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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®