Message ID | 20230319223908.108540-3-risca@dalakolonin.se (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Series | iio: adc: palmas_gpadc: add iio events | expand |
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 {
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 {
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(-)