Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 115667
b: refs/heads/master
c: 11fbedd
h: refs/heads/master
i:
  115665: 43d19e6
  115663: b064802
v: v3
  • Loading branch information
Steven Toth authored and Mauro Carvalho Chehab committed Oct 17, 2008
1 parent b0348c9 commit e47f42d
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 19 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: ca341e4d1b07ac9077b448c623ec256c89a2e080
refs/heads/master: 11fbedd33287416a5efdc32c38e33f410bb1e942
43 changes: 25 additions & 18 deletions trunk/drivers/media/video/videobuf-dvb.c
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,6 @@ static int videobuf_dvb_stop_feed(struct dvb_demux_feed *feed)
mutex_lock(&dvb->lock);
dvb->nfeeds--;
if (0 == dvb->nfeeds && NULL != dvb->thread) {
// FIXME: cx8802_cancel_buffers(dev);
err = kthread_stop(dvb->thread);
dvb->thread = NULL;
}
Expand Down Expand Up @@ -154,7 +153,8 @@ int videobuf_dvb_register_bus(struct videobuf_dvb_frontends *f,
}

/* Bring up the adapter */
res = videobuf_dvb_register_adapter(f, module, adapter_priv, device, fe->dvb.name, adapter_nr, mfe_shared);
res = videobuf_dvb_register_adapter(f, module, adapter_priv, device,
fe->dvb.name, adapter_nr, mfe_shared);
if (res < 0) {
printk(KERN_WARNING "videobuf_dvb_register_adapter failed (errno = %d)\n", res);
return res;
Expand All @@ -179,6 +179,7 @@ int videobuf_dvb_register_bus(struct videobuf_dvb_frontends *f,
videobuf_dvb_unregister_bus(f);
return res;
}
EXPORT_SYMBOL(videobuf_dvb_register_bus);

int videobuf_dvb_register_adapter(struct videobuf_dvb_frontends *fe,
struct module *module,
Expand All @@ -193,7 +194,8 @@ int videobuf_dvb_register_adapter(struct videobuf_dvb_frontends *fe,
mutex_init(&fe->lock);

/* register adapter */
result = dvb_register_adapter(&fe->adapter, adapter_name, module, device, adapter_nr);
result = dvb_register_adapter(&fe->adapter, adapter_name, module,
device, adapter_nr);
if (result < 0) {
printk(KERN_WARNING "%s: dvb_register_adapter failed (errno = %d)\n",
adapter_name, result);
Expand All @@ -204,7 +206,8 @@ int videobuf_dvb_register_adapter(struct videobuf_dvb_frontends *fe,
return result;
}

int videobuf_dvb_register_frontend(struct dvb_adapter *adapter, struct videobuf_dvb *dvb)
int videobuf_dvb_register_frontend(struct dvb_adapter *adapter,
struct videobuf_dvb *dvb)
{
int result;

Expand Down Expand Up @@ -299,15 +302,18 @@ void videobuf_dvb_unregister_bus(struct videobuf_dvb_frontends *f)
mutex_lock(&f->lock);
list_for_each_safe(list, q, &f->felist) {
fe = list_entry(list, struct videobuf_dvb_frontend, felist);
if(fe->dvb.net.dvbdev) {
if (fe->dvb.net.dvbdev) {
dvb_net_release(&fe->dvb.net);
fe->dvb.demux.dmx.remove_frontend(&fe->dvb.demux.dmx, &fe->dvb.fe_mem);
fe->dvb.demux.dmx.remove_frontend(&fe->dvb.demux.dmx, &fe->dvb.fe_hw);
fe->dvb.demux.dmx.remove_frontend(&fe->dvb.demux.dmx,
&fe->dvb.fe_mem);
fe->dvb.demux.dmx.remove_frontend(&fe->dvb.demux.dmx,
&fe->dvb.fe_hw);
dvb_dmxdev_release(&fe->dvb.dmxdev);
dvb_dmx_release(&fe->dvb.demux);
dvb_unregister_frontend(fe->dvb.frontend);
}
if(fe->dvb.frontend) /* always allocated, may have been reset */
if (fe->dvb.frontend)
/* always allocated, may have been reset */
dvb_frontend_detach(fe->dvb.frontend);
list_del(list);
kfree(fe);
Expand All @@ -316,8 +322,10 @@ void videobuf_dvb_unregister_bus(struct videobuf_dvb_frontends *f)

dvb_unregister_adapter(&f->adapter);
}
EXPORT_SYMBOL(videobuf_dvb_unregister_bus);

struct videobuf_dvb_frontend * videobuf_dvb_get_frontend(struct videobuf_dvb_frontends *f, int id)
struct videobuf_dvb_frontend *videobuf_dvb_get_frontend(
struct videobuf_dvb_frontends *f, int id)
{
struct list_head *list, *q;
struct videobuf_dvb_frontend *fe, *ret = NULL;
Expand All @@ -336,8 +344,10 @@ struct videobuf_dvb_frontend * videobuf_dvb_get_frontend(struct videobuf_dvb_fro

return ret;
}
EXPORT_SYMBOL(videobuf_dvb_get_frontend);

int videobuf_dvb_find_frontend(struct videobuf_dvb_frontends *f, struct dvb_frontend *p)
int videobuf_dvb_find_frontend(struct videobuf_dvb_frontends *f,
struct dvb_frontend *p)
{
struct list_head *list, *q;
struct videobuf_dvb_frontend *fe = NULL;
Expand All @@ -357,31 +367,28 @@ int videobuf_dvb_find_frontend(struct videobuf_dvb_frontends *f, struct dvb_fron

return ret;
}
EXPORT_SYMBOL(videobuf_dvb_find_frontend);

struct videobuf_dvb_frontend * videobuf_dvb_alloc_frontend(struct videobuf_dvb_frontends *f, int id)
struct videobuf_dvb_frontend *videobuf_dvb_alloc_frontend(
struct videobuf_dvb_frontends *f, int id)
{
struct videobuf_dvb_frontend *fe;

fe = kzalloc(sizeof(struct videobuf_dvb_frontend),GFP_KERNEL);
fe = kzalloc(sizeof(struct videobuf_dvb_frontend), GFP_KERNEL);
if (fe == NULL)
goto fail_alloc;

fe->id = id;
mutex_init(&fe->dvb.lock);

mutex_lock(&f->lock);
list_add_tail(&fe->felist,&f->felist);
list_add_tail(&fe->felist, &f->felist);
mutex_unlock(&f->lock);

fail_alloc:
return fe;
}

EXPORT_SYMBOL(videobuf_dvb_register_bus);
EXPORT_SYMBOL(videobuf_dvb_unregister_bus);
EXPORT_SYMBOL(videobuf_dvb_alloc_frontend);
EXPORT_SYMBOL(videobuf_dvb_get_frontend);
EXPORT_SYMBOL(videobuf_dvb_find_frontend);

/* ------------------------------------------------------------------ */
/*
Expand Down

0 comments on commit e47f42d

Please sign in to comment.