Commit cb3fd788 authored by Tomasz Pakuła's avatar Tomasz Pakuła Committed by Jiri Kosina
Browse files

HID: pidff: Completely rework and fix pidff_reset function



Previously, it was assumed that DEVICE_CONTROL usage is always an array
but a lot of devices implements it as a bitmask variable. This led to
the pidff_reset function not working and causing errors in such cases.

Selectors can come in three types. One selection of a set, N selections
and Any selection in form of bitmask as from USB Hid Usage Tables v1.5,
subsection 3.4.2.1

Added pidff_send_device_control which handles usage flag check which
decides whether DEVICE_CONTROL should be handled as "One selection of a
set" or "Any selection of a set".

Reset was triggered once, on device initialization. Now, it's triggered
every time when uploading an effect to an empty device (no currently
stored effects), tracked by pidff->effect_count variable.

Co-developed-by: default avatarMakarenko Oleg <oleg@makarenk.ooo>
Signed-off-by: default avatarMakarenko Oleg <oleg@makarenk.ooo>
Signed-off-by: default avatarTomasz Pakuła <tomasz.pakula.oficjalny@gmail.com>
Reviewed-by: default avatarMichał Kopeć <michal@nozomi.space>
Reviewed-by: default avatarPaul Dino Jones <paul@spacefreak18.xyz>
Tested-by: default avatarPaul Dino Jones <paul@spacefreak18.xyz>
Tested-by: default avatarCristóferson Bueno <cbueno81@gmail.com>
Tested-by: default avatarPablo Cisneros <patchkez@protonmail.com>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.com>
parent abdbf876
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment