Re: [PATCH v2 0/9] Serial slave device bus

From: H. Nikolaus Schaller
Date: Fri Jan 20 2017 - 09:24:40 EST



> Am 20.01.2017 um 15:14 schrieb Marcel Holtmann <marcel@xxxxxxxxxxxx>:
>
> Hi Linus,
>
>>> There's still some discussion about what to do with devices that pass thru
>>> data to userspace unmodified like GPS and could still use tty device for
>>> the data path. IMO, we should treat this as a separate problem following
>>> this series. Drivers we want to convert to serdev and already in the
>>> kernel don't need this functionality.
>>
>> In my simple opinion GPSes shound live in drivers/iio/gps simply by
>> usecase association: streaming out a series of accelerometer readings
>> periodically through IIOs chardevs and other data about the physical
>> world is not any different from the GPS usecase that give you a stream
>> of coordinates on where on this planet you are.
>>
>> The fact that vendors like to defer GPS processing to userspace because
>> it is considered "secret sauce" is not the concern of the kernel community,
>> though problems like that in general is the great tragedy of our time.
>>
>> It would be fun to see a pure, reverse-engineered GPS driver in IIO.
>
> except for the pure NMEA devices. Which are pretty much defined as terminal devices using RS422 and 4800 baud. For anything non-NMEA, I would agree that using IIO might be a good option. So instead of a GPS subsystem, might just have a GPS class / type in the IIO subsystem.

Well, we could implement a default NMEA parser in the iio subsystem to
translate satellite time, geolocation, orientation, speed, and satellite
signal strengths to iio channels.

On the other hand we have to wait until all user-space GPS applications
use it and appear in wider use in distribution. Let's say in 3-4 years?

Therefore, I'd like to see NMEA records passed to user space and not
shielded completely.

And some GPS devices send extensions to the core set of NEMA records,
which might give other useful information. Having this needs some
extensibility to the iio translation or side-channels.

BR,
Nikolaus