Re: [PATCH 00/17] iio:adc:ad7280a Cleanup and proposed staging graduation.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 07/11, Jonathan Cameron wrote:
> On Wed, 23 Jun 2021 09:37:41 +0100
> Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> wrote:
> 
> > On Tue, 22 Jun 2021 14:36:17 -0300
> > Marcelo Schmitt <marcelo.schmitt1@xxxxxxxxx> wrote:
> > 
> > > Hey Jonathan,
> > > 
> > > On 06/14, Jonathan Cameron wrote:  
> > > > From: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
> > > > 
> > > > Hi All,
> > > > 
> > > > This one proved an interesting diversion.
> > > > 
> > > > Work done against a somewhat hacked up QEMU emulation of 3 daisy chained
> > > > ad7280a devices (18 channels).  Note that the emulation isn't complete
> > > > but does do chaining, CRC, and readout of channels etc in a fashion that
> > > > worked with the original driver (up to the bug in patch 1) and continues
> > > > to work with the updated version. I've not intention to upstream the
> > > > emulation (as would need to make it more completed and flexible), but
> > > > happy to share it with anyone who is interested.    
> > > 
> > > I'm interested in seeing your device emulation with QEMU.
> > > I was looking at the ad7150 emulation you shared earlier this year but had
> > > some trouble getting the i2c slave created.  
> > 
> > Sure.  Let me do a bit of tidying up they I'll push a suitable branch out.
> > (probably will still have lots of stuff missing!)
> > 
> > Might take a little while to get to this though.
> 
> I pretended to myself for a few weeks that I'd get around to tidying this up in
> a remotely meaningful way.  That's clearly not happening so I pushed out the
> untidy version with appropriate eats babies messages:
> 
> https://github.com/jic23/qemu/commits/ad7280a-hacks

Thanks. I don't mind if it's not exactly tidy or elegant code provided I
can understand whats going on and get it running.

> 
> Note there is loads of stuff that isn't implemented as it was developed alongside
> this patch series to verify individual patches rather than with the intent of
> actually emulating the device.
> 
OK, will be aware of that.

> It's hard coded to 2 a chain of 3 ad7280a devices because that seemed to hit most possible
> corner cases.
> 
> The top commit has the launch string I'm using.  You'll need a filesystem, but
> you can probably use one of the convenient ones debian posts as nocloud cloud
> images. 
> 
> There is some info on that on people.kernel.org/jic23 as I wrote up how to test
> CXL stuff on ARM recently and gave guidance on easy ways to get a filesystem.
> http://cdimage.debian.org/cdimage/cloud/sid/daily/20210702-691/debian-sid-nocloud-arm64-daily-20210702-691.qcow2
> will probably work and is more recent than the one linked from that blog post. 

I was using a debian imgage created from following the instructions on a
tutorial pointed by the QEMU docs.
https://translatedcode.wordpress.com/2017/07/24/installing-debian-on-qemus-64-bit-arm-virt-board/
Anyhow, I'll chance to the nocloud one if see things don't get working.

> 
> Give me a shout if you need more specific guidance than this very very rough guide!

Sure, let's see if I can get through it now. Otherwise ...

> 
> I mentioned this thread in the diversion the rust on linux thread took into
> use of QEMU to emulate devices which motivated me to stop being lazy and at least
> post this hideous version.  Probably the most useful bit is how to get a working
> spi device emulated on the arm virt machine as that is very handy for all manner
> of testing.  One day someone might implement a large set of IIO device emulation
> and bolt it into a CI...

Agree, it's hard to get IIO drivers runtime tested because we often don't
have the required hardware to do it. I think emulation would help us with
that or, at least, would give us a little bit more confidence in our
changes than just relying on sharp eyes and compile/static tests.
Puching that into a CI would also be rather nice.

> 
> Jonathan
> 
> > 
> > > 
> > > Being able to see it running, I may feel more confident to provide a review
> > > for this set :)  
> > 
> > :)
> > 
> > > 
> > > Regards,
> > > 
> > > Marcelo  
> > > > 
> > > > I briefly flirted with posting a patch to just drop the driver entirely,
> > > > but the part is still available and it looked like fun + isn't going
> > > > to greatly impact maintainability of the subsystem long term so is low
> > > > cost even if it goes obsolete sometime soonish.
> > > > 
> > > > There are lots of things we could do after this set to improved the driver
> > > > and make things more flexible, but it should basically 'just work'
> > > > 
> > > > Anyhow, as normal for staging graduations, last patch has rename detection
> > > > turned off so that people can easily see what I am proposing we move
> > > > out of staging.
> > > > 
> > > > Jonathan Cameron (17):
> > > >   staging:iio:adc:ad7280a: Fix handing of device address bit reversing.
> > > >   staging:iio:adc:ad7280a: Register define cleanup.
> > > >   staging:iio:adc:ad7280a: rename _read() to _read_reg()
> > > >   staging:iio:adc:ad7280a: Split buff[2] into tx and rx parts
> > > >   staging:iio:adc:ad7280a: Use bitfield ops to managed fields in
> > > >     transfers.
> > > >   staging:iio:adc:ad7280a: Switch to standard event control
> > > >   staging:iio:adc:ad7280a: Standardize extended ABI naming
> > > >   staging:iio:adc:ad7280a: Drop unused timestamp channel.
> > > >   staging:iio:adc:ad7280a: Trivial comment formatting cleanup
> > > >   staging:iio:adc:ad7280a: Make oversampling_ratio a runtime control
> > > >   staging:iio:adc:ad7280a: Cleanup includes
> > > >   staging:iio:ad7280a: Reflect optionality of irq in ABI
> > > >   staging:iio:adc:ad7280a: Use a local dev pointer to avoid &spi->dev
> > > >   staging:iio:adc:ad7280a: Use device properties to replace platform
> > > >     data.
> > > >   dt-bindings:iio:adc:ad7280a: Add binding
> > > >   iio:adc:ad7280a: Document ABI for cell balance switches
> > > >   iio:adc:ad7280a: Move out of staging
> > > > 
> > > >  .../ABI/testing/sysfs-bus-iio-adc-ad7280a     |   14 +
> > > >  .../bindings/iio/adc/adi,ad7280a.yaml         |   87 ++
> > > >  drivers/iio/adc/Kconfig                       |   11 +
> > > >  drivers/iio/adc/Makefile                      |    1 +
> > > >  drivers/iio/adc/ad7280a.c                     | 1116 +++++++++++++++++
> > > >  drivers/staging/iio/adc/Kconfig               |   11 -
> > > >  drivers/staging/iio/adc/Makefile              |    1 -
> > > >  drivers/staging/iio/adc/ad7280a.c             | 1044 ---------------
> > > >  drivers/staging/iio/adc/ad7280a.h             |   37 -
> > > >  9 files changed, 1229 insertions(+), 1093 deletions(-)
> > > >  create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-adc-ad7280a
> > > >  create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad7280a.yaml
> > > >  create mode 100644 drivers/iio/adc/ad7280a.c
> > > >  delete mode 100644 drivers/staging/iio/adc/ad7280a.c
> > > >  delete mode 100644 drivers/staging/iio/adc/ad7280a.h
> > > > 
> > > > -- 
> > > > 2.32.0
> > > >     
> > 
> 



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux