diff options
Diffstat (limited to 'linux/drivers/media/video/cx88/cx88-cards.c')
-rw-r--r-- | linux/drivers/media/video/cx88/cx88-cards.c | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/linux/drivers/media/video/cx88/cx88-cards.c b/linux/drivers/media/video/cx88/cx88-cards.c index 13d905339..69b5c881c 100644 --- a/linux/drivers/media/video/cx88/cx88-cards.c +++ b/linux/drivers/media/video/cx88/cx88-cards.c @@ -261,7 +261,6 @@ struct cx88_subid cx88_subids[] = { }; const unsigned int cx88_idcount = ARRAY_SIZE(cx88_subids); - /* ----------------------------------------------------------------------- */ /* some leadtek specific stuff */ @@ -459,7 +458,33 @@ i2c_eeprom(struct i2c_client *c, unsigned char *eedata, int len) return 0; } -void __devinit cx88_card_setup(struct cx8800_dev *dev) +void cx88_card_list(struct cx8800_dev *dev) +{ + int i; + + if (0 == dev->pci->subsystem_vendor && + 0 == dev->pci->subsystem_device) { + printk("%s: Your board has no valid PCI Subsystem ID and thus can't\n" + "%s: be autodetected. Please pass card=<n> insmod option to\n" + "%s: workaround that. Redirect complains to the vendor of\n" + "%s: the TV card. Best regards,\n" + "%s: -- tux\n", + dev->name,dev->name,dev->name,dev->name,dev->name); + } else { + printk("%s: Your board isn't known (yet) to the driver. You can\n" + "%s: try to pick one of the existing card configs via\n" + "%s: card=<n> insmod option. Updating to the latest\n" + "%s: version might help as well.\n", + dev->name,dev->name,dev->name,dev->name); + } + printk("%s: Here is a list of valid choices for the card=<n> insmod option:\n", + dev->name); + for (i = 0; i < cx88_idcount; i++) + printk("%s: card=%d -> %s\n", + dev->name, i, cx88_boards[i].name); +} + +void cx88_card_setup(struct cx8800_dev *dev) { static u8 eeprom[128]; @@ -488,6 +513,7 @@ EXPORT_SYMBOL(cx88_boards); EXPORT_SYMBOL(cx88_bcount); EXPORT_SYMBOL(cx88_subids); EXPORT_SYMBOL(cx88_idcount); +EXPORT_SYMBOL(cx88_card_list); EXPORT_SYMBOL(cx88_card_setup); /* |