Message ID | 20240429204519.1618-1-asmaa@nvidia.com (mailing list archive) |
---|---|
State | Handled Elsewhere, archived |
Headers | show |
Series | [v1,1/1] power: reset: pwr-mlxbf: support graceful shutdown | expand |
Hi,
On Mon, Apr 29, 2024 at 04:45:19PM -0400, Asmaa Mnebhi wrote:
> Replace the low power mode with a graceful shutdown.
That's a summary of what the code changes, but the commit
description is missing an important information. It's not
obvious why this change is needed. Especially considering
the past of this driver: It started with
reset => emergency reset
low power => poweroff HID event
Then got changed to
reset => reset HID event
low power => poweroff HID event
And now is further changed to
reset => reset HID event
low power => emergency poweroff
I don't think it's sensible to continue this ping pong, so please
properly describe what those IRQs are for and why further changes
are needed.
Greetings,
-- Sebastian
Just sent a new patch with a description. Thanks! Asmaa > -----Original Message----- > From: Sebastian Reichel <sebastian.reichel@collabora.com> > Sent: Wednesday, June 5, 2024 8:07 PM > To: Asmaa Mnebhi <asmaa@nvidia.com> > Cc: linux-pm@vger.kernel.org; linux-acpi@vger.kernel.org > Subject: Re: [PATCH v1 1/1] power: reset: pwr-mlxbf: support graceful > shutdown > > Hi, > > On Mon, Apr 29, 2024 at 04:45:19PM -0400, Asmaa Mnebhi wrote: > > Replace the low power mode with a graceful shutdown. > > That's a summary of what the code changes, but the commit description is > missing an important information. It's not obvious why this change is needed. > Especially considering the past of this driver: It started with > > reset => emergency reset > low power => poweroff HID event > > Then got changed to > > reset => reset HID event > low power => poweroff HID event > > And now is further changed to > > reset => reset HID event > low power => emergency poweroff > > I don't think it's sensible to continue this ping pong, so please properly > describe what those IRQs are for and why further changes are needed. > > Greetings, > > -- Sebastian
diff --git a/drivers/power/reset/pwr-mlxbf.c b/drivers/power/reset/pwr-mlxbf.c index 1775b318d0ef..4f1cd1c0018c 100644 --- a/drivers/power/reset/pwr-mlxbf.c +++ b/drivers/power/reset/pwr-mlxbf.c @@ -18,7 +18,6 @@ struct pwr_mlxbf { struct work_struct reboot_work; - struct work_struct shutdown_work; const char *hid; }; @@ -27,22 +26,17 @@ static void pwr_mlxbf_reboot_work(struct work_struct *work) acpi_bus_generate_netlink_event("button/reboot.*", "Reboot Button", 0x80, 1); } -static void pwr_mlxbf_shutdown_work(struct work_struct *work) -{ - acpi_bus_generate_netlink_event("button/power.*", "Power Button", 0x80, 1); -} - static irqreturn_t pwr_mlxbf_irq(int irq, void *ptr) { const char *rst_pwr_hid = "MLNXBF24"; - const char *low_pwr_hid = "MLNXBF29"; + const char *shutdown_hid = "MLNXBF29"; struct pwr_mlxbf *priv = ptr; if (!strncmp(priv->hid, rst_pwr_hid, 8)) schedule_work(&priv->reboot_work); - if (!strncmp(priv->hid, low_pwr_hid, 8)) - schedule_work(&priv->shutdown_work); + if (!strncmp(priv->hid, shutdown_hid, 8)) + orderly_poweroff(true); return IRQ_HANDLED; } @@ -70,10 +64,6 @@ static int pwr_mlxbf_probe(struct platform_device *pdev) if (irq < 0) return dev_err_probe(dev, irq, "Error getting %s irq.\n", priv->hid); - err = devm_work_autocancel(dev, &priv->shutdown_work, pwr_mlxbf_shutdown_work); - if (err) - return err; - err = devm_work_autocancel(dev, &priv->reboot_work, pwr_mlxbf_reboot_work); if (err) return err;
Replace the low power mode with a graceful shutdown. Signed-off-by: Asmaa Mnebhi <asmaa@nvidia.com> --- drivers/power/reset/pwr-mlxbf.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-)