summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb/dibusb
diff options
context:
space:
mode:
authorPatrick Boettcher <devnull@localhost>2004-09-17 07:58:46 +0000
committerPatrick Boettcher <devnull@localhost>2004-09-17 07:58:46 +0000
commitc40a86c67942fe83a8a3461a5ae7702f7471474e (patch)
tree9c4bbe1df7bf8a44c99087126bedd363cf6606d8 /linux/drivers/media/dvb/dibusb
parent0ff9adf865c37d1dc1189444020644d8ae31ae6e (diff)
downloadmediapointer-dvb-s2-c40a86c67942fe83a8a3461a5ae7702f7471474e.tar.gz
mediapointer-dvb-s2-c40a86c67942fe83a8a3461a5ae7702f7471474e.tar.bz2
- typos in README.dibusb fixed and comments added
- changed debug calls, added debug levels - fixed bug, when enumerating the firmware files
Diffstat (limited to 'linux/drivers/media/dvb/dibusb')
-rw-r--r--linux/drivers/media/dvb/dibusb/dvb-dibusb.c53
1 files changed, 33 insertions, 20 deletions
diff --git a/linux/drivers/media/dvb/dibusb/dvb-dibusb.c b/linux/drivers/media/dvb/dibusb/dvb-dibusb.c
index 6c0ee84e8..30db454bc 100644
--- a/linux/drivers/media/dvb/dibusb/dvb-dibusb.c
+++ b/linux/drivers/media/dvb/dibusb/dvb-dibusb.c
@@ -43,17 +43,30 @@
#include "dvb-dibusb.h"
-static int debug;
-module_param(debug, int, 0x644);
-MODULE_PARM_DESC(debug, "Turn on/off debugging (default:off).");
+/* debug */
+
+#ifdef CONFIG_DVB_DIBCOM_DEBUG
+#define dprintk_new(level,args...) \
+ do { if ((debug & level)) { printk(args); } } while (0)
-#define dprintk if (debug) printk
#define debug_dump(b,l) if (debug) {\
- int i; printk("%s: %d > ",__FUNCTION__,l); \
- for (i = 0; i < l; i++) printk("%02x ", b[i]); \
- printk("\n");\
+ int i; deb_xfer("%s: %d > ",__FUNCTION__,l); \
+ for (i = 0; i < l; i++) deb_xfer("%02x ", b[i]); \
+ deb_xfer("\n");\
}
+static int debug;
+module_param(debug, int, 0x644);
+MODULE_PARM_DESC(debug, "set debugging level (1=info,2=xfer,4=alotmore (|-able)).");
+#else
+#define dprintk_new(args...)
+#define debug_dump(b,l)
+#endif
+
+#define deb_info(args...) dprintk_new(0x01,args)
+#define deb_xfer(args...) dprintk_new(0x02,args)
+#define deb_alot(args...) dprintk_new(0x04,args)
+
/* Version information */
#define DRIVER_VERSION "0.0"
#define DRIVER_DESC "DiBcom based USB Budget DVB-T device"
@@ -110,7 +123,7 @@ static int dibusb_readwrite_usb(struct usb_dibusb *dib,
if (ret)
err("recv bulk message failed: %d",ret);
else {
- /*dprintk("rlen: %d\n",rlen);*/
+ deb_alot("rlen: %d\n",rlen);
debug_dump(rbuf,actlen);
}
}
@@ -132,7 +145,7 @@ static int dibusb_i2c_msg(struct usb_dibusb *dib, u8 addr,
int wo = (rbuf == NULL || rlen == 0),
len = 2 + wlen + (wo ? 0 : 2);
-/* dprintk("wo: %d, wlen: %d, len: %d\n",wo,wlen,len);*/
+ deb_alot("wo: %d, wlen: %d, len: %d\n",wo,wlen,len);
sndbuf[0] = wo ? DIBUSB_REQ_I2C_WRITE : DIBUSB_REQ_I2C_READ;
sndbuf[1] = (addr & 0xfe) | (wo ? 0 : 1);
@@ -211,9 +224,9 @@ static void dibusb_urb_complete(struct urb *urb, struct pt_regs *ptregs)
return;
if (urb->status == 0) {
- dprintk("URB return len: %d\n",urb->actual_length);
+ deb_info("URB return len: %d\n",urb->actual_length);
if (urb->actual_length % 188)
- dprintk("TS Packets: %d, %d\n", urb->actual_length/188,urb->actual_length % 188);
+ deb_info("TS Packets: %d, %d\n", urb->actual_length/188,urb->actual_length % 188);
dvb_dmx_swfilter_packets(&dib->demux, (u8*) urb->transfer_buffer,urb->actual_length/188);
}
@@ -229,7 +242,7 @@ static int dibusb_start_feed(struct dvb_demux_feed *dvbdmxfeed)
struct dibusb_pid *dpid;
int ret = 0;
- dprintk("pid: 0x%04x, feedtype: %d\n", dvbdmxfeed->pid,dvbdmxfeed->type);
+ deb_info("pid: 0x%04x, feedtype: %d\n", dvbdmxfeed->pid,dvbdmxfeed->type);
if ((dpid = dibusb_get_free_pid(dib)) == NULL) {
err("no free pid in list.");
@@ -265,7 +278,7 @@ static int dibusb_stop_feed(struct dvb_demux_feed *dvbdmxfeed)
struct usb_dibusb *dib = dvbdmxfeed->demux->priv;
struct dibusb_pid *dpid = (struct dibusb_pid *) dvbdmxfeed->priv;
- dprintk("stopfeed pid: 0x%04x, feedtype: %d",dvbdmxfeed->pid, dvbdmxfeed->type);
+ deb_info("stopfeed pid: 0x%04x, feedtype: %d",dvbdmxfeed->pid, dvbdmxfeed->type);
if (dpid == NULL)
err("channel in dmxfeed->priv was NULL");
@@ -405,7 +418,7 @@ static int dibusb_dvb_init(struct usb_dibusb *dib)
if ((ret = dvb_register_adapter(&dib->adapter, DRIVER_DESC ,
THIS_MODULE)) < 0) {
#endif
- dprintk("dvb_register_adapter failed: error %d", ret);
+ deb_info("dvb_register_adapter failed: error %d", ret);
goto err;
}
@@ -466,7 +479,7 @@ success:
static int dibusb_dvb_exit(struct usb_dibusb *dib)
{
- dprintk("unregistering DVB part\n");
+ deb_info("unregistering DVB part\n");
dvb_net_release(&dib->dvb_net);
dib->demux.dmx.close(&dib->demux.dmx);
dvb_dmxdev_release(&dib->dmxdev);
@@ -492,7 +505,7 @@ static int dibusb_init(struct usb_dibusb *dib)
/*
* when reloading the driver w/o replugging the device
- * a timeout occures, this seems to help
+ * a timeout occures, this helps
*/
usb_clear_halt(dib->udev,COMMAND_PIPE);
usb_clear_halt(dib->udev,RESULT_PIPE);
@@ -541,17 +554,18 @@ static int dibusb_loadfirmware(struct usb_device *udev,
u8 *b,*p;
int ret = 0,i;
- for (i = 0; i < sizeof(valid_firmware_filenames); i++) {
+ for (i = 0; i < sizeof(valid_firmware_filenames)/sizeof(const char*); i++) {
if ((ret = request_firmware(&fw, valid_firmware_filenames[i], &udev->dev)) == 0) {
info("using firmware file (%s).",valid_firmware_filenames[i]);
break;
}
- dprintk("tried to find '%s' firmware - unsuccessful. (%d)\n",
+ deb_info("tried to find '%s' firmware - unsuccessful. (%d)\n",
valid_firmware_filenames[i],ret);
}
if (fw == NULL) {
- err("did not find a valid firmware file.");
+ err("did not find a valid firmware file. "
+ "Please see linux/Documentation/dvb/ for more details on firmware-problems.");
return -EINVAL;
}
p = kmalloc(fw->size,GFP_KERNEL);
@@ -683,7 +697,6 @@ static struct usb_driver dibusb_driver = {
static int __init usb_dibusb_init(void)
{
int result;
-
if ((result = usb_register(&dibusb_driver))) {
err("usb_register failed. Error number %d",result);
return result;