|
@@ -83,28 +83,6 @@
|
|
|
|
|
|
#define DM9000_TIMER_WUT jiffies+(HZ*2) /* timer wakeup time : 2 second */
|
|
|
|
|
|
-#define DM9000_DEBUG 0
|
|
|
-
|
|
|
-#if DM9000_DEBUG > 2
|
|
|
-#define PRINTK3(args...) printk(CARDNAME ": " args)
|
|
|
-#else
|
|
|
-#define PRINTK3(args...) do { } while(0)
|
|
|
-#endif
|
|
|
-
|
|
|
-#if DM9000_DEBUG > 1
|
|
|
-#define PRINTK2(args...) printk(CARDNAME ": " args)
|
|
|
-#else
|
|
|
-#define PRINTK2(args...) do { } while(0)
|
|
|
-#endif
|
|
|
-
|
|
|
-#if DM9000_DEBUG > 0
|
|
|
-#define PRINTK1(args...) printk(CARDNAME ": " args)
|
|
|
-#define PRINTK(args...) printk(CARDNAME ": " args)
|
|
|
-#else
|
|
|
-#define PRINTK1(args...) do { } while(0)
|
|
|
-#define PRINTK(args...) printk(KERN_DEBUG args)
|
|
|
-#endif
|
|
|
-
|
|
|
#ifdef CONFIG_BLACKFIN
|
|
|
#define readsb insb
|
|
|
#define readsw insw
|
|
@@ -139,6 +117,8 @@ typedef struct board_info {
|
|
|
u8 phy_addr;
|
|
|
unsigned int flags;
|
|
|
|
|
|
+ int debug_level;
|
|
|
+
|
|
|
void (*inblk)(void __iomem *port, void *data, int length);
|
|
|
void (*outblk)(void __iomem *port, void *data, int length);
|
|
|
void (*dumpblk)(void __iomem *port, int length);
|
|
@@ -159,6 +139,15 @@ typedef struct board_info {
|
|
|
u32 msg_enable;
|
|
|
} board_info_t;
|
|
|
|
|
|
+/* debug code */
|
|
|
+
|
|
|
+#define dm9000_dbg(db, lev, msg...) do { \
|
|
|
+ if ((lev) < CONFIG_DM9000_DEBUGLEVEL && \
|
|
|
+ (lev) < db->debug_level) { \
|
|
|
+ dev_dbg(db->dev, msg); \
|
|
|
+ } \
|
|
|
+} while (0)
|
|
|
+
|
|
|
/* function declaration ------------------------------------- */
|
|
|
static int dm9000_probe(struct platform_device *);
|
|
|
static int dm9000_open(struct net_device *);
|
|
@@ -659,7 +648,7 @@ dm9000_init_dm9000(struct net_device *dev)
|
|
|
{
|
|
|
board_info_t *db = (board_info_t *) dev->priv;
|
|
|
|
|
|
- PRINTK1("entering %s\n",__FUNCTION__);
|
|
|
+ dm9000_dbg(db, 1, "entering %s\n", __func__);
|
|
|
|
|
|
/* I/O mode */
|
|
|
db->io_mode = ior(db, DM9000_ISR) >> 6; /* ISR bit7:6 keeps I/O mode */
|
|
@@ -705,7 +694,7 @@ dm9000_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
|
|
unsigned long flags;
|
|
|
board_info_t *db = (board_info_t *) dev->priv;
|
|
|
|
|
|
- PRINTK3("dm9000_start_xmit\n");
|
|
|
+ dm9000_dbg(db, 3, "%s:\n", __func__);
|
|
|
|
|
|
if (db->tx_pkt_cnt > 1)
|
|
|
return 1;
|
|
@@ -764,7 +753,7 @@ dm9000_stop(struct net_device *ndev)
|
|
|
{
|
|
|
board_info_t *db = (board_info_t *) ndev->priv;
|
|
|
|
|
|
- PRINTK1("entering %s\n",__FUNCTION__);
|
|
|
+ dm9000_dbg(db, 1, "entering %s\n", __func__);
|
|
|
|
|
|
/* deleted timer */
|
|
|
del_timer(&db->timer);
|
|
@@ -810,19 +799,14 @@ static irqreturn_t
|
|
|
dm9000_interrupt(int irq, void *dev_id)
|
|
|
{
|
|
|
struct net_device *dev = dev_id;
|
|
|
- board_info_t *db;
|
|
|
+ board_info_t *db = (board_info_t *) dev->priv;
|
|
|
int int_status;
|
|
|
u8 reg_save;
|
|
|
|
|
|
- PRINTK3("entering %s\n",__FUNCTION__);
|
|
|
-
|
|
|
- if (!dev) {
|
|
|
- PRINTK1("dm9000_interrupt() without DEVICE arg\n");
|
|
|
- return IRQ_HANDLED;
|
|
|
- }
|
|
|
+ dm9000_dbg(db, 3, "entering %s\n", __func__);
|
|
|
|
|
|
/* A real interrupt coming */
|
|
|
- db = (board_info_t *) dev->priv;
|
|
|
+
|
|
|
spin_lock(&db->lock);
|
|
|
|
|
|
/* Save previous register address */
|
|
@@ -864,7 +848,7 @@ dm9000_timer(unsigned long data)
|
|
|
struct net_device *dev = (struct net_device *) data;
|
|
|
board_info_t *db = (board_info_t *) dev->priv;
|
|
|
|
|
|
- PRINTK3("dm9000_timer()\n");
|
|
|
+ dm9000_dbg(db, 3, "entering %s\n", __func__);
|
|
|
|
|
|
mii_check_media(&db->mii, netif_msg_link(db), 0);
|
|
|
|
|
@@ -1049,7 +1033,7 @@ dm9000_hash_table(struct net_device *dev)
|
|
|
u16 i, oft, hash_table[4];
|
|
|
unsigned long flags;
|
|
|
|
|
|
- PRINTK2("dm9000_hash_table()\n");
|
|
|
+ dm9000_dbg(db, 1, "entering %s\n", __func__);
|
|
|
|
|
|
spin_lock_irqsave(&db->lock,flags);
|
|
|
|