[2/3] iio: adc: palmas_gpadc: remove adc_wakeupX_data

Message ID 20230319223908.108540-3-risca@dalakolonin.se
State New
Headers
Series iio: adc: palmas_gpadc: add iio events |

Commit Message

Patrik Dahlström March 19, 2023, 10:39 p.m. UTC
  It does not seem to be used by anyone and having two ways to configure
the same thing but for different use cases is bound to introduce bugs.
This removes the special use case and leaves the generic one. It's still
possible to achieve the same thing as before from userspace.

Signed-off-by: Patrik Dahlström <risca@dalakolonin.se>
---
 drivers/iio/adc/palmas_gpadc.c | 18 ------------------
 include/linux/mfd/palmas.h     |  2 --
 2 files changed, 20 deletions(-)
  

Comments

Jonathan Cameron March 26, 2023, 4:53 p.m. UTC | #1
On Sun, 19 Mar 2023 23:39:07 +0100
Patrik Dahlström <risca@dalakolonin.se> wrote:

> It does not seem to be used by anyone and having two ways to configure
> the same thing but for different use cases is bound to introduce bugs.
> This removes the special use case and leaves the generic one. It's still
> possible to achieve the same thing as before from userspace.

It wasn't possible to do it from userspace previously and there
is no way to turn it off without userspace having to explicitly disable events
before suspending.

We could look at adding a userspace control on whether wakeup is enabled.
However, I'd raise the question of does anyone care for this particular device
anymore.

As mentioned in patch 1 review, alternative is support either events or wakeup
configured at boot (if clever maybe allow for one of each combination as well).
That would keep to the old flows working and enable what you want.

Jonathan


> 
> Signed-off-by: Patrik Dahlström <risca@dalakolonin.se>
> ---
>  drivers/iio/adc/palmas_gpadc.c | 18 ------------------
>  include/linux/mfd/palmas.h     |  2 --
>  2 files changed, 20 deletions(-)
> 
> diff --git a/drivers/iio/adc/palmas_gpadc.c b/drivers/iio/adc/palmas_gpadc.c
> index 84c6e3b66205..419d7db51345 100644
> --- a/drivers/iio/adc/palmas_gpadc.c
> +++ b/drivers/iio/adc/palmas_gpadc.c
> @@ -948,18 +948,6 @@ static int palmas_gpadc_probe(struct platform_device *pdev)
>  				     "request auto1 irq %d failed\n",
>  				     adc->irq_auto_1);
>  
> -	if (gpadc_pdata->adc_wakeup1_data) {
> -		memcpy(&adc->wakeup1_data, gpadc_pdata->adc_wakeup1_data,
> -			sizeof(adc->wakeup1_data));
> -		adc->wakeup1_enable = true;
> -	}
> -
> -	if (gpadc_pdata->adc_wakeup2_data) {
> -		memcpy(&adc->wakeup2_data, gpadc_pdata->adc_wakeup2_data,
> -				sizeof(adc->wakeup2_data));
> -		adc->wakeup2_enable = true;
> -	}
> -
>  	adc->event0.channel = -1;
>  	adc->event0.direction = IIO_EV_DIR_NONE;
>  	adc->event1.channel = -1;
> @@ -1004,12 +992,6 @@ static int palmas_gpadc_probe(struct platform_device *pdev)
>  	}
>  
>  	device_set_wakeup_capable(&pdev->dev, 1);
> -	if (adc->wakeup1_enable || adc->wakeup2_enable) {
> -		ret = palmas_adc_wakeup_configure(adc);
> -		if (ret)
> -			return ret;
> -		device_wakeup_enable(&pdev->dev);
> -	}
>  	ret = devm_add_action_or_reset(&pdev->dev,
>  				       palmas_disable_wakeup,
>  				       adc);
> diff --git a/include/linux/mfd/palmas.h b/include/linux/mfd/palmas.h
> index 1e61c7e9f50d..dc79d5e2d680 100644
> --- a/include/linux/mfd/palmas.h
> +++ b/include/linux/mfd/palmas.h
> @@ -153,8 +153,6 @@ struct palmas_gpadc_platform_data {
>  	int start_polarity;
>  
>  	int auto_conversion_period_ms;
> -	struct palmas_adc_wakeup_property *adc_wakeup1_data;
> -	struct palmas_adc_wakeup_property *adc_wakeup2_data;
>  };
>  
>  struct palmas_reg_init {
  

Patch

diff --git a/drivers/iio/adc/palmas_gpadc.c b/drivers/iio/adc/palmas_gpadc.c
index 84c6e3b66205..419d7db51345 100644
--- a/drivers/iio/adc/palmas_gpadc.c
+++ b/drivers/iio/adc/palmas_gpadc.c
@@ -948,18 +948,6 @@  static int palmas_gpadc_probe(struct platform_device *pdev)
 				     "request auto1 irq %d failed\n",
 				     adc->irq_auto_1);
 
-	if (gpadc_pdata->adc_wakeup1_data) {
-		memcpy(&adc->wakeup1_data, gpadc_pdata->adc_wakeup1_data,
-			sizeof(adc->wakeup1_data));
-		adc->wakeup1_enable = true;
-	}
-
-	if (gpadc_pdata->adc_wakeup2_data) {
-		memcpy(&adc->wakeup2_data, gpadc_pdata->adc_wakeup2_data,
-				sizeof(adc->wakeup2_data));
-		adc->wakeup2_enable = true;
-	}
-
 	adc->event0.channel = -1;
 	adc->event0.direction = IIO_EV_DIR_NONE;
 	adc->event1.channel = -1;
@@ -1004,12 +992,6 @@  static int palmas_gpadc_probe(struct platform_device *pdev)
 	}
 
 	device_set_wakeup_capable(&pdev->dev, 1);
-	if (adc->wakeup1_enable || adc->wakeup2_enable) {
-		ret = palmas_adc_wakeup_configure(adc);
-		if (ret)
-			return ret;
-		device_wakeup_enable(&pdev->dev);
-	}
 	ret = devm_add_action_or_reset(&pdev->dev,
 				       palmas_disable_wakeup,
 				       adc);
diff --git a/include/linux/mfd/palmas.h b/include/linux/mfd/palmas.h
index 1e61c7e9f50d..dc79d5e2d680 100644
--- a/include/linux/mfd/palmas.h
+++ b/include/linux/mfd/palmas.h
@@ -153,8 +153,6 @@  struct palmas_gpadc_platform_data {
 	int start_polarity;
 
 	int auto_conversion_period_ms;
-	struct palmas_adc_wakeup_property *adc_wakeup1_data;
-	struct palmas_adc_wakeup_property *adc_wakeup2_data;
 };
 
 struct palmas_reg_init {