for (i = 0; i < 10; i++)
mdelay(500);
#ifdef DEBUG_VERBOSE
- printk(KERN_INFO "GEM: phy register dump, start from 0, four in a row.");
+ dev_dbg(&lp->pdev->dev,
+ "phy register dump, start from 0, four in a row.");
for (i = 0; i <= 30; i++) {
if (!(i%4))
- printk("\n %02d: ", i);
+ dev_dbg(&lp->pdev->dev, "\n %02d: ", i);
regval = xemacps_mdio_read(lp->mii_bus, lp->phy_dev->addr, i);
- printk(" 0x%08x", regval);
+ dev_dbg(&lp->pdev->dev, " 0x%08x", regval);
}
- printk("\n");
+ dev_dbg(&lp->pdev->dev, "\n");
#endif
}
spin_unlock_irqrestore(&lp->lock, flags);
if (status_change) {
- if (phydev->link) {
- printk(KERN_INFO "%s: link up (%d/%s)\n",
- ndev->name, phydev->speed,
+ if (phydev->link)
+ dev_info(&lp->pdev->dev, "link up (%d/%s)\n",
+ phydev->speed,
DUPLEX_FULL == phydev->duplex ?
"FULL" : "HALF");
- } else {
- printk(KERN_INFO "%s: link down\n", ndev->name);
- }
+ else
+ dev_info(&lp->pdev->dev, "link down\n");
}
}
PHY_INTERFACE_MODE_RGMII_ID);
}
if (!phydev) {
- printk(KERN_ERR "%s: no PHY found\n", ndev->name);
+ dev_err(&lp->pdev->dev, "%s: no PHY found\n", ndev->name);
return -1;
}
-#ifdef DEBUG
- printk(KERN_INFO "GEM: phydev %p, phydev->phy_id 0x%x, phydev->addr 0x%x\n",
+ dev_dbg(&lp->pdev->dev,
+ "GEM: phydev %p, phydev->phy_id 0x%x, phydev->addr 0x%x\n",
phydev, phydev->phy_id, phydev->addr);
-#endif
+
phydev->supported &= (PHY_GBIT_FEATURES | SUPPORTED_Pause |
SUPPORTED_Asym_Pause);
phydev->advertising = phydev->supported;
else
xemacps_phy_init(lp->ndev);
-#ifdef DEBUG
- printk(KERN_INFO "%s, phy_addr 0x%x, phy_id 0x%08x\n",
- ndev->name, lp->phy_dev->addr, lp->phy_dev->phy_id);
+ dev_dbg(&lp->pdev->dev, "phy_addr 0x%x, phy_id 0x%08x\n",
+ lp->phy_dev->addr, lp->phy_dev->phy_id);
- printk(KERN_INFO "%s, attach [%s] phy driver\n", ndev->name,
+ dev_dbg(&lp->pdev->dev, "attach [%s] phy driver\n",
lp->phy_dev->drv->name);
-#endif
return 0;
}
} else {
dev_info(&lp->pdev->dev, "invalid address, use assigned\n");
random_ether_addr(lp->ndev->dev_addr);
- printk(KERN_INFO "MAC updated %02x:%02x:%02x:%02x:%02x:%02x\n",
- lp->ndev->dev_addr[0], lp->ndev->dev_addr[1],
- lp->ndev->dev_addr[2], lp->ndev->dev_addr[3],
- lp->ndev->dev_addr[4], lp->ndev->dev_addr[5]);
+ dev_info(&lp->pdev->dev,
+ "MAC updated %02x:%02x:%02x:%02x:%02x:%02x\n",
+ lp->ndev->dev_addr[0], lp->ndev->dev_addr[1],
+ lp->ndev->dev_addr[2], lp->ndev->dev_addr[3],
+ lp->ndev->dev_addr[4], lp->ndev->dev_addr[5]);
}
}
#ifdef DEBUG
regvall = xemacps_read(lp->baseaddr, XEMACPS_LADDR1L_OFFSET);
regvalh = xemacps_read(lp->baseaddr, XEMACPS_LADDR1H_OFFSET);
- printk(KERN_INFO "GEM: MAC 0x%08x, 0x%08x, %02x:%02x:%02x:%02x:%02x:%02x\n",
+ dev_dbg(&lp->pdev->dev,
+ "MAC 0x%08x, 0x%08x, %02x:%02x:%02x:%02x:%02x:%02x\n",
regvall, regvalh,
(regvall & 0xff), ((regvall >> 8) & 0xff),
((regvall >> 16) & 0xff), (regvall >> 24),
unsigned regval;
struct xemacps_bd *bd;
- printk(KERN_INFO "freehead %p prehead %p hwhead %p \
- hwtail %p posthead %p\n", ring->freehead, ring->prehead,
- ring->hwhead, ring->hwtail, ring->posthead);
- printk(KERN_INFO "freecnt %d hwcnt %d precnt %d \
- postcnt %d allcnt %d\n",
- ring->freecnt, ring->hwcnt, ring->precnt,
- ring->postcnt, ring->allcnt);
+ pr_info("freehead %p prehead %p hwhead %p hwtail %p posthead %p\n",
+ ring->freehead, ring->prehead, ring->hwhead,
+ ring->hwtail, ring->posthead);
+ pr_info("freecnt %d hwcnt %d precnt %d postcnt %d allcnt %d\n",
+ ring->freecnt, ring->hwcnt, ring->precnt,
+ ring->postcnt, ring->allcnt);
bd = (struct xemacps_bd *)ring->firstbdaddr;
for (i = 0; i < XEMACPS_RECV_BD_CNT; i++) {
regval = xemacps_read(bd, XEMACPS_BD_ADDR_OFFSET);
- printk(KERN_INFO "BD %p: ADDR: 0x%08x\n", bd, regval);
+ pr_info("BD %p: ADDR: 0x%08x\n", bd, regval);
regval = xemacps_read(bd, XEMACPS_BD_STAT_OFFSET);
- printk(KERN_INFO "BD %p: STAT: 0x%08x\n", bd, regval);
+ pr_info("BD %p: STAT: 0x%08x\n", bd, regval);
bd++;
}
}
return 0;
/* Make sure we are in sync with xemacps_bdringfromhw() */
- if ((ringptr->postcnt < numbd) || (ringptr->posthead != bdptr)) {
- printk(KERN_ERR "GEM: Improper bdringfree()\n");
+ if ((ringptr->postcnt < numbd) || (ringptr->posthead != bdptr))
return -ENOSPC;
- }
/* Update pointers and counters */
ringptr->freecnt += numbd;
result = xemacps_bdringalloc(rxringptr, 1, &bdptr);
if (result) {
- printk(KERN_ERR "%s RX bdringalloc() error.\n",
- lp->ndev->name);
+ dev_err(&lp->pdev->dev, "RX bdringalloc() error.\n");
break;
}
*/
result = xemacps_bdringtohw(rxringptr, 1, bdptr);
if (result) {
- printk(KERN_ERR "%s: bdringtohw unsuccessful (%d)\n",
- ndev->name, result);
+ dev_err(&lp->pdev->dev,
+ "bdringtohw unsuccessful (%d)\n",
+ result);
break;
}
}
bdptrfree = bdptr;
#ifdef DEBUG_VERBOSE
- printk(KERN_INFO "GEM: %s: numbd %d\n",
- __func__, numbd);
+ dev_dbg(&lp->pdev->dev, "%s: numbd %d\n", __func__, numbd);
#endif
while (numbd) {
regval = xemacps_read(bdptr, XEMACPS_BD_STAT_OFFSET);
#ifdef DEBUG_VERBOSE
- printk(KERN_INFO "GEM: %s: RX BD index %d, BDptr %p, BD_STAT 0x%08x\n",
+ dev_dbg(&lp->pdev->dev,
+ "%s: RX BD index %d, BDptr %p, BD_STAT 0x%08x\n",
__func__, bdidx, bdptr, regval);
#endif
/* look for start of packet */
if (!(regval & XEMACPS_RXBUF_SOF_MASK) ||
!(regval & XEMACPS_RXBUF_EOF_MASK)) {
- printk(KERN_INFO "GEM: %s: SOF and EOF not set (0x%08x) BD %p\n",
+ dev_info(&lp->pdev->dev,
+ "%s: SOF and EOF not set (0x%08x) BD %p\n",
__func__, regval, bdptr);
return 0;
}
/* Make used BDs available */
rc = xemacps_bdringfree(&lp->rx_ring, numbdfree, bdptrfree);
if (rc)
- printk(KERN_ERR "%s RX bdringfree() error.\n", lp->ndev->name);
+ dev_err(&lp->pdev->dev, "RX bdringfree() error.\n");
/* Refill RX buffers */
xemacps_DmaSetupRecvBuffers(lp->ndev);
if (regval & (XEMACPS_TXSR_URUN_MASK | XEMACPS_TXSR_RXOVR_MASK |
XEMACPS_TXSR_HRESPNOK_MASK | XEMACPS_TXSR_COL1000_MASK |
XEMACPS_TXSR_BUFEXH_MASK)) {
- printk(KERN_ERR "%s: TX ERROR 0x%x\n",
- ndev->name, regval);
+ dev_err(&lp->pdev->dev, "TX ERROR 0x%x\n", regval);
lp->stats.tx_errors++;
}
rp->skb = NULL;
dev_kfree_skb_irq(skb);
#ifdef DEBUG_VERBOSE_TX
- printk(KERN_INFO "GEM: TX bd index %d BD_STAT 0x%08x after sent.\n",
- bdidx, regval);
+ dev_dbg(&lp->pdev->dev,
+ "TX bd index %d BD_STAT 0x%08x after sent.\n",
+ bdidx, regval);
#endif
/* log tx completed packets and bytes, errors logs
* are in other error counters.
rc = xemacps_bdringfree(&lp->tx_ring, numbdfree, bdptrfree);
if (rc)
- printk(KERN_ERR "%s TX bdringfree() error.\n", ndev->name);
+ dev_err(&lp->pdev->dev, "TX bdringfree() error.\n");
tx_poll_out:
if (netif_queue_stopped(ndev))
dev_dbg(&lp->pdev->dev, "TX ring %d bytes at 0x%x mapped %p\n",
size, lp->tx_bd_dma, lp->tx_bd);
-#ifdef DEBUG
- printk(KERN_INFO "GEM: lp->tx_bd %p lp->tx_bd_dma %p lp->tx_skb %p\n",
+ dev_dbg(&lp->pdev->dev, "lp->tx_bd %p lp->tx_bd_dma %p lp->tx_skb %p\n",
lp->tx_bd, (void *)lp->tx_bd_dma, lp->tx_skb);
- printk(KERN_INFO "GEM: lp->rx_bd %p lp->rx_bd_dma %p lp->rx_skb %p\n",
+ dev_dbg(&lp->pdev->dev, "lp->rx_bd %p lp->rx_bd_dma %p lp->rx_skb %p\n",
lp->rx_bd, (void *)lp->rx_bd_dma, lp->rx_skb);
-#endif
+
return 0;
err_out:
rc = xemacps_descriptor_init(lp);
if (rc) {
- printk(KERN_ERR "%s Unable to allocate DMA memory, rc %d\n",
- ndev->name, rc);
+ dev_err(&lp->pdev->dev,
+ "Unable to allocate DMA memory, rc %d\n", rc);
return rc;
}
rc = pm_runtime_get(&lp->pdev->dev);
if (rc < 0) {
- dev_err(&lp->pdev->dev,
- "%s pm_runtime_get() failed, rc %d\n", ndev->name, rc);
+ dev_err(&lp->pdev->dev, "pm_runtime_get() failed, rc %d\n", rc);
goto err_free_rings;
}
rc = xemacps_setup_ring(lp);
if (rc) {
- printk(KERN_ERR "%s Unable to setup BD rings, rc %d\n",
- ndev->name, rc);
+ dev_err(&lp->pdev->dev, "Unable to setup BD rings, rc %d\n",
+ rc);
goto err_pm_put;
}
napi_enable(&lp->napi);
rc = xemacps_mii_probe(ndev);
if (rc != 0) {
- printk(KERN_ERR "%s mii_probe fail.\n", lp->mii_bus->name);
+ dev_err(&lp->pdev->dev, "%s mii_probe fail.\n",
+ lp->mii_bus->name);
if (rc == (-2)) {
mdiobus_unregister(lp->mii_bus);
kfree(lp->mii_bus->irq);
struct net_local *lp = netdev_priv(ndev);
int rc;
- printk(KERN_ERR "%s transmit timeout %lu ms, reseting...\n",
- ndev->name, TX_TIMEOUT * 1000UL / HZ);
+ dev_err(&lp->pdev->dev, "transmit timeout %lu ms, reseting...\n",
+ TX_TIMEOUT * 1000UL / HZ);
netif_stop_queue(ndev);
spin_lock(&lp->lock);
phy_stop(lp->phy_dev);
rc = xemacps_descriptor_init(lp);
if (rc) {
- printk(KERN_ERR "%s Unable to allocate DMA memory, rc %d\n",
- ndev->name, rc);
+ dev_err(&lp->pdev->dev,
+ "Unable to allocate DMA memory, rc %d\n", rc);
spin_unlock(&lp->lock);
return;
}
rc = xemacps_setup_ring(lp);
if (rc) {
- printk(KERN_ERR "%s Unable to setup BD rings, rc %d\n",
- ndev->name, rc);
+ dev_err(&lp->pdev->dev, "Unable to setup BD rings, rc %d\n",
+ rc);
spin_unlock(&lp->lock);
return;
}
if (!is_valid_ether_addr(hwaddr->sa_data))
return -EADDRNOTAVAIL;
-#ifdef DEBUG
- printk(KERN_INFO "GEM: hwaddr 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x\n",
+
+ dev_dbg(&lp->pdev->dev, "hwaddr 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x\n",
hwaddr->sa_data[0], hwaddr->sa_data[1], hwaddr->sa_data[2],
hwaddr->sa_data[3], hwaddr->sa_data[4], hwaddr->sa_data[5]);
-#endif
+
memcpy(ndev->dev_addr, hwaddr->sa_data, ndev->addr_len);
xemacps_set_hwaddr(lp);
skb_frag_t *frag;
#ifdef DEBUG_VERBOSE_TX
- printk(KERN_INFO "%s: TX data:", __func__);
+ dev_dbg(&lp->pdev->dev, "%s: TX data:", __func__);
for (i = 0; i < 48; i++) {
if (!(i % 16))
- printk("\n");
- printk(KERN_INFO " %02x", (unsigned int)skb->data[i]);
+ dev_dbg(&lp->pdev->dev, "\n");
+ dev_dbg(&lp->pdev->dev, " %02x", (unsigned int)skb->data[i]);
}
- printk("\n");
+ dev_dbg(&lp->pdev->dev, "\n");
#endif
nr_frags = skb_shinfo(skb)->nr_frags + 1;
bdptrs = bdptr;
#ifdef DEBUG_VERBOSE_TX
- printk(KERN_INFO "GEM: TX nr_frags %d, skb->len 0x%x, skb_headlen(skb) 0x%x\n",
+ dev_dbg(&lp->pdev->dev,
+ "TX nr_frags %d, skb->len 0x%x, skb_headlen(skb) 0x%x\n",
nr_frags, skb->len, skb_headlen(skb));
#endif
xemacps_write(bdptr, XEMACPS_BD_STAT_OFFSET, regval);
#ifdef DEBUG_VERBOSE_TX
- printk(KERN_INFO "GEM: TX BD index %d, BDptr %p, BD_STAT 0x%08x\n",
- bdidx, bdptr, regval);
+ dev_dbg(&lp->pdev->dev,
+ "TX BD index %d, BDptr %p, BD_STAT 0x%08x\n",
+ bdidx, bdptr, regval);
#endif
bdptr = XEMACPS_BDRING_NEXT(&lp->tx_ring, bdptr);
}
dev_kfree_skb(skb);
lp->stats.tx_dropped++;
xemacps_bdringunalloc(&lp->tx_ring, nr_frags, bdptrs);
- printk(KERN_ERR "%s can not send, commit TX buffer desc\n",
- ndev->name);
+ dev_err(&lp->pdev->dev, "cannot send, commit TX buffer desc\n");
spin_unlock_irq(&lp->lock);
return rc;
} else {
hash_index = calc_mac_hash(mc_addr);
if (hash_index >= XEMACPS_MAX_HASH_BITS) {
- printk(KERN_ERR "hash calculation out of range %d\n",
- hash_index);
+ dev_err(&lp->pdev->dev,
+ "hash calculation out of range %d\n",
+ hash_index);
break;
}
if (hash_index < 32)
u32 regval;
if (netif_running(ndev)) {
- printk(KERN_ERR
- "%s: Please stop netif before apply configruation\n",
- ndev->name);
+ dev_err(&lp->pdev->dev,
+ "Please stop netif before apply configruation\n");
return -EFAULT;
}
return xemacps_hwtstamp_ioctl(ndev, rq, cmd);
#endif
default:
- printk(KERN_INFO "GEM: ioctl %d not implemented.\n", cmd);
+ dev_info(&lp->pdev->dev, "ioctl %d not implemented.\n", cmd);
return -EOPNOTSUPP;
}
rc = -ENOMEM;
goto err_out_free_netdev;
}
-#ifdef DEBUG
- printk(KERN_INFO "GEM: BASEADDRESS hw: %p virt: %p\n",
+
+ dev_dbg(&lp->pdev->dev, "BASEADDRESS hw: %p virt: %p\n",
(void *)r_mem->start, lp->baseaddr);
-#endif
ndev->irq = platform_get_irq(pdev, 0);
rc = request_irq(ndev->irq, xemacps_interrupt, 0,
ndev->name, ndev);
if (rc) {
- printk(KERN_ERR "%s: Unable to request IRQ %p, error %d\n",
- ndev->name, r_irq, rc);
+ dev_err(&lp->pdev->dev, "Unable to request IRQ %p, error %d\n",
+ r_irq, rc);
goto err_out_iounmap;
}
rc = xemacps_mii_init(lp);
if (rc) {
- printk(KERN_ERR "%s: error in xemacps_mii_init\n", ndev->name);
+ dev_err(&lp->pdev->dev, "error in xemacps_mii_init\n");
goto err_out_unregister_clk_notifier;
}
pm_runtime_set_active(&pdev->dev);
pm_runtime_enable(&pdev->dev);
- printk(KERN_INFO "%s, pdev->id %d, baseaddr 0x%08lx, irq %d\n",
- ndev->name, pdev->id, ndev->base_addr, ndev->irq);
+ dev_info(&lp->pdev->dev, "pdev->id %d, baseaddr 0x%08lx, irq %d\n",
+ pdev->id, ndev->base_addr, ndev->irq);
return 0;