Re: [RFC] USB: core: Add wireless_status sysfs attribute

From: Greg Kroah-Hartman
Date: Tue Jan 17 2023 - 11:14:48 EST


On Tue, Jan 17, 2023 at 04:17:23PM +0100, Bastien Nocera wrote:
> Hey,
>
> TLDR: new sysfs attribute that makes it possible to leave receivers for
> wireless headsets plugged in. At the USB level, or at the base driver
> level?
>
> Longer version:
> I started working on implementing support for some wireless headsets
> that use USB receivers to communicate to the headset itself.

Would this also include wireless keyboard/mice recievers?

Why is "wireless" somehow a special attribute that userspace needs to
know about?

> The USB receivers have multiple interfaces, and independent drivers for
> each, as is wont to do for USB devices. There's usually a HID interface
> to do the custom stuff (LEDs, battery status, connection status, etc.)
> and a standard audio class interface.

This probably should be an interface attribute (as Alan points out), as
it's not a device attribute (think about updating the firmware for one
of these, that's on an interface for the reciever you plugged in, not on
the other end of the wireless connection...)

> Those drivers don't know anything about each other, and getting them to
> talk to each other would be rather complicated. Additionally the audio
> interface is still somewhat functional when the headset is
> disconnected.

Those drivers shouldn't know about each other, that's up to userspace to
group and control if needed. No kernel interactions should be needed.

> In the end, I came up with this new sysfs attribute that would make it
> possible for user-space (PulseAudio or Pipewire) to know whether the
> receiver is plugged in or not.

Again, should be an interface attribute, if at all.

> That allows user-space to not show the battery information for the
> device (rather than 0 percent), not offer the headset as an output, and
> potentially automatically switch to it when the headset is powered on.

Same for a keyboard/mouse, right?

thanks,

greg k-h