Merge master.kernel.org:/home/rmk/linux-2.6-arm
This commit is contained in:
Коммит
c77054e518
|
@ -20,6 +20,11 @@
|
||||||
*/
|
*/
|
||||||
.align 5
|
.align 5
|
||||||
ENTRY(v6_early_abort)
|
ENTRY(v6_early_abort)
|
||||||
|
#ifdef CONFIG_CPU_MPCORE
|
||||||
|
clrex
|
||||||
|
#else
|
||||||
|
strex r0, r1, [sp] @ Clear the exclusive monitor
|
||||||
|
#endif
|
||||||
mrc p15, 0, r1, c5, c0, 0 @ get FSR
|
mrc p15, 0, r1, c5, c0, 0 @ get FSR
|
||||||
mrc p15, 0, r0, c6, c0, 0 @ get FAR
|
mrc p15, 0, r0, c6, c0, 0 @ get FAR
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -15,16 +15,13 @@
|
||||||
*/
|
*/
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
#include <linux/fcntl.h>
|
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
#include <linux/ioport.h>
|
#include <linux/ioport.h>
|
||||||
#include <linux/in.h>
|
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
#include <linux/string.h>
|
#include <linux/string.h>
|
||||||
#include <linux/errno.h>
|
#include <linux/errno.h>
|
||||||
#include <linux/netdevice.h>
|
#include <linux/netdevice.h>
|
||||||
#include <linux/etherdevice.h>
|
#include <linux/etherdevice.h>
|
||||||
#include <linux/skbuff.h>
|
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/crc32.h>
|
#include <linux/crc32.h>
|
||||||
|
@ -33,7 +30,6 @@
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
#include <asm/irq.h>
|
#include <asm/irq.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/dma.h>
|
|
||||||
|
|
||||||
#define TX_BUFFERS 15
|
#define TX_BUFFERS 15
|
||||||
#define RX_BUFFERS 25
|
#define RX_BUFFERS 25
|
||||||
|
@ -85,7 +81,7 @@ static inline unsigned short read_ireg(u_long base_addr, u_int reg)
|
||||||
u_short v;
|
u_short v;
|
||||||
__asm__(
|
__asm__(
|
||||||
"str%?h %1, [%2] @ NAT_RAP\n\t"
|
"str%?h %1, [%2] @ NAT_RAP\n\t"
|
||||||
"str%?h %0, [%2, #8] @ NET_IDP\n\t"
|
"ldr%?h %0, [%2, #8] @ NET_IDP\n\t"
|
||||||
: "=r" (v)
|
: "=r" (v)
|
||||||
: "r" (reg), "r" (ISAIO_BASE + 0x0464));
|
: "r" (reg), "r" (ISAIO_BASE + 0x0464));
|
||||||
return v;
|
return v;
|
||||||
|
@ -288,7 +284,7 @@ static void am79c961_timer(unsigned long data)
|
||||||
else if (!lnkstat && carrier)
|
else if (!lnkstat && carrier)
|
||||||
netif_carrier_off(dev);
|
netif_carrier_off(dev);
|
||||||
|
|
||||||
mod_timer(&priv->timer, jiffies + 5*HZ);
|
mod_timer(&priv->timer, jiffies + msecs_to_jiffies(500));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -709,13 +705,9 @@ static int __init am79c961_init(void)
|
||||||
goto release;
|
goto release;
|
||||||
|
|
||||||
am79c961_banner();
|
am79c961_banner();
|
||||||
printk(KERN_INFO "%s: ether address ", dev->name);
|
|
||||||
|
|
||||||
/* Retrive and print the ethernet address. */
|
for (i = 0; i < 6; i++)
|
||||||
for (i = 0; i < 6; i++) {
|
|
||||||
dev->dev_addr[i] = inb(dev->base_addr + i * 2) & 0xff;
|
dev->dev_addr[i] = inb(dev->base_addr + i * 2) & 0xff;
|
||||||
printk (i == 5 ? "%02x\n" : "%02x:", dev->dev_addr[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
spin_lock_init(&priv->chip_lock);
|
spin_lock_init(&priv->chip_lock);
|
||||||
init_timer(&priv->timer);
|
init_timer(&priv->timer);
|
||||||
|
@ -736,8 +728,14 @@ static int __init am79c961_init(void)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
ret = register_netdev(dev);
|
ret = register_netdev(dev);
|
||||||
if (ret == 0)
|
if (ret == 0) {
|
||||||
|
printk(KERN_INFO "%s: ether address ", dev->name);
|
||||||
|
|
||||||
|
for (i = 0; i < 6; i++)
|
||||||
|
printk (i == 5 ? "%02x\n" : "%02x:", dev->dev_addr[i]);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
release:
|
release:
|
||||||
release_region(dev->base_addr, 0x18);
|
release_region(dev->base_addr, 0x18);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче