diff options
author | Darron Broad <darron@kewl.org> | 2008-10-11 10:18:53 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2008-10-17 16:23:15 -0400 |
commit | 92abe9ee374599179033f039b095864a9cf74593 (patch) | |
tree | 2e4304cac9052a8848b972e678d372bd49d7db29 /drivers/media/video/cx88 | |
parent | 363c35fc448943c3d6121332d28bcda2d2fbf87c (diff) |
V4L/DVB (9223): MFE: Fix a number of bugs and some tidying up
A number of reference to videobuf_dvb_get_frontend used an invalid
index. This has been fixed.
The section for the HVR3000 in advise_acquire was redundant as
the same logic is used on the HVR4000. This has been removed
and both cards now use the same function.
A number of small errors and whitespace errors are also fixed.
Signed-off-by: Darron Broad <darron@kewl.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx88')
-rw-r--r-- | drivers/media/video/cx88/cx88-cards.c | 1 | ||||
-rw-r--r-- | drivers/media/video/cx88/cx88-dvb.c | 38 | ||||
-rw-r--r-- | drivers/media/video/cx88/cx88-input.c | 1 |
3 files changed, 4 insertions, 36 deletions
diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c index 638d9ec38d7f..402a5db90e44 100644 --- a/drivers/media/video/cx88/cx88-cards.c +++ b/drivers/media/video/cx88/cx88-cards.c | |||
@@ -3004,7 +3004,6 @@ struct cx88_core *cx88_core_create(struct pci_dev *pci, int nr) | |||
3004 | cx88_card_list(core, pci); | 3004 | cx88_card_list(core, pci); |
3005 | } | 3005 | } |
3006 | 3006 | ||
3007 | memset(&core->board, 0, sizeof(core->board)); | ||
3008 | memcpy(&core->board, &cx88_boards[core->boardnr], sizeof(core->board)); | 3007 | memcpy(&core->board, &cx88_boards[core->boardnr], sizeof(core->board)); |
3009 | 3008 | ||
3010 | if (!core->board.num_frontends) | 3009 | if (!core->board.num_frontends) |
diff --git a/drivers/media/video/cx88/cx88-dvb.c b/drivers/media/video/cx88/cx88-dvb.c index 099de66c72c4..58128687e5cc 100644 --- a/drivers/media/video/cx88/cx88-dvb.c +++ b/drivers/media/video/cx88/cx88-dvb.c | |||
@@ -124,7 +124,6 @@ static int cx88_dvb_bus_ctrl(struct dvb_frontend* fe, int acquire) | |||
124 | return -EINVAL; | 124 | return -EINVAL; |
125 | } | 125 | } |
126 | 126 | ||
127 | |||
128 | drv = cx8802_get_driver(dev, CX88_MPEG_DVB); | 127 | drv = cx8802_get_driver(dev, CX88_MPEG_DVB); |
129 | if (drv) { | 128 | if (drv) { |
130 | if (acquire){ | 129 | if (acquire){ |
@@ -502,7 +501,7 @@ static int attach_xc3028(u8 addr, struct cx8802_dev *dev) | |||
502 | .ctrl = &ctl, | 501 | .ctrl = &ctl, |
503 | }; | 502 | }; |
504 | 503 | ||
505 | /* Get the first frontend */ | 504 | /* Get the first frontend */ |
506 | fe0 = videobuf_dvb_get_frontend(&dev->frontends, 1); | 505 | fe0 = videobuf_dvb_get_frontend(&dev->frontends, 1); |
507 | if (!fe0) | 506 | if (!fe0) |
508 | return -EINVAL; | 507 | return -EINVAL; |
@@ -1136,35 +1135,7 @@ static int cx8802_dvb_advise_acquire(struct cx8802_driver *drv) | |||
1136 | udelay(1000); | 1135 | udelay(1000); |
1137 | break; | 1136 | break; |
1138 | 1137 | ||
1139 | case CX88_BOARD_HAUPPAUGE_HVR3000: /* ? */ | 1138 | case CX88_BOARD_HAUPPAUGE_HVR3000: |
1140 | if(core->dvbdev->frontends.active_fe_id == 1) { | ||
1141 | /* DVB-S/S2 Enabled */ | ||
1142 | |||
1143 | /* Toggle reset on cx22702 leaving i2c active */ | ||
1144 | cx_write(MO_GP0_IO, core->board.input[0].gpio0); | ||
1145 | udelay(1000); | ||
1146 | cx_clear(MO_GP0_IO, 0x00000080); | ||
1147 | udelay(50); | ||
1148 | cx_set(MO_GP0_IO, 0x00000080); /* cx22702 out of reset */ | ||
1149 | cx_set(MO_GP0_IO, 0x00000004); /* tri-state the cx22702 pins */ | ||
1150 | udelay(1000); | ||
1151 | |||
1152 | cx_write(MO_SRST_IO, 1); /* Take the cx24116/cx24123 out of reset */ | ||
1153 | core->dvbdev->ts_gen_cntrl = 0x02; /* Parallel IO */ | ||
1154 | } else | ||
1155 | if (core->dvbdev->frontends.active_fe_id == 2) { | ||
1156 | /* DVB-T Enabled */ | ||
1157 | |||
1158 | /* Put the cx24116/cx24123 into reset */ | ||
1159 | cx_write(MO_SRST_IO, 0); | ||
1160 | |||
1161 | /* cx22702 out of reset and enable it */ | ||
1162 | cx_set(MO_GP0_IO, 0x00000080); | ||
1163 | cx_clear(MO_GP0_IO, 0x00000004); | ||
1164 | core->dvbdev->ts_gen_cntrl = 0x0c; /* Serial IO */ | ||
1165 | udelay(1000); | ||
1166 | } | ||
1167 | break; | ||
1168 | case CX88_BOARD_HAUPPAUGE_HVR4000: | 1139 | case CX88_BOARD_HAUPPAUGE_HVR4000: |
1169 | if(core->dvbdev->frontends.active_fe_id == 1) { | 1140 | if(core->dvbdev->frontends.active_fe_id == 1) { |
1170 | /* DVB-S/S2 Enabled */ | 1141 | /* DVB-S/S2 Enabled */ |
@@ -1225,7 +1196,7 @@ static int cx8802_dvb_probe(struct cx8802_driver *drv) | |||
1225 | { | 1196 | { |
1226 | struct cx88_core *core = drv->core; | 1197 | struct cx88_core *core = drv->core; |
1227 | struct cx8802_dev *dev = drv->core->dvbdev; | 1198 | struct cx8802_dev *dev = drv->core->dvbdev; |
1228 | int err,i; | 1199 | int err, i; |
1229 | struct videobuf_dvb_frontend *fe; | 1200 | struct videobuf_dvb_frontend *fe; |
1230 | 1201 | ||
1231 | dprintk( 1, "%s\n", __func__); | 1202 | dprintk( 1, "%s\n", __func__); |
@@ -1267,8 +1238,7 @@ static int cx8802_dvb_probe(struct cx8802_driver *drv) | |||
1267 | if (err != 0) | 1238 | if (err != 0) |
1268 | printk(KERN_ERR "%s/2: dvb_register failed (err = %d)\n", | 1239 | printk(KERN_ERR "%s/2: dvb_register failed (err = %d)\n", |
1269 | core->name, err); | 1240 | core->name, err); |
1270 | 1241 | fail_core: | |
1271 | fail_core: | ||
1272 | return err; | 1242 | return err; |
1273 | } | 1243 | } |
1274 | 1244 | ||
diff --git a/drivers/media/video/cx88/cx88-input.c b/drivers/media/video/cx88/cx88-input.c index 17150cb88c80..8683d104de72 100644 --- a/drivers/media/video/cx88/cx88-input.c +++ b/drivers/media/video/cx88/cx88-input.c | |||
@@ -495,7 +495,6 @@ void cx88_ir_irq(struct cx88_core *core) | |||
495 | case CX88_BOARD_PINNACLE_PCTV_HD_800i: | 495 | case CX88_BOARD_PINNACLE_PCTV_HD_800i: |
496 | ircode = ir_decode_biphase(ir->samples, ir->scount, 5, 7); | 496 | ircode = ir_decode_biphase(ir->samples, ir->scount, 5, 7); |
497 | ir_dprintk("biphase decoded: %x\n", ircode); | 497 | ir_dprintk("biphase decoded: %x\n", ircode); |
498 | //TODO Darron has other code here | ||
499 | if ((ircode & 0xfffff000) != 0x3000) | 498 | if ((ircode & 0xfffff000) != 0x3000) |
500 | break; | 499 | break; |
501 | ir_input_keydown(ir->input, &ir->ir, ircode & 0x3f, ircode); | 500 | ir_input_keydown(ir->input, &ir->ir, ircode & 0x3f, ircode); |