|
@@ -789,7 +789,7 @@ static int dvb_register(struct cx8802_dev *dev)
|
|
|
if (fe0->dvb.frontend)
|
|
|
fe0->dvb.frontend->ops.i2c_gate_ctrl = NULL;
|
|
|
if (attach_xc3028(0x61, dev) < 0)
|
|
|
- return -EINVAL;
|
|
|
+ goto frontend_detach;
|
|
|
break;
|
|
|
case CX88_BOARD_PCHDTV_HD3000:
|
|
|
fe0->dvb.frontend = dvb_attach(or51132_attach, &pchdtv_hd3000,
|
|
@@ -1058,7 +1058,6 @@ static int dvb_register(struct cx8802_dev *dev)
|
|
|
goto frontend_detach;
|
|
|
core->prev_set_voltage = fe0->dvb.frontend->ops.set_voltage;
|
|
|
fe0->dvb.frontend->ops.set_voltage = tevii_dvbs_set_voltage;
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
@@ -1110,10 +1109,7 @@ static int dvb_register(struct cx8802_dev *dev)
|
|
|
&dev->pci->dev, adapter_nr, mfe_shared);
|
|
|
|
|
|
frontend_detach:
|
|
|
- if (fe0->dvb.frontend) {
|
|
|
- dvb_frontend_detach(fe0->dvb.frontend);
|
|
|
- fe0->dvb.frontend = NULL;
|
|
|
- }
|
|
|
+ videobuf_dvb_dealloc_frontends(&dev->frontends);
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|