|
@@ -352,9 +352,13 @@ static struct saa7146_ext_vv vv_data;
|
|
|
static int hexium_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_data *info)
|
|
|
{
|
|
|
struct hexium *hexium = (struct hexium *) dev->ext_priv;
|
|
|
+ int ret;
|
|
|
|
|
|
DEB_EE((".\n"));
|
|
|
|
|
|
+ ret = saa7146_vv_devinit(dev);
|
|
|
+ if (ret)
|
|
|
+ return ret;
|
|
|
hexium = kzalloc(sizeof(struct hexium), GFP_KERNEL);
|
|
|
if (NULL == hexium) {
|
|
|
printk("hexium_gemini: not enough kernel memory in hexium_attach().\n");
|
|
@@ -400,9 +404,10 @@ static int hexium_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_d
|
|
|
vv_data.ops.vidioc_enum_input = vidioc_enum_input;
|
|
|
vv_data.ops.vidioc_g_input = vidioc_g_input;
|
|
|
vv_data.ops.vidioc_s_input = vidioc_s_input;
|
|
|
- if (0 != saa7146_register_device(&hexium->video_dev, dev, "hexium gemini", VFL_TYPE_GRABBER)) {
|
|
|
+ ret = saa7146_register_device(&hexium->video_dev, dev, "hexium gemini", VFL_TYPE_GRABBER);
|
|
|
+ if (ret < 0) {
|
|
|
printk("hexium_gemini: cannot register capture v4l2 device. skipping.\n");
|
|
|
- return -1;
|
|
|
+ return ret;
|
|
|
}
|
|
|
|
|
|
printk("hexium_gemini: found 'hexium gemini' frame grabber-%d.\n", hexium_num);
|