RE: [PATCH v3 0/6] iio: Add output buffer support

2021-03-08 Thread Sa, Nuno



> -Original Message-
> From: Sa, Nuno 
> Sent: Monday, March 8, 2021 2:01 PM
> To: Jonathan Cameron ; Jonathan
> Cameron 
> Cc: Hennerich, Michael ;
> Ardelean, Alexandru ;
> linux-kernel@vger.kernel.org; linux-...@vger.kernel.org;
> l...@metafoo.de; Bogdan, Dragos 
> Subject: RE: [PATCH v3 0/6] iio: Add output buffer support
> 
> [External]
> 
> 
> 
> > -Original Message-
> > From: Jonathan Cameron 
> > Sent: Monday, March 8, 2021 12:52 PM
> > To: Sa, Nuno ; Jonathan Cameron
> > 
> > Cc: Hennerich, Michael ;
> > Ardelean, Alexandru ;
> > linux-kernel@vger.kernel.org; linux-...@vger.kernel.org;
> > l...@metafoo.de; Bogdan, Dragos 
> > Subject: Re: [PATCH v3 0/6] iio: Add output buffer support
> >
> > [External]
> >
> > On Mon, 8 Mar 2021 10:07:05 +
> > "Sa, Nuno"  wrote:
> >
> > > > -Original Message-
> > > > From: Jonathan Cameron 
> > > > Sent: Saturday, March 6, 2021 6:35 PM
> > > > To: Hennerich, Michael 
> > > > Cc: zzzzArdelean, Alexandru
> > ;
> > > > linux-kernel@vger.kernel.org; linux-...@vger.kernel.org;
> > > > l...@metafoo.de; Sa, Nuno ; Bogdan,
> > Dragos
> > > > 
> > > > Subject: Re: [PATCH v3 0/6] iio: Add output buffer support
> > > >
> > > > On Fri, 5 Mar 2021 08:57:08 +
> > > > "Hennerich, Michael"  wrote:
> > > >
> > > > > Hi Jonathan and others,
> > > > >
> > > > > With output/dac buffer support the semantics of the
> > scan_element
> > > > type may change.
> > > > >
> > > > > Today the Format is
> > [be|le]:[s|u]bits/storagebitsXrepeat[>>shift].
> > > > >
> > > > > While shift (if specified) is the shift that needs to be applied
> prior
> > to
> > > > masking out unused bits.
> > > > >
> > > > > So far so good and it sounds universal.
> > > > >
> > > > > However, we use the right shift (operator) for that, which
> makes
> > > > sense for capture devices.
> > > > > For output devices the more logical operator would be the left
> > shift.
> > > > >
> > > > > I'm not proposing a new Format here. I just want to get some
> > > > agreement that for an output device
> > > > >
> > > > > le:s12/16>>4
> > > > >
> > > > > is understood as a left shift of 4, since the unused bits are then
> > on
> > > > the LSB.
> > > >
> > > > Good question. Guess I wasn't thinking ahead when I came up
> with
> > > > that :)
> > > >
> > > > I'm not sure I'd mind if we did decide to define a new format for
> > > > output
> > > > buffers. Feels like it should be easy to do.
> > > >
> > > > What do others think?
> > > >
> > >
> > > I guess the most straight forward thing would be just to add a
> 'shift_l'
> > variable
> > > to 'struct scan_type'' and make sure either 'shift_l' or 'shift' is
> defined
> > and then
> > > properly export either ">>" or "<<" to userspace?
> >
> > Given we already know it's an output channel, can we not just use
> that
> > to make the decision?
> >
> > Jonathan
> 
> I would argue that having two variables gives us more flexibility for
> whatever
> the future brings us :). But if we can sanely say that an output buffer
> will
> always use left shifts, then we could definitely use that information... I
> mean,
> we are already doing that assumption for input buffers and right
> shifts...

Hmm, giving it a bit more thought I think you can disregard the above.
Using the information that it's an output channel should be more than
enough...

- Nuno Sá


RE: [PATCH v3 0/6] iio: Add output buffer support

2021-03-08 Thread Sa, Nuno



