summaryrefslogtreecommitdiffstats
path: root/target/linux/adm5120-2.6/files/drivers
diff options
context:
space:
mode:
authorflorian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73>2007-06-02 23:13:51 +0000
committerflorian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73>2007-06-02 23:13:51 +0000
commit8366dfac71c976acb6d772ec9014026cafab8182 (patch)
tree7e6839d0a0b426439a52199cbc1ecdd54efd8a7a /target/linux/adm5120-2.6/files/drivers
parentc30dde79405b135b38cea530745b66516896b0ea (diff)
IRQ handler rewrite by Gabor Juhos, uses C no longer assembly
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@7464 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/adm5120-2.6/files/drivers')
-rw-r--r--target/linux/adm5120-2.6/files/drivers/net/adm5120sw.c9
-rw-r--r--target/linux/adm5120-2.6/files/drivers/net/adm5120sw.h1
-rw-r--r--target/linux/adm5120-2.6/files/drivers/serial/adm5120_uart.c28
3 files changed, 17 insertions, 21 deletions
diff --git a/target/linux/adm5120-2.6/files/drivers/net/adm5120sw.c b/target/linux/adm5120-2.6/files/drivers/net/adm5120sw.c
index 1391bbe8c..33489e50f 100644
--- a/target/linux/adm5120-2.6/files/drivers/net/adm5120sw.c
+++ b/target/linux/adm5120-2.6/files/drivers/net/adm5120sw.c
@@ -21,6 +21,7 @@
#include "adm5120sw.h"
#include <asm/mach-adm5120/adm5120_info.h>
+#include <asm/mach-adm5120/adm5120_irq.h>
MODULE_AUTHOR("Jeroen Vreeken (pe1rxq@amsat.org)");
MODULE_DESCRIPTION("ADM5120 ethernet switch driver");
@@ -385,7 +386,7 @@ static int __init adm5120_sw_init(void)
int i, err;
struct net_device *dev;
- err = request_irq(SW_IRQ, adm5120_sw_irq, 0, "ethernet switch", NULL);
+ err = request_irq(ADM5120_IRQ_SWITCH, adm5120_sw_irq, 0, "ethernet switch", NULL);
if (err)
goto out;
@@ -434,7 +435,7 @@ static int __init adm5120_sw_init(void)
memset(netdev_priv(dev), 0, sizeof(struct adm5120_sw));
((struct adm5120_sw*)netdev_priv(dev))->port = i;
dev->base_addr = SW_BASE;
- dev->irq = SW_IRQ;
+ dev->irq = ADM5120_IRQ_SWITCH;
dev->open = adm5120_sw_open;
dev->hard_start_xmit = adm5120_sw_tx;
dev->stop = adm5120_sw_stop;
@@ -469,7 +470,7 @@ out_int:
unregister_netdev(adm5120_devs[i-1]);
free_netdev(adm5120_devs[i-1]);
}
- free_irq(SW_IRQ, NULL);
+ free_irq(ADM5120_IRQ_SWITCH, NULL);
out:
printk(KERN_ERR "ADM5120 Ethernet switch init failed\n");
return err;
@@ -484,7 +485,7 @@ static void __exit adm5120_sw_exit(void)
free_netdev(adm5120_devs[i-1]);
}
- free_irq(SW_IRQ, NULL);
+ free_irq(ADM5120_IRQ_SWITCH, NULL);
for (i = 0; i < ADM5120_DMA_RXH; i++) {
if (!adm5120_skb_rxh[i])
diff --git a/target/linux/adm5120-2.6/files/drivers/net/adm5120sw.h b/target/linux/adm5120-2.6/files/drivers/net/adm5120sw.h
index 19388a906..ed9836e22 100644
--- a/target/linux/adm5120-2.6/files/drivers/net/adm5120sw.h
+++ b/target/linux/adm5120-2.6/files/drivers/net/adm5120sw.h
@@ -12,7 +12,6 @@
#define SW_BASE KSEG1ADDR(0x12000000)
#define SW_DEVS 6
-#define SW_IRQ 9
#define ETH_TX_TIMEOUT HZ/4
#define ETH_FCS 4;
diff --git a/target/linux/adm5120-2.6/files/drivers/serial/adm5120_uart.c b/target/linux/adm5120-2.6/files/drivers/serial/adm5120_uart.c
index ea1010cca..8a2adaa9c 100644
--- a/target/linux/adm5120-2.6/files/drivers/serial/adm5120_uart.c
+++ b/target/linux/adm5120-2.6/files/drivers/serial/adm5120_uart.c
@@ -24,12 +24,8 @@
#include <linux/tty_flip.h>
#include <linux/console.h>
-#define ADM5120_UART_BASE0 0x12600000
-#define ADM5120_UART_BASE1 0x12800000
-#define ADM5120_UART_SIZE 0x20
-
-#define ADM5120_UART_IRQ0 1
-#define ADM5120_UART_IRQ1 2
+#include <asm/mach-adm5120/adm5120_defs.h>
+#include <asm/mach-adm5120/adm5120_irq.h>
#define ADM5120_UART_REG(base, reg) \
(*(volatile u32 *)KSEG1ADDR((base)+(reg)))
@@ -421,9 +417,9 @@ static struct uart_ops adm5120ser_ops = {
static void adm5120console_put(const char c)
{
- while ((ADM5120_UART_REG(ADM5120_UART_BASE0, ADM5120_UART_FR) &
+ while ((ADM5120_UART_REG(ADM5120_UART0_BASE, ADM5120_UART_FR) &
ADM5120_UART_TXFF) != 0);
- ADM5120_UART_REG(ADM5120_UART_BASE0, ADM5120_UART_DATA) = c;
+ ADM5120_UART_REG(ADM5120_UART0_BASE, ADM5120_UART_DATA) = c;
}
static void adm5120console_write(struct console *con, const char *s,
@@ -440,14 +436,14 @@ static void adm5120console_write(struct console *con, const char *s,
static int __init adm5120console_setup(struct console *con, char *options)
{
/* Set to 115200 baud, 8N1 and enable FIFO */
- ADM5120_UART_REG(ADM5120_UART_BASE0, ADM5120_UART_LCR_L) =
+ ADM5120_UART_REG(ADM5120_UART0_BASE, ADM5120_UART_LCR_L) =
ADM5120_UART_BAUD115200 & 0xff;
- ADM5120_UART_REG(ADM5120_UART_BASE0, ADM5120_UART_LCR_M) =
+ ADM5120_UART_REG(ADM5120_UART0_BASE, ADM5120_UART_LCR_M) =
ADM5120_UART_BAUD115200 >> 8;
- ADM5120_UART_REG(ADM5120_UART_BASE0, ADM5120_UART_LCR_H) =
+ ADM5120_UART_REG(ADM5120_UART0_BASE, ADM5120_UART_LCR_H) =
ADM5120_UART_W8 | ADM5120_UART_FIFO_EN;
/* Enable port */
- ADM5120_UART_REG(ADM5120_UART_BASE0, ADM5120_UART_CR) =
+ ADM5120_UART_REG(ADM5120_UART0_BASE, ADM5120_UART_CR) =
ADM5120_UART_EN;
return 0;
@@ -477,8 +473,8 @@ console_initcall(adm5120console_init);
static struct uart_port adm5120ser_ports[] = {
{
- .iobase = ADM5120_UART_BASE0,
- .irq = ADM5120_UART_IRQ0,
+ .iobase = ADM5120_UART0_BASE,
+ .irq = ADM5120_IRQ_UART0,
.uartclk = ADM5120_UARTCLK_FREQ,
.fifosize = 16,
.ops = &adm5120ser_ops,
@@ -487,8 +483,8 @@ static struct uart_port adm5120ser_ports[] = {
},
#if (CONFIG_ADM5120_NR_UARTS > 1)
{
- .iobase = ADM5120_UART_BASE1,
- .irq = ADM5120_UART_IRQ1,
+ .iobase = ADM5120_UART1_BASE,
+ .irq = ADM5120_IRQ_UART1,
.uartclk = ADM5120_UARTCLK_FREQ,
.fifosize = 16,
.ops = &adm5120ser_ops,