summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb/ttpci/budget-av.c
diff options
context:
space:
mode:
Diffstat (limited to 'linux/drivers/media/dvb/ttpci/budget-av.c')
-rw-r--r--linux/drivers/media/dvb/ttpci/budget-av.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/linux/drivers/media/dvb/ttpci/budget-av.c b/linux/drivers/media/dvb/ttpci/budget-av.c
index 36f1fa796..82816933c 100644
--- a/linux/drivers/media/dvb/ttpci/budget-av.c
+++ b/linux/drivers/media/dvb/ttpci/budget-av.c
@@ -170,6 +170,7 @@ static int budget_av_detach (struct saa7146_dev *dev)
return err;
}
+static struct saa7146_ext_vv vv_data;
static int budget_av_attach (struct saa7146_dev* dev,
struct saa7146_pci_extension_data *info)
@@ -207,16 +208,22 @@ static int budget_av_attach (struct saa7146_dev* dev,
dvb_delay(500);
if ((err = saa7113_init (budget_av))) {
- budget_av_detach(dev);
+ /* fixme: proper cleanup here */
+ ERR(("cannot init saa7113.\n"));
return err;
}
- saa7146_vv_init(dev);
+ if ( 0 != saa7146_vv_init(dev,&vv_data)) {
+ /* fixme: proper cleanup here */
+ ERR(("cannot init vv subsystem.\n"));
+ return err;
+ }
+
if ((err = saa7146_register_device(&budget_av->vd, dev, "knc1",
VFL_TYPE_GRABBER)))
{
+ /* fixme: proper cleanup here */
ERR(("cannot register capture v4l2 device.\n"));
- budget_av_detach(dev);
return err;
}
@@ -347,8 +354,6 @@ static struct saa7146_extension budget_extension = {
.attach = budget_av_attach,
.detach = budget_av_detach,
- .ext_vv_data = &vv_data,
-
.irq_mask = MASK_10,
.irq_func = ttpci_budget_irq10_handler,
};