> -Original Message-
> From: Jonathan Cameron 
> Sent: Monday, March 8, 2021 12:52 PM
> To: Sa, Nuno ; Jonathan Cameron
> 
> Cc: Hennerich, Michael ;
> Ardelean, Alexandru ;
> linux-kernel@vger.kernel.org; linux-...@vger.kernel.org;
> l...@metafoo.de; Bogdan, Dragos 
> Subject: Re: [PATCH v3 0/6] iio: Add output buffer support
> 
> [External]
> 
> On Mon, 8 Mar 2021 10:07:05 +
> "Sa, Nuno"  wrote:
> 
> > > -Original Message-
> > > From: Jonathan Cameron 
> > > Sent: Saturday, March 6, 2021 6:35 PM
> > > To: Hennerich, Michael 
> > > Cc: Ardelean, Alexandru
> ;
> > > linux-kernel@vger.kernel.org; linux-...@vger.kernel.org;
> > > l...@metafoo.de; Sa, Nuno ; Bogdan,
> Dragos
> > > 
> > > Subject: Re: [PATCH v3 0/6] iio: Add output buffer support
> > >
> > > On Fri, 5 Mar 2021 08:57:08 +
> > > "Hennerich, Michael"  wrote:
> > >
> > > > Hi Jonathan and others,
> > > >
> > > > With output/dac buffer support the semantics of the
> scan_element
> > > type may change.
> > > >
> > > > Today the Format is
> [be|le]:[s|u]bits/storagebitsXrepeat[>>shift].
> > > >
> > > > While shift (if specified) is the shift that needs to be applied prior
> to
> > > masking out unused bits.
> > > >
> > > > So far so good and it sounds universal.
> > > >
> > > > However, we use the right shift (operator) for that, which makes
> > > sense for capture devices.
> > > > For output devices the more logical operator would be the left
> shift.
> > > >
> > > > I'm not proposing a new Format here. I just want to get some
> > > agreement that for an output device
> > > >
> > > > le:s12/16>>4
> > > >
> > > > is understood as a left shift of 4, since the unused bits are then
> on
> > > the LSB.
> > >
> > > Good question. Guess I wasn't thinking ahead when I came up with
> > > that :)
> > >
> > > I'm not sure I'd mind if we did decide to define a new format for
> > > output
> > > buffers. Feels like it should be easy to do.
> > >
> > > What do others think?
> > >
> >
> > I guess the most straight forward thing would be just to add a 'shift_l'
> variable
> > to 'struct scan_type'' and make sure either 'shift_l' or 'shift' is defined
> and then
> > properly export either ">>" or "<<" to userspace?
> 
> Given we already know it's an output channel, can we not just use that
> to make the decision?
> 
> Jonathan

I would argue that having two variables gives us more flexibility for whatever
the future brings us :). But if we can sanely say that an output buffer will
always use left shifts, then we could definitely use that information... I mean,
we are already doing that assumption for input buffers and right shifts...

- Nuno Sá


Re: [PATCH v3 0/6] iio: Add output buffer support

2021-03-08 Thread Jonathan Cameron
On Mon, 8 Mar 2021 10:07:05 +
"Sa, Nuno"  wrote:

> > -Original Message-
> > From: Jonathan Cameron 
> > Sent: Saturday, March 6, 2021 6:35 PM
> > To: Hennerich, Michael 
> > Cc: Ardelean, Alexandru ;
> > linux-kernel@vger.kernel.org; linux-...@vger.kernel.org;
> > l...@metafoo.de; Sa, Nuno ; Bogdan, Dragos
> > 
> > Subject: Re: [PATCH v3 0/6] iio: Add output buffer support
> > 
> > On Fri, 5 Mar 2021 08:57:08 +
> > "Hennerich, Michael"  wrote:
> >   
> > > Hi Jonathan and others,
> > >
> > > With output/dac buffer support the semantics of the scan_element  
> > type may change.  
> > >
> > > Today the Format is [be|le]:[s|u]bits/storagebitsXrepeat[>>shift].
> > >
> > > While shift (if specified) is the shift that needs to be applied prior to 
> > >  
> > masking out unused bits.  
> > >
> > > So far so good and it sounds universal.
> > >
> > > However, we use the right shift (operator) for that, which makes  
> > sense for capture devices.  
> > > For output devices the more logical operator would be the left shift.
> > >
> > > I'm not proposing a new Format here. I just want to get some  
> > agreement that for an output device  
> > >  
> > > le:s12/16>>4  
> > >
> > > is understood as a left shift of 4, since the unused bits are then on  
> > the LSB.
> > 
> > Good question. Guess I wasn't thinking ahead when I came up with
> > that :)
> > 
> > I'm not sure I'd mind if we did decide to define a new format for
> > output
> > buffers. Feels like it should be easy to do.
> > 
> > What do others think?
> >   
> 
> I guess the most straight forward thing would be just to add a 'shift_l' 
> variable
> to 'struct scan_type'' and make sure either 'shift_l' or 'shift' is defined 
> and then
> properly export either ">>" or "<<" to userspace?

Given we already know it's an output channel, can we not just use that
to make the decision?

Jonathan

> 
> - Nuno Sá 
> 



RE: [PATCH v3 0/6] iio: Add output buffer support

2021-03-08 Thread Sa, Nuno

