Dmitry Torokhov
2e210bbb74
HID: input: fix battery level reporting on BT mice
...
The commit 581c448476 ("HID: input: map digitizer battery usage")
assumed that devices having input (qas opposed to feature) report for
battery strength would report the data on their own, without the need to
be polled by the kernel; unfortunately it is not so. Many wireless mice
do not send unsolicited reports with battery strength data and have to
be polled explicitly. As a complication, stylus devices on digitizers
are not normally connected to the base and thus can not be polled - the
base can only determine battery strength in the stylus when it is in
proximity.
To solve this issue, we add a special flag that tells the kernel
to avoid polling the device (and expect unsolicited reports) and set it
when report field with physical usage of digitizer stylus (HID_DG_STYLUS).
Unless this flag is set, and we have not seen the unsolicited reports,
the kernel will attempt to poll the device when userspace attempts to
read "capacity" and "state" attributes of power_supply object
corresponding to the devices battery.
Fixes: 581c448476 ("HID: input: map digitizer battery usage")
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=198095
Cc: stable@vger.kernel.org
Reported-and-tested-by: Martin van Es <martin@mrvanes.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2018-04-09 09:26:12 +02:00
..
i2c-hid
Merge branch 'for-4.17/hid-i2c' into for-linus
2018-04-05 13:18:26 +02:00
intel-ish-hid
HID: intel-ish-hid: Enable Cannon Lake and Coffee Lake laptop/desktop
2018-01-23 15:40:57 +01:00
usbhid
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
2018-04-05 11:53:34 -07:00
hid-a4tech.c
hid-accutouch.c
HID: Accutouch: Add driver for ELO Accutouch 2216 USB Touchscreens
2017-03-21 15:03:55 +01:00
hid-alps.c
HID: alps: add new U1 device ID
2017-10-17 12:41:23 +02:00
hid-apple.c
HID: apple: Use country code to detect ISO keyboards
2017-06-08 13:58:03 +02:00
hid-appleir.c
treewide: setup_timer() -> timer_setup()
2017-11-21 15:57:07 -08:00
hid-asus.c
Merge branch 'for-4.17/upstream' into for-linus
2018-04-05 13:28:46 +02:00
hid-aureal.c
HID: fix some indenting issues
2015-10-21 13:15:53 +02:00
hid-axff.c
hid-belkin.c
hid-betopff.c
hid-cherry.c
hid-chicony.c
HID: move Asus keyboard support from hid-chicony to hid-asus
2017-06-08 13:47:52 +02:00
hid-cmedia.c
HID: Support for CMedia CM6533 HID audio jack controls
2016-03-02 10:31:36 +01:00
hid-core.c
Merge branch 'for-4.17/upstream' into for-linus
2018-04-05 13:28:46 +02:00
hid-corsair.c
HID: corsair: Add K70 Vengeance and K70 RAPIDFIRE to
2018-02-16 13:38:16 +01:00
hid-cp2112.c
HID: cp2112: Fix I2C_BLOCK_DATA transactions
2017-11-21 21:39:45 +01:00
hid-cypress.c
HID: hid-cypress: validate length of report
2017-01-06 16:06:43 +01:00
hid-debug.c
vfs: do bulk POLL* -> EPOLL* replacement
2018-02-11 14:34:03 -08:00
hid-dr.c
Revert "HID: dragonrise: fix HID Descriptor for 0x0006 PID"
2016-10-10 10:52:01 +02:00
hid-elan.c
HID: Add driver for USB ELAN Touchpad
2018-02-16 13:25:04 +01:00
hid-elecom.c
HID: elecom: add support for EX-G M-XT4DRBK trackball
2018-03-06 15:15:47 +01:00
hid-elo.c
HID: elo: clear BTN_LEFT mapping
2017-11-24 14:40:23 +01:00
hid-emsff.c
hid-ezkey.c
hid-gaff.c
hid-gembird.c
hid-generic.c
HID: core: rewrite the hid-generic automatic unbind
2018-03-06 16:00:51 +01:00
hid-gfrm.c
HID: hid-gfrm: avoid warning for input_configured API change
2015-11-05 10:15:35 -08:00
hid-google-hammer.c
HID: google: Enable PM Full On mode when adjusting backlight
2018-03-28 16:12:58 +02:00
hid-gt683r.c
HID: use to_hid_device()
2015-12-28 13:41:44 +01:00
hid-gyration.c
hid-holtek-kbd.c
hid-holtek-mouse.c
hid-holtekff.c
HID: holtekff: move MODULE_* parameters out of #ifdef block
2017-12-01 09:31:36 +01:00
hid-hyperv.c
HID: hyperv: pr_err() strings should end with newlines
2017-10-05 11:27:08 +02:00
hid-icade.c
hid-ids.h
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
2018-04-05 11:53:34 -07:00
hid-input.c
HID: input: fix battery level reporting on BT mice
2018-04-09 09:26:12 +02:00
hid-ite.c
HID: ite: Add hid-ite driver
2017-05-11 10:27:48 +02:00
hid-jabra.c
HID: Add special driver for Jabra devices
2017-11-21 12:54:58 +01:00
hid-kensington.c
hid-keytouch.c
hid-kye.c
scripts/spelling.txt: add "comsume(r)" pattern and fix typo instances
2017-02-27 18:43:47 -08:00
hid-lcpower.c
hid-led.c
HID: hid-led: fix issue with transfer buffer not being dma capable
2016-10-10 10:47:03 +02:00
hid-lenovo.c
HID: lenovo: Don't use stack variables for DMA buffers
2016-03-29 15:39:36 +02:00
hid-lg.c
HID: hid-lg: make array cbuf static const to shink object code size
2017-09-06 10:58:54 +02:00
hid-lg.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
hid-lg2ff.c
hid-lg3ff.c
hid-lg4ff.c
HID: hid-logitech: remove redundant assignment to pointer value
2017-10-19 13:52:38 +02:00
hid-lg4ff.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
hid-lgff.c
hid-logitech-dj.c
HID: logitech-dj: allow devices to request full pairing information
2017-04-06 14:36:36 +02:00
hid-logitech-hidpp.c
HID: logitech-hidpp: fix mistake in printk, "feeback" -> "feedback"
2017-10-12 15:32:43 +02:00
hid-magicmouse.c
treewide: Fix function prototypes for module_param_call()
2017-10-31 15:30:37 +01:00
hid-mf.c
HID: hid-mf: add force feedback support for Mayflash DolphinBar and GameCube
2017-01-11 22:12:44 +01:00
hid-microsoft.c
HID: multitouch: enable Surface 3 Type Cover Pro to report multitouch data
2017-01-20 15:17:19 +01:00
hid-monterey.c
hid-multitouch.c
Merge branch 'for-4.17/upstream' into for-linus
2018-04-05 13:28:46 +02:00
hid-nti.c
HID: Add quirk driver for NTI USB-SUN adapter
2017-03-06 13:16:33 +01:00
hid-ntrig.c
HID: hid-ntrig: use true and false for boolean values
2018-03-06 15:19:13 +01:00
hid-ortek.c
HID: ortek: add one more buggy device
2017-07-24 17:38:21 +02:00
hid-penmount.c
HID: penmount: report only one button for PenMount 6000 USB touchscreen controller
2016-03-10 17:17:26 +01:00
hid-petalynx.c
hid-picolcd.h
hid-picolcd_backlight.c
hid-picolcd_cir.c
media: rc: rename RC_TYPE_* to RC_PROTO_* and RC_BIT_* to RC_PROTO_BIT_*
2017-08-20 10:02:48 -04:00
hid-picolcd_core.c
hid-picolcd_debugfs.c
HID: picoLCD: Spelling s/REPORT_WRTIE_MEMORY/REPORT_WRITE_MEMORY/
2017-03-24 15:45:04 +01:00
hid-picolcd_fb.c
hid-picolcd_lcd.c
hid-picolcd_leds.c
HID: use to_hid_device()
2015-12-28 13:41:44 +01:00
hid-pl.c
hid-plantronics.c
hid-primax.c
hid-prodikeys.c
treewide: setup_timer() -> timer_setup()
2017-11-21 15:57:07 -08:00
hid-quirks.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
2018-04-05 11:53:34 -07:00
hid-retrode.c
HID: Add driver for Retrode2 joypad adapter
2017-06-22 14:44:11 +02:00
hid-rmi.c
HID: Fix hid_report_len usage
2018-02-16 13:30:56 +01:00
hid-roccat-arvo.c
HID: use kobj_to_dev()
2015-12-28 13:41:51 +01:00
hid-roccat-arvo.h
hid-roccat-common.c
HID: use kobj_to_dev()
2015-12-28 13:41:51 +01:00
hid-roccat-common.h
hid-roccat-isku.c
HID: use kobj_to_dev()
2015-12-28 13:41:51 +01:00
hid-roccat-isku.h
hid-roccat-kone.c
HID: use kobj_to_dev()
2015-12-28 13:41:51 +01:00
hid-roccat-kone.h
hid-roccat-koneplus.c
HID: use kobj_to_dev()
2015-12-28 13:41:51 +01:00
hid-roccat-koneplus.h
hid-roccat-konepure.c
hid-roccat-kovaplus.c
HID: roccat: prevent an out of bounds read in kovaplus_profile_activated()
2018-01-23 15:46:58 +01:00
hid-roccat-kovaplus.h
hid-roccat-lua.c
HID: use kobj_to_dev()
2015-12-28 13:41:51 +01:00
hid-roccat-lua.h
hid-roccat-pyra.c
HID: use kobj_to_dev()
2015-12-28 13:41:51 +01:00
hid-roccat-pyra.h
hid-roccat-ryos.c
hid-roccat-savu.c
hid-roccat-savu.h
hid-roccat.c
vfs: do bulk POLL* -> EPOLL* replacement
2018-02-11 14:34:03 -08:00
hid-saitek.c
HID: Add a new Saitek mouse device ID (RAT 9)
2016-08-02 16:45:17 +02:00
hid-samsung.c
hid-sensor-custom.c
vfs: do bulk POLL* -> EPOLL* replacement
2018-02-11 14:34:03 -08:00
hid-sensor-hub.c
HID: hid-sensor-hub: Force logical minimum to 1 for power and report state
2017-08-09 22:15:59 +02:00
hid-sjoy.c
hid-sony.c
HID: sony: Add touchpad support for NSG-MR5U and NSG-MR7U remotes
2018-03-06 15:22:06 +01:00
hid-speedlink.c
hid-steelseries.c
HID: use to_hid_device()
2015-12-28 13:41:44 +01:00
hid-sunplus.c
hid-tivo.c
hid-tmff.c
HID: Add ID 044f:b605 ThrustMaster, Inc. force feedback Racing Wheel
2017-11-07 10:04:46 +01:00
hid-topseed.c
hid-twinhan.c
hid-uclogic.c
HID: core: remove the need for HID_QUIRK_NO_EMPTY_INPUT
2018-03-23 15:44:57 +01:00
hid-udraw-ps3.c
HID: udraw-ps3: accel_limits is local to the driver
2016-11-15 14:23:17 +01:00
hid-waltop.c
HID: Remove broken links to tablet descriptions
2016-09-19 14:32:21 +02:00
hid-wiimote-core.c
treewide: setup_timer() -> timer_setup()
2017-11-21 15:57:07 -08:00
hid-wiimote-debug.c
hid-wiimote-modules.c
HID: wiimote: Fix wiimote mp scale linearization
2016-03-18 17:31:38 +01:00
hid-wiimote.h
HID: use to_hid_device()
2015-12-28 13:41:44 +01:00
hid-xinmo.c
HID: xinmo: fix for out of range for THT 2P arcade controller.
2017-03-24 15:43:03 +01:00
hid-zpff.c
hid-zydacron.c
hidraw.c
vfs: do bulk POLL* -> EPOLL* replacement
2018-02-11 14:34:03 -08:00
Kconfig
Merge branch 'for-4.17/hid-elan' into for-linus
2018-04-05 13:17:23 +02:00
Makefile
Merge branch 'for-4.17/hid-elan' into for-linus
2018-04-05 13:17:23 +02:00
uhid.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
2018-04-05 11:53:34 -07:00
wacom.h
HID: wacom: Add ability to provide explicit battery status info
2017-05-05 21:46:10 +02:00
wacom_sys.c
HID: Fix hid_report_len usage
2018-02-16 13:30:56 +01:00
wacom_wac.c
HID: wacom: wacom_wac_collection() is local to wacom_wac.c
2018-03-07 15:34:51 +01:00
wacom_wac.h
HID: wacom: generic: add the "Report Valid" usage
2018-03-07 15:21:44 +01:00