diff mbox

Input: synaptics-rmi4: Fix maximum size check for F12 control register 8

Message ID 1468971821-16982-1-git-send-email-aduggan@synaptics.com (mailing list archive)
State Accepted
Headers show

Commit Message

Andrew Duggan July 19, 2016, 11:43 p.m. UTC
According to the RMI4 spec the maximum size of F12 control register 8 is
15 bytes. The current code incorrectly reports an error if control 8 is
greater then 14. Making sensors with a control register 8 with 15 bytes
unusable.

Signed-off-by: Andrew Duggan <aduggan@synaptics.com>
Reported-by: Chris Healy <cphealy@gmail.com>
Cc: stable@vger.kernel.org
---
 drivers/input/rmi4/rmi_f12.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

Comments

Dmitry Torokhov July 20, 2016, midnight UTC | #1
On Tue, Jul 19, 2016 at 04:43:41PM -0700, Andrew Duggan wrote:
> According to the RMI4 spec the maximum size of F12 control register 8 is
> 15 bytes. The current code incorrectly reports an error if control 8 is
> greater then 14. Making sensors with a control register 8 with 15 bytes
> unusable.
> 
> Signed-off-by: Andrew Duggan <aduggan@synaptics.com>
> Reported-by: Chris Healy <cphealy@gmail.com>
> Cc: stable@vger.kernel.org
> ---
>  drivers/input/rmi4/rmi_f12.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/input/rmi4/rmi_f12.c b/drivers/input/rmi4/rmi_f12.c
> index c30fd86..9b0d9f7 100644
> --- a/drivers/input/rmi4/rmi_f12.c
> +++ b/drivers/input/rmi4/rmi_f12.c
> @@ -68,7 +68,7 @@ static int rmi_f12_read_sensor_tuning(struct f12_data *f12)
>  	struct rmi_device *rmi_dev = fn->rmi_dev;
>  	int ret;
>  	int offset;
> -	u8 buf[14];
> +	u8 buf[15];
>  	int pitch_x = 0;
>  	int pitch_y = 0;
>  	int clip_x_low = 0;
> @@ -88,8 +88,9 @@ static int rmi_f12_read_sensor_tuning(struct f12_data *f12)
>  
>  	offset = rmi_register_desc_calc_reg_offset(&f12->control_reg_desc, 8);
>  
> -	if (item->reg_size > 14) {
> -		dev_err(&fn->dev, "F12 control8 should be 14 bytes, not: %ld\n",
> +	if (item->reg_size > 15) {

Do you mind if I change this to sizeof(buf)?

> +		dev_err(&fn->dev,
> +			"F12 control8 should be a maximum of 15 bytes, not: %ld\n",
>  			item->reg_size);
>  		return -ENODEV;
>  	}
> -- 
> 2.7.4
>
Andrew Duggan July 20, 2016, 12:02 a.m. UTC | #2
On 07/19/2016 05:00 PM, Dmitry Torokhov wrote:
> On Tue, Jul 19, 2016 at 04:43:41PM -0700, Andrew Duggan wrote:
>> According to the RMI4 spec the maximum size of F12 control register 8 is
>> 15 bytes. The current code incorrectly reports an error if control 8 is
>> greater then 14. Making sensors with a control register 8 with 15 bytes
>> unusable.
>>
>> Signed-off-by: Andrew Duggan <aduggan@synaptics.com>
>> Reported-by: Chris Healy <cphealy@gmail.com>
>> Cc: stable@vger.kernel.org
>> ---
>>   drivers/input/rmi4/rmi_f12.c | 7 ++++---
>>   1 file changed, 4 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/input/rmi4/rmi_f12.c b/drivers/input/rmi4/rmi_f12.c
>> index c30fd86..9b0d9f7 100644
>> --- a/drivers/input/rmi4/rmi_f12.c
>> +++ b/drivers/input/rmi4/rmi_f12.c
>> @@ -68,7 +68,7 @@ static int rmi_f12_read_sensor_tuning(struct f12_data *f12)
>>   	struct rmi_device *rmi_dev = fn->rmi_dev;
>>   	int ret;
>>   	int offset;
>> -	u8 buf[14];
>> +	u8 buf[15];
>>   	int pitch_x = 0;
>>   	int pitch_y = 0;
>>   	int clip_x_low = 0;
>> @@ -88,8 +88,9 @@ static int rmi_f12_read_sensor_tuning(struct f12_data *f12)
>>   
>>   	offset = rmi_register_desc_calc_reg_offset(&f12->control_reg_desc, 8);
>>   
>> -	if (item->reg_size > 14) {
>> -		dev_err(&fn->dev, "F12 control8 should be 14 bytes, not: %ld\n",
>> +	if (item->reg_size > 15) {
> Do you mind if I change this to sizeof(buf)?

Nope, that is fine with me.

Thanks,
Andrew

>
>> +		dev_err(&fn->dev,
>> +			"F12 control8 should be a maximum of 15 bytes, not: %ld\n",
>>   			item->reg_size);
>>   		return -ENODEV;
>>   	}
>> -- 
>> 2.7.4
>>

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Nitin Chaudhary July 20, 2016, 1:16 a.m. UTC | #3
Tested on i.MX6Q Board with Synaptics 7813 Touch Controller, works fine.

Tested by: Nitin Chaudhary <nitinchaudhary1289@gmail.com>

On Tue, Jul 19, 2016 at 4:43 PM, Andrew Duggan <aduggan@synaptics.com> wrote:
> According to the RMI4 spec the maximum size of F12 control register 8 is
> 15 bytes. The current code incorrectly reports an error if control 8 is
> greater then 14. Making sensors with a control register 8 with 15 bytes
> unusable.
>
> Signed-off-by: Andrew Duggan <aduggan@synaptics.com>
> Reported-by: Chris Healy <cphealy@gmail.com>
> Cc: stable@vger.kernel.org
> ---
>  drivers/input/rmi4/rmi_f12.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/input/rmi4/rmi_f12.c b/drivers/input/rmi4/rmi_f12.c
> index c30fd86..9b0d9f7 100644
> --- a/drivers/input/rmi4/rmi_f12.c
> +++ b/drivers/input/rmi4/rmi_f12.c
> @@ -68,7 +68,7 @@ static int rmi_f12_read_sensor_tuning(struct f12_data *f12)
>         struct rmi_device *rmi_dev = fn->rmi_dev;
>         int ret;
>         int offset;
> -       u8 buf[14];
> +       u8 buf[15];
>         int pitch_x = 0;
>         int pitch_y = 0;
>         int clip_x_low = 0;
> @@ -88,8 +88,9 @@ static int rmi_f12_read_sensor_tuning(struct f12_data *f12)
>
>         offset = rmi_register_desc_calc_reg_offset(&f12->control_reg_desc, 8);
>
> -       if (item->reg_size > 14) {
> -               dev_err(&fn->dev, "F12 control8 should be 14 bytes, not: %ld\n",
> +       if (item->reg_size > 15) {
> +               dev_err(&fn->dev,
> +                       "F12 control8 should be a maximum of 15 bytes, not: %ld\n",
>                         item->reg_size);
>                 return -ENODEV;
>         }
> --
> 2.7.4
>


On Tue, Jul 19, 2016 at 4:43 PM, Andrew Duggan <aduggan@synaptics.com> wrote:
> According to the RMI4 spec the maximum size of F12 control register 8 is
> 15 bytes. The current code incorrectly reports an error if control 8 is
> greater then 14. Making sensors with a control register 8 with 15 bytes
> unusable.
>
> Signed-off-by: Andrew Duggan <aduggan@synaptics.com>
> Reported-by: Chris Healy <cphealy@gmail.com>
> Cc: stable@vger.kernel.org
> ---
>  drivers/input/rmi4/rmi_f12.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/input/rmi4/rmi_f12.c b/drivers/input/rmi4/rmi_f12.c
> index c30fd86..9b0d9f7 100644
> --- a/drivers/input/rmi4/rmi_f12.c
> +++ b/drivers/input/rmi4/rmi_f12.c
> @@ -68,7 +68,7 @@ static int rmi_f12_read_sensor_tuning(struct f12_data *f12)
>         struct rmi_device *rmi_dev = fn->rmi_dev;
>         int ret;
>         int offset;
> -       u8 buf[14];
> +       u8 buf[15];
>         int pitch_x = 0;
>         int pitch_y = 0;
>         int clip_x_low = 0;
> @@ -88,8 +88,9 @@ static int rmi_f12_read_sensor_tuning(struct f12_data *f12)
>
>         offset = rmi_register_desc_calc_reg_offset(&f12->control_reg_desc, 8);
>
> -       if (item->reg_size > 14) {
> -               dev_err(&fn->dev, "F12 control8 should be 14 bytes, not: %ld\n",
> +       if (item->reg_size > 15) {
> +               dev_err(&fn->dev,
> +                       "F12 control8 should be a maximum of 15 bytes, not: %ld\n",
>                         item->reg_size);
>                 return -ENODEV;
>         }
> --
> 2.7.4
>
diff mbox

Patch

diff --git a/drivers/input/rmi4/rmi_f12.c b/drivers/input/rmi4/rmi_f12.c
index c30fd86..9b0d9f7 100644
--- a/drivers/input/rmi4/rmi_f12.c
+++ b/drivers/input/rmi4/rmi_f12.c
@@ -68,7 +68,7 @@  static int rmi_f12_read_sensor_tuning(struct f12_data *f12)
 	struct rmi_device *rmi_dev = fn->rmi_dev;
 	int ret;
 	int offset;
-	u8 buf[14];
+	u8 buf[15];
 	int pitch_x = 0;
 	int pitch_y = 0;
 	int clip_x_low = 0;
@@ -88,8 +88,9 @@  static int rmi_f12_read_sensor_tuning(struct f12_data *f12)
 
 	offset = rmi_register_desc_calc_reg_offset(&f12->control_reg_desc, 8);
 
-	if (item->reg_size > 14) {
-		dev_err(&fn->dev, "F12 control8 should be 14 bytes, not: %ld\n",
+	if (item->reg_size > 15) {
+		dev_err(&fn->dev,
+			"F12 control8 should be a maximum of 15 bytes, not: %ld\n",
 			item->reg_size);
 		return -ENODEV;
 	}