|
@@ -48,21 +48,15 @@ static void nps_enet_read_rx_fifo(struct net_device *ndev,
|
|
|
*reg = nps_enet_reg_get(priv, NPS_ENET_REG_RX_BUF);
|
|
|
else { /* !dst_is_aligned */
|
|
|
for (i = 0; i < len; i++, reg++) {
|
|
|
- u32 buf =
|
|
|
- nps_enet_reg_get(priv, NPS_ENET_REG_RX_BUF);
|
|
|
-
|
|
|
- /* to accommodate word-unaligned address of "reg"
|
|
|
- * we have to do memcpy_toio() instead of simple "=".
|
|
|
- */
|
|
|
- memcpy_toio((void __iomem *)reg, &buf, sizeof(buf));
|
|
|
+ u32 buf = nps_enet_reg_get(priv, NPS_ENET_REG_RX_BUF);
|
|
|
+ put_unaligned(buf, reg);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/* copy last bytes (if any) */
|
|
|
if (last) {
|
|
|
u32 buf = nps_enet_reg_get(priv, NPS_ENET_REG_RX_BUF);
|
|
|
-
|
|
|
- memcpy_toio((void __iomem *)reg, &buf, last);
|
|
|
+ memcpy((u8*)reg, &buf, last);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -367,7 +361,7 @@ static void nps_enet_send_frame(struct net_device *ndev,
|
|
|
struct nps_enet_tx_ctl tx_ctrl;
|
|
|
short length = skb->len;
|
|
|
u32 i, len = DIV_ROUND_UP(length, sizeof(u32));
|
|
|
- u32 *src = (u32 *)virt_to_phys(skb->data);
|
|
|
+ u32 *src = (void *)skb->data;
|
|
|
bool src_is_aligned = IS_ALIGNED((unsigned long)src, sizeof(u32));
|
|
|
|
|
|
tx_ctrl.value = 0;
|
|
@@ -375,17 +369,11 @@ static void nps_enet_send_frame(struct net_device *ndev,
|
|
|
if (src_is_aligned)
|
|
|
for (i = 0; i < len; i++, src++)
|
|
|
nps_enet_reg_set(priv, NPS_ENET_REG_TX_BUF, *src);
|
|
|
- else { /* !src_is_aligned */
|
|
|
- for (i = 0; i < len; i++, src++) {
|
|
|
- u32 buf;
|
|
|
-
|
|
|
- /* to accommodate word-unaligned address of "src"
|
|
|
- * we have to do memcpy_fromio() instead of simple "="
|
|
|
- */
|
|
|
- memcpy_fromio(&buf, (void __iomem *)src, sizeof(buf));
|
|
|
- nps_enet_reg_set(priv, NPS_ENET_REG_TX_BUF, buf);
|
|
|
- }
|
|
|
- }
|
|
|
+ else /* !src_is_aligned */
|
|
|
+ for (i = 0; i < len; i++, src++)
|
|
|
+ nps_enet_reg_set(priv, NPS_ENET_REG_TX_BUF,
|
|
|
+ get_unaligned(src));
|
|
|
+
|
|
|
/* Write the length of the Frame */
|
|
|
tx_ctrl.nt = length;
|
|
|
|