All of lore.kernel.org
 help / color / mirror / Atom feed
From: <Eugen.Hristev@microchip.com>
To: <alexandru.Ardelean@analog.com>, <jic23@kernel.org>
Cc: <Ludovic.Desroches@microchip.com>, <linux-kernel@vger.kernel.org>,
	<linux-iio@vger.kernel.org>
Subject: Re: [PATCH v2 1/2] iio: at91-sama5d2_adc: split at91_adc_current_chan_is_touch() helper
Date: Mon, 27 Apr 2020 12:20:14 +0000	[thread overview]
Message-ID: <208699ad-1302-aac1-c2e7-4f469e39a7eb@microchip.com> (raw)
In-Reply-To: <f13b4286c5f133e7461d59965d7f84af059c8e89.camel@analog.com>

On 15.04.2020 09:33, Ardelean, Alexandru wrote:

> On Tue, 2020-04-14 at 18:45 +0100, Jonathan Cameron wrote:
>> On Tue, 14 Apr 2020 12:22:45 +0000
>> <Eugen.Hristev@microchip.com> wrote:
>>
>>> On 13.04.2020 20:05, Jonathan Cameron wrote:
>>>> On Wed, 4 Mar 2020 10:42:18 +0200
>>>> Alexandru Ardelean <alexandru.ardelean@analog.com> wrote:
>>>>
>>>>> This change moves the logic to check if the current channel is the
>>>>> touchscreen channel to a separate helper.
>>>>> This reduces some code duplication, but the main intent is to re-use
>>>>> this
>>>>> in the next patches.
>>>>>
>>>>> Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
>>>> Eugen / Ludovic,
>>>>
>>>> Have you had a chance to look at this series?
>>>
>>> Hi Jonathan,
>>>
>>> Does the patch apply correctly for you ?
>>
>> I haven't tried yet :)
>>
> 
> I've rebased this patchset on top of current iio/testing and it still applies.
> 

Hi Alex,

I tried this patch on top of my tree (however I am testing with an older 
kernel 5.4) , and I have issues starting the buffer after you moved my 
code to the preenable callback.

Namely, on the line:

if (!(indio_dev->currentmode & INDIO_ALL_TRIGGERED_MODES))
                return -EINVAL;

And with this , the preenable fails on my side, because the current mode 
is not yet switched to triggered.

I do remember adding this line with a specific reason. It may be related 
to touchscreen operations, but I have to retest the touch with and 
without this line and your patch.

Meanwhile, maybe you have any suggestions on how to fix the buffer ? 
This check here makes any sense to you ?

Thanks,
Eugen

