Skip to content

Commit

Permalink
V4L/DVB (6333): cx88: Change void* card_priv to struct vp3054_i2c_state
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Trent Piepho authored and Mauro Carvalho Chehab committed Oct 22, 2007
1 parent 7717cbe commit f0ad909
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 10 deletions.
3 changes: 2 additions & 1 deletion drivers/media/video/cx88/cx88-dvb.c
Original file line number Diff line number Diff line change
Expand Up @@ -475,8 +475,9 @@ static int dvb_register(struct cx8802_dev *dev)
break;
case CX88_BOARD_DNTV_LIVE_DVB_T_PRO:
#if defined(CONFIG_VIDEO_CX88_VP3054) || (defined(CONFIG_VIDEO_CX88_VP3054_MODULE) && defined(MODULE))
/* MT352 is on a secondary I2C bus made from some GPIO lines */
dev->dvb.frontend = dvb_attach(mt352_attach, &dntv_live_dvbt_pro_config,
&((struct vp3054_i2c_state *)dev->card_priv)->adap);
&dev->vp3054->adap);
if (dev->dvb.frontend != NULL) {
dvb_attach(dvb_pll_attach, dev->dvb.frontend, 0x61,
&dev->core->i2c_adap, DVB_PLL_FMD1216ME);
Expand Down
16 changes: 8 additions & 8 deletions drivers/media/video/cx88/cx88-vp3054-i2c.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ static void vp3054_bit_setscl(void *data, int state)
{
struct cx8802_dev *dev = data;
struct cx88_core *core = dev->core;
struct vp3054_i2c_state *vp3054_i2c = dev->card_priv;
struct vp3054_i2c_state *vp3054_i2c = dev->vp3054;

if (state) {
vp3054_i2c->state |= 0x0001; /* SCL high */
Expand All @@ -58,7 +58,7 @@ static void vp3054_bit_setsda(void *data, int state)
{
struct cx8802_dev *dev = data;
struct cx88_core *core = dev->core;
struct vp3054_i2c_state *vp3054_i2c = dev->card_priv;
struct vp3054_i2c_state *vp3054_i2c = dev->vp3054;

if (state) {
vp3054_i2c->state |= 0x0002; /* SDA high */
Expand Down Expand Up @@ -113,10 +113,10 @@ int vp3054_i2c_probe(struct cx8802_dev *dev)
if (core->boardnr != CX88_BOARD_DNTV_LIVE_DVB_T_PRO)
return 0;

dev->card_priv = kzalloc(sizeof(*vp3054_i2c), GFP_KERNEL);
if (dev->card_priv == NULL)
vp3054_i2c = kzalloc(sizeof(*vp3054_i2c), GFP_KERNEL);
if (vp3054_i2c == NULL)
return -ENOMEM;
vp3054_i2c = dev->card_priv;
dev->vp3054 = vp3054_i2c;

memcpy(&vp3054_i2c->algo, &vp3054_i2c_algo_template,
sizeof(vp3054_i2c->algo));
Expand All @@ -139,16 +139,16 @@ int vp3054_i2c_probe(struct cx8802_dev *dev)
if (0 != rc) {
printk("%s: vp3054_i2c register FAILED\n", core->name);

kfree(dev->card_priv);
dev->card_priv = NULL;
kfree(dev->vp3054);
dev->vp3054 = NULL;
}

return rc;
}

void vp3054_i2c_remove(struct cx8802_dev *dev)
{
struct vp3054_i2c_state *vp3054_i2c = dev->card_priv;
struct vp3054_i2c_state *vp3054_i2c = dev->vp3054;

if (vp3054_i2c == NULL ||
dev->core->boardnr != CX88_BOARD_DNTV_LIVE_DVB_T_PRO)
Expand Down
6 changes: 5 additions & 1 deletion drivers/media/video/cx88/cx88.h
Original file line number Diff line number Diff line change
Expand Up @@ -467,8 +467,12 @@ struct cx8802_dev {
#if defined(CONFIG_VIDEO_CX88_DVB) || defined(CONFIG_VIDEO_CX88_DVB_MODULE)
/* for dvb only */
struct videobuf_dvb dvb;
#endif

void *card_priv;
#if defined(CONFIG_VIDEO_CX88_VP3054) || \
defined(CONFIG_VIDEO_CX88_VP3054_MODULE)
/* For VP3045 secondary I2C bus support */
struct vp3054_i2c_state *vp3054;
#endif
/* for switching modulation types */
unsigned char ts_gen_cntrl;
Expand Down

0 comments on commit f0ad909

Please sign in to comment.