> -Original Message-
> From: Jonathan Cameron 
> Sent: Saturday, March 6, 2021 6:35 PM
> To: Hennerich, Michael 
> Cc: Ardelean, Alexandru ;
> linux-kernel@vger.kernel.org; linux-...@vger.kernel.org;
> l...@metafoo.de; Sa, Nuno ; Bogdan, Dragos
> 
> Subject: Re: [PATCH v3 0/6] iio: Add output buffer support
> 
> On Fri, 5 Mar 2021 08:57:08 +
> "Hennerich, Michael"  wrote:
> 
> > Hi Jonathan and others,
> >
> > With output/dac buffer support the semantics of the scan_element
> type may change.
> >
> > Today the Format is [be|le]:[s|u]bits/storagebitsXrepeat[>>shift].
> >
> > While shift (if specified) is the shift that needs to be applied prior to
> masking out unused bits.
> >
> > So far so good and it sounds universal.
> >
> > However, we use the right shift (operator) for that, which makes
> sense for capture devices.
> > For output devices the more logical operator would be the left shift.
> >
> > I'm not proposing a new Format here. I just want to get some
> agreement that for an output device
> >
> > le:s12/16>>4
> >
> > is understood as a left shift of 4, since the unused bits are then on
> the LSB.
> 
> Good question. Guess I wasn't thinking ahead when I came up with
> that :)
> 
> I'm not sure I'd mind if we did decide to define a new format for
> output
> buffers. Feels like it should be easy to do.
> 
> What do others think?
> 

I guess the most straight forward thing would be just to add a 'shift_l' 
variable
to 'struct scan_type'' and make sure either 'shift_l' or 'shift' is defined and 
then
properly export either ">>" or "<<" to userspace?

- Nuno Sá 



Re: [PATCH v3 0/6] iio: Add output buffer support

2021-03-06 Thread Jonathan Cameron
On Fri, 5 Mar 2021 08:57:08 +
"Hennerich, Michael"  wrote:

> Hi Jonathan and others,
> 
> With output/dac buffer support the semantics of the scan_element type may 
> change.
> 
> Today the Format is [be|le]:[s|u]bits/storagebitsXrepeat[>>shift].
> 
> While shift (if specified) is the shift that needs to be applied prior to 
> masking out unused bits.
> 
> So far so good and it sounds universal. 
> 
> However, we use the right shift (operator) for that, which makes sense for 
> capture devices.
> For output devices the more logical operator would be the left shift.
> 
> I'm not proposing a new Format here. I just want to get some agreement that 
> for an output device
> 
> le:s12/16>>4  
> 
> is understood as a left shift of 4, since the unused bits are then on the LSB.

Good question. Guess I wasn't thinking ahead when I came up with that :)

I'm not sure I'd mind if we did decide to define a new format for output
buffers. Feels like it should be easy to do.

What do others think?

Jonathan


> 
> Thoughts?
> 
> Best Regards,
> Michael
> 
> Analog Devices GmbH
> Michael Hennerich   
> Otl-Aicher Strasse 60-64
> D-80807 Muenchen; Germany
> 
> Sitz der Gesellschaft München, Registergericht München HRB 40368,
> Geschäftsführer: Stefan Steyerl, Michael Paul Sondel, Yoon Ah Oh
> 
> 



RE: [PATCH v3 0/6] iio: Add output buffer support

2021-03-05 Thread Hennerich, Michael
Hi Jonathan and others,

With output/dac buffer support the semantics of the scan_element type may 
change.

Today the Format is [be|le]:[s|u]bits/storagebitsXrepeat[>>shift].

While shift (if specified) is the shift that needs to be applied prior to 
masking out unused bits.

So far so good and it sounds universal. 

However, we use the right shift (operator) for that, which makes sense for 
capture devices.
For output devices the more logical operator would be the left shift.

I'm not proposing a new Format here. I just want to get some agreement that for 
an output device

le:s12/16>>4

is understood as a left shift of 4, since the unused bits are then on the LSB.

Thoughts?

Best Regards,
Michael

Analog Devices GmbH
Michael Hennerich   
Otl-Aicher Strasse 60-64
D-80807 Muenchen; Germany

Sitz der Gesellschaft München, Registergericht München HRB 40368,
Geschäftsführer: Stefan Steyerl, Michael Paul Sondel, Yoon Ah Oh




Re: [PATCH v3 0/6] iio: Add output buffer support

2021-02-21 Thread Jonathan Cameron
On Fri, 19 Feb 2021 14:40:06 +0200
Alexandru Ardelean  wrote:

> Changelog v2 -> v3:
> * 
> https://lore.kernel.org/linux-iio/20210217083438.37865-4-alexandru.ardel...@analog.com/T/#m396545e0c6cc9d58e17f4d79b6fc707fd0373d89
> * adding only infrastructure pieces for output DAC buffers, unfortunately I
>   couldn't finish a complete DAC change to showcase these changes

