diff options
Diffstat (limited to 'linux/drivers/media/dvb/ttpci/budget-av.c')
-rw-r--r-- | linux/drivers/media/dvb/ttpci/budget-av.c | 15 |
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, }; |