Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

sh: rts7751r2d board updates.

This tidies up some of the rts7751r2d mess and gets it booting
again. Update the defconfig, too.

Signed-off-by: Masayuki Hosokawa <hosokawa@ace-jp.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

+397 -524
+1 -1
arch/sh/boards/renesas/rts7751r2d/Makefile
··· 2 2 # Makefile for the RTS7751R2D specific parts of the kernel 3 3 # 4 4 5 - obj-y := setup.o io.o irq.o 5 + obj-y := setup.o irq.o
-302
arch/sh/boards/renesas/rts7751r2d/io.c
··· 1 - /* 2 - * Copyright (C) 2001 Ian da Silva, Jeremy Siegel 3 - * Based largely on io_se.c. 4 - * 5 - * I/O routine for Renesas Technology sales RTS7751R2D. 6 - * 7 - * Initial version only to support LAN access; some 8 - * placeholder code from io_rts7751r2d.c left in with the 9 - * expectation of later SuperIO and PCMCIA access. 10 - */ 11 - #include <linux/kernel.h> 12 - #include <linux/types.h> 13 - #include <linux/pci.h> 14 - #include <linux/io.h> 15 - #include <asm/rts7751r2d.h> 16 - #include <asm/addrspace.h> 17 - 18 - /* 19 - * The 7751R RTS7751R2D uses the built-in PCI controller (PCIC) 20 - * of the 7751R processor, and has a SuperIO accessible via the PCI. 21 - * The board also includes a PCMCIA controller on its memory bus, 22 - * like the other Solution Engine boards. 23 - */ 24 - 25 - static inline unsigned long port2adr(unsigned int port) 26 - { 27 - if ((0x1f0 <= port && port < 0x1f8) || port == 0x3f6) 28 - if (port == 0x3f6) 29 - return (PA_AREA5_IO + 0x80c); 30 - else 31 - return (PA_AREA5_IO + 0x1000 + ((port-0x1f0) << 1)); 32 - else 33 - maybebadio((unsigned long)port); 34 - 35 - return port; 36 - } 37 - 38 - static inline unsigned long port88796l(unsigned int port, int flag) 39 - { 40 - unsigned long addr; 41 - 42 - if (flag) 43 - addr = PA_AX88796L + ((port - AX88796L_IO_BASE) << 1); 44 - else 45 - addr = PA_AX88796L + ((port - AX88796L_IO_BASE) << 1) + 0x1000; 46 - 47 - return addr; 48 - } 49 - 50 - /* The 7751R RTS7751R2D seems to have everything hooked */ 51 - /* up pretty normally (nothing on high-bytes only...) so this */ 52 - /* shouldn't be needed */ 53 - static inline int shifted_port(unsigned long port) 54 - { 55 - /* For IDE registers, value is not shifted */ 56 - if ((0x1f0 <= port && port < 0x1f8) || port == 0x3f6) 57 - return 0; 58 - else 59 - return 1; 60 - } 61 - 62 - #if defined(CONFIG_NE2000) || defined(CONFIG_NE2000_MODULE) 63 - #define CHECK_AX88796L_PORT(port) \ 64 - ((port >= AX88796L_IO_BASE) && (port < (AX88796L_IO_BASE+0x20))) 65 - #else 66 - #define CHECK_AX88796L_PORT(port) (0) 67 - #endif 68 - 69 - /* 70 - * General outline: remap really low stuff [eventually] to SuperIO, 71 - * stuff in PCI IO space (at or above window at pci.h:PCIBIOS_MIN_IO) 72 - * is mapped through the PCI IO window. Stuff with high bits (PXSEG) 73 - * should be way beyond the window, and is used w/o translation for 74 - * compatibility. 75 - */ 76 - unsigned char rts7751r2d_inb(unsigned long port) 77 - { 78 - if (CHECK_AX88796L_PORT(port)) 79 - return (*(volatile unsigned short *)port88796l(port, 0)) & 0xff; 80 - else if (PXSEG(port)) 81 - return *(volatile unsigned char *)port; 82 - else if (is_pci_ioaddr(port) || shifted_port(port)) 83 - return *(volatile unsigned char *)pci_ioaddr(port); 84 - else 85 - return (*(volatile unsigned short *)port2adr(port) & 0xff); 86 - } 87 - 88 - unsigned char rts7751r2d_inb_p(unsigned long port) 89 - { 90 - unsigned char v; 91 - 92 - if (CHECK_AX88796L_PORT(port)) 93 - v = (*(volatile unsigned short *)port88796l(port, 0)) & 0xff; 94 - else if (PXSEG(port)) 95 - v = *(volatile unsigned char *)port; 96 - else if (is_pci_ioaddr(port) || shifted_port(port)) 97 - v = *(volatile unsigned char *)pci_ioaddr(port); 98 - else 99 - v = (*(volatile unsigned short *)port2adr(port) & 0xff); 100 - 101 - ctrl_delay(); 102 - 103 - return v; 104 - } 105 - 106 - unsigned short rts7751r2d_inw(unsigned long port) 107 - { 108 - if (CHECK_AX88796L_PORT(port)) 109 - maybebadio(port); 110 - else if (PXSEG(port)) 111 - return *(volatile unsigned short *)port; 112 - else if (is_pci_ioaddr(port) || shifted_port(port)) 113 - return *(volatile unsigned short *)pci_ioaddr(port); 114 - else 115 - maybebadio(port); 116 - 117 - return 0; 118 - } 119 - 120 - unsigned int rts7751r2d_inl(unsigned long port) 121 - { 122 - if (CHECK_AX88796L_PORT(port)) 123 - maybebadio(port); 124 - else if (PXSEG(port)) 125 - return *(volatile unsigned long *)port; 126 - else if (is_pci_ioaddr(port) || shifted_port(port)) 127 - return *(volatile unsigned long *)pci_ioaddr(port); 128 - else 129 - maybebadio(port); 130 - 131 - return 0; 132 - } 133 - 134 - void rts7751r2d_outb(unsigned char value, unsigned long port) 135 - { 136 - if (CHECK_AX88796L_PORT(port)) 137 - *((volatile unsigned short *)port88796l(port, 0)) = value; 138 - else if (PXSEG(port)) 139 - *(volatile unsigned char *)port = value; 140 - else if (is_pci_ioaddr(port) || shifted_port(port)) 141 - *(volatile unsigned char *)pci_ioaddr(port) = value; 142 - else 143 - *(volatile unsigned short *)port2adr(port) = value; 144 - } 145 - 146 - void rts7751r2d_outb_p(unsigned char value, unsigned long port) 147 - { 148 - if (CHECK_AX88796L_PORT(port)) 149 - *((volatile unsigned short *)port88796l(port, 0)) = value; 150 - else if (PXSEG(port)) 151 - *(volatile unsigned char *)port = value; 152 - else if (is_pci_ioaddr(port) || shifted_port(port)) 153 - *(volatile unsigned char *)pci_ioaddr(port) = value; 154 - else 155 - *(volatile unsigned short *)port2adr(port) = value; 156 - 157 - ctrl_delay(); 158 - } 159 - 160 - void rts7751r2d_outw(unsigned short value, unsigned long port) 161 - { 162 - if (CHECK_AX88796L_PORT(port)) 163 - maybebadio(port); 164 - else if (PXSEG(port)) 165 - *(volatile unsigned short *)port = value; 166 - else if (is_pci_ioaddr(port) || shifted_port(port)) 167 - *(volatile unsigned short *)pci_ioaddr(port) = value; 168 - else 169 - maybebadio(port); 170 - } 171 - 172 - void rts7751r2d_outl(unsigned int value, unsigned long port) 173 - { 174 - if (CHECK_AX88796L_PORT(port)) 175 - maybebadio(port); 176 - else if (PXSEG(port)) 177 - *(volatile unsigned long *)port = value; 178 - else if (is_pci_ioaddr(port) || shifted_port(port)) 179 - *(volatile unsigned long *)pci_ioaddr(port) = value; 180 - else 181 - maybebadio(port); 182 - } 183 - 184 - void rts7751r2d_insb(unsigned long port, void *addr, unsigned long count) 185 - { 186 - unsigned long a = (unsigned long)addr; 187 - volatile __u8 *bp; 188 - volatile __u16 *p; 189 - 190 - if (CHECK_AX88796L_PORT(port)) { 191 - p = (volatile unsigned short *)port88796l(port, 0); 192 - while (count--) 193 - ctrl_outb(*p & 0xff, a++); 194 - } else if (PXSEG(port)) 195 - while (count--) 196 - ctrl_outb(ctrl_inb(port), a++); 197 - else if (is_pci_ioaddr(port) || shifted_port(port)) { 198 - bp = (__u8 *)pci_ioaddr(port); 199 - while (count--) 200 - ctrl_outb(*bp, a++); 201 - } else { 202 - p = (volatile unsigned short *)port2adr(port); 203 - while (count--) 204 - ctrl_outb(*p & 0xff, a++); 205 - } 206 - } 207 - 208 - void rts7751r2d_insw(unsigned long port, void *addr, unsigned long count) 209 - { 210 - unsigned long a = (unsigned long)addr; 211 - volatile __u16 *p; 212 - 213 - if (CHECK_AX88796L_PORT(port)) 214 - p = (volatile unsigned short *)port88796l(port, 1); 215 - else if (PXSEG(port)) 216 - p = (volatile unsigned short *)port; 217 - else if (is_pci_ioaddr(port) || shifted_port(port)) 218 - p = (volatile unsigned short *)pci_ioaddr(port); 219 - else 220 - p = (volatile unsigned short *)port2adr(port); 221 - while (count--) 222 - ctrl_outw(*p, a++); 223 - } 224 - 225 - void rts7751r2d_insl(unsigned long port, void *addr, unsigned long count) 226 - { 227 - if (CHECK_AX88796L_PORT(port)) 228 - maybebadio(port); 229 - else if (is_pci_ioaddr(port) || shifted_port(port)) { 230 - unsigned long a = (unsigned long)addr; 231 - 232 - while (count--) { 233 - ctrl_outl(ctrl_inl(pci_ioaddr(port)), a); 234 - a += 4; 235 - } 236 - } else 237 - maybebadio(port); 238 - } 239 - 240 - void rts7751r2d_outsb(unsigned long port, const void *addr, unsigned long count) 241 - { 242 - unsigned long a = (unsigned long)addr; 243 - volatile __u8 *bp; 244 - volatile __u16 *p; 245 - 246 - if (CHECK_AX88796L_PORT(port)) { 247 - p = (volatile unsigned short *)port88796l(port, 0); 248 - while (count--) 249 - *p = ctrl_inb(a++); 250 - } else if (PXSEG(port)) 251 - while (count--) 252 - ctrl_outb(a++, port); 253 - else if (is_pci_ioaddr(port) || shifted_port(port)) { 254 - bp = (__u8 *)pci_ioaddr(port); 255 - while (count--) 256 - *bp = ctrl_inb(a++); 257 - } else { 258 - p = (volatile unsigned short *)port2adr(port); 259 - while (count--) 260 - *p = ctrl_inb(a++); 261 - } 262 - } 263 - 264 - void rts7751r2d_outsw(unsigned long port, const void *addr, unsigned long count) 265 - { 266 - unsigned long a = (unsigned long)addr; 267 - volatile __u16 *p; 268 - 269 - if (CHECK_AX88796L_PORT(port)) 270 - p = (volatile unsigned short *)port88796l(port, 1); 271 - else if (PXSEG(port)) 272 - p = (volatile unsigned short *)port; 273 - else if (is_pci_ioaddr(port) || shifted_port(port)) 274 - p = (volatile unsigned short *)pci_ioaddr(port); 275 - else 276 - p = (volatile unsigned short *)port2adr(port); 277 - 278 - while (count--) { 279 - ctrl_outw(*p, a); 280 - a += 2; 281 - } 282 - } 283 - 284 - void rts7751r2d_outsl(unsigned long port, const void *addr, unsigned long count) 285 - { 286 - if (CHECK_AX88796L_PORT(port)) 287 - maybebadio(port); 288 - else if (is_pci_ioaddr(port) || shifted_port(port)) { 289 - unsigned long a = (unsigned long)addr; 290 - 291 - while (count--) { 292 - ctrl_outl(ctrl_inl(a), pci_ioaddr(port)); 293 - a += 4; 294 - } 295 - } else 296 - maybebadio(port); 297 - } 298 - 299 - unsigned long rts7751r2d_isa_port2addr(unsigned long offset) 300 - { 301 - return port2adr(offset); 302 - }
+19 -61
arch/sh/boards/renesas/rts7751r2d/irq.c
··· 9 9 * Atom Create Engineering Co., Ltd. 2002. 10 10 */ 11 11 #include <linux/init.h> 12 + #include <linux/interrupt.h> 12 13 #include <linux/irq.h> 14 + #include <linux/interrupt.h> 13 15 #include <linux/io.h> 14 16 #include <asm/rts7751r2d.h> 15 17 ··· 24 22 extern int voyagergx_irq_demux(int irq); 25 23 extern void setup_voyagergx_irq(void); 26 24 27 - static void enable_rts7751r2d_irq(unsigned int irq); 28 - static void disable_rts7751r2d_irq(unsigned int irq); 29 - 30 - /* shutdown is same as "disable" */ 31 - #define shutdown_rts7751r2d_irq disable_rts7751r2d_irq 32 - 33 - static void ack_rts7751r2d_irq(unsigned int irq); 34 - static void end_rts7751r2d_irq(unsigned int irq); 35 - 36 - static unsigned int startup_rts7751r2d_irq(unsigned int irq) 25 + static void enable_rts7751r2d_irq(unsigned int irq) 37 26 { 38 - enable_rts7751r2d_irq(irq); 39 - return 0; /* never anything pending */ 27 + /* Set priority in IPR back to original value */ 28 + ctrl_outw(ctrl_inw(IRLCNTR1) | (1 << mask_pos[irq]), IRLCNTR1); 40 29 } 41 30 42 31 static void disable_rts7751r2d_irq(unsigned int irq) 43 32 { 44 - unsigned short val; 45 - unsigned short mask = 0xffff ^ (0x0001 << mask_pos[irq]); 46 - 47 33 /* Set the priority in IPR to 0 */ 48 - val = ctrl_inw(IRLCNTR1); 49 - val &= mask; 50 - ctrl_outw(val, IRLCNTR1); 51 - } 52 - 53 - static void enable_rts7751r2d_irq(unsigned int irq) 54 - { 55 - unsigned short val; 56 - unsigned short value = (0x0001 << mask_pos[irq]); 57 - 58 - /* Set priority in IPR back to original value */ 59 - val = ctrl_inw(IRLCNTR1); 60 - val |= value; 61 - ctrl_outw(val, IRLCNTR1); 34 + ctrl_outw(ctrl_inw(IRLCNTR1) & (0xffff ^ (1 << mask_pos[irq])), 35 + IRLCNTR1); 62 36 } 63 37 64 38 int rts7751r2d_irq_demux(int irq) 65 39 { 66 - int demux_irq; 67 - 68 - demux_irq = voyagergx_irq_demux(irq); 69 - return demux_irq; 40 + return voyagergx_irq_demux(irq); 70 41 } 71 42 72 - static void ack_rts7751r2d_irq(unsigned int irq) 73 - { 74 - disable_rts7751r2d_irq(irq); 75 - } 76 - 77 - static void end_rts7751r2d_irq(unsigned int irq) 78 - { 79 - if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS))) 80 - enable_rts7751r2d_irq(irq); 81 - } 82 - 83 - static struct hw_interrupt_type rts7751r2d_irq_type = { 84 - .typename = "RTS7751R2D IRQ", 85 - .startup = startup_rts7751r2d_irq, 86 - .shutdown = shutdown_rts7751r2d_irq, 87 - .enable = enable_rts7751r2d_irq, 88 - .disable = disable_rts7751r2d_irq, 89 - .ack = ack_rts7751r2d_irq, 90 - .end = end_rts7751r2d_irq, 43 + static struct irq_chip rts7751r2d_irq_chip __read_mostly = { 44 + .name = "rts7751r2d", 45 + .mask = disable_rts7751r2d_irq, 46 + .unmask = enable_rts7751r2d_irq, 47 + .mask_ack = disable_rts7751r2d_irq, 91 48 }; 92 - 93 - static void make_rts7751r2d_irq(unsigned int irq) 94 - { 95 - disable_irq_nosync(irq); 96 - irq_desc[irq].chip = &rts7751r2d_irq_type; 97 - disable_rts7751r2d_irq(irq); 98 - } 99 49 100 50 /* 101 51 * Initialize IRQ setting ··· 73 119 * IRL14=Extention #3 74 120 */ 75 121 76 - for (i=0; i<15; i++) 77 - make_rts7751r2d_irq(i); 122 + for (i=0; i<15; i++) { 123 + disable_irq_nosync(i); 124 + set_irq_chip_and_handler_name(i, &rts7751r2d_irq_chip, 125 + handle_level_irq, "level"); 126 + enable_rts7751r2d_irq(i); 127 + } 78 128 79 129 setup_voyagergx_irq(); 80 130 }
+67 -56
arch/sh/boards/renesas/rts7751r2d/setup.c
··· 1 1 /* 2 2 * Renesas Technology Sales RTS7751R2D Support. 3 3 * 4 - * Copyright (C) 2002 Atom Create Engineering Co., Ltd. 5 - * Copyright (C) 2004 - 2006 Paul Mundt 4 + * Copyright (C) 2002 - 2006 Atom Create Engineering Co., Ltd. 5 + * Copyright (C) 2004 - 2007 Paul Mundt 6 6 * 7 7 * This file is subject to the terms and conditions of the GNU General Public 8 8 * License. See the file "COPYING" in the main directory of this archive ··· 10 10 */ 11 11 #include <linux/init.h> 12 12 #include <linux/platform_device.h> 13 + #include <linux/pata_platform.h> 13 14 #include <linux/serial_8250.h> 14 15 #include <linux/pm.h> 15 16 #include <asm/machvec.h> 16 - #include <asm/mach/rts7751r2d.h> 17 - #include <asm/io.h> 17 + #include <asm/rts7751r2d.h> 18 18 #include <asm/voyagergx.h> 19 - 20 - extern void heartbeat_rts7751r2d(void); 21 - extern void init_rts7751r2d_IRQ(void); 22 - extern int rts7751r2d_irq_demux(int irq); 23 - 24 - extern void *voyagergx_consistent_alloc(struct device *, size_t, dma_addr_t *, gfp_t); 25 - extern int voyagergx_consistent_free(struct device *, size_t, void *, dma_addr_t); 26 - 27 - static struct plat_serial8250_port uart_platform_data[] = { 28 - { 29 - .membase = (void *)VOYAGER_UART_BASE, 30 - .mapbase = VOYAGER_UART_BASE, 31 - .iotype = UPIO_MEM, 32 - .irq = VOYAGER_UART0_IRQ, 33 - .flags = UPF_BOOT_AUTOCONF, 34 - .regshift = 2, 35 - .uartclk = (9600 * 16), 36 - }, { 37 - .flags = 0, 38 - }, 39 - }; 19 + #include <asm/io.h> 40 20 41 21 static void __init voyagergx_serial_init(void) 42 22 { ··· 25 45 /* 26 46 * GPIO Control 27 47 */ 28 - val = inl(GPIO_MUX_HIGH); 48 + val = readl((void __iomem *)GPIO_MUX_HIGH); 29 49 val |= 0x00001fe0; 30 - outl(val, GPIO_MUX_HIGH); 50 + writel(val, (void __iomem *)GPIO_MUX_HIGH); 31 51 32 52 /* 33 53 * Power Mode Gate 34 54 */ 35 - val = inl(POWER_MODE0_GATE); 55 + val = readl((void __iomem *)POWER_MODE0_GATE); 36 56 val |= (POWER_MODE0_GATE_U0 | POWER_MODE0_GATE_U1); 37 - outl(val, POWER_MODE0_GATE); 57 + writel(val, (void __iomem *)POWER_MODE0_GATE); 38 58 39 - val = inl(POWER_MODE1_GATE); 59 + val = readl((void __iomem *)POWER_MODE1_GATE); 40 60 val |= (POWER_MODE1_GATE_U0 | POWER_MODE1_GATE_U1); 41 - outl(val, POWER_MODE1_GATE); 61 + writel(val, (void __iomem *)POWER_MODE1_GATE); 42 62 } 63 + 64 + static struct resource cf_ide_resources[] = { 65 + [0] = { 66 + .start = PA_AREA5_IO + 0x1000, 67 + .end = PA_AREA5_IO + 0x1000 + 0x08 - 1, 68 + .flags = IORESOURCE_MEM, 69 + }, 70 + [1] = { 71 + .start = PA_AREA5_IO + 0x80c, 72 + .end = PA_AREA5_IO + 0x80c + 0x16 - 1, 73 + .flags = IORESOURCE_MEM, 74 + }, 75 + [2] = { 76 + #ifdef CONFIG_RTS7751R2D_REV11 77 + .start = 1, 78 + #else 79 + .start = 2, 80 + #endif 81 + .flags = IORESOURCE_IRQ, 82 + }, 83 + }; 84 + 85 + static struct pata_platform_info pata_info = { 86 + .ioport_shift = 1, 87 + }; 88 + 89 + static struct platform_device cf_ide_device = { 90 + .name = "pata_platform", 91 + .id = -1, 92 + .num_resources = ARRAY_SIZE(cf_ide_resources), 93 + .resource = cf_ide_resources, 94 + .dev = { 95 + .platform_data = &pata_info, 96 + }, 97 + }; 98 + 99 + static struct plat_serial8250_port uart_platform_data[] = { 100 + { 101 + .membase = (void __iomem *)VOYAGER_UART_BASE, 102 + .mapbase = VOYAGER_UART_BASE, 103 + .iotype = UPIO_MEM, 104 + .irq = VOYAGER_UART0_IRQ, 105 + .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST, 106 + .regshift = 2, 107 + .uartclk = (9600 * 16), 108 + } 109 + }; 43 110 44 111 static struct platform_device uart_device = { 45 112 .name = "serial8250", 46 - .id = -1, 113 + .id = PLAT8250_DEV_PLATFORM, 47 114 .dev = { 48 115 .platform_data = uart_platform_data, 49 116 }, ··· 114 87 static struct platform_device *rts7751r2d_devices[] __initdata = { 115 88 &uart_device, 116 89 &heartbeat_device, 90 + &cf_ide_device, 117 91 }; 118 92 119 93 static int __init rts7751r2d_devices_setup(void) ··· 122 94 return platform_add_devices(rts7751r2d_devices, 123 95 ARRAY_SIZE(rts7751r2d_devices)); 124 96 } 97 + __initcall(rts7751r2d_devices_setup); 125 98 126 99 static void rts7751r2d_power_off(void) 127 100 { ··· 134 105 */ 135 106 static void __init rts7751r2d_setup(char **cmdline_p) 136 107 { 137 - device_initcall(rts7751r2d_devices_setup); 108 + u16 ver = ctrl_inw(PA_VERREG); 109 + 110 + printk(KERN_INFO "Renesas Technology Sales RTS7751R2D support.\n"); 111 + 112 + printk(KERN_INFO "FPGA version:%d (revision:%d)\n", 113 + (ver >> 4) & 0xf, ver & 0xf); 138 114 139 115 ctrl_outw(0x0000, PA_OUTPORT); 140 116 pm_power_off = rts7751r2d_power_off; 141 117 142 118 voyagergx_serial_init(); 143 - 144 - printk(KERN_INFO "Renesas Technology Sales RTS7751R2D support.\n"); 145 119 } 146 120 147 121 /* ··· 154 122 .mv_name = "RTS7751R2D", 155 123 .mv_setup = rts7751r2d_setup, 156 124 .mv_nr_irqs = 72, 157 - 158 - .mv_inb = rts7751r2d_inb, 159 - .mv_inw = rts7751r2d_inw, 160 - .mv_inl = rts7751r2d_inl, 161 - .mv_outb = rts7751r2d_outb, 162 - .mv_outw = rts7751r2d_outw, 163 - .mv_outl = rts7751r2d_outl, 164 - 165 - .mv_inb_p = rts7751r2d_inb_p, 166 - .mv_inw_p = rts7751r2d_inw, 167 - .mv_inl_p = rts7751r2d_inl, 168 - .mv_outb_p = rts7751r2d_outb_p, 169 - .mv_outw_p = rts7751r2d_outw, 170 - .mv_outl_p = rts7751r2d_outl, 171 - 172 - .mv_insb = rts7751r2d_insb, 173 - .mv_insw = rts7751r2d_insw, 174 - .mv_insl = rts7751r2d_insl, 175 - .mv_outsb = rts7751r2d_outsb, 176 - .mv_outsw = rts7751r2d_outsw, 177 - .mv_outsl = rts7751r2d_outsl, 178 125 179 126 .mv_init_irq = init_rts7751r2d_IRQ, 180 127 .mv_irq_demux = rts7751r2d_irq_demux,
+32 -38
arch/sh/cchips/voyagergx/irq.c
··· 28 28 unsigned long val; 29 29 unsigned long mask = 1 << (irq - VOYAGER_IRQ_BASE); 30 30 31 - pr_debug("disable_voyagergx_irq(%d): mask=%lx\n", irq, mask); 32 - val = inl(VOYAGER_INT_MASK); 33 - val &= ~mask; 34 - outl(val, VOYAGER_INT_MASK); 31 + pr_debug("disable_voyagergx_irq(%d): mask=%x\n", irq, mask); 32 + val = readl((void __iomem *)VOYAGER_INT_MASK); 33 + val &= ~mask; 34 + writel(val, (void __iomem *)VOYAGER_INT_MASK); 35 35 } 36 36 37 37 static void enable_voyagergx_irq(unsigned int irq) 38 38 { 39 - unsigned long val; 40 - unsigned long mask = 1 << (irq - VOYAGER_IRQ_BASE); 39 + unsigned long val; 40 + unsigned long mask = 1 << (irq - VOYAGER_IRQ_BASE); 41 41 42 - pr_debug("disable_voyagergx_irq(%d): mask=%lx\n", irq, mask); 43 - val = inl(VOYAGER_INT_MASK); 44 - val |= mask; 45 - outl(val, VOYAGER_INT_MASK); 42 + pr_debug("disable_voyagergx_irq(%d): mask=%x\n", irq, mask); 43 + val = readl((void __iomem *)VOYAGER_INT_MASK); 44 + val |= mask; 45 + writel(val, (void __iomem *)VOYAGER_INT_MASK); 46 46 } 47 47 48 48 static void mask_and_ack_voyagergx(unsigned int irq) ··· 68 68 } 69 69 70 70 static struct hw_interrupt_type voyagergx_irq_type = { 71 - .typename = "VOYAGERGX-IRQ", 72 - .startup = startup_voyagergx_irq, 73 - .shutdown = shutdown_voyagergx_irq, 74 - .enable = enable_voyagergx_irq, 75 - .disable = disable_voyagergx_irq, 76 - .ack = mask_and_ack_voyagergx, 77 - .end = end_voyagergx_irq, 71 + .typename = "VOYAGERGX-IRQ", 72 + .startup = startup_voyagergx_irq, 73 + .shutdown = shutdown_voyagergx_irq, 74 + .enable = enable_voyagergx_irq, 75 + .disable = disable_voyagergx_irq, 76 + .ack = mask_and_ack_voyagergx, 77 + .end = end_voyagergx_irq, 78 78 }; 79 79 80 80 static irqreturn_t voyagergx_interrupt(int irq, void *dev_id) 81 81 { 82 82 printk(KERN_INFO 83 83 "VoyagerGX: spurious interrupt, status: 0x%x\n", 84 - inl(INT_STATUS)); 84 + (unsigned int)readl((void __iomem *)INT_STATUS)); 85 85 return IRQ_HANDLED; 86 86 } 87 87 ··· 93 93 void voyagergx_register_irq_demux(int irq, 94 94 int (*demux)(int irq, void *dev), void *dev) 95 95 { 96 - voyagergx_demux[irq - VOYAGER_IRQ_BASE].func = demux; 97 - voyagergx_demux[irq - VOYAGER_IRQ_BASE].dev = dev; 96 + voyagergx_demux[irq - VOYAGER_IRQ_BASE].func = demux; 97 + voyagergx_demux[irq - VOYAGER_IRQ_BASE].dev = dev; 98 98 } 99 99 100 100 void voyagergx_unregister_irq_demux(int irq) 101 101 { 102 - voyagergx_demux[irq - VOYAGER_IRQ_BASE].func = 0; 102 + voyagergx_demux[irq - VOYAGER_IRQ_BASE].func = 0; 103 103 } 104 104 105 105 int voyagergx_irq_demux(int irq) ··· 107 107 108 108 if (irq == IRQ_VOYAGER ) { 109 109 unsigned long i = 0, bit __attribute__ ((unused)); 110 - unsigned long val = inl(INT_STATUS); 111 - #if 1 112 - if ( val & ( 1 << 1 )){ 110 + unsigned long val = readl((void __iomem *)INT_STATUS); 111 + 112 + if (val & (1 << 1)) 113 113 i = 1; 114 - } else if ( val & ( 1 << 2 )){ 114 + else if (val & (1 << 2)) 115 115 i = 2; 116 - } else if ( val & ( 1 << 6 )){ 116 + else if (val & (1 << 6)) 117 117 i = 6; 118 - } else if( val & ( 1 << 10 )){ 118 + else if (val & (1 << 10)) 119 119 i = 10; 120 - } else if( val & ( 1 << 11 )){ 120 + else if (val & (1 << 11)) 121 121 i = 11; 122 - } else if( val & ( 1 << 12 )){ 122 + else if (val & (1 << 12)) 123 123 i = 12; 124 - } else if( val & ( 1 << 17 )){ 124 + else if (val & (1 << 17)) 125 125 i = 17; 126 - } else { 126 + else 127 127 printk("Unexpected IRQ irq = %d status = 0x%08lx\n", irq, val); 128 - } 129 - pr_debug("voyagergx_irq_demux %ld\n", i); 130 - #else 131 - for (bit = 1, i = 0 ; i < VOYAGER_IRQ_NUM ; bit <<= 1, i++) 132 - if (val & bit) 133 - break; 134 - #endif 128 + pr_debug("voyagergx_irq_demux %d \n", i); 135 129 if (i < VOYAGER_IRQ_NUM) { 136 130 irq = VOYAGER_IRQ_BASE + i; 137 131 if (voyagergx_demux[i].func != 0)
+2 -2
arch/sh/cchips/voyagergx/setup.c
··· 19 19 { 20 20 unsigned long val; 21 21 22 - val = inl(DRAM_CTRL); 22 + val = readl((void __iomem *)DRAM_CTRL); 23 23 val |= (DRAM_CTRL_CPU_COLUMN_SIZE_256 | 24 24 DRAM_CTRL_CPU_ACTIVE_PRECHARGE | 25 25 DRAM_CTRL_CPU_RESET | ··· 29 29 DRAM_CTRL_ACTIVE_PRECHARGE | 30 30 DRAM_CTRL_RESET | 31 31 DRAM_CTRL_REMAIN_ACTIVE); 32 - outl(val, DRAM_CTRL); 32 + writel(val, (void __iomem *)DRAM_CTRL); 33 33 34 34 return 0; 35 35 }
+258 -54
arch/sh/configs/rts7751r2d_defconfig
··· 1 1 # 2 2 # Automatically generated make config: don't edit 3 - # Linux kernel version: 2.6.18 4 - # Tue Oct 3 11:38:36 2006 3 + # Linux kernel version: 2.6.20 4 + # Thu Feb 15 17:17:29 2007 5 5 # 6 6 CONFIG_SUPERH=y 7 7 CONFIG_RWSEM_GENERIC_SPINLOCK=y 8 8 CONFIG_GENERIC_FIND_NEXT_BIT=y 9 9 CONFIG_GENERIC_HWEIGHT=y 10 10 CONFIG_GENERIC_HARDIRQS=y 11 + CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 11 12 CONFIG_GENERIC_IRQ_PROBE=y 12 13 CONFIG_GENERIC_CALIBRATE_DELAY=y 14 + # CONFIG_GENERIC_TIME is not set 15 + CONFIG_STACKTRACE_SUPPORT=y 16 + CONFIG_LOCKDEP_SUPPORT=y 17 + # CONFIG_ARCH_HAS_ILOG2_U32 is not set 18 + # CONFIG_ARCH_HAS_ILOG2_U64 is not set 13 19 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 14 20 15 21 # ··· 39 33 # CONFIG_UTS_NS is not set 40 34 # CONFIG_AUDIT is not set 41 35 # CONFIG_IKCONFIG is not set 36 + CONFIG_SYSFS_DEPRECATED=y 42 37 # CONFIG_RELAY is not set 43 - CONFIG_INITRAMFS_SOURCE="" 44 38 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 45 39 CONFIG_SYSCTL=y 46 40 CONFIG_EMBEDDED=y ··· 103 97 # CONFIG_SH_73180_SOLUTION_ENGINE is not set 104 98 # CONFIG_SH_7751_SYSTEMH is not set 105 99 # CONFIG_SH_HP6XX is not set 106 - # CONFIG_SH_EC3104 is not set 107 100 # CONFIG_SH_SATURN is not set 108 101 # CONFIG_SH_DREAMCAST is not set 109 - # CONFIG_SH_BIGSUR is not set 110 102 # CONFIG_SH_MPC1211 is not set 111 103 # CONFIG_SH_SH03 is not set 112 104 # CONFIG_SH_SECUREEDGE5410 is not set ··· 117 113 # CONFIG_SH_LANDISK is not set 118 114 # CONFIG_SH_TITAN is not set 119 115 # CONFIG_SH_SHMIN is not set 116 + # CONFIG_SH_7206_SOLUTION_ENGINE is not set 117 + # CONFIG_SH_7619_SOLUTION_ENGINE is not set 118 + # CONFIG_SH_ASDAP310 is not set 120 119 # CONFIG_SH_UNKNOWN is not set 121 120 122 121 # ··· 131 124 # SH-2 Processor Support 132 125 # 133 126 # CONFIG_CPU_SUBTYPE_SH7604 is not set 127 + # CONFIG_CPU_SUBTYPE_SH7619 is not set 128 + 129 + # 130 + # SH-2A Processor Support 131 + # 132 + # CONFIG_CPU_SUBTYPE_SH7206 is not set 134 133 135 134 # 136 135 # SH-3 Processor Support ··· 172 159 # 173 160 # CONFIG_CPU_SUBTYPE_SH7770 is not set 174 161 # CONFIG_CPU_SUBTYPE_SH7780 is not set 162 + # CONFIG_CPU_SUBTYPE_SH7785 is not set 175 163 176 164 # 177 165 # SH4AL-DSP Processor Support 178 166 # 179 167 # CONFIG_CPU_SUBTYPE_SH73180 is not set 180 168 # CONFIG_CPU_SUBTYPE_SH7343 is not set 169 + # CONFIG_CPU_SUBTYPE_SH7722 is not set 181 170 182 171 # 183 172 # Memory management options ··· 189 174 CONFIG_MEMORY_START=0x0c000000 190 175 CONFIG_MEMORY_SIZE=0x04000000 191 176 CONFIG_VSYSCALL=y 177 + CONFIG_PAGE_SIZE_4KB=y 178 + # CONFIG_PAGE_SIZE_8KB is not set 179 + # CONFIG_PAGE_SIZE_64KB is not set 192 180 CONFIG_SELECT_MEMORY_MODEL=y 193 181 CONFIG_FLATMEM_MANUAL=y 194 182 # CONFIG_DISCONTIGMEM_MANUAL is not set ··· 201 183 # CONFIG_SPARSEMEM_STATIC is not set 202 184 CONFIG_SPLIT_PTLOCK_CPUS=4 203 185 # CONFIG_RESOURCES_64BIT is not set 186 + CONFIG_ZONE_DMA_FLAG=0 204 187 205 188 # 206 189 # Cache configuration ··· 214 195 # Processor features 215 196 # 216 197 CONFIG_CPU_LITTLE_ENDIAN=y 198 + # CONFIG_CPU_BIG_ENDIAN is not set 217 199 CONFIG_SH_FPU=y 218 200 # CONFIG_SH_DSP is not set 219 201 # CONFIG_SH_STORE_QUEUES is not set 220 202 CONFIG_CPU_HAS_INTEVT=y 203 + CONFIG_CPU_HAS_IPR_IRQ=y 221 204 CONFIG_CPU_HAS_SR_RB=y 205 + CONFIG_CPU_HAS_PTEA=y 222 206 223 207 # 224 208 # Timer support ··· 232 210 # RTS7751R2D options 233 211 # 234 212 CONFIG_RTS7751R2D_REV11=y 213 + CONFIG_SH_TIMER_IRQ=16 214 + # CONFIG_NO_IDLE_HZ is not set 235 215 CONFIG_SH_PCLK_FREQ=60000000 236 216 237 217 # ··· 256 232 CONFIG_HEARTBEAT=y 257 233 258 234 # 235 + # Additional SuperH Device Drivers 236 + # 237 + # CONFIG_PUSH_SWITCH is not set 238 + 239 + # 259 240 # Kernel features 260 241 # 261 242 # CONFIG_HZ_100 is not set 262 243 CONFIG_HZ_250=y 244 + # CONFIG_HZ_300 is not set 263 245 # CONFIG_HZ_1000 is not set 264 246 CONFIG_HZ=250 265 247 # CONFIG_KEXEC is not set ··· 281 251 CONFIG_BOOT_LINK_OFFSET=0x00800000 282 252 # CONFIG_UBC_WAKEUP is not set 283 253 CONFIG_CMDLINE_BOOL=y 284 - CONFIG_CMDLINE="mem=64M console=ttySC0,115200 root=/dev/hda1" 254 + CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/sda1" 285 255 286 256 # 287 257 # Bus options ··· 290 260 CONFIG_SH_PCIDMA_NONCOHERENT=y 291 261 CONFIG_PCI_AUTO=y 292 262 CONFIG_PCI_AUTO_UPDATE_RESOURCES=y 293 - # CONFIG_PCI_MULTITHREAD_PROBE is not set 294 263 295 264 # 296 265 # PCCARD (PCMCIA/CardBus) support ··· 331 302 CONFIG_XFRM=y 332 303 # CONFIG_XFRM_USER is not set 333 304 # CONFIG_XFRM_SUB_POLICY is not set 305 + # CONFIG_XFRM_MIGRATE is not set 334 306 # CONFIG_NET_KEY is not set 335 307 CONFIG_INET=y 336 308 # CONFIG_IP_MULTICAST is not set ··· 349 319 # CONFIG_INET_TUNNEL is not set 350 320 CONFIG_INET_XFRM_MODE_TRANSPORT=y 351 321 CONFIG_INET_XFRM_MODE_TUNNEL=y 322 + CONFIG_INET_XFRM_MODE_BEET=y 352 323 CONFIG_INET_DIAG=y 353 324 CONFIG_INET_TCP_DIAG=y 354 325 # CONFIG_TCP_CONG_ADVANCED is not set 355 326 CONFIG_TCP_CONG_CUBIC=y 356 327 CONFIG_DEFAULT_TCP_CONG="cubic" 328 + # CONFIG_TCP_MD5SIG is not set 357 329 # CONFIG_IPV6 is not set 358 330 # CONFIG_INET6_XFRM_TUNNEL is not set 359 331 # CONFIG_INET6_TUNNEL is not set ··· 412 380 # 413 381 CONFIG_STANDALONE=y 414 382 CONFIG_PREVENT_FIRMWARE_BUILD=y 415 - # CONFIG_FW_LOADER is not set 383 + CONFIG_FW_LOADER=m 416 384 # CONFIG_SYS_HYPERVISOR is not set 417 385 418 386 # ··· 454 422 # CONFIG_ATA_OVER_ETH is not set 455 423 456 424 # 425 + # Misc devices 426 + # 427 + # CONFIG_SGI_IOC4 is not set 428 + # CONFIG_TIFM_CORE is not set 429 + 430 + # 457 431 # ATA/ATAPI/MFM/RLL support 458 432 # 459 - CONFIG_IDE=y 460 - CONFIG_IDE_MAX_HWIFS=4 461 - CONFIG_BLK_DEV_IDE=y 462 - 463 - # 464 - # Please see Documentation/ide.txt for help/info on IDE drives 465 - # 466 - # CONFIG_BLK_DEV_IDE_SATA is not set 467 - CONFIG_BLK_DEV_IDEDISK=y 468 - # CONFIG_IDEDISK_MULTI_MODE is not set 469 - # CONFIG_BLK_DEV_IDECD is not set 470 - # CONFIG_BLK_DEV_IDETAPE is not set 471 - # CONFIG_BLK_DEV_IDEFLOPPY is not set 472 - # CONFIG_IDE_TASK_IOCTL is not set 473 - 474 - # 475 - # IDE chipset support/bugfixes 476 - # 477 - CONFIG_IDE_GENERIC=y 478 - # CONFIG_BLK_DEV_IDEPCI is not set 479 - # CONFIG_IDE_ARM is not set 480 - # CONFIG_BLK_DEV_IDEDMA is not set 481 - # CONFIG_IDEDMA_AUTO is not set 482 - # CONFIG_BLK_DEV_HD is not set 433 + # CONFIG_IDE is not set 483 434 484 435 # 485 436 # SCSI device support 486 437 # 487 438 # CONFIG_RAID_ATTRS is not set 488 - # CONFIG_SCSI is not set 439 + CONFIG_SCSI=y 440 + # CONFIG_SCSI_TGT is not set 489 441 # CONFIG_SCSI_NETLINK is not set 442 + CONFIG_SCSI_PROC_FS=y 443 + 444 + # 445 + # SCSI support type (disk, tape, CD-ROM) 446 + # 447 + CONFIG_BLK_DEV_SD=y 448 + # CONFIG_CHR_DEV_ST is not set 449 + # CONFIG_CHR_DEV_OSST is not set 450 + # CONFIG_BLK_DEV_SR is not set 451 + # CONFIG_CHR_DEV_SG is not set 452 + # CONFIG_CHR_DEV_SCH is not set 453 + 454 + # 455 + # Some SCSI devices (e.g. CD jukebox) support multiple LUNs 456 + # 457 + # CONFIG_SCSI_MULTI_LUN is not set 458 + # CONFIG_SCSI_CONSTANTS is not set 459 + # CONFIG_SCSI_LOGGING is not set 460 + # CONFIG_SCSI_SCAN_ASYNC is not set 461 + 462 + # 463 + # SCSI Transports 464 + # 465 + # CONFIG_SCSI_SPI_ATTRS is not set 466 + # CONFIG_SCSI_FC_ATTRS is not set 467 + # CONFIG_SCSI_ISCSI_ATTRS is not set 468 + # CONFIG_SCSI_SAS_ATTRS is not set 469 + # CONFIG_SCSI_SAS_LIBSAS is not set 470 + 471 + # 472 + # SCSI low-level drivers 473 + # 474 + # CONFIG_ISCSI_TCP is not set 475 + # CONFIG_BLK_DEV_3W_XXXX_RAID is not set 476 + # CONFIG_SCSI_3W_9XXX is not set 477 + # CONFIG_SCSI_ACARD is not set 478 + # CONFIG_SCSI_AACRAID is not set 479 + # CONFIG_SCSI_AIC7XXX is not set 480 + # CONFIG_SCSI_AIC7XXX_OLD is not set 481 + # CONFIG_SCSI_AIC79XX is not set 482 + # CONFIG_SCSI_AIC94XX is not set 483 + # CONFIG_SCSI_DPT_I2O is not set 484 + # CONFIG_SCSI_ARCMSR is not set 485 + # CONFIG_MEGARAID_NEWGEN is not set 486 + # CONFIG_MEGARAID_LEGACY is not set 487 + # CONFIG_MEGARAID_SAS is not set 488 + # CONFIG_SCSI_HPTIOP is not set 489 + # CONFIG_SCSI_DMX3191D is not set 490 + # CONFIG_SCSI_FUTURE_DOMAIN is not set 491 + # CONFIG_SCSI_IPS is not set 492 + # CONFIG_SCSI_INITIO is not set 493 + # CONFIG_SCSI_INIA100 is not set 494 + # CONFIG_SCSI_STEX is not set 495 + # CONFIG_SCSI_SYM53C8XX_2 is not set 496 + # CONFIG_SCSI_IPR is not set 497 + # CONFIG_SCSI_QLOGIC_1280 is not set 498 + # CONFIG_SCSI_QLA_FC is not set 499 + # CONFIG_SCSI_QLA_ISCSI is not set 500 + # CONFIG_SCSI_LPFC is not set 501 + # CONFIG_SCSI_DC395x is not set 502 + # CONFIG_SCSI_DC390T is not set 503 + # CONFIG_SCSI_NSP32 is not set 504 + # CONFIG_SCSI_DEBUG is not set 505 + # CONFIG_SCSI_SRP is not set 490 506 491 507 # 492 508 # Serial ATA (prod) and Parallel ATA (experimental) drivers 493 509 # 494 - # CONFIG_ATA is not set 510 + CONFIG_ATA=y 511 + # CONFIG_ATA_NONSTANDARD is not set 512 + # CONFIG_SATA_AHCI is not set 513 + # CONFIG_SATA_SVW is not set 514 + # CONFIG_ATA_PIIX is not set 515 + # CONFIG_SATA_MV is not set 516 + # CONFIG_SATA_NV is not set 517 + # CONFIG_PDC_ADMA is not set 518 + # CONFIG_SATA_QSTOR is not set 519 + # CONFIG_SATA_PROMISE is not set 520 + # CONFIG_SATA_SX4 is not set 521 + # CONFIG_SATA_SIL is not set 522 + # CONFIG_SATA_SIL24 is not set 523 + # CONFIG_SATA_SIS is not set 524 + # CONFIG_SATA_ULI is not set 525 + # CONFIG_SATA_VIA is not set 526 + # CONFIG_SATA_VITESSE is not set 527 + # CONFIG_SATA_INIC162X is not set 528 + # CONFIG_PATA_ALI is not set 529 + # CONFIG_PATA_AMD is not set 530 + # CONFIG_PATA_ARTOP is not set 531 + # CONFIG_PATA_ATIIXP is not set 532 + # CONFIG_PATA_CMD64X is not set 533 + # CONFIG_PATA_CS5520 is not set 534 + # CONFIG_PATA_CS5530 is not set 535 + # CONFIG_PATA_CYPRESS is not set 536 + # CONFIG_PATA_EFAR is not set 537 + # CONFIG_ATA_GENERIC is not set 538 + # CONFIG_PATA_HPT366 is not set 539 + # CONFIG_PATA_HPT37X is not set 540 + # CONFIG_PATA_HPT3X2N is not set 541 + # CONFIG_PATA_HPT3X3 is not set 542 + # CONFIG_PATA_IT821X is not set 543 + # CONFIG_PATA_IT8213 is not set 544 + # CONFIG_PATA_JMICRON is not set 545 + # CONFIG_PATA_TRIFLEX is not set 546 + # CONFIG_PATA_MARVELL is not set 547 + # CONFIG_PATA_MPIIX is not set 548 + # CONFIG_PATA_OLDPIIX is not set 549 + # CONFIG_PATA_NETCELL is not set 550 + # CONFIG_PATA_NS87410 is not set 551 + # CONFIG_PATA_OPTI is not set 552 + # CONFIG_PATA_OPTIDMA is not set 553 + # CONFIG_PATA_PDC_OLD is not set 554 + # CONFIG_PATA_RADISYS is not set 555 + # CONFIG_PATA_RZ1000 is not set 556 + # CONFIG_PATA_SC1200 is not set 557 + # CONFIG_PATA_SERVERWORKS is not set 558 + # CONFIG_PATA_PDC2027X is not set 559 + # CONFIG_PATA_SIL680 is not set 560 + # CONFIG_PATA_SIS is not set 561 + # CONFIG_PATA_VIA is not set 562 + # CONFIG_PATA_WINBOND is not set 563 + CONFIG_PATA_PLATFORM=y 495 564 496 565 # 497 566 # Multi-device support (RAID and LVM) ··· 603 470 # Fusion MPT device support 604 471 # 605 472 # CONFIG_FUSION is not set 473 + # CONFIG_FUSION_SPI is not set 474 + # CONFIG_FUSION_FC is not set 475 + # CONFIG_FUSION_SAS is not set 606 476 607 477 # 608 478 # IEEE 1394 (FireWire) support ··· 676 540 # CONFIG_SUNDANCE is not set 677 541 # CONFIG_TLAN is not set 678 542 # CONFIG_VIA_RHINE is not set 543 + # CONFIG_SC92031 is not set 679 544 680 545 # 681 546 # Ethernet (1000 Mbit) ··· 696 559 # CONFIG_TIGON3 is not set 697 560 # CONFIG_BNX2 is not set 698 561 # CONFIG_QLA3XXX is not set 562 + # CONFIG_ATL1 is not set 699 563 700 564 # 701 565 # Ethernet (10000 Mbit) 702 566 # 703 567 # CONFIG_CHELSIO_T1 is not set 568 + # CONFIG_CHELSIO_T3 is not set 704 569 # CONFIG_IXGB is not set 705 570 # CONFIG_S2IO is not set 706 571 # CONFIG_MYRI10GE is not set 572 + # CONFIG_NETXEN_NIC is not set 707 573 708 574 # 709 575 # Token Ring devices ··· 751 611 # CONFIG_HIPPI is not set 752 612 # CONFIG_PPP is not set 753 613 # CONFIG_SLIP is not set 614 + # CONFIG_NET_FC is not set 754 615 # CONFIG_SHAPER is not set 755 616 # CONFIG_NETCONSOLE is not set 756 617 # CONFIG_NETPOLL is not set ··· 787 646 # 788 647 # Serial drivers 789 648 # 790 - # CONFIG_SERIAL_8250 is not set 649 + CONFIG_SERIAL_8250=y 650 + # CONFIG_SERIAL_8250_CONSOLE is not set 651 + CONFIG_SERIAL_8250_PCI=y 652 + CONFIG_SERIAL_8250_NR_UARTS=4 653 + CONFIG_SERIAL_8250_RUNTIME_UARTS=4 654 + # CONFIG_SERIAL_8250_EXTENDED is not set 791 655 792 656 # 793 657 # Non-8250 serial port support 794 658 # 795 - # CONFIG_SERIAL_SH_SCI is not set 659 + CONFIG_SERIAL_SH_SCI=y 660 + CONFIG_SERIAL_SH_SCI_NR_UARTS=1 661 + CONFIG_SERIAL_SH_SCI_CONSOLE=y 662 + CONFIG_SERIAL_CORE=y 663 + CONFIG_SERIAL_CORE_CONSOLE=y 796 664 # CONFIG_SERIAL_JSM is not set 797 - # CONFIG_UNIX98_PTYS is not set 665 + CONFIG_UNIX98_PTYS=y 798 666 CONFIG_LEGACY_PTYS=y 799 667 CONFIG_LEGACY_PTY_COUNT=256 800 668 ··· 821 671 # CONFIG_DTLK is not set 822 672 # CONFIG_R3964 is not set 823 673 # CONFIG_APPLICOM is not set 824 - 825 - # 826 - # Ftape, the floppy tape device driver 827 - # 828 674 # CONFIG_DRM is not set 829 675 # CONFIG_RAW_DRIVER is not set 830 676 ··· 828 682 # TPM devices 829 683 # 830 684 # CONFIG_TCG_TPM is not set 831 - # CONFIG_TELCLOCK is not set 832 685 833 686 # 834 687 # I2C support ··· 843 698 # 844 699 # Dallas's 1-wire bus 845 700 # 701 + # CONFIG_W1 is not set 846 702 847 703 # 848 704 # Hardware Monitoring support ··· 852 706 # CONFIG_HWMON_VID is not set 853 707 # CONFIG_SENSORS_ABITUGURU is not set 854 708 # CONFIG_SENSORS_F71805F is not set 709 + # CONFIG_SENSORS_PC87427 is not set 855 710 # CONFIG_SENSORS_VT1211 is not set 856 711 # CONFIG_HWMON_DEBUG_CHIP is not set 857 - 858 - # 859 - # Misc devices 860 - # 861 712 862 713 # 863 714 # Multimedia devices 864 715 # 865 716 # CONFIG_VIDEO_DEV is not set 866 - CONFIG_VIDEO_V4L2=y 867 717 868 718 # 869 719 # Digital Video Broadcasting Devices ··· 901 759 CONFIG_SND_MPU401_UART=m 902 760 CONFIG_SND_OPL3_LIB=m 903 761 CONFIG_SND_AC97_CODEC=m 904 - CONFIG_SND_AC97_BUS=m 905 762 # CONFIG_SND_DUMMY is not set 906 763 # CONFIG_SND_MTPAV is not set 907 764 # CONFIG_SND_SERIAL_U16550 is not set ··· 923 782 # CONFIG_SND_CMIPCI is not set 924 783 # CONFIG_SND_CS4281 is not set 925 784 # CONFIG_SND_CS46XX is not set 785 + # CONFIG_SND_DARLA20 is not set 786 + # CONFIG_SND_GINA20 is not set 787 + # CONFIG_SND_LAYLA20 is not set 788 + # CONFIG_SND_DARLA24 is not set 789 + # CONFIG_SND_GINA24 is not set 790 + # CONFIG_SND_LAYLA24 is not set 791 + # CONFIG_SND_MONA is not set 792 + # CONFIG_SND_MIA is not set 793 + # CONFIG_SND_ECHO3G is not set 794 + # CONFIG_SND_INDIGO is not set 795 + # CONFIG_SND_INDIGOIO is not set 796 + # CONFIG_SND_INDIGODJ is not set 926 797 # CONFIG_SND_EMU10K1 is not set 927 798 # CONFIG_SND_EMU10K1X is not set 928 799 # CONFIG_SND_ENS1370 is not set ··· 954 801 # CONFIG_SND_MIXART is not set 955 802 # CONFIG_SND_NM256 is not set 956 803 # CONFIG_SND_PCXHR is not set 804 + # CONFIG_SND_RIPTIDE is not set 957 805 # CONFIG_SND_RME32 is not set 958 806 # CONFIG_SND_RME96 is not set 959 807 # CONFIG_SND_RME9652 is not set ··· 967 813 # CONFIG_SND_AC97_POWER_SAVE is not set 968 814 969 815 # 816 + # SoC audio support 817 + # 818 + # CONFIG_SND_SOC is not set 819 + 820 + # 970 821 # Open Sound System 971 822 # 972 823 CONFIG_SOUND_PRIME=m 973 - # CONFIG_OSS_OBSOLETE_DRIVER is not set 824 + # CONFIG_OBSOLETE_OSS is not set 974 825 # CONFIG_SOUND_BT878 is not set 975 - # CONFIG_SOUND_ES1371 is not set 976 826 # CONFIG_SOUND_ICH is not set 977 827 # CONFIG_SOUND_TRIDENT is not set 978 828 # CONFIG_SOUND_MSNDCLAS is not set 979 829 # CONFIG_SOUND_MSNDPIN is not set 980 830 # CONFIG_SOUND_VIA82CXXX is not set 831 + CONFIG_AC97_BUS=m 981 832 982 833 # 983 834 # USB support ··· 1031 872 # 1032 873 # Real Time Clock 1033 874 # 1034 - # CONFIG_RTC_CLASS is not set 875 + CONFIG_RTC_LIB=y 876 + CONFIG_RTC_CLASS=y 877 + CONFIG_RTC_HCTOSYS=y 878 + CONFIG_RTC_HCTOSYS_DEVICE="rtc0" 879 + # CONFIG_RTC_DEBUG is not set 880 + 881 + # 882 + # RTC interfaces 883 + # 884 + CONFIG_RTC_INTF_SYSFS=y 885 + CONFIG_RTC_INTF_PROC=y 886 + CONFIG_RTC_INTF_DEV=y 887 + # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set 888 + 889 + # 890 + # RTC drivers 891 + # 892 + # CONFIG_RTC_DRV_DS1553 is not set 893 + # CONFIG_RTC_DRV_DS1742 is not set 894 + # CONFIG_RTC_DRV_M48T86 is not set 895 + CONFIG_RTC_DRV_SH=y 896 + # CONFIG_RTC_DRV_TEST is not set 897 + # CONFIG_RTC_DRV_V3020 is not set 1035 898 1036 899 # 1037 900 # DMA Engine support ··· 1069 888 # 1070 889 1071 890 # 891 + # Auxiliary Display support 892 + # 893 + 894 + # 895 + # Virtualization 896 + # 897 + 898 + # 1072 899 # File systems 1073 900 # 1074 901 CONFIG_EXT2_FS=y 1075 902 # CONFIG_EXT2_FS_XATTR is not set 1076 903 # CONFIG_EXT2_FS_XIP is not set 1077 904 # CONFIG_EXT3_FS is not set 905 + # CONFIG_EXT4DEV_FS is not set 1078 906 # CONFIG_REISERFS_FS is not set 1079 907 # CONFIG_JFS_FS is not set 1080 908 # CONFIG_FS_POSIX_ACL is not set 1081 909 # CONFIG_XFS_FS is not set 910 + # CONFIG_GFS2_FS is not set 1082 911 # CONFIG_OCFS2_FS is not set 1083 912 CONFIG_MINIX_FS=y 1084 913 # CONFIG_ROMFS_FS is not set ··· 1123 932 CONFIG_PROC_KCORE=y 1124 933 CONFIG_PROC_SYSCTL=y 1125 934 CONFIG_SYSFS=y 1126 - # CONFIG_TMPFS is not set 935 + CONFIG_TMPFS=y 936 + # CONFIG_TMPFS_POSIX_ACL is not set 1127 937 # CONFIG_HUGETLBFS is not set 1128 938 # CONFIG_HUGETLB_PAGE is not set 1129 939 CONFIG_RAMFS=y ··· 1210 1018 # CONFIG_NLS_UTF8 is not set 1211 1019 1212 1020 # 1021 + # Distributed Lock Manager 1022 + # 1023 + # CONFIG_DLM is not set 1024 + 1025 + # 1213 1026 # Profiling support 1214 1027 # 1215 1028 CONFIG_PROFILING=y ··· 1223 1026 # 1224 1027 # Kernel hacking 1225 1028 # 1029 + CONFIG_TRACE_IRQFLAGS_SUPPORT=y 1226 1030 # CONFIG_PRINTK_TIME is not set 1227 1031 CONFIG_ENABLE_MUST_CHECK=y 1228 1032 # CONFIG_MAGIC_SYSRQ is not set 1229 1033 # CONFIG_UNUSED_SYMBOLS is not set 1034 + # CONFIG_DEBUG_FS is not set 1035 + # CONFIG_HEADERS_CHECK is not set 1230 1036 # CONFIG_DEBUG_KERNEL is not set 1231 1037 CONFIG_LOG_BUF_SHIFT=14 1232 1038 # CONFIG_DEBUG_BUGVERBOSE is not set 1233 - # CONFIG_DEBUG_FS is not set 1234 1039 # CONFIG_SH_STANDARD_BIOS is not set 1235 - # CONFIG_EARLY_SCIF_CONSOLE is not set 1040 + CONFIG_EARLY_SCIF_CONSOLE=y 1041 + CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000 1042 + CONFIG_EARLY_PRINTK=y 1236 1043 # CONFIG_KGDB is not set 1237 1044 1238 1045 # ··· 1253 1052 # 1254 1053 # Library routines 1255 1054 # 1055 + CONFIG_BITREVERSE=y 1256 1056 # CONFIG_CRC_CCITT is not set 1257 1057 # CONFIG_CRC16 is not set 1258 1058 CONFIG_CRC32=y 1259 1059 # CONFIG_LIBCRC32C is not set 1260 1060 CONFIG_PLIST=y 1061 + CONFIG_HAS_IOMEM=y 1062 + CONFIG_HAS_IOPORT=y
+2
arch/sh/kernel/cpu/sh4/setup-sh7750.c
··· 46 46 47 47 static struct plat_sci_port sci_platform_data[] = { 48 48 { 49 + #ifndef CONFIG_SH_RTS7751R2D 49 50 .mapbase = 0xffe00000, 50 51 .flags = UPF_BOOT_AUTOCONF, 51 52 .type = PORT_SCI, 52 53 .irqs = { 23, 24, 25, 0 }, 53 54 }, { 55 + #endif 54 56 .mapbase = 0xffe80000, 55 57 .flags = UPF_BOOT_AUTOCONF, 56 58 .type = PORT_SCIF,
+7 -5
arch/sh/kernel/io_generic.c
··· 1 - /* $Id: io_generic.c,v 1.2 2003/05/04 19:29:53 lethal Exp $ 2 - * 3 - * linux/arch/sh/kernel/io_generic.c 1 + /* 2 + * arch/sh/kernel/io_generic.c 4 3 * 5 4 * Copyright (C) 2000 Niibe Yutaka 6 - * Copyright (C) 2005 Paul Mundt 5 + * Copyright (C) 2005 - 2007 Paul Mundt 7 6 * 8 7 * Generic I/O routine. These can be used where a machine specific version 9 8 * is not required. ··· 12 13 * for more details. 13 14 */ 14 15 #include <linux/module.h> 15 - #include <asm/io.h> 16 + #include <linux/io.h> 16 17 #include <asm/machvec.h> 18 + #include <asm/cacheflush.h> 17 19 18 20 #ifdef CONFIG_CPU_SH3 19 21 /* SH3 has a PCMCIA bug that needs a dummy read from area 6 for a ··· 96 96 while (count--) 97 97 *buf++ = *port_addr; 98 98 99 + flush_dcache_all(); 99 100 dummy_read(); 100 101 } 101 102 ··· 171 170 while (count--) 172 171 *port_addr = *buf++; 173 172 173 + flush_dcache_all(); 174 174 dummy_read(); 175 175 } 176 176
+4
include/asm-sh/rts7751r2d.h
··· 68 68 #define IRQ_PCISLOT2 10 /* PCI Slot #2 IRQ */ 69 69 #define IRQ_EXTENTION 11 /* EXTn IRQ */ 70 70 71 + /* arch/sh/boards/renesas/rts7751r2d/irq.c */ 72 + void init_rts7751r2d_IRQ(void); 73 + int rts7751r2d_irq_demux(int); 74 + 71 75 #define __IO_PREFIX rts7751r2d 72 76 #include <asm/io_generic.h> 73 77
+1 -4
include/asm-sh/serial.h
··· 29 29 30 30 #else 31 31 32 - #define SERIAL_PORT_DFNS \ 33 - /* UART CLK PORT IRQ FLAGS */ \ 34 - { 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS }, /* ttyS0 */ \ 35 - { 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS } /* ttyS1 */ 32 + #define SERIAL_PORT_DFNS 36 33 37 34 #endif 38 35
+4 -1
include/asm-sh/voyagergx.h
··· 308 308 #define AC97C_READ (1 << 19) 309 309 #define AC97C_WD_BIT (1 << 2) 310 310 #define AC97C_INDEX_MASK 0x7f 311 - /* -------------------------------------------------------------------- */ 311 + 312 + /* arch/sh/cchips/voyagergx/consistent.c */ 313 + void *voyagergx_consistent_alloc(struct device *, size_t, dma_addr_t *, gfp_t); 314 + int voyagergx_consistent_free(struct device *, size_t, void *, dma_addr_t); 312 315 313 316 #endif /* _VOYAGER_GX_REG_H */