mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 08:44:41 +00:00 
			
		
		
		
	[media] ati_remote: Put timeouts at the accel array
Instead of having the timeouts hardcoded, and getting only the accel value from the array, put everything in the same place. That simplifies the logic. As a side effect, it also cleans several smatch errors: include/linux/jiffies.h:359:41: error: strange non-value function or array include/linux/jiffies.h:361:42: error: strange non-value function or array (one per time_after/time_before line) Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
		
							parent
							
								
									55a1a9f189
								
							
						
					
					
						commit
						fe28f5de11
					
				
					 1 changed files with 27 additions and 20 deletions
				
			
		|  | @ -443,6 +443,21 @@ static int ati_remote_sendpacket(struct ati_remote *ati_remote, u16 cmd, | |||
| 	return retval; | ||||
| } | ||||
| 
 | ||||
| struct accel_times { | ||||
| 	const char	value; | ||||
| 	unsigned int	msecs; | ||||
| }; | ||||
| 
 | ||||
| static const struct accel_times accel[] = { | ||||
| 	{  1,  125 }, | ||||
| 	{  2,  250 }, | ||||
| 	{  4,  500 }, | ||||
| 	{  6, 1000 }, | ||||
| 	{  9, 1500 }, | ||||
| 	{ 13, 2000 }, | ||||
| 	{ 20,    0 }, | ||||
| }; | ||||
| 
 | ||||
| /*
 | ||||
|  * ati_remote_compute_accel | ||||
|  * | ||||
|  | @ -454,30 +469,22 @@ static int ati_remote_sendpacket(struct ati_remote *ati_remote, u16 cmd, | |||
|  */ | ||||
| static int ati_remote_compute_accel(struct ati_remote *ati_remote) | ||||
| { | ||||
| 	static const char accel[] = { 1, 2, 4, 6, 9, 13, 20 }; | ||||
| 	unsigned long now = jiffies; | ||||
| 	int acc; | ||||
| 	unsigned long now = jiffies, reset_time; | ||||
| 	int i; | ||||
| 
 | ||||
| 	if (time_after(now, ati_remote->old_jiffies + msecs_to_jiffies(250))) { | ||||
| 		acc = 1; | ||||
| 	reset_time = msecs_to_jiffies(250); | ||||
| 
 | ||||
| 	if (time_after(now, ati_remote->old_jiffies + reset_time)) { | ||||
| 		ati_remote->acc_jiffies = now; | ||||
| 		return 1; | ||||
| 	} | ||||
| 	else if (time_before(now, ati_remote->acc_jiffies + msecs_to_jiffies(125))) | ||||
| 		acc = accel[0]; | ||||
| 	else if (time_before(now, ati_remote->acc_jiffies + msecs_to_jiffies(250))) | ||||
| 		acc = accel[1]; | ||||
| 	else if (time_before(now, ati_remote->acc_jiffies + msecs_to_jiffies(500))) | ||||
| 		acc = accel[2]; | ||||
| 	else if (time_before(now, ati_remote->acc_jiffies + msecs_to_jiffies(1000))) | ||||
| 		acc = accel[3]; | ||||
| 	else if (time_before(now, ati_remote->acc_jiffies + msecs_to_jiffies(1500))) | ||||
| 		acc = accel[4]; | ||||
| 	else if (time_before(now, ati_remote->acc_jiffies + msecs_to_jiffies(2000))) | ||||
| 		acc = accel[5]; | ||||
| 	else | ||||
| 		acc = accel[6]; | ||||
| 	for (i = 0; i < ARRAY_SIZE(accel) - 1; i++) { | ||||
| 		unsigned long timeout = msecs_to_jiffies(accel[i].msecs); | ||||
| 
 | ||||
| 	return acc; | ||||
| 		if (time_before(now, ati_remote->acc_jiffies + timeout)) | ||||
| 			return accel[i].value; | ||||
| 	} | ||||
| 	return accel[i].value; | ||||
| } | ||||
| 
 | ||||
| /*
 | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Mauro Carvalho Chehab
						Mauro Carvalho Chehab