diff options
author | Antti Palosaari <crope@iki.fi> | 2014-12-14 14:23:28 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@osg.samsung.com> | 2015-02-03 13:10:54 -0500 |
commit | dcadb82a7a1d844f79c83578b5d2840fdb2a3ddd (patch) | |
tree | 855b5ed3c1867a7a93980454d64ddef5939e4379 /drivers/media | |
parent | e20b0cf2f394304577df86417f37f02e26caa9fa (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.c | 18 |
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 | ||
989 | static 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"); |