Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 94938
b: refs/heads/master
c: 485fcae
h: refs/heads/master
v: v3
  • Loading branch information
Michael Krufky authored and Mauro Carvalho Chehab committed Apr 29, 2008
1 parent 51abc9b commit 54389bc
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 18 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: 149ef72deeba57078216c9fa678baff392295853
refs/heads/master: 485fcaed25ed42d064445f9a65faa79a1faa6b0c
1 change: 1 addition & 0 deletions trunk/drivers/media/video/pvrusb2/pvrusb2-debug.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ extern int pvrusb2_debug;
#define PVR2_TRACE_DATA_FLOW (1 << 25) /* Track data flow */
#define PVR2_TRACE_DEBUGIFC (1 << 26) /* Debug interface actions */
#define PVR2_TRACE_GPIO (1 << 27) /* GPIO state bit changes */
#define PVR2_TRACE_DVB_FEED (1 << 28) /* DVB transport feed debug */


#endif /* __PVRUSB2_HDW_INTERNAL_H */
Expand Down
42 changes: 25 additions & 17 deletions trunk/drivers/media/video/pvrusb2/pvrusb2-dvb.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#include <linux/kthread.h>
#include <linux/freezer.h>
#include "dvbdev.h"
#include "pvrusb2-debug.h"
#include "pvrusb2-hdw-internal.h"
#include "pvrusb2-hdw.h"
#include "pvrusb2-io.h"
Expand All @@ -35,7 +36,7 @@ static int pvr2_dvb_feed_func(struct pvr2_dvb_adapter *adap)
struct pvr2_buffer *bp;
struct pvr2_stream *stream;

printk(KERN_DEBUG "dvb thread started\n");
pvr2_trace(PVR2_TRACE_DVB_FEED, "dvb feed thread started");
set_freezable();

stream = adap->channel.stream->stream;
Expand Down Expand Up @@ -82,7 +83,7 @@ static int pvr2_dvb_feed_func(struct pvr2_dvb_adapter *adap)
/* If we get here and ret is < 0, then an error has occurred.
Probably would be a good idea to communicate that to DVB core... */

printk(KERN_DEBUG "dvb thread stopped\n");
pvr2_trace(PVR2_TRACE_DVB_FEED, "dvb feed thread stopped");

return 0;
}
Expand Down Expand Up @@ -210,15 +211,17 @@ static int pvr2_dvb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed, int onoff)
do {
if (onoff) {
if (!adap->feedcount) {
printk(KERN_DEBUG "start feeding\n");
pvr2_trace(PVR2_TRACE_DVB_FEED,
"start feeding demux");
ret = pvr2_dvb_stream_start(adap);
if (ret < 0) break;
}
(adap->feedcount)++;
} else if (adap->feedcount > 0) {
(adap->feedcount)--;
if (!adap->feedcount) {
printk(KERN_DEBUG "stop feeding\n");
pvr2_trace(PVR2_TRACE_DVB_FEED,
"stop feeding demux");
pvr2_dvb_stream_end(adap);
}
}
Expand All @@ -230,15 +233,13 @@ static int pvr2_dvb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed, int onoff)

static int pvr2_dvb_start_feed(struct dvb_demux_feed *dvbdmxfeed)
{
printk(KERN_DEBUG "start pid: 0x%04x, feedtype: %d\n",
dvbdmxfeed->pid, dvbdmxfeed->type);
pvr2_trace(PVR2_TRACE_DVB_FEED, "start pid: 0x%04x", dvbdmxfeed->pid);
return pvr2_dvb_ctrl_feed(dvbdmxfeed, 1);
}

static int pvr2_dvb_stop_feed(struct dvb_demux_feed *dvbdmxfeed)
{
printk(KERN_DEBUG "stop pid: 0x%04x, feedtype: %d\n",
dvbdmxfeed->pid, dvbdmxfeed->type);
pvr2_trace(PVR2_TRACE_DVB_FEED, "stop pid: 0x%04x", dvbdmxfeed->pid);
return pvr2_dvb_ctrl_feed(dvbdmxfeed, 0);
}

Expand All @@ -259,7 +260,8 @@ static int pvr2_dvb_adapter_init(struct pvr2_dvb_adapter *adap)
&adap->channel.hdw->usb_dev->dev,
adapter_nr);
if (ret < 0) {
err("dvb_register_adapter failed: error %d", ret);
pvr2_trace(PVR2_TRACE_ERROR_LEGS,
"dvb_register_adapter failed: error %d", ret);
goto err;
}
adap->dvb_adap.priv = adap;
Expand All @@ -276,7 +278,8 @@ static int pvr2_dvb_adapter_init(struct pvr2_dvb_adapter *adap)

ret = dvb_dmx_init(&adap->demux);
if (ret < 0) {
err("dvb_dmx_init failed: error %d", ret);
pvr2_trace(PVR2_TRACE_ERROR_LEGS,
"dvb_dmx_init failed: error %d", ret);
goto err_dmx;
}

Expand All @@ -286,7 +289,8 @@ static int pvr2_dvb_adapter_init(struct pvr2_dvb_adapter *adap)

ret = dvb_dmxdev_init(&adap->dmxdev, &adap->dvb_adap);
if (ret < 0) {
err("dvb_dmxdev_init failed: error %d", ret);
pvr2_trace(PVR2_TRACE_ERROR_LEGS,
"dvb_dmxdev_init failed: error %d", ret);
goto err_dmx_dev;
}

Expand All @@ -304,7 +308,7 @@ static int pvr2_dvb_adapter_init(struct pvr2_dvb_adapter *adap)

static int pvr2_dvb_adapter_exit(struct pvr2_dvb_adapter *adap)
{
printk(KERN_DEBUG "unregistering DVB devices\n");
pvr2_trace(PVR2_TRACE_INFO, "unregistering DVB devices");
dvb_net_release(&adap->dvb_net);
adap->demux.dmx.close(&adap->demux.dmx);
dvb_dmxdev_release(&adap->dmxdev);
Expand All @@ -320,29 +324,32 @@ static int pvr2_dvb_frontend_init(struct pvr2_dvb_adapter *adap)
int ret = 0;

if (dvb_props == NULL) {
err("fe_props not defined!");
pvr2_trace(PVR2_TRACE_ERROR_LEGS, "fe_props not defined!");
return -EINVAL;
}

ret = pvr2_channel_limit_inputs(
&adap->channel,
(1 << PVR2_CVAL_INPUT_DTV));
if (ret) {
err("failed to grab control of dtv input (code=%d)",
pvr2_trace(PVR2_TRACE_ERROR_LEGS,
"failed to grab control of dtv input (code=%d)",
ret);
return ret;
}

if (dvb_props->frontend_attach == NULL) {
err("frontend_attach not defined!");
pvr2_trace(PVR2_TRACE_ERROR_LEGS,
"frontend_attach not defined!");
ret = -EINVAL;
goto done;
}

if ((dvb_props->frontend_attach(adap) == 0) && (adap->fe)) {

if (dvb_register_frontend(&adap->dvb_adap, adap->fe)) {
err("frontend registration failed!");
pvr2_trace(PVR2_TRACE_ERROR_LEGS,
"frontend registration failed!");
dvb_frontend_detach(adap->fe);
adap->fe = NULL;
ret = -ENODEV;
Expand All @@ -359,7 +366,8 @@ static int pvr2_dvb_frontend_init(struct pvr2_dvb_adapter *adap)
adap->fe->ops.ts_bus_ctrl = pvr2_dvb_bus_ctrl;

} else {
err("no frontend was attached!");
pvr2_trace(PVR2_TRACE_ERROR_LEGS,
"no frontend was attached!");
ret = -ENODEV;
return ret;
}
Expand Down

0 comments on commit 54389bc

Please sign in to comment.