Skip to content

Commit

Permalink
DM9000 update debugging macros to use debug level
Browse files Browse the repository at this point in the history
Change the debug macros to use the compiler to elide any
unnecessary debug level, and to allow device configurable
debug control.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
  • Loading branch information
Ben Dooks authored and Jeff Garzik committed Feb 11, 2008
1 parent a76836f commit 5b2b4ff
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 35 deletions.
8 changes: 8 additions & 0 deletions drivers/net/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -931,6 +931,14 @@ config ENC28J60_WRITEVERIFY
Enable the verify after the buffer write useful for debugging purpose.
If unsure, say N.

config DM9000_DEBUGLEVEL
int "DM9000 maximum debug level"
depends on DM9000
default 4
help
The maximum level of debugging code compiled into the DM9000
driver.

config SMC911X
tristate "SMSC LAN911[5678] support"
select CRC32
Expand Down
54 changes: 19 additions & 35 deletions drivers/net/dm9000.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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);
Expand All @@ -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 *);
Expand Down Expand Up @@ -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 */
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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 */
Expand Down Expand Up @@ -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);

Expand Down Expand Up @@ -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);

Expand Down

0 comments on commit 5b2b4ff

Please sign in to comment.