Re: GPS drivers (was Re: [PATCH v2 0/9] Serial slave device bus)
On Fri 2017-01-20 18:16:11, Andy Shevchenko wrote: > On Fri, 2017-01-20 at 16:26 +0100, Linus Walleij wrote: > > > > Now, NMEA knows about some of the complexity (not AGPS), but gets > > > the > > > details wrong. In particular, it would be good to have error > > > estimates > > > and velocities from the same moment you get position estimates. > > > > NMEA if it is this: > > https://en.wikipedia.org/wiki/NMEA_0183 > > > > Seems to be a high-level format such as XML or CSV or any other > > $FAVOURITE_ASCII_TRANSPORT format. > > Not exactly. It depends on device settings. > Old GPS I used to play with have AT command to switch between ASCII and > binary format. Some of the devices might use non-standard binary > protocols (however, representable as NMEA), etc. Apparently NMEA has some serious limitations. gpsd authors have some good docs about that. Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html signature.asc Description: Digital signature
Re: GPS drivers (was Re: [PATCH v2 0/9] Serial slave device bus)
On Fri 2017-01-20 18:16:11, Andy Shevchenko wrote: > On Fri, 2017-01-20 at 16:26 +0100, Linus Walleij wrote: > > > > Now, NMEA knows about some of the complexity (not AGPS), but gets > > > the > > > details wrong. In particular, it would be good to have error > > > estimates > > > and velocities from the same moment you get position estimates. > > > > NMEA if it is this: > > https://en.wikipedia.org/wiki/NMEA_0183 > > > > Seems to be a high-level format such as XML or CSV or any other > > $FAVOURITE_ASCII_TRANSPORT format. > > Not exactly. It depends on device settings. > Old GPS I used to play with have AT command to switch between ASCII and > binary format. Some of the devices might use non-standard binary > protocols (however, representable as NMEA), etc. Apparently NMEA has some serious limitations. gpsd authors have some good docs about that. Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html signature.asc Description: Digital signature
Re: GPS drivers (was Re: [PATCH v2 0/9] Serial slave device bus)
Hi! > >> 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. > > > > That is... not quite how GPSes work. What interface would you propose? > > It would be good to support error estimates in position/velocities and > > AGPS data upload. > > Sorry for my ignorance. I have not had the opportunity to work > directly with a GPS hardware. Few people have. It is CDMA corelators at the low level. > > Now, NMEA knows about some of the complexity (not AGPS), but gets the > > details wrong. In particular, it would be good to have error estimates > > and velocities from the same moment you get position estimates. > > NMEA if it is this: > https://en.wikipedia.org/wiki/NMEA_0183 Yes. > Seems to be a high-level format such as XML or CSV or any other > $FAVOURITE_ASCII_TRANSPORT format. > > What we want to push into the ring buffer is of course the raw data > that is produced by the GPS hardware, whatever that may be. > If what we have is this text format we should not reverse-translate > it back any more than modem AT commands, it doesn't make sense > I guess. Umm. Its hairy. Each GPS talks slightly different version of NMEA :-(. But yes, we have userland driver called 'gpsd' that understands most of them. Many GPSes have additional, non-NMEA protocol you can switch them to. > So NMEA processing would be in userspace. And if the GPS is just > streaming this text data over to the client, like Marcel says, it is > more reasonable to just feed that up to userspace (no policy in the > kernel). Well -- we normally do hardware abstraction in the kernel :-). > I am however aware of certain hardware such as the ST > Microelectronis STA2062 produced for Garmin, which is *not* > connected to any external chip, and is not talking over serial > to any RSx port, and does not have an embedded firmware running > on another SoC in any special GPS chip. And it is unassisted. I googled STA2062 but it does not make much sense to me. Yes, not everything talks NMEA. Nokia N900 is an example, and it has in-tree driver. > Maybe that is an oddity. In the mobile phone business I guess it > could be more common to have a separate SoC that by way > of standards just stream NMEA data. Sorry, I don't understand. Yes, in mobile phones GPSes that produce something else than NMEA are pretty common. > Fusing that with other sensor data (accelerometer, compass, etc) > is again indeed a userspace task. I hope NMEA includes very good > timestamps. Umm. Timestamps are quite hard to do over serial :-(. Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html signature.asc Description: Digital signature
Re: GPS drivers (was Re: [PATCH v2 0/9] Serial slave device bus)
Hi! > >> 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. > > > > That is... not quite how GPSes work. What interface would you propose? > > It would be good to support error estimates in position/velocities and > > AGPS data upload. > > Sorry for my ignorance. I have not had the opportunity to work > directly with a GPS hardware. Few people have. It is CDMA corelators at the low level. > > Now, NMEA knows about some of the complexity (not AGPS), but gets the > > details wrong. In particular, it would be good to have error estimates > > and velocities from the same moment you get position estimates. > > NMEA if it is this: > https://en.wikipedia.org/wiki/NMEA_0183 Yes. > Seems to be a high-level format such as XML or CSV or any other > $FAVOURITE_ASCII_TRANSPORT format. > > What we want to push into the ring buffer is of course the raw data > that is produced by the GPS hardware, whatever that may be. > If what we have is this text format we should not reverse-translate > it back any more than modem AT commands, it doesn't make sense > I guess. Umm. Its hairy. Each GPS talks slightly different version of NMEA :-(. But yes, we have userland driver called 'gpsd' that understands most of them. Many GPSes have additional, non-NMEA protocol you can switch them to. > So NMEA processing would be in userspace. And if the GPS is just > streaming this text data over to the client, like Marcel says, it is > more reasonable to just feed that up to userspace (no policy in the > kernel). Well -- we normally do hardware abstraction in the kernel :-). > I am however aware of certain hardware such as the ST > Microelectronis STA2062 produced for Garmin, which is *not* > connected to any external chip, and is not talking over serial > to any RSx port, and does not have an embedded firmware running > on another SoC in any special GPS chip. And it is unassisted. I googled STA2062 but it does not make much sense to me. Yes, not everything talks NMEA. Nokia N900 is an example, and it has in-tree driver. > Maybe that is an oddity. In the mobile phone business I guess it > could be more common to have a separate SoC that by way > of standards just stream NMEA data. Sorry, I don't understand. Yes, in mobile phones GPSes that produce something else than NMEA are pretty common. > Fusing that with other sensor data (accelerometer, compass, etc) > is again indeed a userspace task. I hope NMEA includes very good > timestamps. Umm. Timestamps are quite hard to do over serial :-(. Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html signature.asc Description: Digital signature
Re: GPS drivers (was Re: [PATCH v2 0/9] Serial slave device bus)
On Fri, 2017-01-20 at 16:26 +0100, Linus Walleij wrote: > > Now, NMEA knows about some of the complexity (not AGPS), but gets > > the > > details wrong. In particular, it would be good to have error > > estimates > > and velocities from the same moment you get position estimates. > > NMEA if it is this: > https://en.wikipedia.org/wiki/NMEA_0183 > > Seems to be a high-level format such as XML or CSV or any other > $FAVOURITE_ASCII_TRANSPORT format. Not exactly. It depends on device settings. Old GPS I used to play with have AT command to switch between ASCII and binary format. Some of the devices might use non-standard binary protocols (however, representable as NMEA), etc. -- Andy ShevchenkoIntel Finland Oy
Re: GPS drivers (was Re: [PATCH v2 0/9] Serial slave device bus)
On Fri, 2017-01-20 at 16:26 +0100, Linus Walleij wrote: > > Now, NMEA knows about some of the complexity (not AGPS), but gets > > the > > details wrong. In particular, it would be good to have error > > estimates > > and velocities from the same moment you get position estimates. > > NMEA if it is this: > https://en.wikipedia.org/wiki/NMEA_0183 > > Seems to be a high-level format such as XML or CSV or any other > $FAVOURITE_ASCII_TRANSPORT format. Not exactly. It depends on device settings. Old GPS I used to play with have AT command to switch between ASCII and binary format. Some of the devices might use non-standard binary protocols (however, representable as NMEA), etc. -- Andy Shevchenko Intel Finland Oy
Re: GPS drivers (was Re: [PATCH v2 0/9] Serial slave device bus)
oOn Fri, Jan 20, 2017 at 3:22 PM, Pavel Machekwrote: > Switched subject: Rob's work is great for GPS and bluetooth, but this > goes beyond it. Sure why not talk around a bit. >> 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. > > That is... not quite how GPSes work. What interface would you propose? > It would be good to support error estimates in position/velocities and > AGPS data upload. Sorry for my ignorance. I have not had the opportunity to work directly with a GPS hardware. > Now, NMEA knows about some of the complexity (not AGPS), but gets the > details wrong. In particular, it would be good to have error estimates > and velocities from the same moment you get position estimates. NMEA if it is this: https://en.wikipedia.org/wiki/NMEA_0183 Seems to be a high-level format such as XML or CSV or any other $FAVOURITE_ASCII_TRANSPORT format. What we want to push into the ring buffer is of course the raw data that is produced by the GPS hardware, whatever that may be. If what we have is this text format we should not reverse-translate it back any more than modem AT commands, it doesn't make sense I guess. So NMEA processing would be in userspace. And if the GPS is just streaming this text data over to the client, like Marcel says, it is more reasonable to just feed that up to userspace (no policy in the kernel). I am however aware of certain hardware such as the ST Microelectronis STA2062 produced for Garmin, which is *not* connected to any external chip, and is not talking over serial to any RSx port, and does not have an embedded firmware running on another SoC in any special GPS chip. And it is unassisted. Maybe that is an oddity. In the mobile phone business I guess it could be more common to have a separate SoC that by way of standards just stream NMEA data. Fusing that with other sensor data (accelerometer, compass, etc) is again indeed a userspace task. I hope NMEA includes very good timestamps. Thanks, Linus Walleij
Re: GPS drivers (was Re: [PATCH v2 0/9] Serial slave device bus)
oOn Fri, Jan 20, 2017 at 3:22 PM, Pavel Machek wrote: > Switched subject: Rob's work is great for GPS and bluetooth, but this > goes beyond it. Sure why not talk around a bit. >> 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. > > That is... not quite how GPSes work. What interface would you propose? > It would be good to support error estimates in position/velocities and > AGPS data upload. Sorry for my ignorance. I have not had the opportunity to work directly with a GPS hardware. > Now, NMEA knows about some of the complexity (not AGPS), but gets the > details wrong. In particular, it would be good to have error estimates > and velocities from the same moment you get position estimates. NMEA if it is this: https://en.wikipedia.org/wiki/NMEA_0183 Seems to be a high-level format such as XML or CSV or any other $FAVOURITE_ASCII_TRANSPORT format. What we want to push into the ring buffer is of course the raw data that is produced by the GPS hardware, whatever that may be. If what we have is this text format we should not reverse-translate it back any more than modem AT commands, it doesn't make sense I guess. So NMEA processing would be in userspace. And if the GPS is just streaming this text data over to the client, like Marcel says, it is more reasonable to just feed that up to userspace (no policy in the kernel). I am however aware of certain hardware such as the ST Microelectronis STA2062 produced for Garmin, which is *not* connected to any external chip, and is not talking over serial to any RSx port, and does not have an embedded firmware running on another SoC in any special GPS chip. And it is unassisted. Maybe that is an oddity. In the mobile phone business I guess it could be more common to have a separate SoC that by way of standards just stream NMEA data. Fusing that with other sensor data (accelerometer, compass, etc) is again indeed a userspace task. I hope NMEA includes very good timestamps. Thanks, Linus Walleij
Re: [PATCH v2 0/9] Serial slave device bus
> Am 20.01.2017 um 15:14 schrieb Marcel Holtmann: > > 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
Re: [PATCH v2 0/9] Serial slave device bus
> Am 20.01.2017 um 15:14 schrieb Marcel Holtmann : > > 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
GPS drivers (was Re: [PATCH v2 0/9] Serial slave device bus)
Hi! Switched subject: Rob's work is great for GPS and bluetooth, but this goes beyond it. > On Mon, Jan 16, 2017 at 11:54 PM, Rob Herringwrote: > > > 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. That is... not quite how GPSes work. What interface would you propose? It would be good to support error estimates in position/velocities and AGPS data upload. Now, NMEA knows about some of the complexity (not AGPS), but gets the details wrong. In particular, it would be good to have error estimates and velocities from the same moment you get position estimates. > 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. Well, many GPSes simply produce NMEA, and we have drivers for some other. Here's example driver: https://gitlab.com/tui/tui/blob/master/ofone/gps3.c Best regards, Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html signature.asc Description: Digital signature
GPS drivers (was Re: [PATCH v2 0/9] Serial slave device bus)
Hi! Switched subject: Rob's work is great for GPS and bluetooth, but this goes beyond it. > On Mon, Jan 16, 2017 at 11:54 PM, Rob Herring wrote: > > > 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. That is... not quite how GPSes work. What interface would you propose? It would be good to support error estimates in position/velocities and AGPS data upload. Now, NMEA knows about some of the complexity (not AGPS), but gets the details wrong. In particular, it would be good to have error estimates and velocities from the same moment you get position estimates. > 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. Well, many GPSes simply produce NMEA, and we have drivers for some other. Here's example driver: https://gitlab.com/tui/tui/blob/master/ofone/gps3.c Best regards, Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html signature.asc Description: Digital signature
Re: [PATCH v2 0/9] Serial slave device bus
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. Regards Marcel
Re: [PATCH v2 0/9] Serial slave device bus
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. Regards Marcel
Re: [PATCH v2 0/9] Serial slave device bus
On Mon, Jan 16, 2017 at 11:54 PM, Rob Herringwrote: > 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. Just my €0.01 (And by the way: awesome work on this series.) Yours, Linus Walleij
Re: [PATCH v2 0/9] Serial slave device bus
On Mon, Jan 16, 2017 at 11:54 PM, Rob Herring wrote: > 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. Just my €0.01 (And by the way: awesome work on this series.) Yours, Linus Walleij
Re: [PATCH v2 0/9] Serial slave device bus
On Mon, Jan 16, 2017 at 04:54:27PM -0600, Rob Herring wrote: > Here's a new version of the serdev bus support with all the review > feedback so far incorporated. I've left it named serdev for now pending > any further votes one way or the other, but I did rename the sysfs visible > portions to "serial". > > 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. > > I need a SoB from Alan on his patch 2 and would like review from Alan and/or > Peter on the locking in patch 5. I've applied the first 4 patches now, can you respin this and hopefully Peter will review that patch, as I'd like him to before taking it. thanks, greg k-h
Re: [PATCH v2 0/9] Serial slave device bus
On Mon, Jan 16, 2017 at 04:54:27PM -0600, Rob Herring wrote: > Here's a new version of the serdev bus support with all the review > feedback so far incorporated. I've left it named serdev for now pending > any further votes one way or the other, but I did rename the sysfs visible > portions to "serial". > > 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. > > I need a SoB from Alan on his patch 2 and would like review from Alan and/or > Peter on the locking in patch 5. I've applied the first 4 patches now, can you respin this and hopefully Peter will review that patch, as I'd like him to before taking it. thanks, greg k-h
Re: [PATCH v2 0/9] Serial slave device bus
Hi, On Fri, Jan 20, 2017 at 02:36:12AM +0100, msuchanek wrote: > On 2017-01-16 23:54, Rob Herring wrote: > > Here's a new version of the serdev bus support with all the review > > feedback so far incorporated. I've left it named serdev for now pending > > any further votes one way or the other, but I did rename the sysfs > > visible > > portions to "serial". > > > > 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. > > The whole point of the serial bus is to simplify and clean up support for > serial devices. > If tty users cannot use the kernel support for automagic kill > switches/resets/whatever with kernel GPIO or whatever framework and must > continue supporting userspace GPIO and hacks for writing IO space from > userland for their devices there is just no point. > I mean it's fine to add support for your single pet device but if you are > to support non-trivial number of devices they don't get all perfect kernel > driver overnight. And if you need userspace GPIO for half of your devices > you can just continue using it for all to *simplify* your userspace code. This is definitely not about a single pet device. It helps for most of the serial attached bluetooth chips. For example my work on the Nokia N-series bluetooth driver is waiting for this series and supporting the nokia bluetooth chips with userspace GPIOs is more or less impossible with the data being handled in the kernel, since GPIOs have to be toggled based on that data. Also there is the kurobox, which uses a serial attached board reset controller. It may not need extra GPIOs/regulators/whatever, but it must have a full-in-kernel driver, so that 'reboot' works as expected ;) > It has already happened for SPI devices and the implementation of the > userspace access to SPI is dragging for years. Talking about dragging for years: This series has been initially discussed in 2014. Implementing this step-by-step looks sensible to me. -- Sebastian signature.asc Description: PGP signature
Re: [PATCH v2 0/9] Serial slave device bus
Hi, On Fri, Jan 20, 2017 at 02:36:12AM +0100, msuchanek wrote: > On 2017-01-16 23:54, Rob Herring wrote: > > Here's a new version of the serdev bus support with all the review > > feedback so far incorporated. I've left it named serdev for now pending > > any further votes one way or the other, but I did rename the sysfs > > visible > > portions to "serial". > > > > 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. > > The whole point of the serial bus is to simplify and clean up support for > serial devices. > If tty users cannot use the kernel support for automagic kill > switches/resets/whatever with kernel GPIO or whatever framework and must > continue supporting userspace GPIO and hacks for writing IO space from > userland for their devices there is just no point. > I mean it's fine to add support for your single pet device but if you are > to support non-trivial number of devices they don't get all perfect kernel > driver overnight. And if you need userspace GPIO for half of your devices > you can just continue using it for all to *simplify* your userspace code. This is definitely not about a single pet device. It helps for most of the serial attached bluetooth chips. For example my work on the Nokia N-series bluetooth driver is waiting for this series and supporting the nokia bluetooth chips with userspace GPIOs is more or less impossible with the data being handled in the kernel, since GPIOs have to be toggled based on that data. Also there is the kurobox, which uses a serial attached board reset controller. It may not need extra GPIOs/regulators/whatever, but it must have a full-in-kernel driver, so that 'reboot' works as expected ;) > It has already happened for SPI devices and the implementation of the > userspace access to SPI is dragging for years. Talking about dragging for years: This series has been initially discussed in 2014. Implementing this step-by-step looks sensible to me. -- Sebastian signature.asc Description: PGP signature
Re: [PATCH v2 0/9] Serial slave device bus
On 2017-01-16 23:54, Rob Herring wrote: Here's a new version of the serdev bus support with all the review feedback so far incorporated. I've left it named serdev for now pending any further votes one way or the other, but I did rename the sysfs visible portions to "serial". 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. The whole point of the serial bus is to simplify and clean up support for serial devices. If tty users cannot use the kernel support for automagic kill switches/resets/whatever with kernel GPIO or whatever framework and must continue supporting userspace GPIO and hacks for writing IO space from userland for their devices there is just no point. I mean it's fine to add support for your single pet device but if you are to support non-trivial number of devices they don't get all perfect kernel driver overnight. And if you need userspace GPIO for half of your devices you can just continue using it for all to *simplify* your userspace code. It has already happened for SPI devices and the implementation of the userspace access to SPI is dragging for years. Thanks Michal
Re: [PATCH v2 0/9] Serial slave device bus
On 2017-01-16 23:54, Rob Herring wrote: Here's a new version of the serdev bus support with all the review feedback so far incorporated. I've left it named serdev for now pending any further votes one way or the other, but I did rename the sysfs visible portions to "serial". 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. The whole point of the serial bus is to simplify and clean up support for serial devices. If tty users cannot use the kernel support for automagic kill switches/resets/whatever with kernel GPIO or whatever framework and must continue supporting userspace GPIO and hacks for writing IO space from userland for their devices there is just no point. I mean it's fine to add support for your single pet device but if you are to support non-trivial number of devices they don't get all perfect kernel driver overnight. And if you need userspace GPIO for half of your devices you can just continue using it for all to *simplify* your userspace code. It has already happened for SPI devices and the implementation of the userspace access to SPI is dragging for years. Thanks Michal
Re: [PATCH v2 0/9] Serial slave device bus
Hi! > Here's a new version of the serdev bus support with all the review > feedback so far incorporated. I've left it named serdev for now pending > any further votes one way or the other, but I did rename the sysfs visible > portions to "serial". > > 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. > > I need a SoB from Alan on his patch 2 and would like review from Alan and/or > Peter on the locking in patch 5. > > I have hacked up versions of the BT ldisc and TI ST drivers moved over to > use the serdev bus. I have BT working on the HiKey board which has TI BT. > With the serdev bus support, it eliminates the need for the TI userspace > UIM daemon. I've made some progress cleaning up the TI-ST into proper > patches and also got it working at 3Mbps. > > Changelog is in individual patches. Previous version is here[1]. This > series and the mentioned drivers can be found here[2]. Series looks good to me. Thanks for doing the work. Best regards, Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Re: [PATCH v2 0/9] Serial slave device bus
Hi! > Here's a new version of the serdev bus support with all the review > feedback so far incorporated. I've left it named serdev for now pending > any further votes one way or the other, but I did rename the sysfs visible > portions to "serial". > > 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. > > I need a SoB from Alan on his patch 2 and would like review from Alan and/or > Peter on the locking in patch 5. > > I have hacked up versions of the BT ldisc and TI ST drivers moved over to > use the serdev bus. I have BT working on the HiKey board which has TI BT. > With the serdev bus support, it eliminates the need for the TI userspace > UIM daemon. I've made some progress cleaning up the TI-ST into proper > patches and also got it working at 3Mbps. > > Changelog is in individual patches. Previous version is here[1]. This > series and the mentioned drivers can be found here[2]. Series looks good to me. Thanks for doing the work. Best regards, Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
[PATCH v2 0/9] Serial slave device bus
Here's a new version of the serdev bus support with all the review feedback so far incorporated. I've left it named serdev for now pending any further votes one way or the other, but I did rename the sysfs visible portions to "serial". 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. I need a SoB from Alan on his patch 2 and would like review from Alan and/or Peter on the locking in patch 5. I have hacked up versions of the BT ldisc and TI ST drivers moved over to use the serdev bus. I have BT working on the HiKey board which has TI BT. With the serdev bus support, it eliminates the need for the TI userspace UIM daemon. I've made some progress cleaning up the TI-ST into proper patches and also got it working at 3Mbps. Changelog is in individual patches. Previous version is here[1]. This series and the mentioned drivers can be found here[2]. Rob [1] https://lkml.org/lkml/2017/1/6/411 [2] git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git serial-bus-v3 Alan Cox (1): tty_port: allow a port to be opened with a tty that has no file handle Rob Herring (8): tty: move the non-file related parts of tty_release to new tty_release_struct tty_port: make tty_port_register_device wrap tty_port_register_device_attr tty: constify tty_ldisc_receive_buf buffer pointer tty_port: Add port client functions dt/bindings: Add a serial/UART attached device binding serdev: Introduce new bus for serial attached devices serdev: add a tty port controller driver tty_port: register tty ports with serdev bus .../devicetree/bindings/serial/slave-device.txt| 36 ++ MAINTAINERS| 8 + drivers/char/Kconfig | 1 + drivers/tty/Makefile | 1 + drivers/tty/serdev/Kconfig | 16 + drivers/tty/serdev/Makefile| 5 + drivers/tty/serdev/core.c | 421 + drivers/tty/serdev/serdev-ttyport.c| 240 drivers/tty/tty_buffer.c | 19 +- drivers/tty/tty_io.c | 52 ++- drivers/tty/tty_port.c | 58 ++- include/linux/serdev.h | 234 include/linux/tty.h| 12 +- 13 files changed, 1062 insertions(+), 41 deletions(-) create mode 100644 Documentation/devicetree/bindings/serial/slave-device.txt create mode 100644 drivers/tty/serdev/Kconfig create mode 100644 drivers/tty/serdev/Makefile create mode 100644 drivers/tty/serdev/core.c create mode 100644 drivers/tty/serdev/serdev-ttyport.c create mode 100644 include/linux/serdev.h -- 2.10.1
[PATCH v2 0/9] Serial slave device bus
Here's a new version of the serdev bus support with all the review feedback so far incorporated. I've left it named serdev for now pending any further votes one way or the other, but I did rename the sysfs visible portions to "serial". 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. I need a SoB from Alan on his patch 2 and would like review from Alan and/or Peter on the locking in patch 5. I have hacked up versions of the BT ldisc and TI ST drivers moved over to use the serdev bus. I have BT working on the HiKey board which has TI BT. With the serdev bus support, it eliminates the need for the TI userspace UIM daemon. I've made some progress cleaning up the TI-ST into proper patches and also got it working at 3Mbps. Changelog is in individual patches. Previous version is here[1]. This series and the mentioned drivers can be found here[2]. Rob [1] https://lkml.org/lkml/2017/1/6/411 [2] git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git serial-bus-v3 Alan Cox (1): tty_port: allow a port to be opened with a tty that has no file handle Rob Herring (8): tty: move the non-file related parts of tty_release to new tty_release_struct tty_port: make tty_port_register_device wrap tty_port_register_device_attr tty: constify tty_ldisc_receive_buf buffer pointer tty_port: Add port client functions dt/bindings: Add a serial/UART attached device binding serdev: Introduce new bus for serial attached devices serdev: add a tty port controller driver tty_port: register tty ports with serdev bus .../devicetree/bindings/serial/slave-device.txt| 36 ++ MAINTAINERS| 8 + drivers/char/Kconfig | 1 + drivers/tty/Makefile | 1 + drivers/tty/serdev/Kconfig | 16 + drivers/tty/serdev/Makefile| 5 + drivers/tty/serdev/core.c | 421 + drivers/tty/serdev/serdev-ttyport.c| 240 drivers/tty/tty_buffer.c | 19 +- drivers/tty/tty_io.c | 52 ++- drivers/tty/tty_port.c | 58 ++- include/linux/serdev.h | 234 include/linux/tty.h| 12 +- 13 files changed, 1062 insertions(+), 41 deletions(-) create mode 100644 Documentation/devicetree/bindings/serial/slave-device.txt create mode 100644 drivers/tty/serdev/Kconfig create mode 100644 drivers/tty/serdev/Makefile create mode 100644 drivers/tty/serdev/core.c create mode 100644 drivers/tty/serdev/serdev-ttyport.c create mode 100644 include/linux/serdev.h -- 2.10.1