if (!priv->tx)
goto err_cleanup;
+ memset(priv->tx, 0, NUM_TX_DESC * sizeof(struct ramips_tx_dma));
for (i = 0; i < NUM_TX_DESC; i++) {
- memset(&priv->tx[i], 0, sizeof(struct ramips_tx_dma));
priv->tx[i].txd2 |= TX_DMA_LSO | TX_DMA_DONE;
priv->tx[i].txd4 &= (TX_DMA_QN_MASK | TX_DMA_PN_MASK);
priv->tx[i].txd4 |= TX_DMA_QN(3) | TX_DMA_PN(1);
memcpy(dev->dev_addr, ((struct sockaddr*)priv)->sa_data, dev->addr_len);
ramips_fe_wr((mac[0] << 8) | mac[1], RAMIPS_GDMA1_MAC_ADRH);
- ramips_fe_wr(RAMIPS_GDMA1_MAC_ADRL,
- (mac[2] << 24) | (mac[3] << 16) | (mac[4] << 8) | mac[5]);
+ ramips_fe_wr((mac[2] << 24) | (mac[3] << 16) | (mac[4] << 8) | mac[5],
+ RAMIPS_GDMA1_MAC_ADRL);
return 0;
}
{
struct raeth_priv *priv = netdev_priv(dev);
- ramips_fe_wr(RAMIPS_PDMA_GLO_CFG, ramips_fe_rr(RAMIPS_PDMA_GLO_CFG) &
- ~(RAMIPS_TX_WB_DDONE | RAMIPS_RX_DMA_EN | RAMIPS_TX_DMA_EN));
+ ramips_fe_wr(ramips_fe_rr(RAMIPS_PDMA_GLO_CFG) &
+ ~(RAMIPS_TX_WB_DDONE | RAMIPS_RX_DMA_EN | RAMIPS_TX_DMA_EN),
+ RAMIPS_PDMA_GLO_CFG);
free_irq(dev->irq, dev);
netif_stop_queue(dev);
tasklet_kill(&priv->tx_housekeeping_tasklet);