mirror of
				https://github.com/Ysurac/openmptcprouter.git
				synced 2025-03-09 15:40:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			43 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 0f635e336330e0aaa6638b617c1374ebdcdae204 Mon Sep 17 00:00:00 2001
 | |
| From: Dave Stevenson <dave.stevenson@raspberrypi.com>
 | |
| Date: Tue, 30 Nov 2021 17:28:50 +0000
 | |
| Subject: [PATCH] input: edt-ft5x06: Only look at the number of points reported
 | |
| 
 | |
| Register 0x02 in the FT5x06 is TD_STATUS containing the number
 | |
| of valid touch points being reported.
 | |
| 
 | |
| Iterate over that number of points rather than all that are
 | |
| supported on the device.
 | |
| 
 | |
| Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
 | |
| ---
 | |
|  drivers/input/touchscreen/edt-ft5x06.c | 9 ++++++++-
 | |
|  1 file changed, 8 insertions(+), 1 deletion(-)
 | |
| 
 | |
| --- a/drivers/input/touchscreen/edt-ft5x06.c
 | |
| +++ b/drivers/input/touchscreen/edt-ft5x06.c
 | |
| @@ -212,6 +212,7 @@ static irqreturn_t edt_ft5x06_ts_isr(int
 | |
|  	unsigned int active_ids = 0, known_ids = tsdata->known_ids;
 | |
|  	long released_ids;
 | |
|  	int b = 0;
 | |
| +	unsigned int num_points;
 | |
|  
 | |
|  	switch (tsdata->version) {
 | |
|  	case EDT_M06:
 | |
| @@ -260,9 +261,15 @@ static irqreturn_t edt_ft5x06_ts_isr(int
 | |
|  
 | |
|  		if (!edt_ft5x06_ts_check_crc(tsdata, rdbuf, datalen))
 | |
|  			goto out;
 | |
| +		num_points = tsdata->max_support_points;
 | |
| +	} else {
 | |
| +		/* Register 2 is TD_STATUS, containing the number of touch
 | |
| +		 * points.
 | |
| +		 */
 | |
| +		num_points = min(rdbuf[2] & 0xf, tsdata->max_support_points);
 | |
|  	}
 | |
|  
 | |
| -	for (i = 0; i < tsdata->max_support_points; i++) {
 | |
| +	for (i = 0; i < num_points; i++) {
 | |
|  		u8 *buf = &rdbuf[i * tplen + offset];
 | |
|  
 | |
|  		type = buf[0] >> 6;
 |