|
@@ -23,8 +23,6 @@
|
|
|
* All rights reserved. Licensed under dual BSD/GPL license.
|
|
|
*/
|
|
|
|
|
|
-/* #define PCMCIA_DEBUG 6 */
|
|
|
-
|
|
|
#include <linux/kernel.h>
|
|
|
#include <linux/module.h>
|
|
|
#include <linux/slab.h>
|
|
@@ -47,18 +45,17 @@
|
|
|
|
|
|
/* #define ATR_CSUM */
|
|
|
|
|
|
-#ifdef PCMCIA_DEBUG
|
|
|
#define reader_to_dev(x) (&handle_to_dev(x->p_dev))
|
|
|
-static int pc_debug = PCMCIA_DEBUG;
|
|
|
-module_param(pc_debug, int, 0600);
|
|
|
-#define DEBUGP(n, rdr, x, args...) do { \
|
|
|
- if (pc_debug >= (n)) \
|
|
|
- dev_printk(KERN_DEBUG, reader_to_dev(rdr), "%s:" x, \
|
|
|
- __func__ , ## args); \
|
|
|
+
|
|
|
+/* n (debug level) is ignored */
|
|
|
+/* additional debug output may be enabled by re-compiling with
|
|
|
+ * CM4000_DEBUG set */
|
|
|
+/* #define CM4000_DEBUG */
|
|
|
+#define DEBUGP(n, rdr, x, args...) do { \
|
|
|
+ dev_dbg(reader_to_dev(rdr), "%s:" x, \
|
|
|
+ __func__ , ## args); \
|
|
|
} while (0)
|
|
|
-#else
|
|
|
-#define DEBUGP(n, rdr, x, args...)
|
|
|
-#endif
|
|
|
+
|
|
|
static char *version = "cm4000_cs.c v2.4.0gm6 - All bugs added by Harald Welte";
|
|
|
|
|
|
#define T_1SEC (HZ)
|
|
@@ -174,14 +171,13 @@ static unsigned char fi_di_table[10][14] = {
|
|
|
/* 9 */ {0x09,0x19,0x29,0x39,0x49,0x59,0x69,0x11,0x11,0x99,0xA9,0xB9,0xC9,0xD9}
|
|
|
};
|
|
|
|
|
|
-#ifndef PCMCIA_DEBUG
|
|
|
+#ifndef CM4000_DEBUG
|
|
|
#define xoutb outb
|
|
|
#define xinb inb
|
|
|
#else
|
|
|
static inline void xoutb(unsigned char val, unsigned short port)
|
|
|
{
|
|
|
- if (pc_debug >= 7)
|
|
|
- printk(KERN_DEBUG "outb(val=%.2x,port=%.4x)\n", val, port);
|
|
|
+ pr_debug("outb(val=%.2x,port=%.4x)\n", val, port);
|
|
|
outb(val, port);
|
|
|
}
|
|
|
static inline unsigned char xinb(unsigned short port)
|
|
@@ -189,8 +185,7 @@ static inline unsigned char xinb(unsigned short port)
|
|
|
unsigned char val;
|
|
|
|
|
|
val = inb(port);
|
|
|
- if (pc_debug >= 7)
|
|
|
- printk(KERN_DEBUG "%.2x=inb(%.4x)\n", val, port);
|
|
|
+ pr_debug("%.2x=inb(%.4x)\n", val, port);
|
|
|
|
|
|
return val;
|
|
|
}
|
|
@@ -514,12 +509,10 @@ static int set_protocol(struct cm4000_dev *dev, struct ptsreq *ptsreq)
|
|
|
for (i = 0; i < 4; i++) {
|
|
|
xoutb(i, REG_BUF_ADDR(iobase));
|
|
|
xoutb(dev->pts[i], REG_BUF_DATA(iobase)); /* buf data */
|
|
|
-#ifdef PCMCIA_DEBUG
|
|
|
- if (pc_debug >= 5)
|
|
|
- printk("0x%.2x ", dev->pts[i]);
|
|
|
+#ifdef CM4000_DEBUG
|
|
|
+ pr_debug("0x%.2x ", dev->pts[i]);
|
|
|
}
|
|
|
- if (pc_debug >= 5)
|
|
|
- printk("\n");
|
|
|
+ pr_debug("\n");
|
|
|
#else
|
|
|
}
|
|
|
#endif
|
|
@@ -579,14 +572,13 @@ static int set_protocol(struct cm4000_dev *dev, struct ptsreq *ptsreq)
|
|
|
pts_reply[i] = inb(REG_BUF_DATA(iobase));
|
|
|
}
|
|
|
|
|
|
-#ifdef PCMCIA_DEBUG
|
|
|
+#ifdef CM4000_DEBUG
|
|
|
DEBUGP(2, dev, "PTSreply: ");
|
|
|
for (i = 0; i < num_bytes_read; i++) {
|
|
|
- if (pc_debug >= 5)
|
|
|
- printk("0x%.2x ", pts_reply[i]);
|
|
|
+ pr_debug("0x%.2x ", pts_reply[i]);
|
|
|
}
|
|
|
- printk("\n");
|
|
|
-#endif /* PCMCIA_DEBUG */
|
|
|
+ pr_debug("\n");
|
|
|
+#endif /* CM4000_DEBUG */
|
|
|
|
|
|
DEBUGP(5, dev, "Clear Tactive in Flags1\n");
|
|
|
xoutb(0x20, REG_FLAGS1(iobase));
|
|
@@ -655,7 +647,7 @@ static void terminate_monitor(struct cm4000_dev *dev)
|
|
|
|
|
|
DEBUGP(5, dev, "Delete timer\n");
|
|
|
del_timer_sync(&dev->timer);
|
|
|
-#ifdef PCMCIA_DEBUG
|
|
|
+#ifdef CM4000_DEBUG
|
|
|
dev->monitor_running = 0;
|
|
|
#endif
|
|
|
|
|
@@ -898,7 +890,7 @@ static void monitor_card(unsigned long p)
|
|
|
DEBUGP(4, dev, "ATR checksum (0x%.2x, should "
|
|
|
"be zero) failed\n", dev->atr_csum);
|
|
|
}
|
|
|
-#ifdef PCMCIA_DEBUG
|
|
|
+#ifdef CM4000_DEBUG
|
|
|
else if (test_bit(IS_BAD_LENGTH, &dev->flags)) {
|
|
|
DEBUGP(4, dev, "ATR length error\n");
|
|
|
} else {
|
|
@@ -1415,7 +1407,7 @@ static long cmm_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
|
|
|
int size;
|
|
|
int rc;
|
|
|
void __user *argp = (void __user *)arg;
|
|
|
-#ifdef PCMCIA_DEBUG
|
|
|
+#ifdef CM4000_DEBUG
|
|
|
char *ioctl_names[CM_IOC_MAXNR + 1] = {
|
|
|
[_IOC_NR(CM_IOCGSTATUS)] "CM_IOCGSTATUS",
|
|
|
[_IOC_NR(CM_IOCGATR)] "CM_IOCGATR",
|
|
@@ -1423,9 +1415,9 @@ static long cmm_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
|
|
|
[_IOC_NR(CM_IOCSPTS)] "CM_IOCSPTS",
|
|
|
[_IOC_NR(CM_IOSDBGLVL)] "CM4000_DBGLVL",
|
|
|
};
|
|
|
-#endif
|
|
|
DEBUGP(3, dev, "cmm_ioctl(device=%d.%d) %s\n", imajor(inode),
|
|
|
iminor(inode), ioctl_names[_IOC_NR(cmd)]);
|
|
|
+#endif
|
|
|
|
|
|
lock_kernel();
|
|
|
rc = -ENODEV;
|
|
@@ -1523,7 +1515,7 @@ static long cmm_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
|
|
|
}
|
|
|
case CM_IOCARDOFF:
|
|
|
|
|
|
-#ifdef PCMCIA_DEBUG
|
|
|
+#ifdef CM4000_DEBUG
|
|
|
DEBUGP(4, dev, "... in CM_IOCARDOFF\n");
|
|
|
if (dev->flags0 & 0x01) {
|
|
|
DEBUGP(4, dev, " Card inserted\n");
|
|
@@ -1625,18 +1617,9 @@ static long cmm_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
|
|
|
|
|
|
}
|
|
|
break;
|
|
|
-#ifdef PCMCIA_DEBUG
|
|
|
- case CM_IOSDBGLVL: /* set debug log level */
|
|
|
- {
|
|
|
- int old_pc_debug = 0;
|
|
|
-
|
|
|
- old_pc_debug = pc_debug;
|
|
|
- if (copy_from_user(&pc_debug, argp, sizeof(int)))
|
|
|
- rc = -EFAULT;
|
|
|
- else if (old_pc_debug != pc_debug)
|
|
|
- DEBUGP(0, dev, "Changed debug log level "
|
|
|
- "to %i\n", pc_debug);
|
|
|
- }
|
|
|
+#ifdef CM4000_DEBUG
|
|
|
+ case CM_IOSDBGLVL:
|
|
|
+ rc = -ENOTTY;
|
|
|
break;
|
|
|
#endif
|
|
|
default:
|