From 8366dfac71c976acb6d772ec9014026cafab8182 Mon Sep 17 00:00:00 2001 From: florian Date: Sat, 2 Jun 2007 23:13:51 +0000 Subject: 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 --- .../adm5120-2.6/files/drivers/net/adm5120sw.c | 9 +++---- .../adm5120-2.6/files/drivers/net/adm5120sw.h | 1 - .../files/drivers/serial/adm5120_uart.c | 28 ++++++++++------------ 3 files changed, 17 insertions(+), 21 deletions(-) (limited to 'target/linux/adm5120-2.6/files/drivers') 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 +#include 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 #include -#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 +#include #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, -- cgit v1.2.3