提交 becd4305 编写于 作者: D Darron Broad 提交者: Mauro Carvalho Chehab

V4L/DVB (9336): cx88: always de-alloc frontends on fault condition

De-alloc frontends on fault condition.
Signed-off-by: NDarron Broad <darron@kewl.org>
Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
上级 878595f6
...@@ -789,7 +789,7 @@ static int dvb_register(struct cx8802_dev *dev) ...@@ -789,7 +789,7 @@ static int dvb_register(struct cx8802_dev *dev)
if (fe0->dvb.frontend) if (fe0->dvb.frontend)
fe0->dvb.frontend->ops.i2c_gate_ctrl = NULL; fe0->dvb.frontend->ops.i2c_gate_ctrl = NULL;
if (attach_xc3028(0x61, dev) < 0) if (attach_xc3028(0x61, dev) < 0)
return -EINVAL; goto frontend_detach;
break; break;
case CX88_BOARD_PCHDTV_HD3000: case CX88_BOARD_PCHDTV_HD3000:
fe0->dvb.frontend = dvb_attach(or51132_attach, &pchdtv_hd3000, fe0->dvb.frontend = dvb_attach(or51132_attach, &pchdtv_hd3000,
...@@ -1058,7 +1058,6 @@ static int dvb_register(struct cx8802_dev *dev) ...@@ -1058,7 +1058,6 @@ static int dvb_register(struct cx8802_dev *dev)
goto frontend_detach; goto frontend_detach;
core->prev_set_voltage = fe0->dvb.frontend->ops.set_voltage; core->prev_set_voltage = fe0->dvb.frontend->ops.set_voltage;
fe0->dvb.frontend->ops.set_voltage = tevii_dvbs_set_voltage; fe0->dvb.frontend->ops.set_voltage = tevii_dvbs_set_voltage;
} }
} }
break; break;
...@@ -1110,10 +1109,7 @@ static int dvb_register(struct cx8802_dev *dev) ...@@ -1110,10 +1109,7 @@ static int dvb_register(struct cx8802_dev *dev)
&dev->pci->dev, adapter_nr, mfe_shared); &dev->pci->dev, adapter_nr, mfe_shared);
frontend_detach: frontend_detach:
if (fe0->dvb.frontend) { videobuf_dvb_dealloc_frontends(&dev->frontends);
dvb_frontend_detach(fe0->dvb.frontend);
fe0->dvb.frontend = NULL;
}
return -EINVAL; return -EINVAL;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册