diff mbox series

[v1,1/1] power: reset: pwr-mlxbf: support graceful shutdown

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

Commit Message

Asmaa Mnebhi April 29, 2024, 8:45 p.m. UTC
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(-)

Comments

Sebastian Reichel June 6, 2024, 12:07 a.m. UTC | #1
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
Asmaa Mnebhi June 11, 2024, 1:41 p.m. UTC | #2
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 mbox series

Patch

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;