From: Claudiu Beznea <claudiu.beznea@microchip.com> To: <eugen.hristev@microchip.com>, <jic23@kernel.org>, <lars@metafoo.de>, <nicolas.ferre@microchip.com>, <alexandre.belloni@bootlin.com>, <ludovic.desroches@microchip.com>, <robh+dt@kernel.org> Cc: <linux-iio@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>, <devicetree@vger.kernel.org>, Claudiu Beznea <claudiu.beznea@microchip.com> Subject: [PATCH v3 04/19] iio: adc: at91-sama5d2_adc: disable/prepare buffer on suspend/resume Date: Wed, 3 Aug 2022 13:28:40 +0300 [thread overview] Message-ID: <20220803102855.2191070-5-claudiu.beznea@microchip.com> (raw) In-Reply-To: <20220803102855.2191070-1-claudiu.beznea@microchip.com> In case triggered buffers are enabled while system is suspended they will not work anymore after resume. For this call at91_adc_buffer_postdisable() on suspend and at91_adc_buffer_prepare() on resume. On tests it has been seen that at91_adc_buffer_postdisable() call is not necessary but it has been kept because it also does the book keeping for DMA. On resume path there is no need to call at91_adc_configure_touch() as it is embedded in at91_adc_buffer_prepare(). Fixes: 073c662017f2f ("iio: adc: at91-sama5d2_adc: add support for DMA") Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com> --- drivers/iio/adc/at91-sama5d2_adc.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/iio/adc/at91-sama5d2_adc.c b/drivers/iio/adc/at91-sama5d2_adc.c index 3734ddc82952..e2c82c5a2fac 100644 --- a/drivers/iio/adc/at91-sama5d2_adc.c +++ b/drivers/iio/adc/at91-sama5d2_adc.c @@ -2116,6 +2116,9 @@ static int at91_adc_suspend(struct device *dev) struct iio_dev *indio_dev = dev_get_drvdata(dev); struct at91_adc_state *st = iio_priv(indio_dev); + if (iio_buffer_enabled(indio_dev)) + at91_adc_buffer_postdisable(indio_dev); + /* * Do a sofware reset of the ADC before we go to suspend. * this will ensure that all pins are free from being muxed by the ADC @@ -2159,14 +2162,11 @@ static int at91_adc_resume(struct device *dev) if (!iio_buffer_enabled(indio_dev)) return 0; - /* check if we are enabling triggered buffer or the touchscreen */ - if (at91_adc_current_chan_is_touch(indio_dev)) - return at91_adc_configure_touch(st, true); - else - return at91_adc_configure_trigger(st->trig, true); + ret = at91_adc_buffer_prepare(indio_dev); + if (ret) + goto vref_disable_resume; - /* not needed but more explicit */ - return 0; + return at91_adc_configure_trigger(st->trig, true); vref_disable_resume: regulator_disable(st->vref); -- 2.34.1
WARNING: multiple messages have this Message-ID (diff)
From: Claudiu Beznea <claudiu.beznea@microchip.com> To: <eugen.hristev@microchip.com>, <jic23@kernel.org>, <lars@metafoo.de>, <nicolas.ferre@microchip.com>, <alexandre.belloni@bootlin.com>, <ludovic.desroches@microchip.com>, <robh+dt@kernel.org> Cc: <linux-iio@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>, <devicetree@vger.kernel.org>, Claudiu Beznea <claudiu.beznea@microchip.com> Subject: [PATCH v3 04/19] iio: adc: at91-sama5d2_adc: disable/prepare buffer on suspend/resume Date: Wed, 3 Aug 2022 13:28:40 +0300 [thread overview] Message-ID: <20220803102855.2191070-5-claudiu.beznea@microchip.com> (raw) In-Reply-To: <20220803102855.2191070-1-claudiu.beznea@microchip.com> In case triggered buffers are enabled while system is suspended they will not work anymore after resume. For this call at91_adc_buffer_postdisable() on suspend and at91_adc_buffer_prepare() on resume. On tests it has been seen that at91_adc_buffer_postdisable() call is not necessary but it has been kept because it also does the book keeping for DMA. On resume path there is no need to call at91_adc_configure_touch() as it is embedded in at91_adc_buffer_prepare(). Fixes: 073c662017f2f ("iio: adc: at91-sama5d2_adc: add support for DMA") Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com> --- drivers/iio/adc/at91-sama5d2_adc.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/iio/adc/at91-sama5d2_adc.c b/drivers/iio/adc/at91-sama5d2_adc.c index 3734ddc82952..e2c82c5a2fac 100644 --- a/drivers/iio/adc/at91-sama5d2_adc.c +++ b/drivers/iio/adc/at91-sama5d2_adc.c @@ -2116,6 +2116,9 @@ static int at91_adc_suspend(struct device *dev) struct iio_dev *indio_dev = dev_get_drvdata(dev); struct at91_adc_state *st = iio_priv(indio_dev); + if (iio_buffer_enabled(indio_dev)) + at91_adc_buffer_postdisable(indio_dev); + /* * Do a sofware reset of the ADC before we go to suspend. * this will ensure that all pins are free from being muxed by the ADC @@ -2159,14 +2162,11 @@ static int at91_adc_resume(struct device *dev) if (!iio_buffer_enabled(indio_dev)) return 0; - /* check if we are enabling triggered buffer or the touchscreen */ - if (at91_adc_current_chan_is_touch(indio_dev)) - return at91_adc_configure_touch(st, true); - else - return at91_adc_configure_trigger(st->trig, true); + ret = at91_adc_buffer_prepare(indio_dev); + if (ret) + goto vref_disable_resume; - /* not needed but more explicit */ - return 0; + return at91_adc_configure_trigger(st->trig, true); vref_disable_resume: regulator_disable(st->vref); -- 2.34.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-08-03 10:27 UTC|newest] Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-08-03 10:28 [PATCH v3 00/19] iio: adc: at91-sama5d2_adc: add support for temperature sensor Claudiu Beznea 2022-08-03 10:28 ` Claudiu Beznea 2022-08-03 10:28 ` [PATCH v3 01/19] iio: adc: at91-sama5d2_adc: fix AT91_SAMA5D2_MR_TRACKTIM_MAX Claudiu Beznea 2022-08-03 10:28 ` Claudiu Beznea 2022-08-03 10:28 ` [PATCH v3 02/19] iio: adc: at91-sama5d2_adc: check return status for pressure and touch Claudiu Beznea 2022-08-03 10:28 ` Claudiu Beznea 2022-08-03 10:28 ` [PATCH v3 03/19] iio: adc: at91-sama5d2_adc: lock around oversampling and sample freq Claudiu Beznea 2022-08-03 10:28 ` Claudiu Beznea 2022-08-03 10:28 ` Claudiu Beznea [this message] 2022-08-03 10:28 ` [PATCH v3 04/19] iio: adc: at91-sama5d2_adc: disable/prepare buffer on suspend/resume Claudiu Beznea 2022-08-03 10:28 ` [PATCH v3 05/19] iio: adc: at91-sama5d2_adc: exit from write_raw() when buffers are enabled Claudiu Beznea 2022-08-03 10:28 ` Claudiu Beznea 2022-08-03 10:28 ` [PATCH v3 06/19] iio: adc: at91-sama5d2_adc: handle different EMR.OSR for different hw versions Claudiu Beznea 2022-08-03 10:28 ` Claudiu Beznea 2022-08-03 10:28 ` [PATCH v3 07/19] iio: adc: at91-sama5d2_adc: move the check of oversampling in its function Claudiu Beznea 2022-08-03 10:28 ` Claudiu Beznea 2022-08-03 10:28 ` [PATCH v3 08/19] iio: adc: at91-sama5d2_adc: drop AT91_OSR_XSAMPLES defines Claudiu Beznea 2022-08-03 10:28 ` Claudiu Beznea 2022-08-03 10:28 ` [PATCH v3 09/19] iio: adc: at91-sama5d2_adc: add .read_avail() chan_info ops Claudiu Beznea 2022-08-03 10:28 ` Claudiu Beznea 2022-08-03 10:28 ` [PATCH v3 10/19] iio: adc: at91-sama5d2_adc: adjust osr based on specific platform data Claudiu Beznea 2022-08-03 10:28 ` Claudiu Beznea 2022-08-03 10:28 ` [PATCH v3 11/19] iio: adc: at91-sama5d2_adc: add 64 and 256 oversampling ratio Claudiu Beznea 2022-08-03 10:28 ` Claudiu Beznea 2022-08-03 10:28 ` [PATCH v3 12/19] iio: adc: at91-sama5d2_adc: move oversampling storage in its function Claudiu Beznea 2022-08-03 10:28 ` Claudiu Beznea 2022-08-03 10:28 ` [PATCH v3 13/19] iio: adc: at91-sama5d2_adc: update trackx on emr Claudiu Beznea 2022-08-03 10:28 ` Claudiu Beznea 2022-08-03 10:28 ` [PATCH v3 14/19] iio: adc: at91-sama5d2_adc: add startup and tracktim as parameter for at91_adc_setup_samp_freq() Claudiu Beznea 2022-08-03 10:28 ` Claudiu Beznea 2022-08-03 10:28 ` [PATCH v3 15/19] iio: adc: at91-sama5d2_adc: lock around at91_adc_read_info_raw() Claudiu Beznea 2022-08-03 10:28 ` Claudiu Beznea 2022-08-03 10:28 ` [PATCH v3 16/19] dt-bindings: iio: adc: at91-sama5d2_adc: add id for temperature channel Claudiu Beznea 2022-08-03 10:28 ` Claudiu Beznea 2022-08-03 10:28 ` [PATCH v3 17/19] iio: adc: at91-sama5d2_adc: add support for temperature sensor Claudiu Beznea 2022-08-03 10:28 ` Claudiu Beznea 2022-08-03 10:28 ` [PATCH v3 18/19] iio: adc: at91-sama5d2_adc: add empty line after functions Claudiu Beznea 2022-08-03 10:28 ` Claudiu Beznea 2022-08-03 10:28 ` [PATCH v3 19/19] iio: adc: at91-sama5d2_adc: add runtime pm support Claudiu Beznea 2022-08-03 10:28 ` Claudiu Beznea 2022-08-06 14:10 ` [PATCH v3 00/19] iio: adc: at91-sama5d2_adc: add support for temperature sensor Jonathan Cameron 2022-08-06 14:10 ` Jonathan Cameron
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20220803102855.2191070-5-claudiu.beznea@microchip.com \ --to=claudiu.beznea@microchip.com \ --cc=alexandre.belloni@bootlin.com \ --cc=devicetree@vger.kernel.org \ --cc=eugen.hristev@microchip.com \ --cc=jic23@kernel.org \ --cc=lars@metafoo.de \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-iio@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=ludovic.desroches@microchip.com \ --cc=nicolas.ferre@microchip.com \ --cc=robh+dt@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.