Hi Dmitry,

Sorry for late to reply you and thanks for your command

Yes, I also agree, it looks great than my original code.
So, should I modify this and upstream v3 patch for you?

thank you,
duson


Dmitry Torokhov <dmitry.torok...@gmail.com> 於 2014/7/25 上午2:05 寫道:

> Hi,
> 
> On Tue, Jan 07, 2014 at 11:08:03AM +0800, Duson Lin wrote:
>> +/*
>> + ******************************************************************
>> + * General functions
>> + ******************************************************************
>> + */
>> +/*
>> + * (value from firmware) * 10 + 790 = dpi
>> + * we also have to convert dpi to dots/mm (*10/254 to avoid floating point)
>> + */
>> +static unsigned int elan_convert_res(char val)
>> +{
>> +    int res;
>> +    if (val & 0x80) {
>> +            val = ~val + 1;
>> +            res = (790 - val * 10) * 10 / 254;
>> +    } else
>> +            res = (val * 10 + 790) * 10 / 254;
>> +    return res;
>> +}
> 
> Why isn't this simply:
> 
>       res = ((int)val * 10 + 790) * 10 / 254;
> 
> ?
> 
> If high bit is 1 you basically do the 2 complement by hand to get to
> positive and then subtract. Which shoudl be the same as adding positive
> value.
> 
> Thanks.
> 
> -- 
> Dmitry
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to