On Thu, Nov 15, 2018 at 7:01 AM Wolfram Sang <wsa@xxxxxxxxxxxxx> wrote: > > What we could do though, is expose I3C devices that do not have a > > driver in kernel space, like spidev does. > > ... > > > Mark, Wolfram, Arnd, Greg, any opinion? > > Is there a benefit for having drivers in userspace? My gut feeling is to > encourage people to write kernel drivers. If this is, for some reason, > not possible for some driver, then we have a use case at hand to test > the then-to-be-developed userspace interface against. Until then, I > personally wouldn't waste effort on designing it without a user in > sight. > > Dunno if you have that, but a debug interface (exchanging data with > clients) on the other hand would be super useful most probably. Maybe > you can start having that in debugfs and already learn from it if you > ever want to move some interface outside of debugfs? I think it may depend a little bit on the complexity we require for a user interface. If it's basically just pread/pwrite, then the debugfs would not look any different from a stable interface, and there is little risk of getting it wrong. The more complex the interface turns out to be, the more cautious we may want to be about declaring it stable. Other than that, I agree we should encourage users to write kernel drivers, but given the precedent of uio, libusb, spidev, i2c-dev, and vfio, it does seem extremely likely that users will have requirements for it, and I think it's a good idea to start the design discussion before users start building their own interfaces to do the same thing badly. Arnd