[PATCH] input: mt: Initialize slots to unused

Henrik Rydberg rydberg at euromail.se
Tue Aug 24 13:49:10 UTC 2010


On 08/24/2010 03:19 PM, Tim Gardner wrote:

> On 08/24/2010 02:28 AM, Henrik Rydberg wrote:
>> For MT slots, the ABS_MT_TRACKING_ID determines whether a slot is in use,
>> but currently leaves initialization up to the drivers. This patch sets the
>> slot state to unused upon creation.
>>
>> Suggested for Maverick.
>>
>> Signed-off-by: Henrik Rydberg<rydberg at euromail.se>
>> ---
>>   drivers/input/input.c |    7 +++++--
>>   1 files changed, 5 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/input/input.c b/drivers/input/input.c
>> index 085ea38..be58b63 100644
>> --- a/drivers/input/input.c
>> +++ b/drivers/input/input.c
>> @@ -1750,8 +1750,9 @@ EXPORT_SYMBOL(input_free_device);
>>    * @dev: input device supporting MT events and finger tracking
>>    * @num_slots: number of slots used by the device
>>    *
>> - * This function allocates all necessary memory for MT slot handling
>> - * in the input device, and adds ABS_MT_SLOT to the device capabilities.
>> + * This function allocates all necessary memory for MT slot handling in the
>> + * input device, and adds ABS_MT_SLOT to the device capabilities. All slots
>> + * are initially unused with ABS_MT_TRACKING_ID == -1.
>>    */
>>   int input_mt_create_slots(struct input_dev *dev, unsigned int num_slots)
>>   {
>> @@ -1764,6 +1765,8 @@ int input_mt_create_slots(struct input_dev *dev,
>> unsigned int num_slots)
>>
>>       dev->mtsize = num_slots;
>>       input_set_abs_params(dev, ABS_MT_SLOT, 0, num_slots - 1, 0, 0);
>> +    while (num_slots--)
>> +        dev->mt[num_slots].abs[ABS_MT_TRACKING_ID - ABS_MT_FIRST] = -1;
>>
>>       return 0;
>>   }
> 
> 'ABS_MT_TRACKING_ID - ABS_MT_FIRST' is a really unintuitive way of indexing an
> array. How about a one liner explaining why you're shifting the
> dev->mt[num_slots].abs[] index down by 0x30 ?


Ah, yes. There were three versions of memory-reducing schemes going upstream
before Dmitry picked the first version and modified it a bit. I guess all
versions were unintuitive one way or the other. ;-)

New patch with comment sent.

Thanks,
Henrik




More information about the kernel-team mailing list