Message ID | 20211026143352.78387-1-heikki.krogerus@linux.intel.com (mailing list archive) |
---|---|
Headers | show |
Series | USB Power Delivery character device interface | expand |
On Tue, Oct 26, 2021 at 05:33:48PM +0300, Heikki Krogerus wrote: > Hi, > > This is the proposal for USB PD character devices that we could use to > communicate USB PD messages directly with the USB PD capable partners, > ports and cable plugs from user space. Originally I proposed this idea > here as a better way to get the PDOs from the partners (and ports and > plugs): https://lkml.org/lkml/2021/10/8/331 You should put the info there (and please use lore.kernel.org in the future, not lkml.org as we have no control over that site), into this 0/X message as I have no idea _why_ you need a char device and why the sysfs interface will not work. So, why not sysfs? :) thanks, greg k-h
Hi Greg,
On Tue, Oct 26, 2021 at 05:06:28PM +0200, Greg KH wrote:
> So, why not sysfs? :)
This is about allowing the user space to take over the USB Power
Delivery communication and policy decisions in some cases. The user
space needs to be able to send and receive raw USB Power Delivery
messages one way or the other. I don't care about what's the interface
that we use.
Here we are talking about the PDOs, so basically the power contract.
Even if we figured out a way how to expose all the information from
the Capability, Status, Alert and what ever messages you need to the
user space via sysfs, and then allow the user to separately send the
Request Message, we would have only covered the power contract. That
does not cover everything, but it would also be unnecessarily
complicated to handle with separate sysfs files IMO.
Even with the power contract it would make more sense to me to just
allow the user space to simply read and write the raw messages, but
when we go the other things like Vendor Specific Messages, I don't
think there is any other way.
So we really do need to be able to tap into the USB Power Delivery
protocol layer directly from user space. I don't care about how we do
that - character device is just a suggestion, although, it does still
feel correct to me. Is there some other way we could do this?
thanks,
On Wed, Oct 27, 2021 at 02:02:42PM +0300, Heikki Krogerus wrote: > Hi Greg, > > On Tue, Oct 26, 2021 at 05:06:28PM +0200, Greg KH wrote: > > So, why not sysfs? :) > > This is about allowing the user space to take over the USB Power > Delivery communication and policy decisions in some cases. The user > space needs to be able to send and receive raw USB Power Delivery > messages one way or the other. I don't care about what's the interface > that we use. > > Here we are talking about the PDOs, so basically the power contract. > Even if we figured out a way how to expose all the information from > the Capability, Status, Alert and what ever messages you need to the > user space via sysfs, and then allow the user to separately send the > Request Message, we would have only covered the power contract. That > does not cover everything, but it would also be unnecessarily > complicated to handle with separate sysfs files IMO. > > Even with the power contract it would make more sense to me to just > allow the user space to simply read and write the raw messages, but > when we go the other things like Vendor Specific Messages, I don't > think there is any other way. > > So we really do need to be able to tap into the USB Power Delivery > protocol layer directly from user space. I don't care about how we do > that - character device is just a suggestion, although, it does still > feel correct to me. Is there some other way we could do this? Ok, a char device sounds fine, but _what_ userspace code is going to be using this interface? We need to have a working version of that as well before we could take this new interface, otherwise it wouldn't make much sense. And why does userspace have to do this, what is wrong with the kernel doing it as it does today? I.e. what is broken that adding a new api to the kernel is going to fix? That needs to be documented really really well. thanks, greg k-h
On Wed, Oct 27, 2021 at 02:53:57PM +0200, Greg KH wrote: > On Wed, Oct 27, 2021 at 02:02:42PM +0300, Heikki Krogerus wrote: > > Hi Greg, > > > > On Tue, Oct 26, 2021 at 05:06:28PM +0200, Greg KH wrote: > > > So, why not sysfs? :) > > > > This is about allowing the user space to take over the USB Power > > Delivery communication and policy decisions in some cases. The user > > space needs to be able to send and receive raw USB Power Delivery > > messages one way or the other. I don't care about what's the interface > > that we use. > > > > Here we are talking about the PDOs, so basically the power contract. > > Even if we figured out a way how to expose all the information from > > the Capability, Status, Alert and what ever messages you need to the > > user space via sysfs, and then allow the user to separately send the > > Request Message, we would have only covered the power contract. That > > does not cover everything, but it would also be unnecessarily > > complicated to handle with separate sysfs files IMO. > > > > Even with the power contract it would make more sense to me to just > > allow the user space to simply read and write the raw messages, but > > when we go the other things like Vendor Specific Messages, I don't > > think there is any other way. > > > > So we really do need to be able to tap into the USB Power Delivery > > protocol layer directly from user space. I don't care about how we do > > that - character device is just a suggestion, although, it does still > > feel correct to me. Is there some other way we could do this? > > Ok, a char device sounds fine, but _what_ userspace code is going to be > using this interface? We need to have a working version of that as well > before we could take this new interface, otherwise it wouldn't make much > sense. > > And why does userspace have to do this, what is wrong with the kernel > doing it as it does today? I.e. what is broken that adding a new api to > the kernel is going to fix? > > That needs to be documented really really well. Sure. thanks,