Commit bc6d4520 authored by Linus Torvalds's avatar Linus Torvalds

Merge bk://kernel.bkbits.net/davem/net-2.5

into home.transmeta.com:/home/torvalds/v2.5/linux
parents 947fc42f 4133231a
...@@ -652,6 +652,9 @@ running once the system is up. ...@@ -652,6 +652,9 @@ running once the system is up.
opl3sa2= [HW,OSS] opl3sa2= [HW,OSS]
Format: <io>,<irq>,<dma>,<dma2>,<mss_io>,<mpu_io>,<ymode>,<loopback>[,<isapnp>,<multiple] Format: <io>,<irq>,<dma>,<dma2>,<mss_io>,<mpu_io>,<ymode>,<loopback>[,<isapnp>,<multiple]
oprofile.timer= [HW]
Use timer interrupt instead of performance counters
optcd= [HW,CD] optcd= [HW,CD]
Format: <io> Format: <io>
......
/***************************************************************************/
/*
* pit.c -- Motorola ColdFire PIT timer. Currently this type of
* hardware timer only exists in the Motorola ColdFire
* 5282 CPU.
*
* Copyright (C) 1999-2003, Greg Ungerer (gerg@snapgear.com)
* Copyright (C) 2001-2003, SnapGear Inc. (www.snapgear.com)
*
*/
/***************************************************************************/
#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/param.h>
#include <linux/init.h>
#include <asm/irq.h>
#include <asm/coldfire.h>
#include <asm/mcfpit.h>
#include <asm/mcfsim.h>
/***************************************************************************/
void coldfire_pit_tick(void)
{
volatile struct mcfpit *tp;
/* Reset the ColdFire timer */
tp = (volatile struct mcfpit *) (MCF_IPSBAR + MCFPIT_BASE1);
tp->pcsr |= MCFPIT_PCSR_PIF;
}
/***************************************************************************/
void coldfire_pit_init(void (*handler)(int, void *, struct pt_regs *))
{
volatile unsigned char *icrp;
volatile unsigned long *imrp;
volatile struct mcfpit *tp;
request_irq(64+55, handler, SA_INTERRUPT, "ColdFire Timer", NULL);
icrp = (volatile unsigned char *) (MCF_IPSBAR + MCFICM_INTC0 +
MCFINTC_ICR0 + MCFINT_PIT1);
*icrp = 0x2b; /* PIT1 with level 5, priority 3 */
imrp = (volatile unsigned long *) (MCF_IPSBAR + MCFICM_INTC0 + MCFINTC_IMRH);
*imrp &= ~(1 << (55 - 32));
/* Set up PIT timer 1 as poll clock */
tp = (volatile struct mcfpit *) (MCF_IPSBAR + MCFPIT_BASE1);
tp->pcsr = MCFPIT_PCSR_DISABLE;
tp->pmr = ((MCF_CLK / 2) / 64) / HZ;
tp->pcsr = MCFPIT_PCSR_EN | MCFPIT_PCSR_PIE | MCFPIT_PCSR_OVW |
MCFPIT_PCSR_RLD | MCFPIT_PCSR_CLK64;
}
/***************************************************************************/
unsigned long coldfire_pit_offset(void)
{
volatile struct mcfpit *tp;
volatile unsigned long *ipr;
unsigned long pmr, pcntr, offset;
tp = (volatile struct mcfpit *) (MCF_IPSBAR + MCFPIT_BASE1);
ipr = (volatile unsigned long *) (MCF_IPSBAR + MCFICM_INTC0 + MCFINTC_IPRH);
pmr = tp->pmr;
pcntr = tp->pcntr;
/*
* If we are still in the first half of the upcount and a
* timer interupt is pending, then add on a ticks worth of time.
*/
offset = ((pcntr * (1000000 / HZ)) / pmr);
if ((offset < (1000000 / HZ / 2)) && (*ipr & (1 << (55 - 32))))
offset += 1000000 / HZ;
return offset;
}
/***************************************************************************/
...@@ -16,8 +16,13 @@ ifdef CONFIG_FULLDEBUG ...@@ -16,8 +16,13 @@ ifdef CONFIG_FULLDEBUG
AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1 AFLAGS += -DDEBUGGER_COMPATIBLE_CACHE=1
endif endif
obj-$(CONFIG_COLDFIRE) += entry.o timers.o vectors.o obj-$(CONFIG_COLDFIRE) += entry.o vectors.o
obj-$(CONFIG_M5307) += config.o obj-$(CONFIG_M5206) += timers.o
obj-$(CONFIG_M5206e) += timers.o
obj-$(CONFIG_M5249) += timers.o
obj-$(CONFIG_M5272) += timers.o
obj-$(CONFIG_M5307) += config.o timers.o
obj-$(CONFIG_M5407) += timers.o
ifeq ($(CONFIG_M5307),y) ifeq ($(CONFIG_M5307),y)
extra-y := $(BOARD)/crt0_$(MODEL).o extra-y := $(BOARD)/crt0_$(MODEL).o
......
This diff is collapsed.
...@@ -1870,7 +1870,7 @@ config 68360_ENET ...@@ -1870,7 +1870,7 @@ config 68360_ENET
config FEC config FEC
bool "FEC ethernet controller (of ColdFire 5272)" bool "FEC ethernet controller (of ColdFire 5272)"
depends on M5272 depends on M5272 || M5282
help help
Say Y here if you want to use the built-in 10/100 Fast ethernet Say Y here if you want to use the built-in 10/100 Fast ethernet
controller on the Motorola ColdFire 5272 processor. controller on the Motorola ColdFire 5272 processor.
......
...@@ -11,6 +11,7 @@ endif ...@@ -11,6 +11,7 @@ endif
obj-$(CONFIG_E100) += e100/ obj-$(CONFIG_E100) += e100/
obj-$(CONFIG_E1000) += e1000/ obj-$(CONFIG_E1000) += e1000/
obj-$(CONFIG_IXGB) += ixgb/ obj-$(CONFIG_IXGB) += ixgb/
obj-$(CONFIG_BONDING) += bonding/
# #
# link order important here # link order important here
...@@ -108,7 +109,6 @@ ifeq ($(CONFIG_SLIP_COMPRESSED),y) ...@@ -108,7 +109,6 @@ ifeq ($(CONFIG_SLIP_COMPRESSED),y)
endif endif
obj-$(CONFIG_DUMMY) += dummy.o obj-$(CONFIG_DUMMY) += dummy.o
obj-$(CONFIG_BONDING) += bonding.o
obj-$(CONFIG_DE600) += de600.o obj-$(CONFIG_DE600) += de600.o
obj-$(CONFIG_DE620) += de620.o obj-$(CONFIG_DE620) += de620.o
obj-$(CONFIG_AT1500) += lance.o obj-$(CONFIG_AT1500) += lance.o
......
...@@ -675,37 +675,24 @@ au1000_probe1(struct net_device *dev, long ioaddr, int irq, int port_num) ...@@ -675,37 +675,24 @@ au1000_probe1(struct net_device *dev, long ioaddr, int irq, int port_num)
char *pmac, *argptr; char *pmac, *argptr;
char ethaddr[6]; char ethaddr[6];
if (!request_region(ioaddr, MAC_IOSIZE, "Au1000 ENET")) { if (!request_region(ioaddr, MAC_IOSIZE, "Au1000 ENET"))
return -ENODEV; return -ENODEV;
}
if (version_printed++ == 0) printk(version); if (version_printed++ == 0) printk(version);
if (!dev)
dev = init_etherdev(NULL, sizeof(struct au1000_private));
if (!dev) { if (!dev) {
dev = init_etherdev(0, sizeof(struct au1000_private)); printk (KERN_ERR "au1000 eth: init_etherdev failed\n");
} release_region(ioaddr, MAC_IOSIZE);
if (!dev) { return -ENODEV;
printk (KERN_ERR "au1000 eth: init_etherdev failed\n");
return -ENODEV;
} }
printk("%s: Au1xxx ethernet found at 0x%lx, irq %d\n", printk("%s: Au1xxx ethernet found at 0x%lx, irq %d\n",
dev->name, ioaddr, irq); dev->name, ioaddr, irq);
/* Initialize our private structure */
if (dev->priv == NULL) {
aup = (struct au1000_private *)
kmalloc(sizeof(*aup), GFP_KERNEL);
if (aup == NULL) {
retval = -ENOMEM;
goto free_region;
}
dev->priv = aup;
}
aup = dev->priv; aup = dev->priv;
memset(aup, 0, sizeof(*aup));
/* Allocate the data buffers */ /* Allocate the data buffers */
aup->vaddr = (u32)dma_alloc(MAX_BUF_SIZE * aup->vaddr = (u32)dma_alloc(MAX_BUF_SIZE *
...@@ -834,8 +821,6 @@ au1000_probe1(struct net_device *dev, long ioaddr, int irq, int port_num) ...@@ -834,8 +821,6 @@ au1000_probe1(struct net_device *dev, long ioaddr, int irq, int port_num)
if (aup->vaddr) if (aup->vaddr)
dma_free((void *)aup->vaddr, dma_free((void *)aup->vaddr,
MAX_BUF_SIZE * (NUM_TX_BUFFS+NUM_RX_BUFFS)); MAX_BUF_SIZE * (NUM_TX_BUFFS+NUM_RX_BUFFS));
if (dev->priv != NULL)
kfree(dev->priv);
printk(KERN_ERR "%s: au1000_probe1 failed. Returns %d\n", printk(KERN_ERR "%s: au1000_probe1 failed. Returns %d\n",
dev->name, retval); dev->name, retval);
kfree(dev); kfree(dev);
...@@ -1003,15 +988,15 @@ static int au1000_close(struct net_device *dev) ...@@ -1003,15 +988,15 @@ static int au1000_close(struct net_device *dev)
spin_lock_irqsave(&aup->lock, flags); spin_lock_irqsave(&aup->lock, flags);
/* stop the device */ /* stop the device */
if (netif_device_present(dev)) { if (netif_device_present(dev))
netif_stop_queue(dev); netif_stop_queue(dev);
}
/* disable the interrupt */ /* disable the interrupt */
free_irq(dev->irq, dev); free_irq(dev->irq, dev);
spin_unlock_irqrestore(&aup->lock, flags); spin_unlock_irqrestore(&aup->lock, flags);
reset_mac(dev); reset_mac(dev);
kfree(dev);
MOD_DEC_USE_COUNT; MOD_DEC_USE_COUNT;
return 0; return 0;
} }
......
...@@ -1407,7 +1407,6 @@ static void __init bmac_probe1(struct device_node *bmac, int is_bmac_plus) ...@@ -1407,7 +1407,6 @@ static void __init bmac_probe1(struct device_node *bmac, int is_bmac_plus)
skb_queue_head_init(bp->queue); skb_queue_head_init(bp->queue);
init_timer(&bp->tx_timeout); init_timer(&bp->tx_timeout);
/* bp->timeout_active = 0; */
ret = request_irq(dev->irq, bmac_misc_intr, 0, "BMAC-misc", dev); ret = request_irq(dev->irq, bmac_misc_intr, 0, "BMAC-misc", dev);
if (ret) { if (ret) {
......
#
# Makefile for the Ethernet Bonding driver
#
obj-$(CONFIG_BONDING) += bonding.o
bonding-objs := bond_main.o bond_3ad.o bond_alb.o
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -385,11 +385,11 @@ ...@@ -385,11 +385,11 @@
#define A_CNF_10B_T 0x0001 #define A_CNF_10B_T 0x0001
#define A_CNF_AUI 0x0002 #define A_CNF_AUI 0x0002
#define A_CNF_10B_2 0x0004 #define A_CNF_10B_2 0x0004
#define A_CNF_MEDIA_TYPE 0x0060 #define A_CNF_MEDIA_TYPE 0x0070
#define A_CNF_MEDIA_AUTO 0x0000 #define A_CNF_MEDIA_AUTO 0x0070
#define A_CNF_MEDIA_10B_T 0x0020 #define A_CNF_MEDIA_10B_T 0x0020
#define A_CNF_MEDIA_AUI 0x0040 #define A_CNF_MEDIA_AUI 0x0040
#define A_CNF_MEDIA_10B_2 0x0060 #define A_CNF_MEDIA_10B_2 0x0010
#define A_CNF_DC_DC_POLARITY 0x0080 #define A_CNF_DC_DC_POLARITY 0x0080
#define A_CNF_NO_AUTO_POLARITY 0x2000 #define A_CNF_NO_AUTO_POLARITY 0x2000
#define A_CNF_LOW_RX_SQUELCH 0x4000 #define A_CNF_LOW_RX_SQUELCH 0x4000
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment