[PATCH] platform/x86: yogabook: use assign_bit()/change_bit() where applicable

Peng Fan (OSS) posted 1 patch 5 days, 8 hours ago
drivers/platform/x86/lenovo/yogabook.c | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)
[PATCH] platform/x86: yogabook: use assign_bit()/change_bit() where applicable
Posted by Peng Fan (OSS) 5 days, 8 hours ago
From: Peng Fan <peng.fan@nxp.com>

Convert open-coded if/else with set_bit/clear_bit to the assign_bit and
change_bit APIs.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
 drivers/platform/x86/lenovo/yogabook.c | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/drivers/platform/x86/lenovo/yogabook.c b/drivers/platform/x86/lenovo/yogabook.c
index 1a4b2ab1f35d..f4c99508c6e7 100644
--- a/drivers/platform/x86/lenovo/yogabook.c
+++ b/drivers/platform/x86/lenovo/yogabook.c
@@ -120,10 +120,7 @@ static void yogabook_toggle_digitizer_mode(struct yogabook_data *data)
 	if (test_bit(YB_SUSPENDED, &data->flags))
 		return;
 
-	if (test_bit(YB_DIGITIZER_MODE, &data->flags))
-		clear_bit(YB_DIGITIZER_MODE, &data->flags);
-	else
-		set_bit(YB_DIGITIZER_MODE, &data->flags);
+	change_bit(YB_DIGITIZER_MODE, &data->flags);
 
 	/*
 	 * We are called from the ACPI core and the driver [un]binding which is
@@ -136,10 +133,8 @@ static irqreturn_t yogabook_backside_hall_irq(int irq, void *_data)
 {
 	struct yogabook_data *data = _data;
 
-	if (gpiod_get_value(data->backside_hall_gpio))
-		set_bit(YB_TABLET_MODE, &data->flags);
-	else
-		clear_bit(YB_TABLET_MODE, &data->flags);
+	assign_bit(YB_TABLET_MODE, &data->flags,
+		   gpiod_get_value(data->backside_hall_gpio));
 
 	schedule_work(&data->work);
 
-- 
2.51.0
Re: [PATCH] platform/x86: yogabook: use assign_bit()/change_bit() where applicable
Posted by Mark Pearson 2 days, 3 hours ago
On Sat, Sep 19, 2026, at 9:08 AM, Peng Fan (OSS) wrote:
> From: Peng Fan <peng.fan@nxp.com>
>
> Convert open-coded if/else with set_bit/clear_bit to the assign_bit and
> change_bit APIs.
>
> Signed-off-by: Peng Fan <peng.fan@nxp.com>
> ---
>  drivers/platform/x86/lenovo/yogabook.c | 11 +++--------
>  1 file changed, 3 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/platform/x86/lenovo/yogabook.c 
> b/drivers/platform/x86/lenovo/yogabook.c
> index 1a4b2ab1f35d..f4c99508c6e7 100644
> --- a/drivers/platform/x86/lenovo/yogabook.c
> +++ b/drivers/platform/x86/lenovo/yogabook.c
> @@ -120,10 +120,7 @@ static void yogabook_toggle_digitizer_mode(struct 
> yogabook_data *data)
>  	if (test_bit(YB_SUSPENDED, &data->flags))
>  		return;
> 
> -	if (test_bit(YB_DIGITIZER_MODE, &data->flags))
> -		clear_bit(YB_DIGITIZER_MODE, &data->flags);
> -	else
> -		set_bit(YB_DIGITIZER_MODE, &data->flags);
> +	change_bit(YB_DIGITIZER_MODE, &data->flags);
> 
>  	/*
>  	 * We are called from the ACPI core and the driver [un]binding which 
> is
> @@ -136,10 +133,8 @@ static irqreturn_t yogabook_backside_hall_irq(int 
> irq, void *_data)
>  {
>  	struct yogabook_data *data = _data;
> 
> -	if (gpiod_get_value(data->backside_hall_gpio))
> -		set_bit(YB_TABLET_MODE, &data->flags);
> -	else
> -		clear_bit(YB_TABLET_MODE, &data->flags);
> +	assign_bit(YB_TABLET_MODE, &data->flags,
> +		   gpiod_get_value(data->backside_hall_gpio));
> 
>  	schedule_work(&data->work);
> 
> -- 
> 2.51.0

Looks good to me.
Reviewed-by: Mark Pearson <mpearson-lenovo@squebb.ca>

Mark