forked from mirrors/linux
		
	[media] rtl2832: use regmap reg cache
Enable regmap register cache in order to reduce IO. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
		
							parent
							
								
									e20b0cf2f3
								
							
						
					
					
						commit
						dcadb82a7a
					
				
					 1 changed files with 18 additions and 0 deletions
				
			
		|  | @ -986,6 +986,22 @@ static struct dvb_frontend_ops rtl2832_ops = { | |||
| 	.read_ber = rtl2832_read_ber, | ||||
| }; | ||||
| 
 | ||||
| static bool rtl2832_volatile_reg(struct device *dev, unsigned int reg) | ||||
| { | ||||
| 	switch (reg) { | ||||
| 	case 0x305: | ||||
| 	case 0x33c: | ||||
| 	case 0x34e: | ||||
| 	case 0x351: | ||||
| 	case 0x40c ... 0x40d: | ||||
| 		return true; | ||||
| 	default: | ||||
| 		break; | ||||
| 	} | ||||
| 
 | ||||
| 	return false; | ||||
| } | ||||
| 
 | ||||
| /*
 | ||||
|  * We implement own I2C access routines for regmap in order to get manual access | ||||
|  * to I2C adapter lock, which is needed for I2C mux adapter. | ||||
|  | @ -1240,9 +1256,11 @@ static int rtl2832_probe(struct i2c_client *client, | |||
| 	static const struct regmap_config regmap_config = { | ||||
| 		.reg_bits    =  8, | ||||
| 		.val_bits    =  8, | ||||
| 		.volatile_reg = rtl2832_volatile_reg, | ||||
| 		.max_register = 5 * 0x100, | ||||
| 		.ranges = regmap_range_cfg, | ||||
| 		.num_ranges = ARRAY_SIZE(regmap_range_cfg), | ||||
| 		.cache_type = REGCACHE_RBTREE, | ||||
| 	}; | ||||
| 
 | ||||
| 	dev_dbg(&client->dev, "\n"); | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Antti Palosaari
						Antti Palosaari