Message ID | 20230302105555.51417-1-hadess@hadess.net |
---|---|
State | New |
Headers | show |
Series | [v3,1/6] HID: logitech-hidpp: Simplify array length check | expand |
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@hadess.net> > --- For parts 4 and 5: Acked-by: Alan Stern <stern@rowland.harvard.edu>
On Thu, Mar 02, 2023 at 11:55:50AM +0100, Bastien Nocera wrote: > Use the compiler to force a 100-length array, rather than check the > length after the fact. > > Signed-off-by: Bastien Nocera <hadess@hadess.net> > --- > New in v2, following a review comment in the 1f20 enablement patch. > No changes in v3. > > drivers/hid/hid-logitech-hidpp.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) These all look good to me, and probably should go through the HID tree, so I've acked the USB-specific ones to allow that. thanks, greg k-h
On Thu, 02 Mar 2023 11:55:50 +0100, Bastien Nocera wrote: > Use the compiler to force a 100-length array, rather than check the > length after the fact. > > Applied to https://git.kernel.org/pub/scm/linux/kernel/git/hid/hid.git (for-6.4/logitech-hidpp), thanks! [1/6] HID: logitech-hidpp: Simplify array length check https://git.kernel.org/hid/hid/c/e0138763be2d [2/6] HID: logitech-hidpp: Add support for ADC measurement feature https://git.kernel.org/hid/hid/c/c361982a13c9 [3/6] HID: logitech-hidpp: Add Logitech G935 headset https://git.kernel.org/hid/hid/c/4a1529f44e32 [4/6] USB: core: Add wireless_status sysfs attribute https://git.kernel.org/hid/hid/c/f98e0640c5c6 [5/6] USB: core: Add API to change the wireless_status https://git.kernel.org/hid/hid/c/0a4db185f078 [6/6] HID: logitech-hidpp: Set wireless_status for G935 receiver https://git.kernel.org/hid/hid/c/d9d5623f37c0 Cheers,
diff --git a/drivers/hid/hid-logitech-hidpp.c b/drivers/hid/hid-logitech-hidpp.c index ff1fcebf2ec7..f55b2233dbea 100644 --- a/drivers/hid/hid-logitech-hidpp.c +++ b/drivers/hid/hid-logitech-hidpp.c @@ -1356,7 +1356,7 @@ static int hidpp20_map_battery_capacity(struct hid_device *hid_dev, int voltage) * there are a few devices that use different battery technology. */ - static const int voltages[] = { + static const int voltages[100] = { 4186, 4156, 4143, 4133, 4122, 4113, 4103, 4094, 4086, 4075, 4067, 4059, 4051, 4043, 4035, 4027, 4019, 4011, 4003, 3997, 3989, 3983, 3976, 3969, 3961, 3955, 3949, 3942, 3935, 3929, @@ -1371,8 +1371,6 @@ static int hidpp20_map_battery_capacity(struct hid_device *hid_dev, int voltage) int i; - BUILD_BUG_ON(ARRAY_SIZE(voltages) != 100); - if (unlikely(voltage < 3500 || voltage >= 5000)) hid_warn_once(hid_dev, "%s: possibly using the wrong voltage curve\n",
Use the compiler to force a 100-length array, rather than check the length after the fact. Signed-off-by: Bastien Nocera <hadess@hadess.net> --- New in v2, following a review comment in the 1f20 enablement patch. No changes in v3. drivers/hid/hid-logitech-hidpp.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)