Message ID | 20240611134327.30975-1-asmaa@nvidia.com (mailing list archive) |
---|---|
State | Handled Elsewhere, archived |
Headers | show |
Series | [v2,1/1] power: reset: pwr-mlxbf: support graceful shutdown | expand |
Hi Sebastian, Did you get a chance to review this second patch? Thank you! Asmaa > -----Original Message----- > From: Asmaa Mnebhi <asmaa@nvidia.com> > Sent: Tuesday, June 11, 2024 9:43 AM > To: sebastian.reichel@collabora.com; linux-pm@vger.kernel.org; linux- > acpi@vger.kernel.org > Cc: Asmaa Mnebhi <asmaa@nvidia.com>; David Thompson > <davthompson@nvidia.com> > Subject: [PATCH v2 1/1] power: reset: pwr-mlxbf: support graceful shutdown > > The OCP board used a BlueField's GPIO pin for entering low power mode. > That board was not commercialized and has been dropped from production > so all its code is unused. > The new hardware requirement is to trigger a graceful shutdown when that > GPIO pin is toggled. So replace the unused low power mode with a graceful > shutdown. > > Signed-off-by: Asmaa Mnebhi <asmaa@nvidia.com> > Reviewed-by: David Thompson <davthompson@nvidia.com> > --- > drivers/power/reset/pwr-mlxbf.c | 16 +++------------- > 1 file changed, 3 insertions(+), 13 deletions(-) > > 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; > -- > 2.30.1
Hello, Kind reminder. Thank you. Asmaa > -----Original Message----- > From: Asmaa Mnebhi <asmaa@nvidia.com> > Sent: Friday, August 9, 2024 4:21 PM > To: sebastian.reichel@collabora.com; linux-pm@vger.kernel.org; linux- > acpi@vger.kernel.org > Cc: David Thompson <davthompson@nvidia.com> > Subject: RE: [PATCH v2 1/1] power: reset: pwr-mlxbf: support graceful > shutdown > > Hi Sebastian, > > Did you get a chance to review this second patch? > > Thank you! > Asmaa > > > -----Original Message----- > > From: Asmaa Mnebhi <asmaa@nvidia.com> > > Sent: Tuesday, June 11, 2024 9:43 AM > > To: sebastian.reichel@collabora.com; linux-pm@vger.kernel.org; linux- > > acpi@vger.kernel.org > > Cc: Asmaa Mnebhi <asmaa@nvidia.com>; David Thompson > > <davthompson@nvidia.com> > > Subject: [PATCH v2 1/1] power: reset: pwr-mlxbf: support graceful > > shutdown > > > > The OCP board used a BlueField's GPIO pin for entering low power mode. > > That board was not commercialized and has been dropped from > production > > so all its code is unused. > > The new hardware requirement is to trigger a graceful shutdown when > > that GPIO pin is toggled. So replace the unused low power mode with a > > graceful shutdown. > > > > Signed-off-by: Asmaa Mnebhi <asmaa@nvidia.com> > > Reviewed-by: David Thompson <davthompson@nvidia.com> > > --- > > drivers/power/reset/pwr-mlxbf.c | 16 +++------------- > > 1 file changed, 3 insertions(+), 13 deletions(-) > > > > 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; > > -- > > 2.30.1
On Tue, 11 Jun 2024 09:43:27 -0400, Asmaa Mnebhi wrote: > The OCP board used a BlueField's GPIO pin for entering > low power mode. That board was not commercialized and > has been dropped from production so all its code is unused. > The new hardware requirement is to trigger a graceful shutdown > when that GPIO pin is toggled. So replace the unused low power > mode with a graceful shutdown. > > [...] Applied, thanks! [1/1] power: reset: pwr-mlxbf: support graceful shutdown commit: 292fe42c34a9e9eea07f58a691813e077e9ca86f Best regards,
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;