|
@@ -502,7 +502,7 @@ static int mt_compute_slot(struct mt_device *td, struct input_dev *input)
|
|
|
*/
|
|
|
static void mt_complete_slot(struct mt_device *td, struct input_dev *input)
|
|
|
{
|
|
|
- if (td->curvalid) {
|
|
|
+ if (td->curvalid || (td->mtclass.quirks & MT_QUIRK_ALWAYS_VALID)) {
|
|
|
int slotnum = mt_compute_slot(td, input);
|
|
|
struct mt_slot *s = &td->curdata;
|
|
|
|
|
@@ -553,9 +553,7 @@ static int mt_event(struct hid_device *hid, struct hid_field *field,
|
|
|
if (hid->claimed & HID_CLAIMED_INPUT) {
|
|
|
switch (usage->hid) {
|
|
|
case HID_DG_INRANGE:
|
|
|
- if (quirks & MT_QUIRK_ALWAYS_VALID)
|
|
|
- td->curvalid = true;
|
|
|
- else if (quirks & MT_QUIRK_VALID_IS_INRANGE)
|
|
|
+ if (quirks & MT_QUIRK_VALID_IS_INRANGE)
|
|
|
td->curvalid = value;
|
|
|
break;
|
|
|
case HID_DG_TIPSWITCH:
|