diff options
author | Trent Piepho <xyzzy@speakeasy.org> | 2007-10-14 01:52:16 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2007-10-22 10:01:42 -0400 |
commit | f0ad90975bc9ff6cd7361b452b31dab7a90084fc (patch) | |
tree | c3ce68befd3b25017d8c75077a0315d6827be33d /drivers/media | |
parent | 7717cbedd90381f4e60b1e230dfdfd7565c7efda (diff) |
V4L/DVB (6333): cx88: Change void* card_priv to struct vp3054_i2c_state
card_priv was only used to store a pointer to the vp3054 state struct.
There's no need to use a void * since it doesn't have multiple types.
Make the field conditional on VP3045 support. It was already conditional on
DVB support, but it's only used if VP3045 support is on, so that makes for a
better option to check.
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Reviewed-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/video/cx88/cx88-dvb.c | 3 | ||||
-rw-r--r-- | drivers/media/video/cx88/cx88-vp3054-i2c.c | 16 | ||||
-rw-r--r-- | drivers/media/video/cx88/cx88.h | 6 |
3 files changed, 15 insertions, 10 deletions
diff --git a/drivers/media/video/cx88/cx88-dvb.c b/drivers/media/video/cx88/cx88-dvb.c index d16e5c6d21c0..fce19caf9d04 100644 --- a/drivers/media/video/cx88/cx88-dvb.c +++ b/drivers/media/video/cx88/cx88-dvb.c | |||
@@ -475,8 +475,9 @@ static int dvb_register(struct cx8802_dev *dev) | |||
475 | break; | 475 | break; |
476 | case CX88_BOARD_DNTV_LIVE_DVB_T_PRO: | 476 | case CX88_BOARD_DNTV_LIVE_DVB_T_PRO: |
477 | #if defined(CONFIG_VIDEO_CX88_VP3054) || (defined(CONFIG_VIDEO_CX88_VP3054_MODULE) && defined(MODULE)) | 477 | #if defined(CONFIG_VIDEO_CX88_VP3054) || (defined(CONFIG_VIDEO_CX88_VP3054_MODULE) && defined(MODULE)) |
478 | /* MT352 is on a secondary I2C bus made from some GPIO lines */ | ||
478 | dev->dvb.frontend = dvb_attach(mt352_attach, &dntv_live_dvbt_pro_config, | 479 | dev->dvb.frontend = dvb_attach(mt352_attach, &dntv_live_dvbt_pro_config, |
479 | &((struct vp3054_i2c_state *)dev->card_priv)->adap); | 480 | &dev->vp3054->adap); |
480 | if (dev->dvb.frontend != NULL) { | 481 | if (dev->dvb.frontend != NULL) { |
481 | dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61, | 482 | dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61, |
482 | &dev->core->i2c_adap, DVB_PLL_FMD1216ME); | 483 | &dev->core->i2c_adap, DVB_PLL_FMD1216ME); |
diff --git a/drivers/media/video/cx88/cx88-vp3054-i2c.c b/drivers/media/video/cx88/cx88-vp3054-i2c.c index 77c37889232b..6ce5af488471 100644 --- a/drivers/media/video/cx88/cx88-vp3054-i2c.c +++ b/drivers/media/video/cx88/cx88-vp3054-i2c.c | |||
@@ -41,7 +41,7 @@ static void vp3054_bit_setscl(void *data, int state) | |||
41 | { | 41 | { |
42 | struct cx8802_dev *dev = data; | 42 | struct cx8802_dev *dev = data; |
43 | struct cx88_core *core = dev->core; | 43 | struct cx88_core *core = dev->core; |
44 | struct vp3054_i2c_state *vp3054_i2c = dev->card_priv; | 44 | struct vp3054_i2c_state *vp3054_i2c = dev->vp3054; |
45 | 45 | ||
46 | if (state) { | 46 | if (state) { |
47 | vp3054_i2c->state |= 0x0001; /* SCL high */ | 47 | vp3054_i2c->state |= 0x0001; /* SCL high */ |
@@ -58,7 +58,7 @@ static void vp3054_bit_setsda(void *data, int state) | |||
58 | { | 58 | { |
59 | struct cx8802_dev *dev = data; | 59 | struct cx8802_dev *dev = data; |
60 | struct cx88_core *core = dev->core; | 60 | struct cx88_core *core = dev->core; |
61 | struct vp3054_i2c_state *vp3054_i2c = dev->card_priv; | 61 | struct vp3054_i2c_state *vp3054_i2c = dev->vp3054; |
62 | 62 | ||
63 | if (state) { | 63 | if (state) { |
64 | vp3054_i2c->state |= 0x0002; /* SDA high */ | 64 | vp3054_i2c->state |= 0x0002; /* SDA high */ |
@@ -113,10 +113,10 @@ int vp3054_i2c_probe(struct cx8802_dev *dev) | |||
113 | if (core->boardnr != CX88_BOARD_DNTV_LIVE_DVB_T_PRO) | 113 | if (core->boardnr != CX88_BOARD_DNTV_LIVE_DVB_T_PRO) |
114 | return 0; | 114 | return 0; |
115 | 115 | ||
116 | dev->card_priv = kzalloc(sizeof(*vp3054_i2c), GFP_KERNEL); | 116 | vp3054_i2c = kzalloc(sizeof(*vp3054_i2c), GFP_KERNEL); |
117 | if (dev->card_priv == NULL) | 117 | if (vp3054_i2c == NULL) |
118 | return -ENOMEM; | 118 | return -ENOMEM; |
119 | vp3054_i2c = dev->card_priv; | 119 | dev->vp3054 = vp3054_i2c; |
120 | 120 | ||
121 | memcpy(&vp3054_i2c->algo, &vp3054_i2c_algo_template, | 121 | memcpy(&vp3054_i2c->algo, &vp3054_i2c_algo_template, |
122 | sizeof(vp3054_i2c->algo)); | 122 | sizeof(vp3054_i2c->algo)); |
@@ -139,8 +139,8 @@ int vp3054_i2c_probe(struct cx8802_dev *dev) | |||
139 | if (0 != rc) { | 139 | if (0 != rc) { |
140 | printk("%s: vp3054_i2c register FAILED\n", core->name); | 140 | printk("%s: vp3054_i2c register FAILED\n", core->name); |
141 | 141 | ||
142 | kfree(dev->card_priv); | 142 | kfree(dev->vp3054); |
143 | dev->card_priv = NULL; | 143 | dev->vp3054 = NULL; |
144 | } | 144 | } |
145 | 145 | ||
146 | return rc; | 146 | return rc; |
@@ -148,7 +148,7 @@ int vp3054_i2c_probe(struct cx8802_dev *dev) | |||
148 | 148 | ||
149 | void vp3054_i2c_remove(struct cx8802_dev *dev) | 149 | void vp3054_i2c_remove(struct cx8802_dev *dev) |
150 | { | 150 | { |
151 | struct vp3054_i2c_state *vp3054_i2c = dev->card_priv; | 151 | struct vp3054_i2c_state *vp3054_i2c = dev->vp3054; |
152 | 152 | ||
153 | if (vp3054_i2c == NULL || | 153 | if (vp3054_i2c == NULL || |
154 | dev->core->boardnr != CX88_BOARD_DNTV_LIVE_DVB_T_PRO) | 154 | dev->core->boardnr != CX88_BOARD_DNTV_LIVE_DVB_T_PRO) |
diff --git a/drivers/media/video/cx88/cx88.h b/drivers/media/video/cx88/cx88.h index 43ba75ba94b4..2e0911bad43a 100644 --- a/drivers/media/video/cx88/cx88.h +++ b/drivers/media/video/cx88/cx88.h | |||
@@ -467,8 +467,12 @@ struct cx8802_dev { | |||
467 | #if defined(CONFIG_VIDEO_CX88_DVB) || defined(CONFIG_VIDEO_CX88_DVB_MODULE) | 467 | #if defined(CONFIG_VIDEO_CX88_DVB) || defined(CONFIG_VIDEO_CX88_DVB_MODULE) |
468 | /* for dvb only */ | 468 | /* for dvb only */ |
469 | struct videobuf_dvb dvb; | 469 | struct videobuf_dvb dvb; |
470 | #endif | ||
470 | 471 | ||
471 | void *card_priv; | 472 | #if defined(CONFIG_VIDEO_CX88_VP3054) || \ |
473 | defined(CONFIG_VIDEO_CX88_VP3054_MODULE) | ||
474 | /* For VP3045 secondary I2C bus support */ | ||
475 | struct vp3054_i2c_state *vp3054; | ||
472 | #endif | 476 | #endif |
473 | /* for switching modulation types */ | 477 | /* for switching modulation types */ |
474 | unsigned char ts_gen_cntrl; | 478 | unsigned char ts_gen_cntrl; |