For that I wonder if the driver you did previously would work with the hrtimer
trigger (so just drop the pwm stuff).  Obviously we'd want someone to sanity
check that with the hardware.  An alternative (for now) would be to add
a simple example to the dummy driver.

I'm not keen to take this series without the user, but I'll review it on basis
we'll get that sorted fairly soon in some fashion.

Jonathan


> * patch 'iio: Add output buffer support'
>- moved new 'bufferY/direction' attribute at the end and added
>  comment about what it should be added at the end
> * removed Lars' comment '/* need a way of knowing if there may be enough 
> data... */'
> * updated some various formatting;
> 
> Alexandru Ardelean (1):
>   iio: triggered-buffer: extend support to configure output buffers
> 
> Lars-Peter Clausen (5):
>   iio: Add output buffer support
>   iio: kfifo-buffer: Add output buffer support
>   iio: buffer-dma: Allow to provide custom buffer ops
>   iio: buffer-dma: Add output buffer support
>   iio: buffer-dma: add support for cyclic DMA transfers
> 
>  Documentation/ABI/testing/sysfs-bus-iio   |   7 +
>  drivers/iio/accel/adxl372.c   |   1 +
>  drivers/iio/accel/bmc150-accel-core.c |   1 +
>  drivers/iio/adc/adi-axi-adc.c |   4 +-
>  drivers/iio/adc/at91-sama5d2_adc.c|   4 +-
>  drivers/iio/buffer/industrialio-buffer-dma.c  | 120 ++--
>  .../buffer/industrialio-buffer-dmaengine.c|  72 +++---
>  .../buffer/industrialio-triggered-buffer.c|   8 +-
>  drivers/iio/buffer/kfifo_buf.c|  50 +++
>  .../cros_ec_sensors/cros_ec_sensors_core.c|   1 +
>  .../common/hid-sensors/hid-sensor-trigger.c   |   5 +-
>  drivers/iio/industrialio-buffer.c | 133 +-
>  include/linux/iio/buffer-dma.h|  11 +-
>  include/linux/iio/buffer-dmaengine.h  |   8 +-
>  include/linux/iio/buffer.h|   7 +
>  include/linux/iio/buffer_impl.h   |  11 ++
>  include/linux/iio/triggered_buffer.h  |  11 +-
>  include/uapi/linux/iio/buffer.h   |   1 +
>  18 files changed, 412 insertions(+), 43 deletions(-)
> 



[PATCH v3 0/6] iio: Add output buffer support

2021-02-19 Thread Alexandru Ardelean
Changelog v2 -> v3:
* 
https://lore.kernel.org/linux-iio/20210217083438.37865-4-alexandru.ardel...@analog.com/T/#m396545e0c6cc9d58e17f4d79b6fc707fd0373d89
* adding only infrastructure pieces for output DAC buffers, unfortunately I
  couldn't finish a complete DAC change to showcase these changes
* patch 'iio: Add output buffer support'
   - moved new 'bufferY/direction' attribute at the end and added
 comment about what it should be added at the end
* removed Lars' comment '/* need a way of knowing if there may be enough 
data... */'
* updated some various formatting;

Alexandru Ardelean (1):
  iio: triggered-buffer: extend support to configure output buffers

Lars-Peter Clausen (5):
  iio: Add output buffer support
  iio: kfifo-buffer: Add output buffer support
  iio: buffer-dma: Allow to provide custom buffer ops
  iio: buffer-dma: Add output buffer support
  iio: buffer-dma: add support for cyclic DMA transfers

 Documentation/ABI/testing/sysfs-bus-iio   |   7 +
 drivers/iio/accel/adxl372.c   |   1 +
 drivers/iio/accel/bmc150-accel-core.c |   1 +
 drivers/iio/adc/adi-axi-adc.c |   4 +-
 drivers/iio/adc/at91-sama5d2_adc.c|   4 +-
 drivers/iio/buffer/industrialio-buffer-dma.c  | 120 ++--
 .../buffer/industrialio-buffer-dmaengine.c|  72 +++---
 .../buffer/industrialio-triggered-buffer.c|   8 +-
 drivers/iio/buffer/kfifo_buf.c|  50 +++
 .../cros_ec_sensors/cros_ec_sensors_core.c|   1 +
 .../common/hid-sensors/hid-sensor-trigger.c   |   5 +-
 drivers/iio/industrialio-buffer.c | 133 +-
 include/linux/iio/buffer-dma.h|  11 +-
 include/linux/iio/buffer-dmaengine.h  |   8 +-
 include/linux/iio/buffer.h|   7 +
 include/linux/iio/buffer_impl.h   |  11 ++
 include/linux/iio/triggered_buffer.h  |  11 +-
 include/uapi/linux/iio/buffer.h   |   1 +
 18 files changed, 412 insertions(+), 43 deletions(-)

-- 
2.27.0