|
|
|
@ -142,26 +142,6 @@ struct nuport_mac_priv {
|
|
|
|
|
u32 msg_level;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
void dcache_invalidate_only(unsigned long start, unsigned long end)
|
|
|
|
|
{
|
|
|
|
|
asm("\n"
|
|
|
|
|
" bic r0, r0, #31\n"
|
|
|
|
|
"1: mcr p15, 0, r0, c7, c6, 1\n"
|
|
|
|
|
" add r0, r0, #32\n"
|
|
|
|
|
" cmp r0, r1\n" " blo 1b\n");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void dcache_clean_range(unsigned long start, unsigned long end)
|
|
|
|
|
{
|
|
|
|
|
asm("\n"
|
|
|
|
|
" bic r0, r0, #31\n"
|
|
|
|
|
"1: mcr p15, 0, r0, c7, c10, 1 @ clean D entry\n"
|
|
|
|
|
" add r0, r0, #32\n"
|
|
|
|
|
" cmp r0, r1\n"
|
|
|
|
|
" blo 1b\n" \
|
|
|
|
|
" mcr p15, 0, r0, c7, c10, 4 @ drain WB\n");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static inline int nuport_mac_mii_busy_wait(struct nuport_mac_priv *priv)
|
|
|
|
|
{
|
|
|
|
|
unsigned long curr;
|
|
|
|
@ -533,8 +513,6 @@ static int nuport_mac_rx(struct net_device *dev, int limit)
|
|
|
|
|
while (count < limit && !priv->irq_rxskb[priv->cur_rx]) {
|
|
|
|
|
skb = priv->rx_skb[priv->cur_rx];
|
|
|
|
|
len = priv->pkt_len[priv->cur_rx];
|
|
|
|
|
dcache_invalidate_only(((u32) skb->data),
|
|
|
|
|
((u32) (skb->data + len + 4)));
|
|
|
|
|
|
|
|
|
|
/* Remove 2 bytes added by RX buffer shifting */
|
|
|
|
|
len = len - 2;
|
|
|
|
|