aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2012-07-05 11:16:26 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-07-05 11:16:26 -0400
commit298f18a3e2e078c796d3f852091fbe961fbca806 (patch)
tree5edf68c7efcc8aca6984a93272f6517450fd501c /drivers
parent82041c0a15fdd45336f11c893c4ff69d48dcc4f1 (diff)
[media] rtl2832: save some data space by using a macro instead of a table
Instead of using a table for reg bitmask, use a macro. This should save some data segment space. Cc: Thomas Mair <thomas.mair86@googlemail.com> Cc: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/media/dvb/frontends/rtl2832.c42
1 files changed, 4 insertions, 38 deletions
diff --git a/drivers/media/dvb/frontends/rtl2832.c b/drivers/media/dvb/frontends/rtl2832.c
index d0cbe27f979e..2da592fb38ad 100644
--- a/drivers/media/dvb/frontends/rtl2832.c
+++ b/drivers/media/dvb/frontends/rtl2832.c
@@ -19,47 +19,13 @@
19 */ 19 */
20 20
21#include "rtl2832_priv.h" 21#include "rtl2832_priv.h"
22 22#include <linux/bitops.h>
23 23
24int rtl2832_debug; 24int rtl2832_debug;
25module_param_named(debug, rtl2832_debug, int, 0644); 25module_param_named(debug, rtl2832_debug, int, 0644);
26MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off)."); 26MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off).");
27 27
28 28#define REG_MASK(b) (BIT(b + 1) - 1)
29static const int reg_mask[32] = {
30 0x00000001,
31 0x00000003,
32 0x00000007,
33 0x0000000f,
34 0x0000001f,
35 0x0000003f,
36 0x0000007f,
37 0x000000ff,
38 0x000001ff,
39 0x000003ff,
40 0x000007ff,
41 0x00000fff,
42 0x00001fff,
43 0x00003fff,
44 0x00007fff,
45 0x0000ffff,
46 0x0001ffff,
47 0x0003ffff,
48 0x0007ffff,
49 0x000fffff,
50 0x001fffff,
51 0x003fffff,
52 0x007fffff,
53 0x00ffffff,
54 0x01ffffff,
55 0x03ffffff,
56 0x07ffffff,
57 0x0fffffff,
58 0x1fffffff,
59 0x3fffffff,
60 0x7fffffff,
61 0xffffffff
62};
63 29
64static const struct rtl2832_reg_entry registers[] = { 30static const struct rtl2832_reg_entry registers[] = {
65 [DVBT_SOFT_RST] = {0x1, 0x1, 2, 2}, 31 [DVBT_SOFT_RST] = {0x1, 0x1, 2, 2},
@@ -317,7 +283,7 @@ int rtl2832_rd_demod_reg(struct rtl2832_priv *priv, int reg, u32 *val)
317 page = registers[reg].page; 283 page = registers[reg].page;
318 284
319 len = (msb >> 3) + 1; 285 len = (msb >> 3) + 1;
320 mask = reg_mask[msb - lsb]; 286 mask = REG_MASK(msb - lsb);
321 287
322 ret = rtl2832_rd_regs(priv, reg_start_addr, page, &reading[0], len); 288 ret = rtl2832_rd_regs(priv, reg_start_addr, page, &reading[0], len);
323 if (ret) 289 if (ret)
@@ -359,7 +325,7 @@ int rtl2832_wr_demod_reg(struct rtl2832_priv *priv, int reg, u32 val)
359 page = registers[reg].page; 325 page = registers[reg].page;
360 326
361 len = (msb >> 3) + 1; 327 len = (msb >> 3) + 1;
362 mask = reg_mask[msb - lsb]; 328 mask = REG_MASK(msb - lsb);
363 329
364 330
365 ret = rtl2832_rd_regs(priv, reg_start_addr, page, &reading[0], len); 331 ret = rtl2832_rd_regs(priv, reg_start_addr, page, &reading[0], len);