> 
>>> I will try to test it , if I manage to apply it.
>>> I can only test the ADC though because at this moment I do not have a
>>> touchscreen at disposal.
>>>
>>> Meanwhile, the code looks good for me,
>>>
>>> Reviewed-by: Eugen Hristev <eugen.hristev@microchip.com>
>>>
>>> By the way, I do not know if my two pending patches on this driver will
>>> conflict or not.
>>
>> As this is a long term rework patch at heart, there isn't any particular
>> rush as long as we don't loose it forever!
>>
>> Thanks,
>>
>> Jonathan
>>
>>> Eugen
>>>
>>>> Thanks,
>>>>
>>>> Jonathan
>>>>
>>>>> ---
>>>>>
>>>>> This patchset continues discussion:
>>>>>
>>>>> https://urldefense.com/v3/__https://lore.kernel.org/linux-iio/20191023082508.17583-1-alexandru.ardelean@analog.com/__;!!A3Ni8CS0y2Y!ql1bYiNMPFlz1twnCCAQpiEBvpzxR_VHAPL712rWFfwy2TSKjZ2UhGBoV7-29Syny6z0yg$
>>>>>
>>>>> Apologies for the delay.
>>>>>
>>>>> Changelog v1 -> v2:
>>>>> * added patch 'iio: at91-sama5d2_adc: split
>>>>> at91_adc_current_chan_is_touch()
>>>>>     helper'
>>>>> * renamed at91_adc_buffer_postenable() -> at91_adc_buffer_preenable()
>>>>>     - at91_adc_buffer_postenable() - now just calls
>>>>>       iio_triggered_buffer_postenable() if the channel isn't the
>>>>> touchscreen
>>>>>       channel
>>>>> * renamed at91_adc_buffer_predisable() -> at91_adc_buffer_postdisable()
>>>>>     - at91_adc_buffer_predisable() - now just calls
>>>>>       iio_triggered_buffer_predisable() if the channel isn't the
>>>>> touchscreen
>>>>>       channel
>>>>>
>>>>>    drivers/iio/adc/at91-sama5d2_adc.c | 31 +++++++++++++++---------------
>>>>>    1 file changed, 15 insertions(+), 16 deletions(-)
>>>>>
>>>>> diff --git a/drivers/iio/adc/at91-sama5d2_adc.c b/drivers/iio/adc/at91-
>>>>> sama5d2_adc.c
>>>>> index a5c7771227d5..f2a74c47c768 100644
>>>>> --- a/drivers/iio/adc/at91-sama5d2_adc.c
>>>>> +++ b/drivers/iio/adc/at91-sama5d2_adc.c
>>>>> @@ -873,18 +873,24 @@ static int at91_adc_dma_start(struct iio_dev
>>>>> *indio_dev)
>>>>>         return 0;
>>>>>    }
>>>>>
>>>>> +static bool at91_adc_current_chan_is_touch(struct iio_dev *indio_dev)
>>>>> +{
>>>>> +     struct at91_adc_state *st = iio_priv(indio_dev);
>>>>> +
>>>>> +     return !!bitmap_subset(indio_dev->active_scan_mask,
>>>>> +                            &st->touch_st.channels_bitmask,
>>>>> +                            AT91_SAMA5D2_MAX_CHAN_IDX + 1);
>>>>> +}
>>>>> +
>>>>>    static int at91_adc_buffer_postenable(struct iio_dev *indio_dev)
>>>>>    {
>>>>>         int ret;
>>>>>         struct at91_adc_state *st = iio_priv(indio_dev);
>>>>>
>>>>>         /* check if we are enabling triggered buffer or the touchscreen
>>>>> */
>>>>> -     if (bitmap_subset(indio_dev->active_scan_mask,
>>>>> -                       &st->touch_st.channels_bitmask,
>>>>> -                       AT91_SAMA5D2_MAX_CHAN_IDX + 1)) {
>>>>> -             /* touchscreen enabling */
>>>>> +     if (at91_adc_current_chan_is_touch(indio_dev))
>>>>>                 return at91_adc_configure_touch(st, true);
>>>>> -     }
>>>>> +
>>>>>         /* if we are not in triggered mode, we cannot enable the buffer.
>>>>> */
>>>>>         if (!(indio_dev->currentmode & INDIO_ALL_TRIGGERED_MODES))
>>>>>                 return -EINVAL;
>>>>> @@ -906,12 +912,9 @@ static int at91_adc_buffer_predisable(struct
>>>>> iio_dev *indio_dev)
>>>>>         u8 bit;
>>>>>
>>>>>         /* check if we are disabling triggered buffer or the touchscreen
>>>>> */
>>>>> -     if (bitmap_subset(indio_dev->active_scan_mask,
>>>>> -                       &st->touch_st.channels_bitmask,
>>>>> -                       AT91_SAMA5D2_MAX_CHAN_IDX + 1)) {
>>>>> -             /* touchscreen disable */
>>>>> +     if (at91_adc_current_chan_is_touch(indio_dev))
>>>>>                 return at91_adc_configure_touch(st, false);
>>>>> -     }
>>>>> +
>>>>>         /* if we are not in triggered mode, nothing to do here */
>>>>>         if (!(indio_dev->currentmode & INDIO_ALL_TRIGGERED_MODES))
>>>>>                 return -EINVAL;
>>>>> @@ -1886,14 +1889,10 @@ static __maybe_unused int at91_adc_resume(struct
>>>>> device *dev)
>>>>>                 return 0;
>>>>>
>>>>>         /* check if we are enabling triggered buffer or the touchscreen
>>>>> */
>>>>> -     if (bitmap_subset(indio_dev->active_scan_mask,
>>>>> -                       &st->touch_st.channels_bitmask,
>>>>> -                       AT91_SAMA5D2_MAX_CHAN_IDX + 1)) {
>>>>> -             /* touchscreen enabling */
>>>>> +     if (at91_adc_current_chan_is_touch(indio_dev))
>>>>>                 return at91_adc_configure_touch(st, true);
>>>>> -     } else {
>>>>> +     else
>>>>>                 return at91_adc_configure_trigger(st->trig, true);
>>>>> -     }
>>>>>
>>>>>         /* not needed but more explicit */
>>>>>         return 0;
>>>>


  reply	other threads:[~2020-04-27 12:20 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-04  8:42 [PATCH v2 1/2] iio: at91-sama5d2_adc: split at91_adc_current_chan_is_touch() helper Alexandru Ardelean
2020-03-04  8:42 ` [PATCH v2 2/2] iio: at91-sama5d2_adc: adjust iio_triggered_buffer_{predisable,postenable} positions Alexandru Ardelean
2020-04-19 10:04   ` ludovic.desroches
2020-04-23 10:56     ` Eugen.Hristev
2020-04-13 17:05 ` [PATCH v2 1/2] iio: at91-sama5d2_adc: split at91_adc_current_chan_is_touch() helper Jonathan Cameron
2020-04-14 12:22   ` Eugen.Hristev
2020-04-14 17:45     ` Jonathan Cameron
2020-04-15  6:33       ` Ardelean, Alexandru
2020-04-27 12:20         ` Eugen.Hristev [this message]
2020-04-27 13:00           ` Ardelean, Alexandru
2020-04-30  7:30             ` Ardelean, Alexandru
2020-04-30  8:10               ` Ardelean, Alexandru
2020-05-02 17:31                 ` Jonathan Cameron
2020-04-15  6:43     ` ludovic.desroches
2020-04-18 17:58       ` Jonathan Cameron
2020-04-19 10:09         ` ludovic.desroches
2020-04-25 15:06           ` 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=208699ad-1302-aac1-c2e7-4f469e39a7eb@microchip.com \
    --to=eugen.hristev@microchip.com \
    --cc=Ludovic.Desroches@microchip.com \
    --cc=alexandru.Ardelean@analog.com \
    --cc=jic23@kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.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: link
Be 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.