aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorAntti Palosaari <crope@iki.fi>2014-12-14 14:23:28 -0500
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>2015-02-03 13:10:54 -0500
commitdcadb82a7a1d844f79c83578b5d2840fdb2a3ddd (patch)
tree855b5ed3c1867a7a93980454d64ddef5939e4379 /drivers/media
parente20b0cf2f394304577df86417f37f02e26caa9fa (diff)
[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>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/dvb-frontends/rtl2832.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/media/dvb-frontends/rtl2832.c b/drivers/media/dvb-frontends/rtl2832.c
index e59765fa8e7c..66f915dd24a6 100644
--- a/drivers/media/dvb-frontends/rtl2832.c
+++ b/drivers/media/dvb-frontends/rtl2832.c
@@ -986,6 +986,22 @@ static struct dvb_frontend_ops rtl2832_ops = {
986 .read_ber = rtl2832_read_ber, 986 .read_ber = rtl2832_read_ber,
987}; 987};
988 988
989static bool rtl2832_volatile_reg(struct device *dev, unsigned int reg)
990{
991 switch (reg) {
992 case 0x305:
993 case 0x33c:
994 case 0x34e:
995 case 0x351:
996 case 0x40c ... 0x40d:
997 return true;
998 default:
999 break;
1000 }
1001
1002 return false;
1003}
1004
989/* 1005/*
990 * We implement own I2C access routines for regmap in order to get manual access 1006 * We implement own I2C access routines for regmap in order to get manual access
991 * to I2C adapter lock, which is needed for I2C mux adapter. 1007 * to I2C adapter lock, which is needed for I2C mux adapter.
@@ -1240,9 +1256,11 @@ static int rtl2832_probe(struct i2c_client *client,
1240 static const struct regmap_config regmap_config = { 1256 static const struct regmap_config regmap_config = {
1241 .reg_bits = 8, 1257 .reg_bits = 8,
1242 .val_bits = 8, 1258 .val_bits = 8,
1259 .volatile_reg = rtl2832_volatile_reg,
1243 .max_register = 5 * 0x100, 1260 .max_register = 5 * 0x100,
1244 .ranges = regmap_range_cfg, 1261 .ranges = regmap_range_cfg,
1245 .num_ranges = ARRAY_SIZE(regmap_range_cfg), 1262 .num_ranges = ARRAY_SIZE(regmap_range_cfg),
1263 .cache_type = REGCACHE_RBTREE,
1246 }; 1264 };
1247 1265
1248 dev_dbg(&client->dev, "\n"); 1266 dev_dbg(&client->dev, "\n");