Re: [PATCH 2/3] iio: adc: palmas_gpadc: remove adc_wakeupX_data
From: Jonathan Cameron
Date: Sun Mar 26 2023 - 12:38:57 EST
On Sun, 19 Mar 2023 23:39:07 +0100
Patrik Dahlström <risca@xxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxx>
> ---
> 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 {