diff options
Diffstat (limited to 'drivers/input/input.c')
| -rw-r--r-- | drivers/input/input.c | 22 | 
1 files changed, 13 insertions, 9 deletions
diff --git a/drivers/input/input.c b/drivers/input/input.c index 04217c2e345c..213e3a1903ee 100644 --- a/drivers/input/input.c +++ b/drivers/input/input.c @@ -1974,18 +1974,22 @@ static unsigned int input_estimate_events_per_packet(struct input_dev *dev)  	events = mt_slots + 1; /* count SYN_MT_REPORT and SYN_REPORT */ -	for (i = 0; i < ABS_CNT; i++) { -		if (test_bit(i, dev->absbit)) { -			if (input_is_mt_axis(i)) -				events += mt_slots; -			else -				events++; +	if (test_bit(EV_ABS, dev->evbit)) { +		for (i = 0; i < ABS_CNT; i++) { +			if (test_bit(i, dev->absbit)) { +				if (input_is_mt_axis(i)) +					events += mt_slots; +				else +					events++; +			}  		}  	} -	for (i = 0; i < REL_CNT; i++) -		if (test_bit(i, dev->relbit)) -			events++; +	if (test_bit(EV_REL, dev->evbit)) { +		for (i = 0; i < REL_CNT; i++) +			if (test_bit(i, dev->relbit)) +				events++; +	}  	/* Make room for KEY and MSC events */  	events += 7;  | 
