diff options
author | Patrick Boettcher <devnull@localhost> | 2004-09-17 07:58:46 +0000 |
---|---|---|
committer | Patrick Boettcher <devnull@localhost> | 2004-09-17 07:58:46 +0000 |
commit | c40a86c67942fe83a8a3461a5ae7702f7471474e (patch) | |
tree | 9c4bbe1df7bf8a44c99087126bedd363cf6606d8 /linux/drivers/media/dvb/dibusb | |
parent | 0ff9adf865c37d1dc1189444020644d8ae31ae6e (diff) | |
download | mediapointer-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.c | 53 |
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; |