On Tue, Nov 11, 2008 at 09:54:57PM -0600, Kevin Hickey wrote: > Manuel, > > Why is this reorganization necessary? I actually think we have too much > consolidation; as I am working on the new SOC I am finding it easier to > subdivide more (esp out of platform.c but that's a whole other story). > > What's the advantage to this change? In all boards, init.c only contains prom initialization code; this one I moved to a "common" file. After that, all that was left was the IRQ map which had more lines of copyright than interesting code. I have also made a few changes to alchemy IRQ code (and made board_init_irq() mandatory in the process) which led me to move all initialization-relevant board code into a single file. It seemed to be a good optimization at the time ;-) If you and others prefer to keep the old file layout, no problem. I'll just move them to a demoboard subdirectory instead. Thanks, Manuel Lauss > =Kevin > > > On Sat, 2008-11-08 at 13:08 +0100, Manuel Lauss wrote: > > Most files of the Alchemy boards are very small. Merge them. > > > > Signed-off-by: Manuel Lauss <mano@xxxxxxxxxxxxxxxxxxxxxxx> > > --- > > arch/mips/alchemy/db1x00/Makefile | 2 +- > > arch/mips/alchemy/db1x00/board_setup.c | 92 +++++++++++++++++- > > arch/mips/alchemy/db1x00/init.c | 62 ------------ > > arch/mips/alchemy/db1x00/irqmap.c | 86 ---------------- > > arch/mips/alchemy/mtx-1/Makefile | 2 +- > > arch/mips/alchemy/mtx-1/board_setup.c | 52 ++++++++++- > > arch/mips/alchemy/mtx-1/init.c | 60 ----------- > > arch/mips/alchemy/mtx-1/irqmap.c | 52 ---------- > > arch/mips/alchemy/pb1000/Makefile | 2 +- > > arch/mips/alchemy/pb1000/board_setup.c | 36 +++++++- > > arch/mips/alchemy/pb1000/init.c | 57 ----------- > > arch/mips/alchemy/pb1000/irqmap.c | 38 ------- > > arch/mips/alchemy/pb1100/Makefile | 2 +- > > arch/mips/alchemy/pb1100/board_setup.c | 42 ++++++++- > > arch/mips/alchemy/pb1100/init.c | 60 ----------- > > arch/mips/alchemy/pb1100/irqmap.c | 40 -------- > > arch/mips/alchemy/pb1200/Makefile | 2 +- > > arch/mips/alchemy/pb1200/board_setup.c | 162 ++++++++++++++++++++++++++++++- > > arch/mips/alchemy/pb1200/init.c | 58 ----------- > > arch/mips/alchemy/pb1200/irqmap.c | 160 ------------------------------ > > arch/mips/alchemy/pb1500/Makefile | 2 +- > > arch/mips/alchemy/pb1500/board_setup.c | 46 +++++++++- > > arch/mips/alchemy/pb1500/init.c | 58 ----------- > > arch/mips/alchemy/pb1500/irqmap.c | 46 --------- > > arch/mips/alchemy/pb1550/Makefile | 2 +- > > arch/mips/alchemy/pb1550/board_setup.c | 41 ++++++++- > > arch/mips/alchemy/pb1550/init.c | 58 ----------- > > arch/mips/alchemy/pb1550/irqmap.c | 43 -------- > > arch/mips/alchemy/xxs1500/Makefile | 2 +- > > arch/mips/alchemy/xxs1500/board_setup.c | 50 +++++++++- > > arch/mips/alchemy/xxs1500/init.c | 58 ----------- > > arch/mips/alchemy/xxs1500/irqmap.c | 49 --------- > > 32 files changed, 513 insertions(+), 1009 deletions(-) > > delete mode 100644 arch/mips/alchemy/db1x00/init.c > > delete mode 100644 arch/mips/alchemy/db1x00/irqmap.c > > delete mode 100644 arch/mips/alchemy/mtx-1/init.c > > delete mode 100644 arch/mips/alchemy/mtx-1/irqmap.c > > delete mode 100644 arch/mips/alchemy/pb1000/init.c > > delete mode 100644 arch/mips/alchemy/pb1000/irqmap.c > > delete mode 100644 arch/mips/alchemy/pb1100/init.c > > delete mode 100644 arch/mips/alchemy/pb1100/irqmap.c > > delete mode 100644 arch/mips/alchemy/pb1200/init.c > > delete mode 100644 arch/mips/alchemy/pb1200/irqmap.c > > delete mode 100644 arch/mips/alchemy/pb1500/init.c > > delete mode 100644 arch/mips/alchemy/pb1500/irqmap.c > > delete mode 100644 arch/mips/alchemy/pb1550/init.c > > delete mode 100644 arch/mips/alchemy/pb1550/irqmap.c > > delete mode 100644 arch/mips/alchemy/xxs1500/init.c > > delete mode 100644 arch/mips/alchemy/xxs1500/irqmap.c > > > > diff --git a/arch/mips/alchemy/db1x00/Makefile b/arch/mips/alchemy/db1x00/Makefile > > index 274db3b..9924aa0 100644 > > --- a/arch/mips/alchemy/db1x00/Makefile > > +++ b/arch/mips/alchemy/db1x00/Makefile > > @@ -5,4 +5,4 @@ > > # Makefile for the Alchemy Semiconductor DBAu1xx0 boards. > > # > > > > -lib-y := init.o board_setup.o irqmap.o > > +lib-y := board_setup.o > > diff --git a/arch/mips/alchemy/db1x00/board_setup.c b/arch/mips/alchemy/db1x00/board_setup.c > > index 9e5ccbb..507ded2 100644 > > --- a/arch/mips/alchemy/db1x00/board_setup.c > > +++ b/arch/mips/alchemy/db1x00/board_setup.c > > @@ -1,7 +1,10 @@ > > /* > > * > > * BRIEF MODULE DESCRIPTION > > - * Alchemy Db1x00 board setup. > > + * Alchemy Db1x00 board support. > > + * > > + * Copyright 2003 Embedded Edge, LLC > > + * dan@xxxxxxxxxxxxxxxx > > * > > * Copyright 2000, 2008 MontaVista Software Inc. > > * Author: MontaVista Software, Inc. <source@xxxxxxxxxx> > > @@ -28,12 +31,99 @@ > > */ > > > > #include <linux/init.h> > > +#include <linux/interrupt.h> > > +#include <linux/kernel.h> > > +#include <asm/bootinfo.h> > > +#include <prom.h> > > > > #include <asm/mach-au1x00/au1000.h> > > #include <asm/mach-db1x00/db1x00.h> > > > > +#ifdef CONFIG_MIPS_DB1500 > > +char irq_tab_alchemy[][5] __initdata = { > > + [12] = { -1, INTA, INTX, INTX, INTX }, /* IDSEL 12 - HPT371 */ > > + [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot */ > > +}; > > +#endif > > + > > +#ifdef CONFIG_MIPS_BOSPORUS > > +char irq_tab_alchemy[][5] __initdata = { > > + [11] = { -1, INTA, INTB, INTX, INTX }, /* IDSEL 11 - miniPCI */ > > + [12] = { -1, INTA, INTX, INTX, INTX }, /* IDSEL 12 - SN1741 */ > > + [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot */ > > +}; > > +#endif > > + > > +#ifdef CONFIG_MIPS_MIRAGE > > +char irq_tab_alchemy[][5] __initdata = { > > + [11] = { -1, INTD, INTX, INTX, INTX }, /* IDSEL 11 - SMI VGX */ > > + [12] = { -1, INTX, INTX, INTC, INTX }, /* IDSEL 12 - PNX1300 */ > > + [13] = { -1, INTA, INTB, INTX, INTX }, /* IDSEL 13 - miniPCI */ > > +}; > > +#endif > > + > > +#ifdef CONFIG_MIPS_DB1550 > > +char irq_tab_alchemy[][5] __initdata = { > > + [11] = { -1, INTC, INTX, INTX, INTX }, /* IDSEL 11 - on-board HPT371 */ > > + [12] = { -1, INTB, INTC, INTD, INTA }, /* IDSEL 12 - PCI slot 2 (left) */ > > + [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot 1 (right) */ > > +}; > > +#endif > > + > > + > > +struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { > > + > > +#ifndef CONFIG_MIPS_MIRAGE > > +#ifdef CONFIG_MIPS_DB1550 > > + { AU1000_GPIO_3, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 0 IRQ# */ > > + { AU1000_GPIO_5, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 1 IRQ# */ > > +#else > > + { AU1000_GPIO_0, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 0 Fully_Interted# */ > > + { AU1000_GPIO_1, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 0 STSCHG# */ > > + { AU1000_GPIO_2, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 0 IRQ# */ > > + > > + { AU1000_GPIO_3, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 1 Fully_Interted# */ > > + { AU1000_GPIO_4, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 1 STSCHG# */ > > + { AU1000_GPIO_5, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 1 IRQ# */ > > +#endif > > +#else > > + { AU1000_GPIO_7, INTC_INT_RISE_EDGE, 0 }, /* touchscreen pen down */ > > +#endif > > + > > +}; > > + > > +int __initdata au1xxx_nr_irqs = ARRAY_SIZE(au1xxx_irq_map); > > + > > static BCSR * const bcsr = (BCSR *)BCSR_KSEG1_ADDR; > > > > +const char *get_system_type(void) > > +{ > > +#ifdef CONFIG_MIPS_BOSPORUS > > + return "Alchemy Bosporus Gateway Reference"; > > +#else > > + return "Alchemy Db1x00"; > > +#endif > > +} > > + > > +void __init prom_init(void) > > +{ > > + unsigned char *memsize_str; > > + unsigned long memsize; > > + > > + prom_argc = fw_arg0; > > + prom_argv = (char **)fw_arg1; > > + prom_envp = (char **)fw_arg2; > > + > > + prom_init_cmdline(); > > + > > + memsize_str = prom_getenv("memsize"); > > + if (!memsize_str) > > + memsize = 0x04000000; > > + else > > + strict_strtol(memsize_str, 0, &memsize); > > + add_memory_region(0, memsize, BOOT_MEM_RAM); > > +} > > + > > void board_reset(void) > > { > > /* Hit BCSR.SW_RESET[RESET] */ > > diff --git a/arch/mips/alchemy/db1x00/init.c b/arch/mips/alchemy/db1x00/init.c > > deleted file mode 100644 > > index 8474135..0000000 > > --- a/arch/mips/alchemy/db1x00/init.c > > +++ /dev/null > > @@ -1,62 +0,0 @@ > > -/* > > - * BRIEF MODULE DESCRIPTION > > - * PB1000 board setup > > - * > > - * Copyright 2001, 2008 MontaVista Software Inc. > > - * Author: MontaVista Software, Inc. <source@xxxxxxxxxx> > > - * > > - * This program is free software; you can redistribute it and/or modify it > > - * under the terms of the GNU General Public License as published by the > > - * Free Software Foundation; either version 2 of the License, or (at your > > - * option) any later version. > > - * > > - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED > > - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF > > - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN > > - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, > > - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT > > - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF > > - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON > > - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > > - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF > > - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > > - * > > - * You should have received a copy of the GNU General Public License along > > - * with this program; if not, write to the Free Software Foundation, Inc., > > - * 675 Mass Ave, Cambridge, MA 02139, USA. > > - */ > > - > > -#include <linux/init.h> > > -#include <linux/kernel.h> > > - > > -#include <asm/bootinfo.h> > > - > > -#include <prom.h> > > - > > -const char *get_system_type(void) > > -{ > > -#ifdef CONFIG_MIPS_BOSPORUS > > - return "Alchemy Bosporus Gateway Reference"; > > -#else > > - return "Alchemy Db1x00"; > > -#endif > > -} > > - > > -void __init prom_init(void) > > -{ > > - unsigned char *memsize_str; > > - unsigned long memsize; > > - > > - prom_argc = fw_arg0; > > - prom_argv = (char **)fw_arg1; > > - prom_envp = (char **)fw_arg2; > > - > > - prom_init_cmdline(); > > - > > - memsize_str = prom_getenv("memsize"); > > - if (!memsize_str) > > - memsize = 0x04000000; > > - else > > - strict_strtol(memsize_str, 0, &memsize); > > - add_memory_region(0, memsize, BOOT_MEM_RAM); > > -} > > diff --git a/arch/mips/alchemy/db1x00/irqmap.c b/arch/mips/alchemy/db1x00/irqmap.c > > deleted file mode 100644 > > index 94c090e..0000000 > > --- a/arch/mips/alchemy/db1x00/irqmap.c > > +++ /dev/null > > @@ -1,86 +0,0 @@ > > -/* > > - * BRIEF MODULE DESCRIPTION > > - * Au1xxx irq map table > > - * > > - * Copyright 2003 Embedded Edge, LLC > > - * dan@xxxxxxxxxxxxxxxx > > - * > > - * This program is free software; you can redistribute it and/or modify it > > - * under the terms of the GNU General Public License as published by the > > - * Free Software Foundation; either version 2 of the License, or (at your > > - * option) any later version. > > - * > > - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED > > - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF > > - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN > > - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, > > - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT > > - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF > > - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON > > - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > > - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF > > - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > > - * > > - * You should have received a copy of the GNU General Public License along > > - * with this program; if not, write to the Free Software Foundation, Inc., > > - * 675 Mass Ave, Cambridge, MA 02139, USA. > > - */ > > - > > -#include <linux/init.h> > > - > > -#include <asm/mach-au1x00/au1000.h> > > - > > -#ifdef CONFIG_MIPS_DB1500 > > -char irq_tab_alchemy[][5] __initdata = { > > - [12] = { -1, INTA, INTX, INTX, INTX }, /* IDSEL 12 - HPT371 */ > > - [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot */ > > -}; > > -#endif > > - > > -#ifdef CONFIG_MIPS_BOSPORUS > > -char irq_tab_alchemy[][5] __initdata = { > > - [11] = { -1, INTA, INTB, INTX, INTX }, /* IDSEL 11 - miniPCI */ > > - [12] = { -1, INTA, INTX, INTX, INTX }, /* IDSEL 12 - SN1741 */ > > - [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot */ > > -}; > > -#endif > > - > > -#ifdef CONFIG_MIPS_MIRAGE > > -char irq_tab_alchemy[][5] __initdata = { > > - [11] = { -1, INTD, INTX, INTX, INTX }, /* IDSEL 11 - SMI VGX */ > > - [12] = { -1, INTX, INTX, INTC, INTX }, /* IDSEL 12 - PNX1300 */ > > - [13] = { -1, INTA, INTB, INTX, INTX }, /* IDSEL 13 - miniPCI */ > > -}; > > -#endif > > - > > -#ifdef CONFIG_MIPS_DB1550 > > -char irq_tab_alchemy[][5] __initdata = { > > - [11] = { -1, INTC, INTX, INTX, INTX }, /* IDSEL 11 - on-board HPT371 */ > > - [12] = { -1, INTB, INTC, INTD, INTA }, /* IDSEL 12 - PCI slot 2 (left) */ > > - [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot 1 (right) */ > > -}; > > -#endif > > - > > - > > -struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { > > - > > -#ifndef CONFIG_MIPS_MIRAGE > > -#ifdef CONFIG_MIPS_DB1550 > > - { AU1000_GPIO_3, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 0 IRQ# */ > > - { AU1000_GPIO_5, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 1 IRQ# */ > > -#else > > - { AU1000_GPIO_0, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 0 Fully_Interted# */ > > - { AU1000_GPIO_1, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 0 STSCHG# */ > > - { AU1000_GPIO_2, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 0 IRQ# */ > > - > > - { AU1000_GPIO_3, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 1 Fully_Interted# */ > > - { AU1000_GPIO_4, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 1 STSCHG# */ > > - { AU1000_GPIO_5, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card 1 IRQ# */ > > -#endif > > -#else > > - { AU1000_GPIO_7, INTC_INT_RISE_EDGE, 0 }, /* touchscreen pen down */ > > -#endif > > - > > -}; > > - > > -int __initdata au1xxx_nr_irqs = ARRAY_SIZE(au1xxx_irq_map); > > diff --git a/arch/mips/alchemy/mtx-1/Makefile b/arch/mips/alchemy/mtx-1/Makefile > > index 7c67b3d..f011b2d 100644 > > --- a/arch/mips/alchemy/mtx-1/Makefile > > +++ b/arch/mips/alchemy/mtx-1/Makefile > > @@ -6,7 +6,7 @@ > > # Makefile for 4G Systems MTX-1 board. > > # > > > > -lib-y := init.o board_setup.o irqmap.o > > +lib-y := board_setup.o > > obj-y := platform.o > > > > EXTRA_CFLAGS += -Werror > > diff --git a/arch/mips/alchemy/mtx-1/board_setup.c b/arch/mips/alchemy/mtx-1/board_setup.c > > index 3f80791..2e26465 100644 > > --- a/arch/mips/alchemy/mtx-1/board_setup.c > > +++ b/arch/mips/alchemy/mtx-1/board_setup.c > > @@ -29,12 +29,61 @@ > > */ > > > > #include <linux/init.h> > > - > > +#include <linux/interrupt.h> > > +#include <linux/kernel.h> > > +#include <asm/bootinfo.h> > > #include <asm/mach-au1x00/au1000.h> > > +#include <prom.h> > > > > extern int (*board_pci_idsel)(unsigned int devsel, int assert); > > int mtx1_pci_idsel(unsigned int devsel, int assert); > > > > +char irq_tab_alchemy[][5] __initdata = { > > + [0] = { -1, INTA, INTA, INTX, INTX }, /* IDSEL 00 - AdapterA-Slot0 (top) */ > > + [1] = { -1, INTB, INTA, INTX, INTX }, /* IDSEL 01 - AdapterA-Slot1 (bottom) */ > > + [2] = { -1, INTC, INTD, INTX, INTX }, /* IDSEL 02 - AdapterB-Slot0 (top) */ > > + [3] = { -1, INTD, INTC, INTX, INTX }, /* IDSEL 03 - AdapterB-Slot1 (bottom) */ > > + [4] = { -1, INTA, INTB, INTX, INTX }, /* IDSEL 04 - AdapterC-Slot0 (top) */ > > + [5] = { -1, INTB, INTA, INTX, INTX }, /* IDSEL 05 - AdapterC-Slot1 (bottom) */ > > + [6] = { -1, INTC, INTD, INTX, INTX }, /* IDSEL 06 - AdapterD-Slot0 (top) */ > > + [7] = { -1, INTD, INTC, INTX, INTX }, /* IDSEL 07 - AdapterD-Slot1 (bottom) */ > > +}; > > + > > +struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { > > + { AU1500_GPIO_204, INTC_INT_HIGH_LEVEL, 0 }, > > + { AU1500_GPIO_201, INTC_INT_LOW_LEVEL, 0 }, > > + { AU1500_GPIO_202, INTC_INT_LOW_LEVEL, 0 }, > > + { AU1500_GPIO_203, INTC_INT_LOW_LEVEL, 0 }, > > + { AU1500_GPIO_205, INTC_INT_LOW_LEVEL, 0 }, > > +}; > > + > > +int __initdata au1xxx_nr_irqs = ARRAY_SIZE(au1xxx_irq_map); > > + > > + > > +const char *get_system_type(void) > > +{ > > + return "MTX-1"; > > +} > > + > > +void __init prom_init(void) > > +{ > > + unsigned char *memsize_str; > > + unsigned long memsize; > > + > > + prom_argc = fw_arg0; > > + prom_argv = (char **)fw_arg1; > > + prom_envp = (char **)fw_arg2; > > + > > + prom_init_cmdline(); > > + > > + memsize_str = prom_getenv("memsize"); > > + if (!memsize_str) > > + memsize = 0x04000000; > > + else > > + strict_strtol(memsize_str, 0, &memsize); > > + add_memory_region(0, memsize, BOOT_MEM_RAM); > > +} > > + > > void board_reset(void) > > { > > /* Hit BCSR.SYSTEM_CONTROL[SW_RST] */ > > @@ -95,4 +144,3 @@ mtx1_pci_idsel(unsigned int devsel, int assert) > > au_sync_udelay(1); > > return 1; > > } > > - > > diff --git a/arch/mips/alchemy/mtx-1/init.c b/arch/mips/alchemy/mtx-1/init.c > > deleted file mode 100644 > > index 3bae13c..0000000 > > --- a/arch/mips/alchemy/mtx-1/init.c > > +++ /dev/null > > @@ -1,60 +0,0 @@ > > -/* > > - * > > - * BRIEF MODULE DESCRIPTION > > - * 4G Systems MTX-1 board setup > > - * > > - * Copyright 2003, 2008 MontaVista Software Inc. > > - * Author: MontaVista Software, Inc. <source@xxxxxxxxxx> > > - * Bruno Randolf <bruno.randolf@xxxxxxxxxxxxxx> > > - * > > - * This program is free software; you can redistribute it and/or modify it > > - * under the terms of the GNU General Public License as published by the > > - * Free Software Foundation; either version 2 of the License, or (at your > > - * option) any later version. > > - * > > - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED > > - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF > > - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN > > - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, > > - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT > > - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF > > - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON > > - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > > - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF > > - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > > - * > > - * You should have received a copy of the GNU General Public License along > > - * with this program; if not, write to the Free Software Foundation, Inc., > > - * 675 Mass Ave, Cambridge, MA 02139, USA. > > - */ > > - > > -#include <linux/kernel.h> > > -#include <linux/init.h> > > - > > -#include <asm/bootinfo.h> > > - > > -#include <prom.h> > > - > > -const char *get_system_type(void) > > -{ > > - return "MTX-1"; > > -} > > - > > -void __init prom_init(void) > > -{ > > - unsigned char *memsize_str; > > - unsigned long memsize; > > - > > - prom_argc = fw_arg0; > > - prom_argv = (char **)fw_arg1; > > - prom_envp = (char **)fw_arg2; > > - > > - prom_init_cmdline(); > > - > > - memsize_str = prom_getenv("memsize"); > > - if (!memsize_str) > > - memsize = 0x04000000; > > - else > > - strict_strtol(memsize_str, 0, &memsize); > > - add_memory_region(0, memsize, BOOT_MEM_RAM); > > -} > > diff --git a/arch/mips/alchemy/mtx-1/irqmap.c b/arch/mips/alchemy/mtx-1/irqmap.c > > deleted file mode 100644 > > index f2bf029..0000000 > > --- a/arch/mips/alchemy/mtx-1/irqmap.c > > +++ /dev/null > > @@ -1,52 +0,0 @@ > > -/* > > - * BRIEF MODULE DESCRIPTION > > - * Au1xxx irq map table > > - * > > - * Copyright 2003 Embedded Edge, LLC > > - * dan@xxxxxxxxxxxxxxxx > > - * > > - * This program is free software; you can redistribute it and/or modify it > > - * under the terms of the GNU General Public License as published by the > > - * Free Software Foundation; either version 2 of the License, or (at your > > - * option) any later version. > > - * > > - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED > > - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF > > - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN > > - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, > > - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT > > - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF > > - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON > > - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > > - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF > > - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > > - * > > - * You should have received a copy of the GNU General Public License along > > - * with this program; if not, write to the Free Software Foundation, Inc., > > - * 675 Mass Ave, Cambridge, MA 02139, USA. > > - */ > > - > > -#include <linux/init.h> > > - > > -#include <asm/mach-au1x00/au1000.h> > > - > > -char irq_tab_alchemy[][5] __initdata = { > > - [0] = { -1, INTA, INTA, INTX, INTX }, /* IDSEL 00 - AdapterA-Slot0 (top) */ > > - [1] = { -1, INTB, INTA, INTX, INTX }, /* IDSEL 01 - AdapterA-Slot1 (bottom) */ > > - [2] = { -1, INTC, INTD, INTX, INTX }, /* IDSEL 02 - AdapterB-Slot0 (top) */ > > - [3] = { -1, INTD, INTC, INTX, INTX }, /* IDSEL 03 - AdapterB-Slot1 (bottom) */ > > - [4] = { -1, INTA, INTB, INTX, INTX }, /* IDSEL 04 - AdapterC-Slot0 (top) */ > > - [5] = { -1, INTB, INTA, INTX, INTX }, /* IDSEL 05 - AdapterC-Slot1 (bottom) */ > > - [6] = { -1, INTC, INTD, INTX, INTX }, /* IDSEL 06 - AdapterD-Slot0 (top) */ > > - [7] = { -1, INTD, INTC, INTX, INTX }, /* IDSEL 07 - AdapterD-Slot1 (bottom) */ > > -}; > > - > > -struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { > > - { AU1500_GPIO_204, INTC_INT_HIGH_LEVEL, 0 }, > > - { AU1500_GPIO_201, INTC_INT_LOW_LEVEL, 0 }, > > - { AU1500_GPIO_202, INTC_INT_LOW_LEVEL, 0 }, > > - { AU1500_GPIO_203, INTC_INT_LOW_LEVEL, 0 }, > > - { AU1500_GPIO_205, INTC_INT_LOW_LEVEL, 0 }, > > -}; > > - > > -int __initdata au1xxx_nr_irqs = ARRAY_SIZE(au1xxx_irq_map); > > diff --git a/arch/mips/alchemy/pb1000/Makefile b/arch/mips/alchemy/pb1000/Makefile > > index 99bbec0..4377ab3 100644 > > --- a/arch/mips/alchemy/pb1000/Makefile > > +++ b/arch/mips/alchemy/pb1000/Makefile > > @@ -5,4 +5,4 @@ > > # Makefile for the Alchemy Semiconductor Pb1000 board. > > # > > > > -lib-y := init.o board_setup.o irqmap.o > > +lib-y := board_setup.o > > diff --git a/arch/mips/alchemy/pb1000/board_setup.c b/arch/mips/alchemy/pb1000/board_setup.c > > index 25df167..bd0b6f4 100644 > > --- a/arch/mips/alchemy/pb1000/board_setup.c > > +++ b/arch/mips/alchemy/pb1000/board_setup.c > > @@ -23,11 +23,43 @@ > > * 675 Mass Ave, Cambridge, MA 02139, USA. > > */ > > > > -#include <linux/init.h> > > #include <linux/delay.h> > > - > > +#include <linux/init.h> > > +#include <linux/interrupt.h> > > +#include <linux/kernel.h> > > +#include <asm/bootinfo.h> > > #include <asm/mach-au1x00/au1000.h> > > #include <asm/mach-pb1x00/pb1000.h> > > +#include <prom.h> > > + > > +struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { > > + { AU1000_GPIO_15, INTC_INT_LOW_LEVEL, 0 }, > > +}; > > + > > +int __initdata au1xxx_nr_irqs = ARRAY_SIZE(au1xxx_irq_map); > > + > > +const char *get_system_type(void) > > +{ > > + return "Alchemy Pb1000"; > > +} > > + > > +void __init prom_init(void) > > +{ > > + unsigned char *memsize_str; > > + unsigned long memsize; > > + > > + prom_argc = (int)fw_arg0; > > + prom_argv = (char **)fw_arg1; > > + prom_envp = (char **)fw_arg2; > > + > > + prom_init_cmdline(); > > + memsize_str = prom_getenv("memsize"); > > + if (!memsize_str) > > + memsize = 0x04000000; > > + else > > + strict_strtol(memsize_str, 0, &memsize); > > + add_memory_region(0, memsize, BOOT_MEM_RAM); > > +} > > > > void board_reset(void) > > { > > diff --git a/arch/mips/alchemy/pb1000/init.c b/arch/mips/alchemy/pb1000/init.c > > deleted file mode 100644 > > index 8a9c7d5..0000000 > > --- a/arch/mips/alchemy/pb1000/init.c > > +++ /dev/null > > @@ -1,57 +0,0 @@ > > -/* > > - * BRIEF MODULE DESCRIPTION > > - * Pb1000 board setup > > - * > > - * Copyright 2001, 2008 MontaVista Software Inc. > > - * Author: MontaVista Software, Inc. <source@xxxxxxxxxx> > > - * > > - * This program is free software; you can redistribute it and/or modify it > > - * under the terms of the GNU General Public License as published by the > > - * Free Software Foundation; either version 2 of the License, or (at your > > - * option) any later version. > > - * > > - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED > > - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF > > - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN > > - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, > > - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT > > - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF > > - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON > > - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > > - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF > > - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > > - * > > - * You should have received a copy of the GNU General Public License along > > - * with this program; if not, write to the Free Software Foundation, Inc., > > - * 675 Mass Ave, Cambridge, MA 02139, USA. > > - */ > > - > > -#include <linux/init.h> > > -#include <linux/kernel.h> > > - > > -#include <asm/bootinfo.h> > > - > > -#include <prom.h> > > - > > -const char *get_system_type(void) > > -{ > > - return "Alchemy Pb1000"; > > -} > > - > > -void __init prom_init(void) > > -{ > > - unsigned char *memsize_str; > > - unsigned long memsize; > > - > > - prom_argc = (int)fw_arg0; > > - prom_argv = (char **)fw_arg1; > > - prom_envp = (char **)fw_arg2; > > - > > - prom_init_cmdline(); > > - memsize_str = prom_getenv("memsize"); > > - if (!memsize_str) > > - memsize = 0x04000000; > > - else > > - strict_strtol(memsize_str, 0, &memsize); > > - add_memory_region(0, memsize, BOOT_MEM_RAM); > > -} > > diff --git a/arch/mips/alchemy/pb1000/irqmap.c b/arch/mips/alchemy/pb1000/irqmap.c > > deleted file mode 100644 > > index b3d56b0..0000000 > > --- a/arch/mips/alchemy/pb1000/irqmap.c > > +++ /dev/null > > @@ -1,38 +0,0 @@ > > -/* > > - * BRIEF MODULE DESCRIPTION > > - * Au1xxx irq map table > > - * > > - * Copyright 2003 Embedded Edge, LLC > > - * dan@xxxxxxxxxxxxxxxx > > - * > > - * This program is free software; you can redistribute it and/or modify it > > - * under the terms of the GNU General Public License as published by the > > - * Free Software Foundation; either version 2 of the License, or (at your > > - * option) any later version. > > - * > > - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED > > - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF > > - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN > > - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, > > - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT > > - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF > > - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON > > - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > > - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF > > - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > > - * > > - * You should have received a copy of the GNU General Public License along > > - * with this program; if not, write to the Free Software Foundation, Inc., > > - * 675 Mass Ave, Cambridge, MA 02139, USA. > > - */ > > - > > -#include <linux/init.h> > > -#include <linux/interrupt.h> > > - > > -#include <asm/mach-au1x00/au1000.h> > > - > > -struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { > > - { AU1000_GPIO_15, INTC_INT_LOW_LEVEL, 0 }, > > -}; > > - > > -int __initdata au1xxx_nr_irqs = ARRAY_SIZE(au1xxx_irq_map); > > diff --git a/arch/mips/alchemy/pb1100/Makefile b/arch/mips/alchemy/pb1100/Makefile > > index 793e97c..627a75c 100644 > > --- a/arch/mips/alchemy/pb1100/Makefile > > +++ b/arch/mips/alchemy/pb1100/Makefile > > @@ -5,4 +5,4 @@ > > # Makefile for the Alchemy Semiconductor Pb1100 board. > > # > > > > -lib-y := init.o board_setup.o irqmap.o > > +lib-y := board_setup.o > > diff --git a/arch/mips/alchemy/pb1100/board_setup.c b/arch/mips/alchemy/pb1100/board_setup.c > > index c0bfd59..87da4a5 100644 > > --- a/arch/mips/alchemy/pb1100/board_setup.c > > +++ b/arch/mips/alchemy/pb1100/board_setup.c > > @@ -23,11 +23,49 @@ > > * 675 Mass Ave, Cambridge, MA 02139, USA. > > */ > > > > -#include <linux/init.h> > > #include <linux/delay.h> > > - > > +#include <linux/init.h> > > +#include <linux/interrupt.h> > > +#include <linux/kernel.h> > > +#include <asm/bootinfo.h> > > #include <asm/mach-au1x00/au1000.h> > > #include <asm/mach-pb1x00/pb1100.h> > > +#include <prom.h> > > + > > +struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { > > + { AU1000_GPIO_9, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card Fully_Inserted# */ > > + { AU1000_GPIO_10, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card STSCHG# */ > > + { AU1000_GPIO_11, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card IRQ# */ > > + { AU1000_GPIO_13, INTC_INT_LOW_LEVEL, 0 }, /* DC_IRQ# */ > > +}; > > + > > +int __initdata au1xxx_nr_irqs = ARRAY_SIZE(au1xxx_irq_map); > > + > > + > > +const char *get_system_type(void) > > +{ > > + return "Alchemy Pb1100"; > > +} > > + > > +void __init prom_init(void) > > +{ > > + unsigned char *memsize_str; > > + unsigned long memsize; > > + > > + prom_argc = fw_arg0; > > + prom_argv = (char **)fw_arg1; > > + prom_envp = (char **)fw_arg3; > > + > > + prom_init_cmdline(); > > + > > + memsize_str = prom_getenv("memsize"); > > + if (!memsize_str) > > + memsize = 0x04000000; > > + else > > + strict_strtol(memsize_str, 0, &memsize); > > + > > + add_memory_region(0, memsize, BOOT_MEM_RAM); > > +} > > > > void board_reset(void) > > { > > diff --git a/arch/mips/alchemy/pb1100/init.c b/arch/mips/alchemy/pb1100/init.c > > deleted file mode 100644 > > index 7c67923..0000000 > > --- a/arch/mips/alchemy/pb1100/init.c > > +++ /dev/null > > @@ -1,60 +0,0 @@ > > -/* > > - * > > - * BRIEF MODULE DESCRIPTION > > - * Pb1100 board setup > > - * > > - * Copyright 2002, 2008 MontaVista Software Inc. > > - * Author: MontaVista Software, Inc. <source@xxxxxxxxxx> > > - * > > - * This program is free software; you can redistribute it and/or modify it > > - * under the terms of the GNU General Public License as published by the > > - * Free Software Foundation; either version 2 of the License, or (at your > > - * option) any later version. > > - * > > - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED > > - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF > > - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN > > - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, > > - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT > > - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF > > - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON > > - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > > - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF > > - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > > - * > > - * You should have received a copy of the GNU General Public License along > > - * with this program; if not, write to the Free Software Foundation, Inc., > > - * 675 Mass Ave, Cambridge, MA 02139, USA. > > - */ > > - > > -#include <linux/init.h> > > -#include <linux/kernel.h> > > - > > -#include <asm/bootinfo.h> > > - > > -#include <prom.h> > > - > > -const char *get_system_type(void) > > -{ > > - return "Alchemy Pb1100"; > > -} > > - > > -void __init prom_init(void) > > -{ > > - unsigned char *memsize_str; > > - unsigned long memsize; > > - > > - prom_argc = fw_arg0; > > - prom_argv = (char **)fw_arg1; > > - prom_envp = (char **)fw_arg3; > > - > > - prom_init_cmdline(); > > - > > - memsize_str = prom_getenv("memsize"); > > - if (!memsize_str) > > - memsize = 0x04000000; > > - else > > - strict_strtol(memsize_str, 0, &memsize); > > - > > - add_memory_region(0, memsize, BOOT_MEM_RAM); > > -} > > diff --git a/arch/mips/alchemy/pb1100/irqmap.c b/arch/mips/alchemy/pb1100/irqmap.c > > deleted file mode 100644 > > index 9b7dd8b..0000000 > > --- a/arch/mips/alchemy/pb1100/irqmap.c > > +++ /dev/null > > @@ -1,40 +0,0 @@ > > -/* > > - * BRIEF MODULE DESCRIPTION > > - * Au1xx0 IRQ map table > > - * > > - * Copyright 2003 Embedded Edge, LLC > > - * dan@xxxxxxxxxxxxxxxx > > - * > > - * This program is free software; you can redistribute it and/or modify it > > - * under the terms of the GNU General Public License as published by the > > - * Free Software Foundation; either version 2 of the License, or (at your > > - * option) any later version. > > - * > > - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED > > - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF > > - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN > > - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, > > - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT > > - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF > > - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON > > - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > > - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF > > - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > > - * > > - * You should have received a copy of the GNU General Public License along > > - * with this program; if not, write to the Free Software Foundation, Inc., > > - * 675 Mass Ave, Cambridge, MA 02139, USA. > > - */ > > - > > -#include <linux/init.h> > > - > > -#include <asm/mach-au1x00/au1000.h> > > - > > -struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { > > - { AU1000_GPIO_9, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card Fully_Inserted# */ > > - { AU1000_GPIO_10, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card STSCHG# */ > > - { AU1000_GPIO_11, INTC_INT_LOW_LEVEL, 0 }, /* PCMCIA Card IRQ# */ > > - { AU1000_GPIO_13, INTC_INT_LOW_LEVEL, 0 }, /* DC_IRQ# */ > > -}; > > - > > -int __initdata au1xxx_nr_irqs = ARRAY_SIZE(au1xxx_irq_map); > > diff --git a/arch/mips/alchemy/pb1200/Makefile b/arch/mips/alchemy/pb1200/Makefile > > index d678adf..e9b9d27 100644 > > --- a/arch/mips/alchemy/pb1200/Makefile > > +++ b/arch/mips/alchemy/pb1200/Makefile > > @@ -2,7 +2,7 @@ > > # Makefile for the Alchemy Semiconductor Pb1200/DBAu1200 boards. > > # > > > > -lib-y := init.o board_setup.o irqmap.o > > +lib-y := board_setup.o > > obj-y += platform.o > > > > EXTRA_CFLAGS += -Werror > > diff --git a/arch/mips/alchemy/pb1200/board_setup.c b/arch/mips/alchemy/pb1200/board_setup.c > > index 6cb2115..a336a7a 100644 > > --- a/arch/mips/alchemy/pb1200/board_setup.c > > +++ b/arch/mips/alchemy/pb1200/board_setup.c > > @@ -25,14 +25,168 @@ > > */ > > > > #include <linux/init.h> > > -#include <linux/sched.h> > > +#include <linux/interrupt.h> > > +#include <asm/bootinfo.h> > > +#include <asm/mach-au1x00/au1000.h> > > + > > +#ifdef CONFIG_MIPS_PB1200 > > +#include <asm/mach-pb1x00/pb1200.h> > > +#endif > > + > > +#ifdef CONFIG_MIPS_DB1200 > > +#include <asm/mach-db1x00/db1200.h> > > +#define PB1200_INT_BEGIN DB1200_INT_BEGIN > > +#define PB1200_INT_END DB1200_INT_END > > +#endif > > > > #include <prom.h> > > -#include <au1xxx.h> > > > > -extern void _board_init_irq(void); > > extern void (*board_init_irq)(void); > > > > +struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { > > + /* This is external interrupt cascade */ > > + { AU1000_GPIO_7, INTC_INT_LOW_LEVEL, 0 }, > > +}; > > + > > +int __initdata au1xxx_nr_irqs = ARRAY_SIZE(au1xxx_irq_map); > > + > > +/* > > + * Support for External interrupts on the Pb1200 Development platform. > > + */ > > +static volatile int pb1200_cascade_en; > > + > > +irqreturn_t pb1200_cascade_handler(int irq, void *dev_id) > > +{ > > + unsigned short bisr = bcsr->int_status; > > + int extirq_nr = 0; > > + > > + /* Clear all the edge interrupts. This has no effect on level. */ > > + bcsr->int_status = bisr; > > + for ( ; bisr; bisr &= bisr - 1) { > > + extirq_nr = PB1200_INT_BEGIN + __ffs(bisr); > > + /* Ack and dispatch IRQ */ > > + do_IRQ(extirq_nr); > > + } > > + > > + return IRQ_RETVAL(1); > > +} > > + > > +inline void pb1200_enable_irq(unsigned int irq_nr) > > +{ > > + bcsr->intset_mask = 1 << (irq_nr - PB1200_INT_BEGIN); > > + bcsr->intset = 1 << (irq_nr - PB1200_INT_BEGIN); > > +} > > + > > +inline void pb1200_disable_irq(unsigned int irq_nr) > > +{ > > + bcsr->intclr_mask = 1 << (irq_nr - PB1200_INT_BEGIN); > > + bcsr->intclr = 1 << (irq_nr - PB1200_INT_BEGIN); > > +} > > + > > +static unsigned int pb1200_setup_cascade(void) > > +{ > > + return request_irq(AU1000_GPIO_7, &pb1200_cascade_handler, > > + 0, "Pb1200 Cascade", &pb1200_cascade_handler); > > +} > > + > > +static unsigned int pb1200_startup_irq(unsigned int irq) > > +{ > > + if (++pb1200_cascade_en == 1) { > > + int res; > > + > > + res = pb1200_setup_cascade(); > > + if (res) > > + return res; > > + } > > + > > + pb1200_enable_irq(irq); > > + > > + return 0; > > +} > > + > > +static void pb1200_shutdown_irq(unsigned int irq) > > +{ > > + pb1200_disable_irq(irq); > > + if (--pb1200_cascade_en == 0) > > + free_irq(AU1000_GPIO_7, &pb1200_cascade_handler); > > +} > > + > > +static struct irq_chip external_irq_type = { > > +#ifdef CONFIG_MIPS_PB1200 > > + .name = "Pb1200 Ext", > > +#endif > > +#ifdef CONFIG_MIPS_DB1200 > > + .name = "Db1200 Ext", > > +#endif > > + .startup = pb1200_startup_irq, > > + .shutdown = pb1200_shutdown_irq, > > + .ack = pb1200_disable_irq, > > + .mask = pb1200_disable_irq, > > + .mask_ack = pb1200_disable_irq, > > + .unmask = pb1200_enable_irq, > > +}; > > + > > +static void pb1200_init_irq(void) > > +{ > > + unsigned int irq; > > + > > +#ifdef CONFIG_MIPS_PB1200 > > + /* We have a problem with CPLD rev 3. */ > > + if (((bcsr->whoami & BCSR_WHOAMI_CPLD) >> 4) <= 3) { > > + printk(KERN_ERR "WARNING!!!\n"); > > + printk(KERN_ERR "WARNING!!!\n"); > > + printk(KERN_ERR "WARNING!!!\n"); > > + printk(KERN_ERR "WARNING!!!\n"); > > + printk(KERN_ERR "WARNING!!!\n"); > > + printk(KERN_ERR "WARNING!!!\n"); > > + printk(KERN_ERR "Pb1200 must be at CPLD rev 4. Please have Pb1200\n"); > > + printk(KERN_ERR "updated to latest revision. This software will\n"); > > + printk(KERN_ERR "not work on anything less than CPLD rev 4.\n"); > > + printk(KERN_ERR "WARNING!!!\n"); > > + printk(KERN_ERR "WARNING!!!\n"); > > + printk(KERN_ERR "WARNING!!!\n"); > > + printk(KERN_ERR "WARNING!!!\n"); > > + printk(KERN_ERR "WARNING!!!\n"); > > + printk(KERN_ERR "WARNING!!!\n"); > > + panic("Game over. Your score is 0."); > > + } > > +#endif > > + > > + for (irq = PB1200_INT_BEGIN; irq <= PB1200_INT_END; irq++) { > > + set_irq_chip_and_handler(irq, &external_irq_type, > > + handle_level_irq); > > + pb1200_disable_irq(irq); > > + } > > + > > + /* > > + * GPIO_7 can not be hooked here, so it is hooked upon first > > + * request of any source attached to the cascade. > > + */ > > +} > > + > > +const char *get_system_type(void) > > +{ > > + return "Alchemy Pb1200"; > > +} > > + > > +void __init prom_init(void) > > +{ > > + unsigned char *memsize_str; > > + unsigned long memsize; > > + > > + prom_argc = (int)fw_arg0; > > + prom_argv = (char **)fw_arg1; > > + prom_envp = (char **)fw_arg2; > > + > > + prom_init_cmdline(); > > + memsize_str = prom_getenv("memsize"); > > + if (!memsize_str) > > + memsize = 0x08000000; > > + else > > + strict_strtol(memsize_str, 0, &memsize); > > + add_memory_region(0, memsize, BOOT_MEM_RAM); > > +} > > + > > void board_reset(void) > > { > > bcsr->resets = 0; > > @@ -126,7 +280,7 @@ void __init board_setup(void) > > #endif > > > > /* Setup Pb1200 External Interrupt Controller */ > > - board_init_irq = _board_init_irq; > > + board_init_irq = pb1200_init_irq; > > } > > > > int board_au1200fb_panel(void) > > diff --git a/arch/mips/alchemy/pb1200/init.c b/arch/mips/alchemy/pb1200/init.c > > deleted file mode 100644 > > index e9b2a0f..0000000 > > --- a/arch/mips/alchemy/pb1200/init.c > > +++ /dev/null > > @@ -1,58 +0,0 @@ > > -/* > > - * > > - * BRIEF MODULE DESCRIPTION > > - * PB1200 board setup > > - * > > - * Copyright 2001, 2008 MontaVista Software Inc. > > - * Author: MontaVista Software, Inc. <source@xxxxxxxxxx> > > - * > > - * This program is free software; you can redistribute it and/or modify it > > - * under the terms of the GNU General Public License as published by the > > - * Free Software Foundation; either version 2 of the License, or (at your > > - * option) any later version. > > - * > > - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED > > - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF > > - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN > > - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, > > - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT > > - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF > > - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON > > - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > > - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF > > - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > > - * > > - * You should have received a copy of the GNU General Public License along > > - * with this program; if not, write to the Free Software Foundation, Inc., > > - * 675 Mass Ave, Cambridge, MA 02139, USA. > > - */ > > - > > -#include <linux/init.h> > > -#include <linux/kernel.h> > > - > > -#include <asm/bootinfo.h> > > - > > -#include <prom.h> > > - > > -const char *get_system_type(void) > > -{ > > - return "Alchemy Pb1200"; > > -} > > - > > -void __init prom_init(void) > > -{ > > - unsigned char *memsize_str; > > - unsigned long memsize; > > - > > - prom_argc = (int)fw_arg0; > > - prom_argv = (char **)fw_arg1; > > - prom_envp = (char **)fw_arg2; > > - > > - prom_init_cmdline(); > > - memsize_str = prom_getenv("memsize"); > > - if (!memsize_str) > > - memsize = 0x08000000; > > - else > > - strict_strtol(memsize_str, 0, &memsize); > > - add_memory_region(0, memsize, BOOT_MEM_RAM); > > -} > > diff --git a/arch/mips/alchemy/pb1200/irqmap.c b/arch/mips/alchemy/pb1200/irqmap.c > > deleted file mode 100644 > > index 2a505ad..0000000 > > --- a/arch/mips/alchemy/pb1200/irqmap.c > > +++ /dev/null > > @@ -1,160 +0,0 @@ > > -/* > > - * BRIEF MODULE DESCRIPTION > > - * Au1xxx irq map table > > - * > > - * This program is free software; you can redistribute it and/or modify it > > - * under the terms of the GNU General Public License as published by the > > - * Free Software Foundation; either version 2 of the License, or (at your > > - * option) any later version. > > - * > > - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED > > - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF > > - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN > > - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, > > - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT > > - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF > > - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON > > - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > > - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF > > - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > > - * > > - * You should have received a copy of the GNU General Public License along > > - * with this program; if not, write to the Free Software Foundation, Inc., > > - * 675 Mass Ave, Cambridge, MA 02139, USA. > > - */ > > - > > -#include <linux/init.h> > > -#include <linux/interrupt.h> > > - > > -#include <asm/mach-au1x00/au1000.h> > > - > > -#ifdef CONFIG_MIPS_PB1200 > > -#include <asm/mach-pb1x00/pb1200.h> > > -#endif > > - > > -#ifdef CONFIG_MIPS_DB1200 > > -#include <asm/mach-db1x00/db1200.h> > > -#define PB1200_INT_BEGIN DB1200_INT_BEGIN > > -#define PB1200_INT_END DB1200_INT_END > > -#endif > > - > > -struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { > > - /* This is external interrupt cascade */ > > - { AU1000_GPIO_7, INTC_INT_LOW_LEVEL, 0 }, > > -}; > > - > > -int __initdata au1xxx_nr_irqs = ARRAY_SIZE(au1xxx_irq_map); > > - > > -/* > > - * Support for External interrupts on the Pb1200 Development platform. > > - */ > > -static volatile int pb1200_cascade_en; > > - > > -irqreturn_t pb1200_cascade_handler(int irq, void *dev_id) > > -{ > > - unsigned short bisr = bcsr->int_status; > > - int extirq_nr = 0; > > - > > - /* Clear all the edge interrupts. This has no effect on level. */ > > - bcsr->int_status = bisr; > > - for ( ; bisr; bisr &= bisr - 1) { > > - extirq_nr = PB1200_INT_BEGIN + __ffs(bisr); > > - /* Ack and dispatch IRQ */ > > - do_IRQ(extirq_nr); > > - } > > - > > - return IRQ_RETVAL(1); > > -} > > - > > -inline void pb1200_enable_irq(unsigned int irq_nr) > > -{ > > - bcsr->intset_mask = 1 << (irq_nr - PB1200_INT_BEGIN); > > - bcsr->intset = 1 << (irq_nr - PB1200_INT_BEGIN); > > -} > > - > > -inline void pb1200_disable_irq(unsigned int irq_nr) > > -{ > > - bcsr->intclr_mask = 1 << (irq_nr - PB1200_INT_BEGIN); > > - bcsr->intclr = 1 << (irq_nr - PB1200_INT_BEGIN); > > -} > > - > > -static unsigned int pb1200_setup_cascade(void) > > -{ > > - return request_irq(AU1000_GPIO_7, &pb1200_cascade_handler, > > - 0, "Pb1200 Cascade", &pb1200_cascade_handler); > > -} > > - > > -static unsigned int pb1200_startup_irq(unsigned int irq) > > -{ > > - if (++pb1200_cascade_en == 1) { > > - int res; > > - > > - res = pb1200_setup_cascade(); > > - if (res) > > - return res; > > - } > > - > > - pb1200_enable_irq(irq); > > - > > - return 0; > > -} > > - > > -static void pb1200_shutdown_irq(unsigned int irq) > > -{ > > - pb1200_disable_irq(irq); > > - if (--pb1200_cascade_en == 0) > > - free_irq(AU1000_GPIO_7, &pb1200_cascade_handler); > > -} > > - > > -static struct irq_chip external_irq_type = { > > -#ifdef CONFIG_MIPS_PB1200 > > - .name = "Pb1200 Ext", > > -#endif > > -#ifdef CONFIG_MIPS_DB1200 > > - .name = "Db1200 Ext", > > -#endif > > - .startup = pb1200_startup_irq, > > - .shutdown = pb1200_shutdown_irq, > > - .ack = pb1200_disable_irq, > > - .mask = pb1200_disable_irq, > > - .mask_ack = pb1200_disable_irq, > > - .unmask = pb1200_enable_irq, > > -}; > > - > > -void _board_init_irq(void) > > -{ > > - unsigned int irq; > > - > > -#ifdef CONFIG_MIPS_PB1200 > > - /* We have a problem with CPLD rev 3. */ > > - if (((bcsr->whoami & BCSR_WHOAMI_CPLD) >> 4) <= 3) { > > - printk(KERN_ERR "WARNING!!!\n"); > > - printk(KERN_ERR "WARNING!!!\n"); > > - printk(KERN_ERR "WARNING!!!\n"); > > - printk(KERN_ERR "WARNING!!!\n"); > > - printk(KERN_ERR "WARNING!!!\n"); > > - printk(KERN_ERR "WARNING!!!\n"); > > - printk(KERN_ERR "Pb1200 must be at CPLD rev 4. Please have Pb1200\n"); > > - printk(KERN_ERR "updated to latest revision. This software will\n"); > > - printk(KERN_ERR "not work on anything less than CPLD rev 4.\n"); > > - printk(KERN_ERR "WARNING!!!\n"); > > - printk(KERN_ERR "WARNING!!!\n"); > > - printk(KERN_ERR "WARNING!!!\n"); > > - printk(KERN_ERR "WARNING!!!\n"); > > - printk(KERN_ERR "WARNING!!!\n"); > > - printk(KERN_ERR "WARNING!!!\n"); > > - panic("Game over. Your score is 0."); > > - } > > -#endif > > - > > - for (irq = PB1200_INT_BEGIN; irq <= PB1200_INT_END; irq++) { > > - set_irq_chip_and_handler(irq, &external_irq_type, > > - handle_level_irq); > > - pb1200_disable_irq(irq); > > - } > > - > > - /* > > - * GPIO_7 can not be hooked here, so it is hooked upon first > > - * request of any source attached to the cascade. > > - */ > > -} > > diff --git a/arch/mips/alchemy/pb1500/Makefile b/arch/mips/alchemy/pb1500/Makefile > > index 602f38d..4664d61 100644 > > --- a/arch/mips/alchemy/pb1500/Makefile > > +++ b/arch/mips/alchemy/pb1500/Makefile > > @@ -5,4 +5,4 @@ > > # Makefile for the Alchemy Semiconductor Pb1500 board. > > # > > > > -lib-y := init.o board_setup.o irqmap.o > > +lib-y := board_setup.o > > diff --git a/arch/mips/alchemy/pb1500/board_setup.c b/arch/mips/alchemy/pb1500/board_setup.c > > index 035771c..1be1afc 100644 > > --- a/arch/mips/alchemy/pb1500/board_setup.c > > +++ b/arch/mips/alchemy/pb1500/board_setup.c > > @@ -23,11 +23,53 @@ > > * 675 Mass Ave, Cambridge, MA 02139, USA. > > */ > > > > -#include <linux/init.h> > > #include <linux/delay.h> > > - > > +#include <linux/init.h> > > +#include <linux/interrupt.h> > > +#include <linux/kernel.h> > > +#include <asm/bootinfo.h> > > #include <asm/mach-au1x00/au1000.h> > > #include <asm/mach-pb1x00/pb1500.h> > > +#include <prom.h> > > + > > +char irq_tab_alchemy[][5] __initdata = { > > + [12] = { -1, INTA, INTX, INTX, INTX }, /* IDSEL 12 - HPT370 */ > > + [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot */ > > +}; > > + > > +struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { > > + { AU1500_GPIO_204, INTC_INT_HIGH_LEVEL, 0 }, > > + { AU1500_GPIO_201, INTC_INT_LOW_LEVEL, 0 }, > > + { AU1500_GPIO_202, INTC_INT_LOW_LEVEL, 0 }, > > + { AU1500_GPIO_203, INTC_INT_LOW_LEVEL, 0 }, > > + { AU1500_GPIO_205, INTC_INT_LOW_LEVEL, 0 }, > > +}; > > + > > +int __initdata au1xxx_nr_irqs = ARRAY_SIZE(au1xxx_irq_map); > > + > > + > > +const char *get_system_type(void) > > +{ > > + return "Alchemy Pb1500"; > > +} > > + > > +void __init prom_init(void) > > +{ > > + unsigned char *memsize_str; > > + unsigned long memsize; > > + > > + prom_argc = (int)fw_arg0; > > + prom_argv = (char **)fw_arg1; > > + prom_envp = (char **)fw_arg2; > > + > > + prom_init_cmdline(); > > + memsize_str = prom_getenv("memsize"); > > + if (!memsize_str) > > + memsize = 0x04000000; > > + else > > + strict_strtol(memsize_str, 0, &memsize); > > + add_memory_region(0, memsize, BOOT_MEM_RAM); > > +} > > > > void board_reset(void) > > { > > diff --git a/arch/mips/alchemy/pb1500/init.c b/arch/mips/alchemy/pb1500/init.c > > deleted file mode 100644 > > index 3b6e395..0000000 > > --- a/arch/mips/alchemy/pb1500/init.c > > +++ /dev/null > > @@ -1,58 +0,0 @@ > > -/* > > - * > > - * BRIEF MODULE DESCRIPTION > > - * Pb1500 board setup > > - * > > - * Copyright 2001, 2008 MontaVista Software Inc. > > - * Author: MontaVista Software, Inc. <source@xxxxxxxxxx> > > - * > > - * This program is free software; you can redistribute it and/or modify it > > - * under the terms of the GNU General Public License as published by the > > - * Free Software Foundation; either version 2 of the License, or (at your > > - * option) any later version. > > - * > > - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED > > - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF > > - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN > > - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, > > - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT > > - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF > > - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON > > - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > > - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF > > - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > > - * > > - * You should have received a copy of the GNU General Public License along > > - * with this program; if not, write to the Free Software Foundation, Inc., > > - * 675 Mass Ave, Cambridge, MA 02139, USA. > > - */ > > - > > -#include <linux/init.h> > > -#include <linux/kernel.h> > > - > > -#include <asm/bootinfo.h> > > - > > -#include <prom.h> > > - > > -const char *get_system_type(void) > > -{ > > - return "Alchemy Pb1500"; > > -} > > - > > -void __init prom_init(void) > > -{ > > - unsigned char *memsize_str; > > - unsigned long memsize; > > - > > - prom_argc = (int)fw_arg0; > > - prom_argv = (char **)fw_arg1; > > - prom_envp = (char **)fw_arg2; > > - > > - prom_init_cmdline(); > > - memsize_str = prom_getenv("memsize"); > > - if (!memsize_str) > > - memsize = 0x04000000; > > - else > > - strict_strtol(memsize_str, 0, &memsize); > > - add_memory_region(0, memsize, BOOT_MEM_RAM); > > -} > > diff --git a/arch/mips/alchemy/pb1500/irqmap.c b/arch/mips/alchemy/pb1500/irqmap.c > > deleted file mode 100644 > > index 39c4682..0000000 > > --- a/arch/mips/alchemy/pb1500/irqmap.c > > +++ /dev/null > > @@ -1,46 +0,0 @@ > > -/* > > - * BRIEF MODULE DESCRIPTION > > - * Au1xxx irq map table > > - * > > - * Copyright 2003 Embedded Edge, LLC > > - * dan@xxxxxxxxxxxxxxxx > > - * > > - * This program is free software; you can redistribute it and/or modify it > > - * under the terms of the GNU General Public License as published by the > > - * Free Software Foundation; either version 2 of the License, or (at your > > - * option) any later version. > > - * > > - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED > > - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF > > - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN > > - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, > > - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT > > - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF > > - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON > > - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > > - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF > > - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > > - * > > - * You should have received a copy of the GNU General Public License along > > - * with this program; if not, write to the Free Software Foundation, Inc., > > - * 675 Mass Ave, Cambridge, MA 02139, USA. > > - */ > > - > > -#include <linux/init.h> > > - > > -#include <asm/mach-au1x00/au1000.h> > > - > > -char irq_tab_alchemy[][5] __initdata = { > > - [12] = { -1, INTA, INTX, INTX, INTX }, /* IDSEL 12 - HPT370 */ > > - [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot */ > > -}; > > - > > -struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { > > - { AU1500_GPIO_204, INTC_INT_HIGH_LEVEL, 0 }, > > - { AU1500_GPIO_201, INTC_INT_LOW_LEVEL, 0 }, > > - { AU1500_GPIO_202, INTC_INT_LOW_LEVEL, 0 }, > > - { AU1500_GPIO_203, INTC_INT_LOW_LEVEL, 0 }, > > - { AU1500_GPIO_205, INTC_INT_LOW_LEVEL, 0 }, > > -}; > > - > > -int __initdata au1xxx_nr_irqs = ARRAY_SIZE(au1xxx_irq_map); > > diff --git a/arch/mips/alchemy/pb1550/Makefile b/arch/mips/alchemy/pb1550/Makefile > > index 7d8beca..7e6453d 100644 > > --- a/arch/mips/alchemy/pb1550/Makefile > > +++ b/arch/mips/alchemy/pb1550/Makefile > > @@ -5,4 +5,4 @@ > > # Makefile for the Alchemy Semiconductor Pb1550 board. > > # > > > > -lib-y := init.o board_setup.o irqmap.o > > +lib-y := board_setup.o > > diff --git a/arch/mips/alchemy/pb1550/board_setup.c b/arch/mips/alchemy/pb1550/board_setup.c > > index 0ed76b6..e844484 100644 > > --- a/arch/mips/alchemy/pb1550/board_setup.c > > +++ b/arch/mips/alchemy/pb1550/board_setup.c > > @@ -28,9 +28,48 @@ > > */ > > > > #include <linux/init.h> > > - > > +#include <linux/interrupt.h> > > +#include <linux/kernel.h> > > +#include <asm/bootinfo.h> > > #include <asm/mach-au1x00/au1000.h> > > #include <asm/mach-pb1x00/pb1550.h> > > +#include <prom.h> > > + > > +char irq_tab_alchemy[][5] __initdata = { > > + [12] = { -1, INTB, INTC, INTD, INTA }, /* IDSEL 12 - PCI slot 2 (left) */ > > + [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot 1 (right) */ > > +}; > > + > > +struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { > > + { AU1000_GPIO_0, INTC_INT_LOW_LEVEL, 0 }, > > + { AU1000_GPIO_1, INTC_INT_LOW_LEVEL, 0 }, > > +}; > > + > > +int __initdata au1xxx_nr_irqs = ARRAY_SIZE(au1xxx_irq_map); > > + > > + > > +const char *get_system_type(void) > > +{ > > + return "Alchemy Pb1550"; > > +} > > + > > +void __init prom_init(void) > > +{ > > + unsigned char *memsize_str; > > + unsigned long memsize; > > + > > + prom_argc = (int)fw_arg0; > > + prom_argv = (char **)fw_arg1; > > + prom_envp = (char **)fw_arg2; > > + > > + prom_init_cmdline(); > > + memsize_str = prom_getenv("memsize"); > > + if (!memsize_str) > > + memsize = 0x08000000; > > + else > > + strict_strtol(memsize_str, 0, &memsize); > > + add_memory_region(0, memsize, BOOT_MEM_RAM); > > +} > > > > void board_reset(void) > > { > > diff --git a/arch/mips/alchemy/pb1550/init.c b/arch/mips/alchemy/pb1550/init.c > > deleted file mode 100644 > > index e1055a1..0000000 > > --- a/arch/mips/alchemy/pb1550/init.c > > +++ /dev/null > > @@ -1,58 +0,0 @@ > > -/* > > - * > > - * BRIEF MODULE DESCRIPTION > > - * Pb1550 board setup > > - * > > - * Copyright 2001, 2008 MontaVista Software Inc. > > - * Author: MontaVista Software, Inc. <source@xxxxxxxxxx> > > - * > > - * This program is free software; you can redistribute it and/or modify it > > - * under the terms of the GNU General Public License as published by the > > - * Free Software Foundation; either version 2 of the License, or (at your > > - * option) any later version. > > - * > > - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED > > - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF > > - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN > > - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, > > - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT > > - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF > > - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON > > - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > > - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF > > - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > > - * > > - * You should have received a copy of the GNU General Public License along > > - * with this program; if not, write to the Free Software Foundation, Inc., > > - * 675 Mass Ave, Cambridge, MA 02139, USA. > > - */ > > - > > -#include <linux/init.h> > > -#include <linux/kernel.h> > > - > > -#include <asm/bootinfo.h> > > - > > -#include <prom.h> > > - > > -const char *get_system_type(void) > > -{ > > - return "Alchemy Pb1550"; > > -} > > - > > -void __init prom_init(void) > > -{ > > - unsigned char *memsize_str; > > - unsigned long memsize; > > - > > - prom_argc = (int)fw_arg0; > > - prom_argv = (char **)fw_arg1; > > - prom_envp = (char **)fw_arg2; > > - > > - prom_init_cmdline(); > > - memsize_str = prom_getenv("memsize"); > > - if (!memsize_str) > > - memsize = 0x08000000; > > - else > > - strict_strtol(memsize_str, 0, &memsize); > > - add_memory_region(0, memsize, BOOT_MEM_RAM); > > -} > > diff --git a/arch/mips/alchemy/pb1550/irqmap.c b/arch/mips/alchemy/pb1550/irqmap.c > > deleted file mode 100644 > > index a02a4d1..0000000 > > --- a/arch/mips/alchemy/pb1550/irqmap.c > > +++ /dev/null > > @@ -1,43 +0,0 @@ > > -/* > > - * BRIEF MODULE DESCRIPTION > > - * Au1xx0 IRQ map table > > - * > > - * Copyright 2003 Embedded Edge, LLC > > - * dan@xxxxxxxxxxxxxxxx > > - * > > - * This program is free software; you can redistribute it and/or modify it > > - * under the terms of the GNU General Public License as published by the > > - * Free Software Foundation; either version 2 of the License, or (at your > > - * option) any later version. > > - * > > - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED > > - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF > > - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN > > - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, > > - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT > > - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF > > - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON > > - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > > - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF > > - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > > - * > > - * You should have received a copy of the GNU General Public License along > > - * with this program; if not, write to the Free Software Foundation, Inc., > > - * 675 Mass Ave, Cambridge, MA 02139, USA. > > - */ > > - > > -#include <linux/init.h> > > - > > -#include <asm/mach-au1x00/au1000.h> > > - > > -char irq_tab_alchemy[][5] __initdata = { > > - [12] = { -1, INTB, INTC, INTD, INTA }, /* IDSEL 12 - PCI slot 2 (left) */ > > - [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot 1 (right) */ > > -}; > > - > > -struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { > > - { AU1000_GPIO_0, INTC_INT_LOW_LEVEL, 0 }, > > - { AU1000_GPIO_1, INTC_INT_LOW_LEVEL, 0 }, > > -}; > > - > > -int __initdata au1xxx_nr_irqs = ARRAY_SIZE(au1xxx_irq_map); > > diff --git a/arch/mips/alchemy/xxs1500/Makefile b/arch/mips/alchemy/xxs1500/Makefile > > index db3c526..9ec3b54 100644 > > --- a/arch/mips/alchemy/xxs1500/Makefile > > +++ b/arch/mips/alchemy/xxs1500/Makefile > > @@ -5,4 +5,4 @@ > > # Makefile for MyCable XXS1500 board. > > # > > > > -lib-y := init.o board_setup.o irqmap.o > > +lib-y := board_setup.o > > diff --git a/arch/mips/alchemy/xxs1500/board_setup.c b/arch/mips/alchemy/xxs1500/board_setup.c > > index 4c587ac..813668f 100644 > > --- a/arch/mips/alchemy/xxs1500/board_setup.c > > +++ b/arch/mips/alchemy/xxs1500/board_setup.c > > @@ -23,10 +23,56 @@ > > * 675 Mass Ave, Cambridge, MA 02139, USA. > > */ > > > > -#include <linux/init.h> > > #include <linux/delay.h> > > - > > +#include <linux/init.h> > > +#include <linux/interrupt.h> > > +#include <linux/kernel.h> > > +#include <asm/bootinfo.h> > > #include <asm/mach-au1x00/au1000.h> > > +#include <prom.h> > > + > > +struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { > > + { AU1500_GPIO_204, INTC_INT_HIGH_LEVEL, 0 }, > > + { AU1500_GPIO_201, INTC_INT_LOW_LEVEL, 0 }, > > + { AU1500_GPIO_202, INTC_INT_LOW_LEVEL, 0 }, > > + { AU1500_GPIO_203, INTC_INT_LOW_LEVEL, 0 }, > > + { AU1500_GPIO_205, INTC_INT_LOW_LEVEL, 0 }, > > + { AU1500_GPIO_207, INTC_INT_LOW_LEVEL, 0 }, > > + > > + { AU1000_GPIO_0, INTC_INT_LOW_LEVEL, 0 }, > > + { AU1000_GPIO_1, INTC_INT_LOW_LEVEL, 0 }, > > + { AU1000_GPIO_2, INTC_INT_LOW_LEVEL, 0 }, > > + { AU1000_GPIO_3, INTC_INT_LOW_LEVEL, 0 }, > > + { AU1000_GPIO_4, INTC_INT_LOW_LEVEL, 0 }, /* CF interrupt */ > > + { AU1000_GPIO_5, INTC_INT_LOW_LEVEL, 0 }, > > +}; > > + > > +int __initdata au1xxx_nr_irqs = ARRAY_SIZE(au1xxx_irq_map); > > + > > + > > +const char *get_system_type(void) > > +{ > > + return "XXS1500"; > > +} > > + > > +void __init prom_init(void) > > +{ > > + unsigned char *memsize_str; > > + unsigned long memsize; > > + > > + prom_argc = fw_arg0; > > + prom_argv = (char **)fw_arg1; > > + prom_envp = (char **)fw_arg2; > > + > > + prom_init_cmdline(); > > + > > + memsize_str = prom_getenv("memsize"); > > + if (!memsize_str) > > + memsize = 0x04000000; > > + else > > + strict_strtol(memsize_str, 0, &memsize); > > + add_memory_region(0, memsize, BOOT_MEM_RAM); > > +} > > > > void board_reset(void) > > { > > diff --git a/arch/mips/alchemy/xxs1500/init.c b/arch/mips/alchemy/xxs1500/init.c > > deleted file mode 100644 > > index 7516434..0000000 > > --- a/arch/mips/alchemy/xxs1500/init.c > > +++ /dev/null > > @@ -1,58 +0,0 @@ > > -/* > > - * BRIEF MODULE DESCRIPTION > > - * XXS1500 board setup > > - * > > - * Copyright 2003, 2008 MontaVista Software Inc. > > - * Author: MontaVista Software, Inc. <source@xxxxxxxxxx> > > - * > > - * This program is free software; you can redistribute it and/or modify it > > - * under the terms of the GNU General Public License as published by the > > - * Free Software Foundation; either version 2 of the License, or (at your > > - * option) any later version. > > - * > > - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED > > - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF > > - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN > > - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, > > - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT > > - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF > > - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON > > - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > > - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF > > - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > > - * > > - * You should have received a copy of the GNU General Public License along > > - * with this program; if not, write to the Free Software Foundation, Inc., > > - * 675 Mass Ave, Cambridge, MA 02139, USA. > > - */ > > - > > -#include <linux/init.h> > > -#include <linux/kernel.h> > > - > > -#include <asm/bootinfo.h> > > - > > -#include <prom.h> > > - > > -const char *get_system_type(void) > > -{ > > - return "XXS1500"; > > -} > > - > > -void __init prom_init(void) > > -{ > > - unsigned char *memsize_str; > > - unsigned long memsize; > > - > > - prom_argc = fw_arg0; > > - prom_argv = (char **)fw_arg1; > > - prom_envp = (char **)fw_arg2; > > - > > - prom_init_cmdline(); > > - > > - memsize_str = prom_getenv("memsize"); > > - if (!memsize_str) > > - memsize = 0x04000000; > > - else > > - strict_strtol(memsize_str, 0, &memsize); > > - add_memory_region(0, memsize, BOOT_MEM_RAM); > > -} > > diff --git a/arch/mips/alchemy/xxs1500/irqmap.c b/arch/mips/alchemy/xxs1500/irqmap.c > > deleted file mode 100644 > > index edf06ed..0000000 > > --- a/arch/mips/alchemy/xxs1500/irqmap.c > > +++ /dev/null > > @@ -1,49 +0,0 @@ > > -/* > > - * BRIEF MODULE DESCRIPTION > > - * Au1xxx irq map table > > - * > > - * Copyright 2003 Embedded Edge, LLC > > - * dan@xxxxxxxxxxxxxxxx > > - * > > - * This program is free software; you can redistribute it and/or modify it > > - * under the terms of the GNU General Public License as published by the > > - * Free Software Foundation; either version 2 of the License, or (at your > > - * option) any later version. > > - * > > - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED > > - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF > > - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN > > - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, > > - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT > > - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF > > - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON > > - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > > - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF > > - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > > - * > > - * You should have received a copy of the GNU General Public License along > > - * with this program; if not, write to the Free Software Foundation, Inc., > > - * 675 Mass Ave, Cambridge, MA 02139, USA. > > - */ > > - > > -#include <linux/init.h> > > - > > -#include <asm/mach-au1x00/au1000.h> > > - > > -struct au1xxx_irqmap __initdata au1xxx_irq_map[] = { > > - { AU1500_GPIO_204, INTC_INT_HIGH_LEVEL, 0 }, > > - { AU1500_GPIO_201, INTC_INT_LOW_LEVEL, 0 }, > > - { AU1500_GPIO_202, INTC_INT_LOW_LEVEL, 0 }, > > - { AU1500_GPIO_203, INTC_INT_LOW_LEVEL, 0 }, > > - { AU1500_GPIO_205, INTC_INT_LOW_LEVEL, 0 }, > > - { AU1500_GPIO_207, INTC_INT_LOW_LEVEL, 0 }, > > - > > - { AU1000_GPIO_0, INTC_INT_LOW_LEVEL, 0 }, > > - { AU1000_GPIO_1, INTC_INT_LOW_LEVEL, 0 }, > > - { AU1000_GPIO_2, INTC_INT_LOW_LEVEL, 0 }, > > - { AU1000_GPIO_3, INTC_INT_LOW_LEVEL, 0 }, > > - { AU1000_GPIO_4, INTC_INT_LOW_LEVEL, 0 }, /* CF interrupt */ > > - { AU1000_GPIO_5, INTC_INT_LOW_LEVEL, 0 }, > > -}; > > - > > -int __initdata au1xxx_nr_irqs = ARRAY_SIZE(au1xxx_irq_map); > -- > Kevin Hickey > Alchemy Solutions > RMI Corporation > khickey@xxxxxxxxxxx > P: 512.691.8044 >