V4L/DVB (5482): Bttv: automatically load dvb-bt8xx for bttv cards with dvb
This patch causes the bttv driver to automatically load the dvb-bt8xx module for bttv/dvb hybrid cards. Successfully tested with a pcHDTV HD-2000 card. This patch is based on the recent patches to enable autoloading of cx88-dvb, cx88-blackbird and saa7134-dvb. Signed-off-by: Jarod Wilson <jwilson@redhat.com> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
parent
fbc8408a0d
commit
f992a497c7
2 changed files with 25 additions and 2 deletions
|
@ -163,6 +163,24 @@ static ssize_t show_card(struct class_device *cd, char *buf)
|
||||||
}
|
}
|
||||||
static CLASS_DEVICE_ATTR(card, S_IRUGO, show_card, NULL);
|
static CLASS_DEVICE_ATTR(card, S_IRUGO, show_card, NULL);
|
||||||
|
|
||||||
|
/* ----------------------------------------------------------------------- */
|
||||||
|
/* dvb auto-load setup */
|
||||||
|
#if defined(CONFIG_MODULES) && defined(MODULE)
|
||||||
|
static void request_module_async(struct work_struct *work)
|
||||||
|
{
|
||||||
|
request_module("dvb-bt8xx");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void request_modules(struct bttv *dev)
|
||||||
|
{
|
||||||
|
INIT_WORK(&dev->request_module_wk, request_module_async);
|
||||||
|
schedule_work(&dev->request_module_wk);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
#define request_modules(dev)
|
||||||
|
#endif /* CONFIG_MODULES */
|
||||||
|
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------- */
|
/* ----------------------------------------------------------------------- */
|
||||||
/* static data */
|
/* static data */
|
||||||
|
|
||||||
|
@ -4769,9 +4787,11 @@ static int __devinit bttv_probe(struct pci_dev *dev,
|
||||||
disclaim_video_lines(btv);
|
disclaim_video_lines(btv);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* add subdevices */
|
/* add subdevices and autoload dvb-bt8xx if needed */
|
||||||
if (bttv_tvcards[btv->c.type].has_dvb)
|
if (bttv_tvcards[btv->c.type].has_dvb) {
|
||||||
bttv_sub_add_device(&btv->c, "dvb");
|
bttv_sub_add_device(&btv->c, "dvb");
|
||||||
|
request_modules(btv);
|
||||||
|
}
|
||||||
|
|
||||||
bttv_input_init(btv);
|
bttv_input_init(btv);
|
||||||
|
|
||||||
|
|
|
@ -434,6 +434,9 @@ struct bttv {
|
||||||
unsigned int users;
|
unsigned int users;
|
||||||
struct bttv_fh init;
|
struct bttv_fh init;
|
||||||
|
|
||||||
|
/* used to make dvb-bt8xx autoloadable */
|
||||||
|
struct work_struct request_module_wk;
|
||||||
|
|
||||||
/* Default (0) and current (1) video capturing and overlay
|
/* Default (0) and current (1) video capturing and overlay
|
||||||
cropping parameters in bttv_tvnorm.cropcap units. Protected
|
cropping parameters in bttv_tvnorm.cropcap units. Protected
|
||||||
by bttv.lock. */
|
by bttv.lock. */
|
||||||
|
|
Loading…
Reference in a new issue