Commit dd0fab5b authored by Dominik Brodowski's avatar Dominik Brodowski

pcmcia: use dynamic debug infrastructure, deprecate CS_CHECK (net)

Convert PCMCIA drivers to use the dynamic debug infrastructure, instead of
requiring manual settings of PCMCIA_DEBUG. Only some rare debug checks are
now hidden behind "#ifdef DEBUG" or "#if 0".

Also, remove all usages of the CS_CHECK macro and replace them with proper
Linux style calling and return value checking. The extra error reporting may
be dropped, as the PCMCIA core already complains about any (non-driver-author)
errors.

CC: netdev@vger.kernel.org
Signed-off-by: default avatarDominik Brodowski <linux@dominikbrodowski.net>
parent e773cfe1
...@@ -118,14 +118,6 @@ INT_MODULE_PARM(full_duplex, 0); ...@@ -118,14 +118,6 @@ INT_MODULE_PARM(full_duplex, 0);
/* Autodetect link polarity reversal? */ /* Autodetect link polarity reversal? */
INT_MODULE_PARM(auto_polarity, 1); INT_MODULE_PARM(auto_polarity, 1);
#ifdef PCMCIA_DEBUG
INT_MODULE_PARM(pc_debug, PCMCIA_DEBUG);
#define DEBUG(n, args...) if (pc_debug>(n)) printk(KERN_DEBUG args)
static char *version =
"3c574_cs.c 1.65ac1 2003/04/07 Donald Becker/David Hinds, becker@scyld.com.\n";
#else
#define DEBUG(n, args...)
#endif
/*====================================================================*/ /*====================================================================*/
...@@ -278,7 +270,7 @@ static int tc574_probe(struct pcmcia_device *link) ...@@ -278,7 +270,7 @@ static int tc574_probe(struct pcmcia_device *link)
struct el3_private *lp; struct el3_private *lp;
struct net_device *dev; struct net_device *dev;
DEBUG(0, "3c574_attach()\n"); dev_dbg(&link->dev, "3c574_attach()\n");
/* Create the PC card device object. */ /* Create the PC card device object. */
dev = alloc_etherdev(sizeof(struct el3_private)); dev = alloc_etherdev(sizeof(struct el3_private));
...@@ -319,7 +311,7 @@ static void tc574_detach(struct pcmcia_device *link) ...@@ -319,7 +311,7 @@ static void tc574_detach(struct pcmcia_device *link)
{ {
struct net_device *dev = link->priv; struct net_device *dev = link->priv;
DEBUG(0, "3c574_detach(0x%p)\n", link); dev_dbg(&link->dev, "3c574_detach()\n");
if (link->dev_node) if (link->dev_node)
unregister_netdev(dev); unregister_netdev(dev);
...@@ -335,16 +327,13 @@ static void tc574_detach(struct pcmcia_device *link) ...@@ -335,16 +327,13 @@ static void tc574_detach(struct pcmcia_device *link)
ethernet device available to the system. ethernet device available to the system.
*/ */
#define CS_CHECK(fn, ret) \
do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)
static const char *ram_split[] = {"5:3", "3:1", "1:1", "3:5"}; static const char *ram_split[] = {"5:3", "3:1", "1:1", "3:5"};
static int tc574_config(struct pcmcia_device *link) static int tc574_config(struct pcmcia_device *link)
{ {
struct net_device *dev = link->priv; struct net_device *dev = link->priv;
struct el3_private *lp = netdev_priv(dev); struct el3_private *lp = netdev_priv(dev);
int last_fn, last_ret, i, j; int ret, i, j;
unsigned int ioaddr; unsigned int ioaddr;
__be16 *phys_addr; __be16 *phys_addr;
char *cardname; char *cardname;
...@@ -354,7 +343,7 @@ static int tc574_config(struct pcmcia_device *link) ...@@ -354,7 +343,7 @@ static int tc574_config(struct pcmcia_device *link)
phys_addr = (__be16 *)dev->dev_addr; phys_addr = (__be16 *)dev->dev_addr;
DEBUG(0, "3c574_config(0x%p)\n", link); dev_dbg(&link->dev, "3c574_config()\n");
link->io.IOAddrLines = 16; link->io.IOAddrLines = 16;
for (i = j = 0; j < 0x400; j += 0x20) { for (i = j = 0; j < 0x400; j += 0x20) {
...@@ -363,12 +352,16 @@ static int tc574_config(struct pcmcia_device *link) ...@@ -363,12 +352,16 @@ static int tc574_config(struct pcmcia_device *link)
if (i == 0) if (i == 0)
break; break;
} }
if (i != 0) { if (i != 0)
cs_error(link, RequestIO, i); goto failed;
ret = pcmcia_request_irq(link, &link->irq);
if (ret)
goto failed;
ret = pcmcia_request_configuration(link, &link->conf);
if (ret)
goto failed; goto failed;
}
CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq));
CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link, &link->conf));
dev->irq = link->irq.AssignedIRQ; dev->irq = link->irq.AssignedIRQ;
dev->base_addr = link->io.BasePort1; dev->base_addr = link->io.BasePort1;
...@@ -433,7 +426,8 @@ static int tc574_config(struct pcmcia_device *link) ...@@ -433,7 +426,8 @@ static int tc574_config(struct pcmcia_device *link)
mii_status = mdio_read(ioaddr, phy & 0x1f, 1); mii_status = mdio_read(ioaddr, phy & 0x1f, 1);
if (mii_status != 0xffff) { if (mii_status != 0xffff) {
lp->phys = phy & 0x1f; lp->phys = phy & 0x1f;
DEBUG(0, " MII transceiver at index %d, status %x.\n", dev_dbg(&link->dev, " MII transceiver at "
"index %d, status %x.\n",
phy, mii_status); phy, mii_status);
if ((mii_status & 0x0040) == 0) if ((mii_status & 0x0040) == 0)
mii_preamble_required = 1; mii_preamble_required = 1;
...@@ -476,8 +470,6 @@ static int tc574_config(struct pcmcia_device *link) ...@@ -476,8 +470,6 @@ static int tc574_config(struct pcmcia_device *link)
return 0; return 0;
cs_failed:
cs_error(link, last_fn, last_ret);
failed: failed:
tc574_release(link); tc574_release(link);
return -ENODEV; return -ENODEV;
...@@ -736,7 +728,7 @@ static int el3_open(struct net_device *dev) ...@@ -736,7 +728,7 @@ static int el3_open(struct net_device *dev)
lp->media.expires = jiffies + HZ; lp->media.expires = jiffies + HZ;
add_timer(&lp->media); add_timer(&lp->media);
DEBUG(2, "%s: opened, status %4.4x.\n", dev_dbg(&link->dev, "%s: opened, status %4.4x.\n",
dev->name, inw(dev->base_addr + EL3_STATUS)); dev->name, inw(dev->base_addr + EL3_STATUS));
return 0; return 0;
...@@ -770,7 +762,7 @@ static void pop_tx_status(struct net_device *dev) ...@@ -770,7 +762,7 @@ static void pop_tx_status(struct net_device *dev)
if (tx_status & 0x30) if (tx_status & 0x30)
tc574_wait_for_completion(dev, TxReset); tc574_wait_for_completion(dev, TxReset);
if (tx_status & 0x38) { if (tx_status & 0x38) {
DEBUG(1, "%s: transmit error: status 0x%02x\n", pr_debug("%s: transmit error: status 0x%02x\n",
dev->name, tx_status); dev->name, tx_status);
outw(TxEnable, ioaddr + EL3_CMD); outw(TxEnable, ioaddr + EL3_CMD);
dev->stats.tx_aborted_errors++; dev->stats.tx_aborted_errors++;
...@@ -786,7 +778,7 @@ static netdev_tx_t el3_start_xmit(struct sk_buff *skb, ...@@ -786,7 +778,7 @@ static netdev_tx_t el3_start_xmit(struct sk_buff *skb,
struct el3_private *lp = netdev_priv(dev); struct el3_private *lp = netdev_priv(dev);
unsigned long flags; unsigned long flags;
DEBUG(3, "%s: el3_start_xmit(length = %ld) called, " pr_debug("%s: el3_start_xmit(length = %ld) called, "
"status %4.4x.\n", dev->name, (long)skb->len, "status %4.4x.\n", dev->name, (long)skb->len,
inw(ioaddr + EL3_STATUS)); inw(ioaddr + EL3_STATUS));
...@@ -825,7 +817,7 @@ static irqreturn_t el3_interrupt(int irq, void *dev_id) ...@@ -825,7 +817,7 @@ static irqreturn_t el3_interrupt(int irq, void *dev_id)
return IRQ_NONE; return IRQ_NONE;
ioaddr = dev->base_addr; ioaddr = dev->base_addr;
DEBUG(3, "%s: interrupt, status %4.4x.\n", pr_debug("%s: interrupt, status %4.4x.\n",
dev->name, inw(ioaddr + EL3_STATUS)); dev->name, inw(ioaddr + EL3_STATUS));
spin_lock(&lp->window_lock); spin_lock(&lp->window_lock);
...@@ -834,7 +826,7 @@ static irqreturn_t el3_interrupt(int irq, void *dev_id) ...@@ -834,7 +826,7 @@ static irqreturn_t el3_interrupt(int irq, void *dev_id)
(IntLatch | RxComplete | RxEarly | StatsFull)) { (IntLatch | RxComplete | RxEarly | StatsFull)) {
if (!netif_device_present(dev) || if (!netif_device_present(dev) ||
((status & 0xe000) != 0x2000)) { ((status & 0xe000) != 0x2000)) {
DEBUG(1, "%s: Interrupt from dead card\n", dev->name); pr_debug("%s: Interrupt from dead card\n", dev->name);
break; break;
} }
...@@ -844,7 +836,7 @@ static irqreturn_t el3_interrupt(int irq, void *dev_id) ...@@ -844,7 +836,7 @@ static irqreturn_t el3_interrupt(int irq, void *dev_id)
work_budget = el3_rx(dev, work_budget); work_budget = el3_rx(dev, work_budget);
if (status & TxAvailable) { if (status & TxAvailable) {
DEBUG(3, " TX room bit was handled.\n"); pr_debug(" TX room bit was handled.\n");
/* There's room in the FIFO for a full-sized packet. */ /* There's room in the FIFO for a full-sized packet. */
outw(AckIntr | TxAvailable, ioaddr + EL3_CMD); outw(AckIntr | TxAvailable, ioaddr + EL3_CMD);
netif_wake_queue(dev); netif_wake_queue(dev);
...@@ -884,7 +876,7 @@ static irqreturn_t el3_interrupt(int irq, void *dev_id) ...@@ -884,7 +876,7 @@ static irqreturn_t el3_interrupt(int irq, void *dev_id)
} }
if (--work_budget < 0) { if (--work_budget < 0) {
DEBUG(0, "%s: Too much work in interrupt, " pr_debug("%s: Too much work in interrupt, "
"status %4.4x.\n", dev->name, status); "status %4.4x.\n", dev->name, status);
/* Clear all interrupts */ /* Clear all interrupts */
outw(AckIntr | 0xFF, ioaddr + EL3_CMD); outw(AckIntr | 0xFF, ioaddr + EL3_CMD);
...@@ -894,7 +886,7 @@ static irqreturn_t el3_interrupt(int irq, void *dev_id) ...@@ -894,7 +886,7 @@ static irqreturn_t el3_interrupt(int irq, void *dev_id)
outw(AckIntr | IntReq | IntLatch, ioaddr + EL3_CMD); outw(AckIntr | IntReq | IntLatch, ioaddr + EL3_CMD);
} }
DEBUG(3, "%s: exiting interrupt, status %4.4x.\n", pr_debug("%s: exiting interrupt, status %4.4x.\n",
dev->name, inw(ioaddr + EL3_STATUS)); dev->name, inw(ioaddr + EL3_STATUS));
spin_unlock(&lp->window_lock); spin_unlock(&lp->window_lock);
...@@ -1001,7 +993,7 @@ static void update_stats(struct net_device *dev) ...@@ -1001,7 +993,7 @@ static void update_stats(struct net_device *dev)
unsigned int ioaddr = dev->base_addr; unsigned int ioaddr = dev->base_addr;
u8 rx, tx, up; u8 rx, tx, up;
DEBUG(2, "%s: updating the statistics.\n", dev->name); pr_debug("%s: updating the statistics.\n", dev->name);
if (inw(ioaddr+EL3_STATUS) == 0xffff) /* No card. */ if (inw(ioaddr+EL3_STATUS) == 0xffff) /* No card. */
return; return;
...@@ -1037,7 +1029,7 @@ static int el3_rx(struct net_device *dev, int worklimit) ...@@ -1037,7 +1029,7 @@ static int el3_rx(struct net_device *dev, int worklimit)
unsigned int ioaddr = dev->base_addr; unsigned int ioaddr = dev->base_addr;
short rx_status; short rx_status;
DEBUG(3, "%s: in rx_packet(), status %4.4x, rx_status %4.4x.\n", pr_debug("%s: in rx_packet(), status %4.4x, rx_status %4.4x.\n",
dev->name, inw(ioaddr+EL3_STATUS), inw(ioaddr+RxStatus)); dev->name, inw(ioaddr+EL3_STATUS), inw(ioaddr+RxStatus));
while (!((rx_status = inw(ioaddr + RxStatus)) & 0x8000) && while (!((rx_status = inw(ioaddr + RxStatus)) & 0x8000) &&
worklimit > 0) { worklimit > 0) {
...@@ -1059,7 +1051,7 @@ static int el3_rx(struct net_device *dev, int worklimit) ...@@ -1059,7 +1051,7 @@ static int el3_rx(struct net_device *dev, int worklimit)
skb = dev_alloc_skb(pkt_len+5); skb = dev_alloc_skb(pkt_len+5);
DEBUG(3, " Receiving packet size %d status %4.4x.\n", pr_debug(" Receiving packet size %d status %4.4x.\n",
pkt_len, rx_status); pkt_len, rx_status);
if (skb != NULL) { if (skb != NULL) {
skb_reserve(skb, 2); skb_reserve(skb, 2);
...@@ -1070,7 +1062,7 @@ static int el3_rx(struct net_device *dev, int worklimit) ...@@ -1070,7 +1062,7 @@ static int el3_rx(struct net_device *dev, int worklimit)
dev->stats.rx_packets++; dev->stats.rx_packets++;
dev->stats.rx_bytes += pkt_len; dev->stats.rx_bytes += pkt_len;
} else { } else {
DEBUG(1, "%s: couldn't allocate a sk_buff of" pr_debug("%s: couldn't allocate a sk_buff of"
" size %d.\n", dev->name, pkt_len); " size %d.\n", dev->name, pkt_len);
dev->stats.rx_dropped++; dev->stats.rx_dropped++;
} }
...@@ -1099,7 +1091,7 @@ static int el3_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) ...@@ -1099,7 +1091,7 @@ static int el3_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
struct mii_ioctl_data *data = if_mii(rq); struct mii_ioctl_data *data = if_mii(rq);
int phy = lp->phys & 0x1f; int phy = lp->phys & 0x1f;
DEBUG(2, "%s: In ioct(%-.6s, %#4.4x) %4.4x %4.4x %4.4x %4.4x.\n", pr_debug("%s: In ioct(%-.6s, %#4.4x) %4.4x %4.4x %4.4x %4.4x.\n",
dev->name, rq->ifr_ifrn.ifrn_name, cmd, dev->name, rq->ifr_ifrn.ifrn_name, cmd,
data->phy_id, data->reg_num, data->val_in, data->val_out); data->phy_id, data->reg_num, data->val_in, data->val_out);
...@@ -1176,7 +1168,7 @@ static int el3_close(struct net_device *dev) ...@@ -1176,7 +1168,7 @@ static int el3_close(struct net_device *dev)
struct el3_private *lp = netdev_priv(dev); struct el3_private *lp = netdev_priv(dev);
struct pcmcia_device *link = lp->p_dev; struct pcmcia_device *link = lp->p_dev;
DEBUG(2, "%s: shutting down ethercard.\n", dev->name); dev_dbg(&link->dev, "%s: shutting down ethercard.\n", dev->name);
if (pcmcia_dev_present(link)) { if (pcmcia_dev_present(link)) {
unsigned long flags; unsigned long flags;
......
...@@ -130,14 +130,6 @@ MODULE_LICENSE("GPL"); ...@@ -130,14 +130,6 @@ MODULE_LICENSE("GPL");
/* Special hook for setting if_port when module is loaded */ /* Special hook for setting if_port when module is loaded */
INT_MODULE_PARM(if_port, 0); INT_MODULE_PARM(if_port, 0);
#ifdef PCMCIA_DEBUG
INT_MODULE_PARM(pc_debug, PCMCIA_DEBUG);
#define DEBUG(n, args...) if (pc_debug>(n)) printk(KERN_DEBUG args)
static char *version =
DRV_NAME ".c " DRV_VERSION " 2001/10/13 00:08:50 (David Hinds)";
#else
#define DEBUG(n, args...)
#endif
/*====================================================================*/ /*====================================================================*/
...@@ -189,7 +181,7 @@ static int tc589_probe(struct pcmcia_device *link) ...@@ -189,7 +181,7 @@ static int tc589_probe(struct pcmcia_device *link)
struct el3_private *lp; struct el3_private *lp;
struct net_device *dev; struct net_device *dev;
DEBUG(0, "3c589_attach()\n"); dev_dbg(&link->dev, "3c589_attach()\n");
/* Create new ethernet device */ /* Create new ethernet device */
dev = alloc_etherdev(sizeof(struct el3_private)); dev = alloc_etherdev(sizeof(struct el3_private));
...@@ -231,7 +223,7 @@ static void tc589_detach(struct pcmcia_device *link) ...@@ -231,7 +223,7 @@ static void tc589_detach(struct pcmcia_device *link)
{ {
struct net_device *dev = link->priv; struct net_device *dev = link->priv;
DEBUG(0, "3c589_detach(0x%p)\n", link); dev_dbg(&link->dev, "3c589_detach\n");
if (link->dev_node) if (link->dev_node)
unregister_netdev(dev); unregister_netdev(dev);
...@@ -249,21 +241,18 @@ static void tc589_detach(struct pcmcia_device *link) ...@@ -249,21 +241,18 @@ static void tc589_detach(struct pcmcia_device *link)
======================================================================*/ ======================================================================*/
#define CS_CHECK(fn, ret) \
do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)
static int tc589_config(struct pcmcia_device *link) static int tc589_config(struct pcmcia_device *link)
{ {
struct net_device *dev = link->priv; struct net_device *dev = link->priv;
struct el3_private *lp = netdev_priv(dev); struct el3_private *lp = netdev_priv(dev);
__be16 *phys_addr; __be16 *phys_addr;
int last_fn, last_ret, i, j, multi = 0, fifo; int ret, i, j, multi = 0, fifo;
unsigned int ioaddr; unsigned int ioaddr;
char *ram_split[] = {"5:3", "3:1", "1:1", "3:5"}; char *ram_split[] = {"5:3", "3:1", "1:1", "3:5"};
u8 *buf; u8 *buf;
size_t len; size_t len;
DEBUG(0, "3c589_config(0x%p)\n", link); dev_dbg(&link->dev, "3c589_config\n");
phys_addr = (__be16 *)dev->dev_addr; phys_addr = (__be16 *)dev->dev_addr;
/* Is this a 3c562? */ /* Is this a 3c562? */
...@@ -281,12 +270,16 @@ static int tc589_config(struct pcmcia_device *link) ...@@ -281,12 +270,16 @@ static int tc589_config(struct pcmcia_device *link)
if (i == 0) if (i == 0)
break; break;
} }
if (i != 0) { if (i != 0)
cs_error(link, RequestIO, i);
goto failed; goto failed;
}
CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq)); ret = pcmcia_request_irq(link, &link->irq);
CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link, &link->conf)); if (ret)
goto failed;
ret = pcmcia_request_configuration(link, &link->conf);
if (ret)
goto failed;
dev->irq = link->irq.AssignedIRQ; dev->irq = link->irq.AssignedIRQ;
dev->base_addr = link->io.BasePort1; dev->base_addr = link->io.BasePort1;
...@@ -342,8 +335,6 @@ static int tc589_config(struct pcmcia_device *link) ...@@ -342,8 +335,6 @@ static int tc589_config(struct pcmcia_device *link)
if_names[dev->if_port]); if_names[dev->if_port]);
return 0; return 0;
cs_failed:
cs_error(link, last_fn, last_ret);
failed: failed:
tc589_release(link); tc589_release(link);
return -ENODEV; return -ENODEV;
...@@ -506,24 +497,8 @@ static void netdev_get_drvinfo(struct net_device *dev, ...@@ -506,24 +497,8 @@ static void netdev_get_drvinfo(struct net_device *dev,
sprintf(info->bus_info, "PCMCIA 0x%lx", dev->base_addr); sprintf(info->bus_info, "PCMCIA 0x%lx", dev->base_addr);
} }
#ifdef PCMCIA_DEBUG
static u32 netdev_get_msglevel(struct net_device *dev)
{
return pc_debug;
}
static void netdev_set_msglevel(struct net_device *dev, u32 level)
{
pc_debug = level;
}
#endif /* PCMCIA_DEBUG */
static const struct ethtool_ops netdev_ethtool_ops = { static const struct ethtool_ops netdev_ethtool_ops = {
.get_drvinfo = netdev_get_drvinfo, .get_drvinfo = netdev_get_drvinfo,
#ifdef PCMCIA_DEBUG
.get_msglevel = netdev_get_msglevel,
.set_msglevel = netdev_set_msglevel,
#endif /* PCMCIA_DEBUG */
}; };
static int el3_config(struct net_device *dev, struct ifmap *map) static int el3_config(struct net_device *dev, struct ifmap *map)
...@@ -558,7 +533,7 @@ static int el3_open(struct net_device *dev) ...@@ -558,7 +533,7 @@ static int el3_open(struct net_device *dev)
lp->media.expires = jiffies + HZ; lp->media.expires = jiffies + HZ;
add_timer(&lp->media); add_timer(&lp->media);
DEBUG(1, "%s: opened, status %4.4x.\n", dev_dbg(&link->dev, "%s: opened, status %4.4x.\n",
dev->name, inw(dev->base_addr + EL3_STATUS)); dev->name, inw(dev->base_addr + EL3_STATUS));
return 0; return 0;
...@@ -591,7 +566,7 @@ static void pop_tx_status(struct net_device *dev) ...@@ -591,7 +566,7 @@ static void pop_tx_status(struct net_device *dev)
if (tx_status & 0x30) if (tx_status & 0x30)
tc589_wait_for_completion(dev, TxReset); tc589_wait_for_completion(dev, TxReset);
if (tx_status & 0x38) { if (tx_status & 0x38) {
DEBUG(1, "%s: transmit error: status 0x%02x\n", pr_debug("%s: transmit error: status 0x%02x\n",
dev->name, tx_status); dev->name, tx_status);
outw(TxEnable, ioaddr + EL3_CMD); outw(TxEnable, ioaddr + EL3_CMD);
dev->stats.tx_aborted_errors++; dev->stats.tx_aborted_errors++;
...@@ -607,7 +582,7 @@ static netdev_tx_t el3_start_xmit(struct sk_buff *skb, ...@@ -607,7 +582,7 @@ static netdev_tx_t el3_start_xmit(struct sk_buff *skb,
struct el3_private *priv = netdev_priv(dev); struct el3_private *priv = netdev_priv(dev);
unsigned long flags; unsigned long flags;
DEBUG(3, "%s: el3_start_xmit(length = %ld) called, " pr_debug("%s: el3_start_xmit(length = %ld) called, "
"status %4.4x.\n", dev->name, (long)skb->len, "status %4.4x.\n", dev->name, (long)skb->len,
inw(ioaddr + EL3_STATUS)); inw(ioaddr + EL3_STATUS));
...@@ -649,14 +624,14 @@ static irqreturn_t el3_interrupt(int irq, void *dev_id) ...@@ -649,14 +624,14 @@ static irqreturn_t el3_interrupt(int irq, void *dev_id)
ioaddr = dev->base_addr; ioaddr = dev->base_addr;
DEBUG(3, "%s: interrupt, status %4.4x.\n", pr_debug("%s: interrupt, status %4.4x.\n",
dev->name, inw(ioaddr + EL3_STATUS)); dev->name, inw(ioaddr + EL3_STATUS));
spin_lock(&lp->lock); spin_lock(&lp->lock);
while ((status = inw(ioaddr + EL3_STATUS)) & while ((status = inw(ioaddr + EL3_STATUS)) &
(IntLatch | RxComplete | StatsFull)) { (IntLatch | RxComplete | StatsFull)) {
if ((status & 0xe000) != 0x2000) { if ((status & 0xe000) != 0x2000) {
DEBUG(1, "%s: interrupt from dead card\n", dev->name); pr_debug("%s: interrupt from dead card\n", dev->name);
handled = 0; handled = 0;
break; break;
} }
...@@ -665,7 +640,7 @@ static irqreturn_t el3_interrupt(int irq, void *dev_id) ...@@ -665,7 +640,7 @@ static irqreturn_t el3_interrupt(int irq, void *dev_id)
el3_rx(dev); el3_rx(dev);
if (status & TxAvailable) { if (status & TxAvailable) {
DEBUG(3, " TX room bit was handled.\n"); pr_debug(" TX room bit was handled.\n");
/* There's room in the FIFO for a full-sized packet. */ /* There's room in the FIFO for a full-sized packet. */
outw(AckIntr | TxAvailable, ioaddr + EL3_CMD); outw(AckIntr | TxAvailable, ioaddr + EL3_CMD);
netif_wake_queue(dev); netif_wake_queue(dev);
...@@ -717,7 +692,7 @@ static irqreturn_t el3_interrupt(int irq, void *dev_id) ...@@ -717,7 +692,7 @@ static irqreturn_t el3_interrupt(int irq, void *dev_id)
lp->last_irq = jiffies; lp->last_irq = jiffies;
spin_unlock(&lp->lock); spin_unlock(&lp->lock);
DEBUG(3, "%s: exiting interrupt, status %4.4x.\n", pr_debug("%s: exiting interrupt, status %4.4x.\n",
dev->name, inw(ioaddr + EL3_STATUS)); dev->name, inw(ioaddr + EL3_STATUS));
return IRQ_RETVAL(handled); return IRQ_RETVAL(handled);
} }
...@@ -828,7 +803,7 @@ static void update_stats(struct net_device *dev) ...@@ -828,7 +803,7 @@ static void update_stats(struct net_device *dev)
{ {
unsigned int ioaddr = dev->base_addr; unsigned int ioaddr = dev->base_addr;
DEBUG(2, "%s: updating the statistics.\n", dev->name); pr_debug("%s: updating the statistics.\n", dev->name);
/* Turn off statistics updates while reading. */ /* Turn off statistics updates while reading. */
outw(StatsDisable, ioaddr + EL3_CMD); outw(StatsDisable, ioaddr + EL3_CMD);
/* Switch to the stats window, and read everything. */ /* Switch to the stats window, and read everything. */
...@@ -856,7 +831,7 @@ static int el3_rx(struct net_device *dev) ...@@ -856,7 +831,7 @@ static int el3_rx(struct net_device *dev)
int worklimit = 32; int worklimit = 32;
short rx_status; short rx_status;
DEBUG(3, "%s: in rx_packet(), status %4.4x, rx_status %4.4x.\n", pr_debug("%s: in rx_packet(), status %4.4x, rx_status %4.4x.\n",
dev->name, inw(ioaddr+EL3_STATUS), inw(ioaddr+RX_STATUS)); dev->name, inw(ioaddr+EL3_STATUS), inw(ioaddr+RX_STATUS));
while (!((rx_status = inw(ioaddr + RX_STATUS)) & 0x8000) && while (!((rx_status = inw(ioaddr + RX_STATUS)) & 0x8000) &&
worklimit > 0) { worklimit > 0) {
...@@ -878,7 +853,7 @@ static int el3_rx(struct net_device *dev) ...@@ -878,7 +853,7 @@ static int el3_rx(struct net_device *dev)
skb = dev_alloc_skb(pkt_len+5); skb = dev_alloc_skb(pkt_len+5);
DEBUG(3, " Receiving packet size %d status %4.4x.\n", pr_debug(" Receiving packet size %d status %4.4x.\n",
pkt_len, rx_status); pkt_len, rx_status);
if (skb != NULL) { if (skb != NULL) {
skb_reserve(skb, 2); skb_reserve(skb, 2);
...@@ -889,7 +864,7 @@ static int el3_rx(struct net_device *dev) ...@@ -889,7 +864,7 @@ static int el3_rx(struct net_device *dev)
dev->stats.rx_packets++; dev->stats.rx_packets++;
dev->stats.rx_bytes += pkt_len; dev->stats.rx_bytes += pkt_len;
} else { } else {
DEBUG(1, "%s: couldn't allocate a sk_buff of" pr_debug("%s: couldn't allocate a sk_buff of"
" size %d.\n", dev->name, pkt_len); " size %d.\n", dev->name, pkt_len);
dev->stats.rx_dropped++; dev->stats.rx_dropped++;
} }
...@@ -930,7 +905,7 @@ static int el3_close(struct net_device *dev) ...@@ -930,7 +905,7 @@ static int el3_close(struct net_device *dev)
struct pcmcia_device *link = lp->p_dev; struct pcmcia_device *link = lp->p_dev;
unsigned int ioaddr = dev->base_addr; unsigned int ioaddr = dev->base_addr;
DEBUG(1, "%s: shutting down ethercard.\n", dev->name); dev_dbg(&link->dev, "%s: shutting down ethercard.\n", dev->name);
if (pcmcia_dev_present(link)) { if (pcmcia_dev_present(link)) {
/* Turn off statistics ASAP. We update dev->stats below. */ /* Turn off statistics ASAP. We update dev->stats below. */
......
...@@ -75,16 +75,6 @@ MODULE_AUTHOR("David Hinds <dahinds@users.sourceforge.net>"); ...@@ -75,16 +75,6 @@ MODULE_AUTHOR("David Hinds <dahinds@users.sourceforge.net>");
MODULE_DESCRIPTION("Asix AX88190 PCMCIA ethernet driver"); MODULE_DESCRIPTION("Asix AX88190 PCMCIA ethernet driver");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
#ifdef PCMCIA_DEBUG
#define INT_MODULE_PARM(n, v) static int n = v; module_param(n, int, 0)
INT_MODULE_PARM(pc_debug, PCMCIA_DEBUG);
#define DEBUG(n, args...) if (pc_debug>(n)) printk(KERN_DEBUG args)
static char *version =
"axnet_cs.c 1.28 2002/06/29 06:27:37 (David Hinds)";
#else
#define DEBUG(n, args...)
#endif
/*====================================================================*/ /*====================================================================*/
...@@ -167,7 +157,7 @@ static int axnet_probe(struct pcmcia_device *link) ...@@ -167,7 +157,7 @@ static int axnet_probe(struct pcmcia_device *link)
struct net_device *dev; struct net_device *dev;
struct ei_device *ei_local; struct ei_device *ei_local;
DEBUG(0, "axnet_attach()\n"); dev_dbg(&link->dev, "axnet_attach()\n");
dev = alloc_etherdev(sizeof(struct ei_device) + sizeof(axnet_dev_t)); dev = alloc_etherdev(sizeof(struct ei_device) + sizeof(axnet_dev_t));
if (!dev) if (!dev)
...@@ -205,7 +195,7 @@ static void axnet_detach(struct pcmcia_device *link) ...@@ -205,7 +195,7 @@ static void axnet_detach(struct pcmcia_device *link)
{ {
struct net_device *dev = link->priv; struct net_device *dev = link->priv;
DEBUG(0, "axnet_detach(0x%p)\n", link); dev_dbg(&link->dev, "axnet_detach(0x%p)\n", link);
if (link->dev_node) if (link->dev_node)
unregister_netdev(dev); unregister_netdev(dev);
...@@ -272,9 +262,6 @@ static int get_prom(struct pcmcia_device *link) ...@@ -272,9 +262,6 @@ static int get_prom(struct pcmcia_device *link)
======================================================================*/ ======================================================================*/
#define CS_CHECK(fn, ret) \
do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)
static int try_io_port(struct pcmcia_device *link) static int try_io_port(struct pcmcia_device *link)
{ {
int j, ret; int j, ret;
...@@ -341,26 +328,29 @@ static int axnet_config(struct pcmcia_device *link) ...@@ -341,26 +328,29 @@ static int axnet_config(struct pcmcia_device *link)
{ {
struct net_device *dev = link->priv; struct net_device *dev = link->priv;
axnet_dev_t *info = PRIV(dev); axnet_dev_t *info = PRIV(dev);
int i, j, j2, last_ret, last_fn; int i, j, j2, ret;
DEBUG(0, "axnet_config(0x%p)\n", link); dev_dbg(&link->dev, "axnet_config(0x%p)\n", link);
/* don't trust the CIS on this; Linksys got it wrong */ /* don't trust the CIS on this; Linksys got it wrong */
link->conf.Present = 0x63; link->conf.Present = 0x63;
last_ret = pcmcia_loop_config(link, axnet_configcheck, NULL); ret = pcmcia_loop_config(link, axnet_configcheck, NULL);
if (last_ret != 0) { if (ret != 0)
cs_error(link, RequestIO, last_ret);
goto failed; goto failed;
}
CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq)); ret = pcmcia_request_irq(link, &link->irq);
if (ret)
goto failed;
if (link->io.NumPorts2 == 8) { if (link->io.NumPorts2 == 8) {
link->conf.Attributes |= CONF_ENABLE_SPKR; link->conf.Attributes |= CONF_ENABLE_SPKR;
link->conf.Status = CCSR_AUDIO_ENA; link->conf.Status = CCSR_AUDIO_ENA;
} }
CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link, &link->conf)); ret = pcmcia_request_configuration(link, &link->conf);
if (ret)
goto failed;
dev->irq = link->irq.AssignedIRQ; dev->irq = link->irq.AssignedIRQ;
dev->base_addr = link->io.BasePort1; dev->base_addr = link->io.BasePort1;
...@@ -426,14 +416,12 @@ static int axnet_config(struct pcmcia_device *link) ...@@ -426,14 +416,12 @@ static int axnet_config(struct pcmcia_device *link)
dev->base_addr, dev->irq, dev->base_addr, dev->irq,
dev->dev_addr); dev->dev_addr);
if (info->phy_id != -1) { if (info->phy_id != -1) {
DEBUG(0, " MII transceiver at index %d, status %x.\n", info->phy_id, j); dev_dbg(&link->dev, " MII transceiver at index %d, status %x.\n", info->phy_id, j);
} else { } else {
printk(KERN_NOTICE " No MII transceivers found!\n"); printk(KERN_NOTICE " No MII transceivers found!\n");
} }
return 0; return 0;
cs_failed:
cs_error(link, last_fn, last_ret);
failed: failed:
axnet_release(link); axnet_release(link);
return -ENODEV; return -ENODEV;
...@@ -543,7 +531,7 @@ static int axnet_open(struct net_device *dev) ...@@ -543,7 +531,7 @@ static int axnet_open(struct net_device *dev)
struct pcmcia_device *link = info->p_dev; struct pcmcia_device *link = info->p_dev;
unsigned int nic_base = dev->base_addr; unsigned int nic_base = dev->base_addr;
DEBUG(2, "axnet_open('%s')\n", dev->name); dev_dbg(&link->dev, "axnet_open('%s')\n", dev->name);
if (!pcmcia_dev_present(link)) if (!pcmcia_dev_present(link))
return -ENODEV; return -ENODEV;
...@@ -572,7 +560,7 @@ static int axnet_close(struct net_device *dev) ...@@ -572,7 +560,7 @@ static int axnet_close(struct net_device *dev)
axnet_dev_t *info = PRIV(dev); axnet_dev_t *info = PRIV(dev);
struct pcmcia_device *link = info->p_dev; struct pcmcia_device *link = info->p_dev;
DEBUG(2, "axnet_close('%s')\n", dev->name); dev_dbg(&link->dev, "axnet_close('%s')\n", dev->name);
ax_close(dev); ax_close(dev);
free_irq(dev->irq, dev); free_irq(dev->irq, dev);
...@@ -741,10 +729,8 @@ static void block_input(struct net_device *dev, int count, ...@@ -741,10 +729,8 @@ static void block_input(struct net_device *dev, int count,
int xfer_count = count; int xfer_count = count;
char *buf = skb->data; char *buf = skb->data;
#ifdef PCMCIA_DEBUG
if ((ei_debug > 4) && (count != 4)) if ((ei_debug > 4) && (count != 4))
printk(KERN_DEBUG "%s: [bi=%d]\n", dev->name, count+4); pr_debug("%s: [bi=%d]\n", dev->name, count+4);
#endif
outb_p(ring_offset & 0xff, nic_base + EN0_RSARLO); outb_p(ring_offset & 0xff, nic_base + EN0_RSARLO);
outb_p(ring_offset >> 8, nic_base + EN0_RSARHI); outb_p(ring_offset >> 8, nic_base + EN0_RSARHI);
outb_p(E8390_RREAD+E8390_START, nic_base + AXNET_CMD); outb_p(E8390_RREAD+E8390_START, nic_base + AXNET_CMD);
...@@ -762,10 +748,7 @@ static void block_output(struct net_device *dev, int count, ...@@ -762,10 +748,7 @@ static void block_output(struct net_device *dev, int count,
{ {
unsigned int nic_base = dev->base_addr; unsigned int nic_base = dev->base_addr;
#ifdef PCMCIA_DEBUG pr_debug("%s: [bo=%d]\n", dev->name, count);
if (ei_debug > 4)
printk(KERN_DEBUG "%s: [bo=%d]\n", dev->name, count);
#endif
/* Round the count up for word writes. Do we need to do this? /* Round the count up for word writes. Do we need to do this?
What effect will an odd byte count have on the 8390? What effect will an odd byte count have on the 8390?
......
...@@ -53,11 +53,7 @@ ...@@ -53,11 +53,7 @@
#define VERSION "arcnet: COM20020 PCMCIA support loaded.\n" #define VERSION "arcnet: COM20020 PCMCIA support loaded.\n"
#ifdef PCMCIA_DEBUG #ifdef DEBUG
static int pc_debug = PCMCIA_DEBUG;
module_param(pc_debug, int, 0);
#define DEBUG(n, args...) if (pc_debug>(n)) printk(KERN_DEBUG args)
static void regdump(struct net_device *dev) static void regdump(struct net_device *dev)
{ {
...@@ -92,7 +88,6 @@ static void regdump(struct net_device *dev) ...@@ -92,7 +88,6 @@ static void regdump(struct net_device *dev)
#else #else
#define DEBUG(n, args...) do { } while (0)
static inline void regdump(struct net_device *dev) { } static inline void regdump(struct net_device *dev) { }
#endif #endif
...@@ -144,7 +139,7 @@ static int com20020_probe(struct pcmcia_device *p_dev) ...@@ -144,7 +139,7 @@ static int com20020_probe(struct pcmcia_device *p_dev)
struct net_device *dev; struct net_device *dev;
struct arcnet_local *lp; struct arcnet_local *lp;
DEBUG(0, "com20020_attach()\n"); dev_dbg(&p_dev->dev, "com20020_attach()\n");
/* Create new network device */ /* Create new network device */
info = kzalloc(sizeof(struct com20020_dev_t), GFP_KERNEL); info = kzalloc(sizeof(struct com20020_dev_t), GFP_KERNEL);
...@@ -198,12 +193,12 @@ static void com20020_detach(struct pcmcia_device *link) ...@@ -198,12 +193,12 @@ static void com20020_detach(struct pcmcia_device *link)
struct com20020_dev_t *info = link->priv; struct com20020_dev_t *info = link->priv;
struct net_device *dev = info->dev; struct net_device *dev = info->dev;
DEBUG(1,"detach...\n"); dev_dbg(&link->dev, "detach...\n");
DEBUG(0, "com20020_detach(0x%p)\n", link); dev_dbg(&link->dev, "com20020_detach\n");
if (link->dev_node) { if (link->dev_node) {
DEBUG(1,"unregister...\n"); dev_dbg(&link->dev, "unregister...\n");
unregister_netdev(dev); unregister_netdev(dev);
...@@ -218,16 +213,16 @@ static void com20020_detach(struct pcmcia_device *link) ...@@ -218,16 +213,16 @@ static void com20020_detach(struct pcmcia_device *link)
com20020_release(link); com20020_release(link);
/* Unlink device structure, free bits */ /* Unlink device structure, free bits */
DEBUG(1,"unlinking...\n"); dev_dbg(&link->dev, "unlinking...\n");
if (link->priv) if (link->priv)
{ {
dev = info->dev; dev = info->dev;
if (dev) if (dev)
{ {
DEBUG(1,"kfree...\n"); dev_dbg(&link->dev, "kfree...\n");
free_netdev(dev); free_netdev(dev);
} }
DEBUG(1,"kfree2...\n"); dev_dbg(&link->dev, "kfree2...\n");
kfree(info); kfree(info);
} }
...@@ -241,25 +236,22 @@ static void com20020_detach(struct pcmcia_device *link) ...@@ -241,25 +236,22 @@ static void com20020_detach(struct pcmcia_device *link)
======================================================================*/ ======================================================================*/
#define CS_CHECK(fn, ret) \
do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)
static int com20020_config(struct pcmcia_device *link) static int com20020_config(struct pcmcia_device *link)
{ {
struct arcnet_local *lp; struct arcnet_local *lp;
com20020_dev_t *info; com20020_dev_t *info;
struct net_device *dev; struct net_device *dev;
int i, last_ret, last_fn; int i, ret;
int ioaddr; int ioaddr;
info = link->priv; info = link->priv;
dev = info->dev; dev = info->dev;
DEBUG(1,"config...\n"); dev_dbg(&link->dev, "config...\n");
DEBUG(0, "com20020_config(0x%p)\n", link); dev_dbg(&link->dev, "com20020_config\n");
DEBUG(1,"arcnet: baseport1 is %Xh\n", link->io.BasePort1); dev_dbg(&link->dev, "baseport1 is %Xh\n", link->io.BasePort1);
i = -ENODEV; i = -ENODEV;
if (!link->io.BasePort1) if (!link->io.BasePort1)
{ {
...@@ -276,26 +268,28 @@ static int com20020_config(struct pcmcia_device *link) ...@@ -276,26 +268,28 @@ static int com20020_config(struct pcmcia_device *link)
if (i != 0) if (i != 0)
{ {
DEBUG(1,"arcnet: requestIO failed totally!\n"); dev_dbg(&link->dev, "requestIO failed totally!\n");
goto failed; goto failed;
} }
ioaddr = dev->base_addr = link->io.BasePort1; ioaddr = dev->base_addr = link->io.BasePort1;
DEBUG(1,"arcnet: got ioaddr %Xh\n", ioaddr); dev_dbg(&link->dev, "got ioaddr %Xh\n", ioaddr);
DEBUG(1,"arcnet: request IRQ %d (%Xh/%Xh)\n", dev_dbg(&link->dev, "request IRQ %d (%Xh/%Xh)\n",
link->irq.AssignedIRQ, link->irq.AssignedIRQ,
link->irq.IRQInfo1, link->irq.IRQInfo2); link->irq.IRQInfo1, link->irq.IRQInfo2);
i = pcmcia_request_irq(link, &link->irq); i = pcmcia_request_irq(link, &link->irq);
if (i != 0) if (i != 0)
{ {
DEBUG(1,"arcnet: requestIRQ failed totally!\n"); dev_dbg(&link->dev, "requestIRQ failed totally!\n");
goto failed; goto failed;
} }
dev->irq = link->irq.AssignedIRQ; dev->irq = link->irq.AssignedIRQ;
CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link, &link->conf)); ret = pcmcia_request_configuration(link, &link->conf);
if (ret)
goto failed;
if (com20020_check(dev)) if (com20020_check(dev))
{ {
...@@ -313,21 +307,20 @@ static int com20020_config(struct pcmcia_device *link) ...@@ -313,21 +307,20 @@ static int com20020_config(struct pcmcia_device *link)
i = com20020_found(dev, 0); /* calls register_netdev */ i = com20020_found(dev, 0); /* calls register_netdev */
if (i != 0) { if (i != 0) {
DEBUG(1,KERN_NOTICE "com20020_cs: com20020_found() failed\n"); dev_printk(KERN_NOTICE, &link->dev,
"com20020_cs: com20020_found() failed\n");
link->dev_node = NULL; link->dev_node = NULL;
goto failed; goto failed;
} }
strcpy(info->node.dev_name, dev->name); strcpy(info->node.dev_name, dev->name);
DEBUG(1,KERN_INFO "%s: port %#3lx, irq %d\n", dev_dbg(&link->dev,KERN_INFO "%s: port %#3lx, irq %d\n",
dev->name, dev->base_addr, dev->irq); dev->name, dev->base_addr, dev->irq);
return 0; return 0;
cs_failed:
cs_error(link, last_fn, last_ret);
failed: failed:
DEBUG(1,"com20020_config failed...\n"); dev_dbg(&link->dev, "com20020_config failed...\n");
com20020_release(link); com20020_release(link);
return -ENODEV; return -ENODEV;
} /* com20020_config */ } /* com20020_config */
...@@ -342,7 +335,7 @@ failed: ...@@ -342,7 +335,7 @@ failed:
static void com20020_release(struct pcmcia_device *link) static void com20020_release(struct pcmcia_device *link)
{ {
DEBUG(0, "com20020_release(0x%p)\n", link); dev_dbg(&link->dev, "com20020_release\n");
pcmcia_disable_device(link); pcmcia_disable_device(link);
} }
......
...@@ -72,13 +72,6 @@ MODULE_LICENSE("GPL"); ...@@ -72,13 +72,6 @@ MODULE_LICENSE("GPL");
/* 0:4KB*2 TX buffer else:8KB*2 TX buffer */ /* 0:4KB*2 TX buffer else:8KB*2 TX buffer */
INT_MODULE_PARM(sram_config, 0); INT_MODULE_PARM(sram_config, 0);
#ifdef PCMCIA_DEBUG
INT_MODULE_PARM(pc_debug, PCMCIA_DEBUG);
#define DEBUG(n, args...) if (pc_debug>(n)) printk(KERN_DEBUG args)
static char *version = DRV_NAME ".c " DRV_VERSION " 2002/03/23";
#else
#define DEBUG(n, args...)
#endif
/*====================================================================*/ /*====================================================================*/
/* /*
...@@ -245,7 +238,7 @@ static int fmvj18x_probe(struct pcmcia_device *link) ...@@ -245,7 +238,7 @@ static int fmvj18x_probe(struct pcmcia_device *link)
local_info_t *lp; local_info_t *lp;
struct net_device *dev; struct net_device *dev;
DEBUG(0, "fmvj18x_attach()\n"); dev_dbg(&link->dev, "fmvj18x_attach()\n");
/* Make up a FMVJ18x specific data structure */ /* Make up a FMVJ18x specific data structure */
dev = alloc_etherdev(sizeof(local_info_t)); dev = alloc_etherdev(sizeof(local_info_t));
...@@ -285,7 +278,7 @@ static void fmvj18x_detach(struct pcmcia_device *link) ...@@ -285,7 +278,7 @@ static void fmvj18x_detach(struct pcmcia_device *link)
{ {
struct net_device *dev = link->priv; struct net_device *dev = link->priv;
DEBUG(0, "fmvj18x_detach(0x%p)\n", link); dev_dbg(&link->dev, "fmvj18x_detach\n");
if (link->dev_node) if (link->dev_node)
unregister_netdev(dev); unregister_netdev(dev);
...@@ -297,9 +290,6 @@ static void fmvj18x_detach(struct pcmcia_device *link) ...@@ -297,9 +290,6 @@ static void fmvj18x_detach(struct pcmcia_device *link)
/*====================================================================*/ /*====================================================================*/
#define CS_CHECK(fn, ret) \
do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)
static int mfc_try_io_port(struct pcmcia_device *link) static int mfc_try_io_port(struct pcmcia_device *link)
{ {
int i, ret; int i, ret;
...@@ -354,7 +344,7 @@ static int fmvj18x_config(struct pcmcia_device *link) ...@@ -354,7 +344,7 @@ static int fmvj18x_config(struct pcmcia_device *link)
{ {
struct net_device *dev = link->priv; struct net_device *dev = link->priv;
local_info_t *lp = netdev_priv(dev); local_info_t *lp = netdev_priv(dev);
int i, last_fn = RequestIO, last_ret = 0, ret; int i, ret;
unsigned int ioaddr; unsigned int ioaddr;
cardtype_t cardtype; cardtype_t cardtype;
char *card_name = "unknown"; char *card_name = "unknown";
...@@ -362,16 +352,16 @@ static int fmvj18x_config(struct pcmcia_device *link) ...@@ -362,16 +352,16 @@ static int fmvj18x_config(struct pcmcia_device *link)
size_t len; size_t len;
u_char buggybuf[32]; u_char buggybuf[32];
DEBUG(0, "fmvj18x_config(0x%p)\n", link); dev_dbg(&link->dev, "fmvj18x_config\n");
len = pcmcia_get_tuple(link, CISTPL_FUNCE, &buf); len = pcmcia_get_tuple(link, CISTPL_FUNCE, &buf);
kfree(buf); kfree(buf);
if (len) { if (len) {
/* Yes, I have CISTPL_FUNCE. Let's check CISTPL_MANFID */ /* Yes, I have CISTPL_FUNCE. Let's check CISTPL_MANFID */
last_ret = pcmcia_loop_config(link, fmvj18x_ioprobe, NULL); ret = pcmcia_loop_config(link, fmvj18x_ioprobe, NULL);
if (last_ret != 0) if (ret != 0)
goto cs_failed; goto failed;
switch (link->manf_id) { switch (link->manf_id) {
case MANFID_TDK: case MANFID_TDK:
...@@ -440,15 +430,22 @@ static int fmvj18x_config(struct pcmcia_device *link) ...@@ -440,15 +430,22 @@ static int fmvj18x_config(struct pcmcia_device *link)
link->irq.Attributes = link->irq.Attributes =
IRQ_TYPE_DYNAMIC_SHARING|IRQ_FIRST_SHARED|IRQ_HANDLE_PRESENT; IRQ_TYPE_DYNAMIC_SHARING|IRQ_FIRST_SHARED|IRQ_HANDLE_PRESENT;
ret = mfc_try_io_port(link); ret = mfc_try_io_port(link);
if (ret != 0) goto cs_failed; if (ret != 0) goto failed;
} else if (cardtype == UNGERMANN) { } else if (cardtype == UNGERMANN) {
ret = ungermann_try_io_port(link); ret = ungermann_try_io_port(link);
if (ret != 0) goto cs_failed; if (ret != 0) goto failed;
} else { } else {
CS_CHECK(RequestIO, pcmcia_request_io(link, &link->io)); ret = pcmcia_request_io(link, &link->io);
if (ret)
goto failed;
} }
CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq)); ret = pcmcia_request_irq(link, &link->irq);
CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link, &link->conf)); if (ret)
goto failed;
ret = pcmcia_request_configuration(link, &link->conf);
if (ret)
goto failed;
dev->irq = link->irq.AssignedIRQ; dev->irq = link->irq.AssignedIRQ;
dev->base_addr = link->io.BasePort1; dev->base_addr = link->io.BasePort1;
...@@ -553,9 +550,6 @@ static int fmvj18x_config(struct pcmcia_device *link) ...@@ -553,9 +550,6 @@ static int fmvj18x_config(struct pcmcia_device *link)
return 0; return 0;
cs_failed:
/* All Card Services errors end up here */
cs_error(link, last_fn, last_ret);
failed: failed:
fmvj18x_release(link); fmvj18x_release(link);
return -ENODEV; return -ENODEV;
...@@ -574,10 +568,8 @@ static int fmvj18x_get_hwinfo(struct pcmcia_device *link, u_char *node_id) ...@@ -574,10 +568,8 @@ static int fmvj18x_get_hwinfo(struct pcmcia_device *link, u_char *node_id)
req.Base = 0; req.Size = 0; req.Base = 0; req.Size = 0;
req.AccessSpeed = 0; req.AccessSpeed = 0;
i = pcmcia_request_window(&link, &req, &link->win); i = pcmcia_request_window(&link, &req, &link->win);
if (i != 0) { if (i != 0)
cs_error(link, RequestWindow, i);
return -1; return -1;
}
base = ioremap(req.Base, req.Size); base = ioremap(req.Base, req.Size);
mem.Page = 0; mem.Page = 0;
...@@ -608,8 +600,6 @@ static int fmvj18x_get_hwinfo(struct pcmcia_device *link, u_char *node_id) ...@@ -608,8 +600,6 @@ static int fmvj18x_get_hwinfo(struct pcmcia_device *link, u_char *node_id)
iounmap(base); iounmap(base);
j = pcmcia_release_window(link->win); j = pcmcia_release_window(link->win);
if (j != 0)
cs_error(link, ReleaseWindow, j);
return (i != 0x200) ? 0 : -1; return (i != 0x200) ? 0 : -1;
} /* fmvj18x_get_hwinfo */ } /* fmvj18x_get_hwinfo */
...@@ -629,10 +619,8 @@ static int fmvj18x_setup_mfc(struct pcmcia_device *link) ...@@ -629,10 +619,8 @@ static int fmvj18x_setup_mfc(struct pcmcia_device *link)
req.Base = 0; req.Size = 0; req.Base = 0; req.Size = 0;
req.AccessSpeed = 0; req.AccessSpeed = 0;
i = pcmcia_request_window(&link, &req, &link->win); i = pcmcia_request_window(&link, &req, &link->win);
if (i != 0) { if (i != 0)
cs_error(link, RequestWindow, i);
return -1; return -1;
}
lp->base = ioremap(req.Base, req.Size); lp->base = ioremap(req.Base, req.Size);
if (lp->base == NULL) { if (lp->base == NULL) {
...@@ -646,7 +634,6 @@ static int fmvj18x_setup_mfc(struct pcmcia_device *link) ...@@ -646,7 +634,6 @@ static int fmvj18x_setup_mfc(struct pcmcia_device *link)
if (i != 0) { if (i != 0) {
iounmap(lp->base); iounmap(lp->base);
lp->base = NULL; lp->base = NULL;
cs_error(link, MapMemPage, i);
return -1; return -1;
} }
...@@ -673,15 +660,13 @@ static void fmvj18x_release(struct pcmcia_device *link) ...@@ -673,15 +660,13 @@ static void fmvj18x_release(struct pcmcia_device *link)
u_char __iomem *tmp; u_char __iomem *tmp;
int j; int j;
DEBUG(0, "fmvj18x_release(0x%p)\n", link); dev_dbg(&link->dev, "fmvj18x_release\n");
if (lp->base != NULL) { if (lp->base != NULL) {
tmp = lp->base; tmp = lp->base;
lp->base = NULL; /* set NULL before iounmap */ lp->base = NULL; /* set NULL before iounmap */
iounmap(tmp); iounmap(tmp);
j = pcmcia_release_window(link->win); j = pcmcia_release_window(link->win);
if (j != 0)
cs_error(link, ReleaseWindow, j);
} }
pcmcia_disable_device(link); pcmcia_disable_device(link);
...@@ -790,8 +775,8 @@ static irqreturn_t fjn_interrupt(int dummy, void *dev_id) ...@@ -790,8 +775,8 @@ static irqreturn_t fjn_interrupt(int dummy, void *dev_id)
outb(tx_stat, ioaddr + TX_STATUS); outb(tx_stat, ioaddr + TX_STATUS);
outb(rx_stat, ioaddr + RX_STATUS); outb(rx_stat, ioaddr + RX_STATUS);
DEBUG(4, "%s: interrupt, rx_status %02x.\n", dev->name, rx_stat); pr_debug("%s: interrupt, rx_status %02x.\n", dev->name, rx_stat);
DEBUG(4, " tx_status %02x.\n", tx_stat); pr_debug(" tx_status %02x.\n", tx_stat);
if (rx_stat || (inb(ioaddr + RX_MODE) & F_BUF_EMP) == 0) { if (rx_stat || (inb(ioaddr + RX_MODE) & F_BUF_EMP) == 0) {
/* there is packet(s) in rx buffer */ /* there is packet(s) in rx buffer */
...@@ -811,8 +796,8 @@ static irqreturn_t fjn_interrupt(int dummy, void *dev_id) ...@@ -811,8 +796,8 @@ static irqreturn_t fjn_interrupt(int dummy, void *dev_id)
} }
netif_wake_queue(dev); netif_wake_queue(dev);
} }
DEBUG(4, "%s: exiting interrupt,\n", dev->name); pr_debug("%s: exiting interrupt,\n", dev->name);
DEBUG(4, " tx_status %02x, rx_status %02x.\n", tx_stat, rx_stat); pr_debug(" tx_status %02x, rx_status %02x.\n", tx_stat, rx_stat);
outb(D_TX_INTR, ioaddr + TX_INTR); outb(D_TX_INTR, ioaddr + TX_INTR);
outb(D_RX_INTR, ioaddr + RX_INTR); outb(D_RX_INTR, ioaddr + RX_INTR);
...@@ -884,7 +869,7 @@ static netdev_tx_t fjn_start_xmit(struct sk_buff *skb, ...@@ -884,7 +869,7 @@ static netdev_tx_t fjn_start_xmit(struct sk_buff *skb,
return NETDEV_TX_BUSY; return NETDEV_TX_BUSY;
} }
DEBUG(4, "%s: Transmitting a packet of length %lu.\n", pr_debug("%s: Transmitting a packet of length %lu.\n",
dev->name, (unsigned long)skb->len); dev->name, (unsigned long)skb->len);
dev->stats.tx_bytes += skb->len; dev->stats.tx_bytes += skb->len;
...@@ -939,7 +924,7 @@ static void fjn_reset(struct net_device *dev) ...@@ -939,7 +924,7 @@ static void fjn_reset(struct net_device *dev)
unsigned int ioaddr = dev->base_addr; unsigned int ioaddr = dev->base_addr;
int i; int i;
DEBUG(4, "fjn_reset(%s) called.\n",dev->name); pr_debug("fjn_reset(%s) called.\n",dev->name);
/* Reset controller */ /* Reset controller */
if( sram_config == 0 ) if( sram_config == 0 )
...@@ -1017,13 +1002,13 @@ static void fjn_rx(struct net_device *dev) ...@@ -1017,13 +1002,13 @@ static void fjn_rx(struct net_device *dev)
unsigned int ioaddr = dev->base_addr; unsigned int ioaddr = dev->base_addr;
int boguscount = 10; /* 5 -> 10: by agy 19940922 */ int boguscount = 10; /* 5 -> 10: by agy 19940922 */
DEBUG(4, "%s: in rx_packet(), rx_status %02x.\n", pr_debug("%s: in rx_packet(), rx_status %02x.\n",
dev->name, inb(ioaddr + RX_STATUS)); dev->name, inb(ioaddr + RX_STATUS));
while ((inb(ioaddr + RX_MODE) & F_BUF_EMP) == 0) { while ((inb(ioaddr + RX_MODE) & F_BUF_EMP) == 0) {
u_short status = inw(ioaddr + DATAPORT); u_short status = inw(ioaddr + DATAPORT);
DEBUG(4, "%s: Rxing packet mode %02x status %04x.\n", pr_debug("%s: Rxing packet mode %02x status %04x.\n",
dev->name, inb(ioaddr + RX_MODE), status); dev->name, inb(ioaddr + RX_MODE), status);
#ifndef final_version #ifndef final_version
if (status == 0) { if (status == 0) {
...@@ -1063,16 +1048,14 @@ static void fjn_rx(struct net_device *dev) ...@@ -1063,16 +1048,14 @@ static void fjn_rx(struct net_device *dev)
(pkt_len + 1) >> 1); (pkt_len + 1) >> 1);
skb->protocol = eth_type_trans(skb, dev); skb->protocol = eth_type_trans(skb, dev);
#ifdef PCMCIA_DEBUG {
if (pc_debug > 5) {
int i; int i;
printk(KERN_DEBUG "%s: Rxed packet of length %d: ", pr_debug("%s: Rxed packet of length %d: ",
dev->name, pkt_len); dev->name, pkt_len);
for (i = 0; i < 14; i++) for (i = 0; i < 14; i++)
printk(" %02x", skb->data[i]); pr_debug(" %02x", skb->data[i]);
printk(".\n"); pr_debug(".\n");
} }
#endif
netif_rx(skb); netif_rx(skb);
dev->stats.rx_packets++; dev->stats.rx_packets++;
...@@ -1096,7 +1079,7 @@ static void fjn_rx(struct net_device *dev) ...@@ -1096,7 +1079,7 @@ static void fjn_rx(struct net_device *dev)
} }
if (i > 0) if (i > 0)
DEBUG(5, "%s: Exint Rx packet with mode %02x after " pr_debug("%s: Exint Rx packet with mode %02x after "
"%d ticks.\n", dev->name, inb(ioaddr + RX_MODE), i); "%d ticks.\n", dev->name, inb(ioaddr + RX_MODE), i);
} }
*/ */
...@@ -1114,24 +1097,8 @@ static void netdev_get_drvinfo(struct net_device *dev, ...@@ -1114,24 +1097,8 @@ static void netdev_get_drvinfo(struct net_device *dev,
sprintf(info->bus_info, "PCMCIA 0x%lx", dev->base_addr); sprintf(info->bus_info, "PCMCIA 0x%lx", dev->base_addr);
} }
#ifdef PCMCIA_DEBUG
static u32 netdev_get_msglevel(struct net_device *dev)
{
return pc_debug;
}
static void netdev_set_msglevel(struct net_device *dev, u32 level)
{
pc_debug = level;
}
#endif /* PCMCIA_DEBUG */
static const struct ethtool_ops netdev_ethtool_ops = { static const struct ethtool_ops netdev_ethtool_ops = {
.get_drvinfo = netdev_get_drvinfo, .get_drvinfo = netdev_get_drvinfo,
#ifdef PCMCIA_DEBUG
.get_msglevel = netdev_get_msglevel,
.set_msglevel = netdev_set_msglevel,
#endif /* PCMCIA_DEBUG */
}; };
static int fjn_config(struct net_device *dev, struct ifmap *map){ static int fjn_config(struct net_device *dev, struct ifmap *map){
...@@ -1143,7 +1110,7 @@ static int fjn_open(struct net_device *dev) ...@@ -1143,7 +1110,7 @@ static int fjn_open(struct net_device *dev)
struct local_info_t *lp = netdev_priv(dev); struct local_info_t *lp = netdev_priv(dev);
struct pcmcia_device *link = lp->p_dev; struct pcmcia_device *link = lp->p_dev;
DEBUG(4, "fjn_open('%s').\n", dev->name); pr_debug("fjn_open('%s').\n", dev->name);
if (!pcmcia_dev_present(link)) if (!pcmcia_dev_present(link))
return -ENODEV; return -ENODEV;
...@@ -1169,7 +1136,7 @@ static int fjn_close(struct net_device *dev) ...@@ -1169,7 +1136,7 @@ static int fjn_close(struct net_device *dev)
struct pcmcia_device *link = lp->p_dev; struct pcmcia_device *link = lp->p_dev;
unsigned int ioaddr = dev->base_addr; unsigned int ioaddr = dev->base_addr;
DEBUG(4, "fjn_close('%s').\n", dev->name); pr_debug("fjn_close('%s').\n", dev->name);
lp->open_time = 0; lp->open_time = 0;
netif_stop_queue(dev); netif_stop_queue(dev);
......
...@@ -69,17 +69,6 @@ ...@@ -69,17 +69,6 @@
#define PCMCIA #define PCMCIA
#include "../tokenring/ibmtr.c" #include "../tokenring/ibmtr.c"
#ifdef PCMCIA_DEBUG
static int pc_debug = PCMCIA_DEBUG;
module_param(pc_debug, int, 0);
#define DEBUG(n, args...) if (pc_debug>(n)) printk(KERN_DEBUG args)
static char *version =
"ibmtr_cs.c 1.10 1996/01/06 05:19:00 (Steve Kipisz)\n"
" 2.2.7 1999/05/03 12:00:00 (Mike Phillips)\n"
" 2.4.2 2001/30/28 Midnight (Burt Silverman)\n";
#else
#define DEBUG(n, args...)
#endif
/*====================================================================*/ /*====================================================================*/
...@@ -143,7 +132,7 @@ static int __devinit ibmtr_attach(struct pcmcia_device *link) ...@@ -143,7 +132,7 @@ static int __devinit ibmtr_attach(struct pcmcia_device *link)
ibmtr_dev_t *info; ibmtr_dev_t *info;
struct net_device *dev; struct net_device *dev;
DEBUG(0, "ibmtr_attach()\n"); dev_dbg(&link->dev, "ibmtr_attach()\n");
/* Create new token-ring device */ /* Create new token-ring device */
info = kzalloc(sizeof(*info), GFP_KERNEL); info = kzalloc(sizeof(*info), GFP_KERNEL);
...@@ -190,7 +179,7 @@ static void ibmtr_detach(struct pcmcia_device *link) ...@@ -190,7 +179,7 @@ static void ibmtr_detach(struct pcmcia_device *link)
struct net_device *dev = info->dev; struct net_device *dev = info->dev;
struct tok_info *ti = netdev_priv(dev); struct tok_info *ti = netdev_priv(dev);
DEBUG(0, "ibmtr_detach(0x%p)\n", link); dev_dbg(&link->dev, "ibmtr_detach\n");
/* /*
* When the card removal interrupt hits tok_interrupt(), * When the card removal interrupt hits tok_interrupt(),
...@@ -217,9 +206,6 @@ static void ibmtr_detach(struct pcmcia_device *link) ...@@ -217,9 +206,6 @@ static void ibmtr_detach(struct pcmcia_device *link)
======================================================================*/ ======================================================================*/
#define CS_CHECK(fn, ret) \
do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)
static int __devinit ibmtr_config(struct pcmcia_device *link) static int __devinit ibmtr_config(struct pcmcia_device *link)
{ {
ibmtr_dev_t *info = link->priv; ibmtr_dev_t *info = link->priv;
...@@ -227,9 +213,9 @@ static int __devinit ibmtr_config(struct pcmcia_device *link) ...@@ -227,9 +213,9 @@ static int __devinit ibmtr_config(struct pcmcia_device *link)
struct tok_info *ti = netdev_priv(dev); struct tok_info *ti = netdev_priv(dev);
win_req_t req; win_req_t req;
memreq_t mem; memreq_t mem;
int i, last_ret, last_fn; int i, ret;
DEBUG(0, "ibmtr_config(0x%p)\n", link); dev_dbg(&link->dev, "ibmtr_config\n");
link->conf.ConfigIndex = 0x61; link->conf.ConfigIndex = 0x61;
...@@ -241,11 +227,15 @@ static int __devinit ibmtr_config(struct pcmcia_device *link) ...@@ -241,11 +227,15 @@ static int __devinit ibmtr_config(struct pcmcia_device *link)
if (i != 0) { if (i != 0) {
/* Couldn't get 0xA20-0xA23. Try ALTERNATE at 0xA24-0xA27. */ /* Couldn't get 0xA20-0xA23. Try ALTERNATE at 0xA24-0xA27. */
link->io.BasePort1 = 0xA24; link->io.BasePort1 = 0xA24;
CS_CHECK(RequestIO, pcmcia_request_io(link, &link->io)); ret = pcmcia_request_io(link, &link->io);
if (ret)
goto failed;
} }
dev->base_addr = link->io.BasePort1; dev->base_addr = link->io.BasePort1;
CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq)); ret = pcmcia_request_irq(link, &link->irq);
if (ret)
goto failed;
dev->irq = link->irq.AssignedIRQ; dev->irq = link->irq.AssignedIRQ;
ti->irq = link->irq.AssignedIRQ; ti->irq = link->irq.AssignedIRQ;
ti->global_int_enable=GLOBAL_INT_ENABLE+((dev->irq==9) ? 2 : dev->irq); ti->global_int_enable=GLOBAL_INT_ENABLE+((dev->irq==9) ? 2 : dev->irq);
...@@ -256,11 +246,15 @@ static int __devinit ibmtr_config(struct pcmcia_device *link) ...@@ -256,11 +246,15 @@ static int __devinit ibmtr_config(struct pcmcia_device *link)
req.Base = 0; req.Base = 0;
req.Size = 0x2000; req.Size = 0x2000;
req.AccessSpeed = 250; req.AccessSpeed = 250;
CS_CHECK(RequestWindow, pcmcia_request_window(&link, &req, &link->win)); ret = pcmcia_request_window(&link, &req, &link->win);
if (ret)
goto failed;
mem.CardOffset = mmiobase; mem.CardOffset = mmiobase;
mem.Page = 0; mem.Page = 0;
CS_CHECK(MapMemPage, pcmcia_map_mem_page(link->win, &mem)); ret = pcmcia_map_mem_page(link->win, &mem);
if (ret)
goto failed;
ti->mmio = ioremap(req.Base, req.Size); ti->mmio = ioremap(req.Base, req.Size);
/* Allocate the SRAM memory window */ /* Allocate the SRAM memory window */
...@@ -269,17 +263,23 @@ static int __devinit ibmtr_config(struct pcmcia_device *link) ...@@ -269,17 +263,23 @@ static int __devinit ibmtr_config(struct pcmcia_device *link)
req.Base = 0; req.Base = 0;
req.Size = sramsize * 1024; req.Size = sramsize * 1024;
req.AccessSpeed = 250; req.AccessSpeed = 250;
CS_CHECK(RequestWindow, pcmcia_request_window(&link, &req, &info->sram_win_handle)); ret = pcmcia_request_window(&link, &req, &info->sram_win_handle);
if (ret)
goto failed;
mem.CardOffset = srambase; mem.CardOffset = srambase;
mem.Page = 0; mem.Page = 0;
CS_CHECK(MapMemPage, pcmcia_map_mem_page(info->sram_win_handle, &mem)); ret = pcmcia_map_mem_page(info->sram_win_handle, &mem);
if (ret)
goto failed;
ti->sram_base = mem.CardOffset >> 12; ti->sram_base = mem.CardOffset >> 12;
ti->sram_virt = ioremap(req.Base, req.Size); ti->sram_virt = ioremap(req.Base, req.Size);
ti->sram_phys = req.Base; ti->sram_phys = req.Base;
CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link, &link->conf)); ret = pcmcia_request_configuration(link, &link->conf);
if (ret)
goto failed;
/* Set up the Token-Ring Controller Configuration Register and /* Set up the Token-Ring Controller Configuration Register and
turn on the card. Check the "Local Area Network Credit Card turn on the card. Check the "Local Area Network Credit Card
...@@ -305,8 +305,6 @@ static int __devinit ibmtr_config(struct pcmcia_device *link) ...@@ -305,8 +305,6 @@ static int __devinit ibmtr_config(struct pcmcia_device *link)
dev->dev_addr); dev->dev_addr);
return 0; return 0;
cs_failed:
cs_error(link, last_fn, last_ret);
failed: failed:
ibmtr_release(link); ibmtr_release(link);
return -ENODEV; return -ENODEV;
...@@ -325,7 +323,7 @@ static void ibmtr_release(struct pcmcia_device *link) ...@@ -325,7 +323,7 @@ static void ibmtr_release(struct pcmcia_device *link)
ibmtr_dev_t *info = link->priv; ibmtr_dev_t *info = link->priv;
struct net_device *dev = info->dev; struct net_device *dev = info->dev;
DEBUG(0, "ibmtr_release(0x%p)\n", link); dev_dbg(&link->dev, "ibmtr_release\n");
if (link->win) { if (link->win) {
struct tok_info *ti = netdev_priv(dev); struct tok_info *ti = netdev_priv(dev);
......
This diff is collapsed.
...@@ -71,15 +71,6 @@ ...@@ -71,15 +71,6 @@
static const char *if_names[] = { "auto", "10baseT", "10base2"}; static const char *if_names[] = { "auto", "10baseT", "10base2"};
#ifdef PCMCIA_DEBUG
static int pc_debug = PCMCIA_DEBUG;
module_param(pc_debug, int, 0);
#define DEBUG(n, args...) if (pc_debug>(n)) printk(KERN_DEBUG args)
static char *version =
"pcnet_cs.c 1.153 2003/11/09 18:53:09 (David Hinds)";
#else
#define DEBUG(n, args...)
#endif
/*====================================================================*/ /*====================================================================*/
...@@ -265,7 +256,7 @@ static int pcnet_probe(struct pcmcia_device *link) ...@@ -265,7 +256,7 @@ static int pcnet_probe(struct pcmcia_device *link)
pcnet_dev_t *info; pcnet_dev_t *info;
struct net_device *dev; struct net_device *dev;
DEBUG(0, "pcnet_attach()\n"); dev_dbg(&link->dev, "pcnet_attach()\n");
/* Create new ethernet device */ /* Create new ethernet device */
dev = __alloc_ei_netdev(sizeof(pcnet_dev_t)); dev = __alloc_ei_netdev(sizeof(pcnet_dev_t));
...@@ -297,7 +288,7 @@ static void pcnet_detach(struct pcmcia_device *link) ...@@ -297,7 +288,7 @@ static void pcnet_detach(struct pcmcia_device *link)
{ {
struct net_device *dev = link->priv; struct net_device *dev = link->priv;
DEBUG(0, "pcnet_detach(0x%p)\n", link); dev_dbg(&link->dev, "pcnet_detach\n");
if (link->dev_node) if (link->dev_node)
unregister_netdev(dev); unregister_netdev(dev);
...@@ -327,10 +318,8 @@ static hw_info_t *get_hwinfo(struct pcmcia_device *link) ...@@ -327,10 +318,8 @@ static hw_info_t *get_hwinfo(struct pcmcia_device *link)
req.Base = 0; req.Size = 0; req.Base = 0; req.Size = 0;
req.AccessSpeed = 0; req.AccessSpeed = 0;
i = pcmcia_request_window(&link, &req, &link->win); i = pcmcia_request_window(&link, &req, &link->win);
if (i != 0) { if (i != 0)
cs_error(link, RequestWindow, i);
return NULL; return NULL;
}
virt = ioremap(req.Base, req.Size); virt = ioremap(req.Base, req.Size);
mem.Page = 0; mem.Page = 0;
...@@ -349,8 +338,6 @@ static hw_info_t *get_hwinfo(struct pcmcia_device *link) ...@@ -349,8 +338,6 @@ static hw_info_t *get_hwinfo(struct pcmcia_device *link)
iounmap(virt); iounmap(virt);
j = pcmcia_release_window(link->win); j = pcmcia_release_window(link->win);
if (j != 0)
cs_error(link, ReleaseWindow, j);
return (i < NR_INFO) ? hw_info+i : NULL; return (i < NR_INFO) ? hw_info+i : NULL;
} /* get_hwinfo */ } /* get_hwinfo */
...@@ -495,9 +482,6 @@ static hw_info_t *get_hwired(struct pcmcia_device *link) ...@@ -495,9 +482,6 @@ static hw_info_t *get_hwired(struct pcmcia_device *link)
======================================================================*/ ======================================================================*/
#define CS_CHECK(fn, ret) \
do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)
static int try_io_port(struct pcmcia_device *link) static int try_io_port(struct pcmcia_device *link)
{ {
int j, ret; int j, ret;
...@@ -567,19 +551,19 @@ static int pcnet_config(struct pcmcia_device *link) ...@@ -567,19 +551,19 @@ static int pcnet_config(struct pcmcia_device *link)
{ {
struct net_device *dev = link->priv; struct net_device *dev = link->priv;
pcnet_dev_t *info = PRIV(dev); pcnet_dev_t *info = PRIV(dev);
int last_ret, last_fn, start_pg, stop_pg, cm_offset; int ret, start_pg, stop_pg, cm_offset;
int has_shmem = 0; int has_shmem = 0;
hw_info_t *local_hw_info; hw_info_t *local_hw_info;
DEBUG(0, "pcnet_config(0x%p)\n", link); dev_dbg(&link->dev, "pcnet_config\n");
last_ret = pcmcia_loop_config(link, pcnet_confcheck, &has_shmem); ret = pcmcia_loop_config(link, pcnet_confcheck, &has_shmem);
if (last_ret) { if (ret)
cs_error(link, RequestIO, last_ret);
goto failed; goto failed;
}
CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq)); ret = pcmcia_request_irq(link, &link->irq);
if (ret)
goto failed;
if (link->io.NumPorts2 == 8) { if (link->io.NumPorts2 == 8) {
link->conf.Attributes |= CONF_ENABLE_SPKR; link->conf.Attributes |= CONF_ENABLE_SPKR;
...@@ -589,7 +573,9 @@ static int pcnet_config(struct pcmcia_device *link) ...@@ -589,7 +573,9 @@ static int pcnet_config(struct pcmcia_device *link)
(link->card_id == PRODID_IBM_HOME_AND_AWAY)) (link->card_id == PRODID_IBM_HOME_AND_AWAY))
link->conf.ConfigIndex |= 0x10; link->conf.ConfigIndex |= 0x10;
CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link, &link->conf)); ret = pcmcia_request_configuration(link, &link->conf);
if (ret)
goto failed;
dev->irq = link->irq.AssignedIRQ; dev->irq = link->irq.AssignedIRQ;
dev->base_addr = link->io.BasePort1; dev->base_addr = link->io.BasePort1;
if (info->flags & HAS_MISC_REG) { if (info->flags & HAS_MISC_REG) {
...@@ -687,8 +673,6 @@ static int pcnet_config(struct pcmcia_device *link) ...@@ -687,8 +673,6 @@ static int pcnet_config(struct pcmcia_device *link)
printk(" hw_addr %pM\n", dev->dev_addr); printk(" hw_addr %pM\n", dev->dev_addr);
return 0; return 0;
cs_failed:
cs_error(link, last_fn, last_ret);
failed: failed:
pcnet_release(link); pcnet_release(link);
return -ENODEV; return -ENODEV;
...@@ -706,7 +690,7 @@ static void pcnet_release(struct pcmcia_device *link) ...@@ -706,7 +690,7 @@ static void pcnet_release(struct pcmcia_device *link)
{ {
pcnet_dev_t *info = PRIV(link->priv); pcnet_dev_t *info = PRIV(link->priv);
DEBUG(0, "pcnet_release(0x%p)\n", link); dev_dbg(&link->dev, "pcnet_release\n");
if (info->flags & USE_SHMEM) if (info->flags & USE_SHMEM)
iounmap(info->base); iounmap(info->base);
...@@ -960,7 +944,7 @@ static void mii_phy_probe(struct net_device *dev) ...@@ -960,7 +944,7 @@ static void mii_phy_probe(struct net_device *dev)
phyid = tmp << 16; phyid = tmp << 16;
phyid |= mdio_read(mii_addr, i, MII_PHYID_REG2); phyid |= mdio_read(mii_addr, i, MII_PHYID_REG2);
phyid &= MII_PHYID_REV_MASK; phyid &= MII_PHYID_REV_MASK;
DEBUG(0, "%s: MII at %d is 0x%08x\n", dev->name, i, phyid); pr_debug("%s: MII at %d is 0x%08x\n", dev->name, i, phyid);
if (phyid == AM79C9XX_HOME_PHY) { if (phyid == AM79C9XX_HOME_PHY) {
info->pna_phy = i; info->pna_phy = i;
} else if (phyid != AM79C9XX_ETH_PHY) { } else if (phyid != AM79C9XX_ETH_PHY) {
...@@ -976,7 +960,7 @@ static int pcnet_open(struct net_device *dev) ...@@ -976,7 +960,7 @@ static int pcnet_open(struct net_device *dev)
struct pcmcia_device *link = info->p_dev; struct pcmcia_device *link = info->p_dev;
unsigned int nic_base = dev->base_addr; unsigned int nic_base = dev->base_addr;
DEBUG(2, "pcnet_open('%s')\n", dev->name); dev_dbg(&link->dev, "pcnet_open('%s')\n", dev->name);
if (!pcmcia_dev_present(link)) if (!pcmcia_dev_present(link))
return -ENODEV; return -ENODEV;
...@@ -1008,7 +992,7 @@ static int pcnet_close(struct net_device *dev) ...@@ -1008,7 +992,7 @@ static int pcnet_close(struct net_device *dev)
pcnet_dev_t *info = PRIV(dev); pcnet_dev_t *info = PRIV(dev);
struct pcmcia_device *link = info->p_dev; struct pcmcia_device *link = info->p_dev;
DEBUG(2, "pcnet_close('%s')\n", dev->name); dev_dbg(&link->dev, "pcnet_close('%s')\n", dev->name);
ei_close(dev); ei_close(dev);
free_irq(dev->irq, dev); free_irq(dev->irq, dev);
...@@ -1251,10 +1235,8 @@ static void dma_block_input(struct net_device *dev, int count, ...@@ -1251,10 +1235,8 @@ static void dma_block_input(struct net_device *dev, int count,
int xfer_count = count; int xfer_count = count;
char *buf = skb->data; char *buf = skb->data;
#ifdef PCMCIA_DEBUG
if ((ei_debug > 4) && (count != 4)) if ((ei_debug > 4) && (count != 4))
printk(KERN_DEBUG "%s: [bi=%d]\n", dev->name, count+4); pr_debug("%s: [bi=%d]\n", dev->name, count+4);
#endif
if (ei_status.dmaing) { if (ei_status.dmaing) {
printk(KERN_NOTICE "%s: DMAing conflict in dma_block_input." printk(KERN_NOTICE "%s: DMAing conflict in dma_block_input."
"[DMAstat:%1x][irqlock:%1x]\n", "[DMAstat:%1x][irqlock:%1x]\n",
...@@ -1495,7 +1477,7 @@ static int setup_shmem_window(struct pcmcia_device *link, int start_pg, ...@@ -1495,7 +1477,7 @@ static int setup_shmem_window(struct pcmcia_device *link, int start_pg,
pcnet_dev_t *info = PRIV(dev); pcnet_dev_t *info = PRIV(dev);
win_req_t req; win_req_t req;
memreq_t mem; memreq_t mem;
int i, window_size, offset, last_ret, last_fn; int i, window_size, offset, ret;
window_size = (stop_pg - start_pg) << 8; window_size = (stop_pg - start_pg) << 8;
if (window_size > 32 * 1024) if (window_size > 32 * 1024)
...@@ -1509,13 +1491,17 @@ static int setup_shmem_window(struct pcmcia_device *link, int start_pg, ...@@ -1509,13 +1491,17 @@ static int setup_shmem_window(struct pcmcia_device *link, int start_pg,
req.Attributes |= WIN_USE_WAIT; req.Attributes |= WIN_USE_WAIT;
req.Base = 0; req.Size = window_size; req.Base = 0; req.Size = window_size;
req.AccessSpeed = mem_speed; req.AccessSpeed = mem_speed;
CS_CHECK(RequestWindow, pcmcia_request_window(&link, &req, &link->win)); ret = pcmcia_request_window(&link, &req, &link->win);
if (ret)
goto failed;
mem.CardOffset = (start_pg << 8) + cm_offset; mem.CardOffset = (start_pg << 8) + cm_offset;
offset = mem.CardOffset % window_size; offset = mem.CardOffset % window_size;
mem.CardOffset -= offset; mem.CardOffset -= offset;
mem.Page = 0; mem.Page = 0;
CS_CHECK(MapMemPage, pcmcia_map_mem_page(link->win, &mem)); ret = pcmcia_map_mem_page(link->win, &mem);
if (ret)
goto failed;
/* Try scribbling on the buffer */ /* Try scribbling on the buffer */
info->base = ioremap(req.Base, window_size); info->base = ioremap(req.Base, window_size);
...@@ -1549,8 +1535,6 @@ static int setup_shmem_window(struct pcmcia_device *link, int start_pg, ...@@ -1549,8 +1535,6 @@ static int setup_shmem_window(struct pcmcia_device *link, int start_pg,
info->flags |= USE_SHMEM; info->flags |= USE_SHMEM;
return 0; return 0;
cs_failed:
cs_error(link, last_fn, last_ret);
failed: failed:
return 1; return 1;
} }
...@@ -1788,7 +1772,6 @@ static int __init init_pcnet_cs(void) ...@@ -1788,7 +1772,6 @@ static int __init init_pcnet_cs(void)
static void __exit exit_pcnet_cs(void) static void __exit exit_pcnet_cs(void)
{ {
DEBUG(0, "pcnet_cs: unloading\n");
pcmcia_unregister_driver(&pcnet_driver); pcmcia_unregister_driver(&pcnet_driver);
} }
......
...@@ -79,14 +79,6 @@ MODULE_FIRMWARE(FIRMWARE_NAME); ...@@ -79,14 +79,6 @@ MODULE_FIRMWARE(FIRMWARE_NAME);
*/ */
INT_MODULE_PARM(if_port, 0); INT_MODULE_PARM(if_port, 0);
#ifdef PCMCIA_DEBUG
INT_MODULE_PARM(pc_debug, PCMCIA_DEBUG);
static const char *version =
"smc91c92_cs.c 1.123 2006/11/09 Donald Becker, becker@scyld.com.\n";
#define DEBUG(n, args...) if (pc_debug>(n)) printk(KERN_DEBUG args)
#else
#define DEBUG(n, args...)
#endif
#define DRV_NAME "smc91c92_cs" #define DRV_NAME "smc91c92_cs"
#define DRV_VERSION "1.123" #define DRV_VERSION "1.123"
...@@ -323,7 +315,7 @@ static int smc91c92_probe(struct pcmcia_device *link) ...@@ -323,7 +315,7 @@ static int smc91c92_probe(struct pcmcia_device *link)
struct smc_private *smc; struct smc_private *smc;
struct net_device *dev; struct net_device *dev;
DEBUG(0, "smc91c92_attach()\n"); dev_dbg(&link->dev, "smc91c92_attach()\n");
/* Create new ethernet device */ /* Create new ethernet device */
dev = alloc_etherdev(sizeof(struct smc_private)); dev = alloc_etherdev(sizeof(struct smc_private));
...@@ -371,7 +363,7 @@ static void smc91c92_detach(struct pcmcia_device *link) ...@@ -371,7 +363,7 @@ static void smc91c92_detach(struct pcmcia_device *link)
{ {
struct net_device *dev = link->priv; struct net_device *dev = link->priv;
DEBUG(0, "smc91c92_detach(0x%p)\n", link); dev_dbg(&link->dev, "smc91c92_detach\n");
if (link->dev_node) if (link->dev_node)
unregister_netdev(dev); unregister_netdev(dev);
...@@ -746,7 +738,7 @@ static int osi_setup(struct pcmcia_device *link, u_short manfid, u_short cardid) ...@@ -746,7 +738,7 @@ static int osi_setup(struct pcmcia_device *link, u_short manfid, u_short cardid)
set_bits(0x300, link->io.BasePort1 + OSITECH_AUI_PWR); set_bits(0x300, link->io.BasePort1 + OSITECH_AUI_PWR);
/* Now, turn on the interrupt for both card functions */ /* Now, turn on the interrupt for both card functions */
set_bits(0x300, link->io.BasePort1 + OSITECH_RESET_ISR); set_bits(0x300, link->io.BasePort1 + OSITECH_RESET_ISR);
DEBUG(2, "AUI/PWR: %4.4x RESET/ISR: %4.4x\n", dev_dbg(&link->dev, "AUI/PWR: %4.4x RESET/ISR: %4.4x\n",
inw(link->io.BasePort1 + OSITECH_AUI_PWR), inw(link->io.BasePort1 + OSITECH_AUI_PWR),
inw(link->io.BasePort1 + OSITECH_RESET_ISR)); inw(link->io.BasePort1 + OSITECH_RESET_ISR));
} }
...@@ -860,12 +852,6 @@ static int check_sig(struct pcmcia_device *link) ...@@ -860,12 +852,6 @@ static int check_sig(struct pcmcia_device *link)
======================================================================*/ ======================================================================*/
#define CS_EXIT_TEST(ret, svc, label) \
if (ret != 0) { \
cs_error(link, svc, ret); \
goto label; \
}
static int smc91c92_config(struct pcmcia_device *link) static int smc91c92_config(struct pcmcia_device *link)
{ {
struct net_device *dev = link->priv; struct net_device *dev = link->priv;
...@@ -875,7 +861,7 @@ static int smc91c92_config(struct pcmcia_device *link) ...@@ -875,7 +861,7 @@ static int smc91c92_config(struct pcmcia_device *link)
unsigned int ioaddr; unsigned int ioaddr;
u_long mir; u_long mir;
DEBUG(0, "smc91c92_config(0x%p)\n", link); dev_dbg(&link->dev, "smc91c92_config\n");
smc->manfid = link->manf_id; smc->manfid = link->manf_id;
smc->cardid = link->card_id; smc->cardid = link->card_id;
...@@ -891,12 +877,15 @@ static int smc91c92_config(struct pcmcia_device *link) ...@@ -891,12 +877,15 @@ static int smc91c92_config(struct pcmcia_device *link)
} else { } else {
i = smc_config(link); i = smc_config(link);
} }
CS_EXIT_TEST(i, RequestIO, config_failed); if (i)
goto config_failed;
i = pcmcia_request_irq(link, &link->irq); i = pcmcia_request_irq(link, &link->irq);
CS_EXIT_TEST(i, RequestIRQ, config_failed); if (i)
goto config_failed;
i = pcmcia_request_configuration(link, &link->conf); i = pcmcia_request_configuration(link, &link->conf);
CS_EXIT_TEST(i, RequestConfiguration, config_failed); if (i)
goto config_failed;
if (smc->manfid == MANFID_MOTOROLA) if (smc->manfid == MANFID_MOTOROLA)
mot_config(link); mot_config(link);
...@@ -1001,7 +990,7 @@ static int smc91c92_config(struct pcmcia_device *link) ...@@ -1001,7 +990,7 @@ static int smc91c92_config(struct pcmcia_device *link)
if (smc->cfg & CFG_MII_SELECT) { if (smc->cfg & CFG_MII_SELECT) {
if (smc->mii_if.phy_id != -1) { if (smc->mii_if.phy_id != -1) {
DEBUG(0, " MII transceiver at index %d, status %x.\n", dev_dbg(&link->dev, " MII transceiver at index %d, status %x.\n",
smc->mii_if.phy_id, j); smc->mii_if.phy_id, j);
} else { } else {
printk(KERN_NOTICE " No MII transceivers found!\n"); printk(KERN_NOTICE " No MII transceivers found!\n");
...@@ -1011,7 +1000,7 @@ static int smc91c92_config(struct pcmcia_device *link) ...@@ -1011,7 +1000,7 @@ static int smc91c92_config(struct pcmcia_device *link)
config_undo: config_undo:
unregister_netdev(dev); unregister_netdev(dev);
config_failed: /* CS_EXIT_TEST() calls jump to here... */ config_failed:
smc91c92_release(link); smc91c92_release(link);
return -ENODEV; return -ENODEV;
} /* smc91c92_config */ } /* smc91c92_config */
...@@ -1026,7 +1015,7 @@ config_failed: /* CS_EXIT_TEST() calls jump to here... */ ...@@ -1026,7 +1015,7 @@ config_failed: /* CS_EXIT_TEST() calls jump to here... */
static void smc91c92_release(struct pcmcia_device *link) static void smc91c92_release(struct pcmcia_device *link)
{ {
DEBUG(0, "smc91c92_release(0x%p)\n", link); dev_dbg(&link->dev, "smc91c92_release\n");
if (link->win) { if (link->win) {
struct net_device *dev = link->priv; struct net_device *dev = link->priv;
struct smc_private *smc = netdev_priv(dev); struct smc_private *smc = netdev_priv(dev);
...@@ -1123,10 +1112,10 @@ static int smc_open(struct net_device *dev) ...@@ -1123,10 +1112,10 @@ static int smc_open(struct net_device *dev)
struct smc_private *smc = netdev_priv(dev); struct smc_private *smc = netdev_priv(dev);
struct pcmcia_device *link = smc->p_dev; struct pcmcia_device *link = smc->p_dev;
#ifdef PCMCIA_DEBUG dev_dbg(&link->dev, "%s: smc_open(%p), ID/Window %4.4x.\n",
DEBUG(0, "%s: smc_open(%p), ID/Window %4.4x.\n",
dev->name, dev, inw(dev->base_addr + BANK_SELECT)); dev->name, dev, inw(dev->base_addr + BANK_SELECT));
if (pc_debug > 1) smc_dump(dev); #ifdef PCMCIA_DEBUG
smc_dump(dev);
#endif #endif
/* Check that the PCMCIA card is still here. */ /* Check that the PCMCIA card is still here. */
...@@ -1161,7 +1150,7 @@ static int smc_close(struct net_device *dev) ...@@ -1161,7 +1150,7 @@ static int smc_close(struct net_device *dev)
struct pcmcia_device *link = smc->p_dev; struct pcmcia_device *link = smc->p_dev;
unsigned int ioaddr = dev->base_addr; unsigned int ioaddr = dev->base_addr;
DEBUG(0, "%s: smc_close(), status %4.4x.\n", dev_dbg(&link->dev, "%s: smc_close(), status %4.4x.\n",
dev->name, inw(ioaddr + BANK_SELECT)); dev->name, inw(ioaddr + BANK_SELECT));
netif_stop_queue(dev); netif_stop_queue(dev);
...@@ -1228,7 +1217,7 @@ static void smc_hardware_send_packet(struct net_device * dev) ...@@ -1228,7 +1217,7 @@ static void smc_hardware_send_packet(struct net_device * dev)
u_char *buf = skb->data; u_char *buf = skb->data;
u_int length = skb->len; /* The chip will pad to ethernet min. */ u_int length = skb->len; /* The chip will pad to ethernet min. */
DEBUG(2, "%s: Trying to xmit packet of length %d.\n", pr_debug("%s: Trying to xmit packet of length %d.\n",
dev->name, length); dev->name, length);
/* send the packet length: +6 for status word, length, and ctl */ /* send the packet length: +6 for status word, length, and ctl */
...@@ -1283,7 +1272,7 @@ static netdev_tx_t smc_start_xmit(struct sk_buff *skb, ...@@ -1283,7 +1272,7 @@ static netdev_tx_t smc_start_xmit(struct sk_buff *skb,
netif_stop_queue(dev); netif_stop_queue(dev);
DEBUG(2, "%s: smc_start_xmit(length = %d) called," pr_debug("%s: smc_start_xmit(length = %d) called,"
" status %4.4x.\n", dev->name, skb->len, inw(ioaddr + 2)); " status %4.4x.\n", dev->name, skb->len, inw(ioaddr + 2));
if (smc->saved_skb) { if (smc->saved_skb) {
...@@ -1330,7 +1319,7 @@ static netdev_tx_t smc_start_xmit(struct sk_buff *skb, ...@@ -1330,7 +1319,7 @@ static netdev_tx_t smc_start_xmit(struct sk_buff *skb,
} }
/* Otherwise defer until the Tx-space-allocated interrupt. */ /* Otherwise defer until the Tx-space-allocated interrupt. */
DEBUG(2, "%s: memory allocation deferred.\n", dev->name); pr_debug("%s: memory allocation deferred.\n", dev->name);
outw((IM_ALLOC_INT << 8) | (ir & 0xff00), ioaddr + INTERRUPT); outw((IM_ALLOC_INT << 8) | (ir & 0xff00), ioaddr + INTERRUPT);
spin_unlock_irqrestore(&smc->lock, flags); spin_unlock_irqrestore(&smc->lock, flags);
...@@ -1395,7 +1384,7 @@ static void smc_eph_irq(struct net_device *dev) ...@@ -1395,7 +1384,7 @@ static void smc_eph_irq(struct net_device *dev)
SMC_SELECT_BANK(0); SMC_SELECT_BANK(0);
ephs = inw(ioaddr + EPH); ephs = inw(ioaddr + EPH);
DEBUG(2, "%s: Ethernet protocol handler interrupt, status" pr_debug("%s: Ethernet protocol handler interrupt, status"
" %4.4x.\n", dev->name, ephs); " %4.4x.\n", dev->name, ephs);
/* Could be a counter roll-over warning: update stats. */ /* Could be a counter roll-over warning: update stats. */
card_stats = inw(ioaddr + COUNTER); card_stats = inw(ioaddr + COUNTER);
...@@ -1435,7 +1424,7 @@ static irqreturn_t smc_interrupt(int irq, void *dev_id) ...@@ -1435,7 +1424,7 @@ static irqreturn_t smc_interrupt(int irq, void *dev_id)
ioaddr = dev->base_addr; ioaddr = dev->base_addr;
DEBUG(3, "%s: SMC91c92 interrupt %d at %#x.\n", dev->name, pr_debug("%s: SMC91c92 interrupt %d at %#x.\n", dev->name,
irq, ioaddr); irq, ioaddr);
spin_lock(&smc->lock); spin_lock(&smc->lock);
...@@ -1444,7 +1433,7 @@ static irqreturn_t smc_interrupt(int irq, void *dev_id) ...@@ -1444,7 +1433,7 @@ static irqreturn_t smc_interrupt(int irq, void *dev_id)
if ((saved_bank & 0xff00) != 0x3300) { if ((saved_bank & 0xff00) != 0x3300) {
/* The device does not exist -- the card could be off-line, or /* The device does not exist -- the card could be off-line, or
maybe it has been ejected. */ maybe it has been ejected. */
DEBUG(1, "%s: SMC91c92 interrupt %d for non-existent" pr_debug("%s: SMC91c92 interrupt %d for non-existent"
"/ejected device.\n", dev->name, irq); "/ejected device.\n", dev->name, irq);
handled = 0; handled = 0;
goto irq_done; goto irq_done;
...@@ -1458,7 +1447,7 @@ static irqreturn_t smc_interrupt(int irq, void *dev_id) ...@@ -1458,7 +1447,7 @@ static irqreturn_t smc_interrupt(int irq, void *dev_id)
do { /* read the status flag, and mask it */ do { /* read the status flag, and mask it */
status = inw(ioaddr + INTERRUPT) & 0xff; status = inw(ioaddr + INTERRUPT) & 0xff;
DEBUG(3, "%s: Status is %#2.2x (mask %#2.2x).\n", dev->name, pr_debug("%s: Status is %#2.2x (mask %#2.2x).\n", dev->name,
status, mask); status, mask);
if ((status & mask) == 0) { if ((status & mask) == 0) {
if (bogus_cnt == INTR_WORK) if (bogus_cnt == INTR_WORK)
...@@ -1503,7 +1492,7 @@ static irqreturn_t smc_interrupt(int irq, void *dev_id) ...@@ -1503,7 +1492,7 @@ static irqreturn_t smc_interrupt(int irq, void *dev_id)
smc_eph_irq(dev); smc_eph_irq(dev);
} while (--bogus_cnt); } while (--bogus_cnt);
DEBUG(3, " Restoring saved registers mask %2.2x bank %4.4x" pr_debug(" Restoring saved registers mask %2.2x bank %4.4x"
" pointer %4.4x.\n", mask, saved_bank, saved_pointer); " pointer %4.4x.\n", mask, saved_bank, saved_pointer);
/* restore state register */ /* restore state register */
...@@ -1511,7 +1500,7 @@ static irqreturn_t smc_interrupt(int irq, void *dev_id) ...@@ -1511,7 +1500,7 @@ static irqreturn_t smc_interrupt(int irq, void *dev_id)
outw(saved_pointer, ioaddr + POINTER); outw(saved_pointer, ioaddr + POINTER);
SMC_SELECT_BANK(saved_bank); SMC_SELECT_BANK(saved_bank);
DEBUG(3, "%s: Exiting interrupt IRQ%d.\n", dev->name, irq); pr_debug("%s: Exiting interrupt IRQ%d.\n", dev->name, irq);
irq_done: irq_done:
...@@ -1562,7 +1551,7 @@ static void smc_rx(struct net_device *dev) ...@@ -1562,7 +1551,7 @@ static void smc_rx(struct net_device *dev)
rx_status = inw(ioaddr + DATA_1); rx_status = inw(ioaddr + DATA_1);
packet_length = inw(ioaddr + DATA_1) & 0x07ff; packet_length = inw(ioaddr + DATA_1) & 0x07ff;
DEBUG(2, "%s: Receive status %4.4x length %d.\n", pr_debug("%s: Receive status %4.4x length %d.\n",
dev->name, rx_status, packet_length); dev->name, rx_status, packet_length);
if (!(rx_status & RS_ERRORS)) { if (!(rx_status & RS_ERRORS)) {
...@@ -1573,7 +1562,7 @@ static void smc_rx(struct net_device *dev) ...@@ -1573,7 +1562,7 @@ static void smc_rx(struct net_device *dev)
skb = dev_alloc_skb(packet_length+2); skb = dev_alloc_skb(packet_length+2);
if (skb == NULL) { if (skb == NULL) {
DEBUG(1, "%s: Low memory, packet dropped.\n", dev->name); pr_debug("%s: Low memory, packet dropped.\n", dev->name);
dev->stats.rx_dropped++; dev->stats.rx_dropped++;
outw(MC_RELEASE, ioaddr + MMU_CMD); outw(MC_RELEASE, ioaddr + MMU_CMD);
return; return;
...@@ -1733,7 +1722,7 @@ static void smc_reset(struct net_device *dev) ...@@ -1733,7 +1722,7 @@ static void smc_reset(struct net_device *dev)
struct smc_private *smc = netdev_priv(dev); struct smc_private *smc = netdev_priv(dev);
int i; int i;
DEBUG(0, "%s: smc91c92 reset called.\n", dev->name); pr_debug("%s: smc91c92 reset called.\n", dev->name);
/* The first interaction must be a write to bring the chip out /* The first interaction must be a write to bring the chip out
of sleep mode. */ of sleep mode. */
...@@ -2050,18 +2039,6 @@ static u32 smc_get_link(struct net_device *dev) ...@@ -2050,18 +2039,6 @@ static u32 smc_get_link(struct net_device *dev)
return ret; return ret;
} }
#ifdef PCMCIA_DEBUG
static u32 smc_get_msglevel(struct net_device *dev)
{
return pc_debug;
}
static void smc_set_msglevel(struct net_device *dev, u32 val)
{
pc_debug = val;
}
#endif
static int smc_nway_reset(struct net_device *dev) static int smc_nway_reset(struct net_device *dev)
{ {
struct smc_private *smc = netdev_priv(dev); struct smc_private *smc = netdev_priv(dev);
...@@ -2085,10 +2062,6 @@ static const struct ethtool_ops ethtool_ops = { ...@@ -2085,10 +2062,6 @@ static const struct ethtool_ops ethtool_ops = {
.get_settings = smc_get_settings, .get_settings = smc_get_settings,
.set_settings = smc_set_settings, .set_settings = smc_set_settings,
.get_link = smc_get_link, .get_link = smc_get_link,
#ifdef PCMCIA_DEBUG
.get_msglevel = smc_get_msglevel,
.set_msglevel = smc_set_msglevel,
#endif
.nway_reset = smc_nway_reset, .nway_reset = smc_nway_reset,
}; };
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment