drivers/net/ks*: Use netdev_<level>, netif_<level> and pr_<level>

I'm not sure this is correct.

It changes logging macros from:
	dev_<level>(&ks->spidev->dev,
to
	netdev_<level>(ks->netdev,

Comments?

Use netdev_<level>
Use netif_<level>
Use pr_<level>
Add #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
Add missing line to message in ks8851_remove
Change kmalloc/memset(,0) to kzalloc
Remove ks_<level> macros
Consolidation code into set_media_state

Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Joe Perches 2010-02-27 14:43:51 +00:00 committed by David S. Miller
parent ca50910185
commit 0dc7d2b3cb
4 changed files with 91 additions and 120 deletions

View File

@ -20,6 +20,8 @@
* The Micrel KS8842 behind the timberdale FPGA
*/
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/platform_device.h>
@ -525,8 +527,7 @@ static int ks8842_open(struct net_device *netdev)
err = request_irq(adapter->irq, ks8842_irq, IRQF_SHARED, DRV_NAME,
adapter);
if (err) {
printk(KERN_ERR "Failed to request IRQ: %d: %d\n",
adapter->irq, err);
pr_err("Failed to request IRQ: %d: %d\n", adapter->irq, err);
return err;
}
@ -668,8 +669,7 @@ static int __devinit ks8842_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, netdev);
printk(KERN_INFO DRV_NAME
" Found chip, family: 0x%x, id: 0x%x, rev: 0x%x\n",
pr_info("Found chip, family: 0x%x, id: 0x%x, rev: 0x%x\n",
(id >> 8) & 0xff, (id >> 4) & 0xf, (id >> 1) & 0x7);
return 0;

View File

@ -9,6 +9,8 @@
* published by the Free Software Foundation.
*/
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#define DEBUG
#include <linux/module.h>
@ -125,11 +127,6 @@ struct ks8851_net {
static int msg_enable;
#define ks_info(_ks, _msg...) dev_info(&(_ks)->spidev->dev, _msg)
#define ks_warn(_ks, _msg...) dev_warn(&(_ks)->spidev->dev, _msg)
#define ks_dbg(_ks, _msg...) dev_dbg(&(_ks)->spidev->dev, _msg)
#define ks_err(_ks, _msg...) dev_err(&(_ks)->spidev->dev, _msg)
/* shift for byte-enable data */
#define BYTE_EN(_x) ((_x) << 2)
@ -167,7 +164,7 @@ static void ks8851_wrreg16(struct ks8851_net *ks, unsigned reg, unsigned val)
ret = spi_sync(ks->spidev, msg);
if (ret < 0)
ks_err(ks, "spi_sync() failed\n");
netdev_err(ks->netdev, "spi_sync() failed\n");
}
/**
@ -197,7 +194,7 @@ static void ks8851_wrreg8(struct ks8851_net *ks, unsigned reg, unsigned val)
ret = spi_sync(ks->spidev, msg);
if (ret < 0)
ks_err(ks, "spi_sync() failed\n");
netdev_err(ks->netdev, "spi_sync() failed\n");
}
/**
@ -263,7 +260,7 @@ static void ks8851_rdreg(struct ks8851_net *ks, unsigned op,
ret = spi_sync(ks->spidev, msg);
if (ret < 0)
ks_err(ks, "read: spi_sync() failed\n");
netdev_err(ks->netdev, "read: spi_sync() failed\n");
else if (ks8851_rx_1msg(ks))
memcpy(rxb, trx + 2, rxl);
else
@ -417,8 +414,8 @@ static void ks8851_rdfifo(struct ks8851_net *ks, u8 *buff, unsigned len)
u8 txb[1];
int ret;
if (netif_msg_rx_status(ks))
ks_dbg(ks, "%s: %d@%p\n", __func__, len, buff);
netif_dbg(ks, rx_status, ks->netdev,
"%s: %d@%p\n", __func__, len, buff);
/* set the operation we're issuing */
txb[0] = KS_SPIOP_RXFIFO;
@ -434,7 +431,7 @@ static void ks8851_rdfifo(struct ks8851_net *ks, u8 *buff, unsigned len)
ret = spi_sync(ks->spidev, msg);
if (ret < 0)
ks_err(ks, "%s: spi_sync() failed\n", __func__);
netdev_err(ks->netdev, "%s: spi_sync() failed\n", __func__);
}
/**
@ -446,10 +443,11 @@ static void ks8851_rdfifo(struct ks8851_net *ks, u8 *buff, unsigned len)
*/
static void ks8851_dbg_dumpkkt(struct ks8851_net *ks, u8 *rxpkt)
{
ks_dbg(ks, "pkt %02x%02x%02x%02x %02x%02x%02x%02x %02x%02x%02x%02x\n",
rxpkt[4], rxpkt[5], rxpkt[6], rxpkt[7],
rxpkt[8], rxpkt[9], rxpkt[10], rxpkt[11],
rxpkt[12], rxpkt[13], rxpkt[14], rxpkt[15]);
netdev_dbg(ks->netdev,
"pkt %02x%02x%02x%02x %02x%02x%02x%02x %02x%02x%02x%02x\n",
rxpkt[4], rxpkt[5], rxpkt[6], rxpkt[7],
rxpkt[8], rxpkt[9], rxpkt[10], rxpkt[11],
rxpkt[12], rxpkt[13], rxpkt[14], rxpkt[15]);
}
/**
@ -471,8 +469,8 @@ static void ks8851_rx_pkts(struct ks8851_net *ks)
rxfc = ks8851_rdreg8(ks, KS_RXFC);
if (netif_msg_rx_status(ks))
ks_dbg(ks, "%s: %d packets\n", __func__, rxfc);
netif_dbg(ks, rx_status, ks->netdev,
"%s: %d packets\n", __func__, rxfc);
/* Currently we're issuing a read per packet, but we could possibly
* improve the code by issuing a single read, getting the receive
@ -489,9 +487,8 @@ static void ks8851_rx_pkts(struct ks8851_net *ks)
rxstat = rxh & 0xffff;
rxlen = rxh >> 16;
if (netif_msg_rx_status(ks))
ks_dbg(ks, "rx: stat 0x%04x, len 0x%04x\n",
rxstat, rxlen);
netif_dbg(ks, rx_status, ks->netdev,
"rx: stat 0x%04x, len 0x%04x\n", rxstat, rxlen);
/* the length of the packet includes the 32bit CRC */
@ -553,9 +550,8 @@ static void ks8851_irq_work(struct work_struct *work)
status = ks8851_rdreg16(ks, KS_ISR);
if (netif_msg_intr(ks))
dev_dbg(&ks->spidev->dev, "%s: status 0x%04x\n",
__func__, status);
netif_dbg(ks, intr, ks->netdev,
"%s: status 0x%04x\n", __func__, status);
if (status & IRQ_LCI) {
/* should do something about checking link status */
@ -582,8 +578,8 @@ static void ks8851_irq_work(struct work_struct *work)
* system */
ks->tx_space = ks8851_rdreg16(ks, KS_TXMIR);
if (netif_msg_intr(ks))
ks_dbg(ks, "%s: txspace %d\n", __func__, ks->tx_space);
netif_dbg(ks, intr, ks->netdev,
"%s: txspace %d\n", __func__, ks->tx_space);
}
if (status & IRQ_RXI)
@ -659,9 +655,8 @@ static void ks8851_wrpkt(struct ks8851_net *ks, struct sk_buff *txp, bool irq)
unsigned fid = 0;
int ret;
if (netif_msg_tx_queued(ks))
dev_dbg(&ks->spidev->dev, "%s: skb %p, %d@%p, irq %d\n",
__func__, txp, txp->len, txp->data, irq);
netif_dbg(ks, tx_queued, ks->netdev, "%s: skb %p, %d@%p, irq %d\n",
__func__, txp, txp->len, txp->data, irq);
fid = ks->fid++;
fid &= TXFR_TXFID_MASK;
@ -685,7 +680,7 @@ static void ks8851_wrpkt(struct ks8851_net *ks, struct sk_buff *txp, bool irq)
ret = spi_sync(ks->spidev, msg);
if (ret < 0)
ks_err(ks, "%s: spi_sync() failed\n", __func__);
netdev_err(ks->netdev, "%s: spi_sync() failed\n", __func__);
}
/**
@ -744,8 +739,7 @@ static void ks8851_set_powermode(struct ks8851_net *ks, unsigned pwrmode)
{
unsigned pmecr;
if (netif_msg_hw(ks))
ks_dbg(ks, "setting power mode %d\n", pwrmode);
netif_dbg(ks, hw, ks->netdev, "setting power mode %d\n", pwrmode);
pmecr = ks8851_rdreg16(ks, KS_PMECR);
pmecr &= ~PMECR_PM_MASK;
@ -769,8 +763,7 @@ static int ks8851_net_open(struct net_device *dev)
* else at the moment */
mutex_lock(&ks->lock);
if (netif_msg_ifup(ks))
ks_dbg(ks, "opening %s\n", dev->name);
netif_dbg(ks, ifup, ks->netdev, "opening\n");
/* bring chip out of any power saving mode it was in */
ks8851_set_powermode(ks, PMECR_PM_NORMAL);
@ -826,8 +819,7 @@ static int ks8851_net_open(struct net_device *dev)
netif_start_queue(ks->netdev);
if (netif_msg_ifup(ks))
ks_dbg(ks, "network device %s up\n", dev->name);
netif_dbg(ks, ifup, ks->netdev, "network device up\n");
mutex_unlock(&ks->lock);
return 0;
@ -845,8 +837,7 @@ static int ks8851_net_stop(struct net_device *dev)
{
struct ks8851_net *ks = netdev_priv(dev);
if (netif_msg_ifdown(ks))
ks_info(ks, "%s: shutting down\n", dev->name);
netif_info(ks, ifdown, dev, "shutting down\n");
netif_stop_queue(dev);
@ -874,8 +865,8 @@ static int ks8851_net_stop(struct net_device *dev)
while (!skb_queue_empty(&ks->txq)) {
struct sk_buff *txb = skb_dequeue(&ks->txq);
if (netif_msg_ifdown(ks))
ks_dbg(ks, "%s: freeing txb %p\n", __func__, txb);
netif_dbg(ks, ifdown, ks->netdev,
"%s: freeing txb %p\n", __func__, txb);
dev_kfree_skb(txb);
}
@ -904,9 +895,8 @@ static netdev_tx_t ks8851_start_xmit(struct sk_buff *skb,
unsigned needed = calc_txlen(skb->len);
netdev_tx_t ret = NETDEV_TX_OK;
if (netif_msg_tx_queued(ks))
ks_dbg(ks, "%s: skb %p, %d@%p\n", __func__,
skb, skb->len, skb->data);
netif_dbg(ks, tx_queued, ks->netdev,
"%s: skb %p, %d@%p\n", __func__, skb, skb->len, skb->data);
spin_lock(&ks->statelock);
@ -1186,17 +1176,17 @@ static int ks8851_read_selftest(struct ks8851_net *ks)
rd = ks8851_rdreg16(ks, KS_MBIR);
if ((rd & both_done) != both_done) {
ks_warn(ks, "Memory selftest not finished\n");
netdev_warn(ks->netdev, "Memory selftest not finished\n");
return 0;
}
if (rd & MBIR_TXMBFA) {
ks_err(ks, "TX memory selftest fail\n");
netdev_err(ks->netdev, "TX memory selftest fail\n");
ret |= 1;
}
if (rd & MBIR_RXMBFA) {
ks_err(ks, "RX memory selftest fail\n");
netdev_err(ks->netdev, "RX memory selftest fail\n");
ret |= 2;
}
@ -1294,9 +1284,9 @@ static int __devinit ks8851_probe(struct spi_device *spi)
goto err_netdev;
}
dev_info(&spi->dev, "revision %d, MAC %pM, IRQ %d\n",
CIDER_REV_GET(ks8851_rdreg16(ks, KS_CIDER)),
ndev->dev_addr, ndev->irq);
netdev_info(ndev, "revision %d, MAC %pM, IRQ %d\n",
CIDER_REV_GET(ks8851_rdreg16(ks, KS_CIDER)),
ndev->dev_addr, ndev->irq);
return 0;
@ -1315,7 +1305,7 @@ static int __devexit ks8851_remove(struct spi_device *spi)
struct ks8851_net *priv = dev_get_drvdata(&spi->dev);
if (netif_msg_drv(priv))
dev_info(&spi->dev, "remove");
dev_info(&spi->dev, "remove\n");
unregister_netdev(priv->netdev);
free_irq(spi->irq, priv);

View File

@ -21,6 +21,8 @@
* KS8851 16bit MLL chip from Micrel Inc.
*/
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/netdevice.h>
@ -458,11 +460,6 @@ struct ks_net {
static int msg_enable;
#define ks_info(_ks, _msg...) dev_info(&(_ks)->pdev->dev, _msg)
#define ks_warn(_ks, _msg...) dev_warn(&(_ks)->pdev->dev, _msg)
#define ks_dbg(_ks, _msg...) dev_dbg(&(_ks)->pdev->dev, _msg)
#define ks_err(_ks, _msg...) dev_err(&(_ks)->pdev->dev, _msg)
#define BE3 0x8000 /* Byte Enable 3 */
#define BE2 0x4000 /* Byte Enable 2 */
#define BE1 0x2000 /* Byte Enable 1 */
@ -624,8 +621,7 @@ static void ks_set_powermode(struct ks_net *ks, unsigned pwrmode)
{
unsigned pmecr;
if (netif_msg_hw(ks))
ks_dbg(ks, "setting power mode %d\n", pwrmode);
netif_dbg(ks, hw, ks->netdev, "setting power mode %d\n", pwrmode);
ks_rdreg16(ks, KS_GRR);
pmecr = ks_rdreg16(ks, KS_PMECR);
@ -809,7 +805,7 @@ static void ks_rcv(struct ks_net *ks, struct net_device *netdev)
skb->protocol = eth_type_trans(skb, netdev);
netif_rx(skb);
} else {
printk(KERN_ERR "%s: err:skb alloc\n", __func__);
pr_err("%s: err:skb alloc\n", __func__);
ks_wrreg16(ks, KS_RXQCR, (ks->rc_rxqcr | RXQCR_RRXEF));
if (skb)
dev_kfree_skb_irq(skb);
@ -836,9 +832,8 @@ static void ks_update_link_status(struct net_device *netdev, struct ks_net *ks)
netif_carrier_off(netdev);
link_up_status = false;
}
if (netif_msg_link(ks))
ks_dbg(ks, "%s: %s\n",
__func__, link_up_status ? "UP" : "DOWN");
netif_dbg(ks, link, ks->netdev,
"%s: %s\n", __func__, link_up_status ? "UP" : "DOWN");
}
/**
@ -908,15 +903,13 @@ static int ks_net_open(struct net_device *netdev)
* else at the moment.
*/
if (netif_msg_ifup(ks))
ks_dbg(ks, "%s - entry\n", __func__);
netif_dbg(ks, ifup, ks->netdev, "%s - entry\n", __func__);
/* reset the HW */
err = request_irq(ks->irq, ks_irq, KS_INT_FLAGS, DRV_NAME, netdev);
if (err) {
printk(KERN_ERR "Failed to request IRQ: %d: %d\n",
ks->irq, err);
pr_err("Failed to request IRQ: %d: %d\n", ks->irq, err);
return err;
}
@ -929,8 +922,7 @@ static int ks_net_open(struct net_device *netdev)
ks_enable_qmu(ks);
netif_start_queue(ks->netdev);
if (netif_msg_ifup(ks))
ks_dbg(ks, "network device %s up\n", netdev->name);
netif_dbg(ks, ifup, ks->netdev, "network device up\n");
return 0;
}
@ -947,8 +939,7 @@ static int ks_net_stop(struct net_device *netdev)
{
struct ks_net *ks = netdev_priv(netdev);
if (netif_msg_ifdown(ks))
ks_info(ks, "%s: shutting down\n", netdev->name);
netif_info(ks, ifdown, netdev, "shutting down\n");
netif_stop_queue(netdev);
@ -1429,21 +1420,21 @@ static int ks_read_selftest(struct ks_net *ks)
rd = ks_rdreg16(ks, KS_MBIR);
if ((rd & both_done) != both_done) {
ks_warn(ks, "Memory selftest not finished\n");
netdev_warn(ks->netdev, "Memory selftest not finished\n");
return 0;
}
if (rd & MBIR_TXMBFA) {
ks_err(ks, "TX memory selftest fails\n");
netdev_err(ks->netdev, "TX memory selftest fails\n");
ret |= 1;
}
if (rd & MBIR_RXMBFA) {
ks_err(ks, "RX memory selftest fails\n");
netdev_err(ks->netdev, "RX memory selftest fails\n");
ret |= 2;
}
ks_info(ks, "the selftest passes\n");
netdev_info(ks->netdev, "the selftest passes\n");
return ret;
}
@ -1514,7 +1505,7 @@ static int ks_hw_init(struct ks_net *ks)
ks->frame_head_info = (struct type_frame_head *) \
kmalloc(MHEADER_SIZE, GFP_KERNEL);
if (!ks->frame_head_info) {
printk(KERN_ERR "Error: Fail to allocate frame memory\n");
pr_err("Error: Fail to allocate frame memory\n");
return false;
}
@ -1580,7 +1571,7 @@ static int __devinit ks8851_probe(struct platform_device *pdev)
ks->mii.mdio_read = ks_phy_read;
ks->mii.mdio_write = ks_phy_write;
ks_info(ks, "message enable is %d\n", msg_enable);
netdev_info(netdev, "message enable is %d\n", msg_enable);
/* set the default message enable */
ks->msg_enable = netif_msg_init(msg_enable, (NETIF_MSG_DRV |
NETIF_MSG_PROBE |
@ -1589,13 +1580,13 @@ static int __devinit ks8851_probe(struct platform_device *pdev)
/* simple check for a valid chip being connected to the bus */
if ((ks_rdreg16(ks, KS_CIDER) & ~CIDER_REV_MASK) != CIDER_ID) {
ks_err(ks, "failed to read device ID\n");
netdev_err(netdev, "failed to read device ID\n");
err = -ENODEV;
goto err_register;
}
if (ks_read_selftest(ks)) {
ks_err(ks, "failed to read device ID\n");
netdev_err(netdev, "failed to read device ID\n");
err = -ENODEV;
goto err_register;
}
@ -1626,9 +1617,8 @@ static int __devinit ks8851_probe(struct platform_device *pdev)
id = ks_rdreg16(ks, KS_CIDER);
printk(KERN_INFO DRV_NAME
" Found chip, family: 0x%x, id: 0x%x, rev: 0x%x\n",
(id >> 8) & 0xff, (id >> 4) & 0xf, (id >> 1) & 0x7);
netdev_info(netdev, "Found chip, family: 0x%x, id: 0x%x, rev: 0x%x\n",
(id >> 8) & 0xff, (id >> 4) & 0xf, (id >> 1) & 0x7);
return 0;
err_register:

View File

@ -14,6 +14,8 @@
* GNU General Public License for more details.
*/
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
@ -1483,11 +1485,6 @@ struct dev_priv {
int promiscuous;
};
#define ks_info(_ks, _msg...) dev_info(&(_ks)->pdev->dev, _msg)
#define ks_warn(_ks, _msg...) dev_warn(&(_ks)->pdev->dev, _msg)
#define ks_dbg(_ks, _msg...) dev_dbg(&(_ks)->pdev->dev, _msg)
#define ks_err(_ks, _msg...) dev_err(&(_ks)->pdev->dev, _msg)
#define DRV_NAME "KSZ884X PCI"
#define DEVICE_NAME "KSZ884x PCI"
#define DRV_VERSION "1.0.0"
@ -3834,7 +3831,7 @@ static void ksz_check_desc_num(struct ksz_desc_info *info)
alloc >>= 1;
}
if (alloc != 1 || shift < MIN_DESC_SHIFT) {
printk(KERN_ALERT "Hardware descriptor numbers not right!\n");
pr_alert("Hardware descriptor numbers not right!\n");
while (alloc) {
shift++;
alloc >>= 1;
@ -4545,8 +4542,7 @@ static int ksz_alloc_mem(struct dev_info *adapter)
(((sizeof(struct ksz_hw_desc) + DESC_ALIGNMENT - 1) /
DESC_ALIGNMENT) * DESC_ALIGNMENT);
if (hw->rx_desc_info.size != sizeof(struct ksz_hw_desc))
printk(KERN_ALERT
"Hardware descriptor size not right!\n");
pr_alert("Hardware descriptor size not right!\n");
ksz_check_desc_num(&hw->rx_desc_info);
ksz_check_desc_num(&hw->tx_desc_info);
@ -5319,10 +5315,10 @@ static irqreturn_t netdev_intr(int irq, void *dev_id)
u32 data;
hw->intr_mask &= ~KS884X_INT_TX_STOPPED;
printk(KERN_INFO "Tx stopped\n");
pr_info("Tx stopped\n");
data = readl(hw->io + KS_DMA_TX_CTRL);
if (!(data & DMA_TX_ENABLE))
printk(KERN_INFO "Tx disabled\n");
pr_info("Tx disabled\n");
break;
}
} while (0);
@ -5495,6 +5491,18 @@ static int prepare_hardware(struct net_device *dev)
return 0;
}
static void set_media_state(struct net_device *dev, int media_state)
{
struct dev_priv *priv = netdev_priv(dev);
if (media_state == priv->media_state)
netif_carrier_on(dev);
else
netif_carrier_off(dev);
netif_info(priv, link, dev, "link %s\n",
media_state == priv->media_state ? "on" : "off");
}
/**
* netdev_open - open network device
* @dev: Network device.
@ -5584,15 +5592,7 @@ static int netdev_open(struct net_device *dev)
priv->media_state = port->linked->state;
if (media_connected == priv->media_state)
netif_carrier_on(dev);
else
netif_carrier_off(dev);
if (netif_msg_link(priv))
printk(KERN_INFO "%s link %s\n", dev->name,
(media_connected == priv->media_state ?
"on" : "off"));
set_media_state(dev, media_connected);
netif_start_queue(dev);
return 0;
@ -6682,16 +6682,8 @@ static void update_link(struct net_device *dev, struct dev_priv *priv,
{
if (priv->media_state != port->linked->state) {
priv->media_state = port->linked->state;
if (netif_running(dev)) {
if (media_connected == priv->media_state)
netif_carrier_on(dev);
else
netif_carrier_off(dev);
if (netif_msg_link(priv))
printk(KERN_INFO "%s link %s\n", dev->name,
(media_connected == priv->media_state ?
"on" : "off"));
}
if (netif_running(dev))
set_media_state(dev, media_connected);
}
}
@ -6985,7 +6977,7 @@ static int __init pcidev_init(struct pci_dev *pdev,
int pi;
int port_count;
int result;
char banner[80];
char banner[sizeof(version)];
struct ksz_switch *sw = NULL;
result = pci_enable_device(pdev);
@ -7009,10 +7001,9 @@ static int __init pcidev_init(struct pci_dev *pdev,
result = -ENOMEM;
info = kmalloc(sizeof(struct platform_info), GFP_KERNEL);
info = kzalloc(sizeof(struct platform_info), GFP_KERNEL);
if (!info)
goto pcidev_init_dev_err;
memset(info, 0, sizeof(struct platform_info));
hw_priv = &info->dev_info;
hw_priv->pdev = pdev;
@ -7026,15 +7017,15 @@ static int __init pcidev_init(struct pci_dev *pdev,
cnt = hw_init(hw);
if (!cnt) {
if (msg_enable & NETIF_MSG_PROBE)
printk(KERN_ALERT "chip not detected\n");
pr_alert("chip not detected\n");
result = -ENODEV;
goto pcidev_init_alloc_err;
}
sprintf(banner, "%s\n", version);
banner[13] = cnt + '0';
ks_info(hw_priv, "%s", banner);
ks_dbg(hw_priv, "Mem = %p; IRQ = %d\n", hw->io, pdev->irq);
snprintf(banner, sizeof(banner), "%s", version);
banner[13] = cnt + '0'; /* Replace x in "Micrel KSZ884x" */
dev_info(&hw_priv->pdev->dev, "%s\n", banner);
dev_dbg(&hw_priv->pdev->dev, "Mem = %p; IRQ = %d\n", hw->io, pdev->irq);
/* Assume device is KSZ8841. */
hw->dev_count = 1;