diff options
| author | Vitaly Wool <vitalywool@gmail.com> | 2006-10-04 11:19:58 -0400 |
|---|---|---|
| committer | Ralf Baechle <ralf@linux-mips.org> | 2006-10-04 13:06:15 -0400 |
| commit | 7009af8cd37f7904939aec6bd2325c581abd7cac (patch) | |
| tree | bcf4dcda14c662a4d0394c54f2f05731655e3256 /arch/mips/philips | |
| parent | 4a61f17378c2cdd9bd8f34ef8bd7422861d0c1f1 (diff) | |
[MIPS] PNX8550 fixups
This patch fixes the compilation errors on PNX8550 and hard-to-track
bug in interrupt handling.
It also corresponds to the latest changes in PNX8550 serial driver.
Signed-off-by: Vitaly Wool <vitalywool@gmail.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/philips')
| -rw-r--r-- | arch/mips/philips/pnx8550/common/int.c | 2 | ||||
| -rw-r--r-- | arch/mips/philips/pnx8550/common/platform.c | 16 | ||||
| -rw-r--r-- | arch/mips/philips/pnx8550/common/prom.c | 4 | ||||
| -rw-r--r-- | arch/mips/philips/pnx8550/common/setup.c | 6 |
4 files changed, 12 insertions, 16 deletions
diff --git a/arch/mips/philips/pnx8550/common/int.c b/arch/mips/philips/pnx8550/common/int.c index 099679a9df..3c93512be1 100644 --- a/arch/mips/philips/pnx8550/common/int.c +++ b/arch/mips/philips/pnx8550/common/int.c | |||
| @@ -90,7 +90,7 @@ asmlinkage void plat_irq_dispatch(struct pt_regs *regs) | |||
| 90 | unsigned int pending = read_c0_status() & read_c0_cause(); | 90 | unsigned int pending = read_c0_status() & read_c0_cause(); |
| 91 | 91 | ||
| 92 | if (pending & STATUSF_IP2) | 92 | if (pending & STATUSF_IP2) |
| 93 | do_IRQ(2, regs); | 93 | hw0_irqdispatch(2, regs); |
| 94 | else if (pending & STATUSF_IP7) { | 94 | else if (pending & STATUSF_IP7) { |
| 95 | if (read_c0_config7() & 0x01c0) | 95 | if (read_c0_config7() & 0x01c0) |
| 96 | timer_irqdispatch(7, regs); | 96 | timer_irqdispatch(7, regs); |
diff --git a/arch/mips/philips/pnx8550/common/platform.c b/arch/mips/philips/pnx8550/common/platform.c index 5436b4b974..d43f56e2cd 100644 --- a/arch/mips/philips/pnx8550/common/platform.c +++ b/arch/mips/philips/pnx8550/common/platform.c | |||
| @@ -17,15 +17,13 @@ | |||
| 17 | #include <linux/init.h> | 17 | #include <linux/init.h> |
| 18 | #include <linux/resource.h> | 18 | #include <linux/resource.h> |
| 19 | #include <linux/serial.h> | 19 | #include <linux/serial.h> |
| 20 | #include <linux/serial_ip3106.h> | 20 | #include <linux/serial_pnx8xxx.h> |
| 21 | #include <linux/platform_device.h> | 21 | #include <linux/platform_device.h> |
| 22 | 22 | ||
| 23 | #include <int.h> | 23 | #include <int.h> |
| 24 | #include <usb.h> | 24 | #include <usb.h> |
| 25 | #include <uart.h> | 25 | #include <uart.h> |
| 26 | 26 | ||
| 27 | extern struct uart_ops ip3106_pops; | ||
| 28 | |||
| 29 | static struct resource pnx8550_usb_ohci_resources[] = { | 27 | static struct resource pnx8550_usb_ohci_resources[] = { |
| 30 | [0] = { | 28 | [0] = { |
| 31 | .start = PNX8550_USB_OHCI_OP_BASE, | 29 | .start = PNX8550_USB_OHCI_OP_BASE, |
| @@ -63,31 +61,29 @@ static struct resource pnx8550_uart_resources[] = { | |||
| 63 | }, | 61 | }, |
| 64 | }; | 62 | }; |
| 65 | 63 | ||
| 66 | struct ip3106_port ip3106_ports[] = { | 64 | struct pnx8xxx_port pnx8xxx_ports[] = { |
| 67 | [0] = { | 65 | [0] = { |
| 68 | .port = { | 66 | .port = { |
| 69 | .type = PORT_IP3106, | 67 | .type = PORT_PNX8XXX, |
| 70 | .iotype = UPIO_MEM, | 68 | .iotype = UPIO_MEM, |
| 71 | .membase = (void __iomem *)PNX8550_UART_PORT0, | 69 | .membase = (void __iomem *)PNX8550_UART_PORT0, |
| 72 | .mapbase = PNX8550_UART_PORT0, | 70 | .mapbase = PNX8550_UART_PORT0, |
| 73 | .irq = PNX8550_UART_INT(0), | 71 | .irq = PNX8550_UART_INT(0), |
| 74 | .uartclk = 3692300, | 72 | .uartclk = 3692300, |
| 75 | .fifosize = 16, | 73 | .fifosize = 16, |
| 76 | .ops = &ip3106_pops, | ||
| 77 | .flags = UPF_BOOT_AUTOCONF, | 74 | .flags = UPF_BOOT_AUTOCONF, |
| 78 | .line = 0, | 75 | .line = 0, |
| 79 | }, | 76 | }, |
| 80 | }, | 77 | }, |
| 81 | [1] = { | 78 | [1] = { |
| 82 | .port = { | 79 | .port = { |
| 83 | .type = PORT_IP3106, | 80 | .type = PORT_PNX8XXX, |
| 84 | .iotype = UPIO_MEM, | 81 | .iotype = UPIO_MEM, |
| 85 | .membase = (void __iomem *)PNX8550_UART_PORT1, | 82 | .membase = (void __iomem *)PNX8550_UART_PORT1, |
| 86 | .mapbase = PNX8550_UART_PORT1, | 83 | .mapbase = PNX8550_UART_PORT1, |
| 87 | .irq = PNX8550_UART_INT(1), | 84 | .irq = PNX8550_UART_INT(1), |
| 88 | .uartclk = 3692300, | 85 | .uartclk = 3692300, |
| 89 | .fifosize = 16, | 86 | .fifosize = 16, |
| 90 | .ops = &ip3106_pops, | ||
| 91 | .flags = UPF_BOOT_AUTOCONF, | 87 | .flags = UPF_BOOT_AUTOCONF, |
| 92 | .line = 1, | 88 | .line = 1, |
| 93 | }, | 89 | }, |
| @@ -111,12 +107,12 @@ static struct platform_device pnx8550_usb_ohci_device = { | |||
| 111 | }; | 107 | }; |
| 112 | 108 | ||
| 113 | static struct platform_device pnx8550_uart_device = { | 109 | static struct platform_device pnx8550_uart_device = { |
| 114 | .name = "ip3106-uart", | 110 | .name = "pnx8xxx-uart", |
| 115 | .id = -1, | 111 | .id = -1, |
| 116 | .dev = { | 112 | .dev = { |
| 117 | .dma_mask = &uart_dmamask, | 113 | .dma_mask = &uart_dmamask, |
| 118 | .coherent_dma_mask = 0xffffffff, | 114 | .coherent_dma_mask = 0xffffffff, |
| 119 | .platform_data = ip3106_ports, | 115 | .platform_data = pnx8xxx_ports, |
| 120 | }, | 116 | }, |
| 121 | .num_resources = ARRAY_SIZE(pnx8550_uart_resources), | 117 | .num_resources = ARRAY_SIZE(pnx8550_uart_resources), |
| 122 | .resource = pnx8550_uart_resources, | 118 | .resource = pnx8550_uart_resources, |
diff --git a/arch/mips/philips/pnx8550/common/prom.c b/arch/mips/philips/pnx8550/common/prom.c index 70aac97594..f8952c1359 100644 --- a/arch/mips/philips/pnx8550/common/prom.c +++ b/arch/mips/philips/pnx8550/common/prom.c | |||
| @@ -13,7 +13,7 @@ | |||
| 13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
| 14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
| 15 | #include <linux/string.h> | 15 | #include <linux/string.h> |
| 16 | #include <linux/serial_ip3106.h> | 16 | #include <linux/serial_pnx8xxx.h> |
| 17 | 17 | ||
| 18 | #include <asm/bootinfo.h> | 18 | #include <asm/bootinfo.h> |
| 19 | #include <uart.h> | 19 | #include <uart.h> |
| @@ -126,7 +126,7 @@ void prom_putchar(char c) | |||
| 126 | { | 126 | { |
| 127 | if (pnx8550_console_port != -1) { | 127 | if (pnx8550_console_port != -1) { |
| 128 | /* Wait until FIFO not full */ | 128 | /* Wait until FIFO not full */ |
| 129 | while( ((ip3106_fifo(UART_BASE, pnx8550_console_port) & IP3106_UART_FIFO_TXFIFO) >> 16) >= 16) | 129 | while( ((ip3106_fifo(UART_BASE, pnx8550_console_port) & PNX8XXX_UART_FIFO_TXFIFO) >> 16) >= 16) |
| 130 | ; | 130 | ; |
| 131 | /* Send one char */ | 131 | /* Send one char */ |
| 132 | ip3106_fifo(UART_BASE, pnx8550_console_port) = c; | 132 | ip3106_fifo(UART_BASE, pnx8550_console_port) = c; |
diff --git a/arch/mips/philips/pnx8550/common/setup.c b/arch/mips/philips/pnx8550/common/setup.c index 36b0c8bc6c..e62123ca9b 100644 --- a/arch/mips/philips/pnx8550/common/setup.c +++ b/arch/mips/philips/pnx8550/common/setup.c | |||
| @@ -24,7 +24,7 @@ | |||
| 24 | #include <linux/mm.h> | 24 | #include <linux/mm.h> |
| 25 | #include <linux/delay.h> | 25 | #include <linux/delay.h> |
| 26 | #include <linux/interrupt.h> | 26 | #include <linux/interrupt.h> |
| 27 | #include <linux/serial_ip3106.h> | 27 | #include <linux/serial_pnx8xxx.h> |
| 28 | #include <linux/pm.h> | 28 | #include <linux/pm.h> |
| 29 | 29 | ||
| 30 | #include <asm/cpu.h> | 30 | #include <asm/cpu.h> |
| @@ -56,7 +56,7 @@ extern char *prom_getcmdline(void); | |||
| 56 | 56 | ||
| 57 | struct resource standard_io_resources[] = { | 57 | struct resource standard_io_resources[] = { |
| 58 | { | 58 | { |
| 59 | .start = .0x00, | 59 | .start = 0x00, |
| 60 | .end = 0x1f, | 60 | .end = 0x1f, |
| 61 | .name = "dma1", | 61 | .name = "dma1", |
| 62 | .flags = IORESOURCE_BUSY | 62 | .flags = IORESOURCE_BUSY |
| @@ -144,7 +144,7 @@ void __init plat_mem_setup(void) | |||
| 144 | /* We must initialize the UART (console) before prom_printf */ | 144 | /* We must initialize the UART (console) before prom_printf */ |
| 145 | /* Set LCR to 8-bit and BAUD to 38400 (no 5) */ | 145 | /* Set LCR to 8-bit and BAUD to 38400 (no 5) */ |
| 146 | ip3106_lcr(UART_BASE, pnx8550_console_port) = | 146 | ip3106_lcr(UART_BASE, pnx8550_console_port) = |
| 147 | IP3106_UART_LCR_8BIT; | 147 | PNX8XXX_UART_LCR_8BIT; |
| 148 | ip3106_baud(UART_BASE, pnx8550_console_port) = 5; | 148 | ip3106_baud(UART_BASE, pnx8550_console_port) = 5; |
| 149 | } | 149 | } |
| 150 | 150 | ||
