Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 285730
b: refs/heads/master
c: e4b8537
h: refs/heads/master
v: v3
  • Loading branch information
Jonathan Nieder authored and Mauro Carvalho Chehab committed Jan 6, 2012
1 parent de4f846 commit 7745bad
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 31 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 5c96ebb7cea790c6ca1b8b70fdea531fb194dabb
refs/heads/master: e4b8537c974cf0f95282286e2f9e3e2476258f52
57 changes: 27 additions & 30 deletions trunk/drivers/media/dvb/bt8xx/dvb-bt8xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -744,57 +744,42 @@ static int __devinit dvb_bt8xx_load_card(struct dvb_bt8xx_card *card, u32 type)
card->demux.stop_feed = dvb_bt8xx_stop_feed;
card->demux.write_to_decoder = NULL;

if ((result = dvb_dmx_init(&card->demux)) < 0) {
result = dvb_dmx_init(&card->demux);
if (result < 0) {
printk("dvb_bt8xx: dvb_dmx_init failed (errno = %d)\n", result);

dvb_unregister_adapter(&card->dvb_adapter);
return result;
goto err_unregister_adaptor;
}

card->dmxdev.filternum = 256;
card->dmxdev.demux = &card->demux.dmx;
card->dmxdev.capabilities = 0;

if ((result = dvb_dmxdev_init(&card->dmxdev, &card->dvb_adapter)) < 0) {
result = dvb_dmxdev_init(&card->dmxdev, &card->dvb_adapter);
if (result < 0) {
printk("dvb_bt8xx: dvb_dmxdev_init failed (errno = %d)\n", result);

dvb_dmx_release(&card->demux);
dvb_unregister_adapter(&card->dvb_adapter);
return result;
goto err_dmx_release;
}

card->fe_hw.source = DMX_FRONTEND_0;

if ((result = card->demux.dmx.add_frontend(&card->demux.dmx, &card->fe_hw)) < 0) {
result = card->demux.dmx.add_frontend(&card->demux.dmx, &card->fe_hw);
if (result < 0) {
printk("dvb_bt8xx: dvb_dmx_init failed (errno = %d)\n", result);

dvb_dmxdev_release(&card->dmxdev);
dvb_dmx_release(&card->demux);
dvb_unregister_adapter(&card->dvb_adapter);
return result;
goto err_dmxdev_release;
}

card->fe_mem.source = DMX_MEMORY_FE;

if ((result = card->demux.dmx.add_frontend(&card->demux.dmx, &card->fe_mem)) < 0) {
result = card->demux.dmx.add_frontend(&card->demux.dmx, &card->fe_mem);
if (result < 0) {
printk("dvb_bt8xx: dvb_dmx_init failed (errno = %d)\n", result);

card->demux.dmx.remove_frontend(&card->demux.dmx, &card->fe_hw);
dvb_dmxdev_release(&card->dmxdev);
dvb_dmx_release(&card->demux);
dvb_unregister_adapter(&card->dvb_adapter);
return result;
goto err_remove_hw_frontend;
}

if ((result = card->demux.dmx.connect_frontend(&card->demux.dmx, &card->fe_hw)) < 0) {
result = card->demux.dmx.connect_frontend(&card->demux.dmx, &card->fe_hw);
if (result < 0) {
printk("dvb_bt8xx: dvb_dmx_init failed (errno = %d)\n", result);

card->demux.dmx.remove_frontend(&card->demux.dmx, &card->fe_mem);
card->demux.dmx.remove_frontend(&card->demux.dmx, &card->fe_hw);
dvb_dmxdev_release(&card->dmxdev);
dvb_dmx_release(&card->demux);
dvb_unregister_adapter(&card->dvb_adapter);
return result;
goto err_remove_mem_frontend;
}

dvb_net_init(&card->dvb_adapter, &card->dvbnet, &card->demux.dmx);
Expand All @@ -804,6 +789,18 @@ static int __devinit dvb_bt8xx_load_card(struct dvb_bt8xx_card *card, u32 type)
frontend_init(card, type);

return 0;

err_remove_mem_frontend:
card->demux.dmx.remove_frontend(&card->demux.dmx, &card->fe_mem);
err_remove_hw_frontend:
card->demux.dmx.remove_frontend(&card->demux.dmx, &card->fe_hw);
err_dmxdev_release:
dvb_dmxdev_release(&card->dmxdev);
err_dmx_release:
dvb_dmx_release(&card->demux);
err_unregister_adaptor:
dvb_unregister_adapter(&card->dvb_adapter);
return result;
}

static int __devinit dvb_bt8xx_probe(struct bttv_sub_device *sub)
Expand Down

0 comments on commit 7745bad

Please sign in to comment.