On Thu, Mar 02, 2023 at 11:55:53AM +0100, Bastien Nocera wrote: > Add a wireless_status sysfs attribute to USB devices to keep track of > whether a USB device that's comprised of a receiver dongle and an emitter > device over a, most of the time proprietary, wireless link has its emitter > connected or disconnected. > > This will be used by user-space OS components to determine whether the > battery-powered part of the device is wirelessly connected or not, > allowing, for example: > - upower to hide the battery for devices where the device is turned off > but the receiver plugged in, rather than showing 0%, or other values > that could be confusing to users > - Pipewire to hide a headset from the list of possible inputs or outputs > or route audio appropriately if the headset is suddenly turned off, or > turned on > - libinput to determine whether a keyboard or mouse is present when its > receiver is plugged in. > > This is done at the USB interface level as: > - the interface on which the wireless status is detected is sometimes > not the same as where it could be consumed (eg. the audio interface > on a headset dongle will still appear even if the headset is turned > off), and we cannot have synchronisation of status across subsystems. > - this behaviour is not specific to HID devices, even if the protocols > used to determine whether or not the remote device is connected can > be HID. > > This is not an attribute that is meant to replace protocol specific > APIs, such as the ones available for WWAN, WLAN/Wi-Fi, or Bluetooth > or any other sort of networking, but solely for wireless devices with > an ad-hoc “lose it and your device is e-waste” receiver dongle. > > The USB interface will only be exporting the wireless_status sysfs > attribute if it gets set through the API exported in the next commit. > > Signed-off-by: Bastien Nocera <hadess@xxxxxxxxxx> > --- > Updated commit message and documentation in v2 so that the commit > doesn't need to reference older discussions. > > Trimmed the width of the sysfs docs in v3. Acked-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>