RE: [PATCH v2 1/1] power: reset: pwr-mlxbf: support graceful shutdown

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Sebastian, 

Did you get a chance to review this second patch?

Thank you!
Asmaa

> -----Original Message-----
> From: Asmaa Mnebhi <asmaa@xxxxxxxxxx>
> Sent: Tuesday, June 11, 2024 9:43 AM
> To: sebastian.reichel@xxxxxxxxxxxxx; linux-pm@xxxxxxxxxxxxxxx; linux-
> acpi@xxxxxxxxxxxxxxx
> Cc: Asmaa Mnebhi <asmaa@xxxxxxxxxx>; David Thompson
> <davthompson@xxxxxxxxxx>
> 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@xxxxxxxxxx>
> Reviewed-by: David Thompson <davthompson@xxxxxxxxxx>
> ---
>  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






[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]
  Powered by Linux