Re: Contribution to linux-iio for GSOC 2021

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

 



On Wed, Mar 10, 2021 at 8:20 PM Jonathan Cameron
<Jonathan.Cameron@xxxxxxxxxx> wrote:
>
> On Wed, 10 Mar 2021 17:45:35 +0000
> Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> wrote:
>
> > On Wed, 10 Mar 2021 19:24:39 +0530
> > Utkarsh Verma <utkarshverma294@xxxxxxxxx> wrote:
> >
> > > Hello,
> > >
> > > This is Utkarsh Verma. I am a 3rd year Bachelor of Technology
> > > Undergrad in Electronics Engineering from HBTU, Kanpur, India.
> > >
> > > I want to participate in GSOC this summer, by contributing to the IIO
> > > subsystem. But more importantly, I want to be a part of this community
> > > and get my hands dirty.
> > >
> > > I have done the operating system course and know the very basics of
> > > Linux Kernel. I have also read some chapters of the "Linux Device
> > > Drivers" book. I am very new to the iio subsystem and I am still
> > > reading the documentation and the conversation on the mailing list. So
> > > if anyone can suggest some easy fixes/tasks for getting started would
> > > really be appreciated.
> > >
> > > I would be really happy to contribute.

One thing I've always wanted to do, is to convert the entire IIO
subsystem to devm_ variants.
Essentially getting rid of the iio_device_unregister() function in
favor of using devm_iio_device_unregister() and similar.

There's about ~217 uses of this function.
The more complicated one is in the 'drivers/platform/x86/toshiba_acpi.c'
I think reworking the Toshiba ACPI driver would also be interesting,
but it is some work.

Now, converting everything to devm_ variants can be considered a bit
of an obsession [by some people].
But I sometimes find potential memory leaks by doing this conversion.
And chances are that we may never be able to fully convert the IIO API
to be devm_ variant-only.
But it is an interesting process [for me], just the cleanup itself.

Another one, that was interesting until 1-2 years ago, was the
conversion of OF drivers to be a bit more ACPI friendly [as well].
This is also a bit of work to convert drivers that use only
of_property_read_xxxx()  functions to   device_property_read_xxx()
functions.
This isn't always straightforward in all drivers, but I do find it
interesting to unify the OF & ACPI interfaces, so that all you have to
do, is just switch the system from OF to ACPI underneath, and if the
device-tree conversion to ACPI is done right, it just works.

Then, there's the matter of moving fields [marked as [INTERN] )  from
"struct iio_dev"  to "struct iio_dev_opaque".
The value of this conversion is to reduce the review pain of having to
tell people not-to-use [INTERN] fields [especially when older drivers
do].

> > >
> > > Regards,
> > > Utkarsh Verma
> >
> > Hi Utkarsh,
> >
> > Welcome to IIO.
> >
> > If you want a practical immediate task to make sure you have flow
> > of submitting patches etc correct, one issue we've just started seeing
> > is that when we do
> >
> > make W=1
> >
> > we get some misleading reports like:
> >
> > > tree:   https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git testing
> > > head:   4ef57c4862e38e6034978d8b247a511292d7055a
> > > commit: 1cabd1c21b2a6c5b0dd3fdcffe0b24c1d0e4fc38 [72/74] iio: hrtimer: Allow sub Hz granularity
> > > config: x86_64-randconfig-a011-20210308 (attached as .config)
> > > compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 3a11a41795bec548e91621caaa4cc00fc31b2212)
> > > reproduce (this is a W=1 build):
> > >         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> > >         chmod +x ~/bin/make.cross
> > >         # install x86_64 cross compiling tool for clang build
> > >         # apt-get install binutils-x86-64-linux-gnu
> > >         # https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git/commit/?id=1cabd1c21b2a6c5b0dd3fdcffe0b24c1d0e4fc38
> > >         git remote add iio https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git
> > >         git fetch --no-tags iio testing
> > >         git checkout 1cabd1c21b2a6c5b0dd3fdcffe0b24c1d0e4fc38
> > >         # save the attached .config to linux build tree
> > >         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
> > >
> > > If you fix the issue, kindly add following tag as appropriate
> > > Reported-by: kernel test robot <lkp@xxxxxxxxx>
> > >
> > > All warnings (new ones prefixed by >>):
> > >
> > > >> drivers/iio/trigger/iio-trig-hrtimer.c:20: warning: expecting prototype for O periodic hrtimer trigger driver(). Prototype was for PSEC_PER_SEC() instead
> > >
> > >
> > > vim +20 drivers/iio/trigger/iio-trig-hrtimer.c
> > >
> > >     18
> > >     19  /* Defined locally, not in time64.h yet. */
> > >   > 20  #define PSEC_PER_SEC   1000000000000LL
> > >     21
> > >
> >
> > Gwendal figured out what was going on.  It's down to an incorrect marking of the
> > initial comment block (where copyright notice etc is ) as kernel doc
> > by prefixing it with /**
> >
> > If you'd like to first fine one of those cases and send a patch fixing it that
> > would be great.  Once we've sanity checked that first one for process issues etc
> > you could then ensure there are no other instances in IIO.
> >
> > No problem if not and you want something more substantial to start with.
> > This is just something that hit my inbox today that I'd otherwise clean up,
> > but seemed like a good task for anyone wanting to get started!
>
> Actually scrap that idea.  Serves me right for not reading all my IIO related emails
> but Gwendal already sent out a patch fixing them all.  Sorry!
>
> Jonathan
>
> >
> > Thanks,
> >
> > Jonathan
>



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux