aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-02-27 19:19:22 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2010-02-27 19:19:22 -0500
commitf1dd6ad599732fc89f36fdd65a2c2cf3c63a8711 (patch)
tree5092207128e47cba99dc0fe373fff6a36f4cb4b8
parent8d37a371b6869920e6c40c495c68eabba1ef3909 (diff)
parente10b234b3c4e255d3300a486c4ac15b43253ac6d (diff)
Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus
* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: (141 commits) MIPS: Alchemy: defconfig updates MIPS: Alchemy: Fix Au1100 ethernet build failure MIPS: Alchemy: Repair db1500/bosporus builds MIPS: ARC: Cleanup unused definitions from sgialib.h MIPS: Cobalt: convert legacy port addresses to GT-64111 bus addresses MIPS: Alchemy: use 36bit addresses for PCMCIA resources. MIPS: Cobalt: Fix theoretical port aliasing issue MIPS: Use ALIGN(x, bytes) instead of __ALIGN_MASK(x, bytes - 1) MIPS: Crazy spinlock speed test. MIPS: Optimize spinlocks. MIPS: Alchemy: devboard PM needs to save CPLD registers. MIPS: PowerTV: Eliminate duplicate opcode definition macros MIPS: Lemote 2F: Move printks out of port_access_lock. MIPS: PNX833x: Convert IRQ controller locks to raw spinlocks. MIPS: Octeon: Replace spinlock with raw_spinlocks in dma-octeon.c. MIPS: Octeon: Replace rwlocks in irq_chip handlers with raw_spinlocks. MIPS: Octeon: Convert octeon_irq_msi_lock to raw spinlock. MIPS: Loongson: Remove pointless sample_lock from oprofile code. MIPS: SNI: Convert sni_rm200_i8259A_lock to raw spinlock. MIPS: i8259: Convert IRQ controller lock to raw spinlock. ...
-rw-r--r--arch/mips/Kconfig8
-rw-r--r--arch/mips/Kconfig.debug26
-rw-r--r--arch/mips/Makefile19
-rw-r--r--arch/mips/alchemy/Kconfig28
-rw-r--r--arch/mips/alchemy/common/Makefile7
-rw-r--r--arch/mips/alchemy/common/clocks.c7
-rw-r--r--arch/mips/alchemy/common/dbdma.c187
-rw-r--r--arch/mips/alchemy/common/dma.c36
-rw-r--r--arch/mips/alchemy/common/gpiolib-au1000.c10
-rw-r--r--arch/mips/alchemy/common/irq.c436
-rw-r--r--arch/mips/alchemy/common/platform.c153
-rw-r--r--arch/mips/alchemy/common/prom.c28
-rw-r--r--arch/mips/alchemy/common/puts.c68
-rw-r--r--arch/mips/alchemy/common/reset.c188
-rw-r--r--arch/mips/alchemy/common/setup.c40
-rw-r--r--arch/mips/alchemy/common/time.c35
-rw-r--r--arch/mips/alchemy/devboards/Makefile6
-rw-r--r--arch/mips/alchemy/devboards/bcsr.c148
-rw-r--r--arch/mips/alchemy/devboards/db1200/Makefile1
-rw-r--r--arch/mips/alchemy/devboards/db1200/platform.c561
-rw-r--r--arch/mips/alchemy/devboards/db1200/setup.c118
-rw-r--r--arch/mips/alchemy/devboards/db1x00/Makefile2
-rw-r--r--arch/mips/alchemy/devboards/db1x00/board_setup.c204
-rw-r--r--arch/mips/alchemy/devboards/db1x00/irqmap.c90
-rw-r--r--arch/mips/alchemy/devboards/db1x00/platform.c118
-rw-r--r--arch/mips/alchemy/devboards/pb1000/board_setup.c34
-rw-r--r--arch/mips/alchemy/devboards/pb1100/Makefile2
-rw-r--r--arch/mips/alchemy/devboards/pb1100/board_setup.c55
-rw-r--r--arch/mips/alchemy/devboards/pb1100/platform.c50
-rw-r--r--arch/mips/alchemy/devboards/pb1200/Makefile2
-rw-r--r--arch/mips/alchemy/devboards/pb1200/board_setup.c96
-rw-r--r--arch/mips/alchemy/devboards/pb1200/irqmap.c134
-rw-r--r--arch/mips/alchemy/devboards/pb1200/platform.c63
-rw-r--r--arch/mips/alchemy/devboards/pb1500/Makefile2
-rw-r--r--arch/mips/alchemy/devboards/pb1500/board_setup.c54
-rw-r--r--arch/mips/alchemy/devboards/pb1500/platform.c49
-rw-r--r--arch/mips/alchemy/devboards/pb1550/Makefile2
-rw-r--r--arch/mips/alchemy/devboards/pb1550/board_setup.c49
-rw-r--r--arch/mips/alchemy/devboards/pb1550/platform.c69
-rw-r--r--arch/mips/alchemy/devboards/platform.c222
-rw-r--r--arch/mips/alchemy/devboards/platform.h21
-rw-r--r--arch/mips/alchemy/devboards/pm.c32
-rw-r--r--arch/mips/alchemy/devboards/prom.c5
-rw-r--r--arch/mips/alchemy/mtx-1/Makefile2
-rw-r--r--arch/mips/alchemy/mtx-1/board_setup.c49
-rw-r--r--arch/mips/alchemy/mtx-1/init.c6
-rw-r--r--arch/mips/alchemy/mtx-1/irqmap.c56
-rw-r--r--arch/mips/alchemy/xxs1500/Makefile4
-rw-r--r--arch/mips/alchemy/xxs1500/board_setup.c60
-rw-r--r--arch/mips/alchemy/xxs1500/init.c6
-rw-r--r--arch/mips/alchemy/xxs1500/irqmap.c52
-rw-r--r--arch/mips/alchemy/xxs1500/platform.c63
-rw-r--r--arch/mips/ar7/clock.c109
-rw-r--r--arch/mips/ar7/gpio.c113
-rw-r--r--arch/mips/ar7/memory.c3
-rw-r--r--arch/mips/ar7/platform.c713
-rw-r--r--arch/mips/ar7/prom.c78
-rw-r--r--arch/mips/ar7/setup.c15
-rw-r--r--arch/mips/ar7/time.c12
-rw-r--r--arch/mips/bcm47xx/gpio.c1
-rw-r--r--arch/mips/bcm47xx/prom.c1
-rw-r--r--arch/mips/bcm47xx/setup.c1
-rw-r--r--arch/mips/bcm47xx/wgt634u.c1
-rw-r--r--arch/mips/bcm63xx/boards/board_bcm963xx.c1
-rw-r--r--arch/mips/bcm63xx/timer.c34
-rw-r--r--arch/mips/boot/compressed/Makefile11
-rw-r--r--arch/mips/boot/compressed/dbg.c4
-rw-r--r--arch/mips/boot/compressed/decompress.c4
-rw-r--r--arch/mips/boot/compressed/uart-alchemy.c7
-rw-r--r--arch/mips/cavium-octeon/dma-octeon.c10
-rw-r--r--arch/mips/cavium-octeon/executive/cvmx-bootmem.c6
-rw-r--r--arch/mips/cavium-octeon/executive/cvmx-sysinfo.c1
-rw-r--r--arch/mips/cavium-octeon/octeon-irq.c160
-rw-r--r--arch/mips/cavium-octeon/octeon-platform.c85
-rw-r--r--arch/mips/cavium-octeon/smp.c2
-rw-r--r--arch/mips/cobalt/pci.c2
-rw-r--r--arch/mips/configs/db1000_defconfig1150
-rw-r--r--arch/mips/configs/db1100_defconfig1137
-rw-r--r--arch/mips/configs/db1200_defconfig1578
-rw-r--r--arch/mips/configs/db1500_defconfig1372
-rw-r--r--arch/mips/configs/db1550_defconfig1380
-rw-r--r--arch/mips/configs/lemote2f_defconfig964
-rw-r--r--arch/mips/configs/pb1100_defconfig1159
-rw-r--r--arch/mips/configs/pb1200_defconfig1568
-rw-r--r--arch/mips/configs/pb1500_defconfig1324
-rw-r--r--arch/mips/configs/pb1550_defconfig1354
-rw-r--r--arch/mips/dec/kn01-berr.c10
-rw-r--r--arch/mips/dec/prom/locore.S1
-rw-r--r--arch/mips/include/asm/atomic.h16
-rw-r--r--arch/mips/include/asm/barrier.h60
-rw-r--r--arch/mips/include/asm/bitops.h8
-rw-r--r--arch/mips/include/asm/cmpxchg.h10
-rw-r--r--arch/mips/include/asm/cpu-features.h3
-rw-r--r--arch/mips/include/asm/cpu.h2
-rw-r--r--arch/mips/include/asm/current.h24
-rw-r--r--arch/mips/include/asm/dec/kn01.h1
-rw-r--r--arch/mips/include/asm/device.h1
-rw-r--r--arch/mips/include/asm/elf.h14
-rw-r--r--arch/mips/include/asm/ftrace.h2
-rw-r--r--arch/mips/include/asm/i8259.h6
-rw-r--r--arch/mips/include/asm/io.h18
-rw-r--r--arch/mips/include/asm/mach-ar7/ar7.h23
-rw-r--r--arch/mips/include/asm/mach-ar7/gpio.h86
-rw-r--r--arch/mips/include/asm/mach-au1x00/au1000.h876
-rw-r--r--arch/mips/include/asm/mach-au1x00/au1100_mmc.h2
-rw-r--r--arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h23
-rw-r--r--arch/mips/include/asm/mach-au1x00/au1xxx_eth.h17
-rw-r--r--arch/mips/include/asm/mach-au1x00/gpio-au1000.h164
-rw-r--r--arch/mips/include/asm/mach-au1x00/gpio.h2
-rw-r--r--arch/mips/include/asm/mach-au1x00/ioremap.h2
-rw-r--r--arch/mips/include/asm/mach-au1x00/prom.h1
-rw-r--r--arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h1
-rw-r--r--arch/mips/include/asm/mach-cavium-octeon/cpu-feature-overrides.h3
-rw-r--r--arch/mips/include/asm/mach-db1x00/bcsr.h238
-rw-r--r--arch/mips/include/asm/mach-db1x00/db1200.h156
-rw-r--r--arch/mips/include/asm/mach-db1x00/db1x00.h100
-rw-r--r--arch/mips/include/asm/mach-loongson/cpu-feature-overrides.h2
-rw-r--r--arch/mips/include/asm/mach-loongson/cs5536/cs5536_vsm.h2
-rw-r--r--arch/mips/include/asm/mach-loongson/loongson.h5
-rw-r--r--arch/mips/include/asm/mach-loongson/machine.h4
-rw-r--r--arch/mips/include/asm/mach-loongson/mem.h2
-rw-r--r--arch/mips/include/asm/mach-loongson/pci.h13
-rw-r--r--arch/mips/include/asm/mach-pb1x00/pb1100.h85
-rw-r--r--arch/mips/include/asm/mach-pb1x00/pb1200.h122
-rw-r--r--arch/mips/include/asm/mach-pb1x00/pb1500.h49
-rw-r--r--arch/mips/include/asm/mach-pb1x00/pb1550.h96
-rw-r--r--arch/mips/include/asm/mach-pnx833x/irq-mapping.h1
-rw-r--r--arch/mips/include/asm/mach-powertv/interrupts.h1
-rw-r--r--arch/mips/include/asm/mipsregs.h15
-rw-r--r--arch/mips/include/asm/msc01_ic.h1
-rw-r--r--arch/mips/include/asm/nile4.h1
-rw-r--r--arch/mips/include/asm/octeon/octeon-feature.h8
-rw-r--r--arch/mips/include/asm/octeon/octeon.h5
-rw-r--r--arch/mips/include/asm/page.h12
-rw-r--r--arch/mips/include/asm/param.h17
-rw-r--r--arch/mips/include/asm/parport.h16
-rw-r--r--arch/mips/include/asm/pgalloc.h4
-rw-r--r--arch/mips/include/asm/pgtable-32.h4
-rw-r--r--arch/mips/include/asm/pgtable-64.h40
-rw-r--r--arch/mips/include/asm/pgtable-bits.h120
-rw-r--r--arch/mips/include/asm/pgtable.h28
-rw-r--r--arch/mips/include/asm/pmc-sierra/msp71xx/msp_prom.h1
-rw-r--r--arch/mips/include/asm/serial.h23
-rw-r--r--arch/mips/include/asm/sgialib.h45
-rw-r--r--arch/mips/include/asm/sibyte/bigsur.h1
-rw-r--r--arch/mips/include/asm/sibyte/sb1250_ldt.h1
-rw-r--r--arch/mips/include/asm/sn/klkernvars.h1
-rw-r--r--arch/mips/include/asm/sparsemem.h1
-rw-r--r--arch/mips/include/asm/spinlock.h120
-rw-r--r--arch/mips/include/asm/spinlock_types.h24
-rw-r--r--arch/mips/include/asm/system.h4
-rw-r--r--arch/mips/include/asm/txx9/generic.h1
-rw-r--r--arch/mips/include/asm/uasm.h (renamed from arch/mips/mm/uasm.h)4
-rw-r--r--arch/mips/include/asm/ucontext.h22
-rw-r--r--arch/mips/jazz/irq.c10
-rw-r--r--arch/mips/kernel/Makefile1
-rw-r--r--arch/mips/kernel/asm-offsets.c4
-rw-r--r--arch/mips/kernel/cevt-gt641xx.c10
-rw-r--r--arch/mips/kernel/cpu-probe.c30
-rw-r--r--arch/mips/kernel/ftrace.c2
-rw-r--r--arch/mips/kernel/i8259.c22
-rw-r--r--arch/mips/kernel/irq-gt641xx.c18
-rw-r--r--arch/mips/kernel/linux32.c1
-rw-r--r--arch/mips/kernel/mcount.S2
-rw-r--r--arch/mips/kernel/octeon_switch.S1
-rw-r--r--arch/mips/kernel/rtlx.c1
-rw-r--r--arch/mips/kernel/spinlock_test.c141
-rw-r--r--arch/mips/kernel/traps.c23
-rw-r--r--arch/mips/kernel/vpe.c1
-rw-r--r--arch/mips/lasat/picvue.h1
-rw-r--r--arch/mips/loongson/common/cmdline.c9
-rw-r--r--arch/mips/loongson/common/cs5536/cs5536_acc.c2
-rw-r--r--arch/mips/loongson/common/cs5536/cs5536_ehci.c2
-rw-r--r--arch/mips/loongson/common/cs5536/cs5536_ide.c2
-rw-r--r--arch/mips/loongson/common/cs5536/cs5536_isa.c2
-rw-r--r--arch/mips/loongson/common/cs5536/cs5536_mfgpt.c2
-rw-r--r--arch/mips/loongson/common/cs5536/cs5536_ohci.c2
-rw-r--r--arch/mips/loongson/common/cs5536/cs5536_pci.c2
-rw-r--r--arch/mips/loongson/common/early_printk.c2
-rw-r--r--arch/mips/loongson/common/env.c29
-rw-r--r--arch/mips/loongson/common/init.c2
-rw-r--r--arch/mips/loongson/common/machtype.c12
-rw-r--r--arch/mips/loongson/common/mem.c7
-rw-r--r--arch/mips/loongson/common/platform.c2
-rw-r--r--arch/mips/loongson/common/pm.c2
-rw-r--r--arch/mips/loongson/common/reset.c20
-rw-r--r--arch/mips/loongson/common/serial.c2
-rw-r--r--arch/mips/loongson/common/time.c4
-rw-r--r--arch/mips/loongson/common/uart_base.c2
-rw-r--r--arch/mips/loongson/fuloong-2e/reset.c4
-rw-r--r--arch/mips/loongson/lemote-2f/Makefile2
-rw-r--r--arch/mips/loongson/lemote-2f/ec_kb3310b.c4
-rw-r--r--arch/mips/loongson/lemote-2f/irq.c4
-rw-r--r--arch/mips/loongson/lemote-2f/machtype.c45
-rw-r--r--arch/mips/loongson/lemote-2f/pm.c2
-rw-r--r--arch/mips/loongson/lemote-2f/reset.c2
-rw-r--r--arch/mips/math-emu/ieee754d.c1
-rw-r--r--arch/mips/math-emu/ieee754dp.c1
-rw-r--r--arch/mips/math-emu/ieee754sp.c1
-rw-r--r--arch/mips/math-emu/ieee754xcpt.c1
-rw-r--r--arch/mips/mm/c-octeon.c8
-rw-r--r--arch/mips/mm/cache.c53
-rw-r--r--arch/mips/mm/fault.c27
-rw-r--r--arch/mips/mm/hugetlbpage.c1
-rw-r--r--arch/mips/mm/init.c4
-rw-r--r--arch/mips/mm/page.c2
-rw-r--r--arch/mips/mm/pgtable-64.c44
-rw-r--r--arch/mips/mm/tlb-r4k.c84
-rw-r--r--arch/mips/mm/tlbex.c188
-rw-r--r--arch/mips/mm/uasm.c12
-rw-r--r--arch/mips/mti-malta/malta-int.c6
-rw-r--r--arch/mips/nxp/pnx833x/common/interrupts.c37
-rw-r--r--arch/mips/nxp/pnx833x/common/prom.c6
-rw-r--r--arch/mips/nxp/pnx8550/common/prom.c1
-rw-r--r--arch/mips/oprofile/common.c7
-rw-r--r--arch/mips/oprofile/op_model_loongson2.c9
-rw-r--r--arch/mips/pci/fixup-cobalt.c61
-rw-r--r--arch/mips/pci/fixup-lemote2f.c2
-rw-r--r--arch/mips/pci/ops-loongson2.c4
-rw-r--r--arch/mips/pci/ops-pmcmsp.c2
-rw-r--r--arch/mips/pci/pci-bcm47xx.c1
-rw-r--r--arch/mips/pci/pci-octeon.c6
-rw-r--r--arch/mips/pci/pci.c2
-rw-r--r--arch/mips/pmc-sierra/msp71xx/msp_irq_cic.c1
-rw-r--r--arch/mips/pmc-sierra/msp71xx/msp_prom.c6
-rw-r--r--arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.c2
-rw-r--r--arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.h1
-rw-r--r--arch/mips/pmc-sierra/yosemite/smp.c8
-rw-r--r--arch/mips/power/cpu.c4
-rw-r--r--arch/mips/power/hibernate.S4
-rw-r--r--arch/mips/powertv/asic/asic_devices.c4
-rw-r--r--arch/mips/powertv/asic/asic_int.c6
-rw-r--r--arch/mips/powertv/powertv_setup.c102
-rw-r--r--arch/mips/sgi-ip27/ip27-klnuma.c1
-rw-r--r--arch/mips/sgi-ip27/ip27-nmi.c7
-rw-r--r--arch/mips/sgi-ip32/ip32-irq.c9
-rw-r--r--arch/mips/sibyte/bcm1480/irq.c14
-rw-r--r--arch/mips/sibyte/common/sb_tbprof.c1
-rw-r--r--arch/mips/sibyte/sb1250/irq.c14
-rw-r--r--arch/mips/sni/rm200.c22
-rw-r--r--arch/mips/txx9/generic/setup.c5
-rw-r--r--arch/mips/txx9/jmr3927/setup.c7
-rw-r--r--arch/mips/txx9/rbtx4927/setup.c7
-rw-r--r--arch/mips/txx9/rbtx4938/setup.c6
-rw-r--r--drivers/i2c/busses/Kconfig10
-rw-r--r--drivers/i2c/busses/Makefile1
-rw-r--r--drivers/i2c/busses/i2c-octeon.c651
-rw-r--r--drivers/ide/au1xxx-ide.c21
-rw-r--r--drivers/mmc/host/au1xmmc.c12
-rw-r--r--drivers/mtd/maps/Kconfig6
-rw-r--r--drivers/mtd/maps/Makefile1
-rw-r--r--drivers/mtd/maps/alchemy-flash.c166
-rw-r--r--drivers/mtd/nand/au1550nd.c4
-rw-r--r--drivers/net/au1000_eth.c441
-rw-r--r--drivers/net/au1000_eth.h9
-rw-r--r--drivers/net/cpmac.c10
-rw-r--r--drivers/net/irda/au1k_ir.c14
-rw-r--r--drivers/pcmcia/Kconfig21
-rw-r--r--drivers/pcmcia/Makefile12
-rw-r--r--drivers/pcmcia/au1000_db1x00.c305
-rw-r--r--drivers/pcmcia/au1000_generic.c10
-rw-r--r--drivers/pcmcia/au1000_generic.h18
-rw-r--r--drivers/pcmcia/au1000_pb1x00.c119
-rw-r--r--drivers/pcmcia/au1000_xxs1500.c188
-rw-r--r--drivers/pcmcia/db1xxx_ss.c623
-rw-r--r--drivers/pcmcia/xxs1500_ss.c350
-rw-r--r--drivers/serial/8250.c15
-rw-r--r--drivers/spi/au1550_spi.c6
-rw-r--r--drivers/staging/octeon/Makefile1
-rw-r--r--drivers/staging/octeon/ethernet-defines.h34
-rw-r--r--drivers/staging/octeon/ethernet-mdio.c6
-rw-r--r--drivers/staging/octeon/ethernet-mdio.h1
-rw-r--r--drivers/staging/octeon/ethernet-mem.c124
-rw-r--r--drivers/staging/octeon/ethernet-proc.c144
-rw-r--r--drivers/staging/octeon/ethernet-proc.h29
-rw-r--r--drivers/staging/octeon/ethernet-rgmii.c56
-rw-r--r--drivers/staging/octeon/ethernet-rx.c384
-rw-r--r--drivers/staging/octeon/ethernet-rx.h25
-rw-r--r--drivers/staging/octeon/ethernet-sgmii.c1
-rw-r--r--drivers/staging/octeon/ethernet-spi.c1
-rw-r--r--drivers/staging/octeon/ethernet-tx.c441
-rw-r--r--drivers/staging/octeon/ethernet-tx.h29
-rw-r--r--drivers/staging/octeon/ethernet-util.h13
-rw-r--r--drivers/staging/octeon/ethernet-xaui.c1
-rw-r--r--drivers/staging/octeon/ethernet.c254
-rw-r--r--drivers/staging/octeon/octeon-ethernet.h58
-rw-r--r--drivers/staging/sm7xx/smtc2d.c2
-rw-r--r--drivers/staging/sm7xx/smtc2d.h2
-rw-r--r--drivers/staging/sm7xx/smtcfb.c2
-rw-r--r--drivers/staging/sm7xx/smtcfb.h2
-rw-r--r--drivers/watchdog/ar7_wdt.c18
-rw-r--r--sound/oss/au1550_ac97.c16
-rw-r--r--sound/soc/au1x/Kconfig10
-rw-r--r--sound/soc/au1x/Makefile4
-rw-r--r--sound/soc/au1x/db1200.c141
-rw-r--r--sound/soc/au1x/dbdma2.c14
-rw-r--r--sound/soc/au1x/sample-ac97.c144
297 files changed, 15899 insertions, 11205 deletions
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 8b5d174685f0..591ca0cd4c24 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -41,7 +41,7 @@ config AR7
41 select SYS_SUPPORTS_32BIT_KERNEL 41 select SYS_SUPPORTS_32BIT_KERNEL
42 select SYS_SUPPORTS_LITTLE_ENDIAN 42 select SYS_SUPPORTS_LITTLE_ENDIAN
43 select SYS_SUPPORTS_ZBOOT_UART16550 43 select SYS_SUPPORTS_ZBOOT_UART16550
44 select GENERIC_GPIO 44 select ARCH_REQUIRE_GPIOLIB
45 select GCD 45 select GCD
46 select VLYNQ 46 select VLYNQ
47 help 47 help
@@ -180,7 +180,7 @@ config LASAT
180 180
181config MACH_LOONGSON 181config MACH_LOONGSON
182 bool "Loongson family of machines" 182 bool "Loongson family of machines"
183 select SYS_SUPPORTS_ZBOOT_UART16550 183 select SYS_SUPPORTS_ZBOOT
184 help 184 help
185 This enables the support of Loongson family of machines. 185 This enables the support of Loongson family of machines.
186 186
@@ -1295,7 +1295,6 @@ config CPU_CAVIUM_OCTEON
1295 select SYS_SUPPORTS_SMP 1295 select SYS_SUPPORTS_SMP
1296 select NR_CPUS_DEFAULT_16 1296 select NR_CPUS_DEFAULT_16
1297 select WEAK_ORDERING 1297 select WEAK_ORDERING
1298 select WEAK_REORDERING_BEYOND_LLSC
1299 select CPU_SUPPORTS_HIGHMEM 1298 select CPU_SUPPORTS_HIGHMEM
1300 select CPU_SUPPORTS_HUGEPAGES 1299 select CPU_SUPPORTS_HUGEPAGES
1301 help 1300 help
@@ -1726,6 +1725,9 @@ config SB1_PASS_2_1_WORKAROUNDS
1726config 64BIT_PHYS_ADDR 1725config 64BIT_PHYS_ADDR
1727 bool 1726 bool
1728 1727
1728config ARCH_PHYS_ADDR_T_64BIT
1729 def_bool 64BIT_PHYS_ADDR
1730
1729config CPU_HAS_SMARTMIPS 1731config CPU_HAS_SMARTMIPS
1730 depends on SYS_SUPPORTS_SMARTMIPS 1732 depends on SYS_SUPPORTS_SMARTMIPS
1731 bool "Support for the SmartMIPS ASE" 1733 bool "Support for the SmartMIPS ASE"
diff --git a/arch/mips/Kconfig.debug b/arch/mips/Kconfig.debug
index d2b88a0be519..43dc27997730 100644
--- a/arch/mips/Kconfig.debug
+++ b/arch/mips/Kconfig.debug
@@ -102,4 +102,30 @@ config RUNTIME_DEBUG
102 arch/mips/include/asm/debug.h for debugging macros. 102 arch/mips/include/asm/debug.h for debugging macros.
103 If unsure, say N. 103 If unsure, say N.
104 104
105config DEBUG_ZBOOT
106 bool "Enable compressed kernel support debugging"
107 depends on DEBUG_KERNEL && SYS_SUPPORTS_ZBOOT
108 default n
109 help
110 If you want to add compressed kernel support to a new board, and the
111 board supports uart16550 compatible serial port, please select
112 SYS_SUPPORTS_ZBOOT_UART16550 for your board and enable this option to
113 debug it.
114
115 If your board doesn't support uart16550 compatible serial port, you
116 can try to select SYS_SUPPORTS_ZBOOT and use the other methods to
117 debug it. for example, add a new serial port support just as
118 arch/mips/boot/compressed/uart-16550.c does.
119
120 After the compressed kernel support works, please disable this option
121 to reduce the kernel image size and speed up the booting procedure a
122 little.
123
124config SPINLOCK_TEST
125 bool "Enable spinlock timing tests in debugfs"
126 depends on DEBUG_FS
127 default n
128 help
129 Add several files to the debugfs to test spinlock speed.
130
105endmenu 131endmenu
diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index 1893efd43fca..2f2eac233322 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -185,6 +185,15 @@ libs-$(CONFIG_SNIPROM) += arch/mips/fw/sni/
185libs-y += arch/mips/fw/lib/ 185libs-y += arch/mips/fw/lib/
186 186
187# 187#
188# Kernel compression
189#
190ifdef SYS_SUPPORTS_ZBOOT
191COMPRESSION_FNAME = vmlinuz
192else
193COMPRESSION_FNAME = vmlinux
194endif
195
196#
188# Board-dependent options and extra files 197# Board-dependent options and extra files
189# 198#
190 199
@@ -332,11 +341,11 @@ load-$(CONFIG_WR_PPMC) += 0xffffffff80100000
332# 341#
333# Loongson family 342# Loongson family
334# 343#
335core-$(CONFIG_MACH_LOONGSON) +=arch/mips/loongson/ 344core-$(CONFIG_MACH_LOONGSON) += arch/mips/loongson/
336cflags-$(CONFIG_MACH_LOONGSON) += -I$(srctree)/arch/mips/include/asm/mach-loongson \ 345cflags-$(CONFIG_MACH_LOONGSON) += -I$(srctree)/arch/mips/include/asm/mach-loongson \
337 -mno-branch-likely 346 -mno-branch-likely
338load-$(CONFIG_LEMOTE_FULOONG2E) +=0xffffffff80100000 347load-$(CONFIG_LEMOTE_FULOONG2E) += 0xffffffff80100000
339load-$(CONFIG_LEMOTE_MACH2F) +=0xffffffff80200000 348load-$(CONFIG_LEMOTE_MACH2F) += 0xffffffff80200000
340 349
341# 350#
342# MIPS Malta board 351# MIPS Malta board
@@ -344,7 +353,7 @@ load-$(CONFIG_LEMOTE_MACH2F) +=0xffffffff80200000
344core-$(CONFIG_MIPS_MALTA) += arch/mips/mti-malta/ 353core-$(CONFIG_MIPS_MALTA) += arch/mips/mti-malta/
345cflags-$(CONFIG_MIPS_MALTA) += -I$(srctree)/arch/mips/include/asm/mach-malta 354cflags-$(CONFIG_MIPS_MALTA) += -I$(srctree)/arch/mips/include/asm/mach-malta
346load-$(CONFIG_MIPS_MALTA) += 0xffffffff80100000 355load-$(CONFIG_MIPS_MALTA) += 0xffffffff80100000
347all-$(CONFIG_MIPS_MALTA) := vmlinuz.bin 356all-$(CONFIG_MIPS_MALTA) := $(COMPRESSION_FNAME).bin
348 357
349# 358#
350# MIPS SIM 359# MIPS SIM
@@ -594,7 +603,7 @@ load-$(CONFIG_SNI_RM) += 0xffffffff80600000
594else 603else
595load-$(CONFIG_SNI_RM) += 0xffffffff80030000 604load-$(CONFIG_SNI_RM) += 0xffffffff80030000
596endif 605endif
597all-$(CONFIG_SNI_RM) := vmlinuz.ecoff 606all-$(CONFIG_SNI_RM) := $(COMPRESSION_FNAME).ecoff
598 607
599# 608#
600# Common TXx9 609# Common TXx9
diff --git a/arch/mips/alchemy/Kconfig b/arch/mips/alchemy/Kconfig
index 00b498e97c83..df3b1a7eb15d 100644
--- a/arch/mips/alchemy/Kconfig
+++ b/arch/mips/alchemy/Kconfig
@@ -1,5 +1,5 @@
1# au1000-style gpio 1# au1000-style gpio and interrupt controllers
2config ALCHEMY_GPIO_AU1000 2config ALCHEMY_GPIOINT_AU1000
3 bool 3 bool
4 4
5# select this in your board config if you don't want to use the gpio 5# select this in your board config if you don't want to use the gpio
@@ -20,12 +20,14 @@ config MIPS_MTX1
20 select HW_HAS_PCI 20 select HW_HAS_PCI
21 select SOC_AU1500 21 select SOC_AU1500
22 select SYS_SUPPORTS_LITTLE_ENDIAN 22 select SYS_SUPPORTS_LITTLE_ENDIAN
23 select SYS_HAS_EARLY_PRINTK
23 24
24config MIPS_BOSPORUS 25config MIPS_BOSPORUS
25 bool "Alchemy Bosporus board" 26 bool "Alchemy Bosporus board"
26 select SOC_AU1500 27 select SOC_AU1500
27 select DMA_NONCOHERENT 28 select DMA_NONCOHERENT
28 select SYS_SUPPORTS_LITTLE_ENDIAN 29 select SYS_SUPPORTS_LITTLE_ENDIAN
30 select SYS_HAS_EARLY_PRINTK
29 31
30config MIPS_DB1000 32config MIPS_DB1000
31 bool "Alchemy DB1000 board" 33 bool "Alchemy DB1000 board"
@@ -33,12 +35,14 @@ config MIPS_DB1000
33 select DMA_NONCOHERENT 35 select DMA_NONCOHERENT
34 select HW_HAS_PCI 36 select HW_HAS_PCI
35 select SYS_SUPPORTS_LITTLE_ENDIAN 37 select SYS_SUPPORTS_LITTLE_ENDIAN
38 select SYS_HAS_EARLY_PRINTK
36 39
37config MIPS_DB1100 40config MIPS_DB1100
38 bool "Alchemy DB1100 board" 41 bool "Alchemy DB1100 board"
39 select SOC_AU1100 42 select SOC_AU1100
40 select DMA_NONCOHERENT 43 select DMA_NONCOHERENT
41 select SYS_SUPPORTS_LITTLE_ENDIAN 44 select SYS_SUPPORTS_LITTLE_ENDIAN
45 select SYS_HAS_EARLY_PRINTK
42 46
43config MIPS_DB1200 47config MIPS_DB1200
44 bool "Alchemy DB1200 board" 48 bool "Alchemy DB1200 board"
@@ -46,6 +50,7 @@ config MIPS_DB1200
46 select DMA_COHERENT 50 select DMA_COHERENT
47 select MIPS_DISABLE_OBSOLETE_IDE 51 select MIPS_DISABLE_OBSOLETE_IDE
48 select SYS_SUPPORTS_LITTLE_ENDIAN 52 select SYS_SUPPORTS_LITTLE_ENDIAN
53 select SYS_HAS_EARLY_PRINTK
49 54
50config MIPS_DB1500 55config MIPS_DB1500
51 bool "Alchemy DB1500 board" 56 bool "Alchemy DB1500 board"
@@ -55,6 +60,7 @@ config MIPS_DB1500
55 select MIPS_DISABLE_OBSOLETE_IDE 60 select MIPS_DISABLE_OBSOLETE_IDE
56 select SYS_SUPPORTS_BIG_ENDIAN 61 select SYS_SUPPORTS_BIG_ENDIAN
57 select SYS_SUPPORTS_LITTLE_ENDIAN 62 select SYS_SUPPORTS_LITTLE_ENDIAN
63 select SYS_HAS_EARLY_PRINTK
58 64
59config MIPS_DB1550 65config MIPS_DB1550
60 bool "Alchemy DB1550 board" 66 bool "Alchemy DB1550 board"
@@ -63,12 +69,14 @@ config MIPS_DB1550
63 select DMA_NONCOHERENT 69 select DMA_NONCOHERENT
64 select MIPS_DISABLE_OBSOLETE_IDE 70 select MIPS_DISABLE_OBSOLETE_IDE
65 select SYS_SUPPORTS_LITTLE_ENDIAN 71 select SYS_SUPPORTS_LITTLE_ENDIAN
72 select SYS_HAS_EARLY_PRINTK
66 73
67config MIPS_MIRAGE 74config MIPS_MIRAGE
68 bool "Alchemy Mirage board" 75 bool "Alchemy Mirage board"
69 select DMA_NONCOHERENT 76 select DMA_NONCOHERENT
70 select SOC_AU1500 77 select SOC_AU1500
71 select SYS_SUPPORTS_LITTLE_ENDIAN 78 select SYS_SUPPORTS_LITTLE_ENDIAN
79 select SYS_HAS_EARLY_PRINTK
72 80
73config MIPS_PB1000 81config MIPS_PB1000
74 bool "Alchemy PB1000 board" 82 bool "Alchemy PB1000 board"
@@ -77,6 +85,7 @@ config MIPS_PB1000
77 select HW_HAS_PCI 85 select HW_HAS_PCI
78 select SWAP_IO_SPACE 86 select SWAP_IO_SPACE
79 select SYS_SUPPORTS_LITTLE_ENDIAN 87 select SYS_SUPPORTS_LITTLE_ENDIAN
88 select SYS_HAS_EARLY_PRINTK
80 89
81config MIPS_PB1100 90config MIPS_PB1100
82 bool "Alchemy PB1100 board" 91 bool "Alchemy PB1100 board"
@@ -85,6 +94,7 @@ config MIPS_PB1100
85 select HW_HAS_PCI 94 select HW_HAS_PCI
86 select SWAP_IO_SPACE 95 select SWAP_IO_SPACE
87 select SYS_SUPPORTS_LITTLE_ENDIAN 96 select SYS_SUPPORTS_LITTLE_ENDIAN
97 select SYS_HAS_EARLY_PRINTK
88 98
89config MIPS_PB1200 99config MIPS_PB1200
90 bool "Alchemy PB1200 board" 100 bool "Alchemy PB1200 board"
@@ -92,6 +102,7 @@ config MIPS_PB1200
92 select DMA_NONCOHERENT 102 select DMA_NONCOHERENT
93 select MIPS_DISABLE_OBSOLETE_IDE 103 select MIPS_DISABLE_OBSOLETE_IDE
94 select SYS_SUPPORTS_LITTLE_ENDIAN 104 select SYS_SUPPORTS_LITTLE_ENDIAN
105 select SYS_HAS_EARLY_PRINTK
95 106
96config MIPS_PB1500 107config MIPS_PB1500
97 bool "Alchemy PB1500 board" 108 bool "Alchemy PB1500 board"
@@ -99,6 +110,7 @@ config MIPS_PB1500
99 select DMA_NONCOHERENT 110 select DMA_NONCOHERENT
100 select HW_HAS_PCI 111 select HW_HAS_PCI
101 select SYS_SUPPORTS_LITTLE_ENDIAN 112 select SYS_SUPPORTS_LITTLE_ENDIAN
113 select SYS_HAS_EARLY_PRINTK
102 114
103config MIPS_PB1550 115config MIPS_PB1550
104 bool "Alchemy PB1550 board" 116 bool "Alchemy PB1550 board"
@@ -107,39 +119,41 @@ config MIPS_PB1550
107 select HW_HAS_PCI 119 select HW_HAS_PCI
108 select MIPS_DISABLE_OBSOLETE_IDE 120 select MIPS_DISABLE_OBSOLETE_IDE
109 select SYS_SUPPORTS_LITTLE_ENDIAN 121 select SYS_SUPPORTS_LITTLE_ENDIAN
122 select SYS_HAS_EARLY_PRINTK
110 123
111config MIPS_XXS1500 124config MIPS_XXS1500
112 bool "MyCable XXS1500 board" 125 bool "MyCable XXS1500 board"
113 select DMA_NONCOHERENT 126 select DMA_NONCOHERENT
114 select SOC_AU1500 127 select SOC_AU1500
115 select SYS_SUPPORTS_LITTLE_ENDIAN 128 select SYS_SUPPORTS_LITTLE_ENDIAN
129 select SYS_HAS_EARLY_PRINTK
116 130
117endchoice 131endchoice
118 132
119config SOC_AU1000 133config SOC_AU1000
120 bool 134 bool
121 select SOC_AU1X00 135 select SOC_AU1X00
122 select ALCHEMY_GPIO_AU1000 136 select ALCHEMY_GPIOINT_AU1000
123 137
124config SOC_AU1100 138config SOC_AU1100
125 bool 139 bool
126 select SOC_AU1X00 140 select SOC_AU1X00
127 select ALCHEMY_GPIO_AU1000 141 select ALCHEMY_GPIOINT_AU1000
128 142
129config SOC_AU1500 143config SOC_AU1500
130 bool 144 bool
131 select SOC_AU1X00 145 select SOC_AU1X00
132 select ALCHEMY_GPIO_AU1000 146 select ALCHEMY_GPIOINT_AU1000
133 147
134config SOC_AU1550 148config SOC_AU1550
135 bool 149 bool
136 select SOC_AU1X00 150 select SOC_AU1X00
137 select ALCHEMY_GPIO_AU1000 151 select ALCHEMY_GPIOINT_AU1000
138 152
139config SOC_AU1200 153config SOC_AU1200
140 bool 154 bool
141 select SOC_AU1X00 155 select SOC_AU1X00
142 select ALCHEMY_GPIO_AU1000 156 select ALCHEMY_GPIOINT_AU1000
143 157
144config SOC_AU1X00 158config SOC_AU1X00
145 bool 159 bool
diff --git a/arch/mips/alchemy/common/Makefile b/arch/mips/alchemy/common/Makefile
index b67fb512529d..06c0e65a54b5 100644
--- a/arch/mips/alchemy/common/Makefile
+++ b/arch/mips/alchemy/common/Makefile
@@ -5,14 +5,15 @@
5# Makefile for the Alchemy Au1xx0 CPUs, generic files. 5# Makefile for the Alchemy Au1xx0 CPUs, generic files.
6# 6#
7 7
8obj-y += prom.o irq.o puts.o time.o reset.o \ 8obj-y += prom.o time.o clocks.o platform.o power.o setup.o \
9 clocks.o platform.o power.o setup.o \
10 sleeper.o dma.o dbdma.o 9 sleeper.o dma.o dbdma.o
11 10
11obj-$(CONFIG_ALCHEMY_GPIOINT_AU1000) += irq.o
12
12# optional gpiolib support 13# optional gpiolib support
13ifeq ($(CONFIG_ALCHEMY_GPIO_INDIRECT),) 14ifeq ($(CONFIG_ALCHEMY_GPIO_INDIRECT),)
14 ifeq ($(CONFIG_GPIOLIB),y) 15 ifeq ($(CONFIG_GPIOLIB),y)
15 obj-$(CONFIG_ALCHEMY_GPIO_AU1000) += gpiolib-au1000.o 16 obj-$(CONFIG_ALCHEMY_GPIOINT_AU1000) += gpiolib-au1000.o
16 endif 17 endif
17endif 18endif
18 19
diff --git a/arch/mips/alchemy/common/clocks.c b/arch/mips/alchemy/common/clocks.c
index d8991854530e..460c6285c1bb 100644
--- a/arch/mips/alchemy/common/clocks.c
+++ b/arch/mips/alchemy/common/clocks.c
@@ -40,8 +40,6 @@
40static unsigned int au1x00_clock; /* Hz */ 40static unsigned int au1x00_clock; /* Hz */
41static unsigned long uart_baud_base; 41static unsigned long uart_baud_base;
42 42
43static DEFINE_SPINLOCK(time_lock);
44
45/* 43/*
46 * Set the au1000_clock 44 * Set the au1000_clock
47 */ 45 */
@@ -84,9 +82,6 @@ void set_au1x00_uart_baud_base(unsigned long new_baud_base)
84unsigned long au1xxx_calc_clock(void) 82unsigned long au1xxx_calc_clock(void)
85{ 83{
86 unsigned long cpu_speed; 84 unsigned long cpu_speed;
87 unsigned long flags;
88
89 spin_lock_irqsave(&time_lock, flags);
90 85
91 /* 86 /*
92 * On early Au1000, sys_cpupll was write-only. Since these 87 * On early Au1000, sys_cpupll was write-only. Since these
@@ -108,8 +103,6 @@ unsigned long au1xxx_calc_clock(void)
108 set_au1x00_uart_baud_base(cpu_speed / (2 * ((int)(au_readl(SYS_POWERCTRL) 103 set_au1x00_uart_baud_base(cpu_speed / (2 * ((int)(au_readl(SYS_POWERCTRL)
109 & 0x03) + 2) * 16)); 104 & 0x03) + 2) * 16));
110 105
111 spin_unlock_irqrestore(&time_lock, flags);
112
113 set_au1x00_speed(cpu_speed); 106 set_au1x00_speed(cpu_speed);
114 107
115 return cpu_speed; 108 return cpu_speed;
diff --git a/arch/mips/alchemy/common/dbdma.c b/arch/mips/alchemy/common/dbdma.c
index f9201ca2295b..99ae84ce5af3 100644
--- a/arch/mips/alchemy/common/dbdma.c
+++ b/arch/mips/alchemy/common/dbdma.c
@@ -30,6 +30,7 @@
30 * 30 *
31 */ 31 */
32 32
33#include <linux/init.h>
33#include <linux/kernel.h> 34#include <linux/kernel.h>
34#include <linux/slab.h> 35#include <linux/slab.h>
35#include <linux/spinlock.h> 36#include <linux/spinlock.h>
@@ -58,7 +59,6 @@ static DEFINE_SPINLOCK(au1xxx_dbdma_spin_lock);
58 59
59static dbdma_global_t *dbdma_gptr = (dbdma_global_t *)DDMA_GLOBAL_BASE; 60static dbdma_global_t *dbdma_gptr = (dbdma_global_t *)DDMA_GLOBAL_BASE;
60static int dbdma_initialized; 61static int dbdma_initialized;
61static void au1xxx_dbdma_init(void);
62 62
63static dbdev_tab_t dbdev_tab[] = { 63static dbdev_tab_t dbdev_tab[] = {
64#ifdef CONFIG_SOC_AU1550 64#ifdef CONFIG_SOC_AU1550
@@ -237,7 +237,7 @@ u32 au1xxx_dbdma_chan_alloc(u32 srcid, u32 destid,
237 void (*callback)(int, void *), void *callparam) 237 void (*callback)(int, void *), void *callparam)
238{ 238{
239 unsigned long flags; 239 unsigned long flags;
240 u32 used, chan, rv; 240 u32 used, chan;
241 u32 dcp; 241 u32 dcp;
242 int i; 242 int i;
243 dbdev_tab_t *stp, *dtp; 243 dbdev_tab_t *stp, *dtp;
@@ -250,8 +250,7 @@ u32 au1xxx_dbdma_chan_alloc(u32 srcid, u32 destid,
250 * which can't be done successfully during board set up. 250 * which can't be done successfully during board set up.
251 */ 251 */
252 if (!dbdma_initialized) 252 if (!dbdma_initialized)
253 au1xxx_dbdma_init(); 253 return 0;
254 dbdma_initialized = 1;
255 254
256 stp = find_dbdev_id(srcid); 255 stp = find_dbdev_id(srcid);
257 if (stp == NULL) 256 if (stp == NULL)
@@ -261,7 +260,6 @@ u32 au1xxx_dbdma_chan_alloc(u32 srcid, u32 destid,
261 return 0; 260 return 0;
262 261
263 used = 0; 262 used = 0;
264 rv = 0;
265 263
266 /* Check to see if we can get both channels. */ 264 /* Check to see if we can get both channels. */
267 spin_lock_irqsave(&au1xxx_dbdma_spin_lock, flags); 265 spin_lock_irqsave(&au1xxx_dbdma_spin_lock, flags);
@@ -282,63 +280,65 @@ u32 au1xxx_dbdma_chan_alloc(u32 srcid, u32 destid,
282 used++; 280 used++;
283 spin_unlock_irqrestore(&au1xxx_dbdma_spin_lock, flags); 281 spin_unlock_irqrestore(&au1xxx_dbdma_spin_lock, flags);
284 282
285 if (!used) { 283 if (used)
286 /* Let's see if we can allocate a channel for it. */ 284 return 0;
287 ctp = NULL;
288 chan = 0;
289 spin_lock_irqsave(&au1xxx_dbdma_spin_lock, flags);
290 for (i = 0; i < NUM_DBDMA_CHANS; i++)
291 if (chan_tab_ptr[i] == NULL) {
292 /*
293 * If kmalloc fails, it is caught below same
294 * as a channel not available.
295 */
296 ctp = kmalloc(sizeof(chan_tab_t), GFP_ATOMIC);
297 chan_tab_ptr[i] = ctp;
298 break;
299 }
300 spin_unlock_irqrestore(&au1xxx_dbdma_spin_lock, flags);
301
302 if (ctp != NULL) {
303 memset(ctp, 0, sizeof(chan_tab_t));
304 ctp->chan_index = chan = i;
305 dcp = DDMA_CHANNEL_BASE;
306 dcp += (0x0100 * chan);
307 ctp->chan_ptr = (au1x_dma_chan_t *)dcp;
308 cp = (au1x_dma_chan_t *)dcp;
309 ctp->chan_src = stp;
310 ctp->chan_dest = dtp;
311 ctp->chan_callback = callback;
312 ctp->chan_callparam = callparam;
313
314 /* Initialize channel configuration. */
315 i = 0;
316 if (stp->dev_intlevel)
317 i |= DDMA_CFG_SED;
318 if (stp->dev_intpolarity)
319 i |= DDMA_CFG_SP;
320 if (dtp->dev_intlevel)
321 i |= DDMA_CFG_DED;
322 if (dtp->dev_intpolarity)
323 i |= DDMA_CFG_DP;
324 if ((stp->dev_flags & DEV_FLAGS_SYNC) ||
325 (dtp->dev_flags & DEV_FLAGS_SYNC))
326 i |= DDMA_CFG_SYNC;
327 cp->ddma_cfg = i;
328 au_sync();
329 285
330 /* Return a non-zero value that can be used to 286 /* Let's see if we can allocate a channel for it. */
331 * find the channel information in subsequent 287 ctp = NULL;
332 * operations. 288 chan = 0;
289 spin_lock_irqsave(&au1xxx_dbdma_spin_lock, flags);
290 for (i = 0; i < NUM_DBDMA_CHANS; i++)
291 if (chan_tab_ptr[i] == NULL) {
292 /*
293 * If kmalloc fails, it is caught below same
294 * as a channel not available.
333 */ 295 */
334 rv = (u32)(&chan_tab_ptr[chan]); 296 ctp = kmalloc(sizeof(chan_tab_t), GFP_ATOMIC);
335 } else { 297 chan_tab_ptr[i] = ctp;
336 /* Release devices */ 298 break;
337 stp->dev_flags &= ~DEV_FLAGS_INUSE;
338 dtp->dev_flags &= ~DEV_FLAGS_INUSE;
339 } 299 }
300 spin_unlock_irqrestore(&au1xxx_dbdma_spin_lock, flags);
301
302 if (ctp != NULL) {
303 memset(ctp, 0, sizeof(chan_tab_t));
304 ctp->chan_index = chan = i;
305 dcp = DDMA_CHANNEL_BASE;
306 dcp += (0x0100 * chan);
307 ctp->chan_ptr = (au1x_dma_chan_t *)dcp;
308 cp = (au1x_dma_chan_t *)dcp;
309 ctp->chan_src = stp;
310 ctp->chan_dest = dtp;
311 ctp->chan_callback = callback;
312 ctp->chan_callparam = callparam;
313
314 /* Initialize channel configuration. */
315 i = 0;
316 if (stp->dev_intlevel)
317 i |= DDMA_CFG_SED;
318 if (stp->dev_intpolarity)
319 i |= DDMA_CFG_SP;
320 if (dtp->dev_intlevel)
321 i |= DDMA_CFG_DED;
322 if (dtp->dev_intpolarity)
323 i |= DDMA_CFG_DP;
324 if ((stp->dev_flags & DEV_FLAGS_SYNC) ||
325 (dtp->dev_flags & DEV_FLAGS_SYNC))
326 i |= DDMA_CFG_SYNC;
327 cp->ddma_cfg = i;
328 au_sync();
329
330 /*
331 * Return a non-zero value that can be used to find the channel
332 * information in subsequent operations.
333 */
334 return (u32)(&chan_tab_ptr[chan]);
340 } 335 }
341 return rv; 336
337 /* Release devices */
338 stp->dev_flags &= ~DEV_FLAGS_INUSE;
339 dtp->dev_flags &= ~DEV_FLAGS_INUSE;
340
341 return 0;
342} 342}
343EXPORT_SYMBOL(au1xxx_dbdma_chan_alloc); 343EXPORT_SYMBOL(au1xxx_dbdma_chan_alloc);
344 344
@@ -572,7 +572,7 @@ EXPORT_SYMBOL(au1xxx_dbdma_ring_alloc);
572 * This updates the source pointer and byte count. Normally used 572 * This updates the source pointer and byte count. Normally used
573 * for memory to fifo transfers. 573 * for memory to fifo transfers.
574 */ 574 */
575u32 _au1xxx_dbdma_put_source(u32 chanid, void *buf, int nbytes, u32 flags) 575u32 au1xxx_dbdma_put_source(u32 chanid, dma_addr_t buf, int nbytes, u32 flags)
576{ 576{
577 chan_tab_t *ctp; 577 chan_tab_t *ctp;
578 au1x_ddma_desc_t *dp; 578 au1x_ddma_desc_t *dp;
@@ -598,7 +598,7 @@ u32 _au1xxx_dbdma_put_source(u32 chanid, void *buf, int nbytes, u32 flags)
598 return 0; 598 return 0;
599 599
600 /* Load up buffer address and byte count. */ 600 /* Load up buffer address and byte count. */
601 dp->dscr_source0 = virt_to_phys(buf); 601 dp->dscr_source0 = buf & ~0UL;
602 dp->dscr_cmd1 = nbytes; 602 dp->dscr_cmd1 = nbytes;
603 /* Check flags */ 603 /* Check flags */
604 if (flags & DDMA_FLAGS_IE) 604 if (flags & DDMA_FLAGS_IE)
@@ -625,14 +625,13 @@ u32 _au1xxx_dbdma_put_source(u32 chanid, void *buf, int nbytes, u32 flags)
625 /* Return something non-zero. */ 625 /* Return something non-zero. */
626 return nbytes; 626 return nbytes;
627} 627}
628EXPORT_SYMBOL(_au1xxx_dbdma_put_source); 628EXPORT_SYMBOL(au1xxx_dbdma_put_source);
629 629
630/* Put a destination buffer into the DMA ring. 630/* Put a destination buffer into the DMA ring.
631 * This updates the destination pointer and byte count. Normally used 631 * This updates the destination pointer and byte count. Normally used
632 * to place an empty buffer into the ring for fifo to memory transfers. 632 * to place an empty buffer into the ring for fifo to memory transfers.
633 */ 633 */
634u32 634u32 au1xxx_dbdma_put_dest(u32 chanid, dma_addr_t buf, int nbytes, u32 flags)
635_au1xxx_dbdma_put_dest(u32 chanid, void *buf, int nbytes, u32 flags)
636{ 635{
637 chan_tab_t *ctp; 636 chan_tab_t *ctp;
638 au1x_ddma_desc_t *dp; 637 au1x_ddma_desc_t *dp;
@@ -662,7 +661,7 @@ _au1xxx_dbdma_put_dest(u32 chanid, void *buf, int nbytes, u32 flags)
662 if (flags & DDMA_FLAGS_NOIE) 661 if (flags & DDMA_FLAGS_NOIE)
663 dp->dscr_cmd0 &= ~DSCR_CMD0_IE; 662 dp->dscr_cmd0 &= ~DSCR_CMD0_IE;
664 663
665 dp->dscr_dest0 = virt_to_phys(buf); 664 dp->dscr_dest0 = buf & ~0UL;
666 dp->dscr_cmd1 = nbytes; 665 dp->dscr_cmd1 = nbytes;
667#if 0 666#if 0
668 printk(KERN_DEBUG "cmd0:%x cmd1:%x source0:%x source1:%x dest0:%x dest1:%x\n", 667 printk(KERN_DEBUG "cmd0:%x cmd1:%x source0:%x source1:%x dest0:%x dest1:%x\n",
@@ -688,7 +687,7 @@ _au1xxx_dbdma_put_dest(u32 chanid, void *buf, int nbytes, u32 flags)
688 /* Return something non-zero. */ 687 /* Return something non-zero. */
689 return nbytes; 688 return nbytes;
690} 689}
691EXPORT_SYMBOL(_au1xxx_dbdma_put_dest); 690EXPORT_SYMBOL(au1xxx_dbdma_put_dest);
692 691
693/* 692/*
694 * Get a destination buffer into the DMA ring. 693 * Get a destination buffer into the DMA ring.
@@ -871,28 +870,6 @@ static irqreturn_t dbdma_interrupt(int irq, void *dev_id)
871 return IRQ_RETVAL(1); 870 return IRQ_RETVAL(1);
872} 871}
873 872
874static void au1xxx_dbdma_init(void)
875{
876 int irq_nr;
877
878 dbdma_gptr->ddma_config = 0;
879 dbdma_gptr->ddma_throttle = 0;
880 dbdma_gptr->ddma_inten = 0xffff;
881 au_sync();
882
883#if defined(CONFIG_SOC_AU1550)
884 irq_nr = AU1550_DDMA_INT;
885#elif defined(CONFIG_SOC_AU1200)
886 irq_nr = AU1200_DDMA_INT;
887#else
888 #error Unknown Au1x00 SOC
889#endif
890
891 if (request_irq(irq_nr, dbdma_interrupt, IRQF_DISABLED,
892 "Au1xxx dbdma", (void *)dbdma_gptr))
893 printk(KERN_ERR "Can't get 1550 dbdma irq");
894}
895
896void au1xxx_dbdma_dump(u32 chanid) 873void au1xxx_dbdma_dump(u32 chanid)
897{ 874{
898 chan_tab_t *ctp; 875 chan_tab_t *ctp;
@@ -906,7 +883,7 @@ void au1xxx_dbdma_dump(u32 chanid)
906 dtp = ctp->chan_dest; 883 dtp = ctp->chan_dest;
907 cp = ctp->chan_ptr; 884 cp = ctp->chan_ptr;
908 885
909 printk(KERN_DEBUG "Chan %x, stp %x (dev %d) dtp %x (dev %d) \n", 886 printk(KERN_DEBUG "Chan %x, stp %x (dev %d) dtp %x (dev %d)\n",
910 (u32)ctp, (u32)stp, stp - dbdev_tab, (u32)dtp, 887 (u32)ctp, (u32)stp, stp - dbdev_tab, (u32)dtp,
911 dtp - dbdev_tab); 888 dtp - dbdev_tab);
912 printk(KERN_DEBUG "desc base %x, get %x, put %x, cur %x\n", 889 printk(KERN_DEBUG "desc base %x, get %x, put %x, cur %x\n",
@@ -1041,4 +1018,38 @@ void au1xxx_dbdma_resume(void)
1041 } 1018 }
1042} 1019}
1043#endif /* CONFIG_PM */ 1020#endif /* CONFIG_PM */
1021
1022static int __init au1xxx_dbdma_init(void)
1023{
1024 int irq_nr, ret;
1025
1026 dbdma_gptr->ddma_config = 0;
1027 dbdma_gptr->ddma_throttle = 0;
1028 dbdma_gptr->ddma_inten = 0xffff;
1029 au_sync();
1030
1031 switch (alchemy_get_cputype()) {
1032 case ALCHEMY_CPU_AU1550:
1033 irq_nr = AU1550_DDMA_INT;
1034 break;
1035 case ALCHEMY_CPU_AU1200:
1036 irq_nr = AU1200_DDMA_INT;
1037 break;
1038 default:
1039 return -ENODEV;
1040 }
1041
1042 ret = request_irq(irq_nr, dbdma_interrupt, IRQF_DISABLED,
1043 "Au1xxx dbdma", (void *)dbdma_gptr);
1044 if (ret)
1045 printk(KERN_ERR "Cannot grab DBDMA interrupt!\n");
1046 else {
1047 dbdma_initialized = 1;
1048 printk(KERN_INFO "Alchemy DBDMA initialized\n");
1049 }
1050
1051 return ret;
1052}
1053subsys_initcall(au1xxx_dbdma_init);
1054
1044#endif /* defined(CONFIG_SOC_AU1550) || defined(CONFIG_SOC_AU1200) */ 1055#endif /* defined(CONFIG_SOC_AU1550) || defined(CONFIG_SOC_AU1200) */
diff --git a/arch/mips/alchemy/common/dma.c b/arch/mips/alchemy/common/dma.c
index d6fbda232e6a..d5278877891d 100644
--- a/arch/mips/alchemy/common/dma.c
+++ b/arch/mips/alchemy/common/dma.c
@@ -29,6 +29,8 @@
29 * 675 Mass Ave, Cambridge, MA 02139, USA. 29 * 675 Mass Ave, Cambridge, MA 02139, USA.
30 * 30 *
31 */ 31 */
32
33#include <linux/init.h>
32#include <linux/module.h> 34#include <linux/module.h>
33#include <linux/kernel.h> 35#include <linux/kernel.h>
34#include <linux/errno.h> 36#include <linux/errno.h>
@@ -188,17 +190,14 @@ int request_au1000_dma(int dev_id, const char *dev_str,
188 dev = &dma_dev_table[dev_id]; 190 dev = &dma_dev_table[dev_id];
189 191
190 if (irqhandler) { 192 if (irqhandler) {
191 chan->irq = AU1000_DMA_INT_BASE + i;
192 chan->irq_dev = irq_dev_id; 193 chan->irq_dev = irq_dev_id;
193 ret = request_irq(chan->irq, irqhandler, irqflags, dev_str, 194 ret = request_irq(chan->irq, irqhandler, irqflags, dev_str,
194 chan->irq_dev); 195 chan->irq_dev);
195 if (ret) { 196 if (ret) {
196 chan->irq = 0;
197 chan->irq_dev = NULL; 197 chan->irq_dev = NULL;
198 return ret; 198 return ret;
199 } 199 }
200 } else { 200 } else {
201 chan->irq = 0;
202 chan->irq_dev = NULL; 201 chan->irq_dev = NULL;
203 } 202 }
204 203
@@ -226,13 +225,40 @@ void free_au1000_dma(unsigned int dmanr)
226 } 225 }
227 226
228 disable_dma(dmanr); 227 disable_dma(dmanr);
229 if (chan->irq) 228 if (chan->irq_dev)
230 free_irq(chan->irq, chan->irq_dev); 229 free_irq(chan->irq, chan->irq_dev);
231 230
232 chan->irq = 0;
233 chan->irq_dev = NULL; 231 chan->irq_dev = NULL;
234 chan->dev_id = -1; 232 chan->dev_id = -1;
235} 233}
236EXPORT_SYMBOL(free_au1000_dma); 234EXPORT_SYMBOL(free_au1000_dma);
237 235
236static int __init au1000_dma_init(void)
237{
238 int base, i;
239
240 switch (alchemy_get_cputype()) {
241 case ALCHEMY_CPU_AU1000:
242 base = AU1000_DMA_INT_BASE;
243 break;
244 case ALCHEMY_CPU_AU1500:
245 base = AU1500_DMA_INT_BASE;
246 break;
247 case ALCHEMY_CPU_AU1100:
248 base = AU1100_DMA_INT_BASE;
249 break;
250 default:
251 goto out;
252 }
253
254 for (i = 0; i < NUM_AU1000_DMA_CHANNELS; i++)
255 au1000_dma_table[i].irq = base + i;
256
257 printk(KERN_INFO "Alchemy DMA initialized\n");
258
259out:
260 return 0;
261}
262arch_initcall(au1000_dma_init);
263
238#endif /* AU1000 AU1500 AU1100 */ 264#endif /* AU1000 AU1500 AU1100 */
diff --git a/arch/mips/alchemy/common/gpiolib-au1000.c b/arch/mips/alchemy/common/gpiolib-au1000.c
index 1bfa91f939f4..c8e1a94d4a95 100644
--- a/arch/mips/alchemy/common/gpiolib-au1000.c
+++ b/arch/mips/alchemy/common/gpiolib-au1000.c
@@ -36,7 +36,6 @@
36#include <asm/mach-au1x00/au1000.h> 36#include <asm/mach-au1x00/au1000.h>
37#include <asm/mach-au1x00/gpio.h> 37#include <asm/mach-au1x00/gpio.h>
38 38
39#if !defined(CONFIG_SOC_AU1000)
40static int gpio2_get(struct gpio_chip *chip, unsigned offset) 39static int gpio2_get(struct gpio_chip *chip, unsigned offset)
41{ 40{
42 return alchemy_gpio2_get_value(offset + ALCHEMY_GPIO2_BASE); 41 return alchemy_gpio2_get_value(offset + ALCHEMY_GPIO2_BASE);
@@ -63,7 +62,7 @@ static int gpio2_to_irq(struct gpio_chip *chip, unsigned offset)
63{ 62{
64 return alchemy_gpio2_to_irq(offset + ALCHEMY_GPIO2_BASE); 63 return alchemy_gpio2_to_irq(offset + ALCHEMY_GPIO2_BASE);
65} 64}
66#endif /* !defined(CONFIG_SOC_AU1000) */ 65
67 66
68static int gpio1_get(struct gpio_chip *chip, unsigned offset) 67static int gpio1_get(struct gpio_chip *chip, unsigned offset)
69{ 68{
@@ -104,7 +103,6 @@ struct gpio_chip alchemy_gpio_chip[] = {
104 .base = ALCHEMY_GPIO1_BASE, 103 .base = ALCHEMY_GPIO1_BASE,
105 .ngpio = ALCHEMY_GPIO1_NUM, 104 .ngpio = ALCHEMY_GPIO1_NUM,
106 }, 105 },
107#if !defined(CONFIG_SOC_AU1000)
108 [1] = { 106 [1] = {
109 .label = "alchemy-gpio2", 107 .label = "alchemy-gpio2",
110 .direction_input = gpio2_direction_input, 108 .direction_input = gpio2_direction_input,
@@ -115,15 +113,13 @@ struct gpio_chip alchemy_gpio_chip[] = {
115 .base = ALCHEMY_GPIO2_BASE, 113 .base = ALCHEMY_GPIO2_BASE,
116 .ngpio = ALCHEMY_GPIO2_NUM, 114 .ngpio = ALCHEMY_GPIO2_NUM,
117 }, 115 },
118#endif
119}; 116};
120 117
121static int __init alchemy_gpiolib_init(void) 118static int __init alchemy_gpiolib_init(void)
122{ 119{
123 gpiochip_add(&alchemy_gpio_chip[0]); 120 gpiochip_add(&alchemy_gpio_chip[0]);
124#if !defined(CONFIG_SOC_AU1000) 121 if (alchemy_get_cputype() != ALCHEMY_CPU_AU1000)
125 gpiochip_add(&alchemy_gpio_chip[1]); 122 gpiochip_add(&alchemy_gpio_chip[1]);
126#endif
127 123
128 return 0; 124 return 0;
129} 125}
diff --git a/arch/mips/alchemy/common/irq.c b/arch/mips/alchemy/common/irq.c
index d670928afcfd..b2821ace4d00 100644
--- a/arch/mips/alchemy/common/irq.c
+++ b/arch/mips/alchemy/common/irq.c
@@ -39,168 +39,180 @@
39 39
40static int au1x_ic_settype(unsigned int irq, unsigned int flow_type); 40static int au1x_ic_settype(unsigned int irq, unsigned int flow_type);
41 41
42/* NOTE on interrupt priorities: The original writers of this code said:
43 *
44 * Because of the tight timing of SETUP token to reply transactions,
45 * the USB devices-side packet complete interrupt (USB_DEV_REQ_INT)
46 * needs the highest priority.
47 */
48
42/* per-processor fixed function irqs */ 49/* per-processor fixed function irqs */
43struct au1xxx_irqmap au1xxx_ic0_map[] __initdata = { 50struct au1xxx_irqmap {
44 51 int im_irq;
45#if defined(CONFIG_SOC_AU1000) 52 int im_type;
46 { AU1000_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 53 int im_request; /* set 1 to get higher priority */
47 { AU1000_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 54};
48 { AU1000_UART2_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 55
49 { AU1000_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 56struct au1xxx_irqmap au1000_irqmap[] __initdata = {
50 { AU1000_SSI0_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 57 { AU1000_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
51 { AU1000_SSI1_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 58 { AU1000_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
52 { AU1000_DMA_INT_BASE, IRQ_TYPE_LEVEL_HIGH, 0 }, 59 { AU1000_UART2_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
53 { AU1000_DMA_INT_BASE+1, IRQ_TYPE_LEVEL_HIGH, 0 }, 60 { AU1000_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
54 { AU1000_DMA_INT_BASE+2, IRQ_TYPE_LEVEL_HIGH, 0 }, 61 { AU1000_SSI0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
55 { AU1000_DMA_INT_BASE+3, IRQ_TYPE_LEVEL_HIGH, 0 }, 62 { AU1000_SSI1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
56 { AU1000_DMA_INT_BASE+4, IRQ_TYPE_LEVEL_HIGH, 0 }, 63 { AU1000_DMA_INT_BASE, IRQ_TYPE_LEVEL_HIGH, 0 },
57 { AU1000_DMA_INT_BASE+5, IRQ_TYPE_LEVEL_HIGH, 0 }, 64 { AU1000_DMA_INT_BASE+1, IRQ_TYPE_LEVEL_HIGH, 0 },
58 { AU1000_DMA_INT_BASE+6, IRQ_TYPE_LEVEL_HIGH, 0 }, 65 { AU1000_DMA_INT_BASE+2, IRQ_TYPE_LEVEL_HIGH, 0 },
59 { AU1000_DMA_INT_BASE+7, IRQ_TYPE_LEVEL_HIGH, 0 }, 66 { AU1000_DMA_INT_BASE+3, IRQ_TYPE_LEVEL_HIGH, 0 },
60 { AU1000_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 }, 67 { AU1000_DMA_INT_BASE+4, IRQ_TYPE_LEVEL_HIGH, 0 },
61 { AU1000_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 }, 68 { AU1000_DMA_INT_BASE+5, IRQ_TYPE_LEVEL_HIGH, 0 },
62 { AU1000_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 }, 69 { AU1000_DMA_INT_BASE+6, IRQ_TYPE_LEVEL_HIGH, 0 },
63 { AU1000_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 }, 70 { AU1000_DMA_INT_BASE+7, IRQ_TYPE_LEVEL_HIGH, 0 },
64 { AU1000_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 }, 71 { AU1000_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 },
65 { AU1000_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 }, 72 { AU1000_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
66 { AU1000_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 }, 73 { AU1000_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
67 { AU1000_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 }, 74 { AU1000_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 },
68 { AU1000_IRDA_TX_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 75 { AU1000_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 },
69 { AU1000_IRDA_RX_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 76 { AU1000_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
70 { AU1000_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 77 { AU1000_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
71 { AU1000_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 0 }, 78 { AU1000_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 },
72 { AU1000_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 0 }, 79 { AU1000_IRDA_TX_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
73 { AU1000_ACSYNC_INT, IRQ_TYPE_EDGE_RISING, 0 }, 80 { AU1000_IRDA_RX_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
74 { AU1000_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 81 { AU1000_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 1 },
75 { AU1000_MAC1_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
76 { AU1000_AC97C_INT, IRQ_TYPE_EDGE_RISING, 0 },
77
78#elif defined(CONFIG_SOC_AU1500)
79
80 { AU1500_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
81 { AU1000_PCI_INTA, IRQ_TYPE_LEVEL_LOW, 0 },
82 { AU1000_PCI_INTB, IRQ_TYPE_LEVEL_LOW, 0 },
83 { AU1500_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
84 { AU1000_PCI_INTC, IRQ_TYPE_LEVEL_LOW, 0 },
85 { AU1000_PCI_INTD, IRQ_TYPE_LEVEL_LOW, 0 },
86 { AU1000_DMA_INT_BASE, IRQ_TYPE_LEVEL_HIGH, 0 },
87 { AU1000_DMA_INT_BASE+1, IRQ_TYPE_LEVEL_HIGH, 0 },
88 { AU1000_DMA_INT_BASE+2, IRQ_TYPE_LEVEL_HIGH, 0 },
89 { AU1000_DMA_INT_BASE+3, IRQ_TYPE_LEVEL_HIGH, 0 },
90 { AU1000_DMA_INT_BASE+4, IRQ_TYPE_LEVEL_HIGH, 0 },
91 { AU1000_DMA_INT_BASE+5, IRQ_TYPE_LEVEL_HIGH, 0 },
92 { AU1000_DMA_INT_BASE+6, IRQ_TYPE_LEVEL_HIGH, 0 },
93 { AU1000_DMA_INT_BASE+7, IRQ_TYPE_LEVEL_HIGH, 0 },
94 { AU1000_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 },
95 { AU1000_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
96 { AU1000_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
97 { AU1000_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 },
98 { AU1000_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 },
99 { AU1000_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
100 { AU1000_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
101 { AU1000_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 },
102 { AU1000_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
103 { AU1000_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 0 },
104 { AU1000_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 0 },
105 { AU1000_ACSYNC_INT, IRQ_TYPE_EDGE_RISING, 0 },
106 { AU1500_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
107 { AU1500_MAC1_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
108 { AU1000_AC97C_INT, IRQ_TYPE_EDGE_RISING, 0 },
109
110#elif defined(CONFIG_SOC_AU1100)
111
112 { AU1100_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
113 { AU1100_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
114 { AU1100_SD_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
115 { AU1100_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
116 { AU1000_SSI0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
117 { AU1000_SSI1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
118 { AU1000_DMA_INT_BASE, IRQ_TYPE_LEVEL_HIGH, 0 },
119 { AU1000_DMA_INT_BASE+1, IRQ_TYPE_LEVEL_HIGH, 0 },
120 { AU1000_DMA_INT_BASE+2, IRQ_TYPE_LEVEL_HIGH, 0 },
121 { AU1000_DMA_INT_BASE+3, IRQ_TYPE_LEVEL_HIGH, 0 },
122 { AU1000_DMA_INT_BASE+4, IRQ_TYPE_LEVEL_HIGH, 0 },
123 { AU1000_DMA_INT_BASE+5, IRQ_TYPE_LEVEL_HIGH, 0 },
124 { AU1000_DMA_INT_BASE+6, IRQ_TYPE_LEVEL_HIGH, 0 },
125 { AU1000_DMA_INT_BASE+7, IRQ_TYPE_LEVEL_HIGH, 0 },
126 { AU1000_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 },
127 { AU1000_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
128 { AU1000_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
129 { AU1000_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 },
130 { AU1000_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 },
131 { AU1000_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
132 { AU1000_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
133 { AU1000_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 },
134 { AU1000_IRDA_TX_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
135 { AU1000_IRDA_RX_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
136 { AU1000_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
137 { AU1000_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 0 }, 82 { AU1000_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 0 },
138 { AU1000_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 0 }, 83 { AU1000_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 0 },
139 { AU1000_ACSYNC_INT, IRQ_TYPE_EDGE_RISING, 0 }, 84 { AU1000_ACSYNC_INT, IRQ_TYPE_EDGE_RISING, 0 },
140 { AU1100_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 85 { AU1000_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
141 { AU1100_LCD_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 86 { AU1000_MAC1_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
142 { AU1000_AC97C_INT, IRQ_TYPE_EDGE_RISING, 0 }, 87 { AU1000_AC97C_INT, IRQ_TYPE_EDGE_RISING, 0 },
143 88 { -1, },
144#elif defined(CONFIG_SOC_AU1550) 89};
145 90
146 { AU1550_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 91struct au1xxx_irqmap au1500_irqmap[] __initdata = {
147 { AU1550_PCI_INTA, IRQ_TYPE_LEVEL_LOW, 0 }, 92 { AU1500_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
148 { AU1550_PCI_INTB, IRQ_TYPE_LEVEL_LOW, 0 }, 93 { AU1500_PCI_INTA, IRQ_TYPE_LEVEL_LOW, 0 },
149 { AU1550_DDMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 94 { AU1500_PCI_INTB, IRQ_TYPE_LEVEL_LOW, 0 },
150 { AU1550_CRYPTO_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 95 { AU1500_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
151 { AU1550_PCI_INTC, IRQ_TYPE_LEVEL_LOW, 0 }, 96 { AU1500_PCI_INTC, IRQ_TYPE_LEVEL_LOW, 0 },
152 { AU1550_PCI_INTD, IRQ_TYPE_LEVEL_LOW, 0 }, 97 { AU1500_PCI_INTD, IRQ_TYPE_LEVEL_LOW, 0 },
153 { AU1550_PCI_RST_INT, IRQ_TYPE_LEVEL_LOW, 0 }, 98 { AU1500_DMA_INT_BASE, IRQ_TYPE_LEVEL_HIGH, 0 },
154 { AU1550_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 99 { AU1500_DMA_INT_BASE+1, IRQ_TYPE_LEVEL_HIGH, 0 },
155 { AU1550_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 100 { AU1500_DMA_INT_BASE+2, IRQ_TYPE_LEVEL_HIGH, 0 },
156 { AU1550_PSC0_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 101 { AU1500_DMA_INT_BASE+3, IRQ_TYPE_LEVEL_HIGH, 0 },
157 { AU1550_PSC1_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 102 { AU1500_DMA_INT_BASE+4, IRQ_TYPE_LEVEL_HIGH, 0 },
158 { AU1550_PSC2_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 103 { AU1500_DMA_INT_BASE+5, IRQ_TYPE_LEVEL_HIGH, 0 },
159 { AU1550_PSC3_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 104 { AU1500_DMA_INT_BASE+6, IRQ_TYPE_LEVEL_HIGH, 0 },
160 { AU1000_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 }, 105 { AU1500_DMA_INT_BASE+7, IRQ_TYPE_LEVEL_HIGH, 0 },
161 { AU1000_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 }, 106 { AU1500_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 },
162 { AU1000_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 }, 107 { AU1500_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
163 { AU1000_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 }, 108 { AU1500_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
164 { AU1000_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 }, 109 { AU1500_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 },
165 { AU1000_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 }, 110 { AU1500_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 },
166 { AU1000_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 }, 111 { AU1500_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
167 { AU1000_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 }, 112 { AU1500_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
168 { AU1550_NAND_INT, IRQ_TYPE_EDGE_RISING, 0 }, 113 { AU1500_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 },
169 { AU1550_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 114 { AU1500_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 1 },
115 { AU1500_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 0 },
116 { AU1500_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 0 },
117 { AU1500_ACSYNC_INT, IRQ_TYPE_EDGE_RISING, 0 },
118 { AU1500_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
119 { AU1500_MAC1_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
120 { AU1500_AC97C_INT, IRQ_TYPE_EDGE_RISING, 0 },
121 { -1, },
122};
123
124struct au1xxx_irqmap au1100_irqmap[] __initdata = {
125 { AU1100_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
126 { AU1100_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
127 { AU1100_SD_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
128 { AU1100_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
129 { AU1100_SSI0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
130 { AU1100_SSI1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
131 { AU1100_DMA_INT_BASE, IRQ_TYPE_LEVEL_HIGH, 0 },
132 { AU1100_DMA_INT_BASE+1, IRQ_TYPE_LEVEL_HIGH, 0 },
133 { AU1100_DMA_INT_BASE+2, IRQ_TYPE_LEVEL_HIGH, 0 },
134 { AU1100_DMA_INT_BASE+3, IRQ_TYPE_LEVEL_HIGH, 0 },
135 { AU1100_DMA_INT_BASE+4, IRQ_TYPE_LEVEL_HIGH, 0 },
136 { AU1100_DMA_INT_BASE+5, IRQ_TYPE_LEVEL_HIGH, 0 },
137 { AU1100_DMA_INT_BASE+6, IRQ_TYPE_LEVEL_HIGH, 0 },
138 { AU1100_DMA_INT_BASE+7, IRQ_TYPE_LEVEL_HIGH, 0 },
139 { AU1100_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 },
140 { AU1100_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
141 { AU1100_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
142 { AU1100_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 },
143 { AU1100_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 },
144 { AU1100_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
145 { AU1100_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
146 { AU1100_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 },
147 { AU1100_IRDA_TX_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
148 { AU1100_IRDA_RX_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
149 { AU1100_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 1 },
150 { AU1100_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 0 },
151 { AU1100_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 0 },
152 { AU1100_ACSYNC_INT, IRQ_TYPE_EDGE_RISING, 0 },
153 { AU1100_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
154 { AU1100_LCD_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
155 { AU1100_AC97C_INT, IRQ_TYPE_EDGE_RISING, 0 },
156 { -1, },
157};
158
159struct au1xxx_irqmap au1550_irqmap[] __initdata = {
160 { AU1550_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
161 { AU1550_PCI_INTA, IRQ_TYPE_LEVEL_LOW, 0 },
162 { AU1550_PCI_INTB, IRQ_TYPE_LEVEL_LOW, 0 },
163 { AU1550_DDMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
164 { AU1550_CRYPTO_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
165 { AU1550_PCI_INTC, IRQ_TYPE_LEVEL_LOW, 0 },
166 { AU1550_PCI_INTD, IRQ_TYPE_LEVEL_LOW, 0 },
167 { AU1550_PCI_RST_INT, IRQ_TYPE_LEVEL_LOW, 0 },
168 { AU1550_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
169 { AU1550_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
170 { AU1550_PSC0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
171 { AU1550_PSC1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
172 { AU1550_PSC2_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
173 { AU1550_PSC3_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
174 { AU1550_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 },
175 { AU1550_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
176 { AU1550_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
177 { AU1550_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 },
178 { AU1550_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 },
179 { AU1550_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
180 { AU1550_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
181 { AU1550_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 },
182 { AU1550_NAND_INT, IRQ_TYPE_EDGE_RISING, 0 },
183 { AU1550_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 1 },
170 { AU1550_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 0 }, 184 { AU1550_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 0 },
171 { AU1550_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 0 }, 185 { AU1550_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 0 },
172 { AU1550_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 186 { AU1550_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
173 { AU1550_MAC1_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 187 { AU1550_MAC1_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
174 188 { -1, },
175#elif defined(CONFIG_SOC_AU1200) 189};
176 190
177 { AU1200_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 191struct au1xxx_irqmap au1200_irqmap[] __initdata = {
178 { AU1200_SWT_INT, IRQ_TYPE_EDGE_RISING, 0 }, 192 { AU1200_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
179 { AU1200_SD_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 193 { AU1200_SWT_INT, IRQ_TYPE_EDGE_RISING, 0 },
180 { AU1200_DDMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 194 { AU1200_SD_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
181 { AU1200_MAE_BE_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 195 { AU1200_DDMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
182 { AU1200_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 196 { AU1200_MAE_BE_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
183 { AU1200_MAE_FE_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 197 { AU1200_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
184 { AU1200_PSC0_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 198 { AU1200_MAE_FE_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
185 { AU1200_PSC1_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 199 { AU1200_PSC0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
186 { AU1200_AES_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 200 { AU1200_PSC1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
187 { AU1200_CAMERA_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 201 { AU1200_AES_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
188 { AU1000_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 }, 202 { AU1200_CAMERA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
189 { AU1000_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 }, 203 { AU1200_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 },
190 { AU1000_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 }, 204 { AU1200_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
191 { AU1000_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 }, 205 { AU1200_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
192 { AU1000_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 }, 206 { AU1200_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 },
193 { AU1000_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 }, 207 { AU1200_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 },
194 { AU1000_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 }, 208 { AU1200_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
195 { AU1000_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 }, 209 { AU1200_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
196 { AU1200_NAND_INT, IRQ_TYPE_EDGE_RISING, 0 }, 210 { AU1200_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 },
197 { AU1200_USB_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 211 { AU1200_NAND_INT, IRQ_TYPE_EDGE_RISING, 0 },
198 { AU1200_LCD_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 212 { AU1200_USB_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
199 { AU1200_MAE_BOTH_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 213 { AU1200_LCD_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
200 214 { AU1200_MAE_BOTH_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
201#else 215 { -1, },
202#error "Error: Unknown Alchemy SOC"
203#endif
204}; 216};
205 217
206 218
@@ -306,7 +318,7 @@ static void au1x_ic1_unmask(unsigned int irq_nr)
306 * nowhere in the current kernel sources is it disabled. --mlau 318 * nowhere in the current kernel sources is it disabled. --mlau
307 */ 319 */
308#if defined(CONFIG_MIPS_PB1000) 320#if defined(CONFIG_MIPS_PB1000)
309 if (irq_nr == AU1000_GPIO_15) 321 if (irq_nr == AU1000_GPIO15_INT)
310 au_writel(0x4000, PB1000_MDR); /* enable int */ 322 au_writel(0x4000, PB1000_MDR); /* enable int */
311#endif 323#endif
312 au_sync(); 324 au_sync();
@@ -378,11 +390,13 @@ static void au1x_ic1_maskack(unsigned int irq_nr)
378 390
379static int au1x_ic1_setwake(unsigned int irq, unsigned int on) 391static int au1x_ic1_setwake(unsigned int irq, unsigned int on)
380{ 392{
381 unsigned int bit = irq - AU1000_INTC1_INT_BASE; 393 int bit = irq - AU1000_INTC1_INT_BASE;
382 unsigned long wakemsk, flags; 394 unsigned long wakemsk, flags;
383 395
384 /* only GPIO 0-7 can act as wakeup source: */ 396 /* only GPIO 0-7 can act as wakeup source. Fortunately these
385 if ((irq < AU1000_GPIO_0) || (irq > AU1000_GPIO_7)) 397 * are wired up identically on all supported variants.
398 */
399 if ((bit < 0) || (bit > 7))
386 return -EINVAL; 400 return -EINVAL;
387 401
388 local_irq_save(flags); 402 local_irq_save(flags);
@@ -504,11 +518,11 @@ static int au1x_ic_settype(unsigned int irq, unsigned int flow_type)
504asmlinkage void plat_irq_dispatch(void) 518asmlinkage void plat_irq_dispatch(void)
505{ 519{
506 unsigned int pending = read_c0_status() & read_c0_cause(); 520 unsigned int pending = read_c0_status() & read_c0_cause();
507 unsigned long s, off, bit; 521 unsigned long s, off;
508 522
509 if (pending & CAUSEF_IP7) { 523 if (pending & CAUSEF_IP7) {
510 do_IRQ(MIPS_CPU_IRQ_BASE + 7); 524 off = MIPS_CPU_IRQ_BASE + 7;
511 return; 525 goto handle;
512 } else if (pending & CAUSEF_IP2) { 526 } else if (pending & CAUSEF_IP2) {
513 s = IC0_REQ0INT; 527 s = IC0_REQ0INT;
514 off = AU1000_INTC0_INT_BASE; 528 off = AU1000_INTC0_INT_BASE;
@@ -524,58 +538,20 @@ asmlinkage void plat_irq_dispatch(void)
524 } else 538 } else
525 goto spurious; 539 goto spurious;
526 540
527 bit = 0;
528 s = au_readl(s); 541 s = au_readl(s);
529 if (unlikely(!s)) { 542 if (unlikely(!s)) {
530spurious: 543spurious:
531 spurious_interrupt(); 544 spurious_interrupt();
532 return; 545 return;
533 } 546 }
534#ifdef AU1000_USB_DEV_REQ_INT 547 off += __ffs(s);
535 /* 548handle:
536 * Because of the tight timing of SETUP token to reply 549 do_IRQ(off);
537 * transactions, the USB devices-side packet complete
538 * interrupt needs the highest priority.
539 */
540 bit = 1 << (AU1000_USB_DEV_REQ_INT - AU1000_INTC0_INT_BASE);
541 if ((pending & CAUSEF_IP2) && (s & bit)) {
542 do_IRQ(AU1000_USB_DEV_REQ_INT);
543 return;
544 }
545#endif
546 do_IRQ(__ffs(s) + off);
547} 550}
548 551
549/* setup edge/level and assign request 0/1 */ 552static void __init au1000_init_irq(struct au1xxx_irqmap *map)
550void __init au1xxx_setup_irqmap(struct au1xxx_irqmap *map, int count)
551{ 553{
552 unsigned int bit, irq_nr; 554 unsigned int bit, irq_nr;
553
554 while (count--) {
555 irq_nr = map[count].im_irq;
556
557 if (((irq_nr < AU1000_INTC0_INT_BASE) ||
558 (irq_nr >= AU1000_INTC0_INT_BASE + 32)) &&
559 ((irq_nr < AU1000_INTC1_INT_BASE) ||
560 (irq_nr >= AU1000_INTC1_INT_BASE + 32)))
561 continue;
562
563 if (irq_nr >= AU1000_INTC1_INT_BASE) {
564 bit = irq_nr - AU1000_INTC1_INT_BASE;
565 if (map[count].im_request)
566 au_writel(1 << bit, IC1_ASSIGNCLR);
567 } else {
568 bit = irq_nr - AU1000_INTC0_INT_BASE;
569 if (map[count].im_request)
570 au_writel(1 << bit, IC0_ASSIGNCLR);
571 }
572
573 au1x_ic_settype(irq_nr, map[count].im_type);
574 }
575}
576
577void __init arch_init_irq(void)
578{
579 int i; 555 int i;
580 556
581 /* 557 /*
@@ -585,7 +561,7 @@ void __init arch_init_irq(void)
585 au_writel(0xffffffff, IC0_CFG1CLR); 561 au_writel(0xffffffff, IC0_CFG1CLR);
586 au_writel(0xffffffff, IC0_CFG2CLR); 562 au_writel(0xffffffff, IC0_CFG2CLR);
587 au_writel(0xffffffff, IC0_MASKCLR); 563 au_writel(0xffffffff, IC0_MASKCLR);
588 au_writel(0xffffffff, IC0_ASSIGNSET); 564 au_writel(0xffffffff, IC0_ASSIGNCLR);
589 au_writel(0xffffffff, IC0_WAKECLR); 565 au_writel(0xffffffff, IC0_WAKECLR);
590 au_writel(0xffffffff, IC0_SRCSET); 566 au_writel(0xffffffff, IC0_SRCSET);
591 au_writel(0xffffffff, IC0_FALLINGCLR); 567 au_writel(0xffffffff, IC0_FALLINGCLR);
@@ -596,7 +572,7 @@ void __init arch_init_irq(void)
596 au_writel(0xffffffff, IC1_CFG1CLR); 572 au_writel(0xffffffff, IC1_CFG1CLR);
597 au_writel(0xffffffff, IC1_CFG2CLR); 573 au_writel(0xffffffff, IC1_CFG2CLR);
598 au_writel(0xffffffff, IC1_MASKCLR); 574 au_writel(0xffffffff, IC1_MASKCLR);
599 au_writel(0xffffffff, IC1_ASSIGNSET); 575 au_writel(0xffffffff, IC1_ASSIGNCLR);
600 au_writel(0xffffffff, IC1_WAKECLR); 576 au_writel(0xffffffff, IC1_WAKECLR);
601 au_writel(0xffffffff, IC1_SRCSET); 577 au_writel(0xffffffff, IC1_SRCSET);
602 au_writel(0xffffffff, IC1_FALLINGCLR); 578 au_writel(0xffffffff, IC1_FALLINGCLR);
@@ -619,11 +595,43 @@ void __init arch_init_irq(void)
619 /* 595 /*
620 * Initialize IC0, which is fixed per processor. 596 * Initialize IC0, which is fixed per processor.
621 */ 597 */
622 au1xxx_setup_irqmap(au1xxx_ic0_map, ARRAY_SIZE(au1xxx_ic0_map)); 598 while (map->im_irq != -1) {
599 irq_nr = map->im_irq;
623 600
624 /* Boards can register additional (GPIO-based) IRQs. 601 if (irq_nr >= AU1000_INTC1_INT_BASE) {
625 */ 602 bit = irq_nr - AU1000_INTC1_INT_BASE;
626 board_init_irq(); 603 if (map->im_request)
604 au_writel(1 << bit, IC1_ASSIGNSET);
605 } else {
606 bit = irq_nr - AU1000_INTC0_INT_BASE;
607 if (map->im_request)
608 au_writel(1 << bit, IC0_ASSIGNSET);
609 }
610
611 au1x_ic_settype(irq_nr, map->im_type);
612 ++map;
613 }
627 614
628 set_c0_status(IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3); 615 set_c0_status(IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3);
629} 616}
617
618void __init arch_init_irq(void)
619{
620 switch (alchemy_get_cputype()) {
621 case ALCHEMY_CPU_AU1000:
622 au1000_init_irq(au1000_irqmap);
623 break;
624 case ALCHEMY_CPU_AU1500:
625 au1000_init_irq(au1500_irqmap);
626 break;
627 case ALCHEMY_CPU_AU1100:
628 au1000_init_irq(au1100_irqmap);
629 break;
630 case ALCHEMY_CPU_AU1550:
631 au1000_init_irq(au1550_irqmap);
632 break;
633 case ALCHEMY_CPU_AU1200:
634 au1000_init_irq(au1200_irqmap);
635 break;
636 }
637}
diff --git a/arch/mips/alchemy/common/platform.c b/arch/mips/alchemy/common/platform.c
index 117f99f70649..2580e77624d2 100644
--- a/arch/mips/alchemy/common/platform.c
+++ b/arch/mips/alchemy/common/platform.c
@@ -19,39 +19,40 @@
19#include <asm/mach-au1x00/au1xxx.h> 19#include <asm/mach-au1x00/au1xxx.h>
20#include <asm/mach-au1x00/au1xxx_dbdma.h> 20#include <asm/mach-au1x00/au1xxx_dbdma.h>
21#include <asm/mach-au1x00/au1100_mmc.h> 21#include <asm/mach-au1x00/au1100_mmc.h>
22 22#include <asm/mach-au1x00/au1xxx_eth.h>
23#define PORT(_base, _irq) \ 23
24 { \ 24#define PORT(_base, _irq) \
25 .iobase = _base, \ 25 { \
26 .membase = (void __iomem *)_base,\ 26 .mapbase = _base, \
27 .mapbase = CPHYSADDR(_base), \ 27 .irq = _irq, \
28 .irq = _irq, \ 28 .regshift = 2, \
29 .regshift = 2, \ 29 .iotype = UPIO_AU, \
30 .iotype = UPIO_AU, \ 30 .flags = UPF_SKIP_TEST | UPF_IOREMAP | \
31 .flags = UPF_SKIP_TEST \ 31 UPF_FIXED_TYPE, \
32 .type = PORT_16550A, \
32 } 33 }
33 34
34static struct plat_serial8250_port au1x00_uart_data[] = { 35static struct plat_serial8250_port au1x00_uart_data[] = {
35#if defined(CONFIG_SERIAL_8250_AU1X00) 36#if defined(CONFIG_SERIAL_8250_AU1X00)
36#if defined(CONFIG_SOC_AU1000) 37#if defined(CONFIG_SOC_AU1000)
37 PORT(UART0_ADDR, AU1000_UART0_INT), 38 PORT(UART0_PHYS_ADDR, AU1000_UART0_INT),
38 PORT(UART1_ADDR, AU1000_UART1_INT), 39 PORT(UART1_PHYS_ADDR, AU1000_UART1_INT),
39 PORT(UART2_ADDR, AU1000_UART2_INT), 40 PORT(UART2_PHYS_ADDR, AU1000_UART2_INT),
40 PORT(UART3_ADDR, AU1000_UART3_INT), 41 PORT(UART3_PHYS_ADDR, AU1000_UART3_INT),
41#elif defined(CONFIG_SOC_AU1500) 42#elif defined(CONFIG_SOC_AU1500)
42 PORT(UART0_ADDR, AU1500_UART0_INT), 43 PORT(UART0_PHYS_ADDR, AU1500_UART0_INT),
43 PORT(UART3_ADDR, AU1500_UART3_INT), 44 PORT(UART3_PHYS_ADDR, AU1500_UART3_INT),
44#elif defined(CONFIG_SOC_AU1100) 45#elif defined(CONFIG_SOC_AU1100)
45 PORT(UART0_ADDR, AU1100_UART0_INT), 46 PORT(UART0_PHYS_ADDR, AU1100_UART0_INT),
46 PORT(UART1_ADDR, AU1100_UART1_INT), 47 PORT(UART1_PHYS_ADDR, AU1100_UART1_INT),
47 PORT(UART3_ADDR, AU1100_UART3_INT), 48 PORT(UART3_PHYS_ADDR, AU1100_UART3_INT),
48#elif defined(CONFIG_SOC_AU1550) 49#elif defined(CONFIG_SOC_AU1550)
49 PORT(UART0_ADDR, AU1550_UART0_INT), 50 PORT(UART0_PHYS_ADDR, AU1550_UART0_INT),
50 PORT(UART1_ADDR, AU1550_UART1_INT), 51 PORT(UART1_PHYS_ADDR, AU1550_UART1_INT),
51 PORT(UART3_ADDR, AU1550_UART3_INT), 52 PORT(UART3_PHYS_ADDR, AU1550_UART3_INT),
52#elif defined(CONFIG_SOC_AU1200) 53#elif defined(CONFIG_SOC_AU1200)
53 PORT(UART0_ADDR, AU1200_UART0_INT), 54 PORT(UART0_PHYS_ADDR, AU1200_UART0_INT),
54 PORT(UART1_ADDR, AU1200_UART1_INT), 55 PORT(UART1_PHYS_ADDR, AU1200_UART1_INT),
55#endif 56#endif
56#endif /* CONFIG_SERIAL_8250_AU1X00 */ 57#endif /* CONFIG_SERIAL_8250_AU1X00 */
57 { }, 58 { },
@@ -73,8 +74,8 @@ static struct resource au1xxx_usb_ohci_resources[] = {
73 .flags = IORESOURCE_MEM, 74 .flags = IORESOURCE_MEM,
74 }, 75 },
75 [1] = { 76 [1] = {
76 .start = AU1000_USB_HOST_INT, 77 .start = FOR_PLATFORM_C_USB_HOST_INT,
77 .end = AU1000_USB_HOST_INT, 78 .end = FOR_PLATFORM_C_USB_HOST_INT,
78 .flags = IORESOURCE_IRQ, 79 .flags = IORESOURCE_IRQ,
79 }, 80 },
80}; 81};
@@ -132,8 +133,8 @@ static struct resource au1xxx_usb_ehci_resources[] = {
132 .flags = IORESOURCE_MEM, 133 .flags = IORESOURCE_MEM,
133 }, 134 },
134 [1] = { 135 [1] = {
135 .start = AU1000_USB_HOST_INT, 136 .start = AU1200_USB_INT,
136 .end = AU1000_USB_HOST_INT, 137 .end = AU1200_USB_INT,
137 .flags = IORESOURCE_IRQ, 138 .flags = IORESOURCE_IRQ,
138 }, 139 },
139}; 140};
@@ -308,11 +309,6 @@ static struct platform_device au1200_mmc1_device = {
308#endif /* #ifndef CONFIG_MIPS_DB1200 */ 309#endif /* #ifndef CONFIG_MIPS_DB1200 */
309#endif /* #ifdef CONFIG_SOC_AU1200 */ 310#endif /* #ifdef CONFIG_SOC_AU1200 */
310 311
311static struct platform_device au1x00_pcmcia_device = {
312 .name = "au1x00-pcmcia",
313 .id = 0,
314};
315
316/* All Alchemy demoboards with I2C have this #define in their headers */ 312/* All Alchemy demoboards with I2C have this #define in their headers */
317#ifdef SMBUS_PSC_BASE 313#ifdef SMBUS_PSC_BASE
318static struct resource pbdb_smbus_resources[] = { 314static struct resource pbdb_smbus_resources[] = {
@@ -331,10 +327,92 @@ static struct platform_device pbdb_smbus_device = {
331}; 327};
332#endif 328#endif
333 329
330/* Macro to help defining the Ethernet MAC resources */
331#define MAC_RES(_base, _enable, _irq) \
332 { \
333 .start = CPHYSADDR(_base), \
334 .end = CPHYSADDR(_base + 0xffff), \
335 .flags = IORESOURCE_MEM, \
336 }, \
337 { \
338 .start = CPHYSADDR(_enable), \
339 .end = CPHYSADDR(_enable + 0x3), \
340 .flags = IORESOURCE_MEM, \
341 }, \
342 { \
343 .start = _irq, \
344 .end = _irq, \
345 .flags = IORESOURCE_IRQ \
346 }
347
348static struct resource au1xxx_eth0_resources[] = {
349#if defined(CONFIG_SOC_AU1000)
350 MAC_RES(AU1000_ETH0_BASE, AU1000_MAC0_ENABLE, AU1000_MAC0_DMA_INT),
351#elif defined(CONFIG_SOC_AU1100)
352 MAC_RES(AU1100_ETH0_BASE, AU1100_MAC0_ENABLE, AU1100_MAC0_DMA_INT),
353#elif defined(CONFIG_SOC_AU1550)
354 MAC_RES(AU1550_ETH0_BASE, AU1550_MAC0_ENABLE, AU1550_MAC0_DMA_INT),
355#elif defined(CONFIG_SOC_AU1500)
356 MAC_RES(AU1500_ETH0_BASE, AU1500_MAC0_ENABLE, AU1500_MAC0_DMA_INT),
357#endif
358};
359
360
361static struct au1000_eth_platform_data au1xxx_eth0_platform_data = {
362 .phy1_search_mac0 = 1,
363};
364
365static struct platform_device au1xxx_eth0_device = {
366 .name = "au1000-eth",
367 .id = 0,
368 .num_resources = ARRAY_SIZE(au1xxx_eth0_resources),
369 .resource = au1xxx_eth0_resources,
370 .dev.platform_data = &au1xxx_eth0_platform_data,
371};
372
373#ifndef CONFIG_SOC_AU1100
374static struct resource au1xxx_eth1_resources[] = {
375#if defined(CONFIG_SOC_AU1000)
376 MAC_RES(AU1000_ETH1_BASE, AU1000_MAC1_ENABLE, AU1000_MAC1_DMA_INT),
377#elif defined(CONFIG_SOC_AU1550)
378 MAC_RES(AU1550_ETH1_BASE, AU1550_MAC1_ENABLE, AU1550_MAC1_DMA_INT),
379#elif defined(CONFIG_SOC_AU1500)
380 MAC_RES(AU1500_ETH1_BASE, AU1500_MAC1_ENABLE, AU1500_MAC1_DMA_INT),
381#endif
382};
383
384static struct au1000_eth_platform_data au1xxx_eth1_platform_data = {
385 .phy1_search_mac0 = 1,
386};
387
388static struct platform_device au1xxx_eth1_device = {
389 .name = "au1000-eth",
390 .id = 1,
391 .num_resources = ARRAY_SIZE(au1xxx_eth1_resources),
392 .resource = au1xxx_eth1_resources,
393 .dev.platform_data = &au1xxx_eth1_platform_data,
394};
395#endif
396
397void __init au1xxx_override_eth_cfg(unsigned int port,
398 struct au1000_eth_platform_data *eth_data)
399{
400 if (!eth_data || port > 1)
401 return;
402
403 if (port == 0)
404 memcpy(&au1xxx_eth0_platform_data, eth_data,
405 sizeof(struct au1000_eth_platform_data));
406#ifndef CONFIG_SOC_AU1100
407 else
408 memcpy(&au1xxx_eth1_platform_data, eth_data,
409 sizeof(struct au1000_eth_platform_data));
410#endif
411}
412
334static struct platform_device *au1xxx_platform_devices[] __initdata = { 413static struct platform_device *au1xxx_platform_devices[] __initdata = {
335 &au1xx0_uart_device, 414 &au1xx0_uart_device,
336 &au1xxx_usb_ohci_device, 415 &au1xxx_usb_ohci_device,
337 &au1x00_pcmcia_device,
338#ifdef CONFIG_FB_AU1100 416#ifdef CONFIG_FB_AU1100
339 &au1100_lcd_device, 417 &au1100_lcd_device,
340#endif 418#endif
@@ -351,6 +429,7 @@ static struct platform_device *au1xxx_platform_devices[] __initdata = {
351#ifdef SMBUS_PSC_BASE 429#ifdef SMBUS_PSC_BASE
352 &pbdb_smbus_device, 430 &pbdb_smbus_device,
353#endif 431#endif
432 &au1xxx_eth0_device,
354}; 433};
355 434
356static int __init au1xxx_platform_init(void) 435static int __init au1xxx_platform_init(void)
@@ -362,6 +441,12 @@ static int __init au1xxx_platform_init(void)
362 for (i = 0; au1x00_uart_data[i].flags; i++) 441 for (i = 0; au1x00_uart_data[i].flags; i++)
363 au1x00_uart_data[i].uartclk = uartclk; 442 au1x00_uart_data[i].uartclk = uartclk;
364 443
444#ifndef CONFIG_SOC_AU1100
445 /* Register second MAC if enabled in pinfunc */
446 if (!(au_readl(SYS_PINFUNC) & (u32)SYS_PF_NI2))
447 platform_device_register(&au1xxx_eth1_device);
448#endif
449
365 return platform_add_devices(au1xxx_platform_devices, 450 return platform_add_devices(au1xxx_platform_devices,
366 ARRAY_SIZE(au1xxx_platform_devices)); 451 ARRAY_SIZE(au1xxx_platform_devices));
367} 452}
diff --git a/arch/mips/alchemy/common/prom.c b/arch/mips/alchemy/common/prom.c
index 18b310b475ca..c29511b11d44 100644
--- a/arch/mips/alchemy/common/prom.c
+++ b/arch/mips/alchemy/common/prom.c
@@ -43,29 +43,15 @@ int prom_argc;
43char **prom_argv; 43char **prom_argv;
44char **prom_envp; 44char **prom_envp;
45 45
46char * __init_or_module prom_getcmdline(void)
47{
48 return &(arcs_cmdline[0]);
49}
50
51void prom_init_cmdline(void) 46void prom_init_cmdline(void)
52{ 47{
53 char *cp; 48 int i;
54 int actr;
55
56 actr = 1; /* Always ignore argv[0] */
57 49
58 cp = &(arcs_cmdline[0]); 50 for (i = 1; i < prom_argc; i++) {
59 while (actr < prom_argc) { 51 strlcat(arcs_cmdline, prom_argv[i], COMMAND_LINE_SIZE);
60 strcpy(cp, prom_argv[actr]); 52 if (i < (prom_argc - 1))
61 cp += strlen(prom_argv[actr]); 53 strlcat(arcs_cmdline, " ", COMMAND_LINE_SIZE);
62 *cp++ = ' ';
63 actr++;
64 } 54 }
65 if (cp != &(arcs_cmdline[0])) /* get rid of trailing space */
66 --cp;
67 if (prom_argc > 1)
68 *cp = '\0';
69} 55}
70 56
71char *prom_getenv(char *envname) 57char *prom_getenv(char *envname)
@@ -121,14 +107,12 @@ static inline void str2eaddr(unsigned char *ea, unsigned char *str)
121int prom_get_ethernet_addr(char *ethernet_addr) 107int prom_get_ethernet_addr(char *ethernet_addr)
122{ 108{
123 char *ethaddr_str; 109 char *ethaddr_str;
124 char *argptr;
125 110
126 /* Check the environment variables first */ 111 /* Check the environment variables first */
127 ethaddr_str = prom_getenv("ethaddr"); 112 ethaddr_str = prom_getenv("ethaddr");
128 if (!ethaddr_str) { 113 if (!ethaddr_str) {
129 /* Check command line */ 114 /* Check command line */
130 argptr = prom_getcmdline(); 115 ethaddr_str = strstr(arcs_cmdline, "ethaddr=");
131 ethaddr_str = strstr(argptr, "ethaddr=");
132 if (!ethaddr_str) 116 if (!ethaddr_str)
133 return -1; 117 return -1;
134 118
diff --git a/arch/mips/alchemy/common/puts.c b/arch/mips/alchemy/common/puts.c
deleted file mode 100644
index 55bbe24d45b6..000000000000
--- a/arch/mips/alchemy/common/puts.c
+++ /dev/null
@@ -1,68 +0,0 @@
1/*
2 *
3 * BRIEF MODULE DESCRIPTION
4 * Low level UART routines to directly access Alchemy UART.
5 *
6 * Copyright 2001, 2008 MontaVista Software Inc.
7 * Author: MontaVista Software, Inc. <source@mvista.com>
8 *
9 * This program is free software; you can redistribute it and/or modify it
10 * under the terms of the GNU General Public License as published by the
11 * Free Software Foundation; either version 2 of the License, or (at your
12 * option) any later version.
13 *
14 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
15 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
16 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
17 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
18 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
20 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
21 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 *
25 * You should have received a copy of the GNU General Public License along
26 * with this program; if not, write to the Free Software Foundation, Inc.,
27 * 675 Mass Ave, Cambridge, MA 02139, USA.
28 */
29
30#include <asm/mach-au1x00/au1000.h>
31
32#define SERIAL_BASE UART_BASE
33#define SER_CMD 0x7
34#define SER_DATA 0x1
35#define TX_BUSY 0x20
36
37#define TIMEOUT 0xffffff
38#define SLOW_DOWN
39
40static volatile unsigned long * const com1 = (unsigned long *)SERIAL_BASE;
41
42#ifdef SLOW_DOWN
43static inline void slow_down(void)
44{
45 int k;
46
47 for (k = 0; k < 10000; k++);
48}
49#else
50#define slow_down()
51#endif
52
53void
54prom_putchar(const unsigned char c)
55{
56 unsigned char ch;
57 int i = 0;
58
59 do {
60 ch = com1[SER_CMD];
61 slow_down();
62 i++;
63 if (i > TIMEOUT)
64 break;
65 } while (0 == (ch & TX_BUSY));
66
67 com1[SER_DATA] = c;
68}
diff --git a/arch/mips/alchemy/common/reset.c b/arch/mips/alchemy/common/reset.c
deleted file mode 100644
index 4791011e8f92..000000000000
--- a/arch/mips/alchemy/common/reset.c
+++ /dev/null
@@ -1,188 +0,0 @@
1/*
2 *
3 * BRIEF MODULE DESCRIPTION
4 * Au1xx0 reset routines.
5 *
6 * Copyright 2001, 2006, 2008 MontaVista Software Inc.
7 * Author: MontaVista Software, Inc. <source@mvista.com>
8 *
9 * This program is free software; you can redistribute it and/or modify it
10 * under the terms of the GNU General Public License as published by the
11 * Free Software Foundation; either version 2 of the License, or (at your
12 * option) any later version.
13 *
14 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
15 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
16 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
17 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
18 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
20 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
21 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 *
25 * You should have received a copy of the GNU General Public License along
26 * with this program; if not, write to the Free Software Foundation, Inc.,
27 * 675 Mass Ave, Cambridge, MA 02139, USA.
28 */
29
30#include <linux/gpio.h>
31
32#include <asm/cacheflush.h>
33#include <asm/mach-au1x00/au1000.h>
34
35void au1000_restart(char *command)
36{
37 /* Set all integrated peripherals to disabled states */
38 extern void board_reset(void);
39 u32 prid = read_c0_prid();
40
41 printk(KERN_NOTICE "\n** Resetting Integrated Peripherals\n");
42
43 switch (prid & 0xFF000000) {
44 case 0x00000000: /* Au1000 */
45 au_writel(0x02, 0xb0000010); /* ac97_enable */
46 au_writel(0x08, 0xb017fffc); /* usbh_enable - early errata */
47 asm("sync");
48 au_writel(0x00, 0xb017fffc); /* usbh_enable */
49 au_writel(0x00, 0xb0200058); /* usbd_enable */
50 au_writel(0x00, 0xb0300040); /* ir_enable */
51 au_writel(0x00, 0xb4004104); /* mac dma */
52 au_writel(0x00, 0xb4004114); /* mac dma */
53 au_writel(0x00, 0xb4004124); /* mac dma */
54 au_writel(0x00, 0xb4004134); /* mac dma */
55 au_writel(0x00, 0xb0520000); /* macen0 */
56 au_writel(0x00, 0xb0520004); /* macen1 */
57 au_writel(0x00, 0xb1000008); /* i2s_enable */
58 au_writel(0x00, 0xb1100100); /* uart0_enable */
59 au_writel(0x00, 0xb1200100); /* uart1_enable */
60 au_writel(0x00, 0xb1300100); /* uart2_enable */
61 au_writel(0x00, 0xb1400100); /* uart3_enable */
62 au_writel(0x02, 0xb1600100); /* ssi0_enable */
63 au_writel(0x02, 0xb1680100); /* ssi1_enable */
64 au_writel(0x00, 0xb1900020); /* sys_freqctrl0 */
65 au_writel(0x00, 0xb1900024); /* sys_freqctrl1 */
66 au_writel(0x00, 0xb1900028); /* sys_clksrc */
67 au_writel(0x10, 0xb1900060); /* sys_cpupll */
68 au_writel(0x00, 0xb1900064); /* sys_auxpll */
69 au_writel(0x00, 0xb1900100); /* sys_pininputen */
70 break;
71 case 0x01000000: /* Au1500 */
72 au_writel(0x02, 0xb0000010); /* ac97_enable */
73 au_writel(0x08, 0xb017fffc); /* usbh_enable - early errata */
74 asm("sync");
75 au_writel(0x00, 0xb017fffc); /* usbh_enable */
76 au_writel(0x00, 0xb0200058); /* usbd_enable */
77 au_writel(0x00, 0xb4004104); /* mac dma */
78 au_writel(0x00, 0xb4004114); /* mac dma */
79 au_writel(0x00, 0xb4004124); /* mac dma */
80 au_writel(0x00, 0xb4004134); /* mac dma */
81 au_writel(0x00, 0xb1520000); /* macen0 */
82 au_writel(0x00, 0xb1520004); /* macen1 */
83 au_writel(0x00, 0xb1100100); /* uart0_enable */
84 au_writel(0x00, 0xb1400100); /* uart3_enable */
85 au_writel(0x00, 0xb1900020); /* sys_freqctrl0 */
86 au_writel(0x00, 0xb1900024); /* sys_freqctrl1 */
87 au_writel(0x00, 0xb1900028); /* sys_clksrc */
88 au_writel(0x10, 0xb1900060); /* sys_cpupll */
89 au_writel(0x00, 0xb1900064); /* sys_auxpll */
90 au_writel(0x00, 0xb1900100); /* sys_pininputen */
91 break;
92 case 0x02000000: /* Au1100 */
93 au_writel(0x02, 0xb0000010); /* ac97_enable */
94 au_writel(0x08, 0xb017fffc); /* usbh_enable - early errata */
95 asm("sync");
96 au_writel(0x00, 0xb017fffc); /* usbh_enable */
97 au_writel(0x00, 0xb0200058); /* usbd_enable */
98 au_writel(0x00, 0xb0300040); /* ir_enable */
99 au_writel(0x00, 0xb4004104); /* mac dma */
100 au_writel(0x00, 0xb4004114); /* mac dma */
101 au_writel(0x00, 0xb4004124); /* mac dma */
102 au_writel(0x00, 0xb4004134); /* mac dma */
103 au_writel(0x00, 0xb0520000); /* macen0 */
104 au_writel(0x00, 0xb1000008); /* i2s_enable */
105 au_writel(0x00, 0xb1100100); /* uart0_enable */
106 au_writel(0x00, 0xb1200100); /* uart1_enable */
107 au_writel(0x00, 0xb1400100); /* uart3_enable */
108 au_writel(0x02, 0xb1600100); /* ssi0_enable */
109 au_writel(0x02, 0xb1680100); /* ssi1_enable */
110 au_writel(0x00, 0xb1900020); /* sys_freqctrl0 */
111 au_writel(0x00, 0xb1900024); /* sys_freqctrl1 */
112 au_writel(0x00, 0xb1900028); /* sys_clksrc */
113 au_writel(0x10, 0xb1900060); /* sys_cpupll */
114 au_writel(0x00, 0xb1900064); /* sys_auxpll */
115 au_writel(0x00, 0xb1900100); /* sys_pininputen */
116 break;
117 case 0x03000000: /* Au1550 */
118 au_writel(0x00, 0xb1a00004); /* psc 0 */
119 au_writel(0x00, 0xb1b00004); /* psc 1 */
120 au_writel(0x00, 0xb0a00004); /* psc 2 */
121 au_writel(0x00, 0xb0b00004); /* psc 3 */
122 au_writel(0x00, 0xb017fffc); /* usbh_enable */
123 au_writel(0x00, 0xb0200058); /* usbd_enable */
124 au_writel(0x00, 0xb4004104); /* mac dma */
125 au_writel(0x00, 0xb4004114); /* mac dma */
126 au_writel(0x00, 0xb4004124); /* mac dma */
127 au_writel(0x00, 0xb4004134); /* mac dma */
128 au_writel(0x00, 0xb1520000); /* macen0 */
129 au_writel(0x00, 0xb1520004); /* macen1 */
130 au_writel(0x00, 0xb1100100); /* uart0_enable */
131 au_writel(0x00, 0xb1200100); /* uart1_enable */
132 au_writel(0x00, 0xb1400100); /* uart3_enable */
133 au_writel(0x00, 0xb1900020); /* sys_freqctrl0 */
134 au_writel(0x00, 0xb1900024); /* sys_freqctrl1 */
135 au_writel(0x00, 0xb1900028); /* sys_clksrc */
136 au_writel(0x10, 0xb1900060); /* sys_cpupll */
137 au_writel(0x00, 0xb1900064); /* sys_auxpll */
138 au_writel(0x00, 0xb1900100); /* sys_pininputen */
139 break;
140 }
141
142 set_c0_status(ST0_BEV | ST0_ERL);
143 change_c0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
144 flush_cache_all();
145 write_c0_wired(0);
146
147 /* Give board a chance to do a hardware reset */
148 board_reset();
149
150 /* Jump to the beggining in case board_reset() is empty */
151 __asm__ __volatile__("jr\t%0"::"r"(0xbfc00000));
152}
153
154void au1000_halt(void)
155{
156#if defined(CONFIG_MIPS_PB1550) || defined(CONFIG_MIPS_DB1550)
157 /* Power off system */
158 printk(KERN_NOTICE "\n** Powering off...\n");
159 au_writew(au_readw(0xAF00001C) | (3 << 14), 0xAF00001C);
160 au_sync();
161 while (1); /* should not get here */
162#else
163 printk(KERN_NOTICE "\n** You can safely turn off the power\n");
164#ifdef CONFIG_MIPS_MIRAGE
165 gpio_direction_output(210, 1);
166#endif
167#ifdef CONFIG_MIPS_DB1200
168 au_writew(au_readw(0xB980001C) | (1 << 14), 0xB980001C);
169#endif
170#ifdef CONFIG_PM
171 au_sleep();
172
173 /* Should not get here */
174 printk(KERN_ERR "Unable to put CPU in sleep mode\n");
175 while (1);
176#else
177 while (1)
178 __asm__(".set\tmips3\n\t"
179 "wait\n\t"
180 ".set\tmips0");
181#endif
182#endif /* defined(CONFIG_MIPS_PB1550) || defined(CONFIG_MIPS_DB1550) */
183}
184
185void au1000_power_off(void)
186{
187 au1000_halt();
188}
diff --git a/arch/mips/alchemy/common/setup.c b/arch/mips/alchemy/common/setup.c
index 6184baa56786..561e5da2658b 100644
--- a/arch/mips/alchemy/common/setup.c
+++ b/arch/mips/alchemy/common/setup.c
@@ -29,18 +29,13 @@
29#include <linux/ioport.h> 29#include <linux/ioport.h>
30#include <linux/jiffies.h> 30#include <linux/jiffies.h>
31#include <linux/module.h> 31#include <linux/module.h>
32#include <linux/pm.h>
33 32
34#include <asm/mipsregs.h> 33#include <asm/mipsregs.h>
35#include <asm/reboot.h>
36#include <asm/time.h> 34#include <asm/time.h>
37 35
38#include <au1000.h> 36#include <au1000.h>
39 37
40extern void __init board_setup(void); 38extern void __init board_setup(void);
41extern void au1000_restart(char *);
42extern void au1000_halt(void);
43extern void au1000_power_off(void);
44extern void set_cpuspec(void); 39extern void set_cpuspec(void);
45 40
46void __init plat_mem_setup(void) 41void __init plat_mem_setup(void)
@@ -57,10 +52,6 @@ void __init plat_mem_setup(void)
57 /* this is faster than wasting cycles trying to approximate it */ 52 /* this is faster than wasting cycles trying to approximate it */
58 preset_lpj = (est_freq >> 1) / HZ; 53 preset_lpj = (est_freq >> 1) / HZ;
59 54
60 _machine_restart = au1000_restart;
61 _machine_halt = au1000_halt;
62 pm_power_off = au1000_power_off;
63
64 board_setup(); /* board specific setup */ 55 board_setup(); /* board specific setup */
65 56
66 if (au1xxx_cpu_needs_config_od()) 57 if (au1xxx_cpu_needs_config_od())
@@ -78,37 +69,20 @@ void __init plat_mem_setup(void)
78 iomem_resource.end = IOMEM_RESOURCE_END; 69 iomem_resource.end = IOMEM_RESOURCE_END;
79} 70}
80 71
81#if defined(CONFIG_64BIT_PHYS_ADDR) 72#if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_PCI)
82/* This routine should be valid for all Au1x based boards */ 73/* This routine should be valid for all Au1x based boards */
83phys_t __fixup_bigphys_addr(phys_t phys_addr, phys_t size) 74phys_t __fixup_bigphys_addr(phys_t phys_addr, phys_t size)
84{ 75{
76 u32 start = (u32)Au1500_PCI_MEM_START;
77 u32 end = (u32)Au1500_PCI_MEM_END;
78
85 /* Don't fixup 36-bit addresses */ 79 /* Don't fixup 36-bit addresses */
86 if ((phys_addr >> 32) != 0) 80 if ((phys_addr >> 32) != 0)
87 return phys_addr; 81 return phys_addr;
88 82
89#ifdef CONFIG_PCI 83 /* Check for PCI memory window */
90 { 84 if (phys_addr >= start && (phys_addr + size - 1) <= end)
91 u32 start = (u32)Au1500_PCI_MEM_START; 85 return (phys_t)((phys_addr - start) + Au1500_PCI_MEM_START);
92 u32 end = (u32)Au1500_PCI_MEM_END;
93
94 /* Check for PCI memory window */
95 if (phys_addr >= start && (phys_addr + size - 1) <= end)
96 return (phys_t)
97 ((phys_addr - start) + Au1500_PCI_MEM_START);
98 }
99#endif
100
101 /*
102 * All Au1xx0 SOCs have a PCMCIA controller.
103 * We setup our 32-bit pseudo addresses to be equal to the
104 * 36-bit addr >> 4, to make it easier to check the address
105 * and fix it.
106 * The PCMCIA socket 0 physical attribute address is 0xF 4000 0000.
107 * The pseudo address we use is 0xF400 0000. Any address over
108 * 0xF400 0000 is a PCMCIA pseudo address.
109 */
110 if ((phys_addr >= 0xF4000000) && (phys_addr < 0xFFFFFFFF))
111 return (phys_t)(phys_addr << 4);
112 86
113 /* default nop */ 87 /* default nop */
114 return phys_addr; 88 return phys_addr;
diff --git a/arch/mips/alchemy/common/time.c b/arch/mips/alchemy/common/time.c
index 379a664809b0..2aecb2fdf982 100644
--- a/arch/mips/alchemy/common/time.c
+++ b/arch/mips/alchemy/common/time.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2008 Manuel Lauss <mano@roarinelk.homelinux.net> 2 * Copyright (C) 2008-2009 Manuel Lauss <manuel.lauss@gmail.com>
3 * 3 *
4 * Previous incarnations were: 4 * Previous incarnations were:
5 * Copyright (C) 2001, 2006, 2008 MontaVista Software, <source@mvista.com> 5 * Copyright (C) 2001, 2006, 2008 MontaVista Software, <source@mvista.com>
@@ -85,7 +85,6 @@ static struct clock_event_device au1x_rtcmatch2_clockdev = {
85 .name = "rtcmatch2", 85 .name = "rtcmatch2",
86 .features = CLOCK_EVT_FEAT_ONESHOT, 86 .features = CLOCK_EVT_FEAT_ONESHOT,
87 .rating = 100, 87 .rating = 100,
88 .irq = AU1000_RTC_MATCH2_INT,
89 .set_next_event = au1x_rtcmatch2_set_next_event, 88 .set_next_event = au1x_rtcmatch2_set_next_event,
90 .set_mode = au1x_rtcmatch2_set_mode, 89 .set_mode = au1x_rtcmatch2_set_mode,
91 .cpumask = cpu_all_mask, 90 .cpumask = cpu_all_mask,
@@ -98,11 +97,13 @@ static struct irqaction au1x_rtcmatch2_irqaction = {
98 .dev_id = &au1x_rtcmatch2_clockdev, 97 .dev_id = &au1x_rtcmatch2_clockdev,
99}; 98};
100 99
101void __init plat_time_init(void) 100static int __init alchemy_time_init(unsigned int m2int)
102{ 101{
103 struct clock_event_device *cd = &au1x_rtcmatch2_clockdev; 102 struct clock_event_device *cd = &au1x_rtcmatch2_clockdev;
104 unsigned long t; 103 unsigned long t;
105 104
105 au1x_rtcmatch2_clockdev.irq = m2int;
106
106 /* Check if firmware (YAMON, ...) has enabled 32kHz and clock 107 /* Check if firmware (YAMON, ...) has enabled 32kHz and clock
107 * has been detected. If so install the rtcmatch2 clocksource, 108 * has been detected. If so install the rtcmatch2 clocksource,
108 * otherwise don't bother. Note that both bits being set is by 109 * otherwise don't bother. Note that both bits being set is by
@@ -148,13 +149,18 @@ void __init plat_time_init(void)
148 cd->max_delta_ns = clockevent_delta2ns(0xffffffff, cd); 149 cd->max_delta_ns = clockevent_delta2ns(0xffffffff, cd);
149 cd->min_delta_ns = clockevent_delta2ns(8, cd); /* ~0.25ms */ 150 cd->min_delta_ns = clockevent_delta2ns(8, cd); /* ~0.25ms */
150 clockevents_register_device(cd); 151 clockevents_register_device(cd);
151 setup_irq(AU1000_RTC_MATCH2_INT, &au1x_rtcmatch2_irqaction); 152 setup_irq(m2int, &au1x_rtcmatch2_irqaction);
152 153
153 printk(KERN_INFO "Alchemy clocksource installed\n"); 154 printk(KERN_INFO "Alchemy clocksource installed\n");
154 155
155 return; 156 return 0;
156 157
157cntr_err: 158cntr_err:
159 return -1;
160}
161
162static void __init alchemy_setup_c0timer(void)
163{
158 /* 164 /*
159 * MIPS kernel assigns 'au1k_wait' to 'cpu_wait' before this 165 * MIPS kernel assigns 'au1k_wait' to 'cpu_wait' before this
160 * function is called. Because the Alchemy counters are unusable 166 * function is called. Because the Alchemy counters are unusable
@@ -166,3 +172,22 @@ cntr_err:
166 r4k_clockevent_init(); 172 r4k_clockevent_init();
167 init_r4k_clocksource(); 173 init_r4k_clocksource();
168} 174}
175
176static int alchemy_m2inttab[] __initdata = {
177 AU1000_RTC_MATCH2_INT,
178 AU1500_RTC_MATCH2_INT,
179 AU1100_RTC_MATCH2_INT,
180 AU1550_RTC_MATCH2_INT,
181 AU1200_RTC_MATCH2_INT,
182};
183
184void __init plat_time_init(void)
185{
186 int t;
187
188 t = alchemy_get_cputype();
189 if (t == ALCHEMY_CPU_UNKNOWN)
190 alchemy_setup_c0timer();
191 else if (alchemy_time_init(alchemy_m2inttab[t]))
192 alchemy_setup_c0timer();
193}
diff --git a/arch/mips/alchemy/devboards/Makefile b/arch/mips/alchemy/devboards/Makefile
index 730f9f2b30e8..ecbd37f9ee87 100644
--- a/arch/mips/alchemy/devboards/Makefile
+++ b/arch/mips/alchemy/devboards/Makefile
@@ -2,7 +2,7 @@
2# Alchemy Develboards 2# Alchemy Develboards
3# 3#
4 4
5obj-y += prom.o 5obj-y += prom.o bcsr.o platform.o
6obj-$(CONFIG_PM) += pm.o 6obj-$(CONFIG_PM) += pm.o
7obj-$(CONFIG_MIPS_PB1000) += pb1000/ 7obj-$(CONFIG_MIPS_PB1000) += pb1000/
8obj-$(CONFIG_MIPS_PB1100) += pb1100/ 8obj-$(CONFIG_MIPS_PB1100) += pb1100/
@@ -11,8 +11,10 @@ obj-$(CONFIG_MIPS_PB1500) += pb1500/
11obj-$(CONFIG_MIPS_PB1550) += pb1550/ 11obj-$(CONFIG_MIPS_PB1550) += pb1550/
12obj-$(CONFIG_MIPS_DB1000) += db1x00/ 12obj-$(CONFIG_MIPS_DB1000) += db1x00/
13obj-$(CONFIG_MIPS_DB1100) += db1x00/ 13obj-$(CONFIG_MIPS_DB1100) += db1x00/
14obj-$(CONFIG_MIPS_DB1200) += pb1200/ 14obj-$(CONFIG_MIPS_DB1200) += db1200/
15obj-$(CONFIG_MIPS_DB1500) += db1x00/ 15obj-$(CONFIG_MIPS_DB1500) += db1x00/
16obj-$(CONFIG_MIPS_DB1550) += db1x00/ 16obj-$(CONFIG_MIPS_DB1550) += db1x00/
17obj-$(CONFIG_MIPS_BOSPORUS) += db1x00/ 17obj-$(CONFIG_MIPS_BOSPORUS) += db1x00/
18obj-$(CONFIG_MIPS_MIRAGE) += db1x00/ 18obj-$(CONFIG_MIPS_MIRAGE) += db1x00/
19
20EXTRA_CFLAGS += -Werror
diff --git a/arch/mips/alchemy/devboards/bcsr.c b/arch/mips/alchemy/devboards/bcsr.c
new file mode 100644
index 000000000000..3bc4fd2155d7
--- /dev/null
+++ b/arch/mips/alchemy/devboards/bcsr.c
@@ -0,0 +1,148 @@
1/*
2 * bcsr.h -- Db1xxx/Pb1xxx Devboard CPLD registers ("BCSR") abstraction.
3 *
4 * All Alchemy development boards (except, of course, the weird PB1000)
5 * have a few registers in a CPLD with standardised layout; they mostly
6 * only differ in base address.
7 * All registers are 16bits wide with 32bit spacing.
8 */
9
10#include <linux/interrupt.h>
11#include <linux/module.h>
12#include <linux/spinlock.h>
13#include <asm/addrspace.h>
14#include <asm/io.h>
15#include <asm/mach-db1x00/bcsr.h>
16
17static struct bcsr_reg {
18 void __iomem *raddr;
19 spinlock_t lock;
20} bcsr_regs[BCSR_CNT];
21
22static void __iomem *bcsr_virt; /* KSEG1 addr of BCSR base */
23static int bcsr_csc_base; /* linux-irq of first cascaded irq */
24
25void __init bcsr_init(unsigned long bcsr1_phys, unsigned long bcsr2_phys)
26{
27 int i;
28
29 bcsr1_phys = KSEG1ADDR(CPHYSADDR(bcsr1_phys));
30 bcsr2_phys = KSEG1ADDR(CPHYSADDR(bcsr2_phys));
31
32 bcsr_virt = (void __iomem *)bcsr1_phys;
33
34 for (i = 0; i < BCSR_CNT; i++) {
35 if (i >= BCSR_HEXLEDS)
36 bcsr_regs[i].raddr = (void __iomem *)bcsr2_phys +
37 (0x04 * (i - BCSR_HEXLEDS));
38 else
39 bcsr_regs[i].raddr = (void __iomem *)bcsr1_phys +
40 (0x04 * i);
41
42 spin_lock_init(&bcsr_regs[i].lock);
43 }
44}
45
46unsigned short bcsr_read(enum bcsr_id reg)
47{
48 unsigned short r;
49 unsigned long flags;
50
51 spin_lock_irqsave(&bcsr_regs[reg].lock, flags);
52 r = __raw_readw(bcsr_regs[reg].raddr);
53 spin_unlock_irqrestore(&bcsr_regs[reg].lock, flags);
54 return r;
55}
56EXPORT_SYMBOL_GPL(bcsr_read);
57
58void bcsr_write(enum bcsr_id reg, unsigned short val)
59{
60 unsigned long flags;
61
62 spin_lock_irqsave(&bcsr_regs[reg].lock, flags);
63 __raw_writew(val, bcsr_regs[reg].raddr);
64 wmb();
65 spin_unlock_irqrestore(&bcsr_regs[reg].lock, flags);
66}
67EXPORT_SYMBOL_GPL(bcsr_write);
68
69void bcsr_mod(enum bcsr_id reg, unsigned short clr, unsigned short set)
70{
71 unsigned short r;
72 unsigned long flags;
73
74 spin_lock_irqsave(&bcsr_regs[reg].lock, flags);
75 r = __raw_readw(bcsr_regs[reg].raddr);
76 r &= ~clr;
77 r |= set;
78 __raw_writew(r, bcsr_regs[reg].raddr);
79 wmb();
80 spin_unlock_irqrestore(&bcsr_regs[reg].lock, flags);
81}
82EXPORT_SYMBOL_GPL(bcsr_mod);
83
84/*
85 * DB1200/PB1200 CPLD IRQ muxer
86 */
87static void bcsr_csc_handler(unsigned int irq, struct irq_desc *d)
88{
89 unsigned short bisr = __raw_readw(bcsr_virt + BCSR_REG_INTSTAT);
90
91 for ( ; bisr; bisr &= bisr - 1)
92 generic_handle_irq(bcsr_csc_base + __ffs(bisr));
93}
94
95/* NOTE: both the enable and mask bits must be cleared, otherwise the
96 * CPLD generates tons of spurious interrupts (at least on my DB1200).
97 * -- mlau
98 */
99static void bcsr_irq_mask(unsigned int irq_nr)
100{
101 unsigned short v = 1 << (irq_nr - bcsr_csc_base);
102 __raw_writew(v, bcsr_virt + BCSR_REG_INTCLR);
103 __raw_writew(v, bcsr_virt + BCSR_REG_MASKCLR);
104 wmb();
105}
106
107static void bcsr_irq_maskack(unsigned int irq_nr)
108{
109 unsigned short v = 1 << (irq_nr - bcsr_csc_base);
110 __raw_writew(v, bcsr_virt + BCSR_REG_INTCLR);
111 __raw_writew(v, bcsr_virt + BCSR_REG_MASKCLR);
112 __raw_writew(v, bcsr_virt + BCSR_REG_INTSTAT); /* ack */
113 wmb();
114}
115
116static void bcsr_irq_unmask(unsigned int irq_nr)
117{
118 unsigned short v = 1 << (irq_nr - bcsr_csc_base);
119 __raw_writew(v, bcsr_virt + BCSR_REG_INTSET);
120 __raw_writew(v, bcsr_virt + BCSR_REG_MASKSET);
121 wmb();
122}
123
124static struct irq_chip bcsr_irq_type = {
125 .name = "CPLD",
126 .mask = bcsr_irq_mask,
127 .mask_ack = bcsr_irq_maskack,
128 .unmask = bcsr_irq_unmask,
129};
130
131void __init bcsr_init_irq(int csc_start, int csc_end, int hook_irq)
132{
133 unsigned int irq;
134
135 /* mask & disable & ack all */
136 __raw_writew(0xffff, bcsr_virt + BCSR_REG_INTCLR);
137 __raw_writew(0xffff, bcsr_virt + BCSR_REG_MASKCLR);
138 __raw_writew(0xffff, bcsr_virt + BCSR_REG_INTSTAT);
139 wmb();
140
141 bcsr_csc_base = csc_start;
142
143 for (irq = csc_start; irq <= csc_end; irq++)
144 set_irq_chip_and_handler_name(irq, &bcsr_irq_type,
145 handle_level_irq, "level");
146
147 set_irq_chained_handler(hook_irq, bcsr_csc_handler);
148}
diff --git a/arch/mips/alchemy/devboards/db1200/Makefile b/arch/mips/alchemy/devboards/db1200/Makefile
new file mode 100644
index 000000000000..17840a5e2738
--- /dev/null
+++ b/arch/mips/alchemy/devboards/db1200/Makefile
@@ -0,0 +1 @@
obj-y += setup.o platform.o
diff --git a/arch/mips/alchemy/devboards/db1200/platform.c b/arch/mips/alchemy/devboards/db1200/platform.c
new file mode 100644
index 000000000000..3cb95a98ab31
--- /dev/null
+++ b/arch/mips/alchemy/devboards/db1200/platform.c
@@ -0,0 +1,561 @@
1/*
2 * DBAu1200 board platform device registration
3 *
4 * Copyright (C) 2008-2009 Manuel Lauss
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20
21#include <linux/dma-mapping.h>
22#include <linux/gpio.h>
23#include <linux/i2c.h>
24#include <linux/init.h>
25#include <linux/io.h>
26#include <linux/leds.h>
27#include <linux/mmc/host.h>
28#include <linux/mtd/mtd.h>
29#include <linux/mtd/nand.h>
30#include <linux/mtd/partitions.h>
31#include <linux/platform_device.h>
32#include <linux/serial_8250.h>
33#include <linux/spi/spi.h>
34#include <linux/spi/flash.h>
35#include <linux/smc91x.h>
36
37#include <asm/mach-au1x00/au1100_mmc.h>
38#include <asm/mach-au1x00/au1xxx_dbdma.h>
39#include <asm/mach-au1x00/au1550_spi.h>
40#include <asm/mach-db1x00/bcsr.h>
41#include <asm/mach-db1x00/db1200.h>
42
43#include "../platform.h"
44
45static struct mtd_partition db1200_spiflash_parts[] = {
46 {
47 .name = "DB1200 SPI flash",
48 .offset = 0,
49 .size = MTDPART_SIZ_FULL,
50 },
51};
52
53static struct flash_platform_data db1200_spiflash_data = {
54 .name = "s25fl001",
55 .parts = db1200_spiflash_parts,
56 .nr_parts = ARRAY_SIZE(db1200_spiflash_parts),
57 .type = "m25p10",
58};
59
60static struct spi_board_info db1200_spi_devs[] __initdata = {
61 {
62 /* TI TMP121AIDBVR temp sensor */
63 .modalias = "tmp121",
64 .max_speed_hz = 2000000,
65 .bus_num = 0,
66 .chip_select = 0,
67 .mode = 0,
68 },
69 {
70 /* Spansion S25FL001D0FMA SPI flash */
71 .modalias = "m25p80",
72 .max_speed_hz = 50000000,
73 .bus_num = 0,
74 .chip_select = 1,
75 .mode = 0,
76 .platform_data = &db1200_spiflash_data,
77 },
78};
79
80static struct i2c_board_info db1200_i2c_devs[] __initdata = {
81 {
82 /* AT24C04-10 I2C eeprom */
83 I2C_BOARD_INFO("24c04", 0x52),
84 },
85 {
86 /* Philips NE1619 temp/voltage sensor (adm1025 drv) */
87 I2C_BOARD_INFO("ne1619", 0x2d),
88 },
89 {
90 /* I2S audio codec WM8731 */
91 I2C_BOARD_INFO("wm8731", 0x1b),
92 },
93};
94
95/**********************************************************************/
96
97static void au1200_nand_cmd_ctrl(struct mtd_info *mtd, int cmd,
98 unsigned int ctrl)
99{
100 struct nand_chip *this = mtd->priv;
101 unsigned long ioaddr = (unsigned long)this->IO_ADDR_W;
102
103 ioaddr &= 0xffffff00;
104
105 if (ctrl & NAND_CLE) {
106 ioaddr += MEM_STNAND_CMD;
107 } else if (ctrl & NAND_ALE) {
108 ioaddr += MEM_STNAND_ADDR;
109 } else {
110 /* assume we want to r/w real data by default */
111 ioaddr += MEM_STNAND_DATA;
112 }
113 this->IO_ADDR_R = this->IO_ADDR_W = (void __iomem *)ioaddr;
114 if (cmd != NAND_CMD_NONE) {
115 __raw_writeb(cmd, this->IO_ADDR_W);
116 wmb();
117 }
118}
119
120static int au1200_nand_device_ready(struct mtd_info *mtd)
121{
122 return __raw_readl((void __iomem *)MEM_STSTAT) & 1;
123}
124
125static const char *db1200_part_probes[] = { "cmdlinepart", NULL };
126
127static struct mtd_partition db1200_nand_parts[] = {
128 {
129 .name = "NAND FS 0",
130 .offset = 0,
131 .size = 8 * 1024 * 1024,
132 },
133 {
134 .name = "NAND FS 1",
135 .offset = MTDPART_OFS_APPEND,
136 .size = MTDPART_SIZ_FULL
137 },
138};
139
140struct platform_nand_data db1200_nand_platdata = {
141 .chip = {
142 .nr_chips = 1,
143 .chip_offset = 0,
144 .nr_partitions = ARRAY_SIZE(db1200_nand_parts),
145 .partitions = db1200_nand_parts,
146 .chip_delay = 20,
147 .part_probe_types = db1200_part_probes,
148 },
149 .ctrl = {
150 .dev_ready = au1200_nand_device_ready,
151 .cmd_ctrl = au1200_nand_cmd_ctrl,
152 },
153};
154
155static struct resource db1200_nand_res[] = {
156 [0] = {
157 .start = DB1200_NAND_PHYS_ADDR,
158 .end = DB1200_NAND_PHYS_ADDR + 0xff,
159 .flags = IORESOURCE_MEM,
160 },
161};
162
163static struct platform_device db1200_nand_dev = {
164 .name = "gen_nand",
165 .num_resources = ARRAY_SIZE(db1200_nand_res),
166 .resource = db1200_nand_res,
167 .id = -1,
168 .dev = {
169 .platform_data = &db1200_nand_platdata,
170 }
171};
172
173/**********************************************************************/
174
175static struct smc91x_platdata db1200_eth_data = {
176 .flags = SMC91X_NOWAIT | SMC91X_USE_16BIT,
177 .leda = RPC_LED_100_10,
178 .ledb = RPC_LED_TX_RX,
179};
180
181static struct resource db1200_eth_res[] = {
182 [0] = {
183 .start = DB1200_ETH_PHYS_ADDR,
184 .end = DB1200_ETH_PHYS_ADDR + 0xf,
185 .flags = IORESOURCE_MEM,
186 },
187 [1] = {
188 .start = DB1200_ETH_INT,
189 .end = DB1200_ETH_INT,
190 .flags = IORESOURCE_IRQ,
191 },
192};
193
194static struct platform_device db1200_eth_dev = {
195 .dev = {
196 .platform_data = &db1200_eth_data,
197 },
198 .name = "smc91x",
199 .id = -1,
200 .num_resources = ARRAY_SIZE(db1200_eth_res),
201 .resource = db1200_eth_res,
202};
203
204/**********************************************************************/
205
206static struct resource db1200_ide_res[] = {
207 [0] = {
208 .start = DB1200_IDE_PHYS_ADDR,
209 .end = DB1200_IDE_PHYS_ADDR + DB1200_IDE_PHYS_LEN - 1,
210 .flags = IORESOURCE_MEM,
211 },
212 [1] = {
213 .start = DB1200_IDE_INT,
214 .end = DB1200_IDE_INT,
215 .flags = IORESOURCE_IRQ,
216 }
217};
218
219static u64 ide_dmamask = DMA_32BIT_MASK;
220
221static struct platform_device db1200_ide_dev = {
222 .name = "au1200-ide",
223 .id = 0,
224 .dev = {
225 .dma_mask = &ide_dmamask,
226 .coherent_dma_mask = DMA_32BIT_MASK,
227 },
228 .num_resources = ARRAY_SIZE(db1200_ide_res),
229 .resource = db1200_ide_res,
230};
231
232/**********************************************************************/
233
234static struct platform_device db1200_rtc_dev = {
235 .name = "rtc-au1xxx",
236 .id = -1,
237};
238
239/**********************************************************************/
240
241/* SD carddetects: they're supposed to be edge-triggered, but ack
242 * doesn't seem to work (CPLD Rev 2). Instead, the screaming one
243 * is disabled and its counterpart enabled. The 500ms timeout is
244 * because the carddetect isn't debounced in hardware.
245 */
246static irqreturn_t db1200_mmc_cd(int irq, void *ptr)
247{
248 void(*mmc_cd)(struct mmc_host *, unsigned long);
249
250 if (irq == DB1200_SD0_INSERT_INT) {
251 disable_irq_nosync(DB1200_SD0_INSERT_INT);
252 enable_irq(DB1200_SD0_EJECT_INT);
253 } else {
254 disable_irq_nosync(DB1200_SD0_EJECT_INT);
255 enable_irq(DB1200_SD0_INSERT_INT);
256 }
257
258 /* link against CONFIG_MMC=m */
259 mmc_cd = symbol_get(mmc_detect_change);
260 if (mmc_cd) {
261 mmc_cd(ptr, msecs_to_jiffies(500));
262 symbol_put(mmc_detect_change);
263 }
264
265 return IRQ_HANDLED;
266}
267
268static int db1200_mmc_cd_setup(void *mmc_host, int en)
269{
270 int ret;
271
272 if (en) {
273 ret = request_irq(DB1200_SD0_INSERT_INT, db1200_mmc_cd,
274 IRQF_DISABLED, "sd_insert", mmc_host);
275 if (ret)
276 goto out;
277
278 ret = request_irq(DB1200_SD0_EJECT_INT, db1200_mmc_cd,
279 IRQF_DISABLED, "sd_eject", mmc_host);
280 if (ret) {
281 free_irq(DB1200_SD0_INSERT_INT, mmc_host);
282 goto out;
283 }
284
285 if (bcsr_read(BCSR_SIGSTAT) & BCSR_INT_SD0INSERT)
286 enable_irq(DB1200_SD0_EJECT_INT);
287 else
288 enable_irq(DB1200_SD0_INSERT_INT);
289
290 } else {
291 free_irq(DB1200_SD0_INSERT_INT, mmc_host);
292 free_irq(DB1200_SD0_EJECT_INT, mmc_host);
293 }
294 ret = 0;
295out:
296 return ret;
297}
298
299static void db1200_mmc_set_power(void *mmc_host, int state)
300{
301 if (state) {
302 bcsr_mod(BCSR_BOARD, 0, BCSR_BOARD_SD0PWR);
303 msleep(400); /* stabilization time */
304 } else
305 bcsr_mod(BCSR_BOARD, BCSR_BOARD_SD0PWR, 0);
306}
307
308static int db1200_mmc_card_readonly(void *mmc_host)
309{
310 return (bcsr_read(BCSR_STATUS) & BCSR_STATUS_SD0WP) ? 1 : 0;
311}
312
313static int db1200_mmc_card_inserted(void *mmc_host)
314{
315 return (bcsr_read(BCSR_SIGSTAT) & BCSR_INT_SD0INSERT) ? 1 : 0;
316}
317
318static void db1200_mmcled_set(struct led_classdev *led,
319 enum led_brightness brightness)
320{
321 if (brightness != LED_OFF)
322 bcsr_mod(BCSR_LEDS, BCSR_LEDS_LED0, 0);
323 else
324 bcsr_mod(BCSR_LEDS, 0, BCSR_LEDS_LED0);
325}
326
327static struct led_classdev db1200_mmc_led = {
328 .brightness_set = db1200_mmcled_set,
329};
330
331/* needed by arch/mips/alchemy/common/platform.c */
332struct au1xmmc_platform_data au1xmmc_platdata[] = {
333 [0] = {
334 .cd_setup = db1200_mmc_cd_setup,
335 .set_power = db1200_mmc_set_power,
336 .card_inserted = db1200_mmc_card_inserted,
337 .card_readonly = db1200_mmc_card_readonly,
338 .led = &db1200_mmc_led,
339 },
340};
341
342/**********************************************************************/
343
344static struct resource au1200_psc0_res[] = {
345 [0] = {
346 .start = PSC0_PHYS_ADDR,
347 .end = PSC0_PHYS_ADDR + 0x000fffff,
348 .flags = IORESOURCE_MEM,
349 },
350 [1] = {
351 .start = AU1200_PSC0_INT,
352 .end = AU1200_PSC0_INT,
353 .flags = IORESOURCE_IRQ,
354 },
355 [2] = {
356 .start = DSCR_CMD0_PSC0_TX,
357 .end = DSCR_CMD0_PSC0_TX,
358 .flags = IORESOURCE_DMA,
359 },
360 [3] = {
361 .start = DSCR_CMD0_PSC0_RX,
362 .end = DSCR_CMD0_PSC0_RX,
363 .flags = IORESOURCE_DMA,
364 },
365};
366
367static struct platform_device db1200_i2c_dev = {
368 .name = "au1xpsc_smbus",
369 .id = 0, /* bus number */
370 .num_resources = ARRAY_SIZE(au1200_psc0_res),
371 .resource = au1200_psc0_res,
372};
373
374static void db1200_spi_cs_en(struct au1550_spi_info *spi, int cs, int pol)
375{
376 if (cs)
377 bcsr_mod(BCSR_RESETS, 0, BCSR_RESETS_SPISEL);
378 else
379 bcsr_mod(BCSR_RESETS, BCSR_RESETS_SPISEL, 0);
380}
381
382static struct au1550_spi_info db1200_spi_platdata = {
383 .mainclk_hz = 50000000, /* PSC0 clock */
384 .num_chipselect = 2,
385 .activate_cs = db1200_spi_cs_en,
386};
387
388static u64 spi_dmamask = DMA_32BIT_MASK;
389
390static struct platform_device db1200_spi_dev = {
391 .dev = {
392 .dma_mask = &spi_dmamask,
393 .coherent_dma_mask = DMA_32BIT_MASK,
394 .platform_data = &db1200_spi_platdata,
395 },
396 .name = "au1550-spi",
397 .id = 0, /* bus number */
398 .num_resources = ARRAY_SIZE(au1200_psc0_res),
399 .resource = au1200_psc0_res,
400};
401
402static struct resource au1200_psc1_res[] = {
403 [0] = {
404 .start = PSC1_PHYS_ADDR,
405 .end = PSC1_PHYS_ADDR + 0x000fffff,
406 .flags = IORESOURCE_MEM,
407 },
408 [1] = {
409 .start = AU1200_PSC1_INT,
410 .end = AU1200_PSC1_INT,
411 .flags = IORESOURCE_IRQ,
412 },
413 [2] = {
414 .start = DSCR_CMD0_PSC1_TX,
415 .end = DSCR_CMD0_PSC1_TX,
416 .flags = IORESOURCE_DMA,
417 },
418 [3] = {
419 .start = DSCR_CMD0_PSC1_RX,
420 .end = DSCR_CMD0_PSC1_RX,
421 .flags = IORESOURCE_DMA,
422 },
423};
424
425static struct platform_device db1200_audio_dev = {
426 /* name assigned later based on switch setting */
427 .id = 1, /* PSC ID */
428 .num_resources = ARRAY_SIZE(au1200_psc1_res),
429 .resource = au1200_psc1_res,
430};
431
432static struct platform_device *db1200_devs[] __initdata = {
433 NULL, /* PSC0, selected by S6.8 */
434 &db1200_ide_dev,
435 &db1200_eth_dev,
436 &db1200_rtc_dev,
437 &db1200_nand_dev,
438 &db1200_audio_dev,
439};
440
441static int __init db1200_dev_init(void)
442{
443 unsigned long pfc;
444 unsigned short sw;
445 int swapped;
446
447 i2c_register_board_info(0, db1200_i2c_devs,
448 ARRAY_SIZE(db1200_i2c_devs));
449 spi_register_board_info(db1200_spi_devs,
450 ARRAY_SIZE(db1200_i2c_devs));
451
452 /* SWITCHES: S6.8 I2C/SPI selector (OFF=I2C ON=SPI)
453 * S6.7 AC97/I2S selector (OFF=AC97 ON=I2S)
454 */
455
456 /* NOTE: GPIO215 controls OTG VBUS supply. In SPI mode however
457 * this pin is claimed by PSC0 (unused though, but pinmux doesn't
458 * allow to free it without crippling the SPI interface).
459 * As a result, in SPI mode, OTG simply won't work (PSC0 uses
460 * it as an input pin which is pulled high on the boards).
461 */
462 pfc = __raw_readl((void __iomem *)SYS_PINFUNC) & ~SYS_PINFUNC_P0A;
463
464 /* switch off OTG VBUS supply */
465 gpio_request(215, "otg-vbus");
466 gpio_direction_output(215, 1);
467
468 printk(KERN_INFO "DB1200 device configuration:\n");
469
470 sw = bcsr_read(BCSR_SWITCHES);
471 if (sw & BCSR_SWITCHES_DIP_8) {
472 db1200_devs[0] = &db1200_i2c_dev;
473 bcsr_mod(BCSR_RESETS, BCSR_RESETS_PSC0MUX, 0);
474
475 pfc |= (2 << 17); /* GPIO2 block owns GPIO215 */
476
477 printk(KERN_INFO " S6.8 OFF: PSC0 mode I2C\n");
478 printk(KERN_INFO " OTG port VBUS supply available!\n");
479 } else {
480 db1200_devs[0] = &db1200_spi_dev;
481 bcsr_mod(BCSR_RESETS, 0, BCSR_RESETS_PSC0MUX);
482
483 pfc |= (1 << 17); /* PSC0 owns GPIO215 */
484
485 printk(KERN_INFO " S6.8 ON : PSC0 mode SPI\n");
486 printk(KERN_INFO " OTG port VBUS supply disabled\n");
487 }
488 __raw_writel(pfc, (void __iomem *)SYS_PINFUNC);
489 wmb();
490
491 /* Audio: DIP7 selects I2S(0)/AC97(1), but need I2C for I2S!
492 * so: DIP7=1 || DIP8=0 => AC97, DIP7=0 && DIP8=1 => I2S
493 */
494 sw &= BCSR_SWITCHES_DIP_8 | BCSR_SWITCHES_DIP_7;
495 if (sw == BCSR_SWITCHES_DIP_8) {
496 bcsr_mod(BCSR_RESETS, 0, BCSR_RESETS_PSC1MUX);
497 db1200_audio_dev.name = "au1xpsc_i2s";
498 printk(KERN_INFO " S6.7 ON : PSC1 mode I2S\n");
499 } else {
500 bcsr_mod(BCSR_RESETS, BCSR_RESETS_PSC1MUX, 0);
501 db1200_audio_dev.name = "au1xpsc_ac97";
502 printk(KERN_INFO " S6.7 OFF: PSC1 mode AC97\n");
503 }
504
505 /* Audio PSC clock is supplied externally. (FIXME: platdata!!) */
506 __raw_writel(PSC_SEL_CLK_SERCLK,
507 (void __iomem *)KSEG1ADDR(PSC1_PHYS_ADDR) + PSC_SEL_OFFSET);
508 wmb();
509
510 db1x_register_pcmcia_socket(PCMCIA_ATTR_PHYS_ADDR,
511 PCMCIA_ATTR_PHYS_ADDR + 0x000400000 - 1,
512 PCMCIA_MEM_PHYS_ADDR,
513 PCMCIA_MEM_PHYS_ADDR + 0x000400000 - 1,
514 PCMCIA_IO_PHYS_ADDR,
515 PCMCIA_IO_PHYS_ADDR + 0x000010000 - 1,
516 DB1200_PC0_INT,
517 DB1200_PC0_INSERT_INT,
518 /*DB1200_PC0_STSCHG_INT*/0,
519 DB1200_PC0_EJECT_INT,
520 0);
521
522 db1x_register_pcmcia_socket(PCMCIA_ATTR_PHYS_ADDR + 0x004000000,
523 PCMCIA_ATTR_PHYS_ADDR + 0x004400000 - 1,
524 PCMCIA_MEM_PHYS_ADDR + 0x004000000,
525 PCMCIA_MEM_PHYS_ADDR + 0x004400000 - 1,
526 PCMCIA_IO_PHYS_ADDR + 0x004000000,
527 PCMCIA_IO_PHYS_ADDR + 0x004010000 - 1,
528 DB1200_PC1_INT,
529 DB1200_PC1_INSERT_INT,
530 /*DB1200_PC1_STSCHG_INT*/0,
531 DB1200_PC1_EJECT_INT,
532 1);
533
534 swapped = bcsr_read(BCSR_STATUS) & BCSR_STATUS_DB1200_SWAPBOOT;
535 db1x_register_norflash(64 << 20, 2, swapped);
536
537 return platform_add_devices(db1200_devs, ARRAY_SIZE(db1200_devs));
538}
539device_initcall(db1200_dev_init);
540
541/* au1200fb calls these: STERBT EINEN TRAGISCHEN TOD!!! */
542int board_au1200fb_panel(void)
543{
544 return (bcsr_read(BCSR_SWITCHES) >> 8) & 0x0f;
545}
546
547int board_au1200fb_panel_init(void)
548{
549 /* Apply power */
550 bcsr_mod(BCSR_BOARD, 0, BCSR_BOARD_LCDVEE | BCSR_BOARD_LCDVDD |
551 BCSR_BOARD_LCDBL);
552 return 0;
553}
554
555int board_au1200fb_panel_shutdown(void)
556{
557 /* Remove power */
558 bcsr_mod(BCSR_BOARD, BCSR_BOARD_LCDVEE | BCSR_BOARD_LCDVDD |
559 BCSR_BOARD_LCDBL, 0);
560 return 0;
561}
diff --git a/arch/mips/alchemy/devboards/db1200/setup.c b/arch/mips/alchemy/devboards/db1200/setup.c
new file mode 100644
index 000000000000..379536e3abd1
--- /dev/null
+++ b/arch/mips/alchemy/devboards/db1200/setup.c
@@ -0,0 +1,118 @@
1/*
2 * Alchemy/AMD/RMI DB1200 board setup.
3 *
4 * Licensed under the terms outlined in the file COPYING in the root of
5 * this source archive.
6 */
7
8#include <linux/init.h>
9#include <linux/interrupt.h>
10#include <linux/io.h>
11#include <linux/kernel.h>
12#include <asm/mach-au1x00/au1000.h>
13#include <asm/mach-db1x00/bcsr.h>
14#include <asm/mach-db1x00/db1200.h>
15
16const char *get_system_type(void)
17{
18 return "Alchemy Db1200";
19}
20
21void __init board_setup(void)
22{
23 unsigned long freq0, clksrc, div, pfc;
24 unsigned short whoami;
25
26 bcsr_init(DB1200_BCSR_PHYS_ADDR,
27 DB1200_BCSR_PHYS_ADDR + DB1200_BCSR_HEXLED_OFS);
28
29 whoami = bcsr_read(BCSR_WHOAMI);
30 printk(KERN_INFO "Alchemy/AMD/RMI DB1200 Board, CPLD Rev %d"
31 " Board-ID %d Daughtercard ID %d\n",
32 (whoami >> 4) & 0xf, (whoami >> 8) & 0xf, whoami & 0xf);
33
34 /* SMBus/SPI on PSC0, Audio on PSC1 */
35 pfc = __raw_readl((void __iomem *)SYS_PINFUNC);
36 pfc &= ~(SYS_PINFUNC_P0A | SYS_PINFUNC_P0B);
37 pfc &= ~(SYS_PINFUNC_P1A | SYS_PINFUNC_P1B | SYS_PINFUNC_FS3);
38 pfc |= SYS_PINFUNC_P1C; /* SPI is configured later */
39 __raw_writel(pfc, (void __iomem *)SYS_PINFUNC);
40 wmb();
41
42 /* Clock configurations: PSC0: ~50MHz via Clkgen0, derived from
43 * CPU clock; all other clock generators off/unused.
44 */
45 div = (get_au1x00_speed() + 25000000) / 50000000;
46 if (div & 1)
47 div++;
48 div = ((div >> 1) - 1) & 0xff;
49
50 freq0 = div << SYS_FC_FRDIV0_BIT;
51 __raw_writel(freq0, (void __iomem *)SYS_FREQCTRL0);
52 wmb();
53 freq0 |= SYS_FC_FE0; /* enable F0 */
54 __raw_writel(freq0, (void __iomem *)SYS_FREQCTRL0);
55 wmb();
56
57 /* psc0_intclk comes 1:1 from F0 */
58 clksrc = SYS_CS_MUX_FQ0 << SYS_CS_ME0_BIT;
59 __raw_writel(clksrc, (void __iomem *)SYS_CLKSRC);
60 wmb();
61}
62
63/* use the hexleds to count the number of times the cpu has entered
64 * wait, the dots to indicate whether the CPU is currently idle or
65 * active (dots off = sleeping, dots on = working) for cases where
66 * the number doesn't change for a long(er) period of time.
67 */
68static void db1200_wait(void)
69{
70 __asm__(" .set push \n"
71 " .set mips3 \n"
72 " .set noreorder \n"
73 " cache 0x14, 0(%0) \n"
74 " cache 0x14, 32(%0) \n"
75 " cache 0x14, 64(%0) \n"
76 /* dots off: we're about to call wait */
77 " lui $26, 0xb980 \n"
78 " ori $27, $0, 3 \n"
79 " sb $27, 0x18($26) \n"
80 " sync \n"
81 " nop \n"
82 " wait \n"
83 " nop \n"
84 " nop \n"
85 " nop \n"
86 " nop \n"
87 " nop \n"
88 /* dots on: there's work to do, increment cntr */
89 " lui $26, 0xb980 \n"
90 " sb $0, 0x18($26) \n"
91 " lui $26, 0xb9c0 \n"
92 " lb $27, 0($26) \n"
93 " addiu $27, $27, 1 \n"
94 " sb $27, 0($26) \n"
95 " sync \n"
96 " .set pop \n"
97 : : "r" (db1200_wait));
98}
99
100static int __init db1200_arch_init(void)
101{
102 /* GPIO7 is low-level triggered CPLD cascade */
103 set_irq_type(AU1200_GPIO7_INT, IRQF_TRIGGER_LOW);
104 bcsr_init_irq(DB1200_INT_BEGIN, DB1200_INT_END, AU1200_GPIO7_INT);
105
106 /* do not autoenable these: CPLD has broken edge int handling,
107 * and the CD handler setup requires manual enabling to work
108 * around that.
109 */
110 irq_to_desc(DB1200_SD0_INSERT_INT)->status |= IRQ_NOAUTOEN;
111 irq_to_desc(DB1200_SD0_EJECT_INT)->status |= IRQ_NOAUTOEN;
112
113 if (cpu_wait)
114 cpu_wait = db1200_wait;
115
116 return 0;
117}
118arch_initcall(db1200_arch_init);
diff --git a/arch/mips/alchemy/devboards/db1x00/Makefile b/arch/mips/alchemy/devboards/db1x00/Makefile
index 432241ab8677..613c0c0c8be9 100644
--- a/arch/mips/alchemy/devboards/db1x00/Makefile
+++ b/arch/mips/alchemy/devboards/db1x00/Makefile
@@ -5,4 +5,4 @@
5# Makefile for the Alchemy Semiconductor DBAu1xx0 boards. 5# Makefile for the Alchemy Semiconductor DBAu1xx0 boards.
6# 6#
7 7
8obj-y := board_setup.o irqmap.o 8obj-y := board_setup.o platform.o
diff --git a/arch/mips/alchemy/devboards/db1x00/board_setup.c b/arch/mips/alchemy/devboards/db1x00/board_setup.c
index de30d8ea7176..50c9bef99daa 100644
--- a/arch/mips/alchemy/devboards/db1x00/board_setup.c
+++ b/arch/mips/alchemy/devboards/db1x00/board_setup.c
@@ -29,59 +29,139 @@
29 29
30#include <linux/gpio.h> 30#include <linux/gpio.h>
31#include <linux/init.h> 31#include <linux/init.h>
32#include <linux/interrupt.h>
33#include <linux/pm.h>
32 34
33#include <asm/mach-au1x00/au1000.h> 35#include <asm/mach-au1x00/au1000.h>
36#include <asm/mach-au1x00/au1xxx_eth.h>
34#include <asm/mach-db1x00/db1x00.h> 37#include <asm/mach-db1x00/db1x00.h>
38#include <asm/mach-db1x00/bcsr.h>
39#include <asm/reboot.h>
35 40
36#include <prom.h> 41#include <prom.h>
37 42
43#ifdef CONFIG_MIPS_DB1500
44char irq_tab_alchemy[][5] __initdata = {
45 [12] = { -1, AU1500_PCI_INTA, 0xff, 0xff, 0xff }, /* IDSEL 12 - HPT371 */
46 [13] = { -1, AU1500_PCI_INTA, AU1500_PCI_INTB, AU1500_PCI_INTC, AU1500_PCI_INTD }, /* IDSEL 13 - PCI slot */
47};
48
49#endif
38 50
39static BCSR * const bcsr = (BCSR *)BCSR_KSEG1_ADDR; 51
52#ifdef CONFIG_MIPS_DB1550
53char irq_tab_alchemy[][5] __initdata = {
54 [11] = { -1, AU1550_PCI_INTC, 0xff, 0xff, 0xff }, /* IDSEL 11 - on-board HPT371 */
55 [12] = { -1, AU1550_PCI_INTB, AU1550_PCI_INTC, AU1550_PCI_INTD, AU1550_PCI_INTA }, /* IDSEL 12 - PCI slot 2 (left) */
56 [13] = { -1, AU1550_PCI_INTA, AU1550_PCI_INTB, AU1550_PCI_INTC, AU1550_PCI_INTD }, /* IDSEL 13 - PCI slot 1 (right) */
57};
58#endif
59
60
61#ifdef CONFIG_MIPS_BOSPORUS
62char irq_tab_alchemy[][5] __initdata = {
63 [11] = { -1, AU1500_PCI_INTA, AU1500_PCI_INTB, 0xff, 0xff }, /* IDSEL 11 - miniPCI */
64 [12] = { -1, AU1500_PCI_INTA, 0xff, 0xff, 0xff }, /* IDSEL 12 - SN1741 */
65 [13] = { -1, AU1500_PCI_INTA, AU1500_PCI_INTB, AU1500_PCI_INTC, AU1500_PCI_INTD }, /* IDSEL 13 - PCI slot */
66};
67
68/*
69 * Micrel/Kendin 5 port switch attached to MAC0,
70 * MAC0 is associated with PHY address 5 (== WAN port)
71 * MAC1 is not associated with any PHY, since it's connected directly
72 * to the switch.
73 * no interrupts are used
74 */
75static struct au1000_eth_platform_data eth0_pdata = {
76 .phy_static_config = 1,
77 .phy_addr = 5,
78};
79
80static void bosporus_power_off(void)
81{
82 printk(KERN_INFO "It's now safe to turn off power\n");
83 while (1)
84 asm volatile (".set mips3 ; wait ; .set mips0");
85}
40 86
41const char *get_system_type(void) 87const char *get_system_type(void)
42{ 88{
43#ifdef CONFIG_MIPS_BOSPORUS
44 return "Alchemy Bosporus Gateway Reference"; 89 return "Alchemy Bosporus Gateway Reference";
45#else 90}
46 return "Alchemy Db1x00";
47#endif 91#endif
92
93
94#ifdef CONFIG_MIPS_MIRAGE
95char irq_tab_alchemy[][5] __initdata = {
96 [11] = { -1, AU1500_PCI_INTD, 0xff, 0xff, 0xff }, /* IDSEL 11 - SMI VGX */
97 [12] = { -1, 0xff, 0xff, AU1500_PCI_INTC, 0xff }, /* IDSEL 12 - PNX1300 */
98 [13] = { -1, AU1500_PCI_INTA, AU1500_PCI_INTB, 0xff, 0xff }, /* IDSEL 13 - miniPCI */
99};
100
101static void mirage_power_off(void)
102{
103 alchemy_gpio_direction_output(210, 1);
104}
105
106const char *get_system_type(void)
107{
108 return "Alchemy Mirage";
109}
110#endif
111
112
113#if defined(CONFIG_MIPS_BOSPORUS) || defined(CONFIG_MIPS_MIRAGE)
114static void mips_softreset(void)
115{
116 asm volatile ("jr\t%0" : : "r"(0xbfc00000));
48} 117}
49 118
50void board_reset(void) 119#else
120
121const char *get_system_type(void)
51{ 122{
52 /* Hit BCSR.SW_RESET[RESET] */ 123 return "Alchemy Db1x00";
53 bcsr->swreset = 0x0000;
54} 124}
125#endif
126
55 127
56void __init board_setup(void) 128void __init board_setup(void)
57{ 129{
58 u32 pin_func = 0; 130 unsigned long bcsr1, bcsr2;
59 char *argptr; 131 u32 pin_func;
60 132
61 argptr = prom_getcmdline(); 133 bcsr1 = DB1000_BCSR_PHYS_ADDR;
62#ifdef CONFIG_SERIAL_8250_CONSOLE 134 bcsr2 = DB1000_BCSR_PHYS_ADDR + DB1000_BCSR_HEXLED_OFS;
63 argptr = strstr(argptr, "console="); 135
64 if (argptr == NULL) { 136 pin_func = 0;
65 argptr = prom_getcmdline(); 137
66 strcat(argptr, " console=ttyS0,115200"); 138#ifdef CONFIG_MIPS_DB1000
67 } 139 printk(KERN_INFO "AMD Alchemy Au1000/Db1000 Board\n");
140#endif
141#ifdef CONFIG_MIPS_DB1500
142 printk(KERN_INFO "AMD Alchemy Au1500/Db1500 Board\n");
68#endif 143#endif
144#ifdef CONFIG_MIPS_DB1100
145 printk(KERN_INFO "AMD Alchemy Au1100/Db1100 Board\n");
146#endif
147#ifdef CONFIG_MIPS_BOSPORUS
148 au1xxx_override_eth_cfg(0, &eth0_pdata);
69 149
70#ifdef CONFIG_FB_AU1100 150 printk(KERN_INFO "AMD Alchemy Bosporus Board\n");
71 argptr = strstr(argptr, "video=");
72 if (argptr == NULL) {
73 argptr = prom_getcmdline();
74 /* default panel */
75 /*strcat(argptr, " video=au1100fb:panel:Sharp_320x240_16");*/
76 }
77#endif 151#endif
152#ifdef CONFIG_MIPS_MIRAGE
153 printk(KERN_INFO "AMD Alchemy Mirage Board\n");
154#endif
155#ifdef CONFIG_MIPS_DB1550
156 printk(KERN_INFO "AMD Alchemy Au1550/Db1550 Board\n");
78 157
79#if defined(CONFIG_SOUND_AU1X00) && !defined(CONFIG_SOC_AU1000) 158 bcsr1 = DB1550_BCSR_PHYS_ADDR;
80 /* au1000 does not support vra, au1500 and au1100 do */ 159 bcsr2 = DB1550_BCSR_PHYS_ADDR + DB1550_BCSR_HEXLED_OFS;
81 strcat(argptr, " au1000_audio=vra");
82 argptr = prom_getcmdline();
83#endif 160#endif
84 161
162 /* initialize board register space */
163 bcsr_init(bcsr1, bcsr2);
164
85 /* Not valid for Au1550 */ 165 /* Not valid for Au1550 */
86#if defined(CONFIG_IRDA) && \ 166#if defined(CONFIG_IRDA) && \
87 (defined(CONFIG_SOC_AU1000) || defined(CONFIG_SOC_AU1100)) 167 (defined(CONFIG_SOC_AU1000) || defined(CONFIG_SOC_AU1100))
@@ -89,11 +169,10 @@ void __init board_setup(void)
89 pin_func = au_readl(SYS_PINFUNC) | SYS_PF_IRF; 169 pin_func = au_readl(SYS_PINFUNC) | SYS_PF_IRF;
90 au_writel(pin_func, SYS_PINFUNC); 170 au_writel(pin_func, SYS_PINFUNC);
91 /* Power off until the driver is in use */ 171 /* Power off until the driver is in use */
92 bcsr->resets &= ~BCSR_RESETS_IRDA_MODE_MASK; 172 bcsr_mod(BCSR_RESETS, BCSR_RESETS_IRDA_MODE_MASK,
93 bcsr->resets |= BCSR_RESETS_IRDA_MODE_OFF; 173 BCSR_RESETS_IRDA_MODE_OFF);
94 au_sync();
95#endif 174#endif
96 bcsr->pcmcia = 0x0000; /* turn off PCMCIA power */ 175 bcsr_write(BCSR_PCMCIA, 0); /* turn off PCMCIA power */
97 176
98 /* Enable GPIO[31:0] inputs */ 177 /* Enable GPIO[31:0] inputs */
99 alchemy_gpio1_input_enable(); 178 alchemy_gpio1_input_enable();
@@ -120,26 +199,53 @@ void __init board_setup(void)
120 * be part of the audio driver. 199 * be part of the audio driver.
121 */ 200 */
122 alchemy_gpio_direction_output(209, 1); 201 alchemy_gpio_direction_output(209, 1);
123#endif
124
125 au_sync();
126 202
127#ifdef CONFIG_MIPS_DB1000 203 pm_power_off = mirage_power_off;
128 printk(KERN_INFO "AMD Alchemy Au1000/Db1000 Board\n"); 204 _machine_halt = mirage_power_off;
129#endif 205 _machine_restart = (void(*)(char *))mips_softreset;
130#ifdef CONFIG_MIPS_DB1500
131 printk(KERN_INFO "AMD Alchemy Au1500/Db1500 Board\n");
132#endif
133#ifdef CONFIG_MIPS_DB1100
134 printk(KERN_INFO "AMD Alchemy Au1100/Db1100 Board\n");
135#endif 206#endif
207
136#ifdef CONFIG_MIPS_BOSPORUS 208#ifdef CONFIG_MIPS_BOSPORUS
137 printk(KERN_INFO "AMD Alchemy Bosporus Board\n"); 209 pm_power_off = bosporus_power_off;
210 _machine_halt = bosporus_power_off;
211 _machine_restart = (void(*)(char *))mips_softreset;
138#endif 212#endif
139#ifdef CONFIG_MIPS_MIRAGE 213 au_sync();
140 printk(KERN_INFO "AMD Alchemy Mirage Board\n"); 214}
141#endif 215
142#ifdef CONFIG_MIPS_DB1550 216static int __init db1x00_init_irq(void)
143 printk(KERN_INFO "AMD Alchemy Au1550/Db1550 Board\n"); 217{
218#if defined(CONFIG_MIPS_MIRAGE)
219 set_irq_type(AU1500_GPIO7_INT, IRQF_TRIGGER_RISING); /* TS pendown */
220#elif defined(CONFIG_MIPS_DB1550)
221 set_irq_type(AU1550_GPIO0_INT, IRQF_TRIGGER_LOW); /* CD0# */
222 set_irq_type(AU1550_GPIO1_INT, IRQF_TRIGGER_LOW); /* CD1# */
223 set_irq_type(AU1550_GPIO3_INT, IRQF_TRIGGER_LOW); /* CARD0# */
224 set_irq_type(AU1550_GPIO5_INT, IRQF_TRIGGER_LOW); /* CARD1# */
225 set_irq_type(AU1550_GPIO21_INT, IRQF_TRIGGER_LOW); /* STSCHG0# */
226 set_irq_type(AU1550_GPIO22_INT, IRQF_TRIGGER_LOW); /* STSCHG1# */
227#elif defined(CONFIG_MIPS_DB1500)
228 set_irq_type(AU1500_GPIO0_INT, IRQF_TRIGGER_LOW); /* CD0# */
229 set_irq_type(AU1500_GPIO3_INT, IRQF_TRIGGER_LOW); /* CD1# */
230 set_irq_type(AU1500_GPIO2_INT, IRQF_TRIGGER_LOW); /* CARD0# */
231 set_irq_type(AU1500_GPIO5_INT, IRQF_TRIGGER_LOW); /* CARD1# */
232 set_irq_type(AU1500_GPIO1_INT, IRQF_TRIGGER_LOW); /* STSCHG0# */
233 set_irq_type(AU1500_GPIO4_INT, IRQF_TRIGGER_LOW); /* STSCHG1# */
234#elif defined(CONFIG_MIPS_DB1100)
235 set_irq_type(AU1100_GPIO0_INT, IRQF_TRIGGER_LOW); /* CD0# */
236 set_irq_type(AU1100_GPIO3_INT, IRQF_TRIGGER_LOW); /* CD1# */
237 set_irq_type(AU1100_GPIO2_INT, IRQF_TRIGGER_LOW); /* CARD0# */
238 set_irq_type(AU1100_GPIO5_INT, IRQF_TRIGGER_LOW); /* CARD1# */
239 set_irq_type(AU1100_GPIO1_INT, IRQF_TRIGGER_LOW); /* STSCHG0# */
240 set_irq_type(AU1100_GPIO4_INT, IRQF_TRIGGER_LOW); /* STSCHG1# */
241#elif defined(CONFIG_MIPS_DB1000)
242 set_irq_type(AU1000_GPIO0_INT, IRQF_TRIGGER_LOW); /* CD0# */
243 set_irq_type(AU1000_GPIO3_INT, IRQF_TRIGGER_LOW); /* CD1# */
244 set_irq_type(AU1000_GPIO2_INT, IRQF_TRIGGER_LOW); /* CARD0# */
245 set_irq_type(AU1000_GPIO5_INT, IRQF_TRIGGER_LOW); /* CARD1# */
246 set_irq_type(AU1000_GPIO1_INT, IRQF_TRIGGER_LOW); /* STSCHG0# */
247 set_irq_type(AU1000_GPIO4_INT, IRQF_TRIGGER_LOW); /* STSCHG1# */
144#endif 248#endif
249 return 0;
145} 250}
251arch_initcall(db1x00_init_irq);
diff --git a/arch/mips/alchemy/devboards/db1x00/irqmap.c b/arch/mips/alchemy/devboards/db1x00/irqmap.c
deleted file mode 100644
index 0b09025087c6..000000000000
--- a/arch/mips/alchemy/devboards/db1x00/irqmap.c
+++ /dev/null
@@ -1,90 +0,0 @@
1/*
2 * BRIEF MODULE DESCRIPTION
3 * Au1xxx irq map table
4 *
5 * Copyright 2003 Embedded Edge, LLC
6 * dan@embeddededge.com
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the
10 * Free Software Foundation; either version 2 of the License, or (at your
11 * option) any later version.
12 *
13 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
14 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
15 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
16 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
17 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
19 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
22 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 *
24 * You should have received a copy of the GNU General Public License along
25 * with this program; if not, write to the Free Software Foundation, Inc.,
26 * 675 Mass Ave, Cambridge, MA 02139, USA.
27 */
28
29#include <linux/init.h>
30#include <linux/interrupt.h>
31
32#include <asm/mach-au1x00/au1000.h>
33
34#ifdef CONFIG_MIPS_DB1500
35char irq_tab_alchemy[][5] __initdata = {
36 [12] = { -1, INTA, INTX, INTX, INTX }, /* IDSEL 12 - HPT371 */
37 [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot */
38};
39#endif
40
41#ifdef CONFIG_MIPS_BOSPORUS
42char irq_tab_alchemy[][5] __initdata = {
43 [11] = { -1, INTA, INTB, INTX, INTX }, /* IDSEL 11 - miniPCI */
44 [12] = { -1, INTA, INTX, INTX, INTX }, /* IDSEL 12 - SN1741 */
45 [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot */
46};
47#endif
48
49#ifdef CONFIG_MIPS_MIRAGE
50char irq_tab_alchemy[][5] __initdata = {
51 [11] = { -1, INTD, INTX, INTX, INTX }, /* IDSEL 11 - SMI VGX */
52 [12] = { -1, INTX, INTX, INTC, INTX }, /* IDSEL 12 - PNX1300 */
53 [13] = { -1, INTA, INTB, INTX, INTX }, /* IDSEL 13 - miniPCI */
54};
55#endif
56
57#ifdef CONFIG_MIPS_DB1550
58char irq_tab_alchemy[][5] __initdata = {
59 [11] = { -1, INTC, INTX, INTX, INTX }, /* IDSEL 11 - on-board HPT371 */
60 [12] = { -1, INTB, INTC, INTD, INTA }, /* IDSEL 12 - PCI slot 2 (left) */
61 [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot 1 (right) */
62};
63#endif
64
65
66struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
67
68#ifndef CONFIG_MIPS_MIRAGE
69#ifdef CONFIG_MIPS_DB1550
70 { AU1000_GPIO_3, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card 0 IRQ# */
71 { AU1000_GPIO_5, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card 1 IRQ# */
72#else
73 { AU1000_GPIO_0, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card 0 Fully_Interted# */
74 { AU1000_GPIO_1, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card 0 STSCHG# */
75 { AU1000_GPIO_2, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card 0 IRQ# */
76
77 { AU1000_GPIO_3, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card 1 Fully_Interted# */
78 { AU1000_GPIO_4, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card 1 STSCHG# */
79 { AU1000_GPIO_5, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card 1 IRQ# */
80#endif
81#else
82 { AU1000_GPIO_7, IRQF_TRIGGER_RISING, 0 }, /* touchscreen pen down */
83#endif
84
85};
86
87void __init board_init_irq(void)
88{
89 au1xxx_setup_irqmap(au1xxx_irq_map, ARRAY_SIZE(au1xxx_irq_map));
90}
diff --git a/arch/mips/alchemy/devboards/db1x00/platform.c b/arch/mips/alchemy/devboards/db1x00/platform.c
new file mode 100644
index 000000000000..978d5ab3d678
--- /dev/null
+++ b/arch/mips/alchemy/devboards/db1x00/platform.c
@@ -0,0 +1,118 @@
1/*
2 * DBAu1xxx board platform device registration
3 *
4 * Copyright (C) 2009 Manuel Lauss
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20
21#include <linux/init.h>
22#include <linux/platform_device.h>
23
24#include <asm/mach-au1x00/au1xxx.h>
25#include <asm/mach-db1x00/bcsr.h>
26#include "../platform.h"
27
28/* DB1xxx PCMCIA interrupt sources:
29 * CD0/1 GPIO0/3
30 * STSCHG0/1 GPIO1/4
31 * CARD0/1 GPIO2/5
32 * Db1550: 0/1, 21/22, 3/5
33 */
34
35#define DB1XXX_HAS_PCMCIA
36#define F_SWAPPED (bcsr_read(BCSR_STATUS) & BCSR_STATUS_DB1000_SWAPBOOT)
37
38#if defined(CONFIG_MIPS_DB1000)
39#define DB1XXX_PCMCIA_CD0 AU1000_GPIO0_INT
40#define DB1XXX_PCMCIA_STSCHG0 AU1000_GPIO1_INT
41#define DB1XXX_PCMCIA_CARD0 AU1000_GPIO2_INT
42#define DB1XXX_PCMCIA_CD1 AU1000_GPIO3_INT
43#define DB1XXX_PCMCIA_STSCHG1 AU1000_GPIO4_INT
44#define DB1XXX_PCMCIA_CARD1 AU1000_GPIO5_INT
45#define BOARD_FLASH_SIZE 0x02000000 /* 32MB */
46#define BOARD_FLASH_WIDTH 4 /* 32-bits */
47#elif defined(CONFIG_MIPS_DB1100)
48#define DB1XXX_PCMCIA_CD0 AU1100_GPIO0_INT
49#define DB1XXX_PCMCIA_STSCHG0 AU1100_GPIO1_INT
50#define DB1XXX_PCMCIA_CARD0 AU1100_GPIO2_INT
51#define DB1XXX_PCMCIA_CD1 AU1100_GPIO3_INT
52#define DB1XXX_PCMCIA_STSCHG1 AU1100_GPIO4_INT
53#define DB1XXX_PCMCIA_CARD1 AU1100_GPIO5_INT
54#define BOARD_FLASH_SIZE 0x02000000 /* 32MB */
55#define BOARD_FLASH_WIDTH 4 /* 32-bits */
56#elif defined(CONFIG_MIPS_DB1500)
57#define DB1XXX_PCMCIA_CD0 AU1500_GPIO0_INT
58#define DB1XXX_PCMCIA_STSCHG0 AU1500_GPIO1_INT
59#define DB1XXX_PCMCIA_CARD0 AU1500_GPIO2_INT
60#define DB1XXX_PCMCIA_CD1 AU1500_GPIO3_INT
61#define DB1XXX_PCMCIA_STSCHG1 AU1500_GPIO4_INT
62#define DB1XXX_PCMCIA_CARD1 AU1500_GPIO5_INT
63#define BOARD_FLASH_SIZE 0x02000000 /* 32MB */
64#define BOARD_FLASH_WIDTH 4 /* 32-bits */
65#elif defined(CONFIG_MIPS_DB1550)
66#define DB1XXX_PCMCIA_CD0 AU1550_GPIO0_INT
67#define DB1XXX_PCMCIA_STSCHG0 AU1550_GPIO21_INT
68#define DB1XXX_PCMCIA_CARD0 AU1550_GPIO3_INT
69#define DB1XXX_PCMCIA_CD1 AU1550_GPIO1_INT
70#define DB1XXX_PCMCIA_STSCHG1 AU1550_GPIO22_INT
71#define DB1XXX_PCMCIA_CARD1 AU1550_GPIO5_INT
72#define BOARD_FLASH_SIZE 0x08000000 /* 128MB */
73#define BOARD_FLASH_WIDTH 4 /* 32-bits */
74#else
75/* other board: no PCMCIA */
76#undef DB1XXX_HAS_PCMCIA
77#undef F_SWAPPED
78#define F_SWAPPED 0
79#if defined(CONFIG_MIPS_BOSPORUS)
80#define BOARD_FLASH_SIZE 0x01000000 /* 16MB */
81#define BOARD_FLASH_WIDTH 2 /* 16-bits */
82#elif defined(CONFIG_MIPS_MIRAGE)
83#define BOARD_FLASH_SIZE 0x04000000 /* 64MB */
84#define BOARD_FLASH_WIDTH 4 /* 32-bits */
85#endif
86#endif
87
88static int __init db1xxx_dev_init(void)
89{
90#ifdef DB1XXX_HAS_PCMCIA
91 db1x_register_pcmcia_socket(PCMCIA_ATTR_PHYS_ADDR,
92 PCMCIA_ATTR_PHYS_ADDR + 0x000400000 - 1,
93 PCMCIA_MEM_PHYS_ADDR,
94 PCMCIA_MEM_PHYS_ADDR + 0x000400000 - 1,
95 PCMCIA_IO_PHYS_ADDR,
96 PCMCIA_IO_PHYS_ADDR + 0x000010000 - 1,
97 DB1XXX_PCMCIA_CARD0,
98 DB1XXX_PCMCIA_CD0,
99 /*DB1XXX_PCMCIA_STSCHG0*/0,
100 0,
101 0);
102
103 db1x_register_pcmcia_socket(PCMCIA_ATTR_PHYS_ADDR + 0x004000000,
104 PCMCIA_ATTR_PHYS_ADDR + 0x004400000 - 1,
105 PCMCIA_MEM_PHYS_ADDR + 0x004000000,
106 PCMCIA_MEM_PHYS_ADDR + 0x004400000 - 1,
107 PCMCIA_IO_PHYS_ADDR + 0x004000000,
108 PCMCIA_IO_PHYS_ADDR + 0x004010000 - 1,
109 DB1XXX_PCMCIA_CARD1,
110 DB1XXX_PCMCIA_CD1,
111 /*DB1XXX_PCMCIA_STSCHG1*/0,
112 0,
113 1);
114#endif
115 db1x_register_norflash(BOARD_FLASH_SIZE, BOARD_FLASH_WIDTH, F_SWAPPED);
116 return 0;
117}
118device_initcall(db1xxx_dev_init);
diff --git a/arch/mips/alchemy/devboards/pb1000/board_setup.c b/arch/mips/alchemy/devboards/pb1000/board_setup.c
index cd273545e810..b5311d8a29ab 100644
--- a/arch/mips/alchemy/devboards/pb1000/board_setup.c
+++ b/arch/mips/alchemy/devboards/pb1000/board_setup.c
@@ -31,11 +31,7 @@
31#include <asm/mach-pb1x00/pb1000.h> 31#include <asm/mach-pb1x00/pb1000.h>
32#include <prom.h> 32#include <prom.h>
33 33
34 34#include "../platform.h"
35struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
36 { AU1000_GPIO_15, IRQF_TRIGGER_LOW, 0 },
37};
38
39 35
40const char *get_system_type(void) 36const char *get_system_type(void)
41{ 37{
@@ -46,25 +42,14 @@ void board_reset(void)
46{ 42{
47} 43}
48 44
49void __init board_init_irq(void)
50{
51 au1xxx_setup_irqmap(au1xxx_irq_map, ARRAY_SIZE(au1xxx_irq_map));
52}
53
54void __init board_setup(void) 45void __init board_setup(void)
55{ 46{
56 u32 pin_func, static_cfg0; 47 u32 pin_func, static_cfg0;
57 u32 sys_freqctrl, sys_clksrc; 48 u32 sys_freqctrl, sys_clksrc;
58 u32 prid = read_c0_prid(); 49 u32 prid = read_c0_prid();
59 50
60#ifdef CONFIG_SERIAL_8250_CONSOLE 51 sys_freqctrl = 0;
61 char *argptr = prom_getcmdline(); 52 sys_clksrc = 0;
62 argptr = strstr(argptr, "console=");
63 if (argptr == NULL) {
64 argptr = prom_getcmdline();
65 strcat(argptr, " console=ttyS0,115200");
66 }
67#endif
68 53
69 /* Set AUX clock to 12 MHz * 8 = 96 MHz */ 54 /* Set AUX clock to 12 MHz * 8 = 96 MHz */
70 au_writel(8, SYS_AUXPLL); 55 au_writel(8, SYS_AUXPLL);
@@ -193,3 +178,16 @@ void __init board_setup(void)
193 break; 178 break;
194 } 179 }
195} 180}
181
182static int __init pb1000_init_irq(void)
183{
184 set_irq_type(AU1000_GPIO15_INT, IRQF_TRIGGER_LOW);
185 return 0;
186}
187arch_initcall(pb1000_init_irq);
188
189static int __init pb1000_device_init(void)
190{
191 return db1x_register_norflash(8 * 1024 * 1024, 4, 0);
192}
193device_initcall(pb1000_device_init);
diff --git a/arch/mips/alchemy/devboards/pb1100/Makefile b/arch/mips/alchemy/devboards/pb1100/Makefile
index c586dd7e91dc..7e3756c83fe5 100644
--- a/arch/mips/alchemy/devboards/pb1100/Makefile
+++ b/arch/mips/alchemy/devboards/pb1100/Makefile
@@ -5,4 +5,4 @@
5# Makefile for the Alchemy Semiconductor Pb1100 board. 5# Makefile for the Alchemy Semiconductor Pb1100 board.
6# 6#
7 7
8obj-y := board_setup.o 8obj-y := board_setup.o platform.o
diff --git a/arch/mips/alchemy/devboards/pb1100/board_setup.c b/arch/mips/alchemy/devboards/pb1100/board_setup.c
index 61263081ef58..c7b4caa81a35 100644
--- a/arch/mips/alchemy/devboards/pb1100/board_setup.c
+++ b/arch/mips/alchemy/devboards/pb1100/board_setup.c
@@ -29,19 +29,11 @@
29#include <linux/interrupt.h> 29#include <linux/interrupt.h>
30 30
31#include <asm/mach-au1x00/au1000.h> 31#include <asm/mach-au1x00/au1000.h>
32#include <asm/mach-pb1x00/pb1100.h> 32#include <asm/mach-db1x00/bcsr.h>
33 33
34#include <prom.h> 34#include <prom.h>
35 35
36 36
37struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
38 { AU1000_GPIO_9, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card Fully_Inserted# */
39 { AU1000_GPIO_10, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card STSCHG# */
40 { AU1000_GPIO_11, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card IRQ# */
41 { AU1000_GPIO_13, IRQF_TRIGGER_LOW, 0 }, /* DC_IRQ# */
42};
43
44
45const char *get_system_type(void) 37const char *get_system_type(void)
46{ 38{
47 return "Alchemy Pb1100"; 39 return "Alchemy Pb1100";
@@ -49,43 +41,15 @@ const char *get_system_type(void)
49 41
50void board_reset(void) 42void board_reset(void)
51{ 43{
52 /* Hit BCSR.RST_VDDI[SOFT_RESET] */ 44 bcsr_write(BCSR_SYSTEM, 0);
53 au_writel(0x00000000, PB1100_RST_VDDI);
54}
55
56void __init board_init_irq(void)
57{
58 au1xxx_setup_irqmap(au1xxx_irq_map, ARRAY_SIZE(au1xxx_irq_map));
59} 45}
60 46
61void __init board_setup(void) 47void __init board_setup(void)
62{ 48{
63 volatile void __iomem *base = (volatile void __iomem *)0xac000000UL; 49 volatile void __iomem *base = (volatile void __iomem *)0xac000000UL;
64 char *argptr;
65
66 argptr = prom_getcmdline();
67#ifdef CONFIG_SERIAL_8250_CONSOLE
68 argptr = strstr(argptr, "console=");
69 if (argptr == NULL) {
70 argptr = prom_getcmdline();
71 strcat(argptr, " console=ttyS0,115200");
72 }
73#endif
74
75#ifdef CONFIG_FB_AU1100
76 argptr = strstr(argptr, "video=");
77 if (argptr == NULL) {
78 argptr = prom_getcmdline();
79 /* default panel */
80 /*strcat(argptr, " video=au1100fb:panel:Sharp_320x240_16");*/
81 }
82#endif
83 50
84#if defined(CONFIG_SOUND_AU1X00) && !defined(CONFIG_SOC_AU1000) 51 bcsr_init(DB1000_BCSR_PHYS_ADDR,
85 /* au1000 does not support vra, au1500 and au1100 do */ 52 DB1000_BCSR_PHYS_ADDR + DB1000_BCSR_HEXLED_OFS);
86 strcat(argptr, " au1000_audio=vra");
87 argptr = prom_getcmdline();
88#endif
89 53
90 /* Set AUX clock to 12 MHz * 8 = 96 MHz */ 54 /* Set AUX clock to 12 MHz * 8 = 96 MHz */
91 au_writel(8, SYS_AUXPLL); 55 au_writel(8, SYS_AUXPLL);
@@ -155,3 +119,14 @@ void __init board_setup(void)
155 au_sync(); 119 au_sync();
156 } 120 }
157} 121}
122
123static int __init pb1100_init_irq(void)
124{
125 set_irq_type(AU1100_GPIO9_INT, IRQF_TRIGGER_LOW); /* PCCD# */
126 set_irq_type(AU1100_GPIO10_INT, IRQF_TRIGGER_LOW); /* PCSTSCHG# */
127 set_irq_type(AU1100_GPIO11_INT, IRQF_TRIGGER_LOW); /* PCCard# */
128 set_irq_type(AU1100_GPIO13_INT, IRQF_TRIGGER_LOW); /* DC_IRQ# */
129
130 return 0;
131}
132arch_initcall(pb1100_init_irq);
diff --git a/arch/mips/alchemy/devboards/pb1100/platform.c b/arch/mips/alchemy/devboards/pb1100/platform.c
new file mode 100644
index 000000000000..2c8dc29759fd
--- /dev/null
+++ b/arch/mips/alchemy/devboards/pb1100/platform.c
@@ -0,0 +1,50 @@
1/*
2 * Pb1100 board platform device registration
3 *
4 * Copyright (C) 2009 Manuel Lauss
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20
21#include <linux/init.h>
22
23#include <asm/mach-au1x00/au1000.h>
24#include <asm/mach-db1x00/bcsr.h>
25
26#include "../platform.h"
27
28static int __init pb1100_dev_init(void)
29{
30 int swapped;
31
32 /* PCMCIA. single socket, identical to Pb1500 */
33 db1x_register_pcmcia_socket(PCMCIA_ATTR_PHYS_ADDR,
34 PCMCIA_ATTR_PHYS_ADDR + 0x000400000 - 1,
35 PCMCIA_MEM_PHYS_ADDR,
36 PCMCIA_MEM_PHYS_ADDR + 0x000400000 - 1,
37 PCMCIA_IO_PHYS_ADDR,
38 PCMCIA_IO_PHYS_ADDR + 0x000010000 - 1,
39 AU1100_GPIO11_INT, /* card */
40 AU1100_GPIO9_INT, /* insert */
41 /*AU1100_GPIO10_INT*/0, /* stschg */
42 0, /* eject */
43 0); /* id */
44
45 swapped = bcsr_read(BCSR_STATUS) & BCSR_STATUS_DB1000_SWAPBOOT;
46 db1x_register_norflash(64 * 1024 * 1024, 4, swapped);
47
48 return 0;
49}
50device_initcall(pb1100_dev_init);
diff --git a/arch/mips/alchemy/devboards/pb1200/Makefile b/arch/mips/alchemy/devboards/pb1200/Makefile
index c8c3a99fb68a..2ea9b02ef09f 100644
--- a/arch/mips/alchemy/devboards/pb1200/Makefile
+++ b/arch/mips/alchemy/devboards/pb1200/Makefile
@@ -2,6 +2,6 @@
2# Makefile for the Alchemy Semiconductor Pb1200/DBAu1200 boards. 2# Makefile for the Alchemy Semiconductor Pb1200/DBAu1200 boards.
3# 3#
4 4
5obj-y := board_setup.o irqmap.o platform.o 5obj-y := board_setup.o platform.o
6 6
7EXTRA_CFLAGS += -Werror 7EXTRA_CFLAGS += -Werror
diff --git a/arch/mips/alchemy/devboards/pb1200/board_setup.c b/arch/mips/alchemy/devboards/pb1200/board_setup.c
index 94e6b7e7753d..3184063f8042 100644
--- a/arch/mips/alchemy/devboards/pb1200/board_setup.c
+++ b/arch/mips/alchemy/devboards/pb1200/board_setup.c
@@ -25,11 +25,23 @@
25 */ 25 */
26 26
27#include <linux/init.h> 27#include <linux/init.h>
28#include <linux/interrupt.h>
28#include <linux/sched.h> 29#include <linux/sched.h>
29 30
30#include <prom.h> 31#include <asm/mach-au1x00/au1000.h>
31#include <au1xxx.h> 32#include <asm/mach-db1x00/bcsr.h>
33
34#ifdef CONFIG_MIPS_PB1200
35#include <asm/mach-pb1x00/pb1200.h>
36#endif
37
38#ifdef CONFIG_MIPS_DB1200
39#include <asm/mach-db1x00/db1200.h>
40#define PB1200_INT_BEGIN DB1200_INT_BEGIN
41#define PB1200_INT_END DB1200_INT_END
42#endif
32 43
44#include <prom.h>
33 45
34const char *get_system_type(void) 46const char *get_system_type(void)
35{ 47{
@@ -38,25 +50,15 @@ const char *get_system_type(void)
38 50
39void board_reset(void) 51void board_reset(void)
40{ 52{
41 bcsr->resets = 0; 53 bcsr_write(BCSR_RESETS, 0);
42 bcsr->system = 0; 54 bcsr_write(BCSR_SYSTEM, 0);
43} 55}
44 56
45void __init board_setup(void) 57void __init board_setup(void)
46{ 58{
47 char *argptr; 59 printk(KERN_INFO "AMD Alchemy Pb1200 Board\n");
48 60 bcsr_init(PB1200_BCSR_PHYS_ADDR,
49 argptr = prom_getcmdline(); 61 PB1200_BCSR_PHYS_ADDR + PB1200_BCSR_HEXLED_OFS);
50#ifdef CONFIG_SERIAL_8250_CONSOLE
51 argptr = strstr(argptr, "console=");
52 if (argptr == NULL) {
53 argptr = prom_getcmdline();
54 strcat(argptr, " console=ttyS0,115200");
55 }
56#endif
57#ifdef CONFIG_FB_AU1200
58 strcat(argptr, " video=au1200fb:panel:bs");
59#endif
60 62
61#if 0 63#if 0
62 { 64 {
@@ -82,7 +84,7 @@ void __init board_setup(void)
82 u32 pin_func; 84 u32 pin_func;
83 85
84 /* Select SMBus in CPLD */ 86 /* Select SMBus in CPLD */
85 bcsr->resets &= ~BCSR_RESETS_PCS0MUX; 87 bcsr_mod(BCSR_RESETS, BCSR_RESETS_PSC0MUX, 0);
86 88
87 pin_func = au_readl(SYS_PINFUNC); 89 pin_func = au_readl(SYS_PINFUNC);
88 au_sync(); 90 au_sync();
@@ -116,38 +118,54 @@ void __init board_setup(void)
116 118
117 /* 119 /*
118 * The Pb1200 development board uses external MUX for PSC0 to 120 * The Pb1200 development board uses external MUX for PSC0 to
119 * support SMB/SPI. bcsr->resets bit 12: 0=SMB 1=SPI 121 * support SMB/SPI. bcsr_resets bit 12: 0=SMB 1=SPI
120 */ 122 */
121#ifdef CONFIG_I2C_AU1550 123#ifdef CONFIG_I2C_AU1550
122 bcsr->resets &= ~BCSR_RESETS_PCS0MUX; 124 bcsr_mod(BCSR_RESETS, BCSR_RESETS_PSC0MUX, 0);
123#endif 125#endif
124 au_sync(); 126 au_sync();
127}
125 128
126#ifdef CONFIG_MIPS_PB1200 129static int __init pb1200_init_irq(void)
127 printk(KERN_INFO "AMD Alchemy Pb1200 Board\n"); 130{
128#endif 131 /* We have a problem with CPLD rev 3. */
129#ifdef CONFIG_MIPS_DB1200 132 if (BCSR_WHOAMI_CPLD(bcsr_read(BCSR_WHOAMI)) <= 3) {
130 printk(KERN_INFO "AMD Alchemy Db1200 Board\n"); 133 printk(KERN_ERR "WARNING!!!\n");
131#endif 134 printk(KERN_ERR "WARNING!!!\n");
135 printk(KERN_ERR "WARNING!!!\n");
136 printk(KERN_ERR "WARNING!!!\n");
137 printk(KERN_ERR "WARNING!!!\n");
138 printk(KERN_ERR "WARNING!!!\n");
139 printk(KERN_ERR "Pb1200 must be at CPLD rev 4. Please have Pb1200\n");
140 printk(KERN_ERR "updated to latest revision. This software will\n");
141 printk(KERN_ERR "not work on anything less than CPLD rev 4.\n");
142 printk(KERN_ERR "WARNING!!!\n");
143 printk(KERN_ERR "WARNING!!!\n");
144 printk(KERN_ERR "WARNING!!!\n");
145 printk(KERN_ERR "WARNING!!!\n");
146 printk(KERN_ERR "WARNING!!!\n");
147 printk(KERN_ERR "WARNING!!!\n");
148 panic("Game over. Your score is 0.");
149 }
150
151 set_irq_type(AU1200_GPIO7_INT, IRQF_TRIGGER_LOW);
152 bcsr_init_irq(PB1200_INT_BEGIN, PB1200_INT_END, AU1200_GPIO7_INT);
153
154 return 0;
132} 155}
156arch_initcall(pb1200_init_irq);
157
133 158
134int board_au1200fb_panel(void) 159int board_au1200fb_panel(void)
135{ 160{
136 BCSR *bcsr = (BCSR *)BCSR_KSEG1_ADDR; 161 return (bcsr_read(BCSR_SWITCHES) >> 8) & 0x0f;
137 int p;
138
139 p = bcsr->switches;
140 p >>= 8;
141 p &= 0x0F;
142 return p;
143} 162}
144 163
145int board_au1200fb_panel_init(void) 164int board_au1200fb_panel_init(void)
146{ 165{
147 /* Apply power */ 166 /* Apply power */
148 BCSR *bcsr = (BCSR *)BCSR_KSEG1_ADDR; 167 bcsr_mod(BCSR_BOARD, 0, BCSR_BOARD_LCDVEE | BCSR_BOARD_LCDVDD |
149 168 BCSR_BOARD_LCDBL);
150 bcsr->board |= BCSR_BOARD_LCDVEE | BCSR_BOARD_LCDVDD | BCSR_BOARD_LCDBL;
151 /* printk(KERN_DEBUG "board_au1200fb_panel_init()\n"); */ 169 /* printk(KERN_DEBUG "board_au1200fb_panel_init()\n"); */
152 return 0; 170 return 0;
153} 171}
@@ -155,10 +173,8 @@ int board_au1200fb_panel_init(void)
155int board_au1200fb_panel_shutdown(void) 173int board_au1200fb_panel_shutdown(void)
156{ 174{
157 /* Remove power */ 175 /* Remove power */
158 BCSR *bcsr = (BCSR *)BCSR_KSEG1_ADDR; 176 bcsr_mod(BCSR_BOARD, BCSR_BOARD_LCDVEE | BCSR_BOARD_LCDVDD |
159 177 BCSR_BOARD_LCDBL, 0);
160 bcsr->board &= ~(BCSR_BOARD_LCDVEE | BCSR_BOARD_LCDVDD |
161 BCSR_BOARD_LCDBL);
162 /* printk(KERN_DEBUG "board_au1200fb_panel_shutdown()\n"); */ 178 /* printk(KERN_DEBUG "board_au1200fb_panel_shutdown()\n"); */
163 return 0; 179 return 0;
164} 180}
diff --git a/arch/mips/alchemy/devboards/pb1200/irqmap.c b/arch/mips/alchemy/devboards/pb1200/irqmap.c
deleted file mode 100644
index fe47498da280..000000000000
--- a/arch/mips/alchemy/devboards/pb1200/irqmap.c
+++ /dev/null
@@ -1,134 +0,0 @@
1/*
2 * BRIEF MODULE DESCRIPTION
3 * Au1xxx irq map table
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the
7 * Free Software Foundation; either version 2 of the License, or (at your
8 * option) any later version.
9 *
10 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
11 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
12 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
13 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
14 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
15 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
16 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
17 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
18 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
19 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
20 *
21 * You should have received a copy of the GNU General Public License along
22 * with this program; if not, write to the Free Software Foundation, Inc.,
23 * 675 Mass Ave, Cambridge, MA 02139, USA.
24 */
25
26#include <linux/init.h>
27#include <linux/interrupt.h>
28
29#include <asm/mach-au1x00/au1000.h>
30
31#ifdef CONFIG_MIPS_PB1200
32#include <asm/mach-pb1x00/pb1200.h>
33#endif
34
35#ifdef CONFIG_MIPS_DB1200
36#include <asm/mach-db1x00/db1200.h>
37#define PB1200_INT_BEGIN DB1200_INT_BEGIN
38#define PB1200_INT_END DB1200_INT_END
39#endif
40
41struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
42 /* This is external interrupt cascade */
43 { AU1000_GPIO_7, IRQF_TRIGGER_LOW, 0 },
44};
45
46
47/*
48 * Support for External interrupts on the Pb1200 Development platform.
49 */
50
51static void pb1200_cascade_handler(unsigned int irq, struct irq_desc *d)
52{
53 unsigned short bisr = bcsr->int_status;
54
55 for ( ; bisr; bisr &= bisr - 1)
56 generic_handle_irq(PB1200_INT_BEGIN + __ffs(bisr));
57}
58
59/* NOTE: both the enable and mask bits must be cleared, otherwise the
60 * CPLD generates tons of spurious interrupts (at least on the DB1200).
61 */
62static void pb1200_mask_irq(unsigned int irq_nr)
63{
64 bcsr->intclr_mask = 1 << (irq_nr - PB1200_INT_BEGIN);
65 bcsr->intclr = 1 << (irq_nr - PB1200_INT_BEGIN);
66 au_sync();
67}
68
69static void pb1200_maskack_irq(unsigned int irq_nr)
70{
71 bcsr->intclr_mask = 1 << (irq_nr - PB1200_INT_BEGIN);
72 bcsr->intclr = 1 << (irq_nr - PB1200_INT_BEGIN);
73 bcsr->int_status = 1 << (irq_nr - PB1200_INT_BEGIN); /* ack */
74 au_sync();
75}
76
77static void pb1200_unmask_irq(unsigned int irq_nr)
78{
79 bcsr->intset = 1 << (irq_nr - PB1200_INT_BEGIN);
80 bcsr->intset_mask = 1 << (irq_nr - PB1200_INT_BEGIN);
81 au_sync();
82}
83
84static struct irq_chip pb1200_cpld_irq_type = {
85#ifdef CONFIG_MIPS_PB1200
86 .name = "Pb1200 Ext",
87#endif
88#ifdef CONFIG_MIPS_DB1200
89 .name = "Db1200 Ext",
90#endif
91 .mask = pb1200_mask_irq,
92 .mask_ack = pb1200_maskack_irq,
93 .unmask = pb1200_unmask_irq,
94};
95
96void __init board_init_irq(void)
97{
98 unsigned int irq;
99
100 au1xxx_setup_irqmap(au1xxx_irq_map, ARRAY_SIZE(au1xxx_irq_map));
101
102#ifdef CONFIG_MIPS_PB1200
103 /* We have a problem with CPLD rev 3. */
104 if (((bcsr->whoami & BCSR_WHOAMI_CPLD) >> 4) <= 3) {
105 printk(KERN_ERR "WARNING!!!\n");
106 printk(KERN_ERR "WARNING!!!\n");
107 printk(KERN_ERR "WARNING!!!\n");
108 printk(KERN_ERR "WARNING!!!\n");
109 printk(KERN_ERR "WARNING!!!\n");
110 printk(KERN_ERR "WARNING!!!\n");
111 printk(KERN_ERR "Pb1200 must be at CPLD rev 4. Please have Pb1200\n");
112 printk(KERN_ERR "updated to latest revision. This software will\n");
113 printk(KERN_ERR "not work on anything less than CPLD rev 4.\n");
114 printk(KERN_ERR "WARNING!!!\n");
115 printk(KERN_ERR "WARNING!!!\n");
116 printk(KERN_ERR "WARNING!!!\n");
117 printk(KERN_ERR "WARNING!!!\n");
118 printk(KERN_ERR "WARNING!!!\n");
119 printk(KERN_ERR "WARNING!!!\n");
120 panic("Game over. Your score is 0.");
121 }
122#endif
123 /* mask & disable & ack all */
124 bcsr->intclr_mask = 0xffff;
125 bcsr->intclr = 0xffff;
126 bcsr->int_status = 0xffff;
127 au_sync();
128
129 for (irq = PB1200_INT_BEGIN; irq <= PB1200_INT_END; irq++)
130 set_irq_chip_and_handler_name(irq, &pb1200_cpld_irq_type,
131 handle_level_irq, "level");
132
133 set_irq_chained_handler(AU1000_GPIO_7, pb1200_cascade_handler);
134}
diff --git a/arch/mips/alchemy/devboards/pb1200/platform.c b/arch/mips/alchemy/devboards/pb1200/platform.c
index b93dff4a6789..3ef2dceeb796 100644
--- a/arch/mips/alchemy/devboards/pb1200/platform.c
+++ b/arch/mips/alchemy/devboards/pb1200/platform.c
@@ -26,27 +26,30 @@
26 26
27#include <asm/mach-au1x00/au1xxx.h> 27#include <asm/mach-au1x00/au1xxx.h>
28#include <asm/mach-au1x00/au1100_mmc.h> 28#include <asm/mach-au1x00/au1100_mmc.h>
29#include <asm/mach-db1x00/bcsr.h>
30
31#include "../platform.h"
29 32
30static int mmc_activity; 33static int mmc_activity;
31 34
32static void pb1200mmc0_set_power(void *mmc_host, int state) 35static void pb1200mmc0_set_power(void *mmc_host, int state)
33{ 36{
34 if (state) 37 if (state)
35 bcsr->board |= BCSR_BOARD_SD0PWR; 38 bcsr_mod(BCSR_BOARD, 0, BCSR_BOARD_SD0PWR);
36 else 39 else
37 bcsr->board &= ~BCSR_BOARD_SD0PWR; 40 bcsr_mod(BCSR_BOARD, BCSR_BOARD_SD0PWR, 0);
38 41
39 au_sync_delay(1); 42 msleep(1);
40} 43}
41 44
42static int pb1200mmc0_card_readonly(void *mmc_host) 45static int pb1200mmc0_card_readonly(void *mmc_host)
43{ 46{
44 return (bcsr->status & BCSR_STATUS_SD0WP) ? 1 : 0; 47 return (bcsr_read(BCSR_STATUS) & BCSR_STATUS_SD0WP) ? 1 : 0;
45} 48}
46 49
47static int pb1200mmc0_card_inserted(void *mmc_host) 50static int pb1200mmc0_card_inserted(void *mmc_host)
48{ 51{
49 return (bcsr->sig_status & BCSR_INT_SD0INSERT) ? 1 : 0; 52 return (bcsr_read(BCSR_SIGSTAT) & BCSR_INT_SD0INSERT) ? 1 : 0;
50} 53}
51 54
52static void pb1200_mmcled_set(struct led_classdev *led, 55static void pb1200_mmcled_set(struct led_classdev *led,
@@ -54,10 +57,10 @@ static void pb1200_mmcled_set(struct led_classdev *led,
54{ 57{
55 if (brightness != LED_OFF) { 58 if (brightness != LED_OFF) {
56 if (++mmc_activity == 1) 59 if (++mmc_activity == 1)
57 bcsr->disk_leds &= ~(1 << 8); 60 bcsr_mod(BCSR_LEDS, BCSR_LEDS_LED0, 0);
58 } else { 61 } else {
59 if (--mmc_activity == 0) 62 if (--mmc_activity == 0)
60 bcsr->disk_leds |= (1 << 8); 63 bcsr_mod(BCSR_LEDS, 0, BCSR_LEDS_LED0);
61 } 64 }
62} 65}
63 66
@@ -65,27 +68,25 @@ static struct led_classdev pb1200mmc_led = {
65 .brightness_set = pb1200_mmcled_set, 68 .brightness_set = pb1200_mmcled_set,
66}; 69};
67 70
68#ifndef CONFIG_MIPS_DB1200
69static void pb1200mmc1_set_power(void *mmc_host, int state) 71static void pb1200mmc1_set_power(void *mmc_host, int state)
70{ 72{
71 if (state) 73 if (state)
72 bcsr->board |= BCSR_BOARD_SD1PWR; 74 bcsr_mod(BCSR_BOARD, 0, BCSR_BOARD_SD1PWR);
73 else 75 else
74 bcsr->board &= ~BCSR_BOARD_SD1PWR; 76 bcsr_mod(BCSR_BOARD, BCSR_BOARD_SD1PWR, 0);
75 77
76 au_sync_delay(1); 78 msleep(1);
77} 79}
78 80
79static int pb1200mmc1_card_readonly(void *mmc_host) 81static int pb1200mmc1_card_readonly(void *mmc_host)
80{ 82{
81 return (bcsr->status & BCSR_STATUS_SD1WP) ? 1 : 0; 83 return (bcsr_read(BCSR_STATUS) & BCSR_STATUS_SD1WP) ? 1 : 0;
82} 84}
83 85
84static int pb1200mmc1_card_inserted(void *mmc_host) 86static int pb1200mmc1_card_inserted(void *mmc_host)
85{ 87{
86 return (bcsr->sig_status & BCSR_INT_SD1INSERT) ? 1 : 0; 88 return (bcsr_read(BCSR_SIGSTAT) & BCSR_INT_SD1INSERT) ? 1 : 0;
87} 89}
88#endif
89 90
90const struct au1xmmc_platform_data au1xmmc_platdata[2] = { 91const struct au1xmmc_platform_data au1xmmc_platdata[2] = {
91 [0] = { 92 [0] = {
@@ -95,7 +96,6 @@ const struct au1xmmc_platform_data au1xmmc_platdata[2] = {
95 .cd_setup = NULL, /* use poll-timer in driver */ 96 .cd_setup = NULL, /* use poll-timer in driver */
96 .led = &pb1200mmc_led, 97 .led = &pb1200mmc_led,
97 }, 98 },
98#ifndef CONFIG_MIPS_DB1200
99 [1] = { 99 [1] = {
100 .set_power = pb1200mmc1_set_power, 100 .set_power = pb1200mmc1_set_power,
101 .card_inserted = pb1200mmc1_card_inserted, 101 .card_inserted = pb1200mmc1_card_inserted,
@@ -103,7 +103,6 @@ const struct au1xmmc_platform_data au1xmmc_platdata[2] = {
103 .cd_setup = NULL, /* use poll-timer in driver */ 103 .cd_setup = NULL, /* use poll-timer in driver */
104 .led = &pb1200mmc_led, 104 .led = &pb1200mmc_led,
105 }, 105 },
106#endif
107}; 106};
108 107
109static struct resource ide_resources[] = { 108static struct resource ide_resources[] = {
@@ -169,8 +168,36 @@ static struct platform_device *board_platform_devices[] __initdata = {
169 168
170static int __init board_register_devices(void) 169static int __init board_register_devices(void)
171{ 170{
171 int swapped;
172
173 db1x_register_pcmcia_socket(PCMCIA_ATTR_PHYS_ADDR,
174 PCMCIA_ATTR_PHYS_ADDR + 0x000400000 - 1,
175 PCMCIA_MEM_PHYS_ADDR,
176 PCMCIA_MEM_PHYS_ADDR + 0x000400000 - 1,
177 PCMCIA_IO_PHYS_ADDR,
178 PCMCIA_IO_PHYS_ADDR + 0x000010000 - 1,
179 PB1200_PC0_INT,
180 PB1200_PC0_INSERT_INT,
181 /*PB1200_PC0_STSCHG_INT*/0,
182 PB1200_PC0_EJECT_INT,
183 0);
184
185 db1x_register_pcmcia_socket(PCMCIA_ATTR_PHYS_ADDR + 0x008000000,
186 PCMCIA_ATTR_PHYS_ADDR + 0x008400000 - 1,
187 PCMCIA_MEM_PHYS_ADDR + 0x008000000,
188 PCMCIA_MEM_PHYS_ADDR + 0x008400000 - 1,
189 PCMCIA_IO_PHYS_ADDR + 0x008000000,
190 PCMCIA_IO_PHYS_ADDR + 0x008010000 - 1,
191 PB1200_PC1_INT,
192 PB1200_PC1_INSERT_INT,
193 /*PB1200_PC1_STSCHG_INT*/0,
194 PB1200_PC1_EJECT_INT,
195 1);
196
197 swapped = bcsr_read(BCSR_STATUS) & BCSR_STATUS_DB1200_SWAPBOOT;
198 db1x_register_norflash(128 * 1024 * 1024, 2, swapped);
199
172 return platform_add_devices(board_platform_devices, 200 return platform_add_devices(board_platform_devices,
173 ARRAY_SIZE(board_platform_devices)); 201 ARRAY_SIZE(board_platform_devices));
174} 202}
175 203device_initcall(board_register_devices);
176arch_initcall(board_register_devices);
diff --git a/arch/mips/alchemy/devboards/pb1500/Makefile b/arch/mips/alchemy/devboards/pb1500/Makefile
index 173b419a7479..e83b151b5b63 100644
--- a/arch/mips/alchemy/devboards/pb1500/Makefile
+++ b/arch/mips/alchemy/devboards/pb1500/Makefile
@@ -5,4 +5,4 @@
5# Makefile for the Alchemy Semiconductor Pb1500 board. 5# Makefile for the Alchemy Semiconductor Pb1500 board.
6# 6#
7 7
8obj-y := board_setup.o 8obj-y := board_setup.o platform.o
diff --git a/arch/mips/alchemy/devboards/pb1500/board_setup.c b/arch/mips/alchemy/devboards/pb1500/board_setup.c
index d7a56569e7ed..fa9770ac358a 100644
--- a/arch/mips/alchemy/devboards/pb1500/board_setup.c
+++ b/arch/mips/alchemy/devboards/pb1500/board_setup.c
@@ -29,22 +29,14 @@
29#include <linux/interrupt.h> 29#include <linux/interrupt.h>
30 30
31#include <asm/mach-au1x00/au1000.h> 31#include <asm/mach-au1x00/au1000.h>
32#include <asm/mach-pb1x00/pb1500.h> 32#include <asm/mach-db1x00/bcsr.h>
33 33
34#include <prom.h> 34#include <prom.h>
35 35
36 36
37char irq_tab_alchemy[][5] __initdata = { 37char irq_tab_alchemy[][5] __initdata = {
38 [12] = { -1, INTA, INTX, INTX, INTX }, /* IDSEL 12 - HPT370 */ 38 [12] = { -1, AU1500_PCI_INTA, 0xff, 0xff, 0xff }, /* IDSEL 12 - HPT370 */
39 [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot */ 39 [13] = { -1, AU1500_PCI_INTA, AU1500_PCI_INTB, AU1500_PCI_INTC, AU1500_PCI_INTD }, /* IDSEL 13 - PCI slot */
40};
41
42struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
43 { AU1500_GPIO_204, IRQF_TRIGGER_HIGH, 0 },
44 { AU1500_GPIO_201, IRQF_TRIGGER_LOW, 0 },
45 { AU1500_GPIO_202, IRQF_TRIGGER_LOW, 0 },
46 { AU1500_GPIO_203, IRQF_TRIGGER_LOW, 0 },
47 { AU1500_GPIO_205, IRQF_TRIGGER_LOW, 0 },
48}; 40};
49 41
50 42
@@ -55,35 +47,16 @@ const char *get_system_type(void)
55 47
56void board_reset(void) 48void board_reset(void)
57{ 49{
58 /* Hit BCSR.RST_VDDI[SOFT_RESET] */ 50 bcsr_write(BCSR_SYSTEM, 0);
59 au_writel(0x00000000, PB1500_RST_VDDI);
60}
61
62void __init board_init_irq(void)
63{
64 au1xxx_setup_irqmap(au1xxx_irq_map, ARRAY_SIZE(au1xxx_irq_map));
65} 51}
66 52
67void __init board_setup(void) 53void __init board_setup(void)
68{ 54{
69 u32 pin_func; 55 u32 pin_func;
70 u32 sys_freqctrl, sys_clksrc; 56 u32 sys_freqctrl, sys_clksrc;
71 char *argptr;
72
73 argptr = prom_getcmdline();
74#ifdef CONFIG_SERIAL_8250_CONSOLE
75 argptr = strstr(argptr, "console=");
76 if (argptr == NULL) {
77 argptr = prom_getcmdline();
78 strcat(argptr, " console=ttyS0,115200");
79 }
80#endif
81 57
82#if defined(CONFIG_SOUND_AU1X00) && !defined(CONFIG_SOC_AU1000) 58 bcsr_init(DB1000_BCSR_PHYS_ADDR,
83 /* au1000 does not support vra, au1500 and au1100 do */ 59 DB1000_BCSR_PHYS_ADDR + DB1000_BCSR_HEXLED_OFS);
84 strcat(argptr, " au1000_audio=vra");
85 argptr = prom_getcmdline();
86#endif
87 60
88 sys_clksrc = sys_freqctrl = pin_func = 0; 61 sys_clksrc = sys_freqctrl = pin_func = 0;
89 /* Set AUX clock to 12 MHz * 8 = 96 MHz */ 62 /* Set AUX clock to 12 MHz * 8 = 96 MHz */
@@ -163,3 +136,18 @@ void __init board_setup(void)
163 au_sync(); 136 au_sync();
164 } 137 }
165} 138}
139
140static int __init pb1500_init_irq(void)
141{
142 set_irq_type(AU1500_GPIO9_INT, IRQF_TRIGGER_LOW); /* CD0# */
143 set_irq_type(AU1500_GPIO10_INT, IRQF_TRIGGER_LOW); /* CARD0 */
144 set_irq_type(AU1500_GPIO11_INT, IRQF_TRIGGER_LOW); /* STSCHG0# */
145 set_irq_type(AU1500_GPIO204_INT, IRQF_TRIGGER_HIGH);
146 set_irq_type(AU1500_GPIO201_INT, IRQF_TRIGGER_LOW);
147 set_irq_type(AU1500_GPIO202_INT, IRQF_TRIGGER_LOW);
148 set_irq_type(AU1500_GPIO203_INT, IRQF_TRIGGER_LOW);
149 set_irq_type(AU1500_GPIO205_INT, IRQF_TRIGGER_LOW);
150
151 return 0;
152}
153arch_initcall(pb1500_init_irq);
diff --git a/arch/mips/alchemy/devboards/pb1500/platform.c b/arch/mips/alchemy/devboards/pb1500/platform.c
new file mode 100644
index 000000000000..d443bc7aa76e
--- /dev/null
+++ b/arch/mips/alchemy/devboards/pb1500/platform.c
@@ -0,0 +1,49 @@
1/*
2 * Pb1500 board platform device registration
3 *
4 * Copyright (C) 2009 Manuel Lauss
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20
21#include <linux/init.h>
22#include <asm/mach-au1x00/au1000.h>
23#include <asm/mach-db1x00/bcsr.h>
24
25#include "../platform.h"
26
27static int __init pb1500_dev_init(void)
28{
29 int swapped;
30
31 /* PCMCIA. single socket, identical to Pb1500 */
32 db1x_register_pcmcia_socket(PCMCIA_ATTR_PHYS_ADDR,
33 PCMCIA_ATTR_PHYS_ADDR + 0x000400000 - 1,
34 PCMCIA_MEM_PHYS_ADDR,
35 PCMCIA_MEM_PHYS_ADDR + 0x000400000 - 1,
36 PCMCIA_IO_PHYS_ADDR,
37 PCMCIA_IO_PHYS_ADDR + 0x000010000 - 1,
38 AU1500_GPIO11_INT, /* card */
39 AU1500_GPIO9_INT, /* insert */
40 /*AU1500_GPIO10_INT*/0, /* stschg */
41 0, /* eject */
42 0); /* id */
43
44 swapped = bcsr_read(BCSR_STATUS) & BCSR_STATUS_DB1000_SWAPBOOT;
45 db1x_register_norflash(64 * 1024 * 1024, 4, swapped);
46
47 return 0;
48}
49device_initcall(pb1500_dev_init);
diff --git a/arch/mips/alchemy/devboards/pb1550/Makefile b/arch/mips/alchemy/devboards/pb1550/Makefile
index cff95bcdb2ca..9661b6ec5dd3 100644
--- a/arch/mips/alchemy/devboards/pb1550/Makefile
+++ b/arch/mips/alchemy/devboards/pb1550/Makefile
@@ -5,4 +5,4 @@
5# Makefile for the Alchemy Semiconductor Pb1550 board. 5# Makefile for the Alchemy Semiconductor Pb1550 board.
6# 6#
7 7
8obj-y := board_setup.o 8obj-y := board_setup.o platform.o
diff --git a/arch/mips/alchemy/devboards/pb1550/board_setup.c b/arch/mips/alchemy/devboards/pb1550/board_setup.c
index b6e9e7d247a3..1e8fb3ddd726 100644
--- a/arch/mips/alchemy/devboards/pb1550/board_setup.c
+++ b/arch/mips/alchemy/devboards/pb1550/board_setup.c
@@ -32,18 +32,15 @@
32 32
33#include <asm/mach-au1x00/au1000.h> 33#include <asm/mach-au1x00/au1000.h>
34#include <asm/mach-pb1x00/pb1550.h> 34#include <asm/mach-pb1x00/pb1550.h>
35#include <asm/mach-db1x00/bcsr.h>
36#include <asm/mach-au1x00/gpio.h>
35 37
36#include <prom.h> 38#include <prom.h>
37 39
38 40
39char irq_tab_alchemy[][5] __initdata = { 41char irq_tab_alchemy[][5] __initdata = {
40 [12] = { -1, INTB, INTC, INTD, INTA }, /* IDSEL 12 - PCI slot 2 (left) */ 42 [12] = { -1, AU1550_PCI_INTB, AU1550_PCI_INTC, AU1550_PCI_INTD, AU1550_PCI_INTA }, /* IDSEL 12 - PCI slot 2 (left) */
41 [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot 1 (right) */ 43 [13] = { -1, AU1550_PCI_INTA, AU1550_PCI_INTB, AU1550_PCI_INTC, AU1550_PCI_INTD }, /* IDSEL 13 - PCI slot 1 (right) */
42};
43
44struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
45 { AU1000_GPIO_0, IRQF_TRIGGER_LOW, 0 },
46 { AU1000_GPIO_1, IRQF_TRIGGER_LOW, 0 },
47}; 44};
48 45
49const char *get_system_type(void) 46const char *get_system_type(void)
@@ -53,28 +50,17 @@ const char *get_system_type(void)
53 50
54void board_reset(void) 51void board_reset(void)
55{ 52{
56 /* Hit BCSR.SYSTEM[RESET] */ 53 bcsr_write(BCSR_SYSTEM, 0);
57 au_writew(au_readw(0xAF00001C) & ~BCSR_SYSTEM_RESET, 0xAF00001C);
58}
59
60void __init board_init_irq(void)
61{
62 au1xxx_setup_irqmap(au1xxx_irq_map, ARRAY_SIZE(au1xxx_irq_map));
63} 54}
64 55
65void __init board_setup(void) 56void __init board_setup(void)
66{ 57{
67 u32 pin_func; 58 u32 pin_func;
68 59
69#ifdef CONFIG_SERIAL_8250_CONSOLE 60 bcsr_init(PB1550_BCSR_PHYS_ADDR,
70 char *argptr; 61 PB1550_BCSR_PHYS_ADDR + PB1550_BCSR_HEXLED_OFS);
71 argptr = prom_getcmdline(); 62
72 argptr = strstr(argptr, "console="); 63 alchemy_gpio2_enable();
73 if (argptr == NULL) {
74 argptr = prom_getcmdline();
75 strcat(argptr, " console=ttyS0,115200");
76 }
77#endif
78 64
79 /* 65 /*
80 * Enable PSC1 SYNC for AC'97. Normaly done in audio driver, 66 * Enable PSC1 SYNC for AC'97. Normaly done in audio driver,
@@ -85,8 +71,21 @@ void __init board_setup(void)
85 pin_func |= SYS_PF_MUST_BE_SET | SYS_PF_PSC1_S1; 71 pin_func |= SYS_PF_MUST_BE_SET | SYS_PF_PSC1_S1;
86 au_writel(pin_func, SYS_PINFUNC); 72 au_writel(pin_func, SYS_PINFUNC);
87 73
88 au_writel(0, (u32)bcsr | 0x10); /* turn off PCMCIA power */ 74 bcsr_write(BCSR_PCMCIA, 0); /* turn off PCMCIA power */
89 au_sync();
90 75
91 printk(KERN_INFO "AMD Alchemy Pb1550 Board\n"); 76 printk(KERN_INFO "AMD Alchemy Pb1550 Board\n");
92} 77}
78
79static int __init pb1550_init_irq(void)
80{
81 set_irq_type(AU1550_GPIO0_INT, IRQF_TRIGGER_LOW);
82 set_irq_type(AU1550_GPIO1_INT, IRQF_TRIGGER_LOW);
83 set_irq_type(AU1550_GPIO201_205_INT, IRQF_TRIGGER_HIGH);
84
85 /* enable both PCMCIA card irqs in the shared line */
86 alchemy_gpio2_enable_int(201);
87 alchemy_gpio2_enable_int(202);
88
89 return 0;
90}
91arch_initcall(pb1550_init_irq);
diff --git a/arch/mips/alchemy/devboards/pb1550/platform.c b/arch/mips/alchemy/devboards/pb1550/platform.c
new file mode 100644
index 000000000000..d7150d0f49c0
--- /dev/null
+++ b/arch/mips/alchemy/devboards/pb1550/platform.c
@@ -0,0 +1,69 @@
1/*
2 * Pb1550 board platform device registration
3 *
4 * Copyright (C) 2009 Manuel Lauss
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20
21#include <linux/init.h>
22
23#include <asm/mach-au1x00/au1000.h>
24#include <asm/mach-pb1x00/pb1550.h>
25#include <asm/mach-db1x00/bcsr.h>
26
27#include "../platform.h"
28
29static int __init pb1550_dev_init(void)
30{
31 int swapped;
32
33 /* Pb1550, like all others, also has statuschange irqs; however they're
34 * wired up on one of the Au1550's shared GPIO201_205 line, which also
35 * services the PCMCIA card interrupts. So we ignore statuschange and
36 * use the GPIO201_205 exclusively for card interrupts, since a) pcmcia
37 * drivers are used to shared irqs and b) statuschange isn't really use-
38 * ful anyway.
39 */
40 db1x_register_pcmcia_socket(PCMCIA_ATTR_PHYS_ADDR,
41 PCMCIA_ATTR_PHYS_ADDR + 0x000400000 - 1,
42 PCMCIA_MEM_PHYS_ADDR,
43 PCMCIA_MEM_PHYS_ADDR + 0x000400000 - 1,
44 PCMCIA_IO_PHYS_ADDR,
45 PCMCIA_IO_PHYS_ADDR + 0x000010000 - 1,
46 AU1550_GPIO201_205_INT,
47 AU1550_GPIO0_INT,
48 0,
49 0,
50 0);
51
52 db1x_register_pcmcia_socket(PCMCIA_ATTR_PHYS_ADDR + 0x008000000,
53 PCMCIA_ATTR_PHYS_ADDR + 0x008400000 - 1,
54 PCMCIA_MEM_PHYS_ADDR + 0x008000000,
55 PCMCIA_MEM_PHYS_ADDR + 0x008400000 - 1,
56 PCMCIA_IO_PHYS_ADDR + 0x008000000,
57 PCMCIA_IO_PHYS_ADDR + 0x008010000 - 1,
58 AU1550_GPIO201_205_INT,
59 AU1550_GPIO1_INT,
60 0,
61 0,
62 1);
63
64 swapped = bcsr_read(BCSR_STATUS) & BCSR_STATUS_PB1550_SWAPBOOT;
65 db1x_register_norflash(128 * 1024 * 1024, 4, swapped);
66
67 return 0;
68}
69device_initcall(pb1550_dev_init);
diff --git a/arch/mips/alchemy/devboards/platform.c b/arch/mips/alchemy/devboards/platform.c
new file mode 100644
index 000000000000..49a4b3244d8e
--- /dev/null
+++ b/arch/mips/alchemy/devboards/platform.c
@@ -0,0 +1,222 @@
1/*
2 * devoard misc stuff.
3 */
4
5#include <linux/init.h>
6#include <linux/mtd/mtd.h>
7#include <linux/mtd/map.h>
8#include <linux/mtd/physmap.h>
9#include <linux/slab.h>
10#include <linux/platform_device.h>
11#include <linux/pm.h>
12
13#include <asm/reboot.h>
14#include <asm/mach-db1x00/bcsr.h>
15
16static void db1x_power_off(void)
17{
18 bcsr_write(BCSR_RESETS, 0);
19 bcsr_write(BCSR_SYSTEM, BCSR_SYSTEM_PWROFF | BCSR_SYSTEM_RESET);
20}
21
22static void db1x_reset(char *c)
23{
24 bcsr_write(BCSR_RESETS, 0);
25 bcsr_write(BCSR_SYSTEM, 0);
26}
27
28static int __init db1x_poweroff_setup(void)
29{
30 if (!pm_power_off)
31 pm_power_off = db1x_power_off;
32 if (!_machine_halt)
33 _machine_halt = db1x_power_off;
34 if (!_machine_restart)
35 _machine_restart = db1x_reset;
36
37 return 0;
38}
39late_initcall(db1x_poweroff_setup);
40
41/* register a pcmcia socket */
42int __init db1x_register_pcmcia_socket(phys_addr_t pcmcia_attr_start,
43 phys_addr_t pcmcia_attr_end,
44 phys_addr_t pcmcia_mem_start,
45 phys_addr_t pcmcia_mem_end,
46 phys_addr_t pcmcia_io_start,
47 phys_addr_t pcmcia_io_end,
48 int card_irq,
49 int cd_irq,
50 int stschg_irq,
51 int eject_irq,
52 int id)
53{
54 int cnt, i, ret;
55 struct resource *sr;
56 struct platform_device *pd;
57
58 cnt = 5;
59 if (eject_irq)
60 cnt++;
61 if (stschg_irq)
62 cnt++;
63
64 sr = kzalloc(sizeof(struct resource) * cnt, GFP_KERNEL);
65 if (!sr)
66 return -ENOMEM;
67
68 pd = platform_device_alloc("db1xxx_pcmcia", id);
69 if (!pd) {
70 ret = -ENOMEM;
71 goto out;
72 }
73
74 sr[0].name = "pcmcia-attr";
75 sr[0].flags = IORESOURCE_MEM;
76 sr[0].start = pcmcia_attr_start;
77 sr[0].end = pcmcia_attr_end;
78
79 sr[1].name = "pcmcia-mem";
80 sr[1].flags = IORESOURCE_MEM;
81 sr[1].start = pcmcia_mem_start;
82 sr[1].end = pcmcia_mem_end;
83
84 sr[2].name = "pcmcia-io";
85 sr[2].flags = IORESOURCE_MEM;
86 sr[2].start = pcmcia_io_start;
87 sr[2].end = pcmcia_io_end;
88
89 sr[3].name = "insert";
90 sr[3].flags = IORESOURCE_IRQ;
91 sr[3].start = sr[3].end = cd_irq;
92
93 sr[4].name = "card";
94 sr[4].flags = IORESOURCE_IRQ;
95 sr[4].start = sr[4].end = card_irq;
96
97 i = 5;
98 if (stschg_irq) {
99 sr[i].name = "stschg";
100 sr[i].flags = IORESOURCE_IRQ;
101 sr[i].start = sr[i].end = stschg_irq;
102 i++;
103 }
104 if (eject_irq) {
105 sr[i].name = "eject";
106 sr[i].flags = IORESOURCE_IRQ;
107 sr[i].start = sr[i].end = eject_irq;
108 }
109
110 pd->resource = sr;
111 pd->num_resources = cnt;
112
113 ret = platform_device_add(pd);
114 if (!ret)
115 return 0;
116
117 platform_device_put(pd);
118out:
119 kfree(sr);
120 return ret;
121}
122
123#define YAMON_SIZE 0x00100000
124#define YAMON_ENV_SIZE 0x00040000
125
126int __init db1x_register_norflash(unsigned long size, int width,
127 int swapped)
128{
129 struct physmap_flash_data *pfd;
130 struct platform_device *pd;
131 struct mtd_partition *parts;
132 struct resource *res;
133 int ret, i;
134
135 if (size < (8 * 1024 * 1024))
136 return -EINVAL;
137
138 ret = -ENOMEM;
139 parts = kzalloc(sizeof(struct mtd_partition) * 5, GFP_KERNEL);
140 if (!parts)
141 goto out;
142
143 res = kzalloc(sizeof(struct resource), GFP_KERNEL);
144 if (!res)
145 goto out1;
146
147 pfd = kzalloc(sizeof(struct physmap_flash_data), GFP_KERNEL);
148 if (!pfd)
149 goto out2;
150
151 pd = platform_device_alloc("physmap-flash", 0);
152 if (!pd)
153 goto out3;
154
155 /* NOR flash ends at 0x20000000, regardless of size */
156 res->start = 0x20000000 - size;
157 res->end = 0x20000000 - 1;
158 res->flags = IORESOURCE_MEM;
159
160 /* partition setup. Most Develboards have a switch which allows
161 * to swap the physical locations of the 2 NOR flash banks.
162 */
163 i = 0;
164 if (!swapped) {
165 /* first NOR chip */
166 parts[i].offset = 0;
167 parts[i].name = "User FS";
168 parts[i].size = size / 2;
169 i++;
170 }
171
172 parts[i].offset = MTDPART_OFS_APPEND;
173 parts[i].name = "User FS 2";
174 parts[i].size = (size / 2) - (0x20000000 - 0x1fc00000);
175 i++;
176
177 parts[i].offset = MTDPART_OFS_APPEND;
178 parts[i].name = "YAMON";
179 parts[i].size = YAMON_SIZE;
180 parts[i].mask_flags = MTD_WRITEABLE;
181 i++;
182
183 parts[i].offset = MTDPART_OFS_APPEND;
184 parts[i].name = "raw kernel";
185 parts[i].size = 0x00400000 - YAMON_SIZE - YAMON_ENV_SIZE;
186 i++;
187
188 parts[i].offset = MTDPART_OFS_APPEND;
189 parts[i].name = "YAMON Env";
190 parts[i].size = YAMON_ENV_SIZE;
191 parts[i].mask_flags = MTD_WRITEABLE;
192 i++;
193
194 if (swapped) {
195 parts[i].offset = MTDPART_OFS_APPEND;
196 parts[i].name = "User FS";
197 parts[i].size = size / 2;
198 i++;
199 }
200
201 pfd->width = width;
202 pfd->parts = parts;
203 pfd->nr_parts = 5;
204
205 pd->dev.platform_data = pfd;
206 pd->resource = res;
207 pd->num_resources = 1;
208
209 ret = platform_device_add(pd);
210 if (!ret)
211 return ret;
212
213 platform_device_put(pd);
214out3:
215 kfree(pfd);
216out2:
217 kfree(res);
218out1:
219 kfree(parts);
220out:
221 return ret;
222}
diff --git a/arch/mips/alchemy/devboards/platform.h b/arch/mips/alchemy/devboards/platform.h
new file mode 100644
index 000000000000..5ac055d2cda9
--- /dev/null
+++ b/arch/mips/alchemy/devboards/platform.h
@@ -0,0 +1,21 @@
1#ifndef _DEVBOARD_PLATFORM_H_
2#define _DEVBOARD_PLATFORM_H_
3
4#include <linux/init.h>
5
6int __init db1x_register_pcmcia_socket(phys_addr_t pcmcia_attr_start,
7 phys_addr_t pcmcia_attr_len,
8 phys_addr_t pcmcia_mem_start,
9 phys_addr_t pcmcia_mem_end,
10 phys_addr_t pcmcia_io_start,
11 phys_addr_t pcmcia_io_end,
12 int card_irq,
13 int cd_irq,
14 int stschg_irq,
15 int eject_irq,
16 int id);
17
18int __init db1x_register_norflash(unsigned long size, int width,
19 int swapped);
20
21#endif
diff --git a/arch/mips/alchemy/devboards/pm.c b/arch/mips/alchemy/devboards/pm.c
index 632f9862a0fb..4bbd3133e451 100644
--- a/arch/mips/alchemy/devboards/pm.c
+++ b/arch/mips/alchemy/devboards/pm.c
@@ -10,6 +10,7 @@
10#include <linux/sysfs.h> 10#include <linux/sysfs.h>
11#include <asm/mach-au1x00/au1000.h> 11#include <asm/mach-au1x00/au1000.h>
12#include <asm/mach-au1x00/gpio.h> 12#include <asm/mach-au1x00/gpio.h>
13#include <asm/mach-db1x00/bcsr.h>
13 14
14/* 15/*
15 * Generic suspend userspace interface for Alchemy development boards. 16 * Generic suspend userspace interface for Alchemy development boards.
@@ -26,6 +27,20 @@ static unsigned long db1x_pm_last_wakesrc;
26 27
27static int db1x_pm_enter(suspend_state_t state) 28static int db1x_pm_enter(suspend_state_t state)
28{ 29{
30 unsigned short bcsrs[16];
31 int i, j, hasint;
32
33 /* save CPLD regs */
34 hasint = bcsr_read(BCSR_WHOAMI);
35 hasint = BCSR_WHOAMI_BOARD(hasint) >= BCSR_WHOAMI_DB1200;
36 j = (hasint) ? BCSR_MASKSET : BCSR_SYSTEM;
37
38 for (i = BCSR_STATUS; i <= j; i++)
39 bcsrs[i] = bcsr_read(i);
40
41 /* shut off hexleds */
42 bcsr_write(BCSR_HEXCLEAR, 3);
43
29 /* enable GPIO based wakeup */ 44 /* enable GPIO based wakeup */
30 alchemy_gpio1_input_enable(); 45 alchemy_gpio1_input_enable();
31 46
@@ -52,6 +67,23 @@ static int db1x_pm_enter(suspend_state_t state)
52 /* ...and now the sandman can come! */ 67 /* ...and now the sandman can come! */
53 au_sleep(); 68 au_sleep();
54 69
70
71 /* restore CPLD regs */
72 for (i = BCSR_STATUS; i <= BCSR_SYSTEM; i++)
73 bcsr_write(i, bcsrs[i]);
74
75 /* restore CPLD int registers */
76 if (hasint) {
77 bcsr_write(BCSR_INTCLR, 0xffff);
78 bcsr_write(BCSR_MASKCLR, 0xffff);
79 bcsr_write(BCSR_INTSTAT, 0xffff);
80 bcsr_write(BCSR_INTSET, bcsrs[BCSR_INTSET]);
81 bcsr_write(BCSR_MASKSET, bcsrs[BCSR_MASKSET]);
82 }
83
84 /* light up hexleds */
85 bcsr_write(BCSR_HEXCLEAR, 0);
86
55 return 0; 87 return 0;
56} 88}
57 89
diff --git a/arch/mips/alchemy/devboards/prom.c b/arch/mips/alchemy/devboards/prom.c
index 0042bd6b1d7d..b30df5c97ad3 100644
--- a/arch/mips/alchemy/devboards/prom.c
+++ b/arch/mips/alchemy/devboards/prom.c
@@ -60,3 +60,8 @@ void __init prom_init(void)
60 strict_strtoul(memsize_str, 0, &memsize); 60 strict_strtoul(memsize_str, 0, &memsize);
61 add_memory_region(0, memsize, BOOT_MEM_RAM); 61 add_memory_region(0, memsize, BOOT_MEM_RAM);
62} 62}
63
64void prom_putchar(unsigned char c)
65{
66 alchemy_uart_putchar(UART0_PHYS_ADDR, c);
67}
diff --git a/arch/mips/alchemy/mtx-1/Makefile b/arch/mips/alchemy/mtx-1/Makefile
index 7c67b3d33bec..4a53815b3c6c 100644
--- a/arch/mips/alchemy/mtx-1/Makefile
+++ b/arch/mips/alchemy/mtx-1/Makefile
@@ -6,7 +6,7 @@
6# Makefile for 4G Systems MTX-1 board. 6# Makefile for 4G Systems MTX-1 board.
7# 7#
8 8
9lib-y := init.o board_setup.o irqmap.o 9lib-y := init.o board_setup.o
10obj-y := platform.o 10obj-y := platform.o
11 11
12EXTRA_CFLAGS += -Werror 12EXTRA_CFLAGS += -Werror
diff --git a/arch/mips/alchemy/mtx-1/board_setup.c b/arch/mips/alchemy/mtx-1/board_setup.c
index 45b61c9b82b9..a9f0336e1f1f 100644
--- a/arch/mips/alchemy/mtx-1/board_setup.c
+++ b/arch/mips/alchemy/mtx-1/board_setup.c
@@ -30,32 +30,43 @@
30 30
31#include <linux/gpio.h> 31#include <linux/gpio.h>
32#include <linux/init.h> 32#include <linux/init.h>
33#include <linux/interrupt.h>
34#include <linux/pm.h>
33 35
36#include <asm/reboot.h>
34#include <asm/mach-au1x00/au1000.h> 37#include <asm/mach-au1x00/au1000.h>
35 38
36#include <prom.h> 39#include <prom.h>
37 40
41char irq_tab_alchemy[][5] __initdata = {
42 [0] = { -1, AU1500_PCI_INTA, AU1500_PCI_INTA, 0xff, 0xff }, /* IDSEL 00 - AdapterA-Slot0 (top) */
43 [1] = { -1, AU1500_PCI_INTB, AU1500_PCI_INTA, 0xff, 0xff }, /* IDSEL 01 - AdapterA-Slot1 (bottom) */
44 [2] = { -1, AU1500_PCI_INTC, AU1500_PCI_INTD, 0xff, 0xff }, /* IDSEL 02 - AdapterB-Slot0 (top) */
45 [3] = { -1, AU1500_PCI_INTD, AU1500_PCI_INTC, 0xff, 0xff }, /* IDSEL 03 - AdapterB-Slot1 (bottom) */
46 [4] = { -1, AU1500_PCI_INTA, AU1500_PCI_INTB, 0xff, 0xff }, /* IDSEL 04 - AdapterC-Slot0 (top) */
47 [5] = { -1, AU1500_PCI_INTB, AU1500_PCI_INTA, 0xff, 0xff }, /* IDSEL 05 - AdapterC-Slot1 (bottom) */
48 [6] = { -1, AU1500_PCI_INTC, AU1500_PCI_INTD, 0xff, 0xff }, /* IDSEL 06 - AdapterD-Slot0 (top) */
49 [7] = { -1, AU1500_PCI_INTD, AU1500_PCI_INTC, 0xff, 0xff }, /* IDSEL 07 - AdapterD-Slot1 (bottom) */
50};
51
38extern int (*board_pci_idsel)(unsigned int devsel, int assert); 52extern int (*board_pci_idsel)(unsigned int devsel, int assert);
39int mtx1_pci_idsel(unsigned int devsel, int assert); 53int mtx1_pci_idsel(unsigned int devsel, int assert);
40 54
41void board_reset(void) 55static void mtx1_reset(char *c)
42{ 56{
43 /* Hit BCSR.SYSTEM_CONTROL[SW_RST] */ 57 /* Hit BCSR.SYSTEM_CONTROL[SW_RST] */
44 au_writel(0x00000000, 0xAE00001C); 58 au_writel(0x00000000, 0xAE00001C);
45} 59}
46 60
47void __init board_setup(void) 61static void mtx1_power_off(void)
48{ 62{
49#ifdef CONFIG_SERIAL_8250_CONSOLE 63 printk(KERN_ALERT "It's now safe to remove power\n");
50 char *argptr; 64 while (1)
51 argptr = prom_getcmdline(); 65 asm volatile (".set mips3 ; wait ; .set mips1");
52 argptr = strstr(argptr, "console="); 66}
53 if (argptr == NULL) {
54 argptr = prom_getcmdline();
55 strcat(argptr, " console=ttyS0,115200");
56 }
57#endif
58 67
68void __init board_setup(void)
69{
59 alchemy_gpio2_enable(); 70 alchemy_gpio2_enable();
60 71
61#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) 72#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
@@ -86,6 +97,10 @@ void __init board_setup(void)
86 alchemy_gpio_direction_output(211, 1); /* green on */ 97 alchemy_gpio_direction_output(211, 1); /* green on */
87 alchemy_gpio_direction_output(212, 0); /* red off */ 98 alchemy_gpio_direction_output(212, 0); /* red off */
88 99
100 pm_power_off = mtx1_power_off;
101 _machine_halt = mtx1_power_off;
102 _machine_restart = mtx1_reset;
103
89 printk(KERN_INFO "4G Systems MTX-1 Board\n"); 104 printk(KERN_INFO "4G Systems MTX-1 Board\n");
90} 105}
91 106
@@ -109,3 +124,15 @@ mtx1_pci_idsel(unsigned int devsel, int assert)
109 au_sync_udelay(1); 124 au_sync_udelay(1);
110 return 1; 125 return 1;
111} 126}
127
128static int __init mtx1_init_irq(void)
129{
130 set_irq_type(AU1500_GPIO204_INT, IRQF_TRIGGER_HIGH);
131 set_irq_type(AU1500_GPIO201_INT, IRQF_TRIGGER_LOW);
132 set_irq_type(AU1500_GPIO202_INT, IRQF_TRIGGER_LOW);
133 set_irq_type(AU1500_GPIO203_INT, IRQF_TRIGGER_LOW);
134 set_irq_type(AU1500_GPIO205_INT, IRQF_TRIGGER_LOW);
135
136 return 0;
137}
138arch_initcall(mtx1_init_irq);
diff --git a/arch/mips/alchemy/mtx-1/init.c b/arch/mips/alchemy/mtx-1/init.c
index 5e871c8d9e96..f8d25575fa05 100644
--- a/arch/mips/alchemy/mtx-1/init.c
+++ b/arch/mips/alchemy/mtx-1/init.c
@@ -32,6 +32,7 @@
32#include <linux/init.h> 32#include <linux/init.h>
33 33
34#include <asm/bootinfo.h> 34#include <asm/bootinfo.h>
35#include <asm/mach-au1x00/au1000.h>
35 36
36#include <prom.h> 37#include <prom.h>
37 38
@@ -58,3 +59,8 @@ void __init prom_init(void)
58 strict_strtoul(memsize_str, 0, &memsize); 59 strict_strtoul(memsize_str, 0, &memsize);
59 add_memory_region(0, memsize, BOOT_MEM_RAM); 60 add_memory_region(0, memsize, BOOT_MEM_RAM);
60} 61}
62
63void prom_putchar(unsigned char c)
64{
65 alchemy_uart_putchar(UART0_PHYS_ADDR, c);
66}
diff --git a/arch/mips/alchemy/mtx-1/irqmap.c b/arch/mips/alchemy/mtx-1/irqmap.c
deleted file mode 100644
index f1ab12ab3433..000000000000
--- a/arch/mips/alchemy/mtx-1/irqmap.c
+++ /dev/null
@@ -1,56 +0,0 @@
1/*
2 * BRIEF MODULE DESCRIPTION
3 * Au1xxx irq map table
4 *
5 * Copyright 2003 Embedded Edge, LLC
6 * dan@embeddededge.com
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the
10 * Free Software Foundation; either version 2 of the License, or (at your
11 * option) any later version.
12 *
13 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
14 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
15 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
16 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
17 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
19 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
22 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 *
24 * You should have received a copy of the GNU General Public License along
25 * with this program; if not, write to the Free Software Foundation, Inc.,
26 * 675 Mass Ave, Cambridge, MA 02139, USA.
27 */
28
29#include <linux/init.h>
30#include <linux/interrupt.h>
31#include <asm/mach-au1x00/au1000.h>
32
33char irq_tab_alchemy[][5] __initdata = {
34 [0] = { -1, INTA, INTA, INTX, INTX }, /* IDSEL 00 - AdapterA-Slot0 (top) */
35 [1] = { -1, INTB, INTA, INTX, INTX }, /* IDSEL 01 - AdapterA-Slot1 (bottom) */
36 [2] = { -1, INTC, INTD, INTX, INTX }, /* IDSEL 02 - AdapterB-Slot0 (top) */
37 [3] = { -1, INTD, INTC, INTX, INTX }, /* IDSEL 03 - AdapterB-Slot1 (bottom) */
38 [4] = { -1, INTA, INTB, INTX, INTX }, /* IDSEL 04 - AdapterC-Slot0 (top) */
39 [5] = { -1, INTB, INTA, INTX, INTX }, /* IDSEL 05 - AdapterC-Slot1 (bottom) */
40 [6] = { -1, INTC, INTD, INTX, INTX }, /* IDSEL 06 - AdapterD-Slot0 (top) */
41 [7] = { -1, INTD, INTC, INTX, INTX }, /* IDSEL 07 - AdapterD-Slot1 (bottom) */
42};
43
44struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
45 { AU1500_GPIO_204, IRQF_TRIGGER_HIGH, 0 },
46 { AU1500_GPIO_201, IRQF_TRIGGER_LOW, 0 },
47 { AU1500_GPIO_202, IRQF_TRIGGER_LOW, 0 },
48 { AU1500_GPIO_203, IRQF_TRIGGER_LOW, 0 },
49 { AU1500_GPIO_205, IRQF_TRIGGER_LOW, 0 },
50};
51
52
53void __init board_init_irq(void)
54{
55 au1xxx_setup_irqmap(au1xxx_irq_map, ARRAY_SIZE(au1xxx_irq_map));
56}
diff --git a/arch/mips/alchemy/xxs1500/Makefile b/arch/mips/alchemy/xxs1500/Makefile
index db3c526f64d8..4dc81d794cb8 100644
--- a/arch/mips/alchemy/xxs1500/Makefile
+++ b/arch/mips/alchemy/xxs1500/Makefile
@@ -5,4 +5,6 @@
5# Makefile for MyCable XXS1500 board. 5# Makefile for MyCable XXS1500 board.
6# 6#
7 7
8lib-y := init.o board_setup.o irqmap.o 8lib-y := init.o board_setup.o platform.o
9
10EXTRA_CFLAGS += -Werror
diff --git a/arch/mips/alchemy/xxs1500/board_setup.c b/arch/mips/alchemy/xxs1500/board_setup.c
index 4de2d48caed8..47b42927607b 100644
--- a/arch/mips/alchemy/xxs1500/board_setup.c
+++ b/arch/mips/alchemy/xxs1500/board_setup.c
@@ -25,31 +25,35 @@
25 25
26#include <linux/gpio.h> 26#include <linux/gpio.h>
27#include <linux/init.h> 27#include <linux/init.h>
28#include <linux/interrupt.h>
28#include <linux/delay.h> 29#include <linux/delay.h>
30#include <linux/pm.h>
29 31
32#include <asm/reboot.h>
30#include <asm/mach-au1x00/au1000.h> 33#include <asm/mach-au1x00/au1000.h>
31 34
32#include <prom.h> 35#include <prom.h>
33 36
34void board_reset(void) 37static void xxs1500_reset(char *c)
35{ 38{
36 /* Hit BCSR.SYSTEM_CONTROL[SW_RST] */ 39 /* Hit BCSR.SYSTEM_CONTROL[SW_RST] */
37 au_writel(0x00000000, 0xAE00001C); 40 au_writel(0x00000000, 0xAE00001C);
38} 41}
39 42
43static void xxs1500_power_off(void)
44{
45 printk(KERN_ALERT "It's now safe to remove power\n");
46 while (1)
47 asm volatile (".set mips3 ; wait ; .set mips1");
48}
49
40void __init board_setup(void) 50void __init board_setup(void)
41{ 51{
42 u32 pin_func; 52 u32 pin_func;
43 53
44#ifdef CONFIG_SERIAL_8250_CONSOLE 54 pm_power_off = xxs1500_power_off;
45 char *argptr; 55 _machine_halt = xxs1500_power_off;
46 argptr = prom_getcmdline(); 56 _machine_restart = xxs1500_reset;
47 argptr = strstr(argptr, "console=");
48 if (argptr == NULL) {
49 argptr = prom_getcmdline();
50 strcat(argptr, " console=ttyS0,115200");
51 }
52#endif
53 57
54 alchemy_gpio1_input_enable(); 58 alchemy_gpio1_input_enable();
55 alchemy_gpio2_enable(); 59 alchemy_gpio2_enable();
@@ -68,22 +72,6 @@ void __init board_setup(void)
68 /* Enable DTR = USB power up */ 72 /* Enable DTR = USB power up */
69 au_writel(0x01, UART3_ADDR + UART_MCR); /* UART_MCR_DTR is 0x01??? */ 73 au_writel(0x01, UART3_ADDR + UART_MCR); /* UART_MCR_DTR is 0x01??? */
70 74
71#ifdef CONFIG_PCMCIA_XXS1500
72 /* GPIO 0, 1, and 4 are inputs */
73 alchemy_gpio_direction_input(0);
74 alchemy_gpio_direction_input(1);
75 alchemy_gpio_direction_input(4);
76
77 /* GPIO2 208/9/10/11 are inputs */
78 alchemy_gpio_direction_input(208);
79 alchemy_gpio_direction_input(209);
80 alchemy_gpio_direction_input(210);
81 alchemy_gpio_direction_input(211);
82
83 /* Turn off power */
84 alchemy_gpio_direction_output(214, 0);
85#endif
86
87#ifdef CONFIG_PCI 75#ifdef CONFIG_PCI
88#if defined(__MIPSEB__) 76#if defined(__MIPSEB__)
89 au_writel(0xf | (2 << 6) | (1 << 4), Au1500_PCI_CFG); 77 au_writel(0xf | (2 << 6) | (1 << 4), Au1500_PCI_CFG);
@@ -92,3 +80,23 @@ void __init board_setup(void)
92#endif 80#endif
93#endif 81#endif
94} 82}
83
84static int __init xxs1500_init_irq(void)
85{
86 set_irq_type(AU1500_GPIO204_INT, IRQF_TRIGGER_HIGH);
87 set_irq_type(AU1500_GPIO201_INT, IRQF_TRIGGER_LOW);
88 set_irq_type(AU1500_GPIO202_INT, IRQF_TRIGGER_LOW);
89 set_irq_type(AU1500_GPIO203_INT, IRQF_TRIGGER_LOW);
90 set_irq_type(AU1500_GPIO205_INT, IRQF_TRIGGER_LOW);
91 set_irq_type(AU1500_GPIO207_INT, IRQF_TRIGGER_LOW);
92
93 set_irq_type(AU1500_GPIO0_INT, IRQF_TRIGGER_LOW);
94 set_irq_type(AU1500_GPIO1_INT, IRQF_TRIGGER_LOW);
95 set_irq_type(AU1500_GPIO2_INT, IRQF_TRIGGER_LOW);
96 set_irq_type(AU1500_GPIO3_INT, IRQF_TRIGGER_LOW);
97 set_irq_type(AU1500_GPIO4_INT, IRQF_TRIGGER_LOW); /* CF irq */
98 set_irq_type(AU1500_GPIO5_INT, IRQF_TRIGGER_LOW);
99
100 return 0;
101}
102arch_initcall(xxs1500_init_irq);
diff --git a/arch/mips/alchemy/xxs1500/init.c b/arch/mips/alchemy/xxs1500/init.c
index 456fa142c093..15125c2fda7d 100644
--- a/arch/mips/alchemy/xxs1500/init.c
+++ b/arch/mips/alchemy/xxs1500/init.c
@@ -30,6 +30,7 @@
30#include <linux/kernel.h> 30#include <linux/kernel.h>
31 31
32#include <asm/bootinfo.h> 32#include <asm/bootinfo.h>
33#include <asm/mach-au1x00/au1000.h>
33 34
34#include <prom.h> 35#include <prom.h>
35 36
@@ -56,3 +57,8 @@ void __init prom_init(void)
56 strict_strtoul(memsize_str, 0, &memsize); 57 strict_strtoul(memsize_str, 0, &memsize);
57 add_memory_region(0, memsize, BOOT_MEM_RAM); 58 add_memory_region(0, memsize, BOOT_MEM_RAM);
58} 59}
60
61void prom_putchar(unsigned char c)
62{
63 alchemy_uart_putchar(UART0_PHYS_ADDR, c);
64}
diff --git a/arch/mips/alchemy/xxs1500/irqmap.c b/arch/mips/alchemy/xxs1500/irqmap.c
deleted file mode 100644
index 0f0f3012e5fd..000000000000
--- a/arch/mips/alchemy/xxs1500/irqmap.c
+++ /dev/null
@@ -1,52 +0,0 @@
1/*
2 * BRIEF MODULE DESCRIPTION
3 * Au1xxx irq map table
4 *
5 * Copyright 2003 Embedded Edge, LLC
6 * dan@embeddededge.com
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the
10 * Free Software Foundation; either version 2 of the License, or (at your
11 * option) any later version.
12 *
13 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
14 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
15 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
16 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
17 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
19 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
22 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 *
24 * You should have received a copy of the GNU General Public License along
25 * with this program; if not, write to the Free Software Foundation, Inc.,
26 * 675 Mass Ave, Cambridge, MA 02139, USA.
27 */
28
29#include <linux/init.h>
30#include <linux/interrupt.h>
31#include <asm/mach-au1x00/au1000.h>
32
33struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
34 { AU1500_GPIO_204, IRQF_TRIGGER_HIGH, 0 },
35 { AU1500_GPIO_201, IRQF_TRIGGER_LOW, 0 },
36 { AU1500_GPIO_202, IRQF_TRIGGER_LOW, 0 },
37 { AU1500_GPIO_203, IRQF_TRIGGER_LOW, 0 },
38 { AU1500_GPIO_205, IRQF_TRIGGER_LOW, 0 },
39 { AU1500_GPIO_207, IRQF_TRIGGER_LOW, 0 },
40
41 { AU1000_GPIO_0, IRQF_TRIGGER_LOW, 0 },
42 { AU1000_GPIO_1, IRQF_TRIGGER_LOW, 0 },
43 { AU1000_GPIO_2, IRQF_TRIGGER_LOW, 0 },
44 { AU1000_GPIO_3, IRQF_TRIGGER_LOW, 0 },
45 { AU1000_GPIO_4, IRQF_TRIGGER_LOW, 0 }, /* CF interrupt */
46 { AU1000_GPIO_5, IRQF_TRIGGER_LOW, 0 },
47};
48
49void __init board_init_irq(void)
50{
51 au1xxx_setup_irqmap(au1xxx_irq_map, ARRAY_SIZE(au1xxx_irq_map));
52}
diff --git a/arch/mips/alchemy/xxs1500/platform.c b/arch/mips/alchemy/xxs1500/platform.c
new file mode 100644
index 000000000000..e87c45cde61b
--- /dev/null
+++ b/arch/mips/alchemy/xxs1500/platform.c
@@ -0,0 +1,63 @@
1/*
2 * XXS1500 board platform device registration
3 *
4 * Copyright (C) 2009 Manuel Lauss
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20
21#include <linux/init.h>
22#include <linux/platform_device.h>
23
24#include <asm/mach-au1x00/au1000.h>
25
26static struct resource xxs1500_pcmcia_res[] = {
27 {
28 .name = "pcmcia-io",
29 .flags = IORESOURCE_MEM,
30 .start = PCMCIA_IO_PHYS_ADDR,
31 .end = PCMCIA_IO_PHYS_ADDR + 0x000400000 - 1,
32 },
33 {
34 .name = "pcmcia-attr",
35 .flags = IORESOURCE_MEM,
36 .start = PCMCIA_ATTR_PHYS_ADDR,
37 .end = PCMCIA_ATTR_PHYS_ADDR + 0x000400000 - 1,
38 },
39 {
40 .name = "pcmcia-mem",
41 .flags = IORESOURCE_MEM,
42 .start = PCMCIA_MEM_PHYS_ADDR,
43 .end = PCMCIA_MEM_PHYS_ADDR + 0x000400000 - 1,
44 },
45};
46
47static struct platform_device xxs1500_pcmcia_dev = {
48 .name = "xxs1500_pcmcia",
49 .id = -1,
50 .num_resources = ARRAY_SIZE(xxs1500_pcmcia_res),
51 .resource = xxs1500_pcmcia_res,
52};
53
54static struct platform_device *xxs1500_devs[] __initdata = {
55 &xxs1500_pcmcia_dev,
56};
57
58static int __init xxs1500_dev_init(void)
59{
60 return platform_add_devices(xxs1500_devs,
61 ARRAY_SIZE(xxs1500_devs));
62}
63device_initcall(xxs1500_dev_init);
diff --git a/arch/mips/ar7/clock.c b/arch/mips/ar7/clock.c
index cc65c8eb391b..fc0e7154e8d6 100644
--- a/arch/mips/ar7/clock.c
+++ b/arch/mips/ar7/clock.c
@@ -1,6 +1,7 @@
1/* 1/*
2 * Copyright (C) 2007 Felix Fietkau <nbd@openwrt.org> 2 * Copyright (C) 2007 Felix Fietkau <nbd@openwrt.org>
3 * Copyright (C) 2007 Eugene Konev <ejka@openwrt.org> 3 * Copyright (C) 2007 Eugene Konev <ejka@openwrt.org>
4 * Copyright (C) 2009 Florian Fainelli <florian@openwrt.org>
4 * 5 *
5 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
@@ -24,6 +25,8 @@
24#include <linux/delay.h> 25#include <linux/delay.h>
25#include <linux/gcd.h> 26#include <linux/gcd.h>
26#include <linux/io.h> 27#include <linux/io.h>
28#include <linux/err.h>
29#include <linux/clk.h>
27 30
28#include <asm/addrspace.h> 31#include <asm/addrspace.h>
29#include <asm/mach-ar7/ar7.h> 32#include <asm/mach-ar7/ar7.h>
@@ -94,12 +97,16 @@ struct tnetd7200_clocks {
94 struct tnetd7200_clock usb; 97 struct tnetd7200_clock usb;
95}; 98};
96 99
97int ar7_cpu_clock = 150000000; 100static struct clk bus_clk = {
98EXPORT_SYMBOL(ar7_cpu_clock); 101 .rate = 125000000,
99int ar7_bus_clock = 125000000; 102};
100EXPORT_SYMBOL(ar7_bus_clock); 103
101int ar7_dsp_clock; 104static struct clk cpu_clk = {
102EXPORT_SYMBOL(ar7_dsp_clock); 105 .rate = 150000000,
106};
107
108static struct clk dsp_clk;
109static struct clk vbus_clk;
103 110
104static void approximate(int base, int target, int *prediv, 111static void approximate(int base, int target, int *prediv,
105 int *postdiv, int *mul) 112 int *postdiv, int *mul)
@@ -185,7 +192,7 @@ static int tnetd7300_get_clock(u32 shift, struct tnetd7300_clock *clock,
185 base_clock = AR7_XTAL_CLOCK; 192 base_clock = AR7_XTAL_CLOCK;
186 break; 193 break;
187 case BOOT_PLL_SOURCE_CPU: 194 case BOOT_PLL_SOURCE_CPU:
188 base_clock = ar7_cpu_clock; 195 base_clock = cpu_clk.rate;
189 break; 196 break;
190 } 197 }
191 198
@@ -212,11 +219,11 @@ static void tnetd7300_set_clock(u32 shift, struct tnetd7300_clock *clock,
212 u32 *bootcr, u32 frequency) 219 u32 *bootcr, u32 frequency)
213{ 220{
214 int prediv, postdiv, mul; 221 int prediv, postdiv, mul;
215 int base_clock = ar7_bus_clock; 222 int base_clock = bus_clk.rate;
216 223
217 switch ((*bootcr & (BOOT_PLL_SOURCE_MASK << shift)) >> shift) { 224 switch ((*bootcr & (BOOT_PLL_SOURCE_MASK << shift)) >> shift) {
218 case BOOT_PLL_SOURCE_BUS: 225 case BOOT_PLL_SOURCE_BUS:
219 base_clock = ar7_bus_clock; 226 base_clock = bus_clk.rate;
220 break; 227 break;
221 case BOOT_PLL_SOURCE_REF: 228 case BOOT_PLL_SOURCE_REF:
222 base_clock = AR7_REF_CLOCK; 229 base_clock = AR7_REF_CLOCK;
@@ -225,7 +232,7 @@ static void tnetd7300_set_clock(u32 shift, struct tnetd7300_clock *clock,
225 base_clock = AR7_XTAL_CLOCK; 232 base_clock = AR7_XTAL_CLOCK;
226 break; 233 break;
227 case BOOT_PLL_SOURCE_CPU: 234 case BOOT_PLL_SOURCE_CPU:
228 base_clock = ar7_cpu_clock; 235 base_clock = cpu_clk.rate;
229 break; 236 break;
230 } 237 }
231 238
@@ -247,18 +254,18 @@ static void __init tnetd7300_init_clocks(void)
247 ioremap_nocache(UR8_REGS_CLOCKS, 254 ioremap_nocache(UR8_REGS_CLOCKS,
248 sizeof(struct tnetd7300_clocks)); 255 sizeof(struct tnetd7300_clocks));
249 256
250 ar7_bus_clock = tnetd7300_get_clock(BUS_PLL_SOURCE_SHIFT, 257 bus_clk.rate = tnetd7300_get_clock(BUS_PLL_SOURCE_SHIFT,
251 &clocks->bus, bootcr, AR7_AFE_CLOCK); 258 &clocks->bus, bootcr, AR7_AFE_CLOCK);
252 259
253 if (*bootcr & BOOT_PLL_ASYNC_MODE) 260 if (*bootcr & BOOT_PLL_ASYNC_MODE)
254 ar7_cpu_clock = tnetd7300_get_clock(CPU_PLL_SOURCE_SHIFT, 261 cpu_clk.rate = tnetd7300_get_clock(CPU_PLL_SOURCE_SHIFT,
255 &clocks->cpu, bootcr, AR7_AFE_CLOCK); 262 &clocks->cpu, bootcr, AR7_AFE_CLOCK);
256 else 263 else
257 ar7_cpu_clock = ar7_bus_clock; 264 cpu_clk.rate = bus_clk.rate;
258 265
259 if (ar7_dsp_clock == 250000000) 266 if (dsp_clk.rate == 250000000)
260 tnetd7300_set_clock(DSP_PLL_SOURCE_SHIFT, &clocks->dsp, 267 tnetd7300_set_clock(DSP_PLL_SOURCE_SHIFT, &clocks->dsp,
261 bootcr, ar7_dsp_clock); 268 bootcr, dsp_clk.rate);
262 269
263 iounmap(clocks); 270 iounmap(clocks);
264 iounmap(bootcr); 271 iounmap(bootcr);
@@ -343,20 +350,20 @@ static void __init tnetd7200_init_clocks(void)
343 printk(KERN_INFO "Clocks: Setting DSP clock\n"); 350 printk(KERN_INFO "Clocks: Setting DSP clock\n");
344 calculate(dsp_base, TNETD7200_DEF_DSP_CLK, 351 calculate(dsp_base, TNETD7200_DEF_DSP_CLK,
345 &dsp_prediv, &dsp_postdiv, &dsp_mul); 352 &dsp_prediv, &dsp_postdiv, &dsp_mul);
346 ar7_bus_clock = 353 bus_clk.rate =
347 ((dsp_base / dsp_prediv) * dsp_mul) / dsp_postdiv; 354 ((dsp_base / dsp_prediv) * dsp_mul) / dsp_postdiv;
348 tnetd7200_set_clock(dsp_base, &clocks->dsp, 355 tnetd7200_set_clock(dsp_base, &clocks->dsp,
349 dsp_prediv, dsp_postdiv * 2, dsp_postdiv, dsp_mul * 2, 356 dsp_prediv, dsp_postdiv * 2, dsp_postdiv, dsp_mul * 2,
350 ar7_bus_clock); 357 bus_clk.rate);
351 358
352 printk(KERN_INFO "Clocks: Setting CPU clock\n"); 359 printk(KERN_INFO "Clocks: Setting CPU clock\n");
353 calculate(cpu_base, TNETD7200_DEF_CPU_CLK, &cpu_prediv, 360 calculate(cpu_base, TNETD7200_DEF_CPU_CLK, &cpu_prediv,
354 &cpu_postdiv, &cpu_mul); 361 &cpu_postdiv, &cpu_mul);
355 ar7_cpu_clock = 362 cpu_clk.rate =
356 ((cpu_base / cpu_prediv) * cpu_mul) / cpu_postdiv; 363 ((cpu_base / cpu_prediv) * cpu_mul) / cpu_postdiv;
357 tnetd7200_set_clock(cpu_base, &clocks->cpu, 364 tnetd7200_set_clock(cpu_base, &clocks->cpu,
358 cpu_prediv, cpu_postdiv, -1, cpu_mul, 365 cpu_prediv, cpu_postdiv, -1, cpu_mul,
359 ar7_cpu_clock); 366 cpu_clk.rate);
360 367
361 } else 368 } else
362 if (*bootcr & BOOT_PLL_2TO1_MODE) { 369 if (*bootcr & BOOT_PLL_2TO1_MODE) {
@@ -365,48 +372,90 @@ static void __init tnetd7200_init_clocks(void)
365 printk(KERN_INFO "Clocks: Setting CPU clock\n"); 372 printk(KERN_INFO "Clocks: Setting CPU clock\n");
366 calculate(cpu_base, TNETD7200_DEF_CPU_CLK, &cpu_prediv, 373 calculate(cpu_base, TNETD7200_DEF_CPU_CLK, &cpu_prediv,
367 &cpu_postdiv, &cpu_mul); 374 &cpu_postdiv, &cpu_mul);
368 ar7_cpu_clock = ((cpu_base / cpu_prediv) * cpu_mul) 375 cpu_clk.rate = ((cpu_base / cpu_prediv) * cpu_mul)
369 / cpu_postdiv; 376 / cpu_postdiv;
370 tnetd7200_set_clock(cpu_base, &clocks->cpu, 377 tnetd7200_set_clock(cpu_base, &clocks->cpu,
371 cpu_prediv, cpu_postdiv, -1, cpu_mul, 378 cpu_prediv, cpu_postdiv, -1, cpu_mul,
372 ar7_cpu_clock); 379 cpu_clk.rate);
373 380
374 printk(KERN_INFO "Clocks: Setting DSP clock\n"); 381 printk(KERN_INFO "Clocks: Setting DSP clock\n");
375 calculate(dsp_base, TNETD7200_DEF_DSP_CLK, &dsp_prediv, 382 calculate(dsp_base, TNETD7200_DEF_DSP_CLK, &dsp_prediv,
376 &dsp_postdiv, &dsp_mul); 383 &dsp_postdiv, &dsp_mul);
377 ar7_bus_clock = ar7_cpu_clock / 2; 384 bus_clk.rate = cpu_clk.rate / 2;
378 tnetd7200_set_clock(dsp_base, &clocks->dsp, 385 tnetd7200_set_clock(dsp_base, &clocks->dsp,
379 dsp_prediv, dsp_postdiv * 2, dsp_postdiv, 386 dsp_prediv, dsp_postdiv * 2, dsp_postdiv,
380 dsp_mul * 2, ar7_bus_clock); 387 dsp_mul * 2, bus_clk.rate);
381 } else { 388 } else {
382 printk(KERN_INFO "Clocks: Sync 1:1 mode\n"); 389 printk(KERN_INFO "Clocks: Sync 1:1 mode\n");
383 390
384 printk(KERN_INFO "Clocks: Setting DSP clock\n"); 391 printk(KERN_INFO "Clocks: Setting DSP clock\n");
385 calculate(dsp_base, TNETD7200_DEF_DSP_CLK, &dsp_prediv, 392 calculate(dsp_base, TNETD7200_DEF_DSP_CLK, &dsp_prediv,
386 &dsp_postdiv, &dsp_mul); 393 &dsp_postdiv, &dsp_mul);
387 ar7_bus_clock = ((dsp_base / dsp_prediv) * dsp_mul) 394 bus_clk.rate = ((dsp_base / dsp_prediv) * dsp_mul)
388 / dsp_postdiv; 395 / dsp_postdiv;
389 tnetd7200_set_clock(dsp_base, &clocks->dsp, 396 tnetd7200_set_clock(dsp_base, &clocks->dsp,
390 dsp_prediv, dsp_postdiv * 2, dsp_postdiv, 397 dsp_prediv, dsp_postdiv * 2, dsp_postdiv,
391 dsp_mul * 2, ar7_bus_clock); 398 dsp_mul * 2, bus_clk.rate);
392 399
393 ar7_cpu_clock = ar7_bus_clock; 400 cpu_clk.rate = bus_clk.rate;
394 } 401 }
395 402
396 printk(KERN_INFO "Clocks: Setting USB clock\n"); 403 printk(KERN_INFO "Clocks: Setting USB clock\n");
397 usb_base = ar7_bus_clock; 404 usb_base = bus_clk.rate;
398 calculate(usb_base, TNETD7200_DEF_USB_CLK, &usb_prediv, 405 calculate(usb_base, TNETD7200_DEF_USB_CLK, &usb_prediv,
399 &usb_postdiv, &usb_mul); 406 &usb_postdiv, &usb_mul);
400 tnetd7200_set_clock(usb_base, &clocks->usb, 407 tnetd7200_set_clock(usb_base, &clocks->usb,
401 usb_prediv, usb_postdiv, -1, usb_mul, 408 usb_prediv, usb_postdiv, -1, usb_mul,
402 TNETD7200_DEF_USB_CLK); 409 TNETD7200_DEF_USB_CLK);
403 410
404 ar7_dsp_clock = ar7_cpu_clock; 411 dsp_clk.rate = cpu_clk.rate;
405 412
406 iounmap(clocks); 413 iounmap(clocks);
407 iounmap(bootcr); 414 iounmap(bootcr);
408} 415}
409 416
417/*
418 * Linux clock API
419 */
420int clk_enable(struct clk *clk)
421{
422 return 0;
423}
424EXPORT_SYMBOL(clk_enable);
425
426void clk_disable(struct clk *clk)
427{
428}
429EXPORT_SYMBOL(clk_disable);
430
431unsigned long clk_get_rate(struct clk *clk)
432{
433 return clk->rate;
434}
435EXPORT_SYMBOL(clk_get_rate);
436
437struct clk *clk_get(struct device *dev, const char *id)
438{
439 if (!strcmp(id, "bus"))
440 return &bus_clk;
441 /* cpmac and vbus share the same rate */
442 if (!strcmp(id, "cpmac"))
443 return &vbus_clk;
444 if (!strcmp(id, "cpu"))
445 return &cpu_clk;
446 if (!strcmp(id, "dsp"));
447 return &dsp_clk;
448 if (!strcmp(id, "vbus"))
449 return &vbus_clk;
450 return ERR_PTR(-ENOENT);
451}
452EXPORT_SYMBOL(clk_get);
453
454void clk_put(struct clk *clk)
455{
456}
457EXPORT_SYMBOL(clk_put);
458
410int __init ar7_init_clocks(void) 459int __init ar7_init_clocks(void)
411{ 460{
412 switch (ar7_chip_id()) { 461 switch (ar7_chip_id()) {
@@ -415,12 +464,14 @@ int __init ar7_init_clocks(void)
415 tnetd7200_init_clocks(); 464 tnetd7200_init_clocks();
416 break; 465 break;
417 case AR7_CHIP_7300: 466 case AR7_CHIP_7300:
418 ar7_dsp_clock = tnetd7300_dsp_clock(); 467 dsp_clk.rate = tnetd7300_dsp_clock();
419 tnetd7300_init_clocks(); 468 tnetd7300_init_clocks();
420 break; 469 break;
421 default: 470 default:
422 break; 471 break;
423 } 472 }
473 /* adjust vbus clock rate */
474 vbus_clk.rate = bus_clk.rate / 2;
424 475
425 return 0; 476 return 0;
426} 477}
diff --git a/arch/mips/ar7/gpio.c b/arch/mips/ar7/gpio.c
index 74e14a3dbf4a..c32fbb57441a 100644
--- a/arch/mips/ar7/gpio.c
+++ b/arch/mips/ar7/gpio.c
@@ -1,6 +1,7 @@
1/* 1/*
2 * Copyright (C) 2007 Felix Fietkau <nbd@openwrt.org> 2 * Copyright (C) 2007 Felix Fietkau <nbd@openwrt.org>
3 * Copyright (C) 2007 Eugene Konev <ejka@openwrt.org> 3 * Copyright (C) 2007 Eugene Konev <ejka@openwrt.org>
4 * Copyright (C) 2009 Florian Fainelli <florian@openwrt.org>
4 * 5 *
5 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
@@ -18,31 +19,113 @@
18 */ 19 */
19 20
20#include <linux/module.h> 21#include <linux/module.h>
22#include <linux/gpio.h>
21 23
22#include <asm/mach-ar7/gpio.h> 24#include <asm/mach-ar7/gpio.h>
23 25
24static const char *ar7_gpio_list[AR7_GPIO_MAX]; 26struct ar7_gpio_chip {
27 void __iomem *regs;
28 struct gpio_chip chip;
29};
25 30
26int gpio_request(unsigned gpio, const char *label) 31static int ar7_gpio_get_value(struct gpio_chip *chip, unsigned gpio)
27{ 32{
28 if (gpio >= AR7_GPIO_MAX) 33 struct ar7_gpio_chip *gpch =
29 return -EINVAL; 34 container_of(chip, struct ar7_gpio_chip, chip);
35 void __iomem *gpio_in = gpch->regs + AR7_GPIO_INPUT;
30 36
31 if (ar7_gpio_list[gpio]) 37 return readl(gpio_in) & (1 << gpio);
32 return -EBUSY; 38}
39
40static void ar7_gpio_set_value(struct gpio_chip *chip,
41 unsigned gpio, int value)
42{
43 struct ar7_gpio_chip *gpch =
44 container_of(chip, struct ar7_gpio_chip, chip);
45 void __iomem *gpio_out = gpch->regs + AR7_GPIO_OUTPUT;
46 unsigned tmp;
47
48 tmp = readl(gpio_out) & ~(1 << gpio);
49 if (value)
50 tmp |= 1 << gpio;
51 writel(tmp, gpio_out);
52}
53
54static int ar7_gpio_direction_input(struct gpio_chip *chip, unsigned gpio)
55{
56 struct ar7_gpio_chip *gpch =
57 container_of(chip, struct ar7_gpio_chip, chip);
58 void __iomem *gpio_dir = gpch->regs + AR7_GPIO_DIR;
33 59
34 if (label) 60 writel(readl(gpio_dir) | (1 << gpio), gpio_dir);
35 ar7_gpio_list[gpio] = label;
36 else
37 ar7_gpio_list[gpio] = "busy";
38 61
39 return 0; 62 return 0;
40} 63}
41EXPORT_SYMBOL(gpio_request);
42 64
43void gpio_free(unsigned gpio) 65static int ar7_gpio_direction_output(struct gpio_chip *chip,
66 unsigned gpio, int value)
44{ 67{
45 BUG_ON(!ar7_gpio_list[gpio]); 68 struct ar7_gpio_chip *gpch =
46 ar7_gpio_list[gpio] = NULL; 69 container_of(chip, struct ar7_gpio_chip, chip);
70 void __iomem *gpio_dir = gpch->regs + AR7_GPIO_DIR;
71
72 ar7_gpio_set_value(chip, gpio, value);
73 writel(readl(gpio_dir) & ~(1 << gpio), gpio_dir);
74
75 return 0;
76}
77
78static struct ar7_gpio_chip ar7_gpio_chip = {
79 .chip = {
80 .label = "ar7-gpio",
81 .direction_input = ar7_gpio_direction_input,
82 .direction_output = ar7_gpio_direction_output,
83 .set = ar7_gpio_set_value,
84 .get = ar7_gpio_get_value,
85 .base = 0,
86 .ngpio = AR7_GPIO_MAX,
87 }
88};
89
90int ar7_gpio_enable(unsigned gpio)
91{
92 void __iomem *gpio_en = ar7_gpio_chip.regs + AR7_GPIO_ENABLE;
93
94 writel(readl(gpio_en) | (1 << gpio), gpio_en);
95
96 return 0;
97}
98EXPORT_SYMBOL(ar7_gpio_enable);
99
100int ar7_gpio_disable(unsigned gpio)
101{
102 void __iomem *gpio_en = ar7_gpio_chip.regs + AR7_GPIO_ENABLE;
103
104 writel(readl(gpio_en) & ~(1 << gpio), gpio_en);
105
106 return 0;
107}
108EXPORT_SYMBOL(ar7_gpio_disable);
109
110static int __init ar7_gpio_init(void)
111{
112 int ret;
113
114 ar7_gpio_chip.regs = ioremap_nocache(AR7_REGS_GPIO,
115 AR7_REGS_GPIO + 0x10);
116
117 if (!ar7_gpio_chip.regs) {
118 printk(KERN_ERR "ar7-gpio: failed to ioremap regs\n");
119 return -ENOMEM;
120 }
121
122 ret = gpiochip_add(&ar7_gpio_chip.chip);
123 if (ret) {
124 printk(KERN_ERR "ar7-gpio: failed to add gpiochip\n");
125 return ret;
126 }
127 printk(KERN_INFO "ar7-gpio: registered %d GPIOs\n",
128 ar7_gpio_chip.chip.ngpio);
129 return ret;
47} 130}
48EXPORT_SYMBOL(gpio_free); 131arch_initcall(ar7_gpio_init);
diff --git a/arch/mips/ar7/memory.c b/arch/mips/ar7/memory.c
index 696c723dc6d4..28abfeef09d6 100644
--- a/arch/mips/ar7/memory.c
+++ b/arch/mips/ar7/memory.c
@@ -62,8 +62,7 @@ void __init prom_meminit(void)
62 unsigned long pages; 62 unsigned long pages;
63 63
64 pages = memsize() >> PAGE_SHIFT; 64 pages = memsize() >> PAGE_SHIFT;
65 add_memory_region(PHYS_OFFSET, pages << PAGE_SHIFT, 65 add_memory_region(PHYS_OFFSET, pages << PAGE_SHIFT, BOOT_MEM_RAM);
66 BOOT_MEM_RAM);
67} 66}
68 67
69void __init prom_free_prom_memory(void) 68void __init prom_free_prom_memory(void)
diff --git a/arch/mips/ar7/platform.c b/arch/mips/ar7/platform.c
index f70a10a8cc96..246df7aca2e7 100644
--- a/arch/mips/ar7/platform.c
+++ b/arch/mips/ar7/platform.c
@@ -34,45 +34,50 @@
34#include <linux/etherdevice.h> 34#include <linux/etherdevice.h>
35#include <linux/phy.h> 35#include <linux/phy.h>
36#include <linux/phy_fixed.h> 36#include <linux/phy_fixed.h>
37#include <linux/gpio.h>
38#include <linux/clk.h>
37 39
38#include <asm/addrspace.h> 40#include <asm/addrspace.h>
39#include <asm/mach-ar7/ar7.h> 41#include <asm/mach-ar7/ar7.h>
40#include <asm/mach-ar7/gpio.h> 42#include <asm/mach-ar7/gpio.h>
41#include <asm/mach-ar7/prom.h> 43#include <asm/mach-ar7/prom.h>
42 44
45/*****************************************************************************
46 * VLYNQ Bus
47 ****************************************************************************/
43struct plat_vlynq_data { 48struct plat_vlynq_data {
44 struct plat_vlynq_ops ops; 49 struct plat_vlynq_ops ops;
45 int gpio_bit; 50 int gpio_bit;
46 int reset_bit; 51 int reset_bit;
47}; 52};
48 53
49
50static int vlynq_on(struct vlynq_device *dev) 54static int vlynq_on(struct vlynq_device *dev)
51{ 55{
52 int result; 56 int ret;
53 struct plat_vlynq_data *pdata = dev->dev.platform_data; 57 struct plat_vlynq_data *pdata = dev->dev.platform_data;
54 58
55 result = gpio_request(pdata->gpio_bit, "vlynq"); 59 ret = gpio_request(pdata->gpio_bit, "vlynq");
56 if (result) 60 if (ret)
57 goto out; 61 goto out;
58 62
59 ar7_device_reset(pdata->reset_bit); 63 ar7_device_reset(pdata->reset_bit);
60 64
61 result = ar7_gpio_disable(pdata->gpio_bit); 65 ret = ar7_gpio_disable(pdata->gpio_bit);
62 if (result) 66 if (ret)
63 goto out_enabled; 67 goto out_enabled;
64 68
65 result = ar7_gpio_enable(pdata->gpio_bit); 69 ret = ar7_gpio_enable(pdata->gpio_bit);
66 if (result) 70 if (ret)
67 goto out_enabled; 71 goto out_enabled;
68 72
69 result = gpio_direction_output(pdata->gpio_bit, 0); 73 ret = gpio_direction_output(pdata->gpio_bit, 0);
70 if (result) 74 if (ret)
71 goto out_gpio_enabled; 75 goto out_gpio_enabled;
72 76
73 msleep(50); 77 msleep(50);
74 78
75 gpio_set_value(pdata->gpio_bit, 1); 79 gpio_set_value(pdata->gpio_bit, 1);
80
76 msleep(50); 81 msleep(50);
77 82
78 return 0; 83 return 0;
@@ -83,320 +88,384 @@ out_enabled:
83 ar7_device_disable(pdata->reset_bit); 88 ar7_device_disable(pdata->reset_bit);
84 gpio_free(pdata->gpio_bit); 89 gpio_free(pdata->gpio_bit);
85out: 90out:
86 return result; 91 return ret;
87} 92}
88 93
89static void vlynq_off(struct vlynq_device *dev) 94static void vlynq_off(struct vlynq_device *dev)
90{ 95{
91 struct plat_vlynq_data *pdata = dev->dev.platform_data; 96 struct plat_vlynq_data *pdata = dev->dev.platform_data;
97
92 ar7_gpio_disable(pdata->gpio_bit); 98 ar7_gpio_disable(pdata->gpio_bit);
93 gpio_free(pdata->gpio_bit); 99 gpio_free(pdata->gpio_bit);
94 ar7_device_disable(pdata->reset_bit); 100 ar7_device_disable(pdata->reset_bit);
95} 101}
96 102
97static struct resource physmap_flash_resource = { 103static struct resource vlynq_low_res[] = {
98 .name = "mem",
99 .flags = IORESOURCE_MEM,
100 .start = 0x10000000,
101 .end = 0x107fffff,
102};
103
104static struct resource cpmac_low_res[] = {
105 { 104 {
106 .name = "regs", 105 .name = "regs",
107 .flags = IORESOURCE_MEM, 106 .flags = IORESOURCE_MEM,
108 .start = AR7_REGS_MAC0, 107 .start = AR7_REGS_VLYNQ0,
109 .end = AR7_REGS_MAC0 + 0x7ff, 108 .end = AR7_REGS_VLYNQ0 + 0xff,
110 }, 109 },
111 { 110 {
112 .name = "irq", 111 .name = "irq",
113 .flags = IORESOURCE_IRQ, 112 .flags = IORESOURCE_IRQ,
114 .start = 27, 113 .start = 29,
115 .end = 27, 114 .end = 29,
116 }, 115 },
117};
118
119static struct resource cpmac_high_res[] = {
120 { 116 {
121 .name = "regs", 117 .name = "mem",
122 .flags = IORESOURCE_MEM, 118 .flags = IORESOURCE_MEM,
123 .start = AR7_REGS_MAC1, 119 .start = 0x04000000,
124 .end = AR7_REGS_MAC1 + 0x7ff, 120 .end = 0x04ffffff,
125 }, 121 },
126 { 122 {
127 .name = "irq", 123 .name = "devirq",
128 .flags = IORESOURCE_IRQ, 124 .flags = IORESOURCE_IRQ,
129 .start = 41, 125 .start = 80,
130 .end = 41, 126 .end = 111,
131 }, 127 },
132}; 128};
133 129
134static struct resource vlynq_low_res[] = { 130static struct resource vlynq_high_res[] = {
135 { 131 {
136 .name = "regs", 132 .name = "regs",
137 .flags = IORESOURCE_MEM, 133 .flags = IORESOURCE_MEM,
138 .start = AR7_REGS_VLYNQ0, 134 .start = AR7_REGS_VLYNQ1,
139 .end = AR7_REGS_VLYNQ0 + 0xff, 135 .end = AR7_REGS_VLYNQ1 + 0xff,
140 }, 136 },
141 { 137 {
142 .name = "irq", 138 .name = "irq",
143 .flags = IORESOURCE_IRQ, 139 .flags = IORESOURCE_IRQ,
144 .start = 29, 140 .start = 33,
145 .end = 29, 141 .end = 33,
146 }, 142 },
147 { 143 {
148 .name = "mem", 144 .name = "mem",
149 .flags = IORESOURCE_MEM, 145 .flags = IORESOURCE_MEM,
150 .start = 0x04000000, 146 .start = 0x0c000000,
151 .end = 0x04ffffff, 147 .end = 0x0cffffff,
152 }, 148 },
153 { 149 {
154 .name = "devirq", 150 .name = "devirq",
155 .flags = IORESOURCE_IRQ, 151 .flags = IORESOURCE_IRQ,
156 .start = 80, 152 .start = 112,
157 .end = 111, 153 .end = 143,
158 }, 154 },
159}; 155};
160 156
161static struct resource vlynq_high_res[] = { 157static struct plat_vlynq_data vlynq_low_data = {
162 { 158 .ops = {
163 .name = "regs", 159 .on = vlynq_on,
164 .flags = IORESOURCE_MEM, 160 .off = vlynq_off,
165 .start = AR7_REGS_VLYNQ1,
166 .end = AR7_REGS_VLYNQ1 + 0xff,
167 }, 161 },
168 { 162 .reset_bit = 20,
169 .name = "irq", 163 .gpio_bit = 18,
170 .flags = IORESOURCE_IRQ, 164};
171 .start = 33, 165
172 .end = 33, 166static struct plat_vlynq_data vlynq_high_data = {
167 .ops = {
168 .on = vlynq_on,
169 .off = vlynq_off,
173 }, 170 },
174 { 171 .reset_bit = 26,
175 .name = "mem", 172 .gpio_bit = 19,
176 .flags = IORESOURCE_MEM, 173};
177 .start = 0x0c000000, 174
178 .end = 0x0cffffff, 175static struct platform_device vlynq_low = {
176 .id = 0,
177 .name = "vlynq",
178 .dev = {
179 .platform_data = &vlynq_low_data,
179 }, 180 },
180 { 181 .resource = vlynq_low_res,
181 .name = "devirq", 182 .num_resources = ARRAY_SIZE(vlynq_low_res),
182 .flags = IORESOURCE_IRQ, 183};
183 .start = 112, 184
184 .end = 143, 185static struct platform_device vlynq_high = {
186 .id = 1,
187 .name = "vlynq",
188 .dev = {
189 .platform_data = &vlynq_high_data,
185 }, 190 },
191 .resource = vlynq_high_res,
192 .num_resources = ARRAY_SIZE(vlynq_high_res),
186}; 193};
187 194
188static struct resource usb_res[] = { 195/*****************************************************************************
189 { 196 * Flash
190 .name = "regs", 197 ****************************************************************************/
191 .flags = IORESOURCE_MEM, 198static struct resource physmap_flash_resource = {
192 .start = AR7_REGS_USB, 199 .name = "mem",
193 .end = AR7_REGS_USB + 0xff, 200 .flags = IORESOURCE_MEM,
201 .start = 0x10000000,
202 .end = 0x107fffff,
203};
204
205static struct physmap_flash_data physmap_flash_data = {
206 .width = 2,
207};
208
209static struct platform_device physmap_flash = {
210 .name = "physmap-flash",
211 .dev = {
212 .platform_data = &physmap_flash_data,
194 }, 213 },
214 .resource = &physmap_flash_resource,
215 .num_resources = 1,
216};
217
218/*****************************************************************************
219 * Ethernet
220 ****************************************************************************/
221static struct resource cpmac_low_res[] = {
195 { 222 {
196 .name = "irq", 223 .name = "regs",
197 .flags = IORESOURCE_IRQ, 224 .flags = IORESOURCE_MEM,
198 .start = 32, 225 .start = AR7_REGS_MAC0,
199 .end = 32, 226 .end = AR7_REGS_MAC0 + 0x7ff,
200 }, 227 },
201 { 228 {
202 .name = "mem", 229 .name = "irq",
203 .flags = IORESOURCE_MEM, 230 .flags = IORESOURCE_IRQ,
204 .start = 0x03400000, 231 .start = 27,
205 .end = 0x03401fff, 232 .end = 27,
206 }, 233 },
207}; 234};
208 235
209static struct physmap_flash_data physmap_flash_data = { 236static struct resource cpmac_high_res[] = {
210 .width = 2, 237 {
238 .name = "regs",
239 .flags = IORESOURCE_MEM,
240 .start = AR7_REGS_MAC1,
241 .end = AR7_REGS_MAC1 + 0x7ff,
242 },
243 {
244 .name = "irq",
245 .flags = IORESOURCE_IRQ,
246 .start = 41,
247 .end = 41,
248 },
211}; 249};
212 250
213static struct fixed_phy_status fixed_phy_status __initdata = { 251static struct fixed_phy_status fixed_phy_status __initdata = {
214 .link = 1, 252 .link = 1,
215 .speed = 100, 253 .speed = 100,
216 .duplex = 1, 254 .duplex = 1,
217}; 255};
218 256
219static struct plat_cpmac_data cpmac_low_data = { 257static struct plat_cpmac_data cpmac_low_data = {
220 .reset_bit = 17, 258 .reset_bit = 17,
221 .power_bit = 20, 259 .power_bit = 20,
222 .phy_mask = 0x80000000, 260 .phy_mask = 0x80000000,
223}; 261};
224 262
225static struct plat_cpmac_data cpmac_high_data = { 263static struct plat_cpmac_data cpmac_high_data = {
226 .reset_bit = 21, 264 .reset_bit = 21,
227 .power_bit = 22, 265 .power_bit = 22,
228 .phy_mask = 0x7fffffff, 266 .phy_mask = 0x7fffffff,
229};
230
231static struct plat_vlynq_data vlynq_low_data = {
232 .ops.on = vlynq_on,
233 .ops.off = vlynq_off,
234 .reset_bit = 20,
235 .gpio_bit = 18,
236};
237
238static struct plat_vlynq_data vlynq_high_data = {
239 .ops.on = vlynq_on,
240 .ops.off = vlynq_off,
241 .reset_bit = 16,
242 .gpio_bit = 19,
243};
244
245static struct platform_device physmap_flash = {
246 .id = 0,
247 .name = "physmap-flash",
248 .dev.platform_data = &physmap_flash_data,
249 .resource = &physmap_flash_resource,
250 .num_resources = 1,
251}; 267};
252 268
253static u64 cpmac_dma_mask = DMA_BIT_MASK(32); 269static u64 cpmac_dma_mask = DMA_BIT_MASK(32);
270
254static struct platform_device cpmac_low = { 271static struct platform_device cpmac_low = {
255 .id = 0, 272 .id = 0,
256 .name = "cpmac", 273 .name = "cpmac",
257 .dev = { 274 .dev = {
258 .dma_mask = &cpmac_dma_mask, 275 .dma_mask = &cpmac_dma_mask,
259 .coherent_dma_mask = DMA_BIT_MASK(32), 276 .coherent_dma_mask = DMA_BIT_MASK(32),
260 .platform_data = &cpmac_low_data, 277 .platform_data = &cpmac_low_data,
261 }, 278 },
262 .resource = cpmac_low_res, 279 .resource = cpmac_low_res,
263 .num_resources = ARRAY_SIZE(cpmac_low_res), 280 .num_resources = ARRAY_SIZE(cpmac_low_res),
264}; 281};
265 282
266static struct platform_device cpmac_high = { 283static struct platform_device cpmac_high = {
267 .id = 1, 284 .id = 1,
268 .name = "cpmac", 285 .name = "cpmac",
269 .dev = { 286 .dev = {
270 .dma_mask = &cpmac_dma_mask, 287 .dma_mask = &cpmac_dma_mask,
271 .coherent_dma_mask = DMA_BIT_MASK(32), 288 .coherent_dma_mask = DMA_BIT_MASK(32),
272 .platform_data = &cpmac_high_data, 289 .platform_data = &cpmac_high_data,
273 }, 290 },
274 .resource = cpmac_high_res, 291 .resource = cpmac_high_res,
275 .num_resources = ARRAY_SIZE(cpmac_high_res), 292 .num_resources = ARRAY_SIZE(cpmac_high_res),
276}; 293};
277 294
278static struct platform_device vlynq_low = { 295static inline unsigned char char2hex(char h)
279 .id = 0, 296{
280 .name = "vlynq", 297 switch (h) {
281 .dev.platform_data = &vlynq_low_data, 298 case '0': case '1': case '2': case '3': case '4':
282 .resource = vlynq_low_res, 299 case '5': case '6': case '7': case '8': case '9':
283 .num_resources = ARRAY_SIZE(vlynq_low_res), 300 return h - '0';
284}; 301 case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
302 return h - 'A' + 10;
303 case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
304 return h - 'a' + 10;
305 default:
306 return 0;
307 }
308}
285 309
286static struct platform_device vlynq_high = { 310static void cpmac_get_mac(int instance, unsigned char *dev_addr)
287 .id = 1, 311{
288 .name = "vlynq", 312 int i;
289 .dev.platform_data = &vlynq_high_data, 313 char name[5], default_mac[ETH_ALEN], *mac;
290 .resource = vlynq_high_res, 314
291 .num_resources = ARRAY_SIZE(vlynq_high_res), 315 mac = NULL;
316 sprintf(name, "mac%c", 'a' + instance);
317 mac = prom_getenv(name);
318 if (!mac) {
319 sprintf(name, "mac%c", 'a');
320 mac = prom_getenv(name);
321 }
322 if (!mac) {
323 random_ether_addr(default_mac);
324 mac = default_mac;
325 }
326 for (i = 0; i < 6; i++)
327 dev_addr[i] = (char2hex(mac[i * 3]) << 4) +
328 char2hex(mac[i * 3 + 1]);
329}
330
331/*****************************************************************************
332 * USB
333 ****************************************************************************/
334static struct resource usb_res[] = {
335 {
336 .name = "regs",
337 .flags = IORESOURCE_MEM,
338 .start = AR7_REGS_USB,
339 .end = AR7_REGS_USB + 0xff,
340 },
341 {
342 .name = "irq",
343 .flags = IORESOURCE_IRQ,
344 .start = 32,
345 .end = 32,
346 },
347 {
348 .name = "mem",
349 .flags = IORESOURCE_MEM,
350 .start = 0x03400000,
351 .end = 0x03401fff,
352 },
292}; 353};
293 354
355static struct platform_device ar7_udc = {
356 .name = "ar7_udc",
357 .resource = usb_res,
358 .num_resources = ARRAY_SIZE(usb_res),
359};
294 360
361/*****************************************************************************
362 * LEDs
363 ****************************************************************************/
295static struct gpio_led default_leds[] = { 364static struct gpio_led default_leds[] = {
296 { 365 {
297 .name = "status", 366 .name = "status",
298 .gpio = 8, 367 .gpio = 8,
299 .active_low = 1, 368 .active_low = 1,
300 }, 369 },
301}; 370};
302 371
303static struct gpio_led dsl502t_leds[] = { 372static struct gpio_led dsl502t_leds[] = {
304 { 373 {
305 .name = "status", 374 .name = "status",
306 .gpio = 9, 375 .gpio = 9,
307 .active_low = 1, 376 .active_low = 1,
308 }, 377 },
309 { 378 {
310 .name = "ethernet", 379 .name = "ethernet",
311 .gpio = 7, 380 .gpio = 7,
312 .active_low = 1, 381 .active_low = 1,
313 }, 382 },
314 { 383 {
315 .name = "usb", 384 .name = "usb",
316 .gpio = 12, 385 .gpio = 12,
317 .active_low = 1, 386 .active_low = 1,
318 }, 387 },
319}; 388};
320 389
321static struct gpio_led dg834g_leds[] = { 390static struct gpio_led dg834g_leds[] = {
322 { 391 {
323 .name = "ppp", 392 .name = "ppp",
324 .gpio = 6, 393 .gpio = 6,
325 .active_low = 1, 394 .active_low = 1,
326 }, 395 },
327 { 396 {
328 .name = "status", 397 .name = "status",
329 .gpio = 7, 398 .gpio = 7,
330 .active_low = 1, 399 .active_low = 1,
331 }, 400 },
332 { 401 {
333 .name = "adsl", 402 .name = "adsl",
334 .gpio = 8, 403 .gpio = 8,
335 .active_low = 1, 404 .active_low = 1,
336 }, 405 },
337 { 406 {
338 .name = "wifi", 407 .name = "wifi",
339 .gpio = 12, 408 .gpio = 12,
340 .active_low = 1, 409 .active_low = 1,
341 }, 410 },
342 { 411 {
343 .name = "power", 412 .name = "power",
344 .gpio = 14, 413 .gpio = 14,
345 .active_low = 1, 414 .active_low = 1,
346 .default_trigger = "default-on", 415 .default_trigger = "default-on",
347 }, 416 },
348}; 417};
349 418
350static struct gpio_led fb_sl_leds[] = { 419static struct gpio_led fb_sl_leds[] = {
351 { 420 {
352 .name = "1", 421 .name = "1",
353 .gpio = 7, 422 .gpio = 7,
354 }, 423 },
355 { 424 {
356 .name = "2", 425 .name = "2",
357 .gpio = 13, 426 .gpio = 13,
358 .active_low = 1, 427 .active_low = 1,
359 }, 428 },
360 { 429 {
361 .name = "3", 430 .name = "3",
362 .gpio = 10, 431 .gpio = 10,
363 .active_low = 1, 432 .active_low = 1,
364 }, 433 },
365 { 434 {
366 .name = "4", 435 .name = "4",
367 .gpio = 12, 436 .gpio = 12,
368 .active_low = 1, 437 .active_low = 1,
369 }, 438 },
370 { 439 {
371 .name = "5", 440 .name = "5",
372 .gpio = 9, 441 .gpio = 9,
373 .active_low = 1, 442 .active_low = 1,
374 }, 443 },
375}; 444};
376 445
377static struct gpio_led fb_fon_leds[] = { 446static struct gpio_led fb_fon_leds[] = {
378 { 447 {
379 .name = "1", 448 .name = "1",
380 .gpio = 8, 449 .gpio = 8,
381 }, 450 },
382 { 451 {
383 .name = "2", 452 .name = "2",
384 .gpio = 3, 453 .gpio = 3,
385 .active_low = 1, 454 .active_low = 1,
386 }, 455 },
387 { 456 {
388 .name = "3", 457 .name = "3",
389 .gpio = 5, 458 .gpio = 5,
390 }, 459 },
391 { 460 {
392 .name = "4", 461 .name = "4",
393 .gpio = 4, 462 .gpio = 4,
394 .active_low = 1, 463 .active_low = 1,
395 }, 464 },
396 { 465 {
397 .name = "5", 466 .name = "5",
398 .gpio = 11, 467 .gpio = 11,
399 .active_low = 1, 468 .active_low = 1,
400 }, 469 },
401}; 470};
402 471
@@ -404,69 +473,11 @@ static struct gpio_led_platform_data ar7_led_data;
404 473
405static struct platform_device ar7_gpio_leds = { 474static struct platform_device ar7_gpio_leds = {
406 .name = "leds-gpio", 475 .name = "leds-gpio",
407 .id = -1,
408 .dev = { 476 .dev = {
409 .platform_data = &ar7_led_data, 477 .platform_data = &ar7_led_data,
410 } 478 }
411}; 479};
412 480
413static struct platform_device ar7_udc = {
414 .id = -1,
415 .name = "ar7_udc",
416 .resource = usb_res,
417 .num_resources = ARRAY_SIZE(usb_res),
418};
419
420static struct resource ar7_wdt_res = {
421 .name = "regs",
422 .start = -1, /* Filled at runtime */
423 .end = -1, /* Filled at runtime */
424 .flags = IORESOURCE_MEM,
425};
426
427static struct platform_device ar7_wdt = {
428 .id = -1,
429 .name = "ar7_wdt",
430 .resource = &ar7_wdt_res,
431 .num_resources = 1,
432};
433
434static inline unsigned char char2hex(char h)
435{
436 switch (h) {
437 case '0': case '1': case '2': case '3': case '4':
438 case '5': case '6': case '7': case '8': case '9':
439 return h - '0';
440 case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
441 return h - 'A' + 10;
442 case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
443 return h - 'a' + 10;
444 default:
445 return 0;
446 }
447}
448
449static void cpmac_get_mac(int instance, unsigned char *dev_addr)
450{
451 int i;
452 char name[5], default_mac[ETH_ALEN], *mac;
453
454 mac = NULL;
455 sprintf(name, "mac%c", 'a' + instance);
456 mac = prom_getenv(name);
457 if (!mac) {
458 sprintf(name, "mac%c", 'a');
459 mac = prom_getenv(name);
460 }
461 if (!mac) {
462 random_ether_addr(default_mac);
463 mac = default_mac;
464 }
465 for (i = 0; i < 6; i++)
466 dev_addr[i] = (char2hex(mac[i * 3]) << 4) +
467 char2hex(mac[i * 3 + 1]);
468}
469
470static void __init detect_leds(void) 481static void __init detect_leds(void)
471{ 482{
472 char *prid, *usb_prod; 483 char *prid, *usb_prod;
@@ -499,111 +510,149 @@ static void __init detect_leds(void)
499 } 510 }
500} 511}
501 512
502static int __init ar7_register_devices(void) 513/*****************************************************************************
514 * Watchdog
515 ****************************************************************************/
516static struct resource ar7_wdt_res = {
517 .name = "regs",
518 .flags = IORESOURCE_MEM,
519 .start = -1, /* Filled at runtime */
520 .end = -1, /* Filled at runtime */
521};
522
523static struct platform_device ar7_wdt = {
524 .name = "ar7_wdt",
525 .resource = &ar7_wdt_res,
526 .num_resources = 1,
527};
528
529/*****************************************************************************
530 * Init
531 ****************************************************************************/
532static int __init ar7_register_uarts(void)
503{ 533{
504 u16 chip_id;
505 int res;
506 u32 *bootcr, val;
507#ifdef CONFIG_SERIAL_8250 534#ifdef CONFIG_SERIAL_8250
508 static struct uart_port uart_port[2] __initdata; 535 static struct uart_port uart_port __initdata;
509 536 struct clk *bus_clk;
510 memset(uart_port, 0, sizeof(struct uart_port) * 2); 537 int res;
511 538
512 uart_port[0].type = PORT_16550A; 539 memset(&uart_port, 0, sizeof(struct uart_port));
513 uart_port[0].line = 0; 540
514 uart_port[0].irq = AR7_IRQ_UART0; 541 bus_clk = clk_get(NULL, "bus");
515 uart_port[0].uartclk = ar7_bus_freq() / 2; 542 if (IS_ERR(bus_clk))
516 uart_port[0].iotype = UPIO_MEM32; 543 panic("unable to get bus clk\n");
517 uart_port[0].mapbase = AR7_REGS_UART0; 544
518 uart_port[0].membase = ioremap(uart_port[0].mapbase, 256); 545 uart_port.type = PORT_16550A;
519 uart_port[0].regshift = 2; 546 uart_port.uartclk = clk_get_rate(bus_clk) / 2;
520 res = early_serial_setup(&uart_port[0]); 547 uart_port.iotype = UPIO_MEM32;
548 uart_port.regshift = 2;
549
550 uart_port.line = 0;
551 uart_port.irq = AR7_IRQ_UART0;
552 uart_port.mapbase = AR7_REGS_UART0;
553 uart_port.membase = ioremap(uart_port.mapbase, 256);
554
555 res = early_serial_setup(&uart_port);
521 if (res) 556 if (res)
522 return res; 557 return res;
523 558
524
525 /* Only TNETD73xx have a second serial port */ 559 /* Only TNETD73xx have a second serial port */
526 if (ar7_has_second_uart()) { 560 if (ar7_has_second_uart()) {
527 uart_port[1].type = PORT_16550A; 561 uart_port.line = 1;
528 uart_port[1].line = 1; 562 uart_port.irq = AR7_IRQ_UART1;
529 uart_port[1].irq = AR7_IRQ_UART1; 563 uart_port.mapbase = UR8_REGS_UART1;
530 uart_port[1].uartclk = ar7_bus_freq() / 2; 564 uart_port.membase = ioremap(uart_port.mapbase, 256);
531 uart_port[1].iotype = UPIO_MEM32; 565
532 uart_port[1].mapbase = UR8_REGS_UART1; 566 res = early_serial_setup(&uart_port);
533 uart_port[1].membase = ioremap(uart_port[1].mapbase, 256);
534 uart_port[1].regshift = 2;
535 res = early_serial_setup(&uart_port[1]);
536 if (res) 567 if (res)
537 return res; 568 return res;
538 } 569 }
539#endif /* CONFIG_SERIAL_8250 */ 570#endif
571
572 return 0;
573}
574
575static int __init ar7_register_devices(void)
576{
577 void __iomem *bootcr;
578 u32 val;
579 u16 chip_id;
580 int res;
581
582 res = ar7_register_uarts();
583 if (res)
584 pr_err("unable to setup uart(s): %d\n", res);
585
540 res = platform_device_register(&physmap_flash); 586 res = platform_device_register(&physmap_flash);
541 if (res) 587 if (res)
542 return res; 588 pr_warning("unable to register physmap-flash: %d\n", res);
543 589
544 ar7_device_disable(vlynq_low_data.reset_bit); 590 ar7_device_disable(vlynq_low_data.reset_bit);
545 res = platform_device_register(&vlynq_low); 591 res = platform_device_register(&vlynq_low);
546 if (res) 592 if (res)
547 return res; 593 pr_warning("unable to register vlynq-low: %d\n", res);
548 594
549 if (ar7_has_high_vlynq()) { 595 if (ar7_has_high_vlynq()) {
550 ar7_device_disable(vlynq_high_data.reset_bit); 596 ar7_device_disable(vlynq_high_data.reset_bit);
551 res = platform_device_register(&vlynq_high); 597 res = platform_device_register(&vlynq_high);
552 if (res) 598 if (res)
553 return res; 599 pr_warning("unable to register vlynq-high: %d\n", res);
554 } 600 }
555 601
556 if (ar7_has_high_cpmac()) { 602 if (ar7_has_high_cpmac()) {
557 res = fixed_phy_add(PHY_POLL, cpmac_high.id, &fixed_phy_status); 603 if (!res) {
558 if (res && res != -ENODEV) 604 cpmac_get_mac(1, cpmac_high_data.dev_addr);
559 return res; 605
560 cpmac_get_mac(1, cpmac_high_data.dev_addr); 606 res = platform_device_register(&cpmac_high);
561 res = platform_device_register(&cpmac_high); 607 if (res)
562 if (res) 608 pr_warning("unable to register cpmac-high: %d\n", res);
563 return res; 609 } else
564 } else { 610 pr_warning("unable to add cpmac-high phy: %d\n", res);
611 } else
565 cpmac_low_data.phy_mask = 0xffffffff; 612 cpmac_low_data.phy_mask = 0xffffffff;
566 }
567 613
568 res = fixed_phy_add(PHY_POLL, cpmac_low.id, &fixed_phy_status); 614 res = fixed_phy_add(PHY_POLL, cpmac_low.id, &fixed_phy_status);
569 if (res && res != -ENODEV) 615 if (!res) {
570 return res; 616 cpmac_get_mac(0, cpmac_low_data.dev_addr);
571 617 res = platform_device_register(&cpmac_low);
572 cpmac_get_mac(0, cpmac_low_data.dev_addr); 618 if (res)
573 res = platform_device_register(&cpmac_low); 619 pr_warning("unable to register cpmac-low: %d\n", res);
574 if (res) 620 } else
575 return res; 621 pr_warning("unable to add cpmac-low phy: %d\n", res);
576 622
577 detect_leds(); 623 detect_leds();
578 res = platform_device_register(&ar7_gpio_leds); 624 res = platform_device_register(&ar7_gpio_leds);
579 if (res) 625 if (res)
580 return res; 626 pr_warning("unable to register leds: %d\n", res);
581 627
582 res = platform_device_register(&ar7_udc); 628 res = platform_device_register(&ar7_udc);
583 629 if (res)
584 chip_id = ar7_chip_id(); 630 pr_warning("unable to register usb slave: %d\n", res);
585 switch (chip_id) {
586 case AR7_CHIP_7100:
587 case AR7_CHIP_7200:
588 ar7_wdt_res.start = AR7_REGS_WDT;
589 break;
590 case AR7_CHIP_7300:
591 ar7_wdt_res.start = UR8_REGS_WDT;
592 break;
593 default:
594 break;
595 }
596
597 ar7_wdt_res.end = ar7_wdt_res.start + 0x20;
598
599 bootcr = (u32 *)ioremap_nocache(AR7_REGS_DCL, 4);
600 val = *bootcr;
601 iounmap(bootcr);
602 631
603 /* Register watchdog only if enabled in hardware */ 632 /* Register watchdog only if enabled in hardware */
604 if (val & AR7_WDT_HW_ENA) 633 bootcr = ioremap_nocache(AR7_REGS_DCL, 4);
634 val = readl(bootcr);
635 iounmap(bootcr);
636 if (val & AR7_WDT_HW_ENA) {
637 chip_id = ar7_chip_id();
638 switch (chip_id) {
639 case AR7_CHIP_7100:
640 case AR7_CHIP_7200:
641 ar7_wdt_res.start = AR7_REGS_WDT;
642 break;
643 case AR7_CHIP_7300:
644 ar7_wdt_res.start = UR8_REGS_WDT;
645 break;
646 default:
647 break;
648 }
649
650 ar7_wdt_res.end = ar7_wdt_res.start + 0x20;
605 res = platform_device_register(&ar7_wdt); 651 res = platform_device_register(&ar7_wdt);
652 if (res)
653 pr_warning("unable to register watchdog: %d\n", res);
654 }
606 655
607 return res; 656 return 0;
608} 657}
609arch_initcall(ar7_register_devices); 658arch_initcall(ar7_register_devices);
diff --git a/arch/mips/ar7/prom.c b/arch/mips/ar7/prom.c
index c1fdd3682812..52385790e5c1 100644
--- a/arch/mips/ar7/prom.c
+++ b/arch/mips/ar7/prom.c
@@ -32,8 +32,8 @@
32#define MAX_ENTRY 80 32#define MAX_ENTRY 80
33 33
34struct env_var { 34struct env_var {
35 char *name; 35 char *name;
36 char *value; 36 char *value;
37}; 37};
38 38
39static struct env_var adam2_env[MAX_ENTRY]; 39static struct env_var adam2_env[MAX_ENTRY];
@@ -41,6 +41,7 @@ static struct env_var adam2_env[MAX_ENTRY];
41char *prom_getenv(const char *name) 41char *prom_getenv(const char *name)
42{ 42{
43 int i; 43 int i;
44
44 for (i = 0; (i < MAX_ENTRY) && adam2_env[i].name; i++) 45 for (i = 0; (i < MAX_ENTRY) && adam2_env[i].name; i++)
45 if (!strcmp(name, adam2_env[i].name)) 46 if (!strcmp(name, adam2_env[i].name))
46 return adam2_env[i].value; 47 return adam2_env[i].value;
@@ -49,65 +50,50 @@ char *prom_getenv(const char *name)
49} 50}
50EXPORT_SYMBOL(prom_getenv); 51EXPORT_SYMBOL(prom_getenv);
51 52
52char * __init prom_getcmdline(void)
53{
54 return &(arcs_cmdline[0]);
55}
56
57static void __init ar7_init_cmdline(int argc, char *argv[]) 53static void __init ar7_init_cmdline(int argc, char *argv[])
58{ 54{
59 char *cp; 55 int i;
60 int actr;
61
62 actr = 1; /* Always ignore argv[0] */
63 56
64 cp = &(arcs_cmdline[0]); 57 for (i = 1; i < argc; i++) {
65 while (actr < argc) { 58 strlcat(arcs_cmdline, argv[i], COMMAND_LINE_SIZE);
66 strcpy(cp, argv[actr]); 59 if (i < (argc - 1))
67 cp += strlen(argv[actr]); 60 strlcat(arcs_cmdline, " ", COMMAND_LINE_SIZE);
68 *cp++ = ' ';
69 actr++;
70 }
71 if (cp != &(arcs_cmdline[0])) {
72 /* get rid of trailing space */
73 --cp;
74 *cp = '\0';
75 } 61 }
76} 62}
77 63
78struct psbl_rec { 64struct psbl_rec {
79 u32 psbl_size; 65 u32 psbl_size;
80 u32 env_base; 66 u32 env_base;
81 u32 env_size; 67 u32 env_size;
82 u32 ffs_base; 68 u32 ffs_base;
83 u32 ffs_size; 69 u32 ffs_size;
84}; 70};
85 71
86static __initdata char psp_env_version[] = "TIENV0.8"; 72static __initdata char psp_env_version[] = "TIENV0.8";
87 73
88struct psp_env_chunk { 74struct psp_env_chunk {
89 u8 num; 75 u8 num;
90 u8 ctrl; 76 u8 ctrl;
91 u16 csum; 77 u16 csum;
92 u8 len; 78 u8 len;
93 char data[11]; 79 char data[11];
94} __attribute__ ((packed)); 80} __attribute__ ((packed));
95 81
96struct psp_var_map_entry { 82struct psp_var_map_entry {
97 u8 num; 83 u8 num;
98 char *value; 84 char *value;
99}; 85};
100 86
101static struct psp_var_map_entry psp_var_map[] = { 87static struct psp_var_map_entry psp_var_map[] = {
102 { 1, "cpufrequency" }, 88 { 1, "cpufrequency" },
103 { 2, "memsize" }, 89 { 2, "memsize" },
104 { 3, "flashsize" }, 90 { 3, "flashsize" },
105 { 4, "modetty0" }, 91 { 4, "modetty0" },
106 { 5, "modetty1" }, 92 { 5, "modetty1" },
107 { 8, "maca" }, 93 { 8, "maca" },
108 { 9, "macb" }, 94 { 9, "macb" },
109 { 28, "sysfrequency" }, 95 { 28, "sysfrequency" },
110 { 38, "mipsfrequency" }, 96 { 38, "mipsfrequency" },
111}; 97};
112 98
113/* 99/*
@@ -154,6 +140,7 @@ static char * __init lookup_psp_var_map(u8 num)
154static void __init add_adam2_var(char *name, char *value) 140static void __init add_adam2_var(char *name, char *value)
155{ 141{
156 int i; 142 int i;
143
157 for (i = 0; i < MAX_ENTRY; i++) { 144 for (i = 0; i < MAX_ENTRY; i++) {
158 if (!adam2_env[i].name) { 145 if (!adam2_env[i].name) {
159 adam2_env[i].name = name; 146 adam2_env[i].name = name;
@@ -216,7 +203,7 @@ static void __init console_config(void)
216 char parity = '\0', bits = '\0', flow = '\0'; 203 char parity = '\0', bits = '\0', flow = '\0';
217 char *s, *p; 204 char *s, *p;
218 205
219 if (strstr(prom_getcmdline(), "console=")) 206 if (strstr(arcs_cmdline, "console="))
220 return; 207 return;
221 208
222 s = prom_getenv("modetty0"); 209 s = prom_getenv("modetty0");
@@ -250,7 +237,7 @@ static void __init console_config(void)
250 else 237 else
251 sprintf(console_string, " console=ttyS0,%d%c%c", baud, parity, 238 sprintf(console_string, " console=ttyS0,%d%c%c", baud, parity,
252 bits); 239 bits);
253 strcat(prom_getcmdline(), console_string); 240 strlcat(arcs_cmdline, console_string, COMMAND_LINE_SIZE);
254#endif 241#endif
255} 242}
256 243
@@ -279,4 +266,3 @@ int prom_putchar(char c)
279 serial_out(UART_TX, c); 266 serial_out(UART_TX, c);
280 return 1; 267 return 1;
281} 268}
282
diff --git a/arch/mips/ar7/setup.c b/arch/mips/ar7/setup.c
index 39f6b5b96463..3a801d2cb6e5 100644
--- a/arch/mips/ar7/setup.c
+++ b/arch/mips/ar7/setup.c
@@ -26,8 +26,8 @@
26 26
27static void ar7_machine_restart(char *command) 27static void ar7_machine_restart(char *command)
28{ 28{
29 u32 *softres_reg = ioremap(AR7_REGS_RESET + 29 u32 *softres_reg = ioremap(AR7_REGS_RESET + AR7_RESET_SOFTWARE, 1);
30 AR7_RESET_SOFTWARE, 1); 30
31 writel(1, softres_reg); 31 writel(1, softres_reg);
32} 32}
33 33
@@ -41,6 +41,7 @@ static void ar7_machine_power_off(void)
41{ 41{
42 u32 *power_reg = (u32 *)ioremap(AR7_REGS_POWER, 1); 42 u32 *power_reg = (u32 *)ioremap(AR7_REGS_POWER, 1);
43 u32 power_state = readl(power_reg) | (3 << 30); 43 u32 power_state = readl(power_reg) | (3 << 30);
44
44 writel(power_state, power_reg); 45 writel(power_state, power_reg);
45 ar7_machine_halt(); 46 ar7_machine_halt();
46} 47}
@@ -49,14 +50,14 @@ const char *get_system_type(void)
49{ 50{
50 u16 chip_id = ar7_chip_id(); 51 u16 chip_id = ar7_chip_id();
51 switch (chip_id) { 52 switch (chip_id) {
52 case AR7_CHIP_7300:
53 return "TI AR7 (TNETD7300)";
54 case AR7_CHIP_7100: 53 case AR7_CHIP_7100:
55 return "TI AR7 (TNETD7100)"; 54 return "TI AR7 (TNETD7100)";
56 case AR7_CHIP_7200: 55 case AR7_CHIP_7200:
57 return "TI AR7 (TNETD7200)"; 56 return "TI AR7 (TNETD7200)";
57 case AR7_CHIP_7300:
58 return "TI AR7 (TNETD7300)";
58 default: 59 default:
59 return "TI AR7 (Unknown)"; 60 return "TI AR7 (unknown)";
60 } 61 }
61} 62}
62 63
@@ -70,7 +71,6 @@ console_initcall(ar7_init_console);
70 * Initializes basic routines and structures pointers, memory size (as 71 * Initializes basic routines and structures pointers, memory size (as
71 * given by the bios and saves the command line. 72 * given by the bios and saves the command line.
72 */ 73 */
73
74void __init plat_mem_setup(void) 74void __init plat_mem_setup(void)
75{ 75{
76 unsigned long io_base; 76 unsigned long io_base;
@@ -88,6 +88,5 @@ void __init plat_mem_setup(void)
88 prom_meminit(); 88 prom_meminit();
89 89
90 printk(KERN_INFO "%s, ID: 0x%04x, Revision: 0x%02x\n", 90 printk(KERN_INFO "%s, ID: 0x%04x, Revision: 0x%02x\n",
91 get_system_type(), 91 get_system_type(), ar7_chip_id(), ar7_chip_rev());
92 ar7_chip_id(), ar7_chip_rev());
93} 92}
diff --git a/arch/mips/ar7/time.c b/arch/mips/ar7/time.c
index a1fba894daa2..5fb8a0134085 100644
--- a/arch/mips/ar7/time.c
+++ b/arch/mips/ar7/time.c
@@ -20,11 +20,21 @@
20 20
21#include <linux/init.h> 21#include <linux/init.h>
22#include <linux/time.h> 22#include <linux/time.h>
23#include <linux/err.h>
24#include <linux/clk.h>
23 25
24#include <asm/time.h> 26#include <asm/time.h>
25#include <asm/mach-ar7/ar7.h> 27#include <asm/mach-ar7/ar7.h>
26 28
27void __init plat_time_init(void) 29void __init plat_time_init(void)
28{ 30{
29 mips_hpt_frequency = ar7_cpu_freq() / 2; 31 struct clk *cpu_clk;
32
33 cpu_clk = clk_get(NULL, "cpu");
34 if (IS_ERR(cpu_clk)) {
35 printk(KERN_ERR "unable to get cpu clock\n");
36 return;
37 }
38
39 mips_hpt_frequency = clk_get_rate(cpu_clk) / 2;
30} 40}
diff --git a/arch/mips/bcm47xx/gpio.c b/arch/mips/bcm47xx/gpio.c
index 9b798800258c..e4a5ee9c9721 100644
--- a/arch/mips/bcm47xx/gpio.c
+++ b/arch/mips/bcm47xx/gpio.c
@@ -59,4 +59,3 @@ int gpio_to_irq(unsigned gpio)
59 return -EINVAL; 59 return -EINVAL;
60} 60}
61EXPORT_SYMBOL_GPL(gpio_to_irq); 61EXPORT_SYMBOL_GPL(gpio_to_irq);
62
diff --git a/arch/mips/bcm47xx/prom.c b/arch/mips/bcm47xx/prom.c
index 29d3cbf9555f..0fa646c5a844 100644
--- a/arch/mips/bcm47xx/prom.c
+++ b/arch/mips/bcm47xx/prom.c
@@ -163,4 +163,3 @@ void __init prom_init(void)
163void __init prom_free_prom_memory(void) 163void __init prom_free_prom_memory(void)
164{ 164{
165} 165}
166
diff --git a/arch/mips/bcm47xx/setup.c b/arch/mips/bcm47xx/setup.c
index 2f580fa160c9..d442e11625fa 100644
--- a/arch/mips/bcm47xx/setup.c
+++ b/arch/mips/bcm47xx/setup.c
@@ -121,4 +121,3 @@ void __init plat_mem_setup(void)
121 _machine_halt = bcm47xx_machine_halt; 121 _machine_halt = bcm47xx_machine_halt;
122 pm_power_off = bcm47xx_machine_halt; 122 pm_power_off = bcm47xx_machine_halt;
123} 123}
124
diff --git a/arch/mips/bcm47xx/wgt634u.c b/arch/mips/bcm47xx/wgt634u.c
index ef00e7f58c24..74d06965326f 100644
--- a/arch/mips/bcm47xx/wgt634u.c
+++ b/arch/mips/bcm47xx/wgt634u.c
@@ -164,4 +164,3 @@ static int __init wgt634u_init(void)
164} 164}
165 165
166module_init(wgt634u_init); 166module_init(wgt634u_init);
167
diff --git a/arch/mips/bcm63xx/boards/board_bcm963xx.c b/arch/mips/bcm63xx/boards/board_bcm963xx.c
index 1fe412c43171..ea17941168ca 100644
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -836,4 +836,3 @@ int __init board_register_devices(void)
836 836
837 return 0; 837 return 0;
838} 838}
839
diff --git a/arch/mips/bcm63xx/timer.c b/arch/mips/bcm63xx/timer.c
index ba522bdcde4b..5f1135981568 100644
--- a/arch/mips/bcm63xx/timer.c
+++ b/arch/mips/bcm63xx/timer.c
@@ -17,8 +17,8 @@
17#include <bcm63xx_timer.h> 17#include <bcm63xx_timer.h>
18#include <bcm63xx_regs.h> 18#include <bcm63xx_regs.h>
19 19
20static DEFINE_SPINLOCK(timer_reg_lock); 20static DEFINE_RAW_SPINLOCK(timer_reg_lock);
21static DEFINE_SPINLOCK(timer_data_lock); 21static DEFINE_RAW_SPINLOCK(timer_data_lock);
22static struct clk *periph_clk; 22static struct clk *periph_clk;
23 23
24static struct timer_data { 24static struct timer_data {
@@ -31,23 +31,23 @@ static irqreturn_t timer_interrupt(int irq, void *dev_id)
31 u32 stat; 31 u32 stat;
32 int i; 32 int i;
33 33
34 spin_lock(&timer_reg_lock); 34 raw_spin_lock(&timer_reg_lock);
35 stat = bcm_timer_readl(TIMER_IRQSTAT_REG); 35 stat = bcm_timer_readl(TIMER_IRQSTAT_REG);
36 bcm_timer_writel(stat, TIMER_IRQSTAT_REG); 36 bcm_timer_writel(stat, TIMER_IRQSTAT_REG);
37 spin_unlock(&timer_reg_lock); 37 raw_spin_unlock(&timer_reg_lock);
38 38
39 for (i = 0; i < BCM63XX_TIMER_COUNT; i++) { 39 for (i = 0; i < BCM63XX_TIMER_COUNT; i++) {
40 if (!(stat & TIMER_IRQSTAT_TIMER_CAUSE(i))) 40 if (!(stat & TIMER_IRQSTAT_TIMER_CAUSE(i)))
41 continue; 41 continue;
42 42
43 spin_lock(&timer_data_lock); 43 raw_spin_lock(&timer_data_lock);
44 if (!timer_data[i].cb) { 44 if (!timer_data[i].cb) {
45 spin_unlock(&timer_data_lock); 45 raw_spin_unlock(&timer_data_lock);
46 continue; 46 continue;
47 } 47 }
48 48
49 timer_data[i].cb(timer_data[i].data); 49 timer_data[i].cb(timer_data[i].data);
50 spin_unlock(&timer_data_lock); 50 raw_spin_unlock(&timer_data_lock);
51 } 51 }
52 52
53 return IRQ_HANDLED; 53 return IRQ_HANDLED;
@@ -61,7 +61,7 @@ int bcm63xx_timer_enable(int id)
61 if (id >= BCM63XX_TIMER_COUNT) 61 if (id >= BCM63XX_TIMER_COUNT)
62 return -EINVAL; 62 return -EINVAL;
63 63
64 spin_lock_irqsave(&timer_reg_lock, flags); 64 raw_spin_lock_irqsave(&timer_reg_lock, flags);
65 65
66 reg = bcm_timer_readl(TIMER_CTLx_REG(id)); 66 reg = bcm_timer_readl(TIMER_CTLx_REG(id));
67 reg |= TIMER_CTL_ENABLE_MASK; 67 reg |= TIMER_CTL_ENABLE_MASK;
@@ -71,7 +71,7 @@ int bcm63xx_timer_enable(int id)
71 reg |= TIMER_IRQSTAT_TIMER_IR_EN(id); 71 reg |= TIMER_IRQSTAT_TIMER_IR_EN(id);
72 bcm_timer_writel(reg, TIMER_IRQSTAT_REG); 72 bcm_timer_writel(reg, TIMER_IRQSTAT_REG);
73 73
74 spin_unlock_irqrestore(&timer_reg_lock, flags); 74 raw_spin_unlock_irqrestore(&timer_reg_lock, flags);
75 return 0; 75 return 0;
76} 76}
77 77
@@ -85,7 +85,7 @@ int bcm63xx_timer_disable(int id)
85 if (id >= BCM63XX_TIMER_COUNT) 85 if (id >= BCM63XX_TIMER_COUNT)
86 return -EINVAL; 86 return -EINVAL;
87 87
88 spin_lock_irqsave(&timer_reg_lock, flags); 88 raw_spin_lock_irqsave(&timer_reg_lock, flags);
89 89
90 reg = bcm_timer_readl(TIMER_CTLx_REG(id)); 90 reg = bcm_timer_readl(TIMER_CTLx_REG(id));
91 reg &= ~TIMER_CTL_ENABLE_MASK; 91 reg &= ~TIMER_CTL_ENABLE_MASK;
@@ -95,7 +95,7 @@ int bcm63xx_timer_disable(int id)
95 reg &= ~TIMER_IRQSTAT_TIMER_IR_EN(id); 95 reg &= ~TIMER_IRQSTAT_TIMER_IR_EN(id);
96 bcm_timer_writel(reg, TIMER_IRQSTAT_REG); 96 bcm_timer_writel(reg, TIMER_IRQSTAT_REG);
97 97
98 spin_unlock_irqrestore(&timer_reg_lock, flags); 98 raw_spin_unlock_irqrestore(&timer_reg_lock, flags);
99 return 0; 99 return 0;
100} 100}
101 101
@@ -110,7 +110,7 @@ int bcm63xx_timer_register(int id, void (*callback)(void *data), void *data)
110 return -EINVAL; 110 return -EINVAL;
111 111
112 ret = 0; 112 ret = 0;
113 spin_lock_irqsave(&timer_data_lock, flags); 113 raw_spin_lock_irqsave(&timer_data_lock, flags);
114 if (timer_data[id].cb) { 114 if (timer_data[id].cb) {
115 ret = -EBUSY; 115 ret = -EBUSY;
116 goto out; 116 goto out;
@@ -120,7 +120,7 @@ int bcm63xx_timer_register(int id, void (*callback)(void *data), void *data)
120 timer_data[id].data = data; 120 timer_data[id].data = data;
121 121
122out: 122out:
123 spin_unlock_irqrestore(&timer_data_lock, flags); 123 raw_spin_unlock_irqrestore(&timer_data_lock, flags);
124 return ret; 124 return ret;
125} 125}
126 126
@@ -133,9 +133,9 @@ void bcm63xx_timer_unregister(int id)
133 if (id >= BCM63XX_TIMER_COUNT) 133 if (id >= BCM63XX_TIMER_COUNT)
134 return; 134 return;
135 135
136 spin_lock_irqsave(&timer_data_lock, flags); 136 raw_spin_lock_irqsave(&timer_data_lock, flags);
137 timer_data[id].cb = NULL; 137 timer_data[id].cb = NULL;
138 spin_unlock_irqrestore(&timer_data_lock, flags); 138 raw_spin_unlock_irqrestore(&timer_data_lock, flags);
139} 139}
140 140
141EXPORT_SYMBOL(bcm63xx_timer_unregister); 141EXPORT_SYMBOL(bcm63xx_timer_unregister);
@@ -159,7 +159,7 @@ int bcm63xx_timer_set(int id, int monotonic, unsigned int countdown_us)
159 if (countdown & ~TIMER_CTL_COUNTDOWN_MASK) 159 if (countdown & ~TIMER_CTL_COUNTDOWN_MASK)
160 return -EINVAL; 160 return -EINVAL;
161 161
162 spin_lock_irqsave(&timer_reg_lock, flags); 162 raw_spin_lock_irqsave(&timer_reg_lock, flags);
163 reg = bcm_timer_readl(TIMER_CTLx_REG(id)); 163 reg = bcm_timer_readl(TIMER_CTLx_REG(id));
164 164
165 if (monotonic) 165 if (monotonic)
@@ -171,7 +171,7 @@ int bcm63xx_timer_set(int id, int monotonic, unsigned int countdown_us)
171 reg |= countdown; 171 reg |= countdown;
172 bcm_timer_writel(reg, TIMER_CTLx_REG(id)); 172 bcm_timer_writel(reg, TIMER_CTLx_REG(id));
173 173
174 spin_unlock_irqrestore(&timer_reg_lock, flags); 174 raw_spin_unlock_irqrestore(&timer_reg_lock, flags);
175 return 0; 175 return 0;
176} 176}
177 177
diff --git a/arch/mips/boot/compressed/Makefile b/arch/mips/boot/compressed/Makefile
index 9df903d714d7..790ddd397620 100644
--- a/arch/mips/boot/compressed/Makefile
+++ b/arch/mips/boot/compressed/Makefile
@@ -9,7 +9,7 @@
9# modified by Cort (cort@cs.nmt.edu) 9# modified by Cort (cort@cs.nmt.edu)
10# 10#
11# Copyright (C) 2009 Lemote Inc. & DSLab, Lanzhou University 11# Copyright (C) 2009 Lemote Inc. & DSLab, Lanzhou University
12# Author: Wu Zhangjin <wuzj@lemote.com> 12# Author: Wu Zhangjin <wuzhangjin@gmail.com>
13# 13#
14 14
15# compressed kernel load addr: VMLINUZ_LOAD_ADDRESS > VMLINUX_LOAD_ADDRESS + VMLINUX_SIZE 15# compressed kernel load addr: VMLINUZ_LOAD_ADDRESS > VMLINUX_LOAD_ADDRESS + VMLINUX_SIZE
@@ -27,15 +27,18 @@ BOOT_HEAP_SIZE := 0x400000
27KBUILD_CFLAGS := $(shell echo $(KBUILD_CFLAGS) | sed -e "s/-pg//") 27KBUILD_CFLAGS := $(shell echo $(KBUILD_CFLAGS) | sed -e "s/-pg//")
28 28
29KBUILD_CFLAGS := $(LINUXINCLUDE) $(KBUILD_CFLAGS) -D__KERNEL__ \ 29KBUILD_CFLAGS := $(LINUXINCLUDE) $(KBUILD_CFLAGS) -D__KERNEL__ \
30 -DBOOT_HEAP_SIZE=$(BOOT_HEAP_SIZE) -D"VMLINUX_LOAD_ADDRESS_ULL=$(VMLINUX_LOAD_ADDRESS)ull" \ 30 -DBOOT_HEAP_SIZE=$(BOOT_HEAP_SIZE) -D"VMLINUX_LOAD_ADDRESS_ULL=$(VMLINUX_LOAD_ADDRESS)ull"
31 31
32KBUILD_AFLAGS := $(LINUXINCLUDE) $(KBUILD_AFLAGS) -D__ASSEMBLY__ \ 32KBUILD_AFLAGS := $(LINUXINCLUDE) $(KBUILD_AFLAGS) -D__ASSEMBLY__ \
33 -DKERNEL_ENTRY=0x$(shell $(NM) $(objtree)/$(KBUILD_IMAGE) 2>/dev/null | grep " kernel_entry" | cut -f1 -d \ ) \ 33 -DBOOT_HEAP_SIZE=$(BOOT_HEAP_SIZE) \
34 -DBOOT_HEAP_SIZE=$(BOOT_HEAP_SIZE) 34 -DKERNEL_ENTRY=0x$(shell $(NM) $(objtree)/$(KBUILD_IMAGE) 2>/dev/null | grep " kernel_entry" | cut -f1 -d \ )
35 35
36obj-y := $(obj)/head.o $(obj)/decompress.o $(obj)/dbg.o 36obj-y := $(obj)/head.o $(obj)/decompress.o $(obj)/dbg.o
37 37
38ifdef CONFIG_DEBUG_ZBOOT
38obj-$(CONFIG_SYS_SUPPORTS_ZBOOT_UART16550) += $(obj)/uart-16550.o 39obj-$(CONFIG_SYS_SUPPORTS_ZBOOT_UART16550) += $(obj)/uart-16550.o
40obj-$(CONFIG_MACH_ALCHEMY) += $(obj)/uart-alchemy.o
41endif
39 42
40OBJCOPYFLAGS_vmlinux.bin := $(OBJCOPYFLAGS) -O binary -R .comment -S 43OBJCOPYFLAGS_vmlinux.bin := $(OBJCOPYFLAGS) -O binary -R .comment -S
41$(obj)/vmlinux.bin: $(KBUILD_IMAGE) 44$(obj)/vmlinux.bin: $(KBUILD_IMAGE)
diff --git a/arch/mips/boot/compressed/dbg.c b/arch/mips/boot/compressed/dbg.c
index ff4dc7a33a9f..134a6162e394 100644
--- a/arch/mips/boot/compressed/dbg.c
+++ b/arch/mips/boot/compressed/dbg.c
@@ -5,11 +5,11 @@
5 * please select SYS_SUPPORTS_ZBOOT_UART16550 for your machine. othewise, you 5 * please select SYS_SUPPORTS_ZBOOT_UART16550 for your machine. othewise, you
6 * need to implement your own putc(). 6 * need to implement your own putc().
7 */ 7 */
8 8#include <linux/compiler.h>
9#include <linux/init.h> 9#include <linux/init.h>
10#include <linux/types.h> 10#include <linux/types.h>
11 11
12void __attribute__ ((weak)) putc(char c) 12void __weak putc(char c)
13{ 13{
14} 14}
15 15
diff --git a/arch/mips/boot/compressed/decompress.c b/arch/mips/boot/compressed/decompress.c
index 55d02b3a6712..5db43c58b1bf 100644
--- a/arch/mips/boot/compressed/decompress.c
+++ b/arch/mips/boot/compressed/decompress.c
@@ -5,8 +5,8 @@
5 * Author: Matt Porter <mporter@mvista.com> Derived from 5 * Author: Matt Porter <mporter@mvista.com> Derived from
6 * arch/ppc/boot/prep/misc.c 6 * arch/ppc/boot/prep/misc.c
7 * 7 *
8 * Copyright (C) 2009 Lemote, Inc. & Institute of Computing Technology 8 * Copyright (C) 2009 Lemote, Inc.
9 * Author: Wu Zhangjin <wuzj@lemote.com> 9 * Author: Wu Zhangjin <wuzhangjin@gmail.com>
10 * 10 *
11 * This program is free software; you can redistribute it and/or modify it 11 * This program is free software; you can redistribute it and/or modify it
12 * under the terms of the GNU General Public License as published by the 12 * under the terms of the GNU General Public License as published by the
diff --git a/arch/mips/boot/compressed/uart-alchemy.c b/arch/mips/boot/compressed/uart-alchemy.c
new file mode 100644
index 000000000000..1bff22fa089b
--- /dev/null
+++ b/arch/mips/boot/compressed/uart-alchemy.c
@@ -0,0 +1,7 @@
1#include <asm/mach-au1x00/au1000.h>
2
3void putc(char c)
4{
5 /* all current (Jan. 2010) in-kernel boards */
6 alchemy_uart_putchar(UART0_PHYS_ADDR, c);
7}
diff --git a/arch/mips/cavium-octeon/dma-octeon.c b/arch/mips/cavium-octeon/dma-octeon.c
index 4b92bfc662db..be531ec1f206 100644
--- a/arch/mips/cavium-octeon/dma-octeon.c
+++ b/arch/mips/cavium-octeon/dma-octeon.c
@@ -41,7 +41,7 @@ struct bar1_index_state {
41}; 41};
42 42
43#ifdef CONFIG_PCI 43#ifdef CONFIG_PCI
44static DEFINE_SPINLOCK(bar1_lock); 44static DEFINE_RAW_SPINLOCK(bar1_lock);
45static struct bar1_index_state bar1_state[32]; 45static struct bar1_index_state bar1_state[32];
46#endif 46#endif
47 47
@@ -198,7 +198,7 @@ dma_addr_t octeon_map_dma_mem(struct device *dev, void *ptr, size_t size)
198 start_index = 31; 198 start_index = 31;
199 199
200 /* Only one processor can access the Bar register at once */ 200 /* Only one processor can access the Bar register at once */
201 spin_lock_irqsave(&bar1_lock, flags); 201 raw_spin_lock_irqsave(&bar1_lock, flags);
202 202
203 /* Look through Bar1 for existing mapping that will work */ 203 /* Look through Bar1 for existing mapping that will work */
204 for (index = start_index; index >= 0; index--) { 204 for (index = start_index; index >= 0; index--) {
@@ -250,7 +250,7 @@ dma_addr_t octeon_map_dma_mem(struct device *dev, void *ptr, size_t size)
250 (unsigned long long) physical); 250 (unsigned long long) physical);
251 251
252done_unlock: 252done_unlock:
253 spin_unlock_irqrestore(&bar1_lock, flags); 253 raw_spin_unlock_irqrestore(&bar1_lock, flags);
254done: 254done:
255 pr_debug("dma_map_single 0x%llx->0x%llx\n", physical, result); 255 pr_debug("dma_map_single 0x%llx->0x%llx\n", physical, result);
256 return result; 256 return result;
@@ -324,14 +324,14 @@ void octeon_unmap_dma_mem(struct device *dev, dma_addr_t dma_addr)
324 "Attempt to unmap an invalid address (0x%llx)\n", 324 "Attempt to unmap an invalid address (0x%llx)\n",
325 dma_addr); 325 dma_addr);
326 326
327 spin_lock_irqsave(&bar1_lock, flags); 327 raw_spin_lock_irqsave(&bar1_lock, flags);
328 bar1_state[index].ref_count--; 328 bar1_state[index].ref_count--;
329 if (bar1_state[index].ref_count == 0) 329 if (bar1_state[index].ref_count == 0)
330 octeon_npi_write32(CVMX_NPI_PCI_BAR1_INDEXX(index), 0); 330 octeon_npi_write32(CVMX_NPI_PCI_BAR1_INDEXX(index), 0);
331 else if (unlikely(bar1_state[index].ref_count < 0)) 331 else if (unlikely(bar1_state[index].ref_count < 0))
332 panic("dma_unmap_single: Bar1[%u] reference count < 0\n", 332 panic("dma_unmap_single: Bar1[%u] reference count < 0\n",
333 (int) index); 333 (int) index);
334 spin_unlock_irqrestore(&bar1_lock, flags); 334 raw_spin_unlock_irqrestore(&bar1_lock, flags);
335done: 335done:
336 pr_debug("dma_unmap_single 0x%llx\n", dma_addr); 336 pr_debug("dma_unmap_single 0x%llx\n", dma_addr);
337 return; 337 return;
diff --git a/arch/mips/cavium-octeon/executive/cvmx-bootmem.c b/arch/mips/cavium-octeon/executive/cvmx-bootmem.c
index 25666da17b22..fdf5f19bfdb0 100644
--- a/arch/mips/cavium-octeon/executive/cvmx-bootmem.c
+++ b/arch/mips/cavium-octeon/executive/cvmx-bootmem.c
@@ -253,7 +253,7 @@ int64_t cvmx_bootmem_phy_alloc(uint64_t req_size, uint64_t address_min,
253 * impossible requests up front. (NOP for address_min == 0) 253 * impossible requests up front. (NOP for address_min == 0)
254 */ 254 */
255 if (alignment) 255 if (alignment)
256 address_min = __ALIGN_MASK(address_min, (alignment - 1)); 256 address_min = ALIGN(address_min, alignment);
257 257
258 /* 258 /*
259 * Reject inconsistent args. We have adjusted these, so this 259 * Reject inconsistent args. We have adjusted these, so this
@@ -291,7 +291,7 @@ int64_t cvmx_bootmem_phy_alloc(uint64_t req_size, uint64_t address_min,
291 * satisfy request. 291 * satisfy request.
292 */ 292 */
293 usable_base = 293 usable_base =
294 __ALIGN_MASK(max(address_min, ent_addr), alignment - 1); 294 ALIGN(max(address_min, ent_addr), alignment);
295 usable_max = min(address_max, ent_addr + ent_size); 295 usable_max = min(address_max, ent_addr + ent_size);
296 /* 296 /*
297 * We should be able to allocate block at address 297 * We should be able to allocate block at address
@@ -671,7 +671,7 @@ int64_t cvmx_bootmem_phy_named_block_alloc(uint64_t size, uint64_t min_addr,
671 * coallesced when they are freed. The alloc routine does the 671 * coallesced when they are freed. The alloc routine does the
672 * same rounding up on all allocations. 672 * same rounding up on all allocations.
673 */ 673 */
674 size = __ALIGN_MASK(size, (CVMX_BOOTMEM_ALIGNMENT_SIZE - 1)); 674 size = ALIGN(size, CVMX_BOOTMEM_ALIGNMENT_SIZE);
675 675
676 addr_allocated = cvmx_bootmem_phy_alloc(size, min_addr, max_addr, 676 addr_allocated = cvmx_bootmem_phy_alloc(size, min_addr, max_addr,
677 alignment, 677 alignment,
diff --git a/arch/mips/cavium-octeon/executive/cvmx-sysinfo.c b/arch/mips/cavium-octeon/executive/cvmx-sysinfo.c
index e5838890cba5..8b18a20cc7b3 100644
--- a/arch/mips/cavium-octeon/executive/cvmx-sysinfo.c
+++ b/arch/mips/cavium-octeon/executive/cvmx-sysinfo.c
@@ -115,4 +115,3 @@ int cvmx_sysinfo_minimal_initialize(void *phy_mem_desc_ptr,
115 115
116 return 1; 116 return 1;
117} 117}
118
diff --git a/arch/mips/cavium-octeon/octeon-irq.c b/arch/mips/cavium-octeon/octeon-irq.c
index 6f2acf09328d..c424cd158dc6 100644
--- a/arch/mips/cavium-octeon/octeon-irq.c
+++ b/arch/mips/cavium-octeon/octeon-irq.c
@@ -13,9 +13,8 @@
13#include <asm/octeon/cvmx-pexp-defs.h> 13#include <asm/octeon/cvmx-pexp-defs.h>
14#include <asm/octeon/cvmx-npi-defs.h> 14#include <asm/octeon/cvmx-npi-defs.h>
15 15
16DEFINE_RWLOCK(octeon_irq_ciu0_rwlock); 16static DEFINE_RAW_SPINLOCK(octeon_irq_ciu0_lock);
17DEFINE_RWLOCK(octeon_irq_ciu1_rwlock); 17static DEFINE_RAW_SPINLOCK(octeon_irq_ciu1_lock);
18DEFINE_SPINLOCK(octeon_irq_msi_lock);
19 18
20static int octeon_coreid_for_cpu(int cpu) 19static int octeon_coreid_for_cpu(int cpu)
21{ 20{
@@ -51,9 +50,6 @@ static void octeon_irq_core_eoi(unsigned int irq)
51 */ 50 */
52 if (desc->status & IRQ_DISABLED) 51 if (desc->status & IRQ_DISABLED)
53 return; 52 return;
54
55 /* There is a race here. We should fix it. */
56
57 /* 53 /*
58 * We don't need to disable IRQs to make these atomic since 54 * We don't need to disable IRQs to make these atomic since
59 * they are already disabled earlier in the low level 55 * they are already disabled earlier in the low level
@@ -141,19 +137,12 @@ static void octeon_irq_ciu0_enable(unsigned int irq)
141 uint64_t en0; 137 uint64_t en0;
142 int bit = irq - OCTEON_IRQ_WORKQ0; /* Bit 0-63 of EN0 */ 138 int bit = irq - OCTEON_IRQ_WORKQ0; /* Bit 0-63 of EN0 */
143 139
144 /* 140 raw_spin_lock_irqsave(&octeon_irq_ciu0_lock, flags);
145 * A read lock is used here to make sure only one core is ever
146 * updating the CIU enable bits at a time. During an enable
147 * the cores don't interfere with each other. During a disable
148 * the write lock stops any enables that might cause a
149 * problem.
150 */
151 read_lock_irqsave(&octeon_irq_ciu0_rwlock, flags);
152 en0 = cvmx_read_csr(CVMX_CIU_INTX_EN0(coreid * 2)); 141 en0 = cvmx_read_csr(CVMX_CIU_INTX_EN0(coreid * 2));
153 en0 |= 1ull << bit; 142 en0 |= 1ull << bit;
154 cvmx_write_csr(CVMX_CIU_INTX_EN0(coreid * 2), en0); 143 cvmx_write_csr(CVMX_CIU_INTX_EN0(coreid * 2), en0);
155 cvmx_read_csr(CVMX_CIU_INTX_EN0(coreid * 2)); 144 cvmx_read_csr(CVMX_CIU_INTX_EN0(coreid * 2));
156 read_unlock_irqrestore(&octeon_irq_ciu0_rwlock, flags); 145 raw_spin_unlock_irqrestore(&octeon_irq_ciu0_lock, flags);
157} 146}
158 147
159static void octeon_irq_ciu0_disable(unsigned int irq) 148static void octeon_irq_ciu0_disable(unsigned int irq)
@@ -162,7 +151,7 @@ static void octeon_irq_ciu0_disable(unsigned int irq)
162 unsigned long flags; 151 unsigned long flags;
163 uint64_t en0; 152 uint64_t en0;
164 int cpu; 153 int cpu;
165 write_lock_irqsave(&octeon_irq_ciu0_rwlock, flags); 154 raw_spin_lock_irqsave(&octeon_irq_ciu0_lock, flags);
166 for_each_online_cpu(cpu) { 155 for_each_online_cpu(cpu) {
167 int coreid = octeon_coreid_for_cpu(cpu); 156 int coreid = octeon_coreid_for_cpu(cpu);
168 en0 = cvmx_read_csr(CVMX_CIU_INTX_EN0(coreid * 2)); 157 en0 = cvmx_read_csr(CVMX_CIU_INTX_EN0(coreid * 2));
@@ -174,7 +163,7 @@ static void octeon_irq_ciu0_disable(unsigned int irq)
174 * of them are done. 163 * of them are done.
175 */ 164 */
176 cvmx_read_csr(CVMX_CIU_INTX_EN0(cvmx_get_core_num() * 2)); 165 cvmx_read_csr(CVMX_CIU_INTX_EN0(cvmx_get_core_num() * 2));
177 write_unlock_irqrestore(&octeon_irq_ciu0_rwlock, flags); 166 raw_spin_unlock_irqrestore(&octeon_irq_ciu0_lock, flags);
178} 167}
179 168
180/* 169/*
@@ -193,7 +182,7 @@ static void octeon_irq_ciu0_enable_v2(unsigned int irq)
193 * Disable the irq on the current core for chips that have the EN*_W1{S,C} 182 * Disable the irq on the current core for chips that have the EN*_W1{S,C}
194 * registers. 183 * registers.
195 */ 184 */
196static void octeon_irq_ciu0_disable_v2(unsigned int irq) 185static void octeon_irq_ciu0_ack_v2(unsigned int irq)
197{ 186{
198 int index = cvmx_get_core_num() * 2; 187 int index = cvmx_get_core_num() * 2;
199 u64 mask = 1ull << (irq - OCTEON_IRQ_WORKQ0); 188 u64 mask = 1ull << (irq - OCTEON_IRQ_WORKQ0);
@@ -202,6 +191,43 @@ static void octeon_irq_ciu0_disable_v2(unsigned int irq)
202} 191}
203 192
204/* 193/*
194 * CIU timer type interrupts must be acknoleged by writing a '1' bit
195 * to their sum0 bit.
196 */
197static void octeon_irq_ciu0_timer_ack(unsigned int irq)
198{
199 int index = cvmx_get_core_num() * 2;
200 uint64_t mask = 1ull << (irq - OCTEON_IRQ_WORKQ0);
201 cvmx_write_csr(CVMX_CIU_INTX_SUM0(index), mask);
202}
203
204static void octeon_irq_ciu0_timer_ack_v1(unsigned int irq)
205{
206 octeon_irq_ciu0_timer_ack(irq);
207 octeon_irq_ciu0_ack(irq);
208}
209
210static void octeon_irq_ciu0_timer_ack_v2(unsigned int irq)
211{
212 octeon_irq_ciu0_timer_ack(irq);
213 octeon_irq_ciu0_ack_v2(irq);
214}
215
216/*
217 * Enable the irq on the current core for chips that have the EN*_W1{S,C}
218 * registers.
219 */
220static void octeon_irq_ciu0_eoi_v2(unsigned int irq)
221{
222 struct irq_desc *desc = irq_desc + irq;
223 int index = cvmx_get_core_num() * 2;
224 u64 mask = 1ull << (irq - OCTEON_IRQ_WORKQ0);
225
226 if ((desc->status & IRQ_DISABLED) == 0)
227 cvmx_write_csr(CVMX_CIU_INTX_EN0_W1S(index), mask);
228}
229
230/*
205 * Disable the irq on the all cores for chips that have the EN*_W1{S,C} 231 * Disable the irq on the all cores for chips that have the EN*_W1{S,C}
206 * registers. 232 * registers.
207 */ 233 */
@@ -223,7 +249,7 @@ static int octeon_irq_ciu0_set_affinity(unsigned int irq, const struct cpumask *
223 unsigned long flags; 249 unsigned long flags;
224 int bit = irq - OCTEON_IRQ_WORKQ0; /* Bit 0-63 of EN0 */ 250 int bit = irq - OCTEON_IRQ_WORKQ0; /* Bit 0-63 of EN0 */
225 251
226 write_lock_irqsave(&octeon_irq_ciu0_rwlock, flags); 252 raw_spin_lock_irqsave(&octeon_irq_ciu0_lock, flags);
227 for_each_online_cpu(cpu) { 253 for_each_online_cpu(cpu) {
228 int coreid = octeon_coreid_for_cpu(cpu); 254 int coreid = octeon_coreid_for_cpu(cpu);
229 uint64_t en0 = 255 uint64_t en0 =
@@ -239,7 +265,7 @@ static int octeon_irq_ciu0_set_affinity(unsigned int irq, const struct cpumask *
239 * of them are done. 265 * of them are done.
240 */ 266 */
241 cvmx_read_csr(CVMX_CIU_INTX_EN0(cvmx_get_core_num() * 2)); 267 cvmx_read_csr(CVMX_CIU_INTX_EN0(cvmx_get_core_num() * 2));
242 write_unlock_irqrestore(&octeon_irq_ciu0_rwlock, flags); 268 raw_spin_unlock_irqrestore(&octeon_irq_ciu0_lock, flags);
243 269
244 return 0; 270 return 0;
245} 271}
@@ -272,8 +298,8 @@ static struct irq_chip octeon_irq_chip_ciu0_v2 = {
272 .name = "CIU0", 298 .name = "CIU0",
273 .enable = octeon_irq_ciu0_enable_v2, 299 .enable = octeon_irq_ciu0_enable_v2,
274 .disable = octeon_irq_ciu0_disable_all_v2, 300 .disable = octeon_irq_ciu0_disable_all_v2,
275 .ack = octeon_irq_ciu0_disable_v2, 301 .ack = octeon_irq_ciu0_ack_v2,
276 .eoi = octeon_irq_ciu0_enable_v2, 302 .eoi = octeon_irq_ciu0_eoi_v2,
277#ifdef CONFIG_SMP 303#ifdef CONFIG_SMP
278 .set_affinity = octeon_irq_ciu0_set_affinity_v2, 304 .set_affinity = octeon_irq_ciu0_set_affinity_v2,
279#endif 305#endif
@@ -290,6 +316,28 @@ static struct irq_chip octeon_irq_chip_ciu0 = {
290#endif 316#endif
291}; 317};
292 318
319static struct irq_chip octeon_irq_chip_ciu0_timer_v2 = {
320 .name = "CIU0-T",
321 .enable = octeon_irq_ciu0_enable_v2,
322 .disable = octeon_irq_ciu0_disable_all_v2,
323 .ack = octeon_irq_ciu0_timer_ack_v2,
324 .eoi = octeon_irq_ciu0_eoi_v2,
325#ifdef CONFIG_SMP
326 .set_affinity = octeon_irq_ciu0_set_affinity_v2,
327#endif
328};
329
330static struct irq_chip octeon_irq_chip_ciu0_timer = {
331 .name = "CIU0-T",
332 .enable = octeon_irq_ciu0_enable,
333 .disable = octeon_irq_ciu0_disable,
334 .ack = octeon_irq_ciu0_timer_ack_v1,
335 .eoi = octeon_irq_ciu0_eoi,
336#ifdef CONFIG_SMP
337 .set_affinity = octeon_irq_ciu0_set_affinity,
338#endif
339};
340
293 341
294static void octeon_irq_ciu1_ack(unsigned int irq) 342static void octeon_irq_ciu1_ack(unsigned int irq)
295{ 343{
@@ -322,19 +370,12 @@ static void octeon_irq_ciu1_enable(unsigned int irq)
322 uint64_t en1; 370 uint64_t en1;
323 int bit = irq - OCTEON_IRQ_WDOG0; /* Bit 0-63 of EN1 */ 371 int bit = irq - OCTEON_IRQ_WDOG0; /* Bit 0-63 of EN1 */
324 372
325 /* 373 raw_spin_lock_irqsave(&octeon_irq_ciu1_lock, flags);
326 * A read lock is used here to make sure only one core is ever
327 * updating the CIU enable bits at a time. During an enable
328 * the cores don't interfere with each other. During a disable
329 * the write lock stops any enables that might cause a
330 * problem.
331 */
332 read_lock_irqsave(&octeon_irq_ciu1_rwlock, flags);
333 en1 = cvmx_read_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1)); 374 en1 = cvmx_read_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1));
334 en1 |= 1ull << bit; 375 en1 |= 1ull << bit;
335 cvmx_write_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1), en1); 376 cvmx_write_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1), en1);
336 cvmx_read_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1)); 377 cvmx_read_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1));
337 read_unlock_irqrestore(&octeon_irq_ciu1_rwlock, flags); 378 raw_spin_unlock_irqrestore(&octeon_irq_ciu1_lock, flags);
338} 379}
339 380
340static void octeon_irq_ciu1_disable(unsigned int irq) 381static void octeon_irq_ciu1_disable(unsigned int irq)
@@ -343,7 +384,7 @@ static void octeon_irq_ciu1_disable(unsigned int irq)
343 unsigned long flags; 384 unsigned long flags;
344 uint64_t en1; 385 uint64_t en1;
345 int cpu; 386 int cpu;
346 write_lock_irqsave(&octeon_irq_ciu1_rwlock, flags); 387 raw_spin_lock_irqsave(&octeon_irq_ciu1_lock, flags);
347 for_each_online_cpu(cpu) { 388 for_each_online_cpu(cpu) {
348 int coreid = octeon_coreid_for_cpu(cpu); 389 int coreid = octeon_coreid_for_cpu(cpu);
349 en1 = cvmx_read_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1)); 390 en1 = cvmx_read_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1));
@@ -355,7 +396,7 @@ static void octeon_irq_ciu1_disable(unsigned int irq)
355 * of them are done. 396 * of them are done.
356 */ 397 */
357 cvmx_read_csr(CVMX_CIU_INTX_EN1(cvmx_get_core_num() * 2 + 1)); 398 cvmx_read_csr(CVMX_CIU_INTX_EN1(cvmx_get_core_num() * 2 + 1));
358 write_unlock_irqrestore(&octeon_irq_ciu1_rwlock, flags); 399 raw_spin_unlock_irqrestore(&octeon_irq_ciu1_lock, flags);
359} 400}
360 401
361/* 402/*
@@ -374,7 +415,7 @@ static void octeon_irq_ciu1_enable_v2(unsigned int irq)
374 * Disable the irq on the current core for chips that have the EN*_W1{S,C} 415 * Disable the irq on the current core for chips that have the EN*_W1{S,C}
375 * registers. 416 * registers.
376 */ 417 */
377static void octeon_irq_ciu1_disable_v2(unsigned int irq) 418static void octeon_irq_ciu1_ack_v2(unsigned int irq)
378{ 419{
379 int index = cvmx_get_core_num() * 2 + 1; 420 int index = cvmx_get_core_num() * 2 + 1;
380 u64 mask = 1ull << (irq - OCTEON_IRQ_WDOG0); 421 u64 mask = 1ull << (irq - OCTEON_IRQ_WDOG0);
@@ -383,6 +424,20 @@ static void octeon_irq_ciu1_disable_v2(unsigned int irq)
383} 424}
384 425
385/* 426/*
427 * Enable the irq on the current core for chips that have the EN*_W1{S,C}
428 * registers.
429 */
430static void octeon_irq_ciu1_eoi_v2(unsigned int irq)
431{
432 struct irq_desc *desc = irq_desc + irq;
433 int index = cvmx_get_core_num() * 2 + 1;
434 u64 mask = 1ull << (irq - OCTEON_IRQ_WDOG0);
435
436 if ((desc->status & IRQ_DISABLED) == 0)
437 cvmx_write_csr(CVMX_CIU_INTX_EN1_W1S(index), mask);
438}
439
440/*
386 * Disable the irq on the all cores for chips that have the EN*_W1{S,C} 441 * Disable the irq on the all cores for chips that have the EN*_W1{S,C}
387 * registers. 442 * registers.
388 */ 443 */
@@ -405,7 +460,7 @@ static int octeon_irq_ciu1_set_affinity(unsigned int irq,
405 unsigned long flags; 460 unsigned long flags;
406 int bit = irq - OCTEON_IRQ_WDOG0; /* Bit 0-63 of EN1 */ 461 int bit = irq - OCTEON_IRQ_WDOG0; /* Bit 0-63 of EN1 */
407 462
408 write_lock_irqsave(&octeon_irq_ciu1_rwlock, flags); 463 raw_spin_lock_irqsave(&octeon_irq_ciu1_lock, flags);
409 for_each_online_cpu(cpu) { 464 for_each_online_cpu(cpu) {
410 int coreid = octeon_coreid_for_cpu(cpu); 465 int coreid = octeon_coreid_for_cpu(cpu);
411 uint64_t en1 = 466 uint64_t en1 =
@@ -422,7 +477,7 @@ static int octeon_irq_ciu1_set_affinity(unsigned int irq,
422 * of them are done. 477 * of them are done.
423 */ 478 */
424 cvmx_read_csr(CVMX_CIU_INTX_EN1(cvmx_get_core_num() * 2 + 1)); 479 cvmx_read_csr(CVMX_CIU_INTX_EN1(cvmx_get_core_num() * 2 + 1));
425 write_unlock_irqrestore(&octeon_irq_ciu1_rwlock, flags); 480 raw_spin_unlock_irqrestore(&octeon_irq_ciu1_lock, flags);
426 481
427 return 0; 482 return 0;
428} 483}
@@ -455,8 +510,8 @@ static struct irq_chip octeon_irq_chip_ciu1_v2 = {
455 .name = "CIU0", 510 .name = "CIU0",
456 .enable = octeon_irq_ciu1_enable_v2, 511 .enable = octeon_irq_ciu1_enable_v2,
457 .disable = octeon_irq_ciu1_disable_all_v2, 512 .disable = octeon_irq_ciu1_disable_all_v2,
458 .ack = octeon_irq_ciu1_disable_v2, 513 .ack = octeon_irq_ciu1_ack_v2,
459 .eoi = octeon_irq_ciu1_enable_v2, 514 .eoi = octeon_irq_ciu1_eoi_v2,
460#ifdef CONFIG_SMP 515#ifdef CONFIG_SMP
461 .set_affinity = octeon_irq_ciu1_set_affinity_v2, 516 .set_affinity = octeon_irq_ciu1_set_affinity_v2,
462#endif 517#endif
@@ -475,6 +530,8 @@ static struct irq_chip octeon_irq_chip_ciu1 = {
475 530
476#ifdef CONFIG_PCI_MSI 531#ifdef CONFIG_PCI_MSI
477 532
533static DEFINE_RAW_SPINLOCK(octeon_irq_msi_lock);
534
478static void octeon_irq_msi_ack(unsigned int irq) 535static void octeon_irq_msi_ack(unsigned int irq)
479{ 536{
480 if (!octeon_has_feature(OCTEON_FEATURE_PCIE)) { 537 if (!octeon_has_feature(OCTEON_FEATURE_PCIE)) {
@@ -515,12 +572,12 @@ static void octeon_irq_msi_enable(unsigned int irq)
515 */ 572 */
516 uint64_t en; 573 uint64_t en;
517 unsigned long flags; 574 unsigned long flags;
518 spin_lock_irqsave(&octeon_irq_msi_lock, flags); 575 raw_spin_lock_irqsave(&octeon_irq_msi_lock, flags);
519 en = cvmx_read_csr(CVMX_PEXP_NPEI_MSI_ENB0); 576 en = cvmx_read_csr(CVMX_PEXP_NPEI_MSI_ENB0);
520 en |= 1ull << (irq - OCTEON_IRQ_MSI_BIT0); 577 en |= 1ull << (irq - OCTEON_IRQ_MSI_BIT0);
521 cvmx_write_csr(CVMX_PEXP_NPEI_MSI_ENB0, en); 578 cvmx_write_csr(CVMX_PEXP_NPEI_MSI_ENB0, en);
522 cvmx_read_csr(CVMX_PEXP_NPEI_MSI_ENB0); 579 cvmx_read_csr(CVMX_PEXP_NPEI_MSI_ENB0);
523 spin_unlock_irqrestore(&octeon_irq_msi_lock, flags); 580 raw_spin_unlock_irqrestore(&octeon_irq_msi_lock, flags);
524 } 581 }
525} 582}
526 583
@@ -537,12 +594,12 @@ static void octeon_irq_msi_disable(unsigned int irq)
537 */ 594 */
538 uint64_t en; 595 uint64_t en;
539 unsigned long flags; 596 unsigned long flags;
540 spin_lock_irqsave(&octeon_irq_msi_lock, flags); 597 raw_spin_lock_irqsave(&octeon_irq_msi_lock, flags);
541 en = cvmx_read_csr(CVMX_PEXP_NPEI_MSI_ENB0); 598 en = cvmx_read_csr(CVMX_PEXP_NPEI_MSI_ENB0);
542 en &= ~(1ull << (irq - OCTEON_IRQ_MSI_BIT0)); 599 en &= ~(1ull << (irq - OCTEON_IRQ_MSI_BIT0));
543 cvmx_write_csr(CVMX_PEXP_NPEI_MSI_ENB0, en); 600 cvmx_write_csr(CVMX_PEXP_NPEI_MSI_ENB0, en);
544 cvmx_read_csr(CVMX_PEXP_NPEI_MSI_ENB0); 601 cvmx_read_csr(CVMX_PEXP_NPEI_MSI_ENB0);
545 spin_unlock_irqrestore(&octeon_irq_msi_lock, flags); 602 raw_spin_unlock_irqrestore(&octeon_irq_msi_lock, flags);
546 } 603 }
547} 604}
548 605
@@ -559,6 +616,7 @@ void __init arch_init_irq(void)
559{ 616{
560 int irq; 617 int irq;
561 struct irq_chip *chip0; 618 struct irq_chip *chip0;
619 struct irq_chip *chip0_timer;
562 struct irq_chip *chip1; 620 struct irq_chip *chip1;
563 621
564#ifdef CONFIG_SMP 622#ifdef CONFIG_SMP
@@ -574,9 +632,11 @@ void __init arch_init_irq(void)
574 OCTEON_IS_MODEL(OCTEON_CN56XX_PASS2_X) || 632 OCTEON_IS_MODEL(OCTEON_CN56XX_PASS2_X) ||
575 OCTEON_IS_MODEL(OCTEON_CN52XX_PASS2_X)) { 633 OCTEON_IS_MODEL(OCTEON_CN52XX_PASS2_X)) {
576 chip0 = &octeon_irq_chip_ciu0_v2; 634 chip0 = &octeon_irq_chip_ciu0_v2;
635 chip0_timer = &octeon_irq_chip_ciu0_timer_v2;
577 chip1 = &octeon_irq_chip_ciu1_v2; 636 chip1 = &octeon_irq_chip_ciu1_v2;
578 } else { 637 } else {
579 chip0 = &octeon_irq_chip_ciu0; 638 chip0 = &octeon_irq_chip_ciu0;
639 chip0_timer = &octeon_irq_chip_ciu0_timer;
580 chip1 = &octeon_irq_chip_ciu1; 640 chip1 = &octeon_irq_chip_ciu1;
581 } 641 }
582 642
@@ -590,7 +650,21 @@ void __init arch_init_irq(void)
590 650
591 /* 24 - 87 CIU_INT_SUM0 */ 651 /* 24 - 87 CIU_INT_SUM0 */
592 for (irq = OCTEON_IRQ_WORKQ0; irq <= OCTEON_IRQ_BOOTDMA; irq++) { 652 for (irq = OCTEON_IRQ_WORKQ0; irq <= OCTEON_IRQ_BOOTDMA; irq++) {
593 set_irq_chip_and_handler(irq, chip0, handle_percpu_irq); 653 switch (irq) {
654 case OCTEON_IRQ_GMX_DRP0:
655 case OCTEON_IRQ_GMX_DRP1:
656 case OCTEON_IRQ_IPD_DRP:
657 case OCTEON_IRQ_KEY_ZERO:
658 case OCTEON_IRQ_TIMER0:
659 case OCTEON_IRQ_TIMER1:
660 case OCTEON_IRQ_TIMER2:
661 case OCTEON_IRQ_TIMER3:
662 set_irq_chip_and_handler(irq, chip0_timer, handle_percpu_irq);
663 break;
664 default:
665 set_irq_chip_and_handler(irq, chip0, handle_percpu_irq);
666 break;
667 }
594 } 668 }
595 669
596 /* 88 - 151 CIU_INT_SUM1 */ 670 /* 88 - 151 CIU_INT_SUM1 */
diff --git a/arch/mips/cavium-octeon/octeon-platform.c b/arch/mips/cavium-octeon/octeon-platform.c
index cfdb4c2ac5c3..62ac30eef5e8 100644
--- a/arch/mips/cavium-octeon/octeon-platform.c
+++ b/arch/mips/cavium-octeon/octeon-platform.c
@@ -9,6 +9,7 @@
9 9
10#include <linux/init.h> 10#include <linux/init.h>
11#include <linux/irq.h> 11#include <linux/irq.h>
12#include <linux/i2c.h>
12#include <linux/module.h> 13#include <linux/module.h>
13#include <linux/platform_device.h> 14#include <linux/platform_device.h>
14 15
@@ -159,6 +160,90 @@ out:
159} 160}
160device_initcall(octeon_rng_device_init); 161device_initcall(octeon_rng_device_init);
161 162
163static struct i2c_board_info __initdata octeon_i2c_devices[] = {
164 {
165 I2C_BOARD_INFO("ds1337", 0x68),
166 },
167};
168
169static int __init octeon_i2c_devices_init(void)
170{
171 return i2c_register_board_info(0, octeon_i2c_devices,
172 ARRAY_SIZE(octeon_i2c_devices));
173}
174arch_initcall(octeon_i2c_devices_init);
175
176#define OCTEON_I2C_IO_BASE 0x1180000001000ull
177#define OCTEON_I2C_IO_UNIT_OFFSET 0x200
178
179static struct octeon_i2c_data octeon_i2c_data[2];
180
181static int __init octeon_i2c_device_init(void)
182{
183 struct platform_device *pd;
184 int ret = 0;
185 int port, num_ports;
186
187 struct resource i2c_resources[] = {
188 {
189 .flags = IORESOURCE_MEM,
190 }, {
191 .flags = IORESOURCE_IRQ,
192 }
193 };
194
195 if (OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN52XX))
196 num_ports = 2;
197 else
198 num_ports = 1;
199
200 for (port = 0; port < num_ports; port++) {
201 octeon_i2c_data[port].sys_freq = octeon_get_clock_rate();
202 /*FIXME: should be examined. At the moment is set for 100Khz */
203 octeon_i2c_data[port].i2c_freq = 100000;
204
205 pd = platform_device_alloc("i2c-octeon", port);
206 if (!pd) {
207 ret = -ENOMEM;
208 goto out;
209 }
210
211 pd->dev.platform_data = octeon_i2c_data + port;
212
213 i2c_resources[0].start =
214 OCTEON_I2C_IO_BASE + (port * OCTEON_I2C_IO_UNIT_OFFSET);
215 i2c_resources[0].end = i2c_resources[0].start + 0x1f;
216 switch (port) {
217 case 0:
218 i2c_resources[1].start = OCTEON_IRQ_TWSI;
219 i2c_resources[1].end = OCTEON_IRQ_TWSI;
220 break;
221 case 1:
222 i2c_resources[1].start = OCTEON_IRQ_TWSI2;
223 i2c_resources[1].end = OCTEON_IRQ_TWSI2;
224 break;
225 default:
226 BUG();
227 }
228
229 ret = platform_device_add_resources(pd,
230 i2c_resources,
231 ARRAY_SIZE(i2c_resources));
232 if (ret)
233 goto fail;
234
235 ret = platform_device_add(pd);
236 if (ret)
237 goto fail;
238 }
239 return ret;
240fail:
241 platform_device_put(pd);
242out:
243 return ret;
244}
245device_initcall(octeon_i2c_device_init);
246
162/* Octeon SMI/MDIO interface. */ 247/* Octeon SMI/MDIO interface. */
163static int __init octeon_mdiobus_device_init(void) 248static int __init octeon_mdiobus_device_init(void)
164{ 249{
diff --git a/arch/mips/cavium-octeon/smp.c b/arch/mips/cavium-octeon/smp.c
index c198efdf583e..51e980290ce1 100644
--- a/arch/mips/cavium-octeon/smp.c
+++ b/arch/mips/cavium-octeon/smp.c
@@ -327,7 +327,7 @@ static void octeon_cpu_die(unsigned int cpu)
327 avail_coremask); 327 avail_coremask);
328 } 328 }
329 329
330 pr_info("Reset core %d. Available Coremask = %x \n", coreid, 330 pr_info("Reset core %d. Available Coremask = %x\n", coreid,
331 avail_coremask); 331 avail_coremask);
332 cvmx_write_csr(CVMX_CIU_PP_RST, 1 << coreid); 332 cvmx_write_csr(CVMX_CIU_PP_RST, 1 << coreid);
333 cvmx_write_csr(CVMX_CIU_PP_RST, 0); 333 cvmx_write_csr(CVMX_CIU_PP_RST, 0);
diff --git a/arch/mips/cobalt/pci.c b/arch/mips/cobalt/pci.c
index cfce7af1bca9..85ec9cc31d66 100644
--- a/arch/mips/cobalt/pci.c
+++ b/arch/mips/cobalt/pci.c
@@ -25,7 +25,7 @@ static struct resource cobalt_mem_resource = {
25 25
26static struct resource cobalt_io_resource = { 26static struct resource cobalt_io_resource = {
27 .start = 0x1000, 27 .start = 0x1000,
28 .end = GT_DEF_PCI0_IO_SIZE - 1, 28 .end = 0xffffffUL,
29 .name = "PCI I/O", 29 .name = "PCI I/O",
30 .flags = IORESOURCE_IO, 30 .flags = IORESOURCE_IO,
31}; 31};
diff --git a/arch/mips/configs/db1000_defconfig b/arch/mips/configs/db1000_defconfig
index 68e90cd6b2d4..f66d406aadce 100644
--- a/arch/mips/configs/db1000_defconfig
+++ b/arch/mips/configs/db1000_defconfig
@@ -1,78 +1,102 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20 3# Linux kernel version: 2.6.33
4# Tue Feb 20 21:47:24 2007 4# Fri Feb 26 08:46:14 2010
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
8# 8#
9# Machine selection 9# Machine selection
10# 10#
11CONFIG_ZONE_DMA=y
12CONFIG_MACH_ALCHEMY=y 11CONFIG_MACH_ALCHEMY=y
13# CONFIG_MIPS_MTX1 is not set 12# CONFIG_AR7 is not set
14# CONFIG_MIPS_BOSPORUS is not set 13# CONFIG_BCM47XX is not set
15# CONFIG_MIPS_PB1000 is not set 14# CONFIG_BCM63XX is not set
16# CONFIG_MIPS_PB1100 is not set
17# CONFIG_MIPS_PB1500 is not set
18# CONFIG_MIPS_PB1550 is not set
19# CONFIG_MIPS_PB1200 is not set
20CONFIG_MIPS_DB1000=y
21# CONFIG_MIPS_DB1100 is not set
22# CONFIG_MIPS_DB1500 is not set
23# CONFIG_MIPS_DB1550 is not set
24# CONFIG_MIPS_DB1200 is not set
25# CONFIG_MIPS_MIRAGE is not set
26# CONFIG_MIPS_COBALT is not set 15# CONFIG_MIPS_COBALT is not set
27# CONFIG_MACH_DECSTATION is not set 16# CONFIG_MACH_DECSTATION is not set
28# CONFIG_MACH_JAZZ is not set 17# CONFIG_MACH_JAZZ is not set
18# CONFIG_LASAT is not set
19# CONFIG_MACH_LOONGSON is not set
29# CONFIG_MIPS_MALTA is not set 20# CONFIG_MIPS_MALTA is not set
30# CONFIG_WR_PPMC is not set
31# CONFIG_MIPS_SIM is not set 21# CONFIG_MIPS_SIM is not set
32# CONFIG_MOMENCO_JAGUAR_ATX is not set 22# CONFIG_NEC_MARKEINS is not set
33# CONFIG_MIPS_XXS1500 is not set 23# CONFIG_MACH_VR41XX is not set
24# CONFIG_NXP_STB220 is not set
25# CONFIG_NXP_STB225 is not set
34# CONFIG_PNX8550_JBS is not set 26# CONFIG_PNX8550_JBS is not set
35# CONFIG_PNX8550_STB810 is not set 27# CONFIG_PNX8550_STB810 is not set
36# CONFIG_MACH_VR41XX is not set 28# CONFIG_PMC_MSP is not set
37# CONFIG_PMC_YOSEMITE is not set 29# CONFIG_PMC_YOSEMITE is not set
38# CONFIG_MARKEINS is not set 30# CONFIG_POWERTV is not set
39# CONFIG_SGI_IP22 is not set 31# CONFIG_SGI_IP22 is not set
40# CONFIG_SGI_IP27 is not set 32# CONFIG_SGI_IP27 is not set
33# CONFIG_SGI_IP28 is not set
41# CONFIG_SGI_IP32 is not set 34# CONFIG_SGI_IP32 is not set
42# CONFIG_SIBYTE_BIGSUR is not set
43# CONFIG_SIBYTE_SWARM is not set
44# CONFIG_SIBYTE_SENTOSA is not set
45# CONFIG_SIBYTE_RHONE is not set
46# CONFIG_SIBYTE_CARMEL is not set
47# CONFIG_SIBYTE_LITTLESUR is not set
48# CONFIG_SIBYTE_CRHINE is not set 35# CONFIG_SIBYTE_CRHINE is not set
36# CONFIG_SIBYTE_CARMEL is not set
49# CONFIG_SIBYTE_CRHONE is not set 37# CONFIG_SIBYTE_CRHONE is not set
38# CONFIG_SIBYTE_RHONE is not set
39# CONFIG_SIBYTE_SWARM is not set
40# CONFIG_SIBYTE_LITTLESUR is not set
41# CONFIG_SIBYTE_SENTOSA is not set
42# CONFIG_SIBYTE_BIGSUR is not set
50# CONFIG_SNI_RM is not set 43# CONFIG_SNI_RM is not set
51# CONFIG_TOSHIBA_JMR3927 is not set 44# CONFIG_MACH_TX39XX is not set
52# CONFIG_TOSHIBA_RBTX4927 is not set 45# CONFIG_MACH_TX49XX is not set
53# CONFIG_TOSHIBA_RBTX4938 is not set 46# CONFIG_MIKROTIK_RB532 is not set
47# CONFIG_WR_PPMC is not set
48# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
49# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
50CONFIG_ALCHEMY_GPIOINT_AU1000=y
51# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
52# CONFIG_MIPS_MTX1 is not set
53# CONFIG_MIPS_BOSPORUS is not set
54CONFIG_MIPS_DB1000=y
55# CONFIG_MIPS_DB1100 is not set
56# CONFIG_MIPS_DB1200 is not set
57# CONFIG_MIPS_DB1500 is not set
58# CONFIG_MIPS_DB1550 is not set
59# CONFIG_MIPS_MIRAGE is not set
60# CONFIG_MIPS_PB1000 is not set
61# CONFIG_MIPS_PB1100 is not set
62# CONFIG_MIPS_PB1200 is not set
63# CONFIG_MIPS_PB1500 is not set
64# CONFIG_MIPS_PB1550 is not set
65# CONFIG_MIPS_XXS1500 is not set
66CONFIG_SOC_AU1000=y
67CONFIG_SOC_AU1X00=y
68CONFIG_LOONGSON_UART_BASE=y
54CONFIG_RWSEM_GENERIC_SPINLOCK=y 69CONFIG_RWSEM_GENERIC_SPINLOCK=y
55# CONFIG_ARCH_HAS_ILOG2_U32 is not set 70# CONFIG_ARCH_HAS_ILOG2_U32 is not set
56# CONFIG_ARCH_HAS_ILOG2_U64 is not set 71# CONFIG_ARCH_HAS_ILOG2_U64 is not set
72CONFIG_ARCH_SUPPORTS_OPROFILE=y
57CONFIG_GENERIC_FIND_NEXT_BIT=y 73CONFIG_GENERIC_FIND_NEXT_BIT=y
58CONFIG_GENERIC_HWEIGHT=y 74CONFIG_GENERIC_HWEIGHT=y
59CONFIG_GENERIC_CALIBRATE_DELAY=y 75CONFIG_GENERIC_CALIBRATE_DELAY=y
76CONFIG_GENERIC_CLOCKEVENTS=y
60CONFIG_GENERIC_TIME=y 77CONFIG_GENERIC_TIME=y
61CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 78CONFIG_GENERIC_CMOS_UPDATE=y
62# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set 79CONFIG_SCHED_OMIT_FRAME_POINTER=y
80CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
81CONFIG_CEVT_R4K_LIB=y
82CONFIG_CSRC_R4K_LIB=y
63CONFIG_DMA_NONCOHERENT=y 83CONFIG_DMA_NONCOHERENT=y
64CONFIG_DMA_NEED_PCI_MAP_STATE=y 84CONFIG_DMA_NEED_PCI_MAP_STATE=y
85CONFIG_SYS_HAS_EARLY_PRINTK=y
86# CONFIG_NO_IOPORT is not set
87CONFIG_GENERIC_GPIO=y
65# CONFIG_CPU_BIG_ENDIAN is not set 88# CONFIG_CPU_BIG_ENDIAN is not set
66CONFIG_CPU_LITTLE_ENDIAN=y 89CONFIG_CPU_LITTLE_ENDIAN=y
67CONFIG_SYS_SUPPORTS_APM_EMULATION=y 90CONFIG_SYS_SUPPORTS_APM_EMULATION=y
68CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y 91CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
69CONFIG_SOC_AU1000=y 92CONFIG_IRQ_CPU=y
70CONFIG_SOC_AU1X00=y
71CONFIG_MIPS_L1_CACHE_SHIFT=5 93CONFIG_MIPS_L1_CACHE_SHIFT=5
72 94
73# 95#
74# CPU selection 96# CPU selection
75# 97#
98# CONFIG_CPU_LOONGSON2E is not set
99# CONFIG_CPU_LOONGSON2F is not set
76CONFIG_CPU_MIPS32_R1=y 100CONFIG_CPU_MIPS32_R1=y
77# CONFIG_CPU_MIPS32_R2 is not set 101# CONFIG_CPU_MIPS32_R2 is not set
78# CONFIG_CPU_MIPS64_R1 is not set 102# CONFIG_CPU_MIPS64_R1 is not set
@@ -85,6 +109,7 @@ CONFIG_CPU_MIPS32_R1=y
85# CONFIG_CPU_TX49XX is not set 109# CONFIG_CPU_TX49XX is not set
86# CONFIG_CPU_R5000 is not set 110# CONFIG_CPU_R5000 is not set
87# CONFIG_CPU_R5432 is not set 111# CONFIG_CPU_R5432 is not set
112# CONFIG_CPU_R5500 is not set
88# CONFIG_CPU_R6000 is not set 113# CONFIG_CPU_R6000 is not set
89# CONFIG_CPU_NEVADA is not set 114# CONFIG_CPU_NEVADA is not set
90# CONFIG_CPU_R8000 is not set 115# CONFIG_CPU_R8000 is not set
@@ -92,11 +117,14 @@ CONFIG_CPU_MIPS32_R1=y
92# CONFIG_CPU_RM7000 is not set 117# CONFIG_CPU_RM7000 is not set
93# CONFIG_CPU_RM9000 is not set 118# CONFIG_CPU_RM9000 is not set
94# CONFIG_CPU_SB1 is not set 119# CONFIG_CPU_SB1 is not set
120# CONFIG_CPU_CAVIUM_OCTEON is not set
121CONFIG_SYS_SUPPORTS_ZBOOT=y
95CONFIG_SYS_HAS_CPU_MIPS32_R1=y 122CONFIG_SYS_HAS_CPU_MIPS32_R1=y
96CONFIG_CPU_MIPS32=y 123CONFIG_CPU_MIPS32=y
97CONFIG_CPU_MIPSR1=y 124CONFIG_CPU_MIPSR1=y
98CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 125CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
99CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y 126CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
127CONFIG_HARDWARE_WATCHPOINTS=y
100 128
101# 129#
102# Kernel type 130# Kernel type
@@ -106,184 +134,244 @@ CONFIG_32BIT=y
106CONFIG_PAGE_SIZE_4KB=y 134CONFIG_PAGE_SIZE_4KB=y
107# CONFIG_PAGE_SIZE_8KB is not set 135# CONFIG_PAGE_SIZE_8KB is not set
108# CONFIG_PAGE_SIZE_16KB is not set 136# CONFIG_PAGE_SIZE_16KB is not set
137# CONFIG_PAGE_SIZE_32KB is not set
109# CONFIG_PAGE_SIZE_64KB is not set 138# CONFIG_PAGE_SIZE_64KB is not set
110CONFIG_CPU_HAS_PREFETCH=y 139CONFIG_CPU_HAS_PREFETCH=y
111CONFIG_MIPS_MT_DISABLED=y 140CONFIG_MIPS_MT_DISABLED=y
112# CONFIG_MIPS_MT_SMP is not set 141# CONFIG_MIPS_MT_SMP is not set
113# CONFIG_MIPS_MT_SMTC is not set 142# CONFIG_MIPS_MT_SMTC is not set
114# CONFIG_MIPS_VPE_LOADER is not set
115CONFIG_64BIT_PHYS_ADDR=y 143CONFIG_64BIT_PHYS_ADDR=y
144CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
116CONFIG_CPU_HAS_SYNC=y 145CONFIG_CPU_HAS_SYNC=y
117CONFIG_GENERIC_HARDIRQS=y 146CONFIG_GENERIC_HARDIRQS=y
118CONFIG_GENERIC_IRQ_PROBE=y 147CONFIG_GENERIC_IRQ_PROBE=y
119CONFIG_CPU_SUPPORTS_HIGHMEM=y 148CONFIG_CPU_SUPPORTS_HIGHMEM=y
120CONFIG_ARCH_FLATMEM_ENABLE=y 149CONFIG_ARCH_FLATMEM_ENABLE=y
150CONFIG_ARCH_POPULATES_NODE_MAP=y
121CONFIG_SELECT_MEMORY_MODEL=y 151CONFIG_SELECT_MEMORY_MODEL=y
122CONFIG_FLATMEM_MANUAL=y 152CONFIG_FLATMEM_MANUAL=y
123# CONFIG_DISCONTIGMEM_MANUAL is not set 153# CONFIG_DISCONTIGMEM_MANUAL is not set
124# CONFIG_SPARSEMEM_MANUAL is not set 154# CONFIG_SPARSEMEM_MANUAL is not set
125CONFIG_FLATMEM=y 155CONFIG_FLATMEM=y
126CONFIG_FLAT_NODE_MEM_MAP=y 156CONFIG_FLAT_NODE_MEM_MAP=y
127# CONFIG_SPARSEMEM_STATIC is not set 157CONFIG_PAGEFLAGS_EXTENDED=y
128CONFIG_SPLIT_PTLOCK_CPUS=4 158CONFIG_SPLIT_PTLOCK_CPUS=4
129# CONFIG_RESOURCES_64BIT is not set 159CONFIG_PHYS_ADDR_T_64BIT=y
130CONFIG_ZONE_DMA_FLAG=1 160CONFIG_ZONE_DMA_FLAG=0
161CONFIG_VIRT_TO_BUS=y
162# CONFIG_KSM is not set
163CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
164CONFIG_TICK_ONESHOT=y
165CONFIG_NO_HZ=y
166CONFIG_HIGH_RES_TIMERS=y
167CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
131# CONFIG_HZ_48 is not set 168# CONFIG_HZ_48 is not set
132# CONFIG_HZ_100 is not set 169CONFIG_HZ_100=y
133# CONFIG_HZ_128 is not set 170# CONFIG_HZ_128 is not set
134# CONFIG_HZ_250 is not set 171# CONFIG_HZ_250 is not set
135# CONFIG_HZ_256 is not set 172# CONFIG_HZ_256 is not set
136CONFIG_HZ_1000=y 173# CONFIG_HZ_1000 is not set
137# CONFIG_HZ_1024 is not set 174# CONFIG_HZ_1024 is not set
138CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 175CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
139CONFIG_HZ=1000 176CONFIG_HZ=100
140CONFIG_PREEMPT_NONE=y 177CONFIG_PREEMPT_NONE=y
141# CONFIG_PREEMPT_VOLUNTARY is not set 178# CONFIG_PREEMPT_VOLUNTARY is not set
142# CONFIG_PREEMPT is not set 179# CONFIG_PREEMPT is not set
143# CONFIG_KEXEC is not set 180# CONFIG_KEXEC is not set
181# CONFIG_SECCOMP is not set
144CONFIG_LOCKDEP_SUPPORT=y 182CONFIG_LOCKDEP_SUPPORT=y
145CONFIG_STACKTRACE_SUPPORT=y 183CONFIG_STACKTRACE_SUPPORT=y
146CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 184CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
185CONFIG_CONSTRUCTORS=y
147 186
148# 187#
149# Code maturity level options 188# General setup
150# 189#
151CONFIG_EXPERIMENTAL=y 190CONFIG_EXPERIMENTAL=y
152CONFIG_BROKEN_ON_SMP=y 191CONFIG_BROKEN_ON_SMP=y
153CONFIG_INIT_ENV_ARG_LIMIT=32 192CONFIG_INIT_ENV_ARG_LIMIT=32
154 193CONFIG_LOCALVERSION="-db1000"
155#
156# General setup
157#
158CONFIG_LOCALVERSION=""
159CONFIG_LOCALVERSION_AUTO=y 194CONFIG_LOCALVERSION_AUTO=y
195CONFIG_HAVE_KERNEL_GZIP=y
196CONFIG_HAVE_KERNEL_BZIP2=y
197CONFIG_HAVE_KERNEL_LZMA=y
198CONFIG_HAVE_KERNEL_LZO=y
199# CONFIG_KERNEL_GZIP is not set
200# CONFIG_KERNEL_BZIP2 is not set
201CONFIG_KERNEL_LZMA=y
202# CONFIG_KERNEL_LZO is not set
160CONFIG_SWAP=y 203CONFIG_SWAP=y
161CONFIG_SYSVIPC=y 204CONFIG_SYSVIPC=y
162# CONFIG_IPC_NS is not set
163CONFIG_SYSVIPC_SYSCTL=y 205CONFIG_SYSVIPC_SYSCTL=y
164# CONFIG_POSIX_MQUEUE is not set 206CONFIG_POSIX_MQUEUE=y
207CONFIG_POSIX_MQUEUE_SYSCTL=y
165# CONFIG_BSD_PROCESS_ACCT is not set 208# CONFIG_BSD_PROCESS_ACCT is not set
166# CONFIG_TASKSTATS is not set 209# CONFIG_TASKSTATS is not set
167# CONFIG_UTS_NS is not set
168# CONFIG_AUDIT is not set 210# CONFIG_AUDIT is not set
211
212#
213# RCU Subsystem
214#
215# CONFIG_TREE_RCU is not set
216# CONFIG_TREE_PREEMPT_RCU is not set
217CONFIG_TINY_RCU=y
218# CONFIG_TREE_RCU_TRACE is not set
169# CONFIG_IKCONFIG is not set 219# CONFIG_IKCONFIG is not set
170CONFIG_SYSFS_DEPRECATED=y 220CONFIG_LOG_BUF_SHIFT=14
171CONFIG_RELAY=y 221# CONFIG_GROUP_SCHED is not set
222# CONFIG_CGROUPS is not set
223# CONFIG_SYSFS_DEPRECATED_V2 is not set
224# CONFIG_RELAY is not set
225# CONFIG_NAMESPACES is not set
226# CONFIG_BLK_DEV_INITRD is not set
172# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 227# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
173CONFIG_SYSCTL=y 228CONFIG_SYSCTL=y
229CONFIG_ANON_INODES=y
174CONFIG_EMBEDDED=y 230CONFIG_EMBEDDED=y
175CONFIG_SYSCTL_SYSCALL=y 231CONFIG_SYSCTL_SYSCALL=y
176CONFIG_KALLSYMS=y 232# CONFIG_KALLSYMS is not set
177# CONFIG_KALLSYMS_EXTRA_PASS is not set
178CONFIG_HOTPLUG=y 233CONFIG_HOTPLUG=y
179CONFIG_PRINTK=y 234CONFIG_PRINTK=y
180CONFIG_BUG=y 235CONFIG_BUG=y
181CONFIG_ELF_CORE=y 236CONFIG_ELF_CORE=y
237# CONFIG_PCSPKR_PLATFORM is not set
182CONFIG_BASE_FULL=y 238CONFIG_BASE_FULL=y
183CONFIG_FUTEX=y 239CONFIG_FUTEX=y
184CONFIG_EPOLL=y 240CONFIG_EPOLL=y
241CONFIG_SIGNALFD=y
242CONFIG_TIMERFD=y
243CONFIG_EVENTFD=y
185CONFIG_SHMEM=y 244CONFIG_SHMEM=y
245CONFIG_AIO=y
246
247#
248# Kernel Performance Events And Counters
249#
250# CONFIG_VM_EVENT_COUNTERS is not set
251# CONFIG_COMPAT_BRK is not set
186CONFIG_SLAB=y 252CONFIG_SLAB=y
187CONFIG_VM_EVENT_COUNTERS=y 253# CONFIG_SLUB is not set
188CONFIG_RT_MUTEXES=y
189# CONFIG_TINY_SHMEM is not set
190CONFIG_BASE_SMALL=0
191# CONFIG_SLOB is not set 254# CONFIG_SLOB is not set
255# CONFIG_PROFILING is not set
256CONFIG_HAVE_OPROFILE=y
192 257
193# 258#
194# Loadable module support 259# GCOV-based kernel profiling
195# 260#
261# CONFIG_SLOW_WORK is not set
262CONFIG_HAVE_GENERIC_DMA_COHERENT=y
263CONFIG_SLABINFO=y
264CONFIG_RT_MUTEXES=y
265CONFIG_BASE_SMALL=0
196CONFIG_MODULES=y 266CONFIG_MODULES=y
267# CONFIG_MODULE_FORCE_LOAD is not set
197CONFIG_MODULE_UNLOAD=y 268CONFIG_MODULE_UNLOAD=y
198# CONFIG_MODULE_FORCE_UNLOAD is not set 269# CONFIG_MODULE_FORCE_UNLOAD is not set
199CONFIG_MODVERSIONS=y 270# CONFIG_MODVERSIONS is not set
200CONFIG_MODULE_SRCVERSION_ALL=y 271# CONFIG_MODULE_SRCVERSION_ALL is not set
201CONFIG_KMOD=y
202
203#
204# Block layer
205#
206CONFIG_BLOCK=y 272CONFIG_BLOCK=y
207# CONFIG_LBD is not set 273# CONFIG_LBDAF is not set
208# CONFIG_BLK_DEV_IO_TRACE is not set 274# CONFIG_BLK_DEV_BSG is not set
209# CONFIG_LSF is not set 275# CONFIG_BLK_DEV_INTEGRITY is not set
210 276
211# 277#
212# IO Schedulers 278# IO Schedulers
213# 279#
214CONFIG_IOSCHED_NOOP=y 280CONFIG_IOSCHED_NOOP=y
215CONFIG_IOSCHED_AS=y 281# CONFIG_IOSCHED_DEADLINE is not set
216CONFIG_IOSCHED_DEADLINE=y 282# CONFIG_IOSCHED_CFQ is not set
217CONFIG_IOSCHED_CFQ=y
218CONFIG_DEFAULT_AS=y
219# CONFIG_DEFAULT_DEADLINE is not set 283# CONFIG_DEFAULT_DEADLINE is not set
220# CONFIG_DEFAULT_CFQ is not set 284# CONFIG_DEFAULT_CFQ is not set
221# CONFIG_DEFAULT_NOOP is not set 285CONFIG_DEFAULT_NOOP=y
222CONFIG_DEFAULT_IOSCHED="anticipatory" 286CONFIG_DEFAULT_IOSCHED="noop"
287# CONFIG_INLINE_SPIN_TRYLOCK is not set
288# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
289# CONFIG_INLINE_SPIN_LOCK is not set
290# CONFIG_INLINE_SPIN_LOCK_BH is not set
291# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
292# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
293CONFIG_INLINE_SPIN_UNLOCK=y
294# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
295CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
296# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
297# CONFIG_INLINE_READ_TRYLOCK is not set
298# CONFIG_INLINE_READ_LOCK is not set
299# CONFIG_INLINE_READ_LOCK_BH is not set
300# CONFIG_INLINE_READ_LOCK_IRQ is not set
301# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
302CONFIG_INLINE_READ_UNLOCK=y
303# CONFIG_INLINE_READ_UNLOCK_BH is not set
304CONFIG_INLINE_READ_UNLOCK_IRQ=y
305# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
306# CONFIG_INLINE_WRITE_TRYLOCK is not set
307# CONFIG_INLINE_WRITE_LOCK is not set
308# CONFIG_INLINE_WRITE_LOCK_BH is not set
309# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
310# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
311CONFIG_INLINE_WRITE_UNLOCK=y
312# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
313CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
314# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
315# CONFIG_MUTEX_SPIN_ON_OWNER is not set
316CONFIG_FREEZER=y
223 317
224# 318#
225# Bus options (PCI, PCMCIA, EISA, ISA, TC) 319# Bus options (PCI, PCMCIA, EISA, ISA, TC)
226# 320#
227CONFIG_HW_HAS_PCI=y 321CONFIG_HW_HAS_PCI=y
228# CONFIG_PCI is not set 322# CONFIG_PCI is not set
323# CONFIG_ARCH_SUPPORTS_MSI is not set
229CONFIG_MMU=y 324CONFIG_MMU=y
230 325CONFIG_PCCARD=y
231# 326CONFIG_PCMCIA=y
232# PCCARD (PCMCIA/CardBus) support
233#
234CONFIG_PCCARD=m
235# CONFIG_PCMCIA_DEBUG is not set
236CONFIG_PCMCIA=m
237CONFIG_PCMCIA_LOAD_CIS=y 327CONFIG_PCMCIA_LOAD_CIS=y
238CONFIG_PCMCIA_IOCTL=y 328# CONFIG_PCMCIA_IOCTL is not set
239 329
240# 330#
241# PC-card bridges 331# PC-card bridges
242# 332#
243# CONFIG_PCMCIA_AU1X00 is not set 333# CONFIG_PCMCIA_AU1X00 is not set
244 334CONFIG_PCMCIA_ALCHEMY_DEVBOARD=y
245#
246# PCI Hotplug Support
247#
248 335
249# 336#
250# Executable file formats 337# Executable file formats
251# 338#
252CONFIG_BINFMT_ELF=y 339CONFIG_BINFMT_ELF=y
340# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
341# CONFIG_HAVE_AOUT is not set
253# CONFIG_BINFMT_MISC is not set 342# CONFIG_BINFMT_MISC is not set
254CONFIG_TRAD_SIGNALS=y 343CONFIG_TRAD_SIGNALS=y
255 344
256# 345#
257# Power management options 346# Power management options
258# 347#
259# CONFIG_PM is not set 348CONFIG_ARCH_HIBERNATION_POSSIBLE=y
260 349CONFIG_ARCH_SUSPEND_POSSIBLE=y
261# 350CONFIG_PM=y
262# Networking 351# CONFIG_PM_DEBUG is not set
263# 352CONFIG_PM_SLEEP=y
353CONFIG_SUSPEND=y
354CONFIG_SUSPEND_FREEZER=y
355# CONFIG_HIBERNATION is not set
356# CONFIG_APM_EMULATION is not set
357CONFIG_PM_RUNTIME=y
264CONFIG_NET=y 358CONFIG_NET=y
265 359
266# 360#
267# Networking options 361# Networking options
268# 362#
269# CONFIG_NETDEBUG is not set
270CONFIG_PACKET=y 363CONFIG_PACKET=y
271# CONFIG_PACKET_MMAP is not set 364CONFIG_PACKET_MMAP=y
272CONFIG_UNIX=y 365CONFIG_UNIX=y
273CONFIG_XFRM=y 366# CONFIG_NET_KEY is not set
274CONFIG_XFRM_USER=m
275# CONFIG_XFRM_SUB_POLICY is not set
276CONFIG_XFRM_MIGRATE=y
277CONFIG_NET_KEY=y
278CONFIG_NET_KEY_MIGRATE=y
279CONFIG_INET=y 367CONFIG_INET=y
280CONFIG_IP_MULTICAST=y 368CONFIG_IP_MULTICAST=y
281# CONFIG_IP_ADVANCED_ROUTER is not set 369# CONFIG_IP_ADVANCED_ROUTER is not set
282CONFIG_IP_FIB_HASH=y 370CONFIG_IP_FIB_HASH=y
283CONFIG_IP_PNP=y 371CONFIG_IP_PNP=y
284# CONFIG_IP_PNP_DHCP is not set 372CONFIG_IP_PNP_DHCP=y
285CONFIG_IP_PNP_BOOTP=y 373CONFIG_IP_PNP_BOOTP=y
286# CONFIG_IP_PNP_RARP is not set 374CONFIG_IP_PNP_RARP=y
287# CONFIG_NET_IPIP is not set 375# CONFIG_NET_IPIP is not set
288# CONFIG_NET_IPGRE is not set 376# CONFIG_NET_IPGRE is not set
289# CONFIG_IP_MROUTE is not set 377# CONFIG_IP_MROUTE is not set
@@ -294,110 +382,25 @@ CONFIG_IP_PNP_BOOTP=y
294# CONFIG_INET_IPCOMP is not set 382# CONFIG_INET_IPCOMP is not set
295# CONFIG_INET_XFRM_TUNNEL is not set 383# CONFIG_INET_XFRM_TUNNEL is not set
296# CONFIG_INET_TUNNEL is not set 384# CONFIG_INET_TUNNEL is not set
297CONFIG_INET_XFRM_MODE_TRANSPORT=m 385# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
298CONFIG_INET_XFRM_MODE_TUNNEL=m 386# CONFIG_INET_XFRM_MODE_TUNNEL is not set
299CONFIG_INET_XFRM_MODE_BEET=m 387# CONFIG_INET_XFRM_MODE_BEET is not set
300CONFIG_INET_DIAG=y 388CONFIG_INET_LRO=y
301CONFIG_INET_TCP_DIAG=y 389# CONFIG_INET_DIAG is not set
302# CONFIG_TCP_CONG_ADVANCED is not set 390# CONFIG_TCP_CONG_ADVANCED is not set
303CONFIG_TCP_CONG_CUBIC=y 391CONFIG_TCP_CONG_CUBIC=y
304CONFIG_DEFAULT_TCP_CONG="cubic" 392CONFIG_DEFAULT_TCP_CONG="cubic"
305CONFIG_TCP_MD5SIG=y 393# CONFIG_TCP_MD5SIG is not set
306
307#
308# IP: Virtual Server Configuration
309#
310# CONFIG_IP_VS is not set
311# CONFIG_IPV6 is not set 394# CONFIG_IPV6 is not set
312# CONFIG_INET6_XFRM_TUNNEL is not set 395# CONFIG_NETWORK_SECMARK is not set
313# CONFIG_INET6_TUNNEL is not set 396# CONFIG_NETFILTER is not set
314CONFIG_NETWORK_SECMARK=y
315CONFIG_NETFILTER=y
316# CONFIG_NETFILTER_DEBUG is not set
317
318#
319# Core Netfilter Configuration
320#
321CONFIG_NETFILTER_NETLINK=m
322CONFIG_NETFILTER_NETLINK_QUEUE=m
323CONFIG_NETFILTER_NETLINK_LOG=m
324CONFIG_NF_CONNTRACK_ENABLED=m
325CONFIG_NF_CONNTRACK_SUPPORT=y
326# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set
327CONFIG_NF_CONNTRACK=m
328CONFIG_NF_CT_ACCT=y
329CONFIG_NF_CONNTRACK_MARK=y
330CONFIG_NF_CONNTRACK_SECMARK=y
331CONFIG_NF_CONNTRACK_EVENTS=y
332CONFIG_NF_CT_PROTO_GRE=m
333CONFIG_NF_CT_PROTO_SCTP=m
334CONFIG_NF_CONNTRACK_AMANDA=m
335CONFIG_NF_CONNTRACK_FTP=m
336CONFIG_NF_CONNTRACK_H323=m
337CONFIG_NF_CONNTRACK_IRC=m
338# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
339CONFIG_NF_CONNTRACK_PPTP=m
340CONFIG_NF_CONNTRACK_SANE=m
341CONFIG_NF_CONNTRACK_SIP=m
342CONFIG_NF_CONNTRACK_TFTP=m
343CONFIG_NF_CT_NETLINK=m
344CONFIG_NETFILTER_XTABLES=m
345CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
346CONFIG_NETFILTER_XT_TARGET_MARK=m
347CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
348CONFIG_NETFILTER_XT_TARGET_NFLOG=m
349CONFIG_NETFILTER_XT_TARGET_SECMARK=m
350CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
351CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
352CONFIG_NETFILTER_XT_MATCH_COMMENT=m
353CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
354CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
355CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
356CONFIG_NETFILTER_XT_MATCH_DCCP=m
357CONFIG_NETFILTER_XT_MATCH_DSCP=m
358CONFIG_NETFILTER_XT_MATCH_ESP=m
359CONFIG_NETFILTER_XT_MATCH_HELPER=m
360CONFIG_NETFILTER_XT_MATCH_LENGTH=m
361CONFIG_NETFILTER_XT_MATCH_LIMIT=m
362CONFIG_NETFILTER_XT_MATCH_MAC=m
363CONFIG_NETFILTER_XT_MATCH_MARK=m
364CONFIG_NETFILTER_XT_MATCH_POLICY=m
365CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
366CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
367CONFIG_NETFILTER_XT_MATCH_QUOTA=m
368CONFIG_NETFILTER_XT_MATCH_REALM=m
369CONFIG_NETFILTER_XT_MATCH_SCTP=m
370CONFIG_NETFILTER_XT_MATCH_STATE=m
371CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
372CONFIG_NETFILTER_XT_MATCH_STRING=m
373CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
374CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
375
376#
377# IP: Netfilter Configuration
378#
379CONFIG_NF_CONNTRACK_IPV4=m
380CONFIG_NF_CONNTRACK_PROC_COMPAT=y
381# CONFIG_IP_NF_QUEUE is not set
382# CONFIG_IP_NF_IPTABLES is not set
383# CONFIG_IP_NF_ARPTABLES is not set
384
385#
386# DCCP Configuration (EXPERIMENTAL)
387#
388# CONFIG_IP_DCCP is not set 397# CONFIG_IP_DCCP is not set
389
390#
391# SCTP Configuration (EXPERIMENTAL)
392#
393# CONFIG_IP_SCTP is not set 398# CONFIG_IP_SCTP is not set
394 399# CONFIG_RDS is not set
395#
396# TIPC Configuration (EXPERIMENTAL)
397#
398# CONFIG_TIPC is not set 400# CONFIG_TIPC is not set
399# CONFIG_ATM is not set 401# CONFIG_ATM is not set
400# CONFIG_BRIDGE is not set 402# CONFIG_BRIDGE is not set
403# CONFIG_NET_DSA is not set
401# CONFIG_VLAN_8021Q is not set 404# CONFIG_VLAN_8021Q is not set
402# CONFIG_DECNET is not set 405# CONFIG_DECNET is not set
403# CONFIG_LLC2 is not set 406# CONFIG_LLC2 is not set
@@ -407,27 +410,24 @@ CONFIG_NF_CONNTRACK_PROC_COMPAT=y
407# CONFIG_LAPB is not set 410# CONFIG_LAPB is not set
408# CONFIG_ECONET is not set 411# CONFIG_ECONET is not set
409# CONFIG_WAN_ROUTER is not set 412# CONFIG_WAN_ROUTER is not set
410 413# CONFIG_PHONET is not set
411# 414# CONFIG_IEEE802154 is not set
412# QoS and/or fair queueing
413#
414# CONFIG_NET_SCHED is not set 415# CONFIG_NET_SCHED is not set
415CONFIG_NET_CLS_ROUTE=y 416# CONFIG_DCB is not set
416 417
417# 418#
418# Network testing 419# Network testing
419# 420#
420# CONFIG_NET_PKTGEN is not set 421# CONFIG_NET_PKTGEN is not set
421# CONFIG_HAMRADIO is not set 422# CONFIG_HAMRADIO is not set
423# CONFIG_CAN is not set
422# CONFIG_IRDA is not set 424# CONFIG_IRDA is not set
423# CONFIG_BT is not set 425# CONFIG_BT is not set
424CONFIG_IEEE80211=m 426# CONFIG_AF_RXRPC is not set
425# CONFIG_IEEE80211_DEBUG is not set 427# CONFIG_WIRELESS is not set
426CONFIG_IEEE80211_CRYPT_WEP=m 428# CONFIG_WIMAX is not set
427CONFIG_IEEE80211_CRYPT_CCMP=m 429# CONFIG_RFKILL is not set
428CONFIG_IEEE80211_SOFTMAC=m 430# CONFIG_NET_9P is not set
429# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
430CONFIG_WIRELESS_EXT=y
431 431
432# 432#
433# Device Drivers 433# Device Drivers
@@ -436,25 +436,25 @@ CONFIG_WIRELESS_EXT=y
436# 436#
437# Generic Driver Options 437# Generic Driver Options
438# 438#
439CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
440# CONFIG_DEVTMPFS is not set
439CONFIG_STANDALONE=y 441CONFIG_STANDALONE=y
440CONFIG_PREVENT_FIRMWARE_BUILD=y 442CONFIG_PREVENT_FIRMWARE_BUILD=y
441CONFIG_FW_LOADER=m 443CONFIG_FW_LOADER=y
444CONFIG_FIRMWARE_IN_KERNEL=y
445CONFIG_EXTRA_FIRMWARE=""
446# CONFIG_DEBUG_DRIVER is not set
447# CONFIG_DEBUG_DEVRES is not set
442# CONFIG_SYS_HYPERVISOR is not set 448# CONFIG_SYS_HYPERVISOR is not set
443 449# CONFIG_CONNECTOR is not set
444#
445# Connector - unified userspace <-> kernelspace linker
446#
447CONFIG_CONNECTOR=m
448
449#
450# Memory Technology Devices (MTD)
451#
452CONFIG_MTD=y 450CONFIG_MTD=y
453# CONFIG_MTD_DEBUG is not set 451# CONFIG_MTD_DEBUG is not set
452# CONFIG_MTD_TESTS is not set
454# CONFIG_MTD_CONCAT is not set 453# CONFIG_MTD_CONCAT is not set
455CONFIG_MTD_PARTITIONS=y 454CONFIG_MTD_PARTITIONS=y
456# CONFIG_MTD_REDBOOT_PARTS is not set 455# CONFIG_MTD_REDBOOT_PARTS is not set
457# CONFIG_MTD_CMDLINE_PARTS is not set 456CONFIG_MTD_CMDLINE_PARTS=y
457# CONFIG_MTD_AR7_PARTS is not set
458 458
459# 459#
460# User Modules And Translation Layers 460# User Modules And Translation Layers
@@ -467,6 +467,7 @@ CONFIG_MTD_BLOCK=y
467# CONFIG_INFTL is not set 467# CONFIG_INFTL is not set
468# CONFIG_RFD_FTL is not set 468# CONFIG_RFD_FTL is not set
469# CONFIG_SSFDC is not set 469# CONFIG_SSFDC is not set
470# CONFIG_MTD_OOPS is not set
470 471
471# 472#
472# RAM/ROM/Flash chip drivers 473# RAM/ROM/Flash chip drivers
@@ -492,14 +493,13 @@ CONFIG_MTD_CFI_UTIL=y
492# CONFIG_MTD_RAM is not set 493# CONFIG_MTD_RAM is not set
493# CONFIG_MTD_ROM is not set 494# CONFIG_MTD_ROM is not set
494# CONFIG_MTD_ABSENT is not set 495# CONFIG_MTD_ABSENT is not set
495# CONFIG_MTD_OBSOLETE_CHIPS is not set
496 496
497# 497#
498# Mapping drivers for chip access 498# Mapping drivers for chip access
499# 499#
500# CONFIG_MTD_COMPLEX_MAPPINGS is not set 500# CONFIG_MTD_COMPLEX_MAPPINGS is not set
501# CONFIG_MTD_PHYSMAP is not set 501CONFIG_MTD_PHYSMAP=y
502CONFIG_MTD_ALCHEMY=y 502# CONFIG_MTD_PHYSMAP_COMPAT is not set
503# CONFIG_MTD_PLATRAM is not set 503# CONFIG_MTD_PLATRAM is not set
504 504
505# 505#
@@ -516,174 +516,115 @@ CONFIG_MTD_ALCHEMY=y
516# CONFIG_MTD_DOC2000 is not set 516# CONFIG_MTD_DOC2000 is not set
517# CONFIG_MTD_DOC2001 is not set 517# CONFIG_MTD_DOC2001 is not set
518# CONFIG_MTD_DOC2001PLUS is not set 518# CONFIG_MTD_DOC2001PLUS is not set
519
520#
521# NAND Flash Device Drivers
522#
523# CONFIG_MTD_NAND is not set 519# CONFIG_MTD_NAND is not set
524
525#
526# OneNAND Flash Device Drivers
527#
528# CONFIG_MTD_ONENAND is not set 520# CONFIG_MTD_ONENAND is not set
529 521
530# 522#
531# Parallel port support 523# LPDDR flash memory drivers
532# 524#
533# CONFIG_PARPORT is not set 525# CONFIG_MTD_LPDDR is not set
534 526
535# 527#
536# Plug and Play support 528# UBI - Unsorted block images
537# 529#
538# CONFIG_PNPACPI is not set 530# CONFIG_MTD_UBI is not set
531# CONFIG_PARPORT is not set
532CONFIG_BLK_DEV=y
533# CONFIG_BLK_DEV_COW_COMMON is not set
534# CONFIG_BLK_DEV_LOOP is not set
539 535
540# 536#
541# Block devices 537# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
542# 538#
543# CONFIG_BLK_DEV_COW_COMMON is not set
544CONFIG_BLK_DEV_LOOP=y
545# CONFIG_BLK_DEV_CRYPTOLOOP is not set
546# CONFIG_BLK_DEV_NBD is not set 539# CONFIG_BLK_DEV_NBD is not set
540# CONFIG_BLK_DEV_UB is not set
547# CONFIG_BLK_DEV_RAM is not set 541# CONFIG_BLK_DEV_RAM is not set
548# CONFIG_BLK_DEV_INITRD is not set 542# CONFIG_CDROM_PKTCDVD is not set
549CONFIG_CDROM_PKTCDVD=m 543# CONFIG_ATA_OVER_ETH is not set
550CONFIG_CDROM_PKTCDVD_BUFFERS=8 544# CONFIG_BLK_DEV_HD is not set
551# CONFIG_CDROM_PKTCDVD_WCACHE is not set 545# CONFIG_MISC_DEVICES is not set
552CONFIG_ATA_OVER_ETH=m 546CONFIG_HAVE_IDE=y
553
554#
555# Misc devices
556#
557
558#
559# ATA/ATAPI/MFM/RLL support
560#
561# CONFIG_IDE is not set 547# CONFIG_IDE is not set
562 548
563# 549#
564# SCSI device support 550# SCSI device support
565# 551#
566CONFIG_RAID_ATTRS=m 552# CONFIG_RAID_ATTRS is not set
567# CONFIG_SCSI is not set 553# CONFIG_SCSI is not set
554# CONFIG_SCSI_DMA is not set
568# CONFIG_SCSI_NETLINK is not set 555# CONFIG_SCSI_NETLINK is not set
569
570#
571# Serial ATA (prod) and Parallel ATA (experimental) drivers
572#
573# CONFIG_ATA is not set 556# CONFIG_ATA is not set
574
575#
576# Multi-device support (RAID and LVM)
577#
578# CONFIG_MD is not set 557# CONFIG_MD is not set
579
580#
581# Fusion MPT device support
582#
583# CONFIG_FUSION is not set
584
585#
586# IEEE 1394 (FireWire) support
587#
588
589#
590# I2O device support
591#
592
593#
594# Network device support
595#
596CONFIG_NETDEVICES=y 558CONFIG_NETDEVICES=y
597# CONFIG_DUMMY is not set 559# CONFIG_DUMMY is not set
598# CONFIG_BONDING is not set 560# CONFIG_BONDING is not set
561# CONFIG_MACVLAN is not set
599# CONFIG_EQUALIZER is not set 562# CONFIG_EQUALIZER is not set
600# CONFIG_TUN is not set 563# CONFIG_TUN is not set
601 564# CONFIG_VETH is not set
602#
603# PHY device support
604#
605CONFIG_PHYLIB=y 565CONFIG_PHYLIB=y
606 566
607# 567#
608# MII PHY device drivers 568# MII PHY device drivers
609# 569#
610CONFIG_MARVELL_PHY=m 570CONFIG_MARVELL_PHY=y
611CONFIG_DAVICOM_PHY=m 571CONFIG_DAVICOM_PHY=y
612CONFIG_QSEMI_PHY=m 572CONFIG_QSEMI_PHY=y
613CONFIG_LXT_PHY=m 573CONFIG_LXT_PHY=y
614CONFIG_CICADA_PHY=m 574CONFIG_CICADA_PHY=y
615CONFIG_VITESSE_PHY=m 575CONFIG_VITESSE_PHY=y
616CONFIG_SMSC_PHY=m 576CONFIG_SMSC_PHY=y
617# CONFIG_BROADCOM_PHY is not set 577CONFIG_BROADCOM_PHY=y
578CONFIG_ICPLUS_PHY=y
579CONFIG_REALTEK_PHY=y
580CONFIG_NATIONAL_PHY=y
581CONFIG_STE10XP=y
582CONFIG_LSI_ET1011C_PHY=y
618# CONFIG_FIXED_PHY is not set 583# CONFIG_FIXED_PHY is not set
619 584# CONFIG_MDIO_BITBANG is not set
620#
621# Ethernet (10 or 100Mbit)
622#
623CONFIG_NET_ETHERNET=y 585CONFIG_NET_ETHERNET=y
624CONFIG_MII=m 586CONFIG_MII=y
587# CONFIG_AX88796 is not set
625CONFIG_MIPS_AU1X00_ENET=y 588CONFIG_MIPS_AU1X00_ENET=y
626# CONFIG_SMC91X is not set 589# CONFIG_SMC91X is not set
627# CONFIG_DM9000 is not set 590# CONFIG_DM9000 is not set
628 591# CONFIG_ETHOC is not set
629# 592# CONFIG_SMSC911X is not set
630# Ethernet (1000 Mbit) 593# CONFIG_DNET is not set
631# 594# CONFIG_IBM_NEW_EMAC_ZMII is not set
632 595# CONFIG_IBM_NEW_EMAC_RGMII is not set
633# 596# CONFIG_IBM_NEW_EMAC_TAH is not set
634# Ethernet (10000 Mbit) 597# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
635# 598# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
636 599# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
637# 600# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
638# Token Ring devices 601# CONFIG_B44 is not set
639# 602# CONFIG_KS8842 is not set
640 603# CONFIG_KS8851_MLL is not set
641# 604# CONFIG_NETDEV_1000 is not set
642# Wireless LAN (non-hamradio) 605# CONFIG_NETDEV_10000 is not set
643# 606# CONFIG_WLAN is not set
644# CONFIG_NET_RADIO is not set 607
645 608#
646# 609# Enable WiMAX (Networking options) to see the WiMAX drivers
647# PCMCIA network device support 610#
648# 611
649CONFIG_NET_PCMCIA=y 612#
650CONFIG_PCMCIA_3C589=m 613# USB Network Adapters
651CONFIG_PCMCIA_3C574=m 614#
652CONFIG_PCMCIA_FMVJ18X=m 615# CONFIG_USB_CATC is not set
653CONFIG_PCMCIA_PCNET=m 616# CONFIG_USB_KAWETH is not set
654CONFIG_PCMCIA_NMCLAN=m 617# CONFIG_USB_PEGASUS is not set
655CONFIG_PCMCIA_SMC91C92=m 618# CONFIG_USB_RTL8150 is not set
656CONFIG_PCMCIA_XIRC2PS=m 619# CONFIG_USB_USBNET is not set
657CONFIG_PCMCIA_AXNET=m 620# CONFIG_NET_PCMCIA is not set
658
659#
660# Wan interfaces
661#
662# CONFIG_WAN is not set 621# CONFIG_WAN is not set
663CONFIG_PPP=m 622# CONFIG_PPP is not set
664CONFIG_PPP_MULTILINK=y
665# CONFIG_PPP_FILTER is not set
666CONFIG_PPP_ASYNC=m
667# CONFIG_PPP_SYNC_TTY is not set
668CONFIG_PPP_DEFLATE=m
669# CONFIG_PPP_BSDCOMP is not set
670CONFIG_PPP_MPPE=m
671CONFIG_PPPOE=m
672# CONFIG_SLIP is not set 623# CONFIG_SLIP is not set
673CONFIG_SLHC=m
674# CONFIG_SHAPER is not set
675# CONFIG_NETCONSOLE is not set 624# CONFIG_NETCONSOLE is not set
676# CONFIG_NETPOLL is not set 625# CONFIG_NETPOLL is not set
677# CONFIG_NET_POLL_CONTROLLER is not set 626# CONFIG_NET_POLL_CONTROLLER is not set
678
679#
680# ISDN subsystem
681#
682# CONFIG_ISDN is not set 627# CONFIG_ISDN is not set
683
684#
685# Telephony Support
686#
687# CONFIG_PHONE is not set 628# CONFIG_PHONE is not set
688 629
689# 630#
@@ -691,16 +632,14 @@ CONFIG_SLHC=m
691# 632#
692CONFIG_INPUT=y 633CONFIG_INPUT=y
693# CONFIG_INPUT_FF_MEMLESS is not set 634# CONFIG_INPUT_FF_MEMLESS is not set
635# CONFIG_INPUT_POLLDEV is not set
636# CONFIG_INPUT_SPARSEKMAP is not set
694 637
695# 638#
696# Userland interfaces 639# Userland interfaces
697# 640#
698CONFIG_INPUT_MOUSEDEV=y 641# CONFIG_INPUT_MOUSEDEV is not set
699CONFIG_INPUT_MOUSEDEV_PSAUX=y
700CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
701CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
702# CONFIG_INPUT_JOYDEV is not set 642# CONFIG_INPUT_JOYDEV is not set
703# CONFIG_INPUT_TSDEV is not set
704CONFIG_INPUT_EVDEV=y 643CONFIG_INPUT_EVDEV=y
705# CONFIG_INPUT_EVBUG is not set 644# CONFIG_INPUT_EVBUG is not set
706 645
@@ -710,35 +649,33 @@ CONFIG_INPUT_EVDEV=y
710# CONFIG_INPUT_KEYBOARD is not set 649# CONFIG_INPUT_KEYBOARD is not set
711# CONFIG_INPUT_MOUSE is not set 650# CONFIG_INPUT_MOUSE is not set
712# CONFIG_INPUT_JOYSTICK is not set 651# CONFIG_INPUT_JOYSTICK is not set
652# CONFIG_INPUT_TABLET is not set
713# CONFIG_INPUT_TOUCHSCREEN is not set 653# CONFIG_INPUT_TOUCHSCREEN is not set
714# CONFIG_INPUT_MISC is not set 654# CONFIG_INPUT_MISC is not set
715 655
716# 656#
717# Hardware I/O ports 657# Hardware I/O ports
718# 658#
719CONFIG_SERIO=y 659# CONFIG_SERIO is not set
720# CONFIG_SERIO_I8042 is not set
721CONFIG_SERIO_SERPORT=y
722# CONFIG_SERIO_LIBPS2 is not set
723CONFIG_SERIO_RAW=m
724# CONFIG_GAMEPORT is not set 660# CONFIG_GAMEPORT is not set
725 661
726# 662#
727# Character devices 663# Character devices
728# 664#
729CONFIG_VT=y 665CONFIG_VT=y
666CONFIG_CONSOLE_TRANSLATIONS=y
730CONFIG_VT_CONSOLE=y 667CONFIG_VT_CONSOLE=y
731CONFIG_HW_CONSOLE=y 668CONFIG_HW_CONSOLE=y
732CONFIG_VT_HW_CONSOLE_BINDING=y 669# CONFIG_VT_HW_CONSOLE_BINDING is not set
670CONFIG_DEVKMEM=y
733# CONFIG_SERIAL_NONSTANDARD is not set 671# CONFIG_SERIAL_NONSTANDARD is not set
734# CONFIG_AU1X00_GPIO is not set
735 672
736# 673#
737# Serial drivers 674# Serial drivers
738# 675#
739CONFIG_SERIAL_8250=y 676CONFIG_SERIAL_8250=y
740CONFIG_SERIAL_8250_CONSOLE=y 677CONFIG_SERIAL_8250_CONSOLE=y
741CONFIG_SERIAL_8250_CS=m 678# CONFIG_SERIAL_8250_CS is not set
742CONFIG_SERIAL_8250_NR_UARTS=4 679CONFIG_SERIAL_8250_NR_UARTS=4
743CONFIG_SERIAL_8250_RUNTIME_UARTS=4 680CONFIG_SERIAL_8250_RUNTIME_UARTS=4
744# CONFIG_SERIAL_8250_EXTENDED is not set 681# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -750,198 +687,291 @@ CONFIG_SERIAL_8250_AU1X00=y
750CONFIG_SERIAL_CORE=y 687CONFIG_SERIAL_CORE=y
751CONFIG_SERIAL_CORE_CONSOLE=y 688CONFIG_SERIAL_CORE_CONSOLE=y
752CONFIG_UNIX98_PTYS=y 689CONFIG_UNIX98_PTYS=y
753CONFIG_LEGACY_PTYS=y 690# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
754CONFIG_LEGACY_PTY_COUNT=256 691# CONFIG_LEGACY_PTYS is not set
755
756#
757# IPMI
758#
759# CONFIG_IPMI_HANDLER is not set 692# CONFIG_IPMI_HANDLER is not set
760
761#
762# Watchdog Cards
763#
764# CONFIG_WATCHDOG is not set
765# CONFIG_HW_RANDOM is not set 693# CONFIG_HW_RANDOM is not set
766# CONFIG_RTC is not set
767# CONFIG_GEN_RTC is not set
768# CONFIG_DTLK is not set
769# CONFIG_R3964 is not set 694# CONFIG_R3964 is not set
770 695
771# 696#
772# PCMCIA character devices 697# PCMCIA character devices
773# 698#
774CONFIG_SYNCLINK_CS=m 699# CONFIG_SYNCLINK_CS is not set
775# CONFIG_CARDMAN_4000 is not set 700# CONFIG_CARDMAN_4000 is not set
776# CONFIG_CARDMAN_4040 is not set 701# CONFIG_CARDMAN_4040 is not set
702# CONFIG_IPWIRELESS is not set
777# CONFIG_RAW_DRIVER is not set 703# CONFIG_RAW_DRIVER is not set
778
779#
780# TPM devices
781#
782# CONFIG_TCG_TPM is not set 704# CONFIG_TCG_TPM is not set
783
784#
785# I2C support
786#
787# CONFIG_I2C is not set 705# CONFIG_I2C is not set
788
789#
790# SPI support
791#
792# CONFIG_SPI is not set 706# CONFIG_SPI is not set
793# CONFIG_SPI_MASTER is not set
794 707
795# 708#
796# Dallas's 1-wire bus 709# PPS support
797# 710#
711# CONFIG_PPS is not set
712CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
713# CONFIG_GPIOLIB is not set
798# CONFIG_W1 is not set 714# CONFIG_W1 is not set
799 715# CONFIG_POWER_SUPPLY is not set
800#
801# Hardware Monitoring support
802#
803# CONFIG_HWMON is not set 716# CONFIG_HWMON is not set
804# CONFIG_HWMON_VID is not set 717# CONFIG_THERMAL is not set
718# CONFIG_WATCHDOG is not set
719CONFIG_SSB_POSSIBLE=y
805 720
806# 721#
807# Multimedia devices 722# Sonics Silicon Backplane
808# 723#
809# CONFIG_VIDEO_DEV is not set 724# CONFIG_SSB is not set
810 725
811# 726#
812# Digital Video Broadcasting Devices 727# Multifunction device drivers
813# 728#
814# CONFIG_DVB is not set 729# CONFIG_MFD_CORE is not set
730# CONFIG_MFD_SM501 is not set
731# CONFIG_HTC_PASIC3 is not set
732# CONFIG_MFD_TMIO is not set
733# CONFIG_REGULATOR is not set
734# CONFIG_MEDIA_SUPPORT is not set
815 735
816# 736#
817# Graphics support 737# Graphics support
818# 738#
819# CONFIG_FIRMWARE_EDID is not set 739# CONFIG_VGASTATE is not set
740# CONFIG_VIDEO_OUTPUT_CONTROL is not set
820# CONFIG_FB is not set 741# CONFIG_FB is not set
821
822#
823# Console display driver support
824#
825# CONFIG_VGA_CONSOLE is not set
826CONFIG_DUMMY_CONSOLE=y
827# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 742# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
828 743
829# 744#
830# Sound 745# Display device support
831# 746#
832# CONFIG_SOUND is not set 747# CONFIG_DISPLAY_SUPPORT is not set
833 748
834# 749#
835# HID Devices 750# Console display driver support
836#
837# CONFIG_HID is not set
838
839#
840# USB support
841# 751#
752# CONFIG_VGA_CONSOLE is not set
753CONFIG_DUMMY_CONSOLE=y
754# CONFIG_SOUND is not set
755CONFIG_HID_SUPPORT=y
756CONFIG_HID=y
757# CONFIG_HIDRAW is not set
758
759#
760# USB Input Devices
761#
762CONFIG_USB_HID=y
763# CONFIG_HID_PID is not set
764# CONFIG_USB_HIDDEV is not set
765
766#
767# Special HID drivers
768#
769# CONFIG_HID_A4TECH is not set
770# CONFIG_HID_APPLE is not set
771# CONFIG_HID_BELKIN is not set
772# CONFIG_HID_CHERRY is not set
773# CONFIG_HID_CHICONY is not set
774# CONFIG_HID_CYPRESS is not set
775# CONFIG_HID_DRAGONRISE is not set
776# CONFIG_HID_EZKEY is not set
777# CONFIG_HID_KYE is not set
778# CONFIG_HID_GYRATION is not set
779# CONFIG_HID_TWINHAN is not set
780# CONFIG_HID_KENSINGTON is not set
781# CONFIG_HID_LOGITECH is not set
782# CONFIG_HID_MICROSOFT is not set
783# CONFIG_HID_MONTEREY is not set
784# CONFIG_HID_NTRIG is not set
785# CONFIG_HID_PANTHERLORD is not set
786# CONFIG_HID_PETALYNX is not set
787# CONFIG_HID_SAMSUNG is not set
788# CONFIG_HID_SONY is not set
789# CONFIG_HID_SUNPLUS is not set
790# CONFIG_HID_GREENASIA is not set
791# CONFIG_HID_SMARTJOYPLUS is not set
792# CONFIG_HID_TOPSEED is not set
793# CONFIG_HID_THRUSTMASTER is not set
794# CONFIG_HID_ZEROPLUS is not set
795CONFIG_USB_SUPPORT=y
842CONFIG_USB_ARCH_HAS_HCD=y 796CONFIG_USB_ARCH_HAS_HCD=y
843CONFIG_USB_ARCH_HAS_OHCI=y 797CONFIG_USB_ARCH_HAS_OHCI=y
844# CONFIG_USB_ARCH_HAS_EHCI is not set 798# CONFIG_USB_ARCH_HAS_EHCI is not set
845# CONFIG_USB is not set 799CONFIG_USB=y
800# CONFIG_USB_DEBUG is not set
801# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
846 802
847# 803#
848# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 804# Miscellaneous USB options
849# 805#
806# CONFIG_USB_DEVICEFS is not set
807# CONFIG_USB_DEVICE_CLASS is not set
808CONFIG_USB_DYNAMIC_MINORS=y
809CONFIG_USB_SUSPEND=y
810# CONFIG_USB_OTG is not set
811# CONFIG_USB_OTG_WHITELIST is not set
812# CONFIG_USB_OTG_BLACKLIST_HUB is not set
813# CONFIG_USB_MON is not set
814# CONFIG_USB_WUSB is not set
815# CONFIG_USB_WUSB_CBAF is not set
850 816
851# 817#
852# USB Gadget Support 818# USB Host Controller Drivers
853# 819#
854# CONFIG_USB_GADGET is not set 820# CONFIG_USB_C67X00_HCD is not set
821# CONFIG_USB_OXU210HP_HCD is not set
822# CONFIG_USB_ISP116X_HCD is not set
823# CONFIG_USB_ISP1760_HCD is not set
824# CONFIG_USB_ISP1362_HCD is not set
825CONFIG_USB_OHCI_HCD=y
826# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
827# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
828CONFIG_USB_OHCI_LITTLE_ENDIAN=y
829# CONFIG_USB_SL811_HCD is not set
830# CONFIG_USB_R8A66597_HCD is not set
831# CONFIG_USB_HWA_HCD is not set
855 832
856# 833#
857# MMC/SD Card support 834# USB Device Class drivers
858# 835#
859# CONFIG_MMC is not set 836# CONFIG_USB_ACM is not set
837# CONFIG_USB_PRINTER is not set
838# CONFIG_USB_WDM is not set
839# CONFIG_USB_TMC is not set
860 840
861# 841#
862# LED devices 842# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
863# 843#
864# CONFIG_NEW_LEDS is not set
865 844
866# 845#
867# LED drivers 846# also be needed; see USB_STORAGE Help for more info
868# 847#
848# CONFIG_USB_LIBUSUAL is not set
869 849
870# 850#
871# LED Triggers 851# USB Imaging devices
872# 852#
853# CONFIG_USB_MDC800 is not set
873 854
874# 855#
875# InfiniBand support 856# USB port drivers
876# 857#
858# CONFIG_USB_SERIAL is not set
877 859
878# 860#
879# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 861# USB Miscellaneous drivers
880# 862#
863# CONFIG_USB_EMI62 is not set
864# CONFIG_USB_EMI26 is not set
865# CONFIG_USB_ADUTUX is not set
866# CONFIG_USB_SEVSEG is not set
867# CONFIG_USB_RIO500 is not set
868# CONFIG_USB_LEGOTOWER is not set
869# CONFIG_USB_LCD is not set
870# CONFIG_USB_BERRY_CHARGE is not set
871# CONFIG_USB_LED is not set
872# CONFIG_USB_CYPRESS_CY7C63 is not set
873# CONFIG_USB_CYTHERM is not set
874# CONFIG_USB_IDMOUSE is not set
875# CONFIG_USB_FTDI_ELAN is not set
876# CONFIG_USB_APPLEDISPLAY is not set
877# CONFIG_USB_LD is not set
878# CONFIG_USB_TRANCEVIBRATOR is not set
879# CONFIG_USB_IOWARRIOR is not set
880# CONFIG_USB_TEST is not set
881# CONFIG_USB_ISIGHTFW is not set
882# CONFIG_USB_VST is not set
883# CONFIG_USB_GADGET is not set
881 884
882# 885#
883# Real Time Clock 886# OTG and related infrastructure
884# 887#
885# CONFIG_RTC_CLASS is not set 888# CONFIG_USB_GPIO_VBUS is not set
889# CONFIG_NOP_USB_XCEIV is not set
890# CONFIG_MMC is not set
891# CONFIG_MEMSTICK is not set
892# CONFIG_NEW_LEDS is not set
893# CONFIG_ACCESSIBILITY is not set
894CONFIG_RTC_LIB=y
895CONFIG_RTC_CLASS=y
896CONFIG_RTC_HCTOSYS=y
897CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
898# CONFIG_RTC_DEBUG is not set
886 899
887# 900#
888# DMA Engine support 901# RTC interfaces
889# 902#
890# CONFIG_DMA_ENGINE is not set 903CONFIG_RTC_INTF_SYSFS=y
904CONFIG_RTC_INTF_PROC=y
905CONFIG_RTC_INTF_DEV=y
906# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
907# CONFIG_RTC_DRV_TEST is not set
891 908
892# 909#
893# DMA Clients 910# SPI RTC drivers
894# 911#
895 912
896# 913#
897# DMA Devices 914# Platform RTC drivers
898# 915#
916# CONFIG_RTC_DRV_CMOS is not set
917# CONFIG_RTC_DRV_DS1286 is not set
918# CONFIG_RTC_DRV_DS1511 is not set
919# CONFIG_RTC_DRV_DS1553 is not set
920# CONFIG_RTC_DRV_DS1742 is not set
921# CONFIG_RTC_DRV_STK17TA8 is not set
922# CONFIG_RTC_DRV_M48T86 is not set
923# CONFIG_RTC_DRV_M48T35 is not set
924# CONFIG_RTC_DRV_M48T59 is not set
925# CONFIG_RTC_DRV_MSM6242 is not set
926# CONFIG_RTC_DRV_BQ4802 is not set
927# CONFIG_RTC_DRV_RP5C01 is not set
928# CONFIG_RTC_DRV_V3020 is not set
899 929
900# 930#
901# Auxiliary Display support 931# on-CPU RTC drivers
902# 932#
933CONFIG_RTC_DRV_AU1XXX=y
934# CONFIG_DMADEVICES is not set
935# CONFIG_AUXDISPLAY is not set
936# CONFIG_UIO is not set
903 937
904# 938#
905# Virtualization 939# TI VLYNQ
906# 940#
941# CONFIG_STAGING is not set
907 942
908# 943#
909# File systems 944# File systems
910# 945#
911CONFIG_EXT2_FS=y 946CONFIG_EXT2_FS=y
912CONFIG_EXT2_FS_XATTR=y 947# CONFIG_EXT2_FS_XATTR is not set
913CONFIG_EXT2_FS_POSIX_ACL=y
914# CONFIG_EXT2_FS_SECURITY is not set
915# CONFIG_EXT2_FS_XIP is not set 948# CONFIG_EXT2_FS_XIP is not set
916CONFIG_EXT3_FS=y 949CONFIG_EXT3_FS=y
917CONFIG_EXT3_FS_XATTR=y 950# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
918CONFIG_EXT3_FS_POSIX_ACL=y 951# CONFIG_EXT3_FS_XATTR is not set
919CONFIG_EXT3_FS_SECURITY=y 952# CONFIG_EXT4_FS is not set
920# CONFIG_EXT4DEV_FS is not set
921CONFIG_JBD=y 953CONFIG_JBD=y
922# CONFIG_JBD_DEBUG is not set 954# CONFIG_REISERFS_FS is not set
923CONFIG_FS_MBCACHE=y
924CONFIG_REISERFS_FS=m
925# CONFIG_REISERFS_CHECK is not set
926# CONFIG_REISERFS_PROC_INFO is not set
927CONFIG_REISERFS_FS_XATTR=y
928CONFIG_REISERFS_FS_POSIX_ACL=y
929CONFIG_REISERFS_FS_SECURITY=y
930# CONFIG_JFS_FS is not set 955# CONFIG_JFS_FS is not set
931CONFIG_FS_POSIX_ACL=y 956# CONFIG_FS_POSIX_ACL is not set
932# CONFIG_XFS_FS is not set 957# CONFIG_XFS_FS is not set
933# CONFIG_GFS2_FS is not set
934# CONFIG_OCFS2_FS is not set 958# CONFIG_OCFS2_FS is not set
935# CONFIG_MINIX_FS is not set 959# CONFIG_BTRFS_FS is not set
936# CONFIG_ROMFS_FS is not set 960# CONFIG_NILFS2_FS is not set
961CONFIG_FILE_LOCKING=y
962CONFIG_FSNOTIFY=y
963CONFIG_DNOTIFY=y
937CONFIG_INOTIFY=y 964CONFIG_INOTIFY=y
938CONFIG_INOTIFY_USER=y 965CONFIG_INOTIFY_USER=y
939# CONFIG_QUOTA is not set 966# CONFIG_QUOTA is not set
940CONFIG_DNOTIFY=y 967# CONFIG_AUTOFS_FS is not set
941CONFIG_AUTOFS_FS=m 968# CONFIG_AUTOFS4_FS is not set
942CONFIG_AUTOFS4_FS=m 969# CONFIG_FUSE_FS is not set
943CONFIG_FUSE_FS=m 970
944CONFIG_GENERIC_ACL=y 971#
972# Caches
973#
974# CONFIG_FSCACHE is not set
945 975
946# 976#
947# CD-ROM/DVD Filesystems 977# CD-ROM/DVD Filesystems
@@ -960,74 +990,65 @@ CONFIG_GENERIC_ACL=y
960# Pseudo filesystems 990# Pseudo filesystems
961# 991#
962CONFIG_PROC_FS=y 992CONFIG_PROC_FS=y
963CONFIG_PROC_KCORE=y 993# CONFIG_PROC_KCORE is not set
964CONFIG_PROC_SYSCTL=y 994CONFIG_PROC_SYSCTL=y
995# CONFIG_PROC_PAGE_MONITOR is not set
965CONFIG_SYSFS=y 996CONFIG_SYSFS=y
966CONFIG_TMPFS=y 997CONFIG_TMPFS=y
967CONFIG_TMPFS_POSIX_ACL=y 998# CONFIG_TMPFS_POSIX_ACL is not set
968# CONFIG_HUGETLB_PAGE is not set 999# CONFIG_HUGETLB_PAGE is not set
969CONFIG_RAMFS=y 1000# CONFIG_CONFIGFS_FS is not set
970CONFIG_CONFIGFS_FS=m 1001CONFIG_MISC_FILESYSTEMS=y
971
972#
973# Miscellaneous filesystems
974#
975# CONFIG_ADFS_FS is not set 1002# CONFIG_ADFS_FS is not set
976# CONFIG_AFFS_FS is not set 1003# CONFIG_AFFS_FS is not set
977# CONFIG_ECRYPT_FS is not set
978# CONFIG_HFS_FS is not set 1004# CONFIG_HFS_FS is not set
979# CONFIG_HFSPLUS_FS is not set 1005# CONFIG_HFSPLUS_FS is not set
980# CONFIG_BEFS_FS is not set 1006# CONFIG_BEFS_FS is not set
981# CONFIG_BFS_FS is not set 1007# CONFIG_BFS_FS is not set
982# CONFIG_EFS_FS is not set 1008# CONFIG_EFS_FS is not set
983# CONFIG_JFFS2_FS is not set 1009# CONFIG_JFFS2_FS is not set
984CONFIG_CRAMFS=m 1010CONFIG_CRAMFS=y
1011CONFIG_SQUASHFS=y
1012# CONFIG_SQUASHFS_EMBEDDED is not set
1013CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
985# CONFIG_VXFS_FS is not set 1014# CONFIG_VXFS_FS is not set
1015# CONFIG_MINIX_FS is not set
1016# CONFIG_OMFS_FS is not set
986# CONFIG_HPFS_FS is not set 1017# CONFIG_HPFS_FS is not set
987# CONFIG_QNX4FS_FS is not set 1018# CONFIG_QNX4FS_FS is not set
1019# CONFIG_ROMFS_FS is not set
988# CONFIG_SYSV_FS is not set 1020# CONFIG_SYSV_FS is not set
989# CONFIG_UFS_FS is not set 1021# CONFIG_UFS_FS is not set
990 1022CONFIG_NETWORK_FILESYSTEMS=y
991#
992# Network File Systems
993#
994CONFIG_NFS_FS=y 1023CONFIG_NFS_FS=y
995# CONFIG_NFS_V3 is not set 1024CONFIG_NFS_V3=y
1025# CONFIG_NFS_V3_ACL is not set
996# CONFIG_NFS_V4 is not set 1026# CONFIG_NFS_V4 is not set
997# CONFIG_NFS_DIRECTIO is not set
998CONFIG_NFSD=m
999# CONFIG_NFSD_V3 is not set
1000# CONFIG_NFSD_TCP is not set
1001CONFIG_ROOT_NFS=y 1027CONFIG_ROOT_NFS=y
1028# CONFIG_NFSD is not set
1002CONFIG_LOCKD=y 1029CONFIG_LOCKD=y
1003CONFIG_EXPORTFS=m 1030CONFIG_LOCKD_V4=y
1004CONFIG_NFS_COMMON=y 1031CONFIG_NFS_COMMON=y
1005CONFIG_SUNRPC=y 1032CONFIG_SUNRPC=y
1006# CONFIG_RPCSEC_GSS_KRB5 is not set 1033# CONFIG_RPCSEC_GSS_KRB5 is not set
1007# CONFIG_RPCSEC_GSS_SPKM3 is not set 1034# CONFIG_RPCSEC_GSS_SPKM3 is not set
1008CONFIG_SMB_FS=m 1035# CONFIG_SMB_FS is not set
1009# CONFIG_SMB_NLS_DEFAULT is not set
1010# CONFIG_CIFS is not set 1036# CONFIG_CIFS is not set
1011# CONFIG_NCP_FS is not set 1037# CONFIG_NCP_FS is not set
1012# CONFIG_CODA_FS is not set 1038# CONFIG_CODA_FS is not set
1013# CONFIG_AFS_FS is not set 1039# CONFIG_AFS_FS is not set
1014# CONFIG_9P_FS is not set
1015 1040
1016# 1041#
1017# Partition Types 1042# Partition Types
1018# 1043#
1019# CONFIG_PARTITION_ADVANCED is not set 1044# CONFIG_PARTITION_ADVANCED is not set
1020CONFIG_MSDOS_PARTITION=y 1045CONFIG_MSDOS_PARTITION=y
1021 1046CONFIG_NLS=y
1022#
1023# Native Language Support
1024#
1025CONFIG_NLS=m
1026CONFIG_NLS_DEFAULT="iso8859-1" 1047CONFIG_NLS_DEFAULT="iso8859-1"
1027# CONFIG_NLS_CODEPAGE_437 is not set 1048CONFIG_NLS_CODEPAGE_437=y
1028# CONFIG_NLS_CODEPAGE_737 is not set 1049# CONFIG_NLS_CODEPAGE_737 is not set
1029# CONFIG_NLS_CODEPAGE_775 is not set 1050# CONFIG_NLS_CODEPAGE_775 is not set
1030# CONFIG_NLS_CODEPAGE_850 is not set 1051CONFIG_NLS_CODEPAGE_850=y
1031# CONFIG_NLS_CODEPAGE_852 is not set 1052# CONFIG_NLS_CODEPAGE_852 is not set
1032# CONFIG_NLS_CODEPAGE_855 is not set 1053# CONFIG_NLS_CODEPAGE_855 is not set
1033# CONFIG_NLS_CODEPAGE_857 is not set 1054# CONFIG_NLS_CODEPAGE_857 is not set
@@ -1045,10 +1066,10 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1045# CONFIG_NLS_CODEPAGE_949 is not set 1066# CONFIG_NLS_CODEPAGE_949 is not set
1046# CONFIG_NLS_CODEPAGE_874 is not set 1067# CONFIG_NLS_CODEPAGE_874 is not set
1047# CONFIG_NLS_ISO8859_8 is not set 1068# CONFIG_NLS_ISO8859_8 is not set
1048# CONFIG_NLS_CODEPAGE_1250 is not set 1069CONFIG_NLS_CODEPAGE_1250=y
1049# CONFIG_NLS_CODEPAGE_1251 is not set 1070# CONFIG_NLS_CODEPAGE_1251 is not set
1050# CONFIG_NLS_ASCII is not set 1071# CONFIG_NLS_ASCII is not set
1051# CONFIG_NLS_ISO8859_1 is not set 1072CONFIG_NLS_ISO8859_1=y
1052# CONFIG_NLS_ISO8859_2 is not set 1073# CONFIG_NLS_ISO8859_2 is not set
1053# CONFIG_NLS_ISO8859_3 is not set 1074# CONFIG_NLS_ISO8859_3 is not set
1054# CONFIG_NLS_ISO8859_4 is not set 1075# CONFIG_NLS_ISO8859_4 is not set
@@ -1058,38 +1079,75 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1058# CONFIG_NLS_ISO8859_9 is not set 1079# CONFIG_NLS_ISO8859_9 is not set
1059# CONFIG_NLS_ISO8859_13 is not set 1080# CONFIG_NLS_ISO8859_13 is not set
1060# CONFIG_NLS_ISO8859_14 is not set 1081# CONFIG_NLS_ISO8859_14 is not set
1061# CONFIG_NLS_ISO8859_15 is not set 1082CONFIG_NLS_ISO8859_15=y
1062# CONFIG_NLS_KOI8_R is not set 1083# CONFIG_NLS_KOI8_R is not set
1063# CONFIG_NLS_KOI8_U is not set 1084# CONFIG_NLS_KOI8_U is not set
1064# CONFIG_NLS_UTF8 is not set 1085CONFIG_NLS_UTF8=y
1065 1086# CONFIG_DLM is not set
1066#
1067# Distributed Lock Manager
1068#
1069CONFIG_DLM=m
1070CONFIG_DLM_TCP=y
1071# CONFIG_DLM_SCTP is not set
1072# CONFIG_DLM_DEBUG is not set
1073
1074#
1075# Profiling support
1076#
1077# CONFIG_PROFILING is not set
1078 1087
1079# 1088#
1080# Kernel hacking 1089# Kernel hacking
1081# 1090#
1082CONFIG_TRACE_IRQFLAGS_SUPPORT=y 1091CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1083# CONFIG_PRINTK_TIME is not set 1092# CONFIG_PRINTK_TIME is not set
1084CONFIG_ENABLE_MUST_CHECK=y 1093# CONFIG_ENABLE_WARN_DEPRECATED is not set
1094# CONFIG_ENABLE_MUST_CHECK is not set
1095CONFIG_FRAME_WARN=1024
1085# CONFIG_MAGIC_SYSRQ is not set 1096# CONFIG_MAGIC_SYSRQ is not set
1097CONFIG_STRIP_ASM_SYMS=y
1086# CONFIG_UNUSED_SYMBOLS is not set 1098# CONFIG_UNUSED_SYMBOLS is not set
1087# CONFIG_DEBUG_FS is not set 1099# CONFIG_DEBUG_FS is not set
1088# CONFIG_HEADERS_CHECK is not set 1100# CONFIG_HEADERS_CHECK is not set
1089# CONFIG_DEBUG_KERNEL is not set 1101CONFIG_DEBUG_KERNEL=y
1090CONFIG_LOG_BUF_SHIFT=14 1102# CONFIG_DEBUG_SHIRQ is not set
1091CONFIG_CROSSCOMPILE=y 1103# CONFIG_DETECT_SOFTLOCKUP is not set
1104# CONFIG_DETECT_HUNG_TASK is not set
1105# CONFIG_SCHED_DEBUG is not set
1106# CONFIG_SCHEDSTATS is not set
1107# CONFIG_TIMER_STATS is not set
1108# CONFIG_DEBUG_OBJECTS is not set
1109# CONFIG_DEBUG_SLAB is not set
1110# CONFIG_DEBUG_RT_MUTEXES is not set
1111# CONFIG_RT_MUTEX_TESTER is not set
1112# CONFIG_DEBUG_SPINLOCK is not set
1113# CONFIG_DEBUG_MUTEXES is not set
1114# CONFIG_DEBUG_LOCK_ALLOC is not set
1115# CONFIG_PROVE_LOCKING is not set
1116# CONFIG_LOCK_STAT is not set
1117# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1118# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1119# CONFIG_DEBUG_KOBJECT is not set
1120# CONFIG_DEBUG_INFO is not set
1121# CONFIG_DEBUG_VM is not set
1122# CONFIG_DEBUG_WRITECOUNT is not set
1123# CONFIG_DEBUG_MEMORY_INIT is not set
1124# CONFIG_DEBUG_LIST is not set
1125# CONFIG_DEBUG_SG is not set
1126# CONFIG_DEBUG_NOTIFIERS is not set
1127# CONFIG_DEBUG_CREDENTIALS is not set
1128# CONFIG_BOOT_PRINTK_DELAY is not set
1129# CONFIG_RCU_TORTURE_TEST is not set
1130# CONFIG_BACKTRACE_SELF_TEST is not set
1131# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1132# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1133# CONFIG_FAULT_INJECTION is not set
1134# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1135# CONFIG_PAGE_POISONING is not set
1136CONFIG_HAVE_FUNCTION_TRACER=y
1137CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1138CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
1139CONFIG_HAVE_DYNAMIC_FTRACE=y
1140CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1141CONFIG_TRACING_SUPPORT=y
1142# CONFIG_FTRACE is not set
1143# CONFIG_SAMPLES is not set
1144CONFIG_HAVE_ARCH_KGDB=y
1145# CONFIG_KGDB is not set
1146CONFIG_EARLY_PRINTK=y
1092# CONFIG_CMDLINE_BOOL is not set 1147# CONFIG_CMDLINE_BOOL is not set
1148# CONFIG_DEBUG_STACK_USAGE is not set
1149# CONFIG_RUNTIME_DEBUG is not set
1150CONFIG_DEBUG_ZBOOT=y
1093 1151
1094# 1152#
1095# Security options 1153# Security options
@@ -1097,67 +1155,29 @@ CONFIG_CROSSCOMPILE=y
1097CONFIG_KEYS=y 1155CONFIG_KEYS=y
1098CONFIG_KEYS_DEBUG_PROC_KEYS=y 1156CONFIG_KEYS_DEBUG_PROC_KEYS=y
1099# CONFIG_SECURITY is not set 1157# CONFIG_SECURITY is not set
1100 1158# CONFIG_SECURITYFS is not set
1101# 1159# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1102# Cryptographic options 1160# CONFIG_DEFAULT_SECURITY_SMACK is not set
1103# 1161# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1104CONFIG_CRYPTO=y 1162CONFIG_DEFAULT_SECURITY_DAC=y
1105CONFIG_CRYPTO_ALGAPI=y 1163CONFIG_DEFAULT_SECURITY=""
1106CONFIG_CRYPTO_BLKCIPHER=m 1164# CONFIG_CRYPTO is not set
1107CONFIG_CRYPTO_HASH=y 1165# CONFIG_BINARY_PRINTF is not set
1108CONFIG_CRYPTO_MANAGER=y
1109CONFIG_CRYPTO_HMAC=y
1110CONFIG_CRYPTO_XCBC=m
1111CONFIG_CRYPTO_NULL=m
1112CONFIG_CRYPTO_MD4=m
1113CONFIG_CRYPTO_MD5=y
1114CONFIG_CRYPTO_SHA1=m
1115CONFIG_CRYPTO_SHA256=m
1116CONFIG_CRYPTO_SHA512=m
1117CONFIG_CRYPTO_WP512=m
1118CONFIG_CRYPTO_TGR192=m
1119CONFIG_CRYPTO_GF128MUL=m
1120CONFIG_CRYPTO_ECB=m
1121CONFIG_CRYPTO_CBC=m
1122CONFIG_CRYPTO_PCBC=m
1123CONFIG_CRYPTO_LRW=m
1124CONFIG_CRYPTO_DES=m
1125CONFIG_CRYPTO_FCRYPT=m
1126CONFIG_CRYPTO_BLOWFISH=m
1127CONFIG_CRYPTO_TWOFISH=m
1128CONFIG_CRYPTO_TWOFISH_COMMON=m
1129CONFIG_CRYPTO_SERPENT=m
1130CONFIG_CRYPTO_AES=m
1131CONFIG_CRYPTO_CAST5=m
1132CONFIG_CRYPTO_CAST6=m
1133CONFIG_CRYPTO_TEA=m
1134CONFIG_CRYPTO_ARC4=m
1135CONFIG_CRYPTO_KHAZAD=m
1136CONFIG_CRYPTO_ANUBIS=m
1137CONFIG_CRYPTO_DEFLATE=m
1138CONFIG_CRYPTO_MICHAEL_MIC=m
1139CONFIG_CRYPTO_CRC32C=m
1140CONFIG_CRYPTO_CAMELLIA=m
1141# CONFIG_CRYPTO_TEST is not set
1142
1143#
1144# Hardware crypto devices
1145#
1146 1166
1147# 1167#
1148# Library routines 1168# Library routines
1149# 1169#
1150CONFIG_BITREVERSE=y 1170CONFIG_BITREVERSE=y
1151CONFIG_CRC_CCITT=m 1171CONFIG_GENERIC_FIND_LAST_BIT=y
1152CONFIG_CRC16=m 1172# CONFIG_CRC_CCITT is not set
1173# CONFIG_CRC16 is not set
1174# CONFIG_CRC_T10DIF is not set
1175# CONFIG_CRC_ITU_T is not set
1153CONFIG_CRC32=y 1176CONFIG_CRC32=y
1154CONFIG_LIBCRC32C=m 1177# CONFIG_CRC7 is not set
1155CONFIG_ZLIB_INFLATE=m 1178# CONFIG_LIBCRC32C is not set
1156CONFIG_ZLIB_DEFLATE=m 1179CONFIG_ZLIB_INFLATE=y
1157CONFIG_TEXTSEARCH=y
1158CONFIG_TEXTSEARCH_KMP=m
1159CONFIG_TEXTSEARCH_BM=m
1160CONFIG_TEXTSEARCH_FSM=m
1161CONFIG_PLIST=y
1162CONFIG_HAS_IOMEM=y 1180CONFIG_HAS_IOMEM=y
1163CONFIG_HAS_IOPORT=y 1181CONFIG_HAS_IOPORT=y
1182CONFIG_HAS_DMA=y
1183CONFIG_NLATTR=y
diff --git a/arch/mips/configs/db1100_defconfig b/arch/mips/configs/db1100_defconfig
index 90812830e940..abb9a5805adc 100644
--- a/arch/mips/configs/db1100_defconfig
+++ b/arch/mips/configs/db1100_defconfig
@@ -1,78 +1,102 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20 3# Linux kernel version: 2.6.33
4# Tue Feb 20 21:47:24 2007 4# Fri Feb 26 08:50:15 2010
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
8# 8#
9# Machine selection 9# Machine selection
10# 10#
11CONFIG_ZONE_DMA=y
12CONFIG_MACH_ALCHEMY=y 11CONFIG_MACH_ALCHEMY=y
13# CONFIG_MIPS_MTX1 is not set 12# CONFIG_AR7 is not set
14# CONFIG_MIPS_BOSPORUS is not set 13# CONFIG_BCM47XX is not set
15# CONFIG_MIPS_PB1000 is not set 14# CONFIG_BCM63XX is not set
16# CONFIG_MIPS_PB1100 is not set
17# CONFIG_MIPS_PB1500 is not set
18# CONFIG_MIPS_PB1550 is not set
19# CONFIG_MIPS_PB1200 is not set
20# CONFIG_MIPS_DB1000 is not set
21CONFIG_MIPS_DB1100=y
22# CONFIG_MIPS_DB1500 is not set
23# CONFIG_MIPS_DB1550 is not set
24# CONFIG_MIPS_DB1200 is not set
25# CONFIG_MIPS_MIRAGE is not set
26# CONFIG_MIPS_COBALT is not set 15# CONFIG_MIPS_COBALT is not set
27# CONFIG_MACH_DECSTATION is not set 16# CONFIG_MACH_DECSTATION is not set
28# CONFIG_MACH_JAZZ is not set 17# CONFIG_MACH_JAZZ is not set
18# CONFIG_LASAT is not set
19# CONFIG_MACH_LOONGSON is not set
29# CONFIG_MIPS_MALTA is not set 20# CONFIG_MIPS_MALTA is not set
30# CONFIG_WR_PPMC is not set
31# CONFIG_MIPS_SIM is not set 21# CONFIG_MIPS_SIM is not set
32# CONFIG_MOMENCO_JAGUAR_ATX is not set 22# CONFIG_NEC_MARKEINS is not set
33# CONFIG_MIPS_XXS1500 is not set 23# CONFIG_MACH_VR41XX is not set
24# CONFIG_NXP_STB220 is not set
25# CONFIG_NXP_STB225 is not set
34# CONFIG_PNX8550_JBS is not set 26# CONFIG_PNX8550_JBS is not set
35# CONFIG_PNX8550_STB810 is not set 27# CONFIG_PNX8550_STB810 is not set
36# CONFIG_MACH_VR41XX is not set 28# CONFIG_PMC_MSP is not set
37# CONFIG_PMC_YOSEMITE is not set 29# CONFIG_PMC_YOSEMITE is not set
38# CONFIG_MARKEINS is not set 30# CONFIG_POWERTV is not set
39# CONFIG_SGI_IP22 is not set 31# CONFIG_SGI_IP22 is not set
40# CONFIG_SGI_IP27 is not set 32# CONFIG_SGI_IP27 is not set
33# CONFIG_SGI_IP28 is not set
41# CONFIG_SGI_IP32 is not set 34# CONFIG_SGI_IP32 is not set
42# CONFIG_SIBYTE_BIGSUR is not set
43# CONFIG_SIBYTE_SWARM is not set
44# CONFIG_SIBYTE_SENTOSA is not set
45# CONFIG_SIBYTE_RHONE is not set
46# CONFIG_SIBYTE_CARMEL is not set
47# CONFIG_SIBYTE_LITTLESUR is not set
48# CONFIG_SIBYTE_CRHINE is not set 35# CONFIG_SIBYTE_CRHINE is not set
36# CONFIG_SIBYTE_CARMEL is not set
49# CONFIG_SIBYTE_CRHONE is not set 37# CONFIG_SIBYTE_CRHONE is not set
38# CONFIG_SIBYTE_RHONE is not set
39# CONFIG_SIBYTE_SWARM is not set
40# CONFIG_SIBYTE_LITTLESUR is not set
41# CONFIG_SIBYTE_SENTOSA is not set
42# CONFIG_SIBYTE_BIGSUR is not set
50# CONFIG_SNI_RM is not set 43# CONFIG_SNI_RM is not set
51# CONFIG_TOSHIBA_JMR3927 is not set 44# CONFIG_MACH_TX39XX is not set
52# CONFIG_TOSHIBA_RBTX4927 is not set 45# CONFIG_MACH_TX49XX is not set
53# CONFIG_TOSHIBA_RBTX4938 is not set 46# CONFIG_MIKROTIK_RB532 is not set
47# CONFIG_WR_PPMC is not set
48# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
49# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
50CONFIG_ALCHEMY_GPIOINT_AU1000=y
51# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
52# CONFIG_MIPS_MTX1 is not set
53# CONFIG_MIPS_BOSPORUS is not set
54# CONFIG_MIPS_DB1000 is not set
55CONFIG_MIPS_DB1100=y
56# CONFIG_MIPS_DB1200 is not set
57# CONFIG_MIPS_DB1500 is not set
58# CONFIG_MIPS_DB1550 is not set
59# CONFIG_MIPS_MIRAGE is not set
60# CONFIG_MIPS_PB1000 is not set
61# CONFIG_MIPS_PB1100 is not set
62# CONFIG_MIPS_PB1200 is not set
63# CONFIG_MIPS_PB1500 is not set
64# CONFIG_MIPS_PB1550 is not set
65# CONFIG_MIPS_XXS1500 is not set
66CONFIG_SOC_AU1100=y
67CONFIG_SOC_AU1X00=y
68CONFIG_LOONGSON_UART_BASE=y
54CONFIG_RWSEM_GENERIC_SPINLOCK=y 69CONFIG_RWSEM_GENERIC_SPINLOCK=y
55# CONFIG_ARCH_HAS_ILOG2_U32 is not set 70# CONFIG_ARCH_HAS_ILOG2_U32 is not set
56# CONFIG_ARCH_HAS_ILOG2_U64 is not set 71# CONFIG_ARCH_HAS_ILOG2_U64 is not set
72CONFIG_ARCH_SUPPORTS_OPROFILE=y
57CONFIG_GENERIC_FIND_NEXT_BIT=y 73CONFIG_GENERIC_FIND_NEXT_BIT=y
58CONFIG_GENERIC_HWEIGHT=y 74CONFIG_GENERIC_HWEIGHT=y
59CONFIG_GENERIC_CALIBRATE_DELAY=y 75CONFIG_GENERIC_CALIBRATE_DELAY=y
76CONFIG_GENERIC_CLOCKEVENTS=y
60CONFIG_GENERIC_TIME=y 77CONFIG_GENERIC_TIME=y
61CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 78CONFIG_GENERIC_CMOS_UPDATE=y
62# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set 79CONFIG_SCHED_OMIT_FRAME_POINTER=y
80CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
81CONFIG_CEVT_R4K_LIB=y
82CONFIG_CSRC_R4K_LIB=y
63CONFIG_DMA_NONCOHERENT=y 83CONFIG_DMA_NONCOHERENT=y
64CONFIG_DMA_NEED_PCI_MAP_STATE=y 84CONFIG_DMA_NEED_PCI_MAP_STATE=y
85CONFIG_SYS_HAS_EARLY_PRINTK=y
86# CONFIG_NO_IOPORT is not set
87CONFIG_GENERIC_GPIO=y
65# CONFIG_CPU_BIG_ENDIAN is not set 88# CONFIG_CPU_BIG_ENDIAN is not set
66CONFIG_CPU_LITTLE_ENDIAN=y 89CONFIG_CPU_LITTLE_ENDIAN=y
67CONFIG_SYS_SUPPORTS_APM_EMULATION=y 90CONFIG_SYS_SUPPORTS_APM_EMULATION=y
68CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y 91CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
69CONFIG_SOC_AU1100=y 92CONFIG_IRQ_CPU=y
70CONFIG_SOC_AU1X00=y
71CONFIG_MIPS_L1_CACHE_SHIFT=5 93CONFIG_MIPS_L1_CACHE_SHIFT=5
72 94
73# 95#
74# CPU selection 96# CPU selection
75# 97#
98# CONFIG_CPU_LOONGSON2E is not set
99# CONFIG_CPU_LOONGSON2F is not set
76CONFIG_CPU_MIPS32_R1=y 100CONFIG_CPU_MIPS32_R1=y
77# CONFIG_CPU_MIPS32_R2 is not set 101# CONFIG_CPU_MIPS32_R2 is not set
78# CONFIG_CPU_MIPS64_R1 is not set 102# CONFIG_CPU_MIPS64_R1 is not set
@@ -85,6 +109,7 @@ CONFIG_CPU_MIPS32_R1=y
85# CONFIG_CPU_TX49XX is not set 109# CONFIG_CPU_TX49XX is not set
86# CONFIG_CPU_R5000 is not set 110# CONFIG_CPU_R5000 is not set
87# CONFIG_CPU_R5432 is not set 111# CONFIG_CPU_R5432 is not set
112# CONFIG_CPU_R5500 is not set
88# CONFIG_CPU_R6000 is not set 113# CONFIG_CPU_R6000 is not set
89# CONFIG_CPU_NEVADA is not set 114# CONFIG_CPU_NEVADA is not set
90# CONFIG_CPU_R8000 is not set 115# CONFIG_CPU_R8000 is not set
@@ -92,11 +117,14 @@ CONFIG_CPU_MIPS32_R1=y
92# CONFIG_CPU_RM7000 is not set 117# CONFIG_CPU_RM7000 is not set
93# CONFIG_CPU_RM9000 is not set 118# CONFIG_CPU_RM9000 is not set
94# CONFIG_CPU_SB1 is not set 119# CONFIG_CPU_SB1 is not set
120# CONFIG_CPU_CAVIUM_OCTEON is not set
121CONFIG_SYS_SUPPORTS_ZBOOT=y
95CONFIG_SYS_HAS_CPU_MIPS32_R1=y 122CONFIG_SYS_HAS_CPU_MIPS32_R1=y
96CONFIG_CPU_MIPS32=y 123CONFIG_CPU_MIPS32=y
97CONFIG_CPU_MIPSR1=y 124CONFIG_CPU_MIPSR1=y
98CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 125CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
99CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y 126CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
127CONFIG_HARDWARE_WATCHPOINTS=y
100 128
101# 129#
102# Kernel type 130# Kernel type
@@ -106,173 +134,242 @@ CONFIG_32BIT=y
106CONFIG_PAGE_SIZE_4KB=y 134CONFIG_PAGE_SIZE_4KB=y
107# CONFIG_PAGE_SIZE_8KB is not set 135# CONFIG_PAGE_SIZE_8KB is not set
108# CONFIG_PAGE_SIZE_16KB is not set 136# CONFIG_PAGE_SIZE_16KB is not set
137# CONFIG_PAGE_SIZE_32KB is not set
109# CONFIG_PAGE_SIZE_64KB is not set 138# CONFIG_PAGE_SIZE_64KB is not set
110CONFIG_CPU_HAS_PREFETCH=y 139CONFIG_CPU_HAS_PREFETCH=y
111CONFIG_MIPS_MT_DISABLED=y 140CONFIG_MIPS_MT_DISABLED=y
112# CONFIG_MIPS_MT_SMP is not set 141# CONFIG_MIPS_MT_SMP is not set
113# CONFIG_MIPS_MT_SMTC is not set 142# CONFIG_MIPS_MT_SMTC is not set
114# CONFIG_MIPS_VPE_LOADER is not set
115CONFIG_64BIT_PHYS_ADDR=y 143CONFIG_64BIT_PHYS_ADDR=y
144CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
116CONFIG_CPU_HAS_SYNC=y 145CONFIG_CPU_HAS_SYNC=y
117CONFIG_GENERIC_HARDIRQS=y 146CONFIG_GENERIC_HARDIRQS=y
118CONFIG_GENERIC_IRQ_PROBE=y 147CONFIG_GENERIC_IRQ_PROBE=y
119CONFIG_CPU_SUPPORTS_HIGHMEM=y 148CONFIG_CPU_SUPPORTS_HIGHMEM=y
120CONFIG_ARCH_FLATMEM_ENABLE=y 149CONFIG_ARCH_FLATMEM_ENABLE=y
150CONFIG_ARCH_POPULATES_NODE_MAP=y
121CONFIG_SELECT_MEMORY_MODEL=y 151CONFIG_SELECT_MEMORY_MODEL=y
122CONFIG_FLATMEM_MANUAL=y 152CONFIG_FLATMEM_MANUAL=y
123# CONFIG_DISCONTIGMEM_MANUAL is not set 153# CONFIG_DISCONTIGMEM_MANUAL is not set
124# CONFIG_SPARSEMEM_MANUAL is not set 154# CONFIG_SPARSEMEM_MANUAL is not set
125CONFIG_FLATMEM=y 155CONFIG_FLATMEM=y
126CONFIG_FLAT_NODE_MEM_MAP=y 156CONFIG_FLAT_NODE_MEM_MAP=y
127# CONFIG_SPARSEMEM_STATIC is not set 157CONFIG_PAGEFLAGS_EXTENDED=y
128CONFIG_SPLIT_PTLOCK_CPUS=4 158CONFIG_SPLIT_PTLOCK_CPUS=4
129# CONFIG_RESOURCES_64BIT is not set 159CONFIG_PHYS_ADDR_T_64BIT=y
130CONFIG_ZONE_DMA_FLAG=1 160CONFIG_ZONE_DMA_FLAG=0
161CONFIG_VIRT_TO_BUS=y
162# CONFIG_KSM is not set
163CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
164CONFIG_TICK_ONESHOT=y
165CONFIG_NO_HZ=y
166CONFIG_HIGH_RES_TIMERS=y
167CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
131# CONFIG_HZ_48 is not set 168# CONFIG_HZ_48 is not set
132# CONFIG_HZ_100 is not set 169CONFIG_HZ_100=y
133# CONFIG_HZ_128 is not set 170# CONFIG_HZ_128 is not set
134# CONFIG_HZ_250 is not set 171# CONFIG_HZ_250 is not set
135# CONFIG_HZ_256 is not set 172# CONFIG_HZ_256 is not set
136CONFIG_HZ_1000=y 173# CONFIG_HZ_1000 is not set
137# CONFIG_HZ_1024 is not set 174# CONFIG_HZ_1024 is not set
138CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 175CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
139CONFIG_HZ=1000 176CONFIG_HZ=100
140CONFIG_PREEMPT_NONE=y 177CONFIG_PREEMPT_NONE=y
141# CONFIG_PREEMPT_VOLUNTARY is not set 178# CONFIG_PREEMPT_VOLUNTARY is not set
142# CONFIG_PREEMPT is not set 179# CONFIG_PREEMPT is not set
143# CONFIG_KEXEC is not set 180# CONFIG_KEXEC is not set
181# CONFIG_SECCOMP is not set
144CONFIG_LOCKDEP_SUPPORT=y 182CONFIG_LOCKDEP_SUPPORT=y
145CONFIG_STACKTRACE_SUPPORT=y 183CONFIG_STACKTRACE_SUPPORT=y
146CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 184CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
185CONFIG_CONSTRUCTORS=y
147 186
148# 187#
149# Code maturity level options 188# General setup
150# 189#
151CONFIG_EXPERIMENTAL=y 190CONFIG_EXPERIMENTAL=y
152CONFIG_BROKEN_ON_SMP=y 191CONFIG_BROKEN_ON_SMP=y
153CONFIG_INIT_ENV_ARG_LIMIT=32 192CONFIG_INIT_ENV_ARG_LIMIT=32
154 193CONFIG_LOCALVERSION="-db1100"
155#
156# General setup
157#
158CONFIG_LOCALVERSION=""
159CONFIG_LOCALVERSION_AUTO=y 194CONFIG_LOCALVERSION_AUTO=y
195CONFIG_HAVE_KERNEL_GZIP=y
196CONFIG_HAVE_KERNEL_BZIP2=y
197CONFIG_HAVE_KERNEL_LZMA=y
198CONFIG_HAVE_KERNEL_LZO=y
199# CONFIG_KERNEL_GZIP is not set
200# CONFIG_KERNEL_BZIP2 is not set
201CONFIG_KERNEL_LZMA=y
202# CONFIG_KERNEL_LZO is not set
160CONFIG_SWAP=y 203CONFIG_SWAP=y
161CONFIG_SYSVIPC=y 204CONFIG_SYSVIPC=y
162# CONFIG_IPC_NS is not set
163CONFIG_SYSVIPC_SYSCTL=y 205CONFIG_SYSVIPC_SYSCTL=y
164# CONFIG_POSIX_MQUEUE is not set 206CONFIG_POSIX_MQUEUE=y
207CONFIG_POSIX_MQUEUE_SYSCTL=y
165# CONFIG_BSD_PROCESS_ACCT is not set 208# CONFIG_BSD_PROCESS_ACCT is not set
166# CONFIG_TASKSTATS is not set 209# CONFIG_TASKSTATS is not set
167# CONFIG_UTS_NS is not set
168# CONFIG_AUDIT is not set 210# CONFIG_AUDIT is not set
211
212#
213# RCU Subsystem
214#
215# CONFIG_TREE_RCU is not set
216# CONFIG_TREE_PREEMPT_RCU is not set
217CONFIG_TINY_RCU=y
218# CONFIG_TREE_RCU_TRACE is not set
169# CONFIG_IKCONFIG is not set 219# CONFIG_IKCONFIG is not set
170CONFIG_SYSFS_DEPRECATED=y 220CONFIG_LOG_BUF_SHIFT=14
171CONFIG_RELAY=y 221# CONFIG_GROUP_SCHED is not set
172# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 222# CONFIG_CGROUPS is not set
223# CONFIG_SYSFS_DEPRECATED_V2 is not set
224# CONFIG_RELAY is not set
225# CONFIG_NAMESPACES is not set
226# CONFIG_BLK_DEV_INITRD is not set
227CONFIG_CC_OPTIMIZE_FOR_SIZE=y
173CONFIG_SYSCTL=y 228CONFIG_SYSCTL=y
229CONFIG_ANON_INODES=y
174CONFIG_EMBEDDED=y 230CONFIG_EMBEDDED=y
175CONFIG_SYSCTL_SYSCALL=y 231# CONFIG_SYSCTL_SYSCALL is not set
176CONFIG_KALLSYMS=y 232# CONFIG_KALLSYMS is not set
177# CONFIG_KALLSYMS_EXTRA_PASS is not set
178CONFIG_HOTPLUG=y 233CONFIG_HOTPLUG=y
179CONFIG_PRINTK=y 234CONFIG_PRINTK=y
180CONFIG_BUG=y 235CONFIG_BUG=y
181CONFIG_ELF_CORE=y 236CONFIG_ELF_CORE=y
237# CONFIG_PCSPKR_PLATFORM is not set
182CONFIG_BASE_FULL=y 238CONFIG_BASE_FULL=y
183CONFIG_FUTEX=y 239CONFIG_FUTEX=y
184CONFIG_EPOLL=y 240CONFIG_EPOLL=y
241CONFIG_SIGNALFD=y
242CONFIG_TIMERFD=y
243CONFIG_EVENTFD=y
185CONFIG_SHMEM=y 244CONFIG_SHMEM=y
186CONFIG_SLAB=y 245CONFIG_AIO=y
246
247#
248# Kernel Performance Events And Counters
249#
187CONFIG_VM_EVENT_COUNTERS=y 250CONFIG_VM_EVENT_COUNTERS=y
188CONFIG_RT_MUTEXES=y 251# CONFIG_COMPAT_BRK is not set
189# CONFIG_TINY_SHMEM is not set 252CONFIG_SLAB=y
190CONFIG_BASE_SMALL=0 253# CONFIG_SLUB is not set
191# CONFIG_SLOB is not set 254# CONFIG_SLOB is not set
255# CONFIG_PROFILING is not set
256CONFIG_HAVE_OPROFILE=y
192 257
193# 258#
194# Loadable module support 259# GCOV-based kernel profiling
195# 260#
261# CONFIG_SLOW_WORK is not set
262CONFIG_HAVE_GENERIC_DMA_COHERENT=y
263CONFIG_SLABINFO=y
264CONFIG_RT_MUTEXES=y
265CONFIG_BASE_SMALL=0
196CONFIG_MODULES=y 266CONFIG_MODULES=y
267# CONFIG_MODULE_FORCE_LOAD is not set
197CONFIG_MODULE_UNLOAD=y 268CONFIG_MODULE_UNLOAD=y
198# CONFIG_MODULE_FORCE_UNLOAD is not set 269# CONFIG_MODULE_FORCE_UNLOAD is not set
199CONFIG_MODVERSIONS=y 270# CONFIG_MODVERSIONS is not set
200CONFIG_MODULE_SRCVERSION_ALL=y 271# CONFIG_MODULE_SRCVERSION_ALL is not set
201CONFIG_KMOD=y
202
203#
204# Block layer
205#
206CONFIG_BLOCK=y 272CONFIG_BLOCK=y
207# CONFIG_LBD is not set 273# CONFIG_LBDAF is not set
208# CONFIG_BLK_DEV_IO_TRACE is not set 274# CONFIG_BLK_DEV_BSG is not set
209# CONFIG_LSF is not set 275# CONFIG_BLK_DEV_INTEGRITY is not set
210 276
211# 277#
212# IO Schedulers 278# IO Schedulers
213# 279#
214CONFIG_IOSCHED_NOOP=y 280CONFIG_IOSCHED_NOOP=y
215CONFIG_IOSCHED_AS=y 281# CONFIG_IOSCHED_DEADLINE is not set
216CONFIG_IOSCHED_DEADLINE=y 282# CONFIG_IOSCHED_CFQ is not set
217CONFIG_IOSCHED_CFQ=y
218CONFIG_DEFAULT_AS=y
219# CONFIG_DEFAULT_DEADLINE is not set 283# CONFIG_DEFAULT_DEADLINE is not set
220# CONFIG_DEFAULT_CFQ is not set 284# CONFIG_DEFAULT_CFQ is not set
221# CONFIG_DEFAULT_NOOP is not set 285CONFIG_DEFAULT_NOOP=y
222CONFIG_DEFAULT_IOSCHED="anticipatory" 286CONFIG_DEFAULT_IOSCHED="noop"
287# CONFIG_INLINE_SPIN_TRYLOCK is not set
288# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
289# CONFIG_INLINE_SPIN_LOCK is not set
290# CONFIG_INLINE_SPIN_LOCK_BH is not set
291# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
292# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
293CONFIG_INLINE_SPIN_UNLOCK=y
294# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
295CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
296# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
297# CONFIG_INLINE_READ_TRYLOCK is not set
298# CONFIG_INLINE_READ_LOCK is not set
299# CONFIG_INLINE_READ_LOCK_BH is not set
300# CONFIG_INLINE_READ_LOCK_IRQ is not set
301# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
302CONFIG_INLINE_READ_UNLOCK=y
303# CONFIG_INLINE_READ_UNLOCK_BH is not set
304CONFIG_INLINE_READ_UNLOCK_IRQ=y
305# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
306# CONFIG_INLINE_WRITE_TRYLOCK is not set
307# CONFIG_INLINE_WRITE_LOCK is not set
308# CONFIG_INLINE_WRITE_LOCK_BH is not set
309# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
310# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
311CONFIG_INLINE_WRITE_UNLOCK=y
312# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
313CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
314# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
315# CONFIG_MUTEX_SPIN_ON_OWNER is not set
316CONFIG_FREEZER=y
223 317
224# 318#
225# Bus options (PCI, PCMCIA, EISA, ISA, TC) 319# Bus options (PCI, PCMCIA, EISA, ISA, TC)
226# 320#
321# CONFIG_ARCH_SUPPORTS_MSI is not set
227CONFIG_MMU=y 322CONFIG_MMU=y
323CONFIG_PCCARD=y
324CONFIG_PCMCIA=y
325CONFIG_PCMCIA_LOAD_CIS=y
326# CONFIG_PCMCIA_IOCTL is not set
228 327
229# 328#
230# PCCARD (PCMCIA/CardBus) support 329# PC-card bridges
231#
232# CONFIG_PCCARD is not set
233
234#
235# PCI Hotplug Support
236# 330#
331# CONFIG_PCMCIA_AU1X00 is not set
332CONFIG_PCMCIA_ALCHEMY_DEVBOARD=y
237 333
238# 334#
239# Executable file formats 335# Executable file formats
240# 336#
241CONFIG_BINFMT_ELF=y 337CONFIG_BINFMT_ELF=y
338# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
339# CONFIG_HAVE_AOUT is not set
242# CONFIG_BINFMT_MISC is not set 340# CONFIG_BINFMT_MISC is not set
243CONFIG_TRAD_SIGNALS=y 341CONFIG_TRAD_SIGNALS=y
244 342
245# 343#
246# Power management options 344# Power management options
247# 345#
248# CONFIG_PM is not set 346CONFIG_ARCH_HIBERNATION_POSSIBLE=y
249 347CONFIG_ARCH_SUSPEND_POSSIBLE=y
250# 348CONFIG_PM=y
251# Networking 349# CONFIG_PM_DEBUG is not set
252# 350CONFIG_PM_SLEEP=y
351CONFIG_SUSPEND=y
352CONFIG_SUSPEND_FREEZER=y
353# CONFIG_HIBERNATION is not set
354# CONFIG_APM_EMULATION is not set
355CONFIG_PM_RUNTIME=y
253CONFIG_NET=y 356CONFIG_NET=y
254 357
255# 358#
256# Networking options 359# Networking options
257# 360#
258# CONFIG_NETDEBUG is not set
259CONFIG_PACKET=y 361CONFIG_PACKET=y
260# CONFIG_PACKET_MMAP is not set 362CONFIG_PACKET_MMAP=y
261CONFIG_UNIX=y 363CONFIG_UNIX=y
262CONFIG_XFRM=y 364# CONFIG_NET_KEY is not set
263CONFIG_XFRM_USER=m
264# CONFIG_XFRM_SUB_POLICY is not set
265CONFIG_XFRM_MIGRATE=y
266CONFIG_NET_KEY=y
267CONFIG_NET_KEY_MIGRATE=y
268CONFIG_INET=y 365CONFIG_INET=y
269CONFIG_IP_MULTICAST=y 366CONFIG_IP_MULTICAST=y
270# CONFIG_IP_ADVANCED_ROUTER is not set 367# CONFIG_IP_ADVANCED_ROUTER is not set
271CONFIG_IP_FIB_HASH=y 368CONFIG_IP_FIB_HASH=y
272CONFIG_IP_PNP=y 369CONFIG_IP_PNP=y
273# CONFIG_IP_PNP_DHCP is not set 370CONFIG_IP_PNP_DHCP=y
274CONFIG_IP_PNP_BOOTP=y 371CONFIG_IP_PNP_BOOTP=y
275# CONFIG_IP_PNP_RARP is not set 372CONFIG_IP_PNP_RARP=y
276# CONFIG_NET_IPIP is not set 373# CONFIG_NET_IPIP is not set
277# CONFIG_NET_IPGRE is not set 374# CONFIG_NET_IPGRE is not set
278# CONFIG_IP_MROUTE is not set 375# CONFIG_IP_MROUTE is not set
@@ -283,110 +380,25 @@ CONFIG_IP_PNP_BOOTP=y
283# CONFIG_INET_IPCOMP is not set 380# CONFIG_INET_IPCOMP is not set
284# CONFIG_INET_XFRM_TUNNEL is not set 381# CONFIG_INET_XFRM_TUNNEL is not set
285# CONFIG_INET_TUNNEL is not set 382# CONFIG_INET_TUNNEL is not set
286CONFIG_INET_XFRM_MODE_TRANSPORT=m 383# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
287CONFIG_INET_XFRM_MODE_TUNNEL=m 384# CONFIG_INET_XFRM_MODE_TUNNEL is not set
288CONFIG_INET_XFRM_MODE_BEET=m 385# CONFIG_INET_XFRM_MODE_BEET is not set
289CONFIG_INET_DIAG=y 386CONFIG_INET_LRO=y
290CONFIG_INET_TCP_DIAG=y 387# CONFIG_INET_DIAG is not set
291# CONFIG_TCP_CONG_ADVANCED is not set 388# CONFIG_TCP_CONG_ADVANCED is not set
292CONFIG_TCP_CONG_CUBIC=y 389CONFIG_TCP_CONG_CUBIC=y
293CONFIG_DEFAULT_TCP_CONG="cubic" 390CONFIG_DEFAULT_TCP_CONG="cubic"
294CONFIG_TCP_MD5SIG=y 391# CONFIG_TCP_MD5SIG is not set
295
296#
297# IP: Virtual Server Configuration
298#
299# CONFIG_IP_VS is not set
300# CONFIG_IPV6 is not set 392# CONFIG_IPV6 is not set
301# CONFIG_INET6_XFRM_TUNNEL is not set 393# CONFIG_NETWORK_SECMARK is not set
302# CONFIG_INET6_TUNNEL is not set 394# CONFIG_NETFILTER is not set
303CONFIG_NETWORK_SECMARK=y
304CONFIG_NETFILTER=y
305# CONFIG_NETFILTER_DEBUG is not set
306
307#
308# Core Netfilter Configuration
309#
310CONFIG_NETFILTER_NETLINK=m
311CONFIG_NETFILTER_NETLINK_QUEUE=m
312CONFIG_NETFILTER_NETLINK_LOG=m
313CONFIG_NF_CONNTRACK_ENABLED=m
314CONFIG_NF_CONNTRACK_SUPPORT=y
315# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set
316CONFIG_NF_CONNTRACK=m
317CONFIG_NF_CT_ACCT=y
318CONFIG_NF_CONNTRACK_MARK=y
319CONFIG_NF_CONNTRACK_SECMARK=y
320CONFIG_NF_CONNTRACK_EVENTS=y
321CONFIG_NF_CT_PROTO_GRE=m
322CONFIG_NF_CT_PROTO_SCTP=m
323CONFIG_NF_CONNTRACK_AMANDA=m
324CONFIG_NF_CONNTRACK_FTP=m
325CONFIG_NF_CONNTRACK_H323=m
326CONFIG_NF_CONNTRACK_IRC=m
327# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
328CONFIG_NF_CONNTRACK_PPTP=m
329CONFIG_NF_CONNTRACK_SANE=m
330CONFIG_NF_CONNTRACK_SIP=m
331CONFIG_NF_CONNTRACK_TFTP=m
332CONFIG_NF_CT_NETLINK=m
333CONFIG_NETFILTER_XTABLES=m
334CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
335CONFIG_NETFILTER_XT_TARGET_MARK=m
336CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
337CONFIG_NETFILTER_XT_TARGET_NFLOG=m
338CONFIG_NETFILTER_XT_TARGET_SECMARK=m
339CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
340CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
341CONFIG_NETFILTER_XT_MATCH_COMMENT=m
342CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
343CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
344CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
345CONFIG_NETFILTER_XT_MATCH_DCCP=m
346CONFIG_NETFILTER_XT_MATCH_DSCP=m
347CONFIG_NETFILTER_XT_MATCH_ESP=m
348CONFIG_NETFILTER_XT_MATCH_HELPER=m
349CONFIG_NETFILTER_XT_MATCH_LENGTH=m
350CONFIG_NETFILTER_XT_MATCH_LIMIT=m
351CONFIG_NETFILTER_XT_MATCH_MAC=m
352CONFIG_NETFILTER_XT_MATCH_MARK=m
353CONFIG_NETFILTER_XT_MATCH_POLICY=m
354CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
355CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
356CONFIG_NETFILTER_XT_MATCH_QUOTA=m
357CONFIG_NETFILTER_XT_MATCH_REALM=m
358CONFIG_NETFILTER_XT_MATCH_SCTP=m
359CONFIG_NETFILTER_XT_MATCH_STATE=m
360CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
361CONFIG_NETFILTER_XT_MATCH_STRING=m
362CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
363CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
364
365#
366# IP: Netfilter Configuration
367#
368CONFIG_NF_CONNTRACK_IPV4=m
369CONFIG_NF_CONNTRACK_PROC_COMPAT=y
370# CONFIG_IP_NF_QUEUE is not set
371# CONFIG_IP_NF_IPTABLES is not set
372# CONFIG_IP_NF_ARPTABLES is not set
373
374#
375# DCCP Configuration (EXPERIMENTAL)
376#
377# CONFIG_IP_DCCP is not set 395# CONFIG_IP_DCCP is not set
378
379#
380# SCTP Configuration (EXPERIMENTAL)
381#
382# CONFIG_IP_SCTP is not set 396# CONFIG_IP_SCTP is not set
383 397# CONFIG_RDS is not set
384#
385# TIPC Configuration (EXPERIMENTAL)
386#
387# CONFIG_TIPC is not set 398# CONFIG_TIPC is not set
388# CONFIG_ATM is not set 399# CONFIG_ATM is not set
389# CONFIG_BRIDGE is not set 400# CONFIG_BRIDGE is not set
401# CONFIG_NET_DSA is not set
390# CONFIG_VLAN_8021Q is not set 402# CONFIG_VLAN_8021Q is not set
391# CONFIG_DECNET is not set 403# CONFIG_DECNET is not set
392# CONFIG_LLC2 is not set 404# CONFIG_LLC2 is not set
@@ -396,27 +408,24 @@ CONFIG_NF_CONNTRACK_PROC_COMPAT=y
396# CONFIG_LAPB is not set 408# CONFIG_LAPB is not set
397# CONFIG_ECONET is not set 409# CONFIG_ECONET is not set
398# CONFIG_WAN_ROUTER is not set 410# CONFIG_WAN_ROUTER is not set
399 411# CONFIG_PHONET is not set
400# 412# CONFIG_IEEE802154 is not set
401# QoS and/or fair queueing
402#
403# CONFIG_NET_SCHED is not set 413# CONFIG_NET_SCHED is not set
404CONFIG_NET_CLS_ROUTE=y 414# CONFIG_DCB is not set
405 415
406# 416#
407# Network testing 417# Network testing
408# 418#
409# CONFIG_NET_PKTGEN is not set 419# CONFIG_NET_PKTGEN is not set
410# CONFIG_HAMRADIO is not set 420# CONFIG_HAMRADIO is not set
421# CONFIG_CAN is not set
411# CONFIG_IRDA is not set 422# CONFIG_IRDA is not set
412# CONFIG_BT is not set 423# CONFIG_BT is not set
413CONFIG_IEEE80211=m 424# CONFIG_AF_RXRPC is not set
414# CONFIG_IEEE80211_DEBUG is not set 425# CONFIG_WIRELESS is not set
415CONFIG_IEEE80211_CRYPT_WEP=m 426# CONFIG_WIMAX is not set
416CONFIG_IEEE80211_CRYPT_CCMP=m 427# CONFIG_RFKILL is not set
417CONFIG_IEEE80211_SOFTMAC=m 428# CONFIG_NET_9P is not set
418# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
419CONFIG_WIRELESS_EXT=y
420 429
421# 430#
422# Device Drivers 431# Device Drivers
@@ -425,25 +434,25 @@ CONFIG_WIRELESS_EXT=y
425# 434#
426# Generic Driver Options 435# Generic Driver Options
427# 436#
437CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
438# CONFIG_DEVTMPFS is not set
428CONFIG_STANDALONE=y 439CONFIG_STANDALONE=y
429CONFIG_PREVENT_FIRMWARE_BUILD=y 440CONFIG_PREVENT_FIRMWARE_BUILD=y
430# CONFIG_FW_LOADER is not set 441CONFIG_FW_LOADER=y
442CONFIG_FIRMWARE_IN_KERNEL=y
443CONFIG_EXTRA_FIRMWARE=""
444# CONFIG_DEBUG_DRIVER is not set
445# CONFIG_DEBUG_DEVRES is not set
431# CONFIG_SYS_HYPERVISOR is not set 446# CONFIG_SYS_HYPERVISOR is not set
432 447# CONFIG_CONNECTOR is not set
433#
434# Connector - unified userspace <-> kernelspace linker
435#
436CONFIG_CONNECTOR=m
437
438#
439# Memory Technology Devices (MTD)
440#
441CONFIG_MTD=y 448CONFIG_MTD=y
442# CONFIG_MTD_DEBUG is not set 449# CONFIG_MTD_DEBUG is not set
450# CONFIG_MTD_TESTS is not set
443# CONFIG_MTD_CONCAT is not set 451# CONFIG_MTD_CONCAT is not set
444CONFIG_MTD_PARTITIONS=y 452CONFIG_MTD_PARTITIONS=y
445# CONFIG_MTD_REDBOOT_PARTS is not set 453# CONFIG_MTD_REDBOOT_PARTS is not set
446# CONFIG_MTD_CMDLINE_PARTS is not set 454# CONFIG_MTD_CMDLINE_PARTS is not set
455# CONFIG_MTD_AR7_PARTS is not set
447 456
448# 457#
449# User Modules And Translation Layers 458# User Modules And Translation Layers
@@ -456,6 +465,7 @@ CONFIG_MTD_BLOCK=y
456# CONFIG_INFTL is not set 465# CONFIG_INFTL is not set
457# CONFIG_RFD_FTL is not set 466# CONFIG_RFD_FTL is not set
458# CONFIG_SSFDC is not set 467# CONFIG_SSFDC is not set
468# CONFIG_MTD_OOPS is not set
459 469
460# 470#
461# RAM/ROM/Flash chip drivers 471# RAM/ROM/Flash chip drivers
@@ -481,14 +491,13 @@ CONFIG_MTD_CFI_UTIL=y
481# CONFIG_MTD_RAM is not set 491# CONFIG_MTD_RAM is not set
482# CONFIG_MTD_ROM is not set 492# CONFIG_MTD_ROM is not set
483# CONFIG_MTD_ABSENT is not set 493# CONFIG_MTD_ABSENT is not set
484# CONFIG_MTD_OBSOLETE_CHIPS is not set
485 494
486# 495#
487# Mapping drivers for chip access 496# Mapping drivers for chip access
488# 497#
489# CONFIG_MTD_COMPLEX_MAPPINGS is not set 498# CONFIG_MTD_COMPLEX_MAPPINGS is not set
490# CONFIG_MTD_PHYSMAP is not set 499CONFIG_MTD_PHYSMAP=y
491CONFIG_MTD_ALCHEMY=y 500# CONFIG_MTD_PHYSMAP_COMPAT is not set
492# CONFIG_MTD_PLATRAM is not set 501# CONFIG_MTD_PLATRAM is not set
493 502
494# 503#
@@ -505,161 +514,123 @@ CONFIG_MTD_ALCHEMY=y
505# CONFIG_MTD_DOC2000 is not set 514# CONFIG_MTD_DOC2000 is not set
506# CONFIG_MTD_DOC2001 is not set 515# CONFIG_MTD_DOC2001 is not set
507# CONFIG_MTD_DOC2001PLUS is not set 516# CONFIG_MTD_DOC2001PLUS is not set
508
509#
510# NAND Flash Device Drivers
511#
512# CONFIG_MTD_NAND is not set 517# CONFIG_MTD_NAND is not set
513
514#
515# OneNAND Flash Device Drivers
516#
517# CONFIG_MTD_ONENAND is not set 518# CONFIG_MTD_ONENAND is not set
518 519
519# 520#
520# Parallel port support 521# LPDDR flash memory drivers
521# 522#
522# CONFIG_PARPORT is not set 523# CONFIG_MTD_LPDDR is not set
523 524
524# 525#
525# Plug and Play support 526# UBI - Unsorted block images
526#
527# CONFIG_PNPACPI is not set
528
529# 527#
530# Block devices 528# CONFIG_MTD_UBI is not set
531# 529# CONFIG_PARPORT is not set
532# CONFIG_BLK_DEV_COW_COMMON is not set 530# CONFIG_BLK_DEV is not set
533CONFIG_BLK_DEV_LOOP=y 531# CONFIG_MISC_DEVICES is not set
534# CONFIG_BLK_DEV_CRYPTOLOOP is not set 532CONFIG_HAVE_IDE=y
535# CONFIG_BLK_DEV_NBD is not set 533CONFIG_IDE=y
536# CONFIG_BLK_DEV_RAM is not set
537# CONFIG_BLK_DEV_INITRD is not set
538CONFIG_CDROM_PKTCDVD=m
539CONFIG_CDROM_PKTCDVD_BUFFERS=8
540# CONFIG_CDROM_PKTCDVD_WCACHE is not set
541CONFIG_ATA_OVER_ETH=m
542 534
543# 535#
544# Misc devices 536# Please see Documentation/ide/ide.txt for help/info on IDE drives
545# 537#
538# CONFIG_BLK_DEV_IDE_SATA is not set
539CONFIG_IDE_GD=y
540CONFIG_IDE_GD_ATA=y
541# CONFIG_IDE_GD_ATAPI is not set
542# CONFIG_BLK_DEV_IDECS is not set
543# CONFIG_BLK_DEV_IDECD is not set
544# CONFIG_BLK_DEV_IDETAPE is not set
545CONFIG_IDE_TASK_IOCTL=y
546CONFIG_IDE_PROC_FS=y
546 547
547# 548#
548# ATA/ATAPI/MFM/RLL support 549# IDE chipset support/bugfixes
549# 550#
550# CONFIG_IDE is not set 551# CONFIG_IDE_GENERIC is not set
552# CONFIG_BLK_DEV_PLATFORM is not set
553# CONFIG_BLK_DEV_IDEDMA is not set
551 554
552# 555#
553# SCSI device support 556# SCSI device support
554# 557#
555CONFIG_RAID_ATTRS=m 558# CONFIG_RAID_ATTRS is not set
556# CONFIG_SCSI is not set 559# CONFIG_SCSI is not set
560# CONFIG_SCSI_DMA is not set
557# CONFIG_SCSI_NETLINK is not set 561# CONFIG_SCSI_NETLINK is not set
558
559#
560# Serial ATA (prod) and Parallel ATA (experimental) drivers
561#
562# CONFIG_ATA is not set 562# CONFIG_ATA is not set
563
564#
565# Multi-device support (RAID and LVM)
566#
567# CONFIG_MD is not set 563# CONFIG_MD is not set
568
569#
570# Fusion MPT device support
571#
572# CONFIG_FUSION is not set
573
574#
575# IEEE 1394 (FireWire) support
576#
577
578#
579# I2O device support
580#
581
582#
583# Network device support
584#
585CONFIG_NETDEVICES=y 564CONFIG_NETDEVICES=y
586# CONFIG_DUMMY is not set 565# CONFIG_DUMMY is not set
587# CONFIG_BONDING is not set 566# CONFIG_BONDING is not set
567# CONFIG_MACVLAN is not set
588# CONFIG_EQUALIZER is not set 568# CONFIG_EQUALIZER is not set
589# CONFIG_TUN is not set 569# CONFIG_TUN is not set
590 570# CONFIG_VETH is not set
591#
592# PHY device support
593#
594CONFIG_PHYLIB=y 571CONFIG_PHYLIB=y
595 572
596# 573#
597# MII PHY device drivers 574# MII PHY device drivers
598# 575#
599CONFIG_MARVELL_PHY=m 576CONFIG_MARVELL_PHY=y
600CONFIG_DAVICOM_PHY=m 577CONFIG_DAVICOM_PHY=y
601CONFIG_QSEMI_PHY=m 578CONFIG_QSEMI_PHY=y
602CONFIG_LXT_PHY=m 579CONFIG_LXT_PHY=y
603CONFIG_CICADA_PHY=m 580CONFIG_CICADA_PHY=y
604CONFIG_VITESSE_PHY=m 581CONFIG_VITESSE_PHY=y
605CONFIG_SMSC_PHY=m 582CONFIG_SMSC_PHY=y
606# CONFIG_BROADCOM_PHY is not set 583CONFIG_BROADCOM_PHY=y
584CONFIG_ICPLUS_PHY=y
585CONFIG_REALTEK_PHY=y
586CONFIG_NATIONAL_PHY=y
587CONFIG_STE10XP=y
588CONFIG_LSI_ET1011C_PHY=y
607# CONFIG_FIXED_PHY is not set 589# CONFIG_FIXED_PHY is not set
608 590# CONFIG_MDIO_BITBANG is not set
609#
610# Ethernet (10 or 100Mbit)
611#
612CONFIG_NET_ETHERNET=y 591CONFIG_NET_ETHERNET=y
613CONFIG_MII=m 592CONFIG_MII=y
593# CONFIG_AX88796 is not set
614CONFIG_MIPS_AU1X00_ENET=y 594CONFIG_MIPS_AU1X00_ENET=y
615# CONFIG_SMC91X is not set 595# CONFIG_SMC91X is not set
616# CONFIG_DM9000 is not set 596# CONFIG_DM9000 is not set
617 597# CONFIG_ETHOC is not set
618# 598# CONFIG_SMSC911X is not set
619# Ethernet (1000 Mbit) 599# CONFIG_DNET is not set
620# 600# CONFIG_IBM_NEW_EMAC_ZMII is not set
621 601# CONFIG_IBM_NEW_EMAC_RGMII is not set
622# 602# CONFIG_IBM_NEW_EMAC_TAH is not set
623# Ethernet (10000 Mbit) 603# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
624# 604# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
625 605# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
626# 606# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
627# Token Ring devices 607# CONFIG_B44 is not set
628# 608# CONFIG_KS8842 is not set
629 609# CONFIG_KS8851_MLL is not set
630# 610# CONFIG_NETDEV_1000 is not set
631# Wireless LAN (non-hamradio) 611# CONFIG_NETDEV_10000 is not set
632# 612# CONFIG_WLAN is not set
633# CONFIG_NET_RADIO is not set 613
634 614#
635# 615# Enable WiMAX (Networking options) to see the WiMAX drivers
636# Wan interfaces 616#
637# 617
618#
619# USB Network Adapters
620#
621# CONFIG_USB_CATC is not set
622# CONFIG_USB_KAWETH is not set
623# CONFIG_USB_PEGASUS is not set
624# CONFIG_USB_RTL8150 is not set
625# CONFIG_USB_USBNET is not set
626# CONFIG_NET_PCMCIA is not set
638# CONFIG_WAN is not set 627# CONFIG_WAN is not set
639CONFIG_PPP=m 628# CONFIG_PPP is not set
640CONFIG_PPP_MULTILINK=y
641# CONFIG_PPP_FILTER is not set
642CONFIG_PPP_ASYNC=m
643# CONFIG_PPP_SYNC_TTY is not set
644CONFIG_PPP_DEFLATE=m
645# CONFIG_PPP_BSDCOMP is not set
646CONFIG_PPP_MPPE=m
647CONFIG_PPPOE=m
648# CONFIG_SLIP is not set 629# CONFIG_SLIP is not set
649CONFIG_SLHC=m
650# CONFIG_SHAPER is not set
651# CONFIG_NETCONSOLE is not set 630# CONFIG_NETCONSOLE is not set
652# CONFIG_NETPOLL is not set 631# CONFIG_NETPOLL is not set
653# CONFIG_NET_POLL_CONTROLLER is not set 632# CONFIG_NET_POLL_CONTROLLER is not set
654
655#
656# ISDN subsystem
657#
658# CONFIG_ISDN is not set 633# CONFIG_ISDN is not set
659
660#
661# Telephony Support
662#
663# CONFIG_PHONE is not set 634# CONFIG_PHONE is not set
664 635
665# 636#
@@ -667,16 +638,14 @@ CONFIG_SLHC=m
667# 638#
668CONFIG_INPUT=y 639CONFIG_INPUT=y
669# CONFIG_INPUT_FF_MEMLESS is not set 640# CONFIG_INPUT_FF_MEMLESS is not set
641# CONFIG_INPUT_POLLDEV is not set
642# CONFIG_INPUT_SPARSEKMAP is not set
670 643
671# 644#
672# Userland interfaces 645# Userland interfaces
673# 646#
674CONFIG_INPUT_MOUSEDEV=y 647# CONFIG_INPUT_MOUSEDEV is not set
675CONFIG_INPUT_MOUSEDEV_PSAUX=y
676CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
677CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
678# CONFIG_INPUT_JOYDEV is not set 648# CONFIG_INPUT_JOYDEV is not set
679# CONFIG_INPUT_TSDEV is not set
680CONFIG_INPUT_EVDEV=y 649CONFIG_INPUT_EVDEV=y
681# CONFIG_INPUT_EVBUG is not set 650# CONFIG_INPUT_EVBUG is not set
682 651
@@ -686,34 +655,33 @@ CONFIG_INPUT_EVDEV=y
686# CONFIG_INPUT_KEYBOARD is not set 655# CONFIG_INPUT_KEYBOARD is not set
687# CONFIG_INPUT_MOUSE is not set 656# CONFIG_INPUT_MOUSE is not set
688# CONFIG_INPUT_JOYSTICK is not set 657# CONFIG_INPUT_JOYSTICK is not set
658# CONFIG_INPUT_TABLET is not set
689# CONFIG_INPUT_TOUCHSCREEN is not set 659# CONFIG_INPUT_TOUCHSCREEN is not set
690# CONFIG_INPUT_MISC is not set 660# CONFIG_INPUT_MISC is not set
691 661
692# 662#
693# Hardware I/O ports 663# Hardware I/O ports
694# 664#
695CONFIG_SERIO=y 665# CONFIG_SERIO is not set
696# CONFIG_SERIO_I8042 is not set
697CONFIG_SERIO_SERPORT=y
698CONFIG_SERIO_LIBPS2=m
699CONFIG_SERIO_RAW=m
700# CONFIG_GAMEPORT is not set 666# CONFIG_GAMEPORT is not set
701 667
702# 668#
703# Character devices 669# Character devices
704# 670#
705CONFIG_VT=y 671CONFIG_VT=y
672CONFIG_CONSOLE_TRANSLATIONS=y
706CONFIG_VT_CONSOLE=y 673CONFIG_VT_CONSOLE=y
707CONFIG_HW_CONSOLE=y 674CONFIG_HW_CONSOLE=y
708CONFIG_VT_HW_CONSOLE_BINDING=y 675CONFIG_VT_HW_CONSOLE_BINDING=y
676CONFIG_DEVKMEM=y
709# CONFIG_SERIAL_NONSTANDARD is not set 677# CONFIG_SERIAL_NONSTANDARD is not set
710# CONFIG_AU1X00_GPIO is not set
711 678
712# 679#
713# Serial drivers 680# Serial drivers
714# 681#
715CONFIG_SERIAL_8250=y 682CONFIG_SERIAL_8250=y
716CONFIG_SERIAL_8250_CONSOLE=y 683CONFIG_SERIAL_8250_CONSOLE=y
684# CONFIG_SERIAL_8250_CS is not set
717CONFIG_SERIAL_8250_NR_UARTS=4 685CONFIG_SERIAL_8250_NR_UARTS=4
718CONFIG_SERIAL_8250_RUNTIME_UARTS=4 686CONFIG_SERIAL_8250_RUNTIME_UARTS=4
719# CONFIG_SERIAL_8250_EXTENDED is not set 687# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -725,78 +693,91 @@ CONFIG_SERIAL_8250_AU1X00=y
725CONFIG_SERIAL_CORE=y 693CONFIG_SERIAL_CORE=y
726CONFIG_SERIAL_CORE_CONSOLE=y 694CONFIG_SERIAL_CORE_CONSOLE=y
727CONFIG_UNIX98_PTYS=y 695CONFIG_UNIX98_PTYS=y
728CONFIG_LEGACY_PTYS=y 696# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
729CONFIG_LEGACY_PTY_COUNT=256 697# CONFIG_LEGACY_PTYS is not set
730
731#
732# IPMI
733#
734# CONFIG_IPMI_HANDLER is not set 698# CONFIG_IPMI_HANDLER is not set
735
736#
737# Watchdog Cards
738#
739# CONFIG_WATCHDOG is not set
740# CONFIG_HW_RANDOM is not set 699# CONFIG_HW_RANDOM is not set
741# CONFIG_RTC is not set
742# CONFIG_GEN_RTC is not set
743# CONFIG_DTLK is not set
744# CONFIG_R3964 is not set 700# CONFIG_R3964 is not set
745# CONFIG_RAW_DRIVER is not set
746 701
747# 702#
748# TPM devices 703# PCMCIA character devices
749# 704#
705# CONFIG_SYNCLINK_CS is not set
706# CONFIG_CARDMAN_4000 is not set
707# CONFIG_CARDMAN_4040 is not set
708# CONFIG_IPWIRELESS is not set
709# CONFIG_RAW_DRIVER is not set
750# CONFIG_TCG_TPM is not set 710# CONFIG_TCG_TPM is not set
751
752#
753# I2C support
754#
755# CONFIG_I2C is not set 711# CONFIG_I2C is not set
756
757#
758# SPI support
759#
760# CONFIG_SPI is not set 712# CONFIG_SPI is not set
761# CONFIG_SPI_MASTER is not set
762 713
763# 714#
764# Dallas's 1-wire bus 715# PPS support
765# 716#
717# CONFIG_PPS is not set
718CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
719# CONFIG_GPIOLIB is not set
766# CONFIG_W1 is not set 720# CONFIG_W1 is not set
767 721# CONFIG_POWER_SUPPLY is not set
768#
769# Hardware Monitoring support
770#
771# CONFIG_HWMON is not set 722# CONFIG_HWMON is not set
772# CONFIG_HWMON_VID is not set 723# CONFIG_THERMAL is not set
724# CONFIG_WATCHDOG is not set
725CONFIG_SSB_POSSIBLE=y
773 726
774# 727#
775# Multimedia devices 728# Sonics Silicon Backplane
776# 729#
777# CONFIG_VIDEO_DEV is not set 730# CONFIG_SSB is not set
778 731
779# 732#
780# Digital Video Broadcasting Devices 733# Multifunction device drivers
781# 734#
782# CONFIG_DVB is not set 735# CONFIG_MFD_CORE is not set
736# CONFIG_MFD_SM501 is not set
737# CONFIG_HTC_PASIC3 is not set
738# CONFIG_MFD_TMIO is not set
739# CONFIG_REGULATOR is not set
740# CONFIG_MEDIA_SUPPORT is not set
783 741
784# 742#
785# Graphics support 743# Graphics support
786# 744#
787# CONFIG_FIRMWARE_EDID is not set 745# CONFIG_VGASTATE is not set
746# CONFIG_VIDEO_OUTPUT_CONTROL is not set
788CONFIG_FB=y 747CONFIG_FB=y
748# CONFIG_FIRMWARE_EDID is not set
749# CONFIG_FB_DDC is not set
750# CONFIG_FB_BOOT_VESA_SUPPORT is not set
789CONFIG_FB_CFB_FILLRECT=y 751CONFIG_FB_CFB_FILLRECT=y
790CONFIG_FB_CFB_COPYAREA=y 752CONFIG_FB_CFB_COPYAREA=y
791CONFIG_FB_CFB_IMAGEBLIT=y 753CONFIG_FB_CFB_IMAGEBLIT=y
754# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
755# CONFIG_FB_SYS_FILLRECT is not set
756# CONFIG_FB_SYS_COPYAREA is not set
757# CONFIG_FB_SYS_IMAGEBLIT is not set
758# CONFIG_FB_FOREIGN_ENDIAN is not set
759# CONFIG_FB_SYS_FOPS is not set
792# CONFIG_FB_SVGALIB is not set 760# CONFIG_FB_SVGALIB is not set
793# CONFIG_FB_MACMODES is not set 761# CONFIG_FB_MACMODES is not set
794# CONFIG_FB_BACKLIGHT is not set 762# CONFIG_FB_BACKLIGHT is not set
795# CONFIG_FB_MODE_HELPERS is not set 763# CONFIG_FB_MODE_HELPERS is not set
796# CONFIG_FB_TILEBLITTING is not set 764# CONFIG_FB_TILEBLITTING is not set
765
766#
767# Frame buffer hardware drivers
768#
797# CONFIG_FB_S1D13XXX is not set 769# CONFIG_FB_S1D13XXX is not set
798CONFIG_FB_AU1100=y 770CONFIG_FB_AU1100=y
799# CONFIG_FB_VIRTUAL is not set 771# CONFIG_FB_VIRTUAL is not set
772# CONFIG_FB_METRONOME is not set
773# CONFIG_FB_MB862XX is not set
774# CONFIG_FB_BROADSHEET is not set
775# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
776
777#
778# Display device support
779#
780# CONFIG_DISPLAY_SUPPORT is not set
800 781
801# 782#
802# Console display driver support 783# Console display driver support
@@ -804,9 +785,10 @@ CONFIG_FB_AU1100=y
804# CONFIG_VGA_CONSOLE is not set 785# CONFIG_VGA_CONSOLE is not set
805CONFIG_DUMMY_CONSOLE=y 786CONFIG_DUMMY_CONSOLE=y
806CONFIG_FRAMEBUFFER_CONSOLE=y 787CONFIG_FRAMEBUFFER_CONSOLE=y
788# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
807# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set 789# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
808CONFIG_FONTS=y 790CONFIG_FONTS=y
809CONFIG_FONT_8x8=y 791# CONFIG_FONT_8x8 is not set
810CONFIG_FONT_8x16=y 792CONFIG_FONT_8x16=y
811# CONFIG_FONT_6x11 is not set 793# CONFIG_FONT_6x11 is not set
812# CONFIG_FONT_7x14 is not set 794# CONFIG_FONT_7x14 is not set
@@ -816,132 +798,186 @@ CONFIG_FONT_8x16=y
816# CONFIG_FONT_SUN8x16 is not set 798# CONFIG_FONT_SUN8x16 is not set
817# CONFIG_FONT_SUN12x22 is not set 799# CONFIG_FONT_SUN12x22 is not set
818# CONFIG_FONT_10x18 is not set 800# CONFIG_FONT_10x18 is not set
819 801# CONFIG_LOGO is not set
820#
821# Logo configuration
822#
823CONFIG_LOGO=y
824CONFIG_LOGO_LINUX_MONO=y
825CONFIG_LOGO_LINUX_VGA16=y
826CONFIG_LOGO_LINUX_CLUT224=y
827# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
828
829#
830# Sound
831#
832# CONFIG_SOUND is not set 802# CONFIG_SOUND is not set
833 803# CONFIG_HID_SUPPORT is not set
834# 804CONFIG_USB_SUPPORT=y
835# HID Devices
836#
837# CONFIG_HID is not set
838
839#
840# USB support
841#
842CONFIG_USB_ARCH_HAS_HCD=y 805CONFIG_USB_ARCH_HAS_HCD=y
843CONFIG_USB_ARCH_HAS_OHCI=y 806CONFIG_USB_ARCH_HAS_OHCI=y
844# CONFIG_USB_ARCH_HAS_EHCI is not set 807# CONFIG_USB_ARCH_HAS_EHCI is not set
845# CONFIG_USB is not set 808CONFIG_USB=y
809# CONFIG_USB_DEBUG is not set
810# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
846 811
847# 812#
848# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 813# Miscellaneous USB options
849# 814#
815# CONFIG_USB_DEVICEFS is not set
816# CONFIG_USB_DEVICE_CLASS is not set
817CONFIG_USB_DYNAMIC_MINORS=y
818CONFIG_USB_SUSPEND=y
819# CONFIG_USB_OTG is not set
820# CONFIG_USB_OTG_WHITELIST is not set
821# CONFIG_USB_OTG_BLACKLIST_HUB is not set
822# CONFIG_USB_MON is not set
823# CONFIG_USB_WUSB is not set
824# CONFIG_USB_WUSB_CBAF is not set
850 825
851# 826#
852# USB Gadget Support 827# USB Host Controller Drivers
853# 828#
854# CONFIG_USB_GADGET is not set 829# CONFIG_USB_C67X00_HCD is not set
830# CONFIG_USB_OXU210HP_HCD is not set
831# CONFIG_USB_ISP116X_HCD is not set
832# CONFIG_USB_ISP1760_HCD is not set
833# CONFIG_USB_ISP1362_HCD is not set
834CONFIG_USB_OHCI_HCD=y
835# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
836# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
837CONFIG_USB_OHCI_LITTLE_ENDIAN=y
838# CONFIG_USB_SL811_HCD is not set
839# CONFIG_USB_R8A66597_HCD is not set
840# CONFIG_USB_HWA_HCD is not set
855 841
856# 842#
857# MMC/SD Card support 843# USB Device Class drivers
858# 844#
859# CONFIG_MMC is not set 845# CONFIG_USB_ACM is not set
846# CONFIG_USB_PRINTER is not set
847# CONFIG_USB_WDM is not set
848# CONFIG_USB_TMC is not set
860 849
861# 850#
862# LED devices 851# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
863# 852#
864# CONFIG_NEW_LEDS is not set
865 853
866# 854#
867# LED drivers 855# also be needed; see USB_STORAGE Help for more info
868# 856#
857# CONFIG_USB_LIBUSUAL is not set
869 858
870# 859#
871# LED Triggers 860# USB Imaging devices
872# 861#
862# CONFIG_USB_MDC800 is not set
873 863
874# 864#
875# InfiniBand support 865# USB port drivers
876# 866#
867# CONFIG_USB_SERIAL is not set
877 868
878# 869#
879# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 870# USB Miscellaneous drivers
880# 871#
872# CONFIG_USB_EMI62 is not set
873# CONFIG_USB_EMI26 is not set
874# CONFIG_USB_ADUTUX is not set
875# CONFIG_USB_SEVSEG is not set
876# CONFIG_USB_RIO500 is not set
877# CONFIG_USB_LEGOTOWER is not set
878# CONFIG_USB_LCD is not set
879# CONFIG_USB_BERRY_CHARGE is not set
880# CONFIG_USB_LED is not set
881# CONFIG_USB_CYPRESS_CY7C63 is not set
882# CONFIG_USB_CYTHERM is not set
883# CONFIG_USB_IDMOUSE is not set
884# CONFIG_USB_FTDI_ELAN is not set
885# CONFIG_USB_APPLEDISPLAY is not set
886# CONFIG_USB_LD is not set
887# CONFIG_USB_TRANCEVIBRATOR is not set
888# CONFIG_USB_IOWARRIOR is not set
889# CONFIG_USB_TEST is not set
890# CONFIG_USB_ISIGHTFW is not set
891# CONFIG_USB_VST is not set
892# CONFIG_USB_GADGET is not set
881 893
882# 894#
883# Real Time Clock 895# OTG and related infrastructure
884# 896#
885# CONFIG_RTC_CLASS is not set 897# CONFIG_USB_GPIO_VBUS is not set
898# CONFIG_NOP_USB_XCEIV is not set
899# CONFIG_MMC is not set
900# CONFIG_MEMSTICK is not set
901# CONFIG_NEW_LEDS is not set
902# CONFIG_ACCESSIBILITY is not set
903CONFIG_RTC_LIB=y
904CONFIG_RTC_CLASS=y
905CONFIG_RTC_HCTOSYS=y
906CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
907# CONFIG_RTC_DEBUG is not set
886 908
887# 909#
888# DMA Engine support 910# RTC interfaces
889# 911#
890# CONFIG_DMA_ENGINE is not set 912CONFIG_RTC_INTF_SYSFS=y
913CONFIG_RTC_INTF_PROC=y
914CONFIG_RTC_INTF_DEV=y
915# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
916# CONFIG_RTC_DRV_TEST is not set
891 917
892# 918#
893# DMA Clients 919# SPI RTC drivers
894# 920#
895 921
896# 922#
897# DMA Devices 923# Platform RTC drivers
898# 924#
925# CONFIG_RTC_DRV_CMOS is not set
926# CONFIG_RTC_DRV_DS1286 is not set
927# CONFIG_RTC_DRV_DS1511 is not set
928# CONFIG_RTC_DRV_DS1553 is not set
929# CONFIG_RTC_DRV_DS1742 is not set
930# CONFIG_RTC_DRV_STK17TA8 is not set
931# CONFIG_RTC_DRV_M48T86 is not set
932# CONFIG_RTC_DRV_M48T35 is not set
933# CONFIG_RTC_DRV_M48T59 is not set
934# CONFIG_RTC_DRV_MSM6242 is not set
935# CONFIG_RTC_DRV_BQ4802 is not set
936# CONFIG_RTC_DRV_RP5C01 is not set
937# CONFIG_RTC_DRV_V3020 is not set
899 938
900# 939#
901# Auxiliary Display support 940# on-CPU RTC drivers
902# 941#
942CONFIG_RTC_DRV_AU1XXX=y
943# CONFIG_DMADEVICES is not set
944# CONFIG_AUXDISPLAY is not set
945# CONFIG_UIO is not set
903 946
904# 947#
905# Virtualization 948# TI VLYNQ
906# 949#
950# CONFIG_STAGING is not set
907 951
908# 952#
909# File systems 953# File systems
910# 954#
911CONFIG_EXT2_FS=y 955CONFIG_EXT2_FS=y
912CONFIG_EXT2_FS_XATTR=y 956# CONFIG_EXT2_FS_XATTR is not set
913CONFIG_EXT2_FS_POSIX_ACL=y
914# CONFIG_EXT2_FS_SECURITY is not set
915# CONFIG_EXT2_FS_XIP is not set 957# CONFIG_EXT2_FS_XIP is not set
916CONFIG_EXT3_FS=y 958# CONFIG_EXT3_FS is not set
917CONFIG_EXT3_FS_XATTR=y 959# CONFIG_EXT4_FS is not set
918CONFIG_EXT3_FS_POSIX_ACL=y 960# CONFIG_REISERFS_FS is not set
919CONFIG_EXT3_FS_SECURITY=y
920# CONFIG_EXT4DEV_FS is not set
921CONFIG_JBD=y
922# CONFIG_JBD_DEBUG is not set
923CONFIG_FS_MBCACHE=y
924CONFIG_REISERFS_FS=m
925# CONFIG_REISERFS_CHECK is not set
926# CONFIG_REISERFS_PROC_INFO is not set
927CONFIG_REISERFS_FS_XATTR=y
928CONFIG_REISERFS_FS_POSIX_ACL=y
929CONFIG_REISERFS_FS_SECURITY=y
930# CONFIG_JFS_FS is not set 961# CONFIG_JFS_FS is not set
931CONFIG_FS_POSIX_ACL=y 962CONFIG_FS_POSIX_ACL=y
932# CONFIG_XFS_FS is not set 963# CONFIG_XFS_FS is not set
933# CONFIG_GFS2_FS is not set
934# CONFIG_OCFS2_FS is not set 964# CONFIG_OCFS2_FS is not set
935# CONFIG_MINIX_FS is not set 965# CONFIG_BTRFS_FS is not set
936# CONFIG_ROMFS_FS is not set 966# CONFIG_NILFS2_FS is not set
967CONFIG_FILE_LOCKING=y
968CONFIG_FSNOTIFY=y
969CONFIG_DNOTIFY=y
937CONFIG_INOTIFY=y 970CONFIG_INOTIFY=y
938CONFIG_INOTIFY_USER=y 971CONFIG_INOTIFY_USER=y
939# CONFIG_QUOTA is not set 972# CONFIG_QUOTA is not set
940CONFIG_DNOTIFY=y 973# CONFIG_AUTOFS_FS is not set
941CONFIG_AUTOFS_FS=m 974# CONFIG_AUTOFS4_FS is not set
942CONFIG_AUTOFS4_FS=m 975# CONFIG_FUSE_FS is not set
943CONFIG_FUSE_FS=m 976
944CONFIG_GENERIC_ACL=y 977#
978# Caches
979#
980# CONFIG_FSCACHE is not set
945 981
946# 982#
947# CD-ROM/DVD Filesystems 983# CD-ROM/DVD Filesystems
@@ -960,69 +996,76 @@ CONFIG_GENERIC_ACL=y
960# Pseudo filesystems 996# Pseudo filesystems
961# 997#
962CONFIG_PROC_FS=y 998CONFIG_PROC_FS=y
963CONFIG_PROC_KCORE=y 999# CONFIG_PROC_KCORE is not set
964CONFIG_PROC_SYSCTL=y 1000CONFIG_PROC_SYSCTL=y
1001# CONFIG_PROC_PAGE_MONITOR is not set
965CONFIG_SYSFS=y 1002CONFIG_SYSFS=y
966CONFIG_TMPFS=y 1003CONFIG_TMPFS=y
967CONFIG_TMPFS_POSIX_ACL=y 1004# CONFIG_TMPFS_POSIX_ACL is not set
968# CONFIG_HUGETLB_PAGE is not set 1005# CONFIG_HUGETLB_PAGE is not set
969CONFIG_RAMFS=y 1006# CONFIG_CONFIGFS_FS is not set
970CONFIG_CONFIGFS_FS=m 1007CONFIG_MISC_FILESYSTEMS=y
971
972#
973# Miscellaneous filesystems
974#
975# CONFIG_ADFS_FS is not set 1008# CONFIG_ADFS_FS is not set
976# CONFIG_AFFS_FS is not set 1009# CONFIG_AFFS_FS is not set
977# CONFIG_ECRYPT_FS is not set
978# CONFIG_HFS_FS is not set 1010# CONFIG_HFS_FS is not set
979# CONFIG_HFSPLUS_FS is not set 1011# CONFIG_HFSPLUS_FS is not set
980# CONFIG_BEFS_FS is not set 1012# CONFIG_BEFS_FS is not set
981# CONFIG_BFS_FS is not set 1013# CONFIG_BFS_FS is not set
982# CONFIG_EFS_FS is not set 1014# CONFIG_EFS_FS is not set
983# CONFIG_JFFS2_FS is not set 1015CONFIG_JFFS2_FS=y
984CONFIG_CRAMFS=m 1016CONFIG_JFFS2_FS_DEBUG=0
1017CONFIG_JFFS2_FS_WRITEBUFFER=y
1018# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1019CONFIG_JFFS2_SUMMARY=y
1020CONFIG_JFFS2_FS_XATTR=y
1021CONFIG_JFFS2_FS_POSIX_ACL=y
1022CONFIG_JFFS2_FS_SECURITY=y
1023CONFIG_JFFS2_COMPRESSION_OPTIONS=y
1024CONFIG_JFFS2_ZLIB=y
1025CONFIG_JFFS2_LZO=y
1026CONFIG_JFFS2_RTIME=y
1027CONFIG_JFFS2_RUBIN=y
1028# CONFIG_JFFS2_CMODE_NONE is not set
1029CONFIG_JFFS2_CMODE_PRIORITY=y
1030# CONFIG_JFFS2_CMODE_SIZE is not set
1031# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
1032# CONFIG_CRAMFS is not set
1033CONFIG_SQUASHFS=y
1034# CONFIG_SQUASHFS_EMBEDDED is not set
1035CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
985# CONFIG_VXFS_FS is not set 1036# CONFIG_VXFS_FS is not set
1037# CONFIG_MINIX_FS is not set
1038# CONFIG_OMFS_FS is not set
986# CONFIG_HPFS_FS is not set 1039# CONFIG_HPFS_FS is not set
987# CONFIG_QNX4FS_FS is not set 1040# CONFIG_QNX4FS_FS is not set
1041# CONFIG_ROMFS_FS is not set
988# CONFIG_SYSV_FS is not set 1042# CONFIG_SYSV_FS is not set
989# CONFIG_UFS_FS is not set 1043# CONFIG_UFS_FS is not set
990 1044CONFIG_NETWORK_FILESYSTEMS=y
991#
992# Network File Systems
993#
994CONFIG_NFS_FS=y 1045CONFIG_NFS_FS=y
995# CONFIG_NFS_V3 is not set 1046CONFIG_NFS_V3=y
1047# CONFIG_NFS_V3_ACL is not set
996# CONFIG_NFS_V4 is not set 1048# CONFIG_NFS_V4 is not set
997# CONFIG_NFS_DIRECTIO is not set
998CONFIG_NFSD=m
999# CONFIG_NFSD_V3 is not set
1000# CONFIG_NFSD_TCP is not set
1001CONFIG_ROOT_NFS=y 1049CONFIG_ROOT_NFS=y
1050# CONFIG_NFSD is not set
1002CONFIG_LOCKD=y 1051CONFIG_LOCKD=y
1003CONFIG_EXPORTFS=m 1052CONFIG_LOCKD_V4=y
1004CONFIG_NFS_COMMON=y 1053CONFIG_NFS_COMMON=y
1005CONFIG_SUNRPC=y 1054CONFIG_SUNRPC=y
1006# CONFIG_RPCSEC_GSS_KRB5 is not set 1055# CONFIG_RPCSEC_GSS_KRB5 is not set
1007# CONFIG_RPCSEC_GSS_SPKM3 is not set 1056# CONFIG_RPCSEC_GSS_SPKM3 is not set
1008CONFIG_SMB_FS=m 1057# CONFIG_SMB_FS is not set
1009# CONFIG_SMB_NLS_DEFAULT is not set
1010# CONFIG_CIFS is not set 1058# CONFIG_CIFS is not set
1011# CONFIG_NCP_FS is not set 1059# CONFIG_NCP_FS is not set
1012# CONFIG_CODA_FS is not set 1060# CONFIG_CODA_FS is not set
1013# CONFIG_AFS_FS is not set 1061# CONFIG_AFS_FS is not set
1014# CONFIG_9P_FS is not set
1015 1062
1016# 1063#
1017# Partition Types 1064# Partition Types
1018# 1065#
1019# CONFIG_PARTITION_ADVANCED is not set 1066# CONFIG_PARTITION_ADVANCED is not set
1020CONFIG_MSDOS_PARTITION=y 1067CONFIG_MSDOS_PARTITION=y
1021 1068CONFIG_NLS=y
1022#
1023# Native Language Support
1024#
1025CONFIG_NLS=m
1026CONFIG_NLS_DEFAULT="iso8859-1" 1069CONFIG_NLS_DEFAULT="iso8859-1"
1027# CONFIG_NLS_CODEPAGE_437 is not set 1070# CONFIG_NLS_CODEPAGE_437 is not set
1028# CONFIG_NLS_CODEPAGE_737 is not set 1071# CONFIG_NLS_CODEPAGE_737 is not set
@@ -1062,34 +1105,71 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1062# CONFIG_NLS_KOI8_R is not set 1105# CONFIG_NLS_KOI8_R is not set
1063# CONFIG_NLS_KOI8_U is not set 1106# CONFIG_NLS_KOI8_U is not set
1064# CONFIG_NLS_UTF8 is not set 1107# CONFIG_NLS_UTF8 is not set
1065 1108# CONFIG_DLM is not set
1066#
1067# Distributed Lock Manager
1068#
1069CONFIG_DLM=m
1070CONFIG_DLM_TCP=y
1071# CONFIG_DLM_SCTP is not set
1072# CONFIG_DLM_DEBUG is not set
1073
1074#
1075# Profiling support
1076#
1077# CONFIG_PROFILING is not set
1078 1109
1079# 1110#
1080# Kernel hacking 1111# Kernel hacking
1081# 1112#
1082CONFIG_TRACE_IRQFLAGS_SUPPORT=y 1113CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1083# CONFIG_PRINTK_TIME is not set 1114# CONFIG_PRINTK_TIME is not set
1115CONFIG_ENABLE_WARN_DEPRECATED=y
1084CONFIG_ENABLE_MUST_CHECK=y 1116CONFIG_ENABLE_MUST_CHECK=y
1117CONFIG_FRAME_WARN=1024
1085# CONFIG_MAGIC_SYSRQ is not set 1118# CONFIG_MAGIC_SYSRQ is not set
1119CONFIG_STRIP_ASM_SYMS=y
1086# CONFIG_UNUSED_SYMBOLS is not set 1120# CONFIG_UNUSED_SYMBOLS is not set
1087# CONFIG_DEBUG_FS is not set 1121# CONFIG_DEBUG_FS is not set
1088# CONFIG_HEADERS_CHECK is not set 1122# CONFIG_HEADERS_CHECK is not set
1089# CONFIG_DEBUG_KERNEL is not set 1123CONFIG_DEBUG_KERNEL=y
1090CONFIG_LOG_BUF_SHIFT=14 1124# CONFIG_DEBUG_SHIRQ is not set
1091CONFIG_CROSSCOMPILE=y 1125# CONFIG_DETECT_SOFTLOCKUP is not set
1126# CONFIG_DETECT_HUNG_TASK is not set
1127# CONFIG_SCHED_DEBUG is not set
1128# CONFIG_SCHEDSTATS is not set
1129# CONFIG_TIMER_STATS is not set
1130# CONFIG_DEBUG_OBJECTS is not set
1131# CONFIG_DEBUG_SLAB is not set
1132# CONFIG_DEBUG_RT_MUTEXES is not set
1133# CONFIG_RT_MUTEX_TESTER is not set
1134# CONFIG_DEBUG_SPINLOCK is not set
1135# CONFIG_DEBUG_MUTEXES is not set
1136# CONFIG_DEBUG_LOCK_ALLOC is not set
1137# CONFIG_PROVE_LOCKING is not set
1138# CONFIG_LOCK_STAT is not set
1139# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1140# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1141# CONFIG_DEBUG_KOBJECT is not set
1142# CONFIG_DEBUG_INFO is not set
1143# CONFIG_DEBUG_VM is not set
1144# CONFIG_DEBUG_WRITECOUNT is not set
1145# CONFIG_DEBUG_MEMORY_INIT is not set
1146# CONFIG_DEBUG_LIST is not set
1147# CONFIG_DEBUG_SG is not set
1148# CONFIG_DEBUG_NOTIFIERS is not set
1149# CONFIG_DEBUG_CREDENTIALS is not set
1150# CONFIG_BOOT_PRINTK_DELAY is not set
1151# CONFIG_RCU_TORTURE_TEST is not set
1152# CONFIG_BACKTRACE_SELF_TEST is not set
1153# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1154# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1155# CONFIG_FAULT_INJECTION is not set
1156# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1157# CONFIG_PAGE_POISONING is not set
1158CONFIG_HAVE_FUNCTION_TRACER=y
1159CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1160CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
1161CONFIG_HAVE_DYNAMIC_FTRACE=y
1162CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1163CONFIG_TRACING_SUPPORT=y
1164# CONFIG_FTRACE is not set
1165# CONFIG_SAMPLES is not set
1166CONFIG_HAVE_ARCH_KGDB=y
1167# CONFIG_KGDB is not set
1168CONFIG_EARLY_PRINTK=y
1092# CONFIG_CMDLINE_BOOL is not set 1169# CONFIG_CMDLINE_BOOL is not set
1170# CONFIG_DEBUG_STACK_USAGE is not set
1171# CONFIG_RUNTIME_DEBUG is not set
1172CONFIG_DEBUG_ZBOOT=y
1093 1173
1094# 1174#
1095# Security options 1175# Security options
@@ -1097,67 +1177,32 @@ CONFIG_CROSSCOMPILE=y
1097CONFIG_KEYS=y 1177CONFIG_KEYS=y
1098CONFIG_KEYS_DEBUG_PROC_KEYS=y 1178CONFIG_KEYS_DEBUG_PROC_KEYS=y
1099# CONFIG_SECURITY is not set 1179# CONFIG_SECURITY is not set
1100 1180CONFIG_SECURITYFS=y
1101# 1181# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1102# Cryptographic options 1182# CONFIG_DEFAULT_SECURITY_SMACK is not set
1103# 1183# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1104CONFIG_CRYPTO=y 1184CONFIG_DEFAULT_SECURITY_DAC=y
1105CONFIG_CRYPTO_ALGAPI=y 1185CONFIG_DEFAULT_SECURITY=""
1106CONFIG_CRYPTO_BLKCIPHER=m 1186# CONFIG_CRYPTO is not set
1107CONFIG_CRYPTO_HASH=y 1187# CONFIG_BINARY_PRINTF is not set
1108CONFIG_CRYPTO_MANAGER=y
1109CONFIG_CRYPTO_HMAC=y
1110CONFIG_CRYPTO_XCBC=m
1111CONFIG_CRYPTO_NULL=m
1112CONFIG_CRYPTO_MD4=m
1113CONFIG_CRYPTO_MD5=y
1114CONFIG_CRYPTO_SHA1=m
1115CONFIG_CRYPTO_SHA256=m
1116CONFIG_CRYPTO_SHA512=m
1117CONFIG_CRYPTO_WP512=m
1118CONFIG_CRYPTO_TGR192=m
1119CONFIG_CRYPTO_GF128MUL=m
1120CONFIG_CRYPTO_ECB=m
1121CONFIG_CRYPTO_CBC=m
1122CONFIG_CRYPTO_PCBC=m
1123CONFIG_CRYPTO_LRW=m
1124CONFIG_CRYPTO_DES=m
1125CONFIG_CRYPTO_FCRYPT=m
1126CONFIG_CRYPTO_BLOWFISH=m
1127CONFIG_CRYPTO_TWOFISH=m
1128CONFIG_CRYPTO_TWOFISH_COMMON=m
1129CONFIG_CRYPTO_SERPENT=m
1130CONFIG_CRYPTO_AES=m
1131CONFIG_CRYPTO_CAST5=m
1132CONFIG_CRYPTO_CAST6=m
1133CONFIG_CRYPTO_TEA=m
1134CONFIG_CRYPTO_ARC4=m
1135CONFIG_CRYPTO_KHAZAD=m
1136CONFIG_CRYPTO_ANUBIS=m
1137CONFIG_CRYPTO_DEFLATE=m
1138CONFIG_CRYPTO_MICHAEL_MIC=m
1139CONFIG_CRYPTO_CRC32C=m
1140CONFIG_CRYPTO_CAMELLIA=m
1141# CONFIG_CRYPTO_TEST is not set
1142
1143#
1144# Hardware crypto devices
1145#
1146 1188
1147# 1189#
1148# Library routines 1190# Library routines
1149# 1191#
1150CONFIG_BITREVERSE=y 1192CONFIG_BITREVERSE=y
1151CONFIG_CRC_CCITT=m 1193CONFIG_GENERIC_FIND_LAST_BIT=y
1152CONFIG_CRC16=m 1194# CONFIG_CRC_CCITT is not set
1195# CONFIG_CRC16 is not set
1196# CONFIG_CRC_T10DIF is not set
1197# CONFIG_CRC_ITU_T is not set
1153CONFIG_CRC32=y 1198CONFIG_CRC32=y
1154CONFIG_LIBCRC32C=m 1199# CONFIG_CRC7 is not set
1155CONFIG_ZLIB_INFLATE=m 1200# CONFIG_LIBCRC32C is not set
1156CONFIG_ZLIB_DEFLATE=m 1201CONFIG_ZLIB_INFLATE=y
1157CONFIG_TEXTSEARCH=y 1202CONFIG_ZLIB_DEFLATE=y
1158CONFIG_TEXTSEARCH_KMP=m 1203CONFIG_LZO_COMPRESS=y
1159CONFIG_TEXTSEARCH_BM=m 1204CONFIG_LZO_DECOMPRESS=y
1160CONFIG_TEXTSEARCH_FSM=m
1161CONFIG_PLIST=y
1162CONFIG_HAS_IOMEM=y 1205CONFIG_HAS_IOMEM=y
1163CONFIG_HAS_IOPORT=y 1206CONFIG_HAS_IOPORT=y
1207CONFIG_HAS_DMA=y
1208CONFIG_NLATTR=y
diff --git a/arch/mips/configs/db1200_defconfig b/arch/mips/configs/db1200_defconfig
index dabf03032e06..991c20adf471 100644
--- a/arch/mips/configs/db1200_defconfig
+++ b/arch/mips/configs/db1200_defconfig
@@ -1,78 +1,102 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20 3# Linux kernel version: 2.6.33
4# Tue Feb 20 21:47:25 2007 4# Fri Feb 26 10:18:09 2010
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
8# 8#
9# Machine selection 9# Machine selection
10# 10#
11CONFIG_ZONE_DMA=y
12CONFIG_MACH_ALCHEMY=y 11CONFIG_MACH_ALCHEMY=y
13# CONFIG_MIPS_MTX1 is not set 12# CONFIG_AR7 is not set
14# CONFIG_MIPS_BOSPORUS is not set 13# CONFIG_BCM47XX is not set
15# CONFIG_MIPS_PB1000 is not set 14# CONFIG_BCM63XX is not set
16# CONFIG_MIPS_PB1100 is not set
17# CONFIG_MIPS_PB1500 is not set
18# CONFIG_MIPS_PB1550 is not set
19# CONFIG_MIPS_PB1200 is not set
20# CONFIG_MIPS_DB1000 is not set
21# CONFIG_MIPS_DB1100 is not set
22# CONFIG_MIPS_DB1500 is not set
23# CONFIG_MIPS_DB1550 is not set
24CONFIG_MIPS_DB1200=y
25# CONFIG_MIPS_MIRAGE is not set
26# CONFIG_MIPS_COBALT is not set 15# CONFIG_MIPS_COBALT is not set
27# CONFIG_MACH_DECSTATION is not set 16# CONFIG_MACH_DECSTATION is not set
28# CONFIG_MACH_JAZZ is not set 17# CONFIG_MACH_JAZZ is not set
18# CONFIG_LASAT is not set
19# CONFIG_MACH_LOONGSON is not set
29# CONFIG_MIPS_MALTA is not set 20# CONFIG_MIPS_MALTA is not set
30# CONFIG_WR_PPMC is not set
31# CONFIG_MIPS_SIM is not set 21# CONFIG_MIPS_SIM is not set
32# CONFIG_MOMENCO_JAGUAR_ATX is not set 22# CONFIG_NEC_MARKEINS is not set
33# CONFIG_MIPS_XXS1500 is not set 23# CONFIG_MACH_VR41XX is not set
24# CONFIG_NXP_STB220 is not set
25# CONFIG_NXP_STB225 is not set
34# CONFIG_PNX8550_JBS is not set 26# CONFIG_PNX8550_JBS is not set
35# CONFIG_PNX8550_STB810 is not set 27# CONFIG_PNX8550_STB810 is not set
36# CONFIG_MACH_VR41XX is not set 28# CONFIG_PMC_MSP is not set
37# CONFIG_PMC_YOSEMITE is not set 29# CONFIG_PMC_YOSEMITE is not set
38# CONFIG_MARKEINS is not set 30# CONFIG_POWERTV is not set
39# CONFIG_SGI_IP22 is not set 31# CONFIG_SGI_IP22 is not set
40# CONFIG_SGI_IP27 is not set 32# CONFIG_SGI_IP27 is not set
33# CONFIG_SGI_IP28 is not set
41# CONFIG_SGI_IP32 is not set 34# CONFIG_SGI_IP32 is not set
42# CONFIG_SIBYTE_BIGSUR is not set
43# CONFIG_SIBYTE_SWARM is not set
44# CONFIG_SIBYTE_SENTOSA is not set
45# CONFIG_SIBYTE_RHONE is not set
46# CONFIG_SIBYTE_CARMEL is not set
47# CONFIG_SIBYTE_LITTLESUR is not set
48# CONFIG_SIBYTE_CRHINE is not set 35# CONFIG_SIBYTE_CRHINE is not set
36# CONFIG_SIBYTE_CARMEL is not set
49# CONFIG_SIBYTE_CRHONE is not set 37# CONFIG_SIBYTE_CRHONE is not set
38# CONFIG_SIBYTE_RHONE is not set
39# CONFIG_SIBYTE_SWARM is not set
40# CONFIG_SIBYTE_LITTLESUR is not set
41# CONFIG_SIBYTE_SENTOSA is not set
42# CONFIG_SIBYTE_BIGSUR is not set
50# CONFIG_SNI_RM is not set 43# CONFIG_SNI_RM is not set
51# CONFIG_TOSHIBA_JMR3927 is not set 44# CONFIG_MACH_TX39XX is not set
52# CONFIG_TOSHIBA_RBTX4927 is not set 45# CONFIG_MACH_TX49XX is not set
53# CONFIG_TOSHIBA_RBTX4938 is not set 46# CONFIG_MIKROTIK_RB532 is not set
47# CONFIG_WR_PPMC is not set
48# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
49# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
50CONFIG_ALCHEMY_GPIOINT_AU1000=y
51# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
52# CONFIG_MIPS_MTX1 is not set
53# CONFIG_MIPS_BOSPORUS is not set
54# CONFIG_MIPS_DB1000 is not set
55# CONFIG_MIPS_DB1100 is not set
56CONFIG_MIPS_DB1200=y
57# CONFIG_MIPS_DB1500 is not set
58# CONFIG_MIPS_DB1550 is not set
59# CONFIG_MIPS_MIRAGE is not set
60# CONFIG_MIPS_PB1000 is not set
61# CONFIG_MIPS_PB1100 is not set
62# CONFIG_MIPS_PB1200 is not set
63# CONFIG_MIPS_PB1500 is not set
64# CONFIG_MIPS_PB1550 is not set
65# CONFIG_MIPS_XXS1500 is not set
66CONFIG_SOC_AU1200=y
67CONFIG_SOC_AU1X00=y
68CONFIG_LOONGSON_UART_BASE=y
54CONFIG_RWSEM_GENERIC_SPINLOCK=y 69CONFIG_RWSEM_GENERIC_SPINLOCK=y
55# CONFIG_ARCH_HAS_ILOG2_U32 is not set 70# CONFIG_ARCH_HAS_ILOG2_U32 is not set
56# CONFIG_ARCH_HAS_ILOG2_U64 is not set 71# CONFIG_ARCH_HAS_ILOG2_U64 is not set
72CONFIG_ARCH_SUPPORTS_OPROFILE=y
57CONFIG_GENERIC_FIND_NEXT_BIT=y 73CONFIG_GENERIC_FIND_NEXT_BIT=y
58CONFIG_GENERIC_HWEIGHT=y 74CONFIG_GENERIC_HWEIGHT=y
59CONFIG_GENERIC_CALIBRATE_DELAY=y 75CONFIG_GENERIC_CALIBRATE_DELAY=y
76CONFIG_GENERIC_CLOCKEVENTS=y
60CONFIG_GENERIC_TIME=y 77CONFIG_GENERIC_TIME=y
61CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 78CONFIG_GENERIC_CMOS_UPDATE=y
62# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set 79CONFIG_SCHED_OMIT_FRAME_POINTER=y
80CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
81CONFIG_CEVT_R4K_LIB=y
82CONFIG_CSRC_R4K_LIB=y
63CONFIG_DMA_COHERENT=y 83CONFIG_DMA_COHERENT=y
84CONFIG_SYS_HAS_EARLY_PRINTK=y
64CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y 85CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y
86# CONFIG_NO_IOPORT is not set
87CONFIG_GENERIC_GPIO=y
65# CONFIG_CPU_BIG_ENDIAN is not set 88# CONFIG_CPU_BIG_ENDIAN is not set
66CONFIG_CPU_LITTLE_ENDIAN=y 89CONFIG_CPU_LITTLE_ENDIAN=y
67CONFIG_SYS_SUPPORTS_APM_EMULATION=y 90CONFIG_SYS_SUPPORTS_APM_EMULATION=y
68CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y 91CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
69CONFIG_SOC_AU1200=y 92CONFIG_IRQ_CPU=y
70CONFIG_SOC_AU1X00=y
71CONFIG_MIPS_L1_CACHE_SHIFT=5 93CONFIG_MIPS_L1_CACHE_SHIFT=5
72 94
73# 95#
74# CPU selection 96# CPU selection
75# 97#
98# CONFIG_CPU_LOONGSON2E is not set
99# CONFIG_CPU_LOONGSON2F is not set
76CONFIG_CPU_MIPS32_R1=y 100CONFIG_CPU_MIPS32_R1=y
77# CONFIG_CPU_MIPS32_R2 is not set 101# CONFIG_CPU_MIPS32_R2 is not set
78# CONFIG_CPU_MIPS64_R1 is not set 102# CONFIG_CPU_MIPS64_R1 is not set
@@ -85,6 +109,7 @@ CONFIG_CPU_MIPS32_R1=y
85# CONFIG_CPU_TX49XX is not set 109# CONFIG_CPU_TX49XX is not set
86# CONFIG_CPU_R5000 is not set 110# CONFIG_CPU_R5000 is not set
87# CONFIG_CPU_R5432 is not set 111# CONFIG_CPU_R5432 is not set
112# CONFIG_CPU_R5500 is not set
88# CONFIG_CPU_R6000 is not set 113# CONFIG_CPU_R6000 is not set
89# CONFIG_CPU_NEVADA is not set 114# CONFIG_CPU_NEVADA is not set
90# CONFIG_CPU_R8000 is not set 115# CONFIG_CPU_R8000 is not set
@@ -92,11 +117,14 @@ CONFIG_CPU_MIPS32_R1=y
92# CONFIG_CPU_RM7000 is not set 117# CONFIG_CPU_RM7000 is not set
93# CONFIG_CPU_RM9000 is not set 118# CONFIG_CPU_RM9000 is not set
94# CONFIG_CPU_SB1 is not set 119# CONFIG_CPU_SB1 is not set
120# CONFIG_CPU_CAVIUM_OCTEON is not set
121CONFIG_SYS_SUPPORTS_ZBOOT=y
95CONFIG_SYS_HAS_CPU_MIPS32_R1=y 122CONFIG_SYS_HAS_CPU_MIPS32_R1=y
96CONFIG_CPU_MIPS32=y 123CONFIG_CPU_MIPS32=y
97CONFIG_CPU_MIPSR1=y 124CONFIG_CPU_MIPSR1=y
98CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 125CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
99CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y 126CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
127CONFIG_HARDWARE_WATCHPOINTS=y
100 128
101# 129#
102# Kernel type 130# Kernel type
@@ -106,180 +134,235 @@ CONFIG_32BIT=y
106CONFIG_PAGE_SIZE_4KB=y 134CONFIG_PAGE_SIZE_4KB=y
107# CONFIG_PAGE_SIZE_8KB is not set 135# CONFIG_PAGE_SIZE_8KB is not set
108# CONFIG_PAGE_SIZE_16KB is not set 136# CONFIG_PAGE_SIZE_16KB is not set
137# CONFIG_PAGE_SIZE_32KB is not set
109# CONFIG_PAGE_SIZE_64KB is not set 138# CONFIG_PAGE_SIZE_64KB is not set
110CONFIG_CPU_HAS_PREFETCH=y 139CONFIG_CPU_HAS_PREFETCH=y
111CONFIG_MIPS_MT_DISABLED=y 140CONFIG_MIPS_MT_DISABLED=y
112# CONFIG_MIPS_MT_SMP is not set 141# CONFIG_MIPS_MT_SMP is not set
113# CONFIG_MIPS_MT_SMTC is not set 142# CONFIG_MIPS_MT_SMTC is not set
114# CONFIG_MIPS_VPE_LOADER is not set
115CONFIG_64BIT_PHYS_ADDR=y 143CONFIG_64BIT_PHYS_ADDR=y
144CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
116CONFIG_CPU_HAS_SYNC=y 145CONFIG_CPU_HAS_SYNC=y
117CONFIG_GENERIC_HARDIRQS=y 146CONFIG_GENERIC_HARDIRQS=y
118CONFIG_GENERIC_IRQ_PROBE=y 147CONFIG_GENERIC_IRQ_PROBE=y
119CONFIG_CPU_SUPPORTS_HIGHMEM=y 148CONFIG_CPU_SUPPORTS_HIGHMEM=y
120CONFIG_ARCH_FLATMEM_ENABLE=y 149CONFIG_ARCH_FLATMEM_ENABLE=y
150CONFIG_ARCH_POPULATES_NODE_MAP=y
121CONFIG_SELECT_MEMORY_MODEL=y 151CONFIG_SELECT_MEMORY_MODEL=y
122CONFIG_FLATMEM_MANUAL=y 152CONFIG_FLATMEM_MANUAL=y
123# CONFIG_DISCONTIGMEM_MANUAL is not set 153# CONFIG_DISCONTIGMEM_MANUAL is not set
124# CONFIG_SPARSEMEM_MANUAL is not set 154# CONFIG_SPARSEMEM_MANUAL is not set
125CONFIG_FLATMEM=y 155CONFIG_FLATMEM=y
126CONFIG_FLAT_NODE_MEM_MAP=y 156CONFIG_FLAT_NODE_MEM_MAP=y
127# CONFIG_SPARSEMEM_STATIC is not set 157CONFIG_PAGEFLAGS_EXTENDED=y
128CONFIG_SPLIT_PTLOCK_CPUS=4 158CONFIG_SPLIT_PTLOCK_CPUS=4
129# CONFIG_RESOURCES_64BIT is not set 159CONFIG_PHYS_ADDR_T_64BIT=y
130CONFIG_ZONE_DMA_FLAG=1 160CONFIG_ZONE_DMA_FLAG=0
161CONFIG_VIRT_TO_BUS=y
162CONFIG_KSM=y
163CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
164CONFIG_TICK_ONESHOT=y
165CONFIG_NO_HZ=y
166CONFIG_HIGH_RES_TIMERS=y
167CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
131# CONFIG_HZ_48 is not set 168# CONFIG_HZ_48 is not set
132# CONFIG_HZ_100 is not set 169CONFIG_HZ_100=y
133# CONFIG_HZ_128 is not set 170# CONFIG_HZ_128 is not set
134# CONFIG_HZ_250 is not set 171# CONFIG_HZ_250 is not set
135# CONFIG_HZ_256 is not set 172# CONFIG_HZ_256 is not set
136CONFIG_HZ_1000=y 173# CONFIG_HZ_1000 is not set
137# CONFIG_HZ_1024 is not set 174# CONFIG_HZ_1024 is not set
138CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 175CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
139CONFIG_HZ=1000 176CONFIG_HZ=100
140CONFIG_PREEMPT_NONE=y 177CONFIG_PREEMPT_NONE=y
141# CONFIG_PREEMPT_VOLUNTARY is not set 178# CONFIG_PREEMPT_VOLUNTARY is not set
142# CONFIG_PREEMPT is not set 179# CONFIG_PREEMPT is not set
143# CONFIG_KEXEC is not set 180# CONFIG_KEXEC is not set
181# CONFIG_SECCOMP is not set
144CONFIG_LOCKDEP_SUPPORT=y 182CONFIG_LOCKDEP_SUPPORT=y
145CONFIG_STACKTRACE_SUPPORT=y 183CONFIG_STACKTRACE_SUPPORT=y
146CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 184CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
185CONFIG_CONSTRUCTORS=y
147 186
148# 187#
149# Code maturity level options 188# General setup
150# 189#
151CONFIG_EXPERIMENTAL=y 190CONFIG_EXPERIMENTAL=y
152CONFIG_BROKEN_ON_SMP=y 191CONFIG_BROKEN_ON_SMP=y
153CONFIG_INIT_ENV_ARG_LIMIT=32 192CONFIG_INIT_ENV_ARG_LIMIT=32
154 193CONFIG_LOCALVERSION="-db1200"
155#
156# General setup
157#
158CONFIG_LOCALVERSION=""
159CONFIG_LOCALVERSION_AUTO=y 194CONFIG_LOCALVERSION_AUTO=y
195CONFIG_HAVE_KERNEL_GZIP=y
196CONFIG_HAVE_KERNEL_BZIP2=y
197CONFIG_HAVE_KERNEL_LZMA=y
198CONFIG_HAVE_KERNEL_LZO=y
199# CONFIG_KERNEL_GZIP is not set
200# CONFIG_KERNEL_BZIP2 is not set
201CONFIG_KERNEL_LZMA=y
202# CONFIG_KERNEL_LZO is not set
160CONFIG_SWAP=y 203CONFIG_SWAP=y
161CONFIG_SYSVIPC=y 204CONFIG_SYSVIPC=y
162# CONFIG_IPC_NS is not set
163CONFIG_SYSVIPC_SYSCTL=y 205CONFIG_SYSVIPC_SYSCTL=y
164# CONFIG_POSIX_MQUEUE is not set 206CONFIG_POSIX_MQUEUE=y
207CONFIG_POSIX_MQUEUE_SYSCTL=y
165# CONFIG_BSD_PROCESS_ACCT is not set 208# CONFIG_BSD_PROCESS_ACCT is not set
166# CONFIG_TASKSTATS is not set 209# CONFIG_TASKSTATS is not set
167# CONFIG_UTS_NS is not set
168# CONFIG_AUDIT is not set 210# CONFIG_AUDIT is not set
169CONFIG_IKCONFIG=y 211
170CONFIG_IKCONFIG_PROC=y 212#
171CONFIG_SYSFS_DEPRECATED=y 213# RCU Subsystem
214#
215# CONFIG_TREE_RCU is not set
216# CONFIG_TREE_PREEMPT_RCU is not set
217CONFIG_TINY_RCU=y
218# CONFIG_TREE_RCU_TRACE is not set
219# CONFIG_IKCONFIG is not set
220CONFIG_LOG_BUF_SHIFT=14
221# CONFIG_GROUP_SCHED is not set
222# CONFIG_CGROUPS is not set
223# CONFIG_SYSFS_DEPRECATED_V2 is not set
172# CONFIG_RELAY is not set 224# CONFIG_RELAY is not set
173# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 225# CONFIG_NAMESPACES is not set
226# CONFIG_BLK_DEV_INITRD is not set
227CONFIG_CC_OPTIMIZE_FOR_SIZE=y
174CONFIG_SYSCTL=y 228CONFIG_SYSCTL=y
229CONFIG_ANON_INODES=y
175CONFIG_EMBEDDED=y 230CONFIG_EMBEDDED=y
176CONFIG_SYSCTL_SYSCALL=y 231# CONFIG_SYSCTL_SYSCALL is not set
177CONFIG_KALLSYMS=y 232# CONFIG_KALLSYMS is not set
178# CONFIG_KALLSYMS_EXTRA_PASS is not set
179CONFIG_HOTPLUG=y 233CONFIG_HOTPLUG=y
180CONFIG_PRINTK=y 234CONFIG_PRINTK=y
181CONFIG_BUG=y 235CONFIG_BUG=y
182CONFIG_ELF_CORE=y 236CONFIG_ELF_CORE=y
237# CONFIG_PCSPKR_PLATFORM is not set
183CONFIG_BASE_FULL=y 238CONFIG_BASE_FULL=y
184CONFIG_FUTEX=y 239CONFIG_FUTEX=y
185CONFIG_EPOLL=y 240CONFIG_EPOLL=y
241CONFIG_SIGNALFD=y
242CONFIG_TIMERFD=y
243CONFIG_EVENTFD=y
186CONFIG_SHMEM=y 244CONFIG_SHMEM=y
245CONFIG_AIO=y
246
247#
248# Kernel Performance Events And Counters
249#
250# CONFIG_VM_EVENT_COUNTERS is not set
251# CONFIG_COMPAT_BRK is not set
187CONFIG_SLAB=y 252CONFIG_SLAB=y
188CONFIG_VM_EVENT_COUNTERS=y 253# CONFIG_SLUB is not set
189CONFIG_RT_MUTEXES=y
190# CONFIG_TINY_SHMEM is not set
191CONFIG_BASE_SMALL=0
192# CONFIG_SLOB is not set 254# CONFIG_SLOB is not set
255# CONFIG_PROFILING is not set
256CONFIG_HAVE_OPROFILE=y
193 257
194# 258#
195# Loadable module support 259# GCOV-based kernel profiling
196# 260#
261# CONFIG_SLOW_WORK is not set
262CONFIG_HAVE_GENERIC_DMA_COHERENT=y
263CONFIG_SLABINFO=y
264CONFIG_RT_MUTEXES=y
265CONFIG_BASE_SMALL=0
197CONFIG_MODULES=y 266CONFIG_MODULES=y
267# CONFIG_MODULE_FORCE_LOAD is not set
198CONFIG_MODULE_UNLOAD=y 268CONFIG_MODULE_UNLOAD=y
199# CONFIG_MODULE_FORCE_UNLOAD is not set 269# CONFIG_MODULE_FORCE_UNLOAD is not set
200CONFIG_MODVERSIONS=y 270# CONFIG_MODVERSIONS is not set
201CONFIG_MODULE_SRCVERSION_ALL=y 271# CONFIG_MODULE_SRCVERSION_ALL is not set
202CONFIG_KMOD=y
203
204#
205# Block layer
206#
207CONFIG_BLOCK=y 272CONFIG_BLOCK=y
208# CONFIG_LBD is not set 273# CONFIG_LBDAF is not set
209# CONFIG_BLK_DEV_IO_TRACE is not set 274# CONFIG_BLK_DEV_BSG is not set
210# CONFIG_LSF is not set 275# CONFIG_BLK_DEV_INTEGRITY is not set
211 276
212# 277#
213# IO Schedulers 278# IO Schedulers
214# 279#
215CONFIG_IOSCHED_NOOP=y 280CONFIG_IOSCHED_NOOP=y
216CONFIG_IOSCHED_AS=y 281# CONFIG_IOSCHED_DEADLINE is not set
217CONFIG_IOSCHED_DEADLINE=y 282# CONFIG_IOSCHED_CFQ is not set
218CONFIG_IOSCHED_CFQ=y
219CONFIG_DEFAULT_AS=y
220# CONFIG_DEFAULT_DEADLINE is not set 283# CONFIG_DEFAULT_DEADLINE is not set
221# CONFIG_DEFAULT_CFQ is not set 284# CONFIG_DEFAULT_CFQ is not set
222# CONFIG_DEFAULT_NOOP is not set 285CONFIG_DEFAULT_NOOP=y
223CONFIG_DEFAULT_IOSCHED="anticipatory" 286CONFIG_DEFAULT_IOSCHED="noop"
287# CONFIG_INLINE_SPIN_TRYLOCK is not set
288# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
289# CONFIG_INLINE_SPIN_LOCK is not set
290# CONFIG_INLINE_SPIN_LOCK_BH is not set
291# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
292# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
293CONFIG_INLINE_SPIN_UNLOCK=y
294# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
295CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
296# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
297# CONFIG_INLINE_READ_TRYLOCK is not set
298# CONFIG_INLINE_READ_LOCK is not set
299# CONFIG_INLINE_READ_LOCK_BH is not set
300# CONFIG_INLINE_READ_LOCK_IRQ is not set
301# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
302CONFIG_INLINE_READ_UNLOCK=y
303# CONFIG_INLINE_READ_UNLOCK_BH is not set
304CONFIG_INLINE_READ_UNLOCK_IRQ=y
305# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
306# CONFIG_INLINE_WRITE_TRYLOCK is not set
307# CONFIG_INLINE_WRITE_LOCK is not set
308# CONFIG_INLINE_WRITE_LOCK_BH is not set
309# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
310# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
311CONFIG_INLINE_WRITE_UNLOCK=y
312# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
313CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
314# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
315# CONFIG_MUTEX_SPIN_ON_OWNER is not set
316# CONFIG_FREEZER is not set
224 317
225# 318#
226# Bus options (PCI, PCMCIA, EISA, ISA, TC) 319# Bus options (PCI, PCMCIA, EISA, ISA, TC)
227# 320#
321# CONFIG_ARCH_SUPPORTS_MSI is not set
228CONFIG_MMU=y 322CONFIG_MMU=y
229 323CONFIG_PCCARD=y
230# 324CONFIG_PCMCIA=y
231# PCCARD (PCMCIA/CardBus) support
232#
233CONFIG_PCCARD=m
234# CONFIG_PCMCIA_DEBUG is not set
235CONFIG_PCMCIA=m
236CONFIG_PCMCIA_LOAD_CIS=y 325CONFIG_PCMCIA_LOAD_CIS=y
237CONFIG_PCMCIA_IOCTL=y 326# CONFIG_PCMCIA_IOCTL is not set
238 327
239# 328#
240# PC-card bridges 329# PC-card bridges
241# 330#
242CONFIG_PCMCIA_AU1X00=m 331# CONFIG_PCMCIA_AU1X00 is not set
243 332CONFIG_PCMCIA_ALCHEMY_DEVBOARD=y
244#
245# PCI Hotplug Support
246#
247 333
248# 334#
249# Executable file formats 335# Executable file formats
250# 336#
251CONFIG_BINFMT_ELF=y 337CONFIG_BINFMT_ELF=y
252# CONFIG_BINFMT_MISC is not set 338CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
339# CONFIG_HAVE_AOUT is not set
340CONFIG_BINFMT_MISC=y
253CONFIG_TRAD_SIGNALS=y 341CONFIG_TRAD_SIGNALS=y
254 342
255# 343#
256# Power management options 344# Power management options
257# 345#
346CONFIG_ARCH_HIBERNATION_POSSIBLE=y
347CONFIG_ARCH_SUSPEND_POSSIBLE=y
258# CONFIG_PM is not set 348# CONFIG_PM is not set
259
260#
261# Networking
262#
263CONFIG_NET=y 349CONFIG_NET=y
264 350
265# 351#
266# Networking options 352# Networking options
267# 353#
268# CONFIG_NETDEBUG is not set
269CONFIG_PACKET=y 354CONFIG_PACKET=y
270# CONFIG_PACKET_MMAP is not set 355CONFIG_PACKET_MMAP=y
271CONFIG_UNIX=y 356CONFIG_UNIX=y
272CONFIG_XFRM=y 357# CONFIG_NET_KEY is not set
273CONFIG_XFRM_USER=m
274# CONFIG_XFRM_SUB_POLICY is not set
275CONFIG_XFRM_MIGRATE=y
276CONFIG_NET_KEY=y
277CONFIG_NET_KEY_MIGRATE=y
278CONFIG_INET=y 358CONFIG_INET=y
279CONFIG_IP_MULTICAST=y 359CONFIG_IP_MULTICAST=y
280# CONFIG_IP_ADVANCED_ROUTER is not set 360# CONFIG_IP_ADVANCED_ROUTER is not set
281CONFIG_IP_FIB_HASH=y 361CONFIG_IP_FIB_HASH=y
282# CONFIG_IP_PNP is not set 362CONFIG_IP_PNP=y
363# CONFIG_IP_PNP_DHCP is not set
364# CONFIG_IP_PNP_BOOTP is not set
365# CONFIG_IP_PNP_RARP is not set
283# CONFIG_NET_IPIP is not set 366# CONFIG_NET_IPIP is not set
284# CONFIG_NET_IPGRE is not set 367# CONFIG_NET_IPGRE is not set
285# CONFIG_IP_MROUTE is not set 368# CONFIG_IP_MROUTE is not set
@@ -290,107 +373,25 @@ CONFIG_IP_FIB_HASH=y
290# CONFIG_INET_IPCOMP is not set 373# CONFIG_INET_IPCOMP is not set
291# CONFIG_INET_XFRM_TUNNEL is not set 374# CONFIG_INET_XFRM_TUNNEL is not set
292# CONFIG_INET_TUNNEL is not set 375# CONFIG_INET_TUNNEL is not set
293CONFIG_INET_XFRM_MODE_TRANSPORT=m 376# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
294CONFIG_INET_XFRM_MODE_TUNNEL=m 377# CONFIG_INET_XFRM_MODE_TUNNEL is not set
295CONFIG_INET_XFRM_MODE_BEET=m 378# CONFIG_INET_XFRM_MODE_BEET is not set
296CONFIG_INET_DIAG=y 379CONFIG_INET_LRO=y
297CONFIG_INET_TCP_DIAG=y 380# CONFIG_INET_DIAG is not set
298# CONFIG_TCP_CONG_ADVANCED is not set 381# CONFIG_TCP_CONG_ADVANCED is not set
299CONFIG_TCP_CONG_CUBIC=y 382CONFIG_TCP_CONG_CUBIC=y
300CONFIG_DEFAULT_TCP_CONG="cubic" 383CONFIG_DEFAULT_TCP_CONG="cubic"
301CONFIG_TCP_MD5SIG=y 384# CONFIG_TCP_MD5SIG is not set
302
303#
304# IP: Virtual Server Configuration
305#
306# CONFIG_IP_VS is not set
307# CONFIG_IPV6 is not set 385# CONFIG_IPV6 is not set
308# CONFIG_INET6_XFRM_TUNNEL is not set 386# CONFIG_NETWORK_SECMARK is not set
309# CONFIG_INET6_TUNNEL is not set 387# CONFIG_NETFILTER is not set
310CONFIG_NETWORK_SECMARK=y
311CONFIG_NETFILTER=y
312# CONFIG_NETFILTER_DEBUG is not set
313
314#
315# Core Netfilter Configuration
316#
317# CONFIG_NETFILTER_NETLINK is not set
318CONFIG_NF_CONNTRACK_ENABLED=m
319CONFIG_NF_CONNTRACK_SUPPORT=y
320# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set
321CONFIG_NF_CONNTRACK=m
322CONFIG_NF_CT_ACCT=y
323CONFIG_NF_CONNTRACK_MARK=y
324CONFIG_NF_CONNTRACK_SECMARK=y
325CONFIG_NF_CONNTRACK_EVENTS=y
326CONFIG_NF_CT_PROTO_GRE=m
327CONFIG_NF_CT_PROTO_SCTP=m
328CONFIG_NF_CONNTRACK_AMANDA=m
329CONFIG_NF_CONNTRACK_FTP=m
330CONFIG_NF_CONNTRACK_H323=m
331CONFIG_NF_CONNTRACK_IRC=m
332# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
333CONFIG_NF_CONNTRACK_PPTP=m
334CONFIG_NF_CONNTRACK_SANE=m
335CONFIG_NF_CONNTRACK_SIP=m
336CONFIG_NF_CONNTRACK_TFTP=m
337CONFIG_NETFILTER_XTABLES=m
338CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
339CONFIG_NETFILTER_XT_TARGET_MARK=m
340CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
341CONFIG_NETFILTER_XT_TARGET_NFLOG=m
342CONFIG_NETFILTER_XT_TARGET_SECMARK=m
343CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
344CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
345CONFIG_NETFILTER_XT_MATCH_COMMENT=m
346CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
347CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
348CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
349CONFIG_NETFILTER_XT_MATCH_DCCP=m
350CONFIG_NETFILTER_XT_MATCH_DSCP=m
351CONFIG_NETFILTER_XT_MATCH_ESP=m
352CONFIG_NETFILTER_XT_MATCH_HELPER=m
353CONFIG_NETFILTER_XT_MATCH_LENGTH=m
354CONFIG_NETFILTER_XT_MATCH_LIMIT=m
355CONFIG_NETFILTER_XT_MATCH_MAC=m
356CONFIG_NETFILTER_XT_MATCH_MARK=m
357CONFIG_NETFILTER_XT_MATCH_POLICY=m
358CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
359CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
360CONFIG_NETFILTER_XT_MATCH_QUOTA=m
361CONFIG_NETFILTER_XT_MATCH_REALM=m
362CONFIG_NETFILTER_XT_MATCH_SCTP=m
363CONFIG_NETFILTER_XT_MATCH_STATE=m
364CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
365CONFIG_NETFILTER_XT_MATCH_STRING=m
366CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
367CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
368
369#
370# IP: Netfilter Configuration
371#
372CONFIG_NF_CONNTRACK_IPV4=m
373CONFIG_NF_CONNTRACK_PROC_COMPAT=y
374# CONFIG_IP_NF_QUEUE is not set
375# CONFIG_IP_NF_IPTABLES is not set
376# CONFIG_IP_NF_ARPTABLES is not set
377
378#
379# DCCP Configuration (EXPERIMENTAL)
380#
381# CONFIG_IP_DCCP is not set 388# CONFIG_IP_DCCP is not set
382
383#
384# SCTP Configuration (EXPERIMENTAL)
385#
386# CONFIG_IP_SCTP is not set 389# CONFIG_IP_SCTP is not set
387 390# CONFIG_RDS is not set
388#
389# TIPC Configuration (EXPERIMENTAL)
390#
391# CONFIG_TIPC is not set 391# CONFIG_TIPC is not set
392# CONFIG_ATM is not set 392# CONFIG_ATM is not set
393# CONFIG_BRIDGE is not set 393# CONFIG_BRIDGE is not set
394# CONFIG_NET_DSA is not set
394# CONFIG_VLAN_8021Q is not set 395# CONFIG_VLAN_8021Q is not set
395# CONFIG_DECNET is not set 396# CONFIG_DECNET is not set
396# CONFIG_LLC2 is not set 397# CONFIG_LLC2 is not set
@@ -400,21 +401,24 @@ CONFIG_NF_CONNTRACK_PROC_COMPAT=y
400# CONFIG_LAPB is not set 401# CONFIG_LAPB is not set
401# CONFIG_ECONET is not set 402# CONFIG_ECONET is not set
402# CONFIG_WAN_ROUTER is not set 403# CONFIG_WAN_ROUTER is not set
403 404# CONFIG_PHONET is not set
404# 405# CONFIG_IEEE802154 is not set
405# QoS and/or fair queueing
406#
407# CONFIG_NET_SCHED is not set 406# CONFIG_NET_SCHED is not set
408CONFIG_NET_CLS_ROUTE=y 407# CONFIG_DCB is not set
409 408
410# 409#
411# Network testing 410# Network testing
412# 411#
413# CONFIG_NET_PKTGEN is not set 412# CONFIG_NET_PKTGEN is not set
414# CONFIG_HAMRADIO is not set 413# CONFIG_HAMRADIO is not set
414# CONFIG_CAN is not set
415# CONFIG_IRDA is not set 415# CONFIG_IRDA is not set
416# CONFIG_BT is not set 416# CONFIG_BT is not set
417# CONFIG_IEEE80211 is not set 417# CONFIG_AF_RXRPC is not set
418# CONFIG_WIRELESS is not set
419# CONFIG_WIMAX is not set
420# CONFIG_RFKILL is not set
421# CONFIG_NET_9P is not set
418 422
419# 423#
420# Device Drivers 424# Device Drivers
@@ -423,25 +427,25 @@ CONFIG_NET_CLS_ROUTE=y
423# 427#
424# Generic Driver Options 428# Generic Driver Options
425# 429#
430CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
431# CONFIG_DEVTMPFS is not set
426CONFIG_STANDALONE=y 432CONFIG_STANDALONE=y
427CONFIG_PREVENT_FIRMWARE_BUILD=y 433CONFIG_PREVENT_FIRMWARE_BUILD=y
428CONFIG_FW_LOADER=y 434CONFIG_FW_LOADER=y
435CONFIG_FIRMWARE_IN_KERNEL=y
436CONFIG_EXTRA_FIRMWARE=""
437# CONFIG_DEBUG_DRIVER is not set
438# CONFIG_DEBUG_DEVRES is not set
429# CONFIG_SYS_HYPERVISOR is not set 439# CONFIG_SYS_HYPERVISOR is not set
430
431#
432# Connector - unified userspace <-> kernelspace linker
433#
434# CONFIG_CONNECTOR is not set 440# CONFIG_CONNECTOR is not set
435
436#
437# Memory Technology Devices (MTD)
438#
439CONFIG_MTD=y 441CONFIG_MTD=y
440# CONFIG_MTD_DEBUG is not set 442# CONFIG_MTD_DEBUG is not set
443# CONFIG_MTD_TESTS is not set
441# CONFIG_MTD_CONCAT is not set 444# CONFIG_MTD_CONCAT is not set
442CONFIG_MTD_PARTITIONS=y 445CONFIG_MTD_PARTITIONS=y
443# CONFIG_MTD_REDBOOT_PARTS is not set 446# CONFIG_MTD_REDBOOT_PARTS is not set
444# CONFIG_MTD_CMDLINE_PARTS is not set 447CONFIG_MTD_CMDLINE_PARTS=y
448# CONFIG_MTD_AR7_PARTS is not set
445 449
446# 450#
447# User Modules And Translation Layers 451# User Modules And Translation Layers
@@ -454,6 +458,7 @@ CONFIG_MTD_BLOCK=y
454# CONFIG_INFTL is not set 458# CONFIG_INFTL is not set
455# CONFIG_RFD_FTL is not set 459# CONFIG_RFD_FTL is not set
456# CONFIG_SSFDC is not set 460# CONFIG_SSFDC is not set
461# CONFIG_MTD_OOPS is not set
457 462
458# 463#
459# RAM/ROM/Flash chip drivers 464# RAM/ROM/Flash chip drivers
@@ -479,19 +484,21 @@ CONFIG_MTD_CFI_UTIL=y
479# CONFIG_MTD_RAM is not set 484# CONFIG_MTD_RAM is not set
480# CONFIG_MTD_ROM is not set 485# CONFIG_MTD_ROM is not set
481# CONFIG_MTD_ABSENT is not set 486# CONFIG_MTD_ABSENT is not set
482# CONFIG_MTD_OBSOLETE_CHIPS is not set
483 487
484# 488#
485# Mapping drivers for chip access 489# Mapping drivers for chip access
486# 490#
487# CONFIG_MTD_COMPLEX_MAPPINGS is not set 491# CONFIG_MTD_COMPLEX_MAPPINGS is not set
488# CONFIG_MTD_PHYSMAP is not set 492CONFIG_MTD_PHYSMAP=y
489CONFIG_MTD_ALCHEMY=y 493# CONFIG_MTD_PHYSMAP_COMPAT is not set
490# CONFIG_MTD_PLATRAM is not set 494# CONFIG_MTD_PLATRAM is not set
491 495
492# 496#
493# Self-contained MTD device drivers 497# Self-contained MTD device drivers
494# 498#
499# CONFIG_MTD_DATAFLASH is not set
500# CONFIG_MTD_M25P80 is not set
501# CONFIG_MTD_SST25L is not set
495# CONFIG_MTD_SLRAM is not set 502# CONFIG_MTD_SLRAM is not set
496# CONFIG_MTD_PHRAM is not set 503# CONFIG_MTD_PHRAM is not set
497# CONFIG_MTD_MTDRAM is not set 504# CONFIG_MTD_MTDRAM is not set
@@ -503,224 +510,134 @@ CONFIG_MTD_ALCHEMY=y
503# CONFIG_MTD_DOC2000 is not set 510# CONFIG_MTD_DOC2000 is not set
504# CONFIG_MTD_DOC2001 is not set 511# CONFIG_MTD_DOC2001 is not set
505# CONFIG_MTD_DOC2001PLUS is not set 512# CONFIG_MTD_DOC2001PLUS is not set
506
507#
508# NAND Flash Device Drivers
509#
510CONFIG_MTD_NAND=y 513CONFIG_MTD_NAND=y
511# CONFIG_MTD_NAND_VERIFY_WRITE is not set 514# CONFIG_MTD_NAND_VERIFY_WRITE is not set
512# CONFIG_MTD_NAND_ECC_SMC is not set 515# CONFIG_MTD_NAND_ECC_SMC is not set
516# CONFIG_MTD_NAND_MUSEUM_IDS is not set
513CONFIG_MTD_NAND_IDS=y 517CONFIG_MTD_NAND_IDS=y
514# CONFIG_MTD_NAND_AU1550 is not set 518# CONFIG_MTD_NAND_AU1550 is not set
515# CONFIG_MTD_NAND_DISKONCHIP is not set 519# CONFIG_MTD_NAND_DISKONCHIP is not set
516# CONFIG_MTD_NAND_NANDSIM is not set 520# CONFIG_MTD_NAND_NANDSIM is not set
517 521CONFIG_MTD_NAND_PLATFORM=y
518# 522# CONFIG_MTD_ALAUDA is not set
519# OneNAND Flash Device Drivers
520#
521# CONFIG_MTD_ONENAND is not set 523# CONFIG_MTD_ONENAND is not set
522 524
523# 525#
524# Parallel port support 526# LPDDR flash memory drivers
525# 527#
526# CONFIG_PARPORT is not set 528# CONFIG_MTD_LPDDR is not set
527 529
528# 530#
529# Plug and Play support 531# UBI - Unsorted block images
530#
531# CONFIG_PNPACPI is not set
532
533#
534# Block devices
535# 532#
533# CONFIG_MTD_UBI is not set
534# CONFIG_PARPORT is not set
535CONFIG_BLK_DEV=y
536# CONFIG_BLK_DEV_COW_COMMON is not set 536# CONFIG_BLK_DEV_COW_COMMON is not set
537CONFIG_BLK_DEV_LOOP=y 537CONFIG_BLK_DEV_LOOP=y
538# CONFIG_BLK_DEV_CRYPTOLOOP is not set 538# CONFIG_BLK_DEV_CRYPTOLOOP is not set
539# CONFIG_BLK_DEV_NBD is not set
540CONFIG_BLK_DEV_RAM=y
541CONFIG_BLK_DEV_RAM_COUNT=16
542CONFIG_BLK_DEV_RAM_SIZE=4096
543CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
544# CONFIG_BLK_DEV_INITRD is not set
545# CONFIG_CDROM_PKTCDVD is not set
546# CONFIG_ATA_OVER_ETH is not set
547 539
548# 540#
549# Misc devices 541# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
550#
551
552#
553# ATA/ATAPI/MFM/RLL support
554# 542#
543# CONFIG_BLK_DEV_NBD is not set
544CONFIG_BLK_DEV_UB=y
545# CONFIG_BLK_DEV_RAM is not set
546# CONFIG_CDROM_PKTCDVD is not set
547# CONFIG_ATA_OVER_ETH is not set
548# CONFIG_BLK_DEV_HD is not set
549# CONFIG_MISC_DEVICES is not set
550CONFIG_HAVE_IDE=y
555CONFIG_IDE=y 551CONFIG_IDE=y
556CONFIG_IDE_MAX_HWIFS=4
557CONFIG_BLK_DEV_IDE=y
558 552
559# 553#
560# Please see Documentation/ide.txt for help/info on IDE drives 554# Please see Documentation/ide/ide.txt for help/info on IDE drives
561# 555#
556CONFIG_IDE_XFER_MODE=y
557CONFIG_IDE_ATAPI=y
562# CONFIG_BLK_DEV_IDE_SATA is not set 558# CONFIG_BLK_DEV_IDE_SATA is not set
563CONFIG_BLK_DEV_IDEDISK=y 559CONFIG_IDE_GD=y
564CONFIG_IDEDISK_MULTI_MODE=y 560CONFIG_IDE_GD_ATA=y
565CONFIG_BLK_DEV_IDECS=m 561# CONFIG_IDE_GD_ATAPI is not set
566# CONFIG_BLK_DEV_IDECD is not set 562CONFIG_BLK_DEV_IDECS=y
563CONFIG_BLK_DEV_IDECD=y
564CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
567# CONFIG_BLK_DEV_IDETAPE is not set 565# CONFIG_BLK_DEV_IDETAPE is not set
568# CONFIG_BLK_DEV_IDEFLOPPY is not set 566CONFIG_IDE_TASK_IOCTL=y
569# CONFIG_BLK_DEV_IDESCSI is not set 567# CONFIG_IDE_PROC_FS is not set
570# CONFIG_IDE_TASK_IOCTL is not set
571 568
572# 569#
573# IDE chipset support/bugfixes 570# IDE chipset support/bugfixes
574# 571#
575CONFIG_IDE_GENERIC=y 572# CONFIG_IDE_GENERIC is not set
573# CONFIG_BLK_DEV_PLATFORM is not set
576CONFIG_BLK_DEV_IDE_AU1XXX=y 574CONFIG_BLK_DEV_IDE_AU1XXX=y
577CONFIG_BLK_DEV_IDE_AU1XXX_PIO_DBDMA=y 575CONFIG_BLK_DEV_IDE_AU1XXX_PIO_DBDMA=y
578# CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA is not set 576# CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA is not set
579CONFIG_BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ=128
580# CONFIG_IDE_ARM is not set
581# CONFIG_BLK_DEV_IDEDMA is not set 577# CONFIG_BLK_DEV_IDEDMA is not set
582# CONFIG_IDEDMA_AUTO is not set
583# CONFIG_BLK_DEV_HD is not set
584 578
585# 579#
586# SCSI device support 580# SCSI device support
587# 581#
588# CONFIG_RAID_ATTRS is not set 582# CONFIG_RAID_ATTRS is not set
589CONFIG_SCSI=y 583# CONFIG_SCSI is not set
590CONFIG_SCSI_TGT=m 584# CONFIG_SCSI_DMA is not set
591# CONFIG_SCSI_NETLINK is not set 585# CONFIG_SCSI_NETLINK is not set
592CONFIG_SCSI_PROC_FS=y
593
594#
595# SCSI support type (disk, tape, CD-ROM)
596#
597CONFIG_BLK_DEV_SD=y
598# CONFIG_CHR_DEV_ST is not set
599# CONFIG_CHR_DEV_OSST is not set
600CONFIG_BLK_DEV_SR=y
601# CONFIG_BLK_DEV_SR_VENDOR is not set
602CONFIG_CHR_DEV_SG=y
603# CONFIG_CHR_DEV_SCH is not set
604
605#
606# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
607#
608CONFIG_SCSI_MULTI_LUN=y
609# CONFIG_SCSI_CONSTANTS is not set
610# CONFIG_SCSI_LOGGING is not set
611CONFIG_SCSI_SCAN_ASYNC=y
612
613#
614# SCSI Transports
615#
616# CONFIG_SCSI_SPI_ATTRS is not set
617# CONFIG_SCSI_FC_ATTRS is not set
618# CONFIG_SCSI_ISCSI_ATTRS is not set
619# CONFIG_SCSI_SAS_ATTRS is not set
620# CONFIG_SCSI_SAS_LIBSAS is not set
621
622#
623# SCSI low-level drivers
624#
625# CONFIG_ISCSI_TCP is not set
626# CONFIG_SCSI_DEBUG is not set
627
628#
629# PCMCIA SCSI adapter support
630#
631# CONFIG_PCMCIA_AHA152X is not set
632# CONFIG_PCMCIA_FDOMAIN is not set
633# CONFIG_PCMCIA_NINJA_SCSI is not set
634# CONFIG_PCMCIA_QLOGIC is not set
635# CONFIG_PCMCIA_SYM53C500 is not set
636
637#
638# Serial ATA (prod) and Parallel ATA (experimental) drivers
639#
640# CONFIG_ATA is not set 586# CONFIG_ATA is not set
641
642#
643# Multi-device support (RAID and LVM)
644#
645# CONFIG_MD is not set 587# CONFIG_MD is not set
646
647#
648# Fusion MPT device support
649#
650# CONFIG_FUSION is not set
651
652#
653# IEEE 1394 (FireWire) support
654#
655
656#
657# I2O device support
658#
659
660#
661# Network device support
662#
663CONFIG_NETDEVICES=y 588CONFIG_NETDEVICES=y
664# CONFIG_DUMMY is not set 589# CONFIG_DUMMY is not set
665# CONFIG_BONDING is not set 590# CONFIG_BONDING is not set
591# CONFIG_MACVLAN is not set
666# CONFIG_EQUALIZER is not set 592# CONFIG_EQUALIZER is not set
667# CONFIG_TUN is not set 593# CONFIG_TUN is not set
668 594# CONFIG_VETH is not set
669#
670# PHY device support
671#
672# CONFIG_PHYLIB is not set 595# CONFIG_PHYLIB is not set
673
674#
675# Ethernet (10 or 100Mbit)
676#
677CONFIG_NET_ETHERNET=y 596CONFIG_NET_ETHERNET=y
678CONFIG_MII=m 597CONFIG_MII=y
598# CONFIG_AX88796 is not set
679# CONFIG_MIPS_AU1X00_ENET is not set 599# CONFIG_MIPS_AU1X00_ENET is not set
680# CONFIG_SMC91X is not set 600CONFIG_SMC91X=y
681# CONFIG_DM9000 is not set 601# CONFIG_DM9000 is not set
682 602# CONFIG_ENC28J60 is not set
683# 603# CONFIG_ETHOC is not set
684# Ethernet (1000 Mbit) 604# CONFIG_SMSC911X is not set
685# 605# CONFIG_DNET is not set
686 606# CONFIG_IBM_NEW_EMAC_ZMII is not set
687# 607# CONFIG_IBM_NEW_EMAC_RGMII is not set
688# Ethernet (10000 Mbit) 608# CONFIG_IBM_NEW_EMAC_TAH is not set
689# 609# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
690 610# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
691# 611# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
692# Token Ring devices 612# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
693# 613# CONFIG_B44 is not set
694 614# CONFIG_KS8842 is not set
695# 615# CONFIG_KS8851 is not set
696# Wireless LAN (non-hamradio) 616# CONFIG_KS8851_MLL is not set
697# 617# CONFIG_NETDEV_1000 is not set
698# CONFIG_NET_RADIO is not set 618# CONFIG_NETDEV_10000 is not set
699 619# CONFIG_WLAN is not set
700# 620
701# PCMCIA network device support 621#
702# 622# Enable WiMAX (Networking options) to see the WiMAX drivers
623#
624
625#
626# USB Network Adapters
627#
628# CONFIG_USB_CATC is not set
629# CONFIG_USB_KAWETH is not set
630# CONFIG_USB_PEGASUS is not set
631# CONFIG_USB_RTL8150 is not set
632# CONFIG_USB_USBNET is not set
703# CONFIG_NET_PCMCIA is not set 633# CONFIG_NET_PCMCIA is not set
704
705#
706# Wan interfaces
707#
708# CONFIG_WAN is not set 634# CONFIG_WAN is not set
709# CONFIG_PPP is not set 635# CONFIG_PPP is not set
710# CONFIG_SLIP is not set 636# CONFIG_SLIP is not set
711# CONFIG_SHAPER is not set
712# CONFIG_NETCONSOLE is not set 637# CONFIG_NETCONSOLE is not set
713# CONFIG_NETPOLL is not set 638# CONFIG_NETPOLL is not set
714# CONFIG_NET_POLL_CONTROLLER is not set 639# CONFIG_NET_POLL_CONTROLLER is not set
715
716#
717# ISDN subsystem
718#
719# CONFIG_ISDN is not set 640# CONFIG_ISDN is not set
720
721#
722# Telephony Support
723#
724# CONFIG_PHONE is not set 641# CONFIG_PHONE is not set
725 642
726# 643#
@@ -728,16 +645,14 @@ CONFIG_MII=m
728# 645#
729CONFIG_INPUT=y 646CONFIG_INPUT=y
730# CONFIG_INPUT_FF_MEMLESS is not set 647# CONFIG_INPUT_FF_MEMLESS is not set
648# CONFIG_INPUT_POLLDEV is not set
649# CONFIG_INPUT_SPARSEKMAP is not set
731 650
732# 651#
733# Userland interfaces 652# Userland interfaces
734# 653#
735CONFIG_INPUT_MOUSEDEV=y 654# CONFIG_INPUT_MOUSEDEV is not set
736CONFIG_INPUT_MOUSEDEV_PSAUX=y
737CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
738CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
739# CONFIG_INPUT_JOYDEV is not set 655# CONFIG_INPUT_JOYDEV is not set
740# CONFIG_INPUT_TSDEV is not set
741CONFIG_INPUT_EVDEV=y 656CONFIG_INPUT_EVDEV=y
742# CONFIG_INPUT_EVBUG is not set 657# CONFIG_INPUT_EVBUG is not set
743 658
@@ -747,28 +662,26 @@ CONFIG_INPUT_EVDEV=y
747# CONFIG_INPUT_KEYBOARD is not set 662# CONFIG_INPUT_KEYBOARD is not set
748# CONFIG_INPUT_MOUSE is not set 663# CONFIG_INPUT_MOUSE is not set
749# CONFIG_INPUT_JOYSTICK is not set 664# CONFIG_INPUT_JOYSTICK is not set
665# CONFIG_INPUT_TABLET is not set
750# CONFIG_INPUT_TOUCHSCREEN is not set 666# CONFIG_INPUT_TOUCHSCREEN is not set
751# CONFIG_INPUT_MISC is not set 667# CONFIG_INPUT_MISC is not set
752 668
753# 669#
754# Hardware I/O ports 670# Hardware I/O ports
755# 671#
756CONFIG_SERIO=y 672# CONFIG_SERIO is not set
757# CONFIG_SERIO_I8042 is not set
758CONFIG_SERIO_SERPORT=y
759# CONFIG_SERIO_LIBPS2 is not set
760CONFIG_SERIO_RAW=y
761# CONFIG_GAMEPORT is not set 673# CONFIG_GAMEPORT is not set
762 674
763# 675#
764# Character devices 676# Character devices
765# 677#
766CONFIG_VT=y 678CONFIG_VT=y
679CONFIG_CONSOLE_TRANSLATIONS=y
767CONFIG_VT_CONSOLE=y 680CONFIG_VT_CONSOLE=y
768CONFIG_HW_CONSOLE=y 681CONFIG_HW_CONSOLE=y
769CONFIG_VT_HW_CONSOLE_BINDING=y 682CONFIG_VT_HW_CONSOLE_BINDING=y
683CONFIG_DEVKMEM=y
770# CONFIG_SERIAL_NONSTANDARD is not set 684# CONFIG_SERIAL_NONSTANDARD is not set
771# CONFIG_AU1X00_GPIO is not set
772 685
773# 686#
774# Serial drivers 687# Serial drivers
@@ -776,33 +689,22 @@ CONFIG_VT_HW_CONSOLE_BINDING=y
776CONFIG_SERIAL_8250=y 689CONFIG_SERIAL_8250=y
777CONFIG_SERIAL_8250_CONSOLE=y 690CONFIG_SERIAL_8250_CONSOLE=y
778# CONFIG_SERIAL_8250_CS is not set 691# CONFIG_SERIAL_8250_CS is not set
779CONFIG_SERIAL_8250_NR_UARTS=4 692CONFIG_SERIAL_8250_NR_UARTS=2
780CONFIG_SERIAL_8250_RUNTIME_UARTS=4 693CONFIG_SERIAL_8250_RUNTIME_UARTS=2
781# CONFIG_SERIAL_8250_EXTENDED is not set 694# CONFIG_SERIAL_8250_EXTENDED is not set
782CONFIG_SERIAL_8250_AU1X00=y 695CONFIG_SERIAL_8250_AU1X00=y
783 696
784# 697#
785# Non-8250 serial port support 698# Non-8250 serial port support
786# 699#
700# CONFIG_SERIAL_MAX3100 is not set
787CONFIG_SERIAL_CORE=y 701CONFIG_SERIAL_CORE=y
788CONFIG_SERIAL_CORE_CONSOLE=y 702CONFIG_SERIAL_CORE_CONSOLE=y
789CONFIG_UNIX98_PTYS=y 703CONFIG_UNIX98_PTYS=y
790CONFIG_LEGACY_PTYS=y 704# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
791CONFIG_LEGACY_PTY_COUNT=256 705# CONFIG_LEGACY_PTYS is not set
792
793#
794# IPMI
795#
796# CONFIG_IPMI_HANDLER is not set 706# CONFIG_IPMI_HANDLER is not set
797
798#
799# Watchdog Cards
800#
801# CONFIG_WATCHDOG is not set
802# CONFIG_HW_RANDOM is not set 707# CONFIG_HW_RANDOM is not set
803# CONFIG_RTC is not set
804# CONFIG_GEN_RTC is not set
805# CONFIG_DTLK is not set
806# CONFIG_R3964 is not set 708# CONFIG_R3964 is not set
807 709
808# 710#
@@ -811,223 +713,624 @@ CONFIG_LEGACY_PTY_COUNT=256
811# CONFIG_SYNCLINK_CS is not set 713# CONFIG_SYNCLINK_CS is not set
812# CONFIG_CARDMAN_4000 is not set 714# CONFIG_CARDMAN_4000 is not set
813# CONFIG_CARDMAN_4040 is not set 715# CONFIG_CARDMAN_4040 is not set
716# CONFIG_IPWIRELESS is not set
814# CONFIG_RAW_DRIVER is not set 717# CONFIG_RAW_DRIVER is not set
718# CONFIG_TCG_TPM is not set
719CONFIG_I2C=y
720CONFIG_I2C_BOARDINFO=y
721# CONFIG_I2C_COMPAT is not set
722CONFIG_I2C_CHARDEV=y
723# CONFIG_I2C_HELPER_AUTO is not set
815 724
816# 725#
817# TPM devices 726# I2C Algorithms
818# 727#
819# CONFIG_TCG_TPM is not set 728# CONFIG_I2C_ALGOBIT is not set
729# CONFIG_I2C_ALGOPCF is not set
730# CONFIG_I2C_ALGOPCA is not set
820 731
821# 732#
822# I2C support 733# I2C Hardware Bus support
823# 734#
824# CONFIG_I2C is not set
825 735
826# 736#
827# SPI support 737# I2C system bus drivers (mostly embedded / system-on-chip)
828# 738#
829# CONFIG_SPI is not set 739CONFIG_I2C_AU1550=y
830# CONFIG_SPI_MASTER is not set 740# CONFIG_I2C_GPIO is not set
741# CONFIG_I2C_OCORES is not set
742# CONFIG_I2C_SIMTEC is not set
831 743
832# 744#
833# Dallas's 1-wire bus 745# External I2C/SMBus adapter drivers
834# 746#
835# CONFIG_W1 is not set 747# CONFIG_I2C_PARPORT_LIGHT is not set
748# CONFIG_I2C_TAOS_EVM is not set
749# CONFIG_I2C_TINY_USB is not set
836 750
837# 751#
838# Hardware Monitoring support 752# Other I2C/SMBus bus drivers
839# 753#
840# CONFIG_HWMON is not set 754# CONFIG_I2C_PCA_PLATFORM is not set
841# CONFIG_HWMON_VID is not set 755# CONFIG_I2C_STUB is not set
842 756
843# 757#
844# Multimedia devices 758# Miscellaneous I2C Chip support
845# 759#
846# CONFIG_VIDEO_DEV is not set 760# CONFIG_SENSORS_TSL2550 is not set
761# CONFIG_I2C_DEBUG_CORE is not set
762# CONFIG_I2C_DEBUG_ALGO is not set
763# CONFIG_I2C_DEBUG_BUS is not set
764# CONFIG_I2C_DEBUG_CHIP is not set
765CONFIG_SPI=y
766# CONFIG_SPI_DEBUG is not set
767CONFIG_SPI_MASTER=y
847 768
848# 769#
849# Digital Video Broadcasting Devices 770# SPI Master Controller Drivers
850# 771#
851# CONFIG_DVB is not set 772CONFIG_SPI_AU1550=y
773CONFIG_SPI_BITBANG=y
774# CONFIG_SPI_GPIO is not set
775# CONFIG_SPI_XILINX is not set
776# CONFIG_SPI_DESIGNWARE is not set
777
778#
779# SPI Protocol Masters
780#
781# CONFIG_SPI_SPIDEV is not set
782# CONFIG_SPI_TLE62X0 is not set
783
784#
785# PPS support
786#
787# CONFIG_PPS is not set
788CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
789CONFIG_GPIOLIB=y
790# CONFIG_DEBUG_GPIO is not set
791CONFIG_GPIO_SYSFS=y
792
793#
794# Memory mapped GPIO expanders:
795#
796
797#
798# I2C GPIO expanders:
799#
800# CONFIG_GPIO_MAX732X is not set
801# CONFIG_GPIO_PCA953X is not set
802# CONFIG_GPIO_PCF857X is not set
803# CONFIG_GPIO_ADP5588 is not set
804
805#
806# PCI GPIO expanders:
807#
808
809#
810# SPI GPIO expanders:
811#
812# CONFIG_GPIO_MAX7301 is not set
813# CONFIG_GPIO_MCP23S08 is not set
814# CONFIG_GPIO_MC33880 is not set
815
816#
817# AC97 GPIO expanders:
818#
819# CONFIG_W1 is not set
820# CONFIG_POWER_SUPPLY is not set
821CONFIG_HWMON=y
822CONFIG_HWMON_VID=y
823# CONFIG_HWMON_DEBUG_CHIP is not set
824
825#
826# Native drivers
827#
828# CONFIG_SENSORS_AD7414 is not set
829# CONFIG_SENSORS_AD7418 is not set
830# CONFIG_SENSORS_ADCXX is not set
831# CONFIG_SENSORS_ADM1021 is not set
832CONFIG_SENSORS_ADM1025=y
833# CONFIG_SENSORS_ADM1026 is not set
834# CONFIG_SENSORS_ADM1029 is not set
835# CONFIG_SENSORS_ADM1031 is not set
836# CONFIG_SENSORS_ADM9240 is not set
837# CONFIG_SENSORS_ADT7462 is not set
838# CONFIG_SENSORS_ADT7470 is not set
839# CONFIG_SENSORS_ADT7473 is not set
840# CONFIG_SENSORS_ADT7475 is not set
841# CONFIG_SENSORS_ATXP1 is not set
842# CONFIG_SENSORS_DS1621 is not set
843# CONFIG_SENSORS_F71805F is not set
844# CONFIG_SENSORS_F71882FG is not set
845# CONFIG_SENSORS_F75375S is not set
846# CONFIG_SENSORS_G760A is not set
847# CONFIG_SENSORS_GL518SM is not set
848# CONFIG_SENSORS_GL520SM is not set
849# CONFIG_SENSORS_IT87 is not set
850# CONFIG_SENSORS_LM63 is not set
851CONFIG_SENSORS_LM70=y
852# CONFIG_SENSORS_LM73 is not set
853# CONFIG_SENSORS_LM75 is not set
854# CONFIG_SENSORS_LM77 is not set
855# CONFIG_SENSORS_LM78 is not set
856# CONFIG_SENSORS_LM80 is not set
857# CONFIG_SENSORS_LM83 is not set
858# CONFIG_SENSORS_LM85 is not set
859# CONFIG_SENSORS_LM87 is not set
860# CONFIG_SENSORS_LM90 is not set
861# CONFIG_SENSORS_LM92 is not set
862# CONFIG_SENSORS_LM93 is not set
863# CONFIG_SENSORS_LTC4215 is not set
864# CONFIG_SENSORS_LTC4245 is not set
865# CONFIG_SENSORS_LM95241 is not set
866# CONFIG_SENSORS_MAX1111 is not set
867# CONFIG_SENSORS_MAX1619 is not set
868# CONFIG_SENSORS_MAX6650 is not set
869# CONFIG_SENSORS_PC87360 is not set
870# CONFIG_SENSORS_PC87427 is not set
871# CONFIG_SENSORS_PCF8591 is not set
872# CONFIG_SENSORS_SHT15 is not set
873# CONFIG_SENSORS_DME1737 is not set
874# CONFIG_SENSORS_SMSC47M1 is not set
875# CONFIG_SENSORS_SMSC47M192 is not set
876# CONFIG_SENSORS_SMSC47B397 is not set
877# CONFIG_SENSORS_ADS7828 is not set
878# CONFIG_SENSORS_AMC6821 is not set
879# CONFIG_SENSORS_THMC50 is not set
880# CONFIG_SENSORS_TMP401 is not set
881# CONFIG_SENSORS_TMP421 is not set
882# CONFIG_SENSORS_VT1211 is not set
883# CONFIG_SENSORS_W83781D is not set
884# CONFIG_SENSORS_W83791D is not set
885# CONFIG_SENSORS_W83792D is not set
886# CONFIG_SENSORS_W83793 is not set
887# CONFIG_SENSORS_W83L785TS is not set
888# CONFIG_SENSORS_W83L786NG is not set
889# CONFIG_SENSORS_W83627HF is not set
890# CONFIG_SENSORS_W83627EHF is not set
891# CONFIG_SENSORS_LIS3_SPI is not set
892# CONFIG_SENSORS_LIS3_I2C is not set
893# CONFIG_THERMAL is not set
894# CONFIG_WATCHDOG is not set
895CONFIG_SSB_POSSIBLE=y
896
897#
898# Sonics Silicon Backplane
899#
900# CONFIG_SSB is not set
901
902#
903# Multifunction device drivers
904#
905# CONFIG_MFD_CORE is not set
906# CONFIG_MFD_SM501 is not set
907# CONFIG_HTC_PASIC3 is not set
908# CONFIG_UCB1400_CORE is not set
909# CONFIG_TPS65010 is not set
910# CONFIG_TWL4030_CORE is not set
911# CONFIG_MFD_TMIO is not set
912# CONFIG_PMIC_DA903X is not set
913# CONFIG_PMIC_ADP5520 is not set
914# CONFIG_MFD_WM8400 is not set
915# CONFIG_MFD_WM831X is not set
916# CONFIG_MFD_WM8350_I2C is not set
917# CONFIG_MFD_PCF50633 is not set
918# CONFIG_MFD_MC13783 is not set
919# CONFIG_AB3100_CORE is not set
920# CONFIG_EZX_PCAP is not set
921# CONFIG_MFD_88PM8607 is not set
922# CONFIG_AB4500_CORE is not set
923# CONFIG_REGULATOR is not set
924# CONFIG_MEDIA_SUPPORT is not set
852 925
853# 926#
854# Graphics support 927# Graphics support
855# 928#
856# CONFIG_FIRMWARE_EDID is not set 929# CONFIG_VGASTATE is not set
930# CONFIG_VIDEO_OUTPUT_CONTROL is not set
857CONFIG_FB=y 931CONFIG_FB=y
932# CONFIG_FIRMWARE_EDID is not set
933# CONFIG_FB_DDC is not set
934# CONFIG_FB_BOOT_VESA_SUPPORT is not set
858CONFIG_FB_CFB_FILLRECT=y 935CONFIG_FB_CFB_FILLRECT=y
859CONFIG_FB_CFB_COPYAREA=y 936CONFIG_FB_CFB_COPYAREA=y
860CONFIG_FB_CFB_IMAGEBLIT=y 937CONFIG_FB_CFB_IMAGEBLIT=y
938# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
939# CONFIG_FB_SYS_FILLRECT is not set
940# CONFIG_FB_SYS_COPYAREA is not set
941# CONFIG_FB_SYS_IMAGEBLIT is not set
942# CONFIG_FB_FOREIGN_ENDIAN is not set
943# CONFIG_FB_SYS_FOPS is not set
861# CONFIG_FB_SVGALIB is not set 944# CONFIG_FB_SVGALIB is not set
862# CONFIG_FB_MACMODES is not set 945# CONFIG_FB_MACMODES is not set
863# CONFIG_FB_BACKLIGHT is not set 946# CONFIG_FB_BACKLIGHT is not set
864# CONFIG_FB_MODE_HELPERS is not set 947# CONFIG_FB_MODE_HELPERS is not set
865# CONFIG_FB_TILEBLITTING is not set 948# CONFIG_FB_TILEBLITTING is not set
949
950#
951# Frame buffer hardware drivers
952#
866# CONFIG_FB_S1D13XXX is not set 953# CONFIG_FB_S1D13XXX is not set
867CONFIG_FB_AU1200=y 954CONFIG_FB_AU1200=y
868# CONFIG_FB_VIRTUAL is not set 955# CONFIG_FB_VIRTUAL is not set
956# CONFIG_FB_METRONOME is not set
957# CONFIG_FB_MB862XX is not set
958# CONFIG_FB_BROADSHEET is not set
959# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
960
961#
962# Display device support
963#
964# CONFIG_DISPLAY_SUPPORT is not set
869 965
870# 966#
871# Console display driver support 967# Console display driver support
872# 968#
873CONFIG_VGA_CONSOLE=y 969# CONFIG_VGA_CONSOLE is not set
874# CONFIG_VGACON_SOFT_SCROLLBACK is not set
875CONFIG_DUMMY_CONSOLE=y 970CONFIG_DUMMY_CONSOLE=y
876# CONFIG_FRAMEBUFFER_CONSOLE is not set 971CONFIG_FRAMEBUFFER_CONSOLE=y
972# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
973# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
974CONFIG_FONTS=y
975# CONFIG_FONT_8x8 is not set
976CONFIG_FONT_8x16=y
977# CONFIG_FONT_6x11 is not set
978# CONFIG_FONT_7x14 is not set
979# CONFIG_FONT_PEARL_8x8 is not set
980# CONFIG_FONT_ACORN_8x8 is not set
981# CONFIG_FONT_MINI_4x6 is not set
982# CONFIG_FONT_SUN8x16 is not set
983# CONFIG_FONT_SUN12x22 is not set
984# CONFIG_FONT_10x18 is not set
985# CONFIG_LOGO is not set
986CONFIG_SOUND=y
987# CONFIG_SOUND_OSS_CORE is not set
988CONFIG_SND=y
989CONFIG_SND_TIMER=y
990CONFIG_SND_PCM=y
991CONFIG_SND_JACK=y
992# CONFIG_SND_SEQUENCER is not set
993# CONFIG_SND_MIXER_OSS is not set
994# CONFIG_SND_PCM_OSS is not set
995# CONFIG_SND_HRTIMER is not set
996CONFIG_SND_DYNAMIC_MINORS=y
997# CONFIG_SND_SUPPORT_OLD_API is not set
998# CONFIG_SND_VERBOSE_PROCFS is not set
999# CONFIG_SND_VERBOSE_PRINTK is not set
1000# CONFIG_SND_DEBUG is not set
1001CONFIG_SND_VMASTER=y
1002# CONFIG_SND_RAWMIDI_SEQ is not set
1003# CONFIG_SND_OPL3_LIB_SEQ is not set
1004# CONFIG_SND_OPL4_LIB_SEQ is not set
1005# CONFIG_SND_SBAWE_SEQ is not set
1006# CONFIG_SND_EMU10K1_SEQ is not set
1007CONFIG_SND_AC97_CODEC=y
1008# CONFIG_SND_DRIVERS is not set
1009# CONFIG_SND_SPI is not set
1010# CONFIG_SND_MIPS is not set
1011# CONFIG_SND_USB is not set
1012# CONFIG_SND_PCMCIA is not set
1013CONFIG_SND_SOC=y
1014CONFIG_SND_SOC_AC97_BUS=y
1015CONFIG_SND_SOC_AU1XPSC=y
1016CONFIG_SND_SOC_AU1XPSC_I2S=y
1017CONFIG_SND_SOC_AU1XPSC_AC97=y
1018CONFIG_SND_SOC_DB1200=y
1019CONFIG_SND_SOC_I2C_AND_SPI=y
1020# CONFIG_SND_SOC_ALL_CODECS is not set
1021CONFIG_SND_SOC_AC97_CODEC=y
1022CONFIG_SND_SOC_WM8731=y
1023# CONFIG_SOUND_PRIME is not set
1024CONFIG_AC97_BUS=y
1025CONFIG_HID_SUPPORT=y
1026CONFIG_HID=y
1027CONFIG_HIDRAW=y
1028
1029#
1030# USB Input Devices
1031#
1032CONFIG_USB_HID=y
1033# CONFIG_HID_PID is not set
1034CONFIG_USB_HIDDEV=y
1035
1036#
1037# Special HID drivers
1038#
1039# CONFIG_HID_A4TECH is not set
1040# CONFIG_HID_APPLE is not set
1041# CONFIG_HID_BELKIN is not set
1042# CONFIG_HID_CHERRY is not set
1043# CONFIG_HID_CHICONY is not set
1044# CONFIG_HID_CYPRESS is not set
1045# CONFIG_HID_DRAGONRISE is not set
1046# CONFIG_HID_EZKEY is not set
1047# CONFIG_HID_KYE is not set
1048# CONFIG_HID_GYRATION is not set
1049# CONFIG_HID_TWINHAN is not set
1050# CONFIG_HID_KENSINGTON is not set
1051# CONFIG_HID_LOGITECH is not set
1052# CONFIG_HID_MICROSOFT is not set
1053# CONFIG_HID_MONTEREY is not set
1054# CONFIG_HID_NTRIG is not set
1055# CONFIG_HID_PANTHERLORD is not set
1056# CONFIG_HID_PETALYNX is not set
1057# CONFIG_HID_SAMSUNG is not set
1058# CONFIG_HID_SONY is not set
1059# CONFIG_HID_SUNPLUS is not set
1060# CONFIG_HID_GREENASIA is not set
1061# CONFIG_HID_SMARTJOYPLUS is not set
1062# CONFIG_HID_TOPSEED is not set
1063# CONFIG_HID_THRUSTMASTER is not set
1064# CONFIG_HID_ZEROPLUS is not set
1065CONFIG_USB_SUPPORT=y
1066CONFIG_USB_ARCH_HAS_HCD=y
1067CONFIG_USB_ARCH_HAS_OHCI=y
1068CONFIG_USB_ARCH_HAS_EHCI=y
1069CONFIG_USB=y
1070CONFIG_USB_DEBUG=y
1071CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
877 1072
878# 1073#
879# Logo configuration 1074# Miscellaneous USB options
880# 1075#
881CONFIG_LOGO=y 1076# CONFIG_USB_DEVICEFS is not set
882CONFIG_LOGO_LINUX_MONO=y 1077# CONFIG_USB_DEVICE_CLASS is not set
883CONFIG_LOGO_LINUX_VGA16=y 1078CONFIG_USB_DYNAMIC_MINORS=y
884CONFIG_LOGO_LINUX_CLUT224=y 1079# CONFIG_USB_OTG is not set
885# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 1080# CONFIG_USB_OTG_WHITELIST is not set
1081# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1082# CONFIG_USB_MON is not set
1083# CONFIG_USB_WUSB is not set
1084# CONFIG_USB_WUSB_CBAF is not set
886 1085
887# 1086#
888# Sound 1087# USB Host Controller Drivers
889# 1088#
890# CONFIG_SOUND is not set 1089# CONFIG_USB_C67X00_HCD is not set
1090CONFIG_USB_EHCI_HCD=y
1091CONFIG_USB_EHCI_ROOT_HUB_TT=y
1092CONFIG_USB_EHCI_TT_NEWSCHED=y
1093# CONFIG_USB_OXU210HP_HCD is not set
1094# CONFIG_USB_ISP116X_HCD is not set
1095# CONFIG_USB_ISP1760_HCD is not set
1096# CONFIG_USB_ISP1362_HCD is not set
1097CONFIG_USB_OHCI_HCD=y
1098# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1099# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1100CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1101# CONFIG_USB_SL811_HCD is not set
1102# CONFIG_USB_R8A66597_HCD is not set
1103# CONFIG_USB_HWA_HCD is not set
891 1104
892# 1105#
893# HID Devices 1106# USB Device Class drivers
894# 1107#
895CONFIG_HID=y 1108# CONFIG_USB_ACM is not set
896# CONFIG_HID_DEBUG is not set 1109# CONFIG_USB_PRINTER is not set
1110# CONFIG_USB_WDM is not set
1111# CONFIG_USB_TMC is not set
897 1112
898# 1113#
899# USB support 1114# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
900# 1115#
901CONFIG_USB_ARCH_HAS_HCD=y
902CONFIG_USB_ARCH_HAS_OHCI=y
903CONFIG_USB_ARCH_HAS_EHCI=y
904# CONFIG_USB is not set
905 1116
906# 1117#
907# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1118# also be needed; see USB_STORAGE Help for more info
908# 1119#
1120# CONFIG_USB_LIBUSUAL is not set
909 1121
910# 1122#
911# USB Gadget Support 1123# USB Imaging devices
912# 1124#
913CONFIG_USB_GADGET=m 1125# CONFIG_USB_MDC800 is not set
914# CONFIG_USB_GADGET_DEBUG_FILES is not set
915# CONFIG_USB_GADGET_NET2280 is not set
916# CONFIG_USB_GADGET_PXA2XX is not set
917# CONFIG_USB_GADGET_GOKU is not set
918# CONFIG_USB_GADGET_LH7A40X is not set
919# CONFIG_USB_GADGET_OMAP is not set
920# CONFIG_USB_GADGET_AT91 is not set
921# CONFIG_USB_GADGET_DUMMY_HCD is not set
922# CONFIG_USB_GADGET_DUALSPEED is not set
923 1126
924# 1127#
925# MMC/SD Card support 1128# USB port drivers
926# 1129#
1130# CONFIG_USB_SERIAL is not set
1131
1132#
1133# USB Miscellaneous drivers
1134#
1135# CONFIG_USB_EMI62 is not set
1136# CONFIG_USB_EMI26 is not set
1137# CONFIG_USB_ADUTUX is not set
1138# CONFIG_USB_SEVSEG is not set
1139# CONFIG_USB_RIO500 is not set
1140# CONFIG_USB_LEGOTOWER is not set
1141# CONFIG_USB_LCD is not set
1142# CONFIG_USB_BERRY_CHARGE is not set
1143# CONFIG_USB_LED is not set
1144# CONFIG_USB_CYPRESS_CY7C63 is not set
1145# CONFIG_USB_CYTHERM is not set
1146# CONFIG_USB_IDMOUSE is not set
1147# CONFIG_USB_FTDI_ELAN is not set
1148# CONFIG_USB_APPLEDISPLAY is not set
1149# CONFIG_USB_SISUSBVGA is not set
1150# CONFIG_USB_LD is not set
1151# CONFIG_USB_TRANCEVIBRATOR is not set
1152# CONFIG_USB_IOWARRIOR is not set
1153# CONFIG_USB_TEST is not set
1154# CONFIG_USB_ISIGHTFW is not set
1155# CONFIG_USB_VST is not set
1156# CONFIG_USB_GADGET is not set
1157
1158#
1159# OTG and related infrastructure
1160#
1161# CONFIG_USB_GPIO_VBUS is not set
1162# CONFIG_NOP_USB_XCEIV is not set
927CONFIG_MMC=y 1163CONFIG_MMC=y
928# CONFIG_MMC_DEBUG is not set 1164# CONFIG_MMC_DEBUG is not set
929CONFIG_MMC_BLOCK=y 1165# CONFIG_MMC_UNSAFE_RESUME is not set
930CONFIG_MMC_AU1X=y
931 1166
932# 1167#
933# LED devices 1168# MMC/SD/SDIO Card Drivers
934# 1169#
935# CONFIG_NEW_LEDS is not set 1170CONFIG_MMC_BLOCK=y
1171# CONFIG_MMC_BLOCK_BOUNCE is not set
1172# CONFIG_SDIO_UART is not set
1173# CONFIG_MMC_TEST is not set
936 1174
937# 1175#
938# LED drivers 1176# MMC/SD/SDIO Host Controller Drivers
939# 1177#
1178# CONFIG_MMC_SDHCI is not set
1179CONFIG_MMC_AU1X=y
1180# CONFIG_MMC_AT91 is not set
1181# CONFIG_MMC_ATMELMCI is not set
1182# CONFIG_MMC_SPI is not set
1183# CONFIG_MEMSTICK is not set
1184CONFIG_NEW_LEDS=y
1185CONFIG_LEDS_CLASS=y
940 1186
941# 1187#
942# LED Triggers 1188# LED drivers
943# 1189#
1190# CONFIG_LEDS_PCA9532 is not set
1191# CONFIG_LEDS_GPIO is not set
1192# CONFIG_LEDS_LP3944 is not set
1193# CONFIG_LEDS_PCA955X is not set
1194# CONFIG_LEDS_DAC124S085 is not set
1195# CONFIG_LEDS_BD2802 is not set
1196# CONFIG_LEDS_LT3593 is not set
944 1197
945# 1198#
946# InfiniBand support 1199# LED Triggers
947# 1200#
1201CONFIG_LEDS_TRIGGERS=y
1202# CONFIG_LEDS_TRIGGER_TIMER is not set
1203# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
1204# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
1205# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
1206# CONFIG_LEDS_TRIGGER_GPIO is not set
1207# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
948 1208
949# 1209#
950# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 1210# iptables trigger is under Netfilter config (LED target)
951# 1211#
1212# CONFIG_ACCESSIBILITY is not set
1213CONFIG_RTC_LIB=y
1214CONFIG_RTC_CLASS=y
1215CONFIG_RTC_HCTOSYS=y
1216CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1217# CONFIG_RTC_DEBUG is not set
952 1218
953# 1219#
954# Real Time Clock 1220# RTC interfaces
955# 1221#
956# CONFIG_RTC_CLASS is not set 1222CONFIG_RTC_INTF_SYSFS=y
1223CONFIG_RTC_INTF_PROC=y
1224CONFIG_RTC_INTF_DEV=y
1225# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1226# CONFIG_RTC_DRV_TEST is not set
957 1227
958# 1228#
959# DMA Engine support 1229# I2C RTC drivers
960# 1230#
961# CONFIG_DMA_ENGINE is not set 1231# CONFIG_RTC_DRV_DS1307 is not set
1232# CONFIG_RTC_DRV_DS1374 is not set
1233# CONFIG_RTC_DRV_DS1672 is not set
1234# CONFIG_RTC_DRV_MAX6900 is not set
1235# CONFIG_RTC_DRV_RS5C372 is not set
1236# CONFIG_RTC_DRV_ISL1208 is not set
1237# CONFIG_RTC_DRV_X1205 is not set
1238# CONFIG_RTC_DRV_PCF8563 is not set
1239# CONFIG_RTC_DRV_PCF8583 is not set
1240# CONFIG_RTC_DRV_M41T80 is not set
1241# CONFIG_RTC_DRV_BQ32K is not set
1242# CONFIG_RTC_DRV_S35390A is not set
1243# CONFIG_RTC_DRV_FM3130 is not set
1244# CONFIG_RTC_DRV_RX8581 is not set
1245# CONFIG_RTC_DRV_RX8025 is not set
962 1246
963# 1247#
964# DMA Clients 1248# SPI RTC drivers
965# 1249#
1250# CONFIG_RTC_DRV_M41T94 is not set
1251# CONFIG_RTC_DRV_DS1305 is not set
1252# CONFIG_RTC_DRV_DS1390 is not set
1253# CONFIG_RTC_DRV_MAX6902 is not set
1254# CONFIG_RTC_DRV_R9701 is not set
1255# CONFIG_RTC_DRV_RS5C348 is not set
1256# CONFIG_RTC_DRV_DS3234 is not set
1257# CONFIG_RTC_DRV_PCF2123 is not set
966 1258
967# 1259#
968# DMA Devices 1260# Platform RTC drivers
969# 1261#
1262# CONFIG_RTC_DRV_CMOS is not set
1263# CONFIG_RTC_DRV_DS1286 is not set
1264# CONFIG_RTC_DRV_DS1511 is not set
1265# CONFIG_RTC_DRV_DS1553 is not set
1266# CONFIG_RTC_DRV_DS1742 is not set
1267# CONFIG_RTC_DRV_STK17TA8 is not set
1268# CONFIG_RTC_DRV_M48T86 is not set
1269# CONFIG_RTC_DRV_M48T35 is not set
1270# CONFIG_RTC_DRV_M48T59 is not set
1271# CONFIG_RTC_DRV_MSM6242 is not set
1272# CONFIG_RTC_DRV_BQ4802 is not set
1273# CONFIG_RTC_DRV_RP5C01 is not set
1274# CONFIG_RTC_DRV_V3020 is not set
970 1275
971# 1276#
972# Auxiliary Display support 1277# on-CPU RTC drivers
973# 1278#
1279CONFIG_RTC_DRV_AU1XXX=y
1280# CONFIG_DMADEVICES is not set
1281# CONFIG_AUXDISPLAY is not set
1282# CONFIG_UIO is not set
974 1283
975# 1284#
976# Virtualization 1285# TI VLYNQ
977# 1286#
1287# CONFIG_STAGING is not set
978 1288
979# 1289#
980# File systems 1290# File systems
981# 1291#
982CONFIG_EXT2_FS=y 1292CONFIG_EXT2_FS=y
983CONFIG_EXT2_FS_XATTR=y 1293# CONFIG_EXT2_FS_XATTR is not set
984CONFIG_EXT2_FS_POSIX_ACL=y
985# CONFIG_EXT2_FS_SECURITY is not set
986# CONFIG_EXT2_FS_XIP is not set 1294# CONFIG_EXT2_FS_XIP is not set
987CONFIG_EXT3_FS=y 1295# CONFIG_EXT3_FS is not set
988CONFIG_EXT3_FS_XATTR=y 1296# CONFIG_EXT4_FS is not set
989CONFIG_EXT3_FS_POSIX_ACL=y
990CONFIG_EXT3_FS_SECURITY=y
991# CONFIG_EXT4DEV_FS is not set
992CONFIG_JBD=y
993# CONFIG_JBD_DEBUG is not set
994CONFIG_FS_MBCACHE=y
995# CONFIG_REISERFS_FS is not set 1297# CONFIG_REISERFS_FS is not set
996CONFIG_JFS_FS=y 1298# CONFIG_JFS_FS is not set
997# CONFIG_JFS_POSIX_ACL is not set 1299# CONFIG_FS_POSIX_ACL is not set
998# CONFIG_JFS_SECURITY is not set
999# CONFIG_JFS_DEBUG is not set
1000# CONFIG_JFS_STATISTICS is not set
1001CONFIG_FS_POSIX_ACL=y
1002# CONFIG_XFS_FS is not set 1300# CONFIG_XFS_FS is not set
1003# CONFIG_GFS2_FS is not set
1004# CONFIG_OCFS2_FS is not set 1301# CONFIG_OCFS2_FS is not set
1005# CONFIG_MINIX_FS is not set 1302# CONFIG_BTRFS_FS is not set
1006# CONFIG_ROMFS_FS is not set 1303# CONFIG_NILFS2_FS is not set
1304CONFIG_FILE_LOCKING=y
1305CONFIG_FSNOTIFY=y
1306CONFIG_DNOTIFY=y
1007CONFIG_INOTIFY=y 1307CONFIG_INOTIFY=y
1008CONFIG_INOTIFY_USER=y 1308CONFIG_INOTIFY_USER=y
1009# CONFIG_QUOTA is not set 1309# CONFIG_QUOTA is not set
1010CONFIG_DNOTIFY=y
1011# CONFIG_AUTOFS_FS is not set 1310# CONFIG_AUTOFS_FS is not set
1012# CONFIG_AUTOFS4_FS is not set 1311# CONFIG_AUTOFS4_FS is not set
1013# CONFIG_FUSE_FS is not set 1312# CONFIG_FUSE_FS is not set
1014CONFIG_GENERIC_ACL=y 1313
1314#
1315# Caches
1316#
1317# CONFIG_FSCACHE is not set
1015 1318
1016# 1319#
1017# CD-ROM/DVD Filesystems 1320# CD-ROM/DVD Filesystems
1018# 1321#
1019CONFIG_ISO9660_FS=m 1322CONFIG_ISO9660_FS=y
1020CONFIG_JOLIET=y 1323CONFIG_JOLIET=y
1021CONFIG_ZISOFS=y 1324CONFIG_ZISOFS=y
1022CONFIG_UDF_FS=m 1325CONFIG_UDF_FS=y
1023CONFIG_UDF_NLS=y 1326CONFIG_UDF_NLS=y
1024 1327
1025# 1328#
1026# DOS/FAT/NT Filesystems 1329# DOS/FAT/NT Filesystems
1027# 1330#
1028CONFIG_FAT_FS=m 1331CONFIG_FAT_FS=y
1029CONFIG_MSDOS_FS=m 1332# CONFIG_MSDOS_FS is not set
1030CONFIG_VFAT_FS=m 1333CONFIG_VFAT_FS=y
1031CONFIG_FAT_DEFAULT_CODEPAGE=437 1334CONFIG_FAT_DEFAULT_CODEPAGE=437
1032CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" 1335CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1033# CONFIG_NTFS_FS is not set 1336# CONFIG_NTFS_FS is not set
@@ -1036,21 +1339,17 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1036# Pseudo filesystems 1339# Pseudo filesystems
1037# 1340#
1038CONFIG_PROC_FS=y 1341CONFIG_PROC_FS=y
1039CONFIG_PROC_KCORE=y 1342# CONFIG_PROC_KCORE is not set
1040CONFIG_PROC_SYSCTL=y 1343CONFIG_PROC_SYSCTL=y
1344# CONFIG_PROC_PAGE_MONITOR is not set
1041CONFIG_SYSFS=y 1345CONFIG_SYSFS=y
1042CONFIG_TMPFS=y 1346CONFIG_TMPFS=y
1043CONFIG_TMPFS_POSIX_ACL=y 1347# CONFIG_TMPFS_POSIX_ACL is not set
1044# CONFIG_HUGETLB_PAGE is not set 1348# CONFIG_HUGETLB_PAGE is not set
1045CONFIG_RAMFS=y 1349# CONFIG_CONFIGFS_FS is not set
1046CONFIG_CONFIGFS_FS=m 1350CONFIG_MISC_FILESYSTEMS=y
1047
1048#
1049# Miscellaneous filesystems
1050#
1051# CONFIG_ADFS_FS is not set 1351# CONFIG_ADFS_FS is not set
1052# CONFIG_AFFS_FS is not set 1352# CONFIG_AFFS_FS is not set
1053# CONFIG_ECRYPT_FS is not set
1054# CONFIG_HFS_FS is not set 1353# CONFIG_HFS_FS is not set
1055# CONFIG_HFSPLUS_FS is not set 1354# CONFIG_HFSPLUS_FS is not set
1056# CONFIG_BEFS_FS is not set 1355# CONFIG_BEFS_FS is not set
@@ -1059,27 +1358,36 @@ CONFIG_CONFIGFS_FS=m
1059CONFIG_JFFS2_FS=y 1358CONFIG_JFFS2_FS=y
1060CONFIG_JFFS2_FS_DEBUG=0 1359CONFIG_JFFS2_FS_DEBUG=0
1061CONFIG_JFFS2_FS_WRITEBUFFER=y 1360CONFIG_JFFS2_FS_WRITEBUFFER=y
1062# CONFIG_JFFS2_SUMMARY is not set 1361# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1362CONFIG_JFFS2_SUMMARY=y
1063# CONFIG_JFFS2_FS_XATTR is not set 1363# CONFIG_JFFS2_FS_XATTR is not set
1064# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set 1364CONFIG_JFFS2_COMPRESSION_OPTIONS=y
1065CONFIG_JFFS2_ZLIB=y 1365CONFIG_JFFS2_ZLIB=y
1366CONFIG_JFFS2_LZO=y
1066CONFIG_JFFS2_RTIME=y 1367CONFIG_JFFS2_RTIME=y
1067# CONFIG_JFFS2_RUBIN is not set 1368CONFIG_JFFS2_RUBIN=y
1068CONFIG_CRAMFS=m 1369# CONFIG_JFFS2_CMODE_NONE is not set
1370CONFIG_JFFS2_CMODE_PRIORITY=y
1371# CONFIG_JFFS2_CMODE_SIZE is not set
1372# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
1373# CONFIG_CRAMFS is not set
1374CONFIG_SQUASHFS=y
1375# CONFIG_SQUASHFS_EMBEDDED is not set
1376CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
1069# CONFIG_VXFS_FS is not set 1377# CONFIG_VXFS_FS is not set
1378# CONFIG_MINIX_FS is not set
1379# CONFIG_OMFS_FS is not set
1070# CONFIG_HPFS_FS is not set 1380# CONFIG_HPFS_FS is not set
1071# CONFIG_QNX4FS_FS is not set 1381# CONFIG_QNX4FS_FS is not set
1382# CONFIG_ROMFS_FS is not set
1072# CONFIG_SYSV_FS is not set 1383# CONFIG_SYSV_FS is not set
1073# CONFIG_UFS_FS is not set 1384# CONFIG_UFS_FS is not set
1074 1385CONFIG_NETWORK_FILESYSTEMS=y
1075#
1076# Network File Systems
1077#
1078CONFIG_NFS_FS=y 1386CONFIG_NFS_FS=y
1079CONFIG_NFS_V3=y 1387CONFIG_NFS_V3=y
1080# CONFIG_NFS_V3_ACL is not set 1388# CONFIG_NFS_V3_ACL is not set
1081# CONFIG_NFS_V4 is not set 1389# CONFIG_NFS_V4 is not set
1082# CONFIG_NFS_DIRECTIO is not set 1390CONFIG_ROOT_NFS=y
1083# CONFIG_NFSD is not set 1391# CONFIG_NFSD is not set
1084CONFIG_LOCKD=y 1392CONFIG_LOCKD=y
1085CONFIG_LOCKD_V4=y 1393CONFIG_LOCKD_V4=y
@@ -1087,93 +1395,140 @@ CONFIG_NFS_COMMON=y
1087CONFIG_SUNRPC=y 1395CONFIG_SUNRPC=y
1088# CONFIG_RPCSEC_GSS_KRB5 is not set 1396# CONFIG_RPCSEC_GSS_KRB5 is not set
1089# CONFIG_RPCSEC_GSS_SPKM3 is not set 1397# CONFIG_RPCSEC_GSS_SPKM3 is not set
1090CONFIG_SMB_FS=y 1398# CONFIG_SMB_FS is not set
1091# CONFIG_SMB_NLS_DEFAULT is not set
1092# CONFIG_CIFS is not set 1399# CONFIG_CIFS is not set
1093# CONFIG_NCP_FS is not set 1400# CONFIG_NCP_FS is not set
1094# CONFIG_CODA_FS is not set 1401# CONFIG_CODA_FS is not set
1095# CONFIG_AFS_FS is not set 1402# CONFIG_AFS_FS is not set
1096# CONFIG_9P_FS is not set
1097 1403
1098# 1404#
1099# Partition Types 1405# Partition Types
1100# 1406#
1101# CONFIG_PARTITION_ADVANCED is not set 1407CONFIG_PARTITION_ADVANCED=y
1408# CONFIG_ACORN_PARTITION is not set
1409# CONFIG_OSF_PARTITION is not set
1410# CONFIG_AMIGA_PARTITION is not set
1411# CONFIG_ATARI_PARTITION is not set
1412# CONFIG_MAC_PARTITION is not set
1102CONFIG_MSDOS_PARTITION=y 1413CONFIG_MSDOS_PARTITION=y
1103 1414# CONFIG_BSD_DISKLABEL is not set
1104# 1415# CONFIG_MINIX_SUBPARTITION is not set
1105# Native Language Support 1416# CONFIG_SOLARIS_X86_PARTITION is not set
1106# 1417# CONFIG_UNIXWARE_DISKLABEL is not set
1418# CONFIG_LDM_PARTITION is not set
1419# CONFIG_SGI_PARTITION is not set
1420# CONFIG_ULTRIX_PARTITION is not set
1421# CONFIG_SUN_PARTITION is not set
1422# CONFIG_KARMA_PARTITION is not set
1423CONFIG_EFI_PARTITION=y
1424# CONFIG_SYSV68_PARTITION is not set
1107CONFIG_NLS=y 1425CONFIG_NLS=y
1108CONFIG_NLS_DEFAULT="iso8859-1" 1426CONFIG_NLS_DEFAULT="iso8859-1"
1109CONFIG_NLS_CODEPAGE_437=m 1427CONFIG_NLS_CODEPAGE_437=y
1110CONFIG_NLS_CODEPAGE_737=m 1428# CONFIG_NLS_CODEPAGE_737 is not set
1111CONFIG_NLS_CODEPAGE_775=m 1429# CONFIG_NLS_CODEPAGE_775 is not set
1112CONFIG_NLS_CODEPAGE_850=m 1430CONFIG_NLS_CODEPAGE_850=y
1113CONFIG_NLS_CODEPAGE_852=m 1431CONFIG_NLS_CODEPAGE_852=y
1114CONFIG_NLS_CODEPAGE_855=m 1432# CONFIG_NLS_CODEPAGE_855 is not set
1115CONFIG_NLS_CODEPAGE_857=m 1433# CONFIG_NLS_CODEPAGE_857 is not set
1116CONFIG_NLS_CODEPAGE_860=m 1434# CONFIG_NLS_CODEPAGE_860 is not set
1117CONFIG_NLS_CODEPAGE_861=m 1435# CONFIG_NLS_CODEPAGE_861 is not set
1118CONFIG_NLS_CODEPAGE_862=m 1436# CONFIG_NLS_CODEPAGE_862 is not set
1119CONFIG_NLS_CODEPAGE_863=m 1437# CONFIG_NLS_CODEPAGE_863 is not set
1120CONFIG_NLS_CODEPAGE_864=m 1438# CONFIG_NLS_CODEPAGE_864 is not set
1121CONFIG_NLS_CODEPAGE_865=m 1439# CONFIG_NLS_CODEPAGE_865 is not set
1122CONFIG_NLS_CODEPAGE_866=m 1440# CONFIG_NLS_CODEPAGE_866 is not set
1123CONFIG_NLS_CODEPAGE_869=m 1441# CONFIG_NLS_CODEPAGE_869 is not set
1124CONFIG_NLS_CODEPAGE_936=m 1442# CONFIG_NLS_CODEPAGE_936 is not set
1125CONFIG_NLS_CODEPAGE_950=m 1443# CONFIG_NLS_CODEPAGE_950 is not set
1126CONFIG_NLS_CODEPAGE_932=m 1444# CONFIG_NLS_CODEPAGE_932 is not set
1127CONFIG_NLS_CODEPAGE_949=m 1445# CONFIG_NLS_CODEPAGE_949 is not set
1128CONFIG_NLS_CODEPAGE_874=m 1446# CONFIG_NLS_CODEPAGE_874 is not set
1129CONFIG_NLS_ISO8859_8=m 1447# CONFIG_NLS_ISO8859_8 is not set
1130CONFIG_NLS_CODEPAGE_1250=m 1448CONFIG_NLS_CODEPAGE_1250=y
1131CONFIG_NLS_CODEPAGE_1251=m 1449# CONFIG_NLS_CODEPAGE_1251 is not set
1132CONFIG_NLS_ASCII=m 1450CONFIG_NLS_ASCII=y
1133CONFIG_NLS_ISO8859_1=m 1451CONFIG_NLS_ISO8859_1=y
1134CONFIG_NLS_ISO8859_2=m 1452CONFIG_NLS_ISO8859_2=y
1135CONFIG_NLS_ISO8859_3=m 1453# CONFIG_NLS_ISO8859_3 is not set
1136CONFIG_NLS_ISO8859_4=m 1454# CONFIG_NLS_ISO8859_4 is not set
1137CONFIG_NLS_ISO8859_5=m 1455# CONFIG_NLS_ISO8859_5 is not set
1138CONFIG_NLS_ISO8859_6=m 1456# CONFIG_NLS_ISO8859_6 is not set
1139CONFIG_NLS_ISO8859_7=m 1457# CONFIG_NLS_ISO8859_7 is not set
1140CONFIG_NLS_ISO8859_9=m 1458# CONFIG_NLS_ISO8859_9 is not set
1141CONFIG_NLS_ISO8859_13=m 1459# CONFIG_NLS_ISO8859_13 is not set
1142CONFIG_NLS_ISO8859_14=m 1460# CONFIG_NLS_ISO8859_14 is not set
1143CONFIG_NLS_ISO8859_15=m 1461CONFIG_NLS_ISO8859_15=y
1144CONFIG_NLS_KOI8_R=m 1462# CONFIG_NLS_KOI8_R is not set
1145CONFIG_NLS_KOI8_U=m 1463# CONFIG_NLS_KOI8_U is not set
1146CONFIG_NLS_UTF8=m 1464CONFIG_NLS_UTF8=y
1147 1465# CONFIG_DLM is not set
1148#
1149# Distributed Lock Manager
1150#
1151CONFIG_DLM=m
1152CONFIG_DLM_TCP=y
1153# CONFIG_DLM_SCTP is not set
1154# CONFIG_DLM_DEBUG is not set
1155
1156#
1157# Profiling support
1158#
1159# CONFIG_PROFILING is not set
1160 1466
1161# 1467#
1162# Kernel hacking 1468# Kernel hacking
1163# 1469#
1164CONFIG_TRACE_IRQFLAGS_SUPPORT=y 1470CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1165# CONFIG_PRINTK_TIME is not set 1471# CONFIG_PRINTK_TIME is not set
1166CONFIG_ENABLE_MUST_CHECK=y 1472# CONFIG_ENABLE_WARN_DEPRECATED is not set
1167# CONFIG_MAGIC_SYSRQ is not set 1473# CONFIG_ENABLE_MUST_CHECK is not set
1474CONFIG_FRAME_WARN=1024
1475CONFIG_MAGIC_SYSRQ=y
1476CONFIG_STRIP_ASM_SYMS=y
1168# CONFIG_UNUSED_SYMBOLS is not set 1477# CONFIG_UNUSED_SYMBOLS is not set
1169# CONFIG_DEBUG_FS is not set 1478# CONFIG_DEBUG_FS is not set
1170# CONFIG_HEADERS_CHECK is not set 1479# CONFIG_HEADERS_CHECK is not set
1171# CONFIG_DEBUG_KERNEL is not set 1480CONFIG_DEBUG_KERNEL=y
1172CONFIG_LOG_BUF_SHIFT=14 1481# CONFIG_DEBUG_SHIRQ is not set
1173CONFIG_CROSSCOMPILE=y 1482# CONFIG_DETECT_SOFTLOCKUP is not set
1483# CONFIG_DETECT_HUNG_TASK is not set
1484# CONFIG_SCHED_DEBUG is not set
1485# CONFIG_SCHEDSTATS is not set
1486# CONFIG_TIMER_STATS is not set
1487# CONFIG_DEBUG_OBJECTS is not set
1488# CONFIG_DEBUG_SLAB is not set
1489# CONFIG_DEBUG_RT_MUTEXES is not set
1490# CONFIG_RT_MUTEX_TESTER is not set
1491# CONFIG_DEBUG_SPINLOCK is not set
1492# CONFIG_DEBUG_MUTEXES is not set
1493# CONFIG_DEBUG_LOCK_ALLOC is not set
1494# CONFIG_PROVE_LOCKING is not set
1495# CONFIG_LOCK_STAT is not set
1496# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1497# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1498# CONFIG_DEBUG_KOBJECT is not set
1499# CONFIG_DEBUG_INFO is not set
1500# CONFIG_DEBUG_VM is not set
1501# CONFIG_DEBUG_WRITECOUNT is not set
1502# CONFIG_DEBUG_MEMORY_INIT is not set
1503# CONFIG_DEBUG_LIST is not set
1504# CONFIG_DEBUG_SG is not set
1505# CONFIG_DEBUG_NOTIFIERS is not set
1506# CONFIG_DEBUG_CREDENTIALS is not set
1507# CONFIG_BOOT_PRINTK_DELAY is not set
1508# CONFIG_RCU_TORTURE_TEST is not set
1509# CONFIG_BACKTRACE_SELF_TEST is not set
1510# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1511# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1512# CONFIG_FAULT_INJECTION is not set
1513# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1514# CONFIG_PAGE_POISONING is not set
1515CONFIG_HAVE_FUNCTION_TRACER=y
1516CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1517CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
1518CONFIG_HAVE_DYNAMIC_FTRACE=y
1519CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1520CONFIG_TRACING_SUPPORT=y
1521# CONFIG_FTRACE is not set
1522# CONFIG_SAMPLES is not set
1523CONFIG_HAVE_ARCH_KGDB=y
1524# CONFIG_KGDB is not set
1525CONFIG_EARLY_PRINTK=y
1174CONFIG_CMDLINE_BOOL=y 1526CONFIG_CMDLINE_BOOL=y
1175CONFIG_CMDLINE="mem=48M" 1527CONFIG_CMDLINE="console=ttyS0,115200"
1176# CONFIG_CMDLINE_OVERRIDE is not set 1528# CONFIG_CMDLINE_OVERRIDE is not set
1529# CONFIG_DEBUG_STACK_USAGE is not set
1530# CONFIG_RUNTIME_DEBUG is not set
1531CONFIG_DEBUG_ZBOOT=y
1177 1532
1178# 1533#
1179# Security options 1534# Security options
@@ -1181,67 +1536,32 @@ CONFIG_CMDLINE="mem=48M"
1181CONFIG_KEYS=y 1536CONFIG_KEYS=y
1182CONFIG_KEYS_DEBUG_PROC_KEYS=y 1537CONFIG_KEYS_DEBUG_PROC_KEYS=y
1183# CONFIG_SECURITY is not set 1538# CONFIG_SECURITY is not set
1184 1539CONFIG_SECURITYFS=y
1185# 1540# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1186# Cryptographic options 1541# CONFIG_DEFAULT_SECURITY_SMACK is not set
1187# 1542# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1188CONFIG_CRYPTO=y 1543CONFIG_DEFAULT_SECURITY_DAC=y
1189CONFIG_CRYPTO_ALGAPI=y 1544CONFIG_DEFAULT_SECURITY=""
1190CONFIG_CRYPTO_BLKCIPHER=m 1545# CONFIG_CRYPTO is not set
1191CONFIG_CRYPTO_HASH=m 1546# CONFIG_BINARY_PRINTF is not set
1192CONFIG_CRYPTO_MANAGER=m
1193CONFIG_CRYPTO_HMAC=m
1194CONFIG_CRYPTO_XCBC=m
1195CONFIG_CRYPTO_NULL=m
1196CONFIG_CRYPTO_MD4=m
1197CONFIG_CRYPTO_MD5=y
1198CONFIG_CRYPTO_SHA1=m
1199CONFIG_CRYPTO_SHA256=m
1200CONFIG_CRYPTO_SHA512=m
1201CONFIG_CRYPTO_WP512=m
1202CONFIG_CRYPTO_TGR192=m
1203CONFIG_CRYPTO_GF128MUL=m
1204CONFIG_CRYPTO_ECB=m
1205CONFIG_CRYPTO_CBC=m
1206CONFIG_CRYPTO_PCBC=m
1207CONFIG_CRYPTO_LRW=m
1208CONFIG_CRYPTO_DES=m
1209CONFIG_CRYPTO_FCRYPT=m
1210CONFIG_CRYPTO_BLOWFISH=m
1211CONFIG_CRYPTO_TWOFISH=m
1212CONFIG_CRYPTO_TWOFISH_COMMON=m
1213CONFIG_CRYPTO_SERPENT=m
1214CONFIG_CRYPTO_AES=m
1215CONFIG_CRYPTO_CAST5=m
1216CONFIG_CRYPTO_CAST6=m
1217CONFIG_CRYPTO_TEA=m
1218CONFIG_CRYPTO_ARC4=m
1219CONFIG_CRYPTO_KHAZAD=m
1220CONFIG_CRYPTO_ANUBIS=m
1221CONFIG_CRYPTO_DEFLATE=m
1222CONFIG_CRYPTO_MICHAEL_MIC=m
1223CONFIG_CRYPTO_CRC32C=m
1224CONFIG_CRYPTO_CAMELLIA=m
1225# CONFIG_CRYPTO_TEST is not set
1226
1227#
1228# Hardware crypto devices
1229#
1230 1547
1231# 1548#
1232# Library routines 1549# Library routines
1233# 1550#
1234CONFIG_BITREVERSE=y 1551CONFIG_BITREVERSE=y
1235CONFIG_CRC_CCITT=y 1552CONFIG_GENERIC_FIND_LAST_BIT=y
1553# CONFIG_CRC_CCITT is not set
1236# CONFIG_CRC16 is not set 1554# CONFIG_CRC16 is not set
1555# CONFIG_CRC_T10DIF is not set
1556CONFIG_CRC_ITU_T=y
1237CONFIG_CRC32=y 1557CONFIG_CRC32=y
1238CONFIG_LIBCRC32C=y 1558# CONFIG_CRC7 is not set
1559# CONFIG_LIBCRC32C is not set
1239CONFIG_ZLIB_INFLATE=y 1560CONFIG_ZLIB_INFLATE=y
1240CONFIG_ZLIB_DEFLATE=y 1561CONFIG_ZLIB_DEFLATE=y
1241CONFIG_TEXTSEARCH=y 1562CONFIG_LZO_COMPRESS=y
1242CONFIG_TEXTSEARCH_KMP=m 1563CONFIG_LZO_DECOMPRESS=y
1243CONFIG_TEXTSEARCH_BM=m
1244CONFIG_TEXTSEARCH_FSM=m
1245CONFIG_PLIST=y
1246CONFIG_HAS_IOMEM=y 1564CONFIG_HAS_IOMEM=y
1247CONFIG_HAS_IOPORT=y 1565CONFIG_HAS_IOPORT=y
1566CONFIG_HAS_DMA=y
1567CONFIG_NLATTR=y
diff --git a/arch/mips/configs/db1500_defconfig b/arch/mips/configs/db1500_defconfig
index a15131373138..5424c9167bf2 100644
--- a/arch/mips/configs/db1500_defconfig
+++ b/arch/mips/configs/db1500_defconfig
@@ -1,80 +1,104 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20 3# Linux kernel version: 2.6.33
4# Tue Feb 20 21:47:26 2007 4# Fri Feb 26 08:46:33 2010
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
8# 8#
9# Machine selection 9# Machine selection
10# 10#
11CONFIG_ZONE_DMA=y
12CONFIG_MACH_ALCHEMY=y 11CONFIG_MACH_ALCHEMY=y
13# CONFIG_MIPS_MTX1 is not set 12# CONFIG_AR7 is not set
14# CONFIG_MIPS_BOSPORUS is not set 13# CONFIG_BCM47XX is not set
15# CONFIG_MIPS_PB1000 is not set 14# CONFIG_BCM63XX is not set
16# CONFIG_MIPS_PB1100 is not set
17# CONFIG_MIPS_PB1500 is not set
18# CONFIG_MIPS_PB1550 is not set
19# CONFIG_MIPS_PB1200 is not set
20# CONFIG_MIPS_DB1000 is not set
21# CONFIG_MIPS_DB1100 is not set
22CONFIG_MIPS_DB1500=y
23# CONFIG_MIPS_DB1550 is not set
24# CONFIG_MIPS_DB1200 is not set
25# CONFIG_MIPS_MIRAGE is not set
26# CONFIG_MIPS_COBALT is not set 15# CONFIG_MIPS_COBALT is not set
27# CONFIG_MACH_DECSTATION is not set 16# CONFIG_MACH_DECSTATION is not set
28# CONFIG_MACH_JAZZ is not set 17# CONFIG_MACH_JAZZ is not set
18# CONFIG_LASAT is not set
19# CONFIG_MACH_LOONGSON is not set
29# CONFIG_MIPS_MALTA is not set 20# CONFIG_MIPS_MALTA is not set
30# CONFIG_WR_PPMC is not set
31# CONFIG_MIPS_SIM is not set 21# CONFIG_MIPS_SIM is not set
32# CONFIG_MOMENCO_JAGUAR_ATX is not set 22# CONFIG_NEC_MARKEINS is not set
33# CONFIG_MIPS_XXS1500 is not set 23# CONFIG_MACH_VR41XX is not set
24# CONFIG_NXP_STB220 is not set
25# CONFIG_NXP_STB225 is not set
34# CONFIG_PNX8550_JBS is not set 26# CONFIG_PNX8550_JBS is not set
35# CONFIG_PNX8550_STB810 is not set 27# CONFIG_PNX8550_STB810 is not set
36# CONFIG_MACH_VR41XX is not set 28# CONFIG_PMC_MSP is not set
37# CONFIG_PMC_YOSEMITE is not set 29# CONFIG_PMC_YOSEMITE is not set
38# CONFIG_MARKEINS is not set 30# CONFIG_POWERTV is not set
39# CONFIG_SGI_IP22 is not set 31# CONFIG_SGI_IP22 is not set
40# CONFIG_SGI_IP27 is not set 32# CONFIG_SGI_IP27 is not set
33# CONFIG_SGI_IP28 is not set
41# CONFIG_SGI_IP32 is not set 34# CONFIG_SGI_IP32 is not set
42# CONFIG_SIBYTE_BIGSUR is not set
43# CONFIG_SIBYTE_SWARM is not set
44# CONFIG_SIBYTE_SENTOSA is not set
45# CONFIG_SIBYTE_RHONE is not set
46# CONFIG_SIBYTE_CARMEL is not set
47# CONFIG_SIBYTE_LITTLESUR is not set
48# CONFIG_SIBYTE_CRHINE is not set 35# CONFIG_SIBYTE_CRHINE is not set
36# CONFIG_SIBYTE_CARMEL is not set
49# CONFIG_SIBYTE_CRHONE is not set 37# CONFIG_SIBYTE_CRHONE is not set
38# CONFIG_SIBYTE_RHONE is not set
39# CONFIG_SIBYTE_SWARM is not set
40# CONFIG_SIBYTE_LITTLESUR is not set
41# CONFIG_SIBYTE_SENTOSA is not set
42# CONFIG_SIBYTE_BIGSUR is not set
50# CONFIG_SNI_RM is not set 43# CONFIG_SNI_RM is not set
51# CONFIG_TOSHIBA_JMR3927 is not set 44# CONFIG_MACH_TX39XX is not set
52# CONFIG_TOSHIBA_RBTX4927 is not set 45# CONFIG_MACH_TX49XX is not set
53# CONFIG_TOSHIBA_RBTX4938 is not set 46# CONFIG_MIKROTIK_RB532 is not set
47# CONFIG_WR_PPMC is not set
48# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
49# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
50CONFIG_ALCHEMY_GPIOINT_AU1000=y
51# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
52# CONFIG_MIPS_MTX1 is not set
53# CONFIG_MIPS_BOSPORUS is not set
54# CONFIG_MIPS_DB1000 is not set
55# CONFIG_MIPS_DB1100 is not set
56# CONFIG_MIPS_DB1200 is not set
57CONFIG_MIPS_DB1500=y
58# CONFIG_MIPS_DB1550 is not set
59# CONFIG_MIPS_MIRAGE is not set
60# CONFIG_MIPS_PB1000 is not set
61# CONFIG_MIPS_PB1100 is not set
62# CONFIG_MIPS_PB1200 is not set
63# CONFIG_MIPS_PB1500 is not set
64# CONFIG_MIPS_PB1550 is not set
65# CONFIG_MIPS_XXS1500 is not set
66CONFIG_SOC_AU1500=y
67CONFIG_SOC_AU1X00=y
68CONFIG_LOONGSON_UART_BASE=y
54CONFIG_RWSEM_GENERIC_SPINLOCK=y 69CONFIG_RWSEM_GENERIC_SPINLOCK=y
55# CONFIG_ARCH_HAS_ILOG2_U32 is not set 70# CONFIG_ARCH_HAS_ILOG2_U32 is not set
56# CONFIG_ARCH_HAS_ILOG2_U64 is not set 71# CONFIG_ARCH_HAS_ILOG2_U64 is not set
72CONFIG_ARCH_SUPPORTS_OPROFILE=y
57CONFIG_GENERIC_FIND_NEXT_BIT=y 73CONFIG_GENERIC_FIND_NEXT_BIT=y
58CONFIG_GENERIC_HWEIGHT=y 74CONFIG_GENERIC_HWEIGHT=y
59CONFIG_GENERIC_CALIBRATE_DELAY=y 75CONFIG_GENERIC_CALIBRATE_DELAY=y
76CONFIG_GENERIC_CLOCKEVENTS=y
60CONFIG_GENERIC_TIME=y 77CONFIG_GENERIC_TIME=y
61CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 78CONFIG_GENERIC_CMOS_UPDATE=y
62# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set 79CONFIG_SCHED_OMIT_FRAME_POINTER=y
80CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
81CONFIG_CEVT_R4K_LIB=y
82CONFIG_CSRC_R4K_LIB=y
63CONFIG_DMA_NONCOHERENT=y 83CONFIG_DMA_NONCOHERENT=y
64CONFIG_DMA_NEED_PCI_MAP_STATE=y 84CONFIG_DMA_NEED_PCI_MAP_STATE=y
85CONFIG_SYS_HAS_EARLY_PRINTK=y
65CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y 86CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y
87# CONFIG_NO_IOPORT is not set
88CONFIG_GENERIC_GPIO=y
66# CONFIG_CPU_BIG_ENDIAN is not set 89# CONFIG_CPU_BIG_ENDIAN is not set
67CONFIG_CPU_LITTLE_ENDIAN=y 90CONFIG_CPU_LITTLE_ENDIAN=y
68CONFIG_SYS_SUPPORTS_APM_EMULATION=y 91CONFIG_SYS_SUPPORTS_APM_EMULATION=y
69CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y 92CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
70CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y 93CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
71CONFIG_SOC_AU1500=y 94CONFIG_IRQ_CPU=y
72CONFIG_SOC_AU1X00=y
73CONFIG_MIPS_L1_CACHE_SHIFT=5 95CONFIG_MIPS_L1_CACHE_SHIFT=5
74 96
75# 97#
76# CPU selection 98# CPU selection
77# 99#
100# CONFIG_CPU_LOONGSON2E is not set
101# CONFIG_CPU_LOONGSON2F is not set
78CONFIG_CPU_MIPS32_R1=y 102CONFIG_CPU_MIPS32_R1=y
79# CONFIG_CPU_MIPS32_R2 is not set 103# CONFIG_CPU_MIPS32_R2 is not set
80# CONFIG_CPU_MIPS64_R1 is not set 104# CONFIG_CPU_MIPS64_R1 is not set
@@ -87,6 +111,7 @@ CONFIG_CPU_MIPS32_R1=y
87# CONFIG_CPU_TX49XX is not set 111# CONFIG_CPU_TX49XX is not set
88# CONFIG_CPU_R5000 is not set 112# CONFIG_CPU_R5000 is not set
89# CONFIG_CPU_R5432 is not set 113# CONFIG_CPU_R5432 is not set
114# CONFIG_CPU_R5500 is not set
90# CONFIG_CPU_R6000 is not set 115# CONFIG_CPU_R6000 is not set
91# CONFIG_CPU_NEVADA is not set 116# CONFIG_CPU_NEVADA is not set
92# CONFIG_CPU_R8000 is not set 117# CONFIG_CPU_R8000 is not set
@@ -94,11 +119,14 @@ CONFIG_CPU_MIPS32_R1=y
94# CONFIG_CPU_RM7000 is not set 119# CONFIG_CPU_RM7000 is not set
95# CONFIG_CPU_RM9000 is not set 120# CONFIG_CPU_RM9000 is not set
96# CONFIG_CPU_SB1 is not set 121# CONFIG_CPU_SB1 is not set
122# CONFIG_CPU_CAVIUM_OCTEON is not set
123CONFIG_SYS_SUPPORTS_ZBOOT=y
97CONFIG_SYS_HAS_CPU_MIPS32_R1=y 124CONFIG_SYS_HAS_CPU_MIPS32_R1=y
98CONFIG_CPU_MIPS32=y 125CONFIG_CPU_MIPS32=y
99CONFIG_CPU_MIPSR1=y 126CONFIG_CPU_MIPSR1=y
100CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 127CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
101CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y 128CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
129CONFIG_HARDWARE_WATCHPOINTS=y
102 130
103# 131#
104# Kernel type 132# Kernel type
@@ -108,137 +136,207 @@ CONFIG_32BIT=y
108CONFIG_PAGE_SIZE_4KB=y 136CONFIG_PAGE_SIZE_4KB=y
109# CONFIG_PAGE_SIZE_8KB is not set 137# CONFIG_PAGE_SIZE_8KB is not set
110# CONFIG_PAGE_SIZE_16KB is not set 138# CONFIG_PAGE_SIZE_16KB is not set
139# CONFIG_PAGE_SIZE_32KB is not set
111# CONFIG_PAGE_SIZE_64KB is not set 140# CONFIG_PAGE_SIZE_64KB is not set
112CONFIG_CPU_HAS_PREFETCH=y 141CONFIG_CPU_HAS_PREFETCH=y
113CONFIG_MIPS_MT_DISABLED=y 142CONFIG_MIPS_MT_DISABLED=y
114# CONFIG_MIPS_MT_SMP is not set 143# CONFIG_MIPS_MT_SMP is not set
115# CONFIG_MIPS_MT_SMTC is not set 144# CONFIG_MIPS_MT_SMTC is not set
116# CONFIG_MIPS_VPE_LOADER is not set
117CONFIG_64BIT_PHYS_ADDR=y 145CONFIG_64BIT_PHYS_ADDR=y
146CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
118CONFIG_CPU_HAS_SYNC=y 147CONFIG_CPU_HAS_SYNC=y
119CONFIG_GENERIC_HARDIRQS=y 148CONFIG_GENERIC_HARDIRQS=y
120CONFIG_GENERIC_IRQ_PROBE=y 149CONFIG_GENERIC_IRQ_PROBE=y
121CONFIG_CPU_SUPPORTS_HIGHMEM=y 150CONFIG_CPU_SUPPORTS_HIGHMEM=y
122CONFIG_ARCH_FLATMEM_ENABLE=y 151CONFIG_ARCH_FLATMEM_ENABLE=y
152CONFIG_ARCH_POPULATES_NODE_MAP=y
123CONFIG_SELECT_MEMORY_MODEL=y 153CONFIG_SELECT_MEMORY_MODEL=y
124CONFIG_FLATMEM_MANUAL=y 154CONFIG_FLATMEM_MANUAL=y
125# CONFIG_DISCONTIGMEM_MANUAL is not set 155# CONFIG_DISCONTIGMEM_MANUAL is not set
126# CONFIG_SPARSEMEM_MANUAL is not set 156# CONFIG_SPARSEMEM_MANUAL is not set
127CONFIG_FLATMEM=y 157CONFIG_FLATMEM=y
128CONFIG_FLAT_NODE_MEM_MAP=y 158CONFIG_FLAT_NODE_MEM_MAP=y
129# CONFIG_SPARSEMEM_STATIC is not set 159CONFIG_PAGEFLAGS_EXTENDED=y
130CONFIG_SPLIT_PTLOCK_CPUS=4 160CONFIG_SPLIT_PTLOCK_CPUS=4
131CONFIG_RESOURCES_64BIT=y 161CONFIG_PHYS_ADDR_T_64BIT=y
132CONFIG_ZONE_DMA_FLAG=1 162CONFIG_ZONE_DMA_FLAG=0
163CONFIG_VIRT_TO_BUS=y
164# CONFIG_KSM is not set
165CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
166CONFIG_TICK_ONESHOT=y
167CONFIG_NO_HZ=y
168CONFIG_HIGH_RES_TIMERS=y
169CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
133# CONFIG_HZ_48 is not set 170# CONFIG_HZ_48 is not set
134# CONFIG_HZ_100 is not set 171CONFIG_HZ_100=y
135# CONFIG_HZ_128 is not set 172# CONFIG_HZ_128 is not set
136# CONFIG_HZ_250 is not set 173# CONFIG_HZ_250 is not set
137# CONFIG_HZ_256 is not set 174# CONFIG_HZ_256 is not set
138CONFIG_HZ_1000=y 175# CONFIG_HZ_1000 is not set
139# CONFIG_HZ_1024 is not set 176# CONFIG_HZ_1024 is not set
140CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 177CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
141CONFIG_HZ=1000 178CONFIG_HZ=100
142CONFIG_PREEMPT_NONE=y 179CONFIG_PREEMPT_NONE=y
143# CONFIG_PREEMPT_VOLUNTARY is not set 180# CONFIG_PREEMPT_VOLUNTARY is not set
144# CONFIG_PREEMPT is not set 181# CONFIG_PREEMPT is not set
145# CONFIG_KEXEC is not set 182# CONFIG_KEXEC is not set
183# CONFIG_SECCOMP is not set
146CONFIG_LOCKDEP_SUPPORT=y 184CONFIG_LOCKDEP_SUPPORT=y
147CONFIG_STACKTRACE_SUPPORT=y 185CONFIG_STACKTRACE_SUPPORT=y
148CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 186CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
187CONFIG_CONSTRUCTORS=y
149 188
150# 189#
151# Code maturity level options 190# General setup
152# 191#
153CONFIG_EXPERIMENTAL=y 192CONFIG_EXPERIMENTAL=y
154CONFIG_BROKEN_ON_SMP=y 193CONFIG_BROKEN_ON_SMP=y
155CONFIG_INIT_ENV_ARG_LIMIT=32 194CONFIG_INIT_ENV_ARG_LIMIT=32
156 195CONFIG_LOCALVERSION="-db1500"
157#
158# General setup
159#
160CONFIG_LOCALVERSION=""
161CONFIG_LOCALVERSION_AUTO=y 196CONFIG_LOCALVERSION_AUTO=y
197CONFIG_HAVE_KERNEL_GZIP=y
198CONFIG_HAVE_KERNEL_BZIP2=y
199CONFIG_HAVE_KERNEL_LZMA=y
200CONFIG_HAVE_KERNEL_LZO=y
201# CONFIG_KERNEL_GZIP is not set
202# CONFIG_KERNEL_BZIP2 is not set
203CONFIG_KERNEL_LZMA=y
204# CONFIG_KERNEL_LZO is not set
162CONFIG_SWAP=y 205CONFIG_SWAP=y
163CONFIG_SYSVIPC=y 206CONFIG_SYSVIPC=y
164# CONFIG_IPC_NS is not set
165CONFIG_SYSVIPC_SYSCTL=y 207CONFIG_SYSVIPC_SYSCTL=y
166# CONFIG_POSIX_MQUEUE is not set 208# CONFIG_POSIX_MQUEUE is not set
167# CONFIG_BSD_PROCESS_ACCT is not set 209# CONFIG_BSD_PROCESS_ACCT is not set
168# CONFIG_TASKSTATS is not set 210# CONFIG_TASKSTATS is not set
169# CONFIG_UTS_NS is not set
170# CONFIG_AUDIT is not set 211# CONFIG_AUDIT is not set
212
213#
214# RCU Subsystem
215#
216CONFIG_TREE_RCU=y
217# CONFIG_TREE_PREEMPT_RCU is not set
218# CONFIG_TINY_RCU is not set
219# CONFIG_RCU_TRACE is not set
220CONFIG_RCU_FANOUT=32
221# CONFIG_RCU_FANOUT_EXACT is not set
222# CONFIG_TREE_RCU_TRACE is not set
171# CONFIG_IKCONFIG is not set 223# CONFIG_IKCONFIG is not set
172CONFIG_SYSFS_DEPRECATED=y 224CONFIG_LOG_BUF_SHIFT=14
173CONFIG_RELAY=y 225# CONFIG_GROUP_SCHED is not set
174# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 226# CONFIG_CGROUPS is not set
227# CONFIG_SYSFS_DEPRECATED_V2 is not set
228# CONFIG_RELAY is not set
229# CONFIG_NAMESPACES is not set
230# CONFIG_BLK_DEV_INITRD is not set
231CONFIG_CC_OPTIMIZE_FOR_SIZE=y
175CONFIG_SYSCTL=y 232CONFIG_SYSCTL=y
233CONFIG_ANON_INODES=y
176CONFIG_EMBEDDED=y 234CONFIG_EMBEDDED=y
177CONFIG_SYSCTL_SYSCALL=y 235CONFIG_SYSCTL_SYSCALL=y
178CONFIG_KALLSYMS=y 236# CONFIG_KALLSYMS is not set
179# CONFIG_KALLSYMS_EXTRA_PASS is not set
180CONFIG_HOTPLUG=y 237CONFIG_HOTPLUG=y
181CONFIG_PRINTK=y 238CONFIG_PRINTK=y
182CONFIG_BUG=y 239CONFIG_BUG=y
183CONFIG_ELF_CORE=y 240CONFIG_ELF_CORE=y
241# CONFIG_PCSPKR_PLATFORM is not set
184CONFIG_BASE_FULL=y 242CONFIG_BASE_FULL=y
185CONFIG_FUTEX=y 243CONFIG_FUTEX=y
186CONFIG_EPOLL=y 244CONFIG_EPOLL=y
245CONFIG_SIGNALFD=y
246CONFIG_TIMERFD=y
247CONFIG_EVENTFD=y
187CONFIG_SHMEM=y 248CONFIG_SHMEM=y
249CONFIG_AIO=y
250
251#
252# Kernel Performance Events And Counters
253#
254# CONFIG_VM_EVENT_COUNTERS is not set
255CONFIG_PCI_QUIRKS=y
256# CONFIG_COMPAT_BRK is not set
188CONFIG_SLAB=y 257CONFIG_SLAB=y
189CONFIG_VM_EVENT_COUNTERS=y 258# CONFIG_SLUB is not set
190CONFIG_RT_MUTEXES=y
191# CONFIG_TINY_SHMEM is not set
192CONFIG_BASE_SMALL=0
193# CONFIG_SLOB is not set 259# CONFIG_SLOB is not set
260# CONFIG_PROFILING is not set
261CONFIG_HAVE_OPROFILE=y
194 262
195# 263#
196# Loadable module support 264# GCOV-based kernel profiling
197# 265#
266# CONFIG_SLOW_WORK is not set
267CONFIG_HAVE_GENERIC_DMA_COHERENT=y
268CONFIG_SLABINFO=y
269CONFIG_RT_MUTEXES=y
270CONFIG_BASE_SMALL=0
198CONFIG_MODULES=y 271CONFIG_MODULES=y
272# CONFIG_MODULE_FORCE_LOAD is not set
199CONFIG_MODULE_UNLOAD=y 273CONFIG_MODULE_UNLOAD=y
200# CONFIG_MODULE_FORCE_UNLOAD is not set 274# CONFIG_MODULE_FORCE_UNLOAD is not set
201CONFIG_MODVERSIONS=y 275# CONFIG_MODVERSIONS is not set
202CONFIG_MODULE_SRCVERSION_ALL=y 276# CONFIG_MODULE_SRCVERSION_ALL is not set
203CONFIG_KMOD=y
204
205#
206# Block layer
207#
208CONFIG_BLOCK=y 277CONFIG_BLOCK=y
209# CONFIG_LBD is not set 278CONFIG_LBDAF=y
210# CONFIG_BLK_DEV_IO_TRACE is not set 279CONFIG_BLK_DEV_BSG=y
211# CONFIG_LSF is not set 280# CONFIG_BLK_DEV_INTEGRITY is not set
212 281
213# 282#
214# IO Schedulers 283# IO Schedulers
215# 284#
216CONFIG_IOSCHED_NOOP=y 285CONFIG_IOSCHED_NOOP=y
217CONFIG_IOSCHED_AS=y 286# CONFIG_IOSCHED_DEADLINE is not set
218CONFIG_IOSCHED_DEADLINE=y 287# CONFIG_IOSCHED_CFQ is not set
219CONFIG_IOSCHED_CFQ=y
220CONFIG_DEFAULT_AS=y
221# CONFIG_DEFAULT_DEADLINE is not set 288# CONFIG_DEFAULT_DEADLINE is not set
222# CONFIG_DEFAULT_CFQ is not set 289# CONFIG_DEFAULT_CFQ is not set
223# CONFIG_DEFAULT_NOOP is not set 290CONFIG_DEFAULT_NOOP=y
224CONFIG_DEFAULT_IOSCHED="anticipatory" 291CONFIG_DEFAULT_IOSCHED="noop"
292# CONFIG_INLINE_SPIN_TRYLOCK is not set
293# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
294# CONFIG_INLINE_SPIN_LOCK is not set
295# CONFIG_INLINE_SPIN_LOCK_BH is not set
296# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
297# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
298CONFIG_INLINE_SPIN_UNLOCK=y
299# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
300CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
301# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
302# CONFIG_INLINE_READ_TRYLOCK is not set
303# CONFIG_INLINE_READ_LOCK is not set
304# CONFIG_INLINE_READ_LOCK_BH is not set
305# CONFIG_INLINE_READ_LOCK_IRQ is not set
306# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
307CONFIG_INLINE_READ_UNLOCK=y
308# CONFIG_INLINE_READ_UNLOCK_BH is not set
309CONFIG_INLINE_READ_UNLOCK_IRQ=y
310# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
311# CONFIG_INLINE_WRITE_TRYLOCK is not set
312# CONFIG_INLINE_WRITE_LOCK is not set
313# CONFIG_INLINE_WRITE_LOCK_BH is not set
314# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
315# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
316CONFIG_INLINE_WRITE_UNLOCK=y
317# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
318CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
319# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
320# CONFIG_MUTEX_SPIN_ON_OWNER is not set
321CONFIG_FREEZER=y
225 322
226# 323#
227# Bus options (PCI, PCMCIA, EISA, ISA, TC) 324# Bus options (PCI, PCMCIA, EISA, ISA, TC)
228# 325#
229CONFIG_HW_HAS_PCI=y 326CONFIG_HW_HAS_PCI=y
230CONFIG_PCI=y 327CONFIG_PCI=y
328CONFIG_PCI_DOMAINS=y
329# CONFIG_ARCH_SUPPORTS_MSI is not set
330# CONFIG_PCI_LEGACY is not set
331# CONFIG_PCI_DEBUG is not set
332# CONFIG_PCI_STUB is not set
333# CONFIG_PCI_IOV is not set
231CONFIG_MMU=y 334CONFIG_MMU=y
232 335CONFIG_PCCARD=y
233# 336CONFIG_PCMCIA=y
234# PCCARD (PCMCIA/CardBus) support
235#
236CONFIG_PCCARD=m
237# CONFIG_PCMCIA_DEBUG is not set
238CONFIG_PCMCIA=m
239CONFIG_PCMCIA_LOAD_CIS=y 337CONFIG_PCMCIA_LOAD_CIS=y
240CONFIG_PCMCIA_IOCTL=y 338# CONFIG_PCMCIA_IOCTL is not set
241CONFIG_CARDBUS=y 339# CONFIG_CARDBUS is not set
242 340
243# 341#
244# PC-card bridges 342# PC-card bridges
@@ -246,51 +344,49 @@ CONFIG_CARDBUS=y
246# CONFIG_YENTA is not set 344# CONFIG_YENTA is not set
247# CONFIG_PD6729 is not set 345# CONFIG_PD6729 is not set
248# CONFIG_I82092 is not set 346# CONFIG_I82092 is not set
249CONFIG_PCMCIA_AU1X00=m 347# CONFIG_PCMCIA_AU1X00 is not set
250 348CONFIG_PCMCIA_ALCHEMY_DEVBOARD=y
251#
252# PCI Hotplug Support
253#
254# CONFIG_HOTPLUG_PCI is not set 349# CONFIG_HOTPLUG_PCI is not set
255 350
256# 351#
257# Executable file formats 352# Executable file formats
258# 353#
259CONFIG_BINFMT_ELF=y 354CONFIG_BINFMT_ELF=y
355# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
356# CONFIG_HAVE_AOUT is not set
260# CONFIG_BINFMT_MISC is not set 357# CONFIG_BINFMT_MISC is not set
261CONFIG_TRAD_SIGNALS=y 358CONFIG_TRAD_SIGNALS=y
262 359
263# 360#
264# Power management options 361# Power management options
265# 362#
266# CONFIG_PM is not set 363CONFIG_ARCH_HIBERNATION_POSSIBLE=y
267 364CONFIG_ARCH_SUSPEND_POSSIBLE=y
268# 365CONFIG_PM=y
269# Networking 366# CONFIG_PM_DEBUG is not set
270# 367CONFIG_PM_SLEEP=y
368CONFIG_SUSPEND=y
369CONFIG_SUSPEND_FREEZER=y
370# CONFIG_HIBERNATION is not set
371# CONFIG_APM_EMULATION is not set
372CONFIG_PM_RUNTIME=y
271CONFIG_NET=y 373CONFIG_NET=y
272 374
273# 375#
274# Networking options 376# Networking options
275# 377#
276# CONFIG_NETDEBUG is not set
277CONFIG_PACKET=y 378CONFIG_PACKET=y
278# CONFIG_PACKET_MMAP is not set 379CONFIG_PACKET_MMAP=y
279CONFIG_UNIX=y 380CONFIG_UNIX=y
280CONFIG_XFRM=y 381# CONFIG_NET_KEY is not set
281CONFIG_XFRM_USER=m
282# CONFIG_XFRM_SUB_POLICY is not set
283CONFIG_XFRM_MIGRATE=y
284CONFIG_NET_KEY=y
285CONFIG_NET_KEY_MIGRATE=y
286CONFIG_INET=y 382CONFIG_INET=y
287CONFIG_IP_MULTICAST=y 383CONFIG_IP_MULTICAST=y
288# CONFIG_IP_ADVANCED_ROUTER is not set 384# CONFIG_IP_ADVANCED_ROUTER is not set
289CONFIG_IP_FIB_HASH=y 385CONFIG_IP_FIB_HASH=y
290CONFIG_IP_PNP=y 386CONFIG_IP_PNP=y
291# CONFIG_IP_PNP_DHCP is not set 387CONFIG_IP_PNP_DHCP=y
292CONFIG_IP_PNP_BOOTP=y 388CONFIG_IP_PNP_BOOTP=y
293# CONFIG_IP_PNP_RARP is not set 389CONFIG_IP_PNP_RARP=y
294# CONFIG_NET_IPIP is not set 390# CONFIG_NET_IPIP is not set
295# CONFIG_NET_IPGRE is not set 391# CONFIG_NET_IPGRE is not set
296# CONFIG_IP_MROUTE is not set 392# CONFIG_IP_MROUTE is not set
@@ -301,110 +397,25 @@ CONFIG_IP_PNP_BOOTP=y
301# CONFIG_INET_IPCOMP is not set 397# CONFIG_INET_IPCOMP is not set
302# CONFIG_INET_XFRM_TUNNEL is not set 398# CONFIG_INET_XFRM_TUNNEL is not set
303# CONFIG_INET_TUNNEL is not set 399# CONFIG_INET_TUNNEL is not set
304CONFIG_INET_XFRM_MODE_TRANSPORT=m 400# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
305CONFIG_INET_XFRM_MODE_TUNNEL=m 401# CONFIG_INET_XFRM_MODE_TUNNEL is not set
306CONFIG_INET_XFRM_MODE_BEET=m 402# CONFIG_INET_XFRM_MODE_BEET is not set
307CONFIG_INET_DIAG=y 403CONFIG_INET_LRO=y
308CONFIG_INET_TCP_DIAG=y 404# CONFIG_INET_DIAG is not set
309# CONFIG_TCP_CONG_ADVANCED is not set 405# CONFIG_TCP_CONG_ADVANCED is not set
310CONFIG_TCP_CONG_CUBIC=y 406CONFIG_TCP_CONG_CUBIC=y
311CONFIG_DEFAULT_TCP_CONG="cubic" 407CONFIG_DEFAULT_TCP_CONG="cubic"
312CONFIG_TCP_MD5SIG=y 408# CONFIG_TCP_MD5SIG is not set
313
314#
315# IP: Virtual Server Configuration
316#
317# CONFIG_IP_VS is not set
318# CONFIG_IPV6 is not set 409# CONFIG_IPV6 is not set
319# CONFIG_INET6_XFRM_TUNNEL is not set 410# CONFIG_NETWORK_SECMARK is not set
320# CONFIG_INET6_TUNNEL is not set 411# CONFIG_NETFILTER is not set
321CONFIG_NETWORK_SECMARK=y
322CONFIG_NETFILTER=y
323# CONFIG_NETFILTER_DEBUG is not set
324
325#
326# Core Netfilter Configuration
327#
328CONFIG_NETFILTER_NETLINK=m
329CONFIG_NETFILTER_NETLINK_QUEUE=m
330CONFIG_NETFILTER_NETLINK_LOG=m
331CONFIG_NF_CONNTRACK_ENABLED=m
332CONFIG_NF_CONNTRACK_SUPPORT=y
333# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set
334CONFIG_NF_CONNTRACK=m
335CONFIG_NF_CT_ACCT=y
336CONFIG_NF_CONNTRACK_MARK=y
337CONFIG_NF_CONNTRACK_SECMARK=y
338CONFIG_NF_CONNTRACK_EVENTS=y
339CONFIG_NF_CT_PROTO_GRE=m
340CONFIG_NF_CT_PROTO_SCTP=m
341CONFIG_NF_CONNTRACK_AMANDA=m
342CONFIG_NF_CONNTRACK_FTP=m
343CONFIG_NF_CONNTRACK_H323=m
344CONFIG_NF_CONNTRACK_IRC=m
345# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
346CONFIG_NF_CONNTRACK_PPTP=m
347CONFIG_NF_CONNTRACK_SANE=m
348CONFIG_NF_CONNTRACK_SIP=m
349CONFIG_NF_CONNTRACK_TFTP=m
350CONFIG_NF_CT_NETLINK=m
351CONFIG_NETFILTER_XTABLES=m
352CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
353CONFIG_NETFILTER_XT_TARGET_MARK=m
354CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
355CONFIG_NETFILTER_XT_TARGET_NFLOG=m
356CONFIG_NETFILTER_XT_TARGET_SECMARK=m
357CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
358CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
359CONFIG_NETFILTER_XT_MATCH_COMMENT=m
360CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
361CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
362CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
363CONFIG_NETFILTER_XT_MATCH_DCCP=m
364CONFIG_NETFILTER_XT_MATCH_DSCP=m
365CONFIG_NETFILTER_XT_MATCH_ESP=m
366CONFIG_NETFILTER_XT_MATCH_HELPER=m
367CONFIG_NETFILTER_XT_MATCH_LENGTH=m
368CONFIG_NETFILTER_XT_MATCH_LIMIT=m
369CONFIG_NETFILTER_XT_MATCH_MAC=m
370CONFIG_NETFILTER_XT_MATCH_MARK=m
371CONFIG_NETFILTER_XT_MATCH_POLICY=m
372CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
373CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
374CONFIG_NETFILTER_XT_MATCH_QUOTA=m
375CONFIG_NETFILTER_XT_MATCH_REALM=m
376CONFIG_NETFILTER_XT_MATCH_SCTP=m
377CONFIG_NETFILTER_XT_MATCH_STATE=m
378CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
379CONFIG_NETFILTER_XT_MATCH_STRING=m
380CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
381CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
382
383#
384# IP: Netfilter Configuration
385#
386CONFIG_NF_CONNTRACK_IPV4=m
387CONFIG_NF_CONNTRACK_PROC_COMPAT=y
388# CONFIG_IP_NF_QUEUE is not set
389# CONFIG_IP_NF_IPTABLES is not set
390# CONFIG_IP_NF_ARPTABLES is not set
391
392#
393# DCCP Configuration (EXPERIMENTAL)
394#
395# CONFIG_IP_DCCP is not set 412# CONFIG_IP_DCCP is not set
396
397#
398# SCTP Configuration (EXPERIMENTAL)
399#
400# CONFIG_IP_SCTP is not set 413# CONFIG_IP_SCTP is not set
401 414# CONFIG_RDS is not set
402#
403# TIPC Configuration (EXPERIMENTAL)
404#
405# CONFIG_TIPC is not set 415# CONFIG_TIPC is not set
406# CONFIG_ATM is not set 416# CONFIG_ATM is not set
407# CONFIG_BRIDGE is not set 417# CONFIG_BRIDGE is not set
418# CONFIG_NET_DSA is not set
408# CONFIG_VLAN_8021Q is not set 419# CONFIG_VLAN_8021Q is not set
409# CONFIG_DECNET is not set 420# CONFIG_DECNET is not set
410# CONFIG_LLC2 is not set 421# CONFIG_LLC2 is not set
@@ -414,27 +425,24 @@ CONFIG_NF_CONNTRACK_PROC_COMPAT=y
414# CONFIG_LAPB is not set 425# CONFIG_LAPB is not set
415# CONFIG_ECONET is not set 426# CONFIG_ECONET is not set
416# CONFIG_WAN_ROUTER is not set 427# CONFIG_WAN_ROUTER is not set
417 428# CONFIG_PHONET is not set
418# 429# CONFIG_IEEE802154 is not set
419# QoS and/or fair queueing
420#
421# CONFIG_NET_SCHED is not set 430# CONFIG_NET_SCHED is not set
422CONFIG_NET_CLS_ROUTE=y 431# CONFIG_DCB is not set
423 432
424# 433#
425# Network testing 434# Network testing
426# 435#
427# CONFIG_NET_PKTGEN is not set 436# CONFIG_NET_PKTGEN is not set
428# CONFIG_HAMRADIO is not set 437# CONFIG_HAMRADIO is not set
438# CONFIG_CAN is not set
429# CONFIG_IRDA is not set 439# CONFIG_IRDA is not set
430# CONFIG_BT is not set 440# CONFIG_BT is not set
431CONFIG_IEEE80211=m 441# CONFIG_AF_RXRPC is not set
432# CONFIG_IEEE80211_DEBUG is not set 442# CONFIG_WIRELESS is not set
433CONFIG_IEEE80211_CRYPT_WEP=m 443# CONFIG_WIMAX is not set
434CONFIG_IEEE80211_CRYPT_CCMP=m 444# CONFIG_RFKILL is not set
435CONFIG_IEEE80211_SOFTMAC=m 445# CONFIG_NET_9P is not set
436# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
437CONFIG_WIRELESS_EXT=y
438 446
439# 447#
440# Device Drivers 448# Device Drivers
@@ -443,25 +451,25 @@ CONFIG_WIRELESS_EXT=y
443# 451#
444# Generic Driver Options 452# Generic Driver Options
445# 453#
454CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
455# CONFIG_DEVTMPFS is not set
446CONFIG_STANDALONE=y 456CONFIG_STANDALONE=y
447CONFIG_PREVENT_FIRMWARE_BUILD=y 457CONFIG_PREVENT_FIRMWARE_BUILD=y
448CONFIG_FW_LOADER=m 458CONFIG_FW_LOADER=y
459CONFIG_FIRMWARE_IN_KERNEL=y
460CONFIG_EXTRA_FIRMWARE=""
461# CONFIG_DEBUG_DRIVER is not set
462# CONFIG_DEBUG_DEVRES is not set
449# CONFIG_SYS_HYPERVISOR is not set 463# CONFIG_SYS_HYPERVISOR is not set
450 464# CONFIG_CONNECTOR is not set
451#
452# Connector - unified userspace <-> kernelspace linker
453#
454CONFIG_CONNECTOR=m
455
456#
457# Memory Technology Devices (MTD)
458#
459CONFIG_MTD=y 465CONFIG_MTD=y
460# CONFIG_MTD_DEBUG is not set 466# CONFIG_MTD_DEBUG is not set
467# CONFIG_MTD_TESTS is not set
461# CONFIG_MTD_CONCAT is not set 468# CONFIG_MTD_CONCAT is not set
462CONFIG_MTD_PARTITIONS=y 469CONFIG_MTD_PARTITIONS=y
463# CONFIG_MTD_REDBOOT_PARTS is not set 470# CONFIG_MTD_REDBOOT_PARTS is not set
464# CONFIG_MTD_CMDLINE_PARTS is not set 471CONFIG_MTD_CMDLINE_PARTS=y
472# CONFIG_MTD_AR7_PARTS is not set
465 473
466# 474#
467# User Modules And Translation Layers 475# User Modules And Translation Layers
@@ -474,6 +482,7 @@ CONFIG_MTD_BLOCK=y
474# CONFIG_INFTL is not set 482# CONFIG_INFTL is not set
475# CONFIG_RFD_FTL is not set 483# CONFIG_RFD_FTL is not set
476# CONFIG_SSFDC is not set 484# CONFIG_SSFDC is not set
485# CONFIG_MTD_OOPS is not set
477 486
478# 487#
479# RAM/ROM/Flash chip drivers 488# RAM/ROM/Flash chip drivers
@@ -499,14 +508,14 @@ CONFIG_MTD_CFI_UTIL=y
499# CONFIG_MTD_RAM is not set 508# CONFIG_MTD_RAM is not set
500# CONFIG_MTD_ROM is not set 509# CONFIG_MTD_ROM is not set
501# CONFIG_MTD_ABSENT is not set 510# CONFIG_MTD_ABSENT is not set
502# CONFIG_MTD_OBSOLETE_CHIPS is not set
503 511
504# 512#
505# Mapping drivers for chip access 513# Mapping drivers for chip access
506# 514#
507# CONFIG_MTD_COMPLEX_MAPPINGS is not set 515# CONFIG_MTD_COMPLEX_MAPPINGS is not set
508# CONFIG_MTD_PHYSMAP is not set 516CONFIG_MTD_PHYSMAP=y
509CONFIG_MTD_ALCHEMY=y 517# CONFIG_MTD_PHYSMAP_COMPAT is not set
518# CONFIG_MTD_INTEL_VR_NOR is not set
510# CONFIG_MTD_PLATRAM is not set 519# CONFIG_MTD_PLATRAM is not set
511 520
512# 521#
@@ -524,152 +533,152 @@ CONFIG_MTD_ALCHEMY=y
524# CONFIG_MTD_DOC2000 is not set 533# CONFIG_MTD_DOC2000 is not set
525# CONFIG_MTD_DOC2001 is not set 534# CONFIG_MTD_DOC2001 is not set
526# CONFIG_MTD_DOC2001PLUS is not set 535# CONFIG_MTD_DOC2001PLUS is not set
527
528#
529# NAND Flash Device Drivers
530#
531# CONFIG_MTD_NAND is not set 536# CONFIG_MTD_NAND is not set
532
533#
534# OneNAND Flash Device Drivers
535#
536# CONFIG_MTD_ONENAND is not set 537# CONFIG_MTD_ONENAND is not set
537 538
538# 539#
539# Parallel port support 540# LPDDR flash memory drivers
540#
541# CONFIG_PARPORT is not set
542
543#
544# Plug and Play support
545# 541#
546# CONFIG_PNPACPI is not set 542# CONFIG_MTD_LPDDR is not set
547 543
548# 544#
549# Block devices 545# UBI - Unsorted block images
550# 546#
547# CONFIG_MTD_UBI is not set
548# CONFIG_PARPORT is not set
549CONFIG_BLK_DEV=y
551# CONFIG_BLK_CPQ_DA is not set 550# CONFIG_BLK_CPQ_DA is not set
552# CONFIG_BLK_CPQ_CISS_DA is not set 551# CONFIG_BLK_CPQ_CISS_DA is not set
553# CONFIG_BLK_DEV_DAC960 is not set 552# CONFIG_BLK_DEV_DAC960 is not set
554# CONFIG_BLK_DEV_UMEM is not set 553# CONFIG_BLK_DEV_UMEM is not set
555# CONFIG_BLK_DEV_COW_COMMON is not set 554# CONFIG_BLK_DEV_COW_COMMON is not set
556CONFIG_BLK_DEV_LOOP=y 555# CONFIG_BLK_DEV_LOOP is not set
557# CONFIG_BLK_DEV_CRYPTOLOOP is not set 556
557#
558# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
559#
558# CONFIG_BLK_DEV_NBD is not set 560# CONFIG_BLK_DEV_NBD is not set
559# CONFIG_BLK_DEV_SX8 is not set 561# CONFIG_BLK_DEV_SX8 is not set
560# CONFIG_BLK_DEV_UB is not set 562# CONFIG_BLK_DEV_UB is not set
561# CONFIG_BLK_DEV_RAM is not set 563# CONFIG_BLK_DEV_RAM is not set
562# CONFIG_BLK_DEV_INITRD is not set 564# CONFIG_CDROM_PKTCDVD is not set
563CONFIG_CDROM_PKTCDVD=m 565# CONFIG_ATA_OVER_ETH is not set
564CONFIG_CDROM_PKTCDVD_BUFFERS=8 566# CONFIG_BLK_DEV_HD is not set
565# CONFIG_CDROM_PKTCDVD_WCACHE is not set 567# CONFIG_MISC_DEVICES is not set
566CONFIG_ATA_OVER_ETH=m 568CONFIG_HAVE_IDE=y
567
568#
569# Misc devices
570#
571CONFIG_SGI_IOC4=m
572# CONFIG_TIFM_CORE is not set
573
574#
575# ATA/ATAPI/MFM/RLL support
576#
577CONFIG_IDE=y 569CONFIG_IDE=y
578CONFIG_IDE_MAX_HWIFS=4
579CONFIG_BLK_DEV_IDE=y
580 570
581# 571#
582# Please see Documentation/ide.txt for help/info on IDE drives 572# Please see Documentation/ide/ide.txt for help/info on IDE drives
583# 573#
574CONFIG_IDE_XFER_MODE=y
584# CONFIG_BLK_DEV_IDE_SATA is not set 575# CONFIG_BLK_DEV_IDE_SATA is not set
585CONFIG_BLK_DEV_IDEDISK=y 576CONFIG_IDE_GD=y
586# CONFIG_IDEDISK_MULTI_MODE is not set 577CONFIG_IDE_GD_ATA=y
587CONFIG_BLK_DEV_IDECS=m 578# CONFIG_IDE_GD_ATAPI is not set
588# CONFIG_BLK_DEV_DELKIN is not set 579CONFIG_BLK_DEV_IDECS=y
589# CONFIG_BLK_DEV_IDECD is not set 580# CONFIG_BLK_DEV_IDECD is not set
590# CONFIG_BLK_DEV_IDETAPE is not set 581# CONFIG_BLK_DEV_IDETAPE is not set
591# CONFIG_BLK_DEV_IDEFLOPPY is not set
592# CONFIG_IDE_TASK_IOCTL is not set 582# CONFIG_IDE_TASK_IOCTL is not set
583CONFIG_IDE_PROC_FS=y
593 584
594# 585#
595# IDE chipset support/bugfixes 586# IDE chipset support/bugfixes
596# 587#
597# CONFIG_IDE_GENERIC is not set 588# CONFIG_IDE_GENERIC is not set
598# CONFIG_BLK_DEV_IDEPCI is not set 589# CONFIG_BLK_DEV_PLATFORM is not set
599# CONFIG_IDE_ARM is not set 590CONFIG_BLK_DEV_IDEDMA_SFF=y
600# CONFIG_BLK_DEV_IDEDMA is not set 591
601# CONFIG_IDEDMA_AUTO is not set 592#
602# CONFIG_BLK_DEV_HD is not set 593# PCI IDE chipsets support
594#
595CONFIG_BLK_DEV_IDEPCI=y
596# CONFIG_IDEPCI_PCIBUS_ORDER is not set
597# CONFIG_BLK_DEV_OFFBOARD is not set
598# CONFIG_BLK_DEV_GENERIC is not set
599# CONFIG_BLK_DEV_OPTI621 is not set
600CONFIG_BLK_DEV_IDEDMA_PCI=y
601# CONFIG_BLK_DEV_AEC62XX is not set
602# CONFIG_BLK_DEV_ALI15X3 is not set
603# CONFIG_BLK_DEV_AMD74XX is not set
604# CONFIG_BLK_DEV_CMD64X is not set
605# CONFIG_BLK_DEV_TRIFLEX is not set
606# CONFIG_BLK_DEV_CS5520 is not set
607# CONFIG_BLK_DEV_CS5530 is not set
608CONFIG_BLK_DEV_HPT366=y
609# CONFIG_BLK_DEV_JMICRON is not set
610# CONFIG_BLK_DEV_SC1200 is not set
611# CONFIG_BLK_DEV_PIIX is not set
612# CONFIG_BLK_DEV_IT8172 is not set
613# CONFIG_BLK_DEV_IT8213 is not set
614# CONFIG_BLK_DEV_IT821X is not set
615# CONFIG_BLK_DEV_NS87415 is not set
616# CONFIG_BLK_DEV_PDC202XX_OLD is not set
617# CONFIG_BLK_DEV_PDC202XX_NEW is not set
618# CONFIG_BLK_DEV_SVWKS is not set
619# CONFIG_BLK_DEV_SIIMAGE is not set
620# CONFIG_BLK_DEV_SLC90E66 is not set
621# CONFIG_BLK_DEV_TRM290 is not set
622# CONFIG_BLK_DEV_VIA82CXXX is not set
623# CONFIG_BLK_DEV_TC86C001 is not set
624CONFIG_BLK_DEV_IDEDMA=y
603 625
604# 626#
605# SCSI device support 627# SCSI device support
606# 628#
607CONFIG_RAID_ATTRS=m 629# CONFIG_RAID_ATTRS is not set
608# CONFIG_SCSI is not set 630# CONFIG_SCSI is not set
631# CONFIG_SCSI_DMA is not set
609# CONFIG_SCSI_NETLINK is not set 632# CONFIG_SCSI_NETLINK is not set
610
611#
612# Serial ATA (prod) and Parallel ATA (experimental) drivers
613#
614# CONFIG_ATA is not set 633# CONFIG_ATA is not set
615
616#
617# Multi-device support (RAID and LVM)
618#
619# CONFIG_MD is not set 634# CONFIG_MD is not set
620
621#
622# Fusion MPT device support
623#
624# CONFIG_FUSION is not set 635# CONFIG_FUSION is not set
625 636
626# 637#
627# IEEE 1394 (FireWire) support 638# IEEE 1394 (FireWire) support
628# 639#
629# CONFIG_IEEE1394 is not set
630 640
631# 641#
632# I2O device support 642# You can enable one or both FireWire driver stacks.
633# 643#
634# CONFIG_I2O is not set
635 644
636# 645#
637# Network device support 646# The newer stack is recommended.
638# 647#
648# CONFIG_FIREWIRE is not set
649# CONFIG_IEEE1394 is not set
650# CONFIG_I2O is not set
639CONFIG_NETDEVICES=y 651CONFIG_NETDEVICES=y
640# CONFIG_DUMMY is not set 652# CONFIG_DUMMY is not set
641# CONFIG_BONDING is not set 653# CONFIG_BONDING is not set
654# CONFIG_MACVLAN is not set
642# CONFIG_EQUALIZER is not set 655# CONFIG_EQUALIZER is not set
643# CONFIG_TUN is not set 656# CONFIG_TUN is not set
644 657# CONFIG_VETH is not set
645#
646# ARCnet devices
647#
648# CONFIG_ARCNET is not set 658# CONFIG_ARCNET is not set
649
650#
651# PHY device support
652#
653CONFIG_PHYLIB=y 659CONFIG_PHYLIB=y
654 660
655# 661#
656# MII PHY device drivers 662# MII PHY device drivers
657# 663#
658CONFIG_MARVELL_PHY=m 664CONFIG_MARVELL_PHY=y
659CONFIG_DAVICOM_PHY=m 665CONFIG_DAVICOM_PHY=y
660CONFIG_QSEMI_PHY=m 666CONFIG_QSEMI_PHY=y
661CONFIG_LXT_PHY=m 667CONFIG_LXT_PHY=y
662CONFIG_CICADA_PHY=m 668CONFIG_CICADA_PHY=y
663CONFIG_VITESSE_PHY=m 669CONFIG_VITESSE_PHY=y
664CONFIG_SMSC_PHY=m 670CONFIG_SMSC_PHY=y
665# CONFIG_BROADCOM_PHY is not set 671CONFIG_BROADCOM_PHY=y
672CONFIG_ICPLUS_PHY=y
673CONFIG_REALTEK_PHY=y
674CONFIG_NATIONAL_PHY=y
675CONFIG_STE10XP=y
676CONFIG_LSI_ET1011C_PHY=y
666# CONFIG_FIXED_PHY is not set 677# CONFIG_FIXED_PHY is not set
667 678# CONFIG_MDIO_BITBANG is not set
668#
669# Ethernet (10 or 100Mbit)
670#
671CONFIG_NET_ETHERNET=y 679CONFIG_NET_ETHERNET=y
672# CONFIG_MII is not set 680CONFIG_MII=y
681# CONFIG_AX88796 is not set
673CONFIG_MIPS_AU1X00_ENET=y 682CONFIG_MIPS_AU1X00_ENET=y
674# CONFIG_HAPPYMEAL is not set 683# CONFIG_HAPPYMEAL is not set
675# CONFIG_SUNGEM is not set 684# CONFIG_SUNGEM is not set
@@ -677,88 +686,51 @@ CONFIG_MIPS_AU1X00_ENET=y
677# CONFIG_NET_VENDOR_3COM is not set 686# CONFIG_NET_VENDOR_3COM is not set
678# CONFIG_SMC91X is not set 687# CONFIG_SMC91X is not set
679# CONFIG_DM9000 is not set 688# CONFIG_DM9000 is not set
680 689# CONFIG_ETHOC is not set
681# 690# CONFIG_SMSC911X is not set
682# Tulip family network device support 691# CONFIG_DNET is not set
683#
684# CONFIG_NET_TULIP is not set 692# CONFIG_NET_TULIP is not set
685# CONFIG_HP100 is not set 693# CONFIG_HP100 is not set
694# CONFIG_IBM_NEW_EMAC_ZMII is not set
695# CONFIG_IBM_NEW_EMAC_RGMII is not set
696# CONFIG_IBM_NEW_EMAC_TAH is not set
697# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
698# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
699# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
700# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
686# CONFIG_NET_PCI is not set 701# CONFIG_NET_PCI is not set
687 702# CONFIG_B44 is not set
688# 703# CONFIG_KS8842 is not set
689# Ethernet (1000 Mbit) 704# CONFIG_KS8851_MLL is not set
690# 705# CONFIG_ATL2 is not set
691# CONFIG_ACENIC is not set 706# CONFIG_NETDEV_1000 is not set
692# CONFIG_DL2K is not set 707# CONFIG_NETDEV_10000 is not set
693# CONFIG_E1000 is not set
694# CONFIG_NS83820 is not set
695# CONFIG_HAMACHI is not set
696# CONFIG_YELLOWFIN is not set
697# CONFIG_R8169 is not set
698# CONFIG_SIS190 is not set
699# CONFIG_SKGE is not set
700# CONFIG_SKY2 is not set
701# CONFIG_SK98LIN is not set
702# CONFIG_TIGON3 is not set
703# CONFIG_BNX2 is not set
704CONFIG_QLA3XXX=m
705# CONFIG_ATL1 is not set
706
707#
708# Ethernet (10000 Mbit)
709#
710# CONFIG_CHELSIO_T1 is not set
711CONFIG_CHELSIO_T3=m
712# CONFIG_IXGB is not set
713# CONFIG_S2IO is not set
714# CONFIG_MYRI10GE is not set
715CONFIG_NETXEN_NIC=m
716
717#
718# Token Ring devices
719#
720# CONFIG_TR is not set 708# CONFIG_TR is not set
709# CONFIG_WLAN is not set
721 710
722# 711#
723# Wireless LAN (non-hamradio) 712# Enable WiMAX (Networking options) to see the WiMAX drivers
724# 713#
725# CONFIG_NET_RADIO is not set
726 714
727# 715#
728# PCMCIA network device support 716# USB Network Adapters
729# 717#
718# CONFIG_USB_CATC is not set
719# CONFIG_USB_KAWETH is not set
720# CONFIG_USB_PEGASUS is not set
721# CONFIG_USB_RTL8150 is not set
722# CONFIG_USB_USBNET is not set
730# CONFIG_NET_PCMCIA is not set 723# CONFIG_NET_PCMCIA is not set
731
732#
733# Wan interfaces
734#
735# CONFIG_WAN is not set 724# CONFIG_WAN is not set
736# CONFIG_FDDI is not set 725# CONFIG_FDDI is not set
737# CONFIG_HIPPI is not set 726# CONFIG_HIPPI is not set
738CONFIG_PPP=m 727# CONFIG_PPP is not set
739CONFIG_PPP_MULTILINK=y
740# CONFIG_PPP_FILTER is not set
741CONFIG_PPP_ASYNC=m
742# CONFIG_PPP_SYNC_TTY is not set
743CONFIG_PPP_DEFLATE=m
744# CONFIG_PPP_BSDCOMP is not set
745CONFIG_PPP_MPPE=m
746CONFIG_PPPOE=m
747# CONFIG_SLIP is not set 728# CONFIG_SLIP is not set
748CONFIG_SLHC=m
749# CONFIG_SHAPER is not set
750# CONFIG_NETCONSOLE is not set 729# CONFIG_NETCONSOLE is not set
751# CONFIG_NETPOLL is not set 730# CONFIG_NETPOLL is not set
752# CONFIG_NET_POLL_CONTROLLER is not set 731# CONFIG_NET_POLL_CONTROLLER is not set
753 732# CONFIG_VMXNET3 is not set
754#
755# ISDN subsystem
756#
757# CONFIG_ISDN is not set 733# CONFIG_ISDN is not set
758
759#
760# Telephony Support
761#
762# CONFIG_PHONE is not set 734# CONFIG_PHONE is not set
763 735
764# 736#
@@ -766,16 +738,14 @@ CONFIG_SLHC=m
766# 738#
767CONFIG_INPUT=y 739CONFIG_INPUT=y
768# CONFIG_INPUT_FF_MEMLESS is not set 740# CONFIG_INPUT_FF_MEMLESS is not set
741# CONFIG_INPUT_POLLDEV is not set
742# CONFIG_INPUT_SPARSEKMAP is not set
769 743
770# 744#
771# Userland interfaces 745# Userland interfaces
772# 746#
773CONFIG_INPUT_MOUSEDEV=y 747# CONFIG_INPUT_MOUSEDEV is not set
774CONFIG_INPUT_MOUSEDEV_PSAUX=y
775CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
776CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
777# CONFIG_INPUT_JOYDEV is not set 748# CONFIG_INPUT_JOYDEV is not set
778# CONFIG_INPUT_TSDEV is not set
779CONFIG_INPUT_EVDEV=y 749CONFIG_INPUT_EVDEV=y
780# CONFIG_INPUT_EVBUG is not set 750# CONFIG_INPUT_EVBUG is not set
781 751
@@ -785,33 +755,34 @@ CONFIG_INPUT_EVDEV=y
785# CONFIG_INPUT_KEYBOARD is not set 755# CONFIG_INPUT_KEYBOARD is not set
786# CONFIG_INPUT_MOUSE is not set 756# CONFIG_INPUT_MOUSE is not set
787# CONFIG_INPUT_JOYSTICK is not set 757# CONFIG_INPUT_JOYSTICK is not set
758# CONFIG_INPUT_TABLET is not set
788# CONFIG_INPUT_TOUCHSCREEN is not set 759# CONFIG_INPUT_TOUCHSCREEN is not set
789# CONFIG_INPUT_MISC is not set 760# CONFIG_INPUT_MISC is not set
790 761
791# 762#
792# Hardware I/O ports 763# Hardware I/O ports
793# 764#
794CONFIG_SERIO=y 765# CONFIG_SERIO is not set
795# CONFIG_SERIO_I8042 is not set
796CONFIG_SERIO_SERPORT=y
797# CONFIG_SERIO_PCIPS2 is not set
798# CONFIG_SERIO_LIBPS2 is not set
799CONFIG_SERIO_RAW=m
800# CONFIG_GAMEPORT is not set 766# CONFIG_GAMEPORT is not set
801 767
802# 768#
803# Character devices 769# Character devices
804# 770#
805# CONFIG_VT is not set 771CONFIG_VT=y
772CONFIG_CONSOLE_TRANSLATIONS=y
773CONFIG_VT_CONSOLE=y
774CONFIG_HW_CONSOLE=y
775# CONFIG_VT_HW_CONSOLE_BINDING is not set
776CONFIG_DEVKMEM=y
806# CONFIG_SERIAL_NONSTANDARD is not set 777# CONFIG_SERIAL_NONSTANDARD is not set
807# CONFIG_AU1X00_GPIO is not set 778# CONFIG_NOZOMI is not set
808 779
809# 780#
810# Serial drivers 781# Serial drivers
811# 782#
812CONFIG_SERIAL_8250=y 783CONFIG_SERIAL_8250=y
813CONFIG_SERIAL_8250_CONSOLE=y 784CONFIG_SERIAL_8250_CONSOLE=y
814CONFIG_SERIAL_8250_PCI=y 785# CONFIG_SERIAL_8250_PCI is not set
815# CONFIG_SERIAL_8250_CS is not set 786# CONFIG_SERIAL_8250_CS is not set
816CONFIG_SERIAL_8250_NR_UARTS=4 787CONFIG_SERIAL_8250_NR_UARTS=4
817CONFIG_SERIAL_8250_RUNTIME_UARTS=4 788CONFIG_SERIAL_8250_RUNTIME_UARTS=4
@@ -825,301 +796,143 @@ CONFIG_SERIAL_CORE=y
825CONFIG_SERIAL_CORE_CONSOLE=y 796CONFIG_SERIAL_CORE_CONSOLE=y
826# CONFIG_SERIAL_JSM is not set 797# CONFIG_SERIAL_JSM is not set
827CONFIG_UNIX98_PTYS=y 798CONFIG_UNIX98_PTYS=y
828CONFIG_LEGACY_PTYS=y 799# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
829CONFIG_LEGACY_PTY_COUNT=256 800# CONFIG_LEGACY_PTYS is not set
830
831#
832# IPMI
833#
834# CONFIG_IPMI_HANDLER is not set 801# CONFIG_IPMI_HANDLER is not set
835
836#
837# Watchdog Cards
838#
839# CONFIG_WATCHDOG is not set
840# CONFIG_HW_RANDOM is not set 802# CONFIG_HW_RANDOM is not set
841# CONFIG_RTC is not set
842# CONFIG_GEN_RTC is not set
843# CONFIG_DTLK is not set
844# CONFIG_R3964 is not set 803# CONFIG_R3964 is not set
845# CONFIG_APPLICOM is not set 804# CONFIG_APPLICOM is not set
846# CONFIG_DRM is not set
847 805
848# 806#
849# PCMCIA character devices 807# PCMCIA character devices
850# 808#
851CONFIG_SYNCLINK_CS=m 809# CONFIG_SYNCLINK_CS is not set
852# CONFIG_CARDMAN_4000 is not set 810# CONFIG_CARDMAN_4000 is not set
853# CONFIG_CARDMAN_4040 is not set 811# CONFIG_CARDMAN_4040 is not set
812# CONFIG_IPWIRELESS is not set
854# CONFIG_RAW_DRIVER is not set 813# CONFIG_RAW_DRIVER is not set
855
856#
857# TPM devices
858#
859# CONFIG_TCG_TPM is not set 814# CONFIG_TCG_TPM is not set
860 815CONFIG_DEVPORT=y
861#
862# I2C support
863#
864# CONFIG_I2C is not set 816# CONFIG_I2C is not set
865
866#
867# SPI support
868#
869# CONFIG_SPI is not set 817# CONFIG_SPI is not set
870# CONFIG_SPI_MASTER is not set
871 818
872# 819#
873# Dallas's 1-wire bus 820# PPS support
874# 821#
822# CONFIG_PPS is not set
823CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
824# CONFIG_GPIOLIB is not set
875# CONFIG_W1 is not set 825# CONFIG_W1 is not set
876 826# CONFIG_POWER_SUPPLY is not set
877#
878# Hardware Monitoring support
879#
880# CONFIG_HWMON is not set 827# CONFIG_HWMON is not set
881# CONFIG_HWMON_VID is not set 828# CONFIG_THERMAL is not set
829# CONFIG_WATCHDOG is not set
830CONFIG_SSB_POSSIBLE=y
882 831
883# 832#
884# Multimedia devices 833# Sonics Silicon Backplane
885# 834#
886# CONFIG_VIDEO_DEV is not set 835# CONFIG_SSB is not set
887 836
888# 837#
889# Digital Video Broadcasting Devices 838# Multifunction device drivers
890# 839#
891# CONFIG_DVB is not set 840# CONFIG_MFD_CORE is not set
892# CONFIG_USB_DABUSB is not set 841# CONFIG_MFD_SM501 is not set
842# CONFIG_HTC_PASIC3 is not set
843# CONFIG_MFD_TMIO is not set
844# CONFIG_REGULATOR is not set
845# CONFIG_MEDIA_SUPPORT is not set
893 846
894# 847#
895# Graphics support 848# Graphics support
896# 849#
897# CONFIG_FIRMWARE_EDID is not set 850# CONFIG_VGA_ARB is not set
851# CONFIG_DRM is not set
852# CONFIG_VGASTATE is not set
853# CONFIG_VIDEO_OUTPUT_CONTROL is not set
898# CONFIG_FB is not set 854# CONFIG_FB is not set
899# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 855# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
900 856
901# 857#
902# Sound 858# Display device support
903# 859#
904CONFIG_SOUND=y 860# CONFIG_DISPLAY_SUPPORT is not set
905 861
906# 862#
907# Advanced Linux Sound Architecture 863# Console display driver support
908#
909CONFIG_SND=m
910CONFIG_SND_TIMER=m
911CONFIG_SND_PCM=m
912CONFIG_SND_RAWMIDI=m
913CONFIG_SND_SEQUENCER=m
914CONFIG_SND_SEQ_DUMMY=m
915CONFIG_SND_OSSEMUL=y
916CONFIG_SND_MIXER_OSS=m
917CONFIG_SND_PCM_OSS=m
918CONFIG_SND_PCM_OSS_PLUGINS=y
919CONFIG_SND_SEQUENCER_OSS=y
920# CONFIG_SND_DYNAMIC_MINORS is not set
921CONFIG_SND_SUPPORT_OLD_API=y
922CONFIG_SND_VERBOSE_PROCFS=y
923# CONFIG_SND_VERBOSE_PRINTK is not set
924# CONFIG_SND_DEBUG is not set
925
926#
927# Generic devices
928#
929CONFIG_SND_AC97_CODEC=m
930# CONFIG_SND_DUMMY is not set
931CONFIG_SND_VIRMIDI=m
932CONFIG_SND_MTPAV=m
933# CONFIG_SND_SERIAL_U16550 is not set
934# CONFIG_SND_MPU401 is not set
935
936#
937# PCI devices
938#
939# CONFIG_SND_AD1889 is not set
940# CONFIG_SND_ALS300 is not set
941# CONFIG_SND_ALI5451 is not set
942# CONFIG_SND_ATIIXP is not set
943# CONFIG_SND_ATIIXP_MODEM is not set
944# CONFIG_SND_AU8810 is not set
945# CONFIG_SND_AU8820 is not set
946# CONFIG_SND_AU8830 is not set
947# CONFIG_SND_AZT3328 is not set
948# CONFIG_SND_BT87X is not set
949# CONFIG_SND_CA0106 is not set
950# CONFIG_SND_CMIPCI is not set
951# CONFIG_SND_CS4281 is not set
952# CONFIG_SND_CS46XX is not set
953# CONFIG_SND_DARLA20 is not set
954# CONFIG_SND_GINA20 is not set
955# CONFIG_SND_LAYLA20 is not set
956# CONFIG_SND_DARLA24 is not set
957# CONFIG_SND_GINA24 is not set
958# CONFIG_SND_LAYLA24 is not set
959# CONFIG_SND_MONA is not set
960# CONFIG_SND_MIA is not set
961# CONFIG_SND_ECHO3G is not set
962# CONFIG_SND_INDIGO is not set
963# CONFIG_SND_INDIGOIO is not set
964# CONFIG_SND_INDIGODJ is not set
965# CONFIG_SND_EMU10K1 is not set
966# CONFIG_SND_EMU10K1X is not set
967# CONFIG_SND_ENS1370 is not set
968# CONFIG_SND_ENS1371 is not set
969# CONFIG_SND_ES1938 is not set
970# CONFIG_SND_ES1968 is not set
971# CONFIG_SND_FM801 is not set
972# CONFIG_SND_HDA_INTEL is not set
973# CONFIG_SND_HDSP is not set
974# CONFIG_SND_HDSPM is not set
975# CONFIG_SND_ICE1712 is not set
976# CONFIG_SND_ICE1724 is not set
977# CONFIG_SND_INTEL8X0 is not set
978# CONFIG_SND_INTEL8X0M is not set
979# CONFIG_SND_KORG1212 is not set
980# CONFIG_SND_MAESTRO3 is not set
981# CONFIG_SND_MIXART is not set
982# CONFIG_SND_NM256 is not set
983# CONFIG_SND_PCXHR is not set
984# CONFIG_SND_RIPTIDE is not set
985# CONFIG_SND_RME32 is not set
986# CONFIG_SND_RME96 is not set
987# CONFIG_SND_RME9652 is not set
988# CONFIG_SND_SONICVIBES is not set
989# CONFIG_SND_TRIDENT is not set
990# CONFIG_SND_VIA82XX is not set
991# CONFIG_SND_VIA82XX_MODEM is not set
992# CONFIG_SND_VX222 is not set
993# CONFIG_SND_YMFPCI is not set
994# CONFIG_SND_AC97_POWER_SAVE is not set
995
996#
997# ALSA MIPS devices
998#
999CONFIG_SND_AU1X00=m
1000
1001#
1002# USB devices
1003#
1004# CONFIG_SND_USB_AUDIO is not set
1005
1006#
1007# PCMCIA devices
1008#
1009# CONFIG_SND_VXPOCKET is not set
1010# CONFIG_SND_PDAUDIOCF is not set
1011
1012#
1013# SoC audio support
1014#
1015# CONFIG_SND_SOC is not set
1016
1017#
1018# Open Sound System
1019#
1020CONFIG_SOUND_PRIME=y
1021# CONFIG_OBSOLETE_OSS is not set
1022# CONFIG_SOUND_BT878 is not set
1023# CONFIG_SOUND_ICH is not set
1024# CONFIG_SOUND_TRIDENT is not set
1025# CONFIG_SOUND_MSNDCLAS is not set
1026# CONFIG_SOUND_MSNDPIN is not set
1027# CONFIG_SOUND_VIA82CXXX is not set
1028CONFIG_AC97_BUS=m
1029
1030#
1031# HID Devices
1032#
1033CONFIG_HID=y
1034# CONFIG_HID_DEBUG is not set
1035
1036#
1037# USB support
1038# 864#
865# CONFIG_VGA_CONSOLE is not set
866CONFIG_DUMMY_CONSOLE=y
867# CONFIG_SOUND is not set
868# CONFIG_HID_SUPPORT is not set
869CONFIG_USB_SUPPORT=y
1039CONFIG_USB_ARCH_HAS_HCD=y 870CONFIG_USB_ARCH_HAS_HCD=y
1040CONFIG_USB_ARCH_HAS_OHCI=y 871CONFIG_USB_ARCH_HAS_OHCI=y
1041CONFIG_USB_ARCH_HAS_EHCI=y 872CONFIG_USB_ARCH_HAS_EHCI=y
1042CONFIG_USB=y 873CONFIG_USB=y
1043# CONFIG_USB_DEBUG is not set 874# CONFIG_USB_DEBUG is not set
875# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1044 876
1045# 877#
1046# Miscellaneous USB options 878# Miscellaneous USB options
1047# 879#
1048# CONFIG_USB_DEVICEFS is not set 880# CONFIG_USB_DEVICEFS is not set
1049# CONFIG_USB_DYNAMIC_MINORS is not set 881# CONFIG_USB_DEVICE_CLASS is not set
882CONFIG_USB_DYNAMIC_MINORS=y
883CONFIG_USB_SUSPEND=y
1050# CONFIG_USB_OTG is not set 884# CONFIG_USB_OTG is not set
885# CONFIG_USB_OTG_WHITELIST is not set
886# CONFIG_USB_OTG_BLACKLIST_HUB is not set
887# CONFIG_USB_MON is not set
888# CONFIG_USB_WUSB is not set
889# CONFIG_USB_WUSB_CBAF is not set
1051 890
1052# 891#
1053# USB Host Controller Drivers 892# USB Host Controller Drivers
1054# 893#
894# CONFIG_USB_C67X00_HCD is not set
895# CONFIG_USB_XHCI_HCD is not set
1055# CONFIG_USB_EHCI_HCD is not set 896# CONFIG_USB_EHCI_HCD is not set
897# CONFIG_USB_OXU210HP_HCD is not set
1056# CONFIG_USB_ISP116X_HCD is not set 898# CONFIG_USB_ISP116X_HCD is not set
899# CONFIG_USB_ISP1760_HCD is not set
900# CONFIG_USB_ISP1362_HCD is not set
1057CONFIG_USB_OHCI_HCD=y 901CONFIG_USB_OHCI_HCD=y
1058# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 902# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1059# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set 903# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1060CONFIG_USB_OHCI_LITTLE_ENDIAN=y 904CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1061# CONFIG_USB_UHCI_HCD is not set 905# CONFIG_USB_UHCI_HCD is not set
1062# CONFIG_USB_SL811_HCD is not set 906# CONFIG_USB_SL811_HCD is not set
907# CONFIG_USB_R8A66597_HCD is not set
908# CONFIG_USB_WHCI_HCD is not set
909# CONFIG_USB_HWA_HCD is not set
1063 910
1064# 911#
1065# USB Device Class drivers 912# USB Device Class drivers
1066# 913#
1067# CONFIG_USB_ACM is not set 914# CONFIG_USB_ACM is not set
1068# CONFIG_USB_PRINTER is not set 915# CONFIG_USB_PRINTER is not set
916# CONFIG_USB_WDM is not set
917# CONFIG_USB_TMC is not set
1069 918
1070# 919#
1071# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 920# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1072# 921#
1073 922
1074# 923#
1075# may also be needed; see USB_STORAGE Help for more information 924# also be needed; see USB_STORAGE Help for more info
1076# 925#
1077# CONFIG_USB_LIBUSUAL is not set 926# CONFIG_USB_LIBUSUAL is not set
1078 927
1079# 928#
1080# USB Input Devices
1081#
1082CONFIG_USB_HID=y
1083# CONFIG_USB_HIDINPUT_POWERBOOK is not set
1084# CONFIG_HID_FF is not set
1085# CONFIG_USB_HIDDEV is not set
1086# CONFIG_USB_AIPTEK is not set
1087# CONFIG_USB_WACOM is not set
1088# CONFIG_USB_ACECAD is not set
1089# CONFIG_USB_KBTAB is not set
1090# CONFIG_USB_POWERMATE is not set
1091# CONFIG_USB_TOUCHSCREEN is not set
1092CONFIG_USB_YEALINK=m
1093# CONFIG_USB_XPAD is not set
1094# CONFIG_USB_ATI_REMOTE is not set
1095# CONFIG_USB_ATI_REMOTE2 is not set
1096# CONFIG_USB_KEYSPAN_REMOTE is not set
1097# CONFIG_USB_APPLETOUCH is not set
1098# CONFIG_USB_GTCO is not set
1099
1100#
1101# USB Imaging devices 929# USB Imaging devices
1102# 930#
1103# CONFIG_USB_MDC800 is not set 931# CONFIG_USB_MDC800 is not set
1104 932
1105# 933#
1106# USB Network Adapters
1107#
1108# CONFIG_USB_CATC is not set
1109# CONFIG_USB_KAWETH is not set
1110# CONFIG_USB_PEGASUS is not set
1111# CONFIG_USB_RTL8150 is not set
1112# CONFIG_USB_USBNET_MII is not set
1113# CONFIG_USB_USBNET is not set
1114CONFIG_USB_MON=y
1115
1116#
1117# USB port drivers 934# USB port drivers
1118# 935#
1119
1120#
1121# USB Serial Converter support
1122#
1123# CONFIG_USB_SERIAL is not set 936# CONFIG_USB_SERIAL is not set
1124 937
1125# 938#
@@ -1128,7 +941,7 @@ CONFIG_USB_MON=y
1128# CONFIG_USB_EMI62 is not set 941# CONFIG_USB_EMI62 is not set
1129# CONFIG_USB_EMI26 is not set 942# CONFIG_USB_EMI26 is not set
1130# CONFIG_USB_ADUTUX is not set 943# CONFIG_USB_ADUTUX is not set
1131# CONFIG_USB_AUERSWALD is not set 944# CONFIG_USB_SEVSEG is not set
1132# CONFIG_USB_RIO500 is not set 945# CONFIG_USB_RIO500 is not set
1133# CONFIG_USB_LEGOTOWER is not set 946# CONFIG_USB_LEGOTOWER is not set
1134# CONFIG_USB_LCD is not set 947# CONFIG_USB_LCD is not set
@@ -1136,112 +949,107 @@ CONFIG_USB_MON=y
1136# CONFIG_USB_LED is not set 949# CONFIG_USB_LED is not set
1137# CONFIG_USB_CYPRESS_CY7C63 is not set 950# CONFIG_USB_CYPRESS_CY7C63 is not set
1138# CONFIG_USB_CYTHERM is not set 951# CONFIG_USB_CYTHERM is not set
1139# CONFIG_USB_PHIDGET is not set
1140# CONFIG_USB_IDMOUSE is not set 952# CONFIG_USB_IDMOUSE is not set
1141# CONFIG_USB_FTDI_ELAN is not set 953# CONFIG_USB_FTDI_ELAN is not set
1142# CONFIG_USB_APPLEDISPLAY is not set 954# CONFIG_USB_APPLEDISPLAY is not set
1143CONFIG_USB_LD=m 955# CONFIG_USB_LD is not set
1144# CONFIG_USB_TRANCEVIBRATOR is not set 956# CONFIG_USB_TRANCEVIBRATOR is not set
1145 957# CONFIG_USB_IOWARRIOR is not set
1146# 958# CONFIG_USB_TEST is not set
1147# USB DSL modem support 959# CONFIG_USB_ISIGHTFW is not set
1148# 960# CONFIG_USB_VST is not set
1149
1150#
1151# USB Gadget Support
1152#
1153# CONFIG_USB_GADGET is not set 961# CONFIG_USB_GADGET is not set
1154 962
1155# 963#
1156# MMC/SD Card support 964# OTG and related infrastructure
1157# 965#
966# CONFIG_USB_GPIO_VBUS is not set
967# CONFIG_NOP_USB_XCEIV is not set
968# CONFIG_UWB is not set
1158# CONFIG_MMC is not set 969# CONFIG_MMC is not set
1159 970# CONFIG_MEMSTICK is not set
1160#
1161# LED devices
1162#
1163# CONFIG_NEW_LEDS is not set 971# CONFIG_NEW_LEDS is not set
1164 972# CONFIG_ACCESSIBILITY is not set
1165#
1166# LED drivers
1167#
1168
1169#
1170# LED Triggers
1171#
1172
1173#
1174# InfiniBand support
1175#
1176# CONFIG_INFINIBAND is not set 973# CONFIG_INFINIBAND is not set
974CONFIG_RTC_LIB=y
975CONFIG_RTC_CLASS=y
976CONFIG_RTC_HCTOSYS=y
977CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
978# CONFIG_RTC_DEBUG is not set
1177 979
1178# 980#
1179# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 981# RTC interfaces
1180#
1181
1182#
1183# Real Time Clock
1184# 982#
1185# CONFIG_RTC_CLASS is not set 983CONFIG_RTC_INTF_SYSFS=y
984CONFIG_RTC_INTF_PROC=y
985CONFIG_RTC_INTF_DEV=y
986# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
987# CONFIG_RTC_DRV_TEST is not set
1186 988
1187# 989#
1188# DMA Engine support 990# SPI RTC drivers
1189# 991#
1190# CONFIG_DMA_ENGINE is not set
1191 992
1192# 993#
1193# DMA Clients 994# Platform RTC drivers
1194# 995#
996# CONFIG_RTC_DRV_CMOS is not set
997# CONFIG_RTC_DRV_DS1286 is not set
998# CONFIG_RTC_DRV_DS1511 is not set
999# CONFIG_RTC_DRV_DS1553 is not set
1000# CONFIG_RTC_DRV_DS1742 is not set
1001# CONFIG_RTC_DRV_STK17TA8 is not set
1002# CONFIG_RTC_DRV_M48T86 is not set
1003# CONFIG_RTC_DRV_M48T35 is not set
1004# CONFIG_RTC_DRV_M48T59 is not set
1005# CONFIG_RTC_DRV_MSM6242 is not set
1006# CONFIG_RTC_DRV_BQ4802 is not set
1007# CONFIG_RTC_DRV_RP5C01 is not set
1008# CONFIG_RTC_DRV_V3020 is not set
1195 1009
1196# 1010#
1197# DMA Devices 1011# on-CPU RTC drivers
1198# 1012#
1013CONFIG_RTC_DRV_AU1XXX=y
1014# CONFIG_DMADEVICES is not set
1015# CONFIG_AUXDISPLAY is not set
1016# CONFIG_UIO is not set
1199 1017
1200# 1018#
1201# Auxiliary Display support 1019# TI VLYNQ
1202#
1203
1204#
1205# Virtualization
1206# 1020#
1021# CONFIG_STAGING is not set
1207 1022
1208# 1023#
1209# File systems 1024# File systems
1210# 1025#
1211CONFIG_EXT2_FS=y 1026CONFIG_EXT2_FS=y
1212CONFIG_EXT2_FS_XATTR=y 1027# CONFIG_EXT2_FS_XATTR is not set
1213CONFIG_EXT2_FS_POSIX_ACL=y
1214# CONFIG_EXT2_FS_SECURITY is not set
1215# CONFIG_EXT2_FS_XIP is not set 1028# CONFIG_EXT2_FS_XIP is not set
1216CONFIG_EXT3_FS=y 1029# CONFIG_EXT3_FS is not set
1217CONFIG_EXT3_FS_XATTR=y 1030# CONFIG_EXT4_FS is not set
1218CONFIG_EXT3_FS_POSIX_ACL=y 1031# CONFIG_REISERFS_FS is not set
1219CONFIG_EXT3_FS_SECURITY=y
1220# CONFIG_EXT4DEV_FS is not set
1221CONFIG_JBD=y
1222# CONFIG_JBD_DEBUG is not set
1223CONFIG_FS_MBCACHE=y
1224CONFIG_REISERFS_FS=m
1225# CONFIG_REISERFS_CHECK is not set
1226# CONFIG_REISERFS_PROC_INFO is not set
1227CONFIG_REISERFS_FS_XATTR=y
1228CONFIG_REISERFS_FS_POSIX_ACL=y
1229CONFIG_REISERFS_FS_SECURITY=y
1230# CONFIG_JFS_FS is not set 1032# CONFIG_JFS_FS is not set
1231CONFIG_FS_POSIX_ACL=y 1033CONFIG_FS_POSIX_ACL=y
1232# CONFIG_XFS_FS is not set 1034# CONFIG_XFS_FS is not set
1233# CONFIG_GFS2_FS is not set 1035# CONFIG_GFS2_FS is not set
1234# CONFIG_OCFS2_FS is not set 1036# CONFIG_OCFS2_FS is not set
1235# CONFIG_MINIX_FS is not set 1037# CONFIG_BTRFS_FS is not set
1236# CONFIG_ROMFS_FS is not set 1038# CONFIG_NILFS2_FS is not set
1039CONFIG_FILE_LOCKING=y
1040CONFIG_FSNOTIFY=y
1041CONFIG_DNOTIFY=y
1237CONFIG_INOTIFY=y 1042CONFIG_INOTIFY=y
1238CONFIG_INOTIFY_USER=y 1043CONFIG_INOTIFY_USER=y
1239# CONFIG_QUOTA is not set 1044# CONFIG_QUOTA is not set
1240CONFIG_DNOTIFY=y 1045# CONFIG_AUTOFS_FS is not set
1241CONFIG_AUTOFS_FS=m 1046# CONFIG_AUTOFS4_FS is not set
1242CONFIG_AUTOFS4_FS=m 1047# CONFIG_FUSE_FS is not set
1243CONFIG_FUSE_FS=m 1048
1244CONFIG_GENERIC_ACL=y 1049#
1050# Caches
1051#
1052# CONFIG_FSCACHE is not set
1245 1053
1246# 1054#
1247# CD-ROM/DVD Filesystems 1055# CD-ROM/DVD Filesystems
@@ -1260,74 +1068,81 @@ CONFIG_GENERIC_ACL=y
1260# Pseudo filesystems 1068# Pseudo filesystems
1261# 1069#
1262CONFIG_PROC_FS=y 1070CONFIG_PROC_FS=y
1263CONFIG_PROC_KCORE=y 1071# CONFIG_PROC_KCORE is not set
1264CONFIG_PROC_SYSCTL=y 1072CONFIG_PROC_SYSCTL=y
1073# CONFIG_PROC_PAGE_MONITOR is not set
1265CONFIG_SYSFS=y 1074CONFIG_SYSFS=y
1266CONFIG_TMPFS=y 1075CONFIG_TMPFS=y
1267CONFIG_TMPFS_POSIX_ACL=y 1076# CONFIG_TMPFS_POSIX_ACL is not set
1268# CONFIG_HUGETLB_PAGE is not set 1077# CONFIG_HUGETLB_PAGE is not set
1269CONFIG_RAMFS=y 1078# CONFIG_CONFIGFS_FS is not set
1270CONFIG_CONFIGFS_FS=m 1079CONFIG_MISC_FILESYSTEMS=y
1271
1272#
1273# Miscellaneous filesystems
1274#
1275# CONFIG_ADFS_FS is not set 1080# CONFIG_ADFS_FS is not set
1276# CONFIG_AFFS_FS is not set 1081# CONFIG_AFFS_FS is not set
1277# CONFIG_ECRYPT_FS is not set
1278# CONFIG_HFS_FS is not set 1082# CONFIG_HFS_FS is not set
1279# CONFIG_HFSPLUS_FS is not set 1083# CONFIG_HFSPLUS_FS is not set
1280# CONFIG_BEFS_FS is not set 1084# CONFIG_BEFS_FS is not set
1281# CONFIG_BFS_FS is not set 1085# CONFIG_BFS_FS is not set
1282# CONFIG_EFS_FS is not set 1086# CONFIG_EFS_FS is not set
1283# CONFIG_JFFS2_FS is not set 1087CONFIG_JFFS2_FS=y
1284CONFIG_CRAMFS=m 1088CONFIG_JFFS2_FS_DEBUG=0
1089CONFIG_JFFS2_FS_WRITEBUFFER=y
1090# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1091CONFIG_JFFS2_SUMMARY=y
1092CONFIG_JFFS2_FS_XATTR=y
1093CONFIG_JFFS2_FS_POSIX_ACL=y
1094CONFIG_JFFS2_FS_SECURITY=y
1095CONFIG_JFFS2_COMPRESSION_OPTIONS=y
1096CONFIG_JFFS2_ZLIB=y
1097CONFIG_JFFS2_LZO=y
1098CONFIG_JFFS2_RTIME=y
1099CONFIG_JFFS2_RUBIN=y
1100# CONFIG_JFFS2_CMODE_NONE is not set
1101CONFIG_JFFS2_CMODE_PRIORITY=y
1102# CONFIG_JFFS2_CMODE_SIZE is not set
1103# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
1104# CONFIG_CRAMFS is not set
1105CONFIG_SQUASHFS=y
1106# CONFIG_SQUASHFS_EMBEDDED is not set
1107CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
1285# CONFIG_VXFS_FS is not set 1108# CONFIG_VXFS_FS is not set
1109# CONFIG_MINIX_FS is not set
1110# CONFIG_OMFS_FS is not set
1286# CONFIG_HPFS_FS is not set 1111# CONFIG_HPFS_FS is not set
1287# CONFIG_QNX4FS_FS is not set 1112# CONFIG_QNX4FS_FS is not set
1113# CONFIG_ROMFS_FS is not set
1288# CONFIG_SYSV_FS is not set 1114# CONFIG_SYSV_FS is not set
1289# CONFIG_UFS_FS is not set 1115# CONFIG_UFS_FS is not set
1290 1116CONFIG_NETWORK_FILESYSTEMS=y
1291#
1292# Network File Systems
1293#
1294CONFIG_NFS_FS=y 1117CONFIG_NFS_FS=y
1295# CONFIG_NFS_V3 is not set 1118CONFIG_NFS_V3=y
1119# CONFIG_NFS_V3_ACL is not set
1296# CONFIG_NFS_V4 is not set 1120# CONFIG_NFS_V4 is not set
1297# CONFIG_NFS_DIRECTIO is not set
1298CONFIG_NFSD=m
1299# CONFIG_NFSD_V3 is not set
1300# CONFIG_NFSD_TCP is not set
1301CONFIG_ROOT_NFS=y 1121CONFIG_ROOT_NFS=y
1122# CONFIG_NFSD is not set
1302CONFIG_LOCKD=y 1123CONFIG_LOCKD=y
1303CONFIG_EXPORTFS=m 1124CONFIG_LOCKD_V4=y
1304CONFIG_NFS_COMMON=y 1125CONFIG_NFS_COMMON=y
1305CONFIG_SUNRPC=y 1126CONFIG_SUNRPC=y
1306# CONFIG_RPCSEC_GSS_KRB5 is not set 1127# CONFIG_RPCSEC_GSS_KRB5 is not set
1307# CONFIG_RPCSEC_GSS_SPKM3 is not set 1128# CONFIG_RPCSEC_GSS_SPKM3 is not set
1308CONFIG_SMB_FS=m 1129# CONFIG_SMB_FS is not set
1309# CONFIG_SMB_NLS_DEFAULT is not set
1310# CONFIG_CIFS is not set 1130# CONFIG_CIFS is not set
1311# CONFIG_NCP_FS is not set 1131# CONFIG_NCP_FS is not set
1312# CONFIG_CODA_FS is not set 1132# CONFIG_CODA_FS is not set
1313# CONFIG_AFS_FS is not set 1133# CONFIG_AFS_FS is not set
1314# CONFIG_9P_FS is not set
1315 1134
1316# 1135#
1317# Partition Types 1136# Partition Types
1318# 1137#
1319# CONFIG_PARTITION_ADVANCED is not set 1138# CONFIG_PARTITION_ADVANCED is not set
1320CONFIG_MSDOS_PARTITION=y 1139CONFIG_MSDOS_PARTITION=y
1321 1140CONFIG_NLS=y
1322#
1323# Native Language Support
1324#
1325CONFIG_NLS=m
1326CONFIG_NLS_DEFAULT="iso8859-1" 1141CONFIG_NLS_DEFAULT="iso8859-1"
1327# CONFIG_NLS_CODEPAGE_437 is not set 1142CONFIG_NLS_CODEPAGE_437=y
1328# CONFIG_NLS_CODEPAGE_737 is not set 1143# CONFIG_NLS_CODEPAGE_737 is not set
1329# CONFIG_NLS_CODEPAGE_775 is not set 1144# CONFIG_NLS_CODEPAGE_775 is not set
1330# CONFIG_NLS_CODEPAGE_850 is not set 1145CONFIG_NLS_CODEPAGE_850=y
1331# CONFIG_NLS_CODEPAGE_852 is not set 1146# CONFIG_NLS_CODEPAGE_852 is not set
1332# CONFIG_NLS_CODEPAGE_855 is not set 1147# CONFIG_NLS_CODEPAGE_855 is not set
1333# CONFIG_NLS_CODEPAGE_857 is not set 1148# CONFIG_NLS_CODEPAGE_857 is not set
@@ -1345,10 +1160,10 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1345# CONFIG_NLS_CODEPAGE_949 is not set 1160# CONFIG_NLS_CODEPAGE_949 is not set
1346# CONFIG_NLS_CODEPAGE_874 is not set 1161# CONFIG_NLS_CODEPAGE_874 is not set
1347# CONFIG_NLS_ISO8859_8 is not set 1162# CONFIG_NLS_ISO8859_8 is not set
1348# CONFIG_NLS_CODEPAGE_1250 is not set 1163CONFIG_NLS_CODEPAGE_1250=y
1349# CONFIG_NLS_CODEPAGE_1251 is not set 1164# CONFIG_NLS_CODEPAGE_1251 is not set
1350# CONFIG_NLS_ASCII is not set 1165CONFIG_NLS_ASCII=y
1351# CONFIG_NLS_ISO8859_1 is not set 1166CONFIG_NLS_ISO8859_1=y
1352# CONFIG_NLS_ISO8859_2 is not set 1167# CONFIG_NLS_ISO8859_2 is not set
1353# CONFIG_NLS_ISO8859_3 is not set 1168# CONFIG_NLS_ISO8859_3 is not set
1354# CONFIG_NLS_ISO8859_4 is not set 1169# CONFIG_NLS_ISO8859_4 is not set
@@ -1358,38 +1173,76 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1358# CONFIG_NLS_ISO8859_9 is not set 1173# CONFIG_NLS_ISO8859_9 is not set
1359# CONFIG_NLS_ISO8859_13 is not set 1174# CONFIG_NLS_ISO8859_13 is not set
1360# CONFIG_NLS_ISO8859_14 is not set 1175# CONFIG_NLS_ISO8859_14 is not set
1361# CONFIG_NLS_ISO8859_15 is not set 1176CONFIG_NLS_ISO8859_15=y
1362# CONFIG_NLS_KOI8_R is not set 1177# CONFIG_NLS_KOI8_R is not set
1363# CONFIG_NLS_KOI8_U is not set 1178# CONFIG_NLS_KOI8_U is not set
1364# CONFIG_NLS_UTF8 is not set 1179CONFIG_NLS_UTF8=y
1365 1180# CONFIG_DLM is not set
1366#
1367# Distributed Lock Manager
1368#
1369CONFIG_DLM=m
1370CONFIG_DLM_TCP=y
1371# CONFIG_DLM_SCTP is not set
1372# CONFIG_DLM_DEBUG is not set
1373
1374#
1375# Profiling support
1376#
1377# CONFIG_PROFILING is not set
1378 1181
1379# 1182#
1380# Kernel hacking 1183# Kernel hacking
1381# 1184#
1382CONFIG_TRACE_IRQFLAGS_SUPPORT=y 1185CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1383# CONFIG_PRINTK_TIME is not set 1186# CONFIG_PRINTK_TIME is not set
1187CONFIG_ENABLE_WARN_DEPRECATED=y
1384CONFIG_ENABLE_MUST_CHECK=y 1188CONFIG_ENABLE_MUST_CHECK=y
1189CONFIG_FRAME_WARN=1024
1385# CONFIG_MAGIC_SYSRQ is not set 1190# CONFIG_MAGIC_SYSRQ is not set
1191CONFIG_STRIP_ASM_SYMS=y
1386# CONFIG_UNUSED_SYMBOLS is not set 1192# CONFIG_UNUSED_SYMBOLS is not set
1387# CONFIG_DEBUG_FS is not set 1193# CONFIG_DEBUG_FS is not set
1388# CONFIG_HEADERS_CHECK is not set 1194# CONFIG_HEADERS_CHECK is not set
1389# CONFIG_DEBUG_KERNEL is not set 1195CONFIG_DEBUG_KERNEL=y
1390CONFIG_LOG_BUF_SHIFT=14 1196# CONFIG_DEBUG_SHIRQ is not set
1391CONFIG_CROSSCOMPILE=y 1197# CONFIG_DETECT_SOFTLOCKUP is not set
1198# CONFIG_DETECT_HUNG_TASK is not set
1199# CONFIG_SCHED_DEBUG is not set
1200# CONFIG_SCHEDSTATS is not set
1201# CONFIG_TIMER_STATS is not set
1202# CONFIG_DEBUG_OBJECTS is not set
1203# CONFIG_DEBUG_SLAB is not set
1204# CONFIG_DEBUG_RT_MUTEXES is not set
1205# CONFIG_RT_MUTEX_TESTER is not set
1206# CONFIG_DEBUG_SPINLOCK is not set
1207# CONFIG_DEBUG_MUTEXES is not set
1208# CONFIG_DEBUG_LOCK_ALLOC is not set
1209# CONFIG_PROVE_LOCKING is not set
1210# CONFIG_LOCK_STAT is not set
1211# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1212# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1213# CONFIG_DEBUG_KOBJECT is not set
1214# CONFIG_DEBUG_INFO is not set
1215# CONFIG_DEBUG_VM is not set
1216# CONFIG_DEBUG_WRITECOUNT is not set
1217# CONFIG_DEBUG_MEMORY_INIT is not set
1218# CONFIG_DEBUG_LIST is not set
1219# CONFIG_DEBUG_SG is not set
1220# CONFIG_DEBUG_NOTIFIERS is not set
1221# CONFIG_DEBUG_CREDENTIALS is not set
1222# CONFIG_BOOT_PRINTK_DELAY is not set
1223# CONFIG_RCU_TORTURE_TEST is not set
1224# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1225# CONFIG_BACKTRACE_SELF_TEST is not set
1226# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1227# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1228# CONFIG_FAULT_INJECTION is not set
1229# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1230# CONFIG_PAGE_POISONING is not set
1231CONFIG_HAVE_FUNCTION_TRACER=y
1232CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1233CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
1234CONFIG_HAVE_DYNAMIC_FTRACE=y
1235CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1236CONFIG_TRACING_SUPPORT=y
1237# CONFIG_FTRACE is not set
1238# CONFIG_SAMPLES is not set
1239CONFIG_HAVE_ARCH_KGDB=y
1240# CONFIG_KGDB is not set
1241CONFIG_EARLY_PRINTK=y
1392# CONFIG_CMDLINE_BOOL is not set 1242# CONFIG_CMDLINE_BOOL is not set
1243# CONFIG_DEBUG_STACK_USAGE is not set
1244# CONFIG_RUNTIME_DEBUG is not set
1245CONFIG_DEBUG_ZBOOT=y
1393 1246
1394# 1247#
1395# Security options 1248# Security options
@@ -1397,67 +1250,32 @@ CONFIG_CROSSCOMPILE=y
1397CONFIG_KEYS=y 1250CONFIG_KEYS=y
1398CONFIG_KEYS_DEBUG_PROC_KEYS=y 1251CONFIG_KEYS_DEBUG_PROC_KEYS=y
1399# CONFIG_SECURITY is not set 1252# CONFIG_SECURITY is not set
1400 1253CONFIG_SECURITYFS=y
1401# 1254# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1402# Cryptographic options 1255# CONFIG_DEFAULT_SECURITY_SMACK is not set
1403# 1256# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1404CONFIG_CRYPTO=y 1257CONFIG_DEFAULT_SECURITY_DAC=y
1405CONFIG_CRYPTO_ALGAPI=y 1258CONFIG_DEFAULT_SECURITY=""
1406CONFIG_CRYPTO_BLKCIPHER=m 1259# CONFIG_CRYPTO is not set
1407CONFIG_CRYPTO_HASH=y 1260# CONFIG_BINARY_PRINTF is not set
1408CONFIG_CRYPTO_MANAGER=y
1409CONFIG_CRYPTO_HMAC=y
1410CONFIG_CRYPTO_XCBC=m
1411CONFIG_CRYPTO_NULL=m
1412CONFIG_CRYPTO_MD4=m
1413CONFIG_CRYPTO_MD5=y
1414CONFIG_CRYPTO_SHA1=m
1415CONFIG_CRYPTO_SHA256=m
1416CONFIG_CRYPTO_SHA512=m
1417CONFIG_CRYPTO_WP512=m
1418CONFIG_CRYPTO_TGR192=m
1419CONFIG_CRYPTO_GF128MUL=m
1420CONFIG_CRYPTO_ECB=m
1421CONFIG_CRYPTO_CBC=m
1422CONFIG_CRYPTO_PCBC=m
1423CONFIG_CRYPTO_LRW=m
1424CONFIG_CRYPTO_DES=m
1425CONFIG_CRYPTO_FCRYPT=m
1426CONFIG_CRYPTO_BLOWFISH=m
1427CONFIG_CRYPTO_TWOFISH=m
1428CONFIG_CRYPTO_TWOFISH_COMMON=m
1429CONFIG_CRYPTO_SERPENT=m
1430CONFIG_CRYPTO_AES=m
1431CONFIG_CRYPTO_CAST5=m
1432CONFIG_CRYPTO_CAST6=m
1433CONFIG_CRYPTO_TEA=m
1434CONFIG_CRYPTO_ARC4=m
1435CONFIG_CRYPTO_KHAZAD=m
1436CONFIG_CRYPTO_ANUBIS=m
1437CONFIG_CRYPTO_DEFLATE=m
1438CONFIG_CRYPTO_MICHAEL_MIC=m
1439CONFIG_CRYPTO_CRC32C=m
1440CONFIG_CRYPTO_CAMELLIA=m
1441# CONFIG_CRYPTO_TEST is not set
1442
1443#
1444# Hardware crypto devices
1445#
1446 1261
1447# 1262#
1448# Library routines 1263# Library routines
1449# 1264#
1450CONFIG_BITREVERSE=y 1265CONFIG_BITREVERSE=y
1451CONFIG_CRC_CCITT=m 1266CONFIG_GENERIC_FIND_LAST_BIT=y
1452CONFIG_CRC16=m 1267# CONFIG_CRC_CCITT is not set
1268# CONFIG_CRC16 is not set
1269# CONFIG_CRC_T10DIF is not set
1270# CONFIG_CRC_ITU_T is not set
1453CONFIG_CRC32=y 1271CONFIG_CRC32=y
1454CONFIG_LIBCRC32C=m 1272# CONFIG_CRC7 is not set
1455CONFIG_ZLIB_INFLATE=m 1273# CONFIG_LIBCRC32C is not set
1456CONFIG_ZLIB_DEFLATE=m 1274CONFIG_ZLIB_INFLATE=y
1457CONFIG_TEXTSEARCH=y 1275CONFIG_ZLIB_DEFLATE=y
1458CONFIG_TEXTSEARCH_KMP=m 1276CONFIG_LZO_COMPRESS=y
1459CONFIG_TEXTSEARCH_BM=m 1277CONFIG_LZO_DECOMPRESS=y
1460CONFIG_TEXTSEARCH_FSM=m
1461CONFIG_PLIST=y
1462CONFIG_HAS_IOMEM=y 1278CONFIG_HAS_IOMEM=y
1463CONFIG_HAS_IOPORT=y 1279CONFIG_HAS_IOPORT=y
1280CONFIG_HAS_DMA=y
1281CONFIG_NLATTR=y
diff --git a/arch/mips/configs/db1550_defconfig b/arch/mips/configs/db1550_defconfig
index 6b64339c0014..949b6dcf634b 100644
--- a/arch/mips/configs/db1550_defconfig
+++ b/arch/mips/configs/db1550_defconfig
@@ -1,79 +1,103 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20 3# Linux kernel version: 2.6.33
4# Tue Feb 20 21:47:27 2007 4# Fri Feb 26 08:58:22 2010
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
8# 8#
9# Machine selection 9# Machine selection
10# 10#
11CONFIG_ZONE_DMA=y
12CONFIG_MACH_ALCHEMY=y 11CONFIG_MACH_ALCHEMY=y
13# CONFIG_MIPS_MTX1 is not set 12# CONFIG_AR7 is not set
14# CONFIG_MIPS_BOSPORUS is not set 13# CONFIG_BCM47XX is not set
15# CONFIG_MIPS_PB1000 is not set 14# CONFIG_BCM63XX is not set
16# CONFIG_MIPS_PB1100 is not set
17# CONFIG_MIPS_PB1500 is not set
18# CONFIG_MIPS_PB1550 is not set
19# CONFIG_MIPS_PB1200 is not set
20# CONFIG_MIPS_DB1000 is not set
21# CONFIG_MIPS_DB1100 is not set
22# CONFIG_MIPS_DB1500 is not set
23CONFIG_MIPS_DB1550=y
24# CONFIG_MIPS_DB1200 is not set
25# CONFIG_MIPS_MIRAGE is not set
26# CONFIG_MIPS_COBALT is not set 15# CONFIG_MIPS_COBALT is not set
27# CONFIG_MACH_DECSTATION is not set 16# CONFIG_MACH_DECSTATION is not set
28# CONFIG_MACH_JAZZ is not set 17# CONFIG_MACH_JAZZ is not set
18# CONFIG_LASAT is not set
19# CONFIG_MACH_LOONGSON is not set
29# CONFIG_MIPS_MALTA is not set 20# CONFIG_MIPS_MALTA is not set
30# CONFIG_WR_PPMC is not set
31# CONFIG_MIPS_SIM is not set 21# CONFIG_MIPS_SIM is not set
32# CONFIG_MOMENCO_JAGUAR_ATX is not set 22# CONFIG_NEC_MARKEINS is not set
33# CONFIG_MIPS_XXS1500 is not set 23# CONFIG_MACH_VR41XX is not set
24# CONFIG_NXP_STB220 is not set
25# CONFIG_NXP_STB225 is not set
34# CONFIG_PNX8550_JBS is not set 26# CONFIG_PNX8550_JBS is not set
35# CONFIG_PNX8550_STB810 is not set 27# CONFIG_PNX8550_STB810 is not set
36# CONFIG_MACH_VR41XX is not set 28# CONFIG_PMC_MSP is not set
37# CONFIG_PMC_YOSEMITE is not set 29# CONFIG_PMC_YOSEMITE is not set
38# CONFIG_MARKEINS is not set 30# CONFIG_POWERTV is not set
39# CONFIG_SGI_IP22 is not set 31# CONFIG_SGI_IP22 is not set
40# CONFIG_SGI_IP27 is not set 32# CONFIG_SGI_IP27 is not set
33# CONFIG_SGI_IP28 is not set
41# CONFIG_SGI_IP32 is not set 34# CONFIG_SGI_IP32 is not set
42# CONFIG_SIBYTE_BIGSUR is not set
43# CONFIG_SIBYTE_SWARM is not set
44# CONFIG_SIBYTE_SENTOSA is not set
45# CONFIG_SIBYTE_RHONE is not set
46# CONFIG_SIBYTE_CARMEL is not set
47# CONFIG_SIBYTE_LITTLESUR is not set
48# CONFIG_SIBYTE_CRHINE is not set 35# CONFIG_SIBYTE_CRHINE is not set
36# CONFIG_SIBYTE_CARMEL is not set
49# CONFIG_SIBYTE_CRHONE is not set 37# CONFIG_SIBYTE_CRHONE is not set
38# CONFIG_SIBYTE_RHONE is not set
39# CONFIG_SIBYTE_SWARM is not set
40# CONFIG_SIBYTE_LITTLESUR is not set
41# CONFIG_SIBYTE_SENTOSA is not set
42# CONFIG_SIBYTE_BIGSUR is not set
50# CONFIG_SNI_RM is not set 43# CONFIG_SNI_RM is not set
51# CONFIG_TOSHIBA_JMR3927 is not set 44# CONFIG_MACH_TX39XX is not set
52# CONFIG_TOSHIBA_RBTX4927 is not set 45# CONFIG_MACH_TX49XX is not set
53# CONFIG_TOSHIBA_RBTX4938 is not set 46# CONFIG_MIKROTIK_RB532 is not set
47# CONFIG_WR_PPMC is not set
48# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
49# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
50CONFIG_ALCHEMY_GPIOINT_AU1000=y
51# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
52# CONFIG_MIPS_MTX1 is not set
53# CONFIG_MIPS_BOSPORUS is not set
54# CONFIG_MIPS_DB1000 is not set
55# CONFIG_MIPS_DB1100 is not set
56# CONFIG_MIPS_DB1200 is not set
57# CONFIG_MIPS_DB1500 is not set
58CONFIG_MIPS_DB1550=y
59# CONFIG_MIPS_MIRAGE is not set
60# CONFIG_MIPS_PB1000 is not set
61# CONFIG_MIPS_PB1100 is not set
62# CONFIG_MIPS_PB1200 is not set
63# CONFIG_MIPS_PB1500 is not set
64# CONFIG_MIPS_PB1550 is not set
65# CONFIG_MIPS_XXS1500 is not set
66CONFIG_SOC_AU1550=y
67CONFIG_SOC_AU1X00=y
68CONFIG_LOONGSON_UART_BASE=y
54CONFIG_RWSEM_GENERIC_SPINLOCK=y 69CONFIG_RWSEM_GENERIC_SPINLOCK=y
55# CONFIG_ARCH_HAS_ILOG2_U32 is not set 70# CONFIG_ARCH_HAS_ILOG2_U32 is not set
56# CONFIG_ARCH_HAS_ILOG2_U64 is not set 71# CONFIG_ARCH_HAS_ILOG2_U64 is not set
72CONFIG_ARCH_SUPPORTS_OPROFILE=y
57CONFIG_GENERIC_FIND_NEXT_BIT=y 73CONFIG_GENERIC_FIND_NEXT_BIT=y
58CONFIG_GENERIC_HWEIGHT=y 74CONFIG_GENERIC_HWEIGHT=y
59CONFIG_GENERIC_CALIBRATE_DELAY=y 75CONFIG_GENERIC_CALIBRATE_DELAY=y
76CONFIG_GENERIC_CLOCKEVENTS=y
60CONFIG_GENERIC_TIME=y 77CONFIG_GENERIC_TIME=y
61CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 78CONFIG_GENERIC_CMOS_UPDATE=y
62# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set 79CONFIG_SCHED_OMIT_FRAME_POINTER=y
80CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
81CONFIG_CEVT_R4K_LIB=y
82CONFIG_CSRC_R4K_LIB=y
63CONFIG_DMA_NONCOHERENT=y 83CONFIG_DMA_NONCOHERENT=y
64CONFIG_DMA_NEED_PCI_MAP_STATE=y 84CONFIG_DMA_NEED_PCI_MAP_STATE=y
85CONFIG_SYS_HAS_EARLY_PRINTK=y
65CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y 86CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y
87# CONFIG_NO_IOPORT is not set
88CONFIG_GENERIC_GPIO=y
66# CONFIG_CPU_BIG_ENDIAN is not set 89# CONFIG_CPU_BIG_ENDIAN is not set
67CONFIG_CPU_LITTLE_ENDIAN=y 90CONFIG_CPU_LITTLE_ENDIAN=y
68CONFIG_SYS_SUPPORTS_APM_EMULATION=y 91CONFIG_SYS_SUPPORTS_APM_EMULATION=y
69CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y 92CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
70CONFIG_SOC_AU1550=y 93CONFIG_IRQ_CPU=y
71CONFIG_SOC_AU1X00=y
72CONFIG_MIPS_L1_CACHE_SHIFT=5 94CONFIG_MIPS_L1_CACHE_SHIFT=5
73 95
74# 96#
75# CPU selection 97# CPU selection
76# 98#
99# CONFIG_CPU_LOONGSON2E is not set
100# CONFIG_CPU_LOONGSON2F is not set
77CONFIG_CPU_MIPS32_R1=y 101CONFIG_CPU_MIPS32_R1=y
78# CONFIG_CPU_MIPS32_R2 is not set 102# CONFIG_CPU_MIPS32_R2 is not set
79# CONFIG_CPU_MIPS64_R1 is not set 103# CONFIG_CPU_MIPS64_R1 is not set
@@ -86,6 +110,7 @@ CONFIG_CPU_MIPS32_R1=y
86# CONFIG_CPU_TX49XX is not set 110# CONFIG_CPU_TX49XX is not set
87# CONFIG_CPU_R5000 is not set 111# CONFIG_CPU_R5000 is not set
88# CONFIG_CPU_R5432 is not set 112# CONFIG_CPU_R5432 is not set
113# CONFIG_CPU_R5500 is not set
89# CONFIG_CPU_R6000 is not set 114# CONFIG_CPU_R6000 is not set
90# CONFIG_CPU_NEVADA is not set 115# CONFIG_CPU_NEVADA is not set
91# CONFIG_CPU_R8000 is not set 116# CONFIG_CPU_R8000 is not set
@@ -93,11 +118,14 @@ CONFIG_CPU_MIPS32_R1=y
93# CONFIG_CPU_RM7000 is not set 118# CONFIG_CPU_RM7000 is not set
94# CONFIG_CPU_RM9000 is not set 119# CONFIG_CPU_RM9000 is not set
95# CONFIG_CPU_SB1 is not set 120# CONFIG_CPU_SB1 is not set
121# CONFIG_CPU_CAVIUM_OCTEON is not set
122CONFIG_SYS_SUPPORTS_ZBOOT=y
96CONFIG_SYS_HAS_CPU_MIPS32_R1=y 123CONFIG_SYS_HAS_CPU_MIPS32_R1=y
97CONFIG_CPU_MIPS32=y 124CONFIG_CPU_MIPS32=y
98CONFIG_CPU_MIPSR1=y 125CONFIG_CPU_MIPSR1=y
99CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 126CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
100CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y 127CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
128CONFIG_HARDWARE_WATCHPOINTS=y
101 129
102# 130#
103# Kernel type 131# Kernel type
@@ -107,137 +135,205 @@ CONFIG_32BIT=y
107CONFIG_PAGE_SIZE_4KB=y 135CONFIG_PAGE_SIZE_4KB=y
108# CONFIG_PAGE_SIZE_8KB is not set 136# CONFIG_PAGE_SIZE_8KB is not set
109# CONFIG_PAGE_SIZE_16KB is not set 137# CONFIG_PAGE_SIZE_16KB is not set
138# CONFIG_PAGE_SIZE_32KB is not set
110# CONFIG_PAGE_SIZE_64KB is not set 139# CONFIG_PAGE_SIZE_64KB is not set
111CONFIG_CPU_HAS_PREFETCH=y 140CONFIG_CPU_HAS_PREFETCH=y
112CONFIG_MIPS_MT_DISABLED=y 141CONFIG_MIPS_MT_DISABLED=y
113# CONFIG_MIPS_MT_SMP is not set 142# CONFIG_MIPS_MT_SMP is not set
114# CONFIG_MIPS_MT_SMTC is not set 143# CONFIG_MIPS_MT_SMTC is not set
115# CONFIG_MIPS_VPE_LOADER is not set
116CONFIG_64BIT_PHYS_ADDR=y 144CONFIG_64BIT_PHYS_ADDR=y
145CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
117CONFIG_CPU_HAS_SYNC=y 146CONFIG_CPU_HAS_SYNC=y
118CONFIG_GENERIC_HARDIRQS=y 147CONFIG_GENERIC_HARDIRQS=y
119CONFIG_GENERIC_IRQ_PROBE=y 148CONFIG_GENERIC_IRQ_PROBE=y
120CONFIG_CPU_SUPPORTS_HIGHMEM=y 149CONFIG_CPU_SUPPORTS_HIGHMEM=y
121CONFIG_ARCH_FLATMEM_ENABLE=y 150CONFIG_ARCH_FLATMEM_ENABLE=y
151CONFIG_ARCH_POPULATES_NODE_MAP=y
122CONFIG_SELECT_MEMORY_MODEL=y 152CONFIG_SELECT_MEMORY_MODEL=y
123CONFIG_FLATMEM_MANUAL=y 153CONFIG_FLATMEM_MANUAL=y
124# CONFIG_DISCONTIGMEM_MANUAL is not set 154# CONFIG_DISCONTIGMEM_MANUAL is not set
125# CONFIG_SPARSEMEM_MANUAL is not set 155# CONFIG_SPARSEMEM_MANUAL is not set
126CONFIG_FLATMEM=y 156CONFIG_FLATMEM=y
127CONFIG_FLAT_NODE_MEM_MAP=y 157CONFIG_FLAT_NODE_MEM_MAP=y
128# CONFIG_SPARSEMEM_STATIC is not set 158CONFIG_PAGEFLAGS_EXTENDED=y
129CONFIG_SPLIT_PTLOCK_CPUS=4 159CONFIG_SPLIT_PTLOCK_CPUS=4
130CONFIG_RESOURCES_64BIT=y 160CONFIG_PHYS_ADDR_T_64BIT=y
131CONFIG_ZONE_DMA_FLAG=1 161CONFIG_ZONE_DMA_FLAG=0
162CONFIG_VIRT_TO_BUS=y
163# CONFIG_KSM is not set
164CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
165CONFIG_TICK_ONESHOT=y
166CONFIG_NO_HZ=y
167CONFIG_HIGH_RES_TIMERS=y
168CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
132# CONFIG_HZ_48 is not set 169# CONFIG_HZ_48 is not set
133# CONFIG_HZ_100 is not set 170CONFIG_HZ_100=y
134# CONFIG_HZ_128 is not set 171# CONFIG_HZ_128 is not set
135# CONFIG_HZ_250 is not set 172# CONFIG_HZ_250 is not set
136# CONFIG_HZ_256 is not set 173# CONFIG_HZ_256 is not set
137CONFIG_HZ_1000=y 174# CONFIG_HZ_1000 is not set
138# CONFIG_HZ_1024 is not set 175# CONFIG_HZ_1024 is not set
139CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 176CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
140CONFIG_HZ=1000 177CONFIG_HZ=100
141CONFIG_PREEMPT_NONE=y 178CONFIG_PREEMPT_NONE=y
142# CONFIG_PREEMPT_VOLUNTARY is not set 179# CONFIG_PREEMPT_VOLUNTARY is not set
143# CONFIG_PREEMPT is not set 180# CONFIG_PREEMPT is not set
144# CONFIG_KEXEC is not set 181# CONFIG_KEXEC is not set
182# CONFIG_SECCOMP is not set
145CONFIG_LOCKDEP_SUPPORT=y 183CONFIG_LOCKDEP_SUPPORT=y
146CONFIG_STACKTRACE_SUPPORT=y 184CONFIG_STACKTRACE_SUPPORT=y
147CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 185CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
186CONFIG_CONSTRUCTORS=y
148 187
149# 188#
150# Code maturity level options 189# General setup
151# 190#
152CONFIG_EXPERIMENTAL=y 191CONFIG_EXPERIMENTAL=y
153CONFIG_BROKEN_ON_SMP=y 192CONFIG_BROKEN_ON_SMP=y
154CONFIG_INIT_ENV_ARG_LIMIT=32 193CONFIG_INIT_ENV_ARG_LIMIT=32
155 194CONFIG_LOCALVERSION="-db1550"
156#
157# General setup
158#
159CONFIG_LOCALVERSION=""
160CONFIG_LOCALVERSION_AUTO=y 195CONFIG_LOCALVERSION_AUTO=y
196CONFIG_HAVE_KERNEL_GZIP=y
197CONFIG_HAVE_KERNEL_BZIP2=y
198CONFIG_HAVE_KERNEL_LZMA=y
199CONFIG_HAVE_KERNEL_LZO=y
200# CONFIG_KERNEL_GZIP is not set
201# CONFIG_KERNEL_BZIP2 is not set
202CONFIG_KERNEL_LZMA=y
203# CONFIG_KERNEL_LZO is not set
161CONFIG_SWAP=y 204CONFIG_SWAP=y
162CONFIG_SYSVIPC=y 205CONFIG_SYSVIPC=y
163# CONFIG_IPC_NS is not set
164CONFIG_SYSVIPC_SYSCTL=y 206CONFIG_SYSVIPC_SYSCTL=y
165# CONFIG_POSIX_MQUEUE is not set 207CONFIG_POSIX_MQUEUE=y
208CONFIG_POSIX_MQUEUE_SYSCTL=y
166# CONFIG_BSD_PROCESS_ACCT is not set 209# CONFIG_BSD_PROCESS_ACCT is not set
167# CONFIG_TASKSTATS is not set 210# CONFIG_TASKSTATS is not set
168# CONFIG_UTS_NS is not set
169# CONFIG_AUDIT is not set 211# CONFIG_AUDIT is not set
212
213#
214# RCU Subsystem
215#
216# CONFIG_TREE_RCU is not set
217# CONFIG_TREE_PREEMPT_RCU is not set
218CONFIG_TINY_RCU=y
219# CONFIG_TREE_RCU_TRACE is not set
170# CONFIG_IKCONFIG is not set 220# CONFIG_IKCONFIG is not set
171CONFIG_SYSFS_DEPRECATED=y 221CONFIG_LOG_BUF_SHIFT=14
172CONFIG_RELAY=y 222# CONFIG_GROUP_SCHED is not set
173# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 223# CONFIG_CGROUPS is not set
224# CONFIG_SYSFS_DEPRECATED_V2 is not set
225# CONFIG_RELAY is not set
226# CONFIG_NAMESPACES is not set
227# CONFIG_BLK_DEV_INITRD is not set
228CONFIG_CC_OPTIMIZE_FOR_SIZE=y
174CONFIG_SYSCTL=y 229CONFIG_SYSCTL=y
230CONFIG_ANON_INODES=y
175CONFIG_EMBEDDED=y 231CONFIG_EMBEDDED=y
176CONFIG_SYSCTL_SYSCALL=y 232# CONFIG_SYSCTL_SYSCALL is not set
177CONFIG_KALLSYMS=y 233# CONFIG_KALLSYMS is not set
178# CONFIG_KALLSYMS_EXTRA_PASS is not set
179CONFIG_HOTPLUG=y 234CONFIG_HOTPLUG=y
180CONFIG_PRINTK=y 235CONFIG_PRINTK=y
181CONFIG_BUG=y 236CONFIG_BUG=y
182CONFIG_ELF_CORE=y 237CONFIG_ELF_CORE=y
238# CONFIG_PCSPKR_PLATFORM is not set
183CONFIG_BASE_FULL=y 239CONFIG_BASE_FULL=y
184CONFIG_FUTEX=y 240CONFIG_FUTEX=y
185CONFIG_EPOLL=y 241CONFIG_EPOLL=y
242CONFIG_SIGNALFD=y
243CONFIG_TIMERFD=y
244CONFIG_EVENTFD=y
186CONFIG_SHMEM=y 245CONFIG_SHMEM=y
246CONFIG_AIO=y
247
248#
249# Kernel Performance Events And Counters
250#
251# CONFIG_VM_EVENT_COUNTERS is not set
252CONFIG_PCI_QUIRKS=y
253# CONFIG_COMPAT_BRK is not set
187CONFIG_SLAB=y 254CONFIG_SLAB=y
188CONFIG_VM_EVENT_COUNTERS=y 255# CONFIG_SLUB is not set
189CONFIG_RT_MUTEXES=y
190# CONFIG_TINY_SHMEM is not set
191CONFIG_BASE_SMALL=0
192# CONFIG_SLOB is not set 256# CONFIG_SLOB is not set
257# CONFIG_PROFILING is not set
258CONFIG_HAVE_OPROFILE=y
193 259
194# 260#
195# Loadable module support 261# GCOV-based kernel profiling
196# 262#
263# CONFIG_SLOW_WORK is not set
264CONFIG_HAVE_GENERIC_DMA_COHERENT=y
265CONFIG_SLABINFO=y
266CONFIG_RT_MUTEXES=y
267CONFIG_BASE_SMALL=0
197CONFIG_MODULES=y 268CONFIG_MODULES=y
269# CONFIG_MODULE_FORCE_LOAD is not set
198CONFIG_MODULE_UNLOAD=y 270CONFIG_MODULE_UNLOAD=y
199# CONFIG_MODULE_FORCE_UNLOAD is not set 271# CONFIG_MODULE_FORCE_UNLOAD is not set
200CONFIG_MODVERSIONS=y 272# CONFIG_MODVERSIONS is not set
201CONFIG_MODULE_SRCVERSION_ALL=y 273# CONFIG_MODULE_SRCVERSION_ALL is not set
202CONFIG_KMOD=y
203
204#
205# Block layer
206#
207CONFIG_BLOCK=y 274CONFIG_BLOCK=y
208# CONFIG_LBD is not set 275CONFIG_LBDAF=y
209# CONFIG_BLK_DEV_IO_TRACE is not set 276CONFIG_BLK_DEV_BSG=y
210# CONFIG_LSF is not set 277# CONFIG_BLK_DEV_INTEGRITY is not set
211 278
212# 279#
213# IO Schedulers 280# IO Schedulers
214# 281#
215CONFIG_IOSCHED_NOOP=y 282CONFIG_IOSCHED_NOOP=y
216CONFIG_IOSCHED_AS=y 283# CONFIG_IOSCHED_DEADLINE is not set
217CONFIG_IOSCHED_DEADLINE=y 284# CONFIG_IOSCHED_CFQ is not set
218CONFIG_IOSCHED_CFQ=y
219CONFIG_DEFAULT_AS=y
220# CONFIG_DEFAULT_DEADLINE is not set 285# CONFIG_DEFAULT_DEADLINE is not set
221# CONFIG_DEFAULT_CFQ is not set 286# CONFIG_DEFAULT_CFQ is not set
222# CONFIG_DEFAULT_NOOP is not set 287CONFIG_DEFAULT_NOOP=y
223CONFIG_DEFAULT_IOSCHED="anticipatory" 288CONFIG_DEFAULT_IOSCHED="noop"
289# CONFIG_INLINE_SPIN_TRYLOCK is not set
290# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
291# CONFIG_INLINE_SPIN_LOCK is not set
292# CONFIG_INLINE_SPIN_LOCK_BH is not set
293# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
294# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
295CONFIG_INLINE_SPIN_UNLOCK=y
296# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
297CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
298# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
299# CONFIG_INLINE_READ_TRYLOCK is not set
300# CONFIG_INLINE_READ_LOCK is not set
301# CONFIG_INLINE_READ_LOCK_BH is not set
302# CONFIG_INLINE_READ_LOCK_IRQ is not set
303# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
304CONFIG_INLINE_READ_UNLOCK=y
305# CONFIG_INLINE_READ_UNLOCK_BH is not set
306CONFIG_INLINE_READ_UNLOCK_IRQ=y
307# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
308# CONFIG_INLINE_WRITE_TRYLOCK is not set
309# CONFIG_INLINE_WRITE_LOCK is not set
310# CONFIG_INLINE_WRITE_LOCK_BH is not set
311# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
312# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
313CONFIG_INLINE_WRITE_UNLOCK=y
314# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
315CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
316# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
317# CONFIG_MUTEX_SPIN_ON_OWNER is not set
318CONFIG_FREEZER=y
224 319
225# 320#
226# Bus options (PCI, PCMCIA, EISA, ISA, TC) 321# Bus options (PCI, PCMCIA, EISA, ISA, TC)
227# 322#
228CONFIG_HW_HAS_PCI=y 323CONFIG_HW_HAS_PCI=y
229CONFIG_PCI=y 324CONFIG_PCI=y
325CONFIG_PCI_DOMAINS=y
326# CONFIG_ARCH_SUPPORTS_MSI is not set
327CONFIG_PCI_LEGACY=y
328# CONFIG_PCI_DEBUG is not set
329# CONFIG_PCI_STUB is not set
330# CONFIG_PCI_IOV is not set
230CONFIG_MMU=y 331CONFIG_MMU=y
231 332CONFIG_PCCARD=y
232# 333CONFIG_PCMCIA=y
233# PCCARD (PCMCIA/CardBus) support
234#
235CONFIG_PCCARD=m
236# CONFIG_PCMCIA_DEBUG is not set
237CONFIG_PCMCIA=m
238CONFIG_PCMCIA_LOAD_CIS=y 334CONFIG_PCMCIA_LOAD_CIS=y
239CONFIG_PCMCIA_IOCTL=y 335# CONFIG_PCMCIA_IOCTL is not set
240CONFIG_CARDBUS=y 336# CONFIG_CARDBUS is not set
241 337
242# 338#
243# PC-card bridges 339# PC-card bridges
@@ -245,51 +341,49 @@ CONFIG_CARDBUS=y
245# CONFIG_YENTA is not set 341# CONFIG_YENTA is not set
246# CONFIG_PD6729 is not set 342# CONFIG_PD6729 is not set
247# CONFIG_I82092 is not set 343# CONFIG_I82092 is not set
248CONFIG_PCMCIA_AU1X00=m 344# CONFIG_PCMCIA_AU1X00 is not set
249 345CONFIG_PCMCIA_ALCHEMY_DEVBOARD=y
250#
251# PCI Hotplug Support
252#
253# CONFIG_HOTPLUG_PCI is not set 346# CONFIG_HOTPLUG_PCI is not set
254 347
255# 348#
256# Executable file formats 349# Executable file formats
257# 350#
258CONFIG_BINFMT_ELF=y 351CONFIG_BINFMT_ELF=y
352# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
353# CONFIG_HAVE_AOUT is not set
259# CONFIG_BINFMT_MISC is not set 354# CONFIG_BINFMT_MISC is not set
260CONFIG_TRAD_SIGNALS=y 355CONFIG_TRAD_SIGNALS=y
261 356
262# 357#
263# Power management options 358# Power management options
264# 359#
265# CONFIG_PM is not set 360CONFIG_ARCH_HIBERNATION_POSSIBLE=y
266 361CONFIG_ARCH_SUSPEND_POSSIBLE=y
267# 362CONFIG_PM=y
268# Networking 363# CONFIG_PM_DEBUG is not set
269# 364CONFIG_PM_SLEEP=y
365CONFIG_SUSPEND=y
366CONFIG_SUSPEND_FREEZER=y
367# CONFIG_HIBERNATION is not set
368# CONFIG_APM_EMULATION is not set
369CONFIG_PM_RUNTIME=y
270CONFIG_NET=y 370CONFIG_NET=y
271 371
272# 372#
273# Networking options 373# Networking options
274# 374#
275# CONFIG_NETDEBUG is not set
276CONFIG_PACKET=y 375CONFIG_PACKET=y
277# CONFIG_PACKET_MMAP is not set 376CONFIG_PACKET_MMAP=y
278CONFIG_UNIX=y 377CONFIG_UNIX=y
279CONFIG_XFRM=y 378# CONFIG_NET_KEY is not set
280CONFIG_XFRM_USER=m
281# CONFIG_XFRM_SUB_POLICY is not set
282CONFIG_XFRM_MIGRATE=y
283CONFIG_NET_KEY=y
284CONFIG_NET_KEY_MIGRATE=y
285CONFIG_INET=y 379CONFIG_INET=y
286CONFIG_IP_MULTICAST=y 380CONFIG_IP_MULTICAST=y
287# CONFIG_IP_ADVANCED_ROUTER is not set 381# CONFIG_IP_ADVANCED_ROUTER is not set
288CONFIG_IP_FIB_HASH=y 382CONFIG_IP_FIB_HASH=y
289CONFIG_IP_PNP=y 383CONFIG_IP_PNP=y
290# CONFIG_IP_PNP_DHCP is not set 384CONFIG_IP_PNP_DHCP=y
291CONFIG_IP_PNP_BOOTP=y 385CONFIG_IP_PNP_BOOTP=y
292# CONFIG_IP_PNP_RARP is not set 386CONFIG_IP_PNP_RARP=y
293# CONFIG_NET_IPIP is not set 387# CONFIG_NET_IPIP is not set
294# CONFIG_NET_IPGRE is not set 388# CONFIG_NET_IPGRE is not set
295# CONFIG_IP_MROUTE is not set 389# CONFIG_IP_MROUTE is not set
@@ -300,110 +394,25 @@ CONFIG_IP_PNP_BOOTP=y
300# CONFIG_INET_IPCOMP is not set 394# CONFIG_INET_IPCOMP is not set
301# CONFIG_INET_XFRM_TUNNEL is not set 395# CONFIG_INET_XFRM_TUNNEL is not set
302# CONFIG_INET_TUNNEL is not set 396# CONFIG_INET_TUNNEL is not set
303CONFIG_INET_XFRM_MODE_TRANSPORT=m 397# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
304CONFIG_INET_XFRM_MODE_TUNNEL=m 398# CONFIG_INET_XFRM_MODE_TUNNEL is not set
305CONFIG_INET_XFRM_MODE_BEET=m 399# CONFIG_INET_XFRM_MODE_BEET is not set
306CONFIG_INET_DIAG=y 400CONFIG_INET_LRO=y
307CONFIG_INET_TCP_DIAG=y 401# CONFIG_INET_DIAG is not set
308# CONFIG_TCP_CONG_ADVANCED is not set 402# CONFIG_TCP_CONG_ADVANCED is not set
309CONFIG_TCP_CONG_CUBIC=y 403CONFIG_TCP_CONG_CUBIC=y
310CONFIG_DEFAULT_TCP_CONG="cubic" 404CONFIG_DEFAULT_TCP_CONG="cubic"
311CONFIG_TCP_MD5SIG=y 405# CONFIG_TCP_MD5SIG is not set
312
313#
314# IP: Virtual Server Configuration
315#
316# CONFIG_IP_VS is not set
317# CONFIG_IPV6 is not set 406# CONFIG_IPV6 is not set
318# CONFIG_INET6_XFRM_TUNNEL is not set 407# CONFIG_NETWORK_SECMARK is not set
319# CONFIG_INET6_TUNNEL is not set 408# CONFIG_NETFILTER is not set
320CONFIG_NETWORK_SECMARK=y
321CONFIG_NETFILTER=y
322# CONFIG_NETFILTER_DEBUG is not set
323
324#
325# Core Netfilter Configuration
326#
327CONFIG_NETFILTER_NETLINK=m
328CONFIG_NETFILTER_NETLINK_QUEUE=m
329CONFIG_NETFILTER_NETLINK_LOG=m
330CONFIG_NF_CONNTRACK_ENABLED=m
331CONFIG_NF_CONNTRACK_SUPPORT=y
332# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set
333CONFIG_NF_CONNTRACK=m
334CONFIG_NF_CT_ACCT=y
335CONFIG_NF_CONNTRACK_MARK=y
336CONFIG_NF_CONNTRACK_SECMARK=y
337CONFIG_NF_CONNTRACK_EVENTS=y
338CONFIG_NF_CT_PROTO_GRE=m
339CONFIG_NF_CT_PROTO_SCTP=m
340CONFIG_NF_CONNTRACK_AMANDA=m
341CONFIG_NF_CONNTRACK_FTP=m
342CONFIG_NF_CONNTRACK_H323=m
343CONFIG_NF_CONNTRACK_IRC=m
344# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
345CONFIG_NF_CONNTRACK_PPTP=m
346CONFIG_NF_CONNTRACK_SANE=m
347CONFIG_NF_CONNTRACK_SIP=m
348CONFIG_NF_CONNTRACK_TFTP=m
349CONFIG_NF_CT_NETLINK=m
350CONFIG_NETFILTER_XTABLES=m
351CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
352CONFIG_NETFILTER_XT_TARGET_MARK=m
353CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
354CONFIG_NETFILTER_XT_TARGET_NFLOG=m
355CONFIG_NETFILTER_XT_TARGET_SECMARK=m
356CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
357CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
358CONFIG_NETFILTER_XT_MATCH_COMMENT=m
359CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
360CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
361CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
362CONFIG_NETFILTER_XT_MATCH_DCCP=m
363CONFIG_NETFILTER_XT_MATCH_DSCP=m
364CONFIG_NETFILTER_XT_MATCH_ESP=m
365CONFIG_NETFILTER_XT_MATCH_HELPER=m
366CONFIG_NETFILTER_XT_MATCH_LENGTH=m
367CONFIG_NETFILTER_XT_MATCH_LIMIT=m
368CONFIG_NETFILTER_XT_MATCH_MAC=m
369CONFIG_NETFILTER_XT_MATCH_MARK=m
370CONFIG_NETFILTER_XT_MATCH_POLICY=m
371CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
372CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
373CONFIG_NETFILTER_XT_MATCH_QUOTA=m
374CONFIG_NETFILTER_XT_MATCH_REALM=m
375CONFIG_NETFILTER_XT_MATCH_SCTP=m
376CONFIG_NETFILTER_XT_MATCH_STATE=m
377CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
378CONFIG_NETFILTER_XT_MATCH_STRING=m
379CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
380CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
381
382#
383# IP: Netfilter Configuration
384#
385CONFIG_NF_CONNTRACK_IPV4=m
386CONFIG_NF_CONNTRACK_PROC_COMPAT=y
387# CONFIG_IP_NF_QUEUE is not set
388# CONFIG_IP_NF_IPTABLES is not set
389# CONFIG_IP_NF_ARPTABLES is not set
390
391#
392# DCCP Configuration (EXPERIMENTAL)
393#
394# CONFIG_IP_DCCP is not set 409# CONFIG_IP_DCCP is not set
395
396#
397# SCTP Configuration (EXPERIMENTAL)
398#
399# CONFIG_IP_SCTP is not set 410# CONFIG_IP_SCTP is not set
400 411# CONFIG_RDS is not set
401#
402# TIPC Configuration (EXPERIMENTAL)
403#
404# CONFIG_TIPC is not set 412# CONFIG_TIPC is not set
405# CONFIG_ATM is not set 413# CONFIG_ATM is not set
406# CONFIG_BRIDGE is not set 414# CONFIG_BRIDGE is not set
415# CONFIG_NET_DSA is not set
407# CONFIG_VLAN_8021Q is not set 416# CONFIG_VLAN_8021Q is not set
408# CONFIG_DECNET is not set 417# CONFIG_DECNET is not set
409# CONFIG_LLC2 is not set 418# CONFIG_LLC2 is not set
@@ -413,27 +422,24 @@ CONFIG_NF_CONNTRACK_PROC_COMPAT=y
413# CONFIG_LAPB is not set 422# CONFIG_LAPB is not set
414# CONFIG_ECONET is not set 423# CONFIG_ECONET is not set
415# CONFIG_WAN_ROUTER is not set 424# CONFIG_WAN_ROUTER is not set
416 425# CONFIG_PHONET is not set
417# 426# CONFIG_IEEE802154 is not set
418# QoS and/or fair queueing
419#
420# CONFIG_NET_SCHED is not set 427# CONFIG_NET_SCHED is not set
421CONFIG_NET_CLS_ROUTE=y 428# CONFIG_DCB is not set
422 429
423# 430#
424# Network testing 431# Network testing
425# 432#
426# CONFIG_NET_PKTGEN is not set 433# CONFIG_NET_PKTGEN is not set
427# CONFIG_HAMRADIO is not set 434# CONFIG_HAMRADIO is not set
435# CONFIG_CAN is not set
428# CONFIG_IRDA is not set 436# CONFIG_IRDA is not set
429# CONFIG_BT is not set 437# CONFIG_BT is not set
430CONFIG_IEEE80211=m 438# CONFIG_AF_RXRPC is not set
431# CONFIG_IEEE80211_DEBUG is not set 439# CONFIG_WIRELESS is not set
432CONFIG_IEEE80211_CRYPT_WEP=m 440# CONFIG_WIMAX is not set
433CONFIG_IEEE80211_CRYPT_CCMP=m 441# CONFIG_RFKILL is not set
434CONFIG_IEEE80211_SOFTMAC=m 442# CONFIG_NET_9P is not set
435# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
436CONFIG_WIRELESS_EXT=y
437 443
438# 444#
439# Device Drivers 445# Device Drivers
@@ -442,25 +448,25 @@ CONFIG_WIRELESS_EXT=y
442# 448#
443# Generic Driver Options 449# Generic Driver Options
444# 450#
451CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
452# CONFIG_DEVTMPFS is not set
445CONFIG_STANDALONE=y 453CONFIG_STANDALONE=y
446CONFIG_PREVENT_FIRMWARE_BUILD=y 454CONFIG_PREVENT_FIRMWARE_BUILD=y
447CONFIG_FW_LOADER=m 455CONFIG_FW_LOADER=y
456CONFIG_FIRMWARE_IN_KERNEL=y
457CONFIG_EXTRA_FIRMWARE=""
458# CONFIG_DEBUG_DRIVER is not set
459# CONFIG_DEBUG_DEVRES is not set
448# CONFIG_SYS_HYPERVISOR is not set 460# CONFIG_SYS_HYPERVISOR is not set
449 461# CONFIG_CONNECTOR is not set
450#
451# Connector - unified userspace <-> kernelspace linker
452#
453CONFIG_CONNECTOR=m
454
455#
456# Memory Technology Devices (MTD)
457#
458CONFIG_MTD=y 462CONFIG_MTD=y
459# CONFIG_MTD_DEBUG is not set 463# CONFIG_MTD_DEBUG is not set
464# CONFIG_MTD_TESTS is not set
460# CONFIG_MTD_CONCAT is not set 465# CONFIG_MTD_CONCAT is not set
461CONFIG_MTD_PARTITIONS=y 466CONFIG_MTD_PARTITIONS=y
462# CONFIG_MTD_REDBOOT_PARTS is not set 467# CONFIG_MTD_REDBOOT_PARTS is not set
463# CONFIG_MTD_CMDLINE_PARTS is not set 468# CONFIG_MTD_CMDLINE_PARTS is not set
469# CONFIG_MTD_AR7_PARTS is not set
464 470
465# 471#
466# User Modules And Translation Layers 472# User Modules And Translation Layers
@@ -473,6 +479,7 @@ CONFIG_MTD_BLOCK=y
473# CONFIG_INFTL is not set 479# CONFIG_INFTL is not set
474# CONFIG_RFD_FTL is not set 480# CONFIG_RFD_FTL is not set
475# CONFIG_SSFDC is not set 481# CONFIG_SSFDC is not set
482# CONFIG_MTD_OOPS is not set
476 483
477# 484#
478# RAM/ROM/Flash chip drivers 485# RAM/ROM/Flash chip drivers
@@ -498,20 +505,23 @@ CONFIG_MTD_CFI_UTIL=y
498# CONFIG_MTD_RAM is not set 505# CONFIG_MTD_RAM is not set
499# CONFIG_MTD_ROM is not set 506# CONFIG_MTD_ROM is not set
500# CONFIG_MTD_ABSENT is not set 507# CONFIG_MTD_ABSENT is not set
501# CONFIG_MTD_OBSOLETE_CHIPS is not set
502 508
503# 509#
504# Mapping drivers for chip access 510# Mapping drivers for chip access
505# 511#
506# CONFIG_MTD_COMPLEX_MAPPINGS is not set 512# CONFIG_MTD_COMPLEX_MAPPINGS is not set
507# CONFIG_MTD_PHYSMAP is not set 513CONFIG_MTD_PHYSMAP=y
508CONFIG_MTD_ALCHEMY=y 514# CONFIG_MTD_PHYSMAP_COMPAT is not set
515# CONFIG_MTD_INTEL_VR_NOR is not set
509# CONFIG_MTD_PLATRAM is not set 516# CONFIG_MTD_PLATRAM is not set
510 517
511# 518#
512# Self-contained MTD device drivers 519# Self-contained MTD device drivers
513# 520#
514# CONFIG_MTD_PMC551 is not set 521# CONFIG_MTD_PMC551 is not set
522# CONFIG_MTD_DATAFLASH is not set
523# CONFIG_MTD_M25P80 is not set
524# CONFIG_MTD_SST25L is not set
515# CONFIG_MTD_SLRAM is not set 525# CONFIG_MTD_SLRAM is not set
516# CONFIG_MTD_PHRAM is not set 526# CONFIG_MTD_PHRAM is not set
517# CONFIG_MTD_MTDRAM is not set 527# CONFIG_MTD_MTDRAM is not set
@@ -523,105 +533,96 @@ CONFIG_MTD_ALCHEMY=y
523# CONFIG_MTD_DOC2000 is not set 533# CONFIG_MTD_DOC2000 is not set
524# CONFIG_MTD_DOC2001 is not set 534# CONFIG_MTD_DOC2001 is not set
525# CONFIG_MTD_DOC2001PLUS is not set 535# CONFIG_MTD_DOC2001PLUS is not set
526 536CONFIG_MTD_NAND=y
527#
528# NAND Flash Device Drivers
529#
530CONFIG_MTD_NAND=m
531# CONFIG_MTD_NAND_VERIFY_WRITE is not set 537# CONFIG_MTD_NAND_VERIFY_WRITE is not set
532# CONFIG_MTD_NAND_ECC_SMC is not set 538# CONFIG_MTD_NAND_ECC_SMC is not set
533CONFIG_MTD_NAND_IDS=m 539# CONFIG_MTD_NAND_MUSEUM_IDS is not set
534CONFIG_MTD_NAND_AU1550=m 540CONFIG_MTD_NAND_IDS=y
541CONFIG_MTD_NAND_AU1550=y
535# CONFIG_MTD_NAND_DISKONCHIP is not set 542# CONFIG_MTD_NAND_DISKONCHIP is not set
536# CONFIG_MTD_NAND_CAFE is not set 543# CONFIG_MTD_NAND_CAFE is not set
537# CONFIG_MTD_NAND_NANDSIM is not set 544# CONFIG_MTD_NAND_NANDSIM is not set
538 545# CONFIG_MTD_NAND_PLATFORM is not set
539# 546# CONFIG_MTD_ALAUDA is not set
540# OneNAND Flash Device Drivers
541#
542# CONFIG_MTD_ONENAND is not set 547# CONFIG_MTD_ONENAND is not set
543 548
544# 549#
545# Parallel port support 550# LPDDR flash memory drivers
546# 551#
547# CONFIG_PARPORT is not set 552# CONFIG_MTD_LPDDR is not set
548 553
549# 554#
550# Plug and Play support 555# UBI - Unsorted block images
551#
552# CONFIG_PNPACPI is not set
553
554#
555# Block devices
556# 556#
557# CONFIG_MTD_UBI is not set
558# CONFIG_PARPORT is not set
559CONFIG_BLK_DEV=y
557# CONFIG_BLK_CPQ_DA is not set 560# CONFIG_BLK_CPQ_DA is not set
558# CONFIG_BLK_CPQ_CISS_DA is not set 561# CONFIG_BLK_CPQ_CISS_DA is not set
559# CONFIG_BLK_DEV_DAC960 is not set 562# CONFIG_BLK_DEV_DAC960 is not set
560# CONFIG_BLK_DEV_UMEM is not set 563# CONFIG_BLK_DEV_UMEM is not set
561# CONFIG_BLK_DEV_COW_COMMON is not set 564# CONFIG_BLK_DEV_COW_COMMON is not set
562CONFIG_BLK_DEV_LOOP=y 565# CONFIG_BLK_DEV_LOOP is not set
563# CONFIG_BLK_DEV_CRYPTOLOOP is not set
564# CONFIG_BLK_DEV_NBD is not set
565# CONFIG_BLK_DEV_SX8 is not set
566# CONFIG_BLK_DEV_RAM is not set
567# CONFIG_BLK_DEV_INITRD is not set
568CONFIG_CDROM_PKTCDVD=m
569CONFIG_CDROM_PKTCDVD_BUFFERS=8
570# CONFIG_CDROM_PKTCDVD_WCACHE is not set
571CONFIG_ATA_OVER_ETH=m
572
573#
574# Misc devices
575#
576CONFIG_SGI_IOC4=m
577# CONFIG_TIFM_CORE is not set
578 566
579# 567#
580# ATA/ATAPI/MFM/RLL support 568# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
581# 569#
570# CONFIG_BLK_DEV_NBD is not set
571# CONFIG_BLK_DEV_SX8 is not set
572CONFIG_BLK_DEV_UB=y
573# CONFIG_BLK_DEV_RAM is not set
574# CONFIG_CDROM_PKTCDVD is not set
575# CONFIG_ATA_OVER_ETH is not set
576# CONFIG_BLK_DEV_HD is not set
577# CONFIG_MISC_DEVICES is not set
578CONFIG_HAVE_IDE=y
582CONFIG_IDE=y 579CONFIG_IDE=y
583CONFIG_IDE_MAX_HWIFS=4
584CONFIG_BLK_DEV_IDE=y
585 580
586# 581#
587# Please see Documentation/ide.txt for help/info on IDE drives 582# Please see Documentation/ide/ide.txt for help/info on IDE drives
588# 583#
584CONFIG_IDE_XFER_MODE=y
585CONFIG_IDE_ATAPI=y
589# CONFIG_BLK_DEV_IDE_SATA is not set 586# CONFIG_BLK_DEV_IDE_SATA is not set
590CONFIG_BLK_DEV_IDEDISK=y 587CONFIG_IDE_GD=y
591# CONFIG_IDEDISK_MULTI_MODE is not set 588CONFIG_IDE_GD_ATA=y
592CONFIG_BLK_DEV_IDECS=m 589# CONFIG_IDE_GD_ATAPI is not set
593# CONFIG_BLK_DEV_DELKIN is not set 590CONFIG_BLK_DEV_IDECS=y
594# CONFIG_BLK_DEV_IDECD is not set 591CONFIG_BLK_DEV_IDECD=y
592# CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS is not set
595# CONFIG_BLK_DEV_IDETAPE is not set 593# CONFIG_BLK_DEV_IDETAPE is not set
596# CONFIG_BLK_DEV_IDEFLOPPY is not set 594CONFIG_IDE_TASK_IOCTL=y
597# CONFIG_IDE_TASK_IOCTL is not set 595CONFIG_IDE_PROC_FS=y
598 596
599# 597#
600# IDE chipset support/bugfixes 598# IDE chipset support/bugfixes
601# 599#
602CONFIG_IDE_GENERIC=y 600# CONFIG_IDE_GENERIC is not set
601# CONFIG_BLK_DEV_PLATFORM is not set
602CONFIG_BLK_DEV_IDEDMA_SFF=y
603
604#
605# PCI IDE chipsets support
606#
603CONFIG_BLK_DEV_IDEPCI=y 607CONFIG_BLK_DEV_IDEPCI=y
604# CONFIG_IDEPCI_SHARE_IRQ is not set 608# CONFIG_IDEPCI_PCIBUS_ORDER is not set
605# CONFIG_BLK_DEV_OFFBOARD is not set 609# CONFIG_BLK_DEV_OFFBOARD is not set
606CONFIG_BLK_DEV_GENERIC=y 610# CONFIG_BLK_DEV_GENERIC is not set
607# CONFIG_BLK_DEV_OPTI621 is not set 611# CONFIG_BLK_DEV_OPTI621 is not set
608CONFIG_BLK_DEV_IDEDMA_PCI=y 612CONFIG_BLK_DEV_IDEDMA_PCI=y
609# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
610# CONFIG_IDEDMA_PCI_AUTO is not set
611# CONFIG_BLK_DEV_AEC62XX is not set 613# CONFIG_BLK_DEV_AEC62XX is not set
612# CONFIG_BLK_DEV_ALI15X3 is not set 614# CONFIG_BLK_DEV_ALI15X3 is not set
613# CONFIG_BLK_DEV_AMD74XX is not set 615# CONFIG_BLK_DEV_AMD74XX is not set
614# CONFIG_BLK_DEV_CMD64X is not set 616# CONFIG_BLK_DEV_CMD64X is not set
615# CONFIG_BLK_DEV_TRIFLEX is not set 617# CONFIG_BLK_DEV_TRIFLEX is not set
616# CONFIG_BLK_DEV_CY82C693 is not set
617# CONFIG_BLK_DEV_CS5520 is not set 618# CONFIG_BLK_DEV_CS5520 is not set
618# CONFIG_BLK_DEV_CS5530 is not set 619# CONFIG_BLK_DEV_CS5530 is not set
619# CONFIG_BLK_DEV_HPT34X is not set 620CONFIG_BLK_DEV_HPT366=y
620# CONFIG_BLK_DEV_HPT366 is not set
621# CONFIG_BLK_DEV_JMICRON is not set 621# CONFIG_BLK_DEV_JMICRON is not set
622# CONFIG_BLK_DEV_SC1200 is not set 622# CONFIG_BLK_DEV_SC1200 is not set
623# CONFIG_BLK_DEV_PIIX is not set 623# CONFIG_BLK_DEV_PIIX is not set
624CONFIG_BLK_DEV_IT8213=m 624# CONFIG_BLK_DEV_IT8172 is not set
625# CONFIG_BLK_DEV_IT8213 is not set
625# CONFIG_BLK_DEV_IT821X is not set 626# CONFIG_BLK_DEV_IT821X is not set
626# CONFIG_BLK_DEV_NS87415 is not set 627# CONFIG_BLK_DEV_NS87415 is not set
627# CONFIG_BLK_DEV_PDC202XX_OLD is not set 628# CONFIG_BLK_DEV_PDC202XX_OLD is not set
@@ -631,82 +632,65 @@ CONFIG_BLK_DEV_IT8213=m
631# CONFIG_BLK_DEV_SLC90E66 is not set 632# CONFIG_BLK_DEV_SLC90E66 is not set
632# CONFIG_BLK_DEV_TRM290 is not set 633# CONFIG_BLK_DEV_TRM290 is not set
633# CONFIG_BLK_DEV_VIA82CXXX is not set 634# CONFIG_BLK_DEV_VIA82CXXX is not set
634CONFIG_BLK_DEV_TC86C001=m 635# CONFIG_BLK_DEV_TC86C001 is not set
635# CONFIG_IDE_ARM is not set
636CONFIG_BLK_DEV_IDEDMA=y 636CONFIG_BLK_DEV_IDEDMA=y
637# CONFIG_IDEDMA_IVB is not set
638# CONFIG_IDEDMA_AUTO is not set
639# CONFIG_BLK_DEV_HD is not set
640 637
641# 638#
642# SCSI device support 639# SCSI device support
643# 640#
644CONFIG_RAID_ATTRS=m 641# CONFIG_RAID_ATTRS is not set
645# CONFIG_SCSI is not set 642# CONFIG_SCSI is not set
643# CONFIG_SCSI_DMA is not set
646# CONFIG_SCSI_NETLINK is not set 644# CONFIG_SCSI_NETLINK is not set
647
648#
649# Serial ATA (prod) and Parallel ATA (experimental) drivers
650#
651# CONFIG_ATA is not set 645# CONFIG_ATA is not set
652
653#
654# Multi-device support (RAID and LVM)
655#
656# CONFIG_MD is not set 646# CONFIG_MD is not set
657
658#
659# Fusion MPT device support
660#
661# CONFIG_FUSION is not set 647# CONFIG_FUSION is not set
662 648
663# 649#
664# IEEE 1394 (FireWire) support 650# IEEE 1394 (FireWire) support
665# 651#
666# CONFIG_IEEE1394 is not set
667 652
668# 653#
669# I2O device support 654# You can enable one or both FireWire driver stacks.
670# 655#
671# CONFIG_I2O is not set
672 656
673# 657#
674# Network device support 658# The newer stack is recommended.
675# 659#
660# CONFIG_FIREWIRE is not set
661# CONFIG_IEEE1394 is not set
662# CONFIG_I2O is not set
676CONFIG_NETDEVICES=y 663CONFIG_NETDEVICES=y
677# CONFIG_DUMMY is not set 664# CONFIG_DUMMY is not set
678# CONFIG_BONDING is not set 665# CONFIG_BONDING is not set
666# CONFIG_MACVLAN is not set
679# CONFIG_EQUALIZER is not set 667# CONFIG_EQUALIZER is not set
680# CONFIG_TUN is not set 668# CONFIG_TUN is not set
681 669# CONFIG_VETH is not set
682#
683# ARCnet devices
684#
685# CONFIG_ARCNET is not set 670# CONFIG_ARCNET is not set
686
687#
688# PHY device support
689#
690CONFIG_PHYLIB=y 671CONFIG_PHYLIB=y
691 672
692# 673#
693# MII PHY device drivers 674# MII PHY device drivers
694# 675#
695CONFIG_MARVELL_PHY=m 676CONFIG_MARVELL_PHY=y
696CONFIG_DAVICOM_PHY=m 677CONFIG_DAVICOM_PHY=y
697CONFIG_QSEMI_PHY=m 678CONFIG_QSEMI_PHY=y
698CONFIG_LXT_PHY=m 679CONFIG_LXT_PHY=y
699CONFIG_CICADA_PHY=m 680CONFIG_CICADA_PHY=y
700CONFIG_VITESSE_PHY=m 681CONFIG_VITESSE_PHY=y
701CONFIG_SMSC_PHY=m 682CONFIG_SMSC_PHY=y
702# CONFIG_BROADCOM_PHY is not set 683CONFIG_BROADCOM_PHY=y
684CONFIG_ICPLUS_PHY=y
685CONFIG_REALTEK_PHY=y
686CONFIG_NATIONAL_PHY=y
687CONFIG_STE10XP=y
688CONFIG_LSI_ET1011C_PHY=y
703# CONFIG_FIXED_PHY is not set 689# CONFIG_FIXED_PHY is not set
704 690# CONFIG_MDIO_BITBANG is not set
705#
706# Ethernet (10 or 100Mbit)
707#
708CONFIG_NET_ETHERNET=y 691CONFIG_NET_ETHERNET=y
709CONFIG_MII=m 692CONFIG_MII=y
693# CONFIG_AX88796 is not set
710CONFIG_MIPS_AU1X00_ENET=y 694CONFIG_MIPS_AU1X00_ENET=y
711# CONFIG_HAPPYMEAL is not set 695# CONFIG_HAPPYMEAL is not set
712# CONFIG_SUNGEM is not set 696# CONFIG_SUNGEM is not set
@@ -714,96 +698,53 @@ CONFIG_MIPS_AU1X00_ENET=y
714# CONFIG_NET_VENDOR_3COM is not set 698# CONFIG_NET_VENDOR_3COM is not set
715# CONFIG_SMC91X is not set 699# CONFIG_SMC91X is not set
716# CONFIG_DM9000 is not set 700# CONFIG_DM9000 is not set
717 701# CONFIG_ENC28J60 is not set
718# 702# CONFIG_ETHOC is not set
719# Tulip family network device support 703# CONFIG_SMSC911X is not set
720# 704# CONFIG_DNET is not set
721# CONFIG_NET_TULIP is not set 705# CONFIG_NET_TULIP is not set
722# CONFIG_HP100 is not set 706# CONFIG_HP100 is not set
707# CONFIG_IBM_NEW_EMAC_ZMII is not set
708# CONFIG_IBM_NEW_EMAC_RGMII is not set
709# CONFIG_IBM_NEW_EMAC_TAH is not set
710# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
711# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
712# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
713# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
723# CONFIG_NET_PCI is not set 714# CONFIG_NET_PCI is not set
724 715# CONFIG_B44 is not set
725# 716# CONFIG_KS8842 is not set
726# Ethernet (1000 Mbit) 717# CONFIG_KS8851 is not set
727# 718# CONFIG_KS8851_MLL is not set
728# CONFIG_ACENIC is not set 719# CONFIG_ATL2 is not set
729# CONFIG_DL2K is not set 720# CONFIG_NETDEV_1000 is not set
730# CONFIG_E1000 is not set 721# CONFIG_NETDEV_10000 is not set
731# CONFIG_NS83820 is not set
732# CONFIG_HAMACHI is not set
733# CONFIG_YELLOWFIN is not set
734# CONFIG_R8169 is not set
735# CONFIG_SIS190 is not set
736# CONFIG_SKGE is not set
737# CONFIG_SKY2 is not set
738# CONFIG_SK98LIN is not set
739# CONFIG_TIGON3 is not set
740# CONFIG_BNX2 is not set
741CONFIG_QLA3XXX=m
742# CONFIG_ATL1 is not set
743
744#
745# Ethernet (10000 Mbit)
746#
747# CONFIG_CHELSIO_T1 is not set
748CONFIG_CHELSIO_T3=m
749# CONFIG_IXGB is not set
750# CONFIG_S2IO is not set
751# CONFIG_MYRI10GE is not set
752CONFIG_NETXEN_NIC=m
753
754#
755# Token Ring devices
756#
757# CONFIG_TR is not set 722# CONFIG_TR is not set
723# CONFIG_WLAN is not set
758 724
759# 725#
760# Wireless LAN (non-hamradio) 726# Enable WiMAX (Networking options) to see the WiMAX drivers
761#
762# CONFIG_NET_RADIO is not set
763
764#
765# PCMCIA network device support
766# 727#
767CONFIG_NET_PCMCIA=y
768CONFIG_PCMCIA_3C589=m
769CONFIG_PCMCIA_3C574=m
770CONFIG_PCMCIA_FMVJ18X=m
771CONFIG_PCMCIA_PCNET=m
772CONFIG_PCMCIA_NMCLAN=m
773CONFIG_PCMCIA_SMC91C92=m
774CONFIG_PCMCIA_XIRC2PS=m
775CONFIG_PCMCIA_AXNET=m
776 728
777# 729#
778# Wan interfaces 730# USB Network Adapters
779# 731#
732# CONFIG_USB_CATC is not set
733# CONFIG_USB_KAWETH is not set
734# CONFIG_USB_PEGASUS is not set
735# CONFIG_USB_RTL8150 is not set
736# CONFIG_USB_USBNET is not set
737# CONFIG_NET_PCMCIA is not set
780# CONFIG_WAN is not set 738# CONFIG_WAN is not set
781# CONFIG_FDDI is not set 739# CONFIG_FDDI is not set
782# CONFIG_HIPPI is not set 740# CONFIG_HIPPI is not set
783CONFIG_PPP=m 741# CONFIG_PPP is not set
784CONFIG_PPP_MULTILINK=y
785# CONFIG_PPP_FILTER is not set
786CONFIG_PPP_ASYNC=m
787# CONFIG_PPP_SYNC_TTY is not set
788CONFIG_PPP_DEFLATE=m
789# CONFIG_PPP_BSDCOMP is not set
790CONFIG_PPP_MPPE=m
791CONFIG_PPPOE=m
792# CONFIG_SLIP is not set 742# CONFIG_SLIP is not set
793CONFIG_SLHC=m
794# CONFIG_SHAPER is not set
795# CONFIG_NETCONSOLE is not set 743# CONFIG_NETCONSOLE is not set
796# CONFIG_NETPOLL is not set 744# CONFIG_NETPOLL is not set
797# CONFIG_NET_POLL_CONTROLLER is not set 745# CONFIG_NET_POLL_CONTROLLER is not set
798 746# CONFIG_VMXNET3 is not set
799#
800# ISDN subsystem
801#
802# CONFIG_ISDN is not set 747# CONFIG_ISDN is not set
803
804#
805# Telephony Support
806#
807# CONFIG_PHONE is not set 748# CONFIG_PHONE is not set
808 749
809# 750#
@@ -811,16 +752,14 @@ CONFIG_SLHC=m
811# 752#
812CONFIG_INPUT=y 753CONFIG_INPUT=y
813# CONFIG_INPUT_FF_MEMLESS is not set 754# CONFIG_INPUT_FF_MEMLESS is not set
755# CONFIG_INPUT_POLLDEV is not set
756# CONFIG_INPUT_SPARSEKMAP is not set
814 757
815# 758#
816# Userland interfaces 759# Userland interfaces
817# 760#
818CONFIG_INPUT_MOUSEDEV=y 761# CONFIG_INPUT_MOUSEDEV is not set
819CONFIG_INPUT_MOUSEDEV_PSAUX=y
820CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
821CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
822# CONFIG_INPUT_JOYDEV is not set 762# CONFIG_INPUT_JOYDEV is not set
823# CONFIG_INPUT_TSDEV is not set
824CONFIG_INPUT_EVDEV=y 763CONFIG_INPUT_EVDEV=y
825# CONFIG_INPUT_EVBUG is not set 764# CONFIG_INPUT_EVBUG is not set
826 765
@@ -830,26 +769,27 @@ CONFIG_INPUT_EVDEV=y
830# CONFIG_INPUT_KEYBOARD is not set 769# CONFIG_INPUT_KEYBOARD is not set
831# CONFIG_INPUT_MOUSE is not set 770# CONFIG_INPUT_MOUSE is not set
832# CONFIG_INPUT_JOYSTICK is not set 771# CONFIG_INPUT_JOYSTICK is not set
772# CONFIG_INPUT_TABLET is not set
833# CONFIG_INPUT_TOUCHSCREEN is not set 773# CONFIG_INPUT_TOUCHSCREEN is not set
834# CONFIG_INPUT_MISC is not set 774# CONFIG_INPUT_MISC is not set
835 775
836# 776#
837# Hardware I/O ports 777# Hardware I/O ports
838# 778#
839CONFIG_SERIO=y 779# CONFIG_SERIO is not set
840# CONFIG_SERIO_I8042 is not set
841CONFIG_SERIO_SERPORT=y
842# CONFIG_SERIO_PCIPS2 is not set
843# CONFIG_SERIO_LIBPS2 is not set
844CONFIG_SERIO_RAW=m
845# CONFIG_GAMEPORT is not set 780# CONFIG_GAMEPORT is not set
846 781
847# 782#
848# Character devices 783# Character devices
849# 784#
850# CONFIG_VT is not set 785CONFIG_VT=y
786CONFIG_CONSOLE_TRANSLATIONS=y
787CONFIG_VT_CONSOLE=y
788CONFIG_HW_CONSOLE=y
789# CONFIG_VT_HW_CONSOLE_BINDING is not set
790CONFIG_DEVKMEM=y
851# CONFIG_SERIAL_NONSTANDARD is not set 791# CONFIG_SERIAL_NONSTANDARD is not set
852# CONFIG_AU1X00_GPIO is not set 792# CONFIG_NOZOMI is not set
853 793
854# 794#
855# Serial drivers 795# Serial drivers
@@ -866,199 +806,420 @@ CONFIG_SERIAL_8250_AU1X00=y
866# 806#
867# Non-8250 serial port support 807# Non-8250 serial port support
868# 808#
809# CONFIG_SERIAL_MAX3100 is not set
869CONFIG_SERIAL_CORE=y 810CONFIG_SERIAL_CORE=y
870CONFIG_SERIAL_CORE_CONSOLE=y 811CONFIG_SERIAL_CORE_CONSOLE=y
871# CONFIG_SERIAL_JSM is not set 812# CONFIG_SERIAL_JSM is not set
872CONFIG_UNIX98_PTYS=y 813CONFIG_UNIX98_PTYS=y
873CONFIG_LEGACY_PTYS=y 814# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
874CONFIG_LEGACY_PTY_COUNT=256 815# CONFIG_LEGACY_PTYS is not set
875
876#
877# IPMI
878#
879# CONFIG_IPMI_HANDLER is not set 816# CONFIG_IPMI_HANDLER is not set
880
881#
882# Watchdog Cards
883#
884# CONFIG_WATCHDOG is not set
885# CONFIG_HW_RANDOM is not set 817# CONFIG_HW_RANDOM is not set
886# CONFIG_RTC is not set
887# CONFIG_GEN_RTC is not set
888# CONFIG_DTLK is not set
889# CONFIG_R3964 is not set 818# CONFIG_R3964 is not set
890# CONFIG_APPLICOM is not set 819# CONFIG_APPLICOM is not set
891# CONFIG_DRM is not set
892 820
893# 821#
894# PCMCIA character devices 822# PCMCIA character devices
895# 823#
896CONFIG_SYNCLINK_CS=m 824# CONFIG_SYNCLINK_CS is not set
897# CONFIG_CARDMAN_4000 is not set 825# CONFIG_CARDMAN_4000 is not set
898# CONFIG_CARDMAN_4040 is not set 826# CONFIG_CARDMAN_4040 is not set
827# CONFIG_IPWIRELESS is not set
899# CONFIG_RAW_DRIVER is not set 828# CONFIG_RAW_DRIVER is not set
829# CONFIG_TCG_TPM is not set
830CONFIG_DEVPORT=y
831CONFIG_I2C=y
832CONFIG_I2C_BOARDINFO=y
833# CONFIG_I2C_COMPAT is not set
834CONFIG_I2C_CHARDEV=y
835# CONFIG_I2C_HELPER_AUTO is not set
900 836
901# 837#
902# TPM devices 838# I2C Algorithms
903# 839#
904# CONFIG_TCG_TPM is not set 840# CONFIG_I2C_ALGOBIT is not set
841# CONFIG_I2C_ALGOPCF is not set
842# CONFIG_I2C_ALGOPCA is not set
905 843
906# 844#
907# I2C support 845# I2C Hardware Bus support
908# 846#
909# CONFIG_I2C is not set
910 847
911# 848#
912# SPI support 849# PC SMBus host controller drivers
913# 850#
914# CONFIG_SPI is not set 851# CONFIG_I2C_ALI1535 is not set
915# CONFIG_SPI_MASTER is not set 852# CONFIG_I2C_ALI1563 is not set
853# CONFIG_I2C_ALI15X3 is not set
854# CONFIG_I2C_AMD756 is not set
855# CONFIG_I2C_AMD8111 is not set
856# CONFIG_I2C_I801 is not set
857# CONFIG_I2C_ISCH is not set
858# CONFIG_I2C_PIIX4 is not set
859# CONFIG_I2C_NFORCE2 is not set
860# CONFIG_I2C_SIS5595 is not set
861# CONFIG_I2C_SIS630 is not set
862# CONFIG_I2C_SIS96X is not set
863# CONFIG_I2C_VIA is not set
864# CONFIG_I2C_VIAPRO is not set
916 865
917# 866#
918# Dallas's 1-wire bus 867# I2C system bus drivers (mostly embedded / system-on-chip)
919# 868#
920# CONFIG_W1 is not set 869CONFIG_I2C_AU1550=y
870# CONFIG_I2C_GPIO is not set
871# CONFIG_I2C_OCORES is not set
872# CONFIG_I2C_SIMTEC is not set
921 873
922# 874#
923# Hardware Monitoring support 875# External I2C/SMBus adapter drivers
924# 876#
925# CONFIG_HWMON is not set 877# CONFIG_I2C_PARPORT_LIGHT is not set
926# CONFIG_HWMON_VID is not set 878# CONFIG_I2C_TAOS_EVM is not set
879# CONFIG_I2C_TINY_USB is not set
927 880
928# 881#
929# Multimedia devices 882# Other I2C/SMBus bus drivers
930# 883#
931# CONFIG_VIDEO_DEV is not set 884# CONFIG_I2C_PCA_PLATFORM is not set
885# CONFIG_I2C_STUB is not set
932 886
933# 887#
934# Digital Video Broadcasting Devices 888# Miscellaneous I2C Chip support
935# 889#
936# CONFIG_DVB is not set 890# CONFIG_SENSORS_TSL2550 is not set
891# CONFIG_I2C_DEBUG_CORE is not set
892# CONFIG_I2C_DEBUG_ALGO is not set
893# CONFIG_I2C_DEBUG_BUS is not set
894# CONFIG_I2C_DEBUG_CHIP is not set
895CONFIG_SPI=y
896# CONFIG_SPI_DEBUG is not set
897CONFIG_SPI_MASTER=y
937 898
938# 899#
939# Graphics support 900# SPI Master Controller Drivers
940# 901#
941# CONFIG_FIRMWARE_EDID is not set 902CONFIG_SPI_AU1550=y
942# CONFIG_FB is not set 903CONFIG_SPI_BITBANG=y
943# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 904# CONFIG_SPI_GPIO is not set
905# CONFIG_SPI_XILINX is not set
906# CONFIG_SPI_DESIGNWARE is not set
944 907
945# 908#
946# Sound 909# SPI Protocol Masters
947# 910#
948# CONFIG_SOUND is not set 911# CONFIG_SPI_SPIDEV is not set
912# CONFIG_SPI_TLE62X0 is not set
949 913
950# 914#
951# HID Devices 915# PPS support
952# 916#
953# CONFIG_HID is not set 917# CONFIG_PPS is not set
918CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
919# CONFIG_GPIOLIB is not set
920# CONFIG_W1 is not set
921# CONFIG_POWER_SUPPLY is not set
922# CONFIG_HWMON is not set
923# CONFIG_THERMAL is not set
924# CONFIG_WATCHDOG is not set
925CONFIG_SSB_POSSIBLE=y
954 926
955# 927#
956# USB support 928# Sonics Silicon Backplane
929#
930# CONFIG_SSB is not set
931
932#
933# Multifunction device drivers
934#
935# CONFIG_MFD_CORE is not set
936# CONFIG_MFD_SM501 is not set
937# CONFIG_HTC_PASIC3 is not set
938# CONFIG_TWL4030_CORE is not set
939# CONFIG_MFD_TMIO is not set
940# CONFIG_PMIC_DA903X is not set
941# CONFIG_PMIC_ADP5520 is not set
942# CONFIG_MFD_WM8400 is not set
943# CONFIG_MFD_WM831X is not set
944# CONFIG_MFD_WM8350_I2C is not set
945# CONFIG_MFD_PCF50633 is not set
946# CONFIG_MFD_MC13783 is not set
947# CONFIG_AB3100_CORE is not set
948# CONFIG_EZX_PCAP is not set
949# CONFIG_MFD_88PM8607 is not set
950# CONFIG_AB4500_CORE is not set
951# CONFIG_REGULATOR is not set
952# CONFIG_MEDIA_SUPPORT is not set
953
954#
955# Graphics support
956#
957# CONFIG_VGA_ARB is not set
958# CONFIG_DRM is not set
959# CONFIG_VGASTATE is not set
960# CONFIG_VIDEO_OUTPUT_CONTROL is not set
961# CONFIG_FB is not set
962# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
963
957# 964#
965# Display device support
966#
967# CONFIG_DISPLAY_SUPPORT is not set
968
969#
970# Console display driver support
971#
972# CONFIG_VGA_CONSOLE is not set
973CONFIG_DUMMY_CONSOLE=y
974CONFIG_SOUND=y
975# CONFIG_SOUND_OSS_CORE is not set
976CONFIG_SND=y
977CONFIG_SND_TIMER=y
978CONFIG_SND_PCM=y
979CONFIG_SND_JACK=y
980# CONFIG_SND_SEQUENCER is not set
981# CONFIG_SND_MIXER_OSS is not set
982# CONFIG_SND_PCM_OSS is not set
983CONFIG_SND_HRTIMER=y
984CONFIG_SND_DYNAMIC_MINORS=y
985# CONFIG_SND_SUPPORT_OLD_API is not set
986# CONFIG_SND_VERBOSE_PROCFS is not set
987# CONFIG_SND_VERBOSE_PRINTK is not set
988# CONFIG_SND_DEBUG is not set
989# CONFIG_SND_RAWMIDI_SEQ is not set
990# CONFIG_SND_OPL3_LIB_SEQ is not set
991# CONFIG_SND_OPL4_LIB_SEQ is not set
992# CONFIG_SND_SBAWE_SEQ is not set
993# CONFIG_SND_EMU10K1_SEQ is not set
994# CONFIG_SND_DRIVERS is not set
995# CONFIG_SND_PCI is not set
996# CONFIG_SND_SPI is not set
997# CONFIG_SND_MIPS is not set
998CONFIG_SND_USB=y
999# CONFIG_SND_USB_AUDIO is not set
1000# CONFIG_SND_USB_CAIAQ is not set
1001# CONFIG_SND_PCMCIA is not set
1002CONFIG_SND_SOC=y
1003CONFIG_SND_SOC_AU1XPSC=y
1004# CONFIG_SND_SOC_DB1200 is not set
1005CONFIG_SND_SOC_I2C_AND_SPI=y
1006# CONFIG_SND_SOC_ALL_CODECS is not set
1007# CONFIG_SOUND_PRIME is not set
1008# CONFIG_HID_SUPPORT is not set
1009CONFIG_USB_SUPPORT=y
958CONFIG_USB_ARCH_HAS_HCD=y 1010CONFIG_USB_ARCH_HAS_HCD=y
959CONFIG_USB_ARCH_HAS_OHCI=y 1011CONFIG_USB_ARCH_HAS_OHCI=y
960CONFIG_USB_ARCH_HAS_EHCI=y 1012CONFIG_USB_ARCH_HAS_EHCI=y
961# CONFIG_USB is not set 1013CONFIG_USB=y
1014# CONFIG_USB_DEBUG is not set
1015# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
962 1016
963# 1017#
964# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1018# Miscellaneous USB options
965# 1019#
1020# CONFIG_USB_DEVICEFS is not set
1021# CONFIG_USB_DEVICE_CLASS is not set
1022CONFIG_USB_DYNAMIC_MINORS=y
1023CONFIG_USB_SUSPEND=y
1024# CONFIG_USB_OTG is not set
1025# CONFIG_USB_OTG_WHITELIST is not set
1026# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1027# CONFIG_USB_MON is not set
1028# CONFIG_USB_WUSB is not set
1029# CONFIG_USB_WUSB_CBAF is not set
966 1030
967# 1031#
968# USB Gadget Support 1032# USB Host Controller Drivers
969# 1033#
970# CONFIG_USB_GADGET is not set 1034# CONFIG_USB_C67X00_HCD is not set
1035# CONFIG_USB_XHCI_HCD is not set
1036CONFIG_USB_EHCI_HCD=y
1037CONFIG_USB_EHCI_ROOT_HUB_TT=y
1038CONFIG_USB_EHCI_TT_NEWSCHED=y
1039# CONFIG_USB_OXU210HP_HCD is not set
1040# CONFIG_USB_ISP116X_HCD is not set
1041# CONFIG_USB_ISP1760_HCD is not set
1042# CONFIG_USB_ISP1362_HCD is not set
1043CONFIG_USB_OHCI_HCD=y
1044# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1045# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1046CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1047# CONFIG_USB_UHCI_HCD is not set
1048# CONFIG_USB_SL811_HCD is not set
1049# CONFIG_USB_R8A66597_HCD is not set
1050# CONFIG_USB_WHCI_HCD is not set
1051# CONFIG_USB_HWA_HCD is not set
971 1052
972# 1053#
973# MMC/SD Card support 1054# USB Device Class drivers
974# 1055#
975# CONFIG_MMC is not set 1056# CONFIG_USB_ACM is not set
1057# CONFIG_USB_PRINTER is not set
1058# CONFIG_USB_WDM is not set
1059# CONFIG_USB_TMC is not set
976 1060
977# 1061#
978# LED devices 1062# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
979# 1063#
980# CONFIG_NEW_LEDS is not set
981 1064
982# 1065#
983# LED drivers 1066# also be needed; see USB_STORAGE Help for more info
984# 1067#
1068# CONFIG_USB_LIBUSUAL is not set
985 1069
986# 1070#
987# LED Triggers 1071# USB Imaging devices
988# 1072#
1073# CONFIG_USB_MDC800 is not set
989 1074
990# 1075#
991# InfiniBand support 1076# USB port drivers
992# 1077#
993# CONFIG_INFINIBAND is not set 1078# CONFIG_USB_SERIAL is not set
994 1079
995# 1080#
996# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 1081# USB Miscellaneous drivers
997# 1082#
1083# CONFIG_USB_EMI62 is not set
1084# CONFIG_USB_EMI26 is not set
1085# CONFIG_USB_ADUTUX is not set
1086# CONFIG_USB_SEVSEG is not set
1087# CONFIG_USB_RIO500 is not set
1088# CONFIG_USB_LEGOTOWER is not set
1089# CONFIG_USB_LCD is not set
1090# CONFIG_USB_BERRY_CHARGE is not set
1091# CONFIG_USB_LED is not set
1092# CONFIG_USB_CYPRESS_CY7C63 is not set
1093# CONFIG_USB_CYTHERM is not set
1094# CONFIG_USB_IDMOUSE is not set
1095# CONFIG_USB_FTDI_ELAN is not set
1096# CONFIG_USB_APPLEDISPLAY is not set
1097# CONFIG_USB_SISUSBVGA is not set
1098# CONFIG_USB_LD is not set
1099# CONFIG_USB_TRANCEVIBRATOR is not set
1100# CONFIG_USB_IOWARRIOR is not set
1101# CONFIG_USB_TEST is not set
1102# CONFIG_USB_ISIGHTFW is not set
1103# CONFIG_USB_VST is not set
1104# CONFIG_USB_GADGET is not set
1105
1106#
1107# OTG and related infrastructure
1108#
1109# CONFIG_USB_GPIO_VBUS is not set
1110# CONFIG_NOP_USB_XCEIV is not set
1111# CONFIG_UWB is not set
1112# CONFIG_MMC is not set
1113# CONFIG_MEMSTICK is not set
1114# CONFIG_NEW_LEDS is not set
1115# CONFIG_ACCESSIBILITY is not set
1116# CONFIG_INFINIBAND is not set
1117CONFIG_RTC_LIB=y
1118CONFIG_RTC_CLASS=y
1119CONFIG_RTC_HCTOSYS=y
1120CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1121# CONFIG_RTC_DEBUG is not set
998 1122
999# 1123#
1000# Real Time Clock 1124# RTC interfaces
1001# 1125#
1002# CONFIG_RTC_CLASS is not set 1126CONFIG_RTC_INTF_SYSFS=y
1127CONFIG_RTC_INTF_PROC=y
1128CONFIG_RTC_INTF_DEV=y
1129# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1130# CONFIG_RTC_DRV_TEST is not set
1003 1131
1004# 1132#
1005# DMA Engine support 1133# I2C RTC drivers
1006# 1134#
1007# CONFIG_DMA_ENGINE is not set 1135# CONFIG_RTC_DRV_DS1307 is not set
1136# CONFIG_RTC_DRV_DS1374 is not set
1137# CONFIG_RTC_DRV_DS1672 is not set
1138# CONFIG_RTC_DRV_MAX6900 is not set
1139# CONFIG_RTC_DRV_RS5C372 is not set
1140# CONFIG_RTC_DRV_ISL1208 is not set
1141# CONFIG_RTC_DRV_X1205 is not set
1142# CONFIG_RTC_DRV_PCF8563 is not set
1143# CONFIG_RTC_DRV_PCF8583 is not set
1144# CONFIG_RTC_DRV_M41T80 is not set
1145# CONFIG_RTC_DRV_BQ32K is not set
1146# CONFIG_RTC_DRV_S35390A is not set
1147# CONFIG_RTC_DRV_FM3130 is not set
1148# CONFIG_RTC_DRV_RX8581 is not set
1149# CONFIG_RTC_DRV_RX8025 is not set
1008 1150
1009# 1151#
1010# DMA Clients 1152# SPI RTC drivers
1011# 1153#
1154# CONFIG_RTC_DRV_M41T94 is not set
1155# CONFIG_RTC_DRV_DS1305 is not set
1156# CONFIG_RTC_DRV_DS1390 is not set
1157# CONFIG_RTC_DRV_MAX6902 is not set
1158# CONFIG_RTC_DRV_R9701 is not set
1159# CONFIG_RTC_DRV_RS5C348 is not set
1160# CONFIG_RTC_DRV_DS3234 is not set
1161# CONFIG_RTC_DRV_PCF2123 is not set
1012 1162
1013# 1163#
1014# DMA Devices 1164# Platform RTC drivers
1015# 1165#
1166# CONFIG_RTC_DRV_CMOS is not set
1167# CONFIG_RTC_DRV_DS1286 is not set
1168# CONFIG_RTC_DRV_DS1511 is not set
1169# CONFIG_RTC_DRV_DS1553 is not set
1170# CONFIG_RTC_DRV_DS1742 is not set
1171# CONFIG_RTC_DRV_STK17TA8 is not set
1172# CONFIG_RTC_DRV_M48T86 is not set
1173# CONFIG_RTC_DRV_M48T35 is not set
1174# CONFIG_RTC_DRV_M48T59 is not set
1175# CONFIG_RTC_DRV_MSM6242 is not set
1176# CONFIG_RTC_DRV_BQ4802 is not set
1177# CONFIG_RTC_DRV_RP5C01 is not set
1178# CONFIG_RTC_DRV_V3020 is not set
1016 1179
1017# 1180#
1018# Auxiliary Display support 1181# on-CPU RTC drivers
1019# 1182#
1183CONFIG_RTC_DRV_AU1XXX=y
1184# CONFIG_DMADEVICES is not set
1185# CONFIG_AUXDISPLAY is not set
1186# CONFIG_UIO is not set
1020 1187
1021# 1188#
1022# Virtualization 1189# TI VLYNQ
1023# 1190#
1191# CONFIG_STAGING is not set
1024 1192
1025# 1193#
1026# File systems 1194# File systems
1027# 1195#
1028CONFIG_EXT2_FS=y 1196CONFIG_EXT2_FS=y
1029CONFIG_EXT2_FS_XATTR=y 1197# CONFIG_EXT2_FS_XATTR is not set
1030CONFIG_EXT2_FS_POSIX_ACL=y
1031# CONFIG_EXT2_FS_SECURITY is not set
1032# CONFIG_EXT2_FS_XIP is not set 1198# CONFIG_EXT2_FS_XIP is not set
1033CONFIG_EXT3_FS=y 1199# CONFIG_EXT3_FS is not set
1034CONFIG_EXT3_FS_XATTR=y 1200# CONFIG_EXT4_FS is not set
1035CONFIG_EXT3_FS_POSIX_ACL=y 1201# CONFIG_REISERFS_FS is not set
1036CONFIG_EXT3_FS_SECURITY=y
1037# CONFIG_EXT4DEV_FS is not set
1038CONFIG_JBD=y
1039# CONFIG_JBD_DEBUG is not set
1040CONFIG_FS_MBCACHE=y
1041CONFIG_REISERFS_FS=m
1042# CONFIG_REISERFS_CHECK is not set
1043# CONFIG_REISERFS_PROC_INFO is not set
1044CONFIG_REISERFS_FS_XATTR=y
1045CONFIG_REISERFS_FS_POSIX_ACL=y
1046CONFIG_REISERFS_FS_SECURITY=y
1047# CONFIG_JFS_FS is not set 1202# CONFIG_JFS_FS is not set
1048CONFIG_FS_POSIX_ACL=y 1203# CONFIG_FS_POSIX_ACL is not set
1049# CONFIG_XFS_FS is not set 1204# CONFIG_XFS_FS is not set
1050# CONFIG_GFS2_FS is not set 1205# CONFIG_GFS2_FS is not set
1051# CONFIG_OCFS2_FS is not set 1206# CONFIG_OCFS2_FS is not set
1052# CONFIG_MINIX_FS is not set 1207# CONFIG_BTRFS_FS is not set
1053# CONFIG_ROMFS_FS is not set 1208# CONFIG_NILFS2_FS is not set
1209CONFIG_FILE_LOCKING=y
1210CONFIG_FSNOTIFY=y
1211CONFIG_DNOTIFY=y
1054CONFIG_INOTIFY=y 1212CONFIG_INOTIFY=y
1055CONFIG_INOTIFY_USER=y 1213CONFIG_INOTIFY_USER=y
1056# CONFIG_QUOTA is not set 1214# CONFIG_QUOTA is not set
1057CONFIG_DNOTIFY=y 1215# CONFIG_AUTOFS_FS is not set
1058CONFIG_AUTOFS_FS=m 1216# CONFIG_AUTOFS4_FS is not set
1059CONFIG_AUTOFS4_FS=m 1217# CONFIG_FUSE_FS is not set
1060CONFIG_FUSE_FS=m 1218
1061CONFIG_GENERIC_ACL=y 1219#
1220# Caches
1221#
1222# CONFIG_FSCACHE is not set
1062 1223
1063# 1224#
1064# CD-ROM/DVD Filesystems 1225# CD-ROM/DVD Filesystems
@@ -1077,75 +1238,82 @@ CONFIG_GENERIC_ACL=y
1077# Pseudo filesystems 1238# Pseudo filesystems
1078# 1239#
1079CONFIG_PROC_FS=y 1240CONFIG_PROC_FS=y
1080CONFIG_PROC_KCORE=y 1241# CONFIG_PROC_KCORE is not set
1081CONFIG_PROC_SYSCTL=y 1242CONFIG_PROC_SYSCTL=y
1243# CONFIG_PROC_PAGE_MONITOR is not set
1082CONFIG_SYSFS=y 1244CONFIG_SYSFS=y
1083CONFIG_TMPFS=y 1245CONFIG_TMPFS=y
1084CONFIG_TMPFS_POSIX_ACL=y 1246# CONFIG_TMPFS_POSIX_ACL is not set
1085# CONFIG_HUGETLB_PAGE is not set 1247# CONFIG_HUGETLB_PAGE is not set
1086CONFIG_RAMFS=y 1248CONFIG_CONFIGFS_FS=y
1087CONFIG_CONFIGFS_FS=m 1249CONFIG_MISC_FILESYSTEMS=y
1088
1089#
1090# Miscellaneous filesystems
1091#
1092# CONFIG_ADFS_FS is not set 1250# CONFIG_ADFS_FS is not set
1093# CONFIG_AFFS_FS is not set 1251# CONFIG_AFFS_FS is not set
1094# CONFIG_ECRYPT_FS is not set
1095# CONFIG_HFS_FS is not set 1252# CONFIG_HFS_FS is not set
1096# CONFIG_HFSPLUS_FS is not set 1253# CONFIG_HFSPLUS_FS is not set
1097# CONFIG_BEFS_FS is not set 1254# CONFIG_BEFS_FS is not set
1098# CONFIG_BFS_FS is not set 1255# CONFIG_BFS_FS is not set
1099# CONFIG_EFS_FS is not set 1256# CONFIG_EFS_FS is not set
1100# CONFIG_JFFS2_FS is not set 1257CONFIG_JFFS2_FS=y
1101CONFIG_CRAMFS=m 1258CONFIG_JFFS2_FS_DEBUG=0
1259CONFIG_JFFS2_FS_WRITEBUFFER=y
1260# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1261CONFIG_JFFS2_SUMMARY=y
1262CONFIG_JFFS2_FS_XATTR=y
1263# CONFIG_JFFS2_FS_POSIX_ACL is not set
1264# CONFIG_JFFS2_FS_SECURITY is not set
1265CONFIG_JFFS2_COMPRESSION_OPTIONS=y
1266CONFIG_JFFS2_ZLIB=y
1267CONFIG_JFFS2_LZO=y
1268CONFIG_JFFS2_RTIME=y
1269CONFIG_JFFS2_RUBIN=y
1270# CONFIG_JFFS2_CMODE_NONE is not set
1271CONFIG_JFFS2_CMODE_PRIORITY=y
1272# CONFIG_JFFS2_CMODE_SIZE is not set
1273# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
1274# CONFIG_CRAMFS is not set
1275CONFIG_SQUASHFS=y
1276# CONFIG_SQUASHFS_EMBEDDED is not set
1277CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
1102# CONFIG_VXFS_FS is not set 1278# CONFIG_VXFS_FS is not set
1279# CONFIG_MINIX_FS is not set
1280# CONFIG_OMFS_FS is not set
1103# CONFIG_HPFS_FS is not set 1281# CONFIG_HPFS_FS is not set
1104# CONFIG_QNX4FS_FS is not set 1282# CONFIG_QNX4FS_FS is not set
1283# CONFIG_ROMFS_FS is not set
1105# CONFIG_SYSV_FS is not set 1284# CONFIG_SYSV_FS is not set
1106# CONFIG_UFS_FS is not set 1285# CONFIG_UFS_FS is not set
1107 1286CONFIG_NETWORK_FILESYSTEMS=y
1108#
1109# Network File Systems
1110#
1111CONFIG_NFS_FS=y 1287CONFIG_NFS_FS=y
1112# CONFIG_NFS_V3 is not set 1288CONFIG_NFS_V3=y
1289# CONFIG_NFS_V3_ACL is not set
1113# CONFIG_NFS_V4 is not set 1290# CONFIG_NFS_V4 is not set
1114# CONFIG_NFS_DIRECTIO is not set
1115CONFIG_NFSD=m
1116# CONFIG_NFSD_V3 is not set
1117# CONFIG_NFSD_TCP is not set
1118CONFIG_ROOT_NFS=y 1291CONFIG_ROOT_NFS=y
1292# CONFIG_NFSD is not set
1119CONFIG_LOCKD=y 1293CONFIG_LOCKD=y
1120CONFIG_EXPORTFS=m 1294CONFIG_LOCKD_V4=y
1121CONFIG_NFS_COMMON=y 1295CONFIG_NFS_COMMON=y
1122CONFIG_SUNRPC=y 1296CONFIG_SUNRPC=y
1123# CONFIG_RPCSEC_GSS_KRB5 is not set 1297# CONFIG_RPCSEC_GSS_KRB5 is not set
1124# CONFIG_RPCSEC_GSS_SPKM3 is not set 1298# CONFIG_RPCSEC_GSS_SPKM3 is not set
1125CONFIG_SMB_FS=m 1299# CONFIG_SMB_FS is not set
1126# CONFIG_SMB_NLS_DEFAULT is not set
1127# CONFIG_CIFS is not set 1300# CONFIG_CIFS is not set
1128# CONFIG_NCP_FS is not set 1301# CONFIG_NCP_FS is not set
1129# CONFIG_CODA_FS is not set 1302# CONFIG_CODA_FS is not set
1130# CONFIG_AFS_FS is not set 1303# CONFIG_AFS_FS is not set
1131# CONFIG_9P_FS is not set
1132 1304
1133# 1305#
1134# Partition Types 1306# Partition Types
1135# 1307#
1136# CONFIG_PARTITION_ADVANCED is not set 1308# CONFIG_PARTITION_ADVANCED is not set
1137CONFIG_MSDOS_PARTITION=y 1309CONFIG_MSDOS_PARTITION=y
1138 1310CONFIG_NLS=y
1139#
1140# Native Language Support
1141#
1142CONFIG_NLS=m
1143CONFIG_NLS_DEFAULT="iso8859-1" 1311CONFIG_NLS_DEFAULT="iso8859-1"
1144# CONFIG_NLS_CODEPAGE_437 is not set 1312CONFIG_NLS_CODEPAGE_437=y
1145# CONFIG_NLS_CODEPAGE_737 is not set 1313# CONFIG_NLS_CODEPAGE_737 is not set
1146# CONFIG_NLS_CODEPAGE_775 is not set 1314# CONFIG_NLS_CODEPAGE_775 is not set
1147# CONFIG_NLS_CODEPAGE_850 is not set 1315CONFIG_NLS_CODEPAGE_850=y
1148# CONFIG_NLS_CODEPAGE_852 is not set 1316CONFIG_NLS_CODEPAGE_852=y
1149# CONFIG_NLS_CODEPAGE_855 is not set 1317# CONFIG_NLS_CODEPAGE_855 is not set
1150# CONFIG_NLS_CODEPAGE_857 is not set 1318# CONFIG_NLS_CODEPAGE_857 is not set
1151# CONFIG_NLS_CODEPAGE_860 is not set 1319# CONFIG_NLS_CODEPAGE_860 is not set
@@ -1162,10 +1330,10 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1162# CONFIG_NLS_CODEPAGE_949 is not set 1330# CONFIG_NLS_CODEPAGE_949 is not set
1163# CONFIG_NLS_CODEPAGE_874 is not set 1331# CONFIG_NLS_CODEPAGE_874 is not set
1164# CONFIG_NLS_ISO8859_8 is not set 1332# CONFIG_NLS_ISO8859_8 is not set
1165# CONFIG_NLS_CODEPAGE_1250 is not set 1333CONFIG_NLS_CODEPAGE_1250=y
1166# CONFIG_NLS_CODEPAGE_1251 is not set 1334# CONFIG_NLS_CODEPAGE_1251 is not set
1167# CONFIG_NLS_ASCII is not set 1335CONFIG_NLS_ASCII=y
1168# CONFIG_NLS_ISO8859_1 is not set 1336CONFIG_NLS_ISO8859_1=y
1169# CONFIG_NLS_ISO8859_2 is not set 1337# CONFIG_NLS_ISO8859_2 is not set
1170# CONFIG_NLS_ISO8859_3 is not set 1338# CONFIG_NLS_ISO8859_3 is not set
1171# CONFIG_NLS_ISO8859_4 is not set 1339# CONFIG_NLS_ISO8859_4 is not set
@@ -1175,38 +1343,75 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1175# CONFIG_NLS_ISO8859_9 is not set 1343# CONFIG_NLS_ISO8859_9 is not set
1176# CONFIG_NLS_ISO8859_13 is not set 1344# CONFIG_NLS_ISO8859_13 is not set
1177# CONFIG_NLS_ISO8859_14 is not set 1345# CONFIG_NLS_ISO8859_14 is not set
1178# CONFIG_NLS_ISO8859_15 is not set 1346CONFIG_NLS_ISO8859_15=y
1179# CONFIG_NLS_KOI8_R is not set 1347# CONFIG_NLS_KOI8_R is not set
1180# CONFIG_NLS_KOI8_U is not set 1348# CONFIG_NLS_KOI8_U is not set
1181# CONFIG_NLS_UTF8 is not set 1349CONFIG_NLS_UTF8=y
1182 1350# CONFIG_DLM is not set
1183#
1184# Distributed Lock Manager
1185#
1186CONFIG_DLM=m
1187CONFIG_DLM_TCP=y
1188# CONFIG_DLM_SCTP is not set
1189# CONFIG_DLM_DEBUG is not set
1190
1191#
1192# Profiling support
1193#
1194# CONFIG_PROFILING is not set
1195 1351
1196# 1352#
1197# Kernel hacking 1353# Kernel hacking
1198# 1354#
1199CONFIG_TRACE_IRQFLAGS_SUPPORT=y 1355CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1200# CONFIG_PRINTK_TIME is not set 1356# CONFIG_PRINTK_TIME is not set
1357CONFIG_ENABLE_WARN_DEPRECATED=y
1201CONFIG_ENABLE_MUST_CHECK=y 1358CONFIG_ENABLE_MUST_CHECK=y
1359CONFIG_FRAME_WARN=1024
1202# CONFIG_MAGIC_SYSRQ is not set 1360# CONFIG_MAGIC_SYSRQ is not set
1361# CONFIG_STRIP_ASM_SYMS is not set
1203# CONFIG_UNUSED_SYMBOLS is not set 1362# CONFIG_UNUSED_SYMBOLS is not set
1204# CONFIG_DEBUG_FS is not set 1363# CONFIG_DEBUG_FS is not set
1205# CONFIG_HEADERS_CHECK is not set 1364# CONFIG_HEADERS_CHECK is not set
1206# CONFIG_DEBUG_KERNEL is not set 1365CONFIG_DEBUG_KERNEL=y
1207CONFIG_LOG_BUF_SHIFT=14 1366# CONFIG_DEBUG_SHIRQ is not set
1208CONFIG_CROSSCOMPILE=y 1367# CONFIG_DETECT_SOFTLOCKUP is not set
1368# CONFIG_DETECT_HUNG_TASK is not set
1369# CONFIG_SCHED_DEBUG is not set
1370# CONFIG_SCHEDSTATS is not set
1371# CONFIG_TIMER_STATS is not set
1372# CONFIG_DEBUG_OBJECTS is not set
1373# CONFIG_DEBUG_SLAB is not set
1374# CONFIG_DEBUG_RT_MUTEXES is not set
1375# CONFIG_RT_MUTEX_TESTER is not set
1376# CONFIG_DEBUG_SPINLOCK is not set
1377# CONFIG_DEBUG_MUTEXES is not set
1378# CONFIG_DEBUG_LOCK_ALLOC is not set
1379# CONFIG_PROVE_LOCKING is not set
1380# CONFIG_LOCK_STAT is not set
1381# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1382# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1383# CONFIG_DEBUG_KOBJECT is not set
1384# CONFIG_DEBUG_INFO is not set
1385# CONFIG_DEBUG_VM is not set
1386# CONFIG_DEBUG_WRITECOUNT is not set
1387# CONFIG_DEBUG_MEMORY_INIT is not set
1388# CONFIG_DEBUG_LIST is not set
1389# CONFIG_DEBUG_SG is not set
1390# CONFIG_DEBUG_NOTIFIERS is not set
1391# CONFIG_DEBUG_CREDENTIALS is not set
1392# CONFIG_BOOT_PRINTK_DELAY is not set
1393# CONFIG_RCU_TORTURE_TEST is not set
1394# CONFIG_BACKTRACE_SELF_TEST is not set
1395# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1396# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1397# CONFIG_FAULT_INJECTION is not set
1398# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1399# CONFIG_PAGE_POISONING is not set
1400CONFIG_HAVE_FUNCTION_TRACER=y
1401CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1402CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
1403CONFIG_HAVE_DYNAMIC_FTRACE=y
1404CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1405CONFIG_TRACING_SUPPORT=y
1406# CONFIG_FTRACE is not set
1407# CONFIG_SAMPLES is not set
1408CONFIG_HAVE_ARCH_KGDB=y
1409# CONFIG_KGDB is not set
1410CONFIG_EARLY_PRINTK=y
1209# CONFIG_CMDLINE_BOOL is not set 1411# CONFIG_CMDLINE_BOOL is not set
1412# CONFIG_DEBUG_STACK_USAGE is not set
1413# CONFIG_RUNTIME_DEBUG is not set
1414CONFIG_DEBUG_ZBOOT=y
1210 1415
1211# 1416#
1212# Security options 1417# Security options
@@ -1214,67 +1419,32 @@ CONFIG_CROSSCOMPILE=y
1214CONFIG_KEYS=y 1419CONFIG_KEYS=y
1215CONFIG_KEYS_DEBUG_PROC_KEYS=y 1420CONFIG_KEYS_DEBUG_PROC_KEYS=y
1216# CONFIG_SECURITY is not set 1421# CONFIG_SECURITY is not set
1217 1422CONFIG_SECURITYFS=y
1218# 1423# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1219# Cryptographic options 1424# CONFIG_DEFAULT_SECURITY_SMACK is not set
1220# 1425# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1221CONFIG_CRYPTO=y 1426CONFIG_DEFAULT_SECURITY_DAC=y
1222CONFIG_CRYPTO_ALGAPI=y 1427CONFIG_DEFAULT_SECURITY=""
1223CONFIG_CRYPTO_BLKCIPHER=m 1428# CONFIG_CRYPTO is not set
1224CONFIG_CRYPTO_HASH=y 1429# CONFIG_BINARY_PRINTF is not set
1225CONFIG_CRYPTO_MANAGER=y
1226CONFIG_CRYPTO_HMAC=y
1227CONFIG_CRYPTO_XCBC=m
1228CONFIG_CRYPTO_NULL=m
1229CONFIG_CRYPTO_MD4=m
1230CONFIG_CRYPTO_MD5=y
1231CONFIG_CRYPTO_SHA1=m
1232CONFIG_CRYPTO_SHA256=m
1233CONFIG_CRYPTO_SHA512=m
1234CONFIG_CRYPTO_WP512=m
1235CONFIG_CRYPTO_TGR192=m
1236CONFIG_CRYPTO_GF128MUL=m
1237CONFIG_CRYPTO_ECB=m
1238CONFIG_CRYPTO_CBC=m
1239CONFIG_CRYPTO_PCBC=m
1240CONFIG_CRYPTO_LRW=m
1241CONFIG_CRYPTO_DES=m
1242CONFIG_CRYPTO_FCRYPT=m
1243CONFIG_CRYPTO_BLOWFISH=m
1244CONFIG_CRYPTO_TWOFISH=m
1245CONFIG_CRYPTO_TWOFISH_COMMON=m
1246CONFIG_CRYPTO_SERPENT=m
1247CONFIG_CRYPTO_AES=m
1248CONFIG_CRYPTO_CAST5=m
1249CONFIG_CRYPTO_CAST6=m
1250CONFIG_CRYPTO_TEA=m
1251CONFIG_CRYPTO_ARC4=m
1252CONFIG_CRYPTO_KHAZAD=m
1253CONFIG_CRYPTO_ANUBIS=m
1254CONFIG_CRYPTO_DEFLATE=m
1255CONFIG_CRYPTO_MICHAEL_MIC=m
1256CONFIG_CRYPTO_CRC32C=m
1257CONFIG_CRYPTO_CAMELLIA=m
1258# CONFIG_CRYPTO_TEST is not set
1259
1260#
1261# Hardware crypto devices
1262#
1263 1430
1264# 1431#
1265# Library routines 1432# Library routines
1266# 1433#
1267CONFIG_BITREVERSE=y 1434CONFIG_BITREVERSE=y
1268CONFIG_CRC_CCITT=m 1435CONFIG_GENERIC_FIND_LAST_BIT=y
1269CONFIG_CRC16=m 1436# CONFIG_CRC_CCITT is not set
1437# CONFIG_CRC16 is not set
1438# CONFIG_CRC_T10DIF is not set
1439# CONFIG_CRC_ITU_T is not set
1270CONFIG_CRC32=y 1440CONFIG_CRC32=y
1271CONFIG_LIBCRC32C=m 1441# CONFIG_CRC7 is not set
1272CONFIG_ZLIB_INFLATE=m 1442# CONFIG_LIBCRC32C is not set
1273CONFIG_ZLIB_DEFLATE=m 1443CONFIG_ZLIB_INFLATE=y
1274CONFIG_TEXTSEARCH=y 1444CONFIG_ZLIB_DEFLATE=y
1275CONFIG_TEXTSEARCH_KMP=m 1445CONFIG_LZO_COMPRESS=y
1276CONFIG_TEXTSEARCH_BM=m 1446CONFIG_LZO_DECOMPRESS=y
1277CONFIG_TEXTSEARCH_FSM=m
1278CONFIG_PLIST=y
1279CONFIG_HAS_IOMEM=y 1447CONFIG_HAS_IOMEM=y
1280CONFIG_HAS_IOPORT=y 1448CONFIG_HAS_IOPORT=y
1449CONFIG_HAS_DMA=y
1450CONFIG_NLATTR=y
diff --git a/arch/mips/configs/lemote2f_defconfig b/arch/mips/configs/lemote2f_defconfig
index b71a0a4fb95f..4caa0e0fee81 100644
--- a/arch/mips/configs/lemote2f_defconfig
+++ b/arch/mips/configs/lemote2f_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.32-rc6 3# Linux kernel version: 2.6.33-rc2
4# Mon Nov 9 23:42:42 2009 4# Mon Jan 4 13:41:09 2010
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -27,6 +27,7 @@ CONFIG_MACH_LOONGSON=y
27# CONFIG_PNX8550_STB810 is not set 27# CONFIG_PNX8550_STB810 is not set
28# CONFIG_PMC_MSP is not set 28# CONFIG_PMC_MSP is not set
29# CONFIG_PMC_YOSEMITE is not set 29# CONFIG_PMC_YOSEMITE is not set
30# CONFIG_POWERTV is not set
30# CONFIG_SGI_IP22 is not set 31# CONFIG_SGI_IP22 is not set
31# CONFIG_SGI_IP27 is not set 32# CONFIG_SGI_IP27 is not set
32# CONFIG_SGI_IP28 is not set 33# CONFIG_SGI_IP28 is not set
@@ -51,6 +52,9 @@ CONFIG_ARCH_SPARSEMEM_ENABLE=y
51# CONFIG_LEMOTE_FULOONG2E is not set 52# CONFIG_LEMOTE_FULOONG2E is not set
52CONFIG_LEMOTE_MACH2F=y 53CONFIG_LEMOTE_MACH2F=y
53CONFIG_CS5536=y 54CONFIG_CS5536=y
55CONFIG_CS5536_MFGPT=y
56CONFIG_LOONGSON_SUSPEND=y
57CONFIG_LOONGSON_UART_BASE=y
54CONFIG_RWSEM_GENERIC_SPINLOCK=y 58CONFIG_RWSEM_GENERIC_SPINLOCK=y
55# CONFIG_ARCH_HAS_ILOG2_U32 is not set 59# CONFIG_ARCH_HAS_ILOG2_U32 is not set
56# CONFIG_ARCH_HAS_ILOG2_U64 is not set 60# CONFIG_ARCH_HAS_ILOG2_U64 is not set
@@ -63,13 +67,8 @@ CONFIG_GENERIC_TIME=y
63CONFIG_GENERIC_CMOS_UPDATE=y 67CONFIG_GENERIC_CMOS_UPDATE=y
64CONFIG_SCHED_OMIT_FRAME_POINTER=y 68CONFIG_SCHED_OMIT_FRAME_POINTER=y
65CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 69CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
66CONFIG_CEVT_R4K_LIB=y
67CONFIG_CEVT_R4K=y
68CONFIG_CSRC_R4K_LIB=y
69CONFIG_CSRC_R4K=y
70CONFIG_DMA_NONCOHERENT=y 70CONFIG_DMA_NONCOHERENT=y
71CONFIG_DMA_NEED_PCI_MAP_STATE=y 71CONFIG_DMA_NEED_PCI_MAP_STATE=y
72CONFIG_EARLY_PRINTK=y
73CONFIG_SYS_HAS_EARLY_PRINTK=y 72CONFIG_SYS_HAS_EARLY_PRINTK=y
74CONFIG_I8259=y 73CONFIG_I8259=y
75# CONFIG_NO_IOPORT is not set 74# CONFIG_NO_IOPORT is not set
@@ -109,13 +108,15 @@ CONFIG_CPU_LOONGSON2F=y
109# CONFIG_CPU_SB1 is not set 108# CONFIG_CPU_SB1 is not set
110# CONFIG_CPU_CAVIUM_OCTEON is not set 109# CONFIG_CPU_CAVIUM_OCTEON is not set
111CONFIG_SYS_SUPPORTS_ZBOOT=y 110CONFIG_SYS_SUPPORTS_ZBOOT=y
112CONFIG_SYS_SUPPORTS_ZBOOT_UART16550=y
113CONFIG_CPU_LOONGSON2=y 111CONFIG_CPU_LOONGSON2=y
114CONFIG_SYS_HAS_CPU_LOONGSON2F=y 112CONFIG_SYS_HAS_CPU_LOONGSON2F=y
115CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 113CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
116CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y 114CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y
117CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y 115CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
118CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y 116CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y
117CONFIG_CPU_SUPPORTS_CPUFREQ=y
118CONFIG_CPU_SUPPORTS_ADDRWINCFG=y
119CONFIG_CPU_SUPPORTS_UNCACHED_ACCELERATED=y
119 120
120# 121#
121# Kernel type 122# Kernel type
@@ -137,7 +138,6 @@ CONFIG_GENERIC_HARDIRQS=y
137CONFIG_GENERIC_IRQ_PROBE=y 138CONFIG_GENERIC_IRQ_PROBE=y
138CONFIG_CPU_SUPPORTS_HIGHMEM=y 139CONFIG_CPU_SUPPORTS_HIGHMEM=y
139CONFIG_SYS_SUPPORTS_HIGHMEM=y 140CONFIG_SYS_SUPPORTS_HIGHMEM=y
140CONFIG_ARCH_FLATMEM_ENABLE=y
141CONFIG_ARCH_POPULATES_NODE_MAP=y 141CONFIG_ARCH_POPULATES_NODE_MAP=y
142CONFIG_SELECT_MEMORY_MODEL=y 142CONFIG_SELECT_MEMORY_MODEL=y
143# CONFIG_FLATMEM_MANUAL is not set 143# CONFIG_FLATMEM_MANUAL is not set
@@ -146,17 +146,11 @@ CONFIG_SPARSEMEM_MANUAL=y
146CONFIG_SPARSEMEM=y 146CONFIG_SPARSEMEM=y
147CONFIG_HAVE_MEMORY_PRESENT=y 147CONFIG_HAVE_MEMORY_PRESENT=y
148CONFIG_SPARSEMEM_STATIC=y 148CONFIG_SPARSEMEM_STATIC=y
149
150#
151# Memory hotplug is currently incompatible with Software Suspend
152#
153CONFIG_PAGEFLAGS_EXTENDED=y 149CONFIG_PAGEFLAGS_EXTENDED=y
154CONFIG_SPLIT_PTLOCK_CPUS=4 150CONFIG_SPLIT_PTLOCK_CPUS=4
155CONFIG_PHYS_ADDR_T_64BIT=y 151CONFIG_PHYS_ADDR_T_64BIT=y
156CONFIG_ZONE_DMA_FLAG=0 152CONFIG_ZONE_DMA_FLAG=0
157CONFIG_VIRT_TO_BUS=y 153CONFIG_VIRT_TO_BUS=y
158CONFIG_HAVE_MLOCK=y
159CONFIG_HAVE_MLOCKED_PAGE_BIT=y
160# CONFIG_KSM is not set 154# CONFIG_KSM is not set
161CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 155CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
162CONFIG_TICK_ONESHOT=y 156CONFIG_TICK_ONESHOT=y
@@ -175,7 +169,7 @@ CONFIG_HZ=250
175# CONFIG_PREEMPT_NONE is not set 169# CONFIG_PREEMPT_NONE is not set
176# CONFIG_PREEMPT_VOLUNTARY is not set 170# CONFIG_PREEMPT_VOLUNTARY is not set
177CONFIG_PREEMPT=y 171CONFIG_PREEMPT=y
178# CONFIG_KEXEC is not set 172CONFIG_KEXEC=y
179# CONFIG_SECCOMP is not set 173# CONFIG_SECCOMP is not set
180CONFIG_LOCKDEP_SUPPORT=y 174CONFIG_LOCKDEP_SUPPORT=y
181CONFIG_STACKTRACE_SUPPORT=y 175CONFIG_STACKTRACE_SUPPORT=y
@@ -194,9 +188,9 @@ CONFIG_LOCALVERSION=""
194CONFIG_HAVE_KERNEL_GZIP=y 188CONFIG_HAVE_KERNEL_GZIP=y
195CONFIG_HAVE_KERNEL_BZIP2=y 189CONFIG_HAVE_KERNEL_BZIP2=y
196CONFIG_HAVE_KERNEL_LZMA=y 190CONFIG_HAVE_KERNEL_LZMA=y
197# CONFIG_KERNEL_GZIP is not set 191CONFIG_KERNEL_GZIP=y
198# CONFIG_KERNEL_BZIP2 is not set 192# CONFIG_KERNEL_BZIP2 is not set
199CONFIG_KERNEL_LZMA=y 193# CONFIG_KERNEL_LZMA is not set
200CONFIG_SWAP=y 194CONFIG_SWAP=y
201CONFIG_SYSVIPC=y 195CONFIG_SYSVIPC=y
202CONFIG_SYSVIPC_SYSCTL=y 196CONFIG_SYSVIPC_SYSCTL=y
@@ -211,6 +205,7 @@ CONFIG_AUDIT=y
211# 205#
212CONFIG_TREE_RCU=y 206CONFIG_TREE_RCU=y
213# CONFIG_TREE_PREEMPT_RCU is not set 207# CONFIG_TREE_PREEMPT_RCU is not set
208# CONFIG_TINY_RCU is not set
214# CONFIG_RCU_TRACE is not set 209# CONFIG_RCU_TRACE is not set
215CONFIG_RCU_FANOUT=64 210CONFIG_RCU_FANOUT=64
216# CONFIG_RCU_FANOUT_EXACT is not set 211# CONFIG_RCU_FANOUT_EXACT is not set
@@ -224,7 +219,11 @@ CONFIG_SYSFS_DEPRECATED=y
224CONFIG_SYSFS_DEPRECATED_V2=y 219CONFIG_SYSFS_DEPRECATED_V2=y
225# CONFIG_RELAY is not set 220# CONFIG_RELAY is not set
226# CONFIG_NAMESPACES is not set 221# CONFIG_NAMESPACES is not set
227# CONFIG_BLK_DEV_INITRD is not set 222CONFIG_BLK_DEV_INITRD=y
223CONFIG_INITRAMFS_SOURCE=""
224CONFIG_RD_GZIP=y
225CONFIG_RD_BZIP2=y
226CONFIG_RD_LZMA=y
228# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 227# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
229CONFIG_SYSCTL=y 228CONFIG_SYSCTL=y
230CONFIG_ANON_INODES=y 229CONFIG_ANON_INODES=y
@@ -256,14 +255,18 @@ CONFIG_COMPAT_BRK=y
256# CONFIG_SLAB is not set 255# CONFIG_SLAB is not set
257CONFIG_SLUB=y 256CONFIG_SLUB=y
258# CONFIG_SLOB is not set 257# CONFIG_SLOB is not set
259# CONFIG_PROFILING is not set 258CONFIG_PROFILING=y
259CONFIG_TRACEPOINTS=y
260CONFIG_OPROFILE=m
260CONFIG_HAVE_OPROFILE=y 261CONFIG_HAVE_OPROFILE=y
261CONFIG_HAVE_SYSCALL_WRAPPERS=y 262CONFIG_HAVE_SYSCALL_WRAPPERS=y
262 263
263# 264#
264# GCOV-based kernel profiling 265# GCOV-based kernel profiling
265# 266#
266# CONFIG_SLOW_WORK is not set 267# CONFIG_GCOV_KERNEL is not set
268CONFIG_SLOW_WORK=y
269# CONFIG_SLOW_WORK_DEBUG is not set
267CONFIG_HAVE_GENERIC_DMA_COHERENT=y 270CONFIG_HAVE_GENERIC_DMA_COHERENT=y
268CONFIG_SLABINFO=y 271CONFIG_SLABINFO=y
269CONFIG_RT_MUTEXES=y 272CONFIG_RT_MUTEXES=y
@@ -283,14 +286,41 @@ CONFIG_BLOCK_COMPAT=y
283# IO Schedulers 286# IO Schedulers
284# 287#
285CONFIG_IOSCHED_NOOP=y 288CONFIG_IOSCHED_NOOP=y
286CONFIG_IOSCHED_AS=y 289CONFIG_IOSCHED_DEADLINE=m
287CONFIG_IOSCHED_DEADLINE=y
288CONFIG_IOSCHED_CFQ=y 290CONFIG_IOSCHED_CFQ=y
289# CONFIG_DEFAULT_AS is not set
290# CONFIG_DEFAULT_DEADLINE is not set 291# CONFIG_DEFAULT_DEADLINE is not set
291CONFIG_DEFAULT_CFQ=y 292CONFIG_DEFAULT_CFQ=y
292# CONFIG_DEFAULT_NOOP is not set 293# CONFIG_DEFAULT_NOOP is not set
293CONFIG_DEFAULT_IOSCHED="cfq" 294CONFIG_DEFAULT_IOSCHED="cfq"
295# CONFIG_INLINE_SPIN_TRYLOCK is not set
296# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
297# CONFIG_INLINE_SPIN_LOCK is not set
298# CONFIG_INLINE_SPIN_LOCK_BH is not set
299# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
300# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
301# CONFIG_INLINE_SPIN_UNLOCK is not set
302# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
303# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
304# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
305# CONFIG_INLINE_READ_TRYLOCK is not set
306# CONFIG_INLINE_READ_LOCK is not set
307# CONFIG_INLINE_READ_LOCK_BH is not set
308# CONFIG_INLINE_READ_LOCK_IRQ is not set
309# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
310# CONFIG_INLINE_READ_UNLOCK is not set
311# CONFIG_INLINE_READ_UNLOCK_BH is not set
312# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
313# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
314# CONFIG_INLINE_WRITE_TRYLOCK is not set
315# CONFIG_INLINE_WRITE_LOCK is not set
316# CONFIG_INLINE_WRITE_LOCK_BH is not set
317# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
318# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
319# CONFIG_INLINE_WRITE_UNLOCK is not set
320# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
321# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
322# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
323# CONFIG_MUTEX_SPIN_ON_OWNER is not set
294CONFIG_FREEZER=y 324CONFIG_FREEZER=y
295 325
296# 326#
@@ -314,7 +344,7 @@ CONFIG_MMU=y
314CONFIG_BINFMT_ELF=y 344CONFIG_BINFMT_ELF=y
315# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 345# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
316# CONFIG_HAVE_AOUT is not set 346# CONFIG_HAVE_AOUT is not set
317# CONFIG_BINFMT_MISC is not set 347CONFIG_BINFMT_MISC=m
318CONFIG_MIPS32_COMPAT=y 348CONFIG_MIPS32_COMPAT=y
319CONFIG_COMPAT=y 349CONFIG_COMPAT=y
320CONFIG_SYSVIPC_COMPAT=y 350CONFIG_SYSVIPC_COMPAT=y
@@ -335,9 +365,34 @@ CONFIG_SUSPEND_FREEZER=y
335CONFIG_HIBERNATION_NVS=y 365CONFIG_HIBERNATION_NVS=y
336CONFIG_HIBERNATION=y 366CONFIG_HIBERNATION=y
337CONFIG_PM_STD_PARTITION="/dev/hda3" 367CONFIG_PM_STD_PARTITION="/dev/hda3"
338# CONFIG_PM_RUNTIME is not set 368CONFIG_PM_RUNTIME=y
369CONFIG_MIPS_EXTERNAL_TIMER=y
370CONFIG_MIPS_CPUFREQ=y
371
372#
373# CPU Frequency scaling
374#
375CONFIG_CPU_FREQ=y
376CONFIG_CPU_FREQ_TABLE=y
377CONFIG_CPU_FREQ_DEBUG=y
378CONFIG_CPU_FREQ_STAT=m
379CONFIG_CPU_FREQ_STAT_DETAILS=y
380# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
381# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
382# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
383CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
384# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
385CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
386CONFIG_CPU_FREQ_GOV_POWERSAVE=m
387CONFIG_CPU_FREQ_GOV_USERSPACE=m
388CONFIG_CPU_FREQ_GOV_ONDEMAND=y
389CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
390
391#
392# CPUFreq processor drivers
393#
394CONFIG_LOONGSON2_CPUFREQ=m
339CONFIG_NET=y 395CONFIG_NET=y
340CONFIG_COMPAT_NETLINK_MESSAGES=y
341 396
342# 397#
343# Networking options 398# Networking options
@@ -346,11 +401,12 @@ CONFIG_PACKET=y
346CONFIG_PACKET_MMAP=y 401CONFIG_PACKET_MMAP=y
347CONFIG_UNIX=y 402CONFIG_UNIX=y
348CONFIG_XFRM=y 403CONFIG_XFRM=y
349# CONFIG_XFRM_USER is not set 404CONFIG_XFRM_USER=m
350# CONFIG_XFRM_SUB_POLICY is not set 405# CONFIG_XFRM_SUB_POLICY is not set
351# CONFIG_XFRM_MIGRATE is not set 406# CONFIG_XFRM_MIGRATE is not set
352# CONFIG_XFRM_STATISTICS is not set 407# CONFIG_XFRM_STATISTICS is not set
353# CONFIG_NET_KEY is not set 408CONFIG_NET_KEY=m
409# CONFIG_NET_KEY_MIGRATE is not set
354CONFIG_INET=y 410CONFIG_INET=y
355CONFIG_IP_MULTICAST=y 411CONFIG_IP_MULTICAST=y
356CONFIG_IP_ADVANCED_ROUTER=y 412CONFIG_IP_ADVANCED_ROUTER=y
@@ -361,12 +417,13 @@ CONFIG_IP_MULTIPLE_TABLES=y
361CONFIG_IP_ROUTE_MULTIPATH=y 417CONFIG_IP_ROUTE_MULTIPATH=y
362CONFIG_IP_ROUTE_VERBOSE=y 418CONFIG_IP_ROUTE_VERBOSE=y
363# CONFIG_IP_PNP is not set 419# CONFIG_IP_PNP is not set
364# CONFIG_NET_IPIP is not set 420CONFIG_NET_IPIP=m
365# CONFIG_NET_IPGRE is not set 421CONFIG_NET_IPGRE=m
422# CONFIG_NET_IPGRE_BROADCAST is not set
366CONFIG_IP_MROUTE=y 423CONFIG_IP_MROUTE=y
367CONFIG_IP_PIMSM_V1=y 424CONFIG_IP_PIMSM_V1=y
368CONFIG_IP_PIMSM_V2=y 425CONFIG_IP_PIMSM_V2=y
369# CONFIG_ARPD is not set 426CONFIG_ARPD=y
370CONFIG_SYN_COOKIES=y 427CONFIG_SYN_COOKIES=y
371# CONFIG_INET_AH is not set 428# CONFIG_INET_AH is not set
372# CONFIG_INET_ESP is not set 429# CONFIG_INET_ESP is not set
@@ -399,30 +456,34 @@ CONFIG_DEFAULT_BIC=y
399# CONFIG_DEFAULT_WESTWOOD is not set 456# CONFIG_DEFAULT_WESTWOOD is not set
400# CONFIG_DEFAULT_RENO is not set 457# CONFIG_DEFAULT_RENO is not set
401CONFIG_DEFAULT_TCP_CONG="bic" 458CONFIG_DEFAULT_TCP_CONG="bic"
402# CONFIG_TCP_MD5SIG is not set 459CONFIG_TCP_MD5SIG=y
403CONFIG_IPV6=m 460CONFIG_IPV6=m
404CONFIG_IPV6_PRIVACY=y 461CONFIG_IPV6_PRIVACY=y
405# CONFIG_IPV6_ROUTER_PREF is not set 462CONFIG_IPV6_ROUTER_PREF=y
463# CONFIG_IPV6_ROUTE_INFO is not set
406# CONFIG_IPV6_OPTIMISTIC_DAD is not set 464# CONFIG_IPV6_OPTIMISTIC_DAD is not set
407# CONFIG_INET6_AH is not set 465# CONFIG_INET6_AH is not set
408# CONFIG_INET6_ESP is not set 466# CONFIG_INET6_ESP is not set
409# CONFIG_INET6_IPCOMP is not set 467# CONFIG_INET6_IPCOMP is not set
410# CONFIG_IPV6_MIP6 is not set 468# CONFIG_IPV6_MIP6 is not set
411# CONFIG_INET6_XFRM_TUNNEL is not set 469# CONFIG_INET6_XFRM_TUNNEL is not set
412# CONFIG_INET6_TUNNEL is not set 470CONFIG_INET6_TUNNEL=m
413CONFIG_INET6_XFRM_MODE_TRANSPORT=m 471CONFIG_INET6_XFRM_MODE_TRANSPORT=m
414CONFIG_INET6_XFRM_MODE_TUNNEL=m 472CONFIG_INET6_XFRM_MODE_TUNNEL=m
415CONFIG_INET6_XFRM_MODE_BEET=m 473CONFIG_INET6_XFRM_MODE_BEET=m
416# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 474# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
417CONFIG_IPV6_SIT=m 475CONFIG_IPV6_SIT=m
476# CONFIG_IPV6_SIT_6RD is not set
418CONFIG_IPV6_NDISC_NODETYPE=y 477CONFIG_IPV6_NDISC_NODETYPE=y
419# CONFIG_IPV6_TUNNEL is not set 478CONFIG_IPV6_TUNNEL=m
420# CONFIG_IPV6_MULTIPLE_TABLES is not set 479CONFIG_IPV6_MULTIPLE_TABLES=y
480CONFIG_IPV6_SUBTREES=y
421# CONFIG_IPV6_MROUTE is not set 481# CONFIG_IPV6_MROUTE is not set
422CONFIG_NETWORK_SECMARK=y 482CONFIG_NETWORK_SECMARK=y
423CONFIG_NETFILTER=y 483CONFIG_NETFILTER=y
424# CONFIG_NETFILTER_DEBUG is not set 484# CONFIG_NETFILTER_DEBUG is not set
425CONFIG_NETFILTER_ADVANCED=y 485CONFIG_NETFILTER_ADVANCED=y
486CONFIG_BRIDGE_NETFILTER=y
426 487
427# 488#
428# Core Netfilter Configuration 489# Core Netfilter Configuration
@@ -446,17 +507,22 @@ CONFIG_NETFILTER_ADVANCED=y
446# 507#
447# CONFIG_IP6_NF_QUEUE is not set 508# CONFIG_IP6_NF_QUEUE is not set
448# CONFIG_IP6_NF_IPTABLES is not set 509# CONFIG_IP6_NF_IPTABLES is not set
510# CONFIG_BRIDGE_NF_EBTABLES is not set
449# CONFIG_IP_DCCP is not set 511# CONFIG_IP_DCCP is not set
450# CONFIG_IP_SCTP is not set 512# CONFIG_IP_SCTP is not set
451# CONFIG_RDS is not set 513# CONFIG_RDS is not set
452# CONFIG_TIPC is not set 514# CONFIG_TIPC is not set
453# CONFIG_ATM is not set 515# CONFIG_ATM is not set
454# CONFIG_BRIDGE is not set 516CONFIG_STP=m
517CONFIG_BRIDGE=m
455# CONFIG_NET_DSA is not set 518# CONFIG_NET_DSA is not set
456# CONFIG_VLAN_8021Q is not set 519CONFIG_VLAN_8021Q=m
520# CONFIG_VLAN_8021Q_GVRP is not set
457# CONFIG_DECNET is not set 521# CONFIG_DECNET is not set
522CONFIG_LLC=m
458# CONFIG_LLC2 is not set 523# CONFIG_LLC2 is not set
459# CONFIG_IPX is not set 524CONFIG_IPX=m
525# CONFIG_IPX_INTERN is not set
460# CONFIG_ATALK is not set 526# CONFIG_ATALK is not set
461# CONFIG_X25 is not set 527# CONFIG_X25 is not set
462# CONFIG_LAPB is not set 528# CONFIG_LAPB is not set
@@ -518,26 +584,61 @@ CONFIG_NET_SCH_FIFO=y
518# Network testing 584# Network testing
519# 585#
520# CONFIG_NET_PKTGEN is not set 586# CONFIG_NET_PKTGEN is not set
587# CONFIG_NET_DROP_MONITOR is not set
521# CONFIG_HAMRADIO is not set 588# CONFIG_HAMRADIO is not set
522# CONFIG_CAN is not set 589# CONFIG_CAN is not set
523# CONFIG_IRDA is not set 590# CONFIG_IRDA is not set
524# CONFIG_BT is not set 591CONFIG_BT=m
592CONFIG_BT_L2CAP=m
593CONFIG_BT_SCO=m
594CONFIG_BT_RFCOMM=m
595CONFIG_BT_RFCOMM_TTY=y
596CONFIG_BT_BNEP=m
597CONFIG_BT_BNEP_MC_FILTER=y
598CONFIG_BT_BNEP_PROTO_FILTER=y
599CONFIG_BT_HIDP=m
600
601#
602# Bluetooth device drivers
603#
604CONFIG_BT_HCIBTUSB=m
605# CONFIG_BT_HCIBTSDIO is not set
606# CONFIG_BT_HCIUART is not set
607# CONFIG_BT_HCIBCM203X is not set
608# CONFIG_BT_HCIBPA10X is not set
609CONFIG_BT_HCIBFUSB=m
610CONFIG_BT_HCIVHCI=m
611# CONFIG_BT_MRVL is not set
525# CONFIG_AF_RXRPC is not set 612# CONFIG_AF_RXRPC is not set
526CONFIG_FIB_RULES=y 613CONFIG_FIB_RULES=y
527CONFIG_WIRELESS=y 614CONFIG_WIRELESS=y
528# CONFIG_CFG80211 is not set 615CONFIG_WEXT_CORE=y
529CONFIG_CFG80211_DEFAULT_PS_VALUE=0 616CONFIG_WEXT_PROC=y
617CONFIG_CFG80211=m
618# CONFIG_NL80211_TESTMODE is not set
619# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
620# CONFIG_CFG80211_REG_DEBUG is not set
621CONFIG_CFG80211_DEFAULT_PS=y
622# CONFIG_CFG80211_DEBUGFS is not set
530# CONFIG_WIRELESS_OLD_REGULATORY is not set 623# CONFIG_WIRELESS_OLD_REGULATORY is not set
531CONFIG_WIRELESS_EXT=y 624CONFIG_CFG80211_WEXT=y
532CONFIG_WIRELESS_EXT_SYSFS=y 625CONFIG_WIRELESS_EXT_SYSFS=y
533# CONFIG_LIB80211 is not set 626CONFIG_LIB80211=m
534 627CONFIG_LIB80211_DEBUG=y
535# 628CONFIG_MAC80211=m
536# CFG80211 needs to be enabled for MAC80211 629# CONFIG_MAC80211_RC_PID is not set
537# 630CONFIG_MAC80211_RC_MINSTREL=y
631# CONFIG_MAC80211_RC_DEFAULT_PID is not set
632CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
633CONFIG_MAC80211_RC_DEFAULT="minstrel"
634# CONFIG_MAC80211_MESH is not set
635CONFIG_MAC80211_LEDS=y
636# CONFIG_MAC80211_DEBUGFS is not set
637# CONFIG_MAC80211_DEBUG_MENU is not set
538# CONFIG_WIMAX is not set 638# CONFIG_WIMAX is not set
539CONFIG_RFKILL=m 639CONFIG_RFKILL=m
540# CONFIG_RFKILL_INPUT is not set 640CONFIG_RFKILL_LEDS=y
641CONFIG_RFKILL_INPUT=y
541# CONFIG_NET_9P is not set 642# CONFIG_NET_9P is not set
542 643
543# 644#
@@ -555,7 +656,7 @@ CONFIG_FW_LOADER=y
555CONFIG_FIRMWARE_IN_KERNEL=y 656CONFIG_FIRMWARE_IN_KERNEL=y
556CONFIG_EXTRA_FIRMWARE="" 657CONFIG_EXTRA_FIRMWARE=""
557# CONFIG_SYS_HYPERVISOR is not set 658# CONFIG_SYS_HYPERVISOR is not set
558# CONFIG_CONNECTOR is not set 659CONFIG_CONNECTOR=m
559# CONFIG_MTD is not set 660# CONFIG_MTD is not set
560# CONFIG_PARPORT is not set 661# CONFIG_PARPORT is not set
561# CONFIG_PNP is not set 662# CONFIG_PNP is not set
@@ -566,7 +667,12 @@ CONFIG_BLK_DEV=y
566# CONFIG_BLK_DEV_UMEM is not set 667# CONFIG_BLK_DEV_UMEM is not set
567# CONFIG_BLK_DEV_COW_COMMON is not set 668# CONFIG_BLK_DEV_COW_COMMON is not set
568CONFIG_BLK_DEV_LOOP=y 669CONFIG_BLK_DEV_LOOP=y
569CONFIG_BLK_DEV_CRYPTOLOOP=y 670CONFIG_BLK_DEV_CRYPTOLOOP=m
671
672#
673# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
674#
675# CONFIG_BLK_DEV_DRBD is not set
570# CONFIG_BLK_DEV_NBD is not set 676# CONFIG_BLK_DEV_NBD is not set
571# CONFIG_BLK_DEV_SX8 is not set 677# CONFIG_BLK_DEV_SX8 is not set
572# CONFIG_BLK_DEV_UB is not set 678# CONFIG_BLK_DEV_UB is not set
@@ -577,19 +683,7 @@ CONFIG_BLK_DEV_RAM_SIZE=8192
577# CONFIG_CDROM_PKTCDVD is not set 683# CONFIG_CDROM_PKTCDVD is not set
578# CONFIG_ATA_OVER_ETH is not set 684# CONFIG_ATA_OVER_ETH is not set
579# CONFIG_BLK_DEV_HD is not set 685# CONFIG_BLK_DEV_HD is not set
580CONFIG_MISC_DEVICES=y 686# CONFIG_MISC_DEVICES is not set
581# CONFIG_PHANTOM is not set
582# CONFIG_SGI_IOC4 is not set
583# CONFIG_TIFM_CORE is not set
584# CONFIG_ENCLOSURE_SERVICES is not set
585# CONFIG_HP_ILO is not set
586# CONFIG_C2PORT is not set
587
588#
589# EEPROM support
590#
591# CONFIG_EEPROM_93CX6 is not set
592# CONFIG_CB710_CORE is not set
593CONFIG_HAVE_IDE=y 687CONFIG_HAVE_IDE=y
594CONFIG_IDE=y 688CONFIG_IDE=y
595 689
@@ -619,8 +713,7 @@ CONFIG_BLK_DEV_IDEDMA_SFF=y
619# 713#
620CONFIG_BLK_DEV_IDEPCI=y 714CONFIG_BLK_DEV_IDEPCI=y
621# CONFIG_IDEPCI_PCIBUS_ORDER is not set 715# CONFIG_IDEPCI_PCIBUS_ORDER is not set
622# CONFIG_BLK_DEV_OFFBOARD is not set 716# CONFIG_BLK_DEV_GENERIC is not set
623CONFIG_BLK_DEV_GENERIC=y
624# CONFIG_BLK_DEV_OPTI621 is not set 717# CONFIG_BLK_DEV_OPTI621 is not set
625CONFIG_BLK_DEV_IDEDMA_PCI=y 718CONFIG_BLK_DEV_IDEDMA_PCI=y
626# CONFIG_BLK_DEV_AEC62XX is not set 719# CONFIG_BLK_DEV_AEC62XX is not set
@@ -700,7 +793,29 @@ CONFIG_SCSI_WAIT_SCAN=m
700# CONFIG_SCSI_DH is not set 793# CONFIG_SCSI_DH is not set
701# CONFIG_SCSI_OSD_INITIATOR is not set 794# CONFIG_SCSI_OSD_INITIATOR is not set
702# CONFIG_ATA is not set 795# CONFIG_ATA is not set
703# CONFIG_MD is not set 796CONFIG_MD=y
797CONFIG_BLK_DEV_MD=m
798CONFIG_MD_LINEAR=m
799CONFIG_MD_RAID0=m
800CONFIG_MD_RAID1=m
801CONFIG_MD_RAID10=m
802CONFIG_MD_RAID456=m
803CONFIG_MD_RAID6_PQ=m
804# CONFIG_ASYNC_RAID6_TEST is not set
805CONFIG_MD_MULTIPATH=m
806CONFIG_MD_FAULTY=m
807CONFIG_BLK_DEV_DM=m
808CONFIG_DM_DEBUG=y
809CONFIG_DM_CRYPT=m
810CONFIG_DM_SNAPSHOT=m
811CONFIG_DM_MIRROR=m
812CONFIG_DM_LOG_USERSPACE=m
813CONFIG_DM_ZERO=m
814CONFIG_DM_MULTIPATH=m
815CONFIG_DM_MULTIPATH_QL=m
816CONFIG_DM_MULTIPATH_ST=m
817CONFIG_DM_DELAY=m
818CONFIG_DM_UEVENT=y
704# CONFIG_FUSION is not set 819# CONFIG_FUSION is not set
705 820
706# 821#
@@ -712,19 +827,19 @@ CONFIG_SCSI_WAIT_SCAN=m
712# 827#
713 828
714# 829#
715# See the help texts for more information. 830# The newer stack is recommended.
716# 831#
717# CONFIG_FIREWIRE is not set 832# CONFIG_FIREWIRE is not set
718# CONFIG_IEEE1394 is not set 833# CONFIG_IEEE1394 is not set
719# CONFIG_I2O is not set 834# CONFIG_I2O is not set
720CONFIG_NETDEVICES=y 835CONFIG_NETDEVICES=y
721# CONFIG_IFB is not set 836# CONFIG_IFB is not set
722# CONFIG_DUMMY is not set 837CONFIG_DUMMY=m
723# CONFIG_BONDING is not set 838# CONFIG_BONDING is not set
724# CONFIG_MACVLAN is not set 839# CONFIG_MACVLAN is not set
725# CONFIG_EQUALIZER is not set 840# CONFIG_EQUALIZER is not set
726# CONFIG_TUN is not set 841CONFIG_TUN=m
727# CONFIG_VETH is not set 842CONFIG_VETH=m
728# CONFIG_ARCNET is not set 843# CONFIG_ARCNET is not set
729# CONFIG_PHYLIB is not set 844# CONFIG_PHYLIB is not set
730CONFIG_NET_ETHERNET=y 845CONFIG_NET_ETHERNET=y
@@ -738,6 +853,7 @@ CONFIG_MII=y
738# CONFIG_SMC91X is not set 853# CONFIG_SMC91X is not set
739# CONFIG_DM9000 is not set 854# CONFIG_DM9000 is not set
740# CONFIG_ETHOC is not set 855# CONFIG_ETHOC is not set
856# CONFIG_SMSC911X is not set
741# CONFIG_NET_VENDOR_RACAL is not set 857# CONFIG_NET_VENDOR_RACAL is not set
742# CONFIG_DNET is not set 858# CONFIG_DNET is not set
743# CONFIG_NET_TULIP is not set 859# CONFIG_NET_TULIP is not set
@@ -769,7 +885,7 @@ CONFIG_NET_PCI=y
769# CONFIG_8139CP is not set 885# CONFIG_8139CP is not set
770CONFIG_8139TOO=y 886CONFIG_8139TOO=y
771# CONFIG_8139TOO_PIO is not set 887# CONFIG_8139TOO_PIO is not set
772CONFIG_8139TOO_TUNE_TWISTER=y 888# CONFIG_8139TOO_TUNE_TWISTER is not set
773# CONFIG_8139TOO_8129 is not set 889# CONFIG_8139TOO_8129 is not set
774# CONFIG_8139_OLD_RX_RESET is not set 890# CONFIG_8139_OLD_RX_RESET is not set
775# CONFIG_R6040 is not set 891# CONFIG_R6040 is not set
@@ -795,6 +911,7 @@ CONFIG_NETDEV_1000=y
795# CONFIG_HAMACHI is not set 911# CONFIG_HAMACHI is not set
796# CONFIG_YELLOWFIN is not set 912# CONFIG_YELLOWFIN is not set
797CONFIG_R8169=y 913CONFIG_R8169=y
914CONFIG_R8169_VLAN=y
798# CONFIG_SIS190 is not set 915# CONFIG_SIS190 is not set
799# CONFIG_SKGE is not set 916# CONFIG_SKGE is not set
800# CONFIG_SKY2 is not set 917# CONFIG_SKY2 is not set
@@ -810,15 +927,31 @@ CONFIG_R8169=y
810# CONFIG_NETDEV_10000 is not set 927# CONFIG_NETDEV_10000 is not set
811# CONFIG_TR is not set 928# CONFIG_TR is not set
812CONFIG_WLAN=y 929CONFIG_WLAN=y
813CONFIG_WLAN_PRE80211=y 930# CONFIG_LIBERTAS_THINFIRM is not set
814# CONFIG_STRIP is not set
815# CONFIG_WAVELAN is not set
816CONFIG_WLAN_80211=y
817# CONFIG_LIBERTAS is not set
818# CONFIG_ATMEL is not set 931# CONFIG_ATMEL is not set
932# CONFIG_AT76C50X_USB is not set
819# CONFIG_PRISM54 is not set 933# CONFIG_PRISM54 is not set
820# CONFIG_USB_ZD1201 is not set 934# CONFIG_USB_ZD1201 is not set
935# CONFIG_USB_NET_RNDIS_WLAN is not set
936# CONFIG_RTL8180 is not set
937# CONFIG_RTL8187 is not set
938# CONFIG_ADM8211 is not set
939# CONFIG_MAC80211_HWSIM is not set
940# CONFIG_MWL8K is not set
941# CONFIG_ATH_COMMON is not set
942# CONFIG_B43 is not set
943# CONFIG_B43LEGACY is not set
821# CONFIG_HOSTAP is not set 944# CONFIG_HOSTAP is not set
945# CONFIG_IPW2100 is not set
946# CONFIG_IPW2200 is not set
947# CONFIG_IWLWIFI is not set
948# CONFIG_IWM is not set
949# CONFIG_LIBERTAS is not set
950# CONFIG_HERMES is not set
951# CONFIG_P54_COMMON is not set
952# CONFIG_RT2X00 is not set
953# CONFIG_WL12XX is not set
954# CONFIG_ZD1211RW is not set
822 955
823# 956#
824# Enable WiMAX (Networking options) to see the WiMAX drivers 957# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -831,17 +964,39 @@ CONFIG_WLAN_80211=y
831# CONFIG_USB_KAWETH is not set 964# CONFIG_USB_KAWETH is not set
832# CONFIG_USB_PEGASUS is not set 965# CONFIG_USB_PEGASUS is not set
833# CONFIG_USB_RTL8150 is not set 966# CONFIG_USB_RTL8150 is not set
834# CONFIG_USB_USBNET is not set 967CONFIG_USB_USBNET=m
968CONFIG_USB_NET_AX8817X=m
969CONFIG_USB_NET_CDCETHER=m
970CONFIG_USB_NET_CDC_EEM=m
971# CONFIG_USB_NET_DM9601 is not set
972# CONFIG_USB_NET_SMSC95XX is not set
973# CONFIG_USB_NET_GL620A is not set
974CONFIG_USB_NET_NET1080=m
975# CONFIG_USB_NET_PLUSB is not set
976# CONFIG_USB_NET_MCS7830 is not set
977# CONFIG_USB_NET_RNDIS_HOST is not set
978CONFIG_USB_NET_CDC_SUBSET=m
979# CONFIG_USB_ALI_M5632 is not set
980# CONFIG_USB_AN2720 is not set
981CONFIG_USB_BELKIN=y
982CONFIG_USB_ARMLINUX=y
983# CONFIG_USB_EPSON2888 is not set
984# CONFIG_USB_KC2190 is not set
985CONFIG_USB_NET_ZAURUS=m
835# CONFIG_USB_HSO is not set 986# CONFIG_USB_HSO is not set
987# CONFIG_USB_NET_INT51X1 is not set
836# CONFIG_WAN is not set 988# CONFIG_WAN is not set
837# CONFIG_FDDI is not set 989# CONFIG_FDDI is not set
838# CONFIG_HIPPI is not set 990# CONFIG_HIPPI is not set
839# CONFIG_PPP is not set 991# CONFIG_PPP is not set
840# CONFIG_SLIP is not set 992# CONFIG_SLIP is not set
841# CONFIG_NET_FC is not set 993# CONFIG_NET_FC is not set
842# CONFIG_NETCONSOLE is not set 994CONFIG_NETCONSOLE=m
843# CONFIG_NETPOLL is not set 995CONFIG_NETCONSOLE_DYNAMIC=y
844# CONFIG_NET_POLL_CONTROLLER is not set 996CONFIG_NETPOLL=y
997# CONFIG_NETPOLL_TRAP is not set
998CONFIG_NET_POLL_CONTROLLER=y
999# CONFIG_VMXNET3 is not set
845# CONFIG_ISDN is not set 1000# CONFIG_ISDN is not set
846# CONFIG_PHONE is not set 1001# CONFIG_PHONE is not set
847 1002
@@ -849,8 +1004,9 @@ CONFIG_WLAN_80211=y
849# Input device support 1004# Input device support
850# 1005#
851CONFIG_INPUT=y 1006CONFIG_INPUT=y
852# CONFIG_INPUT_FF_MEMLESS is not set 1007CONFIG_INPUT_FF_MEMLESS=m
853# CONFIG_INPUT_POLLDEV is not set 1008CONFIG_INPUT_POLLDEV=m
1009# CONFIG_INPUT_SPARSEKMAP is not set
854 1010
855# 1011#
856# Userland interfaces 1012# Userland interfaces
@@ -884,7 +1040,7 @@ CONFIG_MOUSE_PS2_SYNAPTICS=y
884# CONFIG_MOUSE_PS2_SENTELIC is not set 1040# CONFIG_MOUSE_PS2_SENTELIC is not set
885# CONFIG_MOUSE_PS2_TOUCHKIT is not set 1041# CONFIG_MOUSE_PS2_TOUCHKIT is not set
886# CONFIG_MOUSE_SERIAL is not set 1042# CONFIG_MOUSE_SERIAL is not set
887# CONFIG_MOUSE_APPLETOUCH is not set 1043CONFIG_MOUSE_APPLETOUCH=m
888# CONFIG_MOUSE_BCM5974 is not set 1044# CONFIG_MOUSE_BCM5974 is not set
889# CONFIG_MOUSE_INPORT is not set 1045# CONFIG_MOUSE_INPORT is not set
890# CONFIG_MOUSE_LOGIBM is not set 1046# CONFIG_MOUSE_LOGIBM is not set
@@ -904,6 +1060,7 @@ CONFIG_SERIO_I8042=y
904# CONFIG_SERIO_PCIPS2 is not set 1060# CONFIG_SERIO_PCIPS2 is not set
905CONFIG_SERIO_LIBPS2=y 1061CONFIG_SERIO_LIBPS2=y
906# CONFIG_SERIO_RAW is not set 1062# CONFIG_SERIO_RAW is not set
1063# CONFIG_SERIO_ALTERA_PS2 is not set
907# CONFIG_GAMEPORT is not set 1064# CONFIG_GAMEPORT is not set
908 1065
909# 1066#
@@ -934,8 +1091,7 @@ CONFIG_SERIAL_NONSTANDARD=y
934# 1091#
935# Serial drivers 1092# Serial drivers
936# 1093#
937CONFIG_SERIAL_8250=y 1094CONFIG_SERIAL_8250=m
938CONFIG_SERIAL_8250_CONSOLE=y
939# CONFIG_SERIAL_8250_PCI is not set 1095# CONFIG_SERIAL_8250_PCI is not set
940CONFIG_SERIAL_8250_NR_UARTS=16 1096CONFIG_SERIAL_8250_NR_UARTS=16
941CONFIG_SERIAL_8250_RUNTIME_UARTS=4 1097CONFIG_SERIAL_8250_RUNTIME_UARTS=4
@@ -953,8 +1109,7 @@ CONFIG_SERIAL_8250_FOURPORT=y
953# 1109#
954# Non-8250 serial port support 1110# Non-8250 serial port support
955# 1111#
956CONFIG_SERIAL_CORE=y 1112CONFIG_SERIAL_CORE=m
957CONFIG_SERIAL_CORE_CONSOLE=y
958# CONFIG_SERIAL_JSM is not set 1113# CONFIG_SERIAL_JSM is not set
959CONFIG_UNIX98_PTYS=y 1114CONFIG_UNIX98_PTYS=y
960# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 1115# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -1033,14 +1188,18 @@ CONFIG_VIDEO_MEDIA=m
1033# 1188#
1034# Multimedia drivers 1189# Multimedia drivers
1035# 1190#
1191CONFIG_IR_CORE=m
1192CONFIG_VIDEO_IR=m
1036# CONFIG_MEDIA_ATTACH is not set 1193# CONFIG_MEDIA_ATTACH is not set
1037CONFIG_VIDEO_V4L2=m 1194CONFIG_VIDEO_V4L2=m
1038CONFIG_VIDEO_V4L1=m 1195CONFIG_VIDEO_V4L1=m
1196CONFIG_VIDEOBUF_GEN=m
1197CONFIG_VIDEOBUF_VMALLOC=m
1039CONFIG_VIDEO_CAPTURE_DRIVERS=y 1198CONFIG_VIDEO_CAPTURE_DRIVERS=y
1040# CONFIG_VIDEO_ADV_DEBUG is not set 1199# CONFIG_VIDEO_ADV_DEBUG is not set
1041# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set 1200# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
1042CONFIG_VIDEO_HELPER_CHIPS_AUTO=y 1201CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
1043# CONFIG_VIDEO_VIVI is not set 1202CONFIG_VIDEO_VIVI=m
1044# CONFIG_VIDEO_PMS is not set 1203# CONFIG_VIDEO_PMS is not set
1045# CONFIG_VIDEO_CPIA is not set 1204# CONFIG_VIDEO_CPIA is not set
1046# CONFIG_VIDEO_CPIA2 is not set 1205# CONFIG_VIDEO_CPIA2 is not set
@@ -1049,52 +1208,55 @@ CONFIG_V4L_USB_DRIVERS=y
1049CONFIG_USB_VIDEO_CLASS=m 1208CONFIG_USB_VIDEO_CLASS=m
1050CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y 1209CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
1051CONFIG_USB_GSPCA=m 1210CONFIG_USB_GSPCA=m
1052# CONFIG_USB_M5602 is not set 1211CONFIG_USB_M5602=m
1053# CONFIG_USB_STV06XX is not set 1212CONFIG_USB_STV06XX=m
1054# CONFIG_USB_GL860 is not set 1213# CONFIG_USB_GL860 is not set
1055# CONFIG_USB_GSPCA_CONEX is not set 1214CONFIG_USB_GSPCA_CONEX=m
1056# CONFIG_USB_GSPCA_ETOMS is not set 1215CONFIG_USB_GSPCA_ETOMS=m
1057# CONFIG_USB_GSPCA_FINEPIX is not set 1216CONFIG_USB_GSPCA_FINEPIX=m
1058# CONFIG_USB_GSPCA_JEILINJ is not set 1217# CONFIG_USB_GSPCA_JEILINJ is not set
1059# CONFIG_USB_GSPCA_MARS is not set 1218CONFIG_USB_GSPCA_MARS=m
1060# CONFIG_USB_GSPCA_MR97310A is not set 1219CONFIG_USB_GSPCA_MR97310A=m
1061# CONFIG_USB_GSPCA_OV519 is not set 1220CONFIG_USB_GSPCA_OV519=m
1062# CONFIG_USB_GSPCA_OV534 is not set 1221CONFIG_USB_GSPCA_OV534=m
1063# CONFIG_USB_GSPCA_PAC207 is not set 1222CONFIG_USB_GSPCA_PAC207=m
1064# CONFIG_USB_GSPCA_PAC7311 is not set 1223# CONFIG_USB_GSPCA_PAC7302 is not set
1065# CONFIG_USB_GSPCA_SN9C20X is not set 1224CONFIG_USB_GSPCA_PAC7311=m
1066# CONFIG_USB_GSPCA_SONIXB is not set 1225CONFIG_USB_GSPCA_SN9C20X=m
1067# CONFIG_USB_GSPCA_SONIXJ is not set 1226CONFIG_USB_GSPCA_SN9C20X_EVDEV=y
1068# CONFIG_USB_GSPCA_SPCA500 is not set 1227CONFIG_USB_GSPCA_SONIXB=m
1069# CONFIG_USB_GSPCA_SPCA501 is not set 1228CONFIG_USB_GSPCA_SONIXJ=m
1070# CONFIG_USB_GSPCA_SPCA505 is not set 1229CONFIG_USB_GSPCA_SPCA500=m
1071# CONFIG_USB_GSPCA_SPCA506 is not set 1230CONFIG_USB_GSPCA_SPCA501=m
1072# CONFIG_USB_GSPCA_SPCA508 is not set 1231CONFIG_USB_GSPCA_SPCA505=m
1073# CONFIG_USB_GSPCA_SPCA561 is not set 1232CONFIG_USB_GSPCA_SPCA506=m
1074# CONFIG_USB_GSPCA_SQ905 is not set 1233CONFIG_USB_GSPCA_SPCA508=m
1075# CONFIG_USB_GSPCA_SQ905C is not set 1234CONFIG_USB_GSPCA_SPCA561=m
1076# CONFIG_USB_GSPCA_STK014 is not set 1235CONFIG_USB_GSPCA_SQ905=m
1077# CONFIG_USB_GSPCA_SUNPLUS is not set 1236CONFIG_USB_GSPCA_SQ905C=m
1078# CONFIG_USB_GSPCA_T613 is not set 1237CONFIG_USB_GSPCA_STK014=m
1079# CONFIG_USB_GSPCA_TV8532 is not set 1238# CONFIG_USB_GSPCA_STV0680 is not set
1080# CONFIG_USB_GSPCA_VC032X is not set 1239CONFIG_USB_GSPCA_SUNPLUS=m
1081# CONFIG_USB_GSPCA_ZC3XX is not set 1240CONFIG_USB_GSPCA_T613=m
1241CONFIG_USB_GSPCA_TV8532=m
1242CONFIG_USB_GSPCA_VC032X=m
1243CONFIG_USB_GSPCA_ZC3XX=m
1082# CONFIG_VIDEO_HDPVR is not set 1244# CONFIG_VIDEO_HDPVR is not set
1083# CONFIG_USB_VICAM is not set 1245# CONFIG_USB_VICAM is not set
1084# CONFIG_USB_IBMCAM is not set 1246# CONFIG_USB_IBMCAM is not set
1085# CONFIG_USB_KONICAWC is not set 1247# CONFIG_USB_KONICAWC is not set
1086# CONFIG_USB_QUICKCAM_MESSENGER is not set 1248# CONFIG_USB_QUICKCAM_MESSENGER is not set
1087# CONFIG_USB_ET61X251 is not set 1249CONFIG_USB_ET61X251=m
1088# CONFIG_USB_OV511 is not set 1250# CONFIG_USB_OV511 is not set
1089# CONFIG_USB_SE401 is not set 1251# CONFIG_USB_SE401 is not set
1090# CONFIG_USB_SN9C102 is not set 1252CONFIG_USB_SN9C102=m
1091# CONFIG_USB_STV680 is not set 1253# CONFIG_USB_STV680 is not set
1092# CONFIG_USB_ZC0301 is not set 1254CONFIG_USB_ZC0301=m
1093# CONFIG_USB_PWC is not set 1255# CONFIG_USB_PWC is not set
1094CONFIG_USB_PWC_INPUT_EVDEV=y 1256CONFIG_USB_PWC_INPUT_EVDEV=y
1095# CONFIG_USB_ZR364XX is not set 1257CONFIG_USB_ZR364XX=m
1096# CONFIG_USB_STKWEBCAM is not set 1258CONFIG_USB_STKWEBCAM=m
1097# CONFIG_USB_S2255 is not set 1259CONFIG_USB_S2255=m
1098# CONFIG_RADIO_ADAPTERS is not set 1260# CONFIG_RADIO_ADAPTERS is not set
1099# CONFIG_DAB is not set 1261# CONFIG_DAB is not set
1100 1262
@@ -1132,6 +1294,7 @@ CONFIG_FB_TILEBLITTING=y
1132# CONFIG_FB_CYBER2000 is not set 1294# CONFIG_FB_CYBER2000 is not set
1133# CONFIG_FB_ASILIANT is not set 1295# CONFIG_FB_ASILIANT is not set
1134# CONFIG_FB_IMSTT is not set 1296# CONFIG_FB_IMSTT is not set
1297# CONFIG_FB_UVESA is not set
1135# CONFIG_FB_S1D13XXX is not set 1298# CONFIG_FB_S1D13XXX is not set
1136# CONFIG_FB_NVIDIA is not set 1299# CONFIG_FB_NVIDIA is not set
1137# CONFIG_FB_RIVA is not set 1300# CONFIG_FB_RIVA is not set
@@ -1161,7 +1324,7 @@ CONFIG_FB_SIS_315=y
1161CONFIG_BACKLIGHT_LCD_SUPPORT=y 1324CONFIG_BACKLIGHT_LCD_SUPPORT=y
1162# CONFIG_LCD_CLASS_DEVICE is not set 1325# CONFIG_LCD_CLASS_DEVICE is not set
1163CONFIG_BACKLIGHT_CLASS_DEVICE=y 1326CONFIG_BACKLIGHT_CLASS_DEVICE=y
1164CONFIG_BACKLIGHT_GENERIC=y 1327CONFIG_BACKLIGHT_GENERIC=m
1165 1328
1166# 1329#
1167# Display device support 1330# Display device support
@@ -1193,28 +1356,44 @@ CONFIG_LOGO=y
1193# CONFIG_LOGO_LINUX_VGA16 is not set 1356# CONFIG_LOGO_LINUX_VGA16 is not set
1194CONFIG_LOGO_LINUX_CLUT224=y 1357CONFIG_LOGO_LINUX_CLUT224=y
1195CONFIG_SOUND=m 1358CONFIG_SOUND=m
1196# CONFIG_SOUND_OSS_CORE is not set 1359CONFIG_SOUND_OSS_CORE=y
1360CONFIG_SOUND_OSS_CORE_PRECLAIM=y
1197CONFIG_SND=m 1361CONFIG_SND=m
1198CONFIG_SND_TIMER=m 1362CONFIG_SND_TIMER=m
1199CONFIG_SND_PCM=m 1363CONFIG_SND_PCM=m
1200# CONFIG_SND_SEQUENCER is not set 1364CONFIG_SND_HWDEP=m
1201# CONFIG_SND_MIXER_OSS is not set 1365CONFIG_SND_RAWMIDI=m
1202# CONFIG_SND_PCM_OSS is not set 1366CONFIG_SND_SEQUENCER=m
1203# CONFIG_SND_HRTIMER is not set 1367CONFIG_SND_SEQ_DUMMY=m
1368CONFIG_SND_OSSEMUL=y
1369CONFIG_SND_MIXER_OSS=m
1370CONFIG_SND_PCM_OSS=m
1371CONFIG_SND_PCM_OSS_PLUGINS=y
1372CONFIG_SND_SEQUENCER_OSS=y
1373CONFIG_SND_HRTIMER=m
1374CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
1204# CONFIG_SND_RTCTIMER is not set 1375# CONFIG_SND_RTCTIMER is not set
1205# CONFIG_SND_DYNAMIC_MINORS is not set 1376# CONFIG_SND_DYNAMIC_MINORS is not set
1206# CONFIG_SND_SUPPORT_OLD_API is not set 1377CONFIG_SND_SUPPORT_OLD_API=y
1207# CONFIG_SND_VERBOSE_PROCFS is not set 1378CONFIG_SND_VERBOSE_PROCFS=y
1208# CONFIG_SND_VERBOSE_PRINTK is not set 1379# CONFIG_SND_VERBOSE_PRINTK is not set
1209# CONFIG_SND_DEBUG is not set 1380# CONFIG_SND_DEBUG is not set
1210CONFIG_SND_VMASTER=y 1381CONFIG_SND_VMASTER=y
1211# CONFIG_SND_RAWMIDI_SEQ is not set 1382CONFIG_SND_RAWMIDI_SEQ=m
1212# CONFIG_SND_OPL3_LIB_SEQ is not set 1383# CONFIG_SND_OPL3_LIB_SEQ is not set
1213# CONFIG_SND_OPL4_LIB_SEQ is not set 1384# CONFIG_SND_OPL4_LIB_SEQ is not set
1214# CONFIG_SND_SBAWE_SEQ is not set 1385# CONFIG_SND_SBAWE_SEQ is not set
1215# CONFIG_SND_EMU10K1_SEQ is not set 1386# CONFIG_SND_EMU10K1_SEQ is not set
1387CONFIG_SND_MPU401_UART=m
1216CONFIG_SND_AC97_CODEC=m 1388CONFIG_SND_AC97_CODEC=m
1217# CONFIG_SND_DRIVERS is not set 1389CONFIG_SND_DRIVERS=y
1390CONFIG_SND_DUMMY=m
1391CONFIG_SND_VIRMIDI=m
1392# CONFIG_SND_MTPAV is not set
1393CONFIG_SND_SERIAL_U16550=m
1394CONFIG_SND_MPU401=m
1395CONFIG_SND_AC97_POWER_SAVE=y
1396CONFIG_SND_AC97_POWER_SAVE_DEFAULT=10
1218CONFIG_SND_PCI=y 1397CONFIG_SND_PCI=y
1219# CONFIG_SND_AD1889 is not set 1398# CONFIG_SND_AD1889 is not set
1220# CONFIG_SND_ALS300 is not set 1399# CONFIG_SND_ALS300 is not set
@@ -1281,7 +1460,10 @@ CONFIG_SND_CS5535AUDIO=m
1281# CONFIG_SND_VX222 is not set 1460# CONFIG_SND_VX222 is not set
1282# CONFIG_SND_YMFPCI is not set 1461# CONFIG_SND_YMFPCI is not set
1283# CONFIG_SND_MIPS is not set 1462# CONFIG_SND_MIPS is not set
1284# CONFIG_SND_USB is not set 1463CONFIG_SND_USB=y
1464CONFIG_SND_USB_AUDIO=m
1465CONFIG_SND_USB_CAIAQ=m
1466CONFIG_SND_USB_CAIAQ_INPUT=y
1285# CONFIG_SND_SOC is not set 1467# CONFIG_SND_SOC is not set
1286# CONFIG_SOUND_PRIME is not set 1468# CONFIG_SOUND_PRIME is not set
1287CONFIG_AC97_BUS=m 1469CONFIG_AC97_BUS=m
@@ -1299,32 +1481,41 @@ CONFIG_USB_HIDDEV=y
1299# 1481#
1300# Special HID drivers 1482# Special HID drivers
1301# 1483#
1302# CONFIG_HID_A4TECH is not set 1484CONFIG_HID_A4TECH=m
1303# CONFIG_HID_APPLE is not set 1485CONFIG_HID_APPLE=m
1304# CONFIG_HID_BELKIN is not set 1486CONFIG_HID_BELKIN=m
1305# CONFIG_HID_CHERRY is not set 1487CONFIG_HID_CHERRY=m
1306# CONFIG_HID_CHICONY is not set 1488CONFIG_HID_CHICONY=m
1307# CONFIG_HID_CYPRESS is not set 1489CONFIG_HID_CYPRESS=m
1308# CONFIG_HID_DRAGONRISE is not set 1490CONFIG_HID_DRAGONRISE=m
1309# CONFIG_HID_EZKEY is not set 1491CONFIG_DRAGONRISE_FF=y
1310# CONFIG_HID_KYE is not set 1492CONFIG_HID_EZKEY=m
1311# CONFIG_HID_GYRATION is not set 1493CONFIG_HID_KYE=m
1312# CONFIG_HID_TWINHAN is not set 1494CONFIG_HID_GYRATION=m
1313# CONFIG_HID_KENSINGTON is not set 1495CONFIG_HID_TWINHAN=m
1314# CONFIG_HID_LOGITECH is not set 1496CONFIG_HID_KENSINGTON=m
1315# CONFIG_HID_MICROSOFT is not set 1497CONFIG_HID_LOGITECH=m
1316# CONFIG_HID_MONTEREY is not set 1498CONFIG_LOGITECH_FF=y
1317# CONFIG_HID_NTRIG is not set 1499CONFIG_LOGIRUMBLEPAD2_FF=y
1318# CONFIG_HID_PANTHERLORD is not set 1500CONFIG_HID_MICROSOFT=m
1319# CONFIG_HID_PETALYNX is not set 1501CONFIG_HID_MONTEREY=m
1320# CONFIG_HID_SAMSUNG is not set 1502CONFIG_HID_NTRIG=m
1321# CONFIG_HID_SONY is not set 1503CONFIG_HID_PANTHERLORD=m
1322# CONFIG_HID_SUNPLUS is not set 1504CONFIG_PANTHERLORD_FF=y
1323# CONFIG_HID_GREENASIA is not set 1505CONFIG_HID_PETALYNX=m
1324# CONFIG_HID_SMARTJOYPLUS is not set 1506CONFIG_HID_SAMSUNG=m
1325# CONFIG_HID_TOPSEED is not set 1507CONFIG_HID_SONY=m
1326# CONFIG_HID_THRUSTMASTER is not set 1508CONFIG_HID_SUNPLUS=m
1327# CONFIG_HID_ZEROPLUS is not set 1509CONFIG_HID_GREENASIA=m
1510CONFIG_GREENASIA_FF=y
1511CONFIG_HID_SMARTJOYPLUS=m
1512CONFIG_SMARTJOYPLUS_FF=y
1513CONFIG_HID_TOPSEED=m
1514CONFIG_HID_THRUSTMASTER=m
1515CONFIG_THRUSTMASTER_FF=y
1516CONFIG_HID_WACOM=m
1517CONFIG_HID_ZEROPLUS=m
1518CONFIG_ZEROPLUS_FF=y
1328CONFIG_USB_SUPPORT=y 1519CONFIG_USB_SUPPORT=y
1329CONFIG_USB_ARCH_HAS_HCD=y 1520CONFIG_USB_ARCH_HAS_HCD=y
1330CONFIG_USB_ARCH_HAS_OHCI=y 1521CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1344,7 +1535,7 @@ CONFIG_USB_SUSPEND=y
1344CONFIG_USB_OTG_WHITELIST=y 1535CONFIG_USB_OTG_WHITELIST=y
1345# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1536# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1346CONFIG_USB_MON=y 1537CONFIG_USB_MON=y
1347# CONFIG_USB_WUSB is not set 1538CONFIG_USB_WUSB=m
1348# CONFIG_USB_WUSB_CBAF is not set 1539# CONFIG_USB_WUSB_CBAF is not set
1349 1540
1350# 1541#
@@ -1366,14 +1557,15 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1366CONFIG_USB_UHCI_HCD=m 1557CONFIG_USB_UHCI_HCD=m
1367# CONFIG_USB_SL811_HCD is not set 1558# CONFIG_USB_SL811_HCD is not set
1368# CONFIG_USB_R8A66597_HCD is not set 1559# CONFIG_USB_R8A66597_HCD is not set
1369# CONFIG_USB_WHCI_HCD is not set 1560CONFIG_USB_WHCI_HCD=m
1370# CONFIG_USB_HWA_HCD is not set 1561CONFIG_USB_HWA_HCD=m
1562# CONFIG_USB_GADGET_MUSB_HDRC is not set
1371 1563
1372# 1564#
1373# USB Device Class drivers 1565# USB Device Class drivers
1374# 1566#
1375CONFIG_USB_ACM=m 1567CONFIG_USB_ACM=m
1376# CONFIG_USB_PRINTER is not set 1568CONFIG_USB_PRINTER=m
1377CONFIG_USB_WDM=m 1569CONFIG_USB_WDM=m
1378# CONFIG_USB_TMC is not set 1570# CONFIG_USB_TMC is not set
1379 1571
@@ -1397,7 +1589,7 @@ CONFIG_USB_STORAGE_ALAUDA=m
1397# CONFIG_USB_STORAGE_ONETOUCH is not set 1589# CONFIG_USB_STORAGE_ONETOUCH is not set
1398# CONFIG_USB_STORAGE_KARMA is not set 1590# CONFIG_USB_STORAGE_KARMA is not set
1399# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1591# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1400# CONFIG_USB_LIBUSUAL is not set 1592CONFIG_USB_LIBUSUAL=y
1401 1593
1402# 1594#
1403# USB Imaging devices 1595# USB Imaging devices
@@ -1467,7 +1659,7 @@ CONFIG_USB_SERIAL_GENERIC=y
1467# CONFIG_USB_LEGOTOWER is not set 1659# CONFIG_USB_LEGOTOWER is not set
1468# CONFIG_USB_LCD is not set 1660# CONFIG_USB_LCD is not set
1469# CONFIG_USB_BERRY_CHARGE is not set 1661# CONFIG_USB_BERRY_CHARGE is not set
1470# CONFIG_USB_LED is not set 1662CONFIG_USB_LED=m
1471# CONFIG_USB_CYPRESS_CY7C63 is not set 1663# CONFIG_USB_CYPRESS_CY7C63 is not set
1472# CONFIG_USB_CYTHERM is not set 1664# CONFIG_USB_CYTHERM is not set
1473# CONFIG_USB_IDMOUSE is not set 1665# CONFIG_USB_IDMOUSE is not set
@@ -1480,16 +1672,95 @@ CONFIG_USB_SERIAL_GENERIC=y
1480# CONFIG_USB_TEST is not set 1672# CONFIG_USB_TEST is not set
1481# CONFIG_USB_ISIGHTFW is not set 1673# CONFIG_USB_ISIGHTFW is not set
1482# CONFIG_USB_VST is not set 1674# CONFIG_USB_VST is not set
1483# CONFIG_USB_GADGET is not set 1675CONFIG_USB_GADGET=m
1676# CONFIG_USB_GADGET_DEBUG_FILES is not set
1677# CONFIG_USB_GADGET_DEBUG_FS is not set
1678CONFIG_USB_GADGET_VBUS_DRAW=2
1679CONFIG_USB_GADGET_SELECTED=y
1680# CONFIG_USB_GADGET_AT91 is not set
1681# CONFIG_USB_GADGET_ATMEL_USBA is not set
1682# CONFIG_USB_GADGET_FSL_USB2 is not set
1683# CONFIG_USB_GADGET_LH7A40X is not set
1684# CONFIG_USB_GADGET_OMAP is not set
1685# CONFIG_USB_GADGET_PXA25X is not set
1686# CONFIG_USB_GADGET_R8A66597 is not set
1687# CONFIG_USB_GADGET_PXA27X is not set
1688# CONFIG_USB_GADGET_S3C_HSOTG is not set
1689# CONFIG_USB_GADGET_IMX is not set
1690# CONFIG_USB_GADGET_S3C2410 is not set
1691CONFIG_USB_GADGET_M66592=y
1692CONFIG_USB_M66592=m
1693# CONFIG_USB_GADGET_AMD5536UDC is not set
1694# CONFIG_USB_GADGET_FSL_QE is not set
1695# CONFIG_USB_GADGET_CI13XXX is not set
1696# CONFIG_USB_GADGET_NET2280 is not set
1697# CONFIG_USB_GADGET_GOKU is not set
1698# CONFIG_USB_GADGET_LANGWELL is not set
1699# CONFIG_USB_GADGET_DUMMY_HCD is not set
1700CONFIG_USB_GADGET_DUALSPEED=y
1701# CONFIG_USB_ZERO is not set
1702# CONFIG_USB_AUDIO is not set
1703# CONFIG_USB_ETH is not set
1704# CONFIG_USB_GADGETFS is not set
1705# CONFIG_USB_FILE_STORAGE is not set
1706# CONFIG_USB_MASS_STORAGE is not set
1707# CONFIG_USB_G_SERIAL is not set
1708# CONFIG_USB_MIDI_GADGET is not set
1709# CONFIG_USB_G_PRINTER is not set
1710# CONFIG_USB_CDC_COMPOSITE is not set
1711# CONFIG_USB_G_MULTI is not set
1484 1712
1485# 1713#
1486# OTG and related infrastructure 1714# OTG and related infrastructure
1487# 1715#
1488# CONFIG_NOP_USB_XCEIV is not set 1716# CONFIG_NOP_USB_XCEIV is not set
1489# CONFIG_UWB is not set 1717CONFIG_UWB=m
1490# CONFIG_MMC is not set 1718CONFIG_UWB_HWA=m
1719CONFIG_UWB_WHCI=m
1720# CONFIG_UWB_WLP is not set
1721# CONFIG_UWB_I1480U is not set
1722CONFIG_MMC=m
1723# CONFIG_MMC_DEBUG is not set
1724# CONFIG_MMC_UNSAFE_RESUME is not set
1725
1726#
1727# MMC/SD/SDIO Card Drivers
1728#
1729CONFIG_MMC_BLOCK=m
1730CONFIG_MMC_BLOCK_BOUNCE=y
1731# CONFIG_SDIO_UART is not set
1732# CONFIG_MMC_TEST is not set
1733
1734#
1735# MMC/SD/SDIO Host Controller Drivers
1736#
1737# CONFIG_MMC_SDHCI is not set
1738# CONFIG_MMC_AT91 is not set
1739# CONFIG_MMC_ATMELMCI is not set
1740# CONFIG_MMC_TIFM_SD is not set
1741# CONFIG_MMC_CB710 is not set
1742# CONFIG_MMC_VIA_SDMMC is not set
1491# CONFIG_MEMSTICK is not set 1743# CONFIG_MEMSTICK is not set
1492# CONFIG_NEW_LEDS is not set 1744CONFIG_NEW_LEDS=y
1745CONFIG_LEDS_CLASS=m
1746
1747#
1748# LED drivers
1749#
1750
1751#
1752# LED Triggers
1753#
1754CONFIG_LEDS_TRIGGERS=y
1755# CONFIG_LEDS_TRIGGER_TIMER is not set
1756# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
1757# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
1758# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
1759# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
1760
1761#
1762# iptables trigger is under Netfilter config (LED target)
1763#
1493# CONFIG_ACCESSIBILITY is not set 1764# CONFIG_ACCESSIBILITY is not set
1494# CONFIG_INFINIBAND is not set 1765# CONFIG_INFINIBAND is not set
1495# CONFIG_RTC_CLASS is not set 1766# CONFIG_RTC_CLASS is not set
@@ -1504,22 +1775,18 @@ CONFIG_STAGING=y
1504# CONFIG_STAGING_EXCLUDE_BUILD is not set 1775# CONFIG_STAGING_EXCLUDE_BUILD is not set
1505# CONFIG_ET131X is not set 1776# CONFIG_ET131X is not set
1506# CONFIG_USB_IP_COMMON is not set 1777# CONFIG_USB_IP_COMMON is not set
1507# CONFIG_PRISM2_USB is not set 1778# CONFIG_W35UND is not set
1508# CONFIG_ECHO is not set 1779# CONFIG_ECHO is not set
1780# CONFIG_OTUS is not set
1509# CONFIG_COMEDI is not set 1781# CONFIG_COMEDI is not set
1510# CONFIG_ASUS_OLED is not set 1782# CONFIG_ASUS_OLED is not set
1511# CONFIG_ALTERA_PCIE_CHDMA is not set 1783# CONFIG_ALTERA_PCIE_CHDMA is not set
1512# CONFIG_RTL8187SE is not set 1784# CONFIG_R8187SE is not set
1513# CONFIG_RTL8192SU is not set
1514# CONFIG_RTL8192E is not set 1785# CONFIG_RTL8192E is not set
1515# CONFIG_INPUT_MIMIO is not set 1786# CONFIG_INPUT_MIMIO is not set
1516# CONFIG_TRANZPORT is not set 1787# CONFIG_TRANZPORT is not set
1517 1788
1518# 1789#
1519# Android
1520#
1521
1522#
1523# Qualcomm MSM Camera And Video 1790# Qualcomm MSM Camera And Video
1524# 1791#
1525 1792
@@ -1527,7 +1794,6 @@ CONFIG_STAGING=y
1527# Camera Sensor Selection 1794# Camera Sensor Selection
1528# 1795#
1529# CONFIG_INPUT_GPIO is not set 1796# CONFIG_INPUT_GPIO is not set
1530# CONFIG_DST is not set
1531# CONFIG_POHMELFS is not set 1797# CONFIG_POHMELFS is not set
1532# CONFIG_B3DFG is not set 1798# CONFIG_B3DFG is not set
1533# CONFIG_PLAN9AUTH is not set 1799# CONFIG_PLAN9AUTH is not set
@@ -1544,28 +1810,55 @@ CONFIG_STAGING=y
1544# 1810#
1545# CONFIG_RAR_REGISTER is not set 1811# CONFIG_RAR_REGISTER is not set
1546# CONFIG_IIO is not set 1812# CONFIG_IIO is not set
1813# CONFIG_RAMZSWAP is not set
1814# CONFIG_BATMAN_ADV is not set
1815# CONFIG_STRIP is not set
1816# CONFIG_WAVELAN is not set
1547CONFIG_FB_SM7XX=y 1817CONFIG_FB_SM7XX=y
1548CONFIG_FB_SM7XX_ACCEL=y 1818# CONFIG_FB_SM7XX_ACCEL is not set
1549 1819
1550# 1820#
1551# File systems 1821# File systems
1552# 1822#
1553# CONFIG_EXT2_FS is not set 1823CONFIG_EXT2_FS=m
1824# CONFIG_EXT2_FS_XATTR is not set
1825# CONFIG_EXT2_FS_XIP is not set
1554CONFIG_EXT3_FS=y 1826CONFIG_EXT3_FS=y
1555# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set 1827# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1556CONFIG_EXT3_FS_XATTR=y 1828CONFIG_EXT3_FS_XATTR=y
1557CONFIG_EXT3_FS_POSIX_ACL=y 1829CONFIG_EXT3_FS_POSIX_ACL=y
1558CONFIG_EXT3_FS_SECURITY=y 1830CONFIG_EXT3_FS_SECURITY=y
1559# CONFIG_EXT4_FS is not set 1831CONFIG_EXT4_FS=y
1832CONFIG_EXT4_FS_XATTR=y
1833# CONFIG_EXT4_FS_POSIX_ACL is not set
1834# CONFIG_EXT4_FS_SECURITY is not set
1835# CONFIG_EXT4_DEBUG is not set
1560CONFIG_JBD=y 1836CONFIG_JBD=y
1837# CONFIG_JBD_DEBUG is not set
1838CONFIG_JBD2=y
1839# CONFIG_JBD2_DEBUG is not set
1561CONFIG_FS_MBCACHE=y 1840CONFIG_FS_MBCACHE=y
1562# CONFIG_REISERFS_FS is not set 1841CONFIG_REISERFS_FS=m
1563# CONFIG_JFS_FS is not set 1842# CONFIG_REISERFS_CHECK is not set
1843CONFIG_REISERFS_PROC_INFO=y
1844CONFIG_REISERFS_FS_XATTR=y
1845# CONFIG_REISERFS_FS_POSIX_ACL is not set
1846# CONFIG_REISERFS_FS_SECURITY is not set
1847CONFIG_JFS_FS=m
1848CONFIG_JFS_POSIX_ACL=y
1849# CONFIG_JFS_SECURITY is not set
1850# CONFIG_JFS_DEBUG is not set
1851# CONFIG_JFS_STATISTICS is not set
1564CONFIG_FS_POSIX_ACL=y 1852CONFIG_FS_POSIX_ACL=y
1565# CONFIG_XFS_FS is not set 1853CONFIG_XFS_FS=m
1854CONFIG_XFS_QUOTA=y
1855CONFIG_XFS_POSIX_ACL=y
1856# CONFIG_XFS_RT is not set
1857# CONFIG_XFS_DEBUG is not set
1566# CONFIG_GFS2_FS is not set 1858# CONFIG_GFS2_FS is not set
1567# CONFIG_OCFS2_FS is not set 1859# CONFIG_OCFS2_FS is not set
1568# CONFIG_BTRFS_FS is not set 1860CONFIG_BTRFS_FS=m
1861# CONFIG_BTRFS_FS_POSIX_ACL is not set
1569# CONFIG_NILFS2_FS is not set 1862# CONFIG_NILFS2_FS is not set
1570CONFIG_FILE_LOCKING=y 1863CONFIG_FILE_LOCKING=y
1571CONFIG_FSNOTIFY=y 1864CONFIG_FSNOTIFY=y
@@ -1575,17 +1868,25 @@ CONFIG_INOTIFY_USER=y
1575CONFIG_QUOTA=y 1868CONFIG_QUOTA=y
1576# CONFIG_QUOTA_NETLINK_INTERFACE is not set 1869# CONFIG_QUOTA_NETLINK_INTERFACE is not set
1577CONFIG_PRINT_QUOTA_WARNING=y 1870CONFIG_PRINT_QUOTA_WARNING=y
1871CONFIG_QUOTA_TREE=m
1578# CONFIG_QFMT_V1 is not set 1872# CONFIG_QFMT_V1 is not set
1579# CONFIG_QFMT_V2 is not set 1873CONFIG_QFMT_V2=m
1580CONFIG_QUOTACTL=y 1874CONFIG_QUOTACTL=y
1581# CONFIG_AUTOFS_FS is not set 1875CONFIG_AUTOFS_FS=m
1582# CONFIG_AUTOFS4_FS is not set 1876CONFIG_AUTOFS4_FS=m
1583# CONFIG_FUSE_FS is not set 1877# CONFIG_FUSE_FS is not set
1584 1878
1585# 1879#
1586# Caches 1880# Caches
1587# 1881#
1588# CONFIG_FSCACHE is not set 1882CONFIG_FSCACHE=m
1883# CONFIG_FSCACHE_STATS is not set
1884# CONFIG_FSCACHE_HISTOGRAM is not set
1885# CONFIG_FSCACHE_DEBUG is not set
1886# CONFIG_FSCACHE_OBJECT_LIST is not set
1887CONFIG_CACHEFILES=m
1888# CONFIG_CACHEFILES_DEBUG is not set
1889# CONFIG_CACHEFILES_HISTOGRAM is not set
1589 1890
1590# 1891#
1591# CD-ROM/DVD Filesystems 1892# CD-ROM/DVD Filesystems
@@ -1599,11 +1900,13 @@ CONFIG_ZISOFS=y
1599# DOS/FAT/NT Filesystems 1900# DOS/FAT/NT Filesystems
1600# 1901#
1601CONFIG_FAT_FS=m 1902CONFIG_FAT_FS=m
1602# CONFIG_MSDOS_FS is not set 1903CONFIG_MSDOS_FS=m
1603CONFIG_VFAT_FS=m 1904CONFIG_VFAT_FS=m
1604CONFIG_FAT_DEFAULT_CODEPAGE=437 1905CONFIG_FAT_DEFAULT_CODEPAGE=437
1605CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" 1906CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1606# CONFIG_NTFS_FS is not set 1907CONFIG_NTFS_FS=m
1908# CONFIG_NTFS_DEBUG is not set
1909CONFIG_NTFS_RW=y
1607 1910
1608# 1911#
1609# Pseudo filesystems 1912# Pseudo filesystems
@@ -1616,23 +1919,60 @@ CONFIG_SYSFS=y
1616CONFIG_TMPFS=y 1919CONFIG_TMPFS=y
1617# CONFIG_TMPFS_POSIX_ACL is not set 1920# CONFIG_TMPFS_POSIX_ACL is not set
1618# CONFIG_HUGETLB_PAGE is not set 1921# CONFIG_HUGETLB_PAGE is not set
1619# CONFIG_CONFIGFS_FS is not set 1922CONFIG_CONFIGFS_FS=m
1620# CONFIG_MISC_FILESYSTEMS is not set 1923CONFIG_MISC_FILESYSTEMS=y
1924# CONFIG_ADFS_FS is not set
1925# CONFIG_AFFS_FS is not set
1926# CONFIG_ECRYPT_FS is not set
1927# CONFIG_HFS_FS is not set
1928# CONFIG_HFSPLUS_FS is not set
1929# CONFIG_BEFS_FS is not set
1930# CONFIG_BFS_FS is not set
1931# CONFIG_EFS_FS is not set
1932CONFIG_CRAMFS=m
1933CONFIG_SQUASHFS=m
1934CONFIG_SQUASHFS_EMBEDDED=y
1935CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
1936# CONFIG_VXFS_FS is not set
1937# CONFIG_MINIX_FS is not set
1938# CONFIG_OMFS_FS is not set
1939# CONFIG_HPFS_FS is not set
1940# CONFIG_QNX4FS_FS is not set
1941CONFIG_ROMFS_FS=m
1942CONFIG_ROMFS_BACKED_BY_BLOCK=y
1943# CONFIG_ROMFS_BACKED_BY_MTD is not set
1944# CONFIG_ROMFS_BACKED_BY_BOTH is not set
1945CONFIG_ROMFS_ON_BLOCK=y
1946# CONFIG_SYSV_FS is not set
1947# CONFIG_UFS_FS is not set
1621CONFIG_NETWORK_FILESYSTEMS=y 1948CONFIG_NETWORK_FILESYSTEMS=y
1622CONFIG_NFS_FS=m 1949CONFIG_NFS_FS=m
1623CONFIG_NFS_V3=y 1950CONFIG_NFS_V3=y
1624CONFIG_NFS_V3_ACL=y 1951CONFIG_NFS_V3_ACL=y
1625# CONFIG_NFS_V4 is not set 1952# CONFIG_NFS_V4 is not set
1626# CONFIG_NFSD is not set 1953# CONFIG_NFS_FSCACHE is not set
1954CONFIG_NFSD=m
1955CONFIG_NFSD_V3=y
1956# CONFIG_NFSD_V3_ACL is not set
1957CONFIG_NFSD_V4=y
1627CONFIG_LOCKD=m 1958CONFIG_LOCKD=m
1628CONFIG_LOCKD_V4=y 1959CONFIG_LOCKD_V4=y
1960CONFIG_EXPORTFS=m
1629CONFIG_NFS_ACL_SUPPORT=m 1961CONFIG_NFS_ACL_SUPPORT=m
1630CONFIG_NFS_COMMON=y 1962CONFIG_NFS_COMMON=y
1631CONFIG_SUNRPC=m 1963CONFIG_SUNRPC=m
1632# CONFIG_RPCSEC_GSS_KRB5 is not set 1964CONFIG_SUNRPC_GSS=m
1965CONFIG_RPCSEC_GSS_KRB5=m
1633# CONFIG_RPCSEC_GSS_SPKM3 is not set 1966# CONFIG_RPCSEC_GSS_SPKM3 is not set
1634# CONFIG_SMB_FS is not set 1967# CONFIG_SMB_FS is not set
1635# CONFIG_CIFS is not set 1968CONFIG_CIFS=m
1969# CONFIG_CIFS_STATS is not set
1970# CONFIG_CIFS_WEAK_PW_HASH is not set
1971# CONFIG_CIFS_UPCALL is not set
1972# CONFIG_CIFS_XATTR is not set
1973# CONFIG_CIFS_DEBUG2 is not set
1974# CONFIG_CIFS_DFS_UPCALL is not set
1975# CONFIG_CIFS_EXPERIMENTAL is not set
1636# CONFIG_NCP_FS is not set 1976# CONFIG_NCP_FS is not set
1637# CONFIG_CODA_FS is not set 1977# CONFIG_CODA_FS is not set
1638# CONFIG_AFS_FS is not set 1978# CONFIG_AFS_FS is not set
@@ -1643,45 +1983,45 @@ CONFIG_SUNRPC=m
1643# CONFIG_PARTITION_ADVANCED is not set 1983# CONFIG_PARTITION_ADVANCED is not set
1644CONFIG_MSDOS_PARTITION=y 1984CONFIG_MSDOS_PARTITION=y
1645CONFIG_NLS=y 1985CONFIG_NLS=y
1646CONFIG_NLS_DEFAULT="utf-8" 1986CONFIG_NLS_DEFAULT="utf8"
1647# CONFIG_NLS_CODEPAGE_437 is not set 1987CONFIG_NLS_CODEPAGE_437=m
1648# CONFIG_NLS_CODEPAGE_737 is not set 1988CONFIG_NLS_CODEPAGE_737=m
1649# CONFIG_NLS_CODEPAGE_775 is not set 1989CONFIG_NLS_CODEPAGE_775=m
1650# CONFIG_NLS_CODEPAGE_850 is not set 1990CONFIG_NLS_CODEPAGE_850=m
1651# CONFIG_NLS_CODEPAGE_852 is not set 1991CONFIG_NLS_CODEPAGE_852=m
1652# CONFIG_NLS_CODEPAGE_855 is not set 1992CONFIG_NLS_CODEPAGE_855=m
1653# CONFIG_NLS_CODEPAGE_857 is not set 1993CONFIG_NLS_CODEPAGE_857=m
1654# CONFIG_NLS_CODEPAGE_860 is not set 1994CONFIG_NLS_CODEPAGE_860=m
1655# CONFIG_NLS_CODEPAGE_861 is not set 1995CONFIG_NLS_CODEPAGE_861=m
1656# CONFIG_NLS_CODEPAGE_862 is not set 1996CONFIG_NLS_CODEPAGE_862=m
1657# CONFIG_NLS_CODEPAGE_863 is not set 1997CONFIG_NLS_CODEPAGE_863=m
1658# CONFIG_NLS_CODEPAGE_864 is not set 1998CONFIG_NLS_CODEPAGE_864=m
1659# CONFIG_NLS_CODEPAGE_865 is not set 1999CONFIG_NLS_CODEPAGE_865=m
1660# CONFIG_NLS_CODEPAGE_866 is not set 2000CONFIG_NLS_CODEPAGE_866=m
1661# CONFIG_NLS_CODEPAGE_869 is not set 2001CONFIG_NLS_CODEPAGE_869=m
1662# CONFIG_NLS_CODEPAGE_936 is not set 2002CONFIG_NLS_CODEPAGE_936=m
1663# CONFIG_NLS_CODEPAGE_950 is not set 2003CONFIG_NLS_CODEPAGE_950=m
1664# CONFIG_NLS_CODEPAGE_932 is not set 2004CONFIG_NLS_CODEPAGE_932=m
1665# CONFIG_NLS_CODEPAGE_949 is not set 2005CONFIG_NLS_CODEPAGE_949=m
1666# CONFIG_NLS_CODEPAGE_874 is not set 2006CONFIG_NLS_CODEPAGE_874=m
1667# CONFIG_NLS_ISO8859_8 is not set 2007CONFIG_NLS_ISO8859_8=m
1668# CONFIG_NLS_CODEPAGE_1250 is not set 2008CONFIG_NLS_CODEPAGE_1250=m
1669# CONFIG_NLS_CODEPAGE_1251 is not set 2009CONFIG_NLS_CODEPAGE_1251=m
1670# CONFIG_NLS_ASCII is not set 2010CONFIG_NLS_ASCII=m
1671# CONFIG_NLS_ISO8859_1 is not set 2011CONFIG_NLS_ISO8859_1=m
1672# CONFIG_NLS_ISO8859_2 is not set 2012CONFIG_NLS_ISO8859_2=m
1673# CONFIG_NLS_ISO8859_3 is not set 2013CONFIG_NLS_ISO8859_3=m
1674# CONFIG_NLS_ISO8859_4 is not set 2014CONFIG_NLS_ISO8859_4=m
1675# CONFIG_NLS_ISO8859_5 is not set 2015CONFIG_NLS_ISO8859_5=m
1676# CONFIG_NLS_ISO8859_6 is not set 2016CONFIG_NLS_ISO8859_6=m
1677# CONFIG_NLS_ISO8859_7 is not set 2017CONFIG_NLS_ISO8859_7=m
1678# CONFIG_NLS_ISO8859_9 is not set 2018CONFIG_NLS_ISO8859_9=m
1679# CONFIG_NLS_ISO8859_13 is not set 2019CONFIG_NLS_ISO8859_13=m
1680# CONFIG_NLS_ISO8859_14 is not set 2020CONFIG_NLS_ISO8859_14=m
1681# CONFIG_NLS_ISO8859_15 is not set 2021CONFIG_NLS_ISO8859_15=m
1682# CONFIG_NLS_KOI8_R is not set 2022CONFIG_NLS_KOI8_R=m
1683# CONFIG_NLS_KOI8_U is not set 2023CONFIG_NLS_KOI8_U=m
1684# CONFIG_NLS_UTF8 is not set 2024CONFIG_NLS_UTF8=y
1685# CONFIG_DLM is not set 2025# CONFIG_DLM is not set
1686 2026
1687# 2027#
@@ -1695,125 +2035,155 @@ CONFIG_FRAME_WARN=1024
1695# CONFIG_MAGIC_SYSRQ is not set 2035# CONFIG_MAGIC_SYSRQ is not set
1696CONFIG_STRIP_ASM_SYMS=y 2036CONFIG_STRIP_ASM_SYMS=y
1697# CONFIG_UNUSED_SYMBOLS is not set 2037# CONFIG_UNUSED_SYMBOLS is not set
1698# CONFIG_DEBUG_FS is not set 2038CONFIG_DEBUG_FS=y
1699# CONFIG_HEADERS_CHECK is not set 2039# CONFIG_HEADERS_CHECK is not set
1700# CONFIG_DEBUG_KERNEL is not set 2040# CONFIG_DEBUG_KERNEL is not set
1701# CONFIG_SLUB_DEBUG_ON is not set 2041# CONFIG_SLUB_DEBUG_ON is not set
1702# CONFIG_SLUB_STATS is not set 2042# CONFIG_SLUB_STATS is not set
2043CONFIG_STACKTRACE=y
1703# CONFIG_DEBUG_MEMORY_INIT is not set 2044# CONFIG_DEBUG_MEMORY_INIT is not set
1704# CONFIG_RCU_CPU_STALL_DETECTOR is not set 2045# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1705CONFIG_SYSCTL_SYSCALL_CHECK=y 2046CONFIG_SYSCTL_SYSCALL_CHECK=y
2047CONFIG_NOP_TRACER=y
2048CONFIG_HAVE_FUNCTION_TRACER=y
2049CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
2050CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
2051CONFIG_HAVE_DYNAMIC_FTRACE=y
2052CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
2053CONFIG_RING_BUFFER=y
2054CONFIG_EVENT_TRACING=y
2055CONFIG_CONTEXT_SWITCH_TRACER=y
2056CONFIG_RING_BUFFER_ALLOW_SWAP=y
2057CONFIG_TRACING=y
1706CONFIG_TRACING_SUPPORT=y 2058CONFIG_TRACING_SUPPORT=y
1707# CONFIG_FTRACE is not set 2059# CONFIG_FTRACE is not set
2060# CONFIG_DYNAMIC_DEBUG is not set
1708# CONFIG_SAMPLES is not set 2061# CONFIG_SAMPLES is not set
1709CONFIG_HAVE_ARCH_KGDB=y 2062CONFIG_HAVE_ARCH_KGDB=y
2063CONFIG_EARLY_PRINTK=y
1710# CONFIG_CMDLINE_BOOL is not set 2064# CONFIG_CMDLINE_BOOL is not set
1711 2065
1712# 2066#
1713# Security options 2067# Security options
1714# 2068#
1715# CONFIG_KEYS is not set 2069CONFIG_KEYS=y
2070CONFIG_KEYS_DEBUG_PROC_KEYS=y
1716# CONFIG_SECURITY is not set 2071# CONFIG_SECURITY is not set
1717# CONFIG_SECURITYFS is not set 2072# CONFIG_SECURITYFS is not set
1718# CONFIG_SECURITY_FILE_CAPABILITIES is not set 2073# CONFIG_DEFAULT_SECURITY_SELINUX is not set
2074# CONFIG_DEFAULT_SECURITY_SMACK is not set
2075# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
2076CONFIG_DEFAULT_SECURITY_DAC=y
2077CONFIG_DEFAULT_SECURITY=""
2078CONFIG_XOR_BLOCKS=m
2079CONFIG_ASYNC_CORE=m
2080CONFIG_ASYNC_MEMCPY=m
2081CONFIG_ASYNC_XOR=m
2082CONFIG_ASYNC_PQ=m
2083CONFIG_ASYNC_RAID6_RECOV=m
1719CONFIG_CRYPTO=y 2084CONFIG_CRYPTO=y
1720 2085
1721# 2086#
1722# Crypto core or helper 2087# Crypto core or helper
1723# 2088#
2089CONFIG_CRYPTO_FIPS=y
1724CONFIG_CRYPTO_ALGAPI=y 2090CONFIG_CRYPTO_ALGAPI=y
1725CONFIG_CRYPTO_ALGAPI2=y 2091CONFIG_CRYPTO_ALGAPI2=y
2092CONFIG_CRYPTO_AEAD=m
1726CONFIG_CRYPTO_AEAD2=y 2093CONFIG_CRYPTO_AEAD2=y
1727CONFIG_CRYPTO_BLKCIPHER=y 2094CONFIG_CRYPTO_BLKCIPHER=m
1728CONFIG_CRYPTO_BLKCIPHER2=y 2095CONFIG_CRYPTO_BLKCIPHER2=y
2096CONFIG_CRYPTO_HASH=y
1729CONFIG_CRYPTO_HASH2=y 2097CONFIG_CRYPTO_HASH2=y
2098CONFIG_CRYPTO_RNG=m
1730CONFIG_CRYPTO_RNG2=y 2099CONFIG_CRYPTO_RNG2=y
1731CONFIG_CRYPTO_PCOMP=y 2100CONFIG_CRYPTO_PCOMP=y
1732CONFIG_CRYPTO_MANAGER=y 2101CONFIG_CRYPTO_MANAGER=m
1733CONFIG_CRYPTO_MANAGER2=y 2102CONFIG_CRYPTO_MANAGER2=y
1734# CONFIG_CRYPTO_GF128MUL is not set 2103CONFIG_CRYPTO_GF128MUL=m
1735# CONFIG_CRYPTO_NULL is not set 2104CONFIG_CRYPTO_NULL=m
1736CONFIG_CRYPTO_WORKQUEUE=y 2105CONFIG_CRYPTO_WORKQUEUE=y
1737# CONFIG_CRYPTO_CRYPTD is not set 2106CONFIG_CRYPTO_CRYPTD=m
1738# CONFIG_CRYPTO_AUTHENC is not set 2107CONFIG_CRYPTO_AUTHENC=m
1739# CONFIG_CRYPTO_TEST is not set 2108CONFIG_CRYPTO_TEST=m
1740 2109
1741# 2110#
1742# Authenticated Encryption with Associated Data 2111# Authenticated Encryption with Associated Data
1743# 2112#
1744# CONFIG_CRYPTO_CCM is not set 2113CONFIG_CRYPTO_CCM=m
1745# CONFIG_CRYPTO_GCM is not set 2114CONFIG_CRYPTO_GCM=m
1746# CONFIG_CRYPTO_SEQIV is not set 2115CONFIG_CRYPTO_SEQIV=m
1747 2116
1748# 2117#
1749# Block modes 2118# Block modes
1750# 2119#
1751CONFIG_CRYPTO_CBC=y 2120CONFIG_CRYPTO_CBC=m
1752# CONFIG_CRYPTO_CTR is not set 2121CONFIG_CRYPTO_CTR=m
1753# CONFIG_CRYPTO_CTS is not set 2122# CONFIG_CRYPTO_CTS is not set
1754# CONFIG_CRYPTO_ECB is not set 2123CONFIG_CRYPTO_ECB=m
1755# CONFIG_CRYPTO_LRW is not set 2124CONFIG_CRYPTO_LRW=m
1756# CONFIG_CRYPTO_PCBC is not set 2125CONFIG_CRYPTO_PCBC=m
1757# CONFIG_CRYPTO_XTS is not set 2126CONFIG_CRYPTO_XTS=m
1758 2127
1759# 2128#
1760# Hash modes 2129# Hash modes
1761# 2130#
1762# CONFIG_CRYPTO_HMAC is not set 2131CONFIG_CRYPTO_HMAC=m
1763# CONFIG_CRYPTO_XCBC is not set 2132CONFIG_CRYPTO_XCBC=m
1764# CONFIG_CRYPTO_VMAC is not set 2133# CONFIG_CRYPTO_VMAC is not set
1765 2134
1766# 2135#
1767# Digest 2136# Digest
1768# 2137#
1769# CONFIG_CRYPTO_CRC32C is not set 2138CONFIG_CRYPTO_CRC32C=m
1770# CONFIG_CRYPTO_GHASH is not set 2139CONFIG_CRYPTO_GHASH=m
1771# CONFIG_CRYPTO_MD4 is not set 2140CONFIG_CRYPTO_MD4=m
1772# CONFIG_CRYPTO_MD5 is not set 2141CONFIG_CRYPTO_MD5=y
1773# CONFIG_CRYPTO_MICHAEL_MIC is not set 2142CONFIG_CRYPTO_MICHAEL_MIC=m
1774# CONFIG_CRYPTO_RMD128 is not set 2143CONFIG_CRYPTO_RMD128=m
1775# CONFIG_CRYPTO_RMD160 is not set 2144CONFIG_CRYPTO_RMD160=m
1776# CONFIG_CRYPTO_RMD256 is not set 2145CONFIG_CRYPTO_RMD256=m
1777# CONFIG_CRYPTO_RMD320 is not set 2146CONFIG_CRYPTO_RMD320=m
1778# CONFIG_CRYPTO_SHA1 is not set 2147CONFIG_CRYPTO_SHA1=m
1779# CONFIG_CRYPTO_SHA256 is not set 2148CONFIG_CRYPTO_SHA256=m
1780# CONFIG_CRYPTO_SHA512 is not set 2149CONFIG_CRYPTO_SHA512=m
1781# CONFIG_CRYPTO_TGR192 is not set 2150CONFIG_CRYPTO_TGR192=m
1782# CONFIG_CRYPTO_WP512 is not set 2151CONFIG_CRYPTO_WP512=m
1783 2152
1784# 2153#
1785# Ciphers 2154# Ciphers
1786# 2155#
1787# CONFIG_CRYPTO_AES is not set 2156CONFIG_CRYPTO_AES=m
1788# CONFIG_CRYPTO_ANUBIS is not set 2157CONFIG_CRYPTO_ANUBIS=m
1789# CONFIG_CRYPTO_ARC4 is not set 2158CONFIG_CRYPTO_ARC4=m
1790# CONFIG_CRYPTO_BLOWFISH is not set 2159CONFIG_CRYPTO_BLOWFISH=m
1791# CONFIG_CRYPTO_CAMELLIA is not set 2160CONFIG_CRYPTO_CAMELLIA=m
1792# CONFIG_CRYPTO_CAST5 is not set 2161CONFIG_CRYPTO_CAST5=m
1793# CONFIG_CRYPTO_CAST6 is not set 2162CONFIG_CRYPTO_CAST6=m
1794# CONFIG_CRYPTO_DES is not set 2163CONFIG_CRYPTO_DES=m
1795# CONFIG_CRYPTO_FCRYPT is not set 2164CONFIG_CRYPTO_FCRYPT=m
1796# CONFIG_CRYPTO_KHAZAD is not set 2165CONFIG_CRYPTO_KHAZAD=m
1797# CONFIG_CRYPTO_SALSA20 is not set 2166CONFIG_CRYPTO_SALSA20=m
1798# CONFIG_CRYPTO_SEED is not set 2167CONFIG_CRYPTO_SEED=m
1799# CONFIG_CRYPTO_SERPENT is not set 2168CONFIG_CRYPTO_SERPENT=m
1800# CONFIG_CRYPTO_TEA is not set 2169CONFIG_CRYPTO_TEA=m
1801# CONFIG_CRYPTO_TWOFISH is not set 2170CONFIG_CRYPTO_TWOFISH=m
2171CONFIG_CRYPTO_TWOFISH_COMMON=m
1802 2172
1803# 2173#
1804# Compression 2174# Compression
1805# 2175#
1806# CONFIG_CRYPTO_DEFLATE is not set 2176CONFIG_CRYPTO_DEFLATE=m
1807# CONFIG_CRYPTO_ZLIB is not set 2177CONFIG_CRYPTO_ZLIB=m
1808# CONFIG_CRYPTO_LZO is not set 2178CONFIG_CRYPTO_LZO=m
1809 2179
1810# 2180#
1811# Random Number Generation 2181# Random Number Generation
1812# 2182#
1813# CONFIG_CRYPTO_ANSI_CPRNG is not set 2183CONFIG_CRYPTO_ANSI_CPRNG=m
1814CONFIG_CRYPTO_HW=y 2184CONFIG_CRYPTO_HW=y
1815# CONFIG_CRYPTO_DEV_HIFN_795X is not set 2185# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1816# CONFIG_BINARY_PRINTF is not set 2186CONFIG_BINARY_PRINTF=y
1817 2187
1818# 2188#
1819# Library routines 2189# Library routines
@@ -1821,14 +2191,20 @@ CONFIG_CRYPTO_HW=y
1821CONFIG_BITREVERSE=y 2191CONFIG_BITREVERSE=y
1822CONFIG_GENERIC_FIND_LAST_BIT=y 2192CONFIG_GENERIC_FIND_LAST_BIT=y
1823# CONFIG_CRC_CCITT is not set 2193# CONFIG_CRC_CCITT is not set
1824# CONFIG_CRC16 is not set 2194CONFIG_CRC16=y
1825CONFIG_CRC_T10DIF=y 2195CONFIG_CRC_T10DIF=y
1826# CONFIG_CRC_ITU_T is not set 2196# CONFIG_CRC_ITU_T is not set
1827CONFIG_CRC32=y 2197CONFIG_CRC32=y
1828# CONFIG_CRC7 is not set 2198# CONFIG_CRC7 is not set
1829# CONFIG_LIBCRC32C is not set 2199CONFIG_LIBCRC32C=m
1830CONFIG_AUDIT_GENERIC=y 2200CONFIG_AUDIT_GENERIC=y
1831CONFIG_ZLIB_INFLATE=m 2201CONFIG_ZLIB_INFLATE=y
2202CONFIG_ZLIB_DEFLATE=m
2203CONFIG_LZO_COMPRESS=m
2204CONFIG_LZO_DECOMPRESS=m
2205CONFIG_DECOMPRESS_GZIP=y
2206CONFIG_DECOMPRESS_BZIP2=y
2207CONFIG_DECOMPRESS_LZMA=y
1832CONFIG_HAS_IOMEM=y 2208CONFIG_HAS_IOMEM=y
1833CONFIG_HAS_IOPORT=y 2209CONFIG_HAS_IOPORT=y
1834CONFIG_HAS_DMA=y 2210CONFIG_HAS_DMA=y
diff --git a/arch/mips/configs/pb1100_defconfig b/arch/mips/configs/pb1100_defconfig
index ddf67f639194..97382b698b9b 100644
--- a/arch/mips/configs/pb1100_defconfig
+++ b/arch/mips/configs/pb1100_defconfig
@@ -1,79 +1,103 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20 3# Linux kernel version: 2.6.33
4# Tue Feb 20 21:47:37 2007 4# Fri Feb 26 09:53:29 2010
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
8# 8#
9# Machine selection 9# Machine selection
10# 10#
11CONFIG_ZONE_DMA=y
12CONFIG_MACH_ALCHEMY=y 11CONFIG_MACH_ALCHEMY=y
13# CONFIG_MIPS_MTX1 is not set 12# CONFIG_AR7 is not set
14# CONFIG_MIPS_BOSPORUS is not set 13# CONFIG_BCM47XX is not set
15# CONFIG_MIPS_PB1000 is not set 14# CONFIG_BCM63XX is not set
16CONFIG_MIPS_PB1100=y
17# CONFIG_MIPS_PB1500 is not set
18# CONFIG_MIPS_PB1550 is not set
19# CONFIG_MIPS_PB1200 is not set
20# CONFIG_MIPS_DB1000 is not set
21# CONFIG_MIPS_DB1100 is not set
22# CONFIG_MIPS_DB1500 is not set
23# CONFIG_MIPS_DB1550 is not set
24# CONFIG_MIPS_DB1200 is not set
25# CONFIG_MIPS_MIRAGE is not set
26# CONFIG_MIPS_COBALT is not set 15# CONFIG_MIPS_COBALT is not set
27# CONFIG_MACH_DECSTATION is not set 16# CONFIG_MACH_DECSTATION is not set
28# CONFIG_MACH_JAZZ is not set 17# CONFIG_MACH_JAZZ is not set
18# CONFIG_LASAT is not set
19# CONFIG_MACH_LOONGSON is not set
29# CONFIG_MIPS_MALTA is not set 20# CONFIG_MIPS_MALTA is not set
30# CONFIG_WR_PPMC is not set
31# CONFIG_MIPS_SIM is not set 21# CONFIG_MIPS_SIM is not set
32# CONFIG_MOMENCO_JAGUAR_ATX is not set 22# CONFIG_NEC_MARKEINS is not set
33# CONFIG_MIPS_XXS1500 is not set 23# CONFIG_MACH_VR41XX is not set
24# CONFIG_NXP_STB220 is not set
25# CONFIG_NXP_STB225 is not set
34# CONFIG_PNX8550_JBS is not set 26# CONFIG_PNX8550_JBS is not set
35# CONFIG_PNX8550_STB810 is not set 27# CONFIG_PNX8550_STB810 is not set
36# CONFIG_MACH_VR41XX is not set 28# CONFIG_PMC_MSP is not set
37# CONFIG_PMC_YOSEMITE is not set 29# CONFIG_PMC_YOSEMITE is not set
38# CONFIG_MARKEINS is not set 30# CONFIG_POWERTV is not set
39# CONFIG_SGI_IP22 is not set 31# CONFIG_SGI_IP22 is not set
40# CONFIG_SGI_IP27 is not set 32# CONFIG_SGI_IP27 is not set
33# CONFIG_SGI_IP28 is not set
41# CONFIG_SGI_IP32 is not set 34# CONFIG_SGI_IP32 is not set
42# CONFIG_SIBYTE_BIGSUR is not set
43# CONFIG_SIBYTE_SWARM is not set
44# CONFIG_SIBYTE_SENTOSA is not set
45# CONFIG_SIBYTE_RHONE is not set
46# CONFIG_SIBYTE_CARMEL is not set
47# CONFIG_SIBYTE_LITTLESUR is not set
48# CONFIG_SIBYTE_CRHINE is not set 35# CONFIG_SIBYTE_CRHINE is not set
36# CONFIG_SIBYTE_CARMEL is not set
49# CONFIG_SIBYTE_CRHONE is not set 37# CONFIG_SIBYTE_CRHONE is not set
38# CONFIG_SIBYTE_RHONE is not set
39# CONFIG_SIBYTE_SWARM is not set
40# CONFIG_SIBYTE_LITTLESUR is not set
41# CONFIG_SIBYTE_SENTOSA is not set
42# CONFIG_SIBYTE_BIGSUR is not set
50# CONFIG_SNI_RM is not set 43# CONFIG_SNI_RM is not set
51# CONFIG_TOSHIBA_JMR3927 is not set 44# CONFIG_MACH_TX39XX is not set
52# CONFIG_TOSHIBA_RBTX4927 is not set 45# CONFIG_MACH_TX49XX is not set
53# CONFIG_TOSHIBA_RBTX4938 is not set 46# CONFIG_MIKROTIK_RB532 is not set
47# CONFIG_WR_PPMC is not set
48# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
49# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
50CONFIG_ALCHEMY_GPIOINT_AU1000=y
51# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
52# CONFIG_MIPS_MTX1 is not set
53# CONFIG_MIPS_BOSPORUS is not set
54# CONFIG_MIPS_DB1000 is not set
55# CONFIG_MIPS_DB1100 is not set
56# CONFIG_MIPS_DB1200 is not set
57# CONFIG_MIPS_DB1500 is not set
58# CONFIG_MIPS_DB1550 is not set
59# CONFIG_MIPS_MIRAGE is not set
60# CONFIG_MIPS_PB1000 is not set
61CONFIG_MIPS_PB1100=y
62# CONFIG_MIPS_PB1200 is not set
63# CONFIG_MIPS_PB1500 is not set
64# CONFIG_MIPS_PB1550 is not set
65# CONFIG_MIPS_XXS1500 is not set
66CONFIG_SOC_AU1100=y
67CONFIG_SOC_AU1X00=y
68CONFIG_LOONGSON_UART_BASE=y
54CONFIG_RWSEM_GENERIC_SPINLOCK=y 69CONFIG_RWSEM_GENERIC_SPINLOCK=y
55# CONFIG_ARCH_HAS_ILOG2_U32 is not set 70# CONFIG_ARCH_HAS_ILOG2_U32 is not set
56# CONFIG_ARCH_HAS_ILOG2_U64 is not set 71# CONFIG_ARCH_HAS_ILOG2_U64 is not set
72CONFIG_ARCH_SUPPORTS_OPROFILE=y
57CONFIG_GENERIC_FIND_NEXT_BIT=y 73CONFIG_GENERIC_FIND_NEXT_BIT=y
58CONFIG_GENERIC_HWEIGHT=y 74CONFIG_GENERIC_HWEIGHT=y
59CONFIG_GENERIC_CALIBRATE_DELAY=y 75CONFIG_GENERIC_CALIBRATE_DELAY=y
76CONFIG_GENERIC_CLOCKEVENTS=y
60CONFIG_GENERIC_TIME=y 77CONFIG_GENERIC_TIME=y
61CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 78CONFIG_GENERIC_CMOS_UPDATE=y
62# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set 79CONFIG_SCHED_OMIT_FRAME_POINTER=y
80CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
81CONFIG_CEVT_R4K_LIB=y
82CONFIG_CSRC_R4K_LIB=y
63CONFIG_DMA_NONCOHERENT=y 83CONFIG_DMA_NONCOHERENT=y
64CONFIG_DMA_NEED_PCI_MAP_STATE=y 84CONFIG_DMA_NEED_PCI_MAP_STATE=y
85CONFIG_SYS_HAS_EARLY_PRINTK=y
86# CONFIG_NO_IOPORT is not set
87CONFIG_GENERIC_GPIO=y
65# CONFIG_CPU_BIG_ENDIAN is not set 88# CONFIG_CPU_BIG_ENDIAN is not set
66CONFIG_CPU_LITTLE_ENDIAN=y 89CONFIG_CPU_LITTLE_ENDIAN=y
67CONFIG_SYS_SUPPORTS_APM_EMULATION=y 90CONFIG_SYS_SUPPORTS_APM_EMULATION=y
68CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y 91CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
69CONFIG_SOC_AU1100=y 92CONFIG_IRQ_CPU=y
70CONFIG_SOC_AU1X00=y
71CONFIG_SWAP_IO_SPACE=y 93CONFIG_SWAP_IO_SPACE=y
72CONFIG_MIPS_L1_CACHE_SHIFT=5 94CONFIG_MIPS_L1_CACHE_SHIFT=5
73 95
74# 96#
75# CPU selection 97# CPU selection
76# 98#
99# CONFIG_CPU_LOONGSON2E is not set
100# CONFIG_CPU_LOONGSON2F is not set
77CONFIG_CPU_MIPS32_R1=y 101CONFIG_CPU_MIPS32_R1=y
78# CONFIG_CPU_MIPS32_R2 is not set 102# CONFIG_CPU_MIPS32_R2 is not set
79# CONFIG_CPU_MIPS64_R1 is not set 103# CONFIG_CPU_MIPS64_R1 is not set
@@ -86,6 +110,7 @@ CONFIG_CPU_MIPS32_R1=y
86# CONFIG_CPU_TX49XX is not set 110# CONFIG_CPU_TX49XX is not set
87# CONFIG_CPU_R5000 is not set 111# CONFIG_CPU_R5000 is not set
88# CONFIG_CPU_R5432 is not set 112# CONFIG_CPU_R5432 is not set
113# CONFIG_CPU_R5500 is not set
89# CONFIG_CPU_R6000 is not set 114# CONFIG_CPU_R6000 is not set
90# CONFIG_CPU_NEVADA is not set 115# CONFIG_CPU_NEVADA is not set
91# CONFIG_CPU_R8000 is not set 116# CONFIG_CPU_R8000 is not set
@@ -93,11 +118,14 @@ CONFIG_CPU_MIPS32_R1=y
93# CONFIG_CPU_RM7000 is not set 118# CONFIG_CPU_RM7000 is not set
94# CONFIG_CPU_RM9000 is not set 119# CONFIG_CPU_RM9000 is not set
95# CONFIG_CPU_SB1 is not set 120# CONFIG_CPU_SB1 is not set
121# CONFIG_CPU_CAVIUM_OCTEON is not set
122CONFIG_SYS_SUPPORTS_ZBOOT=y
96CONFIG_SYS_HAS_CPU_MIPS32_R1=y 123CONFIG_SYS_HAS_CPU_MIPS32_R1=y
97CONFIG_CPU_MIPS32=y 124CONFIG_CPU_MIPS32=y
98CONFIG_CPU_MIPSR1=y 125CONFIG_CPU_MIPSR1=y
99CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 126CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
100CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y 127CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
128CONFIG_HARDWARE_WATCHPOINTS=y
101 129
102# 130#
103# Kernel type 131# Kernel type
@@ -107,184 +135,244 @@ CONFIG_32BIT=y
107CONFIG_PAGE_SIZE_4KB=y 135CONFIG_PAGE_SIZE_4KB=y
108# CONFIG_PAGE_SIZE_8KB is not set 136# CONFIG_PAGE_SIZE_8KB is not set
109# CONFIG_PAGE_SIZE_16KB is not set 137# CONFIG_PAGE_SIZE_16KB is not set
138# CONFIG_PAGE_SIZE_32KB is not set
110# CONFIG_PAGE_SIZE_64KB is not set 139# CONFIG_PAGE_SIZE_64KB is not set
111CONFIG_CPU_HAS_PREFETCH=y 140CONFIG_CPU_HAS_PREFETCH=y
112CONFIG_MIPS_MT_DISABLED=y 141CONFIG_MIPS_MT_DISABLED=y
113# CONFIG_MIPS_MT_SMP is not set 142# CONFIG_MIPS_MT_SMP is not set
114# CONFIG_MIPS_MT_SMTC is not set 143# CONFIG_MIPS_MT_SMTC is not set
115# CONFIG_MIPS_VPE_LOADER is not set
116CONFIG_64BIT_PHYS_ADDR=y 144CONFIG_64BIT_PHYS_ADDR=y
145CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
117CONFIG_CPU_HAS_SYNC=y 146CONFIG_CPU_HAS_SYNC=y
118CONFIG_GENERIC_HARDIRQS=y 147CONFIG_GENERIC_HARDIRQS=y
119CONFIG_GENERIC_IRQ_PROBE=y 148CONFIG_GENERIC_IRQ_PROBE=y
120CONFIG_CPU_SUPPORTS_HIGHMEM=y 149CONFIG_CPU_SUPPORTS_HIGHMEM=y
121CONFIG_ARCH_FLATMEM_ENABLE=y 150CONFIG_ARCH_FLATMEM_ENABLE=y
151CONFIG_ARCH_POPULATES_NODE_MAP=y
122CONFIG_SELECT_MEMORY_MODEL=y 152CONFIG_SELECT_MEMORY_MODEL=y
123CONFIG_FLATMEM_MANUAL=y 153CONFIG_FLATMEM_MANUAL=y
124# CONFIG_DISCONTIGMEM_MANUAL is not set 154# CONFIG_DISCONTIGMEM_MANUAL is not set
125# CONFIG_SPARSEMEM_MANUAL is not set 155# CONFIG_SPARSEMEM_MANUAL is not set
126CONFIG_FLATMEM=y 156CONFIG_FLATMEM=y
127CONFIG_FLAT_NODE_MEM_MAP=y 157CONFIG_FLAT_NODE_MEM_MAP=y
128# CONFIG_SPARSEMEM_STATIC is not set 158CONFIG_PAGEFLAGS_EXTENDED=y
129CONFIG_SPLIT_PTLOCK_CPUS=4 159CONFIG_SPLIT_PTLOCK_CPUS=4
130# CONFIG_RESOURCES_64BIT is not set 160CONFIG_PHYS_ADDR_T_64BIT=y
131CONFIG_ZONE_DMA_FLAG=1 161CONFIG_ZONE_DMA_FLAG=0
162CONFIG_VIRT_TO_BUS=y
163# CONFIG_KSM is not set
164CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
165CONFIG_TICK_ONESHOT=y
166CONFIG_NO_HZ=y
167CONFIG_HIGH_RES_TIMERS=y
168CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
132# CONFIG_HZ_48 is not set 169# CONFIG_HZ_48 is not set
133# CONFIG_HZ_100 is not set 170CONFIG_HZ_100=y
134# CONFIG_HZ_128 is not set 171# CONFIG_HZ_128 is not set
135# CONFIG_HZ_250 is not set 172# CONFIG_HZ_250 is not set
136# CONFIG_HZ_256 is not set 173# CONFIG_HZ_256 is not set
137CONFIG_HZ_1000=y 174# CONFIG_HZ_1000 is not set
138# CONFIG_HZ_1024 is not set 175# CONFIG_HZ_1024 is not set
139CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 176CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
140CONFIG_HZ=1000 177CONFIG_HZ=100
141CONFIG_PREEMPT_NONE=y 178CONFIG_PREEMPT_NONE=y
142# CONFIG_PREEMPT_VOLUNTARY is not set 179# CONFIG_PREEMPT_VOLUNTARY is not set
143# CONFIG_PREEMPT is not set 180# CONFIG_PREEMPT is not set
144# CONFIG_KEXEC is not set 181# CONFIG_KEXEC is not set
182# CONFIG_SECCOMP is not set
145CONFIG_LOCKDEP_SUPPORT=y 183CONFIG_LOCKDEP_SUPPORT=y
146CONFIG_STACKTRACE_SUPPORT=y 184CONFIG_STACKTRACE_SUPPORT=y
147CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 185CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
186CONFIG_CONSTRUCTORS=y
148 187
149# 188#
150# Code maturity level options 189# General setup
151# 190#
152CONFIG_EXPERIMENTAL=y 191CONFIG_EXPERIMENTAL=y
153CONFIG_BROKEN_ON_SMP=y 192CONFIG_BROKEN_ON_SMP=y
154CONFIG_INIT_ENV_ARG_LIMIT=32 193CONFIG_INIT_ENV_ARG_LIMIT=32
155 194CONFIG_LOCALVERSION="-pb1100"
156#
157# General setup
158#
159CONFIG_LOCALVERSION=""
160CONFIG_LOCALVERSION_AUTO=y 195CONFIG_LOCALVERSION_AUTO=y
196CONFIG_HAVE_KERNEL_GZIP=y
197CONFIG_HAVE_KERNEL_BZIP2=y
198CONFIG_HAVE_KERNEL_LZMA=y
199CONFIG_HAVE_KERNEL_LZO=y
200# CONFIG_KERNEL_GZIP is not set
201# CONFIG_KERNEL_BZIP2 is not set
202CONFIG_KERNEL_LZMA=y
203# CONFIG_KERNEL_LZO is not set
161CONFIG_SWAP=y 204CONFIG_SWAP=y
162CONFIG_SYSVIPC=y 205CONFIG_SYSVIPC=y
163# CONFIG_IPC_NS is not set
164CONFIG_SYSVIPC_SYSCTL=y 206CONFIG_SYSVIPC_SYSCTL=y
165# CONFIG_POSIX_MQUEUE is not set 207CONFIG_POSIX_MQUEUE=y
208CONFIG_POSIX_MQUEUE_SYSCTL=y
166# CONFIG_BSD_PROCESS_ACCT is not set 209# CONFIG_BSD_PROCESS_ACCT is not set
167# CONFIG_TASKSTATS is not set 210# CONFIG_TASKSTATS is not set
168# CONFIG_UTS_NS is not set
169# CONFIG_AUDIT is not set 211# CONFIG_AUDIT is not set
212
213#
214# RCU Subsystem
215#
216# CONFIG_TREE_RCU is not set
217# CONFIG_TREE_PREEMPT_RCU is not set
218CONFIG_TINY_RCU=y
219# CONFIG_TREE_RCU_TRACE is not set
170# CONFIG_IKCONFIG is not set 220# CONFIG_IKCONFIG is not set
171CONFIG_SYSFS_DEPRECATED=y 221CONFIG_LOG_BUF_SHIFT=14
172CONFIG_RELAY=y 222# CONFIG_GROUP_SCHED is not set
173# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 223# CONFIG_CGROUPS is not set
224# CONFIG_SYSFS_DEPRECATED_V2 is not set
225# CONFIG_RELAY is not set
226# CONFIG_NAMESPACES is not set
227# CONFIG_BLK_DEV_INITRD is not set
228CONFIG_CC_OPTIMIZE_FOR_SIZE=y
174CONFIG_SYSCTL=y 229CONFIG_SYSCTL=y
230CONFIG_ANON_INODES=y
175CONFIG_EMBEDDED=y 231CONFIG_EMBEDDED=y
176CONFIG_SYSCTL_SYSCALL=y 232# CONFIG_SYSCTL_SYSCALL is not set
177CONFIG_KALLSYMS=y 233# CONFIG_KALLSYMS is not set
178# CONFIG_KALLSYMS_EXTRA_PASS is not set
179CONFIG_HOTPLUG=y 234CONFIG_HOTPLUG=y
180CONFIG_PRINTK=y 235CONFIG_PRINTK=y
181CONFIG_BUG=y 236CONFIG_BUG=y
182CONFIG_ELF_CORE=y 237CONFIG_ELF_CORE=y
238# CONFIG_PCSPKR_PLATFORM is not set
183CONFIG_BASE_FULL=y 239CONFIG_BASE_FULL=y
184CONFIG_FUTEX=y 240CONFIG_FUTEX=y
185CONFIG_EPOLL=y 241CONFIG_EPOLL=y
242CONFIG_SIGNALFD=y
243CONFIG_TIMERFD=y
244CONFIG_EVENTFD=y
186CONFIG_SHMEM=y 245CONFIG_SHMEM=y
246CONFIG_AIO=y
247
248#
249# Kernel Performance Events And Counters
250#
251# CONFIG_VM_EVENT_COUNTERS is not set
252# CONFIG_COMPAT_BRK is not set
187CONFIG_SLAB=y 253CONFIG_SLAB=y
188CONFIG_VM_EVENT_COUNTERS=y 254# CONFIG_SLUB is not set
189CONFIG_RT_MUTEXES=y
190# CONFIG_TINY_SHMEM is not set
191CONFIG_BASE_SMALL=0
192# CONFIG_SLOB is not set 255# CONFIG_SLOB is not set
256# CONFIG_PROFILING is not set
257CONFIG_HAVE_OPROFILE=y
193 258
194# 259#
195# Loadable module support 260# GCOV-based kernel profiling
196# 261#
262# CONFIG_SLOW_WORK is not set
263CONFIG_HAVE_GENERIC_DMA_COHERENT=y
264CONFIG_SLABINFO=y
265CONFIG_RT_MUTEXES=y
266CONFIG_BASE_SMALL=0
197CONFIG_MODULES=y 267CONFIG_MODULES=y
268# CONFIG_MODULE_FORCE_LOAD is not set
198CONFIG_MODULE_UNLOAD=y 269CONFIG_MODULE_UNLOAD=y
199# CONFIG_MODULE_FORCE_UNLOAD is not set 270# CONFIG_MODULE_FORCE_UNLOAD is not set
200CONFIG_MODVERSIONS=y 271# CONFIG_MODVERSIONS is not set
201CONFIG_MODULE_SRCVERSION_ALL=y 272# CONFIG_MODULE_SRCVERSION_ALL is not set
202CONFIG_KMOD=y
203
204#
205# Block layer
206#
207CONFIG_BLOCK=y 273CONFIG_BLOCK=y
208# CONFIG_LBD is not set 274# CONFIG_LBDAF is not set
209# CONFIG_BLK_DEV_IO_TRACE is not set 275# CONFIG_BLK_DEV_BSG is not set
210# CONFIG_LSF is not set 276# CONFIG_BLK_DEV_INTEGRITY is not set
211 277
212# 278#
213# IO Schedulers 279# IO Schedulers
214# 280#
215CONFIG_IOSCHED_NOOP=y 281CONFIG_IOSCHED_NOOP=y
216CONFIG_IOSCHED_AS=y 282# CONFIG_IOSCHED_DEADLINE is not set
217CONFIG_IOSCHED_DEADLINE=y 283# CONFIG_IOSCHED_CFQ is not set
218CONFIG_IOSCHED_CFQ=y
219CONFIG_DEFAULT_AS=y
220# CONFIG_DEFAULT_DEADLINE is not set 284# CONFIG_DEFAULT_DEADLINE is not set
221# CONFIG_DEFAULT_CFQ is not set 285# CONFIG_DEFAULT_CFQ is not set
222# CONFIG_DEFAULT_NOOP is not set 286CONFIG_DEFAULT_NOOP=y
223CONFIG_DEFAULT_IOSCHED="anticipatory" 287CONFIG_DEFAULT_IOSCHED="noop"
288# CONFIG_INLINE_SPIN_TRYLOCK is not set
289# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
290# CONFIG_INLINE_SPIN_LOCK is not set
291# CONFIG_INLINE_SPIN_LOCK_BH is not set
292# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
293# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
294CONFIG_INLINE_SPIN_UNLOCK=y
295# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
296CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
297# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
298# CONFIG_INLINE_READ_TRYLOCK is not set
299# CONFIG_INLINE_READ_LOCK is not set
300# CONFIG_INLINE_READ_LOCK_BH is not set
301# CONFIG_INLINE_READ_LOCK_IRQ is not set
302# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
303CONFIG_INLINE_READ_UNLOCK=y
304# CONFIG_INLINE_READ_UNLOCK_BH is not set
305CONFIG_INLINE_READ_UNLOCK_IRQ=y
306# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
307# CONFIG_INLINE_WRITE_TRYLOCK is not set
308# CONFIG_INLINE_WRITE_LOCK is not set
309# CONFIG_INLINE_WRITE_LOCK_BH is not set
310# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
311# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
312CONFIG_INLINE_WRITE_UNLOCK=y
313# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
314CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
315# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
316# CONFIG_MUTEX_SPIN_ON_OWNER is not set
317CONFIG_FREEZER=y
224 318
225# 319#
226# Bus options (PCI, PCMCIA, EISA, ISA, TC) 320# Bus options (PCI, PCMCIA, EISA, ISA, TC)
227# 321#
228CONFIG_HW_HAS_PCI=y 322CONFIG_HW_HAS_PCI=y
229# CONFIG_PCI is not set 323# CONFIG_PCI is not set
324# CONFIG_ARCH_SUPPORTS_MSI is not set
230CONFIG_MMU=y 325CONFIG_MMU=y
231 326CONFIG_PCCARD=y
232# 327CONFIG_PCMCIA=y
233# PCCARD (PCMCIA/CardBus) support
234#
235CONFIG_PCCARD=m
236# CONFIG_PCMCIA_DEBUG is not set
237CONFIG_PCMCIA=m
238CONFIG_PCMCIA_LOAD_CIS=y 328CONFIG_PCMCIA_LOAD_CIS=y
239CONFIG_PCMCIA_IOCTL=y 329# CONFIG_PCMCIA_IOCTL is not set
240 330
241# 331#
242# PC-card bridges 332# PC-card bridges
243# 333#
244# CONFIG_PCMCIA_AU1X00 is not set 334# CONFIG_PCMCIA_AU1X00 is not set
245 335CONFIG_PCMCIA_ALCHEMY_DEVBOARD=y
246#
247# PCI Hotplug Support
248#
249 336
250# 337#
251# Executable file formats 338# Executable file formats
252# 339#
253CONFIG_BINFMT_ELF=y 340CONFIG_BINFMT_ELF=y
341# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
342# CONFIG_HAVE_AOUT is not set
254# CONFIG_BINFMT_MISC is not set 343# CONFIG_BINFMT_MISC is not set
255CONFIG_TRAD_SIGNALS=y 344CONFIG_TRAD_SIGNALS=y
256 345
257# 346#
258# Power management options 347# Power management options
259# 348#
260# CONFIG_PM is not set 349CONFIG_ARCH_HIBERNATION_POSSIBLE=y
261 350CONFIG_ARCH_SUSPEND_POSSIBLE=y
262# 351CONFIG_PM=y
263# Networking 352# CONFIG_PM_DEBUG is not set
264# 353CONFIG_PM_SLEEP=y
354CONFIG_SUSPEND=y
355CONFIG_SUSPEND_FREEZER=y
356# CONFIG_HIBERNATION is not set
357# CONFIG_APM_EMULATION is not set
358CONFIG_PM_RUNTIME=y
265CONFIG_NET=y 359CONFIG_NET=y
266 360
267# 361#
268# Networking options 362# Networking options
269# 363#
270# CONFIG_NETDEBUG is not set
271CONFIG_PACKET=y 364CONFIG_PACKET=y
272# CONFIG_PACKET_MMAP is not set 365# CONFIG_PACKET_MMAP is not set
273CONFIG_UNIX=y 366CONFIG_UNIX=y
274CONFIG_XFRM=y 367# CONFIG_NET_KEY is not set
275CONFIG_XFRM_USER=m
276# CONFIG_XFRM_SUB_POLICY is not set
277CONFIG_XFRM_MIGRATE=y
278CONFIG_NET_KEY=y
279CONFIG_NET_KEY_MIGRATE=y
280CONFIG_INET=y 368CONFIG_INET=y
281CONFIG_IP_MULTICAST=y 369CONFIG_IP_MULTICAST=y
282# CONFIG_IP_ADVANCED_ROUTER is not set 370# CONFIG_IP_ADVANCED_ROUTER is not set
283CONFIG_IP_FIB_HASH=y 371CONFIG_IP_FIB_HASH=y
284CONFIG_IP_PNP=y 372CONFIG_IP_PNP=y
285# CONFIG_IP_PNP_DHCP is not set 373CONFIG_IP_PNP_DHCP=y
286CONFIG_IP_PNP_BOOTP=y 374CONFIG_IP_PNP_BOOTP=y
287# CONFIG_IP_PNP_RARP is not set 375CONFIG_IP_PNP_RARP=y
288# CONFIG_NET_IPIP is not set 376# CONFIG_NET_IPIP is not set
289# CONFIG_NET_IPGRE is not set 377# CONFIG_NET_IPGRE is not set
290# CONFIG_IP_MROUTE is not set 378# CONFIG_IP_MROUTE is not set
@@ -295,110 +383,25 @@ CONFIG_IP_PNP_BOOTP=y
295# CONFIG_INET_IPCOMP is not set 383# CONFIG_INET_IPCOMP is not set
296# CONFIG_INET_XFRM_TUNNEL is not set 384# CONFIG_INET_XFRM_TUNNEL is not set
297# CONFIG_INET_TUNNEL is not set 385# CONFIG_INET_TUNNEL is not set
298CONFIG_INET_XFRM_MODE_TRANSPORT=m 386# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
299CONFIG_INET_XFRM_MODE_TUNNEL=m 387# CONFIG_INET_XFRM_MODE_TUNNEL is not set
300CONFIG_INET_XFRM_MODE_BEET=m 388# CONFIG_INET_XFRM_MODE_BEET is not set
301CONFIG_INET_DIAG=y 389CONFIG_INET_LRO=y
302CONFIG_INET_TCP_DIAG=y 390# CONFIG_INET_DIAG is not set
303# CONFIG_TCP_CONG_ADVANCED is not set 391# CONFIG_TCP_CONG_ADVANCED is not set
304CONFIG_TCP_CONG_CUBIC=y 392CONFIG_TCP_CONG_CUBIC=y
305CONFIG_DEFAULT_TCP_CONG="cubic" 393CONFIG_DEFAULT_TCP_CONG="cubic"
306CONFIG_TCP_MD5SIG=y 394# CONFIG_TCP_MD5SIG is not set
307
308#
309# IP: Virtual Server Configuration
310#
311# CONFIG_IP_VS is not set
312# CONFIG_IPV6 is not set 395# CONFIG_IPV6 is not set
313# CONFIG_INET6_XFRM_TUNNEL is not set 396# CONFIG_NETWORK_SECMARK is not set
314# CONFIG_INET6_TUNNEL is not set 397# CONFIG_NETFILTER is not set
315CONFIG_NETWORK_SECMARK=y
316CONFIG_NETFILTER=y
317# CONFIG_NETFILTER_DEBUG is not set
318
319#
320# Core Netfilter Configuration
321#
322CONFIG_NETFILTER_NETLINK=m
323CONFIG_NETFILTER_NETLINK_QUEUE=m
324CONFIG_NETFILTER_NETLINK_LOG=m
325CONFIG_NF_CONNTRACK_ENABLED=m
326CONFIG_NF_CONNTRACK_SUPPORT=y
327# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set
328CONFIG_NF_CONNTRACK=m
329CONFIG_NF_CT_ACCT=y
330CONFIG_NF_CONNTRACK_MARK=y
331CONFIG_NF_CONNTRACK_SECMARK=y
332CONFIG_NF_CONNTRACK_EVENTS=y
333CONFIG_NF_CT_PROTO_GRE=m
334CONFIG_NF_CT_PROTO_SCTP=m
335CONFIG_NF_CONNTRACK_AMANDA=m
336CONFIG_NF_CONNTRACK_FTP=m
337CONFIG_NF_CONNTRACK_H323=m
338CONFIG_NF_CONNTRACK_IRC=m
339# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
340CONFIG_NF_CONNTRACK_PPTP=m
341CONFIG_NF_CONNTRACK_SANE=m
342CONFIG_NF_CONNTRACK_SIP=m
343CONFIG_NF_CONNTRACK_TFTP=m
344CONFIG_NF_CT_NETLINK=m
345CONFIG_NETFILTER_XTABLES=m
346CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
347CONFIG_NETFILTER_XT_TARGET_MARK=m
348CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
349CONFIG_NETFILTER_XT_TARGET_NFLOG=m
350CONFIG_NETFILTER_XT_TARGET_SECMARK=m
351CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
352CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
353CONFIG_NETFILTER_XT_MATCH_COMMENT=m
354CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
355CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
356CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
357CONFIG_NETFILTER_XT_MATCH_DCCP=m
358CONFIG_NETFILTER_XT_MATCH_DSCP=m
359CONFIG_NETFILTER_XT_MATCH_ESP=m
360CONFIG_NETFILTER_XT_MATCH_HELPER=m
361CONFIG_NETFILTER_XT_MATCH_LENGTH=m
362CONFIG_NETFILTER_XT_MATCH_LIMIT=m
363CONFIG_NETFILTER_XT_MATCH_MAC=m
364CONFIG_NETFILTER_XT_MATCH_MARK=m
365CONFIG_NETFILTER_XT_MATCH_POLICY=m
366CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
367CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
368CONFIG_NETFILTER_XT_MATCH_QUOTA=m
369CONFIG_NETFILTER_XT_MATCH_REALM=m
370CONFIG_NETFILTER_XT_MATCH_SCTP=m
371CONFIG_NETFILTER_XT_MATCH_STATE=m
372CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
373CONFIG_NETFILTER_XT_MATCH_STRING=m
374CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
375CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
376
377#
378# IP: Netfilter Configuration
379#
380CONFIG_NF_CONNTRACK_IPV4=m
381CONFIG_NF_CONNTRACK_PROC_COMPAT=y
382# CONFIG_IP_NF_QUEUE is not set
383# CONFIG_IP_NF_IPTABLES is not set
384# CONFIG_IP_NF_ARPTABLES is not set
385
386#
387# DCCP Configuration (EXPERIMENTAL)
388#
389# CONFIG_IP_DCCP is not set 398# CONFIG_IP_DCCP is not set
390
391#
392# SCTP Configuration (EXPERIMENTAL)
393#
394# CONFIG_IP_SCTP is not set 399# CONFIG_IP_SCTP is not set
395 400# CONFIG_RDS is not set
396#
397# TIPC Configuration (EXPERIMENTAL)
398#
399# CONFIG_TIPC is not set 401# CONFIG_TIPC is not set
400# CONFIG_ATM is not set 402# CONFIG_ATM is not set
401# CONFIG_BRIDGE is not set 403# CONFIG_BRIDGE is not set
404# CONFIG_NET_DSA is not set
402# CONFIG_VLAN_8021Q is not set 405# CONFIG_VLAN_8021Q is not set
403# CONFIG_DECNET is not set 406# CONFIG_DECNET is not set
404# CONFIG_LLC2 is not set 407# CONFIG_LLC2 is not set
@@ -408,27 +411,24 @@ CONFIG_NF_CONNTRACK_PROC_COMPAT=y
408# CONFIG_LAPB is not set 411# CONFIG_LAPB is not set
409# CONFIG_ECONET is not set 412# CONFIG_ECONET is not set
410# CONFIG_WAN_ROUTER is not set 413# CONFIG_WAN_ROUTER is not set
411 414# CONFIG_PHONET is not set
412# 415# CONFIG_IEEE802154 is not set
413# QoS and/or fair queueing
414#
415# CONFIG_NET_SCHED is not set 416# CONFIG_NET_SCHED is not set
416CONFIG_NET_CLS_ROUTE=y 417# CONFIG_DCB is not set
417 418
418# 419#
419# Network testing 420# Network testing
420# 421#
421# CONFIG_NET_PKTGEN is not set 422# CONFIG_NET_PKTGEN is not set
422# CONFIG_HAMRADIO is not set 423# CONFIG_HAMRADIO is not set
424# CONFIG_CAN is not set
423# CONFIG_IRDA is not set 425# CONFIG_IRDA is not set
424# CONFIG_BT is not set 426# CONFIG_BT is not set
425CONFIG_IEEE80211=m 427# CONFIG_AF_RXRPC is not set
426# CONFIG_IEEE80211_DEBUG is not set 428# CONFIG_WIRELESS is not set
427CONFIG_IEEE80211_CRYPT_WEP=m 429# CONFIG_WIMAX is not set
428CONFIG_IEEE80211_CRYPT_CCMP=m 430# CONFIG_RFKILL is not set
429CONFIG_IEEE80211_SOFTMAC=m 431# CONFIG_NET_9P is not set
430# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
431CONFIG_WIRELESS_EXT=y
432 432
433# 433#
434# Device Drivers 434# Device Drivers
@@ -437,25 +437,25 @@ CONFIG_WIRELESS_EXT=y
437# 437#
438# Generic Driver Options 438# Generic Driver Options
439# 439#
440CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
441# CONFIG_DEVTMPFS is not set
440CONFIG_STANDALONE=y 442CONFIG_STANDALONE=y
441CONFIG_PREVENT_FIRMWARE_BUILD=y 443CONFIG_PREVENT_FIRMWARE_BUILD=y
442CONFIG_FW_LOADER=m 444CONFIG_FW_LOADER=y
445CONFIG_FIRMWARE_IN_KERNEL=y
446CONFIG_EXTRA_FIRMWARE=""
447# CONFIG_DEBUG_DRIVER is not set
448# CONFIG_DEBUG_DEVRES is not set
443# CONFIG_SYS_HYPERVISOR is not set 449# CONFIG_SYS_HYPERVISOR is not set
444 450# CONFIG_CONNECTOR is not set
445#
446# Connector - unified userspace <-> kernelspace linker
447#
448CONFIG_CONNECTOR=m
449
450#
451# Memory Technology Devices (MTD)
452#
453CONFIG_MTD=y 451CONFIG_MTD=y
454# CONFIG_MTD_DEBUG is not set 452# CONFIG_MTD_DEBUG is not set
453# CONFIG_MTD_TESTS is not set
455# CONFIG_MTD_CONCAT is not set 454# CONFIG_MTD_CONCAT is not set
456CONFIG_MTD_PARTITIONS=y 455CONFIG_MTD_PARTITIONS=y
457# CONFIG_MTD_REDBOOT_PARTS is not set 456# CONFIG_MTD_REDBOOT_PARTS is not set
458# CONFIG_MTD_CMDLINE_PARTS is not set 457# CONFIG_MTD_CMDLINE_PARTS is not set
458# CONFIG_MTD_AR7_PARTS is not set
459 459
460# 460#
461# User Modules And Translation Layers 461# User Modules And Translation Layers
@@ -468,6 +468,7 @@ CONFIG_MTD_BLOCK=y
468# CONFIG_INFTL is not set 468# CONFIG_INFTL is not set
469# CONFIG_RFD_FTL is not set 469# CONFIG_RFD_FTL is not set
470# CONFIG_SSFDC is not set 470# CONFIG_SSFDC is not set
471# CONFIG_MTD_OOPS is not set
471 472
472# 473#
473# RAM/ROM/Flash chip drivers 474# RAM/ROM/Flash chip drivers
@@ -493,14 +494,13 @@ CONFIG_MTD_CFI_UTIL=y
493# CONFIG_MTD_RAM is not set 494# CONFIG_MTD_RAM is not set
494# CONFIG_MTD_ROM is not set 495# CONFIG_MTD_ROM is not set
495# CONFIG_MTD_ABSENT is not set 496# CONFIG_MTD_ABSENT is not set
496# CONFIG_MTD_OBSOLETE_CHIPS is not set
497 497
498# 498#
499# Mapping drivers for chip access 499# Mapping drivers for chip access
500# 500#
501# CONFIG_MTD_COMPLEX_MAPPINGS is not set 501# CONFIG_MTD_COMPLEX_MAPPINGS is not set
502# CONFIG_MTD_PHYSMAP is not set 502CONFIG_MTD_PHYSMAP=y
503CONFIG_MTD_ALCHEMY=y 503# CONFIG_MTD_PHYSMAP_COMPAT is not set
504# CONFIG_MTD_PLATRAM is not set 504# CONFIG_MTD_PLATRAM is not set
505 505
506# 506#
@@ -517,166 +517,136 @@ CONFIG_MTD_ALCHEMY=y
517# CONFIG_MTD_DOC2000 is not set 517# CONFIG_MTD_DOC2000 is not set
518# CONFIG_MTD_DOC2001 is not set 518# CONFIG_MTD_DOC2001 is not set
519# CONFIG_MTD_DOC2001PLUS is not set 519# CONFIG_MTD_DOC2001PLUS is not set
520
521#
522# NAND Flash Device Drivers
523#
524# CONFIG_MTD_NAND is not set 520# CONFIG_MTD_NAND is not set
525
526#
527# OneNAND Flash Device Drivers
528#
529# CONFIG_MTD_ONENAND is not set 521# CONFIG_MTD_ONENAND is not set
530 522
531# 523#
532# Parallel port support 524# LPDDR flash memory drivers
533# 525#
534# CONFIG_PARPORT is not set 526# CONFIG_MTD_LPDDR is not set
535 527
536# 528#
537# Plug and Play support 529# UBI - Unsorted block images
538#
539# CONFIG_PNPACPI is not set
540
541#
542# Block devices
543# 530#
531# CONFIG_MTD_UBI is not set
532# CONFIG_PARPORT is not set
533CONFIG_BLK_DEV=y
544# CONFIG_BLK_DEV_COW_COMMON is not set 534# CONFIG_BLK_DEV_COW_COMMON is not set
545CONFIG_BLK_DEV_LOOP=y 535CONFIG_BLK_DEV_LOOP=y
546# CONFIG_BLK_DEV_CRYPTOLOOP is not set 536# CONFIG_BLK_DEV_CRYPTOLOOP is not set
537
538#
539# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
540#
547# CONFIG_BLK_DEV_NBD is not set 541# CONFIG_BLK_DEV_NBD is not set
542CONFIG_BLK_DEV_UB=y
548# CONFIG_BLK_DEV_RAM is not set 543# CONFIG_BLK_DEV_RAM is not set
549# CONFIG_BLK_DEV_INITRD is not set 544# CONFIG_CDROM_PKTCDVD is not set
550CONFIG_CDROM_PKTCDVD=m 545# CONFIG_ATA_OVER_ETH is not set
551CONFIG_CDROM_PKTCDVD_BUFFERS=8 546# CONFIG_BLK_DEV_HD is not set
552# CONFIG_CDROM_PKTCDVD_WCACHE is not set 547# CONFIG_MISC_DEVICES is not set
553CONFIG_ATA_OVER_ETH=m 548CONFIG_HAVE_IDE=y
549CONFIG_IDE=y
554 550
555# 551#
556# Misc devices 552# Please see Documentation/ide/ide.txt for help/info on IDE drives
557# 553#
554# CONFIG_BLK_DEV_IDE_SATA is not set
555CONFIG_IDE_GD=y
556CONFIG_IDE_GD_ATA=y
557# CONFIG_IDE_GD_ATAPI is not set
558CONFIG_BLK_DEV_IDECS=y
559# CONFIG_BLK_DEV_IDECD is not set
560# CONFIG_BLK_DEV_IDETAPE is not set
561CONFIG_IDE_TASK_IOCTL=y
562# CONFIG_IDE_PROC_FS is not set
558 563
559# 564#
560# ATA/ATAPI/MFM/RLL support 565# IDE chipset support/bugfixes
561# 566#
562# CONFIG_IDE is not set 567# CONFIG_IDE_GENERIC is not set
568# CONFIG_BLK_DEV_PLATFORM is not set
569# CONFIG_BLK_DEV_IDEDMA is not set
563 570
564# 571#
565# SCSI device support 572# SCSI device support
566# 573#
567CONFIG_RAID_ATTRS=m 574# CONFIG_RAID_ATTRS is not set
568# CONFIG_SCSI is not set 575# CONFIG_SCSI is not set
576# CONFIG_SCSI_DMA is not set
569# CONFIG_SCSI_NETLINK is not set 577# CONFIG_SCSI_NETLINK is not set
570
571#
572# Serial ATA (prod) and Parallel ATA (experimental) drivers
573#
574# CONFIG_ATA is not set 578# CONFIG_ATA is not set
575
576#
577# Multi-device support (RAID and LVM)
578#
579# CONFIG_MD is not set 579# CONFIG_MD is not set
580
581#
582# Fusion MPT device support
583#
584# CONFIG_FUSION is not set
585
586#
587# IEEE 1394 (FireWire) support
588#
589
590#
591# I2O device support
592#
593
594#
595# Network device support
596#
597CONFIG_NETDEVICES=y 580CONFIG_NETDEVICES=y
598# CONFIG_DUMMY is not set 581# CONFIG_DUMMY is not set
599# CONFIG_BONDING is not set 582# CONFIG_BONDING is not set
583# CONFIG_MACVLAN is not set
600# CONFIG_EQUALIZER is not set 584# CONFIG_EQUALIZER is not set
601# CONFIG_TUN is not set 585# CONFIG_TUN is not set
602 586# CONFIG_VETH is not set
603# 587CONFIG_PHYLIB=y
604# PHY device support
605#
606CONFIG_PHYLIB=m
607 588
608# 589#
609# MII PHY device drivers 590# MII PHY device drivers
610# 591#
611CONFIG_MARVELL_PHY=m 592CONFIG_MARVELL_PHY=y
612CONFIG_DAVICOM_PHY=m 593CONFIG_DAVICOM_PHY=y
613CONFIG_QSEMI_PHY=m 594CONFIG_QSEMI_PHY=y
614CONFIG_LXT_PHY=m 595CONFIG_LXT_PHY=y
615CONFIG_CICADA_PHY=m 596CONFIG_CICADA_PHY=y
616CONFIG_VITESSE_PHY=m 597CONFIG_VITESSE_PHY=y
617CONFIG_SMSC_PHY=m 598CONFIG_SMSC_PHY=y
618# CONFIG_BROADCOM_PHY is not set 599CONFIG_BROADCOM_PHY=y
600CONFIG_ICPLUS_PHY=y
601CONFIG_REALTEK_PHY=y
602CONFIG_NATIONAL_PHY=y
603CONFIG_STE10XP=y
604CONFIG_LSI_ET1011C_PHY=y
619# CONFIG_FIXED_PHY is not set 605# CONFIG_FIXED_PHY is not set
620 606# CONFIG_MDIO_BITBANG is not set
621#
622# Ethernet (10 or 100Mbit)
623#
624CONFIG_NET_ETHERNET=y 607CONFIG_NET_ETHERNET=y
625# CONFIG_MII is not set 608CONFIG_MII=y
626# CONFIG_MIPS_AU1X00_ENET is not set 609# CONFIG_AX88796 is not set
610CONFIG_MIPS_AU1X00_ENET=y
627# CONFIG_SMC91X is not set 611# CONFIG_SMC91X is not set
628# CONFIG_DM9000 is not set 612# CONFIG_DM9000 is not set
629 613# CONFIG_ETHOC is not set
630# 614# CONFIG_SMSC911X is not set
631# Ethernet (1000 Mbit) 615# CONFIG_DNET is not set
632# 616# CONFIG_IBM_NEW_EMAC_ZMII is not set
633 617# CONFIG_IBM_NEW_EMAC_RGMII is not set
634# 618# CONFIG_IBM_NEW_EMAC_TAH is not set
635# Ethernet (10000 Mbit) 619# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
636# 620# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
637 621# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
638# 622# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
639# Token Ring devices 623# CONFIG_B44 is not set
640# 624# CONFIG_KS8842 is not set
641 625# CONFIG_KS8851_MLL is not set
642# 626# CONFIG_NETDEV_1000 is not set
643# Wireless LAN (non-hamradio) 627# CONFIG_NETDEV_10000 is not set
644# 628# CONFIG_WLAN is not set
645# CONFIG_NET_RADIO is not set 629
646 630#
647# 631# Enable WiMAX (Networking options) to see the WiMAX drivers
648# PCMCIA network device support 632#
649# 633
634#
635# USB Network Adapters
636#
637# CONFIG_USB_CATC is not set
638# CONFIG_USB_KAWETH is not set
639# CONFIG_USB_PEGASUS is not set
640# CONFIG_USB_RTL8150 is not set
641# CONFIG_USB_USBNET is not set
650# CONFIG_NET_PCMCIA is not set 642# CONFIG_NET_PCMCIA is not set
651
652#
653# Wan interfaces
654#
655# CONFIG_WAN is not set 643# CONFIG_WAN is not set
656CONFIG_PPP=m 644# CONFIG_PPP is not set
657CONFIG_PPP_MULTILINK=y
658# CONFIG_PPP_FILTER is not set
659CONFIG_PPP_ASYNC=m
660# CONFIG_PPP_SYNC_TTY is not set
661CONFIG_PPP_DEFLATE=m
662# CONFIG_PPP_BSDCOMP is not set
663CONFIG_PPP_MPPE=m
664CONFIG_PPPOE=m
665# CONFIG_SLIP is not set 645# CONFIG_SLIP is not set
666CONFIG_SLHC=m
667# CONFIG_SHAPER is not set
668# CONFIG_NETCONSOLE is not set 646# CONFIG_NETCONSOLE is not set
669# CONFIG_NETPOLL is not set 647# CONFIG_NETPOLL is not set
670# CONFIG_NET_POLL_CONTROLLER is not set 648# CONFIG_NET_POLL_CONTROLLER is not set
671
672#
673# ISDN subsystem
674#
675# CONFIG_ISDN is not set 649# CONFIG_ISDN is not set
676
677#
678# Telephony Support
679#
680# CONFIG_PHONE is not set 650# CONFIG_PHONE is not set
681 651
682# 652#
@@ -684,16 +654,14 @@ CONFIG_SLHC=m
684# 654#
685CONFIG_INPUT=y 655CONFIG_INPUT=y
686# CONFIG_INPUT_FF_MEMLESS is not set 656# CONFIG_INPUT_FF_MEMLESS is not set
657# CONFIG_INPUT_POLLDEV is not set
658# CONFIG_INPUT_SPARSEKMAP is not set
687 659
688# 660#
689# Userland interfaces 661# Userland interfaces
690# 662#
691CONFIG_INPUT_MOUSEDEV=y 663# CONFIG_INPUT_MOUSEDEV is not set
692CONFIG_INPUT_MOUSEDEV_PSAUX=y
693CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
694CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
695# CONFIG_INPUT_JOYDEV is not set 664# CONFIG_INPUT_JOYDEV is not set
696# CONFIG_INPUT_TSDEV is not set
697CONFIG_INPUT_EVDEV=y 665CONFIG_INPUT_EVDEV=y
698# CONFIG_INPUT_EVBUG is not set 666# CONFIG_INPUT_EVBUG is not set
699 667
@@ -703,28 +671,26 @@ CONFIG_INPUT_EVDEV=y
703# CONFIG_INPUT_KEYBOARD is not set 671# CONFIG_INPUT_KEYBOARD is not set
704# CONFIG_INPUT_MOUSE is not set 672# CONFIG_INPUT_MOUSE is not set
705# CONFIG_INPUT_JOYSTICK is not set 673# CONFIG_INPUT_JOYSTICK is not set
674# CONFIG_INPUT_TABLET is not set
706# CONFIG_INPUT_TOUCHSCREEN is not set 675# CONFIG_INPUT_TOUCHSCREEN is not set
707# CONFIG_INPUT_MISC is not set 676# CONFIG_INPUT_MISC is not set
708 677
709# 678#
710# Hardware I/O ports 679# Hardware I/O ports
711# 680#
712CONFIG_SERIO=y 681# CONFIG_SERIO is not set
713# CONFIG_SERIO_I8042 is not set
714CONFIG_SERIO_SERPORT=y
715# CONFIG_SERIO_LIBPS2 is not set
716CONFIG_SERIO_RAW=m
717# CONFIG_GAMEPORT is not set 682# CONFIG_GAMEPORT is not set
718 683
719# 684#
720# Character devices 685# Character devices
721# 686#
722CONFIG_VT=y 687CONFIG_VT=y
688CONFIG_CONSOLE_TRANSLATIONS=y
723CONFIG_VT_CONSOLE=y 689CONFIG_VT_CONSOLE=y
724CONFIG_HW_CONSOLE=y 690CONFIG_HW_CONSOLE=y
725CONFIG_VT_HW_CONSOLE_BINDING=y 691CONFIG_VT_HW_CONSOLE_BINDING=y
692CONFIG_DEVKMEM=y
726# CONFIG_SERIAL_NONSTANDARD is not set 693# CONFIG_SERIAL_NONSTANDARD is not set
727# CONFIG_AU1X00_GPIO is not set
728 694
729# 695#
730# Serial drivers 696# Serial drivers
@@ -743,198 +709,288 @@ CONFIG_SERIAL_8250_AU1X00=y
743CONFIG_SERIAL_CORE=y 709CONFIG_SERIAL_CORE=y
744CONFIG_SERIAL_CORE_CONSOLE=y 710CONFIG_SERIAL_CORE_CONSOLE=y
745CONFIG_UNIX98_PTYS=y 711CONFIG_UNIX98_PTYS=y
746CONFIG_LEGACY_PTYS=y 712# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
747CONFIG_LEGACY_PTY_COUNT=256 713# CONFIG_LEGACY_PTYS is not set
748
749#
750# IPMI
751#
752# CONFIG_IPMI_HANDLER is not set 714# CONFIG_IPMI_HANDLER is not set
753
754#
755# Watchdog Cards
756#
757# CONFIG_WATCHDOG is not set
758# CONFIG_HW_RANDOM is not set 715# CONFIG_HW_RANDOM is not set
759# CONFIG_RTC is not set
760# CONFIG_GEN_RTC is not set
761# CONFIG_DTLK is not set
762# CONFIG_R3964 is not set 716# CONFIG_R3964 is not set
763 717
764# 718#
765# PCMCIA character devices 719# PCMCIA character devices
766# 720#
767CONFIG_SYNCLINK_CS=m 721# CONFIG_SYNCLINK_CS is not set
768# CONFIG_CARDMAN_4000 is not set 722# CONFIG_CARDMAN_4000 is not set
769# CONFIG_CARDMAN_4040 is not set 723# CONFIG_CARDMAN_4040 is not set
724# CONFIG_IPWIRELESS is not set
770# CONFIG_RAW_DRIVER is not set 725# CONFIG_RAW_DRIVER is not set
771
772#
773# TPM devices
774#
775# CONFIG_TCG_TPM is not set 726# CONFIG_TCG_TPM is not set
776
777#
778# I2C support
779#
780# CONFIG_I2C is not set 727# CONFIG_I2C is not set
781
782#
783# SPI support
784#
785# CONFIG_SPI is not set 728# CONFIG_SPI is not set
786# CONFIG_SPI_MASTER is not set
787 729
788# 730#
789# Dallas's 1-wire bus 731# PPS support
790# 732#
733# CONFIG_PPS is not set
734CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
735# CONFIG_GPIOLIB is not set
791# CONFIG_W1 is not set 736# CONFIG_W1 is not set
792 737# CONFIG_POWER_SUPPLY is not set
793#
794# Hardware Monitoring support
795#
796# CONFIG_HWMON is not set 738# CONFIG_HWMON is not set
797# CONFIG_HWMON_VID is not set 739# CONFIG_THERMAL is not set
740# CONFIG_WATCHDOG is not set
741CONFIG_SSB_POSSIBLE=y
798 742
799# 743#
800# Multimedia devices 744# Sonics Silicon Backplane
801# 745#
802# CONFIG_VIDEO_DEV is not set 746# CONFIG_SSB is not set
803 747
804# 748#
805# Digital Video Broadcasting Devices 749# Multifunction device drivers
806# 750#
807# CONFIG_DVB is not set 751# CONFIG_MFD_CORE is not set
752# CONFIG_MFD_SM501 is not set
753# CONFIG_HTC_PASIC3 is not set
754# CONFIG_MFD_TMIO is not set
755# CONFIG_REGULATOR is not set
756# CONFIG_MEDIA_SUPPORT is not set
808 757
809# 758#
810# Graphics support 759# Graphics support
811# 760#
812# CONFIG_FIRMWARE_EDID is not set 761# CONFIG_VGASTATE is not set
762# CONFIG_VIDEO_OUTPUT_CONTROL is not set
813# CONFIG_FB is not set 763# CONFIG_FB is not set
814
815#
816# Console display driver support
817#
818# CONFIG_VGA_CONSOLE is not set
819CONFIG_DUMMY_CONSOLE=y
820# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 764# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
821 765
822# 766#
823# Sound 767# Display device support
824# 768#
825# CONFIG_SOUND is not set 769# CONFIG_DISPLAY_SUPPORT is not set
826 770
827# 771#
828# HID Devices 772# Console display driver support
829#
830# CONFIG_HID is not set
831
832#
833# USB support
834# 773#
774# CONFIG_VGA_CONSOLE is not set
775CONFIG_DUMMY_CONSOLE=y
776# CONFIG_SOUND is not set
777CONFIG_HID_SUPPORT=y
778CONFIG_HID=y
779CONFIG_HIDRAW=y
780
781#
782# USB Input Devices
783#
784CONFIG_USB_HID=y
785# CONFIG_HID_PID is not set
786CONFIG_USB_HIDDEV=y
787
788#
789# Special HID drivers
790#
791# CONFIG_HID_A4TECH is not set
792# CONFIG_HID_APPLE is not set
793# CONFIG_HID_BELKIN is not set
794# CONFIG_HID_CHERRY is not set
795# CONFIG_HID_CHICONY is not set
796# CONFIG_HID_CYPRESS is not set
797# CONFIG_HID_DRAGONRISE is not set
798# CONFIG_HID_EZKEY is not set
799# CONFIG_HID_KYE is not set
800# CONFIG_HID_GYRATION is not set
801# CONFIG_HID_TWINHAN is not set
802# CONFIG_HID_KENSINGTON is not set
803# CONFIG_HID_LOGITECH is not set
804# CONFIG_HID_MICROSOFT is not set
805# CONFIG_HID_MONTEREY is not set
806# CONFIG_HID_NTRIG is not set
807# CONFIG_HID_PANTHERLORD is not set
808# CONFIG_HID_PETALYNX is not set
809# CONFIG_HID_SAMSUNG is not set
810# CONFIG_HID_SONY is not set
811# CONFIG_HID_SUNPLUS is not set
812# CONFIG_HID_GREENASIA is not set
813# CONFIG_HID_SMARTJOYPLUS is not set
814# CONFIG_HID_TOPSEED is not set
815# CONFIG_HID_THRUSTMASTER is not set
816# CONFIG_HID_ZEROPLUS is not set
817CONFIG_USB_SUPPORT=y
835CONFIG_USB_ARCH_HAS_HCD=y 818CONFIG_USB_ARCH_HAS_HCD=y
836CONFIG_USB_ARCH_HAS_OHCI=y 819CONFIG_USB_ARCH_HAS_OHCI=y
837# CONFIG_USB_ARCH_HAS_EHCI is not set 820# CONFIG_USB_ARCH_HAS_EHCI is not set
838# CONFIG_USB is not set 821CONFIG_USB=y
822# CONFIG_USB_DEBUG is not set
823# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
839 824
840# 825#
841# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 826# Miscellaneous USB options
842# 827#
828# CONFIG_USB_DEVICEFS is not set
829# CONFIG_USB_DEVICE_CLASS is not set
830CONFIG_USB_DYNAMIC_MINORS=y
831CONFIG_USB_SUSPEND=y
832# CONFIG_USB_OTG is not set
833# CONFIG_USB_OTG_WHITELIST is not set
834# CONFIG_USB_OTG_BLACKLIST_HUB is not set
835# CONFIG_USB_MON is not set
836# CONFIG_USB_WUSB is not set
837# CONFIG_USB_WUSB_CBAF is not set
843 838
844# 839#
845# USB Gadget Support 840# USB Host Controller Drivers
846# 841#
847# CONFIG_USB_GADGET is not set 842# CONFIG_USB_C67X00_HCD is not set
843# CONFIG_USB_OXU210HP_HCD is not set
844# CONFIG_USB_ISP116X_HCD is not set
845# CONFIG_USB_ISP1760_HCD is not set
846# CONFIG_USB_ISP1362_HCD is not set
847CONFIG_USB_OHCI_HCD=y
848# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
849# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
850CONFIG_USB_OHCI_LITTLE_ENDIAN=y
851# CONFIG_USB_SL811_HCD is not set
852# CONFIG_USB_R8A66597_HCD is not set
853# CONFIG_USB_HWA_HCD is not set
848 854
849# 855#
850# MMC/SD Card support 856# USB Device Class drivers
851# 857#
852# CONFIG_MMC is not set 858# CONFIG_USB_ACM is not set
859# CONFIG_USB_PRINTER is not set
860# CONFIG_USB_WDM is not set
861# CONFIG_USB_TMC is not set
853 862
854# 863#
855# LED devices 864# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
856# 865#
857# CONFIG_NEW_LEDS is not set
858 866
859# 867#
860# LED drivers 868# also be needed; see USB_STORAGE Help for more info
861# 869#
870# CONFIG_USB_LIBUSUAL is not set
862 871
863# 872#
864# LED Triggers 873# USB Imaging devices
865# 874#
875# CONFIG_USB_MDC800 is not set
866 876
867# 877#
868# InfiniBand support 878# USB port drivers
869# 879#
880# CONFIG_USB_SERIAL is not set
870 881
871# 882#
872# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 883# USB Miscellaneous drivers
873# 884#
885# CONFIG_USB_EMI62 is not set
886# CONFIG_USB_EMI26 is not set
887# CONFIG_USB_ADUTUX is not set
888# CONFIG_USB_SEVSEG is not set
889# CONFIG_USB_RIO500 is not set
890# CONFIG_USB_LEGOTOWER is not set
891# CONFIG_USB_LCD is not set
892# CONFIG_USB_BERRY_CHARGE is not set
893# CONFIG_USB_LED is not set
894# CONFIG_USB_CYPRESS_CY7C63 is not set
895# CONFIG_USB_CYTHERM is not set
896# CONFIG_USB_IDMOUSE is not set
897# CONFIG_USB_FTDI_ELAN is not set
898# CONFIG_USB_APPLEDISPLAY is not set
899# CONFIG_USB_LD is not set
900# CONFIG_USB_TRANCEVIBRATOR is not set
901# CONFIG_USB_IOWARRIOR is not set
902# CONFIG_USB_TEST is not set
903# CONFIG_USB_ISIGHTFW is not set
904# CONFIG_USB_VST is not set
905# CONFIG_USB_GADGET is not set
874 906
875# 907#
876# Real Time Clock 908# OTG and related infrastructure
877# 909#
878# CONFIG_RTC_CLASS is not set 910# CONFIG_USB_GPIO_VBUS is not set
911# CONFIG_NOP_USB_XCEIV is not set
912# CONFIG_MMC is not set
913# CONFIG_MEMSTICK is not set
914# CONFIG_NEW_LEDS is not set
915# CONFIG_ACCESSIBILITY is not set
916CONFIG_RTC_LIB=y
917CONFIG_RTC_CLASS=y
918CONFIG_RTC_HCTOSYS=y
919CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
920# CONFIG_RTC_DEBUG is not set
879 921
880# 922#
881# DMA Engine support 923# RTC interfaces
882# 924#
883# CONFIG_DMA_ENGINE is not set 925CONFIG_RTC_INTF_SYSFS=y
926CONFIG_RTC_INTF_PROC=y
927CONFIG_RTC_INTF_DEV=y
928# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
929# CONFIG_RTC_DRV_TEST is not set
884 930
885# 931#
886# DMA Clients 932# SPI RTC drivers
887# 933#
888 934
889# 935#
890# DMA Devices 936# Platform RTC drivers
891# 937#
938# CONFIG_RTC_DRV_CMOS is not set
939# CONFIG_RTC_DRV_DS1286 is not set
940# CONFIG_RTC_DRV_DS1511 is not set
941# CONFIG_RTC_DRV_DS1553 is not set
942# CONFIG_RTC_DRV_DS1742 is not set
943# CONFIG_RTC_DRV_STK17TA8 is not set
944# CONFIG_RTC_DRV_M48T86 is not set
945# CONFIG_RTC_DRV_M48T35 is not set
946# CONFIG_RTC_DRV_M48T59 is not set
947# CONFIG_RTC_DRV_MSM6242 is not set
948# CONFIG_RTC_DRV_BQ4802 is not set
949# CONFIG_RTC_DRV_RP5C01 is not set
950# CONFIG_RTC_DRV_V3020 is not set
892 951
893# 952#
894# Auxiliary Display support 953# on-CPU RTC drivers
895# 954#
955CONFIG_RTC_DRV_AU1XXX=y
956# CONFIG_DMADEVICES is not set
957# CONFIG_AUXDISPLAY is not set
958# CONFIG_UIO is not set
896 959
897# 960#
898# Virtualization 961# TI VLYNQ
899# 962#
963# CONFIG_STAGING is not set
900 964
901# 965#
902# File systems 966# File systems
903# 967#
904CONFIG_EXT2_FS=y 968CONFIG_EXT2_FS=y
905CONFIG_EXT2_FS_XATTR=y 969# CONFIG_EXT2_FS_XATTR is not set
906CONFIG_EXT2_FS_POSIX_ACL=y
907# CONFIG_EXT2_FS_SECURITY is not set
908# CONFIG_EXT2_FS_XIP is not set 970# CONFIG_EXT2_FS_XIP is not set
909CONFIG_EXT3_FS=y 971# CONFIG_EXT3_FS is not set
910CONFIG_EXT3_FS_XATTR=y 972# CONFIG_EXT4_FS is not set
911CONFIG_EXT3_FS_POSIX_ACL=y 973# CONFIG_REISERFS_FS is not set
912CONFIG_EXT3_FS_SECURITY=y
913# CONFIG_EXT4DEV_FS is not set
914CONFIG_JBD=y
915# CONFIG_JBD_DEBUG is not set
916CONFIG_FS_MBCACHE=y
917CONFIG_REISERFS_FS=m
918# CONFIG_REISERFS_CHECK is not set
919# CONFIG_REISERFS_PROC_INFO is not set
920CONFIG_REISERFS_FS_XATTR=y
921CONFIG_REISERFS_FS_POSIX_ACL=y
922CONFIG_REISERFS_FS_SECURITY=y
923# CONFIG_JFS_FS is not set 974# CONFIG_JFS_FS is not set
924CONFIG_FS_POSIX_ACL=y 975# CONFIG_FS_POSIX_ACL is not set
925# CONFIG_XFS_FS is not set 976# CONFIG_XFS_FS is not set
926# CONFIG_GFS2_FS is not set
927# CONFIG_OCFS2_FS is not set 977# CONFIG_OCFS2_FS is not set
928# CONFIG_MINIX_FS is not set 978# CONFIG_BTRFS_FS is not set
929# CONFIG_ROMFS_FS is not set 979# CONFIG_NILFS2_FS is not set
980CONFIG_FILE_LOCKING=y
981CONFIG_FSNOTIFY=y
982CONFIG_DNOTIFY=y
930CONFIG_INOTIFY=y 983CONFIG_INOTIFY=y
931CONFIG_INOTIFY_USER=y 984CONFIG_INOTIFY_USER=y
932# CONFIG_QUOTA is not set 985# CONFIG_QUOTA is not set
933CONFIG_DNOTIFY=y 986# CONFIG_AUTOFS_FS is not set
934CONFIG_AUTOFS_FS=m 987# CONFIG_AUTOFS4_FS is not set
935CONFIG_AUTOFS4_FS=m 988# CONFIG_FUSE_FS is not set
936CONFIG_FUSE_FS=m 989
937CONFIG_GENERIC_ACL=y 990#
991# Caches
992#
993# CONFIG_FSCACHE is not set
938 994
939# 995#
940# CD-ROM/DVD Filesystems 996# CD-ROM/DVD Filesystems
@@ -953,69 +1009,76 @@ CONFIG_GENERIC_ACL=y
953# Pseudo filesystems 1009# Pseudo filesystems
954# 1010#
955CONFIG_PROC_FS=y 1011CONFIG_PROC_FS=y
956CONFIG_PROC_KCORE=y 1012# CONFIG_PROC_KCORE is not set
957CONFIG_PROC_SYSCTL=y 1013CONFIG_PROC_SYSCTL=y
1014# CONFIG_PROC_PAGE_MONITOR is not set
958CONFIG_SYSFS=y 1015CONFIG_SYSFS=y
959CONFIG_TMPFS=y 1016CONFIG_TMPFS=y
960CONFIG_TMPFS_POSIX_ACL=y 1017# CONFIG_TMPFS_POSIX_ACL is not set
961# CONFIG_HUGETLB_PAGE is not set 1018# CONFIG_HUGETLB_PAGE is not set
962CONFIG_RAMFS=y 1019# CONFIG_CONFIGFS_FS is not set
963CONFIG_CONFIGFS_FS=m 1020CONFIG_MISC_FILESYSTEMS=y
964
965#
966# Miscellaneous filesystems
967#
968# CONFIG_ADFS_FS is not set 1021# CONFIG_ADFS_FS is not set
969# CONFIG_AFFS_FS is not set 1022# CONFIG_AFFS_FS is not set
970# CONFIG_ECRYPT_FS is not set
971# CONFIG_HFS_FS is not set 1023# CONFIG_HFS_FS is not set
972# CONFIG_HFSPLUS_FS is not set 1024# CONFIG_HFSPLUS_FS is not set
973# CONFIG_BEFS_FS is not set 1025# CONFIG_BEFS_FS is not set
974# CONFIG_BFS_FS is not set 1026# CONFIG_BFS_FS is not set
975# CONFIG_EFS_FS is not set 1027# CONFIG_EFS_FS is not set
976# CONFIG_JFFS2_FS is not set 1028CONFIG_JFFS2_FS=y
977CONFIG_CRAMFS=m 1029CONFIG_JFFS2_FS_DEBUG=0
1030CONFIG_JFFS2_FS_WRITEBUFFER=y
1031# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1032CONFIG_JFFS2_SUMMARY=y
1033CONFIG_JFFS2_FS_XATTR=y
1034# CONFIG_JFFS2_FS_POSIX_ACL is not set
1035# CONFIG_JFFS2_FS_SECURITY is not set
1036CONFIG_JFFS2_COMPRESSION_OPTIONS=y
1037CONFIG_JFFS2_ZLIB=y
1038CONFIG_JFFS2_LZO=y
1039CONFIG_JFFS2_RTIME=y
1040CONFIG_JFFS2_RUBIN=y
1041# CONFIG_JFFS2_CMODE_NONE is not set
1042CONFIG_JFFS2_CMODE_PRIORITY=y
1043# CONFIG_JFFS2_CMODE_SIZE is not set
1044# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
1045# CONFIG_CRAMFS is not set
1046CONFIG_SQUASHFS=y
1047# CONFIG_SQUASHFS_EMBEDDED is not set
1048CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
978# CONFIG_VXFS_FS is not set 1049# CONFIG_VXFS_FS is not set
1050# CONFIG_MINIX_FS is not set
1051# CONFIG_OMFS_FS is not set
979# CONFIG_HPFS_FS is not set 1052# CONFIG_HPFS_FS is not set
980# CONFIG_QNX4FS_FS is not set 1053# CONFIG_QNX4FS_FS is not set
1054# CONFIG_ROMFS_FS is not set
981# CONFIG_SYSV_FS is not set 1055# CONFIG_SYSV_FS is not set
982# CONFIG_UFS_FS is not set 1056# CONFIG_UFS_FS is not set
983 1057CONFIG_NETWORK_FILESYSTEMS=y
984#
985# Network File Systems
986#
987CONFIG_NFS_FS=y 1058CONFIG_NFS_FS=y
988# CONFIG_NFS_V3 is not set 1059CONFIG_NFS_V3=y
1060# CONFIG_NFS_V3_ACL is not set
989# CONFIG_NFS_V4 is not set 1061# CONFIG_NFS_V4 is not set
990# CONFIG_NFS_DIRECTIO is not set
991CONFIG_NFSD=m
992# CONFIG_NFSD_V3 is not set
993# CONFIG_NFSD_TCP is not set
994CONFIG_ROOT_NFS=y 1062CONFIG_ROOT_NFS=y
1063# CONFIG_NFSD is not set
995CONFIG_LOCKD=y 1064CONFIG_LOCKD=y
996CONFIG_EXPORTFS=m 1065CONFIG_LOCKD_V4=y
997CONFIG_NFS_COMMON=y 1066CONFIG_NFS_COMMON=y
998CONFIG_SUNRPC=y 1067CONFIG_SUNRPC=y
999# CONFIG_RPCSEC_GSS_KRB5 is not set 1068# CONFIG_RPCSEC_GSS_KRB5 is not set
1000# CONFIG_RPCSEC_GSS_SPKM3 is not set 1069# CONFIG_RPCSEC_GSS_SPKM3 is not set
1001CONFIG_SMB_FS=m 1070# CONFIG_SMB_FS is not set
1002# CONFIG_SMB_NLS_DEFAULT is not set
1003# CONFIG_CIFS is not set 1071# CONFIG_CIFS is not set
1004# CONFIG_NCP_FS is not set 1072# CONFIG_NCP_FS is not set
1005# CONFIG_CODA_FS is not set 1073# CONFIG_CODA_FS is not set
1006# CONFIG_AFS_FS is not set 1074# CONFIG_AFS_FS is not set
1007# CONFIG_9P_FS is not set
1008 1075
1009# 1076#
1010# Partition Types 1077# Partition Types
1011# 1078#
1012# CONFIG_PARTITION_ADVANCED is not set 1079# CONFIG_PARTITION_ADVANCED is not set
1013CONFIG_MSDOS_PARTITION=y 1080CONFIG_MSDOS_PARTITION=y
1014 1081CONFIG_NLS=y
1015#
1016# Native Language Support
1017#
1018CONFIG_NLS=m
1019CONFIG_NLS_DEFAULT="iso8859-1" 1082CONFIG_NLS_DEFAULT="iso8859-1"
1020# CONFIG_NLS_CODEPAGE_437 is not set 1083# CONFIG_NLS_CODEPAGE_437 is not set
1021# CONFIG_NLS_CODEPAGE_737 is not set 1084# CONFIG_NLS_CODEPAGE_737 is not set
@@ -1055,34 +1118,71 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1055# CONFIG_NLS_KOI8_R is not set 1118# CONFIG_NLS_KOI8_R is not set
1056# CONFIG_NLS_KOI8_U is not set 1119# CONFIG_NLS_KOI8_U is not set
1057# CONFIG_NLS_UTF8 is not set 1120# CONFIG_NLS_UTF8 is not set
1058 1121# CONFIG_DLM is not set
1059#
1060# Distributed Lock Manager
1061#
1062CONFIG_DLM=m
1063CONFIG_DLM_TCP=y
1064# CONFIG_DLM_SCTP is not set
1065# CONFIG_DLM_DEBUG is not set
1066
1067#
1068# Profiling support
1069#
1070# CONFIG_PROFILING is not set
1071 1122
1072# 1123#
1073# Kernel hacking 1124# Kernel hacking
1074# 1125#
1075CONFIG_TRACE_IRQFLAGS_SUPPORT=y 1126CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1076# CONFIG_PRINTK_TIME is not set 1127# CONFIG_PRINTK_TIME is not set
1128CONFIG_ENABLE_WARN_DEPRECATED=y
1077CONFIG_ENABLE_MUST_CHECK=y 1129CONFIG_ENABLE_MUST_CHECK=y
1130CONFIG_FRAME_WARN=1024
1078# CONFIG_MAGIC_SYSRQ is not set 1131# CONFIG_MAGIC_SYSRQ is not set
1132CONFIG_STRIP_ASM_SYMS=y
1079# CONFIG_UNUSED_SYMBOLS is not set 1133# CONFIG_UNUSED_SYMBOLS is not set
1080# CONFIG_DEBUG_FS is not set 1134# CONFIG_DEBUG_FS is not set
1081# CONFIG_HEADERS_CHECK is not set 1135# CONFIG_HEADERS_CHECK is not set
1082# CONFIG_DEBUG_KERNEL is not set 1136CONFIG_DEBUG_KERNEL=y
1083CONFIG_LOG_BUF_SHIFT=14 1137# CONFIG_DEBUG_SHIRQ is not set
1084CONFIG_CROSSCOMPILE=y 1138# CONFIG_DETECT_SOFTLOCKUP is not set
1139# CONFIG_DETECT_HUNG_TASK is not set
1140# CONFIG_SCHED_DEBUG is not set
1141# CONFIG_SCHEDSTATS is not set
1142# CONFIG_TIMER_STATS is not set
1143# CONFIG_DEBUG_OBJECTS is not set
1144# CONFIG_DEBUG_SLAB is not set
1145# CONFIG_DEBUG_RT_MUTEXES is not set
1146# CONFIG_RT_MUTEX_TESTER is not set
1147# CONFIG_DEBUG_SPINLOCK is not set
1148# CONFIG_DEBUG_MUTEXES is not set
1149# CONFIG_DEBUG_LOCK_ALLOC is not set
1150# CONFIG_PROVE_LOCKING is not set
1151# CONFIG_LOCK_STAT is not set
1152# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1153# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1154# CONFIG_DEBUG_KOBJECT is not set
1155# CONFIG_DEBUG_INFO is not set
1156# CONFIG_DEBUG_VM is not set
1157# CONFIG_DEBUG_WRITECOUNT is not set
1158# CONFIG_DEBUG_MEMORY_INIT is not set
1159# CONFIG_DEBUG_LIST is not set
1160# CONFIG_DEBUG_SG is not set
1161# CONFIG_DEBUG_NOTIFIERS is not set
1162# CONFIG_DEBUG_CREDENTIALS is not set
1163# CONFIG_BOOT_PRINTK_DELAY is not set
1164# CONFIG_RCU_TORTURE_TEST is not set
1165# CONFIG_BACKTRACE_SELF_TEST is not set
1166# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1167# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1168# CONFIG_FAULT_INJECTION is not set
1169# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1170# CONFIG_PAGE_POISONING is not set
1171CONFIG_HAVE_FUNCTION_TRACER=y
1172CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1173CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
1174CONFIG_HAVE_DYNAMIC_FTRACE=y
1175CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1176CONFIG_TRACING_SUPPORT=y
1177# CONFIG_FTRACE is not set
1178# CONFIG_SAMPLES is not set
1179CONFIG_HAVE_ARCH_KGDB=y
1180# CONFIG_KGDB is not set
1181CONFIG_EARLY_PRINTK=y
1085# CONFIG_CMDLINE_BOOL is not set 1182# CONFIG_CMDLINE_BOOL is not set
1183# CONFIG_DEBUG_STACK_USAGE is not set
1184# CONFIG_RUNTIME_DEBUG is not set
1185CONFIG_DEBUG_ZBOOT=y
1086 1186
1087# 1187#
1088# Security options 1188# Security options
@@ -1090,67 +1190,32 @@ CONFIG_CROSSCOMPILE=y
1090CONFIG_KEYS=y 1190CONFIG_KEYS=y
1091CONFIG_KEYS_DEBUG_PROC_KEYS=y 1191CONFIG_KEYS_DEBUG_PROC_KEYS=y
1092# CONFIG_SECURITY is not set 1192# CONFIG_SECURITY is not set
1093 1193CONFIG_SECURITYFS=y
1094# 1194# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1095# Cryptographic options 1195# CONFIG_DEFAULT_SECURITY_SMACK is not set
1096# 1196# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1097CONFIG_CRYPTO=y 1197CONFIG_DEFAULT_SECURITY_DAC=y
1098CONFIG_CRYPTO_ALGAPI=y 1198CONFIG_DEFAULT_SECURITY=""
1099CONFIG_CRYPTO_BLKCIPHER=m 1199# CONFIG_CRYPTO is not set
1100CONFIG_CRYPTO_HASH=y 1200# CONFIG_BINARY_PRINTF is not set
1101CONFIG_CRYPTO_MANAGER=y
1102CONFIG_CRYPTO_HMAC=y
1103CONFIG_CRYPTO_XCBC=m
1104CONFIG_CRYPTO_NULL=m
1105CONFIG_CRYPTO_MD4=m
1106CONFIG_CRYPTO_MD5=y
1107CONFIG_CRYPTO_SHA1=m
1108CONFIG_CRYPTO_SHA256=m
1109CONFIG_CRYPTO_SHA512=m
1110CONFIG_CRYPTO_WP512=m
1111CONFIG_CRYPTO_TGR192=m
1112CONFIG_CRYPTO_GF128MUL=m
1113CONFIG_CRYPTO_ECB=m
1114CONFIG_CRYPTO_CBC=m
1115CONFIG_CRYPTO_PCBC=m
1116CONFIG_CRYPTO_LRW=m
1117CONFIG_CRYPTO_DES=m
1118CONFIG_CRYPTO_FCRYPT=m
1119CONFIG_CRYPTO_BLOWFISH=m
1120CONFIG_CRYPTO_TWOFISH=m
1121CONFIG_CRYPTO_TWOFISH_COMMON=m
1122CONFIG_CRYPTO_SERPENT=m
1123CONFIG_CRYPTO_AES=m
1124CONFIG_CRYPTO_CAST5=m
1125CONFIG_CRYPTO_CAST6=m
1126CONFIG_CRYPTO_TEA=m
1127CONFIG_CRYPTO_ARC4=m
1128CONFIG_CRYPTO_KHAZAD=m
1129CONFIG_CRYPTO_ANUBIS=m
1130CONFIG_CRYPTO_DEFLATE=m
1131CONFIG_CRYPTO_MICHAEL_MIC=m
1132CONFIG_CRYPTO_CRC32C=m
1133CONFIG_CRYPTO_CAMELLIA=m
1134# CONFIG_CRYPTO_TEST is not set
1135
1136#
1137# Hardware crypto devices
1138#
1139 1201
1140# 1202#
1141# Library routines 1203# Library routines
1142# 1204#
1143CONFIG_BITREVERSE=y 1205CONFIG_BITREVERSE=y
1144CONFIG_CRC_CCITT=m 1206CONFIG_GENERIC_FIND_LAST_BIT=y
1145CONFIG_CRC16=m 1207# CONFIG_CRC_CCITT is not set
1208# CONFIG_CRC16 is not set
1209# CONFIG_CRC_T10DIF is not set
1210# CONFIG_CRC_ITU_T is not set
1146CONFIG_CRC32=y 1211CONFIG_CRC32=y
1147CONFIG_LIBCRC32C=m 1212# CONFIG_CRC7 is not set
1148CONFIG_ZLIB_INFLATE=m 1213# CONFIG_LIBCRC32C is not set
1149CONFIG_ZLIB_DEFLATE=m 1214CONFIG_ZLIB_INFLATE=y
1150CONFIG_TEXTSEARCH=y 1215CONFIG_ZLIB_DEFLATE=y
1151CONFIG_TEXTSEARCH_KMP=m 1216CONFIG_LZO_COMPRESS=y
1152CONFIG_TEXTSEARCH_BM=m 1217CONFIG_LZO_DECOMPRESS=y
1153CONFIG_TEXTSEARCH_FSM=m
1154CONFIG_PLIST=y
1155CONFIG_HAS_IOMEM=y 1218CONFIG_HAS_IOMEM=y
1156CONFIG_HAS_IOPORT=y 1219CONFIG_HAS_IOPORT=y
1220CONFIG_HAS_DMA=y
1221CONFIG_NLATTR=y
diff --git a/arch/mips/configs/pb1200_defconfig b/arch/mips/configs/pb1200_defconfig
new file mode 100644
index 000000000000..e9ad77320f16
--- /dev/null
+++ b/arch/mips/configs/pb1200_defconfig
@@ -0,0 +1,1568 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.33
4# Fri Feb 26 10:23:34 2010
5#
6CONFIG_MIPS=y
7
8#
9# Machine selection
10#
11CONFIG_MACH_ALCHEMY=y
12# CONFIG_AR7 is not set
13# CONFIG_BCM47XX is not set
14# CONFIG_BCM63XX is not set
15# CONFIG_MIPS_COBALT is not set
16# CONFIG_MACH_DECSTATION is not set
17# CONFIG_MACH_JAZZ is not set
18# CONFIG_LASAT is not set
19# CONFIG_MACH_LOONGSON is not set
20# CONFIG_MIPS_MALTA is not set
21# CONFIG_MIPS_SIM is not set
22# CONFIG_NEC_MARKEINS is not set
23# CONFIG_MACH_VR41XX is not set
24# CONFIG_NXP_STB220 is not set
25# CONFIG_NXP_STB225 is not set
26# CONFIG_PNX8550_JBS is not set
27# CONFIG_PNX8550_STB810 is not set
28# CONFIG_PMC_MSP is not set
29# CONFIG_PMC_YOSEMITE is not set
30# CONFIG_POWERTV is not set
31# CONFIG_SGI_IP22 is not set
32# CONFIG_SGI_IP27 is not set
33# CONFIG_SGI_IP28 is not set
34# CONFIG_SGI_IP32 is not set
35# CONFIG_SIBYTE_CRHINE is not set
36# CONFIG_SIBYTE_CARMEL is not set
37# CONFIG_SIBYTE_CRHONE is not set
38# CONFIG_SIBYTE_RHONE is not set
39# CONFIG_SIBYTE_SWARM is not set
40# CONFIG_SIBYTE_LITTLESUR is not set
41# CONFIG_SIBYTE_SENTOSA is not set
42# CONFIG_SIBYTE_BIGSUR is not set
43# CONFIG_SNI_RM is not set
44# CONFIG_MACH_TX39XX is not set
45# CONFIG_MACH_TX49XX is not set
46# CONFIG_MIKROTIK_RB532 is not set
47# CONFIG_WR_PPMC is not set
48# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
49# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
50CONFIG_ALCHEMY_GPIOINT_AU1000=y
51# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
52# CONFIG_MIPS_MTX1 is not set
53# CONFIG_MIPS_BOSPORUS is not set
54# CONFIG_MIPS_DB1000 is not set
55# CONFIG_MIPS_DB1100 is not set
56# CONFIG_MIPS_DB1200 is not set
57# CONFIG_MIPS_DB1500 is not set
58# CONFIG_MIPS_DB1550 is not set
59# CONFIG_MIPS_MIRAGE is not set
60# CONFIG_MIPS_PB1000 is not set
61# CONFIG_MIPS_PB1100 is not set
62CONFIG_MIPS_PB1200=y
63# CONFIG_MIPS_PB1500 is not set
64# CONFIG_MIPS_PB1550 is not set
65# CONFIG_MIPS_XXS1500 is not set
66CONFIG_SOC_AU1200=y
67CONFIG_SOC_AU1X00=y
68CONFIG_LOONGSON_UART_BASE=y
69CONFIG_RWSEM_GENERIC_SPINLOCK=y
70# CONFIG_ARCH_HAS_ILOG2_U32 is not set
71# CONFIG_ARCH_HAS_ILOG2_U64 is not set
72CONFIG_ARCH_SUPPORTS_OPROFILE=y
73CONFIG_GENERIC_FIND_NEXT_BIT=y
74CONFIG_GENERIC_HWEIGHT=y
75CONFIG_GENERIC_CALIBRATE_DELAY=y
76CONFIG_GENERIC_CLOCKEVENTS=y
77CONFIG_GENERIC_TIME=y
78CONFIG_GENERIC_CMOS_UPDATE=y
79CONFIG_SCHED_OMIT_FRAME_POINTER=y
80CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
81CONFIG_CEVT_R4K_LIB=y
82CONFIG_CSRC_R4K_LIB=y
83CONFIG_DMA_NONCOHERENT=y
84CONFIG_DMA_NEED_PCI_MAP_STATE=y
85CONFIG_SYS_HAS_EARLY_PRINTK=y
86CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y
87# CONFIG_NO_IOPORT is not set
88CONFIG_GENERIC_GPIO=y
89# CONFIG_CPU_BIG_ENDIAN is not set
90CONFIG_CPU_LITTLE_ENDIAN=y
91CONFIG_SYS_SUPPORTS_APM_EMULATION=y
92CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
93CONFIG_IRQ_CPU=y
94CONFIG_MIPS_L1_CACHE_SHIFT=5
95
96#
97# CPU selection
98#
99# CONFIG_CPU_LOONGSON2E is not set
100# CONFIG_CPU_LOONGSON2F is not set
101CONFIG_CPU_MIPS32_R1=y
102# CONFIG_CPU_MIPS32_R2 is not set
103# CONFIG_CPU_MIPS64_R1 is not set
104# CONFIG_CPU_MIPS64_R2 is not set
105# CONFIG_CPU_R3000 is not set
106# CONFIG_CPU_TX39XX is not set
107# CONFIG_CPU_VR41XX is not set
108# CONFIG_CPU_R4300 is not set
109# CONFIG_CPU_R4X00 is not set
110# CONFIG_CPU_TX49XX is not set
111# CONFIG_CPU_R5000 is not set
112# CONFIG_CPU_R5432 is not set
113# CONFIG_CPU_R5500 is not set
114# CONFIG_CPU_R6000 is not set
115# CONFIG_CPU_NEVADA is not set
116# CONFIG_CPU_R8000 is not set
117# CONFIG_CPU_R10000 is not set
118# CONFIG_CPU_RM7000 is not set
119# CONFIG_CPU_RM9000 is not set
120# CONFIG_CPU_SB1 is not set
121# CONFIG_CPU_CAVIUM_OCTEON is not set
122CONFIG_SYS_SUPPORTS_ZBOOT=y
123CONFIG_SYS_HAS_CPU_MIPS32_R1=y
124CONFIG_CPU_MIPS32=y
125CONFIG_CPU_MIPSR1=y
126CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
127CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
128CONFIG_HARDWARE_WATCHPOINTS=y
129
130#
131# Kernel type
132#
133CONFIG_32BIT=y
134# CONFIG_64BIT is not set
135CONFIG_PAGE_SIZE_4KB=y
136# CONFIG_PAGE_SIZE_8KB is not set
137# CONFIG_PAGE_SIZE_16KB is not set
138# CONFIG_PAGE_SIZE_32KB is not set
139# CONFIG_PAGE_SIZE_64KB is not set
140CONFIG_CPU_HAS_PREFETCH=y
141CONFIG_MIPS_MT_DISABLED=y
142# CONFIG_MIPS_MT_SMP is not set
143# CONFIG_MIPS_MT_SMTC is not set
144CONFIG_64BIT_PHYS_ADDR=y
145CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
146CONFIG_CPU_HAS_SYNC=y
147CONFIG_GENERIC_HARDIRQS=y
148CONFIG_GENERIC_IRQ_PROBE=y
149CONFIG_CPU_SUPPORTS_HIGHMEM=y
150CONFIG_ARCH_FLATMEM_ENABLE=y
151CONFIG_ARCH_POPULATES_NODE_MAP=y
152CONFIG_SELECT_MEMORY_MODEL=y
153CONFIG_FLATMEM_MANUAL=y
154# CONFIG_DISCONTIGMEM_MANUAL is not set
155# CONFIG_SPARSEMEM_MANUAL is not set
156CONFIG_FLATMEM=y
157CONFIG_FLAT_NODE_MEM_MAP=y
158CONFIG_PAGEFLAGS_EXTENDED=y
159CONFIG_SPLIT_PTLOCK_CPUS=4
160CONFIG_PHYS_ADDR_T_64BIT=y
161CONFIG_ZONE_DMA_FLAG=0
162CONFIG_VIRT_TO_BUS=y
163CONFIG_KSM=y
164CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
165CONFIG_TICK_ONESHOT=y
166CONFIG_NO_HZ=y
167CONFIG_HIGH_RES_TIMERS=y
168CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
169# CONFIG_HZ_48 is not set
170CONFIG_HZ_100=y
171# CONFIG_HZ_128 is not set
172# CONFIG_HZ_250 is not set
173# CONFIG_HZ_256 is not set
174# CONFIG_HZ_1000 is not set
175# CONFIG_HZ_1024 is not set
176CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
177CONFIG_HZ=100
178CONFIG_PREEMPT_NONE=y
179# CONFIG_PREEMPT_VOLUNTARY is not set
180# CONFIG_PREEMPT is not set
181# CONFIG_KEXEC is not set
182# CONFIG_SECCOMP is not set
183CONFIG_LOCKDEP_SUPPORT=y
184CONFIG_STACKTRACE_SUPPORT=y
185CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
186CONFIG_CONSTRUCTORS=y
187
188#
189# General setup
190#
191CONFIG_EXPERIMENTAL=y
192CONFIG_BROKEN_ON_SMP=y
193CONFIG_INIT_ENV_ARG_LIMIT=32
194CONFIG_LOCALVERSION="-pb1200"
195CONFIG_LOCALVERSION_AUTO=y
196CONFIG_HAVE_KERNEL_GZIP=y
197CONFIG_HAVE_KERNEL_BZIP2=y
198CONFIG_HAVE_KERNEL_LZMA=y
199CONFIG_HAVE_KERNEL_LZO=y
200# CONFIG_KERNEL_GZIP is not set
201# CONFIG_KERNEL_BZIP2 is not set
202CONFIG_KERNEL_LZMA=y
203# CONFIG_KERNEL_LZO is not set
204CONFIG_SWAP=y
205CONFIG_SYSVIPC=y
206CONFIG_SYSVIPC_SYSCTL=y
207CONFIG_POSIX_MQUEUE=y
208CONFIG_POSIX_MQUEUE_SYSCTL=y
209# CONFIG_BSD_PROCESS_ACCT is not set
210# CONFIG_TASKSTATS is not set
211# CONFIG_AUDIT is not set
212
213#
214# RCU Subsystem
215#
216# CONFIG_TREE_RCU is not set
217# CONFIG_TREE_PREEMPT_RCU is not set
218CONFIG_TINY_RCU=y
219# CONFIG_TREE_RCU_TRACE is not set
220# CONFIG_IKCONFIG is not set
221CONFIG_LOG_BUF_SHIFT=14
222# CONFIG_GROUP_SCHED is not set
223# CONFIG_CGROUPS is not set
224# CONFIG_SYSFS_DEPRECATED_V2 is not set
225# CONFIG_RELAY is not set
226# CONFIG_NAMESPACES is not set
227# CONFIG_BLK_DEV_INITRD is not set
228CONFIG_CC_OPTIMIZE_FOR_SIZE=y
229CONFIG_SYSCTL=y
230CONFIG_ANON_INODES=y
231CONFIG_EMBEDDED=y
232# CONFIG_SYSCTL_SYSCALL is not set
233# CONFIG_KALLSYMS is not set
234CONFIG_HOTPLUG=y
235CONFIG_PRINTK=y
236CONFIG_BUG=y
237CONFIG_ELF_CORE=y
238# CONFIG_PCSPKR_PLATFORM is not set
239CONFIG_BASE_FULL=y
240CONFIG_FUTEX=y
241CONFIG_EPOLL=y
242CONFIG_SIGNALFD=y
243CONFIG_TIMERFD=y
244CONFIG_EVENTFD=y
245CONFIG_SHMEM=y
246CONFIG_AIO=y
247
248#
249# Kernel Performance Events And Counters
250#
251# CONFIG_VM_EVENT_COUNTERS is not set
252# CONFIG_COMPAT_BRK is not set
253CONFIG_SLAB=y
254# CONFIG_SLUB is not set
255# CONFIG_SLOB is not set
256# CONFIG_PROFILING is not set
257CONFIG_HAVE_OPROFILE=y
258
259#
260# GCOV-based kernel profiling
261#
262# CONFIG_SLOW_WORK is not set
263CONFIG_HAVE_GENERIC_DMA_COHERENT=y
264CONFIG_SLABINFO=y
265CONFIG_RT_MUTEXES=y
266CONFIG_BASE_SMALL=0
267CONFIG_MODULES=y
268# CONFIG_MODULE_FORCE_LOAD is not set
269CONFIG_MODULE_UNLOAD=y
270# CONFIG_MODULE_FORCE_UNLOAD is not set
271# CONFIG_MODVERSIONS is not set
272# CONFIG_MODULE_SRCVERSION_ALL is not set
273CONFIG_BLOCK=y
274# CONFIG_LBDAF is not set
275# CONFIG_BLK_DEV_BSG is not set
276# CONFIG_BLK_DEV_INTEGRITY is not set
277
278#
279# IO Schedulers
280#
281CONFIG_IOSCHED_NOOP=y
282# CONFIG_IOSCHED_DEADLINE is not set
283# CONFIG_IOSCHED_CFQ is not set
284# CONFIG_DEFAULT_DEADLINE is not set
285# CONFIG_DEFAULT_CFQ is not set
286CONFIG_DEFAULT_NOOP=y
287CONFIG_DEFAULT_IOSCHED="noop"
288# CONFIG_INLINE_SPIN_TRYLOCK is not set
289# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
290# CONFIG_INLINE_SPIN_LOCK is not set
291# CONFIG_INLINE_SPIN_LOCK_BH is not set
292# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
293# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
294CONFIG_INLINE_SPIN_UNLOCK=y
295# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
296CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
297# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
298# CONFIG_INLINE_READ_TRYLOCK is not set
299# CONFIG_INLINE_READ_LOCK is not set
300# CONFIG_INLINE_READ_LOCK_BH is not set
301# CONFIG_INLINE_READ_LOCK_IRQ is not set
302# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
303CONFIG_INLINE_READ_UNLOCK=y
304# CONFIG_INLINE_READ_UNLOCK_BH is not set
305CONFIG_INLINE_READ_UNLOCK_IRQ=y
306# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
307# CONFIG_INLINE_WRITE_TRYLOCK is not set
308# CONFIG_INLINE_WRITE_LOCK is not set
309# CONFIG_INLINE_WRITE_LOCK_BH is not set
310# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
311# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
312CONFIG_INLINE_WRITE_UNLOCK=y
313# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
314CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
315# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
316# CONFIG_MUTEX_SPIN_ON_OWNER is not set
317# CONFIG_FREEZER is not set
318
319#
320# Bus options (PCI, PCMCIA, EISA, ISA, TC)
321#
322# CONFIG_ARCH_SUPPORTS_MSI is not set
323CONFIG_MMU=y
324CONFIG_PCCARD=y
325CONFIG_PCMCIA=y
326CONFIG_PCMCIA_LOAD_CIS=y
327# CONFIG_PCMCIA_IOCTL is not set
328
329#
330# PC-card bridges
331#
332# CONFIG_PCMCIA_AU1X00 is not set
333CONFIG_PCMCIA_ALCHEMY_DEVBOARD=y
334
335#
336# Executable file formats
337#
338CONFIG_BINFMT_ELF=y
339CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
340# CONFIG_HAVE_AOUT is not set
341CONFIG_BINFMT_MISC=y
342CONFIG_TRAD_SIGNALS=y
343
344#
345# Power management options
346#
347CONFIG_ARCH_HIBERNATION_POSSIBLE=y
348CONFIG_ARCH_SUSPEND_POSSIBLE=y
349# CONFIG_PM is not set
350CONFIG_NET=y
351
352#
353# Networking options
354#
355CONFIG_PACKET=y
356CONFIG_PACKET_MMAP=y
357CONFIG_UNIX=y
358# CONFIG_NET_KEY is not set
359CONFIG_INET=y
360CONFIG_IP_MULTICAST=y
361# CONFIG_IP_ADVANCED_ROUTER is not set
362CONFIG_IP_FIB_HASH=y
363CONFIG_IP_PNP=y
364# CONFIG_IP_PNP_DHCP is not set
365# CONFIG_IP_PNP_BOOTP is not set
366# CONFIG_IP_PNP_RARP is not set
367# CONFIG_NET_IPIP is not set
368# CONFIG_NET_IPGRE is not set
369# CONFIG_IP_MROUTE is not set
370# CONFIG_ARPD is not set
371# CONFIG_SYN_COOKIES is not set
372# CONFIG_INET_AH is not set
373# CONFIG_INET_ESP is not set
374# CONFIG_INET_IPCOMP is not set
375# CONFIG_INET_XFRM_TUNNEL is not set
376# CONFIG_INET_TUNNEL is not set
377# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
378# CONFIG_INET_XFRM_MODE_TUNNEL is not set
379# CONFIG_INET_XFRM_MODE_BEET is not set
380CONFIG_INET_LRO=y
381# CONFIG_INET_DIAG is not set
382# CONFIG_TCP_CONG_ADVANCED is not set
383CONFIG_TCP_CONG_CUBIC=y
384CONFIG_DEFAULT_TCP_CONG="cubic"
385# CONFIG_TCP_MD5SIG is not set
386# CONFIG_IPV6 is not set
387# CONFIG_NETWORK_SECMARK is not set
388# CONFIG_NETFILTER is not set
389# CONFIG_IP_DCCP is not set
390# CONFIG_IP_SCTP is not set
391# CONFIG_RDS is not set
392# CONFIG_TIPC is not set
393# CONFIG_ATM is not set
394# CONFIG_BRIDGE is not set
395# CONFIG_NET_DSA is not set
396# CONFIG_VLAN_8021Q is not set
397# CONFIG_DECNET is not set
398# CONFIG_LLC2 is not set
399# CONFIG_IPX is not set
400# CONFIG_ATALK is not set
401# CONFIG_X25 is not set
402# CONFIG_LAPB is not set
403# CONFIG_ECONET is not set
404# CONFIG_WAN_ROUTER is not set
405# CONFIG_PHONET is not set
406# CONFIG_IEEE802154 is not set
407# CONFIG_NET_SCHED is not set
408# CONFIG_DCB is not set
409
410#
411# Network testing
412#
413# CONFIG_NET_PKTGEN is not set
414# CONFIG_HAMRADIO is not set
415# CONFIG_CAN is not set
416# CONFIG_IRDA is not set
417# CONFIG_BT is not set
418# CONFIG_AF_RXRPC is not set
419# CONFIG_WIRELESS is not set
420# CONFIG_WIMAX is not set
421# CONFIG_RFKILL is not set
422# CONFIG_NET_9P is not set
423
424#
425# Device Drivers
426#
427
428#
429# Generic Driver Options
430#
431CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
432# CONFIG_DEVTMPFS is not set
433CONFIG_STANDALONE=y
434CONFIG_PREVENT_FIRMWARE_BUILD=y
435CONFIG_FW_LOADER=y
436CONFIG_FIRMWARE_IN_KERNEL=y
437CONFIG_EXTRA_FIRMWARE=""
438# CONFIG_DEBUG_DRIVER is not set
439# CONFIG_DEBUG_DEVRES is not set
440# CONFIG_SYS_HYPERVISOR is not set
441# CONFIG_CONNECTOR is not set
442CONFIG_MTD=y
443# CONFIG_MTD_DEBUG is not set
444# CONFIG_MTD_TESTS is not set
445# CONFIG_MTD_CONCAT is not set
446CONFIG_MTD_PARTITIONS=y
447# CONFIG_MTD_REDBOOT_PARTS is not set
448CONFIG_MTD_CMDLINE_PARTS=y
449# CONFIG_MTD_AR7_PARTS is not set
450
451#
452# User Modules And Translation Layers
453#
454CONFIG_MTD_CHAR=y
455CONFIG_MTD_BLKDEVS=y
456CONFIG_MTD_BLOCK=y
457# CONFIG_FTL is not set
458# CONFIG_NFTL is not set
459# CONFIG_INFTL is not set
460# CONFIG_RFD_FTL is not set
461# CONFIG_SSFDC is not set
462# CONFIG_MTD_OOPS is not set
463
464#
465# RAM/ROM/Flash chip drivers
466#
467CONFIG_MTD_CFI=y
468# CONFIG_MTD_JEDECPROBE is not set
469CONFIG_MTD_GEN_PROBE=y
470# CONFIG_MTD_CFI_ADV_OPTIONS is not set
471CONFIG_MTD_MAP_BANK_WIDTH_1=y
472CONFIG_MTD_MAP_BANK_WIDTH_2=y
473CONFIG_MTD_MAP_BANK_WIDTH_4=y
474# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
475# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
476# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
477CONFIG_MTD_CFI_I1=y
478CONFIG_MTD_CFI_I2=y
479# CONFIG_MTD_CFI_I4 is not set
480# CONFIG_MTD_CFI_I8 is not set
481# CONFIG_MTD_CFI_INTELEXT is not set
482CONFIG_MTD_CFI_AMDSTD=y
483# CONFIG_MTD_CFI_STAA is not set
484CONFIG_MTD_CFI_UTIL=y
485# CONFIG_MTD_RAM is not set
486# CONFIG_MTD_ROM is not set
487# CONFIG_MTD_ABSENT is not set
488
489#
490# Mapping drivers for chip access
491#
492# CONFIG_MTD_COMPLEX_MAPPINGS is not set
493CONFIG_MTD_PHYSMAP=y
494# CONFIG_MTD_PHYSMAP_COMPAT is not set
495# CONFIG_MTD_PLATRAM is not set
496
497#
498# Self-contained MTD device drivers
499#
500# CONFIG_MTD_DATAFLASH is not set
501# CONFIG_MTD_M25P80 is not set
502# CONFIG_MTD_SST25L is not set
503# CONFIG_MTD_SLRAM is not set
504# CONFIG_MTD_PHRAM is not set
505# CONFIG_MTD_MTDRAM is not set
506# CONFIG_MTD_BLOCK2MTD is not set
507
508#
509# Disk-On-Chip Device Drivers
510#
511# CONFIG_MTD_DOC2000 is not set
512# CONFIG_MTD_DOC2001 is not set
513# CONFIG_MTD_DOC2001PLUS is not set
514CONFIG_MTD_NAND=y
515# CONFIG_MTD_NAND_VERIFY_WRITE is not set
516# CONFIG_MTD_NAND_ECC_SMC is not set
517# CONFIG_MTD_NAND_MUSEUM_IDS is not set
518CONFIG_MTD_NAND_IDS=y
519# CONFIG_MTD_NAND_AU1550 is not set
520# CONFIG_MTD_NAND_DISKONCHIP is not set
521# CONFIG_MTD_NAND_NANDSIM is not set
522CONFIG_MTD_NAND_PLATFORM=y
523# CONFIG_MTD_ALAUDA is not set
524# CONFIG_MTD_ONENAND is not set
525
526#
527# LPDDR flash memory drivers
528#
529# CONFIG_MTD_LPDDR is not set
530
531#
532# UBI - Unsorted block images
533#
534# CONFIG_MTD_UBI is not set
535# CONFIG_PARPORT is not set
536CONFIG_BLK_DEV=y
537# CONFIG_BLK_DEV_COW_COMMON is not set
538CONFIG_BLK_DEV_LOOP=y
539# CONFIG_BLK_DEV_CRYPTOLOOP is not set
540
541#
542# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
543#
544# CONFIG_BLK_DEV_NBD is not set
545CONFIG_BLK_DEV_UB=y
546# CONFIG_BLK_DEV_RAM is not set
547# CONFIG_CDROM_PKTCDVD is not set
548# CONFIG_ATA_OVER_ETH is not set
549# CONFIG_BLK_DEV_HD is not set
550# CONFIG_MISC_DEVICES is not set
551CONFIG_HAVE_IDE=y
552CONFIG_IDE=y
553
554#
555# Please see Documentation/ide/ide.txt for help/info on IDE drives
556#
557CONFIG_IDE_XFER_MODE=y
558CONFIG_IDE_ATAPI=y
559# CONFIG_BLK_DEV_IDE_SATA is not set
560CONFIG_IDE_GD=y
561CONFIG_IDE_GD_ATA=y
562# CONFIG_IDE_GD_ATAPI is not set
563CONFIG_BLK_DEV_IDECS=y
564CONFIG_BLK_DEV_IDECD=y
565CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
566# CONFIG_BLK_DEV_IDETAPE is not set
567CONFIG_IDE_TASK_IOCTL=y
568# CONFIG_IDE_PROC_FS is not set
569
570#
571# IDE chipset support/bugfixes
572#
573# CONFIG_IDE_GENERIC is not set
574# CONFIG_BLK_DEV_PLATFORM is not set
575CONFIG_BLK_DEV_IDE_AU1XXX=y
576CONFIG_BLK_DEV_IDE_AU1XXX_PIO_DBDMA=y
577# CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA is not set
578# CONFIG_BLK_DEV_IDEDMA is not set
579
580#
581# SCSI device support
582#
583# CONFIG_RAID_ATTRS is not set
584# CONFIG_SCSI is not set
585# CONFIG_SCSI_DMA is not set
586# CONFIG_SCSI_NETLINK is not set
587# CONFIG_ATA is not set
588# CONFIG_MD is not set
589CONFIG_NETDEVICES=y
590# CONFIG_DUMMY is not set
591# CONFIG_BONDING is not set
592# CONFIG_MACVLAN is not set
593# CONFIG_EQUALIZER is not set
594# CONFIG_TUN is not set
595# CONFIG_VETH is not set
596# CONFIG_PHYLIB is not set
597CONFIG_NET_ETHERNET=y
598CONFIG_MII=y
599# CONFIG_AX88796 is not set
600# CONFIG_MIPS_AU1X00_ENET is not set
601CONFIG_SMC91X=y
602# CONFIG_DM9000 is not set
603# CONFIG_ENC28J60 is not set
604# CONFIG_ETHOC is not set
605# CONFIG_SMSC911X is not set
606# CONFIG_DNET is not set
607# CONFIG_IBM_NEW_EMAC_ZMII is not set
608# CONFIG_IBM_NEW_EMAC_RGMII is not set
609# CONFIG_IBM_NEW_EMAC_TAH is not set
610# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
611# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
612# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
613# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
614# CONFIG_B44 is not set
615# CONFIG_KS8842 is not set
616# CONFIG_KS8851 is not set
617# CONFIG_KS8851_MLL is not set
618# CONFIG_NETDEV_1000 is not set
619# CONFIG_NETDEV_10000 is not set
620# CONFIG_WLAN is not set
621
622#
623# Enable WiMAX (Networking options) to see the WiMAX drivers
624#
625
626#
627# USB Network Adapters
628#
629# CONFIG_USB_CATC is not set
630# CONFIG_USB_KAWETH is not set
631# CONFIG_USB_PEGASUS is not set
632# CONFIG_USB_RTL8150 is not set
633# CONFIG_USB_USBNET is not set
634# CONFIG_NET_PCMCIA is not set
635# CONFIG_WAN is not set
636# CONFIG_PPP is not set
637# CONFIG_SLIP is not set
638# CONFIG_NETCONSOLE is not set
639# CONFIG_NETPOLL is not set
640# CONFIG_NET_POLL_CONTROLLER is not set
641# CONFIG_ISDN is not set
642# CONFIG_PHONE is not set
643
644#
645# Input device support
646#
647CONFIG_INPUT=y
648# CONFIG_INPUT_FF_MEMLESS is not set
649# CONFIG_INPUT_POLLDEV is not set
650# CONFIG_INPUT_SPARSEKMAP is not set
651
652#
653# Userland interfaces
654#
655# CONFIG_INPUT_MOUSEDEV is not set
656# CONFIG_INPUT_JOYDEV is not set
657CONFIG_INPUT_EVDEV=y
658# CONFIG_INPUT_EVBUG is not set
659
660#
661# Input Device Drivers
662#
663# CONFIG_INPUT_KEYBOARD is not set
664# CONFIG_INPUT_MOUSE is not set
665# CONFIG_INPUT_JOYSTICK is not set
666# CONFIG_INPUT_TABLET is not set
667# CONFIG_INPUT_TOUCHSCREEN is not set
668# CONFIG_INPUT_MISC is not set
669
670#
671# Hardware I/O ports
672#
673# CONFIG_SERIO is not set
674# CONFIG_GAMEPORT is not set
675
676#
677# Character devices
678#
679CONFIG_VT=y
680CONFIG_CONSOLE_TRANSLATIONS=y
681CONFIG_VT_CONSOLE=y
682CONFIG_HW_CONSOLE=y
683CONFIG_VT_HW_CONSOLE_BINDING=y
684CONFIG_DEVKMEM=y
685# CONFIG_SERIAL_NONSTANDARD is not set
686
687#
688# Serial drivers
689#
690CONFIG_SERIAL_8250=y
691CONFIG_SERIAL_8250_CONSOLE=y
692# CONFIG_SERIAL_8250_CS is not set
693CONFIG_SERIAL_8250_NR_UARTS=2
694CONFIG_SERIAL_8250_RUNTIME_UARTS=2
695# CONFIG_SERIAL_8250_EXTENDED is not set
696CONFIG_SERIAL_8250_AU1X00=y
697
698#
699# Non-8250 serial port support
700#
701# CONFIG_SERIAL_MAX3100 is not set
702CONFIG_SERIAL_CORE=y
703CONFIG_SERIAL_CORE_CONSOLE=y
704CONFIG_UNIX98_PTYS=y
705# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
706# CONFIG_LEGACY_PTYS is not set
707# CONFIG_IPMI_HANDLER is not set
708# CONFIG_HW_RANDOM is not set
709# CONFIG_R3964 is not set
710
711#
712# PCMCIA character devices
713#
714# CONFIG_SYNCLINK_CS is not set
715# CONFIG_CARDMAN_4000 is not set
716# CONFIG_CARDMAN_4040 is not set
717# CONFIG_IPWIRELESS is not set
718# CONFIG_RAW_DRIVER is not set
719# CONFIG_TCG_TPM is not set
720CONFIG_I2C=y
721CONFIG_I2C_BOARDINFO=y
722# CONFIG_I2C_COMPAT is not set
723CONFIG_I2C_CHARDEV=y
724# CONFIG_I2C_HELPER_AUTO is not set
725
726#
727# I2C Algorithms
728#
729# CONFIG_I2C_ALGOBIT is not set
730# CONFIG_I2C_ALGOPCF is not set
731# CONFIG_I2C_ALGOPCA is not set
732
733#
734# I2C Hardware Bus support
735#
736
737#
738# I2C system bus drivers (mostly embedded / system-on-chip)
739#
740CONFIG_I2C_AU1550=y
741# CONFIG_I2C_GPIO is not set
742# CONFIG_I2C_OCORES is not set
743# CONFIG_I2C_SIMTEC is not set
744
745#
746# External I2C/SMBus adapter drivers
747#
748# CONFIG_I2C_PARPORT_LIGHT is not set
749# CONFIG_I2C_TAOS_EVM is not set
750# CONFIG_I2C_TINY_USB is not set
751
752#
753# Other I2C/SMBus bus drivers
754#
755# CONFIG_I2C_PCA_PLATFORM is not set
756# CONFIG_I2C_STUB is not set
757
758#
759# Miscellaneous I2C Chip support
760#
761# CONFIG_SENSORS_TSL2550 is not set
762# CONFIG_I2C_DEBUG_CORE is not set
763# CONFIG_I2C_DEBUG_ALGO is not set
764# CONFIG_I2C_DEBUG_BUS is not set
765# CONFIG_I2C_DEBUG_CHIP is not set
766CONFIG_SPI=y
767# CONFIG_SPI_DEBUG is not set
768CONFIG_SPI_MASTER=y
769
770#
771# SPI Master Controller Drivers
772#
773CONFIG_SPI_AU1550=y
774CONFIG_SPI_BITBANG=y
775# CONFIG_SPI_GPIO is not set
776# CONFIG_SPI_XILINX is not set
777# CONFIG_SPI_DESIGNWARE is not set
778
779#
780# SPI Protocol Masters
781#
782# CONFIG_SPI_SPIDEV is not set
783# CONFIG_SPI_TLE62X0 is not set
784
785#
786# PPS support
787#
788# CONFIG_PPS is not set
789CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
790CONFIG_GPIOLIB=y
791# CONFIG_DEBUG_GPIO is not set
792CONFIG_GPIO_SYSFS=y
793
794#
795# Memory mapped GPIO expanders:
796#
797
798#
799# I2C GPIO expanders:
800#
801# CONFIG_GPIO_MAX732X is not set
802# CONFIG_GPIO_PCA953X is not set
803# CONFIG_GPIO_PCF857X is not set
804# CONFIG_GPIO_ADP5588 is not set
805
806#
807# PCI GPIO expanders:
808#
809
810#
811# SPI GPIO expanders:
812#
813# CONFIG_GPIO_MAX7301 is not set
814# CONFIG_GPIO_MCP23S08 is not set
815# CONFIG_GPIO_MC33880 is not set
816
817#
818# AC97 GPIO expanders:
819#
820# CONFIG_W1 is not set
821# CONFIG_POWER_SUPPLY is not set
822CONFIG_HWMON=y
823CONFIG_HWMON_VID=y
824# CONFIG_HWMON_DEBUG_CHIP is not set
825
826#
827# Native drivers
828#
829# CONFIG_SENSORS_AD7414 is not set
830# CONFIG_SENSORS_AD7418 is not set
831# CONFIG_SENSORS_ADCXX is not set
832# CONFIG_SENSORS_ADM1021 is not set
833CONFIG_SENSORS_ADM1025=y
834# CONFIG_SENSORS_ADM1026 is not set
835# CONFIG_SENSORS_ADM1029 is not set
836# CONFIG_SENSORS_ADM1031 is not set
837# CONFIG_SENSORS_ADM9240 is not set
838# CONFIG_SENSORS_ADT7462 is not set
839# CONFIG_SENSORS_ADT7470 is not set
840# CONFIG_SENSORS_ADT7473 is not set
841# CONFIG_SENSORS_ADT7475 is not set
842# CONFIG_SENSORS_ATXP1 is not set
843# CONFIG_SENSORS_DS1621 is not set
844# CONFIG_SENSORS_F71805F is not set
845# CONFIG_SENSORS_F71882FG is not set
846# CONFIG_SENSORS_F75375S is not set
847# CONFIG_SENSORS_G760A is not set
848# CONFIG_SENSORS_GL518SM is not set
849# CONFIG_SENSORS_GL520SM is not set
850# CONFIG_SENSORS_IT87 is not set
851# CONFIG_SENSORS_LM63 is not set
852CONFIG_SENSORS_LM70=y
853# CONFIG_SENSORS_LM73 is not set
854# CONFIG_SENSORS_LM75 is not set
855# CONFIG_SENSORS_LM77 is not set
856# CONFIG_SENSORS_LM78 is not set
857# CONFIG_SENSORS_LM80 is not set
858# CONFIG_SENSORS_LM83 is not set
859# CONFIG_SENSORS_LM85 is not set
860# CONFIG_SENSORS_LM87 is not set
861# CONFIG_SENSORS_LM90 is not set
862# CONFIG_SENSORS_LM92 is not set
863# CONFIG_SENSORS_LM93 is not set
864# CONFIG_SENSORS_LTC4215 is not set
865# CONFIG_SENSORS_LTC4245 is not set
866# CONFIG_SENSORS_LM95241 is not set
867# CONFIG_SENSORS_MAX1111 is not set
868# CONFIG_SENSORS_MAX1619 is not set
869# CONFIG_SENSORS_MAX6650 is not set
870# CONFIG_SENSORS_PC87360 is not set
871# CONFIG_SENSORS_PC87427 is not set
872# CONFIG_SENSORS_PCF8591 is not set
873# CONFIG_SENSORS_SHT15 is not set
874# CONFIG_SENSORS_DME1737 is not set
875# CONFIG_SENSORS_SMSC47M1 is not set
876# CONFIG_SENSORS_SMSC47M192 is not set
877# CONFIG_SENSORS_SMSC47B397 is not set
878# CONFIG_SENSORS_ADS7828 is not set
879# CONFIG_SENSORS_AMC6821 is not set
880# CONFIG_SENSORS_THMC50 is not set
881# CONFIG_SENSORS_TMP401 is not set
882# CONFIG_SENSORS_TMP421 is not set
883# CONFIG_SENSORS_VT1211 is not set
884# CONFIG_SENSORS_W83781D is not set
885# CONFIG_SENSORS_W83791D is not set
886# CONFIG_SENSORS_W83792D is not set
887# CONFIG_SENSORS_W83793 is not set
888# CONFIG_SENSORS_W83L785TS is not set
889# CONFIG_SENSORS_W83L786NG is not set
890# CONFIG_SENSORS_W83627HF is not set
891# CONFIG_SENSORS_W83627EHF is not set
892# CONFIG_SENSORS_LIS3_SPI is not set
893# CONFIG_SENSORS_LIS3_I2C is not set
894# CONFIG_THERMAL is not set
895# CONFIG_WATCHDOG is not set
896CONFIG_SSB_POSSIBLE=y
897
898#
899# Sonics Silicon Backplane
900#
901# CONFIG_SSB is not set
902
903#
904# Multifunction device drivers
905#
906# CONFIG_MFD_CORE is not set
907# CONFIG_MFD_SM501 is not set
908# CONFIG_HTC_PASIC3 is not set
909# CONFIG_UCB1400_CORE is not set
910# CONFIG_TPS65010 is not set
911# CONFIG_TWL4030_CORE is not set
912# CONFIG_MFD_TMIO is not set
913# CONFIG_PMIC_DA903X is not set
914# CONFIG_PMIC_ADP5520 is not set
915# CONFIG_MFD_WM8400 is not set
916# CONFIG_MFD_WM831X is not set
917# CONFIG_MFD_WM8350_I2C is not set
918# CONFIG_MFD_PCF50633 is not set
919# CONFIG_MFD_MC13783 is not set
920# CONFIG_AB3100_CORE is not set
921# CONFIG_EZX_PCAP is not set
922# CONFIG_MFD_88PM8607 is not set
923# CONFIG_AB4500_CORE is not set
924# CONFIG_REGULATOR is not set
925# CONFIG_MEDIA_SUPPORT is not set
926
927#
928# Graphics support
929#
930# CONFIG_VGASTATE is not set
931# CONFIG_VIDEO_OUTPUT_CONTROL is not set
932CONFIG_FB=y
933# CONFIG_FIRMWARE_EDID is not set
934# CONFIG_FB_DDC is not set
935# CONFIG_FB_BOOT_VESA_SUPPORT is not set
936CONFIG_FB_CFB_FILLRECT=y
937CONFIG_FB_CFB_COPYAREA=y
938CONFIG_FB_CFB_IMAGEBLIT=y
939# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
940# CONFIG_FB_SYS_FILLRECT is not set
941# CONFIG_FB_SYS_COPYAREA is not set
942# CONFIG_FB_SYS_IMAGEBLIT is not set
943# CONFIG_FB_FOREIGN_ENDIAN is not set
944# CONFIG_FB_SYS_FOPS is not set
945# CONFIG_FB_SVGALIB is not set
946# CONFIG_FB_MACMODES is not set
947# CONFIG_FB_BACKLIGHT is not set
948# CONFIG_FB_MODE_HELPERS is not set
949# CONFIG_FB_TILEBLITTING is not set
950
951#
952# Frame buffer hardware drivers
953#
954# CONFIG_FB_S1D13XXX is not set
955CONFIG_FB_AU1200=y
956# CONFIG_FB_VIRTUAL is not set
957# CONFIG_FB_METRONOME is not set
958# CONFIG_FB_MB862XX is not set
959# CONFIG_FB_BROADSHEET is not set
960# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
961
962#
963# Display device support
964#
965# CONFIG_DISPLAY_SUPPORT is not set
966
967#
968# Console display driver support
969#
970# CONFIG_VGA_CONSOLE is not set
971CONFIG_DUMMY_CONSOLE=y
972CONFIG_FRAMEBUFFER_CONSOLE=y
973# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
974# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
975CONFIG_FONTS=y
976# CONFIG_FONT_8x8 is not set
977CONFIG_FONT_8x16=y
978# CONFIG_FONT_6x11 is not set
979# CONFIG_FONT_7x14 is not set
980# CONFIG_FONT_PEARL_8x8 is not set
981# CONFIG_FONT_ACORN_8x8 is not set
982# CONFIG_FONT_MINI_4x6 is not set
983# CONFIG_FONT_SUN8x16 is not set
984# CONFIG_FONT_SUN12x22 is not set
985# CONFIG_FONT_10x18 is not set
986# CONFIG_LOGO is not set
987CONFIG_SOUND=y
988# CONFIG_SOUND_OSS_CORE is not set
989CONFIG_SND=y
990CONFIG_SND_TIMER=y
991CONFIG_SND_PCM=y
992CONFIG_SND_JACK=y
993# CONFIG_SND_SEQUENCER is not set
994# CONFIG_SND_MIXER_OSS is not set
995# CONFIG_SND_PCM_OSS is not set
996# CONFIG_SND_HRTIMER is not set
997CONFIG_SND_DYNAMIC_MINORS=y
998# CONFIG_SND_SUPPORT_OLD_API is not set
999# CONFIG_SND_VERBOSE_PROCFS is not set
1000# CONFIG_SND_VERBOSE_PRINTK is not set
1001# CONFIG_SND_DEBUG is not set
1002CONFIG_SND_VMASTER=y
1003# CONFIG_SND_RAWMIDI_SEQ is not set
1004# CONFIG_SND_OPL3_LIB_SEQ is not set
1005# CONFIG_SND_OPL4_LIB_SEQ is not set
1006# CONFIG_SND_SBAWE_SEQ is not set
1007# CONFIG_SND_EMU10K1_SEQ is not set
1008CONFIG_SND_AC97_CODEC=y
1009# CONFIG_SND_DRIVERS is not set
1010# CONFIG_SND_SPI is not set
1011# CONFIG_SND_MIPS is not set
1012# CONFIG_SND_USB is not set
1013# CONFIG_SND_PCMCIA is not set
1014CONFIG_SND_SOC=y
1015CONFIG_SND_SOC_AC97_BUS=y
1016CONFIG_SND_SOC_AU1XPSC=y
1017CONFIG_SND_SOC_AU1XPSC_I2S=y
1018CONFIG_SND_SOC_AU1XPSC_AC97=y
1019CONFIG_SND_SOC_DB1200=y
1020CONFIG_SND_SOC_I2C_AND_SPI=y
1021# CONFIG_SND_SOC_ALL_CODECS is not set
1022CONFIG_SND_SOC_AC97_CODEC=y
1023CONFIG_SND_SOC_WM8731=y
1024# CONFIG_SOUND_PRIME is not set
1025CONFIG_AC97_BUS=y
1026CONFIG_HID_SUPPORT=y
1027CONFIG_HID=y
1028CONFIG_HIDRAW=y
1029
1030#
1031# USB Input Devices
1032#
1033CONFIG_USB_HID=y
1034# CONFIG_HID_PID is not set
1035CONFIG_USB_HIDDEV=y
1036
1037#
1038# Special HID drivers
1039#
1040# CONFIG_HID_A4TECH is not set
1041# CONFIG_HID_APPLE is not set
1042# CONFIG_HID_BELKIN is not set
1043# CONFIG_HID_CHERRY is not set
1044# CONFIG_HID_CHICONY is not set
1045# CONFIG_HID_CYPRESS is not set
1046# CONFIG_HID_DRAGONRISE is not set
1047# CONFIG_HID_EZKEY is not set
1048# CONFIG_HID_KYE is not set
1049# CONFIG_HID_GYRATION is not set
1050# CONFIG_HID_TWINHAN is not set
1051# CONFIG_HID_KENSINGTON is not set
1052# CONFIG_HID_LOGITECH is not set
1053# CONFIG_HID_MICROSOFT is not set
1054# CONFIG_HID_MONTEREY is not set
1055# CONFIG_HID_NTRIG is not set
1056# CONFIG_HID_PANTHERLORD is not set
1057# CONFIG_HID_PETALYNX is not set
1058# CONFIG_HID_SAMSUNG is not set
1059# CONFIG_HID_SONY is not set
1060# CONFIG_HID_SUNPLUS is not set
1061# CONFIG_HID_GREENASIA is not set
1062# CONFIG_HID_SMARTJOYPLUS is not set
1063# CONFIG_HID_TOPSEED is not set
1064# CONFIG_HID_THRUSTMASTER is not set
1065# CONFIG_HID_ZEROPLUS is not set
1066CONFIG_USB_SUPPORT=y
1067CONFIG_USB_ARCH_HAS_HCD=y
1068CONFIG_USB_ARCH_HAS_OHCI=y
1069CONFIG_USB_ARCH_HAS_EHCI=y
1070CONFIG_USB=y
1071CONFIG_USB_DEBUG=y
1072CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
1073
1074#
1075# Miscellaneous USB options
1076#
1077# CONFIG_USB_DEVICEFS is not set
1078# CONFIG_USB_DEVICE_CLASS is not set
1079CONFIG_USB_DYNAMIC_MINORS=y
1080# CONFIG_USB_OTG is not set
1081# CONFIG_USB_OTG_WHITELIST is not set
1082# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1083# CONFIG_USB_MON is not set
1084# CONFIG_USB_WUSB is not set
1085# CONFIG_USB_WUSB_CBAF is not set
1086
1087#
1088# USB Host Controller Drivers
1089#
1090# CONFIG_USB_C67X00_HCD is not set
1091CONFIG_USB_EHCI_HCD=y
1092CONFIG_USB_EHCI_ROOT_HUB_TT=y
1093CONFIG_USB_EHCI_TT_NEWSCHED=y
1094# CONFIG_USB_OXU210HP_HCD is not set
1095# CONFIG_USB_ISP116X_HCD is not set
1096# CONFIG_USB_ISP1760_HCD is not set
1097# CONFIG_USB_ISP1362_HCD is not set
1098CONFIG_USB_OHCI_HCD=y
1099# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1100# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1101CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1102# CONFIG_USB_SL811_HCD is not set
1103# CONFIG_USB_R8A66597_HCD is not set
1104# CONFIG_USB_HWA_HCD is not set
1105
1106#
1107# USB Device Class drivers
1108#
1109# CONFIG_USB_ACM is not set
1110# CONFIG_USB_PRINTER is not set
1111# CONFIG_USB_WDM is not set
1112# CONFIG_USB_TMC is not set
1113
1114#
1115# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1116#
1117
1118#
1119# also be needed; see USB_STORAGE Help for more info
1120#
1121# CONFIG_USB_LIBUSUAL is not set
1122
1123#
1124# USB Imaging devices
1125#
1126# CONFIG_USB_MDC800 is not set
1127
1128#
1129# USB port drivers
1130#
1131# CONFIG_USB_SERIAL is not set
1132
1133#
1134# USB Miscellaneous drivers
1135#
1136# CONFIG_USB_EMI62 is not set
1137# CONFIG_USB_EMI26 is not set
1138# CONFIG_USB_ADUTUX is not set
1139# CONFIG_USB_SEVSEG is not set
1140# CONFIG_USB_RIO500 is not set
1141# CONFIG_USB_LEGOTOWER is not set
1142# CONFIG_USB_LCD is not set
1143# CONFIG_USB_BERRY_CHARGE is not set
1144# CONFIG_USB_LED is not set
1145# CONFIG_USB_CYPRESS_CY7C63 is not set
1146# CONFIG_USB_CYTHERM is not set
1147# CONFIG_USB_IDMOUSE is not set
1148# CONFIG_USB_FTDI_ELAN is not set
1149# CONFIG_USB_APPLEDISPLAY is not set
1150# CONFIG_USB_SISUSBVGA is not set
1151# CONFIG_USB_LD is not set
1152# CONFIG_USB_TRANCEVIBRATOR is not set
1153# CONFIG_USB_IOWARRIOR is not set
1154# CONFIG_USB_TEST is not set
1155# CONFIG_USB_ISIGHTFW is not set
1156# CONFIG_USB_VST is not set
1157# CONFIG_USB_GADGET is not set
1158
1159#
1160# OTG and related infrastructure
1161#
1162# CONFIG_USB_GPIO_VBUS is not set
1163# CONFIG_NOP_USB_XCEIV is not set
1164CONFIG_MMC=y
1165# CONFIG_MMC_DEBUG is not set
1166# CONFIG_MMC_UNSAFE_RESUME is not set
1167
1168#
1169# MMC/SD/SDIO Card Drivers
1170#
1171CONFIG_MMC_BLOCK=y
1172# CONFIG_MMC_BLOCK_BOUNCE is not set
1173# CONFIG_SDIO_UART is not set
1174# CONFIG_MMC_TEST is not set
1175
1176#
1177# MMC/SD/SDIO Host Controller Drivers
1178#
1179# CONFIG_MMC_SDHCI is not set
1180CONFIG_MMC_AU1X=y
1181# CONFIG_MMC_AT91 is not set
1182# CONFIG_MMC_ATMELMCI is not set
1183# CONFIG_MMC_SPI is not set
1184# CONFIG_MEMSTICK is not set
1185CONFIG_NEW_LEDS=y
1186CONFIG_LEDS_CLASS=y
1187
1188#
1189# LED drivers
1190#
1191# CONFIG_LEDS_PCA9532 is not set
1192# CONFIG_LEDS_GPIO is not set
1193# CONFIG_LEDS_LP3944 is not set
1194# CONFIG_LEDS_PCA955X is not set
1195# CONFIG_LEDS_DAC124S085 is not set
1196# CONFIG_LEDS_BD2802 is not set
1197# CONFIG_LEDS_LT3593 is not set
1198
1199#
1200# LED Triggers
1201#
1202CONFIG_LEDS_TRIGGERS=y
1203# CONFIG_LEDS_TRIGGER_TIMER is not set
1204# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
1205# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
1206# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
1207# CONFIG_LEDS_TRIGGER_GPIO is not set
1208# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
1209
1210#
1211# iptables trigger is under Netfilter config (LED target)
1212#
1213# CONFIG_ACCESSIBILITY is not set
1214CONFIG_RTC_LIB=y
1215CONFIG_RTC_CLASS=y
1216CONFIG_RTC_HCTOSYS=y
1217CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1218# CONFIG_RTC_DEBUG is not set
1219
1220#
1221# RTC interfaces
1222#
1223CONFIG_RTC_INTF_SYSFS=y
1224CONFIG_RTC_INTF_PROC=y
1225CONFIG_RTC_INTF_DEV=y
1226# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1227# CONFIG_RTC_DRV_TEST is not set
1228
1229#
1230# I2C RTC drivers
1231#
1232# CONFIG_RTC_DRV_DS1307 is not set
1233# CONFIG_RTC_DRV_DS1374 is not set
1234# CONFIG_RTC_DRV_DS1672 is not set
1235# CONFIG_RTC_DRV_MAX6900 is not set
1236# CONFIG_RTC_DRV_RS5C372 is not set
1237# CONFIG_RTC_DRV_ISL1208 is not set
1238# CONFIG_RTC_DRV_X1205 is not set
1239# CONFIG_RTC_DRV_PCF8563 is not set
1240# CONFIG_RTC_DRV_PCF8583 is not set
1241# CONFIG_RTC_DRV_M41T80 is not set
1242# CONFIG_RTC_DRV_BQ32K is not set
1243# CONFIG_RTC_DRV_S35390A is not set
1244# CONFIG_RTC_DRV_FM3130 is not set
1245# CONFIG_RTC_DRV_RX8581 is not set
1246# CONFIG_RTC_DRV_RX8025 is not set
1247
1248#
1249# SPI RTC drivers
1250#
1251# CONFIG_RTC_DRV_M41T94 is not set
1252# CONFIG_RTC_DRV_DS1305 is not set
1253# CONFIG_RTC_DRV_DS1390 is not set
1254# CONFIG_RTC_DRV_MAX6902 is not set
1255# CONFIG_RTC_DRV_R9701 is not set
1256# CONFIG_RTC_DRV_RS5C348 is not set
1257# CONFIG_RTC_DRV_DS3234 is not set
1258# CONFIG_RTC_DRV_PCF2123 is not set
1259
1260#
1261# Platform RTC drivers
1262#
1263# CONFIG_RTC_DRV_CMOS is not set
1264# CONFIG_RTC_DRV_DS1286 is not set
1265# CONFIG_RTC_DRV_DS1511 is not set
1266# CONFIG_RTC_DRV_DS1553 is not set
1267# CONFIG_RTC_DRV_DS1742 is not set
1268# CONFIG_RTC_DRV_STK17TA8 is not set
1269# CONFIG_RTC_DRV_M48T86 is not set
1270# CONFIG_RTC_DRV_M48T35 is not set
1271# CONFIG_RTC_DRV_M48T59 is not set
1272# CONFIG_RTC_DRV_MSM6242 is not set
1273# CONFIG_RTC_DRV_BQ4802 is not set
1274# CONFIG_RTC_DRV_RP5C01 is not set
1275# CONFIG_RTC_DRV_V3020 is not set
1276
1277#
1278# on-CPU RTC drivers
1279#
1280CONFIG_RTC_DRV_AU1XXX=y
1281# CONFIG_DMADEVICES is not set
1282# CONFIG_AUXDISPLAY is not set
1283# CONFIG_UIO is not set
1284
1285#
1286# TI VLYNQ
1287#
1288# CONFIG_STAGING is not set
1289
1290#
1291# File systems
1292#
1293CONFIG_EXT2_FS=y
1294# CONFIG_EXT2_FS_XATTR is not set
1295# CONFIG_EXT2_FS_XIP is not set
1296# CONFIG_EXT3_FS is not set
1297# CONFIG_EXT4_FS is not set
1298# CONFIG_REISERFS_FS is not set
1299# CONFIG_JFS_FS is not set
1300# CONFIG_FS_POSIX_ACL is not set
1301# CONFIG_XFS_FS is not set
1302# CONFIG_OCFS2_FS is not set
1303# CONFIG_BTRFS_FS is not set
1304# CONFIG_NILFS2_FS is not set
1305CONFIG_FILE_LOCKING=y
1306CONFIG_FSNOTIFY=y
1307CONFIG_DNOTIFY=y
1308CONFIG_INOTIFY=y
1309CONFIG_INOTIFY_USER=y
1310# CONFIG_QUOTA is not set
1311# CONFIG_AUTOFS_FS is not set
1312# CONFIG_AUTOFS4_FS is not set
1313# CONFIG_FUSE_FS is not set
1314
1315#
1316# Caches
1317#
1318# CONFIG_FSCACHE is not set
1319
1320#
1321# CD-ROM/DVD Filesystems
1322#
1323CONFIG_ISO9660_FS=y
1324CONFIG_JOLIET=y
1325CONFIG_ZISOFS=y
1326CONFIG_UDF_FS=y
1327CONFIG_UDF_NLS=y
1328
1329#
1330# DOS/FAT/NT Filesystems
1331#
1332CONFIG_FAT_FS=y
1333# CONFIG_MSDOS_FS is not set
1334CONFIG_VFAT_FS=y
1335CONFIG_FAT_DEFAULT_CODEPAGE=437
1336CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1337# CONFIG_NTFS_FS is not set
1338
1339#
1340# Pseudo filesystems
1341#
1342CONFIG_PROC_FS=y
1343# CONFIG_PROC_KCORE is not set
1344CONFIG_PROC_SYSCTL=y
1345# CONFIG_PROC_PAGE_MONITOR is not set
1346CONFIG_SYSFS=y
1347CONFIG_TMPFS=y
1348# CONFIG_TMPFS_POSIX_ACL is not set
1349# CONFIG_HUGETLB_PAGE is not set
1350# CONFIG_CONFIGFS_FS is not set
1351CONFIG_MISC_FILESYSTEMS=y
1352# CONFIG_ADFS_FS is not set
1353# CONFIG_AFFS_FS is not set
1354# CONFIG_HFS_FS is not set
1355# CONFIG_HFSPLUS_FS is not set
1356# CONFIG_BEFS_FS is not set
1357# CONFIG_BFS_FS is not set
1358# CONFIG_EFS_FS is not set
1359CONFIG_JFFS2_FS=y
1360CONFIG_JFFS2_FS_DEBUG=0
1361CONFIG_JFFS2_FS_WRITEBUFFER=y
1362# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1363CONFIG_JFFS2_SUMMARY=y
1364# CONFIG_JFFS2_FS_XATTR is not set
1365CONFIG_JFFS2_COMPRESSION_OPTIONS=y
1366CONFIG_JFFS2_ZLIB=y
1367CONFIG_JFFS2_LZO=y
1368CONFIG_JFFS2_RTIME=y
1369CONFIG_JFFS2_RUBIN=y
1370# CONFIG_JFFS2_CMODE_NONE is not set
1371CONFIG_JFFS2_CMODE_PRIORITY=y
1372# CONFIG_JFFS2_CMODE_SIZE is not set
1373# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
1374# CONFIG_CRAMFS is not set
1375CONFIG_SQUASHFS=y
1376# CONFIG_SQUASHFS_EMBEDDED is not set
1377CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
1378# CONFIG_VXFS_FS is not set
1379# CONFIG_MINIX_FS is not set
1380# CONFIG_OMFS_FS is not set
1381# CONFIG_HPFS_FS is not set
1382# CONFIG_QNX4FS_FS is not set
1383# CONFIG_ROMFS_FS is not set
1384# CONFIG_SYSV_FS is not set
1385# CONFIG_UFS_FS is not set
1386CONFIG_NETWORK_FILESYSTEMS=y
1387CONFIG_NFS_FS=y
1388CONFIG_NFS_V3=y
1389# CONFIG_NFS_V3_ACL is not set
1390# CONFIG_NFS_V4 is not set
1391CONFIG_ROOT_NFS=y
1392# CONFIG_NFSD is not set
1393CONFIG_LOCKD=y
1394CONFIG_LOCKD_V4=y
1395CONFIG_NFS_COMMON=y
1396CONFIG_SUNRPC=y
1397# CONFIG_RPCSEC_GSS_KRB5 is not set
1398# CONFIG_RPCSEC_GSS_SPKM3 is not set
1399# CONFIG_SMB_FS is not set
1400# CONFIG_CIFS is not set
1401# CONFIG_NCP_FS is not set
1402# CONFIG_CODA_FS is not set
1403# CONFIG_AFS_FS is not set
1404
1405#
1406# Partition Types
1407#
1408CONFIG_PARTITION_ADVANCED=y
1409# CONFIG_ACORN_PARTITION is not set
1410# CONFIG_OSF_PARTITION is not set
1411# CONFIG_AMIGA_PARTITION is not set
1412# CONFIG_ATARI_PARTITION is not set
1413# CONFIG_MAC_PARTITION is not set
1414CONFIG_MSDOS_PARTITION=y
1415# CONFIG_BSD_DISKLABEL is not set
1416# CONFIG_MINIX_SUBPARTITION is not set
1417# CONFIG_SOLARIS_X86_PARTITION is not set
1418# CONFIG_UNIXWARE_DISKLABEL is not set
1419# CONFIG_LDM_PARTITION is not set
1420# CONFIG_SGI_PARTITION is not set
1421# CONFIG_ULTRIX_PARTITION is not set
1422# CONFIG_SUN_PARTITION is not set
1423# CONFIG_KARMA_PARTITION is not set
1424CONFIG_EFI_PARTITION=y
1425# CONFIG_SYSV68_PARTITION is not set
1426CONFIG_NLS=y
1427CONFIG_NLS_DEFAULT="iso8859-1"
1428CONFIG_NLS_CODEPAGE_437=y
1429# CONFIG_NLS_CODEPAGE_737 is not set
1430# CONFIG_NLS_CODEPAGE_775 is not set
1431CONFIG_NLS_CODEPAGE_850=y
1432CONFIG_NLS_CODEPAGE_852=y
1433# CONFIG_NLS_CODEPAGE_855 is not set
1434# CONFIG_NLS_CODEPAGE_857 is not set
1435# CONFIG_NLS_CODEPAGE_860 is not set
1436# CONFIG_NLS_CODEPAGE_861 is not set
1437# CONFIG_NLS_CODEPAGE_862 is not set
1438# CONFIG_NLS_CODEPAGE_863 is not set
1439# CONFIG_NLS_CODEPAGE_864 is not set
1440# CONFIG_NLS_CODEPAGE_865 is not set
1441# CONFIG_NLS_CODEPAGE_866 is not set
1442# CONFIG_NLS_CODEPAGE_869 is not set
1443# CONFIG_NLS_CODEPAGE_936 is not set
1444# CONFIG_NLS_CODEPAGE_950 is not set
1445# CONFIG_NLS_CODEPAGE_932 is not set
1446# CONFIG_NLS_CODEPAGE_949 is not set
1447# CONFIG_NLS_CODEPAGE_874 is not set
1448# CONFIG_NLS_ISO8859_8 is not set
1449CONFIG_NLS_CODEPAGE_1250=y
1450# CONFIG_NLS_CODEPAGE_1251 is not set
1451CONFIG_NLS_ASCII=y
1452CONFIG_NLS_ISO8859_1=y
1453CONFIG_NLS_ISO8859_2=y
1454# CONFIG_NLS_ISO8859_3 is not set
1455# CONFIG_NLS_ISO8859_4 is not set
1456# CONFIG_NLS_ISO8859_5 is not set
1457# CONFIG_NLS_ISO8859_6 is not set
1458# CONFIG_NLS_ISO8859_7 is not set
1459# CONFIG_NLS_ISO8859_9 is not set
1460# CONFIG_NLS_ISO8859_13 is not set
1461# CONFIG_NLS_ISO8859_14 is not set
1462CONFIG_NLS_ISO8859_15=y
1463# CONFIG_NLS_KOI8_R is not set
1464# CONFIG_NLS_KOI8_U is not set
1465CONFIG_NLS_UTF8=y
1466# CONFIG_DLM is not set
1467
1468#
1469# Kernel hacking
1470#
1471CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1472# CONFIG_PRINTK_TIME is not set
1473# CONFIG_ENABLE_WARN_DEPRECATED is not set
1474# CONFIG_ENABLE_MUST_CHECK is not set
1475CONFIG_FRAME_WARN=1024
1476CONFIG_MAGIC_SYSRQ=y
1477CONFIG_STRIP_ASM_SYMS=y
1478# CONFIG_UNUSED_SYMBOLS is not set
1479# CONFIG_DEBUG_FS is not set
1480# CONFIG_HEADERS_CHECK is not set
1481CONFIG_DEBUG_KERNEL=y
1482# CONFIG_DEBUG_SHIRQ is not set
1483# CONFIG_DETECT_SOFTLOCKUP is not set
1484# CONFIG_DETECT_HUNG_TASK is not set
1485# CONFIG_SCHED_DEBUG is not set
1486# CONFIG_SCHEDSTATS is not set
1487# CONFIG_TIMER_STATS is not set
1488# CONFIG_DEBUG_OBJECTS is not set
1489# CONFIG_DEBUG_SLAB is not set
1490# CONFIG_DEBUG_RT_MUTEXES is not set
1491# CONFIG_RT_MUTEX_TESTER is not set
1492# CONFIG_DEBUG_SPINLOCK is not set
1493# CONFIG_DEBUG_MUTEXES is not set
1494# CONFIG_DEBUG_LOCK_ALLOC is not set
1495# CONFIG_PROVE_LOCKING is not set
1496# CONFIG_LOCK_STAT is not set
1497# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1498# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1499# CONFIG_DEBUG_KOBJECT is not set
1500# CONFIG_DEBUG_INFO is not set
1501# CONFIG_DEBUG_VM is not set
1502# CONFIG_DEBUG_WRITECOUNT is not set
1503# CONFIG_DEBUG_MEMORY_INIT is not set
1504# CONFIG_DEBUG_LIST is not set
1505# CONFIG_DEBUG_SG is not set
1506# CONFIG_DEBUG_NOTIFIERS is not set
1507# CONFIG_DEBUG_CREDENTIALS is not set
1508# CONFIG_BOOT_PRINTK_DELAY is not set
1509# CONFIG_RCU_TORTURE_TEST is not set
1510# CONFIG_BACKTRACE_SELF_TEST is not set
1511# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1512# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1513# CONFIG_FAULT_INJECTION is not set
1514# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1515# CONFIG_PAGE_POISONING is not set
1516CONFIG_HAVE_FUNCTION_TRACER=y
1517CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1518CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
1519CONFIG_HAVE_DYNAMIC_FTRACE=y
1520CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1521CONFIG_TRACING_SUPPORT=y
1522# CONFIG_FTRACE is not set
1523# CONFIG_SAMPLES is not set
1524CONFIG_HAVE_ARCH_KGDB=y
1525# CONFIG_KGDB is not set
1526CONFIG_EARLY_PRINTK=y
1527CONFIG_CMDLINE_BOOL=y
1528CONFIG_CMDLINE="console=ttyS0,115200"
1529# CONFIG_CMDLINE_OVERRIDE is not set
1530# CONFIG_DEBUG_STACK_USAGE is not set
1531# CONFIG_RUNTIME_DEBUG is not set
1532CONFIG_DEBUG_ZBOOT=y
1533
1534#
1535# Security options
1536#
1537CONFIG_KEYS=y
1538CONFIG_KEYS_DEBUG_PROC_KEYS=y
1539# CONFIG_SECURITY is not set
1540CONFIG_SECURITYFS=y
1541# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1542# CONFIG_DEFAULT_SECURITY_SMACK is not set
1543# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1544CONFIG_DEFAULT_SECURITY_DAC=y
1545CONFIG_DEFAULT_SECURITY=""
1546# CONFIG_CRYPTO is not set
1547# CONFIG_BINARY_PRINTF is not set
1548
1549#
1550# Library routines
1551#
1552CONFIG_BITREVERSE=y
1553CONFIG_GENERIC_FIND_LAST_BIT=y
1554# CONFIG_CRC_CCITT is not set
1555# CONFIG_CRC16 is not set
1556# CONFIG_CRC_T10DIF is not set
1557CONFIG_CRC_ITU_T=y
1558CONFIG_CRC32=y
1559# CONFIG_CRC7 is not set
1560# CONFIG_LIBCRC32C is not set
1561CONFIG_ZLIB_INFLATE=y
1562CONFIG_ZLIB_DEFLATE=y
1563CONFIG_LZO_COMPRESS=y
1564CONFIG_LZO_DECOMPRESS=y
1565CONFIG_HAS_IOMEM=y
1566CONFIG_HAS_IOPORT=y
1567CONFIG_HAS_DMA=y
1568CONFIG_NLATTR=y
diff --git a/arch/mips/configs/pb1500_defconfig b/arch/mips/configs/pb1500_defconfig
index 5ec60836b645..7497d3306b91 100644
--- a/arch/mips/configs/pb1500_defconfig
+++ b/arch/mips/configs/pb1500_defconfig
@@ -1,78 +1,102 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20 3# Linux kernel version: 2.6.33
4# Tue Feb 20 21:47:37 2007 4# Fri Feb 26 10:05:27 2010
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
8# 8#
9# Machine selection 9# Machine selection
10# 10#
11CONFIG_ZONE_DMA=y
12CONFIG_MACH_ALCHEMY=y 11CONFIG_MACH_ALCHEMY=y
13# CONFIG_MIPS_MTX1 is not set 12# CONFIG_AR7 is not set
14# CONFIG_MIPS_BOSPORUS is not set 13# CONFIG_BCM47XX is not set
15# CONFIG_MIPS_PB1000 is not set 14# CONFIG_BCM63XX is not set
16# CONFIG_MIPS_PB1100 is not set
17CONFIG_MIPS_PB1500=y
18# CONFIG_MIPS_PB1550 is not set
19# CONFIG_MIPS_PB1200 is not set
20# CONFIG_MIPS_DB1000 is not set
21# CONFIG_MIPS_DB1100 is not set
22# CONFIG_MIPS_DB1500 is not set
23# CONFIG_MIPS_DB1550 is not set
24# CONFIG_MIPS_DB1200 is not set
25# CONFIG_MIPS_MIRAGE is not set
26# CONFIG_MIPS_COBALT is not set 15# CONFIG_MIPS_COBALT is not set
27# CONFIG_MACH_DECSTATION is not set 16# CONFIG_MACH_DECSTATION is not set
28# CONFIG_MACH_JAZZ is not set 17# CONFIG_MACH_JAZZ is not set
18# CONFIG_LASAT is not set
19# CONFIG_MACH_LOONGSON is not set
29# CONFIG_MIPS_MALTA is not set 20# CONFIG_MIPS_MALTA is not set
30# CONFIG_WR_PPMC is not set
31# CONFIG_MIPS_SIM is not set 21# CONFIG_MIPS_SIM is not set
32# CONFIG_MOMENCO_JAGUAR_ATX is not set 22# CONFIG_NEC_MARKEINS is not set
33# CONFIG_MIPS_XXS1500 is not set 23# CONFIG_MACH_VR41XX is not set
24# CONFIG_NXP_STB220 is not set
25# CONFIG_NXP_STB225 is not set
34# CONFIG_PNX8550_JBS is not set 26# CONFIG_PNX8550_JBS is not set
35# CONFIG_PNX8550_STB810 is not set 27# CONFIG_PNX8550_STB810 is not set
36# CONFIG_MACH_VR41XX is not set 28# CONFIG_PMC_MSP is not set
37# CONFIG_PMC_YOSEMITE is not set 29# CONFIG_PMC_YOSEMITE is not set
38# CONFIG_MARKEINS is not set 30# CONFIG_POWERTV is not set
39# CONFIG_SGI_IP22 is not set 31# CONFIG_SGI_IP22 is not set
40# CONFIG_SGI_IP27 is not set 32# CONFIG_SGI_IP27 is not set
33# CONFIG_SGI_IP28 is not set
41# CONFIG_SGI_IP32 is not set 34# CONFIG_SGI_IP32 is not set
42# CONFIG_SIBYTE_BIGSUR is not set
43# CONFIG_SIBYTE_SWARM is not set
44# CONFIG_SIBYTE_SENTOSA is not set
45# CONFIG_SIBYTE_RHONE is not set
46# CONFIG_SIBYTE_CARMEL is not set
47# CONFIG_SIBYTE_LITTLESUR is not set
48# CONFIG_SIBYTE_CRHINE is not set 35# CONFIG_SIBYTE_CRHINE is not set
36# CONFIG_SIBYTE_CARMEL is not set
49# CONFIG_SIBYTE_CRHONE is not set 37# CONFIG_SIBYTE_CRHONE is not set
38# CONFIG_SIBYTE_RHONE is not set
39# CONFIG_SIBYTE_SWARM is not set
40# CONFIG_SIBYTE_LITTLESUR is not set
41# CONFIG_SIBYTE_SENTOSA is not set
42# CONFIG_SIBYTE_BIGSUR is not set
50# CONFIG_SNI_RM is not set 43# CONFIG_SNI_RM is not set
51# CONFIG_TOSHIBA_JMR3927 is not set 44# CONFIG_MACH_TX39XX is not set
52# CONFIG_TOSHIBA_RBTX4927 is not set 45# CONFIG_MACH_TX49XX is not set
53# CONFIG_TOSHIBA_RBTX4938 is not set 46# CONFIG_MIKROTIK_RB532 is not set
47# CONFIG_WR_PPMC is not set
48# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
49# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
50CONFIG_ALCHEMY_GPIOINT_AU1000=y
51# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
52# CONFIG_MIPS_MTX1 is not set
53# CONFIG_MIPS_BOSPORUS is not set
54# CONFIG_MIPS_DB1000 is not set
55# CONFIG_MIPS_DB1100 is not set
56# CONFIG_MIPS_DB1200 is not set
57# CONFIG_MIPS_DB1500 is not set
58# CONFIG_MIPS_DB1550 is not set
59# CONFIG_MIPS_MIRAGE is not set
60# CONFIG_MIPS_PB1000 is not set
61# CONFIG_MIPS_PB1100 is not set
62# CONFIG_MIPS_PB1200 is not set
63CONFIG_MIPS_PB1500=y
64# CONFIG_MIPS_PB1550 is not set
65# CONFIG_MIPS_XXS1500 is not set
66CONFIG_SOC_AU1500=y
67CONFIG_SOC_AU1X00=y
68CONFIG_LOONGSON_UART_BASE=y
54CONFIG_RWSEM_GENERIC_SPINLOCK=y 69CONFIG_RWSEM_GENERIC_SPINLOCK=y
55# CONFIG_ARCH_HAS_ILOG2_U32 is not set 70# CONFIG_ARCH_HAS_ILOG2_U32 is not set
56# CONFIG_ARCH_HAS_ILOG2_U64 is not set 71# CONFIG_ARCH_HAS_ILOG2_U64 is not set
72CONFIG_ARCH_SUPPORTS_OPROFILE=y
57CONFIG_GENERIC_FIND_NEXT_BIT=y 73CONFIG_GENERIC_FIND_NEXT_BIT=y
58CONFIG_GENERIC_HWEIGHT=y 74CONFIG_GENERIC_HWEIGHT=y
59CONFIG_GENERIC_CALIBRATE_DELAY=y 75CONFIG_GENERIC_CALIBRATE_DELAY=y
76CONFIG_GENERIC_CLOCKEVENTS=y
60CONFIG_GENERIC_TIME=y 77CONFIG_GENERIC_TIME=y
61CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 78CONFIG_GENERIC_CMOS_UPDATE=y
62# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set 79CONFIG_SCHED_OMIT_FRAME_POINTER=y
80CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
81CONFIG_CEVT_R4K_LIB=y
82CONFIG_CSRC_R4K_LIB=y
63CONFIG_DMA_NONCOHERENT=y 83CONFIG_DMA_NONCOHERENT=y
64CONFIG_DMA_NEED_PCI_MAP_STATE=y 84CONFIG_DMA_NEED_PCI_MAP_STATE=y
85CONFIG_SYS_HAS_EARLY_PRINTK=y
86# CONFIG_NO_IOPORT is not set
87CONFIG_GENERIC_GPIO=y
65# CONFIG_CPU_BIG_ENDIAN is not set 88# CONFIG_CPU_BIG_ENDIAN is not set
66CONFIG_CPU_LITTLE_ENDIAN=y 89CONFIG_CPU_LITTLE_ENDIAN=y
67CONFIG_SYS_SUPPORTS_APM_EMULATION=y 90CONFIG_SYS_SUPPORTS_APM_EMULATION=y
68CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y 91CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
69CONFIG_SOC_AU1500=y 92CONFIG_IRQ_CPU=y
70CONFIG_SOC_AU1X00=y
71CONFIG_MIPS_L1_CACHE_SHIFT=5 93CONFIG_MIPS_L1_CACHE_SHIFT=5
72 94
73# 95#
74# CPU selection 96# CPU selection
75# 97#
98# CONFIG_CPU_LOONGSON2E is not set
99# CONFIG_CPU_LOONGSON2F is not set
76CONFIG_CPU_MIPS32_R1=y 100CONFIG_CPU_MIPS32_R1=y
77# CONFIG_CPU_MIPS32_R2 is not set 101# CONFIG_CPU_MIPS32_R2 is not set
78# CONFIG_CPU_MIPS64_R1 is not set 102# CONFIG_CPU_MIPS64_R1 is not set
@@ -85,6 +109,7 @@ CONFIG_CPU_MIPS32_R1=y
85# CONFIG_CPU_TX49XX is not set 109# CONFIG_CPU_TX49XX is not set
86# CONFIG_CPU_R5000 is not set 110# CONFIG_CPU_R5000 is not set
87# CONFIG_CPU_R5432 is not set 111# CONFIG_CPU_R5432 is not set
112# CONFIG_CPU_R5500 is not set
88# CONFIG_CPU_R6000 is not set 113# CONFIG_CPU_R6000 is not set
89# CONFIG_CPU_NEVADA is not set 114# CONFIG_CPU_NEVADA is not set
90# CONFIG_CPU_R8000 is not set 115# CONFIG_CPU_R8000 is not set
@@ -92,11 +117,14 @@ CONFIG_CPU_MIPS32_R1=y
92# CONFIG_CPU_RM7000 is not set 117# CONFIG_CPU_RM7000 is not set
93# CONFIG_CPU_RM9000 is not set 118# CONFIG_CPU_RM9000 is not set
94# CONFIG_CPU_SB1 is not set 119# CONFIG_CPU_SB1 is not set
120# CONFIG_CPU_CAVIUM_OCTEON is not set
121CONFIG_SYS_SUPPORTS_ZBOOT=y
95CONFIG_SYS_HAS_CPU_MIPS32_R1=y 122CONFIG_SYS_HAS_CPU_MIPS32_R1=y
96CONFIG_CPU_MIPS32=y 123CONFIG_CPU_MIPS32=y
97CONFIG_CPU_MIPSR1=y 124CONFIG_CPU_MIPSR1=y
98CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 125CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
99CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y 126CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
127CONFIG_HARDWARE_WATCHPOINTS=y
100 128
101# 129#
102# Kernel type 130# Kernel type
@@ -106,190 +134,255 @@ CONFIG_32BIT=y
106CONFIG_PAGE_SIZE_4KB=y 134CONFIG_PAGE_SIZE_4KB=y
107# CONFIG_PAGE_SIZE_8KB is not set 135# CONFIG_PAGE_SIZE_8KB is not set
108# CONFIG_PAGE_SIZE_16KB is not set 136# CONFIG_PAGE_SIZE_16KB is not set
137# CONFIG_PAGE_SIZE_32KB is not set
109# CONFIG_PAGE_SIZE_64KB is not set 138# CONFIG_PAGE_SIZE_64KB is not set
110CONFIG_CPU_HAS_PREFETCH=y 139CONFIG_CPU_HAS_PREFETCH=y
111CONFIG_MIPS_MT_DISABLED=y 140CONFIG_MIPS_MT_DISABLED=y
112# CONFIG_MIPS_MT_SMP is not set 141# CONFIG_MIPS_MT_SMP is not set
113# CONFIG_MIPS_MT_SMTC is not set 142# CONFIG_MIPS_MT_SMTC is not set
114# CONFIG_MIPS_VPE_LOADER is not set
115CONFIG_64BIT_PHYS_ADDR=y 143CONFIG_64BIT_PHYS_ADDR=y
144CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
116CONFIG_CPU_HAS_SYNC=y 145CONFIG_CPU_HAS_SYNC=y
117CONFIG_GENERIC_HARDIRQS=y 146CONFIG_GENERIC_HARDIRQS=y
118CONFIG_GENERIC_IRQ_PROBE=y 147CONFIG_GENERIC_IRQ_PROBE=y
119CONFIG_CPU_SUPPORTS_HIGHMEM=y 148CONFIG_CPU_SUPPORTS_HIGHMEM=y
120CONFIG_ARCH_FLATMEM_ENABLE=y 149CONFIG_ARCH_FLATMEM_ENABLE=y
150CONFIG_ARCH_POPULATES_NODE_MAP=y
121CONFIG_SELECT_MEMORY_MODEL=y 151CONFIG_SELECT_MEMORY_MODEL=y
122CONFIG_FLATMEM_MANUAL=y 152CONFIG_FLATMEM_MANUAL=y
123# CONFIG_DISCONTIGMEM_MANUAL is not set 153# CONFIG_DISCONTIGMEM_MANUAL is not set
124# CONFIG_SPARSEMEM_MANUAL is not set 154# CONFIG_SPARSEMEM_MANUAL is not set
125CONFIG_FLATMEM=y 155CONFIG_FLATMEM=y
126CONFIG_FLAT_NODE_MEM_MAP=y 156CONFIG_FLAT_NODE_MEM_MAP=y
127# CONFIG_SPARSEMEM_STATIC is not set 157CONFIG_PAGEFLAGS_EXTENDED=y
128CONFIG_SPLIT_PTLOCK_CPUS=4 158CONFIG_SPLIT_PTLOCK_CPUS=4
129CONFIG_RESOURCES_64BIT=y 159CONFIG_PHYS_ADDR_T_64BIT=y
130CONFIG_ZONE_DMA_FLAG=1 160CONFIG_ZONE_DMA_FLAG=0
161CONFIG_VIRT_TO_BUS=y
162# CONFIG_KSM is not set
163CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
164CONFIG_TICK_ONESHOT=y
165CONFIG_NO_HZ=y
166CONFIG_HIGH_RES_TIMERS=y
167CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
131# CONFIG_HZ_48 is not set 168# CONFIG_HZ_48 is not set
132# CONFIG_HZ_100 is not set 169CONFIG_HZ_100=y
133# CONFIG_HZ_128 is not set 170# CONFIG_HZ_128 is not set
134# CONFIG_HZ_250 is not set 171# CONFIG_HZ_250 is not set
135# CONFIG_HZ_256 is not set 172# CONFIG_HZ_256 is not set
136CONFIG_HZ_1000=y 173# CONFIG_HZ_1000 is not set
137# CONFIG_HZ_1024 is not set 174# CONFIG_HZ_1024 is not set
138CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 175CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
139CONFIG_HZ=1000 176CONFIG_HZ=100
140CONFIG_PREEMPT_NONE=y 177CONFIG_PREEMPT_NONE=y
141# CONFIG_PREEMPT_VOLUNTARY is not set 178# CONFIG_PREEMPT_VOLUNTARY is not set
142# CONFIG_PREEMPT is not set 179# CONFIG_PREEMPT is not set
143# CONFIG_KEXEC is not set 180# CONFIG_KEXEC is not set
181# CONFIG_SECCOMP is not set
144CONFIG_LOCKDEP_SUPPORT=y 182CONFIG_LOCKDEP_SUPPORT=y
145CONFIG_STACKTRACE_SUPPORT=y 183CONFIG_STACKTRACE_SUPPORT=y
146CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 184CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
185CONFIG_CONSTRUCTORS=y
147 186
148# 187#
149# Code maturity level options 188# General setup
150# 189#
151CONFIG_EXPERIMENTAL=y 190CONFIG_EXPERIMENTAL=y
152CONFIG_BROKEN_ON_SMP=y 191CONFIG_BROKEN_ON_SMP=y
153CONFIG_INIT_ENV_ARG_LIMIT=32 192CONFIG_INIT_ENV_ARG_LIMIT=32
154 193CONFIG_LOCALVERSION="-pb1500"
155#
156# General setup
157#
158CONFIG_LOCALVERSION=""
159CONFIG_LOCALVERSION_AUTO=y 194CONFIG_LOCALVERSION_AUTO=y
195CONFIG_HAVE_KERNEL_GZIP=y
196CONFIG_HAVE_KERNEL_BZIP2=y
197CONFIG_HAVE_KERNEL_LZMA=y
198CONFIG_HAVE_KERNEL_LZO=y
199# CONFIG_KERNEL_GZIP is not set
200# CONFIG_KERNEL_BZIP2 is not set
201CONFIG_KERNEL_LZMA=y
202# CONFIG_KERNEL_LZO is not set
160CONFIG_SWAP=y 203CONFIG_SWAP=y
161CONFIG_SYSVIPC=y 204CONFIG_SYSVIPC=y
162# CONFIG_IPC_NS is not set
163CONFIG_SYSVIPC_SYSCTL=y 205CONFIG_SYSVIPC_SYSCTL=y
164# CONFIG_POSIX_MQUEUE is not set 206CONFIG_POSIX_MQUEUE=y
207CONFIG_POSIX_MQUEUE_SYSCTL=y
165# CONFIG_BSD_PROCESS_ACCT is not set 208# CONFIG_BSD_PROCESS_ACCT is not set
166# CONFIG_TASKSTATS is not set 209# CONFIG_TASKSTATS is not set
167# CONFIG_UTS_NS is not set
168# CONFIG_AUDIT is not set 210# CONFIG_AUDIT is not set
211
212#
213# RCU Subsystem
214#
215# CONFIG_TREE_RCU is not set
216# CONFIG_TREE_PREEMPT_RCU is not set
217CONFIG_TINY_RCU=y
218# CONFIG_TREE_RCU_TRACE is not set
169# CONFIG_IKCONFIG is not set 219# CONFIG_IKCONFIG is not set
170CONFIG_SYSFS_DEPRECATED=y 220CONFIG_LOG_BUF_SHIFT=14
171CONFIG_RELAY=y 221# CONFIG_GROUP_SCHED is not set
172# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 222# CONFIG_CGROUPS is not set
223# CONFIG_SYSFS_DEPRECATED_V2 is not set
224# CONFIG_RELAY is not set
225# CONFIG_NAMESPACES is not set
226# CONFIG_BLK_DEV_INITRD is not set
227CONFIG_CC_OPTIMIZE_FOR_SIZE=y
173CONFIG_SYSCTL=y 228CONFIG_SYSCTL=y
229CONFIG_ANON_INODES=y
174CONFIG_EMBEDDED=y 230CONFIG_EMBEDDED=y
175CONFIG_SYSCTL_SYSCALL=y 231# CONFIG_SYSCTL_SYSCALL is not set
176CONFIG_KALLSYMS=y 232# CONFIG_KALLSYMS is not set
177# CONFIG_KALLSYMS_EXTRA_PASS is not set
178CONFIG_HOTPLUG=y 233CONFIG_HOTPLUG=y
179CONFIG_PRINTK=y 234CONFIG_PRINTK=y
180CONFIG_BUG=y 235CONFIG_BUG=y
181CONFIG_ELF_CORE=y 236CONFIG_ELF_CORE=y
237# CONFIG_PCSPKR_PLATFORM is not set
182CONFIG_BASE_FULL=y 238CONFIG_BASE_FULL=y
183CONFIG_FUTEX=y 239CONFIG_FUTEX=y
184CONFIG_EPOLL=y 240CONFIG_EPOLL=y
241CONFIG_SIGNALFD=y
242CONFIG_TIMERFD=y
243CONFIG_EVENTFD=y
185CONFIG_SHMEM=y 244CONFIG_SHMEM=y
245CONFIG_AIO=y
246
247#
248# Kernel Performance Events And Counters
249#
250# CONFIG_VM_EVENT_COUNTERS is not set
251CONFIG_PCI_QUIRKS=y
252# CONFIG_COMPAT_BRK is not set
186CONFIG_SLAB=y 253CONFIG_SLAB=y
187CONFIG_VM_EVENT_COUNTERS=y 254# CONFIG_SLUB is not set
188CONFIG_RT_MUTEXES=y
189# CONFIG_TINY_SHMEM is not set
190CONFIG_BASE_SMALL=0
191# CONFIG_SLOB is not set 255# CONFIG_SLOB is not set
256# CONFIG_PROFILING is not set
257CONFIG_HAVE_OPROFILE=y
192 258
193# 259#
194# Loadable module support 260# GCOV-based kernel profiling
195# 261#
262# CONFIG_SLOW_WORK is not set
263CONFIG_HAVE_GENERIC_DMA_COHERENT=y
264CONFIG_SLABINFO=y
265CONFIG_RT_MUTEXES=y
266CONFIG_BASE_SMALL=0
196CONFIG_MODULES=y 267CONFIG_MODULES=y
268# CONFIG_MODULE_FORCE_LOAD is not set
197CONFIG_MODULE_UNLOAD=y 269CONFIG_MODULE_UNLOAD=y
198# CONFIG_MODULE_FORCE_UNLOAD is not set 270# CONFIG_MODULE_FORCE_UNLOAD is not set
199CONFIG_MODVERSIONS=y 271# CONFIG_MODVERSIONS is not set
200CONFIG_MODULE_SRCVERSION_ALL=y 272# CONFIG_MODULE_SRCVERSION_ALL is not set
201CONFIG_KMOD=y
202
203#
204# Block layer
205#
206CONFIG_BLOCK=y 273CONFIG_BLOCK=y
207# CONFIG_LBD is not set 274CONFIG_LBDAF=y
208# CONFIG_BLK_DEV_IO_TRACE is not set 275CONFIG_BLK_DEV_BSG=y
209# CONFIG_LSF is not set 276# CONFIG_BLK_DEV_INTEGRITY is not set
210 277
211# 278#
212# IO Schedulers 279# IO Schedulers
213# 280#
214CONFIG_IOSCHED_NOOP=y 281CONFIG_IOSCHED_NOOP=y
215CONFIG_IOSCHED_AS=y 282# CONFIG_IOSCHED_DEADLINE is not set
216CONFIG_IOSCHED_DEADLINE=y 283# CONFIG_IOSCHED_CFQ is not set
217CONFIG_IOSCHED_CFQ=y
218CONFIG_DEFAULT_AS=y
219# CONFIG_DEFAULT_DEADLINE is not set 284# CONFIG_DEFAULT_DEADLINE is not set
220# CONFIG_DEFAULT_CFQ is not set 285# CONFIG_DEFAULT_CFQ is not set
221# CONFIG_DEFAULT_NOOP is not set 286CONFIG_DEFAULT_NOOP=y
222CONFIG_DEFAULT_IOSCHED="anticipatory" 287CONFIG_DEFAULT_IOSCHED="noop"
288# CONFIG_INLINE_SPIN_TRYLOCK is not set
289# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
290# CONFIG_INLINE_SPIN_LOCK is not set
291# CONFIG_INLINE_SPIN_LOCK_BH is not set
292# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
293# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
294CONFIG_INLINE_SPIN_UNLOCK=y
295# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
296CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
297# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
298# CONFIG_INLINE_READ_TRYLOCK is not set
299# CONFIG_INLINE_READ_LOCK is not set
300# CONFIG_INLINE_READ_LOCK_BH is not set
301# CONFIG_INLINE_READ_LOCK_IRQ is not set
302# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
303CONFIG_INLINE_READ_UNLOCK=y
304# CONFIG_INLINE_READ_UNLOCK_BH is not set
305CONFIG_INLINE_READ_UNLOCK_IRQ=y
306# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
307# CONFIG_INLINE_WRITE_TRYLOCK is not set
308# CONFIG_INLINE_WRITE_LOCK is not set
309# CONFIG_INLINE_WRITE_LOCK_BH is not set
310# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
311# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
312CONFIG_INLINE_WRITE_UNLOCK=y
313# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
314CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
315# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
316# CONFIG_MUTEX_SPIN_ON_OWNER is not set
317CONFIG_FREEZER=y
223 318
224# 319#
225# Bus options (PCI, PCMCIA, EISA, ISA, TC) 320# Bus options (PCI, PCMCIA, EISA, ISA, TC)
226# 321#
227CONFIG_HW_HAS_PCI=y 322CONFIG_HW_HAS_PCI=y
228CONFIG_PCI=y 323CONFIG_PCI=y
324CONFIG_PCI_DOMAINS=y
325# CONFIG_ARCH_SUPPORTS_MSI is not set
326CONFIG_PCI_LEGACY=y
327# CONFIG_PCI_DEBUG is not set
328# CONFIG_PCI_STUB is not set
329# CONFIG_PCI_IOV is not set
229CONFIG_MMU=y 330CONFIG_MMU=y
230 331CONFIG_PCCARD=y
231# 332CONFIG_PCMCIA=y
232# PCCARD (PCMCIA/CardBus) support
233#
234CONFIG_PCCARD=m
235# CONFIG_PCMCIA_DEBUG is not set
236CONFIG_PCMCIA=m
237CONFIG_PCMCIA_LOAD_CIS=y 333CONFIG_PCMCIA_LOAD_CIS=y
238CONFIG_PCMCIA_IOCTL=y 334CONFIG_PCMCIA_IOCTL=y
239CONFIG_CARDBUS=y 335# CONFIG_CARDBUS is not set
240 336
241# 337#
242# PC-card bridges 338# PC-card bridges
243# 339#
244# CONFIG_YENTA is not set 340# CONFIG_YENTA is not set
245CONFIG_PD6729=m 341# CONFIG_PD6729 is not set
246# CONFIG_I82092 is not set 342# CONFIG_I82092 is not set
247# CONFIG_PCMCIA_AU1X00 is not set 343# CONFIG_PCMCIA_AU1X00 is not set
248CONFIG_PCCARD_NONSTATIC=m 344CONFIG_PCMCIA_ALCHEMY_DEVBOARD=y
249
250#
251# PCI Hotplug Support
252#
253# CONFIG_HOTPLUG_PCI is not set 345# CONFIG_HOTPLUG_PCI is not set
254 346
255# 347#
256# Executable file formats 348# Executable file formats
257# 349#
258CONFIG_BINFMT_ELF=y 350CONFIG_BINFMT_ELF=y
351# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
352# CONFIG_HAVE_AOUT is not set
259# CONFIG_BINFMT_MISC is not set 353# CONFIG_BINFMT_MISC is not set
260CONFIG_TRAD_SIGNALS=y 354CONFIG_TRAD_SIGNALS=y
261 355
262# 356#
263# Power management options 357# Power management options
264# 358#
265# CONFIG_PM is not set 359CONFIG_ARCH_HIBERNATION_POSSIBLE=y
266 360CONFIG_ARCH_SUSPEND_POSSIBLE=y
267# 361CONFIG_PM=y
268# Networking 362# CONFIG_PM_DEBUG is not set
269# 363CONFIG_PM_SLEEP=y
364CONFIG_SUSPEND=y
365CONFIG_SUSPEND_FREEZER=y
366# CONFIG_HIBERNATION is not set
367# CONFIG_APM_EMULATION is not set
368CONFIG_PM_RUNTIME=y
270CONFIG_NET=y 369CONFIG_NET=y
271 370
272# 371#
273# Networking options 372# Networking options
274# 373#
275# CONFIG_NETDEBUG is not set
276CONFIG_PACKET=y 374CONFIG_PACKET=y
277# CONFIG_PACKET_MMAP is not set 375CONFIG_PACKET_MMAP=y
278CONFIG_UNIX=y 376CONFIG_UNIX=y
279CONFIG_XFRM=y 377# CONFIG_NET_KEY is not set
280CONFIG_XFRM_USER=m
281# CONFIG_XFRM_SUB_POLICY is not set
282CONFIG_XFRM_MIGRATE=y
283CONFIG_NET_KEY=y
284CONFIG_NET_KEY_MIGRATE=y
285CONFIG_INET=y 378CONFIG_INET=y
286CONFIG_IP_MULTICAST=y 379CONFIG_IP_MULTICAST=y
287# CONFIG_IP_ADVANCED_ROUTER is not set 380# CONFIG_IP_ADVANCED_ROUTER is not set
288CONFIG_IP_FIB_HASH=y 381CONFIG_IP_FIB_HASH=y
289CONFIG_IP_PNP=y 382CONFIG_IP_PNP=y
290# CONFIG_IP_PNP_DHCP is not set 383CONFIG_IP_PNP_DHCP=y
291CONFIG_IP_PNP_BOOTP=y 384CONFIG_IP_PNP_BOOTP=y
292# CONFIG_IP_PNP_RARP is not set 385CONFIG_IP_PNP_RARP=y
293# CONFIG_NET_IPIP is not set 386# CONFIG_NET_IPIP is not set
294# CONFIG_NET_IPGRE is not set 387# CONFIG_NET_IPGRE is not set
295# CONFIG_IP_MROUTE is not set 388# CONFIG_IP_MROUTE is not set
@@ -300,110 +393,25 @@ CONFIG_IP_PNP_BOOTP=y
300# CONFIG_INET_IPCOMP is not set 393# CONFIG_INET_IPCOMP is not set
301# CONFIG_INET_XFRM_TUNNEL is not set 394# CONFIG_INET_XFRM_TUNNEL is not set
302# CONFIG_INET_TUNNEL is not set 395# CONFIG_INET_TUNNEL is not set
303CONFIG_INET_XFRM_MODE_TRANSPORT=m 396# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
304CONFIG_INET_XFRM_MODE_TUNNEL=m 397# CONFIG_INET_XFRM_MODE_TUNNEL is not set
305CONFIG_INET_XFRM_MODE_BEET=m 398# CONFIG_INET_XFRM_MODE_BEET is not set
306CONFIG_INET_DIAG=y 399CONFIG_INET_LRO=y
307CONFIG_INET_TCP_DIAG=y 400# CONFIG_INET_DIAG is not set
308# CONFIG_TCP_CONG_ADVANCED is not set 401# CONFIG_TCP_CONG_ADVANCED is not set
309CONFIG_TCP_CONG_CUBIC=y 402CONFIG_TCP_CONG_CUBIC=y
310CONFIG_DEFAULT_TCP_CONG="cubic" 403CONFIG_DEFAULT_TCP_CONG="cubic"
311CONFIG_TCP_MD5SIG=y 404# CONFIG_TCP_MD5SIG is not set
312
313#
314# IP: Virtual Server Configuration
315#
316# CONFIG_IP_VS is not set
317# CONFIG_IPV6 is not set 405# CONFIG_IPV6 is not set
318# CONFIG_INET6_XFRM_TUNNEL is not set 406# CONFIG_NETWORK_SECMARK is not set
319# CONFIG_INET6_TUNNEL is not set 407# CONFIG_NETFILTER is not set
320CONFIG_NETWORK_SECMARK=y
321CONFIG_NETFILTER=y
322# CONFIG_NETFILTER_DEBUG is not set
323
324#
325# Core Netfilter Configuration
326#
327CONFIG_NETFILTER_NETLINK=m
328CONFIG_NETFILTER_NETLINK_QUEUE=m
329CONFIG_NETFILTER_NETLINK_LOG=m
330CONFIG_NF_CONNTRACK_ENABLED=m
331CONFIG_NF_CONNTRACK_SUPPORT=y
332# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set
333CONFIG_NF_CONNTRACK=m
334CONFIG_NF_CT_ACCT=y
335CONFIG_NF_CONNTRACK_MARK=y
336CONFIG_NF_CONNTRACK_SECMARK=y
337CONFIG_NF_CONNTRACK_EVENTS=y
338CONFIG_NF_CT_PROTO_GRE=m
339CONFIG_NF_CT_PROTO_SCTP=m
340CONFIG_NF_CONNTRACK_AMANDA=m
341CONFIG_NF_CONNTRACK_FTP=m
342CONFIG_NF_CONNTRACK_H323=m
343CONFIG_NF_CONNTRACK_IRC=m
344# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
345CONFIG_NF_CONNTRACK_PPTP=m
346CONFIG_NF_CONNTRACK_SANE=m
347CONFIG_NF_CONNTRACK_SIP=m
348CONFIG_NF_CONNTRACK_TFTP=m
349CONFIG_NF_CT_NETLINK=m
350CONFIG_NETFILTER_XTABLES=m
351CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
352CONFIG_NETFILTER_XT_TARGET_MARK=m
353CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
354CONFIG_NETFILTER_XT_TARGET_NFLOG=m
355CONFIG_NETFILTER_XT_TARGET_SECMARK=m
356CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
357CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
358CONFIG_NETFILTER_XT_MATCH_COMMENT=m
359CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
360CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
361CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
362CONFIG_NETFILTER_XT_MATCH_DCCP=m
363CONFIG_NETFILTER_XT_MATCH_DSCP=m
364CONFIG_NETFILTER_XT_MATCH_ESP=m
365CONFIG_NETFILTER_XT_MATCH_HELPER=m
366CONFIG_NETFILTER_XT_MATCH_LENGTH=m
367CONFIG_NETFILTER_XT_MATCH_LIMIT=m
368CONFIG_NETFILTER_XT_MATCH_MAC=m
369CONFIG_NETFILTER_XT_MATCH_MARK=m
370CONFIG_NETFILTER_XT_MATCH_POLICY=m
371CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
372CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
373CONFIG_NETFILTER_XT_MATCH_QUOTA=m
374CONFIG_NETFILTER_XT_MATCH_REALM=m
375CONFIG_NETFILTER_XT_MATCH_SCTP=m
376CONFIG_NETFILTER_XT_MATCH_STATE=m
377CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
378CONFIG_NETFILTER_XT_MATCH_STRING=m
379CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
380CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
381
382#
383# IP: Netfilter Configuration
384#
385CONFIG_NF_CONNTRACK_IPV4=m
386CONFIG_NF_CONNTRACK_PROC_COMPAT=y
387# CONFIG_IP_NF_QUEUE is not set
388# CONFIG_IP_NF_IPTABLES is not set
389# CONFIG_IP_NF_ARPTABLES is not set
390
391#
392# DCCP Configuration (EXPERIMENTAL)
393#
394# CONFIG_IP_DCCP is not set 408# CONFIG_IP_DCCP is not set
395
396#
397# SCTP Configuration (EXPERIMENTAL)
398#
399# CONFIG_IP_SCTP is not set 409# CONFIG_IP_SCTP is not set
400 410# CONFIG_RDS is not set
401#
402# TIPC Configuration (EXPERIMENTAL)
403#
404# CONFIG_TIPC is not set 411# CONFIG_TIPC is not set
405# CONFIG_ATM is not set 412# CONFIG_ATM is not set
406# CONFIG_BRIDGE is not set 413# CONFIG_BRIDGE is not set
414# CONFIG_NET_DSA is not set
407# CONFIG_VLAN_8021Q is not set 415# CONFIG_VLAN_8021Q is not set
408# CONFIG_DECNET is not set 416# CONFIG_DECNET is not set
409# CONFIG_LLC2 is not set 417# CONFIG_LLC2 is not set
@@ -413,27 +421,24 @@ CONFIG_NF_CONNTRACK_PROC_COMPAT=y
413# CONFIG_LAPB is not set 421# CONFIG_LAPB is not set
414# CONFIG_ECONET is not set 422# CONFIG_ECONET is not set
415# CONFIG_WAN_ROUTER is not set 423# CONFIG_WAN_ROUTER is not set
416 424# CONFIG_PHONET is not set
417# 425# CONFIG_IEEE802154 is not set
418# QoS and/or fair queueing
419#
420# CONFIG_NET_SCHED is not set 426# CONFIG_NET_SCHED is not set
421CONFIG_NET_CLS_ROUTE=y 427# CONFIG_DCB is not set
422 428
423# 429#
424# Network testing 430# Network testing
425# 431#
426# CONFIG_NET_PKTGEN is not set 432# CONFIG_NET_PKTGEN is not set
427# CONFIG_HAMRADIO is not set 433# CONFIG_HAMRADIO is not set
434# CONFIG_CAN is not set
428# CONFIG_IRDA is not set 435# CONFIG_IRDA is not set
429# CONFIG_BT is not set 436# CONFIG_BT is not set
430CONFIG_IEEE80211=m 437# CONFIG_AF_RXRPC is not set
431# CONFIG_IEEE80211_DEBUG is not set 438# CONFIG_WIRELESS is not set
432CONFIG_IEEE80211_CRYPT_WEP=m 439# CONFIG_WIMAX is not set
433CONFIG_IEEE80211_CRYPT_CCMP=m 440# CONFIG_RFKILL is not set
434CONFIG_IEEE80211_SOFTMAC=m 441# CONFIG_NET_9P is not set
435# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
436CONFIG_WIRELESS_EXT=y
437 442
438# 443#
439# Device Drivers 444# Device Drivers
@@ -442,25 +447,25 @@ CONFIG_WIRELESS_EXT=y
442# 447#
443# Generic Driver Options 448# Generic Driver Options
444# 449#
450CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
451# CONFIG_DEVTMPFS is not set
445CONFIG_STANDALONE=y 452CONFIG_STANDALONE=y
446CONFIG_PREVENT_FIRMWARE_BUILD=y 453CONFIG_PREVENT_FIRMWARE_BUILD=y
447CONFIG_FW_LOADER=m 454CONFIG_FW_LOADER=y
455CONFIG_FIRMWARE_IN_KERNEL=y
456CONFIG_EXTRA_FIRMWARE=""
457# CONFIG_DEBUG_DRIVER is not set
458# CONFIG_DEBUG_DEVRES is not set
448# CONFIG_SYS_HYPERVISOR is not set 459# CONFIG_SYS_HYPERVISOR is not set
449 460# CONFIG_CONNECTOR is not set
450#
451# Connector - unified userspace <-> kernelspace linker
452#
453CONFIG_CONNECTOR=m
454
455#
456# Memory Technology Devices (MTD)
457#
458CONFIG_MTD=y 461CONFIG_MTD=y
459# CONFIG_MTD_DEBUG is not set 462# CONFIG_MTD_DEBUG is not set
463# CONFIG_MTD_TESTS is not set
460# CONFIG_MTD_CONCAT is not set 464# CONFIG_MTD_CONCAT is not set
461CONFIG_MTD_PARTITIONS=y 465CONFIG_MTD_PARTITIONS=y
462# CONFIG_MTD_REDBOOT_PARTS is not set 466# CONFIG_MTD_REDBOOT_PARTS is not set
463# CONFIG_MTD_CMDLINE_PARTS is not set 467# CONFIG_MTD_CMDLINE_PARTS is not set
468# CONFIG_MTD_AR7_PARTS is not set
464 469
465# 470#
466# User Modules And Translation Layers 471# User Modules And Translation Layers
@@ -473,6 +478,7 @@ CONFIG_MTD_BLOCK=y
473# CONFIG_INFTL is not set 478# CONFIG_INFTL is not set
474# CONFIG_RFD_FTL is not set 479# CONFIG_RFD_FTL is not set
475# CONFIG_SSFDC is not set 480# CONFIG_SSFDC is not set
481# CONFIG_MTD_OOPS is not set
476 482
477# 483#
478# RAM/ROM/Flash chip drivers 484# RAM/ROM/Flash chip drivers
@@ -498,14 +504,14 @@ CONFIG_MTD_CFI_UTIL=y
498# CONFIG_MTD_RAM is not set 504# CONFIG_MTD_RAM is not set
499# CONFIG_MTD_ROM is not set 505# CONFIG_MTD_ROM is not set
500# CONFIG_MTD_ABSENT is not set 506# CONFIG_MTD_ABSENT is not set
501# CONFIG_MTD_OBSOLETE_CHIPS is not set
502 507
503# 508#
504# Mapping drivers for chip access 509# Mapping drivers for chip access
505# 510#
506# CONFIG_MTD_COMPLEX_MAPPINGS is not set 511# CONFIG_MTD_COMPLEX_MAPPINGS is not set
507# CONFIG_MTD_PHYSMAP is not set 512CONFIG_MTD_PHYSMAP=y
508CONFIG_MTD_ALCHEMY=y 513# CONFIG_MTD_PHYSMAP_COMPAT is not set
514# CONFIG_MTD_INTEL_VR_NOR is not set
509# CONFIG_MTD_PLATRAM is not set 515# CONFIG_MTD_PLATRAM is not set
510 516
511# 517#
@@ -523,30 +529,20 @@ CONFIG_MTD_ALCHEMY=y
523# CONFIG_MTD_DOC2000 is not set 529# CONFIG_MTD_DOC2000 is not set
524# CONFIG_MTD_DOC2001 is not set 530# CONFIG_MTD_DOC2001 is not set
525# CONFIG_MTD_DOC2001PLUS is not set 531# CONFIG_MTD_DOC2001PLUS is not set
526
527#
528# NAND Flash Device Drivers
529#
530# CONFIG_MTD_NAND is not set 532# CONFIG_MTD_NAND is not set
531
532#
533# OneNAND Flash Device Drivers
534#
535# CONFIG_MTD_ONENAND is not set 533# CONFIG_MTD_ONENAND is not set
536 534
537# 535#
538# Parallel port support 536# LPDDR flash memory drivers
539# 537#
540# CONFIG_PARPORT is not set 538# CONFIG_MTD_LPDDR is not set
541 539
542# 540#
543# Plug and Play support 541# UBI - Unsorted block images
544#
545# CONFIG_PNPACPI is not set
546
547#
548# Block devices
549# 542#
543# CONFIG_MTD_UBI is not set
544# CONFIG_PARPORT is not set
545CONFIG_BLK_DEV=y
550# CONFIG_BLK_CPQ_DA is not set 546# CONFIG_BLK_CPQ_DA is not set
551# CONFIG_BLK_CPQ_CISS_DA is not set 547# CONFIG_BLK_CPQ_CISS_DA is not set
552# CONFIG_BLK_DEV_DAC960 is not set 548# CONFIG_BLK_DEV_DAC960 is not set
@@ -554,67 +550,66 @@ CONFIG_MTD_ALCHEMY=y
554# CONFIG_BLK_DEV_COW_COMMON is not set 550# CONFIG_BLK_DEV_COW_COMMON is not set
555CONFIG_BLK_DEV_LOOP=y 551CONFIG_BLK_DEV_LOOP=y
556# CONFIG_BLK_DEV_CRYPTOLOOP is not set 552# CONFIG_BLK_DEV_CRYPTOLOOP is not set
557# CONFIG_BLK_DEV_NBD is not set
558# CONFIG_BLK_DEV_SX8 is not set
559# CONFIG_BLK_DEV_RAM is not set
560# CONFIG_BLK_DEV_INITRD is not set
561CONFIG_CDROM_PKTCDVD=m
562CONFIG_CDROM_PKTCDVD_BUFFERS=8
563# CONFIG_CDROM_PKTCDVD_WCACHE is not set
564CONFIG_ATA_OVER_ETH=m
565
566#
567# Misc devices
568#
569CONFIG_SGI_IOC4=m
570# CONFIG_TIFM_CORE is not set
571 553
572# 554#
573# ATA/ATAPI/MFM/RLL support 555# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
574# 556#
557# CONFIG_BLK_DEV_NBD is not set
558# CONFIG_BLK_DEV_SX8 is not set
559CONFIG_BLK_DEV_UB=y
560# CONFIG_BLK_DEV_RAM is not set
561# CONFIG_CDROM_PKTCDVD is not set
562# CONFIG_ATA_OVER_ETH is not set
563# CONFIG_BLK_DEV_HD is not set
564# CONFIG_MISC_DEVICES is not set
565CONFIG_HAVE_IDE=y
575CONFIG_IDE=y 566CONFIG_IDE=y
576CONFIG_IDE_MAX_HWIFS=4
577CONFIG_BLK_DEV_IDE=y
578 567
579# 568#
580# Please see Documentation/ide.txt for help/info on IDE drives 569# Please see Documentation/ide/ide.txt for help/info on IDE drives
581# 570#
571CONFIG_IDE_XFER_MODE=y
572CONFIG_IDE_ATAPI=y
582# CONFIG_BLK_DEV_IDE_SATA is not set 573# CONFIG_BLK_DEV_IDE_SATA is not set
583CONFIG_BLK_DEV_IDEDISK=y 574CONFIG_IDE_GD=y
584# CONFIG_IDEDISK_MULTI_MODE is not set 575CONFIG_IDE_GD_ATA=y
585CONFIG_BLK_DEV_IDECS=m 576# CONFIG_IDE_GD_ATAPI is not set
586# CONFIG_BLK_DEV_DELKIN is not set 577CONFIG_BLK_DEV_IDECS=y
587# CONFIG_BLK_DEV_IDECD is not set 578CONFIG_BLK_DEV_IDECD=y
579CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
588# CONFIG_BLK_DEV_IDETAPE is not set 580# CONFIG_BLK_DEV_IDETAPE is not set
589# CONFIG_BLK_DEV_IDEFLOPPY is not set 581CONFIG_IDE_TASK_IOCTL=y
590# CONFIG_IDE_TASK_IOCTL is not set 582CONFIG_IDE_PROC_FS=y
591 583
592# 584#
593# IDE chipset support/bugfixes 585# IDE chipset support/bugfixes
594# 586#
595CONFIG_IDE_GENERIC=y 587# CONFIG_IDE_GENERIC is not set
588# CONFIG_BLK_DEV_PLATFORM is not set
589CONFIG_BLK_DEV_IDEDMA_SFF=y
590
591#
592# PCI IDE chipsets support
593#
596CONFIG_BLK_DEV_IDEPCI=y 594CONFIG_BLK_DEV_IDEPCI=y
597# CONFIG_IDEPCI_SHARE_IRQ is not set 595# CONFIG_IDEPCI_PCIBUS_ORDER is not set
598# CONFIG_BLK_DEV_OFFBOARD is not set 596# CONFIG_BLK_DEV_OFFBOARD is not set
599CONFIG_BLK_DEV_GENERIC=y 597# CONFIG_BLK_DEV_GENERIC is not set
600# CONFIG_BLK_DEV_OPTI621 is not set 598# CONFIG_BLK_DEV_OPTI621 is not set
601CONFIG_BLK_DEV_IDEDMA_PCI=y 599CONFIG_BLK_DEV_IDEDMA_PCI=y
602# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
603# CONFIG_IDEDMA_PCI_AUTO is not set
604# CONFIG_BLK_DEV_AEC62XX is not set 600# CONFIG_BLK_DEV_AEC62XX is not set
605# CONFIG_BLK_DEV_ALI15X3 is not set 601# CONFIG_BLK_DEV_ALI15X3 is not set
606# CONFIG_BLK_DEV_AMD74XX is not set 602# CONFIG_BLK_DEV_AMD74XX is not set
607# CONFIG_BLK_DEV_CMD64X is not set 603# CONFIG_BLK_DEV_CMD64X is not set
608# CONFIG_BLK_DEV_TRIFLEX is not set 604# CONFIG_BLK_DEV_TRIFLEX is not set
609# CONFIG_BLK_DEV_CY82C693 is not set
610# CONFIG_BLK_DEV_CS5520 is not set 605# CONFIG_BLK_DEV_CS5520 is not set
611# CONFIG_BLK_DEV_CS5530 is not set 606# CONFIG_BLK_DEV_CS5530 is not set
612# CONFIG_BLK_DEV_HPT34X is not set
613CONFIG_BLK_DEV_HPT366=y 607CONFIG_BLK_DEV_HPT366=y
614# CONFIG_BLK_DEV_JMICRON is not set 608# CONFIG_BLK_DEV_JMICRON is not set
615# CONFIG_BLK_DEV_SC1200 is not set 609# CONFIG_BLK_DEV_SC1200 is not set
616# CONFIG_BLK_DEV_PIIX is not set 610# CONFIG_BLK_DEV_PIIX is not set
617CONFIG_BLK_DEV_IT8213=m 611# CONFIG_BLK_DEV_IT8172 is not set
612# CONFIG_BLK_DEV_IT8213 is not set
618# CONFIG_BLK_DEV_IT821X is not set 613# CONFIG_BLK_DEV_IT821X is not set
619# CONFIG_BLK_DEV_NS87415 is not set 614# CONFIG_BLK_DEV_NS87415 is not set
620# CONFIG_BLK_DEV_PDC202XX_OLD is not set 615# CONFIG_BLK_DEV_PDC202XX_OLD is not set
@@ -624,82 +619,65 @@ CONFIG_BLK_DEV_IT8213=m
624# CONFIG_BLK_DEV_SLC90E66 is not set 619# CONFIG_BLK_DEV_SLC90E66 is not set
625# CONFIG_BLK_DEV_TRM290 is not set 620# CONFIG_BLK_DEV_TRM290 is not set
626# CONFIG_BLK_DEV_VIA82CXXX is not set 621# CONFIG_BLK_DEV_VIA82CXXX is not set
627CONFIG_BLK_DEV_TC86C001=m 622# CONFIG_BLK_DEV_TC86C001 is not set
628# CONFIG_IDE_ARM is not set
629CONFIG_BLK_DEV_IDEDMA=y 623CONFIG_BLK_DEV_IDEDMA=y
630# CONFIG_IDEDMA_IVB is not set
631# CONFIG_IDEDMA_AUTO is not set
632# CONFIG_BLK_DEV_HD is not set
633 624
634# 625#
635# SCSI device support 626# SCSI device support
636# 627#
637CONFIG_RAID_ATTRS=m 628# CONFIG_RAID_ATTRS is not set
638# CONFIG_SCSI is not set 629# CONFIG_SCSI is not set
630# CONFIG_SCSI_DMA is not set
639# CONFIG_SCSI_NETLINK is not set 631# CONFIG_SCSI_NETLINK is not set
640
641#
642# Serial ATA (prod) and Parallel ATA (experimental) drivers
643#
644# CONFIG_ATA is not set 632# CONFIG_ATA is not set
645
646#
647# Multi-device support (RAID and LVM)
648#
649# CONFIG_MD is not set 633# CONFIG_MD is not set
650
651#
652# Fusion MPT device support
653#
654# CONFIG_FUSION is not set 634# CONFIG_FUSION is not set
655 635
656# 636#
657# IEEE 1394 (FireWire) support 637# IEEE 1394 (FireWire) support
658# 638#
659# CONFIG_IEEE1394 is not set
660 639
661# 640#
662# I2O device support 641# You can enable one or both FireWire driver stacks.
663# 642#
664# CONFIG_I2O is not set
665 643
666# 644#
667# Network device support 645# The newer stack is recommended.
668# 646#
647# CONFIG_FIREWIRE is not set
648# CONFIG_IEEE1394 is not set
649# CONFIG_I2O is not set
669CONFIG_NETDEVICES=y 650CONFIG_NETDEVICES=y
670# CONFIG_DUMMY is not set 651# CONFIG_DUMMY is not set
671# CONFIG_BONDING is not set 652# CONFIG_BONDING is not set
653# CONFIG_MACVLAN is not set
672# CONFIG_EQUALIZER is not set 654# CONFIG_EQUALIZER is not set
673# CONFIG_TUN is not set 655# CONFIG_TUN is not set
674 656# CONFIG_VETH is not set
675#
676# ARCnet devices
677#
678# CONFIG_ARCNET is not set 657# CONFIG_ARCNET is not set
679
680#
681# PHY device support
682#
683CONFIG_PHYLIB=y 658CONFIG_PHYLIB=y
684 659
685# 660#
686# MII PHY device drivers 661# MII PHY device drivers
687# 662#
688CONFIG_MARVELL_PHY=m 663CONFIG_MARVELL_PHY=y
689CONFIG_DAVICOM_PHY=m 664CONFIG_DAVICOM_PHY=y
690CONFIG_QSEMI_PHY=m 665CONFIG_QSEMI_PHY=y
691CONFIG_LXT_PHY=m 666CONFIG_LXT_PHY=y
692CONFIG_CICADA_PHY=m 667CONFIG_CICADA_PHY=y
693CONFIG_VITESSE_PHY=m 668CONFIG_VITESSE_PHY=y
694CONFIG_SMSC_PHY=m 669CONFIG_SMSC_PHY=y
695# CONFIG_BROADCOM_PHY is not set 670CONFIG_BROADCOM_PHY=y
671CONFIG_ICPLUS_PHY=y
672CONFIG_REALTEK_PHY=y
673CONFIG_NATIONAL_PHY=y
674CONFIG_STE10XP=y
675CONFIG_LSI_ET1011C_PHY=y
696# CONFIG_FIXED_PHY is not set 676# CONFIG_FIXED_PHY is not set
697 677# CONFIG_MDIO_BITBANG is not set
698#
699# Ethernet (10 or 100Mbit)
700#
701CONFIG_NET_ETHERNET=y 678CONFIG_NET_ETHERNET=y
702CONFIG_MII=m 679CONFIG_MII=y
680# CONFIG_AX88796 is not set
703CONFIG_MIPS_AU1X00_ENET=y 681CONFIG_MIPS_AU1X00_ENET=y
704# CONFIG_HAPPYMEAL is not set 682# CONFIG_HAPPYMEAL is not set
705# CONFIG_SUNGEM is not set 683# CONFIG_SUNGEM is not set
@@ -707,96 +685,51 @@ CONFIG_MIPS_AU1X00_ENET=y
707# CONFIG_NET_VENDOR_3COM is not set 685# CONFIG_NET_VENDOR_3COM is not set
708# CONFIG_SMC91X is not set 686# CONFIG_SMC91X is not set
709# CONFIG_DM9000 is not set 687# CONFIG_DM9000 is not set
710 688# CONFIG_ETHOC is not set
711# 689# CONFIG_SMSC911X is not set
712# Tulip family network device support 690# CONFIG_DNET is not set
713#
714# CONFIG_NET_TULIP is not set 691# CONFIG_NET_TULIP is not set
715# CONFIG_HP100 is not set 692# CONFIG_HP100 is not set
693# CONFIG_IBM_NEW_EMAC_ZMII is not set
694# CONFIG_IBM_NEW_EMAC_RGMII is not set
695# CONFIG_IBM_NEW_EMAC_TAH is not set
696# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
697# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
698# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
699# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
716# CONFIG_NET_PCI is not set 700# CONFIG_NET_PCI is not set
717 701# CONFIG_B44 is not set
718# 702# CONFIG_KS8842 is not set
719# Ethernet (1000 Mbit) 703# CONFIG_KS8851_MLL is not set
720# 704# CONFIG_ATL2 is not set
721# CONFIG_ACENIC is not set 705# CONFIG_NETDEV_1000 is not set
722# CONFIG_DL2K is not set 706# CONFIG_NETDEV_10000 is not set
723# CONFIG_E1000 is not set
724# CONFIG_NS83820 is not set
725# CONFIG_HAMACHI is not set
726# CONFIG_YELLOWFIN is not set
727# CONFIG_R8169 is not set
728# CONFIG_SIS190 is not set
729# CONFIG_SKGE is not set
730# CONFIG_SKY2 is not set
731# CONFIG_SK98LIN is not set
732# CONFIG_TIGON3 is not set
733# CONFIG_BNX2 is not set
734CONFIG_QLA3XXX=m
735# CONFIG_ATL1 is not set
736
737#
738# Ethernet (10000 Mbit)
739#
740# CONFIG_CHELSIO_T1 is not set
741CONFIG_CHELSIO_T3=m
742# CONFIG_IXGB is not set
743# CONFIG_S2IO is not set
744# CONFIG_MYRI10GE is not set
745CONFIG_NETXEN_NIC=m
746
747#
748# Token Ring devices
749#
750# CONFIG_TR is not set 707# CONFIG_TR is not set
708# CONFIG_WLAN is not set
751 709
752# 710#
753# Wireless LAN (non-hamradio) 711# Enable WiMAX (Networking options) to see the WiMAX drivers
754# 712#
755# CONFIG_NET_RADIO is not set
756 713
757# 714#
758# PCMCIA network device support 715# USB Network Adapters
759#
760CONFIG_NET_PCMCIA=y
761CONFIG_PCMCIA_3C589=m
762CONFIG_PCMCIA_3C574=m
763CONFIG_PCMCIA_FMVJ18X=m
764CONFIG_PCMCIA_PCNET=m
765CONFIG_PCMCIA_NMCLAN=m
766CONFIG_PCMCIA_SMC91C92=m
767CONFIG_PCMCIA_XIRC2PS=m
768CONFIG_PCMCIA_AXNET=m
769
770#
771# Wan interfaces
772# 716#
717# CONFIG_USB_CATC is not set
718# CONFIG_USB_KAWETH is not set
719# CONFIG_USB_PEGASUS is not set
720# CONFIG_USB_RTL8150 is not set
721# CONFIG_USB_USBNET is not set
722# CONFIG_NET_PCMCIA is not set
773# CONFIG_WAN is not set 723# CONFIG_WAN is not set
774# CONFIG_FDDI is not set 724# CONFIG_FDDI is not set
775# CONFIG_HIPPI is not set 725# CONFIG_HIPPI is not set
776CONFIG_PPP=m 726# CONFIG_PPP is not set
777CONFIG_PPP_MULTILINK=y
778# CONFIG_PPP_FILTER is not set
779CONFIG_PPP_ASYNC=m
780# CONFIG_PPP_SYNC_TTY is not set
781CONFIG_PPP_DEFLATE=m
782# CONFIG_PPP_BSDCOMP is not set
783CONFIG_PPP_MPPE=m
784CONFIG_PPPOE=m
785# CONFIG_SLIP is not set 727# CONFIG_SLIP is not set
786CONFIG_SLHC=m
787# CONFIG_SHAPER is not set
788# CONFIG_NETCONSOLE is not set 728# CONFIG_NETCONSOLE is not set
789# CONFIG_NETPOLL is not set 729# CONFIG_NETPOLL is not set
790# CONFIG_NET_POLL_CONTROLLER is not set 730# CONFIG_NET_POLL_CONTROLLER is not set
791 731# CONFIG_VMXNET3 is not set
792#
793# ISDN subsystem
794#
795# CONFIG_ISDN is not set 732# CONFIG_ISDN is not set
796
797#
798# Telephony Support
799#
800# CONFIG_PHONE is not set 733# CONFIG_PHONE is not set
801 734
802# 735#
@@ -804,16 +737,14 @@ CONFIG_SLHC=m
804# 737#
805CONFIG_INPUT=y 738CONFIG_INPUT=y
806# CONFIG_INPUT_FF_MEMLESS is not set 739# CONFIG_INPUT_FF_MEMLESS is not set
740# CONFIG_INPUT_POLLDEV is not set
741# CONFIG_INPUT_SPARSEKMAP is not set
807 742
808# 743#
809# Userland interfaces 744# Userland interfaces
810# 745#
811CONFIG_INPUT_MOUSEDEV=y 746# CONFIG_INPUT_MOUSEDEV is not set
812CONFIG_INPUT_MOUSEDEV_PSAUX=y
813CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
814CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
815# CONFIG_INPUT_JOYDEV is not set 747# CONFIG_INPUT_JOYDEV is not set
816# CONFIG_INPUT_TSDEV is not set
817CONFIG_INPUT_EVDEV=y 748CONFIG_INPUT_EVDEV=y
818# CONFIG_INPUT_EVBUG is not set 749# CONFIG_INPUT_EVBUG is not set
819 750
@@ -823,33 +754,34 @@ CONFIG_INPUT_EVDEV=y
823# CONFIG_INPUT_KEYBOARD is not set 754# CONFIG_INPUT_KEYBOARD is not set
824# CONFIG_INPUT_MOUSE is not set 755# CONFIG_INPUT_MOUSE is not set
825# CONFIG_INPUT_JOYSTICK is not set 756# CONFIG_INPUT_JOYSTICK is not set
757# CONFIG_INPUT_TABLET is not set
826# CONFIG_INPUT_TOUCHSCREEN is not set 758# CONFIG_INPUT_TOUCHSCREEN is not set
827# CONFIG_INPUT_MISC is not set 759# CONFIG_INPUT_MISC is not set
828 760
829# 761#
830# Hardware I/O ports 762# Hardware I/O ports
831# 763#
832CONFIG_SERIO=y 764# CONFIG_SERIO is not set
833# CONFIG_SERIO_I8042 is not set
834CONFIG_SERIO_SERPORT=y
835# CONFIG_SERIO_PCIPS2 is not set
836# CONFIG_SERIO_LIBPS2 is not set
837CONFIG_SERIO_RAW=m
838# CONFIG_GAMEPORT is not set 765# CONFIG_GAMEPORT is not set
839 766
840# 767#
841# Character devices 768# Character devices
842# 769#
843# CONFIG_VT is not set 770CONFIG_VT=y
771CONFIG_CONSOLE_TRANSLATIONS=y
772CONFIG_VT_CONSOLE=y
773CONFIG_HW_CONSOLE=y
774CONFIG_VT_HW_CONSOLE_BINDING=y
775CONFIG_DEVKMEM=y
844# CONFIG_SERIAL_NONSTANDARD is not set 776# CONFIG_SERIAL_NONSTANDARD is not set
845# CONFIG_AU1X00_GPIO is not set 777# CONFIG_NOZOMI is not set
846 778
847# 779#
848# Serial drivers 780# Serial drivers
849# 781#
850CONFIG_SERIAL_8250=y 782CONFIG_SERIAL_8250=y
851CONFIG_SERIAL_8250_CONSOLE=y 783CONFIG_SERIAL_8250_CONSOLE=y
852CONFIG_SERIAL_8250_PCI=y 784# CONFIG_SERIAL_8250_PCI is not set
853# CONFIG_SERIAL_8250_CS is not set 785# CONFIG_SERIAL_8250_CS is not set
854CONFIG_SERIAL_8250_NR_UARTS=4 786CONFIG_SERIAL_8250_NR_UARTS=4
855CONFIG_SERIAL_8250_RUNTIME_UARTS=4 787CONFIG_SERIAL_8250_RUNTIME_UARTS=4
@@ -863,282 +795,450 @@ CONFIG_SERIAL_CORE=y
863CONFIG_SERIAL_CORE_CONSOLE=y 795CONFIG_SERIAL_CORE_CONSOLE=y
864# CONFIG_SERIAL_JSM is not set 796# CONFIG_SERIAL_JSM is not set
865CONFIG_UNIX98_PTYS=y 797CONFIG_UNIX98_PTYS=y
866CONFIG_LEGACY_PTYS=y 798# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
867CONFIG_LEGACY_PTY_COUNT=256 799# CONFIG_LEGACY_PTYS is not set
868
869#
870# IPMI
871#
872# CONFIG_IPMI_HANDLER is not set 800# CONFIG_IPMI_HANDLER is not set
873
874#
875# Watchdog Cards
876#
877# CONFIG_WATCHDOG is not set
878# CONFIG_HW_RANDOM is not set 801# CONFIG_HW_RANDOM is not set
879# CONFIG_RTC is not set
880# CONFIG_GEN_RTC is not set
881# CONFIG_DTLK is not set
882# CONFIG_R3964 is not set 802# CONFIG_R3964 is not set
883# CONFIG_APPLICOM is not set 803# CONFIG_APPLICOM is not set
884# CONFIG_DRM is not set
885 804
886# 805#
887# PCMCIA character devices 806# PCMCIA character devices
888# 807#
889CONFIG_SYNCLINK_CS=m 808# CONFIG_SYNCLINK_CS is not set
890# CONFIG_CARDMAN_4000 is not set 809# CONFIG_CARDMAN_4000 is not set
891# CONFIG_CARDMAN_4040 is not set 810# CONFIG_CARDMAN_4040 is not set
811# CONFIG_IPWIRELESS is not set
892# CONFIG_RAW_DRIVER is not set 812# CONFIG_RAW_DRIVER is not set
893
894#
895# TPM devices
896#
897# CONFIG_TCG_TPM is not set 813# CONFIG_TCG_TPM is not set
898 814CONFIG_DEVPORT=y
899#
900# I2C support
901#
902# CONFIG_I2C is not set 815# CONFIG_I2C is not set
903
904#
905# SPI support
906#
907# CONFIG_SPI is not set 816# CONFIG_SPI is not set
908# CONFIG_SPI_MASTER is not set
909 817
910# 818#
911# Dallas's 1-wire bus 819# PPS support
912# 820#
821# CONFIG_PPS is not set
822CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
823# CONFIG_GPIOLIB is not set
913# CONFIG_W1 is not set 824# CONFIG_W1 is not set
914 825# CONFIG_POWER_SUPPLY is not set
915#
916# Hardware Monitoring support
917#
918# CONFIG_HWMON is not set 826# CONFIG_HWMON is not set
919# CONFIG_HWMON_VID is not set 827# CONFIG_THERMAL is not set
828# CONFIG_WATCHDOG is not set
829CONFIG_SSB_POSSIBLE=y
920 830
921# 831#
922# Multimedia devices 832# Sonics Silicon Backplane
923# 833#
924# CONFIG_VIDEO_DEV is not set 834# CONFIG_SSB is not set
925 835
926# 836#
927# Digital Video Broadcasting Devices 837# Multifunction device drivers
928# 838#
929# CONFIG_DVB is not set 839# CONFIG_MFD_CORE is not set
840# CONFIG_MFD_SM501 is not set
841# CONFIG_HTC_PASIC3 is not set
842# CONFIG_MFD_TMIO is not set
843# CONFIG_REGULATOR is not set
844# CONFIG_MEDIA_SUPPORT is not set
930 845
931# 846#
932# Graphics support 847# Graphics support
933# 848#
934# CONFIG_FIRMWARE_EDID is not set 849# CONFIG_VGA_ARB is not set
935# CONFIG_FB is not set 850# CONFIG_DRM is not set
851# CONFIG_VGASTATE is not set
852# CONFIG_VIDEO_OUTPUT_CONTROL is not set
853CONFIG_FB=y
854CONFIG_FIRMWARE_EDID=y
855# CONFIG_FB_DDC is not set
856# CONFIG_FB_BOOT_VESA_SUPPORT is not set
857CONFIG_FB_CFB_FILLRECT=y
858CONFIG_FB_CFB_COPYAREA=y
859CONFIG_FB_CFB_IMAGEBLIT=y
860# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
861# CONFIG_FB_SYS_FILLRECT is not set
862# CONFIG_FB_SYS_COPYAREA is not set
863# CONFIG_FB_SYS_IMAGEBLIT is not set
864# CONFIG_FB_FOREIGN_ENDIAN is not set
865# CONFIG_FB_SYS_FOPS is not set
866# CONFIG_FB_SVGALIB is not set
867# CONFIG_FB_MACMODES is not set
868# CONFIG_FB_BACKLIGHT is not set
869CONFIG_FB_MODE_HELPERS=y
870CONFIG_FB_TILEBLITTING=y
871
872#
873# Frame buffer hardware drivers
874#
875# CONFIG_FB_CIRRUS is not set
876# CONFIG_FB_PM2 is not set
877# CONFIG_FB_CYBER2000 is not set
878# CONFIG_FB_ASILIANT is not set
879# CONFIG_FB_IMSTT is not set
880CONFIG_FB_S1D13XXX=y
881# CONFIG_FB_NVIDIA is not set
882# CONFIG_FB_RIVA is not set
883# CONFIG_FB_MATROX is not set
884# CONFIG_FB_RADEON is not set
885# CONFIG_FB_ATY128 is not set
886# CONFIG_FB_ATY is not set
887# CONFIG_FB_S3 is not set
888# CONFIG_FB_SAVAGE is not set
889# CONFIG_FB_SIS is not set
890# CONFIG_FB_VIA is not set
891# CONFIG_FB_NEOMAGIC is not set
892# CONFIG_FB_KYRO is not set
893# CONFIG_FB_3DFX is not set
894# CONFIG_FB_VOODOO1 is not set
895# CONFIG_FB_VT8623 is not set
896# CONFIG_FB_TRIDENT is not set
897# CONFIG_FB_ARK is not set
898# CONFIG_FB_PM3 is not set
899# CONFIG_FB_CARMINE is not set
900# CONFIG_FB_VIRTUAL is not set
901# CONFIG_FB_METRONOME is not set
902# CONFIG_FB_MB862XX is not set
903# CONFIG_FB_BROADSHEET is not set
936# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 904# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
937 905
938# 906#
939# Sound 907# Display device support
940# 908#
941# CONFIG_SOUND is not set 909# CONFIG_DISPLAY_SUPPORT is not set
942
943#
944# HID Devices
945#
946# CONFIG_HID is not set
947 910
948# 911#
949# USB support 912# Console display driver support
950# 913#
914CONFIG_VGA_CONSOLE=y
915# CONFIG_VGACON_SOFT_SCROLLBACK is not set
916CONFIG_DUMMY_CONSOLE=y
917# CONFIG_FRAMEBUFFER_CONSOLE is not set
918# CONFIG_LOGO is not set
919# CONFIG_SOUND is not set
920CONFIG_HID_SUPPORT=y
921CONFIG_HID=y
922# CONFIG_HIDRAW is not set
923
924#
925# USB Input Devices
926#
927CONFIG_USB_HID=y
928# CONFIG_HID_PID is not set
929CONFIG_USB_HIDDEV=y
930
931#
932# Special HID drivers
933#
934# CONFIG_HID_A4TECH is not set
935# CONFIG_HID_APPLE is not set
936# CONFIG_HID_BELKIN is not set
937# CONFIG_HID_CHERRY is not set
938# CONFIG_HID_CHICONY is not set
939# CONFIG_HID_CYPRESS is not set
940# CONFIG_HID_DRAGONRISE is not set
941# CONFIG_HID_EZKEY is not set
942# CONFIG_HID_KYE is not set
943# CONFIG_HID_GYRATION is not set
944# CONFIG_HID_TWINHAN is not set
945# CONFIG_HID_KENSINGTON is not set
946# CONFIG_HID_LOGITECH is not set
947# CONFIG_HID_MICROSOFT is not set
948# CONFIG_HID_MONTEREY is not set
949# CONFIG_HID_NTRIG is not set
950# CONFIG_HID_PANTHERLORD is not set
951# CONFIG_HID_PETALYNX is not set
952# CONFIG_HID_SAMSUNG is not set
953# CONFIG_HID_SONY is not set
954# CONFIG_HID_SUNPLUS is not set
955# CONFIG_HID_GREENASIA is not set
956# CONFIG_HID_SMARTJOYPLUS is not set
957# CONFIG_HID_TOPSEED is not set
958# CONFIG_HID_THRUSTMASTER is not set
959# CONFIG_HID_ZEROPLUS is not set
960CONFIG_USB_SUPPORT=y
951CONFIG_USB_ARCH_HAS_HCD=y 961CONFIG_USB_ARCH_HAS_HCD=y
952CONFIG_USB_ARCH_HAS_OHCI=y 962CONFIG_USB_ARCH_HAS_OHCI=y
953CONFIG_USB_ARCH_HAS_EHCI=y 963CONFIG_USB_ARCH_HAS_EHCI=y
954# CONFIG_USB is not set 964CONFIG_USB=y
965# CONFIG_USB_DEBUG is not set
966# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
955 967
956# 968#
957# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 969# Miscellaneous USB options
958# 970#
971# CONFIG_USB_DEVICEFS is not set
972# CONFIG_USB_DEVICE_CLASS is not set
973CONFIG_USB_DYNAMIC_MINORS=y
974# CONFIG_USB_SUSPEND is not set
975# CONFIG_USB_OTG is not set
976CONFIG_USB_OTG_WHITELIST=y
977# CONFIG_USB_OTG_BLACKLIST_HUB is not set
978# CONFIG_USB_MON is not set
979# CONFIG_USB_WUSB is not set
980# CONFIG_USB_WUSB_CBAF is not set
959 981
960# 982#
961# USB Gadget Support 983# USB Host Controller Drivers
962# 984#
963# CONFIG_USB_GADGET is not set 985# CONFIG_USB_C67X00_HCD is not set
986# CONFIG_USB_XHCI_HCD is not set
987# CONFIG_USB_EHCI_HCD is not set
988# CONFIG_USB_OXU210HP_HCD is not set
989# CONFIG_USB_ISP116X_HCD is not set
990# CONFIG_USB_ISP1760_HCD is not set
991# CONFIG_USB_ISP1362_HCD is not set
992CONFIG_USB_OHCI_HCD=y
993# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
994# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
995CONFIG_USB_OHCI_LITTLE_ENDIAN=y
996# CONFIG_USB_UHCI_HCD is not set
997# CONFIG_USB_SL811_HCD is not set
998# CONFIG_USB_R8A66597_HCD is not set
999# CONFIG_USB_WHCI_HCD is not set
1000# CONFIG_USB_HWA_HCD is not set
964 1001
965# 1002#
966# MMC/SD Card support 1003# USB Device Class drivers
967# 1004#
968# CONFIG_MMC is not set 1005# CONFIG_USB_ACM is not set
1006# CONFIG_USB_PRINTER is not set
1007# CONFIG_USB_WDM is not set
1008# CONFIG_USB_TMC is not set
969 1009
970# 1010#
971# LED devices 1011# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
972# 1012#
973# CONFIG_NEW_LEDS is not set
974 1013
975# 1014#
976# LED drivers 1015# also be needed; see USB_STORAGE Help for more info
977# 1016#
1017# CONFIG_USB_LIBUSUAL is not set
978 1018
979# 1019#
980# LED Triggers 1020# USB Imaging devices
981# 1021#
1022# CONFIG_USB_MDC800 is not set
982 1023
983# 1024#
984# InfiniBand support 1025# USB port drivers
985# 1026#
986# CONFIG_INFINIBAND is not set 1027# CONFIG_USB_SERIAL is not set
987 1028
988# 1029#
989# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 1030# USB Miscellaneous drivers
990# 1031#
1032# CONFIG_USB_EMI62 is not set
1033# CONFIG_USB_EMI26 is not set
1034# CONFIG_USB_ADUTUX is not set
1035# CONFIG_USB_SEVSEG is not set
1036# CONFIG_USB_RIO500 is not set
1037# CONFIG_USB_LEGOTOWER is not set
1038# CONFIG_USB_LCD is not set
1039# CONFIG_USB_BERRY_CHARGE is not set
1040# CONFIG_USB_LED is not set
1041# CONFIG_USB_CYPRESS_CY7C63 is not set
1042# CONFIG_USB_CYTHERM is not set
1043# CONFIG_USB_IDMOUSE is not set
1044# CONFIG_USB_FTDI_ELAN is not set
1045# CONFIG_USB_APPLEDISPLAY is not set
1046# CONFIG_USB_LD is not set
1047# CONFIG_USB_TRANCEVIBRATOR is not set
1048# CONFIG_USB_IOWARRIOR is not set
1049# CONFIG_USB_TEST is not set
1050# CONFIG_USB_ISIGHTFW is not set
1051# CONFIG_USB_VST is not set
1052# CONFIG_USB_GADGET is not set
991 1053
992# 1054#
993# Real Time Clock 1055# OTG and related infrastructure
994# 1056#
995# CONFIG_RTC_CLASS is not set 1057# CONFIG_USB_GPIO_VBUS is not set
1058# CONFIG_NOP_USB_XCEIV is not set
1059# CONFIG_UWB is not set
1060# CONFIG_MMC is not set
1061# CONFIG_MEMSTICK is not set
1062# CONFIG_NEW_LEDS is not set
1063# CONFIG_ACCESSIBILITY is not set
1064# CONFIG_INFINIBAND is not set
1065CONFIG_RTC_LIB=y
1066CONFIG_RTC_CLASS=y
1067CONFIG_RTC_HCTOSYS=y
1068CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1069# CONFIG_RTC_DEBUG is not set
996 1070
997# 1071#
998# DMA Engine support 1072# RTC interfaces
999# 1073#
1000# CONFIG_DMA_ENGINE is not set 1074CONFIG_RTC_INTF_SYSFS=y
1075CONFIG_RTC_INTF_PROC=y
1076CONFIG_RTC_INTF_DEV=y
1077# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1078# CONFIG_RTC_DRV_TEST is not set
1001 1079
1002# 1080#
1003# DMA Clients 1081# SPI RTC drivers
1004# 1082#
1005 1083
1006# 1084#
1007# DMA Devices 1085# Platform RTC drivers
1008# 1086#
1087# CONFIG_RTC_DRV_CMOS is not set
1088# CONFIG_RTC_DRV_DS1286 is not set
1089# CONFIG_RTC_DRV_DS1511 is not set
1090# CONFIG_RTC_DRV_DS1553 is not set
1091# CONFIG_RTC_DRV_DS1742 is not set
1092# CONFIG_RTC_DRV_STK17TA8 is not set
1093# CONFIG_RTC_DRV_M48T86 is not set
1094# CONFIG_RTC_DRV_M48T35 is not set
1095# CONFIG_RTC_DRV_M48T59 is not set
1096# CONFIG_RTC_DRV_MSM6242 is not set
1097# CONFIG_RTC_DRV_BQ4802 is not set
1098# CONFIG_RTC_DRV_RP5C01 is not set
1099# CONFIG_RTC_DRV_V3020 is not set
1009 1100
1010# 1101#
1011# Auxiliary Display support 1102# on-CPU RTC drivers
1012# 1103#
1104CONFIG_RTC_DRV_AU1XXX=y
1105# CONFIG_DMADEVICES is not set
1106# CONFIG_AUXDISPLAY is not set
1107# CONFIG_UIO is not set
1013 1108
1014# 1109#
1015# Virtualization 1110# TI VLYNQ
1016# 1111#
1112# CONFIG_STAGING is not set
1017 1113
1018# 1114#
1019# File systems 1115# File systems
1020# 1116#
1021CONFIG_EXT2_FS=y 1117CONFIG_EXT2_FS=y
1022CONFIG_EXT2_FS_XATTR=y 1118# CONFIG_EXT2_FS_XATTR is not set
1023CONFIG_EXT2_FS_POSIX_ACL=y
1024# CONFIG_EXT2_FS_SECURITY is not set
1025# CONFIG_EXT2_FS_XIP is not set 1119# CONFIG_EXT2_FS_XIP is not set
1026CONFIG_EXT3_FS=y 1120# CONFIG_EXT3_FS is not set
1027CONFIG_EXT3_FS_XATTR=y 1121# CONFIG_EXT4_FS is not set
1028CONFIG_EXT3_FS_POSIX_ACL=y 1122# CONFIG_REISERFS_FS is not set
1029CONFIG_EXT3_FS_SECURITY=y
1030# CONFIG_EXT4DEV_FS is not set
1031CONFIG_JBD=y
1032# CONFIG_JBD_DEBUG is not set
1033CONFIG_FS_MBCACHE=y
1034CONFIG_REISERFS_FS=m
1035# CONFIG_REISERFS_CHECK is not set
1036# CONFIG_REISERFS_PROC_INFO is not set
1037CONFIG_REISERFS_FS_XATTR=y
1038CONFIG_REISERFS_FS_POSIX_ACL=y
1039CONFIG_REISERFS_FS_SECURITY=y
1040# CONFIG_JFS_FS is not set 1123# CONFIG_JFS_FS is not set
1041CONFIG_FS_POSIX_ACL=y 1124# CONFIG_FS_POSIX_ACL is not set
1042# CONFIG_XFS_FS is not set 1125# CONFIG_XFS_FS is not set
1043# CONFIG_GFS2_FS is not set 1126# CONFIG_GFS2_FS is not set
1044# CONFIG_OCFS2_FS is not set 1127# CONFIG_OCFS2_FS is not set
1045# CONFIG_MINIX_FS is not set 1128# CONFIG_BTRFS_FS is not set
1046# CONFIG_ROMFS_FS is not set 1129# CONFIG_NILFS2_FS is not set
1130CONFIG_FILE_LOCKING=y
1131CONFIG_FSNOTIFY=y
1132CONFIG_DNOTIFY=y
1047CONFIG_INOTIFY=y 1133CONFIG_INOTIFY=y
1048CONFIG_INOTIFY_USER=y 1134CONFIG_INOTIFY_USER=y
1049# CONFIG_QUOTA is not set 1135# CONFIG_QUOTA is not set
1050CONFIG_DNOTIFY=y 1136# CONFIG_AUTOFS_FS is not set
1051CONFIG_AUTOFS_FS=m 1137# CONFIG_AUTOFS4_FS is not set
1052CONFIG_AUTOFS4_FS=m 1138# CONFIG_FUSE_FS is not set
1053CONFIG_FUSE_FS=m 1139
1054CONFIG_GENERIC_ACL=y 1140#
1141# Caches
1142#
1143# CONFIG_FSCACHE is not set
1055 1144
1056# 1145#
1057# CD-ROM/DVD Filesystems 1146# CD-ROM/DVD Filesystems
1058# 1147#
1059# CONFIG_ISO9660_FS is not set 1148CONFIG_ISO9660_FS=y
1060# CONFIG_UDF_FS is not set 1149CONFIG_JOLIET=y
1150CONFIG_ZISOFS=y
1151CONFIG_UDF_FS=y
1152CONFIG_UDF_NLS=y
1061 1153
1062# 1154#
1063# DOS/FAT/NT Filesystems 1155# DOS/FAT/NT Filesystems
1064# 1156#
1157CONFIG_FAT_FS=y
1065# CONFIG_MSDOS_FS is not set 1158# CONFIG_MSDOS_FS is not set
1066# CONFIG_VFAT_FS is not set 1159CONFIG_VFAT_FS=y
1160CONFIG_FAT_DEFAULT_CODEPAGE=437
1161CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1067# CONFIG_NTFS_FS is not set 1162# CONFIG_NTFS_FS is not set
1068 1163
1069# 1164#
1070# Pseudo filesystems 1165# Pseudo filesystems
1071# 1166#
1072CONFIG_PROC_FS=y 1167CONFIG_PROC_FS=y
1073CONFIG_PROC_KCORE=y 1168# CONFIG_PROC_KCORE is not set
1074CONFIG_PROC_SYSCTL=y 1169CONFIG_PROC_SYSCTL=y
1170# CONFIG_PROC_PAGE_MONITOR is not set
1075CONFIG_SYSFS=y 1171CONFIG_SYSFS=y
1076CONFIG_TMPFS=y 1172CONFIG_TMPFS=y
1077CONFIG_TMPFS_POSIX_ACL=y 1173# CONFIG_TMPFS_POSIX_ACL is not set
1078# CONFIG_HUGETLB_PAGE is not set 1174# CONFIG_HUGETLB_PAGE is not set
1079CONFIG_RAMFS=y 1175# CONFIG_CONFIGFS_FS is not set
1080CONFIG_CONFIGFS_FS=m 1176CONFIG_MISC_FILESYSTEMS=y
1081
1082#
1083# Miscellaneous filesystems
1084#
1085# CONFIG_ADFS_FS is not set 1177# CONFIG_ADFS_FS is not set
1086# CONFIG_AFFS_FS is not set 1178# CONFIG_AFFS_FS is not set
1087# CONFIG_ECRYPT_FS is not set
1088# CONFIG_HFS_FS is not set 1179# CONFIG_HFS_FS is not set
1089# CONFIG_HFSPLUS_FS is not set 1180# CONFIG_HFSPLUS_FS is not set
1090# CONFIG_BEFS_FS is not set 1181# CONFIG_BEFS_FS is not set
1091# CONFIG_BFS_FS is not set 1182# CONFIG_BFS_FS is not set
1092# CONFIG_EFS_FS is not set 1183# CONFIG_EFS_FS is not set
1093# CONFIG_JFFS2_FS is not set 1184CONFIG_JFFS2_FS=y
1094CONFIG_CRAMFS=m 1185CONFIG_JFFS2_FS_DEBUG=0
1186CONFIG_JFFS2_FS_WRITEBUFFER=y
1187# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1188CONFIG_JFFS2_SUMMARY=y
1189# CONFIG_JFFS2_FS_XATTR is not set
1190CONFIG_JFFS2_COMPRESSION_OPTIONS=y
1191CONFIG_JFFS2_ZLIB=y
1192CONFIG_JFFS2_LZO=y
1193CONFIG_JFFS2_RTIME=y
1194CONFIG_JFFS2_RUBIN=y
1195# CONFIG_JFFS2_CMODE_NONE is not set
1196CONFIG_JFFS2_CMODE_PRIORITY=y
1197# CONFIG_JFFS2_CMODE_SIZE is not set
1198# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
1199# CONFIG_CRAMFS is not set
1200CONFIG_SQUASHFS=y
1201# CONFIG_SQUASHFS_EMBEDDED is not set
1202CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
1095# CONFIG_VXFS_FS is not set 1203# CONFIG_VXFS_FS is not set
1204# CONFIG_MINIX_FS is not set
1205# CONFIG_OMFS_FS is not set
1096# CONFIG_HPFS_FS is not set 1206# CONFIG_HPFS_FS is not set
1097# CONFIG_QNX4FS_FS is not set 1207# CONFIG_QNX4FS_FS is not set
1208# CONFIG_ROMFS_FS is not set
1098# CONFIG_SYSV_FS is not set 1209# CONFIG_SYSV_FS is not set
1099# CONFIG_UFS_FS is not set 1210# CONFIG_UFS_FS is not set
1100 1211CONFIG_NETWORK_FILESYSTEMS=y
1101#
1102# Network File Systems
1103#
1104CONFIG_NFS_FS=y 1212CONFIG_NFS_FS=y
1105# CONFIG_NFS_V3 is not set 1213CONFIG_NFS_V3=y
1214# CONFIG_NFS_V3_ACL is not set
1106# CONFIG_NFS_V4 is not set 1215# CONFIG_NFS_V4 is not set
1107# CONFIG_NFS_DIRECTIO is not set
1108CONFIG_NFSD=m
1109# CONFIG_NFSD_V3 is not set
1110# CONFIG_NFSD_TCP is not set
1111CONFIG_ROOT_NFS=y 1216CONFIG_ROOT_NFS=y
1217# CONFIG_NFSD is not set
1112CONFIG_LOCKD=y 1218CONFIG_LOCKD=y
1113CONFIG_EXPORTFS=m 1219CONFIG_LOCKD_V4=y
1114CONFIG_NFS_COMMON=y 1220CONFIG_NFS_COMMON=y
1115CONFIG_SUNRPC=y 1221CONFIG_SUNRPC=y
1116# CONFIG_RPCSEC_GSS_KRB5 is not set 1222# CONFIG_RPCSEC_GSS_KRB5 is not set
1117# CONFIG_RPCSEC_GSS_SPKM3 is not set 1223# CONFIG_RPCSEC_GSS_SPKM3 is not set
1118CONFIG_SMB_FS=m 1224# CONFIG_SMB_FS is not set
1119# CONFIG_SMB_NLS_DEFAULT is not set
1120# CONFIG_CIFS is not set 1225# CONFIG_CIFS is not set
1121# CONFIG_NCP_FS is not set 1226# CONFIG_NCP_FS is not set
1122# CONFIG_CODA_FS is not set 1227# CONFIG_CODA_FS is not set
1123# CONFIG_AFS_FS is not set 1228# CONFIG_AFS_FS is not set
1124# CONFIG_9P_FS is not set
1125 1229
1126# 1230#
1127# Partition Types 1231# Partition Types
1128# 1232#
1129# CONFIG_PARTITION_ADVANCED is not set 1233# CONFIG_PARTITION_ADVANCED is not set
1130CONFIG_MSDOS_PARTITION=y 1234CONFIG_MSDOS_PARTITION=y
1131 1235CONFIG_NLS=y
1132#
1133# Native Language Support
1134#
1135CONFIG_NLS=m
1136CONFIG_NLS_DEFAULT="iso8859-1" 1236CONFIG_NLS_DEFAULT="iso8859-1"
1137# CONFIG_NLS_CODEPAGE_437 is not set 1237CONFIG_NLS_CODEPAGE_437=y
1138# CONFIG_NLS_CODEPAGE_737 is not set 1238# CONFIG_NLS_CODEPAGE_737 is not set
1139# CONFIG_NLS_CODEPAGE_775 is not set 1239# CONFIG_NLS_CODEPAGE_775 is not set
1140# CONFIG_NLS_CODEPAGE_850 is not set 1240CONFIG_NLS_CODEPAGE_850=y
1141# CONFIG_NLS_CODEPAGE_852 is not set 1241CONFIG_NLS_CODEPAGE_852=y
1142# CONFIG_NLS_CODEPAGE_855 is not set 1242# CONFIG_NLS_CODEPAGE_855 is not set
1143# CONFIG_NLS_CODEPAGE_857 is not set 1243# CONFIG_NLS_CODEPAGE_857 is not set
1144# CONFIG_NLS_CODEPAGE_860 is not set 1244# CONFIG_NLS_CODEPAGE_860 is not set
@@ -1155,10 +1255,10 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1155# CONFIG_NLS_CODEPAGE_949 is not set 1255# CONFIG_NLS_CODEPAGE_949 is not set
1156# CONFIG_NLS_CODEPAGE_874 is not set 1256# CONFIG_NLS_CODEPAGE_874 is not set
1157# CONFIG_NLS_ISO8859_8 is not set 1257# CONFIG_NLS_ISO8859_8 is not set
1158# CONFIG_NLS_CODEPAGE_1250 is not set 1258CONFIG_NLS_CODEPAGE_1250=y
1159# CONFIG_NLS_CODEPAGE_1251 is not set 1259# CONFIG_NLS_CODEPAGE_1251 is not set
1160# CONFIG_NLS_ASCII is not set 1260CONFIG_NLS_ASCII=y
1161# CONFIG_NLS_ISO8859_1 is not set 1261CONFIG_NLS_ISO8859_1=y
1162# CONFIG_NLS_ISO8859_2 is not set 1262# CONFIG_NLS_ISO8859_2 is not set
1163# CONFIG_NLS_ISO8859_3 is not set 1263# CONFIG_NLS_ISO8859_3 is not set
1164# CONFIG_NLS_ISO8859_4 is not set 1264# CONFIG_NLS_ISO8859_4 is not set
@@ -1168,38 +1268,75 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1168# CONFIG_NLS_ISO8859_9 is not set 1268# CONFIG_NLS_ISO8859_9 is not set
1169# CONFIG_NLS_ISO8859_13 is not set 1269# CONFIG_NLS_ISO8859_13 is not set
1170# CONFIG_NLS_ISO8859_14 is not set 1270# CONFIG_NLS_ISO8859_14 is not set
1171# CONFIG_NLS_ISO8859_15 is not set 1271CONFIG_NLS_ISO8859_15=y
1172# CONFIG_NLS_KOI8_R is not set 1272# CONFIG_NLS_KOI8_R is not set
1173# CONFIG_NLS_KOI8_U is not set 1273# CONFIG_NLS_KOI8_U is not set
1174# CONFIG_NLS_UTF8 is not set 1274CONFIG_NLS_UTF8=y
1175 1275# CONFIG_DLM is not set
1176#
1177# Distributed Lock Manager
1178#
1179CONFIG_DLM=m
1180CONFIG_DLM_TCP=y
1181# CONFIG_DLM_SCTP is not set
1182# CONFIG_DLM_DEBUG is not set
1183
1184#
1185# Profiling support
1186#
1187# CONFIG_PROFILING is not set
1188 1276
1189# 1277#
1190# Kernel hacking 1278# Kernel hacking
1191# 1279#
1192CONFIG_TRACE_IRQFLAGS_SUPPORT=y 1280CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1193# CONFIG_PRINTK_TIME is not set 1281# CONFIG_PRINTK_TIME is not set
1282CONFIG_ENABLE_WARN_DEPRECATED=y
1194CONFIG_ENABLE_MUST_CHECK=y 1283CONFIG_ENABLE_MUST_CHECK=y
1284CONFIG_FRAME_WARN=1024
1195# CONFIG_MAGIC_SYSRQ is not set 1285# CONFIG_MAGIC_SYSRQ is not set
1286CONFIG_STRIP_ASM_SYMS=y
1196# CONFIG_UNUSED_SYMBOLS is not set 1287# CONFIG_UNUSED_SYMBOLS is not set
1197# CONFIG_DEBUG_FS is not set 1288# CONFIG_DEBUG_FS is not set
1198# CONFIG_HEADERS_CHECK is not set 1289# CONFIG_HEADERS_CHECK is not set
1199# CONFIG_DEBUG_KERNEL is not set 1290CONFIG_DEBUG_KERNEL=y
1200CONFIG_LOG_BUF_SHIFT=14 1291# CONFIG_DEBUG_SHIRQ is not set
1201CONFIG_CROSSCOMPILE=y 1292# CONFIG_DETECT_SOFTLOCKUP is not set
1293# CONFIG_DETECT_HUNG_TASK is not set
1294# CONFIG_SCHED_DEBUG is not set
1295# CONFIG_SCHEDSTATS is not set
1296# CONFIG_TIMER_STATS is not set
1297# CONFIG_DEBUG_OBJECTS is not set
1298# CONFIG_DEBUG_SLAB is not set
1299# CONFIG_DEBUG_RT_MUTEXES is not set
1300# CONFIG_RT_MUTEX_TESTER is not set
1301# CONFIG_DEBUG_SPINLOCK is not set
1302# CONFIG_DEBUG_MUTEXES is not set
1303# CONFIG_DEBUG_LOCK_ALLOC is not set
1304# CONFIG_PROVE_LOCKING is not set
1305# CONFIG_LOCK_STAT is not set
1306# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1307# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1308# CONFIG_DEBUG_KOBJECT is not set
1309# CONFIG_DEBUG_INFO is not set
1310# CONFIG_DEBUG_VM is not set
1311# CONFIG_DEBUG_WRITECOUNT is not set
1312# CONFIG_DEBUG_MEMORY_INIT is not set
1313# CONFIG_DEBUG_LIST is not set
1314# CONFIG_DEBUG_SG is not set
1315# CONFIG_DEBUG_NOTIFIERS is not set
1316# CONFIG_DEBUG_CREDENTIALS is not set
1317# CONFIG_BOOT_PRINTK_DELAY is not set
1318# CONFIG_RCU_TORTURE_TEST is not set
1319# CONFIG_BACKTRACE_SELF_TEST is not set
1320# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1321# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1322# CONFIG_FAULT_INJECTION is not set
1323# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1324# CONFIG_PAGE_POISONING is not set
1325CONFIG_HAVE_FUNCTION_TRACER=y
1326CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1327CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
1328CONFIG_HAVE_DYNAMIC_FTRACE=y
1329CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1330CONFIG_TRACING_SUPPORT=y
1331# CONFIG_FTRACE is not set
1332# CONFIG_SAMPLES is not set
1333CONFIG_HAVE_ARCH_KGDB=y
1334# CONFIG_KGDB is not set
1335CONFIG_EARLY_PRINTK=y
1202# CONFIG_CMDLINE_BOOL is not set 1336# CONFIG_CMDLINE_BOOL is not set
1337# CONFIG_DEBUG_STACK_USAGE is not set
1338# CONFIG_RUNTIME_DEBUG is not set
1339CONFIG_DEBUG_ZBOOT=y
1203 1340
1204# 1341#
1205# Security options 1342# Security options
@@ -1207,67 +1344,32 @@ CONFIG_CROSSCOMPILE=y
1207CONFIG_KEYS=y 1344CONFIG_KEYS=y
1208CONFIG_KEYS_DEBUG_PROC_KEYS=y 1345CONFIG_KEYS_DEBUG_PROC_KEYS=y
1209# CONFIG_SECURITY is not set 1346# CONFIG_SECURITY is not set
1210 1347CONFIG_SECURITYFS=y
1211# 1348# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1212# Cryptographic options 1349# CONFIG_DEFAULT_SECURITY_SMACK is not set
1213# 1350# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1214CONFIG_CRYPTO=y 1351CONFIG_DEFAULT_SECURITY_DAC=y
1215CONFIG_CRYPTO_ALGAPI=y 1352CONFIG_DEFAULT_SECURITY=""
1216CONFIG_CRYPTO_BLKCIPHER=m 1353# CONFIG_CRYPTO is not set
1217CONFIG_CRYPTO_HASH=y 1354# CONFIG_BINARY_PRINTF is not set
1218CONFIG_CRYPTO_MANAGER=y
1219CONFIG_CRYPTO_HMAC=y
1220CONFIG_CRYPTO_XCBC=m
1221CONFIG_CRYPTO_NULL=m
1222CONFIG_CRYPTO_MD4=m
1223CONFIG_CRYPTO_MD5=y
1224CONFIG_CRYPTO_SHA1=m
1225CONFIG_CRYPTO_SHA256=m
1226CONFIG_CRYPTO_SHA512=m
1227CONFIG_CRYPTO_WP512=m
1228CONFIG_CRYPTO_TGR192=m
1229CONFIG_CRYPTO_GF128MUL=m
1230CONFIG_CRYPTO_ECB=m
1231CONFIG_CRYPTO_CBC=m
1232CONFIG_CRYPTO_PCBC=m
1233CONFIG_CRYPTO_LRW=m
1234CONFIG_CRYPTO_DES=m
1235CONFIG_CRYPTO_FCRYPT=m
1236CONFIG_CRYPTO_BLOWFISH=m
1237CONFIG_CRYPTO_TWOFISH=m
1238CONFIG_CRYPTO_TWOFISH_COMMON=m
1239CONFIG_CRYPTO_SERPENT=m
1240CONFIG_CRYPTO_AES=m
1241CONFIG_CRYPTO_CAST5=m
1242CONFIG_CRYPTO_CAST6=m
1243CONFIG_CRYPTO_TEA=m
1244CONFIG_CRYPTO_ARC4=m
1245CONFIG_CRYPTO_KHAZAD=m
1246CONFIG_CRYPTO_ANUBIS=m
1247CONFIG_CRYPTO_DEFLATE=m
1248CONFIG_CRYPTO_MICHAEL_MIC=m
1249CONFIG_CRYPTO_CRC32C=m
1250CONFIG_CRYPTO_CAMELLIA=m
1251# CONFIG_CRYPTO_TEST is not set
1252
1253#
1254# Hardware crypto devices
1255#
1256 1355
1257# 1356#
1258# Library routines 1357# Library routines
1259# 1358#
1260CONFIG_BITREVERSE=y 1359CONFIG_BITREVERSE=y
1261CONFIG_CRC_CCITT=m 1360CONFIG_GENERIC_FIND_LAST_BIT=y
1262CONFIG_CRC16=m 1361# CONFIG_CRC_CCITT is not set
1362# CONFIG_CRC16 is not set
1363# CONFIG_CRC_T10DIF is not set
1364CONFIG_CRC_ITU_T=y
1263CONFIG_CRC32=y 1365CONFIG_CRC32=y
1264CONFIG_LIBCRC32C=m 1366# CONFIG_CRC7 is not set
1265CONFIG_ZLIB_INFLATE=m 1367# CONFIG_LIBCRC32C is not set
1266CONFIG_ZLIB_DEFLATE=m 1368CONFIG_ZLIB_INFLATE=y
1267CONFIG_TEXTSEARCH=y 1369CONFIG_ZLIB_DEFLATE=y
1268CONFIG_TEXTSEARCH_KMP=m 1370CONFIG_LZO_COMPRESS=y
1269CONFIG_TEXTSEARCH_BM=m 1371CONFIG_LZO_DECOMPRESS=y
1270CONFIG_TEXTSEARCH_FSM=m
1271CONFIG_PLIST=y
1272CONFIG_HAS_IOMEM=y 1372CONFIG_HAS_IOMEM=y
1273CONFIG_HAS_IOPORT=y 1373CONFIG_HAS_IOPORT=y
1374CONFIG_HAS_DMA=y
1375CONFIG_NLATTR=y
diff --git a/arch/mips/configs/pb1550_defconfig b/arch/mips/configs/pb1550_defconfig
index 6647642b5d97..aa526f53cb1b 100644
--- a/arch/mips/configs/pb1550_defconfig
+++ b/arch/mips/configs/pb1550_defconfig
@@ -1,79 +1,103 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20 3# Linux kernel version: 2.6.33
4# Tue Feb 20 21:47:37 2007 4# Fri Feb 26 10:06:07 2010
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
8# 8#
9# Machine selection 9# Machine selection
10# 10#
11CONFIG_ZONE_DMA=y
12CONFIG_MACH_ALCHEMY=y 11CONFIG_MACH_ALCHEMY=y
13# CONFIG_MIPS_MTX1 is not set 12# CONFIG_AR7 is not set
14# CONFIG_MIPS_BOSPORUS is not set 13# CONFIG_BCM47XX is not set
15# CONFIG_MIPS_PB1000 is not set 14# CONFIG_BCM63XX is not set
16# CONFIG_MIPS_PB1100 is not set
17# CONFIG_MIPS_PB1500 is not set
18CONFIG_MIPS_PB1550=y
19# CONFIG_MIPS_PB1200 is not set
20# CONFIG_MIPS_DB1000 is not set
21# CONFIG_MIPS_DB1100 is not set
22# CONFIG_MIPS_DB1500 is not set
23# CONFIG_MIPS_DB1550 is not set
24# CONFIG_MIPS_DB1200 is not set
25# CONFIG_MIPS_MIRAGE is not set
26# CONFIG_MIPS_COBALT is not set 15# CONFIG_MIPS_COBALT is not set
27# CONFIG_MACH_DECSTATION is not set 16# CONFIG_MACH_DECSTATION is not set
28# CONFIG_MACH_JAZZ is not set 17# CONFIG_MACH_JAZZ is not set
18# CONFIG_LASAT is not set
19# CONFIG_MACH_LOONGSON is not set
29# CONFIG_MIPS_MALTA is not set 20# CONFIG_MIPS_MALTA is not set
30# CONFIG_WR_PPMC is not set
31# CONFIG_MIPS_SIM is not set 21# CONFIG_MIPS_SIM is not set
32# CONFIG_MOMENCO_JAGUAR_ATX is not set 22# CONFIG_NEC_MARKEINS is not set
33# CONFIG_MIPS_XXS1500 is not set 23# CONFIG_MACH_VR41XX is not set
24# CONFIG_NXP_STB220 is not set
25# CONFIG_NXP_STB225 is not set
34# CONFIG_PNX8550_JBS is not set 26# CONFIG_PNX8550_JBS is not set
35# CONFIG_PNX8550_STB810 is not set 27# CONFIG_PNX8550_STB810 is not set
36# CONFIG_MACH_VR41XX is not set 28# CONFIG_PMC_MSP is not set
37# CONFIG_PMC_YOSEMITE is not set 29# CONFIG_PMC_YOSEMITE is not set
38# CONFIG_MARKEINS is not set 30# CONFIG_POWERTV is not set
39# CONFIG_SGI_IP22 is not set 31# CONFIG_SGI_IP22 is not set
40# CONFIG_SGI_IP27 is not set 32# CONFIG_SGI_IP27 is not set
33# CONFIG_SGI_IP28 is not set
41# CONFIG_SGI_IP32 is not set 34# CONFIG_SGI_IP32 is not set
42# CONFIG_SIBYTE_BIGSUR is not set
43# CONFIG_SIBYTE_SWARM is not set
44# CONFIG_SIBYTE_SENTOSA is not set
45# CONFIG_SIBYTE_RHONE is not set
46# CONFIG_SIBYTE_CARMEL is not set
47# CONFIG_SIBYTE_LITTLESUR is not set
48# CONFIG_SIBYTE_CRHINE is not set 35# CONFIG_SIBYTE_CRHINE is not set
36# CONFIG_SIBYTE_CARMEL is not set
49# CONFIG_SIBYTE_CRHONE is not set 37# CONFIG_SIBYTE_CRHONE is not set
38# CONFIG_SIBYTE_RHONE is not set
39# CONFIG_SIBYTE_SWARM is not set
40# CONFIG_SIBYTE_LITTLESUR is not set
41# CONFIG_SIBYTE_SENTOSA is not set
42# CONFIG_SIBYTE_BIGSUR is not set
50# CONFIG_SNI_RM is not set 43# CONFIG_SNI_RM is not set
51# CONFIG_TOSHIBA_JMR3927 is not set 44# CONFIG_MACH_TX39XX is not set
52# CONFIG_TOSHIBA_RBTX4927 is not set 45# CONFIG_MACH_TX49XX is not set
53# CONFIG_TOSHIBA_RBTX4938 is not set 46# CONFIG_MIKROTIK_RB532 is not set
47# CONFIG_WR_PPMC is not set
48# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
49# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
50CONFIG_ALCHEMY_GPIOINT_AU1000=y
51# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
52# CONFIG_MIPS_MTX1 is not set
53# CONFIG_MIPS_BOSPORUS is not set
54# CONFIG_MIPS_DB1000 is not set
55# CONFIG_MIPS_DB1100 is not set
56# CONFIG_MIPS_DB1200 is not set
57# CONFIG_MIPS_DB1500 is not set
58# CONFIG_MIPS_DB1550 is not set
59# CONFIG_MIPS_MIRAGE is not set
60# CONFIG_MIPS_PB1000 is not set
61# CONFIG_MIPS_PB1100 is not set
62# CONFIG_MIPS_PB1200 is not set
63# CONFIG_MIPS_PB1500 is not set
64CONFIG_MIPS_PB1550=y
65# CONFIG_MIPS_XXS1500 is not set
66CONFIG_SOC_AU1550=y
67CONFIG_SOC_AU1X00=y
68CONFIG_LOONGSON_UART_BASE=y
54CONFIG_RWSEM_GENERIC_SPINLOCK=y 69CONFIG_RWSEM_GENERIC_SPINLOCK=y
55# CONFIG_ARCH_HAS_ILOG2_U32 is not set 70# CONFIG_ARCH_HAS_ILOG2_U32 is not set
56# CONFIG_ARCH_HAS_ILOG2_U64 is not set 71# CONFIG_ARCH_HAS_ILOG2_U64 is not set
72CONFIG_ARCH_SUPPORTS_OPROFILE=y
57CONFIG_GENERIC_FIND_NEXT_BIT=y 73CONFIG_GENERIC_FIND_NEXT_BIT=y
58CONFIG_GENERIC_HWEIGHT=y 74CONFIG_GENERIC_HWEIGHT=y
59CONFIG_GENERIC_CALIBRATE_DELAY=y 75CONFIG_GENERIC_CALIBRATE_DELAY=y
76CONFIG_GENERIC_CLOCKEVENTS=y
60CONFIG_GENERIC_TIME=y 77CONFIG_GENERIC_TIME=y
61CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 78CONFIG_GENERIC_CMOS_UPDATE=y
62# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set 79CONFIG_SCHED_OMIT_FRAME_POINTER=y
80CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
81CONFIG_CEVT_R4K_LIB=y
82CONFIG_CSRC_R4K_LIB=y
63CONFIG_DMA_NONCOHERENT=y 83CONFIG_DMA_NONCOHERENT=y
64CONFIG_DMA_NEED_PCI_MAP_STATE=y 84CONFIG_DMA_NEED_PCI_MAP_STATE=y
85CONFIG_SYS_HAS_EARLY_PRINTK=y
65CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y 86CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y
87# CONFIG_NO_IOPORT is not set
88CONFIG_GENERIC_GPIO=y
66# CONFIG_CPU_BIG_ENDIAN is not set 89# CONFIG_CPU_BIG_ENDIAN is not set
67CONFIG_CPU_LITTLE_ENDIAN=y 90CONFIG_CPU_LITTLE_ENDIAN=y
68CONFIG_SYS_SUPPORTS_APM_EMULATION=y 91CONFIG_SYS_SUPPORTS_APM_EMULATION=y
69CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y 92CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
70CONFIG_SOC_AU1550=y 93CONFIG_IRQ_CPU=y
71CONFIG_SOC_AU1X00=y
72CONFIG_MIPS_L1_CACHE_SHIFT=5 94CONFIG_MIPS_L1_CACHE_SHIFT=5
73 95
74# 96#
75# CPU selection 97# CPU selection
76# 98#
99# CONFIG_CPU_LOONGSON2E is not set
100# CONFIG_CPU_LOONGSON2F is not set
77CONFIG_CPU_MIPS32_R1=y 101CONFIG_CPU_MIPS32_R1=y
78# CONFIG_CPU_MIPS32_R2 is not set 102# CONFIG_CPU_MIPS32_R2 is not set
79# CONFIG_CPU_MIPS64_R1 is not set 103# CONFIG_CPU_MIPS64_R1 is not set
@@ -86,6 +110,7 @@ CONFIG_CPU_MIPS32_R1=y
86# CONFIG_CPU_TX49XX is not set 110# CONFIG_CPU_TX49XX is not set
87# CONFIG_CPU_R5000 is not set 111# CONFIG_CPU_R5000 is not set
88# CONFIG_CPU_R5432 is not set 112# CONFIG_CPU_R5432 is not set
113# CONFIG_CPU_R5500 is not set
89# CONFIG_CPU_R6000 is not set 114# CONFIG_CPU_R6000 is not set
90# CONFIG_CPU_NEVADA is not set 115# CONFIG_CPU_NEVADA is not set
91# CONFIG_CPU_R8000 is not set 116# CONFIG_CPU_R8000 is not set
@@ -93,11 +118,14 @@ CONFIG_CPU_MIPS32_R1=y
93# CONFIG_CPU_RM7000 is not set 118# CONFIG_CPU_RM7000 is not set
94# CONFIG_CPU_RM9000 is not set 119# CONFIG_CPU_RM9000 is not set
95# CONFIG_CPU_SB1 is not set 120# CONFIG_CPU_SB1 is not set
121# CONFIG_CPU_CAVIUM_OCTEON is not set
122CONFIG_SYS_SUPPORTS_ZBOOT=y
96CONFIG_SYS_HAS_CPU_MIPS32_R1=y 123CONFIG_SYS_HAS_CPU_MIPS32_R1=y
97CONFIG_CPU_MIPS32=y 124CONFIG_CPU_MIPS32=y
98CONFIG_CPU_MIPSR1=y 125CONFIG_CPU_MIPSR1=y
99CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 126CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
100CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y 127CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
128CONFIG_HARDWARE_WATCHPOINTS=y
101 129
102# 130#
103# Kernel type 131# Kernel type
@@ -107,190 +135,255 @@ CONFIG_32BIT=y
107CONFIG_PAGE_SIZE_4KB=y 135CONFIG_PAGE_SIZE_4KB=y
108# CONFIG_PAGE_SIZE_8KB is not set 136# CONFIG_PAGE_SIZE_8KB is not set
109# CONFIG_PAGE_SIZE_16KB is not set 137# CONFIG_PAGE_SIZE_16KB is not set
138# CONFIG_PAGE_SIZE_32KB is not set
110# CONFIG_PAGE_SIZE_64KB is not set 139# CONFIG_PAGE_SIZE_64KB is not set
111CONFIG_CPU_HAS_PREFETCH=y 140CONFIG_CPU_HAS_PREFETCH=y
112CONFIG_MIPS_MT_DISABLED=y 141CONFIG_MIPS_MT_DISABLED=y
113# CONFIG_MIPS_MT_SMP is not set 142# CONFIG_MIPS_MT_SMP is not set
114# CONFIG_MIPS_MT_SMTC is not set 143# CONFIG_MIPS_MT_SMTC is not set
115# CONFIG_MIPS_VPE_LOADER is not set
116CONFIG_64BIT_PHYS_ADDR=y 144CONFIG_64BIT_PHYS_ADDR=y
145CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
117CONFIG_CPU_HAS_SYNC=y 146CONFIG_CPU_HAS_SYNC=y
118CONFIG_GENERIC_HARDIRQS=y 147CONFIG_GENERIC_HARDIRQS=y
119CONFIG_GENERIC_IRQ_PROBE=y 148CONFIG_GENERIC_IRQ_PROBE=y
120CONFIG_CPU_SUPPORTS_HIGHMEM=y 149CONFIG_CPU_SUPPORTS_HIGHMEM=y
121CONFIG_ARCH_FLATMEM_ENABLE=y 150CONFIG_ARCH_FLATMEM_ENABLE=y
151CONFIG_ARCH_POPULATES_NODE_MAP=y
122CONFIG_SELECT_MEMORY_MODEL=y 152CONFIG_SELECT_MEMORY_MODEL=y
123CONFIG_FLATMEM_MANUAL=y 153CONFIG_FLATMEM_MANUAL=y
124# CONFIG_DISCONTIGMEM_MANUAL is not set 154# CONFIG_DISCONTIGMEM_MANUAL is not set
125# CONFIG_SPARSEMEM_MANUAL is not set 155# CONFIG_SPARSEMEM_MANUAL is not set
126CONFIG_FLATMEM=y 156CONFIG_FLATMEM=y
127CONFIG_FLAT_NODE_MEM_MAP=y 157CONFIG_FLAT_NODE_MEM_MAP=y
128# CONFIG_SPARSEMEM_STATIC is not set 158CONFIG_PAGEFLAGS_EXTENDED=y
129CONFIG_SPLIT_PTLOCK_CPUS=4 159CONFIG_SPLIT_PTLOCK_CPUS=4
130CONFIG_RESOURCES_64BIT=y 160CONFIG_PHYS_ADDR_T_64BIT=y
131CONFIG_ZONE_DMA_FLAG=1 161CONFIG_ZONE_DMA_FLAG=0
162CONFIG_VIRT_TO_BUS=y
163# CONFIG_KSM is not set
164CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
165CONFIG_TICK_ONESHOT=y
166CONFIG_NO_HZ=y
167CONFIG_HIGH_RES_TIMERS=y
168CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
132# CONFIG_HZ_48 is not set 169# CONFIG_HZ_48 is not set
133# CONFIG_HZ_100 is not set 170CONFIG_HZ_100=y
134# CONFIG_HZ_128 is not set 171# CONFIG_HZ_128 is not set
135# CONFIG_HZ_250 is not set 172# CONFIG_HZ_250 is not set
136# CONFIG_HZ_256 is not set 173# CONFIG_HZ_256 is not set
137CONFIG_HZ_1000=y 174# CONFIG_HZ_1000 is not set
138# CONFIG_HZ_1024 is not set 175# CONFIG_HZ_1024 is not set
139CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 176CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
140CONFIG_HZ=1000 177CONFIG_HZ=100
141CONFIG_PREEMPT_NONE=y 178CONFIG_PREEMPT_NONE=y
142# CONFIG_PREEMPT_VOLUNTARY is not set 179# CONFIG_PREEMPT_VOLUNTARY is not set
143# CONFIG_PREEMPT is not set 180# CONFIG_PREEMPT is not set
144# CONFIG_KEXEC is not set 181# CONFIG_KEXEC is not set
182# CONFIG_SECCOMP is not set
145CONFIG_LOCKDEP_SUPPORT=y 183CONFIG_LOCKDEP_SUPPORT=y
146CONFIG_STACKTRACE_SUPPORT=y 184CONFIG_STACKTRACE_SUPPORT=y
147CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 185CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
186CONFIG_CONSTRUCTORS=y
148 187
149# 188#
150# Code maturity level options 189# General setup
151# 190#
152CONFIG_EXPERIMENTAL=y 191CONFIG_EXPERIMENTAL=y
153CONFIG_BROKEN_ON_SMP=y 192CONFIG_BROKEN_ON_SMP=y
154CONFIG_INIT_ENV_ARG_LIMIT=32 193CONFIG_INIT_ENV_ARG_LIMIT=32
155 194CONFIG_LOCALVERSION="-pb1550"
156#
157# General setup
158#
159CONFIG_LOCALVERSION=""
160CONFIG_LOCALVERSION_AUTO=y 195CONFIG_LOCALVERSION_AUTO=y
196CONFIG_HAVE_KERNEL_GZIP=y
197CONFIG_HAVE_KERNEL_BZIP2=y
198CONFIG_HAVE_KERNEL_LZMA=y
199CONFIG_HAVE_KERNEL_LZO=y
200# CONFIG_KERNEL_GZIP is not set
201# CONFIG_KERNEL_BZIP2 is not set
202CONFIG_KERNEL_LZMA=y
203# CONFIG_KERNEL_LZO is not set
161CONFIG_SWAP=y 204CONFIG_SWAP=y
162CONFIG_SYSVIPC=y 205CONFIG_SYSVIPC=y
163# CONFIG_IPC_NS is not set
164CONFIG_SYSVIPC_SYSCTL=y 206CONFIG_SYSVIPC_SYSCTL=y
165# CONFIG_POSIX_MQUEUE is not set 207CONFIG_POSIX_MQUEUE=y
208CONFIG_POSIX_MQUEUE_SYSCTL=y
166# CONFIG_BSD_PROCESS_ACCT is not set 209# CONFIG_BSD_PROCESS_ACCT is not set
167# CONFIG_TASKSTATS is not set 210# CONFIG_TASKSTATS is not set
168# CONFIG_UTS_NS is not set
169# CONFIG_AUDIT is not set 211# CONFIG_AUDIT is not set
212
213#
214# RCU Subsystem
215#
216# CONFIG_TREE_RCU is not set
217# CONFIG_TREE_PREEMPT_RCU is not set
218CONFIG_TINY_RCU=y
219# CONFIG_TREE_RCU_TRACE is not set
170# CONFIG_IKCONFIG is not set 220# CONFIG_IKCONFIG is not set
171CONFIG_SYSFS_DEPRECATED=y 221CONFIG_LOG_BUF_SHIFT=14
172CONFIG_RELAY=y 222# CONFIG_GROUP_SCHED is not set
173# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 223# CONFIG_CGROUPS is not set
224# CONFIG_SYSFS_DEPRECATED_V2 is not set
225# CONFIG_RELAY is not set
226# CONFIG_NAMESPACES is not set
227# CONFIG_BLK_DEV_INITRD is not set
228CONFIG_CC_OPTIMIZE_FOR_SIZE=y
174CONFIG_SYSCTL=y 229CONFIG_SYSCTL=y
230CONFIG_ANON_INODES=y
175CONFIG_EMBEDDED=y 231CONFIG_EMBEDDED=y
176CONFIG_SYSCTL_SYSCALL=y 232# CONFIG_SYSCTL_SYSCALL is not set
177CONFIG_KALLSYMS=y 233# CONFIG_KALLSYMS is not set
178# CONFIG_KALLSYMS_EXTRA_PASS is not set
179CONFIG_HOTPLUG=y 234CONFIG_HOTPLUG=y
180CONFIG_PRINTK=y 235CONFIG_PRINTK=y
181CONFIG_BUG=y 236CONFIG_BUG=y
182CONFIG_ELF_CORE=y 237CONFIG_ELF_CORE=y
238# CONFIG_PCSPKR_PLATFORM is not set
183CONFIG_BASE_FULL=y 239CONFIG_BASE_FULL=y
184CONFIG_FUTEX=y 240CONFIG_FUTEX=y
185CONFIG_EPOLL=y 241CONFIG_EPOLL=y
242CONFIG_SIGNALFD=y
243CONFIG_TIMERFD=y
244CONFIG_EVENTFD=y
186CONFIG_SHMEM=y 245CONFIG_SHMEM=y
246CONFIG_AIO=y
247
248#
249# Kernel Performance Events And Counters
250#
251# CONFIG_VM_EVENT_COUNTERS is not set
252CONFIG_PCI_QUIRKS=y
253# CONFIG_COMPAT_BRK is not set
187CONFIG_SLAB=y 254CONFIG_SLAB=y
188CONFIG_VM_EVENT_COUNTERS=y 255# CONFIG_SLUB is not set
189CONFIG_RT_MUTEXES=y
190# CONFIG_TINY_SHMEM is not set
191CONFIG_BASE_SMALL=0
192# CONFIG_SLOB is not set 256# CONFIG_SLOB is not set
257# CONFIG_PROFILING is not set
258CONFIG_HAVE_OPROFILE=y
193 259
194# 260#
195# Loadable module support 261# GCOV-based kernel profiling
196# 262#
263# CONFIG_SLOW_WORK is not set
264CONFIG_HAVE_GENERIC_DMA_COHERENT=y
265CONFIG_SLABINFO=y
266CONFIG_RT_MUTEXES=y
267CONFIG_BASE_SMALL=0
197CONFIG_MODULES=y 268CONFIG_MODULES=y
269# CONFIG_MODULE_FORCE_LOAD is not set
198CONFIG_MODULE_UNLOAD=y 270CONFIG_MODULE_UNLOAD=y
199# CONFIG_MODULE_FORCE_UNLOAD is not set 271# CONFIG_MODULE_FORCE_UNLOAD is not set
200CONFIG_MODVERSIONS=y 272# CONFIG_MODVERSIONS is not set
201CONFIG_MODULE_SRCVERSION_ALL=y 273# CONFIG_MODULE_SRCVERSION_ALL is not set
202CONFIG_KMOD=y
203
204#
205# Block layer
206#
207CONFIG_BLOCK=y 274CONFIG_BLOCK=y
208# CONFIG_LBD is not set 275CONFIG_LBDAF=y
209# CONFIG_BLK_DEV_IO_TRACE is not set 276CONFIG_BLK_DEV_BSG=y
210# CONFIG_LSF is not set 277# CONFIG_BLK_DEV_INTEGRITY is not set
211 278
212# 279#
213# IO Schedulers 280# IO Schedulers
214# 281#
215CONFIG_IOSCHED_NOOP=y 282CONFIG_IOSCHED_NOOP=y
216CONFIG_IOSCHED_AS=y 283# CONFIG_IOSCHED_DEADLINE is not set
217CONFIG_IOSCHED_DEADLINE=y 284# CONFIG_IOSCHED_CFQ is not set
218CONFIG_IOSCHED_CFQ=y
219CONFIG_DEFAULT_AS=y
220# CONFIG_DEFAULT_DEADLINE is not set 285# CONFIG_DEFAULT_DEADLINE is not set
221# CONFIG_DEFAULT_CFQ is not set 286# CONFIG_DEFAULT_CFQ is not set
222# CONFIG_DEFAULT_NOOP is not set 287CONFIG_DEFAULT_NOOP=y
223CONFIG_DEFAULT_IOSCHED="anticipatory" 288CONFIG_DEFAULT_IOSCHED="noop"
289# CONFIG_INLINE_SPIN_TRYLOCK is not set
290# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
291# CONFIG_INLINE_SPIN_LOCK is not set
292# CONFIG_INLINE_SPIN_LOCK_BH is not set
293# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
294# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
295CONFIG_INLINE_SPIN_UNLOCK=y
296# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
297CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
298# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
299# CONFIG_INLINE_READ_TRYLOCK is not set
300# CONFIG_INLINE_READ_LOCK is not set
301# CONFIG_INLINE_READ_LOCK_BH is not set
302# CONFIG_INLINE_READ_LOCK_IRQ is not set
303# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
304CONFIG_INLINE_READ_UNLOCK=y
305# CONFIG_INLINE_READ_UNLOCK_BH is not set
306CONFIG_INLINE_READ_UNLOCK_IRQ=y
307# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
308# CONFIG_INLINE_WRITE_TRYLOCK is not set
309# CONFIG_INLINE_WRITE_LOCK is not set
310# CONFIG_INLINE_WRITE_LOCK_BH is not set
311# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
312# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
313CONFIG_INLINE_WRITE_UNLOCK=y
314# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
315CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
316# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
317# CONFIG_MUTEX_SPIN_ON_OWNER is not set
318CONFIG_FREEZER=y
224 319
225# 320#
226# Bus options (PCI, PCMCIA, EISA, ISA, TC) 321# Bus options (PCI, PCMCIA, EISA, ISA, TC)
227# 322#
228CONFIG_HW_HAS_PCI=y 323CONFIG_HW_HAS_PCI=y
229CONFIG_PCI=y 324CONFIG_PCI=y
325CONFIG_PCI_DOMAINS=y
326# CONFIG_ARCH_SUPPORTS_MSI is not set
327CONFIG_PCI_LEGACY=y
328# CONFIG_PCI_DEBUG is not set
329# CONFIG_PCI_STUB is not set
330# CONFIG_PCI_IOV is not set
230CONFIG_MMU=y 331CONFIG_MMU=y
231 332CONFIG_PCCARD=y
232# 333CONFIG_PCMCIA=y
233# PCCARD (PCMCIA/CardBus) support
234#
235CONFIG_PCCARD=m
236# CONFIG_PCMCIA_DEBUG is not set
237CONFIG_PCMCIA=m
238CONFIG_PCMCIA_LOAD_CIS=y 334CONFIG_PCMCIA_LOAD_CIS=y
239CONFIG_PCMCIA_IOCTL=y 335CONFIG_PCMCIA_IOCTL=y
240CONFIG_CARDBUS=y 336# CONFIG_CARDBUS is not set
241 337
242# 338#
243# PC-card bridges 339# PC-card bridges
244# 340#
245# CONFIG_YENTA is not set 341# CONFIG_YENTA is not set
246CONFIG_PD6729=m 342# CONFIG_PD6729 is not set
247# CONFIG_I82092 is not set 343# CONFIG_I82092 is not set
248# CONFIG_PCMCIA_AU1X00 is not set 344# CONFIG_PCMCIA_AU1X00 is not set
249CONFIG_PCCARD_NONSTATIC=m 345CONFIG_PCMCIA_ALCHEMY_DEVBOARD=y
250
251#
252# PCI Hotplug Support
253#
254# CONFIG_HOTPLUG_PCI is not set 346# CONFIG_HOTPLUG_PCI is not set
255 347
256# 348#
257# Executable file formats 349# Executable file formats
258# 350#
259CONFIG_BINFMT_ELF=y 351CONFIG_BINFMT_ELF=y
352# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
353# CONFIG_HAVE_AOUT is not set
260# CONFIG_BINFMT_MISC is not set 354# CONFIG_BINFMT_MISC is not set
261CONFIG_TRAD_SIGNALS=y 355CONFIG_TRAD_SIGNALS=y
262 356
263# 357#
264# Power management options 358# Power management options
265# 359#
266# CONFIG_PM is not set 360CONFIG_ARCH_HIBERNATION_POSSIBLE=y
267 361CONFIG_ARCH_SUSPEND_POSSIBLE=y
268# 362CONFIG_PM=y
269# Networking 363# CONFIG_PM_DEBUG is not set
270# 364CONFIG_PM_SLEEP=y
365CONFIG_SUSPEND=y
366CONFIG_SUSPEND_FREEZER=y
367# CONFIG_HIBERNATION is not set
368# CONFIG_APM_EMULATION is not set
369CONFIG_PM_RUNTIME=y
271CONFIG_NET=y 370CONFIG_NET=y
272 371
273# 372#
274# Networking options 373# Networking options
275# 374#
276# CONFIG_NETDEBUG is not set
277CONFIG_PACKET=y 375CONFIG_PACKET=y
278# CONFIG_PACKET_MMAP is not set 376CONFIG_PACKET_MMAP=y
279CONFIG_UNIX=y 377CONFIG_UNIX=y
280CONFIG_XFRM=y 378# CONFIG_NET_KEY is not set
281CONFIG_XFRM_USER=m
282# CONFIG_XFRM_SUB_POLICY is not set
283CONFIG_XFRM_MIGRATE=y
284CONFIG_NET_KEY=y
285CONFIG_NET_KEY_MIGRATE=y
286CONFIG_INET=y 379CONFIG_INET=y
287CONFIG_IP_MULTICAST=y 380CONFIG_IP_MULTICAST=y
288# CONFIG_IP_ADVANCED_ROUTER is not set 381# CONFIG_IP_ADVANCED_ROUTER is not set
289CONFIG_IP_FIB_HASH=y 382CONFIG_IP_FIB_HASH=y
290CONFIG_IP_PNP=y 383CONFIG_IP_PNP=y
291# CONFIG_IP_PNP_DHCP is not set 384CONFIG_IP_PNP_DHCP=y
292CONFIG_IP_PNP_BOOTP=y 385CONFIG_IP_PNP_BOOTP=y
293# CONFIG_IP_PNP_RARP is not set 386CONFIG_IP_PNP_RARP=y
294# CONFIG_NET_IPIP is not set 387# CONFIG_NET_IPIP is not set
295# CONFIG_NET_IPGRE is not set 388# CONFIG_NET_IPGRE is not set
296# CONFIG_IP_MROUTE is not set 389# CONFIG_IP_MROUTE is not set
@@ -301,110 +394,25 @@ CONFIG_IP_PNP_BOOTP=y
301# CONFIG_INET_IPCOMP is not set 394# CONFIG_INET_IPCOMP is not set
302# CONFIG_INET_XFRM_TUNNEL is not set 395# CONFIG_INET_XFRM_TUNNEL is not set
303# CONFIG_INET_TUNNEL is not set 396# CONFIG_INET_TUNNEL is not set
304CONFIG_INET_XFRM_MODE_TRANSPORT=m 397# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
305CONFIG_INET_XFRM_MODE_TUNNEL=m 398# CONFIG_INET_XFRM_MODE_TUNNEL is not set
306CONFIG_INET_XFRM_MODE_BEET=m 399# CONFIG_INET_XFRM_MODE_BEET is not set
307CONFIG_INET_DIAG=y 400CONFIG_INET_LRO=y
308CONFIG_INET_TCP_DIAG=y 401# CONFIG_INET_DIAG is not set
309# CONFIG_TCP_CONG_ADVANCED is not set 402# CONFIG_TCP_CONG_ADVANCED is not set
310CONFIG_TCP_CONG_CUBIC=y 403CONFIG_TCP_CONG_CUBIC=y
311CONFIG_DEFAULT_TCP_CONG="cubic" 404CONFIG_DEFAULT_TCP_CONG="cubic"
312CONFIG_TCP_MD5SIG=y 405# CONFIG_TCP_MD5SIG is not set
313
314#
315# IP: Virtual Server Configuration
316#
317# CONFIG_IP_VS is not set
318# CONFIG_IPV6 is not set 406# CONFIG_IPV6 is not set
319# CONFIG_INET6_XFRM_TUNNEL is not set 407# CONFIG_NETWORK_SECMARK is not set
320# CONFIG_INET6_TUNNEL is not set 408# CONFIG_NETFILTER is not set
321CONFIG_NETWORK_SECMARK=y
322CONFIG_NETFILTER=y
323# CONFIG_NETFILTER_DEBUG is not set
324
325#
326# Core Netfilter Configuration
327#
328CONFIG_NETFILTER_NETLINK=m
329CONFIG_NETFILTER_NETLINK_QUEUE=m
330CONFIG_NETFILTER_NETLINK_LOG=m
331CONFIG_NF_CONNTRACK_ENABLED=m
332CONFIG_NF_CONNTRACK_SUPPORT=y
333# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set
334CONFIG_NF_CONNTRACK=m
335CONFIG_NF_CT_ACCT=y
336CONFIG_NF_CONNTRACK_MARK=y
337CONFIG_NF_CONNTRACK_SECMARK=y
338CONFIG_NF_CONNTRACK_EVENTS=y
339CONFIG_NF_CT_PROTO_GRE=m
340CONFIG_NF_CT_PROTO_SCTP=m
341CONFIG_NF_CONNTRACK_AMANDA=m
342CONFIG_NF_CONNTRACK_FTP=m
343CONFIG_NF_CONNTRACK_H323=m
344CONFIG_NF_CONNTRACK_IRC=m
345# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
346CONFIG_NF_CONNTRACK_PPTP=m
347CONFIG_NF_CONNTRACK_SANE=m
348CONFIG_NF_CONNTRACK_SIP=m
349CONFIG_NF_CONNTRACK_TFTP=m
350CONFIG_NF_CT_NETLINK=m
351CONFIG_NETFILTER_XTABLES=m
352CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
353CONFIG_NETFILTER_XT_TARGET_MARK=m
354CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
355CONFIG_NETFILTER_XT_TARGET_NFLOG=m
356CONFIG_NETFILTER_XT_TARGET_SECMARK=m
357CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
358CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
359CONFIG_NETFILTER_XT_MATCH_COMMENT=m
360CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
361CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
362CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
363CONFIG_NETFILTER_XT_MATCH_DCCP=m
364CONFIG_NETFILTER_XT_MATCH_DSCP=m
365CONFIG_NETFILTER_XT_MATCH_ESP=m
366CONFIG_NETFILTER_XT_MATCH_HELPER=m
367CONFIG_NETFILTER_XT_MATCH_LENGTH=m
368CONFIG_NETFILTER_XT_MATCH_LIMIT=m
369CONFIG_NETFILTER_XT_MATCH_MAC=m
370CONFIG_NETFILTER_XT_MATCH_MARK=m
371CONFIG_NETFILTER_XT_MATCH_POLICY=m
372CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
373CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
374CONFIG_NETFILTER_XT_MATCH_QUOTA=m
375CONFIG_NETFILTER_XT_MATCH_REALM=m
376CONFIG_NETFILTER_XT_MATCH_SCTP=m
377CONFIG_NETFILTER_XT_MATCH_STATE=m
378CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
379CONFIG_NETFILTER_XT_MATCH_STRING=m
380CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
381CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
382
383#
384# IP: Netfilter Configuration
385#
386CONFIG_NF_CONNTRACK_IPV4=m
387CONFIG_NF_CONNTRACK_PROC_COMPAT=y
388# CONFIG_IP_NF_QUEUE is not set
389# CONFIG_IP_NF_IPTABLES is not set
390# CONFIG_IP_NF_ARPTABLES is not set
391
392#
393# DCCP Configuration (EXPERIMENTAL)
394#
395# CONFIG_IP_DCCP is not set 409# CONFIG_IP_DCCP is not set
396
397#
398# SCTP Configuration (EXPERIMENTAL)
399#
400# CONFIG_IP_SCTP is not set 410# CONFIG_IP_SCTP is not set
401 411# CONFIG_RDS is not set
402#
403# TIPC Configuration (EXPERIMENTAL)
404#
405# CONFIG_TIPC is not set 412# CONFIG_TIPC is not set
406# CONFIG_ATM is not set 413# CONFIG_ATM is not set
407# CONFIG_BRIDGE is not set 414# CONFIG_BRIDGE is not set
415# CONFIG_NET_DSA is not set
408# CONFIG_VLAN_8021Q is not set 416# CONFIG_VLAN_8021Q is not set
409# CONFIG_DECNET is not set 417# CONFIG_DECNET is not set
410# CONFIG_LLC2 is not set 418# CONFIG_LLC2 is not set
@@ -414,27 +422,30 @@ CONFIG_NF_CONNTRACK_PROC_COMPAT=y
414# CONFIG_LAPB is not set 422# CONFIG_LAPB is not set
415# CONFIG_ECONET is not set 423# CONFIG_ECONET is not set
416# CONFIG_WAN_ROUTER is not set 424# CONFIG_WAN_ROUTER is not set
417 425# CONFIG_PHONET is not set
418# 426# CONFIG_IEEE802154 is not set
419# QoS and/or fair queueing
420#
421# CONFIG_NET_SCHED is not set 427# CONFIG_NET_SCHED is not set
422CONFIG_NET_CLS_ROUTE=y 428# CONFIG_DCB is not set
423 429
424# 430#
425# Network testing 431# Network testing
426# 432#
427# CONFIG_NET_PKTGEN is not set 433# CONFIG_NET_PKTGEN is not set
428# CONFIG_HAMRADIO is not set 434# CONFIG_HAMRADIO is not set
435# CONFIG_CAN is not set
429# CONFIG_IRDA is not set 436# CONFIG_IRDA is not set
430# CONFIG_BT is not set 437# CONFIG_BT is not set
431CONFIG_IEEE80211=m 438# CONFIG_AF_RXRPC is not set
432# CONFIG_IEEE80211_DEBUG is not set 439CONFIG_WIRELESS=y
433CONFIG_IEEE80211_CRYPT_WEP=m 440# CONFIG_CFG80211 is not set
434CONFIG_IEEE80211_CRYPT_CCMP=m 441# CONFIG_LIB80211 is not set
435CONFIG_IEEE80211_SOFTMAC=m 442
436# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set 443#
437CONFIG_WIRELESS_EXT=y 444# CFG80211 needs to be enabled for MAC80211
445#
446# CONFIG_WIMAX is not set
447# CONFIG_RFKILL is not set
448# CONFIG_NET_9P is not set
438 449
439# 450#
440# Device Drivers 451# Device Drivers
@@ -443,25 +454,25 @@ CONFIG_WIRELESS_EXT=y
443# 454#
444# Generic Driver Options 455# Generic Driver Options
445# 456#
457CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
458# CONFIG_DEVTMPFS is not set
446CONFIG_STANDALONE=y 459CONFIG_STANDALONE=y
447CONFIG_PREVENT_FIRMWARE_BUILD=y 460CONFIG_PREVENT_FIRMWARE_BUILD=y
448CONFIG_FW_LOADER=m 461CONFIG_FW_LOADER=y
462CONFIG_FIRMWARE_IN_KERNEL=y
463CONFIG_EXTRA_FIRMWARE=""
464# CONFIG_DEBUG_DRIVER is not set
465# CONFIG_DEBUG_DEVRES is not set
449# CONFIG_SYS_HYPERVISOR is not set 466# CONFIG_SYS_HYPERVISOR is not set
450 467# CONFIG_CONNECTOR is not set
451#
452# Connector - unified userspace <-> kernelspace linker
453#
454CONFIG_CONNECTOR=m
455
456#
457# Memory Technology Devices (MTD)
458#
459CONFIG_MTD=y 468CONFIG_MTD=y
460# CONFIG_MTD_DEBUG is not set 469# CONFIG_MTD_DEBUG is not set
470# CONFIG_MTD_TESTS is not set
461# CONFIG_MTD_CONCAT is not set 471# CONFIG_MTD_CONCAT is not set
462CONFIG_MTD_PARTITIONS=y 472CONFIG_MTD_PARTITIONS=y
463# CONFIG_MTD_REDBOOT_PARTS is not set 473# CONFIG_MTD_REDBOOT_PARTS is not set
464# CONFIG_MTD_CMDLINE_PARTS is not set 474# CONFIG_MTD_CMDLINE_PARTS is not set
475# CONFIG_MTD_AR7_PARTS is not set
465 476
466# 477#
467# User Modules And Translation Layers 478# User Modules And Translation Layers
@@ -474,6 +485,7 @@ CONFIG_MTD_BLOCK=y
474# CONFIG_INFTL is not set 485# CONFIG_INFTL is not set
475# CONFIG_RFD_FTL is not set 486# CONFIG_RFD_FTL is not set
476# CONFIG_SSFDC is not set 487# CONFIG_SSFDC is not set
488# CONFIG_MTD_OOPS is not set
477 489
478# 490#
479# RAM/ROM/Flash chip drivers 491# RAM/ROM/Flash chip drivers
@@ -499,14 +511,14 @@ CONFIG_MTD_CFI_UTIL=y
499# CONFIG_MTD_RAM is not set 511# CONFIG_MTD_RAM is not set
500# CONFIG_MTD_ROM is not set 512# CONFIG_MTD_ROM is not set
501# CONFIG_MTD_ABSENT is not set 513# CONFIG_MTD_ABSENT is not set
502# CONFIG_MTD_OBSOLETE_CHIPS is not set
503 514
504# 515#
505# Mapping drivers for chip access 516# Mapping drivers for chip access
506# 517#
507# CONFIG_MTD_COMPLEX_MAPPINGS is not set 518# CONFIG_MTD_COMPLEX_MAPPINGS is not set
508# CONFIG_MTD_PHYSMAP is not set 519CONFIG_MTD_PHYSMAP=y
509CONFIG_MTD_ALCHEMY=y 520# CONFIG_MTD_PHYSMAP_COMPAT is not set
521# CONFIG_MTD_INTEL_VR_NOR is not set
510# CONFIG_MTD_PLATRAM is not set 522# CONFIG_MTD_PLATRAM is not set
511 523
512# 524#
@@ -524,30 +536,30 @@ CONFIG_MTD_ALCHEMY=y
524# CONFIG_MTD_DOC2000 is not set 536# CONFIG_MTD_DOC2000 is not set
525# CONFIG_MTD_DOC2001 is not set 537# CONFIG_MTD_DOC2001 is not set
526# CONFIG_MTD_DOC2001PLUS is not set 538# CONFIG_MTD_DOC2001PLUS is not set
527 539CONFIG_MTD_NAND=y
528# 540# CONFIG_MTD_NAND_VERIFY_WRITE is not set
529# NAND Flash Device Drivers 541# CONFIG_MTD_NAND_ECC_SMC is not set
530# 542# CONFIG_MTD_NAND_MUSEUM_IDS is not set
531# CONFIG_MTD_NAND is not set 543CONFIG_MTD_NAND_IDS=y
532 544CONFIG_MTD_NAND_AU1550=y
533# 545# CONFIG_MTD_NAND_DISKONCHIP is not set
534# OneNAND Flash Device Drivers 546# CONFIG_MTD_NAND_CAFE is not set
535# 547# CONFIG_MTD_NAND_NANDSIM is not set
548# CONFIG_MTD_NAND_PLATFORM is not set
549# CONFIG_MTD_ALAUDA is not set
536# CONFIG_MTD_ONENAND is not set 550# CONFIG_MTD_ONENAND is not set
537 551
538# 552#
539# Parallel port support 553# LPDDR flash memory drivers
540#
541# CONFIG_PARPORT is not set
542
543#
544# Plug and Play support
545# 554#
546# CONFIG_PNPACPI is not set 555# CONFIG_MTD_LPDDR is not set
547 556
548# 557#
549# Block devices 558# UBI - Unsorted block images
550# 559#
560# CONFIG_MTD_UBI is not set
561# CONFIG_PARPORT is not set
562CONFIG_BLK_DEV=y
551# CONFIG_BLK_CPQ_DA is not set 563# CONFIG_BLK_CPQ_DA is not set
552# CONFIG_BLK_CPQ_CISS_DA is not set 564# CONFIG_BLK_CPQ_CISS_DA is not set
553# CONFIG_BLK_DEV_DAC960 is not set 565# CONFIG_BLK_DEV_DAC960 is not set
@@ -555,67 +567,66 @@ CONFIG_MTD_ALCHEMY=y
555# CONFIG_BLK_DEV_COW_COMMON is not set 567# CONFIG_BLK_DEV_COW_COMMON is not set
556CONFIG_BLK_DEV_LOOP=y 568CONFIG_BLK_DEV_LOOP=y
557# CONFIG_BLK_DEV_CRYPTOLOOP is not set 569# CONFIG_BLK_DEV_CRYPTOLOOP is not set
558# CONFIG_BLK_DEV_NBD is not set
559# CONFIG_BLK_DEV_SX8 is not set
560# CONFIG_BLK_DEV_RAM is not set
561# CONFIG_BLK_DEV_INITRD is not set
562CONFIG_CDROM_PKTCDVD=m
563CONFIG_CDROM_PKTCDVD_BUFFERS=8
564# CONFIG_CDROM_PKTCDVD_WCACHE is not set
565CONFIG_ATA_OVER_ETH=m
566 570
567# 571#
568# Misc devices 572# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
569#
570CONFIG_SGI_IOC4=m
571# CONFIG_TIFM_CORE is not set
572
573#
574# ATA/ATAPI/MFM/RLL support
575# 573#
574# CONFIG_BLK_DEV_NBD is not set
575# CONFIG_BLK_DEV_SX8 is not set
576CONFIG_BLK_DEV_UB=y
577# CONFIG_BLK_DEV_RAM is not set
578# CONFIG_CDROM_PKTCDVD is not set
579# CONFIG_ATA_OVER_ETH is not set
580# CONFIG_BLK_DEV_HD is not set
581# CONFIG_MISC_DEVICES is not set
582CONFIG_HAVE_IDE=y
576CONFIG_IDE=y 583CONFIG_IDE=y
577CONFIG_IDE_MAX_HWIFS=4
578CONFIG_BLK_DEV_IDE=y
579 584
580# 585#
581# Please see Documentation/ide.txt for help/info on IDE drives 586# Please see Documentation/ide/ide.txt for help/info on IDE drives
582# 587#
588CONFIG_IDE_XFER_MODE=y
589CONFIG_IDE_ATAPI=y
583# CONFIG_BLK_DEV_IDE_SATA is not set 590# CONFIG_BLK_DEV_IDE_SATA is not set
584CONFIG_BLK_DEV_IDEDISK=y 591CONFIG_IDE_GD=y
585# CONFIG_IDEDISK_MULTI_MODE is not set 592CONFIG_IDE_GD_ATA=y
586CONFIG_BLK_DEV_IDECS=m 593# CONFIG_IDE_GD_ATAPI is not set
587# CONFIG_BLK_DEV_DELKIN is not set 594CONFIG_BLK_DEV_IDECS=y
588# CONFIG_BLK_DEV_IDECD is not set 595CONFIG_BLK_DEV_IDECD=y
596# CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS is not set
589# CONFIG_BLK_DEV_IDETAPE is not set 597# CONFIG_BLK_DEV_IDETAPE is not set
590# CONFIG_BLK_DEV_IDEFLOPPY is not set
591# CONFIG_IDE_TASK_IOCTL is not set 598# CONFIG_IDE_TASK_IOCTL is not set
599CONFIG_IDE_PROC_FS=y
592 600
593# 601#
594# IDE chipset support/bugfixes 602# IDE chipset support/bugfixes
595# 603#
596CONFIG_IDE_GENERIC=y 604# CONFIG_IDE_GENERIC is not set
605# CONFIG_BLK_DEV_PLATFORM is not set
606CONFIG_BLK_DEV_IDEDMA_SFF=y
607
608#
609# PCI IDE chipsets support
610#
597CONFIG_BLK_DEV_IDEPCI=y 611CONFIG_BLK_DEV_IDEPCI=y
598# CONFIG_IDEPCI_SHARE_IRQ is not set 612# CONFIG_IDEPCI_PCIBUS_ORDER is not set
599# CONFIG_BLK_DEV_OFFBOARD is not set 613# CONFIG_BLK_DEV_OFFBOARD is not set
600CONFIG_BLK_DEV_GENERIC=y 614# CONFIG_BLK_DEV_GENERIC is not set
601# CONFIG_BLK_DEV_OPTI621 is not set 615# CONFIG_BLK_DEV_OPTI621 is not set
602CONFIG_BLK_DEV_IDEDMA_PCI=y 616CONFIG_BLK_DEV_IDEDMA_PCI=y
603# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
604# CONFIG_IDEDMA_PCI_AUTO is not set
605# CONFIG_BLK_DEV_AEC62XX is not set 617# CONFIG_BLK_DEV_AEC62XX is not set
606# CONFIG_BLK_DEV_ALI15X3 is not set 618# CONFIG_BLK_DEV_ALI15X3 is not set
607# CONFIG_BLK_DEV_AMD74XX is not set 619# CONFIG_BLK_DEV_AMD74XX is not set
608# CONFIG_BLK_DEV_CMD64X is not set 620# CONFIG_BLK_DEV_CMD64X is not set
609# CONFIG_BLK_DEV_TRIFLEX is not set 621# CONFIG_BLK_DEV_TRIFLEX is not set
610# CONFIG_BLK_DEV_CY82C693 is not set
611# CONFIG_BLK_DEV_CS5520 is not set 622# CONFIG_BLK_DEV_CS5520 is not set
612# CONFIG_BLK_DEV_CS5530 is not set 623# CONFIG_BLK_DEV_CS5530 is not set
613# CONFIG_BLK_DEV_HPT34X is not set
614CONFIG_BLK_DEV_HPT366=y 624CONFIG_BLK_DEV_HPT366=y
615# CONFIG_BLK_DEV_JMICRON is not set 625# CONFIG_BLK_DEV_JMICRON is not set
616# CONFIG_BLK_DEV_SC1200 is not set 626# CONFIG_BLK_DEV_SC1200 is not set
617# CONFIG_BLK_DEV_PIIX is not set 627# CONFIG_BLK_DEV_PIIX is not set
618CONFIG_BLK_DEV_IT8213=m 628# CONFIG_BLK_DEV_IT8172 is not set
629# CONFIG_BLK_DEV_IT8213 is not set
619# CONFIG_BLK_DEV_IT821X is not set 630# CONFIG_BLK_DEV_IT821X is not set
620# CONFIG_BLK_DEV_NS87415 is not set 631# CONFIG_BLK_DEV_NS87415 is not set
621# CONFIG_BLK_DEV_PDC202XX_OLD is not set 632# CONFIG_BLK_DEV_PDC202XX_OLD is not set
@@ -625,82 +636,65 @@ CONFIG_BLK_DEV_IT8213=m
625# CONFIG_BLK_DEV_SLC90E66 is not set 636# CONFIG_BLK_DEV_SLC90E66 is not set
626# CONFIG_BLK_DEV_TRM290 is not set 637# CONFIG_BLK_DEV_TRM290 is not set
627# CONFIG_BLK_DEV_VIA82CXXX is not set 638# CONFIG_BLK_DEV_VIA82CXXX is not set
628CONFIG_BLK_DEV_TC86C001=m 639# CONFIG_BLK_DEV_TC86C001 is not set
629# CONFIG_IDE_ARM is not set
630CONFIG_BLK_DEV_IDEDMA=y 640CONFIG_BLK_DEV_IDEDMA=y
631# CONFIG_IDEDMA_IVB is not set
632# CONFIG_IDEDMA_AUTO is not set
633# CONFIG_BLK_DEV_HD is not set
634 641
635# 642#
636# SCSI device support 643# SCSI device support
637# 644#
638CONFIG_RAID_ATTRS=m 645# CONFIG_RAID_ATTRS is not set
639# CONFIG_SCSI is not set 646# CONFIG_SCSI is not set
647# CONFIG_SCSI_DMA is not set
640# CONFIG_SCSI_NETLINK is not set 648# CONFIG_SCSI_NETLINK is not set
641
642#
643# Serial ATA (prod) and Parallel ATA (experimental) drivers
644#
645# CONFIG_ATA is not set 649# CONFIG_ATA is not set
646
647#
648# Multi-device support (RAID and LVM)
649#
650# CONFIG_MD is not set 650# CONFIG_MD is not set
651
652#
653# Fusion MPT device support
654#
655# CONFIG_FUSION is not set 651# CONFIG_FUSION is not set
656 652
657# 653#
658# IEEE 1394 (FireWire) support 654# IEEE 1394 (FireWire) support
659# 655#
660# CONFIG_IEEE1394 is not set
661 656
662# 657#
663# I2O device support 658# You can enable one or both FireWire driver stacks.
664# 659#
665# CONFIG_I2O is not set
666 660
667# 661#
668# Network device support 662# The newer stack is recommended.
669# 663#
664# CONFIG_FIREWIRE is not set
665# CONFIG_IEEE1394 is not set
666# CONFIG_I2O is not set
670CONFIG_NETDEVICES=y 667CONFIG_NETDEVICES=y
671# CONFIG_DUMMY is not set 668# CONFIG_DUMMY is not set
672# CONFIG_BONDING is not set 669# CONFIG_BONDING is not set
670# CONFIG_MACVLAN is not set
673# CONFIG_EQUALIZER is not set 671# CONFIG_EQUALIZER is not set
674# CONFIG_TUN is not set 672# CONFIG_TUN is not set
675 673# CONFIG_VETH is not set
676#
677# ARCnet devices
678#
679# CONFIG_ARCNET is not set 674# CONFIG_ARCNET is not set
680
681#
682# PHY device support
683#
684CONFIG_PHYLIB=y 675CONFIG_PHYLIB=y
685 676
686# 677#
687# MII PHY device drivers 678# MII PHY device drivers
688# 679#
689CONFIG_MARVELL_PHY=m 680CONFIG_MARVELL_PHY=y
690CONFIG_DAVICOM_PHY=m 681CONFIG_DAVICOM_PHY=y
691CONFIG_QSEMI_PHY=m 682CONFIG_QSEMI_PHY=y
692CONFIG_LXT_PHY=m 683CONFIG_LXT_PHY=y
693CONFIG_CICADA_PHY=m 684CONFIG_CICADA_PHY=y
694CONFIG_VITESSE_PHY=m 685CONFIG_VITESSE_PHY=y
695CONFIG_SMSC_PHY=m 686CONFIG_SMSC_PHY=y
696# CONFIG_BROADCOM_PHY is not set 687CONFIG_BROADCOM_PHY=y
688CONFIG_ICPLUS_PHY=y
689CONFIG_REALTEK_PHY=y
690CONFIG_NATIONAL_PHY=y
691CONFIG_STE10XP=y
692CONFIG_LSI_ET1011C_PHY=y
697# CONFIG_FIXED_PHY is not set 693# CONFIG_FIXED_PHY is not set
698 694# CONFIG_MDIO_BITBANG is not set
699#
700# Ethernet (10 or 100Mbit)
701#
702CONFIG_NET_ETHERNET=y 695CONFIG_NET_ETHERNET=y
703# CONFIG_MII is not set 696CONFIG_MII=y
697# CONFIG_AX88796 is not set
704CONFIG_MIPS_AU1X00_ENET=y 698CONFIG_MIPS_AU1X00_ENET=y
705# CONFIG_HAPPYMEAL is not set 699# CONFIG_HAPPYMEAL is not set
706# CONFIG_SUNGEM is not set 700# CONFIG_SUNGEM is not set
@@ -708,88 +702,51 @@ CONFIG_MIPS_AU1X00_ENET=y
708# CONFIG_NET_VENDOR_3COM is not set 702# CONFIG_NET_VENDOR_3COM is not set
709# CONFIG_SMC91X is not set 703# CONFIG_SMC91X is not set
710# CONFIG_DM9000 is not set 704# CONFIG_DM9000 is not set
711 705# CONFIG_ETHOC is not set
712# 706# CONFIG_SMSC911X is not set
713# Tulip family network device support 707# CONFIG_DNET is not set
714#
715# CONFIG_NET_TULIP is not set 708# CONFIG_NET_TULIP is not set
716# CONFIG_HP100 is not set 709# CONFIG_HP100 is not set
710# CONFIG_IBM_NEW_EMAC_ZMII is not set
711# CONFIG_IBM_NEW_EMAC_RGMII is not set
712# CONFIG_IBM_NEW_EMAC_TAH is not set
713# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
714# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
715# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
716# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
717# CONFIG_NET_PCI is not set 717# CONFIG_NET_PCI is not set
718 718# CONFIG_B44 is not set
719# 719# CONFIG_KS8842 is not set
720# Ethernet (1000 Mbit) 720# CONFIG_KS8851_MLL is not set
721# 721# CONFIG_ATL2 is not set
722# CONFIG_ACENIC is not set 722# CONFIG_NETDEV_1000 is not set
723# CONFIG_DL2K is not set 723# CONFIG_NETDEV_10000 is not set
724# CONFIG_E1000 is not set
725# CONFIG_NS83820 is not set
726# CONFIG_HAMACHI is not set
727# CONFIG_YELLOWFIN is not set
728# CONFIG_R8169 is not set
729# CONFIG_SIS190 is not set
730# CONFIG_SKGE is not set
731# CONFIG_SKY2 is not set
732# CONFIG_SK98LIN is not set
733# CONFIG_TIGON3 is not set
734# CONFIG_BNX2 is not set
735CONFIG_QLA3XXX=m
736# CONFIG_ATL1 is not set
737
738#
739# Ethernet (10000 Mbit)
740#
741# CONFIG_CHELSIO_T1 is not set
742CONFIG_CHELSIO_T3=m
743# CONFIG_IXGB is not set
744# CONFIG_S2IO is not set
745# CONFIG_MYRI10GE is not set
746CONFIG_NETXEN_NIC=m
747
748#
749# Token Ring devices
750#
751# CONFIG_TR is not set 724# CONFIG_TR is not set
725# CONFIG_WLAN is not set
752 726
753# 727#
754# Wireless LAN (non-hamradio) 728# Enable WiMAX (Networking options) to see the WiMAX drivers
755# 729#
756# CONFIG_NET_RADIO is not set
757 730
758# 731#
759# PCMCIA network device support 732# USB Network Adapters
760# 733#
734# CONFIG_USB_CATC is not set
735# CONFIG_USB_KAWETH is not set
736# CONFIG_USB_PEGASUS is not set
737# CONFIG_USB_RTL8150 is not set
738# CONFIG_USB_USBNET is not set
761# CONFIG_NET_PCMCIA is not set 739# CONFIG_NET_PCMCIA is not set
762
763#
764# Wan interfaces
765#
766# CONFIG_WAN is not set 740# CONFIG_WAN is not set
767# CONFIG_FDDI is not set 741# CONFIG_FDDI is not set
768# CONFIG_HIPPI is not set 742# CONFIG_HIPPI is not set
769CONFIG_PPP=m 743# CONFIG_PPP is not set
770CONFIG_PPP_MULTILINK=y
771# CONFIG_PPP_FILTER is not set
772CONFIG_PPP_ASYNC=m
773# CONFIG_PPP_SYNC_TTY is not set
774CONFIG_PPP_DEFLATE=m
775# CONFIG_PPP_BSDCOMP is not set
776CONFIG_PPP_MPPE=m
777CONFIG_PPPOE=m
778# CONFIG_SLIP is not set 744# CONFIG_SLIP is not set
779CONFIG_SLHC=m
780# CONFIG_SHAPER is not set
781# CONFIG_NETCONSOLE is not set 745# CONFIG_NETCONSOLE is not set
782# CONFIG_NETPOLL is not set 746# CONFIG_NETPOLL is not set
783# CONFIG_NET_POLL_CONTROLLER is not set 747# CONFIG_NET_POLL_CONTROLLER is not set
784 748# CONFIG_VMXNET3 is not set
785#
786# ISDN subsystem
787#
788# CONFIG_ISDN is not set 749# CONFIG_ISDN is not set
789
790#
791# Telephony Support
792#
793# CONFIG_PHONE is not set 750# CONFIG_PHONE is not set
794 751
795# 752#
@@ -797,16 +754,14 @@ CONFIG_SLHC=m
797# 754#
798CONFIG_INPUT=y 755CONFIG_INPUT=y
799# CONFIG_INPUT_FF_MEMLESS is not set 756# CONFIG_INPUT_FF_MEMLESS is not set
757# CONFIG_INPUT_POLLDEV is not set
758# CONFIG_INPUT_SPARSEKMAP is not set
800 759
801# 760#
802# Userland interfaces 761# Userland interfaces
803# 762#
804CONFIG_INPUT_MOUSEDEV=y 763# CONFIG_INPUT_MOUSEDEV is not set
805CONFIG_INPUT_MOUSEDEV_PSAUX=y
806CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
807CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
808# CONFIG_INPUT_JOYDEV is not set 764# CONFIG_INPUT_JOYDEV is not set
809# CONFIG_INPUT_TSDEV is not set
810CONFIG_INPUT_EVDEV=y 765CONFIG_INPUT_EVDEV=y
811# CONFIG_INPUT_EVBUG is not set 766# CONFIG_INPUT_EVBUG is not set
812 767
@@ -816,33 +771,34 @@ CONFIG_INPUT_EVDEV=y
816# CONFIG_INPUT_KEYBOARD is not set 771# CONFIG_INPUT_KEYBOARD is not set
817# CONFIG_INPUT_MOUSE is not set 772# CONFIG_INPUT_MOUSE is not set
818# CONFIG_INPUT_JOYSTICK is not set 773# CONFIG_INPUT_JOYSTICK is not set
774# CONFIG_INPUT_TABLET is not set
819# CONFIG_INPUT_TOUCHSCREEN is not set 775# CONFIG_INPUT_TOUCHSCREEN is not set
820# CONFIG_INPUT_MISC is not set 776# CONFIG_INPUT_MISC is not set
821 777
822# 778#
823# Hardware I/O ports 779# Hardware I/O ports
824# 780#
825CONFIG_SERIO=y 781# CONFIG_SERIO is not set
826# CONFIG_SERIO_I8042 is not set
827CONFIG_SERIO_SERPORT=y
828# CONFIG_SERIO_PCIPS2 is not set
829# CONFIG_SERIO_LIBPS2 is not set
830CONFIG_SERIO_RAW=m
831# CONFIG_GAMEPORT is not set 782# CONFIG_GAMEPORT is not set
832 783
833# 784#
834# Character devices 785# Character devices
835# 786#
836# CONFIG_VT is not set 787CONFIG_VT=y
788CONFIG_CONSOLE_TRANSLATIONS=y
789CONFIG_VT_CONSOLE=y
790CONFIG_HW_CONSOLE=y
791CONFIG_VT_HW_CONSOLE_BINDING=y
792CONFIG_DEVKMEM=y
837# CONFIG_SERIAL_NONSTANDARD is not set 793# CONFIG_SERIAL_NONSTANDARD is not set
838# CONFIG_AU1X00_GPIO is not set 794# CONFIG_NOZOMI is not set
839 795
840# 796#
841# Serial drivers 797# Serial drivers
842# 798#
843CONFIG_SERIAL_8250=y 799CONFIG_SERIAL_8250=y
844CONFIG_SERIAL_8250_CONSOLE=y 800CONFIG_SERIAL_8250_CONSOLE=y
845CONFIG_SERIAL_8250_PCI=y 801# CONFIG_SERIAL_8250_PCI is not set
846# CONFIG_SERIAL_8250_CS is not set 802# CONFIG_SERIAL_8250_CS is not set
847CONFIG_SERIAL_8250_NR_UARTS=4 803CONFIG_SERIAL_8250_NR_UARTS=4
848CONFIG_SERIAL_8250_RUNTIME_UARTS=4 804CONFIG_SERIAL_8250_RUNTIME_UARTS=4
@@ -856,282 +812,492 @@ CONFIG_SERIAL_CORE=y
856CONFIG_SERIAL_CORE_CONSOLE=y 812CONFIG_SERIAL_CORE_CONSOLE=y
857# CONFIG_SERIAL_JSM is not set 813# CONFIG_SERIAL_JSM is not set
858CONFIG_UNIX98_PTYS=y 814CONFIG_UNIX98_PTYS=y
859CONFIG_LEGACY_PTYS=y 815# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
860CONFIG_LEGACY_PTY_COUNT=256 816# CONFIG_LEGACY_PTYS is not set
861
862#
863# IPMI
864#
865# CONFIG_IPMI_HANDLER is not set 817# CONFIG_IPMI_HANDLER is not set
866
867#
868# Watchdog Cards
869#
870# CONFIG_WATCHDOG is not set
871# CONFIG_HW_RANDOM is not set 818# CONFIG_HW_RANDOM is not set
872# CONFIG_RTC is not set
873# CONFIG_GEN_RTC is not set
874# CONFIG_DTLK is not set
875# CONFIG_R3964 is not set 819# CONFIG_R3964 is not set
876# CONFIG_APPLICOM is not set 820# CONFIG_APPLICOM is not set
877# CONFIG_DRM is not set
878 821
879# 822#
880# PCMCIA character devices 823# PCMCIA character devices
881# 824#
882CONFIG_SYNCLINK_CS=m 825# CONFIG_SYNCLINK_CS is not set
883# CONFIG_CARDMAN_4000 is not set 826# CONFIG_CARDMAN_4000 is not set
884# CONFIG_CARDMAN_4040 is not set 827# CONFIG_CARDMAN_4040 is not set
828# CONFIG_IPWIRELESS is not set
885# CONFIG_RAW_DRIVER is not set 829# CONFIG_RAW_DRIVER is not set
830# CONFIG_TCG_TPM is not set
831CONFIG_DEVPORT=y
832CONFIG_I2C=y
833CONFIG_I2C_BOARDINFO=y
834# CONFIG_I2C_COMPAT is not set
835CONFIG_I2C_CHARDEV=y
836# CONFIG_I2C_HELPER_AUTO is not set
886 837
887# 838#
888# TPM devices 839# I2C Algorithms
889# 840#
890# CONFIG_TCG_TPM is not set 841# CONFIG_I2C_ALGOBIT is not set
842# CONFIG_I2C_ALGOPCF is not set
843# CONFIG_I2C_ALGOPCA is not set
891 844
892# 845#
893# I2C support 846# I2C Hardware Bus support
894# 847#
895# CONFIG_I2C is not set
896 848
897# 849#
898# SPI support 850# PC SMBus host controller drivers
899# 851#
900# CONFIG_SPI is not set 852# CONFIG_I2C_ALI1535 is not set
901# CONFIG_SPI_MASTER is not set 853# CONFIG_I2C_ALI1563 is not set
854# CONFIG_I2C_ALI15X3 is not set
855# CONFIG_I2C_AMD756 is not set
856# CONFIG_I2C_AMD8111 is not set
857# CONFIG_I2C_I801 is not set
858# CONFIG_I2C_ISCH is not set
859# CONFIG_I2C_PIIX4 is not set
860# CONFIG_I2C_NFORCE2 is not set
861# CONFIG_I2C_SIS5595 is not set
862# CONFIG_I2C_SIS630 is not set
863# CONFIG_I2C_SIS96X is not set
864# CONFIG_I2C_VIA is not set
865# CONFIG_I2C_VIAPRO is not set
902 866
903# 867#
904# Dallas's 1-wire bus 868# I2C system bus drivers (mostly embedded / system-on-chip)
905# 869#
906# CONFIG_W1 is not set 870CONFIG_I2C_AU1550=y
871# CONFIG_I2C_GPIO is not set
872# CONFIG_I2C_OCORES is not set
873# CONFIG_I2C_SIMTEC is not set
874
875#
876# External I2C/SMBus adapter drivers
877#
878# CONFIG_I2C_PARPORT_LIGHT is not set
879# CONFIG_I2C_TAOS_EVM is not set
880# CONFIG_I2C_TINY_USB is not set
907 881
908# 882#
909# Hardware Monitoring support 883# Other I2C/SMBus bus drivers
910# 884#
885# CONFIG_I2C_PCA_PLATFORM is not set
886# CONFIG_I2C_STUB is not set
887
888#
889# Miscellaneous I2C Chip support
890#
891# CONFIG_SENSORS_TSL2550 is not set
892# CONFIG_I2C_DEBUG_CORE is not set
893# CONFIG_I2C_DEBUG_ALGO is not set
894# CONFIG_I2C_DEBUG_BUS is not set
895# CONFIG_I2C_DEBUG_CHIP is not set
896# CONFIG_SPI is not set
897
898#
899# PPS support
900#
901# CONFIG_PPS is not set
902CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
903# CONFIG_GPIOLIB is not set
904# CONFIG_W1 is not set
905# CONFIG_POWER_SUPPLY is not set
911# CONFIG_HWMON is not set 906# CONFIG_HWMON is not set
912# CONFIG_HWMON_VID is not set 907# CONFIG_THERMAL is not set
908# CONFIG_WATCHDOG is not set
909CONFIG_SSB_POSSIBLE=y
913 910
914# 911#
915# Multimedia devices 912# Sonics Silicon Backplane
916# 913#
917# CONFIG_VIDEO_DEV is not set 914# CONFIG_SSB is not set
918 915
919# 916#
920# Digital Video Broadcasting Devices 917# Multifunction device drivers
921# 918#
922# CONFIG_DVB is not set 919# CONFIG_MFD_CORE is not set
920# CONFIG_MFD_SM501 is not set
921# CONFIG_HTC_PASIC3 is not set
922# CONFIG_TWL4030_CORE is not set
923# CONFIG_MFD_TMIO is not set
924# CONFIG_PMIC_DA903X is not set
925# CONFIG_PMIC_ADP5520 is not set
926# CONFIG_MFD_WM8400 is not set
927# CONFIG_MFD_WM831X is not set
928# CONFIG_MFD_WM8350_I2C is not set
929# CONFIG_MFD_PCF50633 is not set
930# CONFIG_AB3100_CORE is not set
931# CONFIG_MFD_88PM8607 is not set
932# CONFIG_REGULATOR is not set
933# CONFIG_MEDIA_SUPPORT is not set
923 934
924# 935#
925# Graphics support 936# Graphics support
926# 937#
927# CONFIG_FIRMWARE_EDID is not set 938# CONFIG_VGA_ARB is not set
939# CONFIG_DRM is not set
940# CONFIG_VGASTATE is not set
941# CONFIG_VIDEO_OUTPUT_CONTROL is not set
928# CONFIG_FB is not set 942# CONFIG_FB is not set
929# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 943# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
930 944
931# 945#
932# Sound 946# Display device support
933#
934# CONFIG_SOUND is not set
935
936#
937# HID Devices
938# 947#
939# CONFIG_HID is not set 948# CONFIG_DISPLAY_SUPPORT is not set
940 949
941# 950#
942# USB support 951# Console display driver support
943# 952#
953CONFIG_VGA_CONSOLE=y
954# CONFIG_VGACON_SOFT_SCROLLBACK is not set
955CONFIG_DUMMY_CONSOLE=y
956# CONFIG_SOUND is not set
957CONFIG_HID_SUPPORT=y
958CONFIG_HID=y
959CONFIG_HIDRAW=y
960
961#
962# USB Input Devices
963#
964CONFIG_USB_HID=y
965# CONFIG_HID_PID is not set
966CONFIG_USB_HIDDEV=y
967
968#
969# Special HID drivers
970#
971# CONFIG_HID_A4TECH is not set
972# CONFIG_HID_APPLE is not set
973# CONFIG_HID_BELKIN is not set
974# CONFIG_HID_CHERRY is not set
975# CONFIG_HID_CHICONY is not set
976# CONFIG_HID_CYPRESS is not set
977# CONFIG_HID_DRAGONRISE is not set
978# CONFIG_HID_EZKEY is not set
979# CONFIG_HID_KYE is not set
980# CONFIG_HID_GYRATION is not set
981# CONFIG_HID_TWINHAN is not set
982# CONFIG_HID_KENSINGTON is not set
983# CONFIG_HID_LOGITECH is not set
984# CONFIG_HID_MICROSOFT is not set
985# CONFIG_HID_MONTEREY is not set
986# CONFIG_HID_NTRIG is not set
987# CONFIG_HID_PANTHERLORD is not set
988# CONFIG_HID_PETALYNX is not set
989# CONFIG_HID_SAMSUNG is not set
990# CONFIG_HID_SONY is not set
991# CONFIG_HID_SUNPLUS is not set
992# CONFIG_HID_GREENASIA is not set
993# CONFIG_HID_SMARTJOYPLUS is not set
994# CONFIG_HID_TOPSEED is not set
995# CONFIG_HID_THRUSTMASTER is not set
996# CONFIG_HID_ZEROPLUS is not set
997CONFIG_USB_SUPPORT=y
944CONFIG_USB_ARCH_HAS_HCD=y 998CONFIG_USB_ARCH_HAS_HCD=y
945CONFIG_USB_ARCH_HAS_OHCI=y 999CONFIG_USB_ARCH_HAS_OHCI=y
946CONFIG_USB_ARCH_HAS_EHCI=y 1000CONFIG_USB_ARCH_HAS_EHCI=y
947# CONFIG_USB is not set 1001CONFIG_USB=y
1002# CONFIG_USB_DEBUG is not set
1003# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
948 1004
949# 1005#
950# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1006# Miscellaneous USB options
951# 1007#
1008CONFIG_USB_DEVICEFS=y
1009CONFIG_USB_DEVICE_CLASS=y
1010CONFIG_USB_DYNAMIC_MINORS=y
1011CONFIG_USB_SUSPEND=y
1012# CONFIG_USB_OTG is not set
1013# CONFIG_USB_OTG_WHITELIST is not set
1014# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1015# CONFIG_USB_MON is not set
1016# CONFIG_USB_WUSB is not set
1017# CONFIG_USB_WUSB_CBAF is not set
952 1018
953# 1019#
954# USB Gadget Support 1020# USB Host Controller Drivers
955# 1021#
956# CONFIG_USB_GADGET is not set 1022# CONFIG_USB_C67X00_HCD is not set
1023# CONFIG_USB_XHCI_HCD is not set
1024CONFIG_USB_EHCI_HCD=y
1025CONFIG_USB_EHCI_ROOT_HUB_TT=y
1026CONFIG_USB_EHCI_TT_NEWSCHED=y
1027# CONFIG_USB_OXU210HP_HCD is not set
1028# CONFIG_USB_ISP116X_HCD is not set
1029# CONFIG_USB_ISP1760_HCD is not set
1030# CONFIG_USB_ISP1362_HCD is not set
1031CONFIG_USB_OHCI_HCD=y
1032# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1033# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1034CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1035# CONFIG_USB_UHCI_HCD is not set
1036# CONFIG_USB_SL811_HCD is not set
1037# CONFIG_USB_R8A66597_HCD is not set
1038# CONFIG_USB_WHCI_HCD is not set
1039# CONFIG_USB_HWA_HCD is not set
957 1040
958# 1041#
959# MMC/SD Card support 1042# USB Device Class drivers
960# 1043#
961# CONFIG_MMC is not set 1044# CONFIG_USB_ACM is not set
1045# CONFIG_USB_PRINTER is not set
1046# CONFIG_USB_WDM is not set
1047# CONFIG_USB_TMC is not set
962 1048
963# 1049#
964# LED devices 1050# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
965# 1051#
966# CONFIG_NEW_LEDS is not set
967 1052
968# 1053#
969# LED drivers 1054# also be needed; see USB_STORAGE Help for more info
970# 1055#
1056# CONFIG_USB_LIBUSUAL is not set
971 1057
972# 1058#
973# LED Triggers 1059# USB Imaging devices
974# 1060#
1061# CONFIG_USB_MDC800 is not set
975 1062
976# 1063#
977# InfiniBand support 1064# USB port drivers
978# 1065#
979# CONFIG_INFINIBAND is not set 1066# CONFIG_USB_SERIAL is not set
980 1067
981# 1068#
982# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 1069# USB Miscellaneous drivers
983# 1070#
1071# CONFIG_USB_EMI62 is not set
1072# CONFIG_USB_EMI26 is not set
1073# CONFIG_USB_ADUTUX is not set
1074# CONFIG_USB_SEVSEG is not set
1075# CONFIG_USB_RIO500 is not set
1076# CONFIG_USB_LEGOTOWER is not set
1077# CONFIG_USB_LCD is not set
1078# CONFIG_USB_BERRY_CHARGE is not set
1079# CONFIG_USB_LED is not set
1080# CONFIG_USB_CYPRESS_CY7C63 is not set
1081# CONFIG_USB_CYTHERM is not set
1082# CONFIG_USB_IDMOUSE is not set
1083# CONFIG_USB_FTDI_ELAN is not set
1084# CONFIG_USB_APPLEDISPLAY is not set
1085# CONFIG_USB_SISUSBVGA is not set
1086# CONFIG_USB_LD is not set
1087# CONFIG_USB_TRANCEVIBRATOR is not set
1088# CONFIG_USB_IOWARRIOR is not set
1089# CONFIG_USB_TEST is not set
1090# CONFIG_USB_ISIGHTFW is not set
1091# CONFIG_USB_VST is not set
1092# CONFIG_USB_GADGET is not set
1093
1094#
1095# OTG and related infrastructure
1096#
1097# CONFIG_USB_GPIO_VBUS is not set
1098# CONFIG_NOP_USB_XCEIV is not set
1099# CONFIG_UWB is not set
1100# CONFIG_MMC is not set
1101# CONFIG_MEMSTICK is not set
1102# CONFIG_NEW_LEDS is not set
1103# CONFIG_ACCESSIBILITY is not set
1104# CONFIG_INFINIBAND is not set
1105CONFIG_RTC_LIB=y
1106CONFIG_RTC_CLASS=y
1107CONFIG_RTC_HCTOSYS=y
1108CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1109# CONFIG_RTC_DEBUG is not set
984 1110
985# 1111#
986# Real Time Clock 1112# RTC interfaces
987# 1113#
988# CONFIG_RTC_CLASS is not set 1114CONFIG_RTC_INTF_SYSFS=y
1115CONFIG_RTC_INTF_PROC=y
1116CONFIG_RTC_INTF_DEV=y
1117# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1118# CONFIG_RTC_DRV_TEST is not set
989 1119
990# 1120#
991# DMA Engine support 1121# I2C RTC drivers
992# 1122#
993# CONFIG_DMA_ENGINE is not set 1123# CONFIG_RTC_DRV_DS1307 is not set
1124# CONFIG_RTC_DRV_DS1374 is not set
1125# CONFIG_RTC_DRV_DS1672 is not set
1126# CONFIG_RTC_DRV_MAX6900 is not set
1127# CONFIG_RTC_DRV_RS5C372 is not set
1128# CONFIG_RTC_DRV_ISL1208 is not set
1129# CONFIG_RTC_DRV_X1205 is not set
1130# CONFIG_RTC_DRV_PCF8563 is not set
1131# CONFIG_RTC_DRV_PCF8583 is not set
1132# CONFIG_RTC_DRV_M41T80 is not set
1133# CONFIG_RTC_DRV_BQ32K is not set
1134# CONFIG_RTC_DRV_S35390A is not set
1135# CONFIG_RTC_DRV_FM3130 is not set
1136# CONFIG_RTC_DRV_RX8581 is not set
1137# CONFIG_RTC_DRV_RX8025 is not set
994 1138
995# 1139#
996# DMA Clients 1140# SPI RTC drivers
997# 1141#
998 1142
999# 1143#
1000# DMA Devices 1144# Platform RTC drivers
1001# 1145#
1146# CONFIG_RTC_DRV_CMOS is not set
1147# CONFIG_RTC_DRV_DS1286 is not set
1148# CONFIG_RTC_DRV_DS1511 is not set
1149# CONFIG_RTC_DRV_DS1553 is not set
1150# CONFIG_RTC_DRV_DS1742 is not set
1151# CONFIG_RTC_DRV_STK17TA8 is not set
1152# CONFIG_RTC_DRV_M48T86 is not set
1153# CONFIG_RTC_DRV_M48T35 is not set
1154# CONFIG_RTC_DRV_M48T59 is not set
1155# CONFIG_RTC_DRV_MSM6242 is not set
1156# CONFIG_RTC_DRV_BQ4802 is not set
1157# CONFIG_RTC_DRV_RP5C01 is not set
1158# CONFIG_RTC_DRV_V3020 is not set
1002 1159
1003# 1160#
1004# Auxiliary Display support 1161# on-CPU RTC drivers
1005# 1162#
1163CONFIG_RTC_DRV_AU1XXX=y
1164# CONFIG_DMADEVICES is not set
1165# CONFIG_AUXDISPLAY is not set
1166# CONFIG_UIO is not set
1006 1167
1007# 1168#
1008# Virtualization 1169# TI VLYNQ
1009# 1170#
1171# CONFIG_STAGING is not set
1010 1172
1011# 1173#
1012# File systems 1174# File systems
1013# 1175#
1014CONFIG_EXT2_FS=y 1176CONFIG_EXT2_FS=y
1015CONFIG_EXT2_FS_XATTR=y 1177# CONFIG_EXT2_FS_XATTR is not set
1016CONFIG_EXT2_FS_POSIX_ACL=y
1017# CONFIG_EXT2_FS_SECURITY is not set
1018# CONFIG_EXT2_FS_XIP is not set 1178# CONFIG_EXT2_FS_XIP is not set
1019CONFIG_EXT3_FS=y 1179# CONFIG_EXT3_FS is not set
1020CONFIG_EXT3_FS_XATTR=y 1180# CONFIG_EXT4_FS is not set
1021CONFIG_EXT3_FS_POSIX_ACL=y 1181# CONFIG_REISERFS_FS is not set
1022CONFIG_EXT3_FS_SECURITY=y
1023# CONFIG_EXT4DEV_FS is not set
1024CONFIG_JBD=y
1025# CONFIG_JBD_DEBUG is not set
1026CONFIG_FS_MBCACHE=y
1027CONFIG_REISERFS_FS=m
1028# CONFIG_REISERFS_CHECK is not set
1029# CONFIG_REISERFS_PROC_INFO is not set
1030CONFIG_REISERFS_FS_XATTR=y
1031CONFIG_REISERFS_FS_POSIX_ACL=y
1032CONFIG_REISERFS_FS_SECURITY=y
1033# CONFIG_JFS_FS is not set 1182# CONFIG_JFS_FS is not set
1034CONFIG_FS_POSIX_ACL=y 1183# CONFIG_FS_POSIX_ACL is not set
1035# CONFIG_XFS_FS is not set 1184# CONFIG_XFS_FS is not set
1036# CONFIG_GFS2_FS is not set 1185# CONFIG_GFS2_FS is not set
1037# CONFIG_OCFS2_FS is not set 1186# CONFIG_OCFS2_FS is not set
1038# CONFIG_MINIX_FS is not set 1187# CONFIG_BTRFS_FS is not set
1039# CONFIG_ROMFS_FS is not set 1188# CONFIG_NILFS2_FS is not set
1189CONFIG_FILE_LOCKING=y
1190CONFIG_FSNOTIFY=y
1191CONFIG_DNOTIFY=y
1040CONFIG_INOTIFY=y 1192CONFIG_INOTIFY=y
1041CONFIG_INOTIFY_USER=y 1193CONFIG_INOTIFY_USER=y
1042# CONFIG_QUOTA is not set 1194# CONFIG_QUOTA is not set
1043CONFIG_DNOTIFY=y 1195# CONFIG_AUTOFS_FS is not set
1044CONFIG_AUTOFS_FS=m 1196# CONFIG_AUTOFS4_FS is not set
1045CONFIG_AUTOFS4_FS=m 1197# CONFIG_FUSE_FS is not set
1046CONFIG_FUSE_FS=m 1198
1047CONFIG_GENERIC_ACL=y 1199#
1200# Caches
1201#
1202# CONFIG_FSCACHE is not set
1048 1203
1049# 1204#
1050# CD-ROM/DVD Filesystems 1205# CD-ROM/DVD Filesystems
1051# 1206#
1052# CONFIG_ISO9660_FS is not set 1207CONFIG_ISO9660_FS=y
1053# CONFIG_UDF_FS is not set 1208CONFIG_JOLIET=y
1209CONFIG_ZISOFS=y
1210CONFIG_UDF_FS=y
1211CONFIG_UDF_NLS=y
1054 1212
1055# 1213#
1056# DOS/FAT/NT Filesystems 1214# DOS/FAT/NT Filesystems
1057# 1215#
1216CONFIG_FAT_FS=y
1058# CONFIG_MSDOS_FS is not set 1217# CONFIG_MSDOS_FS is not set
1059# CONFIG_VFAT_FS is not set 1218CONFIG_VFAT_FS=y
1219CONFIG_FAT_DEFAULT_CODEPAGE=437
1220CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1060# CONFIG_NTFS_FS is not set 1221# CONFIG_NTFS_FS is not set
1061 1222
1062# 1223#
1063# Pseudo filesystems 1224# Pseudo filesystems
1064# 1225#
1065CONFIG_PROC_FS=y 1226CONFIG_PROC_FS=y
1066CONFIG_PROC_KCORE=y 1227# CONFIG_PROC_KCORE is not set
1067CONFIG_PROC_SYSCTL=y 1228CONFIG_PROC_SYSCTL=y
1229# CONFIG_PROC_PAGE_MONITOR is not set
1068CONFIG_SYSFS=y 1230CONFIG_SYSFS=y
1069CONFIG_TMPFS=y 1231CONFIG_TMPFS=y
1070CONFIG_TMPFS_POSIX_ACL=y 1232# CONFIG_TMPFS_POSIX_ACL is not set
1071# CONFIG_HUGETLB_PAGE is not set 1233# CONFIG_HUGETLB_PAGE is not set
1072CONFIG_RAMFS=y 1234# CONFIG_CONFIGFS_FS is not set
1073CONFIG_CONFIGFS_FS=m 1235CONFIG_MISC_FILESYSTEMS=y
1074
1075#
1076# Miscellaneous filesystems
1077#
1078# CONFIG_ADFS_FS is not set 1236# CONFIG_ADFS_FS is not set
1079# CONFIG_AFFS_FS is not set 1237# CONFIG_AFFS_FS is not set
1080# CONFIG_ECRYPT_FS is not set
1081# CONFIG_HFS_FS is not set 1238# CONFIG_HFS_FS is not set
1082# CONFIG_HFSPLUS_FS is not set 1239# CONFIG_HFSPLUS_FS is not set
1083# CONFIG_BEFS_FS is not set 1240# CONFIG_BEFS_FS is not set
1084# CONFIG_BFS_FS is not set 1241# CONFIG_BFS_FS is not set
1085# CONFIG_EFS_FS is not set 1242# CONFIG_EFS_FS is not set
1086# CONFIG_JFFS2_FS is not set 1243CONFIG_JFFS2_FS=y
1087CONFIG_CRAMFS=m 1244CONFIG_JFFS2_FS_DEBUG=0
1245CONFIG_JFFS2_FS_WRITEBUFFER=y
1246# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1247CONFIG_JFFS2_SUMMARY=y
1248# CONFIG_JFFS2_FS_XATTR is not set
1249CONFIG_JFFS2_COMPRESSION_OPTIONS=y
1250CONFIG_JFFS2_ZLIB=y
1251CONFIG_JFFS2_LZO=y
1252CONFIG_JFFS2_RTIME=y
1253CONFIG_JFFS2_RUBIN=y
1254# CONFIG_JFFS2_CMODE_NONE is not set
1255CONFIG_JFFS2_CMODE_PRIORITY=y
1256# CONFIG_JFFS2_CMODE_SIZE is not set
1257# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
1258# CONFIG_CRAMFS is not set
1259CONFIG_SQUASHFS=y
1260# CONFIG_SQUASHFS_EMBEDDED is not set
1261CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
1088# CONFIG_VXFS_FS is not set 1262# CONFIG_VXFS_FS is not set
1263# CONFIG_MINIX_FS is not set
1264# CONFIG_OMFS_FS is not set
1089# CONFIG_HPFS_FS is not set 1265# CONFIG_HPFS_FS is not set
1090# CONFIG_QNX4FS_FS is not set 1266# CONFIG_QNX4FS_FS is not set
1267# CONFIG_ROMFS_FS is not set
1091# CONFIG_SYSV_FS is not set 1268# CONFIG_SYSV_FS is not set
1092# CONFIG_UFS_FS is not set 1269# CONFIG_UFS_FS is not set
1093 1270CONFIG_NETWORK_FILESYSTEMS=y
1094#
1095# Network File Systems
1096#
1097CONFIG_NFS_FS=y 1271CONFIG_NFS_FS=y
1098# CONFIG_NFS_V3 is not set 1272CONFIG_NFS_V3=y
1273# CONFIG_NFS_V3_ACL is not set
1099# CONFIG_NFS_V4 is not set 1274# CONFIG_NFS_V4 is not set
1100# CONFIG_NFS_DIRECTIO is not set
1101CONFIG_NFSD=m
1102# CONFIG_NFSD_V3 is not set
1103# CONFIG_NFSD_TCP is not set
1104CONFIG_ROOT_NFS=y 1275CONFIG_ROOT_NFS=y
1276# CONFIG_NFSD is not set
1105CONFIG_LOCKD=y 1277CONFIG_LOCKD=y
1106CONFIG_EXPORTFS=m 1278CONFIG_LOCKD_V4=y
1107CONFIG_NFS_COMMON=y 1279CONFIG_NFS_COMMON=y
1108CONFIG_SUNRPC=y 1280CONFIG_SUNRPC=y
1109# CONFIG_RPCSEC_GSS_KRB5 is not set 1281# CONFIG_RPCSEC_GSS_KRB5 is not set
1110# CONFIG_RPCSEC_GSS_SPKM3 is not set 1282# CONFIG_RPCSEC_GSS_SPKM3 is not set
1111CONFIG_SMB_FS=m 1283# CONFIG_SMB_FS is not set
1112# CONFIG_SMB_NLS_DEFAULT is not set
1113# CONFIG_CIFS is not set 1284# CONFIG_CIFS is not set
1114# CONFIG_NCP_FS is not set 1285# CONFIG_NCP_FS is not set
1115# CONFIG_CODA_FS is not set 1286# CONFIG_CODA_FS is not set
1116# CONFIG_AFS_FS is not set 1287# CONFIG_AFS_FS is not set
1117# CONFIG_9P_FS is not set
1118 1288
1119# 1289#
1120# Partition Types 1290# Partition Types
1121# 1291#
1122# CONFIG_PARTITION_ADVANCED is not set 1292# CONFIG_PARTITION_ADVANCED is not set
1123CONFIG_MSDOS_PARTITION=y 1293CONFIG_MSDOS_PARTITION=y
1124 1294CONFIG_NLS=y
1125#
1126# Native Language Support
1127#
1128CONFIG_NLS=m
1129CONFIG_NLS_DEFAULT="iso8859-1" 1295CONFIG_NLS_DEFAULT="iso8859-1"
1130# CONFIG_NLS_CODEPAGE_437 is not set 1296CONFIG_NLS_CODEPAGE_437=y
1131# CONFIG_NLS_CODEPAGE_737 is not set 1297# CONFIG_NLS_CODEPAGE_737 is not set
1132# CONFIG_NLS_CODEPAGE_775 is not set 1298# CONFIG_NLS_CODEPAGE_775 is not set
1133# CONFIG_NLS_CODEPAGE_850 is not set 1299CONFIG_NLS_CODEPAGE_850=y
1134# CONFIG_NLS_CODEPAGE_852 is not set 1300CONFIG_NLS_CODEPAGE_852=y
1135# CONFIG_NLS_CODEPAGE_855 is not set 1301# CONFIG_NLS_CODEPAGE_855 is not set
1136# CONFIG_NLS_CODEPAGE_857 is not set 1302# CONFIG_NLS_CODEPAGE_857 is not set
1137# CONFIG_NLS_CODEPAGE_860 is not set 1303# CONFIG_NLS_CODEPAGE_860 is not set
@@ -1148,10 +1314,10 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1148# CONFIG_NLS_CODEPAGE_949 is not set 1314# CONFIG_NLS_CODEPAGE_949 is not set
1149# CONFIG_NLS_CODEPAGE_874 is not set 1315# CONFIG_NLS_CODEPAGE_874 is not set
1150# CONFIG_NLS_ISO8859_8 is not set 1316# CONFIG_NLS_ISO8859_8 is not set
1151# CONFIG_NLS_CODEPAGE_1250 is not set 1317CONFIG_NLS_CODEPAGE_1250=y
1152# CONFIG_NLS_CODEPAGE_1251 is not set 1318# CONFIG_NLS_CODEPAGE_1251 is not set
1153# CONFIG_NLS_ASCII is not set 1319CONFIG_NLS_ASCII=y
1154# CONFIG_NLS_ISO8859_1 is not set 1320CONFIG_NLS_ISO8859_1=y
1155# CONFIG_NLS_ISO8859_2 is not set 1321# CONFIG_NLS_ISO8859_2 is not set
1156# CONFIG_NLS_ISO8859_3 is not set 1322# CONFIG_NLS_ISO8859_3 is not set
1157# CONFIG_NLS_ISO8859_4 is not set 1323# CONFIG_NLS_ISO8859_4 is not set
@@ -1161,38 +1327,75 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1161# CONFIG_NLS_ISO8859_9 is not set 1327# CONFIG_NLS_ISO8859_9 is not set
1162# CONFIG_NLS_ISO8859_13 is not set 1328# CONFIG_NLS_ISO8859_13 is not set
1163# CONFIG_NLS_ISO8859_14 is not set 1329# CONFIG_NLS_ISO8859_14 is not set
1164# CONFIG_NLS_ISO8859_15 is not set 1330CONFIG_NLS_ISO8859_15=y
1165# CONFIG_NLS_KOI8_R is not set 1331# CONFIG_NLS_KOI8_R is not set
1166# CONFIG_NLS_KOI8_U is not set 1332# CONFIG_NLS_KOI8_U is not set
1167# CONFIG_NLS_UTF8 is not set 1333CONFIG_NLS_UTF8=y
1168 1334# CONFIG_DLM is not set
1169#
1170# Distributed Lock Manager
1171#
1172CONFIG_DLM=m
1173CONFIG_DLM_TCP=y
1174# CONFIG_DLM_SCTP is not set
1175# CONFIG_DLM_DEBUG is not set
1176
1177#
1178# Profiling support
1179#
1180# CONFIG_PROFILING is not set
1181 1335
1182# 1336#
1183# Kernel hacking 1337# Kernel hacking
1184# 1338#
1185CONFIG_TRACE_IRQFLAGS_SUPPORT=y 1339CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1186# CONFIG_PRINTK_TIME is not set 1340# CONFIG_PRINTK_TIME is not set
1341CONFIG_ENABLE_WARN_DEPRECATED=y
1187CONFIG_ENABLE_MUST_CHECK=y 1342CONFIG_ENABLE_MUST_CHECK=y
1343CONFIG_FRAME_WARN=1024
1188# CONFIG_MAGIC_SYSRQ is not set 1344# CONFIG_MAGIC_SYSRQ is not set
1345CONFIG_STRIP_ASM_SYMS=y
1189# CONFIG_UNUSED_SYMBOLS is not set 1346# CONFIG_UNUSED_SYMBOLS is not set
1190# CONFIG_DEBUG_FS is not set 1347# CONFIG_DEBUG_FS is not set
1191# CONFIG_HEADERS_CHECK is not set 1348# CONFIG_HEADERS_CHECK is not set
1192# CONFIG_DEBUG_KERNEL is not set 1349CONFIG_DEBUG_KERNEL=y
1193CONFIG_LOG_BUF_SHIFT=14 1350# CONFIG_DEBUG_SHIRQ is not set
1194CONFIG_CROSSCOMPILE=y 1351# CONFIG_DETECT_SOFTLOCKUP is not set
1352# CONFIG_DETECT_HUNG_TASK is not set
1353# CONFIG_SCHED_DEBUG is not set
1354# CONFIG_SCHEDSTATS is not set
1355# CONFIG_TIMER_STATS is not set
1356# CONFIG_DEBUG_OBJECTS is not set
1357# CONFIG_DEBUG_SLAB is not set
1358# CONFIG_DEBUG_RT_MUTEXES is not set
1359# CONFIG_RT_MUTEX_TESTER is not set
1360# CONFIG_DEBUG_SPINLOCK is not set
1361# CONFIG_DEBUG_MUTEXES is not set
1362# CONFIG_DEBUG_LOCK_ALLOC is not set
1363# CONFIG_PROVE_LOCKING is not set
1364# CONFIG_LOCK_STAT is not set
1365# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1366# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1367# CONFIG_DEBUG_KOBJECT is not set
1368# CONFIG_DEBUG_INFO is not set
1369# CONFIG_DEBUG_VM is not set
1370# CONFIG_DEBUG_WRITECOUNT is not set
1371# CONFIG_DEBUG_MEMORY_INIT is not set
1372# CONFIG_DEBUG_LIST is not set
1373# CONFIG_DEBUG_SG is not set
1374# CONFIG_DEBUG_NOTIFIERS is not set
1375# CONFIG_DEBUG_CREDENTIALS is not set
1376# CONFIG_BOOT_PRINTK_DELAY is not set
1377# CONFIG_RCU_TORTURE_TEST is not set
1378# CONFIG_BACKTRACE_SELF_TEST is not set
1379# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1380# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1381# CONFIG_FAULT_INJECTION is not set
1382# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1383# CONFIG_PAGE_POISONING is not set
1384CONFIG_HAVE_FUNCTION_TRACER=y
1385CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1386CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
1387CONFIG_HAVE_DYNAMIC_FTRACE=y
1388CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1389CONFIG_TRACING_SUPPORT=y
1390# CONFIG_FTRACE is not set
1391# CONFIG_SAMPLES is not set
1392CONFIG_HAVE_ARCH_KGDB=y
1393# CONFIG_KGDB is not set
1394CONFIG_EARLY_PRINTK=y
1195# CONFIG_CMDLINE_BOOL is not set 1395# CONFIG_CMDLINE_BOOL is not set
1396# CONFIG_DEBUG_STACK_USAGE is not set
1397# CONFIG_RUNTIME_DEBUG is not set
1398CONFIG_DEBUG_ZBOOT=y
1196 1399
1197# 1400#
1198# Security options 1401# Security options
@@ -1200,67 +1403,32 @@ CONFIG_CROSSCOMPILE=y
1200CONFIG_KEYS=y 1403CONFIG_KEYS=y
1201CONFIG_KEYS_DEBUG_PROC_KEYS=y 1404CONFIG_KEYS_DEBUG_PROC_KEYS=y
1202# CONFIG_SECURITY is not set 1405# CONFIG_SECURITY is not set
1203 1406CONFIG_SECURITYFS=y
1204# 1407# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1205# Cryptographic options 1408# CONFIG_DEFAULT_SECURITY_SMACK is not set
1206# 1409# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1207CONFIG_CRYPTO=y 1410CONFIG_DEFAULT_SECURITY_DAC=y
1208CONFIG_CRYPTO_ALGAPI=y 1411CONFIG_DEFAULT_SECURITY=""
1209CONFIG_CRYPTO_BLKCIPHER=m 1412# CONFIG_CRYPTO is not set
1210CONFIG_CRYPTO_HASH=y 1413# CONFIG_BINARY_PRINTF is not set
1211CONFIG_CRYPTO_MANAGER=y
1212CONFIG_CRYPTO_HMAC=y
1213CONFIG_CRYPTO_XCBC=m
1214CONFIG_CRYPTO_NULL=m
1215CONFIG_CRYPTO_MD4=m
1216CONFIG_CRYPTO_MD5=y
1217CONFIG_CRYPTO_SHA1=m
1218CONFIG_CRYPTO_SHA256=m
1219CONFIG_CRYPTO_SHA512=m
1220CONFIG_CRYPTO_WP512=m
1221CONFIG_CRYPTO_TGR192=m
1222CONFIG_CRYPTO_GF128MUL=m
1223CONFIG_CRYPTO_ECB=m
1224CONFIG_CRYPTO_CBC=m
1225CONFIG_CRYPTO_PCBC=m
1226CONFIG_CRYPTO_LRW=m
1227CONFIG_CRYPTO_DES=m
1228CONFIG_CRYPTO_FCRYPT=m
1229CONFIG_CRYPTO_BLOWFISH=m
1230CONFIG_CRYPTO_TWOFISH=m
1231CONFIG_CRYPTO_TWOFISH_COMMON=m
1232CONFIG_CRYPTO_SERPENT=m
1233CONFIG_CRYPTO_AES=m
1234CONFIG_CRYPTO_CAST5=m
1235CONFIG_CRYPTO_CAST6=m
1236CONFIG_CRYPTO_TEA=m
1237CONFIG_CRYPTO_ARC4=m
1238CONFIG_CRYPTO_KHAZAD=m
1239CONFIG_CRYPTO_ANUBIS=m
1240CONFIG_CRYPTO_DEFLATE=m
1241CONFIG_CRYPTO_MICHAEL_MIC=m
1242CONFIG_CRYPTO_CRC32C=m
1243CONFIG_CRYPTO_CAMELLIA=m
1244# CONFIG_CRYPTO_TEST is not set
1245
1246#
1247# Hardware crypto devices
1248#
1249 1414
1250# 1415#
1251# Library routines 1416# Library routines
1252# 1417#
1253CONFIG_BITREVERSE=y 1418CONFIG_BITREVERSE=y
1254CONFIG_CRC_CCITT=m 1419CONFIG_GENERIC_FIND_LAST_BIT=y
1255CONFIG_CRC16=m 1420# CONFIG_CRC_CCITT is not set
1421# CONFIG_CRC16 is not set
1422# CONFIG_CRC_T10DIF is not set
1423CONFIG_CRC_ITU_T=y
1256CONFIG_CRC32=y 1424CONFIG_CRC32=y
1257CONFIG_LIBCRC32C=m 1425# CONFIG_CRC7 is not set
1258CONFIG_ZLIB_INFLATE=m 1426# CONFIG_LIBCRC32C is not set
1259CONFIG_ZLIB_DEFLATE=m 1427CONFIG_ZLIB_INFLATE=y
1260CONFIG_TEXTSEARCH=y 1428CONFIG_ZLIB_DEFLATE=y
1261CONFIG_TEXTSEARCH_KMP=m 1429CONFIG_LZO_COMPRESS=y
1262CONFIG_TEXTSEARCH_BM=m 1430CONFIG_LZO_DECOMPRESS=y
1263CONFIG_TEXTSEARCH_FSM=m
1264CONFIG_PLIST=y
1265CONFIG_HAS_IOMEM=y 1431CONFIG_HAS_IOMEM=y
1266CONFIG_HAS_IOPORT=y 1432CONFIG_HAS_IOPORT=y
1433CONFIG_HAS_DMA=y
1434CONFIG_NLATTR=y
diff --git a/arch/mips/dec/kn01-berr.c b/arch/mips/dec/kn01-berr.c
index b0dc6d53edd6..94d23b4a7dc3 100644
--- a/arch/mips/dec/kn01-berr.c
+++ b/arch/mips/dec/kn01-berr.c
@@ -46,7 +46,7 @@
46 * There is no default value -- it has to be initialized. 46 * There is no default value -- it has to be initialized.
47 */ 47 */
48u16 cached_kn01_csr; 48u16 cached_kn01_csr;
49DEFINE_SPINLOCK(kn01_lock); 49static DEFINE_RAW_SPINLOCK(kn01_lock);
50 50
51 51
52static inline void dec_kn01_be_ack(void) 52static inline void dec_kn01_be_ack(void)
@@ -54,12 +54,12 @@ static inline void dec_kn01_be_ack(void)
54 volatile u16 *csr = (void *)CKSEG1ADDR(KN01_SLOT_BASE + KN01_CSR); 54 volatile u16 *csr = (void *)CKSEG1ADDR(KN01_SLOT_BASE + KN01_CSR);
55 unsigned long flags; 55 unsigned long flags;
56 56
57 spin_lock_irqsave(&kn01_lock, flags); 57 raw_spin_lock_irqsave(&kn01_lock, flags);
58 58
59 *csr = cached_kn01_csr | KN01_CSR_MEMERR; /* Clear bus IRQ. */ 59 *csr = cached_kn01_csr | KN01_CSR_MEMERR; /* Clear bus IRQ. */
60 iob(); 60 iob();
61 61
62 spin_unlock_irqrestore(&kn01_lock, flags); 62 raw_spin_unlock_irqrestore(&kn01_lock, flags);
63} 63}
64 64
65static int dec_kn01_be_backend(struct pt_regs *regs, int is_fixup, int invoker) 65static int dec_kn01_be_backend(struct pt_regs *regs, int is_fixup, int invoker)
@@ -182,7 +182,7 @@ void __init dec_kn01_be_init(void)
182 volatile u16 *csr = (void *)CKSEG1ADDR(KN01_SLOT_BASE + KN01_CSR); 182 volatile u16 *csr = (void *)CKSEG1ADDR(KN01_SLOT_BASE + KN01_CSR);
183 unsigned long flags; 183 unsigned long flags;
184 184
185 spin_lock_irqsave(&kn01_lock, flags); 185 raw_spin_lock_irqsave(&kn01_lock, flags);
186 186
187 /* Preset write-only bits of the Control Register cache. */ 187 /* Preset write-only bits of the Control Register cache. */
188 cached_kn01_csr = *csr; 188 cached_kn01_csr = *csr;
@@ -194,7 +194,7 @@ void __init dec_kn01_be_init(void)
194 *csr = cached_kn01_csr; 194 *csr = cached_kn01_csr;
195 iob(); 195 iob();
196 196
197 spin_unlock_irqrestore(&kn01_lock, flags); 197 raw_spin_unlock_irqrestore(&kn01_lock, flags);
198 198
199 /* Clear any leftover errors from the firmware. */ 199 /* Clear any leftover errors from the firmware. */
200 dec_kn01_be_ack(); 200 dec_kn01_be_ack();
diff --git a/arch/mips/dec/prom/locore.S b/arch/mips/dec/prom/locore.S
index d9acdcefee81..f72b5741025f 100644
--- a/arch/mips/dec/prom/locore.S
+++ b/arch/mips/dec/prom/locore.S
@@ -27,4 +27,3 @@ NESTED(genexcept_early, 0, sp)
27 jr k0 27 jr k0
28 rfe 28 rfe
29END(genexcept_early) 29END(genexcept_early)
30
diff --git a/arch/mips/include/asm/atomic.h b/arch/mips/include/asm/atomic.h
index dd75d673447e..519197ede089 100644
--- a/arch/mips/include/asm/atomic.h
+++ b/arch/mips/include/asm/atomic.h
@@ -137,7 +137,7 @@ static __inline__ int atomic_add_return(int i, atomic_t * v)
137{ 137{
138 int result; 138 int result;
139 139
140 smp_llsc_mb(); 140 smp_mb__before_llsc();
141 141
142 if (kernel_uses_llsc && R10000_LLSC_WAR) { 142 if (kernel_uses_llsc && R10000_LLSC_WAR) {
143 int temp; 143 int temp;
@@ -189,7 +189,7 @@ static __inline__ int atomic_sub_return(int i, atomic_t * v)
189{ 189{
190 int result; 190 int result;
191 191
192 smp_llsc_mb(); 192 smp_mb__before_llsc();
193 193
194 if (kernel_uses_llsc && R10000_LLSC_WAR) { 194 if (kernel_uses_llsc && R10000_LLSC_WAR) {
195 int temp; 195 int temp;
@@ -249,7 +249,7 @@ static __inline__ int atomic_sub_if_positive(int i, atomic_t * v)
249{ 249{
250 int result; 250 int result;
251 251
252 smp_llsc_mb(); 252 smp_mb__before_llsc();
253 253
254 if (kernel_uses_llsc && R10000_LLSC_WAR) { 254 if (kernel_uses_llsc && R10000_LLSC_WAR) {
255 int temp; 255 int temp;
@@ -516,7 +516,7 @@ static __inline__ long atomic64_add_return(long i, atomic64_t * v)
516{ 516{
517 long result; 517 long result;
518 518
519 smp_llsc_mb(); 519 smp_mb__before_llsc();
520 520
521 if (kernel_uses_llsc && R10000_LLSC_WAR) { 521 if (kernel_uses_llsc && R10000_LLSC_WAR) {
522 long temp; 522 long temp;
@@ -568,7 +568,7 @@ static __inline__ long atomic64_sub_return(long i, atomic64_t * v)
568{ 568{
569 long result; 569 long result;
570 570
571 smp_llsc_mb(); 571 smp_mb__before_llsc();
572 572
573 if (kernel_uses_llsc && R10000_LLSC_WAR) { 573 if (kernel_uses_llsc && R10000_LLSC_WAR) {
574 long temp; 574 long temp;
@@ -628,7 +628,7 @@ static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v)
628{ 628{
629 long result; 629 long result;
630 630
631 smp_llsc_mb(); 631 smp_mb__before_llsc();
632 632
633 if (kernel_uses_llsc && R10000_LLSC_WAR) { 633 if (kernel_uses_llsc && R10000_LLSC_WAR) {
634 long temp; 634 long temp;
@@ -788,9 +788,9 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
788 * atomic*_return operations are serializing but not the non-*_return 788 * atomic*_return operations are serializing but not the non-*_return
789 * versions. 789 * versions.
790 */ 790 */
791#define smp_mb__before_atomic_dec() smp_llsc_mb() 791#define smp_mb__before_atomic_dec() smp_mb__before_llsc()
792#define smp_mb__after_atomic_dec() smp_llsc_mb() 792#define smp_mb__after_atomic_dec() smp_llsc_mb()
793#define smp_mb__before_atomic_inc() smp_llsc_mb() 793#define smp_mb__before_atomic_inc() smp_mb__before_llsc()
794#define smp_mb__after_atomic_inc() smp_llsc_mb() 794#define smp_mb__after_atomic_inc() smp_llsc_mb()
795 795
796#include <asm-generic/atomic-long.h> 796#include <asm-generic/atomic-long.h>
diff --git a/arch/mips/include/asm/barrier.h b/arch/mips/include/asm/barrier.h
index 8e9ac313ca3b..c0884f02d3a6 100644
--- a/arch/mips/include/asm/barrier.h
+++ b/arch/mips/include/asm/barrier.h
@@ -88,12 +88,20 @@
88 : /* no output */ \ 88 : /* no output */ \
89 : "m" (*(int *)CKSEG1) \ 89 : "m" (*(int *)CKSEG1) \
90 : "memory") 90 : "memory")
91 91#ifdef CONFIG_CPU_CAVIUM_OCTEON
92#define fast_wmb() __sync() 92# define OCTEON_SYNCW_STR ".set push\n.set arch=octeon\nsyncw\nsyncw\n.set pop\n"
93#define fast_rmb() __sync() 93# define __syncw() __asm__ __volatile__(OCTEON_SYNCW_STR : : : "memory")
94#define fast_mb() __sync() 94
95#ifdef CONFIG_SGI_IP28 95# define fast_wmb() __syncw()
96#define fast_iob() \ 96# define fast_rmb() barrier()
97# define fast_mb() __sync()
98# define fast_iob() do { } while (0)
99#else /* ! CONFIG_CPU_CAVIUM_OCTEON */
100# define fast_wmb() __sync()
101# define fast_rmb() __sync()
102# define fast_mb() __sync()
103# ifdef CONFIG_SGI_IP28
104# define fast_iob() \
97 __asm__ __volatile__( \ 105 __asm__ __volatile__( \
98 ".set push\n\t" \ 106 ".set push\n\t" \
99 ".set noreorder\n\t" \ 107 ".set noreorder\n\t" \
@@ -104,13 +112,14 @@
104 : /* no output */ \ 112 : /* no output */ \
105 : "m" (*(int *)CKSEG1ADDR(0x1fa00004)) \ 113 : "m" (*(int *)CKSEG1ADDR(0x1fa00004)) \
106 : "memory") 114 : "memory")
107#else 115# else
108#define fast_iob() \ 116# define fast_iob() \
109 do { \ 117 do { \
110 __sync(); \ 118 __sync(); \
111 __fast_iob(); \ 119 __fast_iob(); \
112 } while (0) 120 } while (0)
113#endif 121# endif
122#endif /* CONFIG_CPU_CAVIUM_OCTEON */
114 123
115#ifdef CONFIG_CPU_HAS_WB 124#ifdef CONFIG_CPU_HAS_WB
116 125
@@ -131,25 +140,42 @@
131#endif /* !CONFIG_CPU_HAS_WB */ 140#endif /* !CONFIG_CPU_HAS_WB */
132 141
133#if defined(CONFIG_WEAK_ORDERING) && defined(CONFIG_SMP) 142#if defined(CONFIG_WEAK_ORDERING) && defined(CONFIG_SMP)
134#define __WEAK_ORDERING_MB " sync \n" 143# ifdef CONFIG_CPU_CAVIUM_OCTEON
144# define smp_mb() __sync()
145# define smp_rmb() barrier()
146# define smp_wmb() __syncw()
147# else
148# define smp_mb() __asm__ __volatile__("sync" : : :"memory")
149# define smp_rmb() __asm__ __volatile__("sync" : : :"memory")
150# define smp_wmb() __asm__ __volatile__("sync" : : :"memory")
151# endif
135#else 152#else
136#define __WEAK_ORDERING_MB " \n" 153#define smp_mb() barrier()
154#define smp_rmb() barrier()
155#define smp_wmb() barrier()
137#endif 156#endif
157
138#if defined(CONFIG_WEAK_REORDERING_BEYOND_LLSC) && defined(CONFIG_SMP) 158#if defined(CONFIG_WEAK_REORDERING_BEYOND_LLSC) && defined(CONFIG_SMP)
139#define __WEAK_LLSC_MB " sync \n" 159#define __WEAK_LLSC_MB " sync \n"
140#else 160#else
141#define __WEAK_LLSC_MB " \n" 161#define __WEAK_LLSC_MB " \n"
142#endif 162#endif
143 163
144#define smp_mb() __asm__ __volatile__(__WEAK_ORDERING_MB : : :"memory")
145#define smp_rmb() __asm__ __volatile__(__WEAK_ORDERING_MB : : :"memory")
146#define smp_wmb() __asm__ __volatile__(__WEAK_ORDERING_MB : : :"memory")
147
148#define set_mb(var, value) \ 164#define set_mb(var, value) \
149 do { var = value; smp_mb(); } while (0) 165 do { var = value; smp_mb(); } while (0)
150 166
151#define smp_llsc_mb() __asm__ __volatile__(__WEAK_LLSC_MB : : :"memory") 167#define smp_llsc_mb() __asm__ __volatile__(__WEAK_LLSC_MB : : :"memory")
152#define smp_llsc_rmb() __asm__ __volatile__(__WEAK_LLSC_MB : : :"memory") 168
153#define smp_llsc_wmb() __asm__ __volatile__(__WEAK_LLSC_MB : : :"memory") 169#ifdef CONFIG_CPU_CAVIUM_OCTEON
170#define smp_mb__before_llsc() smp_wmb()
171/* Cause previous writes to become visible on all CPUs as soon as possible */
172#define nudge_writes() __asm__ __volatile__(".set push\n\t" \
173 ".set arch=octeon\n\t" \
174 "syncw\n\t" \
175 ".set pop" : : : "memory")
176#else
177#define smp_mb__before_llsc() smp_llsc_mb()
178#define nudge_writes() mb()
179#endif
154 180
155#endif /* __ASM_BARRIER_H */ 181#endif /* __ASM_BARRIER_H */
diff --git a/arch/mips/include/asm/bitops.h b/arch/mips/include/asm/bitops.h
index 84a383806b2c..9255cfbee459 100644
--- a/arch/mips/include/asm/bitops.h
+++ b/arch/mips/include/asm/bitops.h
@@ -42,7 +42,7 @@
42/* 42/*
43 * clear_bit() doesn't provide any barrier for the compiler. 43 * clear_bit() doesn't provide any barrier for the compiler.
44 */ 44 */
45#define smp_mb__before_clear_bit() smp_llsc_mb() 45#define smp_mb__before_clear_bit() smp_mb__before_llsc()
46#define smp_mb__after_clear_bit() smp_llsc_mb() 46#define smp_mb__after_clear_bit() smp_llsc_mb()
47 47
48/* 48/*
@@ -258,7 +258,7 @@ static inline int test_and_set_bit(unsigned long nr,
258 unsigned short bit = nr & SZLONG_MASK; 258 unsigned short bit = nr & SZLONG_MASK;
259 unsigned long res; 259 unsigned long res;
260 260
261 smp_llsc_mb(); 261 smp_mb__before_llsc();
262 262
263 if (kernel_uses_llsc && R10000_LLSC_WAR) { 263 if (kernel_uses_llsc && R10000_LLSC_WAR) {
264 unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG); 264 unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG);
@@ -395,7 +395,7 @@ static inline int test_and_clear_bit(unsigned long nr,
395 unsigned short bit = nr & SZLONG_MASK; 395 unsigned short bit = nr & SZLONG_MASK;
396 unsigned long res; 396 unsigned long res;
397 397
398 smp_llsc_mb(); 398 smp_mb__before_llsc();
399 399
400 if (kernel_uses_llsc && R10000_LLSC_WAR) { 400 if (kernel_uses_llsc && R10000_LLSC_WAR) {
401 unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG); 401 unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG);
@@ -485,7 +485,7 @@ static inline int test_and_change_bit(unsigned long nr,
485 unsigned short bit = nr & SZLONG_MASK; 485 unsigned short bit = nr & SZLONG_MASK;
486 unsigned long res; 486 unsigned long res;
487 487
488 smp_llsc_mb(); 488 smp_mb__before_llsc();
489 489
490 if (kernel_uses_llsc && R10000_LLSC_WAR) { 490 if (kernel_uses_llsc && R10000_LLSC_WAR) {
491 unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG); 491 unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG);
diff --git a/arch/mips/include/asm/cmpxchg.h b/arch/mips/include/asm/cmpxchg.h
index 815a438a268d..ed9aaaaf0749 100644
--- a/arch/mips/include/asm/cmpxchg.h
+++ b/arch/mips/include/asm/cmpxchg.h
@@ -72,14 +72,14 @@
72 */ 72 */
73extern void __cmpxchg_called_with_bad_pointer(void); 73extern void __cmpxchg_called_with_bad_pointer(void);
74 74
75#define __cmpxchg(ptr, old, new, barrier) \ 75#define __cmpxchg(ptr, old, new, pre_barrier, post_barrier) \
76({ \ 76({ \
77 __typeof__(ptr) __ptr = (ptr); \ 77 __typeof__(ptr) __ptr = (ptr); \
78 __typeof__(*(ptr)) __old = (old); \ 78 __typeof__(*(ptr)) __old = (old); \
79 __typeof__(*(ptr)) __new = (new); \ 79 __typeof__(*(ptr)) __new = (new); \
80 __typeof__(*(ptr)) __res = 0; \ 80 __typeof__(*(ptr)) __res = 0; \
81 \ 81 \
82 barrier; \ 82 pre_barrier; \
83 \ 83 \
84 switch (sizeof(*(__ptr))) { \ 84 switch (sizeof(*(__ptr))) { \
85 case 4: \ 85 case 4: \
@@ -96,13 +96,13 @@ extern void __cmpxchg_called_with_bad_pointer(void);
96 break; \ 96 break; \
97 } \ 97 } \
98 \ 98 \
99 barrier; \ 99 post_barrier; \
100 \ 100 \
101 __res; \ 101 __res; \
102}) 102})
103 103
104#define cmpxchg(ptr, old, new) __cmpxchg(ptr, old, new, smp_llsc_mb()) 104#define cmpxchg(ptr, old, new) __cmpxchg(ptr, old, new, smp_mb__before_llsc(), smp_llsc_mb())
105#define cmpxchg_local(ptr, old, new) __cmpxchg(ptr, old, new, ) 105#define cmpxchg_local(ptr, old, new) __cmpxchg(ptr, old, new, , )
106 106
107#define cmpxchg64(ptr, o, n) \ 107#define cmpxchg64(ptr, o, n) \
108 ({ \ 108 ({ \
diff --git a/arch/mips/include/asm/cpu-features.h b/arch/mips/include/asm/cpu-features.h
index 272c5ef35bbb..ac73cede3a0a 100644
--- a/arch/mips/include/asm/cpu-features.h
+++ b/arch/mips/include/asm/cpu-features.h
@@ -95,6 +95,9 @@
95#ifndef cpu_has_smartmips 95#ifndef cpu_has_smartmips
96#define cpu_has_smartmips (cpu_data[0].ases & MIPS_ASE_SMARTMIPS) 96#define cpu_has_smartmips (cpu_data[0].ases & MIPS_ASE_SMARTMIPS)
97#endif 97#endif
98#ifndef kernel_uses_smartmips_rixi
99#define kernel_uses_smartmips_rixi 0
100#endif
98#ifndef cpu_has_vtag_icache 101#ifndef cpu_has_vtag_icache
99#define cpu_has_vtag_icache (cpu_data[0].icache.flags & MIPS_CACHE_VTAG) 102#define cpu_has_vtag_icache (cpu_data[0].icache.flags & MIPS_CACHE_VTAG)
100#endif 103#endif
diff --git a/arch/mips/include/asm/cpu.h b/arch/mips/include/asm/cpu.h
index cf373a95fe4a..a5acda416946 100644
--- a/arch/mips/include/asm/cpu.h
+++ b/arch/mips/include/asm/cpu.h
@@ -224,7 +224,7 @@ enum cpu_type_enum {
224 * MIPS64 class processors 224 * MIPS64 class processors
225 */ 225 */
226 CPU_5KC, CPU_20KC, CPU_25KF, CPU_SB1, CPU_SB1A, CPU_LOONGSON2, 226 CPU_5KC, CPU_20KC, CPU_25KF, CPU_SB1, CPU_SB1A, CPU_LOONGSON2,
227 CPU_CAVIUM_OCTEON, 227 CPU_CAVIUM_OCTEON, CPU_CAVIUM_OCTEON_PLUS,
228 228
229 CPU_LAST 229 CPU_LAST
230}; 230};
diff --git a/arch/mips/include/asm/current.h b/arch/mips/include/asm/current.h
index 559db66b9790..4c51401b5537 100644
--- a/arch/mips/include/asm/current.h
+++ b/arch/mips/include/asm/current.h
@@ -1,23 +1 @@
1/* #include <asm-generic/current.h>
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 1998, 2002 Ralf Baechle
7 * Copyright (C) 1999 Silicon Graphics, Inc.
8 */
9#ifndef _ASM_CURRENT_H
10#define _ASM_CURRENT_H
11
12#include <linux/thread_info.h>
13
14struct task_struct;
15
16static inline struct task_struct * get_current(void)
17{
18 return current_thread_info()->task;
19}
20
21#define current get_current()
22
23#endif /* _ASM_CURRENT_H */
diff --git a/arch/mips/include/asm/dec/kn01.h b/arch/mips/include/asm/dec/kn01.h
index 28fa717ac423..88d9ffd74258 100644
--- a/arch/mips/include/asm/dec/kn01.h
+++ b/arch/mips/include/asm/dec/kn01.h
@@ -80,7 +80,6 @@
80struct pt_regs; 80struct pt_regs;
81 81
82extern u16 cached_kn01_csr; 82extern u16 cached_kn01_csr;
83extern spinlock_t kn01_lock;
84 83
85extern void dec_kn01_be_init(void); 84extern void dec_kn01_be_init(void);
86extern int dec_kn01_be_handler(struct pt_regs *regs, int is_fixup); 85extern int dec_kn01_be_handler(struct pt_regs *regs, int is_fixup);
diff --git a/arch/mips/include/asm/device.h b/arch/mips/include/asm/device.h
index d8f9872b0e2d..06746c5e8099 100644
--- a/arch/mips/include/asm/device.h
+++ b/arch/mips/include/asm/device.h
@@ -4,4 +4,3 @@
4 * This file is released under the GPLv2 4 * This file is released under the GPLv2
5 */ 5 */
6#include <asm-generic/device.h> 6#include <asm-generic/device.h>
7
diff --git a/arch/mips/include/asm/elf.h b/arch/mips/include/asm/elf.h
index 7a6a35dbe529..e53d7bed5cda 100644
--- a/arch/mips/include/asm/elf.h
+++ b/arch/mips/include/asm/elf.h
@@ -334,14 +334,14 @@ extern int dump_task_fpu(struct task_struct *, elf_fpregset_t *);
334 334
335#define ELF_HWCAP (0) 335#define ELF_HWCAP (0)
336 336
337/* This yields a string that ld.so will use to load implementation 337/*
338 specific libraries for optimization. This is more specific in 338 * This yields a string that ld.so will use to load implementation
339 intent than poking at uname or /proc/cpuinfo. 339 * specific libraries for optimization. This is more specific in
340 340 * intent than poking at uname or /proc/cpuinfo.
341 For the moment, we have only optimizations for the Intel generations, 341 */
342 but that could change... */
343 342
344#define ELF_PLATFORM (NULL) 343#define ELF_PLATFORM __elf_platform
344extern const char *__elf_platform;
345 345
346/* 346/*
347 * See comments in asm-alpha/elf.h, this is the same thing 347 * See comments in asm-alpha/elf.h, this is the same thing
diff --git a/arch/mips/include/asm/ftrace.h b/arch/mips/include/asm/ftrace.h
index 3986cd8704f3..ce35c9af0c28 100644
--- a/arch/mips/include/asm/ftrace.h
+++ b/arch/mips/include/asm/ftrace.h
@@ -4,7 +4,7 @@
4 * more details. 4 * more details.
5 * 5 *
6 * Copyright (C) 2009 DSLab, Lanzhou University, China 6 * Copyright (C) 2009 DSLab, Lanzhou University, China
7 * Author: Wu Zhangjin <wuzj@lemote.com> 7 * Author: Wu Zhangjin <wuzhangjin@gmail.com>
8 */ 8 */
9 9
10#ifndef _ASM_MIPS_FTRACE_H 10#ifndef _ASM_MIPS_FTRACE_H
diff --git a/arch/mips/include/asm/i8259.h b/arch/mips/include/asm/i8259.h
index 8572a2d90484..c7e278447c0a 100644
--- a/arch/mips/include/asm/i8259.h
+++ b/arch/mips/include/asm/i8259.h
@@ -35,7 +35,7 @@
35#define SLAVE_ICW4_DEFAULT 0x01 35#define SLAVE_ICW4_DEFAULT 0x01
36#define PIC_ICW4_AEOI 2 36#define PIC_ICW4_AEOI 2
37 37
38extern spinlock_t i8259A_lock; 38extern raw_spinlock_t i8259A_lock;
39 39
40extern int i8259A_irq_pending(unsigned int irq); 40extern int i8259A_irq_pending(unsigned int irq);
41extern void make_8259A_irq(unsigned int irq); 41extern void make_8259A_irq(unsigned int irq);
@@ -51,7 +51,7 @@ static inline int i8259_irq(void)
51{ 51{
52 int irq; 52 int irq;
53 53
54 spin_lock(&i8259A_lock); 54 raw_spin_lock(&i8259A_lock);
55 55
56 /* Perform an interrupt acknowledge cycle on controller 1. */ 56 /* Perform an interrupt acknowledge cycle on controller 1. */
57 outb(0x0C, PIC_MASTER_CMD); /* prepare for poll */ 57 outb(0x0C, PIC_MASTER_CMD); /* prepare for poll */
@@ -78,7 +78,7 @@ static inline int i8259_irq(void)
78 irq = -1; 78 irq = -1;
79 } 79 }
80 80
81 spin_unlock(&i8259A_lock); 81 raw_spin_unlock(&i8259A_lock);
82 82
83 return likely(irq >= 0) ? irq + I8259A_IRQ_BASE : irq; 83 return likely(irq >= 0) ? irq + I8259A_IRQ_BASE : irq;
84} 84}
diff --git a/arch/mips/include/asm/io.h b/arch/mips/include/asm/io.h
index 436878e4e063..c98bf514ec7d 100644
--- a/arch/mips/include/asm/io.h
+++ b/arch/mips/include/asm/io.h
@@ -447,6 +447,24 @@ __BUILDIO(q, u64)
447#define readl_relaxed readl 447#define readl_relaxed readl
448#define readq_relaxed readq 448#define readq_relaxed readq
449 449
450#define readb_be(addr) \
451 __raw_readb((__force unsigned *)(addr))
452#define readw_be(addr) \
453 be16_to_cpu(__raw_readw((__force unsigned *)(addr)))
454#define readl_be(addr) \
455 be32_to_cpu(__raw_readl((__force unsigned *)(addr)))
456#define readq_be(addr) \
457 be64_to_cpu(__raw_readq((__force unsigned *)(addr)))
458
459#define writeb_be(val, addr) \
460 __raw_writeb((val), (__force unsigned *)(addr))
461#define writew_be(val, addr) \
462 __raw_writew(cpu_to_be16((val)), (__force unsigned *)(addr))
463#define writel_be(val, addr) \
464 __raw_writel(cpu_to_be32((val)), (__force unsigned *)(addr))
465#define writeq_be(val, addr) \
466 __raw_writeq(cpu_to_be64((val)), (__force unsigned *)(addr))
467
450/* 468/*
451 * Some code tests for these symbols 469 * Some code tests for these symbols
452 */ 470 */
diff --git a/arch/mips/include/asm/mach-ar7/ar7.h b/arch/mips/include/asm/mach-ar7/ar7.h
index 21cbbc706448..f1cf38943497 100644
--- a/arch/mips/include/asm/mach-ar7/ar7.h
+++ b/arch/mips/include/asm/mach-ar7/ar7.h
@@ -105,26 +105,9 @@ static inline u8 ar7_chip_rev(void)
105 return (readl((void *)KSEG1ADDR(AR7_REGS_GPIO + 0x14)) >> 16) & 0xff; 105 return (readl((void *)KSEG1ADDR(AR7_REGS_GPIO + 0x14)) >> 16) & 0xff;
106} 106}
107 107
108static inline int ar7_cpu_freq(void) 108struct clk {
109{ 109 unsigned int rate;
110 return ar7_cpu_clock; 110};
111}
112
113static inline int ar7_bus_freq(void)
114{
115 return ar7_bus_clock;
116}
117
118static inline int ar7_vbus_freq(void)
119{
120 return ar7_bus_clock / 2;
121}
122#define ar7_cpmac_freq ar7_vbus_freq
123
124static inline int ar7_dsp_freq(void)
125{
126 return ar7_dsp_clock;
127}
128 111
129static inline int ar7_has_high_cpmac(void) 112static inline int ar7_has_high_cpmac(void)
130{ 113{
diff --git a/arch/mips/include/asm/mach-ar7/gpio.h b/arch/mips/include/asm/mach-ar7/gpio.h
index cbe9c4f126df..73f9b162c970 100644
--- a/arch/mips/include/asm/mach-ar7/gpio.h
+++ b/arch/mips/include/asm/mach-ar7/gpio.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007 Florian Fainelli <florian@openwrt.org> 2 * Copyright (C) 2007-2009 Florian Fainelli <florian@openwrt.org>
3 * 3 *
4 * This program is free software; you can redistribute it and/or modify 4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by 5 * it under the terms of the GNU General Public License as published by
@@ -22,88 +22,18 @@
22#include <asm/mach-ar7/ar7.h> 22#include <asm/mach-ar7/ar7.h>
23 23
24#define AR7_GPIO_MAX 32 24#define AR7_GPIO_MAX 32
25#define NR_BUILTIN_GPIO AR7_GPIO_MAX
25 26
26extern int gpio_request(unsigned gpio, const char *label); 27#define gpio_to_irq(gpio) NULL
27extern void gpio_free(unsigned gpio);
28 28
29/* Common GPIO layer */ 29#define gpio_get_value __gpio_get_value
30static inline int gpio_get_value(unsigned gpio) 30#define gpio_set_value __gpio_set_value
31{
32 void __iomem *gpio_in =
33 (void __iomem *)KSEG1ADDR(AR7_REGS_GPIO + AR7_GPIO_INPUT);
34 31
35 return readl(gpio_in) & (1 << gpio); 32#define gpio_cansleep __gpio_cansleep
36}
37
38static inline void gpio_set_value(unsigned gpio, int value)
39{
40 void __iomem *gpio_out =
41 (void __iomem *)KSEG1ADDR(AR7_REGS_GPIO + AR7_GPIO_OUTPUT);
42 unsigned tmp;
43
44 tmp = readl(gpio_out) & ~(1 << gpio);
45 if (value)
46 tmp |= 1 << gpio;
47 writel(tmp, gpio_out);
48}
49
50static inline int gpio_direction_input(unsigned gpio)
51{
52 void __iomem *gpio_dir =
53 (void __iomem *)KSEG1ADDR(AR7_REGS_GPIO + AR7_GPIO_DIR);
54
55 if (gpio >= AR7_GPIO_MAX)
56 return -EINVAL;
57
58 writel(readl(gpio_dir) | (1 << gpio), gpio_dir);
59
60 return 0;
61}
62
63static inline int gpio_direction_output(unsigned gpio, int value)
64{
65 void __iomem *gpio_dir =
66 (void __iomem *)KSEG1ADDR(AR7_REGS_GPIO + AR7_GPIO_DIR);
67
68 if (gpio >= AR7_GPIO_MAX)
69 return -EINVAL;
70
71 gpio_set_value(gpio, value);
72 writel(readl(gpio_dir) & ~(1 << gpio), gpio_dir);
73
74 return 0;
75}
76
77static inline int gpio_to_irq(unsigned gpio)
78{
79 return -EINVAL;
80}
81
82static inline int irq_to_gpio(unsigned irq)
83{
84 return -EINVAL;
85}
86 33
87/* Board specific GPIO functions */ 34/* Board specific GPIO functions */
88static inline int ar7_gpio_enable(unsigned gpio) 35int ar7_gpio_enable(unsigned gpio);
89{ 36int ar7_gpio_disable(unsigned gpio);
90 void __iomem *gpio_en =
91 (void __iomem *)KSEG1ADDR(AR7_REGS_GPIO + AR7_GPIO_ENABLE);
92
93 writel(readl(gpio_en) | (1 << gpio), gpio_en);
94
95 return 0;
96}
97
98static inline int ar7_gpio_disable(unsigned gpio)
99{
100 void __iomem *gpio_en =
101 (void __iomem *)KSEG1ADDR(AR7_REGS_GPIO + AR7_GPIO_ENABLE);
102
103 writel(readl(gpio_en) & ~(1 << gpio), gpio_en);
104
105 return 0;
106}
107 37
108#include <asm-generic/gpio.h> 38#include <asm-generic/gpio.h>
109 39
diff --git a/arch/mips/include/asm/mach-au1x00/au1000.h b/arch/mips/include/asm/mach-au1x00/au1000.h
index 854e95f1b07c..ae07423e6e82 100644
--- a/arch/mips/include/asm/mach-au1x00/au1000.h
+++ b/arch/mips/include/asm/mach-au1x00/au1000.h
@@ -130,6 +130,56 @@ static inline int au1xxx_cpu_needs_config_od(void)
130 return 0; 130 return 0;
131} 131}
132 132
133#define ALCHEMY_CPU_UNKNOWN -1
134#define ALCHEMY_CPU_AU1000 0
135#define ALCHEMY_CPU_AU1500 1
136#define ALCHEMY_CPU_AU1100 2
137#define ALCHEMY_CPU_AU1550 3
138#define ALCHEMY_CPU_AU1200 4
139
140static inline int alchemy_get_cputype(void)
141{
142 switch (read_c0_prid() & 0xffff0000) {
143 case 0x00030000:
144 return ALCHEMY_CPU_AU1000;
145 break;
146 case 0x01030000:
147 return ALCHEMY_CPU_AU1500;
148 break;
149 case 0x02030000:
150 return ALCHEMY_CPU_AU1100;
151 break;
152 case 0x03030000:
153 return ALCHEMY_CPU_AU1550;
154 break;
155 case 0x04030000:
156 case 0x05030000:
157 return ALCHEMY_CPU_AU1200;
158 break;
159 }
160
161 return ALCHEMY_CPU_UNKNOWN;
162}
163
164static inline void alchemy_uart_putchar(u32 uart_phys, u8 c)
165{
166 void __iomem *base = (void __iomem *)KSEG1ADDR(uart_phys);
167 int timeout, i;
168
169 /* check LSR TX_EMPTY bit */
170 timeout = 0xffffff;
171 do {
172 if (__raw_readl(base + 0x1c) & 0x20)
173 break;
174 /* slow down */
175 for (i = 10000; i; i--)
176 asm volatile ("nop");
177 } while (--timeout);
178
179 __raw_writel(c, base + 0x04); /* tx */
180 wmb();
181}
182
133/* arch/mips/au1000/common/clocks.c */ 183/* arch/mips/au1000/common/clocks.c */
134extern void set_au1x00_speed(unsigned int new_freq); 184extern void set_au1x00_speed(unsigned int new_freq);
135extern unsigned int get_au1x00_speed(void); 185extern unsigned int get_au1x00_speed(void);
@@ -143,20 +193,332 @@ void au_sleep(void);
143void save_au1xxx_intctl(void); 193void save_au1xxx_intctl(void);
144void restore_au1xxx_intctl(void); 194void restore_au1xxx_intctl(void);
145 195
146/* 196
147 * Every board describes its IRQ mapping with this table. 197/* SOC Interrupt numbers */
148 */ 198
149struct au1xxx_irqmap { 199#define AU1000_INTC0_INT_BASE (MIPS_CPU_IRQ_BASE + 8)
150 int im_irq; 200#define AU1000_INTC0_INT_LAST (AU1000_INTC0_INT_BASE + 31)
151 int im_type; 201#define AU1000_INTC1_INT_BASE (AU1000_INTC0_INT_LAST + 1)
152 int im_request; 202#define AU1000_INTC1_INT_LAST (AU1000_INTC1_INT_BASE + 31)
203#define AU1000_MAX_INTR AU1000_INTC1_INT_LAST
204
205enum soc_au1000_ints {
206 AU1000_FIRST_INT = AU1000_INTC0_INT_BASE,
207 AU1000_UART0_INT = AU1000_FIRST_INT,
208 AU1000_UART1_INT,
209 AU1000_UART2_INT,
210 AU1000_UART3_INT,
211 AU1000_SSI0_INT,
212 AU1000_SSI1_INT,
213 AU1000_DMA_INT_BASE,
214
215 AU1000_TOY_INT = AU1000_FIRST_INT + 14,
216 AU1000_TOY_MATCH0_INT,
217 AU1000_TOY_MATCH1_INT,
218 AU1000_TOY_MATCH2_INT,
219 AU1000_RTC_INT,
220 AU1000_RTC_MATCH0_INT,
221 AU1000_RTC_MATCH1_INT,
222 AU1000_RTC_MATCH2_INT,
223 AU1000_IRDA_TX_INT,
224 AU1000_IRDA_RX_INT,
225 AU1000_USB_DEV_REQ_INT,
226 AU1000_USB_DEV_SUS_INT,
227 AU1000_USB_HOST_INT,
228 AU1000_ACSYNC_INT,
229 AU1000_MAC0_DMA_INT,
230 AU1000_MAC1_DMA_INT,
231 AU1000_I2S_UO_INT,
232 AU1000_AC97C_INT,
233 AU1000_GPIO0_INT,
234 AU1000_GPIO1_INT,
235 AU1000_GPIO2_INT,
236 AU1000_GPIO3_INT,
237 AU1000_GPIO4_INT,
238 AU1000_GPIO5_INT,
239 AU1000_GPIO6_INT,
240 AU1000_GPIO7_INT,
241 AU1000_GPIO8_INT,
242 AU1000_GPIO9_INT,
243 AU1000_GPIO10_INT,
244 AU1000_GPIO11_INT,
245 AU1000_GPIO12_INT,
246 AU1000_GPIO13_INT,
247 AU1000_GPIO14_INT,
248 AU1000_GPIO15_INT,
249 AU1000_GPIO16_INT,
250 AU1000_GPIO17_INT,
251 AU1000_GPIO18_INT,
252 AU1000_GPIO19_INT,
253 AU1000_GPIO20_INT,
254 AU1000_GPIO21_INT,
255 AU1000_GPIO22_INT,
256 AU1000_GPIO23_INT,
257 AU1000_GPIO24_INT,
258 AU1000_GPIO25_INT,
259 AU1000_GPIO26_INT,
260 AU1000_GPIO27_INT,
261 AU1000_GPIO28_INT,
262 AU1000_GPIO29_INT,
263 AU1000_GPIO30_INT,
264 AU1000_GPIO31_INT,
153}; 265};
154 266
155/* core calls this function to let boards initialize other IRQ sources */ 267enum soc_au1100_ints {
156void board_init_irq(void); 268 AU1100_FIRST_INT = AU1000_INTC0_INT_BASE,
269 AU1100_UART0_INT = AU1100_FIRST_INT,
270 AU1100_UART1_INT,
271 AU1100_SD_INT,
272 AU1100_UART3_INT,
273 AU1100_SSI0_INT,
274 AU1100_SSI1_INT,
275 AU1100_DMA_INT_BASE,
276
277 AU1100_TOY_INT = AU1100_FIRST_INT + 14,
278 AU1100_TOY_MATCH0_INT,
279 AU1100_TOY_MATCH1_INT,
280 AU1100_TOY_MATCH2_INT,
281 AU1100_RTC_INT,
282 AU1100_RTC_MATCH0_INT,
283 AU1100_RTC_MATCH1_INT,
284 AU1100_RTC_MATCH2_INT,
285 AU1100_IRDA_TX_INT,
286 AU1100_IRDA_RX_INT,
287 AU1100_USB_DEV_REQ_INT,
288 AU1100_USB_DEV_SUS_INT,
289 AU1100_USB_HOST_INT,
290 AU1100_ACSYNC_INT,
291 AU1100_MAC0_DMA_INT,
292 AU1100_GPIO208_215_INT,
293 AU1100_LCD_INT,
294 AU1100_AC97C_INT,
295 AU1100_GPIO0_INT,
296 AU1100_GPIO1_INT,
297 AU1100_GPIO2_INT,
298 AU1100_GPIO3_INT,
299 AU1100_GPIO4_INT,
300 AU1100_GPIO5_INT,
301 AU1100_GPIO6_INT,
302 AU1100_GPIO7_INT,
303 AU1100_GPIO8_INT,
304 AU1100_GPIO9_INT,
305 AU1100_GPIO10_INT,
306 AU1100_GPIO11_INT,
307 AU1100_GPIO12_INT,
308 AU1100_GPIO13_INT,
309 AU1100_GPIO14_INT,
310 AU1100_GPIO15_INT,
311 AU1100_GPIO16_INT,
312 AU1100_GPIO17_INT,
313 AU1100_GPIO18_INT,
314 AU1100_GPIO19_INT,
315 AU1100_GPIO20_INT,
316 AU1100_GPIO21_INT,
317 AU1100_GPIO22_INT,
318 AU1100_GPIO23_INT,
319 AU1100_GPIO24_INT,
320 AU1100_GPIO25_INT,
321 AU1100_GPIO26_INT,
322 AU1100_GPIO27_INT,
323 AU1100_GPIO28_INT,
324 AU1100_GPIO29_INT,
325 AU1100_GPIO30_INT,
326 AU1100_GPIO31_INT,
327};
157 328
158/* boards call this to register additional (GPIO) interrupts */ 329enum soc_au1500_ints {
159void au1xxx_setup_irqmap(struct au1xxx_irqmap *map, int count); 330 AU1500_FIRST_INT = AU1000_INTC0_INT_BASE,
331 AU1500_UART0_INT = AU1500_FIRST_INT,
332 AU1500_PCI_INTA,
333 AU1500_PCI_INTB,
334 AU1500_UART3_INT,
335 AU1500_PCI_INTC,
336 AU1500_PCI_INTD,
337 AU1500_DMA_INT_BASE,
338
339 AU1500_TOY_INT = AU1500_FIRST_INT + 14,
340 AU1500_TOY_MATCH0_INT,
341 AU1500_TOY_MATCH1_INT,
342 AU1500_TOY_MATCH2_INT,
343 AU1500_RTC_INT,
344 AU1500_RTC_MATCH0_INT,
345 AU1500_RTC_MATCH1_INT,
346 AU1500_RTC_MATCH2_INT,
347 AU1500_PCI_ERR_INT,
348 AU1500_RESERVED_INT,
349 AU1500_USB_DEV_REQ_INT,
350 AU1500_USB_DEV_SUS_INT,
351 AU1500_USB_HOST_INT,
352 AU1500_ACSYNC_INT,
353 AU1500_MAC0_DMA_INT,
354 AU1500_MAC1_DMA_INT,
355 AU1500_AC97C_INT = AU1500_FIRST_INT + 31,
356 AU1500_GPIO0_INT,
357 AU1500_GPIO1_INT,
358 AU1500_GPIO2_INT,
359 AU1500_GPIO3_INT,
360 AU1500_GPIO4_INT,
361 AU1500_GPIO5_INT,
362 AU1500_GPIO6_INT,
363 AU1500_GPIO7_INT,
364 AU1500_GPIO8_INT,
365 AU1500_GPIO9_INT,
366 AU1500_GPIO10_INT,
367 AU1500_GPIO11_INT,
368 AU1500_GPIO12_INT,
369 AU1500_GPIO13_INT,
370 AU1500_GPIO14_INT,
371 AU1500_GPIO15_INT,
372 AU1500_GPIO200_INT,
373 AU1500_GPIO201_INT,
374 AU1500_GPIO202_INT,
375 AU1500_GPIO203_INT,
376 AU1500_GPIO20_INT,
377 AU1500_GPIO204_INT,
378 AU1500_GPIO205_INT,
379 AU1500_GPIO23_INT,
380 AU1500_GPIO24_INT,
381 AU1500_GPIO25_INT,
382 AU1500_GPIO26_INT,
383 AU1500_GPIO27_INT,
384 AU1500_GPIO28_INT,
385 AU1500_GPIO206_INT,
386 AU1500_GPIO207_INT,
387 AU1500_GPIO208_215_INT,
388};
389
390enum soc_au1550_ints {
391 AU1550_FIRST_INT = AU1000_INTC0_INT_BASE,
392 AU1550_UART0_INT = AU1550_FIRST_INT,
393 AU1550_PCI_INTA,
394 AU1550_PCI_INTB,
395 AU1550_DDMA_INT,
396 AU1550_CRYPTO_INT,
397 AU1550_PCI_INTC,
398 AU1550_PCI_INTD,
399 AU1550_PCI_RST_INT,
400 AU1550_UART1_INT,
401 AU1550_UART3_INT,
402 AU1550_PSC0_INT,
403 AU1550_PSC1_INT,
404 AU1550_PSC2_INT,
405 AU1550_PSC3_INT,
406 AU1550_TOY_INT,
407 AU1550_TOY_MATCH0_INT,
408 AU1550_TOY_MATCH1_INT,
409 AU1550_TOY_MATCH2_INT,
410 AU1550_RTC_INT,
411 AU1550_RTC_MATCH0_INT,
412 AU1550_RTC_MATCH1_INT,
413 AU1550_RTC_MATCH2_INT,
414
415 AU1550_NAND_INT = AU1550_FIRST_INT + 23,
416 AU1550_USB_DEV_REQ_INT,
417 AU1550_USB_DEV_SUS_INT,
418 AU1550_USB_HOST_INT,
419 AU1550_MAC0_DMA_INT,
420 AU1550_MAC1_DMA_INT,
421 AU1550_GPIO0_INT = AU1550_FIRST_INT + 32,
422 AU1550_GPIO1_INT,
423 AU1550_GPIO2_INT,
424 AU1550_GPIO3_INT,
425 AU1550_GPIO4_INT,
426 AU1550_GPIO5_INT,
427 AU1550_GPIO6_INT,
428 AU1550_GPIO7_INT,
429 AU1550_GPIO8_INT,
430 AU1550_GPIO9_INT,
431 AU1550_GPIO10_INT,
432 AU1550_GPIO11_INT,
433 AU1550_GPIO12_INT,
434 AU1550_GPIO13_INT,
435 AU1550_GPIO14_INT,
436 AU1550_GPIO15_INT,
437 AU1550_GPIO200_INT,
438 AU1550_GPIO201_205_INT, /* Logical or of GPIO201:205 */
439 AU1550_GPIO16_INT,
440 AU1550_GPIO17_INT,
441 AU1550_GPIO20_INT,
442 AU1550_GPIO21_INT,
443 AU1550_GPIO22_INT,
444 AU1550_GPIO23_INT,
445 AU1550_GPIO24_INT,
446 AU1550_GPIO25_INT,
447 AU1550_GPIO26_INT,
448 AU1550_GPIO27_INT,
449 AU1550_GPIO28_INT,
450 AU1550_GPIO206_INT,
451 AU1550_GPIO207_INT,
452 AU1550_GPIO208_215_INT, /* Logical or of GPIO208:215 */
453};
454
455enum soc_au1200_ints {
456 AU1200_FIRST_INT = AU1000_INTC0_INT_BASE,
457 AU1200_UART0_INT = AU1200_FIRST_INT,
458 AU1200_SWT_INT,
459 AU1200_SD_INT,
460 AU1200_DDMA_INT,
461 AU1200_MAE_BE_INT,
462 AU1200_GPIO200_INT,
463 AU1200_GPIO201_INT,
464 AU1200_GPIO202_INT,
465 AU1200_UART1_INT,
466 AU1200_MAE_FE_INT,
467 AU1200_PSC0_INT,
468 AU1200_PSC1_INT,
469 AU1200_AES_INT,
470 AU1200_CAMERA_INT,
471 AU1200_TOY_INT,
472 AU1200_TOY_MATCH0_INT,
473 AU1200_TOY_MATCH1_INT,
474 AU1200_TOY_MATCH2_INT,
475 AU1200_RTC_INT,
476 AU1200_RTC_MATCH0_INT,
477 AU1200_RTC_MATCH1_INT,
478 AU1200_RTC_MATCH2_INT,
479 AU1200_GPIO203_INT,
480 AU1200_NAND_INT,
481 AU1200_GPIO204_INT,
482 AU1200_GPIO205_INT,
483 AU1200_GPIO206_INT,
484 AU1200_GPIO207_INT,
485 AU1200_GPIO208_215_INT, /* Logical OR of 208:215 */
486 AU1200_USB_INT,
487 AU1200_LCD_INT,
488 AU1200_MAE_BOTH_INT,
489 AU1200_GPIO0_INT,
490 AU1200_GPIO1_INT,
491 AU1200_GPIO2_INT,
492 AU1200_GPIO3_INT,
493 AU1200_GPIO4_INT,
494 AU1200_GPIO5_INT,
495 AU1200_GPIO6_INT,
496 AU1200_GPIO7_INT,
497 AU1200_GPIO8_INT,
498 AU1200_GPIO9_INT,
499 AU1200_GPIO10_INT,
500 AU1200_GPIO11_INT,
501 AU1200_GPIO12_INT,
502 AU1200_GPIO13_INT,
503 AU1200_GPIO14_INT,
504 AU1200_GPIO15_INT,
505 AU1200_GPIO16_INT,
506 AU1200_GPIO17_INT,
507 AU1200_GPIO18_INT,
508 AU1200_GPIO19_INT,
509 AU1200_GPIO20_INT,
510 AU1200_GPIO21_INT,
511 AU1200_GPIO22_INT,
512 AU1200_GPIO23_INT,
513 AU1200_GPIO24_INT,
514 AU1200_GPIO25_INT,
515 AU1200_GPIO26_INT,
516 AU1200_GPIO27_INT,
517 AU1200_GPIO28_INT,
518 AU1200_GPIO29_INT,
519 AU1200_GPIO30_INT,
520 AU1200_GPIO31_INT,
521};
160 522
161#endif /* !defined (_LANGUAGE_ASSEMBLY) */ 523#endif /* !defined (_LANGUAGE_ASSEMBLY) */
162 524
@@ -549,78 +911,16 @@ void au1xxx_setup_irqmap(struct au1xxx_irqmap *map, int count);
549 911
550#define IC1_TESTBIT 0xB1800080 912#define IC1_TESTBIT 0xB1800080
551 913
552/* Interrupt Numbers */ 914
553/* Au1000 */ 915/* Au1000 */
554#ifdef CONFIG_SOC_AU1000 916#ifdef CONFIG_SOC_AU1000
555enum soc_au1000_ints {
556 AU1000_FIRST_INT = MIPS_CPU_IRQ_BASE + 8,
557 AU1000_UART0_INT = AU1000_FIRST_INT,
558 AU1000_UART1_INT, /* au1000 */
559 AU1000_UART2_INT, /* au1000 */
560 AU1000_UART3_INT,
561 AU1000_SSI0_INT, /* au1000 */
562 AU1000_SSI1_INT, /* au1000 */
563 AU1000_DMA_INT_BASE,
564
565 AU1000_TOY_INT = AU1000_FIRST_INT + 14,
566 AU1000_TOY_MATCH0_INT,
567 AU1000_TOY_MATCH1_INT,
568 AU1000_TOY_MATCH2_INT,
569 AU1000_RTC_INT,
570 AU1000_RTC_MATCH0_INT,
571 AU1000_RTC_MATCH1_INT,
572 AU1000_RTC_MATCH2_INT,
573 AU1000_IRDA_TX_INT, /* au1000 */
574 AU1000_IRDA_RX_INT, /* au1000 */
575 AU1000_USB_DEV_REQ_INT,
576 AU1000_USB_DEV_SUS_INT,
577 AU1000_USB_HOST_INT,
578 AU1000_ACSYNC_INT,
579 AU1000_MAC0_DMA_INT,
580 AU1000_MAC1_DMA_INT,
581 AU1000_I2S_UO_INT, /* au1000 */
582 AU1000_AC97C_INT,
583 AU1000_GPIO_0,
584 AU1000_GPIO_1,
585 AU1000_GPIO_2,
586 AU1000_GPIO_3,
587 AU1000_GPIO_4,
588 AU1000_GPIO_5,
589 AU1000_GPIO_6,
590 AU1000_GPIO_7,
591 AU1000_GPIO_8,
592 AU1000_GPIO_9,
593 AU1000_GPIO_10,
594 AU1000_GPIO_11,
595 AU1000_GPIO_12,
596 AU1000_GPIO_13,
597 AU1000_GPIO_14,
598 AU1000_GPIO_15,
599 AU1000_GPIO_16,
600 AU1000_GPIO_17,
601 AU1000_GPIO_18,
602 AU1000_GPIO_19,
603 AU1000_GPIO_20,
604 AU1000_GPIO_21,
605 AU1000_GPIO_22,
606 AU1000_GPIO_23,
607 AU1000_GPIO_24,
608 AU1000_GPIO_25,
609 AU1000_GPIO_26,
610 AU1000_GPIO_27,
611 AU1000_GPIO_28,
612 AU1000_GPIO_29,
613 AU1000_GPIO_30,
614 AU1000_GPIO_31,
615};
616 917
617#define UART0_ADDR 0xB1100000 918#define UART0_ADDR 0xB1100000
618#define UART1_ADDR 0xB1200000
619#define UART2_ADDR 0xB1300000
620#define UART3_ADDR 0xB1400000 919#define UART3_ADDR 0xB1400000
621 920
622#define USB_OHCI_BASE 0x10100000 /* phys addr for ioremap */ 921#define USB_OHCI_BASE 0x10100000 /* phys addr for ioremap */
623#define USB_HOST_CONFIG 0xB017FFFC 922#define USB_HOST_CONFIG 0xB017FFFC
923#define FOR_PLATFORM_C_USB_HOST_INT AU1000_USB_HOST_INT
624 924
625#define AU1000_ETH0_BASE 0xB0500000 925#define AU1000_ETH0_BASE 0xB0500000
626#define AU1000_ETH1_BASE 0xB0510000 926#define AU1000_ETH1_BASE 0xB0510000
@@ -631,78 +931,13 @@ enum soc_au1000_ints {
631 931
632/* Au1500 */ 932/* Au1500 */
633#ifdef CONFIG_SOC_AU1500 933#ifdef CONFIG_SOC_AU1500
634enum soc_au1500_ints {
635 AU1500_FIRST_INT = MIPS_CPU_IRQ_BASE + 8,
636 AU1500_UART0_INT = AU1500_FIRST_INT,
637 AU1000_PCI_INTA, /* au1500 */
638 AU1000_PCI_INTB, /* au1500 */
639 AU1500_UART3_INT,
640 AU1000_PCI_INTC, /* au1500 */
641 AU1000_PCI_INTD, /* au1500 */
642 AU1000_DMA_INT_BASE,
643
644 AU1000_TOY_INT = AU1500_FIRST_INT + 14,
645 AU1000_TOY_MATCH0_INT,
646 AU1000_TOY_MATCH1_INT,
647 AU1000_TOY_MATCH2_INT,
648 AU1000_RTC_INT,
649 AU1000_RTC_MATCH0_INT,
650 AU1000_RTC_MATCH1_INT,
651 AU1000_RTC_MATCH2_INT,
652 AU1500_PCI_ERR_INT,
653 AU1500_RESERVED_INT,
654 AU1000_USB_DEV_REQ_INT,
655 AU1000_USB_DEV_SUS_INT,
656 AU1000_USB_HOST_INT,
657 AU1000_ACSYNC_INT,
658 AU1500_MAC0_DMA_INT,
659 AU1500_MAC1_DMA_INT,
660 AU1000_AC97C_INT = AU1500_FIRST_INT + 31,
661 AU1000_GPIO_0,
662 AU1000_GPIO_1,
663 AU1000_GPIO_2,
664 AU1000_GPIO_3,
665 AU1000_GPIO_4,
666 AU1000_GPIO_5,
667 AU1000_GPIO_6,
668 AU1000_GPIO_7,
669 AU1000_GPIO_8,
670 AU1000_GPIO_9,
671 AU1000_GPIO_10,
672 AU1000_GPIO_11,
673 AU1000_GPIO_12,
674 AU1000_GPIO_13,
675 AU1000_GPIO_14,
676 AU1000_GPIO_15,
677 AU1500_GPIO_200,
678 AU1500_GPIO_201,
679 AU1500_GPIO_202,
680 AU1500_GPIO_203,
681 AU1500_GPIO_20,
682 AU1500_GPIO_204,
683 AU1500_GPIO_205,
684 AU1500_GPIO_23,
685 AU1500_GPIO_24,
686 AU1500_GPIO_25,
687 AU1500_GPIO_26,
688 AU1500_GPIO_27,
689 AU1500_GPIO_28,
690 AU1500_GPIO_206,
691 AU1500_GPIO_207,
692 AU1500_GPIO_208_215,
693};
694
695/* shortcuts */
696#define INTA AU1000_PCI_INTA
697#define INTB AU1000_PCI_INTB
698#define INTC AU1000_PCI_INTC
699#define INTD AU1000_PCI_INTD
700 934
701#define UART0_ADDR 0xB1100000 935#define UART0_ADDR 0xB1100000
702#define UART3_ADDR 0xB1400000 936#define UART3_ADDR 0xB1400000
703 937
704#define USB_OHCI_BASE 0x10100000 /* phys addr for ioremap */ 938#define USB_OHCI_BASE 0x10100000 /* phys addr for ioremap */
705#define USB_HOST_CONFIG 0xB017fffc 939#define USB_HOST_CONFIG 0xB017fffc
940#define FOR_PLATFORM_C_USB_HOST_INT AU1500_USB_HOST_INT
706 941
707#define AU1500_ETH0_BASE 0xB1500000 942#define AU1500_ETH0_BASE 0xB1500000
708#define AU1500_ETH1_BASE 0xB1510000 943#define AU1500_ETH1_BASE 0xB1510000
@@ -713,74 +948,13 @@ enum soc_au1500_ints {
713 948
714/* Au1100 */ 949/* Au1100 */
715#ifdef CONFIG_SOC_AU1100 950#ifdef CONFIG_SOC_AU1100
716enum soc_au1100_ints {
717 AU1100_FIRST_INT = MIPS_CPU_IRQ_BASE + 8,
718 AU1100_UART0_INT = AU1100_FIRST_INT,
719 AU1100_UART1_INT,
720 AU1100_SD_INT,
721 AU1100_UART3_INT,
722 AU1000_SSI0_INT,
723 AU1000_SSI1_INT,
724 AU1000_DMA_INT_BASE,
725
726 AU1000_TOY_INT = AU1100_FIRST_INT + 14,
727 AU1000_TOY_MATCH0_INT,
728 AU1000_TOY_MATCH1_INT,
729 AU1000_TOY_MATCH2_INT,
730 AU1000_RTC_INT,
731 AU1000_RTC_MATCH0_INT,
732 AU1000_RTC_MATCH1_INT,
733 AU1000_RTC_MATCH2_INT,
734 AU1000_IRDA_TX_INT,
735 AU1000_IRDA_RX_INT,
736 AU1000_USB_DEV_REQ_INT,
737 AU1000_USB_DEV_SUS_INT,
738 AU1000_USB_HOST_INT,
739 AU1000_ACSYNC_INT,
740 AU1100_MAC0_DMA_INT,
741 AU1100_GPIO_208_215,
742 AU1100_LCD_INT,
743 AU1000_AC97C_INT,
744 AU1000_GPIO_0,
745 AU1000_GPIO_1,
746 AU1000_GPIO_2,
747 AU1000_GPIO_3,
748 AU1000_GPIO_4,
749 AU1000_GPIO_5,
750 AU1000_GPIO_6,
751 AU1000_GPIO_7,
752 AU1000_GPIO_8,
753 AU1000_GPIO_9,
754 AU1000_GPIO_10,
755 AU1000_GPIO_11,
756 AU1000_GPIO_12,
757 AU1000_GPIO_13,
758 AU1000_GPIO_14,
759 AU1000_GPIO_15,
760 AU1000_GPIO_16,
761 AU1000_GPIO_17,
762 AU1000_GPIO_18,
763 AU1000_GPIO_19,
764 AU1000_GPIO_20,
765 AU1000_GPIO_21,
766 AU1000_GPIO_22,
767 AU1000_GPIO_23,
768 AU1000_GPIO_24,
769 AU1000_GPIO_25,
770 AU1000_GPIO_26,
771 AU1000_GPIO_27,
772 AU1000_GPIO_28,
773 AU1000_GPIO_29,
774 AU1000_GPIO_30,
775 AU1000_GPIO_31,
776};
777 951
778#define UART0_ADDR 0xB1100000 952#define UART0_ADDR 0xB1100000
779#define UART1_ADDR 0xB1200000
780#define UART3_ADDR 0xB1400000 953#define UART3_ADDR 0xB1400000
781 954
782#define USB_OHCI_BASE 0x10100000 /* phys addr for ioremap */ 955#define USB_OHCI_BASE 0x10100000 /* phys addr for ioremap */
783#define USB_HOST_CONFIG 0xB017FFFC 956#define USB_HOST_CONFIG 0xB017FFFC
957#define FOR_PLATFORM_C_USB_HOST_INT AU1100_USB_HOST_INT
784 958
785#define AU1100_ETH0_BASE 0xB0500000 959#define AU1100_ETH0_BASE 0xB0500000
786#define AU1100_MAC0_ENABLE 0xB0520000 960#define AU1100_MAC0_ENABLE 0xB0520000
@@ -788,87 +962,12 @@ enum soc_au1100_ints {
788#endif /* CONFIG_SOC_AU1100 */ 962#endif /* CONFIG_SOC_AU1100 */
789 963
790#ifdef CONFIG_SOC_AU1550 964#ifdef CONFIG_SOC_AU1550
791enum soc_au1550_ints {
792 AU1550_FIRST_INT = MIPS_CPU_IRQ_BASE + 8,
793 AU1550_UART0_INT = AU1550_FIRST_INT,
794 AU1550_PCI_INTA,
795 AU1550_PCI_INTB,
796 AU1550_DDMA_INT,
797 AU1550_CRYPTO_INT,
798 AU1550_PCI_INTC,
799 AU1550_PCI_INTD,
800 AU1550_PCI_RST_INT,
801 AU1550_UART1_INT,
802 AU1550_UART3_INT,
803 AU1550_PSC0_INT,
804 AU1550_PSC1_INT,
805 AU1550_PSC2_INT,
806 AU1550_PSC3_INT,
807 AU1000_TOY_INT,
808 AU1000_TOY_MATCH0_INT,
809 AU1000_TOY_MATCH1_INT,
810 AU1000_TOY_MATCH2_INT,
811 AU1000_RTC_INT,
812 AU1000_RTC_MATCH0_INT,
813 AU1000_RTC_MATCH1_INT,
814 AU1000_RTC_MATCH2_INT,
815
816 AU1550_NAND_INT = AU1550_FIRST_INT + 23,
817 AU1550_USB_DEV_REQ_INT,
818 AU1000_USB_DEV_REQ_INT = AU1550_USB_DEV_REQ_INT,
819 AU1550_USB_DEV_SUS_INT,
820 AU1000_USB_DEV_SUS_INT = AU1550_USB_DEV_SUS_INT,
821 AU1550_USB_HOST_INT,
822 AU1000_USB_HOST_INT = AU1550_USB_HOST_INT,
823 AU1550_MAC0_DMA_INT,
824 AU1550_MAC1_DMA_INT,
825 AU1000_GPIO_0 = AU1550_FIRST_INT + 32,
826 AU1000_GPIO_1,
827 AU1000_GPIO_2,
828 AU1000_GPIO_3,
829 AU1000_GPIO_4,
830 AU1000_GPIO_5,
831 AU1000_GPIO_6,
832 AU1000_GPIO_7,
833 AU1000_GPIO_8,
834 AU1000_GPIO_9,
835 AU1000_GPIO_10,
836 AU1000_GPIO_11,
837 AU1000_GPIO_12,
838 AU1000_GPIO_13,
839 AU1000_GPIO_14,
840 AU1000_GPIO_15,
841 AU1550_GPIO_200,
842 AU1500_GPIO_201_205, /* Logical or of GPIO201:205 */
843 AU1500_GPIO_16,
844 AU1500_GPIO_17,
845 AU1500_GPIO_20,
846 AU1500_GPIO_21,
847 AU1500_GPIO_22,
848 AU1500_GPIO_23,
849 AU1500_GPIO_24,
850 AU1500_GPIO_25,
851 AU1500_GPIO_26,
852 AU1500_GPIO_27,
853 AU1500_GPIO_28,
854 AU1500_GPIO_206,
855 AU1500_GPIO_207,
856 AU1500_GPIO_208_218, /* Logical or of GPIO208:218 */
857};
858
859/* shortcuts */
860#define INTA AU1550_PCI_INTA
861#define INTB AU1550_PCI_INTB
862#define INTC AU1550_PCI_INTC
863#define INTD AU1550_PCI_INTD
864
865#define UART0_ADDR 0xB1100000 965#define UART0_ADDR 0xB1100000
866#define UART1_ADDR 0xB1200000
867#define UART3_ADDR 0xB1400000
868 966
869#define USB_OHCI_BASE 0x14020000 /* phys addr for ioremap */ 967#define USB_OHCI_BASE 0x14020000 /* phys addr for ioremap */
870#define USB_OHCI_LEN 0x00060000 968#define USB_OHCI_LEN 0x00060000
871#define USB_HOST_CONFIG 0xB4027ffc 969#define USB_HOST_CONFIG 0xB4027ffc
970#define FOR_PLATFORM_C_USB_HOST_INT AU1550_USB_HOST_INT
872 971
873#define AU1550_ETH0_BASE 0xB0500000 972#define AU1550_ETH0_BASE 0xB0500000
874#define AU1550_ETH1_BASE 0xB0510000 973#define AU1550_ETH1_BASE 0xB0510000
@@ -877,78 +976,10 @@ enum soc_au1550_ints {
877#define NUM_ETH_INTERFACES 2 976#define NUM_ETH_INTERFACES 2
878#endif /* CONFIG_SOC_AU1550 */ 977#endif /* CONFIG_SOC_AU1550 */
879 978
979
880#ifdef CONFIG_SOC_AU1200 980#ifdef CONFIG_SOC_AU1200
881enum soc_au1200_ints {
882 AU1200_FIRST_INT = MIPS_CPU_IRQ_BASE + 8,
883 AU1200_UART0_INT = AU1200_FIRST_INT,
884 AU1200_SWT_INT,
885 AU1200_SD_INT,
886 AU1200_DDMA_INT,
887 AU1200_MAE_BE_INT,
888 AU1200_GPIO_200,
889 AU1200_GPIO_201,
890 AU1200_GPIO_202,
891 AU1200_UART1_INT,
892 AU1200_MAE_FE_INT,
893 AU1200_PSC0_INT,
894 AU1200_PSC1_INT,
895 AU1200_AES_INT,
896 AU1200_CAMERA_INT,
897 AU1000_TOY_INT,
898 AU1000_TOY_MATCH0_INT,
899 AU1000_TOY_MATCH1_INT,
900 AU1000_TOY_MATCH2_INT,
901 AU1000_RTC_INT,
902 AU1000_RTC_MATCH0_INT,
903 AU1000_RTC_MATCH1_INT,
904 AU1000_RTC_MATCH2_INT,
905 AU1200_GPIO_203,
906 AU1200_NAND_INT,
907 AU1200_GPIO_204,
908 AU1200_GPIO_205,
909 AU1200_GPIO_206,
910 AU1200_GPIO_207,
911 AU1200_GPIO_208_215, /* Logical OR of 208:215 */
912 AU1200_USB_INT,
913 AU1000_USB_HOST_INT = AU1200_USB_INT,
914 AU1200_LCD_INT,
915 AU1200_MAE_BOTH_INT,
916 AU1000_GPIO_0,
917 AU1000_GPIO_1,
918 AU1000_GPIO_2,
919 AU1000_GPIO_3,
920 AU1000_GPIO_4,
921 AU1000_GPIO_5,
922 AU1000_GPIO_6,
923 AU1000_GPIO_7,
924 AU1000_GPIO_8,
925 AU1000_GPIO_9,
926 AU1000_GPIO_10,
927 AU1000_GPIO_11,
928 AU1000_GPIO_12,
929 AU1000_GPIO_13,
930 AU1000_GPIO_14,
931 AU1000_GPIO_15,
932 AU1000_GPIO_16,
933 AU1000_GPIO_17,
934 AU1000_GPIO_18,
935 AU1000_GPIO_19,
936 AU1000_GPIO_20,
937 AU1000_GPIO_21,
938 AU1000_GPIO_22,
939 AU1000_GPIO_23,
940 AU1000_GPIO_24,
941 AU1000_GPIO_25,
942 AU1000_GPIO_26,
943 AU1000_GPIO_27,
944 AU1000_GPIO_28,
945 AU1000_GPIO_29,
946 AU1000_GPIO_30,
947 AU1000_GPIO_31,
948};
949 981
950#define UART0_ADDR 0xB1100000 982#define UART0_ADDR 0xB1100000
951#define UART1_ADDR 0xB1200000
952 983
953#define USB_UOC_BASE 0x14020020 984#define USB_UOC_BASE 0x14020020
954#define USB_UOC_LEN 0x20 985#define USB_UOC_LEN 0x20
@@ -974,15 +1005,9 @@ enum soc_au1200_ints {
974#define USBMSRMCFG_RDCOMB 30 1005#define USBMSRMCFG_RDCOMB 30
975#define USBMSRMCFG_PFEN 31 1006#define USBMSRMCFG_PFEN 31
976 1007
977#endif /* CONFIG_SOC_AU1200 */ 1008#define FOR_PLATFORM_C_USB_HOST_INT AU1200_USB_INT
978
979#define AU1000_INTC0_INT_BASE (MIPS_CPU_IRQ_BASE + 8)
980#define AU1000_INTC0_INT_LAST (AU1000_INTC0_INT_BASE + 31)
981#define AU1000_INTC1_INT_BASE (AU1000_INTC0_INT_BASE + 32)
982#define AU1000_INTC1_INT_LAST (AU1000_INTC1_INT_BASE + 31)
983 1009
984#define AU1000_MAX_INTR AU1000_INTC1_INT_LAST 1010#endif /* CONFIG_SOC_AU1200 */
985#define INTX 0xFF /* not valid */
986 1011
987/* Programmable Counters 0 and 1 */ 1012/* Programmable Counters 0 and 1 */
988#define SYS_BASE 0xB1900000 1013#define SYS_BASE 0xB1900000
@@ -1231,14 +1256,6 @@ enum soc_au1200_ints {
1231#define MAC_RX_BUFF3_STATUS 0x30 1256#define MAC_RX_BUFF3_STATUS 0x30
1232#define MAC_RX_BUFF3_ADDR 0x34 1257#define MAC_RX_BUFF3_ADDR 0x34
1233 1258
1234/* UARTS 0-3 */
1235#define UART_BASE UART0_ADDR
1236#ifdef CONFIG_SOC_AU1200
1237#define UART_DEBUG_BASE UART1_ADDR
1238#else
1239#define UART_DEBUG_BASE UART3_ADDR
1240#endif
1241
1242#define UART_RX 0 /* Receive buffer */ 1259#define UART_RX 0 /* Receive buffer */
1243#define UART_TX 4 /* Transmit buffer */ 1260#define UART_TX 4 /* Transmit buffer */
1244#define UART_IER 8 /* Interrupt Enable Register */ 1261#define UART_IER 8 /* Interrupt Enable Register */
@@ -1251,84 +1268,6 @@ enum soc_au1200_ints {
1251#define UART_CLK 0x28 /* Baud Rate Clock Divider */ 1268#define UART_CLK 0x28 /* Baud Rate Clock Divider */
1252#define UART_MOD_CNTRL 0x100 /* Module Control */ 1269#define UART_MOD_CNTRL 0x100 /* Module Control */
1253 1270
1254#define UART_FCR_ENABLE_FIFO 0x01 /* Enable the FIFO */
1255#define UART_FCR_CLEAR_RCVR 0x02 /* Clear the RCVR FIFO */
1256#define UART_FCR_CLEAR_XMIT 0x04 /* Clear the XMIT FIFO */
1257#define UART_FCR_DMA_SELECT 0x08 /* For DMA applications */
1258#define UART_FCR_TRIGGER_MASK 0xF0 /* Mask for the FIFO trigger range */
1259#define UART_FCR_R_TRIGGER_1 0x00 /* Mask for receive trigger set at 1 */
1260#define UART_FCR_R_TRIGGER_4 0x40 /* Mask for receive trigger set at 4 */
1261#define UART_FCR_R_TRIGGER_8 0x80 /* Mask for receive trigger set at 8 */
1262#define UART_FCR_R_TRIGGER_14 0xA0 /* Mask for receive trigger set at 14 */
1263#define UART_FCR_T_TRIGGER_0 0x00 /* Mask for transmit trigger set at 0 */
1264#define UART_FCR_T_TRIGGER_4 0x10 /* Mask for transmit trigger set at 4 */
1265#define UART_FCR_T_TRIGGER_8 0x20 /* Mask for transmit trigger set at 8 */
1266#define UART_FCR_T_TRIGGER_12 0x30 /* Mask for transmit trigger set at 12 */
1267
1268/*
1269 * These are the definitions for the Line Control Register
1270 */
1271#define UART_LCR_SBC 0x40 /* Set break control */
1272#define UART_LCR_SPAR 0x20 /* Stick parity (?) */
1273#define UART_LCR_EPAR 0x10 /* Even parity select */
1274#define UART_LCR_PARITY 0x08 /* Parity Enable */
1275#define UART_LCR_STOP 0x04 /* Stop bits: 0=1 stop bit, 1= 2 stop bits */
1276#define UART_LCR_WLEN5 0x00 /* Wordlength: 5 bits */
1277#define UART_LCR_WLEN6 0x01 /* Wordlength: 6 bits */
1278#define UART_LCR_WLEN7 0x02 /* Wordlength: 7 bits */
1279#define UART_LCR_WLEN8 0x03 /* Wordlength: 8 bits */
1280
1281/*
1282 * These are the definitions for the Line Status Register
1283 */
1284#define UART_LSR_TEMT 0x40 /* Transmitter empty */
1285#define UART_LSR_THRE 0x20 /* Transmit-hold-register empty */
1286#define UART_LSR_BI 0x10 /* Break interrupt indicator */
1287#define UART_LSR_FE 0x08 /* Frame error indicator */
1288#define UART_LSR_PE 0x04 /* Parity error indicator */
1289#define UART_LSR_OE 0x02 /* Overrun error indicator */
1290#define UART_LSR_DR 0x01 /* Receiver data ready */
1291
1292/*
1293 * These are the definitions for the Interrupt Identification Register
1294 */
1295#define UART_IIR_NO_INT 0x01 /* No interrupts pending */
1296#define UART_IIR_ID 0x06 /* Mask for the interrupt ID */
1297#define UART_IIR_MSI 0x00 /* Modem status interrupt */
1298#define UART_IIR_THRI 0x02 /* Transmitter holding register empty */
1299#define UART_IIR_RDI 0x04 /* Receiver data interrupt */
1300#define UART_IIR_RLSI 0x06 /* Receiver line status interrupt */
1301
1302/*
1303 * These are the definitions for the Interrupt Enable Register
1304 */
1305#define UART_IER_MSI 0x08 /* Enable Modem status interrupt */
1306#define UART_IER_RLSI 0x04 /* Enable receiver line status interrupt */
1307#define UART_IER_THRI 0x02 /* Enable Transmitter holding register int. */
1308#define UART_IER_RDI 0x01 /* Enable receiver data interrupt */
1309
1310/*
1311 * These are the definitions for the Modem Control Register
1312 */
1313#define UART_MCR_LOOP 0x10 /* Enable loopback test mode */
1314#define UART_MCR_OUT2 0x08 /* Out2 complement */
1315#define UART_MCR_OUT1 0x04 /* Out1 complement */
1316#define UART_MCR_RTS 0x02 /* RTS complement */
1317#define UART_MCR_DTR 0x01 /* DTR complement */
1318
1319/*
1320 * These are the definitions for the Modem Status Register
1321 */
1322#define UART_MSR_DCD 0x80 /* Data Carrier Detect */
1323#define UART_MSR_RI 0x40 /* Ring Indicator */
1324#define UART_MSR_DSR 0x20 /* Data Set Ready */
1325#define UART_MSR_CTS 0x10 /* Clear to Send */
1326#define UART_MSR_DDCD 0x08 /* Delta DCD */
1327#define UART_MSR_TERI 0x04 /* Trailing edge ring indicator */
1328#define UART_MSR_DDSR 0x02 /* Delta DSR */
1329#define UART_MSR_DCTS 0x01 /* Delta CTS */
1330#define UART_MSR_ANY_DELTA 0x0F /* Any of the delta bits! */
1331
1332/* SSIO */ 1271/* SSIO */
1333#define SSI0_STATUS 0xB1600000 1272#define SSI0_STATUS 0xB1600000
1334# define SSI_STATUS_BF (1 << 4) 1273# define SSI_STATUS_BF (1 << 4)
@@ -1720,7 +1659,7 @@ enum soc_au1200_ints {
1720#define IOPORT_RESOURCE_START 0x00001000 /* skip legacy probing */ 1659#define IOPORT_RESOURCE_START 0x00001000 /* skip legacy probing */
1721#define IOPORT_RESOURCE_END 0xffffffff 1660#define IOPORT_RESOURCE_END 0xffffffff
1722#define IOMEM_RESOURCE_START 0x10000000 1661#define IOMEM_RESOURCE_START 0x10000000
1723#define IOMEM_RESOURCE_END 0xffffffff 1662#define IOMEM_RESOURCE_END 0xfffffffffULL
1724 1663
1725#else /* Au1000 and Au1100 and Au1200 */ 1664#else /* Au1000 and Au1100 and Au1200 */
1726 1665
@@ -1728,7 +1667,7 @@ enum soc_au1200_ints {
1728#define IOPORT_RESOURCE_START 0x10000000 1667#define IOPORT_RESOURCE_START 0x10000000
1729#define IOPORT_RESOURCE_END 0xffffffff 1668#define IOPORT_RESOURCE_END 0xffffffff
1730#define IOMEM_RESOURCE_START 0x10000000 1669#define IOMEM_RESOURCE_START 0x10000000
1731#define IOMEM_RESOURCE_END 0xffffffff 1670#define IOMEM_RESOURCE_END 0xfffffffffULL
1732 1671
1733#define PCI_IO_START 0 1672#define PCI_IO_START 0
1734#define PCI_IO_END 0 1673#define PCI_IO_END 0
@@ -1739,53 +1678,4 @@ enum soc_au1200_ints {
1739 1678
1740#endif 1679#endif
1741 1680
1742#ifndef _LANGUAGE_ASSEMBLY
1743typedef volatile struct {
1744 /* 0x0000 */ u32 toytrim;
1745 /* 0x0004 */ u32 toywrite;
1746 /* 0x0008 */ u32 toymatch0;
1747 /* 0x000C */ u32 toymatch1;
1748 /* 0x0010 */ u32 toymatch2;
1749 /* 0x0014 */ u32 cntrctrl;
1750 /* 0x0018 */ u32 scratch0;
1751 /* 0x001C */ u32 scratch1;
1752 /* 0x0020 */ u32 freqctrl0;
1753 /* 0x0024 */ u32 freqctrl1;
1754 /* 0x0028 */ u32 clksrc;
1755 /* 0x002C */ u32 pinfunc;
1756 /* 0x0030 */ u32 reserved0;
1757 /* 0x0034 */ u32 wakemsk;
1758 /* 0x0038 */ u32 endian;
1759 /* 0x003C */ u32 powerctrl;
1760 /* 0x0040 */ u32 toyread;
1761 /* 0x0044 */ u32 rtctrim;
1762 /* 0x0048 */ u32 rtcwrite;
1763 /* 0x004C */ u32 rtcmatch0;
1764 /* 0x0050 */ u32 rtcmatch1;
1765 /* 0x0054 */ u32 rtcmatch2;
1766 /* 0x0058 */ u32 rtcread;
1767 /* 0x005C */ u32 wakesrc;
1768 /* 0x0060 */ u32 cpupll;
1769 /* 0x0064 */ u32 auxpll;
1770 /* 0x0068 */ u32 reserved1;
1771 /* 0x006C */ u32 reserved2;
1772 /* 0x0070 */ u32 reserved3;
1773 /* 0x0074 */ u32 reserved4;
1774 /* 0x0078 */ u32 slppwr;
1775 /* 0x007C */ u32 sleep;
1776 /* 0x0080 */ u32 reserved5[32];
1777 /* 0x0100 */ u32 trioutrd;
1778#define trioutclr trioutrd
1779 /* 0x0104 */ u32 reserved6;
1780 /* 0x0108 */ u32 outputrd;
1781#define outputset outputrd
1782 /* 0x010C */ u32 outputclr;
1783 /* 0x0110 */ u32 pinstaterd;
1784#define pininputen pinstaterd
1785} AU1X00_SYS;
1786
1787static AU1X00_SYS * const sys = (AU1X00_SYS *)SYS_BASE;
1788
1789#endif
1790
1791#endif 1681#endif
diff --git a/arch/mips/include/asm/mach-au1x00/au1100_mmc.h b/arch/mips/include/asm/mach-au1x00/au1100_mmc.h
index c35e20918490..94000a3b6f0b 100644
--- a/arch/mips/include/asm/mach-au1x00/au1100_mmc.h
+++ b/arch/mips/include/asm/mach-au1x00/au1100_mmc.h
@@ -46,6 +46,7 @@ struct au1xmmc_platform_data {
46 int(*card_readonly)(void *mmc_host); 46 int(*card_readonly)(void *mmc_host);
47 void(*set_power)(void *mmc_host, int state); 47 void(*set_power)(void *mmc_host, int state);
48 struct led_classdev *led; 48 struct led_classdev *led;
49 unsigned long mask_host_caps;
49}; 50};
50 51
51#define SD0_BASE 0xB0600000 52#define SD0_BASE 0xB0600000
@@ -205,4 +206,3 @@ struct au1xmmc_platform_data {
205 206
206 207
207#endif /* __ASM_AU1100_MMC_H */ 208#endif /* __ASM_AU1100_MMC_H */
208
diff --git a/arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h b/arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h
index d206000fbfe2..8c6b1105ce0b 100644
--- a/arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h
+++ b/arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h
@@ -339,8 +339,8 @@ u32 au1xxx_dbdma_set_devwidth(u32 chanid, int bits);
339u32 au1xxx_dbdma_ring_alloc(u32 chanid, int entries); 339u32 au1xxx_dbdma_ring_alloc(u32 chanid, int entries);
340 340
341/* Put buffers on source/destination descriptors. */ 341/* Put buffers on source/destination descriptors. */
342u32 _au1xxx_dbdma_put_source(u32 chanid, void *buf, int nbytes, u32 flags); 342u32 au1xxx_dbdma_put_source(u32 chanid, dma_addr_t buf, int nbytes, u32 flags);
343u32 _au1xxx_dbdma_put_dest(u32 chanid, void *buf, int nbytes, u32 flags); 343u32 au1xxx_dbdma_put_dest(u32 chanid, dma_addr_t buf, int nbytes, u32 flags);
344 344
345/* Get a buffer from the destination descriptor. */ 345/* Get a buffer from the destination descriptor. */
346u32 au1xxx_dbdma_get_dest(u32 chanid, void **buf, int *nbytes); 346u32 au1xxx_dbdma_get_dest(u32 chanid, void **buf, int *nbytes);
@@ -363,25 +363,6 @@ void au1xxx_dbdma_suspend(void);
363void au1xxx_dbdma_resume(void); 363void au1xxx_dbdma_resume(void);
364#endif 364#endif
365 365
366
367/*
368 * Some compatibilty macros -- needed to make changes to API
369 * without breaking existing drivers.
370 */
371#define au1xxx_dbdma_put_source(chanid, buf, nbytes) \
372 _au1xxx_dbdma_put_source(chanid, buf, nbytes, DDMA_FLAGS_IE)
373#define au1xxx_dbdma_put_source_flags(chanid, buf, nbytes, flags) \
374 _au1xxx_dbdma_put_source(chanid, buf, nbytes, flags)
375#define put_source_flags(chanid, buf, nbytes, flags) \
376 au1xxx_dbdma_put_source_flags(chanid, buf, nbytes, flags)
377
378#define au1xxx_dbdma_put_dest(chanid, buf, nbytes) \
379 _au1xxx_dbdma_put_dest(chanid, buf, nbytes, DDMA_FLAGS_IE)
380#define au1xxx_dbdma_put_dest_flags(chanid, buf, nbytes, flags) \
381 _au1xxx_dbdma_put_dest(chanid, buf, nbytes, flags)
382#define put_dest_flags(chanid, buf, nbytes, flags) \
383 au1xxx_dbdma_put_dest_flags(chanid, buf, nbytes, flags)
384
385/* 366/*
386 * Flags for the put_source/put_dest functions. 367 * Flags for the put_source/put_dest functions.
387 */ 368 */
diff --git a/arch/mips/include/asm/mach-au1x00/au1xxx_eth.h b/arch/mips/include/asm/mach-au1x00/au1xxx_eth.h
new file mode 100644
index 000000000000..bae9b758fcde
--- /dev/null
+++ b/arch/mips/include/asm/mach-au1x00/au1xxx_eth.h
@@ -0,0 +1,17 @@
1#ifndef __AU1X00_ETH_DATA_H
2#define __AU1X00_ETH_DATA_H
3
4/* Platform specific PHY configuration passed to the MAC driver */
5struct au1000_eth_platform_data {
6 int phy_static_config;
7 int phy_search_highest_addr;
8 int phy1_search_mac0;
9 int phy_addr;
10 int phy_busid;
11 int phy_irq;
12};
13
14void __init au1xxx_override_eth_cfg(unsigned port,
15 struct au1000_eth_platform_data *eth_data);
16
17#endif /* __AU1X00_ETH_DATA_H */
diff --git a/arch/mips/include/asm/mach-au1x00/gpio-au1000.h b/arch/mips/include/asm/mach-au1x00/gpio-au1000.h
index 91595fa89034..62d2f136d941 100644
--- a/arch/mips/include/asm/mach-au1x00/gpio-au1000.h
+++ b/arch/mips/include/asm/mach-au1x00/gpio-au1000.h
@@ -35,15 +35,13 @@ static inline int au1000_gpio2_to_irq(int gpio)
35 return -ENXIO; 35 return -ENXIO;
36} 36}
37 37
38#ifdef CONFIG_SOC_AU1000
39static inline int au1000_irq_to_gpio(int irq) 38static inline int au1000_irq_to_gpio(int irq)
40{ 39{
41 if ((irq >= AU1000_GPIO_0) && (irq <= AU1000_GPIO_31)) 40 if ((irq >= AU1000_GPIO0_INT) && (irq <= AU1000_GPIO31_INT))
42 return ALCHEMY_GPIO1_BASE + (irq - AU1000_GPIO_0) + 0; 41 return ALCHEMY_GPIO1_BASE + (irq - AU1000_GPIO0_INT) + 0;
43 42
44 return -ENXIO; 43 return -ENXIO;
45} 44}
46#endif
47 45
48static inline int au1500_gpio1_to_irq(int gpio) 46static inline int au1500_gpio1_to_irq(int gpio)
49{ 47{
@@ -71,27 +69,25 @@ static inline int au1500_gpio2_to_irq(int gpio)
71 return -ENXIO; 69 return -ENXIO;
72} 70}
73 71
74#ifdef CONFIG_SOC_AU1500
75static inline int au1500_irq_to_gpio(int irq) 72static inline int au1500_irq_to_gpio(int irq)
76{ 73{
77 switch (irq) { 74 switch (irq) {
78 case AU1000_GPIO_0 ... AU1000_GPIO_15: 75 case AU1500_GPIO0_INT ... AU1500_GPIO15_INT:
79 case AU1500_GPIO_20: 76 case AU1500_GPIO20_INT:
80 case AU1500_GPIO_23 ... AU1500_GPIO_28: 77 case AU1500_GPIO23_INT ... AU1500_GPIO28_INT:
81 return ALCHEMY_GPIO1_BASE + (irq - AU1000_GPIO_0) + 0; 78 return ALCHEMY_GPIO1_BASE + (irq - AU1500_GPIO0_INT) + 0;
82 case AU1500_GPIO_200 ... AU1500_GPIO_203: 79 case AU1500_GPIO200_INT ... AU1500_GPIO203_INT:
83 return ALCHEMY_GPIO2_BASE + (irq - AU1500_GPIO_200) + 0; 80 return ALCHEMY_GPIO2_BASE + (irq - AU1500_GPIO200_INT) + 0;
84 case AU1500_GPIO_204 ... AU1500_GPIO_205: 81 case AU1500_GPIO204_INT ... AU1500_GPIO205_INT:
85 return ALCHEMY_GPIO2_BASE + (irq - AU1500_GPIO_204) + 4; 82 return ALCHEMY_GPIO2_BASE + (irq - AU1500_GPIO204_INT) + 4;
86 case AU1500_GPIO_206 ... AU1500_GPIO_207: 83 case AU1500_GPIO206_INT ... AU1500_GPIO207_INT:
87 return ALCHEMY_GPIO2_BASE + (irq - AU1500_GPIO_206) + 6; 84 return ALCHEMY_GPIO2_BASE + (irq - AU1500_GPIO206_INT) + 6;
88 case AU1500_GPIO_208_215: 85 case AU1500_GPIO208_215_INT:
89 return ALCHEMY_GPIO2_BASE + 8; 86 return ALCHEMY_GPIO2_BASE + 8;
90 } 87 }
91 88
92 return -ENXIO; 89 return -ENXIO;
93} 90}
94#endif
95 91
96static inline int au1100_gpio1_to_irq(int gpio) 92static inline int au1100_gpio1_to_irq(int gpio)
97{ 93{
@@ -108,19 +104,17 @@ static inline int au1100_gpio2_to_irq(int gpio)
108 return -ENXIO; 104 return -ENXIO;
109} 105}
110 106
111#ifdef CONFIG_SOC_AU1100
112static inline int au1100_irq_to_gpio(int irq) 107static inline int au1100_irq_to_gpio(int irq)
113{ 108{
114 switch (irq) { 109 switch (irq) {
115 case AU1000_GPIO_0 ... AU1000_GPIO_31: 110 case AU1100_GPIO0_INT ... AU1100_GPIO31_INT:
116 return ALCHEMY_GPIO1_BASE + (irq - AU1000_GPIO_0) + 0; 111 return ALCHEMY_GPIO1_BASE + (irq - AU1100_GPIO0_INT) + 0;
117 case AU1100_GPIO_208_215: 112 case AU1100_GPIO208_215_INT:
118 return ALCHEMY_GPIO2_BASE + 8; 113 return ALCHEMY_GPIO2_BASE + 8;
119 } 114 }
120 115
121 return -ENXIO; 116 return -ENXIO;
122} 117}
123#endif
124 118
125static inline int au1550_gpio1_to_irq(int gpio) 119static inline int au1550_gpio1_to_irq(int gpio)
126{ 120{
@@ -149,24 +143,22 @@ static inline int au1550_gpio2_to_irq(int gpio)
149 return -ENXIO; 143 return -ENXIO;
150} 144}
151 145
152#ifdef CONFIG_SOC_AU1550
153static inline int au1550_irq_to_gpio(int irq) 146static inline int au1550_irq_to_gpio(int irq)
154{ 147{
155 switch (irq) { 148 switch (irq) {
156 case AU1000_GPIO_0 ... AU1000_GPIO_15: 149 case AU1550_GPIO0_INT ... AU1550_GPIO15_INT:
157 return ALCHEMY_GPIO1_BASE + (irq - AU1000_GPIO_0) + 0; 150 return ALCHEMY_GPIO1_BASE + (irq - AU1550_GPIO0_INT) + 0;
158 case AU1550_GPIO_200: 151 case AU1550_GPIO200_INT:
159 case AU1500_GPIO_201_205: 152 case AU1550_GPIO201_205_INT:
160 return ALCHEMY_GPIO2_BASE + (irq - AU1550_GPIO_200) + 0; 153 return ALCHEMY_GPIO2_BASE + (irq - AU1550_GPIO200_INT) + 0;
161 case AU1500_GPIO_16 ... AU1500_GPIO_28: 154 case AU1550_GPIO16_INT ... AU1550_GPIO28_INT:
162 return ALCHEMY_GPIO1_BASE + (irq - AU1500_GPIO_16) + 16; 155 return ALCHEMY_GPIO1_BASE + (irq - AU1550_GPIO16_INT) + 16;
163 case AU1500_GPIO_206 ... AU1500_GPIO_208_218: 156 case AU1550_GPIO206_INT ... AU1550_GPIO208_215_INT:
164 return ALCHEMY_GPIO2_BASE + (irq - AU1500_GPIO_206) + 6; 157 return ALCHEMY_GPIO2_BASE + (irq - AU1550_GPIO206_INT) + 6;
165 } 158 }
166 159
167 return -ENXIO; 160 return -ENXIO;
168} 161}
169#endif
170 162
171static inline int au1200_gpio1_to_irq(int gpio) 163static inline int au1200_gpio1_to_irq(int gpio)
172{ 164{
@@ -187,23 +179,21 @@ static inline int au1200_gpio2_to_irq(int gpio)
187 return -ENXIO; 179 return -ENXIO;
188} 180}
189 181
190#ifdef CONFIG_SOC_AU1200
191static inline int au1200_irq_to_gpio(int irq) 182static inline int au1200_irq_to_gpio(int irq)
192{ 183{
193 switch (irq) { 184 switch (irq) {
194 case AU1000_GPIO_0 ... AU1000_GPIO_31: 185 case AU1200_GPIO0_INT ... AU1200_GPIO31_INT:
195 return ALCHEMY_GPIO1_BASE + (irq - AU1000_GPIO_0) + 0; 186 return ALCHEMY_GPIO1_BASE + (irq - AU1200_GPIO0_INT) + 0;
196 case AU1200_GPIO_200 ... AU1200_GPIO_202: 187 case AU1200_GPIO200_INT ... AU1200_GPIO202_INT:
197 return ALCHEMY_GPIO2_BASE + (irq - AU1200_GPIO_200) + 0; 188 return ALCHEMY_GPIO2_BASE + (irq - AU1200_GPIO200_INT) + 0;
198 case AU1200_GPIO_203: 189 case AU1200_GPIO203_INT:
199 return ALCHEMY_GPIO2_BASE + 3; 190 return ALCHEMY_GPIO2_BASE + 3;
200 case AU1200_GPIO_204 ... AU1200_GPIO_208_215: 191 case AU1200_GPIO204_INT ... AU1200_GPIO208_215_INT:
201 return ALCHEMY_GPIO2_BASE + (irq - AU1200_GPIO_204) + 4; 192 return ALCHEMY_GPIO2_BASE + (irq - AU1200_GPIO204_INT) + 4;
202 } 193 }
203 194
204 return -ENXIO; 195 return -ENXIO;
205} 196}
206#endif
207 197
208/* 198/*
209 * GPIO1 block macros for common linux gpio functions. 199 * GPIO1 block macros for common linux gpio functions.
@@ -246,19 +236,19 @@ static inline int alchemy_gpio1_is_valid(int gpio)
246 236
247static inline int alchemy_gpio1_to_irq(int gpio) 237static inline int alchemy_gpio1_to_irq(int gpio)
248{ 238{
249#if defined(CONFIG_SOC_AU1000) 239 switch (alchemy_get_cputype()) {
250 return au1000_gpio1_to_irq(gpio); 240 case ALCHEMY_CPU_AU1000:
251#elif defined(CONFIG_SOC_AU1100) 241 return au1000_gpio1_to_irq(gpio);
252 return au1100_gpio1_to_irq(gpio); 242 case ALCHEMY_CPU_AU1100:
253#elif defined(CONFIG_SOC_AU1500) 243 return au1100_gpio1_to_irq(gpio);
254 return au1500_gpio1_to_irq(gpio); 244 case ALCHEMY_CPU_AU1500:
255#elif defined(CONFIG_SOC_AU1550) 245 return au1500_gpio1_to_irq(gpio);
256 return au1550_gpio1_to_irq(gpio); 246 case ALCHEMY_CPU_AU1550:
257#elif defined(CONFIG_SOC_AU1200) 247 return au1550_gpio1_to_irq(gpio);
258 return au1200_gpio1_to_irq(gpio); 248 case ALCHEMY_CPU_AU1200:
259#else 249 return au1200_gpio1_to_irq(gpio);
250 }
260 return -ENXIO; 251 return -ENXIO;
261#endif
262} 252}
263 253
264/* 254/*
@@ -316,19 +306,19 @@ static inline int alchemy_gpio2_is_valid(int gpio)
316 306
317static inline int alchemy_gpio2_to_irq(int gpio) 307static inline int alchemy_gpio2_to_irq(int gpio)
318{ 308{
319#if defined(CONFIG_SOC_AU1000) 309 switch (alchemy_get_cputype()) {
320 return au1000_gpio2_to_irq(gpio); 310 case ALCHEMY_CPU_AU1000:
321#elif defined(CONFIG_SOC_AU1100) 311 return au1000_gpio2_to_irq(gpio);
322 return au1100_gpio2_to_irq(gpio); 312 case ALCHEMY_CPU_AU1100:
323#elif defined(CONFIG_SOC_AU1500) 313 return au1100_gpio2_to_irq(gpio);
324 return au1500_gpio2_to_irq(gpio); 314 case ALCHEMY_CPU_AU1500:
325#elif defined(CONFIG_SOC_AU1550) 315 return au1500_gpio2_to_irq(gpio);
326 return au1550_gpio2_to_irq(gpio); 316 case ALCHEMY_CPU_AU1550:
327#elif defined(CONFIG_SOC_AU1200) 317 return au1550_gpio2_to_irq(gpio);
328 return au1200_gpio2_to_irq(gpio); 318 case ALCHEMY_CPU_AU1200:
329#else 319 return au1200_gpio2_to_irq(gpio);
320 }
330 return -ENXIO; 321 return -ENXIO;
331#endif
332} 322}
333 323
334/**********************************************************************/ 324/**********************************************************************/
@@ -384,10 +374,13 @@ static inline void alchemy_gpio2_enable_int(int gpio2)
384 374
385 gpio2 -= ALCHEMY_GPIO2_BASE; 375 gpio2 -= ALCHEMY_GPIO2_BASE;
386 376
387#if defined(CONFIG_SOC_AU1100) || defined(CONFIG_SOC_AU1500)
388 /* Au1100/Au1500 have GPIO208-215 enable bits at 0..7 */ 377 /* Au1100/Au1500 have GPIO208-215 enable bits at 0..7 */
389 gpio2 -= 8; 378 switch (alchemy_get_cputype()) {
390#endif 379 case ALCHEMY_CPU_AU1100:
380 case ALCHEMY_CPU_AU1500:
381 gpio2 -= 8;
382 }
383
391 local_irq_save(flags); 384 local_irq_save(flags);
392 __alchemy_gpio2_mod_int(gpio2, 1); 385 __alchemy_gpio2_mod_int(gpio2, 1);
393 local_irq_restore(flags); 386 local_irq_restore(flags);
@@ -405,10 +398,13 @@ static inline void alchemy_gpio2_disable_int(int gpio2)
405 398
406 gpio2 -= ALCHEMY_GPIO2_BASE; 399 gpio2 -= ALCHEMY_GPIO2_BASE;
407 400
408#if defined(CONFIG_SOC_AU1100) || defined(CONFIG_SOC_AU1500)
409 /* Au1100/Au1500 have GPIO208-215 enable bits at 0..7 */ 401 /* Au1100/Au1500 have GPIO208-215 enable bits at 0..7 */
410 gpio2 -= 8; 402 switch (alchemy_get_cputype()) {
411#endif 403 case ALCHEMY_CPU_AU1100:
404 case ALCHEMY_CPU_AU1500:
405 gpio2 -= 8;
406 }
407
412 local_irq_save(flags); 408 local_irq_save(flags);
413 __alchemy_gpio2_mod_int(gpio2, 0); 409 __alchemy_gpio2_mod_int(gpio2, 0);
414 local_irq_restore(flags); 410 local_irq_restore(flags);
@@ -494,19 +490,19 @@ static inline int alchemy_gpio_to_irq(int gpio)
494 490
495static inline int alchemy_irq_to_gpio(int irq) 491static inline int alchemy_irq_to_gpio(int irq)
496{ 492{
497#if defined(CONFIG_SOC_AU1000) 493 switch (alchemy_get_cputype()) {
498 return au1000_irq_to_gpio(irq); 494 case ALCHEMY_CPU_AU1000:
499#elif defined(CONFIG_SOC_AU1100) 495 return au1000_irq_to_gpio(irq);
500 return au1100_irq_to_gpio(irq); 496 case ALCHEMY_CPU_AU1100:
501#elif defined(CONFIG_SOC_AU1500) 497 return au1100_irq_to_gpio(irq);
502 return au1500_irq_to_gpio(irq); 498 case ALCHEMY_CPU_AU1500:
503#elif defined(CONFIG_SOC_AU1550) 499 return au1500_irq_to_gpio(irq);
504 return au1550_irq_to_gpio(irq); 500 case ALCHEMY_CPU_AU1550:
505#elif defined(CONFIG_SOC_AU1200) 501 return au1550_irq_to_gpio(irq);
506 return au1200_irq_to_gpio(irq); 502 case ALCHEMY_CPU_AU1200:
507#else 503 return au1200_irq_to_gpio(irq);
504 }
508 return -ENXIO; 505 return -ENXIO;
509#endif
510} 506}
511 507
512/**********************************************************************/ 508/**********************************************************************/
diff --git a/arch/mips/include/asm/mach-au1x00/gpio.h b/arch/mips/include/asm/mach-au1x00/gpio.h
index f9b7d41c659a..c3f60cdc3203 100644
--- a/arch/mips/include/asm/mach-au1x00/gpio.h
+++ b/arch/mips/include/asm/mach-au1x00/gpio.h
@@ -1,7 +1,7 @@
1#ifndef _ALCHEMY_GPIO_H_ 1#ifndef _ALCHEMY_GPIO_H_
2#define _ALCHEMY_GPIO_H_ 2#define _ALCHEMY_GPIO_H_
3 3
4#if defined(CONFIG_ALCHEMY_GPIO_AU1000) 4#if defined(CONFIG_ALCHEMY_GPIOINT_AU1000)
5 5
6#include <asm/mach-au1x00/gpio-au1000.h> 6#include <asm/mach-au1x00/gpio-au1000.h>
7 7
diff --git a/arch/mips/include/asm/mach-au1x00/ioremap.h b/arch/mips/include/asm/mach-au1x00/ioremap.h
index 364cea2dc71f..75a94ad3ac91 100644
--- a/arch/mips/include/asm/mach-au1x00/ioremap.h
+++ b/arch/mips/include/asm/mach-au1x00/ioremap.h
@@ -11,7 +11,7 @@
11 11
12#include <linux/types.h> 12#include <linux/types.h>
13 13
14#ifdef CONFIG_64BIT_PHYS_ADDR 14#if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_PCI)
15extern phys_t __fixup_bigphys_addr(phys_t, phys_t); 15extern phys_t __fixup_bigphys_addr(phys_t, phys_t);
16#else 16#else
17static inline phys_t __fixup_bigphys_addr(phys_t phys_addr, phys_t size) 17static inline phys_t __fixup_bigphys_addr(phys_t phys_addr, phys_t size)
diff --git a/arch/mips/include/asm/mach-au1x00/prom.h b/arch/mips/include/asm/mach-au1x00/prom.h
index e38715577c51..4c0e09cf1735 100644
--- a/arch/mips/include/asm/mach-au1x00/prom.h
+++ b/arch/mips/include/asm/mach-au1x00/prom.h
@@ -6,7 +6,6 @@ extern char **prom_argv;
6extern char **prom_envp; 6extern char **prom_envp;
7 7
8extern void prom_init_cmdline(void); 8extern void prom_init_cmdline(void);
9extern char *prom_getcmdline(void);
10extern char *prom_getenv(char *envname); 9extern char *prom_getenv(char *envname);
11extern int prom_get_ethernet_addr(char *ethernet_addr); 10extern int prom_get_ethernet_addr(char *ethernet_addr);
12 11
diff --git a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
index ed4ccec87dd4..85fd27509aac 100644
--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
@@ -770,4 +770,3 @@
770#define DMIPSPLLCFG_N2_MASK (0x7 << DMIPSPLLCFG_N2_SHIFT) 770#define DMIPSPLLCFG_N2_MASK (0x7 << DMIPSPLLCFG_N2_SHIFT)
771 771
772#endif /* BCM63XX_REGS_H_ */ 772#endif /* BCM63XX_REGS_H_ */
773
diff --git a/arch/mips/include/asm/mach-cavium-octeon/cpu-feature-overrides.h b/arch/mips/include/asm/mach-cavium-octeon/cpu-feature-overrides.h
index 425e708d4fb9..bbf054042395 100644
--- a/arch/mips/include/asm/mach-cavium-octeon/cpu-feature-overrides.h
+++ b/arch/mips/include/asm/mach-cavium-octeon/cpu-feature-overrides.h
@@ -58,6 +58,9 @@
58#define cpu_has_vint 0 58#define cpu_has_vint 0
59#define cpu_has_veic 0 59#define cpu_has_veic 0
60#define cpu_hwrena_impl_bits 0xc0000000 60#define cpu_hwrena_impl_bits 0xc0000000
61
62#define kernel_uses_smartmips_rixi (cpu_data[0].cputype == CPU_CAVIUM_OCTEON_PLUS)
63
61#define ARCH_HAS_READ_CURRENT_TIMER 1 64#define ARCH_HAS_READ_CURRENT_TIMER 1
62#define ARCH_HAS_IRQ_PER_CPU 1 65#define ARCH_HAS_IRQ_PER_CPU 1
63#define ARCH_HAS_SPINLOCK_PREFETCH 1 66#define ARCH_HAS_SPINLOCK_PREFETCH 1
diff --git a/arch/mips/include/asm/mach-db1x00/bcsr.h b/arch/mips/include/asm/mach-db1x00/bcsr.h
new file mode 100644
index 000000000000..618d2de02ed3
--- /dev/null
+++ b/arch/mips/include/asm/mach-db1x00/bcsr.h
@@ -0,0 +1,238 @@
1/*
2 * bcsr.h -- Db1xxx/Pb1xxx Devboard CPLD registers ("BCSR") abstraction.
3 *
4 * All Alchemy development boards (except, of course, the weird PB1000)
5 * have a few registers in a CPLD with standardised layout; they mostly
6 * only differ in base address and bit meanings in the RESETS and BOARD
7 * registers.
8 *
9 * All data taken from the official AMD board documentation sheets.
10 */
11
12#ifndef _DB1XXX_BCSR_H_
13#define _DB1XXX_BCSR_H_
14
15
16/* BCSR base addresses on various boards. BCSR base 2 refers to the
17 * physical address of the first HEXLEDS register, which is usually
18 * a variable offset from the WHOAMI register.
19 */
20
21/* DB1000, DB1100, DB1500, PB1100, PB1500 */
22#define DB1000_BCSR_PHYS_ADDR 0x0E000000
23#define DB1000_BCSR_HEXLED_OFS 0x01000000
24
25#define DB1550_BCSR_PHYS_ADDR 0x0F000000
26#define DB1550_BCSR_HEXLED_OFS 0x00400000
27
28#define PB1550_BCSR_PHYS_ADDR 0x0F000000
29#define PB1550_BCSR_HEXLED_OFS 0x00800000
30
31#define DB1200_BCSR_PHYS_ADDR 0x19800000
32#define DB1200_BCSR_HEXLED_OFS 0x00400000
33
34#define PB1200_BCSR_PHYS_ADDR 0x0D800000
35#define PB1200_BCSR_HEXLED_OFS 0x00400000
36
37
38enum bcsr_id {
39 /* BCSR base 1 */
40 BCSR_WHOAMI = 0,
41 BCSR_STATUS,
42 BCSR_SWITCHES,
43 BCSR_RESETS,
44 BCSR_PCMCIA,
45 BCSR_BOARD,
46 BCSR_LEDS,
47 BCSR_SYSTEM,
48 /* Au1200/1300 based boards */
49 BCSR_INTCLR,
50 BCSR_INTSET,
51 BCSR_MASKCLR,
52 BCSR_MASKSET,
53 BCSR_SIGSTAT,
54 BCSR_INTSTAT,
55
56 /* BCSR base 2 */
57 BCSR_HEXLEDS,
58 BCSR_RSVD1,
59 BCSR_HEXCLEAR,
60
61 BCSR_CNT,
62};
63
64/* register offsets, valid for all Db1xxx/Pb1xxx boards */
65#define BCSR_REG_WHOAMI 0x00
66#define BCSR_REG_STATUS 0x04
67#define BCSR_REG_SWITCHES 0x08
68#define BCSR_REG_RESETS 0x0c
69#define BCSR_REG_PCMCIA 0x10
70#define BCSR_REG_BOARD 0x14
71#define BCSR_REG_LEDS 0x18
72#define BCSR_REG_SYSTEM 0x1c
73/* Au1200/Au1300 based boards: CPLD IRQ muxer */
74#define BCSR_REG_INTCLR 0x20
75#define BCSR_REG_INTSET 0x24
76#define BCSR_REG_MASKCLR 0x28
77#define BCSR_REG_MASKSET 0x2c
78#define BCSR_REG_SIGSTAT 0x30
79#define BCSR_REG_INTSTAT 0x34
80
81/* hexled control, offset from BCSR base 2 */
82#define BCSR_REG_HEXLEDS 0x00
83#define BCSR_REG_HEXCLEAR 0x08
84
85/*
86 * Register Bits and Pieces.
87 */
88#define BCSR_WHOAMI_DCID(x) ((x) & 0xf)
89#define BCSR_WHOAMI_CPLD(x) (((x) >> 4) & 0xf)
90#define BCSR_WHOAMI_BOARD(x) (((x) >> 8) & 0xf)
91
92/* register "WHOAMI" bits 11:8 identify the board */
93enum bcsr_whoami_boards {
94 BCSR_WHOAMI_PB1500 = 1,
95 BCSR_WHOAMI_PB1500R2,
96 BCSR_WHOAMI_PB1100,
97 BCSR_WHOAMI_DB1000,
98 BCSR_WHOAMI_DB1100,
99 BCSR_WHOAMI_DB1500,
100 BCSR_WHOAMI_DB1550,
101 BCSR_WHOAMI_PB1550_DDR,
102 BCSR_WHOAMI_PB1550 = BCSR_WHOAMI_PB1550_DDR,
103 BCSR_WHOAMI_PB1550_SDR,
104 BCSR_WHOAMI_PB1200_DDR1,
105 BCSR_WHOAMI_PB1200 = BCSR_WHOAMI_PB1200_DDR1,
106 BCSR_WHOAMI_PB1200_DDR2,
107 BCSR_WHOAMI_DB1200,
108};
109
110/* STATUS reg. Unless otherwise noted, they're valid on all boards.
111 * PB1200 = DB1200.
112 */
113#define BCSR_STATUS_PC0VS 0x0003
114#define BCSR_STATUS_PC1VS 0x000C
115#define BCSR_STATUS_PC0FI 0x0010
116#define BCSR_STATUS_PC1FI 0x0020
117#define BCSR_STATUS_PB1550_SWAPBOOT 0x0040
118#define BCSR_STATUS_SRAMWIDTH 0x0080
119#define BCSR_STATUS_FLASHBUSY 0x0100
120#define BCSR_STATUS_ROMBUSY 0x0400
121#define BCSR_STATUS_SD0WP 0x0400 /* DB1200 */
122#define BCSR_STATUS_SD1WP 0x0800
123#define BCSR_STATUS_USBOTGID 0x0800 /* PB/DB1550 */
124#define BCSR_STATUS_DB1000_SWAPBOOT 0x2000
125#define BCSR_STATUS_DB1200_SWAPBOOT 0x0040 /* DB1200 */
126#define BCSR_STATUS_IDECBLID 0x0200 /* DB1200 */
127#define BCSR_STATUS_DB1200_U0RXD 0x1000 /* DB1200 */
128#define BCSR_STATUS_DB1200_U1RXD 0x2000 /* DB1200 */
129#define BCSR_STATUS_FLASHDEN 0xC000
130#define BCSR_STATUS_DB1550_U0RXD 0x1000 /* DB1550 */
131#define BCSR_STATUS_DB1550_U3RXD 0x2000 /* DB1550 */
132#define BCSR_STATUS_PB1550_U0RXD 0x1000 /* PB1550 */
133#define BCSR_STATUS_PB1550_U1RXD 0x2000 /* PB1550 */
134#define BCSR_STATUS_PB1550_U3RXD 0x8000 /* PB1550 */
135
136
137/* DB/PB1000,1100,1500,1550 */
138#define BCSR_RESETS_PHY0 0x0001
139#define BCSR_RESETS_PHY1 0x0002
140#define BCSR_RESETS_DC 0x0004
141#define BCSR_RESETS_FIR_SEL 0x2000
142#define BCSR_RESETS_IRDA_MODE_MASK 0xC000
143#define BCSR_RESETS_IRDA_MODE_FULL 0x0000
144#define BCSR_RESETS_PB1550_WSCFSM 0x2000
145#define BCSR_RESETS_IRDA_MODE_OFF 0x4000
146#define BCSR_RESETS_IRDA_MODE_2_3 0x8000
147#define BCSR_RESETS_IRDA_MODE_1_3 0xC000
148#define BCSR_RESETS_DMAREQ 0x8000 /* PB1550 */
149
150#define BCSR_BOARD_PCIM66EN 0x0001
151#define BCSR_BOARD_SD0PWR 0x0040
152#define BCSR_BOARD_SD1PWR 0x0080
153#define BCSR_BOARD_PCIM33 0x0100
154#define BCSR_BOARD_PCIEXTARB 0x0200
155#define BCSR_BOARD_GPIO200RST 0x0400
156#define BCSR_BOARD_PCICLKOUT 0x0800
157#define BCSR_BOARD_PCICFG 0x1000
158#define BCSR_BOARD_SPISEL 0x4000 /* PB/DB1550 */
159#define BCSR_BOARD_SD0WP 0x4000 /* DB1100 */
160#define BCSR_BOARD_SD1WP 0x8000 /* DB1100 */
161
162
163/* DB/PB1200 */
164#define BCSR_RESETS_ETH 0x0001
165#define BCSR_RESETS_CAMERA 0x0002
166#define BCSR_RESETS_DC 0x0004
167#define BCSR_RESETS_IDE 0x0008
168#define BCSR_RESETS_TV 0x0010 /* DB1200 */
169/* Not resets but in the same register */
170#define BCSR_RESETS_PWMR1MUX 0x0800 /* DB1200 */
171#define BCSR_RESETS_PB1200_WSCFSM 0x0800 /* PB1200 */
172#define BCSR_RESETS_PSC0MUX 0x1000
173#define BCSR_RESETS_PSC1MUX 0x2000
174#define BCSR_RESETS_SPISEL 0x4000
175#define BCSR_RESETS_SD1MUX 0x8000 /* PB1200 */
176
177#define BCSR_BOARD_LCDVEE 0x0001
178#define BCSR_BOARD_LCDVDD 0x0002
179#define BCSR_BOARD_LCDBL 0x0004
180#define BCSR_BOARD_CAMSNAP 0x0010
181#define BCSR_BOARD_CAMPWR 0x0020
182#define BCSR_BOARD_SD0PWR 0x0040
183
184
185#define BCSR_SWITCHES_DIP 0x00FF
186#define BCSR_SWITCHES_DIP_1 0x0080
187#define BCSR_SWITCHES_DIP_2 0x0040
188#define BCSR_SWITCHES_DIP_3 0x0020
189#define BCSR_SWITCHES_DIP_4 0x0010
190#define BCSR_SWITCHES_DIP_5 0x0008
191#define BCSR_SWITCHES_DIP_6 0x0004
192#define BCSR_SWITCHES_DIP_7 0x0002
193#define BCSR_SWITCHES_DIP_8 0x0001
194#define BCSR_SWITCHES_ROTARY 0x0F00
195
196
197#define BCSR_PCMCIA_PC0VPP 0x0003
198#define BCSR_PCMCIA_PC0VCC 0x000C
199#define BCSR_PCMCIA_PC0DRVEN 0x0010
200#define BCSR_PCMCIA_PC0RST 0x0080
201#define BCSR_PCMCIA_PC1VPP 0x0300
202#define BCSR_PCMCIA_PC1VCC 0x0C00
203#define BCSR_PCMCIA_PC1DRVEN 0x1000
204#define BCSR_PCMCIA_PC1RST 0x8000
205
206
207#define BCSR_LEDS_DECIMALS 0x0003
208#define BCSR_LEDS_LED0 0x0100
209#define BCSR_LEDS_LED1 0x0200
210#define BCSR_LEDS_LED2 0x0400
211#define BCSR_LEDS_LED3 0x0800
212
213
214#define BCSR_SYSTEM_RESET 0x8000 /* clear to reset */
215#define BCSR_SYSTEM_PWROFF 0x4000 /* set to power off */
216#define BCSR_SYSTEM_VDDI 0x001F /* PB1xxx boards */
217
218
219
220
221/* initialize BCSR for a board. Provide the PHYSICAL addresses of both
222 * BCSR spaces.
223 */
224void __init bcsr_init(unsigned long bcsr1_phys, unsigned long bcsr2_phys);
225
226/* read a board register */
227unsigned short bcsr_read(enum bcsr_id reg);
228
229/* write to a board register */
230void bcsr_write(enum bcsr_id reg, unsigned short val);
231
232/* modify a register. clear bits set in 'clr', set bits set in 'set' */
233void bcsr_mod(enum bcsr_id reg, unsigned short clr, unsigned short set);
234
235/* install CPLD IRQ demuxer (DB1200/PB1200) */
236void __init bcsr_init_irq(int csc_start, int csc_end, int hook_irq);
237
238#endif
diff --git a/arch/mips/include/asm/mach-db1x00/db1200.h b/arch/mips/include/asm/mach-db1x00/db1200.h
index 27f26102b1bb..3404248f5094 100644
--- a/arch/mips/include/asm/mach-db1x00/db1200.h
+++ b/arch/mips/include/asm/mach-db1x00/db1200.h
@@ -25,133 +25,9 @@
25#define __ASM_DB1200_H 25#define __ASM_DB1200_H
26 26
27#include <linux/types.h> 27#include <linux/types.h>
28#include <asm/mach-au1x00/au1000.h>
28#include <asm/mach-au1x00/au1xxx_psc.h> 29#include <asm/mach-au1x00/au1xxx_psc.h>
29 30
30#define DBDMA_AC97_TX_CHAN DSCR_CMD0_PSC1_TX
31#define DBDMA_AC97_RX_CHAN DSCR_CMD0_PSC1_RX
32#define DBDMA_I2S_TX_CHAN DSCR_CMD0_PSC1_TX
33#define DBDMA_I2S_RX_CHAN DSCR_CMD0_PSC1_RX
34
35/*
36 * SPI and SMB are muxed on the DBAu1200 board.
37 * Refer to board documentation.
38 */
39#define SPI_PSC_BASE PSC0_BASE_ADDR
40#define SMBUS_PSC_BASE PSC0_BASE_ADDR
41/*
42 * AC'97 and I2S are muxed on the DBAu1200 board.
43 * Refer to board documentation.
44 */
45#define AC97_PSC_BASE PSC1_BASE_ADDR
46#define I2S_PSC_BASE PSC1_BASE_ADDR
47
48#define BCSR_KSEG1_ADDR 0xB9800000
49
50typedef volatile struct
51{
52 /*00*/ u16 whoami;
53 u16 reserved0;
54 /*04*/ u16 status;
55 u16 reserved1;
56 /*08*/ u16 switches;
57 u16 reserved2;
58 /*0C*/ u16 resets;
59 u16 reserved3;
60
61 /*10*/ u16 pcmcia;
62 u16 reserved4;
63 /*14*/ u16 board;
64 u16 reserved5;
65 /*18*/ u16 disk_leds;
66 u16 reserved6;
67 /*1C*/ u16 system;
68 u16 reserved7;
69
70 /*20*/ u16 intclr;
71 u16 reserved8;
72 /*24*/ u16 intset;
73 u16 reserved9;
74 /*28*/ u16 intclr_mask;
75 u16 reserved10;
76 /*2C*/ u16 intset_mask;
77 u16 reserved11;
78
79 /*30*/ u16 sig_status;
80 u16 reserved12;
81 /*34*/ u16 int_status;
82 u16 reserved13;
83 /*38*/ u16 reserved14;
84 u16 reserved15;
85 /*3C*/ u16 reserved16;
86 u16 reserved17;
87
88} BCSR;
89
90static BCSR * const bcsr = (BCSR *)BCSR_KSEG1_ADDR;
91
92/*
93 * Register bit definitions for the BCSRs
94 */
95#define BCSR_WHOAMI_DCID 0x000F
96#define BCSR_WHOAMI_CPLD 0x00F0
97#define BCSR_WHOAMI_BOARD 0x0F00
98
99#define BCSR_STATUS_PCMCIA0VS 0x0003
100#define BCSR_STATUS_PCMCIA1VS 0x000C
101#define BCSR_STATUS_SWAPBOOT 0x0040
102#define BCSR_STATUS_FLASHBUSY 0x0100
103#define BCSR_STATUS_IDECBLID 0x0200
104#define BCSR_STATUS_SD0WP 0x0400
105#define BCSR_STATUS_U0RXD 0x1000
106#define BCSR_STATUS_U1RXD 0x2000
107
108#define BCSR_SWITCHES_OCTAL 0x00FF
109#define BCSR_SWITCHES_DIP_1 0x0080
110#define BCSR_SWITCHES_DIP_2 0x0040
111#define BCSR_SWITCHES_DIP_3 0x0020
112#define BCSR_SWITCHES_DIP_4 0x0010
113#define BCSR_SWITCHES_DIP_5 0x0008
114#define BCSR_SWITCHES_DIP_6 0x0004
115#define BCSR_SWITCHES_DIP_7 0x0002
116#define BCSR_SWITCHES_DIP_8 0x0001
117#define BCSR_SWITCHES_ROTARY 0x0F00
118
119#define BCSR_RESETS_ETH 0x0001
120#define BCSR_RESETS_CAMERA 0x0002
121#define BCSR_RESETS_DC 0x0004
122#define BCSR_RESETS_IDE 0x0008
123#define BCSR_RESETS_TV 0x0010
124/* Not resets but in the same register */
125#define BCSR_RESETS_PWMR1MUX 0x0800
126#define BCSR_RESETS_PCS0MUX 0x1000
127#define BCSR_RESETS_PCS1MUX 0x2000
128#define BCSR_RESETS_SPISEL 0x4000
129
130#define BCSR_PCMCIA_PC0VPP 0x0003
131#define BCSR_PCMCIA_PC0VCC 0x000C
132#define BCSR_PCMCIA_PC0DRVEN 0x0010
133#define BCSR_PCMCIA_PC0RST 0x0080
134#define BCSR_PCMCIA_PC1VPP 0x0300
135#define BCSR_PCMCIA_PC1VCC 0x0C00
136#define BCSR_PCMCIA_PC1DRVEN 0x1000
137#define BCSR_PCMCIA_PC1RST 0x8000
138
139#define BCSR_BOARD_LCDVEE 0x0001
140#define BCSR_BOARD_LCDVDD 0x0002
141#define BCSR_BOARD_LCDBL 0x0004
142#define BCSR_BOARD_CAMSNAP 0x0010
143#define BCSR_BOARD_CAMPWR 0x0020
144#define BCSR_BOARD_SD0PWR 0x0040
145
146#define BCSR_LEDS_DECIMALS 0x0003
147#define BCSR_LEDS_LED0 0x0100
148#define BCSR_LEDS_LED1 0x0200
149#define BCSR_LEDS_LED2 0x0400
150#define BCSR_LEDS_LED3 0x0800
151
152#define BCSR_SYSTEM_POWEROFF 0x4000
153#define BCSR_SYSTEM_RESET 0x8000
154
155/* Bit positions for the different interrupt sources */ 31/* Bit positions for the different interrupt sources */
156#define BCSR_INT_IDE 0x0001 32#define BCSR_INT_IDE 0x0001
157#define BCSR_INT_ETH 0x0002 33#define BCSR_INT_ETH 0x0002
@@ -168,17 +44,15 @@ static BCSR * const bcsr = (BCSR *)BCSR_KSEG1_ADDR;
168#define BCSR_INT_SD0INSERT 0x1000 44#define BCSR_INT_SD0INSERT 0x1000
169#define BCSR_INT_SD0EJECT 0x2000 45#define BCSR_INT_SD0EJECT 0x2000
170 46
171#define SMC91C111_PHYS_ADDR 0x19000300
172#define SMC91C111_INT DB1200_ETH_INT
173
174#define IDE_PHYS_ADDR 0x18800000 47#define IDE_PHYS_ADDR 0x18800000
175#define IDE_REG_SHIFT 5 48#define IDE_REG_SHIFT 5
176#define IDE_PHYS_LEN (16 << IDE_REG_SHIFT)
177#define IDE_INT DB1200_IDE_INT
178#define IDE_DDMA_REQ DSCR_CMD0_DMA_REQ1 49#define IDE_DDMA_REQ DSCR_CMD0_DMA_REQ1
179#define IDE_RQSIZE 128 50#define IDE_RQSIZE 128
180 51
181#define NAND_PHYS_ADDR 0x20000000 52#define DB1200_IDE_PHYS_ADDR IDE_PHYS_ADDR
53#define DB1200_IDE_PHYS_LEN (16 << IDE_REG_SHIFT)
54#define DB1200_ETH_PHYS_ADDR 0x19000300
55#define DB1200_NAND_PHYS_ADDR 0x20000000
182 56
183/* 57/*
184 * External Interrupts for DBAu1200 as of 8/6/2004. 58 * External Interrupts for DBAu1200 as of 8/6/2004.
@@ -188,7 +62,7 @@ static BCSR * const bcsr = (BCSR *)BCSR_KSEG1_ADDR;
188 * Example: IDE bis pos is = 64 - 64 62 * Example: IDE bis pos is = 64 - 64
189 * ETH bit pos is = 65 - 64 63 * ETH bit pos is = 65 - 64
190 */ 64 */
191enum external_pb1200_ints { 65enum external_db1200_ints {
192 DB1200_INT_BEGIN = AU1000_MAX_INTR + 1, 66 DB1200_INT_BEGIN = AU1000_MAX_INTR + 1,
193 67
194 DB1200_IDE_INT = DB1200_INT_BEGIN, 68 DB1200_IDE_INT = DB1200_INT_BEGIN,
@@ -209,22 +83,4 @@ enum external_pb1200_ints {
209 DB1200_INT_END = DB1200_INT_BEGIN + 15, 83 DB1200_INT_END = DB1200_INT_BEGIN + 15,
210}; 84};
211 85
212
213/*
214 * DBAu1200 specific PCMCIA defines for drivers/pcmcia/au1000_db1x00.c
215 */
216#define PCMCIA_MAX_SOCK 1
217#define PCMCIA_NUM_SOCKS (PCMCIA_MAX_SOCK + 1)
218
219/* VPP/VCC */
220#define SET_VCC_VPP(VCC, VPP, SLOT) \
221 ((((VCC) << 2) | ((VPP) << 0)) << ((SLOT) * 8))
222
223#define BOARD_PC0_INT DB1200_PC0_INT
224#define BOARD_PC1_INT DB1200_PC1_INT
225#define BOARD_CARD_INSERTED(SOCKET) bcsr->sig_status & (1 << (8 + (2 * SOCKET)))
226
227/* NAND chip select */
228#define NAND_CS 1
229
230#endif /* __ASM_DB1200_H */ 86#endif /* __ASM_DB1200_H */
diff --git a/arch/mips/include/asm/mach-db1x00/db1x00.h b/arch/mips/include/asm/mach-db1x00/db1x00.h
index 1a515b8c870f..a919dac525a1 100644
--- a/arch/mips/include/asm/mach-db1x00/db1x00.h
+++ b/arch/mips/include/asm/mach-db1x00/db1x00.h
@@ -41,111 +41,11 @@
41#define SMBUS_PSC_BASE PSC2_BASE_ADDR 41#define SMBUS_PSC_BASE PSC2_BASE_ADDR
42#define I2S_PSC_BASE PSC3_BASE_ADDR 42#define I2S_PSC_BASE PSC3_BASE_ADDR
43 43
44#define BCSR_KSEG1_ADDR 0xAF000000
45#define NAND_PHYS_ADDR 0x20000000 44#define NAND_PHYS_ADDR 0x20000000
46 45
47#else
48#define BCSR_KSEG1_ADDR 0xAE000000
49#endif 46#endif
50 47
51/* 48/*
52 * Overlay data structure of the DBAu1x00 board registers.
53 * Registers are located at physical 0E0000xx, KSEG1 0xAE0000xx.
54 */
55typedef volatile struct
56{
57 /*00*/ unsigned short whoami;
58 unsigned short reserved0;
59 /*04*/ unsigned short status;
60 unsigned short reserved1;
61 /*08*/ unsigned short switches;
62 unsigned short reserved2;
63 /*0C*/ unsigned short resets;
64 unsigned short reserved3;
65 /*10*/ unsigned short pcmcia;
66 unsigned short reserved4;
67 /*14*/ unsigned short specific;
68 unsigned short reserved5;
69 /*18*/ unsigned short leds;
70 unsigned short reserved6;
71 /*1C*/ unsigned short swreset;
72 unsigned short reserved7;
73
74} BCSR;
75
76
77/*
78 * Register/mask bit definitions for the BCSRs
79 */
80#define BCSR_WHOAMI_DCID 0x000F
81#define BCSR_WHOAMI_CPLD 0x00F0
82#define BCSR_WHOAMI_BOARD 0x0F00
83
84#define BCSR_STATUS_PC0VS 0x0003
85#define BCSR_STATUS_PC1VS 0x000C
86#define BCSR_STATUS_PC0FI 0x0010
87#define BCSR_STATUS_PC1FI 0x0020
88#define BCSR_STATUS_FLASHBUSY 0x0100
89#define BCSR_STATUS_ROMBUSY 0x0400
90#define BCSR_STATUS_SWAPBOOT 0x2000
91#define BCSR_STATUS_FLASHDEN 0xC000
92
93#define BCSR_SWITCHES_DIP 0x00FF
94#define BCSR_SWITCHES_DIP_1 0x0080
95#define BCSR_SWITCHES_DIP_2 0x0040
96#define BCSR_SWITCHES_DIP_3 0x0020
97#define BCSR_SWITCHES_DIP_4 0x0010
98#define BCSR_SWITCHES_DIP_5 0x0008
99#define BCSR_SWITCHES_DIP_6 0x0004
100#define BCSR_SWITCHES_DIP_7 0x0002
101#define BCSR_SWITCHES_DIP_8 0x0001
102#define BCSR_SWITCHES_ROTARY 0x0F00
103
104#define BCSR_RESETS_PHY0 0x0001
105#define BCSR_RESETS_PHY1 0x0002
106#define BCSR_RESETS_DC 0x0004
107#define BCSR_RESETS_FIR_SEL 0x2000
108#define BCSR_RESETS_IRDA_MODE_MASK 0xC000
109#define BCSR_RESETS_IRDA_MODE_FULL 0x0000
110#define BCSR_RESETS_IRDA_MODE_OFF 0x4000
111#define BCSR_RESETS_IRDA_MODE_2_3 0x8000
112#define BCSR_RESETS_IRDA_MODE_1_3 0xC000
113
114#define BCSR_PCMCIA_PC0VPP 0x0003
115#define BCSR_PCMCIA_PC0VCC 0x000C
116#define BCSR_PCMCIA_PC0DRVEN 0x0010
117#define BCSR_PCMCIA_PC0RST 0x0080
118#define BCSR_PCMCIA_PC1VPP 0x0300
119#define BCSR_PCMCIA_PC1VCC 0x0C00
120#define BCSR_PCMCIA_PC1DRVEN 0x1000
121#define BCSR_PCMCIA_PC1RST 0x8000
122
123#define BCSR_BOARD_PCIM66EN 0x0001
124#define BCSR_BOARD_SD0_PWR 0x0040
125#define BCSR_BOARD_SD1_PWR 0x0080
126#define BCSR_BOARD_PCIM33 0x0100
127#define BCSR_BOARD_GPIO200RST 0x0400
128#define BCSR_BOARD_PCICFG 0x1000
129#define BCSR_BOARD_SD0_WP 0x4000
130#define BCSR_BOARD_SD1_WP 0x8000
131
132#define BCSR_LEDS_DECIMALS 0x0003
133#define BCSR_LEDS_LED0 0x0100
134#define BCSR_LEDS_LED1 0x0200
135#define BCSR_LEDS_LED2 0x0400
136#define BCSR_LEDS_LED3 0x0800
137
138#define BCSR_SWRESET_RESET 0x0080
139
140/* PCMCIA DBAu1x00 specific defines */
141#define PCMCIA_MAX_SOCK 1
142#define PCMCIA_NUM_SOCKS (PCMCIA_MAX_SOCK + 1)
143
144/* VPP/VCC */
145#define SET_VCC_VPP(VCC, VPP, SLOT)\
146 ((((VCC) << 2) | ((VPP) << 0)) << ((SLOT) * 8))
147
148/*
149 * NAND defines 49 * NAND defines
150 * 50 *
151 * Timing values as described in databook, * ns value stripped of the 51 * Timing values as described in databook, * ns value stripped of the
diff --git a/arch/mips/include/asm/mach-loongson/cpu-feature-overrides.h b/arch/mips/include/asm/mach-loongson/cpu-feature-overrides.h
index 9947e57c91de..16210cedd929 100644
--- a/arch/mips/include/asm/mach-loongson/cpu-feature-overrides.h
+++ b/arch/mips/include/asm/mach-loongson/cpu-feature-overrides.h
@@ -3,7 +3,7 @@
3 * License. See the file "COPYING" in the main directory of this archive 3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details. 4 * for more details.
5 * 5 *
6 * Copyright (C) 2009 Wu Zhangjin <wuzj@lemote.com> 6 * Copyright (C) 2009 Wu Zhangjin <wuzhangjin@gmail.com>
7 * Copyright (C) 2009 Philippe Vachon <philippe@cowpig.ca> 7 * Copyright (C) 2009 Philippe Vachon <philippe@cowpig.ca>
8 * Copyright (C) 2009 Zhang Le <r0bertz@gentoo.org> 8 * Copyright (C) 2009 Zhang Le <r0bertz@gentoo.org>
9 * 9 *
diff --git a/arch/mips/include/asm/mach-loongson/cs5536/cs5536_vsm.h b/arch/mips/include/asm/mach-loongson/cs5536/cs5536_vsm.h
index 6305bea7e18e..21c4ecedebe7 100644
--- a/arch/mips/include/asm/mach-loongson/cs5536/cs5536_vsm.h
+++ b/arch/mips/include/asm/mach-loongson/cs5536/cs5536_vsm.h
@@ -2,7 +2,7 @@
2 * the read/write interfaces for Virtual Support Module(VSM) 2 * the read/write interfaces for Virtual Support Module(VSM)
3 * 3 *
4 * Copyright (C) 2009 Lemote, Inc. 4 * Copyright (C) 2009 Lemote, Inc.
5 * Author: Wu Zhangjin <wuzj@lemote.com> 5 * Author: Wu Zhangjin <wuzhangjin@gmail.com>
6 */ 6 */
7 7
8#ifndef _CS5536_VSM_H 8#ifndef _CS5536_VSM_H
diff --git a/arch/mips/include/asm/mach-loongson/loongson.h b/arch/mips/include/asm/mach-loongson/loongson.h
index ee8bc8376972..1cf7b1401ee4 100644
--- a/arch/mips/include/asm/mach-loongson/loongson.h
+++ b/arch/mips/include/asm/mach-loongson/loongson.h
@@ -1,12 +1,11 @@
1/* 1/*
2 * Copyright (C) 2009 Lemote, Inc. 2 * Copyright (C) 2009 Lemote, Inc.
3 * Author: Wu Zhangjin <wuzj@lemote.com> 3 * Author: Wu Zhangjin <wuzhangjin@gmail.com>
4 * 4 *
5 * This program is free software; you can redistribute it and/or modify it 5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the 6 * under the terms of the GNU General Public License as published by the
7 * Free Software Foundation; either version 2 of the License, or (at your 7 * Free Software Foundation; either version 2 of the License, or (at your
8 * option) any later version. 8 * option) any later version.
9 *
10 */ 9 */
11 10
12#ifndef __ASM_MACH_LOONGSON_LOONGSON_H 11#ifndef __ASM_MACH_LOONGSON_LOONGSON_H
@@ -23,7 +22,7 @@ extern void mach_prepare_reboot(void);
23extern void mach_prepare_shutdown(void); 22extern void mach_prepare_shutdown(void);
24 23
25/* environment arguments from bootloader */ 24/* environment arguments from bootloader */
26extern unsigned long bus_clock, cpu_clock_freq; 25extern unsigned long cpu_clock_freq;
27extern unsigned long memsize, highmemsize; 26extern unsigned long memsize, highmemsize;
28 27
29/* loongson-specific command line, env and memory initialization */ 28/* loongson-specific command line, env and memory initialization */
diff --git a/arch/mips/include/asm/mach-loongson/machine.h b/arch/mips/include/asm/mach-loongson/machine.h
index acf8359cb135..43213388c174 100644
--- a/arch/mips/include/asm/mach-loongson/machine.h
+++ b/arch/mips/include/asm/mach-loongson/machine.h
@@ -1,6 +1,6 @@
1/* 1/*
2 * Copyright (C) 2009 Lemote, Inc. & Institute of Computing Technology 2 * Copyright (C) 2009 Lemote, Inc.
3 * Author: Wu Zhangjin <wuzj@lemote.com> 3 * Author: Wu Zhangjin <wuzhangjin@gmail.com>
4 * 4 *
5 * This program is free software; you can redistribute it and/or modify it 5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the 6 * under the terms of the GNU General Public License as published by the
diff --git a/arch/mips/include/asm/mach-loongson/mem.h b/arch/mips/include/asm/mach-loongson/mem.h
index e9960f341b96..3b23ee8647d6 100644
--- a/arch/mips/include/asm/mach-loongson/mem.h
+++ b/arch/mips/include/asm/mach-loongson/mem.h
@@ -1,6 +1,6 @@
1/* 1/*
2 * Copyright (C) 2009 Lemote, Inc. 2 * Copyright (C) 2009 Lemote, Inc.
3 * Author: Wu Zhangjin <wuzj@lemote.com> 3 * Author: Wu Zhangjin <wuzhangjin@gmail.com>
4 * 4 *
5 * This program is free software; you can redistribute it and/or modify it 5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the 6 * under the terms of the GNU General Public License as published by the
diff --git a/arch/mips/include/asm/mach-loongson/pci.h b/arch/mips/include/asm/mach-loongson/pci.h
index a199a4f6de4e..bc99dab4ef63 100644
--- a/arch/mips/include/asm/mach-loongson/pci.h
+++ b/arch/mips/include/asm/mach-loongson/pci.h
@@ -1,23 +1,12 @@
1/* 1/*
2 * Copyright (c) 2008 Zhang Le <r0bertz@gentoo.org> 2 * Copyright (c) 2008 Zhang Le <r0bertz@gentoo.org>
3 * Copyright (c) 2009 Wu Zhangjin <wuzj@lemote.com> 3 * Copyright (c) 2009 Wu Zhangjin <wuzhangjin@gmail.com>
4 * 4 *
5 * This program is free software; you can redistribute it 5 * This program is free software; you can redistribute it
6 * and/or modify it under the terms of the GNU General 6 * and/or modify it under the terms of the GNU General
7 * Public License as published by the Free Software 7 * Public License as published by the Free Software
8 * Foundation; either version 2 of the License, or (at your 8 * Foundation; either version 2 of the License, or (at your
9 * option) any later version. 9 * option) any later version.
10 *
11 * This program is distributed in the hope that it will be
12 * useful, but WITHOUT ANY WARRANTY; without even the implied
13 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14 * PURPOSE. See the GNU General Public License for more
15 * details.
16 *
17 * You should have received a copy of the GNU General Public
18 * License along with this program; if not, write to the Free
19 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA
20 * 02139, USA.
21 */ 10 */
22 11
23#ifndef __ASM_MACH_LOONGSON_PCI_H_ 12#ifndef __ASM_MACH_LOONGSON_PCI_H_
diff --git a/arch/mips/include/asm/mach-pb1x00/pb1100.h b/arch/mips/include/asm/mach-pb1x00/pb1100.h
deleted file mode 100644
index b1a60f1cbd02..000000000000
--- a/arch/mips/include/asm/mach-pb1x00/pb1100.h
+++ /dev/null
@@ -1,85 +0,0 @@
1/*
2 * Alchemy Semi Pb1100 Referrence Board
3 *
4 * Copyright 2001, 2008 MontaVista Software Inc.
5 * Author: MontaVista Software, Inc. <source@mvista.com>
6 *
7 * ########################################################################
8 *
9 * This program is free software; you can distribute it and/or modify it
10 * under the terms of the GNU General Public License (Version 2) as
11 * published by the Free Software Foundation.
12 *
13 * This program is distributed in the hope it will be useful, but WITHOUT
14 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 * for more details.
17 *
18 * You should have received a copy of the GNU General Public License along
19 * with this program; if not, write to the Free Software Foundation, Inc.,
20 * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
21 *
22 * ########################################################################
23 *
24 *
25 */
26#ifndef __ASM_PB1100_H
27#define __ASM_PB1100_H
28
29#define PB1100_IDENT 0xAE000000
30#define BOARD_STATUS_REG 0xAE000004
31# define PB1100_ROM_SEL (1 << 15)
32# define PB1100_ROM_SIZ (1 << 14)
33# define PB1100_SWAP_BOOT (1 << 13)
34# define PB1100_FLASH_WP (1 << 12)
35# define PB1100_ROM_H_STS (1 << 11)
36# define PB1100_ROM_L_STS (1 << 10)
37# define PB1100_FLASH_H_STS (1 << 9)
38# define PB1100_FLASH_L_STS (1 << 8)
39# define PB1100_SRAM_SIZ (1 << 7)
40# define PB1100_TSC_BUSY (1 << 6)
41# define PB1100_PCMCIA_VS_MASK (3 << 4)
42# define PB1100_RS232_CD (1 << 3)
43# define PB1100_RS232_CTS (1 << 2)
44# define PB1100_RS232_DSR (1 << 1)
45# define PB1100_RS232_RI (1 << 0)
46
47#define PB1100_IRDA_RS232 0xAE00000C
48# define PB1100_IRDA_FULL (0 << 14) /* full power */
49# define PB1100_IRDA_SHUTDOWN (1 << 14)
50# define PB1100_IRDA_TT (2 << 14) /* 2/3 power */
51# define PB1100_IRDA_OT (3 << 14) /* 1/3 power */
52# define PB1100_IRDA_FIR (1 << 13)
53
54#define PCMCIA_BOARD_REG 0xAE000010
55# define PB1100_SD_WP1_RO (1 << 15) /* read only */
56# define PB1100_SD_WP0_RO (1 << 14) /* read only */
57# define PB1100_SD_PWR1 (1 << 11) /* applies power to SD1 */
58# define PB1100_SD_PWR0 (1 << 10) /* applies power to SD0 */
59# define PB1100_SEL_SD_CONN1 (1 << 9)
60# define PB1100_SEL_SD_CONN0 (1 << 8)
61# define PC_DEASSERT_RST (1 << 7)
62# define PC_DRV_EN (1 << 4)
63
64#define PB1100_G_CONTROL 0xAE000014 /* graphics control */
65
66#define PB1100_RST_VDDI 0xAE00001C
67# define PB1100_SOFT_RESET (1 << 15) /* clear to reset the board */
68# define PB1100_VDDI_MASK 0x1F
69
70#define PB1100_LEDS 0xAE000018
71
72/*
73 * 11:8 is 4 discreet LEDs. Clearing a bit illuminates the LED.
74 * 7:0 is the LED Display's decimal points.
75 */
76#define PB1100_HEX_LED 0xAE000018
77
78/* PCMCIA Pb1100 specific defines */
79#define PCMCIA_MAX_SOCK 0
80#define PCMCIA_NUM_SOCKS (PCMCIA_MAX_SOCK + 1)
81
82/* VPP/VCC */
83#define SET_VCC_VPP(VCC, VPP) (((VCC) << 2) | ((VPP) << 0))
84
85#endif /* __ASM_PB1100_H */
diff --git a/arch/mips/include/asm/mach-pb1x00/pb1200.h b/arch/mips/include/asm/mach-pb1x00/pb1200.h
index c8618df88cb5..962eb55dc880 100644
--- a/arch/mips/include/asm/mach-pb1x00/pb1200.h
+++ b/arch/mips/include/asm/mach-pb1x00/pb1200.h
@@ -25,6 +25,7 @@
25#define __ASM_PB1200_H 25#define __ASM_PB1200_H
26 26
27#include <linux/types.h> 27#include <linux/types.h>
28#include <asm/mach-au1x00/au1000.h>
28#include <asm/mach-au1x00/au1xxx_psc.h> 29#include <asm/mach-au1x00/au1xxx_psc.h>
29 30
30#define DBDMA_AC97_TX_CHAN DSCR_CMD0_PSC1_TX 31#define DBDMA_AC97_TX_CHAN DSCR_CMD0_PSC1_TX
@@ -43,113 +44,8 @@
43 * Refer to board documentation. 44 * Refer to board documentation.
44 */ 45 */
45#define AC97_PSC_BASE PSC1_BASE_ADDR 46#define AC97_PSC_BASE PSC1_BASE_ADDR
46#define I2S_PSC_BASE PSC1_BASE_ADDR 47#define I2S_PSC_BASE PSC1_BASE_ADDR
47 48
48#define BCSR_KSEG1_ADDR 0xAD800000
49
50typedef volatile struct
51{
52 /*00*/ u16 whoami;
53 u16 reserved0;
54 /*04*/ u16 status;
55 u16 reserved1;
56 /*08*/ u16 switches;
57 u16 reserved2;
58 /*0C*/ u16 resets;
59 u16 reserved3;
60
61 /*10*/ u16 pcmcia;
62 u16 reserved4;
63 /*14*/ u16 board;
64 u16 reserved5;
65 /*18*/ u16 disk_leds;
66 u16 reserved6;
67 /*1C*/ u16 system;
68 u16 reserved7;
69
70 /*20*/ u16 intclr;
71 u16 reserved8;
72 /*24*/ u16 intset;
73 u16 reserved9;
74 /*28*/ u16 intclr_mask;
75 u16 reserved10;
76 /*2C*/ u16 intset_mask;
77 u16 reserved11;
78
79 /*30*/ u16 sig_status;
80 u16 reserved12;
81 /*34*/ u16 int_status;
82 u16 reserved13;
83 /*38*/ u16 reserved14;
84 u16 reserved15;
85 /*3C*/ u16 reserved16;
86 u16 reserved17;
87
88} BCSR;
89
90static BCSR * const bcsr = (BCSR *)BCSR_KSEG1_ADDR;
91
92/*
93 * Register bit definitions for the BCSRs
94 */
95#define BCSR_WHOAMI_DCID 0x000F
96#define BCSR_WHOAMI_CPLD 0x00F0
97#define BCSR_WHOAMI_BOARD 0x0F00
98
99#define BCSR_STATUS_PCMCIA0VS 0x0003
100#define BCSR_STATUS_PCMCIA1VS 0x000C
101#define BCSR_STATUS_SWAPBOOT 0x0040
102#define BCSR_STATUS_FLASHBUSY 0x0100
103#define BCSR_STATUS_IDECBLID 0x0200
104#define BCSR_STATUS_SD0WP 0x0400
105#define BCSR_STATUS_SD1WP 0x0800
106#define BCSR_STATUS_U0RXD 0x1000
107#define BCSR_STATUS_U1RXD 0x2000
108
109#define BCSR_SWITCHES_OCTAL 0x00FF
110#define BCSR_SWITCHES_DIP_1 0x0080
111#define BCSR_SWITCHES_DIP_2 0x0040
112#define BCSR_SWITCHES_DIP_3 0x0020
113#define BCSR_SWITCHES_DIP_4 0x0010
114#define BCSR_SWITCHES_DIP_5 0x0008
115#define BCSR_SWITCHES_DIP_6 0x0004
116#define BCSR_SWITCHES_DIP_7 0x0002
117#define BCSR_SWITCHES_DIP_8 0x0001
118#define BCSR_SWITCHES_ROTARY 0x0F00
119
120#define BCSR_RESETS_ETH 0x0001
121#define BCSR_RESETS_CAMERA 0x0002
122#define BCSR_RESETS_DC 0x0004
123#define BCSR_RESETS_IDE 0x0008
124/* not resets but in the same register */
125#define BCSR_RESETS_WSCFSM 0x0800
126#define BCSR_RESETS_PCS0MUX 0x1000
127#define BCSR_RESETS_PCS1MUX 0x2000
128#define BCSR_RESETS_SPISEL 0x4000
129#define BCSR_RESETS_SD1MUX 0x8000
130
131#define BCSR_PCMCIA_PC0VPP 0x0003
132#define BCSR_PCMCIA_PC0VCC 0x000C
133#define BCSR_PCMCIA_PC0DRVEN 0x0010
134#define BCSR_PCMCIA_PC0RST 0x0080
135#define BCSR_PCMCIA_PC1VPP 0x0300
136#define BCSR_PCMCIA_PC1VCC 0x0C00
137#define BCSR_PCMCIA_PC1DRVEN 0x1000
138#define BCSR_PCMCIA_PC1RST 0x8000
139
140#define BCSR_BOARD_LCDVEE 0x0001
141#define BCSR_BOARD_LCDVDD 0x0002
142#define BCSR_BOARD_LCDBL 0x0004
143#define BCSR_BOARD_CAMSNAP 0x0010
144#define BCSR_BOARD_CAMPWR 0x0020
145#define BCSR_BOARD_SD0PWR 0x0040
146#define BCSR_BOARD_SD1PWR 0x0080
147
148#define BCSR_LEDS_DECIMALS 0x00FF
149#define BCSR_LEDS_LED0 0x0100
150#define BCSR_LEDS_LED1 0x0200
151#define BCSR_LEDS_LED2 0x0400
152#define BCSR_LEDS_LED3 0x0800
153 49
154#define BCSR_SYSTEM_VDDI 0x001F 50#define BCSR_SYSTEM_VDDI 0x001F
155#define BCSR_SYSTEM_POWEROFF 0x4000 51#define BCSR_SYSTEM_POWEROFF 0x4000
@@ -239,20 +135,6 @@ enum external_pb1200_ints {
239 PB1200_INT_END = PB1200_INT_BEGIN + 15 135 PB1200_INT_END = PB1200_INT_BEGIN + 15
240}; 136};
241 137
242/*
243 * Pb1200 specific PCMCIA defines for drivers/pcmcia/au1000_db1x00.c
244 */
245#define PCMCIA_MAX_SOCK 1
246#define PCMCIA_NUM_SOCKS (PCMCIA_MAX_SOCK + 1)
247
248/* VPP/VCC */
249#define SET_VCC_VPP(VCC, VPP, SLOT) \
250 ((((VCC) << 2) | ((VPP) << 0)) << ((SLOT) * 8))
251
252#define BOARD_PC0_INT PB1200_PC0_INT
253#define BOARD_PC1_INT PB1200_PC1_INT
254#define BOARD_CARD_INSERTED(SOCKET) bcsr->sig_status & (1 << (8 + (2 * SOCKET)))
255
256/* NAND chip select */ 138/* NAND chip select */
257#define NAND_CS 1 139#define NAND_CS 1
258 140
diff --git a/arch/mips/include/asm/mach-pb1x00/pb1500.h b/arch/mips/include/asm/mach-pb1x00/pb1500.h
deleted file mode 100644
index da51a2eb7b82..000000000000
--- a/arch/mips/include/asm/mach-pb1x00/pb1500.h
+++ /dev/null
@@ -1,49 +0,0 @@
1/*
2 * Alchemy Semi Pb1500 Referrence Board
3 *
4 * Copyright 2001, 2008 MontaVista Software Inc.
5 * Author: MontaVista Software, Inc. <source@mvista.com>
6 *
7 * ########################################################################
8 *
9 * This program is free software; you can distribute it and/or modify it
10 * under the terms of the GNU General Public License (Version 2) as
11 * published by the Free Software Foundation.
12 *
13 * This program is distributed in the hope it will be useful, but WITHOUT
14 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 * for more details.
17 *
18 * You should have received a copy of the GNU General Public License along
19 * with this program; if not, write to the Free Software Foundation, Inc.,
20 * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
21 *
22 * ########################################################################
23 *
24 *
25 */
26#ifndef __ASM_PB1500_H
27#define __ASM_PB1500_H
28
29#define IDENT_BOARD_REG 0xAE000000
30#define BOARD_STATUS_REG 0xAE000004
31#define PCI_BOARD_REG 0xAE000010
32#define PCMCIA_BOARD_REG 0xAE000010
33# define PC_DEASSERT_RST 0x80
34# define PC_DRV_EN 0x10
35#define PB1500_G_CONTROL 0xAE000014
36#define PB1500_RST_VDDI 0xAE00001C
37#define PB1500_LEDS 0xAE000018
38
39#define PB1500_HEX_LED 0xAF000004
40#define PB1500_HEX_LED_BLANK 0xAF000008
41
42/* PCMCIA Pb1500 specific defines */
43#define PCMCIA_MAX_SOCK 0
44#define PCMCIA_NUM_SOCKS (PCMCIA_MAX_SOCK + 1)
45
46/* VPP/VCC */
47#define SET_VCC_VPP(VCC, VPP) (((VCC) << 2) | ((VPP) << 0))
48
49#endif /* __ASM_PB1500_H */
diff --git a/arch/mips/include/asm/mach-pb1x00/pb1550.h b/arch/mips/include/asm/mach-pb1x00/pb1550.h
index 6704a11497db..58796410bd6e 100644
--- a/arch/mips/include/asm/mach-pb1x00/pb1550.h
+++ b/arch/mips/include/asm/mach-pb1x00/pb1550.h
@@ -40,102 +40,6 @@
40#define SMBUS_PSC_BASE PSC2_BASE_ADDR 40#define SMBUS_PSC_BASE PSC2_BASE_ADDR
41#define I2S_PSC_BASE PSC3_BASE_ADDR 41#define I2S_PSC_BASE PSC3_BASE_ADDR
42 42
43#define BCSR_PHYS_ADDR 0xAF000000
44
45typedef volatile struct
46{
47 /*00*/ u16 whoami;
48 u16 reserved0;
49 /*04*/ u16 status;
50 u16 reserved1;
51 /*08*/ u16 switches;
52 u16 reserved2;
53 /*0C*/ u16 resets;
54 u16 reserved3;
55 /*10*/ u16 pcmcia;
56 u16 reserved4;
57 /*14*/ u16 pci;
58 u16 reserved5;
59 /*18*/ u16 leds;
60 u16 reserved6;
61 /*1C*/ u16 system;
62 u16 reserved7;
63
64} BCSR;
65
66static BCSR * const bcsr = (BCSR *)BCSR_PHYS_ADDR;
67
68/*
69 * Register bit definitions for the BCSRs
70 */
71#define BCSR_WHOAMI_DCID 0x000F
72#define BCSR_WHOAMI_CPLD 0x00F0
73#define BCSR_WHOAMI_BOARD 0x0F00
74
75#define BCSR_STATUS_PCMCIA0VS 0x0003
76#define BCSR_STATUS_PCMCIA1VS 0x000C
77#define BCSR_STATUS_PCMCIA0FI 0x0010
78#define BCSR_STATUS_PCMCIA1FI 0x0020
79#define BCSR_STATUS_SWAPBOOT 0x0040
80#define BCSR_STATUS_SRAMWIDTH 0x0080
81#define BCSR_STATUS_FLASHBUSY 0x0100
82#define BCSR_STATUS_ROMBUSY 0x0200
83#define BCSR_STATUS_USBOTGID 0x0800
84#define BCSR_STATUS_U0RXD 0x1000
85#define BCSR_STATUS_U1RXD 0x2000
86#define BCSR_STATUS_U3RXD 0x8000
87
88#define BCSR_SWITCHES_OCTAL 0x00FF
89#define BCSR_SWITCHES_DIP_1 0x0080
90#define BCSR_SWITCHES_DIP_2 0x0040
91#define BCSR_SWITCHES_DIP_3 0x0020
92#define BCSR_SWITCHES_DIP_4 0x0010
93#define BCSR_SWITCHES_DIP_5 0x0008
94#define BCSR_SWITCHES_DIP_6 0x0004
95#define BCSR_SWITCHES_DIP_7 0x0002
96#define BCSR_SWITCHES_DIP_8 0x0001
97#define BCSR_SWITCHES_ROTARY 0x0F00
98
99#define BCSR_RESETS_PHY0 0x0001
100#define BCSR_RESETS_PHY1 0x0002
101#define BCSR_RESETS_DC 0x0004
102#define BCSR_RESETS_WSC 0x2000
103#define BCSR_RESETS_SPISEL 0x4000
104#define BCSR_RESETS_DMAREQ 0x8000
105
106#define BCSR_PCMCIA_PC0VPP 0x0003
107#define BCSR_PCMCIA_PC0VCC 0x000C
108#define BCSR_PCMCIA_PC0DRVEN 0x0010
109#define BCSR_PCMCIA_PC0RST 0x0080
110#define BCSR_PCMCIA_PC1VPP 0x0300
111#define BCSR_PCMCIA_PC1VCC 0x0C00
112#define BCSR_PCMCIA_PC1DRVEN 0x1000
113#define BCSR_PCMCIA_PC1RST 0x8000
114
115#define BCSR_PCI_M66EN 0x0001
116#define BCSR_PCI_M33 0x0100
117#define BCSR_PCI_EXTERNARB 0x0200
118#define BCSR_PCI_GPIO200RST 0x0400
119#define BCSR_PCI_CLKOUT 0x0800
120#define BCSR_PCI_CFGHOST 0x1000
121
122#define BCSR_LEDS_DECIMALS 0x00FF
123#define BCSR_LEDS_LED0 0x0100
124#define BCSR_LEDS_LED1 0x0200
125#define BCSR_LEDS_LED2 0x0400
126#define BCSR_LEDS_LED3 0x0800
127
128#define BCSR_SYSTEM_VDDI 0x001F
129#define BCSR_SYSTEM_POWEROFF 0x4000
130#define BCSR_SYSTEM_RESET 0x8000
131
132#define PCMCIA_MAX_SOCK 1
133#define PCMCIA_NUM_SOCKS (PCMCIA_MAX_SOCK + 1)
134
135/* VPP/VCC */
136#define SET_VCC_VPP(VCC, VPP, SLOT) \
137 ((((VCC) << 2) | ((VPP) << 0)) << ((SLOT) * 8))
138
139#if defined(CONFIG_MTD_PB1550_BOOT) && defined(CONFIG_MTD_PB1550_USER) 43#if defined(CONFIG_MTD_PB1550_BOOT) && defined(CONFIG_MTD_PB1550_USER)
140#define PB1550_BOTH_BANKS 44#define PB1550_BOTH_BANKS
141#elif defined(CONFIG_MTD_PB1550_BOOT) && !defined(CONFIG_MTD_PB1550_USER) 45#elif defined(CONFIG_MTD_PB1550_BOOT) && !defined(CONFIG_MTD_PB1550_USER)
diff --git a/arch/mips/include/asm/mach-pnx833x/irq-mapping.h b/arch/mips/include/asm/mach-pnx833x/irq-mapping.h
index 657f089b1724..6d70264557b2 100644
--- a/arch/mips/include/asm/mach-pnx833x/irq-mapping.h
+++ b/arch/mips/include/asm/mach-pnx833x/irq-mapping.h
@@ -123,4 +123,3 @@
123#define PNX833X_GPIO_15_INT (PNX833X_GPIO_IRQ_BASE + 15) 123#define PNX833X_GPIO_15_INT (PNX833X_GPIO_IRQ_BASE + 15)
124 124
125#endif 125#endif
126
diff --git a/arch/mips/include/asm/mach-powertv/interrupts.h b/arch/mips/include/asm/mach-powertv/interrupts.h
index 629a57413657..4fd652ceb52a 100644
--- a/arch/mips/include/asm/mach-powertv/interrupts.h
+++ b/arch/mips/include/asm/mach-powertv/interrupts.h
@@ -251,4 +251,3 @@
251 * channel 3. */ 251 * channel 3. */
252#define irq_mpeg_d (ibase+0) /* MPEG Decoder Interrupt */ 252#define irq_mpeg_d (ibase+0) /* MPEG Decoder Interrupt */
253#endif /* _ASM_MACH_POWERTV_INTERRUPTS_H_ */ 253#endif /* _ASM_MACH_POWERTV_INTERRUPTS_H_ */
254
diff --git a/arch/mips/include/asm/mipsregs.h b/arch/mips/include/asm/mipsregs.h
index f4ab3139d737..49382d5e891a 100644
--- a/arch/mips/include/asm/mipsregs.h
+++ b/arch/mips/include/asm/mipsregs.h
@@ -251,6 +251,14 @@
251#define PL_256M 28 251#define PL_256M 28
252 252
253/* 253/*
254 * PageGrain bits
255 */
256#define PG_RIE (_ULCAST_(1) << 31)
257#define PG_XIE (_ULCAST_(1) << 30)
258#define PG_ELPA (_ULCAST_(1) << 29)
259#define PG_ESP (_ULCAST_(1) << 28)
260
261/*
254 * R4x00 interrupt enable / cause bits 262 * R4x00 interrupt enable / cause bits
255 */ 263 */
256#define IE_SW0 (_ULCAST_(1) << 8) 264#define IE_SW0 (_ULCAST_(1) << 8)
@@ -576,6 +584,10 @@
576#define MIPS_CONF3_DSP (_ULCAST_(1) << 10) 584#define MIPS_CONF3_DSP (_ULCAST_(1) << 10)
577#define MIPS_CONF3_ULRI (_ULCAST_(1) << 13) 585#define MIPS_CONF3_ULRI (_ULCAST_(1) << 13)
578 586
587#define MIPS_CONF4_MMUSIZEEXT (_ULCAST_(255) << 0)
588#define MIPS_CONF4_MMUEXTDEF (_ULCAST_(3) << 14)
589#define MIPS_CONF4_MMUEXTDEF_MMUSIZEEXT (_ULCAST_(1) << 14)
590
579#define MIPS_CONF7_WII (_ULCAST_(1) << 31) 591#define MIPS_CONF7_WII (_ULCAST_(1) << 31)
580 592
581#define MIPS_CONF7_RPS (_ULCAST_(1) << 2) 593#define MIPS_CONF7_RPS (_ULCAST_(1) << 2)
@@ -826,6 +838,9 @@ do { \
826#define read_c0_pagemask() __read_32bit_c0_register($5, 0) 838#define read_c0_pagemask() __read_32bit_c0_register($5, 0)
827#define write_c0_pagemask(val) __write_32bit_c0_register($5, 0, val) 839#define write_c0_pagemask(val) __write_32bit_c0_register($5, 0, val)
828 840
841#define read_c0_pagegrain() __read_32bit_c0_register($5, 1)
842#define write_c0_pagegrain(val) __write_32bit_c0_register($5, 1, val)
843
829#define read_c0_wired() __read_32bit_c0_register($6, 0) 844#define read_c0_wired() __read_32bit_c0_register($6, 0)
830#define write_c0_wired(val) __write_32bit_c0_register($6, 0, val) 845#define write_c0_wired(val) __write_32bit_c0_register($6, 0, val)
831 846
diff --git a/arch/mips/include/asm/msc01_ic.h b/arch/mips/include/asm/msc01_ic.h
index 7989b9ffc1d2..d92406ae2841 100644
--- a/arch/mips/include/asm/msc01_ic.h
+++ b/arch/mips/include/asm/msc01_ic.h
@@ -145,4 +145,3 @@ extern void __init init_msc_irqs(unsigned long icubase, unsigned int base, msc_i
145extern void ll_msc_irq(void); 145extern void ll_msc_irq(void);
146 146
147#endif /* __ASM_MIPS_BOARDS_MSC01_IC_H */ 147#endif /* __ASM_MIPS_BOARDS_MSC01_IC_H */
148
diff --git a/arch/mips/include/asm/nile4.h b/arch/mips/include/asm/nile4.h
index c3ca959aa4d9..af0e51a9f68a 100644
--- a/arch/mips/include/asm/nile4.h
+++ b/arch/mips/include/asm/nile4.h
@@ -307,4 +307,3 @@ extern u8 nile4_i8259_iack(void);
307extern void nile4_dump_irq_status(void); /* Debug */ 307extern void nile4_dump_irq_status(void); /* Debug */
308 308
309#endif 309#endif
310
diff --git a/arch/mips/include/asm/octeon/octeon-feature.h b/arch/mips/include/asm/octeon/octeon-feature.h
index ef24a7b4ea57..cba6fbed9f43 100644
--- a/arch/mips/include/asm/octeon/octeon-feature.h
+++ b/arch/mips/include/asm/octeon/octeon-feature.h
@@ -99,6 +99,8 @@ static inline int octeon_has_feature(enum octeon_feature feature)
99 return !cvmx_fuse_read(90); 99 return !cvmx_fuse_read(90);
100 100
101 case OCTEON_FEATURE_PCIE: 101 case OCTEON_FEATURE_PCIE:
102 case OCTEON_FEATURE_MGMT_PORT:
103 case OCTEON_FEATURE_RAID:
102 return OCTEON_IS_MODEL(OCTEON_CN56XX) 104 return OCTEON_IS_MODEL(OCTEON_CN56XX)
103 || OCTEON_IS_MODEL(OCTEON_CN52XX); 105 || OCTEON_IS_MODEL(OCTEON_CN52XX);
104 106
@@ -110,12 +112,6 @@ static inline int octeon_has_feature(enum octeon_feature feature)
110 case OCTEON_FEATURE_TRA: 112 case OCTEON_FEATURE_TRA:
111 return !(OCTEON_IS_MODEL(OCTEON_CN30XX) 113 return !(OCTEON_IS_MODEL(OCTEON_CN30XX)
112 || OCTEON_IS_MODEL(OCTEON_CN50XX)); 114 || OCTEON_IS_MODEL(OCTEON_CN50XX));
113 case OCTEON_FEATURE_MGMT_PORT:
114 return OCTEON_IS_MODEL(OCTEON_CN56XX)
115 || OCTEON_IS_MODEL(OCTEON_CN52XX);
116 case OCTEON_FEATURE_RAID:
117 return OCTEON_IS_MODEL(OCTEON_CN56XX)
118 || OCTEON_IS_MODEL(OCTEON_CN52XX);
119 case OCTEON_FEATURE_USB: 115 case OCTEON_FEATURE_USB:
120 return !(OCTEON_IS_MODEL(OCTEON_CN38XX) 116 return !(OCTEON_IS_MODEL(OCTEON_CN38XX)
121 || OCTEON_IS_MODEL(OCTEON_CN58XX)); 117 || OCTEON_IS_MODEL(OCTEON_CN58XX));
diff --git a/arch/mips/include/asm/octeon/octeon.h b/arch/mips/include/asm/octeon/octeon.h
index 4d0a8c61fc3e..ca6214b5ccb9 100644
--- a/arch/mips/include/asm/octeon/octeon.h
+++ b/arch/mips/include/asm/octeon/octeon.h
@@ -213,6 +213,11 @@ struct octeon_cf_data {
213 int dma_engine; /* -1 for no DMA */ 213 int dma_engine; /* -1 for no DMA */
214}; 214};
215 215
216struct octeon_i2c_data {
217 unsigned int sys_freq;
218 unsigned int i2c_freq;
219};
220
216extern void octeon_write_lcd(const char *s); 221extern void octeon_write_lcd(const char *s);
217extern void octeon_check_cpu_bist(void); 222extern void octeon_check_cpu_bist(void);
218extern int octeon_get_boot_debug_flag(void); 223extern int octeon_get_boot_debug_flag(void);
diff --git a/arch/mips/include/asm/page.h b/arch/mips/include/asm/page.h
index f266295cce51..ac32572430f4 100644
--- a/arch/mips/include/asm/page.h
+++ b/arch/mips/include/asm/page.h
@@ -107,18 +107,6 @@ typedef struct { unsigned long pte; } pte_t;
107typedef struct page *pgtable_t; 107typedef struct page *pgtable_t;
108 108
109/* 109/*
110 * For 3-level pagetables we defines these ourselves, for 2-level the
111 * definitions are supplied by <asm-generic/pgtable-nopmd.h>.
112 */
113#ifdef CONFIG_64BIT
114
115typedef struct { unsigned long pmd; } pmd_t;
116#define pmd_val(x) ((x).pmd)
117#define __pmd(x) ((pmd_t) { (x) } )
118
119#endif
120
121/*
122 * Right now we don't support 4-level pagetables, so all pud-related 110 * Right now we don't support 4-level pagetables, so all pud-related
123 * definitions come from <asm-generic/pgtable-nopud.h>. 111 * definitions come from <asm-generic/pgtable-nopud.h>.
124 */ 112 */
diff --git a/arch/mips/include/asm/param.h b/arch/mips/include/asm/param.h
index 1d9bb8c5ab24..da3920fce9ad 100644
--- a/arch/mips/include/asm/param.h
+++ b/arch/mips/include/asm/param.h
@@ -9,23 +9,8 @@
9#ifndef _ASM_PARAM_H 9#ifndef _ASM_PARAM_H
10#define _ASM_PARAM_H 10#define _ASM_PARAM_H
11 11
12#ifdef __KERNEL__
13
14# define HZ CONFIG_HZ /* Internal kernel timer frequency */
15# define USER_HZ 100 /* .. some user interfaces are in "ticks" */
16# define CLOCKS_PER_SEC (USER_HZ) /* like times() */
17#endif
18
19#ifndef HZ
20#define HZ 100
21#endif
22
23#define EXEC_PAGESIZE 65536 12#define EXEC_PAGESIZE 65536
24 13
25#ifndef NOGROUP 14#include <asm-generic/param.h>
26#define NOGROUP (-1)
27#endif
28
29#define MAXHOSTNAMELEN 64 /* max length of hostname */
30 15
31#endif /* _ASM_PARAM_H */ 16#endif /* _ASM_PARAM_H */
diff --git a/arch/mips/include/asm/parport.h b/arch/mips/include/asm/parport.h
index f52656826cce..cf252af64590 100644
--- a/arch/mips/include/asm/parport.h
+++ b/arch/mips/include/asm/parport.h
@@ -1,15 +1 @@
1/* #include <asm-generic/parport.h>
2 * Copyright (C) 1999, 2000 Tim Waugh <tim@cyberelk.demon.co.uk>
3 *
4 * This file should only be included by drivers/parport/parport_pc.c.
5 */
6#ifndef _ASM_PARPORT_H
7#define _ASM_PARPORT_H
8
9static int __devinit parport_pc_find_isa_ports(int autoirq, int autodma);
10static int __devinit parport_pc_find_nonpci_ports(int autoirq, int autodma)
11{
12 return parport_pc_find_isa_ports(autoirq, autodma);
13}
14
15#endif /* _ASM_PARPORT_H */
diff --git a/arch/mips/include/asm/pgalloc.h b/arch/mips/include/asm/pgalloc.h
index 3738f4b48cbd..881d18b4e298 100644
--- a/arch/mips/include/asm/pgalloc.h
+++ b/arch/mips/include/asm/pgalloc.h
@@ -31,7 +31,7 @@ static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd,
31 */ 31 */
32extern void pmd_init(unsigned long page, unsigned long pagetable); 32extern void pmd_init(unsigned long page, unsigned long pagetable);
33 33
34#ifdef CONFIG_64BIT 34#ifndef __PAGETABLE_PMD_FOLDED
35 35
36static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd) 36static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
37{ 37{
@@ -104,7 +104,7 @@ do { \
104 tlb_remove_page((tlb), pte); \ 104 tlb_remove_page((tlb), pte); \
105} while (0) 105} while (0)
106 106
107#ifdef CONFIG_64BIT 107#ifndef __PAGETABLE_PMD_FOLDED
108 108
109static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address) 109static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address)
110{ 110{
diff --git a/arch/mips/include/asm/pgtable-32.h b/arch/mips/include/asm/pgtable-32.h
index 55813d6150c7..ae90412556d0 100644
--- a/arch/mips/include/asm/pgtable-32.h
+++ b/arch/mips/include/asm/pgtable-32.h
@@ -127,8 +127,8 @@ pfn_pte(unsigned long pfn, pgprot_t prot)
127#define pte_pfn(x) ((unsigned long)((x).pte >> (PAGE_SHIFT + 2))) 127#define pte_pfn(x) ((unsigned long)((x).pte >> (PAGE_SHIFT + 2)))
128#define pfn_pte(pfn, prot) __pte(((pfn) << (PAGE_SHIFT + 2)) | pgprot_val(prot)) 128#define pfn_pte(pfn, prot) __pte(((pfn) << (PAGE_SHIFT + 2)) | pgprot_val(prot))
129#else 129#else
130#define pte_pfn(x) ((unsigned long)((x).pte >> PAGE_SHIFT)) 130#define pte_pfn(x) ((unsigned long)((x).pte >> _PFN_SHIFT))
131#define pfn_pte(pfn, prot) __pte(((unsigned long long)(pfn) << PAGE_SHIFT) | pgprot_val(prot)) 131#define pfn_pte(pfn, prot) __pte(((unsigned long long)(pfn) << _PFN_SHIFT) | pgprot_val(prot))
132#endif 132#endif
133#endif /* defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_MIPS32) */ 133#endif /* defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_MIPS32) */
134 134
diff --git a/arch/mips/include/asm/pgtable-64.h b/arch/mips/include/asm/pgtable-64.h
index 8eda30b467da..26dc69d792a6 100644
--- a/arch/mips/include/asm/pgtable-64.h
+++ b/arch/mips/include/asm/pgtable-64.h
@@ -16,7 +16,11 @@
16#include <asm/cachectl.h> 16#include <asm/cachectl.h>
17#include <asm/fixmap.h> 17#include <asm/fixmap.h>
18 18
19#ifdef CONFIG_PAGE_SIZE_64KB
20#include <asm-generic/pgtable-nopmd.h>
21#else
19#include <asm-generic/pgtable-nopud.h> 22#include <asm-generic/pgtable-nopud.h>
23#endif
20 24
21/* 25/*
22 * Each address space has 2 4K pages as its page directory, giving 1024 26 * Each address space has 2 4K pages as its page directory, giving 1024
@@ -37,13 +41,20 @@
37 * fault address - VMALLOC_START. 41 * fault address - VMALLOC_START.
38 */ 42 */
39 43
44
45/* PGDIR_SHIFT determines what a third-level page table entry can map */
46#ifdef __PAGETABLE_PMD_FOLDED
47#define PGDIR_SHIFT (PAGE_SHIFT + PAGE_SHIFT + PTE_ORDER - 3)
48#else
49
40/* PMD_SHIFT determines the size of the area a second-level page table can map */ 50/* PMD_SHIFT determines the size of the area a second-level page table can map */
41#define PMD_SHIFT (PAGE_SHIFT + (PAGE_SHIFT + PTE_ORDER - 3)) 51#define PMD_SHIFT (PAGE_SHIFT + (PAGE_SHIFT + PTE_ORDER - 3))
42#define PMD_SIZE (1UL << PMD_SHIFT) 52#define PMD_SIZE (1UL << PMD_SHIFT)
43#define PMD_MASK (~(PMD_SIZE-1)) 53#define PMD_MASK (~(PMD_SIZE-1))
44 54
45/* PGDIR_SHIFT determines what a third-level page table entry can map */ 55
46#define PGDIR_SHIFT (PMD_SHIFT + (PAGE_SHIFT + PMD_ORDER - 3)) 56#define PGDIR_SHIFT (PMD_SHIFT + (PAGE_SHIFT + PMD_ORDER - 3))
57#endif
47#define PGDIR_SIZE (1UL << PGDIR_SHIFT) 58#define PGDIR_SIZE (1UL << PGDIR_SHIFT)
48#define PGDIR_MASK (~(PGDIR_SIZE-1)) 59#define PGDIR_MASK (~(PGDIR_SIZE-1))
49 60
@@ -92,12 +103,14 @@
92#ifdef CONFIG_PAGE_SIZE_64KB 103#ifdef CONFIG_PAGE_SIZE_64KB
93#define PGD_ORDER 0 104#define PGD_ORDER 0
94#define PUD_ORDER aieeee_attempt_to_allocate_pud 105#define PUD_ORDER aieeee_attempt_to_allocate_pud
95#define PMD_ORDER 0 106#define PMD_ORDER aieeee_attempt_to_allocate_pmd
96#define PTE_ORDER 0 107#define PTE_ORDER 0
97#endif 108#endif
98 109
99#define PTRS_PER_PGD ((PAGE_SIZE << PGD_ORDER) / sizeof(pgd_t)) 110#define PTRS_PER_PGD ((PAGE_SIZE << PGD_ORDER) / sizeof(pgd_t))
111#ifndef __PAGETABLE_PMD_FOLDED
100#define PTRS_PER_PMD ((PAGE_SIZE << PMD_ORDER) / sizeof(pmd_t)) 112#define PTRS_PER_PMD ((PAGE_SIZE << PMD_ORDER) / sizeof(pmd_t))
113#endif
101#define PTRS_PER_PTE ((PAGE_SIZE << PTE_ORDER) / sizeof(pte_t)) 114#define PTRS_PER_PTE ((PAGE_SIZE << PTE_ORDER) / sizeof(pte_t))
102 115
103#if PGDIR_SIZE >= TASK_SIZE 116#if PGDIR_SIZE >= TASK_SIZE
@@ -122,15 +135,30 @@
122 135
123#define pte_ERROR(e) \ 136#define pte_ERROR(e) \
124 printk("%s:%d: bad pte %016lx.\n", __FILE__, __LINE__, pte_val(e)) 137 printk("%s:%d: bad pte %016lx.\n", __FILE__, __LINE__, pte_val(e))
138#ifndef __PAGETABLE_PMD_FOLDED
125#define pmd_ERROR(e) \ 139#define pmd_ERROR(e) \
126 printk("%s:%d: bad pmd %016lx.\n", __FILE__, __LINE__, pmd_val(e)) 140 printk("%s:%d: bad pmd %016lx.\n", __FILE__, __LINE__, pmd_val(e))
141#endif
127#define pgd_ERROR(e) \ 142#define pgd_ERROR(e) \
128 printk("%s:%d: bad pgd %016lx.\n", __FILE__, __LINE__, pgd_val(e)) 143 printk("%s:%d: bad pgd %016lx.\n", __FILE__, __LINE__, pgd_val(e))
129 144
130extern pte_t invalid_pte_table[PTRS_PER_PTE]; 145extern pte_t invalid_pte_table[PTRS_PER_PTE];
131extern pte_t empty_bad_page_table[PTRS_PER_PTE]; 146extern pte_t empty_bad_page_table[PTRS_PER_PTE];
147
148
149#ifndef __PAGETABLE_PMD_FOLDED
150/*
151 * For 3-level pagetables we defines these ourselves, for 2-level the
152 * definitions are supplied by <asm-generic/pgtable-nopmd.h>.
153 */
154typedef struct { unsigned long pmd; } pmd_t;
155#define pmd_val(x) ((x).pmd)
156#define __pmd(x) ((pmd_t) { (x) } )
157
158
132extern pmd_t invalid_pmd_table[PTRS_PER_PMD]; 159extern pmd_t invalid_pmd_table[PTRS_PER_PMD];
133extern pmd_t empty_bad_pmd_table[PTRS_PER_PMD]; 160extern pmd_t empty_bad_pmd_table[PTRS_PER_PMD];
161#endif
134 162
135/* 163/*
136 * Empty pgd/pmd entries point to the invalid_pte_table. 164 * Empty pgd/pmd entries point to the invalid_pte_table.
@@ -151,6 +179,7 @@ static inline void pmd_clear(pmd_t *pmdp)
151{ 179{
152 pmd_val(*pmdp) = ((unsigned long) invalid_pte_table); 180 pmd_val(*pmdp) = ((unsigned long) invalid_pte_table);
153} 181}
182#ifndef __PAGETABLE_PMD_FOLDED
154 183
155/* 184/*
156 * Empty pud entries point to the invalid_pmd_table. 185 * Empty pud entries point to the invalid_pmd_table.
@@ -174,6 +203,7 @@ static inline void pud_clear(pud_t *pudp)
174{ 203{
175 pud_val(*pudp) = ((unsigned long) invalid_pmd_table); 204 pud_val(*pudp) = ((unsigned long) invalid_pmd_table);
176} 205}
206#endif
177 207
178#define pte_page(x) pfn_to_page(pte_pfn(x)) 208#define pte_page(x) pfn_to_page(pte_pfn(x))
179 209
@@ -181,8 +211,8 @@ static inline void pud_clear(pud_t *pudp)
181#define pte_pfn(x) ((unsigned long)((x).pte >> (PAGE_SHIFT + 2))) 211#define pte_pfn(x) ((unsigned long)((x).pte >> (PAGE_SHIFT + 2)))
182#define pfn_pte(pfn, prot) __pte(((pfn) << (PAGE_SHIFT + 2)) | pgprot_val(prot)) 212#define pfn_pte(pfn, prot) __pte(((pfn) << (PAGE_SHIFT + 2)) | pgprot_val(prot))
183#else 213#else
184#define pte_pfn(x) ((unsigned long)((x).pte >> PAGE_SHIFT)) 214#define pte_pfn(x) ((unsigned long)((x).pte >> _PFN_SHIFT))
185#define pfn_pte(pfn, prot) __pte(((pfn) << PAGE_SHIFT) | pgprot_val(prot)) 215#define pfn_pte(pfn, prot) __pte(((pfn) << _PFN_SHIFT) | pgprot_val(prot))
186#endif 216#endif
187 217
188#define __pgd_offset(address) pgd_index(address) 218#define __pgd_offset(address) pgd_index(address)
@@ -198,6 +228,7 @@ static inline void pud_clear(pud_t *pudp)
198/* to find an entry in a page-table-directory */ 228/* to find an entry in a page-table-directory */
199#define pgd_offset(mm, addr) ((mm)->pgd + pgd_index(addr)) 229#define pgd_offset(mm, addr) ((mm)->pgd + pgd_index(addr))
200 230
231#ifndef __PAGETABLE_PMD_FOLDED
201static inline unsigned long pud_page_vaddr(pud_t pud) 232static inline unsigned long pud_page_vaddr(pud_t pud)
202{ 233{
203 return pud_val(pud); 234 return pud_val(pud);
@@ -210,6 +241,7 @@ static inline pmd_t *pmd_offset(pud_t * pud, unsigned long address)
210{ 241{
211 return (pmd_t *) pud_page_vaddr(*pud) + pmd_index(address); 242 return (pmd_t *) pud_page_vaddr(*pud) + pmd_index(address);
212} 243}
244#endif
213 245
214/* Find an entry in the third-level page table.. */ 246/* Find an entry in the third-level page table.. */
215#define __pte_offset(address) \ 247#define __pte_offset(address) \
diff --git a/arch/mips/include/asm/pgtable-bits.h b/arch/mips/include/asm/pgtable-bits.h
index 1073e6df8621..e9fe7e97ce4c 100644
--- a/arch/mips/include/asm/pgtable-bits.h
+++ b/arch/mips/include/asm/pgtable-bits.h
@@ -50,7 +50,7 @@
50#define _CACHE_SHIFT 3 50#define _CACHE_SHIFT 3
51#define _CACHE_MASK (7<<3) 51#define _CACHE_MASK (7<<3)
52 52
53#else 53#elif defined(CONFIG_CPU_R3000) || defined(CONFIG_CPU_TX39XX)
54 54
55#define _PAGE_PRESENT (1<<0) /* implemented in software */ 55#define _PAGE_PRESENT (1<<0) /* implemented in software */
56#define _PAGE_READ (1<<1) /* implemented in software */ 56#define _PAGE_READ (1<<1) /* implemented in software */
@@ -59,8 +59,6 @@
59#define _PAGE_MODIFIED (1<<4) /* implemented in software */ 59#define _PAGE_MODIFIED (1<<4) /* implemented in software */
60#define _PAGE_FILE (1<<4) /* set:pagecache unset:swap */ 60#define _PAGE_FILE (1<<4) /* set:pagecache unset:swap */
61 61
62#if defined(CONFIG_CPU_R3000) || defined(CONFIG_CPU_TX39XX)
63
64#define _PAGE_GLOBAL (1<<8) 62#define _PAGE_GLOBAL (1<<8)
65#define _PAGE_VALID (1<<9) 63#define _PAGE_VALID (1<<9)
66#define _PAGE_SILENT_READ (1<<9) /* synonym */ 64#define _PAGE_SILENT_READ (1<<9) /* synonym */
@@ -69,21 +67,113 @@
69#define _CACHE_UNCACHED (1<<11) 67#define _CACHE_UNCACHED (1<<11)
70#define _CACHE_MASK (1<<11) 68#define _CACHE_MASK (1<<11)
71 69
70#else /* 'Normal' r4K case */
71/*
72 * When using the RI/XI bit support, we have 13 bits of flags below
73 * the physical address. The RI/XI bits are placed such that a SRL 5
74 * can strip off the software bits, then a ROTR 2 can move the RI/XI
75 * into bits [63:62]. This also limits physical address to 56 bits,
76 * which is more than we need right now.
77 */
78
79/* implemented in software */
80#define _PAGE_PRESENT_SHIFT (0)
81#define _PAGE_PRESENT (1 << _PAGE_PRESENT_SHIFT)
82/* implemented in software, should be unused if kernel_uses_smartmips_rixi. */
83#define _PAGE_READ_SHIFT (kernel_uses_smartmips_rixi ? _PAGE_PRESENT_SHIFT : _PAGE_PRESENT_SHIFT + 1)
84#define _PAGE_READ ({if (kernel_uses_smartmips_rixi) BUG(); 1 << _PAGE_READ_SHIFT; })
85/* implemented in software */
86#define _PAGE_WRITE_SHIFT (_PAGE_READ_SHIFT + 1)
87#define _PAGE_WRITE (1 << _PAGE_WRITE_SHIFT)
88/* implemented in software */
89#define _PAGE_ACCESSED_SHIFT (_PAGE_WRITE_SHIFT + 1)
90#define _PAGE_ACCESSED (1 << _PAGE_ACCESSED_SHIFT)
91/* implemented in software */
92#define _PAGE_MODIFIED_SHIFT (_PAGE_ACCESSED_SHIFT + 1)
93#define _PAGE_MODIFIED (1 << _PAGE_MODIFIED_SHIFT)
94/* set:pagecache unset:swap */
95#define _PAGE_FILE (_PAGE_MODIFIED)
96
97#ifdef CONFIG_HUGETLB_PAGE
98/* huge tlb page */
99#define _PAGE_HUGE_SHIFT (_PAGE_MODIFIED_SHIFT + 1)
100#define _PAGE_HUGE (1 << _PAGE_HUGE_SHIFT)
72#else 101#else
102#define _PAGE_HUGE_SHIFT (_PAGE_MODIFIED_SHIFT)
103#define _PAGE_HUGE ({BUG(); 1; }) /* Dummy value */
104#endif
73 105
74#define _PAGE_R4KBUG (1<<5) /* workaround for r4k bug */ 106/* Page cannot be executed */
75#define _PAGE_HUGE (1<<5) /* huge tlb page */ 107#define _PAGE_NO_EXEC_SHIFT (kernel_uses_smartmips_rixi ? _PAGE_HUGE_SHIFT + 1 : _PAGE_HUGE_SHIFT)
76#define _PAGE_GLOBAL (1<<6) 108#define _PAGE_NO_EXEC ({if (!kernel_uses_smartmips_rixi) BUG(); 1 << _PAGE_NO_EXEC_SHIFT; })
77#define _PAGE_VALID (1<<7) 109
78#define _PAGE_SILENT_READ (1<<7) /* synonym */ 110/* Page cannot be read */
79#define _PAGE_DIRTY (1<<8) /* The MIPS dirty bit */ 111#define _PAGE_NO_READ_SHIFT (kernel_uses_smartmips_rixi ? _PAGE_NO_EXEC_SHIFT + 1 : _PAGE_NO_EXEC_SHIFT)
80#define _PAGE_SILENT_WRITE (1<<8) 112#define _PAGE_NO_READ ({if (!kernel_uses_smartmips_rixi) BUG(); 1 << _PAGE_NO_READ_SHIFT; })
81#define _CACHE_SHIFT 9 113
82#define _CACHE_MASK (7<<9) 114#define _PAGE_GLOBAL_SHIFT (_PAGE_NO_READ_SHIFT + 1)
115#define _PAGE_GLOBAL (1 << _PAGE_GLOBAL_SHIFT)
116
117#define _PAGE_VALID_SHIFT (_PAGE_GLOBAL_SHIFT + 1)
118#define _PAGE_VALID (1 << _PAGE_VALID_SHIFT)
119/* synonym */
120#define _PAGE_SILENT_READ (_PAGE_VALID)
121
122/* The MIPS dirty bit */
123#define _PAGE_DIRTY_SHIFT (_PAGE_VALID_SHIFT + 1)
124#define _PAGE_DIRTY (1 << _PAGE_DIRTY_SHIFT)
125#define _PAGE_SILENT_WRITE (_PAGE_DIRTY)
126
127#define _CACHE_SHIFT (_PAGE_DIRTY_SHIFT + 1)
128#define _CACHE_MASK (7 << _CACHE_SHIFT)
129
130#define _PFN_SHIFT (PAGE_SHIFT - 12 + _CACHE_SHIFT + 3)
83 131
84#endif
85#endif /* defined(CONFIG_64BIT_PHYS_ADDR && defined(CONFIG_CPU_MIPS32) */ 132#endif /* defined(CONFIG_64BIT_PHYS_ADDR && defined(CONFIG_CPU_MIPS32) */
86 133
134#ifndef _PFN_SHIFT
135#define _PFN_SHIFT PAGE_SHIFT
136#endif
137#define _PFN_MASK (~((1 << (_PFN_SHIFT)) - 1))
138
139#ifndef _PAGE_NO_READ
140#define _PAGE_NO_READ ({BUG(); 0; })
141#define _PAGE_NO_READ_SHIFT ({BUG(); 0; })
142#endif
143#ifndef _PAGE_NO_EXEC
144#define _PAGE_NO_EXEC ({BUG(); 0; })
145#endif
146#ifndef _PAGE_GLOBAL_SHIFT
147#define _PAGE_GLOBAL_SHIFT ilog2(_PAGE_GLOBAL)
148#endif
149
150
151#ifndef __ASSEMBLY__
152/*
153 * pte_to_entrylo converts a page table entry (PTE) into a Mips
154 * entrylo0/1 value.
155 */
156static inline uint64_t pte_to_entrylo(unsigned long pte_val)
157{
158 if (kernel_uses_smartmips_rixi) {
159 int sa;
160#ifdef CONFIG_32BIT
161 sa = 31 - _PAGE_NO_READ_SHIFT;
162#else
163 sa = 63 - _PAGE_NO_READ_SHIFT;
164#endif
165 /*
166 * C has no way to express that this is a DSRL
167 * _PAGE_NO_EXEC_SHIFT followed by a ROTR 2. Luckily
168 * in the fast path this is done in assembly
169 */
170 return (pte_val >> _PAGE_GLOBAL_SHIFT) |
171 ((pte_val & (_PAGE_NO_EXEC | _PAGE_NO_READ)) << sa);
172 }
173
174 return pte_val >> _PAGE_GLOBAL_SHIFT;
175}
176#endif
87 177
88/* 178/*
89 * Cache attributes 179 * Cache attributes
@@ -130,9 +220,9 @@
130 220
131#endif 221#endif
132 222
133#define __READABLE (_PAGE_READ | _PAGE_SILENT_READ | _PAGE_ACCESSED) 223#define __READABLE (_PAGE_SILENT_READ | _PAGE_ACCESSED | (kernel_uses_smartmips_rixi ? 0 : _PAGE_READ))
134#define __WRITEABLE (_PAGE_WRITE | _PAGE_SILENT_WRITE | _PAGE_MODIFIED) 224#define __WRITEABLE (_PAGE_WRITE | _PAGE_SILENT_WRITE | _PAGE_MODIFIED)
135 225
136#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_MODIFIED | _CACHE_MASK) 226#define _PAGE_CHG_MASK (_PFN_MASK | _PAGE_ACCESSED | _PAGE_MODIFIED | _CACHE_MASK)
137 227
138#endif /* _ASM_PGTABLE_BITS_H */ 228#endif /* _ASM_PGTABLE_BITS_H */
diff --git a/arch/mips/include/asm/pgtable.h b/arch/mips/include/asm/pgtable.h
index 1854336e56a2..93598ba01355 100644
--- a/arch/mips/include/asm/pgtable.h
+++ b/arch/mips/include/asm/pgtable.h
@@ -22,23 +22,24 @@ struct mm_struct;
22struct vm_area_struct; 22struct vm_area_struct;
23 23
24#define PAGE_NONE __pgprot(_PAGE_PRESENT | _CACHE_CACHABLE_NONCOHERENT) 24#define PAGE_NONE __pgprot(_PAGE_PRESENT | _CACHE_CACHABLE_NONCOHERENT)
25#define PAGE_SHARED __pgprot(_PAGE_PRESENT | _PAGE_READ | _PAGE_WRITE | \ 25#define PAGE_SHARED __pgprot(_PAGE_PRESENT | _PAGE_WRITE | (kernel_uses_smartmips_rixi ? 0 : _PAGE_READ) | \
26 _page_cachable_default) 26 _page_cachable_default)
27#define PAGE_COPY __pgprot(_PAGE_PRESENT | _PAGE_READ | \ 27#define PAGE_COPY __pgprot(_PAGE_PRESENT | (kernel_uses_smartmips_rixi ? 0 : _PAGE_READ) | \
28 _page_cachable_default) 28 (kernel_uses_smartmips_rixi ? _PAGE_NO_EXEC : 0) | _page_cachable_default)
29#define PAGE_READONLY __pgprot(_PAGE_PRESENT | _PAGE_READ | \ 29#define PAGE_READONLY __pgprot(_PAGE_PRESENT | (kernel_uses_smartmips_rixi ? 0 : _PAGE_READ) | \
30 _page_cachable_default) 30 _page_cachable_default)
31#define PAGE_KERNEL __pgprot(_PAGE_PRESENT | __READABLE | __WRITEABLE | \ 31#define PAGE_KERNEL __pgprot(_PAGE_PRESENT | __READABLE | __WRITEABLE | \
32 _PAGE_GLOBAL | _page_cachable_default) 32 _PAGE_GLOBAL | _page_cachable_default)
33#define PAGE_USERIO __pgprot(_PAGE_PRESENT | _PAGE_READ | _PAGE_WRITE | \ 33#define PAGE_USERIO __pgprot(_PAGE_PRESENT | (kernel_uses_smartmips_rixi ? 0 : _PAGE_READ) | _PAGE_WRITE | \
34 _page_cachable_default) 34 _page_cachable_default)
35#define PAGE_KERNEL_UNCACHED __pgprot(_PAGE_PRESENT | __READABLE | \ 35#define PAGE_KERNEL_UNCACHED __pgprot(_PAGE_PRESENT | __READABLE | \
36 __WRITEABLE | _PAGE_GLOBAL | _CACHE_UNCACHED) 36 __WRITEABLE | _PAGE_GLOBAL | _CACHE_UNCACHED)
37 37
38/* 38/*
39 * MIPS can't do page protection for execute, and considers that the same like 39 * If _PAGE_NO_EXEC is not defined, we can't do page protection for
40 * read. Also, write permissions imply read permissions. This is the closest 40 * execute, and consider it to be the same as read. Also, write
41 * we can get by reasonable means.. 41 * permissions imply read permissions. This is the closest we can get
42 * by reasonable means..
42 */ 43 */
43 44
44/* 45/*
@@ -177,7 +178,7 @@ static inline void pte_clear(struct mm_struct *mm, unsigned long addr, pte_t *pt
177 */ 178 */
178#define set_pmd(pmdptr, pmdval) do { *(pmdptr) = (pmdval); } while(0) 179#define set_pmd(pmdptr, pmdval) do { *(pmdptr) = (pmdval); } while(0)
179 180
180#ifdef CONFIG_64BIT 181#ifndef __PAGETABLE_PMD_FOLDED
181/* 182/*
182 * (puds are folded into pgds so this doesn't get actually called, 183 * (puds are folded into pgds so this doesn't get actually called,
183 * but the define is needed for a generic inline function.) 184 * but the define is needed for a generic inline function.)
@@ -298,8 +299,13 @@ static inline pte_t pte_mkdirty(pte_t pte)
298static inline pte_t pte_mkyoung(pte_t pte) 299static inline pte_t pte_mkyoung(pte_t pte)
299{ 300{
300 pte_val(pte) |= _PAGE_ACCESSED; 301 pte_val(pte) |= _PAGE_ACCESSED;
301 if (pte_val(pte) & _PAGE_READ) 302 if (kernel_uses_smartmips_rixi) {
302 pte_val(pte) |= _PAGE_SILENT_READ; 303 if (!(pte_val(pte) & _PAGE_NO_READ))
304 pte_val(pte) |= _PAGE_SILENT_READ;
305 } else {
306 if (pte_val(pte) & _PAGE_READ)
307 pte_val(pte) |= _PAGE_SILENT_READ;
308 }
303 return pte; 309 return pte;
304} 310}
305 311
diff --git a/arch/mips/include/asm/pmc-sierra/msp71xx/msp_prom.h b/arch/mips/include/asm/pmc-sierra/msp71xx/msp_prom.h
index 14ca7dc382a8..54ef1a96d7ce 100644
--- a/arch/mips/include/asm/pmc-sierra/msp71xx/msp_prom.h
+++ b/arch/mips/include/asm/pmc-sierra/msp71xx/msp_prom.h
@@ -118,7 +118,6 @@
118#define ZSP_DUET 'D' /* one DUET zsp engine */ 118#define ZSP_DUET 'D' /* one DUET zsp engine */
119#define ZSP_TRIAD 'T' /* two TRIAD zsp engines */ 119#define ZSP_TRIAD 'T' /* two TRIAD zsp engines */
120 120
121extern char *prom_getcmdline(void);
122extern char *prom_getenv(char *name); 121extern char *prom_getenv(char *name);
123extern void prom_init_cmdline(void); 122extern void prom_init_cmdline(void);
124extern void prom_meminit(void); 123extern void prom_meminit(void);
diff --git a/arch/mips/include/asm/serial.h b/arch/mips/include/asm/serial.h
index c07ebd8eb9e7..a0cb0caff152 100644
--- a/arch/mips/include/asm/serial.h
+++ b/arch/mips/include/asm/serial.h
@@ -1,22 +1 @@
1/* #include <asm-generic/serial.h>
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 1999 by Ralf Baechle
7 * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
8 */
9#ifndef _ASM_SERIAL_H
10#define _ASM_SERIAL_H
11
12
13/*
14 * This assumes you have a 1.8432 MHz clock for your UART.
15 *
16 * It'd be nice if someone built a serial card with a 24.576 MHz
17 * clock, since the 16550A is capable of handling a top speed of 1.5
18 * megabits/second; but this requires the faster clock.
19 */
20#define BASE_BAUD (1843200 / 16)
21
22#endif /* _ASM_SERIAL_H */
diff --git a/arch/mips/include/asm/sgialib.h b/arch/mips/include/asm/sgialib.h
index 63741ca1e422..2a2f1bddc276 100644
--- a/arch/mips/include/asm/sgialib.h
+++ b/arch/mips/include/asm/sgialib.h
@@ -33,14 +33,6 @@ extern int prom_flags;
33extern void prom_putchar(char c); 33extern void prom_putchar(char c);
34extern char prom_getchar(void); 34extern char prom_getchar(void);
35 35
36/* Memory descriptor management. */
37#define PROM_MAX_PMEMBLOCKS 32
38struct prom_pmemblock {
39 LONG base; /* Within KSEG0 or XKPHYS. */
40 ULONG size; /* In bytes. */
41 ULONG type; /* free or prom memory */
42};
43
44/* Get next memory descriptor after CURR, returns first descriptor 36/* Get next memory descriptor after CURR, returns first descriptor
45 * in chain is CURR is NULL. 37 * in chain is CURR is NULL.
46 */ 38 */
@@ -51,7 +43,6 @@ extern struct linux_mdesc *prom_getmdesc(struct linux_mdesc *curr);
51 * array. 43 * array.
52 */ 44 */
53extern void prom_meminit(void); 45extern void prom_meminit(void);
54extern void prom_fixup_mem_map(unsigned long start_mem, unsigned long end_mem);
55 46
56/* PROM device tree library routines. */ 47/* PROM device tree library routines. */
57#define PROM_NULL_COMPONENT ((pcomponent *) 0) 48#define PROM_NULL_COMPONENT ((pcomponent *) 0)
@@ -62,20 +53,6 @@ extern pcomponent *ArcGetPeer(pcomponent *this);
62/* Get child component of THIS. */ 53/* Get child component of THIS. */
63extern pcomponent *ArcGetChild(pcomponent *this); 54extern pcomponent *ArcGetChild(pcomponent *this);
64 55
65/* Get parent component of CHILD. */
66extern pcomponent *prom_getparent(pcomponent *child);
67
68/* Copy component opaque data of component THIS into BUFFER
69 * if component THIS has opaque data. Returns success or
70 * failure status.
71 */
72extern long prom_getcdata(void *buffer, pcomponent *this);
73
74/* Other misc. component routines. */
75extern pcomponent *prom_childadd(pcomponent *this, pcomponent *tmp, void *data);
76extern long prom_delcomponent(pcomponent *this);
77extern pcomponent *prom_componentbypath(char *path);
78
79/* This is called at prom_init time to identify the 56/* This is called at prom_init time to identify the
80 * ARC architecture we are running on 57 * ARC architecture we are running on
81 */ 58 */
@@ -88,35 +65,13 @@ extern LONG ArcSetEnvironmentVariable(PCHAR name, PCHAR value);
88/* ARCS command line parsing. */ 65/* ARCS command line parsing. */
89extern void prom_init_cmdline(void); 66extern void prom_init_cmdline(void);
90 67
91/* Acquiring info about the current time, etc. */
92extern struct linux_tinfo *prom_gettinfo(void);
93extern unsigned long prom_getrtime(void);
94
95/* File operations. */ 68/* File operations. */
96extern long prom_getvdirent(unsigned long fd, struct linux_vdirent *ent, unsigned long num, unsigned long *cnt);
97extern long prom_open(char *name, enum linux_omode md, unsigned long *fd);
98extern long prom_close(unsigned long fd);
99extern LONG ArcRead(ULONG fd, PVOID buf, ULONG num, PULONG cnt); 69extern LONG ArcRead(ULONG fd, PVOID buf, ULONG num, PULONG cnt);
100extern long prom_getrstatus(unsigned long fd);
101extern LONG ArcWrite(ULONG fd, PVOID buf, ULONG num, PULONG cnt); 70extern LONG ArcWrite(ULONG fd, PVOID buf, ULONG num, PULONG cnt);
102extern long prom_seek(unsigned long fd, struct linux_bigint *off, enum linux_seekmode sm);
103extern long prom_mount(char *name, enum linux_mountops op);
104extern long prom_getfinfo(unsigned long fd, struct linux_finfo *buf);
105extern long prom_setfinfo(unsigned long fd, unsigned long flags, unsigned long msk);
106
107/* Running stand-along programs. */
108extern long prom_load(char *name, unsigned long end, unsigned long *pc, unsigned long *eaddr);
109extern long prom_invoke(unsigned long pc, unsigned long sp, long argc, char **argv, char **envp);
110extern long prom_exec(char *name, long argc, char **argv, char **envp);
111 71
112/* Misc. routines. */ 72/* Misc. routines. */
113extern VOID prom_halt(VOID) __attribute__((noreturn));
114extern VOID prom_powerdown(VOID) __attribute__((noreturn));
115extern VOID prom_restart(VOID) __attribute__((noreturn));
116extern VOID ArcReboot(VOID) __attribute__((noreturn)); 73extern VOID ArcReboot(VOID) __attribute__((noreturn));
117extern VOID ArcEnterInteractiveMode(VOID) __attribute__((noreturn)); 74extern VOID ArcEnterInteractiveMode(VOID) __attribute__((noreturn));
118extern long prom_cfgsave(VOID);
119extern struct linux_sysid *prom_getsysid(VOID);
120extern VOID ArcFlushAllCaches(VOID); 75extern VOID ArcFlushAllCaches(VOID);
121extern DISPLAY_STATUS *ArcGetDisplayStatus(ULONG FileID); 76extern DISPLAY_STATUS *ArcGetDisplayStatus(ULONG FileID);
122 77
diff --git a/arch/mips/include/asm/sibyte/bigsur.h b/arch/mips/include/asm/sibyte/bigsur.h
index ebefe797fc1d..2d1a26d3436a 100644
--- a/arch/mips/include/asm/sibyte/bigsur.h
+++ b/arch/mips/include/asm/sibyte/bigsur.h
@@ -46,4 +46,3 @@
46#endif 46#endif
47 47
48#endif /* __ASM_SIBYTE_BIGSUR_H */ 48#endif /* __ASM_SIBYTE_BIGSUR_H */
49
diff --git a/arch/mips/include/asm/sibyte/sb1250_ldt.h b/arch/mips/include/asm/sibyte/sb1250_ldt.h
index 081e8b1c4ad0..1e76cf137995 100644
--- a/arch/mips/include/asm/sibyte/sb1250_ldt.h
+++ b/arch/mips/include/asm/sibyte/sb1250_ldt.h
@@ -420,4 +420,3 @@
420#endif /* 1250 PASS2 || 112x PASS1 */ 420#endif /* 1250 PASS2 || 112x PASS1 */
421 421
422#endif 422#endif
423
diff --git a/arch/mips/include/asm/sn/klkernvars.h b/arch/mips/include/asm/sn/klkernvars.h
index 5de4c5e8ab30..6af25ba41ade 100644
--- a/arch/mips/include/asm/sn/klkernvars.h
+++ b/arch/mips/include/asm/sn/klkernvars.h
@@ -26,4 +26,3 @@ typedef struct kern_vars_s {
26#endif /* !__ASSEMBLY__ */ 26#endif /* !__ASSEMBLY__ */
27 27
28#endif /* __ASM_SN_KLKERNVARS_H */ 28#endif /* __ASM_SN_KLKERNVARS_H */
29
diff --git a/arch/mips/include/asm/sparsemem.h b/arch/mips/include/asm/sparsemem.h
index 795ac6c23203..7165333ad043 100644
--- a/arch/mips/include/asm/sparsemem.h
+++ b/arch/mips/include/asm/sparsemem.h
@@ -11,4 +11,3 @@
11 11
12#endif /* CONFIG_SPARSEMEM */ 12#endif /* CONFIG_SPARSEMEM */
13#endif /* _MIPS_SPARSEMEM_H */ 13#endif /* _MIPS_SPARSEMEM_H */
14
diff --git a/arch/mips/include/asm/spinlock.h b/arch/mips/include/asm/spinlock.h
index 21ef9efbde43..396e402fbe2c 100644
--- a/arch/mips/include/asm/spinlock.h
+++ b/arch/mips/include/asm/spinlock.h
@@ -36,9 +36,9 @@
36 36
37static inline int arch_spin_is_locked(arch_spinlock_t *lock) 37static inline int arch_spin_is_locked(arch_spinlock_t *lock)
38{ 38{
39 unsigned int counters = ACCESS_ONCE(lock->lock); 39 u32 counters = ACCESS_ONCE(lock->lock);
40 40
41 return ((counters >> 14) ^ counters) & 0x1fff; 41 return ((counters >> 16) ^ counters) & 0xffff;
42} 42}
43 43
44#define arch_spin_lock_flags(lock, flags) arch_spin_lock(lock) 44#define arch_spin_lock_flags(lock, flags) arch_spin_lock(lock)
@@ -47,9 +47,9 @@ static inline int arch_spin_is_locked(arch_spinlock_t *lock)
47 47
48static inline int arch_spin_is_contended(arch_spinlock_t *lock) 48static inline int arch_spin_is_contended(arch_spinlock_t *lock)
49{ 49{
50 unsigned int counters = ACCESS_ONCE(lock->lock); 50 u32 counters = ACCESS_ONCE(lock->lock);
51 51
52 return (((counters >> 14) - counters) & 0x1fff) > 1; 52 return (((counters >> 16) - counters) & 0xffff) > 1;
53} 53}
54#define arch_spin_is_contended arch_spin_is_contended 54#define arch_spin_is_contended arch_spin_is_contended
55 55
@@ -57,6 +57,7 @@ static inline void arch_spin_lock(arch_spinlock_t *lock)
57{ 57{
58 int my_ticket; 58 int my_ticket;
59 int tmp; 59 int tmp;
60 int inc = 0x10000;
60 61
61 if (R10000_LLSC_WAR) { 62 if (R10000_LLSC_WAR) {
62 __asm__ __volatile__ ( 63 __asm__ __volatile__ (
@@ -64,25 +65,24 @@ static inline void arch_spin_lock(arch_spinlock_t *lock)
64 " .set noreorder \n" 65 " .set noreorder \n"
65 " \n" 66 " \n"
66 "1: ll %[ticket], %[ticket_ptr] \n" 67 "1: ll %[ticket], %[ticket_ptr] \n"
67 " addiu %[my_ticket], %[ticket], 0x4000 \n" 68 " addu %[my_ticket], %[ticket], %[inc] \n"
68 " sc %[my_ticket], %[ticket_ptr] \n" 69 " sc %[my_ticket], %[ticket_ptr] \n"
69 " beqzl %[my_ticket], 1b \n" 70 " beqzl %[my_ticket], 1b \n"
70 " nop \n" 71 " nop \n"
71 " srl %[my_ticket], %[ticket], 14 \n" 72 " srl %[my_ticket], %[ticket], 16 \n"
72 " andi %[my_ticket], %[my_ticket], 0x1fff \n" 73 " andi %[ticket], %[ticket], 0xffff \n"
73 " andi %[ticket], %[ticket], 0x1fff \n" 74 " andi %[my_ticket], %[my_ticket], 0xffff \n"
74 " bne %[ticket], %[my_ticket], 4f \n" 75 " bne %[ticket], %[my_ticket], 4f \n"
75 " subu %[ticket], %[my_ticket], %[ticket] \n" 76 " subu %[ticket], %[my_ticket], %[ticket] \n"
76 "2: \n" 77 "2: \n"
77 " .subsection 2 \n" 78 " .subsection 2 \n"
78 "4: andi %[ticket], %[ticket], 0x1fff \n" 79 "4: andi %[ticket], %[ticket], 0xffff \n"
79 " sll %[ticket], 5 \n" 80 " sll %[ticket], 5 \n"
80 " \n" 81 " \n"
81 "6: bnez %[ticket], 6b \n" 82 "6: bnez %[ticket], 6b \n"
82 " subu %[ticket], 1 \n" 83 " subu %[ticket], 1 \n"
83 " \n" 84 " \n"
84 " lw %[ticket], %[ticket_ptr] \n" 85 " lhu %[ticket], %[serving_now_ptr] \n"
85 " andi %[ticket], %[ticket], 0x1fff \n"
86 " beq %[ticket], %[my_ticket], 2b \n" 86 " beq %[ticket], %[my_ticket], 2b \n"
87 " subu %[ticket], %[my_ticket], %[ticket] \n" 87 " subu %[ticket], %[my_ticket], %[ticket] \n"
88 " b 4b \n" 88 " b 4b \n"
@@ -90,36 +90,33 @@ static inline void arch_spin_lock(arch_spinlock_t *lock)
90 " .previous \n" 90 " .previous \n"
91 " .set pop \n" 91 " .set pop \n"
92 : [ticket_ptr] "+m" (lock->lock), 92 : [ticket_ptr] "+m" (lock->lock),
93 [serving_now_ptr] "+m" (lock->h.serving_now),
93 [ticket] "=&r" (tmp), 94 [ticket] "=&r" (tmp),
94 [my_ticket] "=&r" (my_ticket)); 95 [my_ticket] "=&r" (my_ticket)
96 : [inc] "r" (inc));
95 } else { 97 } else {
96 __asm__ __volatile__ ( 98 __asm__ __volatile__ (
97 " .set push # arch_spin_lock \n" 99 " .set push # arch_spin_lock \n"
98 " .set noreorder \n" 100 " .set noreorder \n"
99 " \n" 101 " \n"
100 " ll %[ticket], %[ticket_ptr] \n" 102 "1: ll %[ticket], %[ticket_ptr] \n"
101 "1: addiu %[my_ticket], %[ticket], 0x4000 \n" 103 " addu %[my_ticket], %[ticket], %[inc] \n"
102 " sc %[my_ticket], %[ticket_ptr] \n" 104 " sc %[my_ticket], %[ticket_ptr] \n"
103 " beqz %[my_ticket], 3f \n" 105 " beqz %[my_ticket], 1b \n"
104 " nop \n" 106 " srl %[my_ticket], %[ticket], 16 \n"
105 " srl %[my_ticket], %[ticket], 14 \n" 107 " andi %[ticket], %[ticket], 0xffff \n"
106 " andi %[my_ticket], %[my_ticket], 0x1fff \n" 108 " andi %[my_ticket], %[my_ticket], 0xffff \n"
107 " andi %[ticket], %[ticket], 0x1fff \n"
108 " bne %[ticket], %[my_ticket], 4f \n" 109 " bne %[ticket], %[my_ticket], 4f \n"
109 " subu %[ticket], %[my_ticket], %[ticket] \n" 110 " subu %[ticket], %[my_ticket], %[ticket] \n"
110 "2: \n" 111 "2: \n"
111 " .subsection 2 \n" 112 " .subsection 2 \n"
112 "3: b 1b \n"
113 " ll %[ticket], %[ticket_ptr] \n"
114 " \n"
115 "4: andi %[ticket], %[ticket], 0x1fff \n" 113 "4: andi %[ticket], %[ticket], 0x1fff \n"
116 " sll %[ticket], 5 \n" 114 " sll %[ticket], 5 \n"
117 " \n" 115 " \n"
118 "6: bnez %[ticket], 6b \n" 116 "6: bnez %[ticket], 6b \n"
119 " subu %[ticket], 1 \n" 117 " subu %[ticket], 1 \n"
120 " \n" 118 " \n"
121 " lw %[ticket], %[ticket_ptr] \n" 119 " lhu %[ticket], %[serving_now_ptr] \n"
122 " andi %[ticket], %[ticket], 0x1fff \n"
123 " beq %[ticket], %[my_ticket], 2b \n" 120 " beq %[ticket], %[my_ticket], 2b \n"
124 " subu %[ticket], %[my_ticket], %[ticket] \n" 121 " subu %[ticket], %[my_ticket], %[ticket] \n"
125 " b 4b \n" 122 " b 4b \n"
@@ -127,8 +124,10 @@ static inline void arch_spin_lock(arch_spinlock_t *lock)
127 " .previous \n" 124 " .previous \n"
128 " .set pop \n" 125 " .set pop \n"
129 : [ticket_ptr] "+m" (lock->lock), 126 : [ticket_ptr] "+m" (lock->lock),
127 [serving_now_ptr] "+m" (lock->h.serving_now),
130 [ticket] "=&r" (tmp), 128 [ticket] "=&r" (tmp),
131 [my_ticket] "=&r" (my_ticket)); 129 [my_ticket] "=&r" (my_ticket)
130 : [inc] "r" (inc));
132 } 131 }
133 132
134 smp_llsc_mb(); 133 smp_llsc_mb();
@@ -136,47 +135,16 @@ static inline void arch_spin_lock(arch_spinlock_t *lock)
136 135
137static inline void arch_spin_unlock(arch_spinlock_t *lock) 136static inline void arch_spin_unlock(arch_spinlock_t *lock)
138{ 137{
139 int tmp; 138 unsigned int serving_now = lock->h.serving_now + 1;
140 139 wmb();
141 smp_llsc_mb(); 140 lock->h.serving_now = (u16)serving_now;
142 141 nudge_writes();
143 if (R10000_LLSC_WAR) {
144 __asm__ __volatile__ (
145 " # arch_spin_unlock \n"
146 "1: ll %[ticket], %[ticket_ptr] \n"
147 " addiu %[ticket], %[ticket], 1 \n"
148 " ori %[ticket], %[ticket], 0x2000 \n"
149 " xori %[ticket], %[ticket], 0x2000 \n"
150 " sc %[ticket], %[ticket_ptr] \n"
151 " beqzl %[ticket], 1b \n"
152 : [ticket_ptr] "+m" (lock->lock),
153 [ticket] "=&r" (tmp));
154 } else {
155 __asm__ __volatile__ (
156 " .set push # arch_spin_unlock \n"
157 " .set noreorder \n"
158 " \n"
159 " ll %[ticket], %[ticket_ptr] \n"
160 "1: addiu %[ticket], %[ticket], 1 \n"
161 " ori %[ticket], %[ticket], 0x2000 \n"
162 " xori %[ticket], %[ticket], 0x2000 \n"
163 " sc %[ticket], %[ticket_ptr] \n"
164 " beqz %[ticket], 2f \n"
165 " nop \n"
166 " \n"
167 " .subsection 2 \n"
168 "2: b 1b \n"
169 " ll %[ticket], %[ticket_ptr] \n"
170 " .previous \n"
171 " .set pop \n"
172 : [ticket_ptr] "+m" (lock->lock),
173 [ticket] "=&r" (tmp));
174 }
175} 142}
176 143
177static inline unsigned int arch_spin_trylock(arch_spinlock_t *lock) 144static inline unsigned int arch_spin_trylock(arch_spinlock_t *lock)
178{ 145{
179 int tmp, tmp2, tmp3; 146 int tmp, tmp2, tmp3;
147 int inc = 0x10000;
180 148
181 if (R10000_LLSC_WAR) { 149 if (R10000_LLSC_WAR) {
182 __asm__ __volatile__ ( 150 __asm__ __volatile__ (
@@ -184,11 +152,11 @@ static inline unsigned int arch_spin_trylock(arch_spinlock_t *lock)
184 " .set noreorder \n" 152 " .set noreorder \n"
185 " \n" 153 " \n"
186 "1: ll %[ticket], %[ticket_ptr] \n" 154 "1: ll %[ticket], %[ticket_ptr] \n"
187 " srl %[my_ticket], %[ticket], 14 \n" 155 " srl %[my_ticket], %[ticket], 16 \n"
188 " andi %[my_ticket], %[my_ticket], 0x1fff \n" 156 " andi %[my_ticket], %[my_ticket], 0xffff \n"
189 " andi %[now_serving], %[ticket], 0x1fff \n" 157 " andi %[now_serving], %[ticket], 0xffff \n"
190 " bne %[my_ticket], %[now_serving], 3f \n" 158 " bne %[my_ticket], %[now_serving], 3f \n"
191 " addiu %[ticket], %[ticket], 0x4000 \n" 159 " addu %[ticket], %[ticket], %[inc] \n"
192 " sc %[ticket], %[ticket_ptr] \n" 160 " sc %[ticket], %[ticket_ptr] \n"
193 " beqzl %[ticket], 1b \n" 161 " beqzl %[ticket], 1b \n"
194 " li %[ticket], 1 \n" 162 " li %[ticket], 1 \n"
@@ -201,33 +169,33 @@ static inline unsigned int arch_spin_trylock(arch_spinlock_t *lock)
201 : [ticket_ptr] "+m" (lock->lock), 169 : [ticket_ptr] "+m" (lock->lock),
202 [ticket] "=&r" (tmp), 170 [ticket] "=&r" (tmp),
203 [my_ticket] "=&r" (tmp2), 171 [my_ticket] "=&r" (tmp2),
204 [now_serving] "=&r" (tmp3)); 172 [now_serving] "=&r" (tmp3)
173 : [inc] "r" (inc));
205 } else { 174 } else {
206 __asm__ __volatile__ ( 175 __asm__ __volatile__ (
207 " .set push # arch_spin_trylock \n" 176 " .set push # arch_spin_trylock \n"
208 " .set noreorder \n" 177 " .set noreorder \n"
209 " \n" 178 " \n"
210 " ll %[ticket], %[ticket_ptr] \n" 179 "1: ll %[ticket], %[ticket_ptr] \n"
211 "1: srl %[my_ticket], %[ticket], 14 \n" 180 " srl %[my_ticket], %[ticket], 16 \n"
212 " andi %[my_ticket], %[my_ticket], 0x1fff \n" 181 " andi %[my_ticket], %[my_ticket], 0xffff \n"
213 " andi %[now_serving], %[ticket], 0x1fff \n" 182 " andi %[now_serving], %[ticket], 0xffff \n"
214 " bne %[my_ticket], %[now_serving], 3f \n" 183 " bne %[my_ticket], %[now_serving], 3f \n"
215 " addiu %[ticket], %[ticket], 0x4000 \n" 184 " addu %[ticket], %[ticket], %[inc] \n"
216 " sc %[ticket], %[ticket_ptr] \n" 185 " sc %[ticket], %[ticket_ptr] \n"
217 " beqz %[ticket], 4f \n" 186 " beqz %[ticket], 1b \n"
218 " li %[ticket], 1 \n" 187 " li %[ticket], 1 \n"
219 "2: \n" 188 "2: \n"
220 " .subsection 2 \n" 189 " .subsection 2 \n"
221 "3: b 2b \n" 190 "3: b 2b \n"
222 " li %[ticket], 0 \n" 191 " li %[ticket], 0 \n"
223 "4: b 1b \n"
224 " ll %[ticket], %[ticket_ptr] \n"
225 " .previous \n" 192 " .previous \n"
226 " .set pop \n" 193 " .set pop \n"
227 : [ticket_ptr] "+m" (lock->lock), 194 : [ticket_ptr] "+m" (lock->lock),
228 [ticket] "=&r" (tmp), 195 [ticket] "=&r" (tmp),
229 [my_ticket] "=&r" (tmp2), 196 [my_ticket] "=&r" (tmp2),
230 [now_serving] "=&r" (tmp3)); 197 [now_serving] "=&r" (tmp3)
198 : [inc] "r" (inc));
231 } 199 }
232 200
233 smp_llsc_mb(); 201 smp_llsc_mb();
@@ -305,7 +273,7 @@ static inline void arch_read_unlock(arch_rwlock_t *rw)
305{ 273{
306 unsigned int tmp; 274 unsigned int tmp;
307 275
308 smp_llsc_mb(); 276 smp_mb__before_llsc();
309 277
310 if (R10000_LLSC_WAR) { 278 if (R10000_LLSC_WAR) {
311 __asm__ __volatile__( 279 __asm__ __volatile__(
diff --git a/arch/mips/include/asm/spinlock_types.h b/arch/mips/include/asm/spinlock_types.h
index ee197c2f9c98..c52f36013a9d 100644
--- a/arch/mips/include/asm/spinlock_types.h
+++ b/arch/mips/include/asm/spinlock_types.h
@@ -5,16 +5,28 @@
5# error "please don't include this file directly" 5# error "please don't include this file directly"
6#endif 6#endif
7 7
8typedef struct { 8#include <linux/types.h>
9
10#include <asm/byteorder.h>
11
12typedef union {
9 /* 13 /*
10 * bits 0..13: serving_now 14 * bits 0..15 : serving_now
11 * bits 14 : junk data 15 * bits 16..31 : ticket
12 * bits 15..28: ticket
13 */ 16 */
14 unsigned int lock; 17 u32 lock;
18 struct {
19#ifdef __BIG_ENDIAN
20 u16 ticket;
21 u16 serving_now;
22#else
23 u16 serving_now;
24 u16 ticket;
25#endif
26 } h;
15} arch_spinlock_t; 27} arch_spinlock_t;
16 28
17#define __ARCH_SPIN_LOCK_UNLOCKED { 0 } 29#define __ARCH_SPIN_LOCK_UNLOCKED { .lock = 0 }
18 30
19typedef struct { 31typedef struct {
20 volatile unsigned int lock; 32 volatile unsigned int lock;
diff --git a/arch/mips/include/asm/system.h b/arch/mips/include/asm/system.h
index 83b5509e09e8..bb937ccfba1e 100644
--- a/arch/mips/include/asm/system.h
+++ b/arch/mips/include/asm/system.h
@@ -95,6 +95,8 @@ static inline unsigned long __xchg_u32(volatile int * m, unsigned int val)
95{ 95{
96 __u32 retval; 96 __u32 retval;
97 97
98 smp_mb__before_llsc();
99
98 if (kernel_uses_llsc && R10000_LLSC_WAR) { 100 if (kernel_uses_llsc && R10000_LLSC_WAR) {
99 unsigned long dummy; 101 unsigned long dummy;
100 102
@@ -147,6 +149,8 @@ static inline __u64 __xchg_u64(volatile __u64 * m, __u64 val)
147{ 149{
148 __u64 retval; 150 __u64 retval;
149 151
152 smp_mb__before_llsc();
153
150 if (kernel_uses_llsc && R10000_LLSC_WAR) { 154 if (kernel_uses_llsc && R10000_LLSC_WAR) {
151 unsigned long dummy; 155 unsigned long dummy;
152 156
diff --git a/arch/mips/include/asm/txx9/generic.h b/arch/mips/include/asm/txx9/generic.h
index 827dc22be2ea..64887d3c7ec3 100644
--- a/arch/mips/include/asm/txx9/generic.h
+++ b/arch/mips/include/asm/txx9/generic.h
@@ -42,7 +42,6 @@ struct txx9_board_vec {
42}; 42};
43extern struct txx9_board_vec *txx9_board_vec; 43extern struct txx9_board_vec *txx9_board_vec;
44extern int (*txx9_irq_dispatch)(int pending); 44extern int (*txx9_irq_dispatch)(int pending);
45char *prom_getcmdline(void);
46const char *prom_getenv(const char *name); 45const char *prom_getenv(const char *name);
47void txx9_wdt_init(unsigned long base); 46void txx9_wdt_init(unsigned long base);
48void txx9_wdt_now(unsigned long base); 47void txx9_wdt_now(unsigned long base);
diff --git a/arch/mips/mm/uasm.h b/arch/mips/include/asm/uasm.h
index 3d153edaa51e..b99bd07e199b 100644
--- a/arch/mips/mm/uasm.h
+++ b/arch/mips/include/asm/uasm.h
@@ -92,9 +92,11 @@ Ip_u2s3u1(_sd);
92Ip_u2u1u3(_sll); 92Ip_u2u1u3(_sll);
93Ip_u2u1u3(_sra); 93Ip_u2u1u3(_sra);
94Ip_u2u1u3(_srl); 94Ip_u2u1u3(_srl);
95Ip_u2u1u3(_rotr);
95Ip_u3u1u2(_subu); 96Ip_u3u1u2(_subu);
96Ip_u2s3u1(_sw); 97Ip_u2s3u1(_sw);
97Ip_0(_tlbp); 98Ip_0(_tlbp);
99Ip_0(_tlbr);
98Ip_0(_tlbwi); 100Ip_0(_tlbwi);
99Ip_0(_tlbwr); 101Ip_0(_tlbwr);
100Ip_u3u1u2(_xor); 102Ip_u3u1u2(_xor);
@@ -129,6 +131,7 @@ static inline void __cpuinit uasm_l##lb(struct uasm_label **lab, u32 *addr) \
129# define UASM_i_SLL(buf, rs, rt, sh) uasm_i_dsll(buf, rs, rt, sh) 131# define UASM_i_SLL(buf, rs, rt, sh) uasm_i_dsll(buf, rs, rt, sh)
130# define UASM_i_SRA(buf, rs, rt, sh) uasm_i_dsra(buf, rs, rt, sh) 132# define UASM_i_SRA(buf, rs, rt, sh) uasm_i_dsra(buf, rs, rt, sh)
131# define UASM_i_SRL(buf, rs, rt, sh) uasm_i_dsrl(buf, rs, rt, sh) 133# define UASM_i_SRL(buf, rs, rt, sh) uasm_i_dsrl(buf, rs, rt, sh)
134# define UASM_i_ROTR(buf, rs, rt, sh) uasm_i_drotr(buf, rs, rt, sh)
132# define UASM_i_MFC0(buf, rt, rd...) uasm_i_dmfc0(buf, rt, rd) 135# define UASM_i_MFC0(buf, rt, rd...) uasm_i_dmfc0(buf, rt, rd)
133# define UASM_i_MTC0(buf, rt, rd...) uasm_i_dmtc0(buf, rt, rd) 136# define UASM_i_MTC0(buf, rt, rd...) uasm_i_dmtc0(buf, rt, rd)
134# define UASM_i_ADDIU(buf, rs, rt, val) uasm_i_daddiu(buf, rs, rt, val) 137# define UASM_i_ADDIU(buf, rs, rt, val) uasm_i_daddiu(buf, rs, rt, val)
@@ -142,6 +145,7 @@ static inline void __cpuinit uasm_l##lb(struct uasm_label **lab, u32 *addr) \
142# define UASM_i_SLL(buf, rs, rt, sh) uasm_i_sll(buf, rs, rt, sh) 145# define UASM_i_SLL(buf, rs, rt, sh) uasm_i_sll(buf, rs, rt, sh)
143# define UASM_i_SRA(buf, rs, rt, sh) uasm_i_sra(buf, rs, rt, sh) 146# define UASM_i_SRA(buf, rs, rt, sh) uasm_i_sra(buf, rs, rt, sh)
144# define UASM_i_SRL(buf, rs, rt, sh) uasm_i_srl(buf, rs, rt, sh) 147# define UASM_i_SRL(buf, rs, rt, sh) uasm_i_srl(buf, rs, rt, sh)
148# define UASM_i_ROTR(buf, rs, rt, sh) uasm_i_rotr(buf, rs, rt, sh)
145# define UASM_i_MFC0(buf, rt, rd...) uasm_i_mfc0(buf, rt, rd) 149# define UASM_i_MFC0(buf, rt, rd...) uasm_i_mfc0(buf, rt, rd)
146# define UASM_i_MTC0(buf, rt, rd...) uasm_i_mtc0(buf, rt, rd) 150# define UASM_i_MTC0(buf, rt, rd...) uasm_i_mtc0(buf, rt, rd)
147# define UASM_i_ADDIU(buf, rs, rt, val) uasm_i_addiu(buf, rs, rt, val) 151# define UASM_i_ADDIU(buf, rs, rt, val) uasm_i_addiu(buf, rs, rt, val)
diff --git a/arch/mips/include/asm/ucontext.h b/arch/mips/include/asm/ucontext.h
index 8a4b20e88b81..9bc07b9f30fb 100644
--- a/arch/mips/include/asm/ucontext.h
+++ b/arch/mips/include/asm/ucontext.h
@@ -1,21 +1 @@
1/* #include <asm-generic/ucontext.h>
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Low level exception handling
7 *
8 * Copyright (C) 1998, 1999 by Ralf Baechle
9 */
10#ifndef _ASM_UCONTEXT_H
11#define _ASM_UCONTEXT_H
12
13struct ucontext {
14 unsigned long uc_flags;
15 struct ucontext *uc_link;
16 stack_t uc_stack;
17 struct sigcontext uc_mcontext;
18 sigset_t uc_sigmask; /* mask last for extensibility */
19};
20
21#endif /* _ASM_UCONTEXT_H */
diff --git a/arch/mips/jazz/irq.c b/arch/mips/jazz/irq.c
index 7bd32d04c2cc..ee18028efe92 100644
--- a/arch/mips/jazz/irq.c
+++ b/arch/mips/jazz/irq.c
@@ -20,17 +20,17 @@
20#include <asm/jazz.h> 20#include <asm/jazz.h>
21#include <asm/pgtable.h> 21#include <asm/pgtable.h>
22 22
23static DEFINE_SPINLOCK(r4030_lock); 23static DEFINE_RAW_SPINLOCK(r4030_lock);
24 24
25static void enable_r4030_irq(unsigned int irq) 25static void enable_r4030_irq(unsigned int irq)
26{ 26{
27 unsigned int mask = 1 << (irq - JAZZ_IRQ_START); 27 unsigned int mask = 1 << (irq - JAZZ_IRQ_START);
28 unsigned long flags; 28 unsigned long flags;
29 29
30 spin_lock_irqsave(&r4030_lock, flags); 30 raw_spin_lock_irqsave(&r4030_lock, flags);
31 mask |= r4030_read_reg16(JAZZ_IO_IRQ_ENABLE); 31 mask |= r4030_read_reg16(JAZZ_IO_IRQ_ENABLE);
32 r4030_write_reg16(JAZZ_IO_IRQ_ENABLE, mask); 32 r4030_write_reg16(JAZZ_IO_IRQ_ENABLE, mask);
33 spin_unlock_irqrestore(&r4030_lock, flags); 33 raw_spin_unlock_irqrestore(&r4030_lock, flags);
34} 34}
35 35
36void disable_r4030_irq(unsigned int irq) 36void disable_r4030_irq(unsigned int irq)
@@ -38,10 +38,10 @@ void disable_r4030_irq(unsigned int irq)
38 unsigned int mask = ~(1 << (irq - JAZZ_IRQ_START)); 38 unsigned int mask = ~(1 << (irq - JAZZ_IRQ_START));
39 unsigned long flags; 39 unsigned long flags;
40 40
41 spin_lock_irqsave(&r4030_lock, flags); 41 raw_spin_lock_irqsave(&r4030_lock, flags);
42 mask &= r4030_read_reg16(JAZZ_IO_IRQ_ENABLE); 42 mask &= r4030_read_reg16(JAZZ_IO_IRQ_ENABLE);
43 r4030_write_reg16(JAZZ_IO_IRQ_ENABLE, mask); 43 r4030_write_reg16(JAZZ_IO_IRQ_ENABLE, mask);
44 spin_unlock_irqrestore(&r4030_lock, flags); 44 raw_spin_unlock_irqrestore(&r4030_lock, flags);
45} 45}
46 46
47static struct irq_chip r4030_irq_type = { 47static struct irq_chip r4030_irq_type = {
diff --git a/arch/mips/kernel/Makefile b/arch/mips/kernel/Makefile
index 9326af5186fe..ef20957ca14b 100644
--- a/arch/mips/kernel/Makefile
+++ b/arch/mips/kernel/Makefile
@@ -93,6 +93,7 @@ obj-$(CONFIG_GPIO_TXX9) += gpio_txx9.o
93 93
94obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o 94obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o
95obj-$(CONFIG_EARLY_PRINTK) += early_printk.o 95obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
96obj-$(CONFIG_SPINLOCK_TEST) += spinlock_test.o
96 97
97CFLAGS_cpu-bugs64.o = $(shell if $(CC) $(KBUILD_CFLAGS) -Wa,-mdaddi -c -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-DHAVE_AS_SET_DADDI"; fi) 98CFLAGS_cpu-bugs64.o = $(shell if $(CC) $(KBUILD_CFLAGS) -Wa,-mdaddi -c -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-DHAVE_AS_SET_DADDI"; fi)
98 99
diff --git a/arch/mips/kernel/asm-offsets.c b/arch/mips/kernel/asm-offsets.c
index 2c1e1d02338b..ca6c83218caa 100644
--- a/arch/mips/kernel/asm-offsets.c
+++ b/arch/mips/kernel/asm-offsets.c
@@ -188,11 +188,15 @@ void output_mm_defines(void)
188 DEFINE(_PTE_T_SIZE, sizeof(pte_t)); 188 DEFINE(_PTE_T_SIZE, sizeof(pte_t));
189 BLANK(); 189 BLANK();
190 DEFINE(_PGD_T_LOG2, PGD_T_LOG2); 190 DEFINE(_PGD_T_LOG2, PGD_T_LOG2);
191#ifndef __PAGETABLE_PMD_FOLDED
191 DEFINE(_PMD_T_LOG2, PMD_T_LOG2); 192 DEFINE(_PMD_T_LOG2, PMD_T_LOG2);
193#endif
192 DEFINE(_PTE_T_LOG2, PTE_T_LOG2); 194 DEFINE(_PTE_T_LOG2, PTE_T_LOG2);
193 BLANK(); 195 BLANK();
194 DEFINE(_PGD_ORDER, PGD_ORDER); 196 DEFINE(_PGD_ORDER, PGD_ORDER);
197#ifndef __PAGETABLE_PMD_FOLDED
195 DEFINE(_PMD_ORDER, PMD_ORDER); 198 DEFINE(_PMD_ORDER, PMD_ORDER);
199#endif
196 DEFINE(_PTE_ORDER, PTE_ORDER); 200 DEFINE(_PTE_ORDER, PTE_ORDER);
197 BLANK(); 201 BLANK();
198 DEFINE(_PMD_SHIFT, PMD_SHIFT); 202 DEFINE(_PMD_SHIFT, PMD_SHIFT);
diff --git a/arch/mips/kernel/cevt-gt641xx.c b/arch/mips/kernel/cevt-gt641xx.c
index f5d265eb6eae..392ef3756c56 100644
--- a/arch/mips/kernel/cevt-gt641xx.c
+++ b/arch/mips/kernel/cevt-gt641xx.c
@@ -25,7 +25,7 @@
25#include <asm/gt64120.h> 25#include <asm/gt64120.h>
26#include <asm/time.h> 26#include <asm/time.h>
27 27
28static DEFINE_SPINLOCK(gt641xx_timer_lock); 28static DEFINE_RAW_SPINLOCK(gt641xx_timer_lock);
29static unsigned int gt641xx_base_clock; 29static unsigned int gt641xx_base_clock;
30 30
31void gt641xx_set_base_clock(unsigned int clock) 31void gt641xx_set_base_clock(unsigned int clock)
@@ -49,7 +49,7 @@ static int gt641xx_timer0_set_next_event(unsigned long delta,
49{ 49{
50 u32 ctrl; 50 u32 ctrl;
51 51
52 spin_lock(&gt641xx_timer_lock); 52 raw_spin_lock(&gt641xx_timer_lock);
53 53
54 ctrl = GT_READ(GT_TC_CONTROL_OFS); 54 ctrl = GT_READ(GT_TC_CONTROL_OFS);
55 ctrl &= ~(GT_TC_CONTROL_ENTC0_MSK | GT_TC_CONTROL_SELTC0_MSK); 55 ctrl &= ~(GT_TC_CONTROL_ENTC0_MSK | GT_TC_CONTROL_SELTC0_MSK);
@@ -58,7 +58,7 @@ static int gt641xx_timer0_set_next_event(unsigned long delta,
58 GT_WRITE(GT_TC0_OFS, delta); 58 GT_WRITE(GT_TC0_OFS, delta);
59 GT_WRITE(GT_TC_CONTROL_OFS, ctrl); 59 GT_WRITE(GT_TC_CONTROL_OFS, ctrl);
60 60
61 spin_unlock(&gt641xx_timer_lock); 61 raw_spin_unlock(&gt641xx_timer_lock);
62 62
63 return 0; 63 return 0;
64} 64}
@@ -68,7 +68,7 @@ static void gt641xx_timer0_set_mode(enum clock_event_mode mode,
68{ 68{
69 u32 ctrl; 69 u32 ctrl;
70 70
71 spin_lock(&gt641xx_timer_lock); 71 raw_spin_lock(&gt641xx_timer_lock);
72 72
73 ctrl = GT_READ(GT_TC_CONTROL_OFS); 73 ctrl = GT_READ(GT_TC_CONTROL_OFS);
74 ctrl &= ~(GT_TC_CONTROL_ENTC0_MSK | GT_TC_CONTROL_SELTC0_MSK); 74 ctrl &= ~(GT_TC_CONTROL_ENTC0_MSK | GT_TC_CONTROL_SELTC0_MSK);
@@ -86,7 +86,7 @@ static void gt641xx_timer0_set_mode(enum clock_event_mode mode,
86 86
87 GT_WRITE(GT_TC_CONTROL_OFS, ctrl); 87 GT_WRITE(GT_TC_CONTROL_OFS, ctrl);
88 88
89 spin_unlock(&gt641xx_timer_lock); 89 raw_spin_unlock(&gt641xx_timer_lock);
90} 90}
91 91
92static void gt641xx_timer0_event_handler(struct clock_event_device *dev) 92static void gt641xx_timer0_event_handler(struct clock_event_device *dev)
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c
index 758ad426c57f..be5bb16be4e0 100644
--- a/arch/mips/kernel/cpu-probe.c
+++ b/arch/mips/kernel/cpu-probe.c
@@ -162,6 +162,7 @@ void __init check_wait(void)
162 case CPU_BCM6348: 162 case CPU_BCM6348:
163 case CPU_BCM6358: 163 case CPU_BCM6358:
164 case CPU_CAVIUM_OCTEON: 164 case CPU_CAVIUM_OCTEON:
165 case CPU_CAVIUM_OCTEON_PLUS:
165 cpu_wait = r4k_wait; 166 cpu_wait = r4k_wait;
166 break; 167 break;
167 168
@@ -700,6 +701,19 @@ static inline unsigned int decode_config3(struct cpuinfo_mips *c)
700 return config3 & MIPS_CONF_M; 701 return config3 & MIPS_CONF_M;
701} 702}
702 703
704static inline unsigned int decode_config4(struct cpuinfo_mips *c)
705{
706 unsigned int config4;
707
708 config4 = read_c0_config4();
709
710 if ((config4 & MIPS_CONF4_MMUEXTDEF) == MIPS_CONF4_MMUEXTDEF_MMUSIZEEXT
711 && cpu_has_tlb)
712 c->tlbsize += (config4 & MIPS_CONF4_MMUSIZEEXT) * 0x40;
713
714 return config4 & MIPS_CONF_M;
715}
716
703static void __cpuinit decode_configs(struct cpuinfo_mips *c) 717static void __cpuinit decode_configs(struct cpuinfo_mips *c)
704{ 718{
705 int ok; 719 int ok;
@@ -718,6 +732,8 @@ static void __cpuinit decode_configs(struct cpuinfo_mips *c)
718 ok = decode_config2(c); 732 ok = decode_config2(c);
719 if (ok) 733 if (ok)
720 ok = decode_config3(c); 734 ok = decode_config3(c);
735 if (ok)
736 ok = decode_config4(c);
721 737
722 mips_probe_watch_registers(c); 738 mips_probe_watch_registers(c);
723} 739}
@@ -731,9 +747,6 @@ static inline void cpu_probe_mips(struct cpuinfo_mips *c, unsigned int cpu)
731 __cpu_name[cpu] = "MIPS 4Kc"; 747 __cpu_name[cpu] = "MIPS 4Kc";
732 break; 748 break;
733 case PRID_IMP_4KEC: 749 case PRID_IMP_4KEC:
734 c->cputype = CPU_4KEC;
735 __cpu_name[cpu] = "MIPS 4KEc";
736 break;
737 case PRID_IMP_4KECR2: 750 case PRID_IMP_4KECR2:
738 c->cputype = CPU_4KEC; 751 c->cputype = CPU_4KEC;
739 __cpu_name[cpu] = "MIPS 4KEc"; 752 __cpu_name[cpu] = "MIPS 4KEc";
@@ -899,12 +912,18 @@ static inline void cpu_probe_cavium(struct cpuinfo_mips *c, unsigned int cpu)
899 case PRID_IMP_CAVIUM_CN38XX: 912 case PRID_IMP_CAVIUM_CN38XX:
900 case PRID_IMP_CAVIUM_CN31XX: 913 case PRID_IMP_CAVIUM_CN31XX:
901 case PRID_IMP_CAVIUM_CN30XX: 914 case PRID_IMP_CAVIUM_CN30XX:
915 c->cputype = CPU_CAVIUM_OCTEON;
916 __cpu_name[cpu] = "Cavium Octeon";
917 goto platform;
902 case PRID_IMP_CAVIUM_CN58XX: 918 case PRID_IMP_CAVIUM_CN58XX:
903 case PRID_IMP_CAVIUM_CN56XX: 919 case PRID_IMP_CAVIUM_CN56XX:
904 case PRID_IMP_CAVIUM_CN50XX: 920 case PRID_IMP_CAVIUM_CN50XX:
905 case PRID_IMP_CAVIUM_CN52XX: 921 case PRID_IMP_CAVIUM_CN52XX:
906 c->cputype = CPU_CAVIUM_OCTEON; 922 c->cputype = CPU_CAVIUM_OCTEON_PLUS;
907 __cpu_name[cpu] = "Cavium Octeon"; 923 __cpu_name[cpu] = "Cavium Octeon+";
924platform:
925 if (cpu == 0)
926 __elf_platform = "octeon";
908 break; 927 break;
909 default: 928 default:
910 printk(KERN_INFO "Unknown Octeon chip!\n"); 929 printk(KERN_INFO "Unknown Octeon chip!\n");
@@ -914,6 +933,7 @@ static inline void cpu_probe_cavium(struct cpuinfo_mips *c, unsigned int cpu)
914} 933}
915 934
916const char *__cpu_name[NR_CPUS]; 935const char *__cpu_name[NR_CPUS];
936const char *__elf_platform;
917 937
918__cpuinit void cpu_probe(void) 938__cpuinit void cpu_probe(void)
919{ 939{
diff --git a/arch/mips/kernel/ftrace.c b/arch/mips/kernel/ftrace.c
index 68b067040d8b..e9e64e0ff7aa 100644
--- a/arch/mips/kernel/ftrace.c
+++ b/arch/mips/kernel/ftrace.c
@@ -3,7 +3,7 @@
3 * 3 *
4 * Copyright (C) 2007-2008 Steven Rostedt <srostedt@redhat.com> 4 * Copyright (C) 2007-2008 Steven Rostedt <srostedt@redhat.com>
5 * Copyright (C) 2009 DSLab, Lanzhou University, China 5 * Copyright (C) 2009 DSLab, Lanzhou University, China
6 * Author: Wu Zhangjin <wuzj@lemote.com> 6 * Author: Wu Zhangjin <wuzhangjin@gmail.com>
7 * 7 *
8 * Thanks goes to Steven Rostedt for writing the original x86 version. 8 * Thanks goes to Steven Rostedt for writing the original x86 version.
9 */ 9 */
diff --git a/arch/mips/kernel/i8259.c b/arch/mips/kernel/i8259.c
index 01c0885a8061..27799113332c 100644
--- a/arch/mips/kernel/i8259.c
+++ b/arch/mips/kernel/i8259.c
@@ -29,7 +29,7 @@
29 */ 29 */
30 30
31static int i8259A_auto_eoi = -1; 31static int i8259A_auto_eoi = -1;
32DEFINE_SPINLOCK(i8259A_lock); 32DEFINE_RAW_SPINLOCK(i8259A_lock);
33static void disable_8259A_irq(unsigned int irq); 33static void disable_8259A_irq(unsigned int irq);
34static void enable_8259A_irq(unsigned int irq); 34static void enable_8259A_irq(unsigned int irq);
35static void mask_and_ack_8259A(unsigned int irq); 35static void mask_and_ack_8259A(unsigned int irq);
@@ -65,13 +65,13 @@ static void disable_8259A_irq(unsigned int irq)
65 65
66 irq -= I8259A_IRQ_BASE; 66 irq -= I8259A_IRQ_BASE;
67 mask = 1 << irq; 67 mask = 1 << irq;
68 spin_lock_irqsave(&i8259A_lock, flags); 68 raw_spin_lock_irqsave(&i8259A_lock, flags);
69 cached_irq_mask |= mask; 69 cached_irq_mask |= mask;
70 if (irq & 8) 70 if (irq & 8)
71 outb(cached_slave_mask, PIC_SLAVE_IMR); 71 outb(cached_slave_mask, PIC_SLAVE_IMR);
72 else 72 else
73 outb(cached_master_mask, PIC_MASTER_IMR); 73 outb(cached_master_mask, PIC_MASTER_IMR);
74 spin_unlock_irqrestore(&i8259A_lock, flags); 74 raw_spin_unlock_irqrestore(&i8259A_lock, flags);
75} 75}
76 76
77static void enable_8259A_irq(unsigned int irq) 77static void enable_8259A_irq(unsigned int irq)
@@ -81,13 +81,13 @@ static void enable_8259A_irq(unsigned int irq)
81 81
82 irq -= I8259A_IRQ_BASE; 82 irq -= I8259A_IRQ_BASE;
83 mask = ~(1 << irq); 83 mask = ~(1 << irq);
84 spin_lock_irqsave(&i8259A_lock, flags); 84 raw_spin_lock_irqsave(&i8259A_lock, flags);
85 cached_irq_mask &= mask; 85 cached_irq_mask &= mask;
86 if (irq & 8) 86 if (irq & 8)
87 outb(cached_slave_mask, PIC_SLAVE_IMR); 87 outb(cached_slave_mask, PIC_SLAVE_IMR);
88 else 88 else
89 outb(cached_master_mask, PIC_MASTER_IMR); 89 outb(cached_master_mask, PIC_MASTER_IMR);
90 spin_unlock_irqrestore(&i8259A_lock, flags); 90 raw_spin_unlock_irqrestore(&i8259A_lock, flags);
91} 91}
92 92
93int i8259A_irq_pending(unsigned int irq) 93int i8259A_irq_pending(unsigned int irq)
@@ -98,12 +98,12 @@ int i8259A_irq_pending(unsigned int irq)
98 98
99 irq -= I8259A_IRQ_BASE; 99 irq -= I8259A_IRQ_BASE;
100 mask = 1 << irq; 100 mask = 1 << irq;
101 spin_lock_irqsave(&i8259A_lock, flags); 101 raw_spin_lock_irqsave(&i8259A_lock, flags);
102 if (irq < 8) 102 if (irq < 8)
103 ret = inb(PIC_MASTER_CMD) & mask; 103 ret = inb(PIC_MASTER_CMD) & mask;
104 else 104 else
105 ret = inb(PIC_SLAVE_CMD) & (mask >> 8); 105 ret = inb(PIC_SLAVE_CMD) & (mask >> 8);
106 spin_unlock_irqrestore(&i8259A_lock, flags); 106 raw_spin_unlock_irqrestore(&i8259A_lock, flags);
107 107
108 return ret; 108 return ret;
109} 109}
@@ -151,7 +151,7 @@ static void mask_and_ack_8259A(unsigned int irq)
151 151
152 irq -= I8259A_IRQ_BASE; 152 irq -= I8259A_IRQ_BASE;
153 irqmask = 1 << irq; 153 irqmask = 1 << irq;
154 spin_lock_irqsave(&i8259A_lock, flags); 154 raw_spin_lock_irqsave(&i8259A_lock, flags);
155 /* 155 /*
156 * Lightweight spurious IRQ detection. We do not want 156 * Lightweight spurious IRQ detection. We do not want
157 * to overdo spurious IRQ handling - it's usually a sign 157 * to overdo spurious IRQ handling - it's usually a sign
@@ -183,7 +183,7 @@ handle_real_irq:
183 outb(0x60+irq, PIC_MASTER_CMD); /* 'Specific EOI to master */ 183 outb(0x60+irq, PIC_MASTER_CMD); /* 'Specific EOI to master */
184 } 184 }
185 smtc_im_ack_irq(irq); 185 smtc_im_ack_irq(irq);
186 spin_unlock_irqrestore(&i8259A_lock, flags); 186 raw_spin_unlock_irqrestore(&i8259A_lock, flags);
187 return; 187 return;
188 188
189spurious_8259A_irq: 189spurious_8259A_irq:
@@ -264,7 +264,7 @@ static void init_8259A(int auto_eoi)
264 264
265 i8259A_auto_eoi = auto_eoi; 265 i8259A_auto_eoi = auto_eoi;
266 266
267 spin_lock_irqsave(&i8259A_lock, flags); 267 raw_spin_lock_irqsave(&i8259A_lock, flags);
268 268
269 outb(0xff, PIC_MASTER_IMR); /* mask all of 8259A-1 */ 269 outb(0xff, PIC_MASTER_IMR); /* mask all of 8259A-1 */
270 outb(0xff, PIC_SLAVE_IMR); /* mask all of 8259A-2 */ 270 outb(0xff, PIC_SLAVE_IMR); /* mask all of 8259A-2 */
@@ -298,7 +298,7 @@ static void init_8259A(int auto_eoi)
298 outb(cached_master_mask, PIC_MASTER_IMR); /* restore master IRQ mask */ 298 outb(cached_master_mask, PIC_MASTER_IMR); /* restore master IRQ mask */
299 outb(cached_slave_mask, PIC_SLAVE_IMR); /* restore slave IRQ mask */ 299 outb(cached_slave_mask, PIC_SLAVE_IMR); /* restore slave IRQ mask */
300 300
301 spin_unlock_irqrestore(&i8259A_lock, flags); 301 raw_spin_unlock_irqrestore(&i8259A_lock, flags);
302} 302}
303 303
304/* 304/*
diff --git a/arch/mips/kernel/irq-gt641xx.c b/arch/mips/kernel/irq-gt641xx.c
index ebcc5f7ad9c2..42ef81461bfc 100644
--- a/arch/mips/kernel/irq-gt641xx.c
+++ b/arch/mips/kernel/irq-gt641xx.c
@@ -27,18 +27,18 @@
27 27
28#define GT641XX_IRQ_TO_BIT(irq) (1U << (irq - GT641XX_IRQ_BASE)) 28#define GT641XX_IRQ_TO_BIT(irq) (1U << (irq - GT641XX_IRQ_BASE))
29 29
30static DEFINE_SPINLOCK(gt641xx_irq_lock); 30static DEFINE_RAW_SPINLOCK(gt641xx_irq_lock);
31 31
32static void ack_gt641xx_irq(unsigned int irq) 32static void ack_gt641xx_irq(unsigned int irq)
33{ 33{
34 unsigned long flags; 34 unsigned long flags;
35 u32 cause; 35 u32 cause;
36 36
37 spin_lock_irqsave(&gt641xx_irq_lock, flags); 37 raw_spin_lock_irqsave(&gt641xx_irq_lock, flags);
38 cause = GT_READ(GT_INTRCAUSE_OFS); 38 cause = GT_READ(GT_INTRCAUSE_OFS);
39 cause &= ~GT641XX_IRQ_TO_BIT(irq); 39 cause &= ~GT641XX_IRQ_TO_BIT(irq);
40 GT_WRITE(GT_INTRCAUSE_OFS, cause); 40 GT_WRITE(GT_INTRCAUSE_OFS, cause);
41 spin_unlock_irqrestore(&gt641xx_irq_lock, flags); 41 raw_spin_unlock_irqrestore(&gt641xx_irq_lock, flags);
42} 42}
43 43
44static void mask_gt641xx_irq(unsigned int irq) 44static void mask_gt641xx_irq(unsigned int irq)
@@ -46,11 +46,11 @@ static void mask_gt641xx_irq(unsigned int irq)
46 unsigned long flags; 46 unsigned long flags;
47 u32 mask; 47 u32 mask;
48 48
49 spin_lock_irqsave(&gt641xx_irq_lock, flags); 49 raw_spin_lock_irqsave(&gt641xx_irq_lock, flags);
50 mask = GT_READ(GT_INTRMASK_OFS); 50 mask = GT_READ(GT_INTRMASK_OFS);
51 mask &= ~GT641XX_IRQ_TO_BIT(irq); 51 mask &= ~GT641XX_IRQ_TO_BIT(irq);
52 GT_WRITE(GT_INTRMASK_OFS, mask); 52 GT_WRITE(GT_INTRMASK_OFS, mask);
53 spin_unlock_irqrestore(&gt641xx_irq_lock, flags); 53 raw_spin_unlock_irqrestore(&gt641xx_irq_lock, flags);
54} 54}
55 55
56static void mask_ack_gt641xx_irq(unsigned int irq) 56static void mask_ack_gt641xx_irq(unsigned int irq)
@@ -58,7 +58,7 @@ static void mask_ack_gt641xx_irq(unsigned int irq)
58 unsigned long flags; 58 unsigned long flags;
59 u32 cause, mask; 59 u32 cause, mask;
60 60
61 spin_lock_irqsave(&gt641xx_irq_lock, flags); 61 raw_spin_lock_irqsave(&gt641xx_irq_lock, flags);
62 mask = GT_READ(GT_INTRMASK_OFS); 62 mask = GT_READ(GT_INTRMASK_OFS);
63 mask &= ~GT641XX_IRQ_TO_BIT(irq); 63 mask &= ~GT641XX_IRQ_TO_BIT(irq);
64 GT_WRITE(GT_INTRMASK_OFS, mask); 64 GT_WRITE(GT_INTRMASK_OFS, mask);
@@ -66,7 +66,7 @@ static void mask_ack_gt641xx_irq(unsigned int irq)
66 cause = GT_READ(GT_INTRCAUSE_OFS); 66 cause = GT_READ(GT_INTRCAUSE_OFS);
67 cause &= ~GT641XX_IRQ_TO_BIT(irq); 67 cause &= ~GT641XX_IRQ_TO_BIT(irq);
68 GT_WRITE(GT_INTRCAUSE_OFS, cause); 68 GT_WRITE(GT_INTRCAUSE_OFS, cause);
69 spin_unlock_irqrestore(&gt641xx_irq_lock, flags); 69 raw_spin_unlock_irqrestore(&gt641xx_irq_lock, flags);
70} 70}
71 71
72static void unmask_gt641xx_irq(unsigned int irq) 72static void unmask_gt641xx_irq(unsigned int irq)
@@ -74,11 +74,11 @@ static void unmask_gt641xx_irq(unsigned int irq)
74 unsigned long flags; 74 unsigned long flags;
75 u32 mask; 75 u32 mask;
76 76
77 spin_lock_irqsave(&gt641xx_irq_lock, flags); 77 raw_spin_lock_irqsave(&gt641xx_irq_lock, flags);
78 mask = GT_READ(GT_INTRMASK_OFS); 78 mask = GT_READ(GT_INTRMASK_OFS);
79 mask |= GT641XX_IRQ_TO_BIT(irq); 79 mask |= GT641XX_IRQ_TO_BIT(irq);
80 GT_WRITE(GT_INTRMASK_OFS, mask); 80 GT_WRITE(GT_INTRMASK_OFS, mask);
81 spin_unlock_irqrestore(&gt641xx_irq_lock, flags); 81 raw_spin_unlock_irqrestore(&gt641xx_irq_lock, flags);
82} 82}
83 83
84static struct irq_chip gt641xx_irq_chip = { 84static struct irq_chip gt641xx_irq_chip = {
diff --git a/arch/mips/kernel/linux32.c b/arch/mips/kernel/linux32.c
index f042563c924f..bde79ef602e6 100644
--- a/arch/mips/kernel/linux32.c
+++ b/arch/mips/kernel/linux32.c
@@ -9,7 +9,6 @@
9#include <linux/mm.h> 9#include <linux/mm.h>
10#include <linux/errno.h> 10#include <linux/errno.h>
11#include <linux/file.h> 11#include <linux/file.h>
12#include <linux/smp_lock.h>
13#include <linux/highuid.h> 12#include <linux/highuid.h>
14#include <linux/resource.h> 13#include <linux/resource.h>
15#include <linux/highmem.h> 14#include <linux/highmem.h>
diff --git a/arch/mips/kernel/mcount.S b/arch/mips/kernel/mcount.S
index 0a9cfdb271dd..6851fc97a511 100644
--- a/arch/mips/kernel/mcount.S
+++ b/arch/mips/kernel/mcount.S
@@ -6,7 +6,7 @@
6 * more details. 6 * more details.
7 * 7 *
8 * Copyright (C) 2009 Lemote Inc. & DSLab, Lanzhou University, China 8 * Copyright (C) 2009 Lemote Inc. & DSLab, Lanzhou University, China
9 * Author: Wu Zhangjin <wuzj@lemote.com> 9 * Author: Wu Zhangjin <wuzhangjin@gmail.com>
10 */ 10 */
11 11
12#include <asm/regdef.h> 12#include <asm/regdef.h>
diff --git a/arch/mips/kernel/octeon_switch.S b/arch/mips/kernel/octeon_switch.S
index 3952b8323efa..dd18b26a358a 100644
--- a/arch/mips/kernel/octeon_switch.S
+++ b/arch/mips/kernel/octeon_switch.S
@@ -500,4 +500,3 @@ done_restore:
500 nop 500 nop
501 END(octeon_mult_restore) 501 END(octeon_mult_restore)
502 .set pop 502 .set pop
503
diff --git a/arch/mips/kernel/rtlx.c b/arch/mips/kernel/rtlx.c
index 364f066cb497..dcaed1bbbfe5 100644
--- a/arch/mips/kernel/rtlx.c
+++ b/arch/mips/kernel/rtlx.c
@@ -28,7 +28,6 @@
28#include <linux/vmalloc.h> 28#include <linux/vmalloc.h>
29#include <linux/elf.h> 29#include <linux/elf.h>
30#include <linux/seq_file.h> 30#include <linux/seq_file.h>
31#include <linux/smp_lock.h>
32#include <linux/syscalls.h> 31#include <linux/syscalls.h>
33#include <linux/moduleloader.h> 32#include <linux/moduleloader.h>
34#include <linux/interrupt.h> 33#include <linux/interrupt.h>
diff --git a/arch/mips/kernel/spinlock_test.c b/arch/mips/kernel/spinlock_test.c
new file mode 100644
index 000000000000..da61134dfc53
--- /dev/null
+++ b/arch/mips/kernel/spinlock_test.c
@@ -0,0 +1,141 @@
1#include <linux/init.h>
2#include <linux/kthread.h>
3#include <linux/hrtimer.h>
4#include <linux/fs.h>
5#include <linux/debugfs.h>
6#include <linux/module.h>
7#include <linux/spinlock.h>
8
9
10static int ss_get(void *data, u64 *val)
11{
12 ktime_t start, finish;
13 int loops;
14 int cont;
15 DEFINE_RAW_SPINLOCK(ss_spin);
16
17 loops = 1000000;
18 cont = 1;
19
20 start = ktime_get();
21
22 while (cont) {
23 raw_spin_lock(&ss_spin);
24 loops--;
25 if (loops == 0)
26 cont = 0;
27 raw_spin_unlock(&ss_spin);
28 }
29
30 finish = ktime_get();
31
32 *val = ktime_us_delta(finish, start);
33
34 return 0;
35}
36
37DEFINE_SIMPLE_ATTRIBUTE(fops_ss, ss_get, NULL, "%llu\n");
38
39
40
41struct spin_multi_state {
42 raw_spinlock_t lock;
43 atomic_t start_wait;
44 atomic_t enter_wait;
45 atomic_t exit_wait;
46 int loops;
47};
48
49struct spin_multi_per_thread {
50 struct spin_multi_state *state;
51 ktime_t start;
52};
53
54static int multi_other(void *data)
55{
56 int loops;
57 int cont;
58 struct spin_multi_per_thread *pt = data;
59 struct spin_multi_state *s = pt->state;
60
61 loops = s->loops;
62 cont = 1;
63
64 atomic_dec(&s->enter_wait);
65
66 while (atomic_read(&s->enter_wait))
67 ; /* spin */
68
69 pt->start = ktime_get();
70
71 atomic_dec(&s->start_wait);
72
73 while (atomic_read(&s->start_wait))
74 ; /* spin */
75
76 while (cont) {
77 raw_spin_lock(&s->lock);
78 loops--;
79 if (loops == 0)
80 cont = 0;
81 raw_spin_unlock(&s->lock);
82 }
83
84 atomic_dec(&s->exit_wait);
85 while (atomic_read(&s->exit_wait))
86 ; /* spin */
87 return 0;
88}
89
90static int multi_get(void *data, u64 *val)
91{
92 ktime_t finish;
93 struct spin_multi_state ms;
94 struct spin_multi_per_thread t1, t2;
95
96 ms.lock = __RAW_SPIN_LOCK_UNLOCKED("multi_get");
97 ms.loops = 1000000;
98
99 atomic_set(&ms.start_wait, 2);
100 atomic_set(&ms.enter_wait, 2);
101 atomic_set(&ms.exit_wait, 2);
102 t1.state = &ms;
103 t2.state = &ms;
104
105 kthread_run(multi_other, &t2, "multi_get");
106
107 multi_other(&t1);
108
109 finish = ktime_get();
110
111 *val = ktime_us_delta(finish, t1.start);
112
113 return 0;
114}
115
116DEFINE_SIMPLE_ATTRIBUTE(fops_multi, multi_get, NULL, "%llu\n");
117
118
119extern struct dentry *mips_debugfs_dir;
120static int __init spinlock_test(void)
121{
122 struct dentry *d;
123
124 if (!mips_debugfs_dir)
125 return -ENODEV;
126
127 d = debugfs_create_file("spin_single", S_IRUGO,
128 mips_debugfs_dir, NULL,
129 &fops_ss);
130 if (!d)
131 return -ENOMEM;
132
133 d = debugfs_create_file("spin_multi", S_IRUGO,
134 mips_debugfs_dir, NULL,
135 &fops_multi);
136 if (!d)
137 return -ENOMEM;
138
139 return 0;
140}
141device_initcall(spinlock_test);
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index 31b204b26ba0..4e00f9bc23ee 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -50,6 +50,7 @@
50#include <asm/types.h> 50#include <asm/types.h>
51#include <asm/stacktrace.h> 51#include <asm/stacktrace.h>
52#include <asm/irq.h> 52#include <asm/irq.h>
53#include <asm/uasm.h>
53 54
54extern void check_wait(void); 55extern void check_wait(void);
55extern asmlinkage void r4k_wait(void); 56extern asmlinkage void r4k_wait(void);
@@ -1271,21 +1272,25 @@ unsigned long ebase;
1271unsigned long exception_handlers[32]; 1272unsigned long exception_handlers[32];
1272unsigned long vi_handlers[64]; 1273unsigned long vi_handlers[64];
1273 1274
1274/* 1275void __init *set_except_vector(int n, void *addr)
1275 * As a side effect of the way this is implemented we're limited
1276 * to interrupt handlers in the address range from
1277 * KSEG0 <= x < KSEG0 + 256mb on the Nevada. Oh well ...
1278 */
1279void *set_except_vector(int n, void *addr)
1280{ 1276{
1281 unsigned long handler = (unsigned long) addr; 1277 unsigned long handler = (unsigned long) addr;
1282 unsigned long old_handler = exception_handlers[n]; 1278 unsigned long old_handler = exception_handlers[n];
1283 1279
1284 exception_handlers[n] = handler; 1280 exception_handlers[n] = handler;
1285 if (n == 0 && cpu_has_divec) { 1281 if (n == 0 && cpu_has_divec) {
1286 *(u32 *)(ebase + 0x200) = 0x08000000 | 1282 unsigned long jump_mask = ~((1 << 28) - 1);
1287 (0x03ffffff & (handler >> 2)); 1283 u32 *buf = (u32 *)(ebase + 0x200);
1288 local_flush_icache_range(ebase + 0x200, ebase + 0x204); 1284 unsigned int k0 = 26;
1285 if ((handler & jump_mask) == ((ebase + 0x200) & jump_mask)) {
1286 uasm_i_j(&buf, handler & ~jump_mask);
1287 uasm_i_nop(&buf);
1288 } else {
1289 UASM_i_LA(&buf, k0, handler);
1290 uasm_i_jr(&buf, k0);
1291 uasm_i_nop(&buf);
1292 }
1293 local_flush_icache_range(ebase + 0x200, (unsigned long)buf);
1289 } 1294 }
1290 return (void *)old_handler; 1295 return (void *)old_handler;
1291} 1296}
diff --git a/arch/mips/kernel/vpe.c b/arch/mips/kernel/vpe.c
index 60477529362e..2bd2151c586a 100644
--- a/arch/mips/kernel/vpe.c
+++ b/arch/mips/kernel/vpe.c
@@ -38,7 +38,6 @@
38#include <linux/vmalloc.h> 38#include <linux/vmalloc.h>
39#include <linux/elf.h> 39#include <linux/elf.h>
40#include <linux/seq_file.h> 40#include <linux/seq_file.h>
41#include <linux/smp_lock.h>
42#include <linux/syscalls.h> 41#include <linux/syscalls.h>
43#include <linux/moduleloader.h> 42#include <linux/moduleloader.h>
44#include <linux/interrupt.h> 43#include <linux/interrupt.h>
diff --git a/arch/mips/lasat/picvue.h b/arch/mips/lasat/picvue.h
index 91df55371127..2f0757738fdb 100644
--- a/arch/mips/lasat/picvue.h
+++ b/arch/mips/lasat/picvue.h
@@ -42,4 +42,3 @@ void pvc_move(u8 cmd);
42 42
43void pvc_clear(void); 43void pvc_clear(void);
44void pvc_home(void); 44void pvc_home(void);
45
diff --git a/arch/mips/loongson/common/cmdline.c b/arch/mips/loongson/common/cmdline.c
index 7ad47f227477..1a06defc4f7f 100644
--- a/arch/mips/loongson/common/cmdline.c
+++ b/arch/mips/loongson/common/cmdline.c
@@ -10,7 +10,7 @@
10 * Author: Fuxin Zhang, zhangfx@lemote.com 10 * Author: Fuxin Zhang, zhangfx@lemote.com
11 * 11 *
12 * Copyright (C) 2009 Lemote Inc. 12 * Copyright (C) 2009 Lemote Inc.
13 * Author: Wu Zhangjin, wuzj@lemote.com 13 * Author: Wu Zhangjin, wuzhangjin@gmail.com
14 * 14 *
15 * This program is free software; you can redistribute it and/or modify it 15 * This program is free software; you can redistribute it and/or modify it
16 * under the terms of the GNU General Public License as published by the 16 * under the terms of the GNU General Public License as published by the
@@ -21,12 +21,11 @@
21 21
22#include <loongson.h> 22#include <loongson.h>
23 23
24int prom_argc;
25/* pmon passes arguments in 32bit pointers */
26int *_prom_argv;
27
28void __init prom_init_cmdline(void) 24void __init prom_init_cmdline(void)
29{ 25{
26 int prom_argc;
27 /* pmon passes arguments in 32bit pointers */
28 int *_prom_argv;
30 int i; 29 int i;
31 long l; 30 long l;
32 31
diff --git a/arch/mips/loongson/common/cs5536/cs5536_acc.c b/arch/mips/loongson/common/cs5536/cs5536_acc.c
index b49485f187e0..b3fd5eab6548 100644
--- a/arch/mips/loongson/common/cs5536/cs5536_acc.c
+++ b/arch/mips/loongson/common/cs5536/cs5536_acc.c
@@ -5,7 +5,7 @@
5 * Author : jlliu, liujl@lemote.com 5 * Author : jlliu, liujl@lemote.com
6 * 6 *
7 * Copyright (C) 2009 Lemote, Inc. 7 * Copyright (C) 2009 Lemote, Inc.
8 * Author: Wu Zhangjin, wuzj@lemote.com 8 * Author: Wu Zhangjin, wuzhangjin@gmail.com
9 * 9 *
10 * This program is free software; you can redistribute it and/or modify it 10 * This program is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU General Public License as published by the 11 * under the terms of the GNU General Public License as published by the
diff --git a/arch/mips/loongson/common/cs5536/cs5536_ehci.c b/arch/mips/loongson/common/cs5536/cs5536_ehci.c
index 74f9c59d36af..eaf8b86e3318 100644
--- a/arch/mips/loongson/common/cs5536/cs5536_ehci.c
+++ b/arch/mips/loongson/common/cs5536/cs5536_ehci.c
@@ -5,7 +5,7 @@
5 * Author : jlliu, liujl@lemote.com 5 * Author : jlliu, liujl@lemote.com
6 * 6 *
7 * Copyright (C) 2009 Lemote, Inc. 7 * Copyright (C) 2009 Lemote, Inc.
8 * Author: Wu Zhangjin, wuzj@lemote.com 8 * Author: Wu Zhangjin, wuzhangjin@gmail.com
9 * 9 *
10 * This program is free software; you can redistribute it and/or modify it 10 * This program is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU General Public License as published by the 11 * under the terms of the GNU General Public License as published by the
diff --git a/arch/mips/loongson/common/cs5536/cs5536_ide.c b/arch/mips/loongson/common/cs5536/cs5536_ide.c
index 3f61594b3884..9a96b5664c78 100644
--- a/arch/mips/loongson/common/cs5536/cs5536_ide.c
+++ b/arch/mips/loongson/common/cs5536/cs5536_ide.c
@@ -5,7 +5,7 @@
5 * Author : jlliu, liujl@lemote.com 5 * Author : jlliu, liujl@lemote.com
6 * 6 *
7 * Copyright (C) 2009 Lemote, Inc. 7 * Copyright (C) 2009 Lemote, Inc.
8 * Author: Wu Zhangjin, wuzj@lemote.com 8 * Author: Wu Zhangjin, wuzhangjin@gmail.com
9 * 9 *
10 * This program is free software; you can redistribute it and/or modify it 10 * This program is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU General Public License as published by the 11 * under the terms of the GNU General Public License as published by the
diff --git a/arch/mips/loongson/common/cs5536/cs5536_isa.c b/arch/mips/loongson/common/cs5536/cs5536_isa.c
index b6f17f538e48..f5c0818831b2 100644
--- a/arch/mips/loongson/common/cs5536/cs5536_isa.c
+++ b/arch/mips/loongson/common/cs5536/cs5536_isa.c
@@ -5,7 +5,7 @@
5 * Author : jlliu, liujl@lemote.com 5 * Author : jlliu, liujl@lemote.com
6 * 6 *
7 * Copyright (C) 2009 Lemote, Inc. 7 * Copyright (C) 2009 Lemote, Inc.
8 * Author: Wu Zhangjin, wuzj@lemote.com 8 * Author: Wu Zhangjin, wuzhangjin@gmail.com
9 * 9 *
10 * This program is free software; you can redistribute it and/or modify it 10 * This program is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU General Public License as published by the 11 * under the terms of the GNU General Public License as published by the
diff --git a/arch/mips/loongson/common/cs5536/cs5536_mfgpt.c b/arch/mips/loongson/common/cs5536/cs5536_mfgpt.c
index 6cb44dbaeec2..8c807c965199 100644
--- a/arch/mips/loongson/common/cs5536/cs5536_mfgpt.c
+++ b/arch/mips/loongson/common/cs5536/cs5536_mfgpt.c
@@ -5,7 +5,7 @@
5 * Author: Yanhua, yanh@lemote.com 5 * Author: Yanhua, yanh@lemote.com
6 * 6 *
7 * Copyright (C) 2009 Lemote Inc. 7 * Copyright (C) 2009 Lemote Inc.
8 * Author: Wu zhangjin, wuzj@lemote.com 8 * Author: Wu zhangjin, wuzhangjin@gmail.com
9 * 9 *
10 * Reference: AMD Geode(TM) CS5536 Companion Device Data Book 10 * Reference: AMD Geode(TM) CS5536 Companion Device Data Book
11 * 11 *
diff --git a/arch/mips/loongson/common/cs5536/cs5536_ohci.c b/arch/mips/loongson/common/cs5536/cs5536_ohci.c
index 8fdb02b6e90f..db5900aadd6b 100644
--- a/arch/mips/loongson/common/cs5536/cs5536_ohci.c
+++ b/arch/mips/loongson/common/cs5536/cs5536_ohci.c
@@ -5,7 +5,7 @@
5 * Author : jlliu, liujl@lemote.com 5 * Author : jlliu, liujl@lemote.com
6 * 6 *
7 * Copyright (C) 2009 Lemote, Inc. 7 * Copyright (C) 2009 Lemote, Inc.
8 * Author: Wu Zhangjin, wuzj@lemote.com 8 * Author: Wu Zhangjin, wuzhangjin@gmail.com
9 * 9 *
10 * This program is free software; you can redistribute it and/or modify it 10 * This program is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU General Public License as published by the 11 * under the terms of the GNU General Public License as published by the
diff --git a/arch/mips/loongson/common/cs5536/cs5536_pci.c b/arch/mips/loongson/common/cs5536/cs5536_pci.c
index e23f3d7d2c1d..6dfeab11af08 100644
--- a/arch/mips/loongson/common/cs5536/cs5536_pci.c
+++ b/arch/mips/loongson/common/cs5536/cs5536_pci.c
@@ -5,7 +5,7 @@
5 * Author : jlliu, liujl@lemote.com 5 * Author : jlliu, liujl@lemote.com
6 * 6 *
7 * Copyright (C) 2009 Lemote, Inc. 7 * Copyright (C) 2009 Lemote, Inc.
8 * Author: Wu Zhangjin, wuzj@lemote.com 8 * Author: Wu Zhangjin, wuzhangjin@gmail.com
9 * 9 *
10 * This program is free software; you can redistribute it and/or modify it 10 * This program is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU General Public License as published by the 11 * under the terms of the GNU General Public License as published by the
diff --git a/arch/mips/loongson/common/early_printk.c b/arch/mips/loongson/common/early_printk.c
index 23e7a8f8897f..a71736f00443 100644
--- a/arch/mips/loongson/common/early_printk.c
+++ b/arch/mips/loongson/common/early_printk.c
@@ -2,7 +2,7 @@
2 * 2 *
3 * Copyright (c) 2009 Philippe Vachon <philippe@cowpig.ca> 3 * Copyright (c) 2009 Philippe Vachon <philippe@cowpig.ca>
4 * Copyright (c) 2009 Lemote Inc. 4 * Copyright (c) 2009 Lemote Inc.
5 * Author: Wu Zhangjin, wuzj@lemote.com 5 * Author: Wu Zhangjin, wuzhangjin@gmail.com
6 * 6 *
7 * This program is free software; you can redistribute it and/or modify it 7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the 8 * under the terms of the GNU General Public License as published by the
diff --git a/arch/mips/loongson/common/env.c b/arch/mips/loongson/common/env.c
index 196d947d929a..ae4cff97a56c 100644
--- a/arch/mips/loongson/common/env.c
+++ b/arch/mips/loongson/common/env.c
@@ -9,8 +9,8 @@
9 * Copyright (C) 2007 Lemote Inc. & Insititute of Computing Technology 9 * Copyright (C) 2007 Lemote Inc. & Insititute of Computing Technology
10 * Author: Fuxin Zhang, zhangfx@lemote.com 10 * Author: Fuxin Zhang, zhangfx@lemote.com
11 * 11 *
12 * Copyright (C) 2009 Lemote Inc. & Insititute of Computing Technology 12 * Copyright (C) 2009 Lemote Inc.
13 * Author: Wu Zhangjin, wuzj@lemote.com 13 * Author: Wu Zhangjin, wuzhangjin@gmail.com
14 * 14 *
15 * This program is free software; you can redistribute it and/or modify it 15 * This program is free software; you can redistribute it and/or modify it
16 * under the terms of the GNU General Public License as published by the 16 * under the terms of the GNU General Public License as published by the
@@ -23,13 +23,10 @@
23 23
24#include <loongson.h> 24#include <loongson.h>
25 25
26unsigned long bus_clock, cpu_clock_freq; 26unsigned long cpu_clock_freq;
27EXPORT_SYMBOL(cpu_clock_freq); 27EXPORT_SYMBOL(cpu_clock_freq);
28unsigned long memsize, highmemsize; 28unsigned long memsize, highmemsize;
29 29
30/* pmon passes arguments in 32bit pointers */
31int *_prom_envp;
32
33#define parse_even_earlier(res, option, p) \ 30#define parse_even_earlier(res, option, p) \
34do { \ 31do { \
35 if (strncmp(option, (char *)p, strlen(option)) == 0) \ 32 if (strncmp(option, (char *)p, strlen(option)) == 0) \
@@ -39,6 +36,10 @@ do { \
39 36
40void __init prom_init_env(void) 37void __init prom_init_env(void)
41{ 38{
39 /* pmon passes arguments in 32bit pointers */
40 int *_prom_envp;
41 unsigned long bus_clock;
42 unsigned int processor_id;
42 long l; 43 long l;
43 44
44 /* firmware arguments are initialized in head.S */ 45 /* firmware arguments are initialized in head.S */
@@ -55,6 +56,22 @@ void __init prom_init_env(void)
55 } 56 }
56 if (memsize == 0) 57 if (memsize == 0)
57 memsize = 256; 58 memsize = 256;
59 if (bus_clock == 0)
60 bus_clock = 66000000;
61 if (cpu_clock_freq == 0) {
62 processor_id = (&current_cpu_data)->processor_id;
63 switch (processor_id & PRID_REV_MASK) {
64 case PRID_REV_LOONGSON2E:
65 cpu_clock_freq = 533080000;
66 break;
67 case PRID_REV_LOONGSON2F:
68 cpu_clock_freq = 797000000;
69 break;
70 default:
71 cpu_clock_freq = 100000000;
72 break;
73 }
74 }
58 75
59 pr_info("busclock=%ld, cpuclock=%ld, memsize=%ld, highmemsize=%ld\n", 76 pr_info("busclock=%ld, cpuclock=%ld, memsize=%ld, highmemsize=%ld\n",
60 bus_clock, cpu_clock_freq, memsize, highmemsize); 77 bus_clock, cpu_clock_freq, memsize, highmemsize);
diff --git a/arch/mips/loongson/common/init.c b/arch/mips/loongson/common/init.c
index a2abd9355737..19d341591254 100644
--- a/arch/mips/loongson/common/init.c
+++ b/arch/mips/loongson/common/init.c
@@ -1,6 +1,6 @@
1/* 1/*
2 * Copyright (C) 2009 Lemote Inc. 2 * Copyright (C) 2009 Lemote Inc.
3 * Author: Wu Zhangjin, wuzj@lemote.com 3 * Author: Wu Zhangjin, wuzhangjin@gmail.com
4 * 4 *
5 * This program is free software; you can redistribute it and/or modify it 5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the 6 * under the terms of the GNU General Public License as published by the
diff --git a/arch/mips/loongson/common/machtype.c b/arch/mips/loongson/common/machtype.c
index 0ed52b3f5314..853f184b793e 100644
--- a/arch/mips/loongson/common/machtype.c
+++ b/arch/mips/loongson/common/machtype.c
@@ -1,6 +1,6 @@
1/* 1/*
2 * Copyright (C) 2009 Lemote Inc. & Insititute of Computing Technology 2 * Copyright (C) 2009 Lemote Inc.
3 * Author: Wu Zhangjin, wuzj@lemote.com 3 * Author: Wu Zhangjin, wuzhangjin@gmail.com
4 * 4 *
5 * Copyright (c) 2009 Zhang Le <r0bertz@gentoo.org> 5 * Copyright (c) 2009 Zhang Le <r0bertz@gentoo.org>
6 * 6 *
@@ -35,6 +35,10 @@ const char *get_system_type(void)
35 return system_types[mips_machtype]; 35 return system_types[mips_machtype];
36} 36}
37 37
38void __weak __init mach_prom_init_machtype(void)
39{
40}
41
38void __init prom_init_machtype(void) 42void __init prom_init_machtype(void)
39{ 43{
40 char *p, str[MACHTYPE_LEN]; 44 char *p, str[MACHTYPE_LEN];
@@ -43,8 +47,10 @@ void __init prom_init_machtype(void)
43 mips_machtype = LOONGSON_MACHTYPE; 47 mips_machtype = LOONGSON_MACHTYPE;
44 48
45 p = strstr(arcs_cmdline, "machtype="); 49 p = strstr(arcs_cmdline, "machtype=");
46 if (!p) 50 if (!p) {
51 mach_prom_init_machtype();
47 return; 52 return;
53 }
48 p += strlen("machtype="); 54 p += strlen("machtype=");
49 strncpy(str, p, MACHTYPE_LEN); 55 strncpy(str, p, MACHTYPE_LEN);
50 p = strstr(str, " "); 56 p = strstr(str, " ");
diff --git a/arch/mips/loongson/common/mem.c b/arch/mips/loongson/common/mem.c
index ceacd092b446..ec2f7964a0b0 100644
--- a/arch/mips/loongson/common/mem.c
+++ b/arch/mips/loongson/common/mem.c
@@ -16,10 +16,11 @@
16 16
17void __init prom_init_memory(void) 17void __init prom_init_memory(void)
18{ 18{
19 add_memory_region(0x0, (memsize << 20), BOOT_MEM_RAM); 19 add_memory_region(0x0, (memsize << 20), BOOT_MEM_RAM);
20
21 add_memory_region(memsize << 20, LOONGSON_PCI_MEM_START - (memsize <<
22 20), BOOT_MEM_RESERVED);
20 23
21 add_memory_region(memsize << 20, LOONGSON_PCI_MEM_START - (memsize <<
22 20), BOOT_MEM_RESERVED);
23#ifdef CONFIG_CPU_SUPPORTS_ADDRWINCFG 24#ifdef CONFIG_CPU_SUPPORTS_ADDRWINCFG
24 { 25 {
25 int bit; 26 int bit;
diff --git a/arch/mips/loongson/common/platform.c b/arch/mips/loongson/common/platform.c
index be81777eb94d..ed007a2e0e1f 100644
--- a/arch/mips/loongson/common/platform.c
+++ b/arch/mips/loongson/common/platform.c
@@ -1,6 +1,6 @@
1/* 1/*
2 * Copyright (C) 2009 Lemote Inc. 2 * Copyright (C) 2009 Lemote Inc.
3 * Author: Wu Zhangjin, wuzj@lemote.com 3 * Author: Wu Zhangjin, wuzhangjin@gmail.com
4 * 4 *
5 * This program is free software; you can redistribute it and/or modify it 5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the 6 * under the terms of the GNU General Public License as published by the
diff --git a/arch/mips/loongson/common/pm.c b/arch/mips/loongson/common/pm.c
index b625fec8a4d5..6c1fd9001712 100644
--- a/arch/mips/loongson/common/pm.c
+++ b/arch/mips/loongson/common/pm.c
@@ -2,7 +2,7 @@
2 * loongson-specific suspend support 2 * loongson-specific suspend support
3 * 3 *
4 * Copyright (C) 2009 Lemote Inc. 4 * Copyright (C) 2009 Lemote Inc.
5 * Author: Wu Zhangjin <wuzj@lemote.com> 5 * Author: Wu Zhangjin <wuzhangjin@gmail.com>
6 * 6 *
7 * This program is free software; you can redistribute it and/or modify 7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by 8 * it under the terms of the GNU General Public License as published by
diff --git a/arch/mips/loongson/common/reset.c b/arch/mips/loongson/common/reset.c
index d57f1719da95..4bd9c18b07a5 100644
--- a/arch/mips/loongson/common/reset.c
+++ b/arch/mips/loongson/common/reset.c
@@ -6,8 +6,8 @@
6 * 6 *
7 * Copyright (C) 2007 Lemote, Inc. & Institute of Computing Technology 7 * Copyright (C) 2007 Lemote, Inc. & Institute of Computing Technology
8 * Author: Fuxin Zhang, zhangfx@lemote.com 8 * Author: Fuxin Zhang, zhangfx@lemote.com
9 * Copyright (C) 2009 Lemote, Inc. & Institute of Computing Technology 9 * Copyright (C) 2009 Lemote, Inc.
10 * Author: Zhangjin Wu, wuzj@lemote.com 10 * Author: Zhangjin Wu, wuzhangjin@gmail.com
11 */ 11 */
12#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/pm.h> 13#include <linux/pm.h>
@@ -25,18 +25,26 @@ static void loongson_restart(char *command)
25 ((void (*)(void))ioremap_nocache(LOONGSON_BOOT_BASE, 4)) (); 25 ((void (*)(void))ioremap_nocache(LOONGSON_BOOT_BASE, 4)) ();
26} 26}
27 27
28static void loongson_halt(void) 28static void loongson_poweroff(void)
29{ 29{
30 mach_prepare_shutdown(); 30 mach_prepare_shutdown();
31 while (1) 31 unreachable();
32 ; 32}
33
34static void loongson_halt(void)
35{
36 pr_notice("\n\n** You can safely turn off the power now **\n\n");
37 while (1) {
38 if (cpu_wait)
39 cpu_wait();
40 }
33} 41}
34 42
35static int __init mips_reboot_setup(void) 43static int __init mips_reboot_setup(void)
36{ 44{
37 _machine_restart = loongson_restart; 45 _machine_restart = loongson_restart;
38 _machine_halt = loongson_halt; 46 _machine_halt = loongson_halt;
39 pm_power_off = loongson_halt; 47 pm_power_off = loongson_poweroff;
40 48
41 return 0; 49 return 0;
42} 50}
diff --git a/arch/mips/loongson/common/serial.c b/arch/mips/loongson/common/serial.c
index 23b66a5f88cb..7580873143c8 100644
--- a/arch/mips/loongson/common/serial.c
+++ b/arch/mips/loongson/common/serial.c
@@ -7,7 +7,7 @@
7 * 7 *
8 * Copyright (C) 2009 Lemote, Inc. 8 * Copyright (C) 2009 Lemote, Inc.
9 * Author: Yan hua (yanhua@lemote.com) 9 * Author: Yan hua (yanhua@lemote.com)
10 * Author: Wu Zhangjin (wuzj@lemote.com) 10 * Author: Wu Zhangjin (wuzhangjin@gmail.com)
11 */ 11 */
12 12
13#include <linux/io.h> 13#include <linux/io.h>
diff --git a/arch/mips/loongson/common/time.c b/arch/mips/loongson/common/time.c
index 35f0b66a94f5..9fdd01f6c56a 100644
--- a/arch/mips/loongson/common/time.c
+++ b/arch/mips/loongson/common/time.c
@@ -2,8 +2,8 @@
2 * Copyright (C) 2007 Lemote, Inc. & Institute of Computing Technology 2 * Copyright (C) 2007 Lemote, Inc. & Institute of Computing Technology
3 * Author: Fuxin Zhang, zhangfx@lemote.com 3 * Author: Fuxin Zhang, zhangfx@lemote.com
4 * 4 *
5 * Copyright (C) 2009 Lemote Inc. & Insititute of Computing Technology 5 * Copyright (C) 2009 Lemote Inc.
6 * Author: Wu Zhangjin, wuzj@lemote.com 6 * Author: Wu Zhangjin, wuzhangjin@gmail.com
7 * 7 *
8 * This program is free software; you can redistribute it and/or modify it 8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the 9 * under the terms of the GNU General Public License as published by the
diff --git a/arch/mips/loongson/common/uart_base.c b/arch/mips/loongson/common/uart_base.c
index 78ff66ae749e..d69ea54bc3d1 100644
--- a/arch/mips/loongson/common/uart_base.c
+++ b/arch/mips/loongson/common/uart_base.c
@@ -1,6 +1,6 @@
1/* 1/*
2 * Copyright (C) 2009 Lemote Inc. 2 * Copyright (C) 2009 Lemote Inc.
3 * Author: Wu Zhangjin, wuzj@lemote.com 3 * Author: Wu Zhangjin, wuzhangjin@gmail.com
4 * 4 *
5 * This program is free software; you can redistribute it and/or modify it 5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the 6 * under the terms of the GNU General Public License as published by the
diff --git a/arch/mips/loongson/fuloong-2e/reset.c b/arch/mips/loongson/fuloong-2e/reset.c
index fc16c677d476..bc39ec62c8c2 100644
--- a/arch/mips/loongson/fuloong-2e/reset.c
+++ b/arch/mips/loongson/fuloong-2e/reset.c
@@ -1,8 +1,8 @@
1/* Board-specific reboot/shutdown routines 1/* Board-specific reboot/shutdown routines
2 * Copyright (c) 2009 Philippe Vachon <philippe@cowpig.ca> 2 * Copyright (c) 2009 Philippe Vachon <philippe@cowpig.ca>
3 * 3 *
4 * Copyright (C) 2009 Lemote Inc. & Insititute of Computing Technology 4 * Copyright (C) 2009 Lemote Inc.
5 * Author: Wu Zhangjin, wuzj@lemote.com 5 * Author: Wu Zhangjin, wuzhangjin@gmail.com
6 * 6 *
7 * This program is free software; you can redistribute it and/or modify it 7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the 8 * under the terms of the GNU General Public License as published by the
diff --git a/arch/mips/loongson/lemote-2f/Makefile b/arch/mips/loongson/lemote-2f/Makefile
index 4d84b27dc41b..8699a53f0477 100644
--- a/arch/mips/loongson/lemote-2f/Makefile
+++ b/arch/mips/loongson/lemote-2f/Makefile
@@ -2,7 +2,7 @@
2# Makefile for lemote loongson2f family machines 2# Makefile for lemote loongson2f family machines
3# 3#
4 4
5obj-y += irq.o reset.o ec_kb3310b.o 5obj-y += machtype.o irq.o reset.o ec_kb3310b.o
6 6
7# 7#
8# Suspend Support 8# Suspend Support
diff --git a/arch/mips/loongson/lemote-2f/ec_kb3310b.c b/arch/mips/loongson/lemote-2f/ec_kb3310b.c
index 4d84111a2cd4..64057244eec5 100644
--- a/arch/mips/loongson/lemote-2f/ec_kb3310b.c
+++ b/arch/mips/loongson/lemote-2f/ec_kb3310b.c
@@ -75,6 +75,8 @@ int ec_query_seq(unsigned char cmd)
75 udelay(EC_REG_DELAY); 75 udelay(EC_REG_DELAY);
76 } 76 }
77 77
78 spin_unlock_irqrestore(&port_access_lock, flags);
79
78 if (timeout <= 0) { 80 if (timeout <= 0) {
79 printk(KERN_ERR "%s: deadable error : timeout...\n", __func__); 81 printk(KERN_ERR "%s: deadable error : timeout...\n", __func__);
80 ret = -EINVAL; 82 ret = -EINVAL;
@@ -83,8 +85,6 @@ int ec_query_seq(unsigned char cmd)
83 "(%x/%d)ec issued command %d status : 0x%x\n", 85 "(%x/%d)ec issued command %d status : 0x%x\n",
84 timeout, EC_CMD_TIMEOUT - timeout, cmd, status); 86 timeout, EC_CMD_TIMEOUT - timeout, cmd, status);
85 87
86 spin_unlock_irqrestore(&port_access_lock, flags);
87
88 return ret; 88 return ret;
89} 89}
90EXPORT_SYMBOL_GPL(ec_query_seq); 90EXPORT_SYMBOL_GPL(ec_query_seq);
diff --git a/arch/mips/loongson/lemote-2f/irq.c b/arch/mips/loongson/lemote-2f/irq.c
index 77d32f9cf31e..882dfcd42c00 100644
--- a/arch/mips/loongson/lemote-2f/irq.c
+++ b/arch/mips/loongson/lemote-2f/irq.c
@@ -38,7 +38,7 @@ int mach_i8259_irq(void)
38 irq = -1; 38 irq = -1;
39 39
40 if ((LOONGSON_INTISR & LOONGSON_INTEN) & LOONGSON_INT_BIT_INT0) { 40 if ((LOONGSON_INTISR & LOONGSON_INTEN) & LOONGSON_INT_BIT_INT0) {
41 spin_lock(&i8259A_lock); 41 raw_spin_lock(&i8259A_lock);
42 isr = inb(PIC_MASTER_CMD) & 42 isr = inb(PIC_MASTER_CMD) &
43 ~inb(PIC_MASTER_IMR) & ~(1 << PIC_CASCADE_IR); 43 ~inb(PIC_MASTER_IMR) & ~(1 << PIC_CASCADE_IR);
44 if (!isr) 44 if (!isr)
@@ -56,7 +56,7 @@ int mach_i8259_irq(void)
56 if (~inb(PIC_MASTER_ISR) & 0x80) 56 if (~inb(PIC_MASTER_ISR) & 0x80)
57 irq = -1; 57 irq = -1;
58 } 58 }
59 spin_unlock(&i8259A_lock); 59 raw_spin_unlock(&i8259A_lock);
60 } 60 }
61 61
62 return irq; 62 return irq;
diff --git a/arch/mips/loongson/lemote-2f/machtype.c b/arch/mips/loongson/lemote-2f/machtype.c
new file mode 100644
index 000000000000..e860a2705c27
--- /dev/null
+++ b/arch/mips/loongson/lemote-2f/machtype.c
@@ -0,0 +1,45 @@
1/*
2 * Copyright (C) 2009 Lemote Inc.
3 * Author: Wu Zhangjin, wuzhangjin@gmail.com
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the
7 * Free Software Foundation; either version 2 of the License, or (at your
8 * option) any later version.
9 */
10#include <asm/bootinfo.h>
11
12#include <loongson.h>
13
14void __init mach_prom_init_machtype(void)
15{
16 /* We share the same kernel image file among Lemote 2F family
17 * of machines, and provide the machtype= kernel command line
18 * to users to indicate their machine, this command line will
19 * be passed by the latest PMON automatically. and fortunately,
20 * up to now, we can get the machine type from the PMON_VER=
21 * commandline directly except the NAS machine, In the old
22 * machines, this will help the users a lot.
23 *
24 * If no "machtype=" passed, get machine type from "PMON_VER=".
25 * PMON_VER=LM8089 Lemote 8.9'' netbook
26 * LM8101 Lemote 10.1'' netbook
27 * (The above two netbooks have the same kernel support)
28 * LM6XXX Lemote FuLoong(2F) box series
29 * LM9XXX Lemote LynLoong PC series
30 */
31 if (strstr(arcs_cmdline, "PMON_VER=LM")) {
32 if (strstr(arcs_cmdline, "PMON_VER=LM8"))
33 mips_machtype = MACH_LEMOTE_YL2F89;
34 else if (strstr(arcs_cmdline, "PMON_VER=LM6"))
35 mips_machtype = MACH_LEMOTE_FL2F;
36 else if (strstr(arcs_cmdline, "PMON_VER=LM9"))
37 mips_machtype = MACH_LEMOTE_LL2F;
38 else
39 mips_machtype = MACH_LEMOTE_NAS;
40
41 strcat(arcs_cmdline, " machtype=");
42 strcat(arcs_cmdline, get_system_type());
43 strcat(arcs_cmdline, " ");
44 }
45}
diff --git a/arch/mips/loongson/lemote-2f/pm.c b/arch/mips/loongson/lemote-2f/pm.c
index d7af2e616592..cac4d382ea73 100644
--- a/arch/mips/loongson/lemote-2f/pm.c
+++ b/arch/mips/loongson/lemote-2f/pm.c
@@ -2,7 +2,7 @@
2 * Lemote loongson2f family machines' specific suspend support 2 * Lemote loongson2f family machines' specific suspend support
3 * 3 *
4 * Copyright (C) 2009 Lemote Inc. 4 * Copyright (C) 2009 Lemote Inc.
5 * Author: Wu Zhangjin <wuzj@lemote.com> 5 * Author: Wu Zhangjin <wuzhangjin@gmail.com>
6 * 6 *
7 * This program is free software; you can redistribute it and/or modify 7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by 8 * it under the terms of the GNU General Public License as published by
diff --git a/arch/mips/loongson/lemote-2f/reset.c b/arch/mips/loongson/lemote-2f/reset.c
index 51d1a60d5349..36020a07e180 100644
--- a/arch/mips/loongson/lemote-2f/reset.c
+++ b/arch/mips/loongson/lemote-2f/reset.c
@@ -3,7 +3,7 @@
3 * Copyright (c) 2009 Philippe Vachon <philippe@cowpig.ca> 3 * Copyright (c) 2009 Philippe Vachon <philippe@cowpig.ca>
4 * 4 *
5 * Copyright (C) 2009 Lemote Inc. 5 * Copyright (C) 2009 Lemote Inc.
6 * Author: Wu Zhangjin, wuzj@lemote.com 6 * Author: Wu Zhangjin, wuzhangjin@gmail.com
7 * 7 *
8 * This program is free software; you can redistribute it and/or modify it 8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the 9 * under the terms of the GNU General Public License as published by the
diff --git a/arch/mips/math-emu/ieee754d.c b/arch/mips/math-emu/ieee754d.c
index 7e900f30987e..a0325337b76c 100644
--- a/arch/mips/math-emu/ieee754d.c
+++ b/arch/mips/math-emu/ieee754d.c
@@ -135,4 +135,3 @@ ieee754sp ieee754sp_dump(char *m, ieee754sp x)
135 printk("\n"); 135 printk("\n");
136 return x; 136 return x;
137} 137}
138
diff --git a/arch/mips/math-emu/ieee754dp.c b/arch/mips/math-emu/ieee754dp.c
index 6d2d89f32472..2f22fd7fd784 100644
--- a/arch/mips/math-emu/ieee754dp.c
+++ b/arch/mips/math-emu/ieee754dp.c
@@ -148,7 +148,6 @@ ieee754dp ieee754dp_format(int sn, int xe, u64 xm)
148 148
149 switch(ieee754_csr.rm) { 149 switch(ieee754_csr.rm) {
150 case IEEE754_RN: 150 case IEEE754_RN:
151 return ieee754dp_zero(sn);
152 case IEEE754_RZ: 151 case IEEE754_RZ:
153 return ieee754dp_zero(sn); 152 return ieee754dp_zero(sn);
154 case IEEE754_RU: /* toward +Infinity */ 153 case IEEE754_RU: /* toward +Infinity */
diff --git a/arch/mips/math-emu/ieee754sp.c b/arch/mips/math-emu/ieee754sp.c
index 463534045ab6..a19b72185ab9 100644
--- a/arch/mips/math-emu/ieee754sp.c
+++ b/arch/mips/math-emu/ieee754sp.c
@@ -149,7 +149,6 @@ ieee754sp ieee754sp_format(int sn, int xe, unsigned xm)
149 149
150 switch(ieee754_csr.rm) { 150 switch(ieee754_csr.rm) {
151 case IEEE754_RN: 151 case IEEE754_RN:
152 return ieee754sp_zero(sn);
153 case IEEE754_RZ: 152 case IEEE754_RZ:
154 return ieee754sp_zero(sn); 153 return ieee754sp_zero(sn);
155 case IEEE754_RU: /* toward +Infinity */ 154 case IEEE754_RU: /* toward +Infinity */
diff --git a/arch/mips/math-emu/ieee754xcpt.c b/arch/mips/math-emu/ieee754xcpt.c
index 7d8ef8965067..e02423a0ae23 100644
--- a/arch/mips/math-emu/ieee754xcpt.c
+++ b/arch/mips/math-emu/ieee754xcpt.c
@@ -46,4 +46,3 @@ void ieee754_xcpt(struct ieee754xctx *xcp)
46 printk(KERN_DEBUG "floating point exception in \"%s\", type=%s\n", 46 printk(KERN_DEBUG "floating point exception in \"%s\", type=%s\n",
47 xcp->op, rtnames[xcp->rt]); 47 xcp->op, rtnames[xcp->rt]);
48} 48}
49
diff --git a/arch/mips/mm/c-octeon.c b/arch/mips/mm/c-octeon.c
index e06f1af760a7..0f9c488044d1 100644
--- a/arch/mips/mm/c-octeon.c
+++ b/arch/mips/mm/c-octeon.c
@@ -183,6 +183,7 @@ static void __cpuinit probe_octeon(void)
183 183
184 switch (c->cputype) { 184 switch (c->cputype) {
185 case CPU_CAVIUM_OCTEON: 185 case CPU_CAVIUM_OCTEON:
186 case CPU_CAVIUM_OCTEON_PLUS:
186 config1 = read_c0_config1(); 187 config1 = read_c0_config1();
187 c->icache.linesz = 2 << ((config1 >> 19) & 7); 188 c->icache.linesz = 2 << ((config1 >> 19) & 7);
188 c->icache.sets = 64 << ((config1 >> 22) & 7); 189 c->icache.sets = 64 << ((config1 >> 22) & 7);
@@ -192,10 +193,10 @@ static void __cpuinit probe_octeon(void)
192 c->icache.sets * c->icache.ways * c->icache.linesz; 193 c->icache.sets * c->icache.ways * c->icache.linesz;
193 c->icache.waybit = ffs(icache_size / c->icache.ways) - 1; 194 c->icache.waybit = ffs(icache_size / c->icache.ways) - 1;
194 c->dcache.linesz = 128; 195 c->dcache.linesz = 128;
195 if (OCTEON_IS_MODEL(OCTEON_CN3XXX)) 196 if (c->cputype == CPU_CAVIUM_OCTEON_PLUS)
196 c->dcache.sets = 1; /* CN3XXX has one Dcache set */
197 else
198 c->dcache.sets = 2; /* CN5XXX has two Dcache sets */ 197 c->dcache.sets = 2; /* CN5XXX has two Dcache sets */
198 else
199 c->dcache.sets = 1; /* CN3XXX has one Dcache set */
199 c->dcache.ways = 64; 200 c->dcache.ways = 64;
200 dcache_size = 201 dcache_size =
201 c->dcache.sets * c->dcache.ways * c->dcache.linesz; 202 c->dcache.sets * c->dcache.ways * c->dcache.linesz;
@@ -305,4 +306,3 @@ asmlinkage void cache_parity_error_octeon_non_recoverable(void)
305{ 306{
306 cache_parity_error_octeon(1); 307 cache_parity_error_octeon(1);
307} 308}
308
diff --git a/arch/mips/mm/cache.c b/arch/mips/mm/cache.c
index e716cafc346d..be8627bc5b02 100644
--- a/arch/mips/mm/cache.c
+++ b/arch/mips/mm/cache.c
@@ -137,22 +137,43 @@ EXPORT_SYMBOL_GPL(_page_cachable_default);
137 137
138static inline void setup_protection_map(void) 138static inline void setup_protection_map(void)
139{ 139{
140 protection_map[0] = PAGE_NONE; 140 if (kernel_uses_smartmips_rixi) {
141 protection_map[1] = PAGE_READONLY; 141 protection_map[0] = __pgprot(_page_cachable_default | _PAGE_PRESENT | _PAGE_NO_EXEC | _PAGE_NO_READ);
142 protection_map[2] = PAGE_COPY; 142 protection_map[1] = __pgprot(_page_cachable_default | _PAGE_PRESENT | _PAGE_NO_EXEC);
143 protection_map[3] = PAGE_COPY; 143 protection_map[2] = __pgprot(_page_cachable_default | _PAGE_PRESENT | _PAGE_NO_EXEC | _PAGE_NO_READ);
144 protection_map[4] = PAGE_READONLY; 144 protection_map[3] = __pgprot(_page_cachable_default | _PAGE_PRESENT | _PAGE_NO_EXEC);
145 protection_map[5] = PAGE_READONLY; 145 protection_map[4] = __pgprot(_page_cachable_default | _PAGE_PRESENT | _PAGE_NO_READ);
146 protection_map[6] = PAGE_COPY; 146 protection_map[5] = __pgprot(_page_cachable_default | _PAGE_PRESENT);
147 protection_map[7] = PAGE_COPY; 147 protection_map[6] = __pgprot(_page_cachable_default | _PAGE_PRESENT | _PAGE_NO_READ);
148 protection_map[8] = PAGE_NONE; 148 protection_map[7] = __pgprot(_page_cachable_default | _PAGE_PRESENT);
149 protection_map[9] = PAGE_READONLY; 149
150 protection_map[10] = PAGE_SHARED; 150 protection_map[8] = __pgprot(_page_cachable_default | _PAGE_PRESENT | _PAGE_NO_EXEC | _PAGE_NO_READ);
151 protection_map[11] = PAGE_SHARED; 151 protection_map[9] = __pgprot(_page_cachable_default | _PAGE_PRESENT | _PAGE_NO_EXEC);
152 protection_map[12] = PAGE_READONLY; 152 protection_map[10] = __pgprot(_page_cachable_default | _PAGE_PRESENT | _PAGE_NO_EXEC | _PAGE_WRITE | _PAGE_NO_READ);
153 protection_map[13] = PAGE_READONLY; 153 protection_map[11] = __pgprot(_page_cachable_default | _PAGE_PRESENT | _PAGE_NO_EXEC | _PAGE_WRITE);
154 protection_map[14] = PAGE_SHARED; 154 protection_map[12] = __pgprot(_page_cachable_default | _PAGE_PRESENT | _PAGE_NO_READ);
155 protection_map[15] = PAGE_SHARED; 155 protection_map[13] = __pgprot(_page_cachable_default | _PAGE_PRESENT);
156 protection_map[14] = __pgprot(_page_cachable_default | _PAGE_PRESENT | _PAGE_WRITE | _PAGE_NO_READ);
157 protection_map[15] = __pgprot(_page_cachable_default | _PAGE_PRESENT | _PAGE_WRITE);
158
159 } else {
160 protection_map[0] = PAGE_NONE;
161 protection_map[1] = PAGE_READONLY;
162 protection_map[2] = PAGE_COPY;
163 protection_map[3] = PAGE_COPY;
164 protection_map[4] = PAGE_READONLY;
165 protection_map[5] = PAGE_READONLY;
166 protection_map[6] = PAGE_COPY;
167 protection_map[7] = PAGE_COPY;
168 protection_map[8] = PAGE_NONE;
169 protection_map[9] = PAGE_READONLY;
170 protection_map[10] = PAGE_SHARED;
171 protection_map[11] = PAGE_SHARED;
172 protection_map[12] = PAGE_READONLY;
173 protection_map[13] = PAGE_READONLY;
174 protection_map[14] = PAGE_SHARED;
175 protection_map[15] = PAGE_SHARED;
176 }
156} 177}
157 178
158void __cpuinit cpu_cache_init(void) 179void __cpuinit cpu_cache_init(void)
diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c
index e97a7a2fb2c0..b78f7d913ca4 100644
--- a/arch/mips/mm/fault.c
+++ b/arch/mips/mm/fault.c
@@ -99,8 +99,31 @@ good_area:
99 if (!(vma->vm_flags & VM_WRITE)) 99 if (!(vma->vm_flags & VM_WRITE))
100 goto bad_area; 100 goto bad_area;
101 } else { 101 } else {
102 if (!(vma->vm_flags & (VM_READ | VM_WRITE | VM_EXEC))) 102 if (kernel_uses_smartmips_rixi) {
103 goto bad_area; 103 if (address == regs->cp0_epc && !(vma->vm_flags & VM_EXEC)) {
104#if 0
105 pr_notice("Cpu%d[%s:%d:%0*lx:%ld:%0*lx] XI violation\n",
106 raw_smp_processor_id(),
107 current->comm, current->pid,
108 field, address, write,
109 field, regs->cp0_epc);
110#endif
111 goto bad_area;
112 }
113 if (!(vma->vm_flags & VM_READ)) {
114#if 0
115 pr_notice("Cpu%d[%s:%d:%0*lx:%ld:%0*lx] RI violation\n",
116 raw_smp_processor_id(),
117 current->comm, current->pid,
118 field, address, write,
119 field, regs->cp0_epc);
120#endif
121 goto bad_area;
122 }
123 } else {
124 if (!(vma->vm_flags & (VM_READ | VM_WRITE | VM_EXEC)))
125 goto bad_area;
126 }
104 } 127 }
105 128
106 /* 129 /*
diff --git a/arch/mips/mm/hugetlbpage.c b/arch/mips/mm/hugetlbpage.c
index 8c2834f5919d..cd0660c51f28 100644
--- a/arch/mips/mm/hugetlbpage.c
+++ b/arch/mips/mm/hugetlbpage.c
@@ -97,4 +97,3 @@ follow_huge_pmd(struct mm_struct *mm, unsigned long address,
97 page += ((address & ~HPAGE_MASK) >> PAGE_SHIFT); 97 page += ((address & ~HPAGE_MASK) >> PAGE_SHIFT);
98 return page; 98 return page;
99} 99}
100
diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c
index 1651942f7feb..f34c26439a32 100644
--- a/arch/mips/mm/init.c
+++ b/arch/mips/mm/init.c
@@ -143,7 +143,7 @@ void *kmap_coherent(struct page *page, unsigned long addr)
143#if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_MIPS32) 143#if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_MIPS32)
144 entrylo = pte.pte_high; 144 entrylo = pte.pte_high;
145#else 145#else
146 entrylo = pte_val(pte) >> 6; 146 entrylo = pte_to_entrylo(pte_val(pte));
147#endif 147#endif
148 148
149 ENTER_CRITICAL(flags); 149 ENTER_CRITICAL(flags);
@@ -477,7 +477,7 @@ unsigned long pgd_current[NR_CPUS];
477 * will officially be retired. 477 * will officially be retired.
478 */ 478 */
479pgd_t swapper_pg_dir[_PTRS_PER_PGD] __page_aligned(_PGD_ORDER); 479pgd_t swapper_pg_dir[_PTRS_PER_PGD] __page_aligned(_PGD_ORDER);
480#ifdef CONFIG_64BIT 480#ifndef __PAGETABLE_PMD_FOLDED
481pmd_t invalid_pmd_table[PTRS_PER_PMD] __page_aligned(PMD_ORDER); 481pmd_t invalid_pmd_table[PTRS_PER_PMD] __page_aligned(PMD_ORDER);
482#endif 482#endif
483pte_t invalid_pte_table[PTRS_PER_PTE] __page_aligned(PTE_ORDER); 483pte_t invalid_pte_table[PTRS_PER_PTE] __page_aligned(PTE_ORDER);
diff --git a/arch/mips/mm/page.c b/arch/mips/mm/page.c
index f5c73754d664..36272f7d3744 100644
--- a/arch/mips/mm/page.c
+++ b/arch/mips/mm/page.c
@@ -35,7 +35,7 @@
35#include <asm/sibyte/sb1250_dma.h> 35#include <asm/sibyte/sb1250_dma.h>
36#endif 36#endif
37 37
38#include "uasm.h" 38#include <asm/uasm.h>
39 39
40/* Registers used in the assembled routines. */ 40/* Registers used in the assembled routines. */
41#define ZERO 0 41#define ZERO 0
diff --git a/arch/mips/mm/pgtable-64.c b/arch/mips/mm/pgtable-64.c
index 1121019fa456..78eaa4f0b0ec 100644
--- a/arch/mips/mm/pgtable-64.c
+++ b/arch/mips/mm/pgtable-64.c
@@ -15,23 +15,31 @@
15void pgd_init(unsigned long page) 15void pgd_init(unsigned long page)
16{ 16{
17 unsigned long *p, *end; 17 unsigned long *p, *end;
18 unsigned long entry;
19
20#ifdef __PAGETABLE_PMD_FOLDED
21 entry = (unsigned long)invalid_pte_table;
22#else
23 entry = (unsigned long)invalid_pmd_table;
24#endif
18 25
19 p = (unsigned long *) page; 26 p = (unsigned long *) page;
20 end = p + PTRS_PER_PGD; 27 end = p + PTRS_PER_PGD;
21 28
22 while (p < end) { 29 while (p < end) {
23 p[0] = (unsigned long) invalid_pmd_table; 30 p[0] = entry;
24 p[1] = (unsigned long) invalid_pmd_table; 31 p[1] = entry;
25 p[2] = (unsigned long) invalid_pmd_table; 32 p[2] = entry;
26 p[3] = (unsigned long) invalid_pmd_table; 33 p[3] = entry;
27 p[4] = (unsigned long) invalid_pmd_table; 34 p[4] = entry;
28 p[5] = (unsigned long) invalid_pmd_table; 35 p[5] = entry;
29 p[6] = (unsigned long) invalid_pmd_table; 36 p[6] = entry;
30 p[7] = (unsigned long) invalid_pmd_table; 37 p[7] = entry;
31 p += 8; 38 p += 8;
32 } 39 }
33} 40}
34 41
42#ifndef __PAGETABLE_PMD_FOLDED
35void pmd_init(unsigned long addr, unsigned long pagetable) 43void pmd_init(unsigned long addr, unsigned long pagetable)
36{ 44{
37 unsigned long *p, *end; 45 unsigned long *p, *end;
@@ -40,17 +48,18 @@ void pmd_init(unsigned long addr, unsigned long pagetable)
40 end = p + PTRS_PER_PMD; 48 end = p + PTRS_PER_PMD;
41 49
42 while (p < end) { 50 while (p < end) {
43 p[0] = (unsigned long)pagetable; 51 p[0] = pagetable;
44 p[1] = (unsigned long)pagetable; 52 p[1] = pagetable;
45 p[2] = (unsigned long)pagetable; 53 p[2] = pagetable;
46 p[3] = (unsigned long)pagetable; 54 p[3] = pagetable;
47 p[4] = (unsigned long)pagetable; 55 p[4] = pagetable;
48 p[5] = (unsigned long)pagetable; 56 p[5] = pagetable;
49 p[6] = (unsigned long)pagetable; 57 p[6] = pagetable;
50 p[7] = (unsigned long)pagetable; 58 p[7] = pagetable;
51 p += 8; 59 p += 8;
52 } 60 }
53} 61}
62#endif
54 63
55void __init pagetable_init(void) 64void __init pagetable_init(void)
56{ 65{
@@ -59,8 +68,9 @@ void __init pagetable_init(void)
59 68
60 /* Initialize the entire pgd. */ 69 /* Initialize the entire pgd. */
61 pgd_init((unsigned long)swapper_pg_dir); 70 pgd_init((unsigned long)swapper_pg_dir);
71#ifndef __PAGETABLE_PMD_FOLDED
62 pmd_init((unsigned long)invalid_pmd_table, (unsigned long)invalid_pte_table); 72 pmd_init((unsigned long)invalid_pmd_table, (unsigned long)invalid_pte_table);
63 73#endif
64 pgd_base = swapper_pg_dir; 74 pgd_base = swapper_pg_dir;
65 /* 75 /*
66 * Fixed mappings: 76 * Fixed mappings:
diff --git a/arch/mips/mm/tlb-r4k.c b/arch/mips/mm/tlb-r4k.c
index d73428b18b0a..c618eed933a1 100644
--- a/arch/mips/mm/tlb-r4k.c
+++ b/arch/mips/mm/tlb-r4k.c
@@ -303,7 +303,7 @@ void __update_tlb(struct vm_area_struct * vma, unsigned long address, pte_t pte)
303 unsigned long lo; 303 unsigned long lo;
304 write_c0_pagemask(PM_HUGE_MASK); 304 write_c0_pagemask(PM_HUGE_MASK);
305 ptep = (pte_t *)pmdp; 305 ptep = (pte_t *)pmdp;
306 lo = pte_val(*ptep) >> 6; 306 lo = pte_to_entrylo(pte_val(*ptep));
307 write_c0_entrylo0(lo); 307 write_c0_entrylo0(lo);
308 write_c0_entrylo1(lo + (HPAGE_SIZE >> 7)); 308 write_c0_entrylo1(lo + (HPAGE_SIZE >> 7));
309 309
@@ -323,8 +323,8 @@ void __update_tlb(struct vm_area_struct * vma, unsigned long address, pte_t pte)
323 ptep++; 323 ptep++;
324 write_c0_entrylo1(ptep->pte_high); 324 write_c0_entrylo1(ptep->pte_high);
325#else 325#else
326 write_c0_entrylo0(pte_val(*ptep++) >> 6); 326 write_c0_entrylo0(pte_to_entrylo(pte_val(*ptep++)));
327 write_c0_entrylo1(pte_val(*ptep) >> 6); 327 write_c0_entrylo1(pte_to_entrylo(pte_val(*ptep)));
328#endif 328#endif
329 mtc0_tlbw_hazard(); 329 mtc0_tlbw_hazard();
330 if (idx < 0) 330 if (idx < 0)
@@ -337,40 +337,6 @@ void __update_tlb(struct vm_area_struct * vma, unsigned long address, pte_t pte)
337 EXIT_CRITICAL(flags); 337 EXIT_CRITICAL(flags);
338} 338}
339 339
340#if 0
341static void r4k_update_mmu_cache_hwbug(struct vm_area_struct * vma,
342 unsigned long address, pte_t pte)
343{
344 unsigned long flags;
345 unsigned int asid;
346 pgd_t *pgdp;
347 pmd_t *pmdp;
348 pte_t *ptep;
349 int idx;
350
351 ENTER_CRITICAL(flags);
352 address &= (PAGE_MASK << 1);
353 asid = read_c0_entryhi() & ASID_MASK;
354 write_c0_entryhi(address | asid);
355 pgdp = pgd_offset(vma->vm_mm, address);
356 mtc0_tlbw_hazard();
357 tlb_probe();
358 tlb_probe_hazard();
359 pmdp = pmd_offset(pgdp, address);
360 idx = read_c0_index();
361 ptep = pte_offset_map(pmdp, address);
362 write_c0_entrylo0(pte_val(*ptep++) >> 6);
363 write_c0_entrylo1(pte_val(*ptep) >> 6);
364 mtc0_tlbw_hazard();
365 if (idx < 0)
366 tlb_write_random();
367 else
368 tlb_write_indexed();
369 tlbw_use_hazard();
370 EXIT_CRITICAL(flags);
371}
372#endif
373
374void __init add_wired_entry(unsigned long entrylo0, unsigned long entrylo1, 340void __init add_wired_entry(unsigned long entrylo0, unsigned long entrylo1,
375 unsigned long entryhi, unsigned long pagemask) 341 unsigned long entryhi, unsigned long pagemask)
376{ 342{
@@ -447,34 +413,6 @@ out:
447 return ret; 413 return ret;
448} 414}
449 415
450static void __cpuinit probe_tlb(unsigned long config)
451{
452 struct cpuinfo_mips *c = &current_cpu_data;
453 unsigned int reg;
454
455 /*
456 * If this isn't a MIPS32 / MIPS64 compliant CPU. Config 1 register
457 * is not supported, we assume R4k style. Cpu probing already figured
458 * out the number of tlb entries.
459 */
460 if ((c->processor_id & 0xff0000) == PRID_COMP_LEGACY)
461 return;
462#ifdef CONFIG_MIPS_MT_SMTC
463 /*
464 * If TLB is shared in SMTC system, total size already
465 * has been calculated and written into cpu_data tlbsize
466 */
467 if((smtc_status & SMTC_TLB_SHARED) == SMTC_TLB_SHARED)
468 return;
469#endif /* CONFIG_MIPS_MT_SMTC */
470
471 reg = read_c0_config1();
472 if (!((config >> 7) & 3))
473 panic("No TLB present");
474
475 c->tlbsize = ((reg >> 25) & 0x3f) + 1;
476}
477
478static int __cpuinitdata ntlb; 416static int __cpuinitdata ntlb;
479static int __init set_ntlb(char *str) 417static int __init set_ntlb(char *str)
480{ 418{
@@ -486,8 +424,6 @@ __setup("ntlb=", set_ntlb);
486 424
487void __cpuinit tlb_init(void) 425void __cpuinit tlb_init(void)
488{ 426{
489 unsigned int config = read_c0_config();
490
491 /* 427 /*
492 * You should never change this register: 428 * You should never change this register:
493 * - On R4600 1.7 the tlbp never hits for pages smaller than 429 * - On R4600 1.7 the tlbp never hits for pages smaller than
@@ -495,13 +431,25 @@ void __cpuinit tlb_init(void)
495 * - The entire mm handling assumes the c0_pagemask register to 431 * - The entire mm handling assumes the c0_pagemask register to
496 * be set to fixed-size pages. 432 * be set to fixed-size pages.
497 */ 433 */
498 probe_tlb(config);
499 write_c0_pagemask(PM_DEFAULT_MASK); 434 write_c0_pagemask(PM_DEFAULT_MASK);
500 write_c0_wired(0); 435 write_c0_wired(0);
501 if (current_cpu_type() == CPU_R10000 || 436 if (current_cpu_type() == CPU_R10000 ||
502 current_cpu_type() == CPU_R12000 || 437 current_cpu_type() == CPU_R12000 ||
503 current_cpu_type() == CPU_R14000) 438 current_cpu_type() == CPU_R14000)
504 write_c0_framemask(0); 439 write_c0_framemask(0);
440
441 if (kernel_uses_smartmips_rixi) {
442 /*
443 * Enable the no read, no exec bits, and enable large virtual
444 * address.
445 */
446 u32 pg = PG_RIE | PG_XIE;
447#ifdef CONFIG_64BIT
448 pg |= PG_ELPA;
449#endif
450 write_c0_pagegrain(pg);
451 }
452
505 temp_tlb_entry = current_cpu_data.tlbsize - 1; 453 temp_tlb_entry = current_cpu_data.tlbsize - 1;
506 454
507 /* From this point on the ARC firmware is dead. */ 455 /* From this point on the ARC firmware is dead. */
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c
index badcf5e8d695..0de0e4127d66 100644
--- a/arch/mips/mm/tlbex.c
+++ b/arch/mips/mm/tlbex.c
@@ -29,8 +29,7 @@
29 29
30#include <asm/mmu_context.h> 30#include <asm/mmu_context.h>
31#include <asm/war.h> 31#include <asm/war.h>
32 32#include <asm/uasm.h>
33#include "uasm.h"
34 33
35static inline int r45k_bvahwbug(void) 34static inline int r45k_bvahwbug(void)
36{ 35{
@@ -77,6 +76,8 @@ enum label_id {
77 label_vmalloc_done, 76 label_vmalloc_done,
78 label_tlbw_hazard, 77 label_tlbw_hazard,
79 label_split, 78 label_split,
79 label_tlbl_goaround1,
80 label_tlbl_goaround2,
80 label_nopage_tlbl, 81 label_nopage_tlbl,
81 label_nopage_tlbs, 82 label_nopage_tlbs,
82 label_nopage_tlbm, 83 label_nopage_tlbm,
@@ -93,6 +94,8 @@ UASM_L_LA(_vmalloc)
93UASM_L_LA(_vmalloc_done) 94UASM_L_LA(_vmalloc_done)
94UASM_L_LA(_tlbw_hazard) 95UASM_L_LA(_tlbw_hazard)
95UASM_L_LA(_split) 96UASM_L_LA(_split)
97UASM_L_LA(_tlbl_goaround1)
98UASM_L_LA(_tlbl_goaround2)
96UASM_L_LA(_nopage_tlbl) 99UASM_L_LA(_nopage_tlbl)
97UASM_L_LA(_nopage_tlbs) 100UASM_L_LA(_nopage_tlbs)
98UASM_L_LA(_nopage_tlbm) 101UASM_L_LA(_nopage_tlbm)
@@ -397,36 +400,60 @@ static void __cpuinit build_tlb_write_entry(u32 **p, struct uasm_label **l,
397 } 400 }
398} 401}
399 402
400#ifdef CONFIG_HUGETLB_PAGE 403static __cpuinit __maybe_unused void build_convert_pte_to_entrylo(u32 **p,
401static __cpuinit void build_huge_tlb_write_entry(u32 **p, 404 unsigned int reg)
402 struct uasm_label **l,
403 struct uasm_reloc **r,
404 unsigned int tmp,
405 enum tlb_write_entry wmode)
406{ 405{
407 /* Set huge page tlb entry size */ 406 if (kernel_uses_smartmips_rixi) {
408 uasm_i_lui(p, tmp, PM_HUGE_MASK >> 16); 407 UASM_i_SRL(p, reg, reg, ilog2(_PAGE_NO_EXEC));
409 uasm_i_ori(p, tmp, tmp, PM_HUGE_MASK & 0xffff); 408 UASM_i_ROTR(p, reg, reg, ilog2(_PAGE_GLOBAL) - ilog2(_PAGE_NO_EXEC));
410 uasm_i_mtc0(p, tmp, C0_PAGEMASK); 409 } else {
410#ifdef CONFIG_64BIT_PHYS_ADDR
411 uasm_i_dsrl(p, reg, reg, ilog2(_PAGE_GLOBAL));
412#else
413 UASM_i_SRL(p, reg, reg, ilog2(_PAGE_GLOBAL));
414#endif
415 }
416}
411 417
412 build_tlb_write_entry(p, l, r, wmode); 418#ifdef CONFIG_HUGETLB_PAGE
413 419
420static __cpuinit void build_restore_pagemask(u32 **p,
421 struct uasm_reloc **r,
422 unsigned int tmp,
423 enum label_id lid)
424{
414 /* Reset default page size */ 425 /* Reset default page size */
415 if (PM_DEFAULT_MASK >> 16) { 426 if (PM_DEFAULT_MASK >> 16) {
416 uasm_i_lui(p, tmp, PM_DEFAULT_MASK >> 16); 427 uasm_i_lui(p, tmp, PM_DEFAULT_MASK >> 16);
417 uasm_i_ori(p, tmp, tmp, PM_DEFAULT_MASK & 0xffff); 428 uasm_i_ori(p, tmp, tmp, PM_DEFAULT_MASK & 0xffff);
418 uasm_il_b(p, r, label_leave); 429 uasm_il_b(p, r, lid);
419 uasm_i_mtc0(p, tmp, C0_PAGEMASK); 430 uasm_i_mtc0(p, tmp, C0_PAGEMASK);
420 } else if (PM_DEFAULT_MASK) { 431 } else if (PM_DEFAULT_MASK) {
421 uasm_i_ori(p, tmp, 0, PM_DEFAULT_MASK); 432 uasm_i_ori(p, tmp, 0, PM_DEFAULT_MASK);
422 uasm_il_b(p, r, label_leave); 433 uasm_il_b(p, r, lid);
423 uasm_i_mtc0(p, tmp, C0_PAGEMASK); 434 uasm_i_mtc0(p, tmp, C0_PAGEMASK);
424 } else { 435 } else {
425 uasm_il_b(p, r, label_leave); 436 uasm_il_b(p, r, lid);
426 uasm_i_mtc0(p, 0, C0_PAGEMASK); 437 uasm_i_mtc0(p, 0, C0_PAGEMASK);
427 } 438 }
428} 439}
429 440
441static __cpuinit void build_huge_tlb_write_entry(u32 **p,
442 struct uasm_label **l,
443 struct uasm_reloc **r,
444 unsigned int tmp,
445 enum tlb_write_entry wmode)
446{
447 /* Set huge page tlb entry size */
448 uasm_i_lui(p, tmp, PM_HUGE_MASK >> 16);
449 uasm_i_ori(p, tmp, tmp, PM_HUGE_MASK & 0xffff);
450 uasm_i_mtc0(p, tmp, C0_PAGEMASK);
451
452 build_tlb_write_entry(p, l, r, wmode);
453
454 build_restore_pagemask(p, r, tmp, label_leave);
455}
456
430/* 457/*
431 * Check if Huge PTE is present, if so then jump to LABEL. 458 * Check if Huge PTE is present, if so then jump to LABEL.
432 */ 459 */
@@ -460,15 +487,15 @@ static __cpuinit void build_huge_update_entries(u32 **p,
460 if (!small_sequence) 487 if (!small_sequence)
461 uasm_i_lui(p, tmp, HPAGE_SIZE >> (7 + 16)); 488 uasm_i_lui(p, tmp, HPAGE_SIZE >> (7 + 16));
462 489
463 UASM_i_SRL(p, pte, pte, 6); /* convert to entrylo */ 490 build_convert_pte_to_entrylo(p, pte);
464 uasm_i_mtc0(p, pte, C0_ENTRYLO0); /* load it */ 491 UASM_i_MTC0(p, pte, C0_ENTRYLO0); /* load it */
465 /* convert to entrylo1 */ 492 /* convert to entrylo1 */
466 if (small_sequence) 493 if (small_sequence)
467 UASM_i_ADDIU(p, pte, pte, HPAGE_SIZE >> 7); 494 UASM_i_ADDIU(p, pte, pte, HPAGE_SIZE >> 7);
468 else 495 else
469 UASM_i_ADDU(p, pte, pte, tmp); 496 UASM_i_ADDU(p, pte, pte, tmp);
470 497
471 uasm_i_mtc0(p, pte, C0_ENTRYLO1); /* load it */ 498 UASM_i_MTC0(p, pte, C0_ENTRYLO1); /* load it */
472} 499}
473 500
474static __cpuinit void build_huge_handler_tail(u32 **p, 501static __cpuinit void build_huge_handler_tail(u32 **p,
@@ -549,11 +576,13 @@ build_get_pmde64(u32 **p, struct uasm_label **l, struct uasm_reloc **r,
549 576
550 uasm_i_andi(p, tmp, tmp, (PTRS_PER_PGD - 1)<<3); 577 uasm_i_andi(p, tmp, tmp, (PTRS_PER_PGD - 1)<<3);
551 uasm_i_daddu(p, ptr, ptr, tmp); /* add in pgd offset */ 578 uasm_i_daddu(p, ptr, ptr, tmp); /* add in pgd offset */
579#ifndef __PAGETABLE_PMD_FOLDED
552 uasm_i_dmfc0(p, tmp, C0_BADVADDR); /* get faulting address */ 580 uasm_i_dmfc0(p, tmp, C0_BADVADDR); /* get faulting address */
553 uasm_i_ld(p, ptr, 0, ptr); /* get pmd pointer */ 581 uasm_i_ld(p, ptr, 0, ptr); /* get pmd pointer */
554 uasm_i_dsrl(p, tmp, tmp, PMD_SHIFT-3); /* get pmd offset in bytes */ 582 uasm_i_dsrl(p, tmp, tmp, PMD_SHIFT-3); /* get pmd offset in bytes */
555 uasm_i_andi(p, tmp, tmp, (PTRS_PER_PMD - 1)<<3); 583 uasm_i_andi(p, tmp, tmp, (PTRS_PER_PMD - 1)<<3);
556 uasm_i_daddu(p, ptr, ptr, tmp); /* add in pmd offset */ 584 uasm_i_daddu(p, ptr, ptr, tmp); /* add in pmd offset */
585#endif
557} 586}
558 587
559/* 588/*
@@ -684,35 +713,53 @@ static void __cpuinit build_update_entries(u32 **p, unsigned int tmp,
684 if (cpu_has_64bits) { 713 if (cpu_has_64bits) {
685 uasm_i_ld(p, tmp, 0, ptep); /* get even pte */ 714 uasm_i_ld(p, tmp, 0, ptep); /* get even pte */
686 uasm_i_ld(p, ptep, sizeof(pte_t), ptep); /* get odd pte */ 715 uasm_i_ld(p, ptep, sizeof(pte_t), ptep); /* get odd pte */
687 uasm_i_dsrl(p, tmp, tmp, 6); /* convert to entrylo0 */ 716 if (kernel_uses_smartmips_rixi) {
688 uasm_i_mtc0(p, tmp, C0_ENTRYLO0); /* load it */ 717 UASM_i_SRL(p, tmp, tmp, ilog2(_PAGE_NO_EXEC));
689 uasm_i_dsrl(p, ptep, ptep, 6); /* convert to entrylo1 */ 718 UASM_i_SRL(p, ptep, ptep, ilog2(_PAGE_NO_EXEC));
690 uasm_i_mtc0(p, ptep, C0_ENTRYLO1); /* load it */ 719 UASM_i_ROTR(p, tmp, tmp, ilog2(_PAGE_GLOBAL) - ilog2(_PAGE_NO_EXEC));
720 UASM_i_MTC0(p, tmp, C0_ENTRYLO0); /* load it */
721 UASM_i_ROTR(p, ptep, ptep, ilog2(_PAGE_GLOBAL) - ilog2(_PAGE_NO_EXEC));
722 } else {
723 uasm_i_dsrl(p, tmp, tmp, ilog2(_PAGE_GLOBAL)); /* convert to entrylo0 */
724 UASM_i_MTC0(p, tmp, C0_ENTRYLO0); /* load it */
725 uasm_i_dsrl(p, ptep, ptep, ilog2(_PAGE_GLOBAL)); /* convert to entrylo1 */
726 }
727 UASM_i_MTC0(p, ptep, C0_ENTRYLO1); /* load it */
691 } else { 728 } else {
692 int pte_off_even = sizeof(pte_t) / 2; 729 int pte_off_even = sizeof(pte_t) / 2;
693 int pte_off_odd = pte_off_even + sizeof(pte_t); 730 int pte_off_odd = pte_off_even + sizeof(pte_t);
694 731
695 /* The pte entries are pre-shifted */ 732 /* The pte entries are pre-shifted */
696 uasm_i_lw(p, tmp, pte_off_even, ptep); /* get even pte */ 733 uasm_i_lw(p, tmp, pte_off_even, ptep); /* get even pte */
697 uasm_i_mtc0(p, tmp, C0_ENTRYLO0); /* load it */ 734 UASM_i_MTC0(p, tmp, C0_ENTRYLO0); /* load it */
698 uasm_i_lw(p, ptep, pte_off_odd, ptep); /* get odd pte */ 735 uasm_i_lw(p, ptep, pte_off_odd, ptep); /* get odd pte */
699 uasm_i_mtc0(p, ptep, C0_ENTRYLO1); /* load it */ 736 UASM_i_MTC0(p, ptep, C0_ENTRYLO1); /* load it */
700 } 737 }
701#else 738#else
702 UASM_i_LW(p, tmp, 0, ptep); /* get even pte */ 739 UASM_i_LW(p, tmp, 0, ptep); /* get even pte */
703 UASM_i_LW(p, ptep, sizeof(pte_t), ptep); /* get odd pte */ 740 UASM_i_LW(p, ptep, sizeof(pte_t), ptep); /* get odd pte */
704 if (r45k_bvahwbug()) 741 if (r45k_bvahwbug())
705 build_tlb_probe_entry(p); 742 build_tlb_probe_entry(p);
706 UASM_i_SRL(p, tmp, tmp, 6); /* convert to entrylo0 */ 743 if (kernel_uses_smartmips_rixi) {
707 if (r4k_250MHZhwbug()) 744 UASM_i_SRL(p, tmp, tmp, ilog2(_PAGE_NO_EXEC));
708 uasm_i_mtc0(p, 0, C0_ENTRYLO0); 745 UASM_i_SRL(p, ptep, ptep, ilog2(_PAGE_NO_EXEC));
709 uasm_i_mtc0(p, tmp, C0_ENTRYLO0); /* load it */ 746 UASM_i_ROTR(p, tmp, tmp, ilog2(_PAGE_GLOBAL) - ilog2(_PAGE_NO_EXEC));
710 UASM_i_SRL(p, ptep, ptep, 6); /* convert to entrylo1 */ 747 if (r4k_250MHZhwbug())
711 if (r45k_bvahwbug()) 748 UASM_i_MTC0(p, 0, C0_ENTRYLO0);
712 uasm_i_mfc0(p, tmp, C0_INDEX); 749 UASM_i_MTC0(p, tmp, C0_ENTRYLO0); /* load it */
750 UASM_i_ROTR(p, ptep, ptep, ilog2(_PAGE_GLOBAL) - ilog2(_PAGE_NO_EXEC));
751 } else {
752 UASM_i_SRL(p, tmp, tmp, ilog2(_PAGE_GLOBAL)); /* convert to entrylo0 */
753 if (r4k_250MHZhwbug())
754 UASM_i_MTC0(p, 0, C0_ENTRYLO0);
755 UASM_i_MTC0(p, tmp, C0_ENTRYLO0); /* load it */
756 UASM_i_SRL(p, ptep, ptep, ilog2(_PAGE_GLOBAL)); /* convert to entrylo1 */
757 if (r45k_bvahwbug())
758 uasm_i_mfc0(p, tmp, C0_INDEX);
759 }
713 if (r4k_250MHZhwbug()) 760 if (r4k_250MHZhwbug())
714 uasm_i_mtc0(p, 0, C0_ENTRYLO1); 761 UASM_i_MTC0(p, 0, C0_ENTRYLO1);
715 uasm_i_mtc0(p, ptep, C0_ENTRYLO1); /* load it */ 762 UASM_i_MTC0(p, ptep, C0_ENTRYLO1); /* load it */
716#endif 763#endif
717} 764}
718 765
@@ -985,9 +1032,14 @@ static void __cpuinit
985build_pte_present(u32 **p, struct uasm_reloc **r, 1032build_pte_present(u32 **p, struct uasm_reloc **r,
986 unsigned int pte, unsigned int ptr, enum label_id lid) 1033 unsigned int pte, unsigned int ptr, enum label_id lid)
987{ 1034{
988 uasm_i_andi(p, pte, pte, _PAGE_PRESENT | _PAGE_READ); 1035 if (kernel_uses_smartmips_rixi) {
989 uasm_i_xori(p, pte, pte, _PAGE_PRESENT | _PAGE_READ); 1036 uasm_i_andi(p, pte, pte, _PAGE_PRESENT);
990 uasm_il_bnez(p, r, pte, lid); 1037 uasm_il_beqz(p, r, pte, lid);
1038 } else {
1039 uasm_i_andi(p, pte, pte, _PAGE_PRESENT | _PAGE_READ);
1040 uasm_i_xori(p, pte, pte, _PAGE_PRESENT | _PAGE_READ);
1041 uasm_il_bnez(p, r, pte, lid);
1042 }
991 iPTE_LW(p, pte, ptr); 1043 iPTE_LW(p, pte, ptr);
992} 1044}
993 1045
@@ -1272,6 +1324,34 @@ static void __cpuinit build_r4000_tlb_load_handler(void)
1272 build_pte_present(&p, &r, K0, K1, label_nopage_tlbl); 1324 build_pte_present(&p, &r, K0, K1, label_nopage_tlbl);
1273 if (m4kc_tlbp_war()) 1325 if (m4kc_tlbp_war())
1274 build_tlb_probe_entry(&p); 1326 build_tlb_probe_entry(&p);
1327
1328 if (kernel_uses_smartmips_rixi) {
1329 /*
1330 * If the page is not _PAGE_VALID, RI or XI could not
1331 * have triggered it. Skip the expensive test..
1332 */
1333 uasm_i_andi(&p, K0, K0, _PAGE_VALID);
1334 uasm_il_beqz(&p, &r, K0, label_tlbl_goaround1);
1335 uasm_i_nop(&p);
1336
1337 uasm_i_tlbr(&p);
1338 /* Examine entrylo 0 or 1 based on ptr. */
1339 uasm_i_andi(&p, K0, K1, sizeof(pte_t));
1340 uasm_i_beqz(&p, K0, 8);
1341
1342 UASM_i_MFC0(&p, K0, C0_ENTRYLO0); /* load it in the delay slot*/
1343 UASM_i_MFC0(&p, K0, C0_ENTRYLO1); /* load it if ptr is odd */
1344 /*
1345 * If the entryLo (now in K0) is valid (bit 1), RI or
1346 * XI must have triggered it.
1347 */
1348 uasm_i_andi(&p, K0, K0, 2);
1349 uasm_il_bnez(&p, &r, K0, label_nopage_tlbl);
1350
1351 uasm_l_tlbl_goaround1(&l, p);
1352 /* Reload the PTE value */
1353 iPTE_LW(&p, K0, K1);
1354 }
1275 build_make_valid(&p, &r, K0, K1); 1355 build_make_valid(&p, &r, K0, K1);
1276 build_r4000_tlbchange_handler_tail(&p, &l, &r, K0, K1); 1356 build_r4000_tlbchange_handler_tail(&p, &l, &r, K0, K1);
1277 1357
@@ -1284,6 +1364,40 @@ static void __cpuinit build_r4000_tlb_load_handler(void)
1284 iPTE_LW(&p, K0, K1); 1364 iPTE_LW(&p, K0, K1);
1285 build_pte_present(&p, &r, K0, K1, label_nopage_tlbl); 1365 build_pte_present(&p, &r, K0, K1, label_nopage_tlbl);
1286 build_tlb_probe_entry(&p); 1366 build_tlb_probe_entry(&p);
1367
1368 if (kernel_uses_smartmips_rixi) {
1369 /*
1370 * If the page is not _PAGE_VALID, RI or XI could not
1371 * have triggered it. Skip the expensive test..
1372 */
1373 uasm_i_andi(&p, K0, K0, _PAGE_VALID);
1374 uasm_il_beqz(&p, &r, K0, label_tlbl_goaround2);
1375 uasm_i_nop(&p);
1376
1377 uasm_i_tlbr(&p);
1378 /* Examine entrylo 0 or 1 based on ptr. */
1379 uasm_i_andi(&p, K0, K1, sizeof(pte_t));
1380 uasm_i_beqz(&p, K0, 8);
1381
1382 UASM_i_MFC0(&p, K0, C0_ENTRYLO0); /* load it in the delay slot*/
1383 UASM_i_MFC0(&p, K0, C0_ENTRYLO1); /* load it if ptr is odd */
1384 /*
1385 * If the entryLo (now in K0) is valid (bit 1), RI or
1386 * XI must have triggered it.
1387 */
1388 uasm_i_andi(&p, K0, K0, 2);
1389 uasm_il_beqz(&p, &r, K0, label_tlbl_goaround2);
1390 /* Reload the PTE value */
1391 iPTE_LW(&p, K0, K1);
1392
1393 /*
1394 * We clobbered C0_PAGEMASK, restore it. On the other branch
1395 * it is restored in build_huge_tlb_write_entry.
1396 */
1397 build_restore_pagemask(&p, &r, K0, label_nopage_tlbl);
1398
1399 uasm_l_tlbl_goaround2(&l, p);
1400 }
1287 uasm_i_ori(&p, K0, K0, (_PAGE_ACCESSED | _PAGE_VALID)); 1401 uasm_i_ori(&p, K0, K0, (_PAGE_ACCESSED | _PAGE_VALID));
1288 build_huge_handler_tail(&p, &r, &l, K0, K1); 1402 build_huge_handler_tail(&p, &r, &l, K0, K1);
1289#endif 1403#endif
diff --git a/arch/mips/mm/uasm.c b/arch/mips/mm/uasm.c
index 0a165c5179a1..1581e9852461 100644
--- a/arch/mips/mm/uasm.c
+++ b/arch/mips/mm/uasm.c
@@ -19,8 +19,7 @@
19#include <asm/inst.h> 19#include <asm/inst.h>
20#include <asm/elf.h> 20#include <asm/elf.h>
21#include <asm/bugs.h> 21#include <asm/bugs.h>
22 22#include <asm/uasm.h>
23#include "uasm.h"
24 23
25enum fields { 24enum fields {
26 RS = 0x001, 25 RS = 0x001,
@@ -63,8 +62,9 @@ enum opcode {
63 insn_dsrl32, insn_drotr, insn_dsubu, insn_eret, insn_j, insn_jal, 62 insn_dsrl32, insn_drotr, insn_dsubu, insn_eret, insn_j, insn_jal,
64 insn_jr, insn_ld, insn_ll, insn_lld, insn_lui, insn_lw, insn_mfc0, 63 insn_jr, insn_ld, insn_ll, insn_lld, insn_lui, insn_lw, insn_mfc0,
65 insn_mtc0, insn_ori, insn_pref, insn_rfe, insn_sc, insn_scd, 64 insn_mtc0, insn_ori, insn_pref, insn_rfe, insn_sc, insn_scd,
66 insn_sd, insn_sll, insn_sra, insn_srl, insn_subu, insn_sw, 65 insn_sd, insn_sll, insn_sra, insn_srl, insn_rotr, insn_subu, insn_sw,
67 insn_tlbp, insn_tlbwi, insn_tlbwr, insn_xor, insn_xori, insn_dins 66 insn_tlbp, insn_tlbr, insn_tlbwi, insn_tlbwr, insn_xor, insn_xori,
67 insn_dins
68}; 68};
69 69
70struct insn { 70struct insn {
@@ -126,9 +126,11 @@ static struct insn insn_table[] __cpuinitdata = {
126 { insn_sll, M(spec_op, 0, 0, 0, 0, sll_op), RT | RD | RE }, 126 { insn_sll, M(spec_op, 0, 0, 0, 0, sll_op), RT | RD | RE },
127 { insn_sra, M(spec_op, 0, 0, 0, 0, sra_op), RT | RD | RE }, 127 { insn_sra, M(spec_op, 0, 0, 0, 0, sra_op), RT | RD | RE },
128 { insn_srl, M(spec_op, 0, 0, 0, 0, srl_op), RT | RD | RE }, 128 { insn_srl, M(spec_op, 0, 0, 0, 0, srl_op), RT | RD | RE },
129 { insn_rotr, M(spec_op, 1, 0, 0, 0, srl_op), RT | RD | RE },
129 { insn_subu, M(spec_op, 0, 0, 0, 0, subu_op), RS | RT | RD }, 130 { insn_subu, M(spec_op, 0, 0, 0, 0, subu_op), RS | RT | RD },
130 { insn_sw, M(sw_op, 0, 0, 0, 0, 0), RS | RT | SIMM }, 131 { insn_sw, M(sw_op, 0, 0, 0, 0, 0), RS | RT | SIMM },
131 { insn_tlbp, M(cop0_op, cop_op, 0, 0, 0, tlbp_op), 0 }, 132 { insn_tlbp, M(cop0_op, cop_op, 0, 0, 0, tlbp_op), 0 },
133 { insn_tlbr, M(cop0_op, cop_op, 0, 0, 0, tlbr_op), 0 },
132 { insn_tlbwi, M(cop0_op, cop_op, 0, 0, 0, tlbwi_op), 0 }, 134 { insn_tlbwi, M(cop0_op, cop_op, 0, 0, 0, tlbwi_op), 0 },
133 { insn_tlbwr, M(cop0_op, cop_op, 0, 0, 0, tlbwr_op), 0 }, 135 { insn_tlbwr, M(cop0_op, cop_op, 0, 0, 0, tlbwr_op), 0 },
134 { insn_xor, M(spec_op, 0, 0, 0, 0, xor_op), RS | RT | RD }, 136 { insn_xor, M(spec_op, 0, 0, 0, 0, xor_op), RS | RT | RD },
@@ -379,9 +381,11 @@ I_u2s3u1(_sd)
379I_u2u1u3(_sll) 381I_u2u1u3(_sll)
380I_u2u1u3(_sra) 382I_u2u1u3(_sra)
381I_u2u1u3(_srl) 383I_u2u1u3(_srl)
384I_u2u1u3(_rotr)
382I_u3u1u2(_subu) 385I_u3u1u2(_subu)
383I_u2s3u1(_sw) 386I_u2s3u1(_sw)
384I_0(_tlbp) 387I_0(_tlbp)
388I_0(_tlbr)
385I_0(_tlbwi) 389I_0(_tlbwi)
386I_0(_tlbwr) 390I_0(_tlbwr)
387I_u3u1u2(_xor) 391I_u3u1u2(_xor)
diff --git a/arch/mips/mti-malta/malta-int.c b/arch/mips/mti-malta/malta-int.c
index 4c3fca18a171..2cb5ae790203 100644
--- a/arch/mips/mti-malta/malta-int.c
+++ b/arch/mips/mti-malta/malta-int.c
@@ -52,7 +52,7 @@ static unsigned long _msc01_biu_base;
52static unsigned long _gcmp_base; 52static unsigned long _gcmp_base;
53static unsigned int ipi_map[NR_CPUS]; 53static unsigned int ipi_map[NR_CPUS];
54 54
55static DEFINE_SPINLOCK(mips_irq_lock); 55static DEFINE_RAW_SPINLOCK(mips_irq_lock);
56 56
57static inline int mips_pcibios_iack(void) 57static inline int mips_pcibios_iack(void)
58{ 58{
@@ -103,7 +103,7 @@ static inline int get_int(void)
103{ 103{
104 unsigned long flags; 104 unsigned long flags;
105 int irq; 105 int irq;
106 spin_lock_irqsave(&mips_irq_lock, flags); 106 raw_spin_lock_irqsave(&mips_irq_lock, flags);
107 107
108 irq = mips_pcibios_iack(); 108 irq = mips_pcibios_iack();
109 109
@@ -113,7 +113,7 @@ static inline int get_int(void)
113 * on an SMP system, so leave it up to the generic code... 113 * on an SMP system, so leave it up to the generic code...
114 */ 114 */
115 115
116 spin_unlock_irqrestore(&mips_irq_lock, flags); 116 raw_spin_unlock_irqrestore(&mips_irq_lock, flags);
117 117
118 return irq; 118 return irq;
119} 119}
diff --git a/arch/mips/nxp/pnx833x/common/interrupts.c b/arch/mips/nxp/pnx833x/common/interrupts.c
index 3a467c04f811..941916f8aaff 100644
--- a/arch/mips/nxp/pnx833x/common/interrupts.c
+++ b/arch/mips/nxp/pnx833x/common/interrupts.c
@@ -156,19 +156,19 @@ static int irqflags[PNX833X_PIC_NUM_IRQ]; /* initialized by zeroes */
156#define IRQFLAG_STARTED 1 156#define IRQFLAG_STARTED 1
157#define IRQFLAG_DISABLED 2 157#define IRQFLAG_DISABLED 2
158 158
159static DEFINE_SPINLOCK(pnx833x_irq_lock); 159static DEFINE_RAW_SPINLOCK(pnx833x_irq_lock);
160 160
161static unsigned int pnx833x_startup_pic_irq(unsigned int irq) 161static unsigned int pnx833x_startup_pic_irq(unsigned int irq)
162{ 162{
163 unsigned long flags; 163 unsigned long flags;
164 unsigned int pic_irq = irq - PNX833X_PIC_IRQ_BASE; 164 unsigned int pic_irq = irq - PNX833X_PIC_IRQ_BASE;
165 165
166 spin_lock_irqsave(&pnx833x_irq_lock, flags); 166 raw_spin_lock_irqsave(&pnx833x_irq_lock, flags);
167 167
168 irqflags[pic_irq] = IRQFLAG_STARTED; /* started, not disabled */ 168 irqflags[pic_irq] = IRQFLAG_STARTED; /* started, not disabled */
169 pnx833x_hard_enable_pic_irq(pic_irq); 169 pnx833x_hard_enable_pic_irq(pic_irq);
170 170
171 spin_unlock_irqrestore(&pnx833x_irq_lock, flags); 171 raw_spin_unlock_irqrestore(&pnx833x_irq_lock, flags);
172 return 0; 172 return 0;
173} 173}
174 174
@@ -177,12 +177,12 @@ static void pnx833x_shutdown_pic_irq(unsigned int irq)
177 unsigned long flags; 177 unsigned long flags;
178 unsigned int pic_irq = irq - PNX833X_PIC_IRQ_BASE; 178 unsigned int pic_irq = irq - PNX833X_PIC_IRQ_BASE;
179 179
180 spin_lock_irqsave(&pnx833x_irq_lock, flags); 180 raw_spin_lock_irqsave(&pnx833x_irq_lock, flags);
181 181
182 irqflags[pic_irq] = 0; /* not started */ 182 irqflags[pic_irq] = 0; /* not started */
183 pnx833x_hard_disable_pic_irq(pic_irq); 183 pnx833x_hard_disable_pic_irq(pic_irq);
184 184
185 spin_unlock_irqrestore(&pnx833x_irq_lock, flags); 185 raw_spin_unlock_irqrestore(&pnx833x_irq_lock, flags);
186} 186}
187 187
188static void pnx833x_enable_pic_irq(unsigned int irq) 188static void pnx833x_enable_pic_irq(unsigned int irq)
@@ -190,13 +190,13 @@ static void pnx833x_enable_pic_irq(unsigned int irq)
190 unsigned long flags; 190 unsigned long flags;
191 unsigned int pic_irq = irq - PNX833X_PIC_IRQ_BASE; 191 unsigned int pic_irq = irq - PNX833X_PIC_IRQ_BASE;
192 192
193 spin_lock_irqsave(&pnx833x_irq_lock, flags); 193 raw_spin_lock_irqsave(&pnx833x_irq_lock, flags);
194 194
195 irqflags[pic_irq] &= ~IRQFLAG_DISABLED; 195 irqflags[pic_irq] &= ~IRQFLAG_DISABLED;
196 if (irqflags[pic_irq] == IRQFLAG_STARTED) 196 if (irqflags[pic_irq] == IRQFLAG_STARTED)
197 pnx833x_hard_enable_pic_irq(pic_irq); 197 pnx833x_hard_enable_pic_irq(pic_irq);
198 198
199 spin_unlock_irqrestore(&pnx833x_irq_lock, flags); 199 raw_spin_unlock_irqrestore(&pnx833x_irq_lock, flags);
200} 200}
201 201
202static void pnx833x_disable_pic_irq(unsigned int irq) 202static void pnx833x_disable_pic_irq(unsigned int irq)
@@ -204,12 +204,12 @@ static void pnx833x_disable_pic_irq(unsigned int irq)
204 unsigned long flags; 204 unsigned long flags;
205 unsigned int pic_irq = irq - PNX833X_PIC_IRQ_BASE; 205 unsigned int pic_irq = irq - PNX833X_PIC_IRQ_BASE;
206 206
207 spin_lock_irqsave(&pnx833x_irq_lock, flags); 207 raw_spin_lock_irqsave(&pnx833x_irq_lock, flags);
208 208
209 irqflags[pic_irq] |= IRQFLAG_DISABLED; 209 irqflags[pic_irq] |= IRQFLAG_DISABLED;
210 pnx833x_hard_disable_pic_irq(pic_irq); 210 pnx833x_hard_disable_pic_irq(pic_irq);
211 211
212 spin_unlock_irqrestore(&pnx833x_irq_lock, flags); 212 raw_spin_unlock_irqrestore(&pnx833x_irq_lock, flags);
213} 213}
214 214
215static void pnx833x_ack_pic_irq(unsigned int irq) 215static void pnx833x_ack_pic_irq(unsigned int irq)
@@ -220,15 +220,15 @@ static void pnx833x_end_pic_irq(unsigned int irq)
220{ 220{
221} 221}
222 222
223static DEFINE_SPINLOCK(pnx833x_gpio_pnx833x_irq_lock); 223static DEFINE_RAW_SPINLOCK(pnx833x_gpio_pnx833x_irq_lock);
224 224
225static unsigned int pnx833x_startup_gpio_irq(unsigned int irq) 225static unsigned int pnx833x_startup_gpio_irq(unsigned int irq)
226{ 226{
227 int pin = irq - PNX833X_GPIO_IRQ_BASE; 227 int pin = irq - PNX833X_GPIO_IRQ_BASE;
228 unsigned long flags; 228 unsigned long flags;
229 spin_lock_irqsave(&pnx833x_gpio_pnx833x_irq_lock, flags); 229 raw_spin_lock_irqsave(&pnx833x_gpio_pnx833x_irq_lock, flags);
230 pnx833x_gpio_enable_irq(pin); 230 pnx833x_gpio_enable_irq(pin);
231 spin_unlock_irqrestore(&pnx833x_gpio_pnx833x_irq_lock, flags); 231 raw_spin_unlock_irqrestore(&pnx833x_gpio_pnx833x_irq_lock, flags);
232 return 0; 232 return 0;
233} 233}
234 234
@@ -236,18 +236,18 @@ static void pnx833x_enable_gpio_irq(unsigned int irq)
236{ 236{
237 int pin = irq - PNX833X_GPIO_IRQ_BASE; 237 int pin = irq - PNX833X_GPIO_IRQ_BASE;
238 unsigned long flags; 238 unsigned long flags;
239 spin_lock_irqsave(&pnx833x_gpio_pnx833x_irq_lock, flags); 239 raw_spin_lock_irqsave(&pnx833x_gpio_pnx833x_irq_lock, flags);
240 pnx833x_gpio_enable_irq(pin); 240 pnx833x_gpio_enable_irq(pin);
241 spin_unlock_irqrestore(&pnx833x_gpio_pnx833x_irq_lock, flags); 241 raw_spin_unlock_irqrestore(&pnx833x_gpio_pnx833x_irq_lock, flags);
242} 242}
243 243
244static void pnx833x_disable_gpio_irq(unsigned int irq) 244static void pnx833x_disable_gpio_irq(unsigned int irq)
245{ 245{
246 int pin = irq - PNX833X_GPIO_IRQ_BASE; 246 int pin = irq - PNX833X_GPIO_IRQ_BASE;
247 unsigned long flags; 247 unsigned long flags;
248 spin_lock_irqsave(&pnx833x_gpio_pnx833x_irq_lock, flags); 248 raw_spin_lock_irqsave(&pnx833x_gpio_pnx833x_irq_lock, flags);
249 pnx833x_gpio_disable_irq(pin); 249 pnx833x_gpio_disable_irq(pin);
250 spin_unlock_irqrestore(&pnx833x_gpio_pnx833x_irq_lock, flags); 250 raw_spin_unlock_irqrestore(&pnx833x_gpio_pnx833x_irq_lock, flags);
251} 251}
252 252
253static void pnx833x_ack_gpio_irq(unsigned int irq) 253static void pnx833x_ack_gpio_irq(unsigned int irq)
@@ -258,9 +258,9 @@ static void pnx833x_end_gpio_irq(unsigned int irq)
258{ 258{
259 int pin = irq - PNX833X_GPIO_IRQ_BASE; 259 int pin = irq - PNX833X_GPIO_IRQ_BASE;
260 unsigned long flags; 260 unsigned long flags;
261 spin_lock_irqsave(&pnx833x_gpio_pnx833x_irq_lock, flags); 261 raw_spin_lock_irqsave(&pnx833x_gpio_pnx833x_irq_lock, flags);
262 pnx833x_gpio_clear_irq(pin); 262 pnx833x_gpio_clear_irq(pin);
263 spin_unlock_irqrestore(&pnx833x_gpio_pnx833x_irq_lock, flags); 263 raw_spin_unlock_irqrestore(&pnx833x_gpio_pnx833x_irq_lock, flags);
264} 264}
265 265
266static int pnx833x_set_type_gpio_irq(unsigned int irq, unsigned int flow_type) 266static int pnx833x_set_type_gpio_irq(unsigned int irq, unsigned int flow_type)
@@ -377,4 +377,3 @@ void __init plat_time_init(void)
377 377
378 mips_hpt_frequency *= 500000; 378 mips_hpt_frequency *= 500000;
379} 379}
380
diff --git a/arch/mips/nxp/pnx833x/common/prom.c b/arch/mips/nxp/pnx833x/common/prom.c
index 2a41e8fec210..29969f90a6b0 100644
--- a/arch/mips/nxp/pnx833x/common/prom.c
+++ b/arch/mips/nxp/pnx833x/common/prom.c
@@ -62,9 +62,3 @@ char __init *prom_getenv(char *envname)
62void __init prom_free_prom_memory(void) 62void __init prom_free_prom_memory(void)
63{ 63{
64} 64}
65
66char * __init prom_getcmdline(void)
67{
68 return arcs_cmdline;
69}
70
diff --git a/arch/mips/nxp/pnx8550/common/prom.c b/arch/mips/nxp/pnx8550/common/prom.c
index 2f567452e7ac..32f70097c3c7 100644
--- a/arch/mips/nxp/pnx8550/common/prom.c
+++ b/arch/mips/nxp/pnx8550/common/prom.c
@@ -124,6 +124,5 @@ void prom_putchar(char c)
124 } 124 }
125} 125}
126 126
127EXPORT_SYMBOL(prom_getcmdline);
128EXPORT_SYMBOL(get_ethernet_addr); 127EXPORT_SYMBOL(get_ethernet_addr);
129EXPORT_SYMBOL(str2eaddr); 128EXPORT_SYMBOL(str2eaddr);
diff --git a/arch/mips/oprofile/common.c b/arch/mips/oprofile/common.c
index 7832ad257a14..f9eb1aba6345 100644
--- a/arch/mips/oprofile/common.c
+++ b/arch/mips/oprofile/common.c
@@ -6,6 +6,7 @@
6 * Copyright (C) 2004, 2005 Ralf Baechle 6 * Copyright (C) 2004, 2005 Ralf Baechle
7 * Copyright (C) 2005 MIPS Technologies, Inc. 7 * Copyright (C) 2005 MIPS Technologies, Inc.
8 */ 8 */
9#include <linux/compiler.h>
9#include <linux/errno.h> 10#include <linux/errno.h>
10#include <linux/init.h> 11#include <linux/init.h>
11#include <linux/oprofile.h> 12#include <linux/oprofile.h>
@@ -14,9 +15,9 @@
14 15
15#include "op_impl.h" 16#include "op_impl.h"
16 17
17extern struct op_mips_model op_model_mipsxx_ops __attribute__((weak)); 18extern struct op_mips_model op_model_mipsxx_ops __weak;
18extern struct op_mips_model op_model_rm9000_ops __attribute__((weak)); 19extern struct op_mips_model op_model_rm9000_ops __weak;
19extern struct op_mips_model op_model_loongson2_ops __attribute__((weak)); 20extern struct op_mips_model op_model_loongson2_ops __weak;
20 21
21static struct op_mips_model *model; 22static struct op_mips_model *model;
22 23
diff --git a/arch/mips/oprofile/op_model_loongson2.c b/arch/mips/oprofile/op_model_loongson2.c
index 475ff46712ab..29e2326b6257 100644
--- a/arch/mips/oprofile/op_model_loongson2.c
+++ b/arch/mips/oprofile/op_model_loongson2.c
@@ -3,7 +3,7 @@
3 * 3 *
4 * Copyright (C) 2009 Lemote Inc. 4 * Copyright (C) 2009 Lemote Inc.
5 * Author: Yanhua <yanh@lemote.com> 5 * Author: Yanhua <yanh@lemote.com>
6 * Author: Wu Zhangjin <wuzj@lemote.com> 6 * Author: Wu Zhangjin <wuzhangjin@gmail.com>
7 * 7 *
8 * This file is subject to the terms and conditions of the GNU General Public 8 * This file is subject to the terms and conditions of the GNU General Public
9 * License. See the file "COPYING" in the main directory of this archive 9 * License. See the file "COPYING" in the main directory of this archive
@@ -47,8 +47,6 @@ static struct loongson2_register_config {
47 int cnt1_enabled, cnt2_enabled; 47 int cnt1_enabled, cnt2_enabled;
48} reg; 48} reg;
49 49
50DEFINE_SPINLOCK(sample_lock);
51
52static char *oprofid = "LoongsonPerf"; 50static char *oprofid = "LoongsonPerf";
53static irqreturn_t loongson2_perfcount_handler(int irq, void *dev_id); 51static irqreturn_t loongson2_perfcount_handler(int irq, void *dev_id);
54/* Compute all of the registers in preparation for enabling profiling. */ 52/* Compute all of the registers in preparation for enabling profiling. */
@@ -115,7 +113,6 @@ static irqreturn_t loongson2_perfcount_handler(int irq, void *dev_id)
115 uint64_t counter, counter1, counter2; 113 uint64_t counter, counter1, counter2;
116 struct pt_regs *regs = get_irq_regs(); 114 struct pt_regs *regs = get_irq_regs();
117 int enabled; 115 int enabled;
118 unsigned long flags;
119 116
120 /* 117 /*
121 * LOONGSON2 defines two 32-bit performance counters. 118 * LOONGSON2 defines two 32-bit performance counters.
@@ -136,8 +133,6 @@ static irqreturn_t loongson2_perfcount_handler(int irq, void *dev_id)
136 counter1 = counter & 0xffffffff; 133 counter1 = counter & 0xffffffff;
137 counter2 = counter >> 32; 134 counter2 = counter >> 32;
138 135
139 spin_lock_irqsave(&sample_lock, flags);
140
141 if (counter1 & LOONGSON2_PERFCNT_OVERFLOW) { 136 if (counter1 & LOONGSON2_PERFCNT_OVERFLOW) {
142 if (reg.cnt1_enabled) 137 if (reg.cnt1_enabled)
143 oprofile_add_sample(regs, 0); 138 oprofile_add_sample(regs, 0);
@@ -149,8 +144,6 @@ static irqreturn_t loongson2_perfcount_handler(int irq, void *dev_id)
149 counter2 = reg.reset_counter2; 144 counter2 = reg.reset_counter2;
150 } 145 }
151 146
152 spin_unlock_irqrestore(&sample_lock, flags);
153
154 write_c0_perfcnt((counter2 << 32) | counter1); 147 write_c0_perfcnt((counter2 << 32) | counter1);
155 148
156 return IRQ_HANDLED; 149 return IRQ_HANDLED;
diff --git a/arch/mips/pci/fixup-cobalt.c b/arch/mips/pci/fixup-cobalt.c
index 9553b14002dd..acacd1407c63 100644
--- a/arch/mips/pci/fixup-cobalt.c
+++ b/arch/mips/pci/fixup-cobalt.c
@@ -51,6 +51,67 @@ static void qube_raq_galileo_early_fixup(struct pci_dev *dev)
51DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_MARVELL, PCI_DEVICE_ID_MARVELL_GT64111, 51DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_MARVELL, PCI_DEVICE_ID_MARVELL_GT64111,
52 qube_raq_galileo_early_fixup); 52 qube_raq_galileo_early_fixup);
53 53
54static void __devinit cobalt_legacy_ide_resource_fixup(struct pci_dev *dev,
55 struct resource *res)
56{
57 struct pci_controller *hose = (struct pci_controller *)dev->sysdata;
58 unsigned long offset = hose->io_offset;
59 struct resource orig = *res;
60
61 if (!(res->flags & IORESOURCE_IO) ||
62 !(res->flags & IORESOURCE_PCI_FIXED))
63 return;
64
65 res->start -= offset;
66 res->end -= offset;
67 dev_printk(KERN_DEBUG, &dev->dev, "converted legacy %pR to bus %pR\n",
68 &orig, res);
69}
70
71static void __devinit cobalt_legacy_ide_fixup(struct pci_dev *dev)
72{
73 u32 class;
74 u8 progif;
75
76 /*
77 * If the IDE controller is in legacy mode, pci_setup_device() fills in
78 * the resources with the legacy addresses that normally appear on the
79 * PCI bus, just as if we had read them from a BAR.
80 *
81 * However, with the GT-64111, those legacy addresses, e.g., 0x1f0,
82 * will never appear on the PCI bus because it converts memory accesses
83 * in the PCI I/O region (which is never at address zero) into I/O port
84 * accesses with no address translation.
85 *
86 * For example, if GT_DEF_PCI0_IO_BASE is 0x10000000, a load or store
87 * to physical address 0x100001f0 will become a PCI access to I/O port
88 * 0x100001f0. There's no way to generate an access to I/O port 0x1f0,
89 * but the VT82C586 IDE controller does respond at 0x100001f0 because
90 * it only decodes the low 24 bits of the address.
91 *
92 * When this quirk runs, the pci_dev resources should contain bus
93 * addresses, not Linux I/O port numbers, so convert legacy addresses
94 * like 0x1f0 to bus addresses like 0x100001f0. Later, we'll convert
95 * them back with pcibios_fixup_bus() or pcibios_bus_to_resource().
96 */
97 class = dev->class >> 8;
98 if (class != PCI_CLASS_STORAGE_IDE)
99 return;
100
101 pci_read_config_byte(dev, PCI_CLASS_PROG, &progif);
102 if ((progif & 1) == 0) {
103 cobalt_legacy_ide_resource_fixup(dev, &dev->resource[0]);
104 cobalt_legacy_ide_resource_fixup(dev, &dev->resource[1]);
105 }
106 if ((progif & 4) == 0) {
107 cobalt_legacy_ide_resource_fixup(dev, &dev->resource[2]);
108 cobalt_legacy_ide_resource_fixup(dev, &dev->resource[3]);
109 }
110}
111
112DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_1,
113 cobalt_legacy_ide_fixup);
114
54static void qube_raq_via_bmIDE_fixup(struct pci_dev *dev) 115static void qube_raq_via_bmIDE_fixup(struct pci_dev *dev)
55{ 116{
56 unsigned short cfgword; 117 unsigned short cfgword;
diff --git a/arch/mips/pci/fixup-lemote2f.c b/arch/mips/pci/fixup-lemote2f.c
index caf2edeb02f0..4b9768d5d729 100644
--- a/arch/mips/pci/fixup-lemote2f.c
+++ b/arch/mips/pci/fixup-lemote2f.c
@@ -131,7 +131,7 @@ static void __init loongson_cs5536_ehci_fixup(struct pci_dev *pdev)
131 131
132 /* Serial short detect enable */ 132 /* Serial short detect enable */
133 _rdmsr(USB_MSR_REG(USB_CONFIG), &hi, &lo); 133 _rdmsr(USB_MSR_REG(USB_CONFIG), &hi, &lo);
134 _wrmsr(USB_MSR_REG(USB_CONFIG), (1 << 1) | (1 << 2) | (1 << 3), lo); 134 _wrmsr(USB_MSR_REG(USB_CONFIG), (1 << 1) | (1 << 3), lo);
135 135
136 /* setting the USB2.0 micro frame length */ 136 /* setting the USB2.0 micro frame length */
137 pci_write_config_dword(pdev, PCI_EHCI_FLADJ_REG, 0x2000); 137 pci_write_config_dword(pdev, PCI_EHCI_FLADJ_REG, 0x2000);
diff --git a/arch/mips/pci/ops-loongson2.c b/arch/mips/pci/ops-loongson2.c
index aa5d3da27212..2bb4057bf6c7 100644
--- a/arch/mips/pci/ops-loongson2.c
+++ b/arch/mips/pci/ops-loongson2.c
@@ -1,13 +1,11 @@
1/* 1/*
2 * fuloong2e specific PCI support.
3 *
4 * Copyright (C) 1999, 2000, 2004 MIPS Technologies, Inc. 2 * Copyright (C) 1999, 2000, 2004 MIPS Technologies, Inc.
5 * All rights reserved. 3 * All rights reserved.
6 * Authors: Carsten Langgaard <carstenl@mips.com> 4 * Authors: Carsten Langgaard <carstenl@mips.com>
7 * Maciej W. Rozycki <macro@mips.com> 5 * Maciej W. Rozycki <macro@mips.com>
8 * 6 *
9 * Copyright (C) 2009 Lemote Inc. 7 * Copyright (C) 2009 Lemote Inc.
10 * Author: Wu Zhangjin <wuzj@lemote.com> 8 * Author: Wu Zhangjin <wuzhangjin@gmail.com>
11 * 9 *
12 * This program is free software; you can distribute it and/or modify it 10 * This program is free software; you can distribute it and/or modify it
13 * under the terms of the GNU General Public License (Version 2) as 11 * under the terms of the GNU General Public License (Version 2) as
diff --git a/arch/mips/pci/ops-pmcmsp.c b/arch/mips/pci/ops-pmcmsp.c
index 32548b5d68d6..04b31478a6d7 100644
--- a/arch/mips/pci/ops-pmcmsp.c
+++ b/arch/mips/pci/ops-pmcmsp.c
@@ -206,7 +206,7 @@ static void pci_proc_init(void)
206} 206}
207#endif /* CONFIG_PROC_FS && PCI_COUNTERS */ 207#endif /* CONFIG_PROC_FS && PCI_COUNTERS */
208 208
209DEFINE_SPINLOCK(bpci_lock); 209static DEFINE_SPINLOCK(bpci_lock);
210 210
211/***************************************************************************** 211/*****************************************************************************
212 * 212 *
diff --git a/arch/mips/pci/pci-bcm47xx.c b/arch/mips/pci/pci-bcm47xx.c
index bea9b6cdfdbf..455f8e50a007 100644
--- a/arch/mips/pci/pci-bcm47xx.c
+++ b/arch/mips/pci/pci-bcm47xx.c
@@ -57,4 +57,3 @@ int pcibios_plat_dev_init(struct pci_dev *dev)
57 dev->irq = res; 57 dev->irq = res;
58 return 0; 58 return 0;
59} 59}
60
diff --git a/arch/mips/pci/pci-octeon.c b/arch/mips/pci/pci-octeon.c
index 9cb0c807f564..d248b707eff3 100644
--- a/arch/mips/pci/pci-octeon.c
+++ b/arch/mips/pci/pci-octeon.c
@@ -209,16 +209,14 @@ const char *octeon_get_pci_interrupts(void)
209 case CVMX_BOARD_TYPE_NAO38: 209 case CVMX_BOARD_TYPE_NAO38:
210 /* This is really the NAC38 */ 210 /* This is really the NAC38 */
211 return "AAAAADABAAAAAAAAAAAAAAAAAAAAAAAA"; 211 return "AAAAADABAAAAAAAAAAAAAAAAAAAAAAAA";
212 case CVMX_BOARD_TYPE_THUNDER:
213 return "";
214 case CVMX_BOARD_TYPE_EBH3000:
215 return "";
216 case CVMX_BOARD_TYPE_EBH3100: 212 case CVMX_BOARD_TYPE_EBH3100:
217 case CVMX_BOARD_TYPE_CN3010_EVB_HS5: 213 case CVMX_BOARD_TYPE_CN3010_EVB_HS5:
218 case CVMX_BOARD_TYPE_CN3005_EVB_HS5: 214 case CVMX_BOARD_TYPE_CN3005_EVB_HS5:
219 return "AAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; 215 return "AAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
220 case CVMX_BOARD_TYPE_BBGW_REF: 216 case CVMX_BOARD_TYPE_BBGW_REF:
221 return "AABCD"; 217 return "AABCD";
218 case CVMX_BOARD_TYPE_THUNDER:
219 case CVMX_BOARD_TYPE_EBH3000:
222 default: 220 default:
223 return ""; 221 return "";
224 } 222 }
diff --git a/arch/mips/pci/pci.c b/arch/mips/pci/pci.c
index f87f5e188fa6..38bc28005b4a 100644
--- a/arch/mips/pci/pci.c
+++ b/arch/mips/pci/pci.c
@@ -251,8 +251,6 @@ static void pcibios_fixup_device_resources(struct pci_dev *dev,
251 for (i = 0; i < PCI_NUM_RESOURCES; i++) { 251 for (i = 0; i < PCI_NUM_RESOURCES; i++) {
252 if (!dev->resource[i].start) 252 if (!dev->resource[i].start)
253 continue; 253 continue;
254 if (dev->resource[i].flags & IORESOURCE_PCI_FIXED)
255 continue;
256 if (dev->resource[i].flags & IORESOURCE_IO) 254 if (dev->resource[i].flags & IORESOURCE_IO)
257 offset = hose->io_offset; 255 offset = hose->io_offset;
258 else if (dev->resource[i].flags & IORESOURCE_MEM) 256 else if (dev->resource[i].flags & IORESOURCE_MEM)
diff --git a/arch/mips/pmc-sierra/msp71xx/msp_irq_cic.c b/arch/mips/pmc-sierra/msp71xx/msp_irq_cic.c
index 5175357d0a25..94c9c2c9fbc1 100644
--- a/arch/mips/pmc-sierra/msp71xx/msp_irq_cic.c
+++ b/arch/mips/pmc-sierra/msp71xx/msp_irq_cic.c
@@ -131,4 +131,3 @@ void msp_cic_irq_dispatch(void)
131 else 131 else
132 do_IRQ(ffs(pending) + intbase - 1); 132 do_IRQ(ffs(pending) + intbase - 1);
133} 133}
134
diff --git a/arch/mips/pmc-sierra/msp71xx/msp_prom.c b/arch/mips/pmc-sierra/msp71xx/msp_prom.c
index c317a3623ce9..db98d87a0922 100644
--- a/arch/mips/pmc-sierra/msp71xx/msp_prom.c
+++ b/arch/mips/pmc-sierra/msp71xx/msp_prom.c
@@ -303,12 +303,6 @@ char *prom_getenv(char *env_name)
303} 303}
304 304
305/* PROM commandline functions */ 305/* PROM commandline functions */
306char *prom_getcmdline(void)
307{
308 return &(arcs_cmdline[0]);
309}
310EXPORT_SYMBOL(prom_getcmdline);
311
312void __init prom_init_cmdline(void) 306void __init prom_init_cmdline(void)
313{ 307{
314 char *cp; 308 char *cp;
diff --git a/arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.c b/arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.c
index fc990cb31941..d6f8bdff8cbb 100644
--- a/arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.c
+++ b/arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.c
@@ -127,7 +127,7 @@ static int recv_ack(void)
127 127
128 if (ack) { 128 if (ack) {
129 do_idle(); 129 do_idle();
130 printk(KERN_ERR "Error reading the Atmel 24C32/24C64 EEPROM \n"); 130 printk(KERN_ERR "Error reading the Atmel 24C32/24C64 EEPROM\n");
131 return -1; 131 return -1;
132 } 132 }
133 133
diff --git a/arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.h b/arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.h
index a31288335fba..d6c7ec469fa8 100644
--- a/arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.h
+++ b/arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.h
@@ -65,4 +65,3 @@
65const char rts = TIOCM_RTS; 65const char rts = TIOCM_RTS;
66const char dtr = TIOCM_DTR; 66const char dtr = TIOCM_DTR;
67int fd; 67int fd;
68
diff --git a/arch/mips/pmc-sierra/yosemite/smp.c b/arch/mips/pmc-sierra/yosemite/smp.c
index 326fe7a392e8..efc9e889b349 100644
--- a/arch/mips/pmc-sierra/yosemite/smp.c
+++ b/arch/mips/pmc-sierra/yosemite/smp.c
@@ -8,7 +8,7 @@
8 8
9#define LAUNCHSTACK_SIZE 256 9#define LAUNCHSTACK_SIZE 256
10 10
11static __cpuinitdata DEFINE_SPINLOCK(launch_lock); 11static __cpuinitdata arch_spinlock_t launch_lock = __ARCH_SPIN_LOCK_UNLOCKED;
12 12
13static unsigned long secondary_sp __cpuinitdata; 13static unsigned long secondary_sp __cpuinitdata;
14static unsigned long secondary_gp __cpuinitdata; 14static unsigned long secondary_gp __cpuinitdata;
@@ -20,7 +20,7 @@ static void __init prom_smp_bootstrap(void)
20{ 20{
21 local_irq_disable(); 21 local_irq_disable();
22 22
23 while (spin_is_locked(&launch_lock)); 23 while (arch_spin_is_locked(&launch_lock));
24 24
25 __asm__ __volatile__( 25 __asm__ __volatile__(
26 " move $sp, %0 \n" 26 " move $sp, %0 \n"
@@ -37,7 +37,7 @@ static void __init prom_smp_bootstrap(void)
37 */ 37 */
38void __init prom_grab_secondary(void) 38void __init prom_grab_secondary(void)
39{ 39{
40 spin_lock(&launch_lock); 40 arch_spin_lock(&launch_lock);
41 41
42 pmon_cpustart(1, &prom_smp_bootstrap, 42 pmon_cpustart(1, &prom_smp_bootstrap,
43 launchstack + LAUNCHSTACK_SIZE, 0); 43 launchstack + LAUNCHSTACK_SIZE, 0);
@@ -138,7 +138,7 @@ static void __cpuinit yos_boot_secondary(int cpu, struct task_struct *idle)
138 secondary_sp = sp; 138 secondary_sp = sp;
139 secondary_gp = gp; 139 secondary_gp = gp;
140 140
141 spin_unlock(&launch_lock); 141 arch_spin_unlock(&launch_lock);
142} 142}
143 143
144/* 144/*
diff --git a/arch/mips/power/cpu.c b/arch/mips/power/cpu.c
index 7995df45dc8d..26a6ef19d71f 100644
--- a/arch/mips/power/cpu.c
+++ b/arch/mips/power/cpu.c
@@ -3,9 +3,9 @@
3 * 3 *
4 * Licensed under the GPLv2 4 * Licensed under the GPLv2
5 * 5 *
6 * Copyright (C) 2009 Lemote Inc. & Insititute of Computing Technology 6 * Copyright (C) 2009 Lemote Inc.
7 * Author: Hu Hongbing <huhb@lemote.com> 7 * Author: Hu Hongbing <huhb@lemote.com>
8 * Wu Zhangjin <wuzj@lemote.com> 8 * Wu Zhangjin <wuzhangjin@gmail.com>
9 */ 9 */
10#include <asm/suspend.h> 10#include <asm/suspend.h>
11#include <asm/fpu.h> 11#include <asm/fpu.h>
diff --git a/arch/mips/power/hibernate.S b/arch/mips/power/hibernate.S
index 0cf86fb32ec3..dbb5c7b4b70f 100644
--- a/arch/mips/power/hibernate.S
+++ b/arch/mips/power/hibernate.S
@@ -3,9 +3,9 @@
3 * 3 *
4 * Licensed under the GPLv2 4 * Licensed under the GPLv2
5 * 5 *
6 * Copyright (C) 2009 Lemote Inc. & Insititute of Computing Technology 6 * Copyright (C) 2009 Lemote Inc.
7 * Author: Hu Hongbing <huhb@lemote.com> 7 * Author: Hu Hongbing <huhb@lemote.com>
8 * Wu Zhangjin <wuzj@lemote.com> 8 * Wu Zhangjin <wuzhangjin@gmail.com>
9 */ 9 */
10#include <asm/asm-offsets.h> 10#include <asm/asm-offsets.h>
11#include <asm/page.h> 11#include <asm/page.h>
diff --git a/arch/mips/powertv/asic/asic_devices.c b/arch/mips/powertv/asic/asic_devices.c
index 6a882194e063..217424231eb6 100644
--- a/arch/mips/powertv/asic/asic_devices.c
+++ b/arch/mips/powertv/asic/asic_devices.c
@@ -340,10 +340,6 @@ static void __init platform_configure_usb(void)
340 340
341 switch (asic) { 341 switch (asic) {
342 case ASIC_ZEUS: 342 case ASIC_ZEUS:
343 fs_update(0x0000, 0x11, 0x02, 0);
344 bcm1_usb2_ctl = 0x803;
345 break;
346
347 case ASIC_CRONUS: 343 case ASIC_CRONUS:
348 case ASIC_CRONUSLITE: 344 case ASIC_CRONUSLITE:
349 fs_update(0x0000, 0x11, 0x02, 0); 345 fs_update(0x0000, 0x11, 0x02, 0);
diff --git a/arch/mips/powertv/asic/asic_int.c b/arch/mips/powertv/asic/asic_int.c
index 80b2eed21ac3..325fab9685d1 100644
--- a/arch/mips/powertv/asic/asic_int.c
+++ b/arch/mips/powertv/asic/asic_int.c
@@ -39,21 +39,21 @@
39 39
40#include <asm/mach-powertv/asic_regs.h> 40#include <asm/mach-powertv/asic_regs.h>
41 41
42static DEFINE_SPINLOCK(asic_irq_lock); 42static DEFINE_RAW_SPINLOCK(asic_irq_lock);
43 43
44static inline int get_int(void) 44static inline int get_int(void)
45{ 45{
46 unsigned long flags; 46 unsigned long flags;
47 int irq; 47 int irq;
48 48
49 spin_lock_irqsave(&asic_irq_lock, flags); 49 raw_spin_lock_irqsave(&asic_irq_lock, flags);
50 50
51 irq = (asic_read(int_int_scan) >> 4) - 1; 51 irq = (asic_read(int_int_scan) >> 4) - 1;
52 52
53 if (irq == 0 || irq >= NR_IRQS) 53 if (irq == 0 || irq >= NR_IRQS)
54 irq = -1; 54 irq = -1;
55 55
56 spin_unlock_irqrestore(&asic_irq_lock, flags); 56 raw_spin_unlock_irqrestore(&asic_irq_lock, flags);
57 57
58 return irq; 58 return irq;
59} 59}
diff --git a/arch/mips/powertv/powertv_setup.c b/arch/mips/powertv/powertv_setup.c
index 698b1eafbe98..af2cae0a5ab3 100644
--- a/arch/mips/powertv/powertv_setup.c
+++ b/arch/mips/powertv/powertv_setup.c
@@ -25,14 +25,15 @@
25#include <linux/etherdevice.h> 25#include <linux/etherdevice.h>
26#include <linux/if_ether.h> 26#include <linux/if_ether.h>
27#include <linux/ctype.h> 27#include <linux/ctype.h>
28
29#include <linux/cpu.h> 28#include <linux/cpu.h>
29#include <linux/time.h>
30
30#include <asm/bootinfo.h> 31#include <asm/bootinfo.h>
31#include <asm/irq.h> 32#include <asm/irq.h>
32#include <asm/mips-boards/generic.h> 33#include <asm/mips-boards/generic.h>
33#include <asm/mips-boards/prom.h> 34#include <asm/mips-boards/prom.h>
34#include <asm/dma.h> 35#include <asm/dma.h>
35#include <linux/time.h> 36#include <asm/asm.h>
36#include <asm/traps.h> 37#include <asm/traps.h>
37#include <asm/asm-offsets.h> 38#include <asm/asm-offsets.h>
38#include "reset.h" 39#include "reset.h"
@@ -41,26 +42,21 @@
41 42
42/* 43/*
43 * Macros for loading addresses and storing registers: 44 * Macros for loading addresses and storing registers:
44 * PTR_LA Load the address into a register 45 * LONG_L_ Stringified version of LONG_L for use in asm() statement
45 * LONG_S Store the full width of the given register. 46 * LONG_S_ Stringified version of LONG_S for use in asm() statement
46 * LONG_L Load the full width of the given register 47 * PTR_LA_ Stringified version of PTR_LA for use in asm() statement
47 * PTR_ADDIU Add a constant value to a register used as a pointer
48 * REG_SIZE Number of 8-bit bytes in a full width register 48 * REG_SIZE Number of 8-bit bytes in a full width register
49 */ 49 */
50#define LONG_L_ VAL(LONG_L) " "
51#define LONG_S_ VAL(LONG_S) " "
52#define PTR_LA_ VAL(PTR_LA) " "
53
50#ifdef CONFIG_64BIT 54#ifdef CONFIG_64BIT
51#warning TODO: 64-bit code needs to be verified 55#warning TODO: 64-bit code needs to be verified
52#define PTR_LA "dla "
53#define LONG_S "sd "
54#define LONG_L "ld "
55#define PTR_ADDIU "daddiu "
56#define REG_SIZE "8" /* In bytes */ 56#define REG_SIZE "8" /* In bytes */
57#endif 57#endif
58 58
59#ifdef CONFIG_32BIT 59#ifdef CONFIG_32BIT
60#define PTR_LA "la "
61#define LONG_S "sw "
62#define LONG_L "lw "
63#define PTR_ADDIU "addiu "
64#define REG_SIZE "4" /* In bytes */ 60#define REG_SIZE "4" /* In bytes */
65#endif 61#endif
66 62
@@ -113,9 +109,9 @@ static int panic_handler(struct notifier_block *notifier_block,
113 * structure. */ 109 * structure. */
114 __asm__ __volatile__ ( 110 __asm__ __volatile__ (
115 ".set noat\n" 111 ".set noat\n"
116 LONG_S "$at, %[at]\n" 112 LONG_S_ "$at, %[at]\n"
117 LONG_S "$2, %[v0]\n" 113 LONG_S_ "$2, %[v0]\n"
118 LONG_S "$3, %[v1]\n" 114 LONG_S_ "$3, %[v1]\n"
119 : 115 :
120 [at] "=m" (at), 116 [at] "=m" (at),
121 [v0] "=m" (v0), 117 [v0] "=m" (v0),
@@ -129,54 +125,54 @@ static int panic_handler(struct notifier_block *notifier_block,
129 "move $at, %[pt_regs]\n" 125 "move $at, %[pt_regs]\n"
130 126
131 /* Argument registers */ 127 /* Argument registers */
132 LONG_S "$4, " VAL(PT_R4) "($at)\n" 128 LONG_S_ "$4, " VAL(PT_R4) "($at)\n"
133 LONG_S "$5, " VAL(PT_R5) "($at)\n" 129 LONG_S_ "$5, " VAL(PT_R5) "($at)\n"
134 LONG_S "$6, " VAL(PT_R6) "($at)\n" 130 LONG_S_ "$6, " VAL(PT_R6) "($at)\n"
135 LONG_S "$7, " VAL(PT_R7) "($at)\n" 131 LONG_S_ "$7, " VAL(PT_R7) "($at)\n"
136 132
137 /* Temporary regs */ 133 /* Temporary regs */
138 LONG_S "$8, " VAL(PT_R8) "($at)\n" 134 LONG_S_ "$8, " VAL(PT_R8) "($at)\n"
139 LONG_S "$9, " VAL(PT_R9) "($at)\n" 135 LONG_S_ "$9, " VAL(PT_R9) "($at)\n"
140 LONG_S "$10, " VAL(PT_R10) "($at)\n" 136 LONG_S_ "$10, " VAL(PT_R10) "($at)\n"
141 LONG_S "$11, " VAL(PT_R11) "($at)\n" 137 LONG_S_ "$11, " VAL(PT_R11) "($at)\n"
142 LONG_S "$12, " VAL(PT_R12) "($at)\n" 138 LONG_S_ "$12, " VAL(PT_R12) "($at)\n"
143 LONG_S "$13, " VAL(PT_R13) "($at)\n" 139 LONG_S_ "$13, " VAL(PT_R13) "($at)\n"
144 LONG_S "$14, " VAL(PT_R14) "($at)\n" 140 LONG_S_ "$14, " VAL(PT_R14) "($at)\n"
145 LONG_S "$15, " VAL(PT_R15) "($at)\n" 141 LONG_S_ "$15, " VAL(PT_R15) "($at)\n"
146 142
147 /* "Saved" registers */ 143 /* "Saved" registers */
148 LONG_S "$16, " VAL(PT_R16) "($at)\n" 144 LONG_S_ "$16, " VAL(PT_R16) "($at)\n"
149 LONG_S "$17, " VAL(PT_R17) "($at)\n" 145 LONG_S_ "$17, " VAL(PT_R17) "($at)\n"
150 LONG_S "$18, " VAL(PT_R18) "($at)\n" 146 LONG_S_ "$18, " VAL(PT_R18) "($at)\n"
151 LONG_S "$19, " VAL(PT_R19) "($at)\n" 147 LONG_S_ "$19, " VAL(PT_R19) "($at)\n"
152 LONG_S "$20, " VAL(PT_R20) "($at)\n" 148 LONG_S_ "$20, " VAL(PT_R20) "($at)\n"
153 LONG_S "$21, " VAL(PT_R21) "($at)\n" 149 LONG_S_ "$21, " VAL(PT_R21) "($at)\n"
154 LONG_S "$22, " VAL(PT_R22) "($at)\n" 150 LONG_S_ "$22, " VAL(PT_R22) "($at)\n"
155 LONG_S "$23, " VAL(PT_R23) "($at)\n" 151 LONG_S_ "$23, " VAL(PT_R23) "($at)\n"
156 152
157 /* Add'l temp regs */ 153 /* Add'l temp regs */
158 LONG_S "$24, " VAL(PT_R24) "($at)\n" 154 LONG_S_ "$24, " VAL(PT_R24) "($at)\n"
159 LONG_S "$25, " VAL(PT_R25) "($at)\n" 155 LONG_S_ "$25, " VAL(PT_R25) "($at)\n"
160 156
161 /* Kernel temp regs */ 157 /* Kernel temp regs */
162 LONG_S "$26, " VAL(PT_R26) "($at)\n" 158 LONG_S_ "$26, " VAL(PT_R26) "($at)\n"
163 LONG_S "$27, " VAL(PT_R27) "($at)\n" 159 LONG_S_ "$27, " VAL(PT_R27) "($at)\n"
164 160
165 /* Global pointer, stack pointer, frame pointer and 161 /* Global pointer, stack pointer, frame pointer and
166 * return address */ 162 * return address */
167 LONG_S "$gp, " VAL(PT_R28) "($at)\n" 163 LONG_S_ "$gp, " VAL(PT_R28) "($at)\n"
168 LONG_S "$sp, " VAL(PT_R29) "($at)\n" 164 LONG_S_ "$sp, " VAL(PT_R29) "($at)\n"
169 LONG_S "$fp, " VAL(PT_R30) "($at)\n" 165 LONG_S_ "$fp, " VAL(PT_R30) "($at)\n"
170 LONG_S "$ra, " VAL(PT_R31) "($at)\n" 166 LONG_S_ "$ra, " VAL(PT_R31) "($at)\n"
171 167
172 /* Now we can get the $at and v0 registers back and 168 /* Now we can get the $at and v0 registers back and
173 * store them */ 169 * store them */
174 LONG_L "$8, %[at]\n" 170 LONG_L_ "$8, %[at]\n"
175 LONG_S "$8, " VAL(PT_R1) "($at)\n" 171 LONG_S_ "$8, " VAL(PT_R1) "($at)\n"
176 LONG_L "$8, %[v0]\n" 172 LONG_L_ "$8, %[v0]\n"
177 LONG_S "$8, " VAL(PT_R2) "($at)\n" 173 LONG_S_ "$8, " VAL(PT_R2) "($at)\n"
178 LONG_L "$8, %[v1]\n" 174 LONG_L_ "$8, %[v1]\n"
179 LONG_S "$8, " VAL(PT_R3) "($at)\n" 175 LONG_S_ "$8, " VAL(PT_R3) "($at)\n"
180 : 176 :
181 : 177 :
182 [at] "m" (at), 178 [at] "m" (at),
@@ -191,8 +187,8 @@ static int panic_handler(struct notifier_block *notifier_block,
191 __asm__ __volatile__ ( 187 __asm__ __volatile__ (
192 ".set noat\n" 188 ".set noat\n"
193 "1:\n" 189 "1:\n"
194 PTR_LA "$at, 1b\n" 190 PTR_LA_ "$at, 1b\n"
195 LONG_S "$at, %[cp0_epc]\n" 191 LONG_S_ "$at, %[cp0_epc]\n"
196 : 192 :
197 [cp0_epc] "=m" (my_regs.cp0_epc) 193 [cp0_epc] "=m" (my_regs.cp0_epc)
198 : 194 :
diff --git a/arch/mips/sgi-ip27/ip27-klnuma.c b/arch/mips/sgi-ip27/ip27-klnuma.c
index d9c79d8be81d..c3d30a88daf3 100644
--- a/arch/mips/sgi-ip27/ip27-klnuma.c
+++ b/arch/mips/sgi-ip27/ip27-klnuma.c
@@ -133,4 +133,3 @@ pfn_t node_getfirstfree(cnodeid_t cnode)
133 return (KDM_TO_PHYS(PAGE_ALIGN(SYMMON_STK_ADDR(nasid, 0))) >> 133 return (KDM_TO_PHYS(PAGE_ALIGN(SYMMON_STK_ADDR(nasid, 0))) >>
134 PAGE_SHIFT); 134 PAGE_SHIFT);
135} 135}
136
diff --git a/arch/mips/sgi-ip27/ip27-nmi.c b/arch/mips/sgi-ip27/ip27-nmi.c
index 6c5a630566f9..bc4fa8dd67f3 100644
--- a/arch/mips/sgi-ip27/ip27-nmi.c
+++ b/arch/mips/sgi-ip27/ip27-nmi.c
@@ -17,11 +17,10 @@
17#endif 17#endif
18 18
19#define CNODEID_NONE (cnodeid_t)-1 19#define CNODEID_NONE (cnodeid_t)-1
20#define enter_panic_mode() spin_lock(&nmi_lock)
21 20
22typedef unsigned long machreg_t; 21typedef unsigned long machreg_t;
23 22
24DEFINE_SPINLOCK(nmi_lock); 23static arch_spinlock_t nmi_lock = __ARCH_SPIN_LOCK_UNLOCKED;
25 24
26/* 25/*
27 * Lets see what else we need to do here. Set up sp, gp? 26 * Lets see what else we need to do here. Set up sp, gp?
@@ -193,9 +192,9 @@ cont_nmi_dump(void)
193 atomic_inc(&nmied_cpus); 192 atomic_inc(&nmied_cpus);
194#endif 193#endif
195 /* 194 /*
196 * Use enter_panic_mode to allow only 1 cpu to proceed 195 * Only allow 1 cpu to proceed
197 */ 196 */
198 enter_panic_mode(); 197 arch_spin_lock(&nmi_lock);
199 198
200#ifdef REAL_NMI_SIGNAL 199#ifdef REAL_NMI_SIGNAL
201 /* 200 /*
diff --git a/arch/mips/sgi-ip32/ip32-irq.c b/arch/mips/sgi-ip32/ip32-irq.c
index 5c2bf111ca67..d8b65204d288 100644
--- a/arch/mips/sgi-ip32/ip32-irq.c
+++ b/arch/mips/sgi-ip32/ip32-irq.c
@@ -512,10 +512,6 @@ void __init arch_init_irq(void)
512 "level"); 512 "level");
513 break; 513 break;
514 514
515 case CRIME_GBE0_IRQ ... CRIME_GBE3_IRQ:
516 set_irq_chip_and_handler_name(irq,
517 &crime_edge_interrupt, handle_edge_irq, "edge");
518 break;
519 case CRIME_CPUERR_IRQ: 515 case CRIME_CPUERR_IRQ:
520 case CRIME_MEMERR_IRQ: 516 case CRIME_MEMERR_IRQ:
521 set_irq_chip_and_handler_name(irq, 517 set_irq_chip_and_handler_name(irq,
@@ -523,12 +519,9 @@ void __init arch_init_irq(void)
523 "level"); 519 "level");
524 break; 520 break;
525 521
522 case CRIME_GBE0_IRQ ... CRIME_GBE3_IRQ:
526 case CRIME_RE_EMPTY_E_IRQ ... CRIME_RE_IDLE_E_IRQ: 523 case CRIME_RE_EMPTY_E_IRQ ... CRIME_RE_IDLE_E_IRQ:
527 case CRIME_SOFT0_IRQ ... CRIME_SOFT2_IRQ: 524 case CRIME_SOFT0_IRQ ... CRIME_SOFT2_IRQ:
528 set_irq_chip_and_handler_name(irq,
529 &crime_edge_interrupt, handle_edge_irq, "edge");
530 break;
531
532 case CRIME_VICE_IRQ: 525 case CRIME_VICE_IRQ:
533 set_irq_chip_and_handler_name(irq, 526 set_irq_chip_and_handler_name(irq,
534 &crime_edge_interrupt, handle_edge_irq, "edge"); 527 &crime_edge_interrupt, handle_edge_irq, "edge");
diff --git a/arch/mips/sibyte/bcm1480/irq.c b/arch/mips/sibyte/bcm1480/irq.c
index 4070268aa769..06e25d949768 100644
--- a/arch/mips/sibyte/bcm1480/irq.c
+++ b/arch/mips/sibyte/bcm1480/irq.c
@@ -73,14 +73,14 @@ static struct irq_chip bcm1480_irq_type = {
73/* Store the CPU id (not the logical number) */ 73/* Store the CPU id (not the logical number) */
74int bcm1480_irq_owner[BCM1480_NR_IRQS]; 74int bcm1480_irq_owner[BCM1480_NR_IRQS];
75 75
76DEFINE_SPINLOCK(bcm1480_imr_lock); 76static DEFINE_RAW_SPINLOCK(bcm1480_imr_lock);
77 77
78void bcm1480_mask_irq(int cpu, int irq) 78void bcm1480_mask_irq(int cpu, int irq)
79{ 79{
80 unsigned long flags, hl_spacing; 80 unsigned long flags, hl_spacing;
81 u64 cur_ints; 81 u64 cur_ints;
82 82
83 spin_lock_irqsave(&bcm1480_imr_lock, flags); 83 raw_spin_lock_irqsave(&bcm1480_imr_lock, flags);
84 hl_spacing = 0; 84 hl_spacing = 0;
85 if ((irq >= BCM1480_NR_IRQS_HALF) && (irq <= BCM1480_NR_IRQS)) { 85 if ((irq >= BCM1480_NR_IRQS_HALF) && (irq <= BCM1480_NR_IRQS)) {
86 hl_spacing = BCM1480_IMR_HL_SPACING; 86 hl_spacing = BCM1480_IMR_HL_SPACING;
@@ -89,7 +89,7 @@ void bcm1480_mask_irq(int cpu, int irq)
89 cur_ints = ____raw_readq(IOADDR(A_BCM1480_IMR_MAPPER(cpu) + R_BCM1480_IMR_INTERRUPT_MASK_H + hl_spacing)); 89 cur_ints = ____raw_readq(IOADDR(A_BCM1480_IMR_MAPPER(cpu) + R_BCM1480_IMR_INTERRUPT_MASK_H + hl_spacing));
90 cur_ints |= (((u64) 1) << irq); 90 cur_ints |= (((u64) 1) << irq);
91 ____raw_writeq(cur_ints, IOADDR(A_BCM1480_IMR_MAPPER(cpu) + R_BCM1480_IMR_INTERRUPT_MASK_H + hl_spacing)); 91 ____raw_writeq(cur_ints, IOADDR(A_BCM1480_IMR_MAPPER(cpu) + R_BCM1480_IMR_INTERRUPT_MASK_H + hl_spacing));
92 spin_unlock_irqrestore(&bcm1480_imr_lock, flags); 92 raw_spin_unlock_irqrestore(&bcm1480_imr_lock, flags);
93} 93}
94 94
95void bcm1480_unmask_irq(int cpu, int irq) 95void bcm1480_unmask_irq(int cpu, int irq)
@@ -97,7 +97,7 @@ void bcm1480_unmask_irq(int cpu, int irq)
97 unsigned long flags, hl_spacing; 97 unsigned long flags, hl_spacing;
98 u64 cur_ints; 98 u64 cur_ints;
99 99
100 spin_lock_irqsave(&bcm1480_imr_lock, flags); 100 raw_spin_lock_irqsave(&bcm1480_imr_lock, flags);
101 hl_spacing = 0; 101 hl_spacing = 0;
102 if ((irq >= BCM1480_NR_IRQS_HALF) && (irq <= BCM1480_NR_IRQS)) { 102 if ((irq >= BCM1480_NR_IRQS_HALF) && (irq <= BCM1480_NR_IRQS)) {
103 hl_spacing = BCM1480_IMR_HL_SPACING; 103 hl_spacing = BCM1480_IMR_HL_SPACING;
@@ -106,7 +106,7 @@ void bcm1480_unmask_irq(int cpu, int irq)
106 cur_ints = ____raw_readq(IOADDR(A_BCM1480_IMR_MAPPER(cpu) + R_BCM1480_IMR_INTERRUPT_MASK_H + hl_spacing)); 106 cur_ints = ____raw_readq(IOADDR(A_BCM1480_IMR_MAPPER(cpu) + R_BCM1480_IMR_INTERRUPT_MASK_H + hl_spacing));
107 cur_ints &= ~(((u64) 1) << irq); 107 cur_ints &= ~(((u64) 1) << irq);
108 ____raw_writeq(cur_ints, IOADDR(A_BCM1480_IMR_MAPPER(cpu) + R_BCM1480_IMR_INTERRUPT_MASK_H + hl_spacing)); 108 ____raw_writeq(cur_ints, IOADDR(A_BCM1480_IMR_MAPPER(cpu) + R_BCM1480_IMR_INTERRUPT_MASK_H + hl_spacing));
109 spin_unlock_irqrestore(&bcm1480_imr_lock, flags); 109 raw_spin_unlock_irqrestore(&bcm1480_imr_lock, flags);
110} 110}
111 111
112#ifdef CONFIG_SMP 112#ifdef CONFIG_SMP
@@ -123,7 +123,7 @@ static int bcm1480_set_affinity(unsigned int irq, const struct cpumask *mask)
123 cpu = cpu_logical_map(i); 123 cpu = cpu_logical_map(i);
124 124
125 /* Protect against other affinity changers and IMR manipulation */ 125 /* Protect against other affinity changers and IMR manipulation */
126 spin_lock_irqsave(&bcm1480_imr_lock, flags); 126 raw_spin_lock_irqsave(&bcm1480_imr_lock, flags);
127 127
128 /* Swizzle each CPU's IMR (but leave the IP selection alone) */ 128 /* Swizzle each CPU's IMR (but leave the IP selection alone) */
129 old_cpu = bcm1480_irq_owner[irq]; 129 old_cpu = bcm1480_irq_owner[irq];
@@ -148,7 +148,7 @@ static int bcm1480_set_affinity(unsigned int irq, const struct cpumask *mask)
148 ____raw_writeq(cur_ints, IOADDR(A_BCM1480_IMR_MAPPER(cpu) + R_BCM1480_IMR_INTERRUPT_MASK_H + (k*BCM1480_IMR_HL_SPACING))); 148 ____raw_writeq(cur_ints, IOADDR(A_BCM1480_IMR_MAPPER(cpu) + R_BCM1480_IMR_INTERRUPT_MASK_H + (k*BCM1480_IMR_HL_SPACING)));
149 } 149 }
150 } 150 }
151 spin_unlock_irqrestore(&bcm1480_imr_lock, flags); 151 raw_spin_unlock_irqrestore(&bcm1480_imr_lock, flags);
152 152
153 return 0; 153 return 0;
154} 154}
diff --git a/arch/mips/sibyte/common/sb_tbprof.c b/arch/mips/sibyte/common/sb_tbprof.c
index 15ea778b5e66..ed2453eab5cb 100644
--- a/arch/mips/sibyte/common/sb_tbprof.c
+++ b/arch/mips/sibyte/common/sb_tbprof.c
@@ -28,7 +28,6 @@
28#include <linux/init.h> 28#include <linux/init.h>
29#include <linux/interrupt.h> 29#include <linux/interrupt.h>
30#include <linux/slab.h> 30#include <linux/slab.h>
31#include <linux/smp_lock.h>
32#include <linux/vmalloc.h> 31#include <linux/vmalloc.h>
33#include <linux/fs.h> 32#include <linux/fs.h>
34#include <linux/errno.h> 33#include <linux/errno.h>
diff --git a/arch/mips/sibyte/sb1250/irq.c b/arch/mips/sibyte/sb1250/irq.c
index 5e7f2016cceb..ab44a2f59ee4 100644
--- a/arch/mips/sibyte/sb1250/irq.c
+++ b/arch/mips/sibyte/sb1250/irq.c
@@ -72,20 +72,20 @@ static struct irq_chip sb1250_irq_type = {
72/* Store the CPU id (not the logical number) */ 72/* Store the CPU id (not the logical number) */
73int sb1250_irq_owner[SB1250_NR_IRQS]; 73int sb1250_irq_owner[SB1250_NR_IRQS];
74 74
75DEFINE_SPINLOCK(sb1250_imr_lock); 75static DEFINE_RAW_SPINLOCK(sb1250_imr_lock);
76 76
77void sb1250_mask_irq(int cpu, int irq) 77void sb1250_mask_irq(int cpu, int irq)
78{ 78{
79 unsigned long flags; 79 unsigned long flags;
80 u64 cur_ints; 80 u64 cur_ints;
81 81
82 spin_lock_irqsave(&sb1250_imr_lock, flags); 82 raw_spin_lock_irqsave(&sb1250_imr_lock, flags);
83 cur_ints = ____raw_readq(IOADDR(A_IMR_MAPPER(cpu) + 83 cur_ints = ____raw_readq(IOADDR(A_IMR_MAPPER(cpu) +
84 R_IMR_INTERRUPT_MASK)); 84 R_IMR_INTERRUPT_MASK));
85 cur_ints |= (((u64) 1) << irq); 85 cur_ints |= (((u64) 1) << irq);
86 ____raw_writeq(cur_ints, IOADDR(A_IMR_MAPPER(cpu) + 86 ____raw_writeq(cur_ints, IOADDR(A_IMR_MAPPER(cpu) +
87 R_IMR_INTERRUPT_MASK)); 87 R_IMR_INTERRUPT_MASK));
88 spin_unlock_irqrestore(&sb1250_imr_lock, flags); 88 raw_spin_unlock_irqrestore(&sb1250_imr_lock, flags);
89} 89}
90 90
91void sb1250_unmask_irq(int cpu, int irq) 91void sb1250_unmask_irq(int cpu, int irq)
@@ -93,13 +93,13 @@ void sb1250_unmask_irq(int cpu, int irq)
93 unsigned long flags; 93 unsigned long flags;
94 u64 cur_ints; 94 u64 cur_ints;
95 95
96 spin_lock_irqsave(&sb1250_imr_lock, flags); 96 raw_spin_lock_irqsave(&sb1250_imr_lock, flags);
97 cur_ints = ____raw_readq(IOADDR(A_IMR_MAPPER(cpu) + 97 cur_ints = ____raw_readq(IOADDR(A_IMR_MAPPER(cpu) +
98 R_IMR_INTERRUPT_MASK)); 98 R_IMR_INTERRUPT_MASK));
99 cur_ints &= ~(((u64) 1) << irq); 99 cur_ints &= ~(((u64) 1) << irq);
100 ____raw_writeq(cur_ints, IOADDR(A_IMR_MAPPER(cpu) + 100 ____raw_writeq(cur_ints, IOADDR(A_IMR_MAPPER(cpu) +
101 R_IMR_INTERRUPT_MASK)); 101 R_IMR_INTERRUPT_MASK));
102 spin_unlock_irqrestore(&sb1250_imr_lock, flags); 102 raw_spin_unlock_irqrestore(&sb1250_imr_lock, flags);
103} 103}
104 104
105#ifdef CONFIG_SMP 105#ifdef CONFIG_SMP
@@ -115,7 +115,7 @@ static int sb1250_set_affinity(unsigned int irq, const struct cpumask *mask)
115 cpu = cpu_logical_map(i); 115 cpu = cpu_logical_map(i);
116 116
117 /* Protect against other affinity changers and IMR manipulation */ 117 /* Protect against other affinity changers and IMR manipulation */
118 spin_lock_irqsave(&sb1250_imr_lock, flags); 118 raw_spin_lock_irqsave(&sb1250_imr_lock, flags);
119 119
120 /* Swizzle each CPU's IMR (but leave the IP selection alone) */ 120 /* Swizzle each CPU's IMR (but leave the IP selection alone) */
121 old_cpu = sb1250_irq_owner[irq]; 121 old_cpu = sb1250_irq_owner[irq];
@@ -137,7 +137,7 @@ static int sb1250_set_affinity(unsigned int irq, const struct cpumask *mask)
137 ____raw_writeq(cur_ints, IOADDR(A_IMR_MAPPER(cpu) + 137 ____raw_writeq(cur_ints, IOADDR(A_IMR_MAPPER(cpu) +
138 R_IMR_INTERRUPT_MASK)); 138 R_IMR_INTERRUPT_MASK));
139 } 139 }
140 spin_unlock_irqrestore(&sb1250_imr_lock, flags); 140 raw_spin_unlock_irqrestore(&sb1250_imr_lock, flags);
141 141
142 return 0; 142 return 0;
143} 143}
diff --git a/arch/mips/sni/rm200.c b/arch/mips/sni/rm200.c
index 31e2583ec622..90c558f7c0fa 100644
--- a/arch/mips/sni/rm200.c
+++ b/arch/mips/sni/rm200.c
@@ -132,7 +132,7 @@ device_initcall(snirm_setup_devinit);
132 * readb/writeb to access them 132 * readb/writeb to access them
133 */ 133 */
134 134
135DEFINE_SPINLOCK(sni_rm200_i8259A_lock); 135static DEFINE_RAW_SPINLOCK(sni_rm200_i8259A_lock);
136#define PIC_CMD 0x00 136#define PIC_CMD 0x00
137#define PIC_IMR 0x01 137#define PIC_IMR 0x01
138#define PIC_ISR PIC_CMD 138#define PIC_ISR PIC_CMD
@@ -161,13 +161,13 @@ static void sni_rm200_disable_8259A_irq(unsigned int irq)
161 161
162 irq -= RM200_I8259A_IRQ_BASE; 162 irq -= RM200_I8259A_IRQ_BASE;
163 mask = 1 << irq; 163 mask = 1 << irq;
164 spin_lock_irqsave(&sni_rm200_i8259A_lock, flags); 164 raw_spin_lock_irqsave(&sni_rm200_i8259A_lock, flags);
165 rm200_cached_irq_mask |= mask; 165 rm200_cached_irq_mask |= mask;
166 if (irq & 8) 166 if (irq & 8)
167 writeb(cached_slave_mask, rm200_pic_slave + PIC_IMR); 167 writeb(cached_slave_mask, rm200_pic_slave + PIC_IMR);
168 else 168 else
169 writeb(cached_master_mask, rm200_pic_master + PIC_IMR); 169 writeb(cached_master_mask, rm200_pic_master + PIC_IMR);
170 spin_unlock_irqrestore(&sni_rm200_i8259A_lock, flags); 170 raw_spin_unlock_irqrestore(&sni_rm200_i8259A_lock, flags);
171} 171}
172 172
173static void sni_rm200_enable_8259A_irq(unsigned int irq) 173static void sni_rm200_enable_8259A_irq(unsigned int irq)
@@ -177,13 +177,13 @@ static void sni_rm200_enable_8259A_irq(unsigned int irq)
177 177
178 irq -= RM200_I8259A_IRQ_BASE; 178 irq -= RM200_I8259A_IRQ_BASE;
179 mask = ~(1 << irq); 179 mask = ~(1 << irq);
180 spin_lock_irqsave(&sni_rm200_i8259A_lock, flags); 180 raw_spin_lock_irqsave(&sni_rm200_i8259A_lock, flags);
181 rm200_cached_irq_mask &= mask; 181 rm200_cached_irq_mask &= mask;
182 if (irq & 8) 182 if (irq & 8)
183 writeb(cached_slave_mask, rm200_pic_slave + PIC_IMR); 183 writeb(cached_slave_mask, rm200_pic_slave + PIC_IMR);
184 else 184 else
185 writeb(cached_master_mask, rm200_pic_master + PIC_IMR); 185 writeb(cached_master_mask, rm200_pic_master + PIC_IMR);
186 spin_unlock_irqrestore(&sni_rm200_i8259A_lock, flags); 186 raw_spin_unlock_irqrestore(&sni_rm200_i8259A_lock, flags);
187} 187}
188 188
189static inline int sni_rm200_i8259A_irq_real(unsigned int irq) 189static inline int sni_rm200_i8259A_irq_real(unsigned int irq)
@@ -216,7 +216,7 @@ void sni_rm200_mask_and_ack_8259A(unsigned int irq)
216 216
217 irq -= RM200_I8259A_IRQ_BASE; 217 irq -= RM200_I8259A_IRQ_BASE;
218 irqmask = 1 << irq; 218 irqmask = 1 << irq;
219 spin_lock_irqsave(&sni_rm200_i8259A_lock, flags); 219 raw_spin_lock_irqsave(&sni_rm200_i8259A_lock, flags);
220 /* 220 /*
221 * Lightweight spurious IRQ detection. We do not want 221 * Lightweight spurious IRQ detection. We do not want
222 * to overdo spurious IRQ handling - it's usually a sign 222 * to overdo spurious IRQ handling - it's usually a sign
@@ -247,7 +247,7 @@ handle_real_irq:
247 writeb(cached_master_mask, rm200_pic_master + PIC_IMR); 247 writeb(cached_master_mask, rm200_pic_master + PIC_IMR);
248 writeb(0x60+irq, rm200_pic_master + PIC_CMD); 248 writeb(0x60+irq, rm200_pic_master + PIC_CMD);
249 } 249 }
250 spin_unlock_irqrestore(&sni_rm200_i8259A_lock, flags); 250 raw_spin_unlock_irqrestore(&sni_rm200_i8259A_lock, flags);
251 return; 251 return;
252 252
253spurious_8259A_irq: 253spurious_8259A_irq:
@@ -298,7 +298,7 @@ static inline int sni_rm200_i8259_irq(void)
298{ 298{
299 int irq; 299 int irq;
300 300
301 spin_lock(&sni_rm200_i8259A_lock); 301 raw_spin_lock(&sni_rm200_i8259A_lock);
302 302
303 /* Perform an interrupt acknowledge cycle on controller 1. */ 303 /* Perform an interrupt acknowledge cycle on controller 1. */
304 writeb(0x0C, rm200_pic_master + PIC_CMD); /* prepare for poll */ 304 writeb(0x0C, rm200_pic_master + PIC_CMD); /* prepare for poll */
@@ -325,7 +325,7 @@ static inline int sni_rm200_i8259_irq(void)
325 irq = -1; 325 irq = -1;
326 } 326 }
327 327
328 spin_unlock(&sni_rm200_i8259A_lock); 328 raw_spin_unlock(&sni_rm200_i8259A_lock);
329 329
330 return likely(irq >= 0) ? irq + RM200_I8259A_IRQ_BASE : irq; 330 return likely(irq >= 0) ? irq + RM200_I8259A_IRQ_BASE : irq;
331} 331}
@@ -334,7 +334,7 @@ void sni_rm200_init_8259A(void)
334{ 334{
335 unsigned long flags; 335 unsigned long flags;
336 336
337 spin_lock_irqsave(&sni_rm200_i8259A_lock, flags); 337 raw_spin_lock_irqsave(&sni_rm200_i8259A_lock, flags);
338 338
339 writeb(0xff, rm200_pic_master + PIC_IMR); 339 writeb(0xff, rm200_pic_master + PIC_IMR);
340 writeb(0xff, rm200_pic_slave + PIC_IMR); 340 writeb(0xff, rm200_pic_slave + PIC_IMR);
@@ -352,7 +352,7 @@ void sni_rm200_init_8259A(void)
352 writeb(cached_master_mask, rm200_pic_master + PIC_IMR); 352 writeb(cached_master_mask, rm200_pic_master + PIC_IMR);
353 writeb(cached_slave_mask, rm200_pic_slave + PIC_IMR); 353 writeb(cached_slave_mask, rm200_pic_slave + PIC_IMR);
354 354
355 spin_unlock_irqrestore(&sni_rm200_i8259A_lock, flags); 355 raw_spin_unlock_irqrestore(&sni_rm200_i8259A_lock, flags);
356} 356}
357 357
358/* 358/*
diff --git a/arch/mips/txx9/generic/setup.c b/arch/mips/txx9/generic/setup.c
index e27809b6d04f..7174d830dd05 100644
--- a/arch/mips/txx9/generic/setup.c
+++ b/arch/mips/txx9/generic/setup.c
@@ -399,11 +399,6 @@ const char *get_system_type(void)
399 return txx9_system_type; 399 return txx9_system_type;
400} 400}
401 401
402char * __init prom_getcmdline(void)
403{
404 return &(arcs_cmdline[0]);
405}
406
407const char *__init prom_getenv(const char *name) 402const char *__init prom_getenv(const char *name)
408{ 403{
409 const s32 *str; 404 const s32 *str;
diff --git a/arch/mips/txx9/jmr3927/setup.c b/arch/mips/txx9/jmr3927/setup.c
index 25e50a7be387..3206f76f300b 100644
--- a/arch/mips/txx9/jmr3927/setup.c
+++ b/arch/mips/txx9/jmr3927/setup.c
@@ -67,8 +67,6 @@ static void jmr3927_board_init(void);
67 67
68static void __init jmr3927_mem_setup(void) 68static void __init jmr3927_mem_setup(void)
69{ 69{
70 char *argptr;
71
72 set_io_port_base(JMR3927_PORT_BASE + JMR3927_PCIIO); 70 set_io_port_base(JMR3927_PORT_BASE + JMR3927_PCIIO);
73 71
74 _machine_restart = jmr3927_machine_restart; 72 _machine_restart = jmr3927_machine_restart;
@@ -97,11 +95,6 @@ static void __init jmr3927_mem_setup(void)
97 jmr3927_board_init(); 95 jmr3927_board_init();
98 96
99 tx3927_sio_init(0, 1 << 1); /* ch1: noCTS */ 97 tx3927_sio_init(0, 1 << 1); /* ch1: noCTS */
100#ifdef CONFIG_SERIAL_TXX9_CONSOLE
101 argptr = prom_getcmdline();
102 if (!strstr(argptr, "console="))
103 strcat(argptr, " console=ttyS1,115200");
104#endif
105} 98}
106 99
107static void __init jmr3927_pci_setup(void) 100static void __init jmr3927_pci_setup(void)
diff --git a/arch/mips/txx9/rbtx4927/setup.c b/arch/mips/txx9/rbtx4927/setup.c
index ee468eaee4f7..b15adfc2d726 100644
--- a/arch/mips/txx9/rbtx4927/setup.c
+++ b/arch/mips/txx9/rbtx4927/setup.c
@@ -187,8 +187,6 @@ static void __init rbtx4937_clock_init(void);
187 187
188static void __init rbtx4927_mem_setup(void) 188static void __init rbtx4927_mem_setup(void)
189{ 189{
190 char *argptr;
191
192 if (TX4927_REV_PCODE() == 0x4927) { 190 if (TX4927_REV_PCODE() == 0x4927) {
193 rbtx4927_clock_init(); 191 rbtx4927_clock_init();
194 tx4927_setup(); 192 tx4927_setup();
@@ -213,11 +211,6 @@ static void __init rbtx4927_mem_setup(void)
213 gpio_direction_output(15, 1); 211 gpio_direction_output(15, 1);
214 212
215 tx4927_sio_init(0, 0); 213 tx4927_sio_init(0, 0);
216#ifdef CONFIG_SERIAL_TXX9_CONSOLE
217 argptr = prom_getcmdline();
218 if (!strstr(argptr, "console="))
219 strcat(argptr, " console=ttyS0,38400");
220#endif
221} 214}
222 215
223static void __init rbtx4927_clock_init(void) 216static void __init rbtx4927_clock_init(void)
diff --git a/arch/mips/txx9/rbtx4938/setup.c b/arch/mips/txx9/rbtx4938/setup.c
index d66509b14284..d6e70dab3bd3 100644
--- a/arch/mips/txx9/rbtx4938/setup.c
+++ b/arch/mips/txx9/rbtx4938/setup.c
@@ -153,7 +153,6 @@ static void __init rbtx4938_time_init(void)
153static void __init rbtx4938_mem_setup(void) 153static void __init rbtx4938_mem_setup(void)
154{ 154{
155 unsigned long long pcfg; 155 unsigned long long pcfg;
156 char *argptr;
157 156
158 if (txx9_master_clock == 0) 157 if (txx9_master_clock == 0)
159 txx9_master_clock = 25000000; /* 25MHz */ 158 txx9_master_clock = 25000000; /* 25MHz */
@@ -168,11 +167,6 @@ static void __init rbtx4938_mem_setup(void)
168#endif 167#endif
169 168
170 tx4938_sio_init(7372800, 0); 169 tx4938_sio_init(7372800, 0);
171#ifdef CONFIG_SERIAL_TXX9_CONSOLE
172 argptr = prom_getcmdline();
173 if (!strstr(argptr, "console="))
174 strcat(argptr, " console=ttyS0,38400");
175#endif
176 170
177#ifdef CONFIG_TOSHIBA_RBTX4938_MPLEX_PIO58_61 171#ifdef CONFIG_TOSHIBA_RBTX4938_MPLEX_PIO58_61
178 pr_info("PIOSEL: disabling both ATA and NAND selection\n"); 172 pr_info("PIOSEL: disabling both ATA and NAND selection\n");
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
index 5f318ce29770..737f05200b1d 100644
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
@@ -564,6 +564,16 @@ config I2C_VERSATILE
564 This driver can also be built as a module. If so, the module 564 This driver can also be built as a module. If so, the module
565 will be called i2c-versatile. 565 will be called i2c-versatile.
566 566
567config I2C_OCTEON
568 tristate "Cavium OCTEON I2C bus support"
569 depends on CPU_CAVIUM_OCTEON
570 help
571 Say yes if you want to support the I2C serial bus on Cavium
572 OCTEON SOC.
573
574 This driver can also be built as a module. If so, the module
575 will be called i2c-octeon.
576
567comment "External I2C/SMBus adapter drivers" 577comment "External I2C/SMBus adapter drivers"
568 578
569config I2C_PARPORT 579config I2C_PARPORT
diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile
index 302c551977bb..c2c4ea1908d8 100644
--- a/drivers/i2c/busses/Makefile
+++ b/drivers/i2c/busses/Makefile
@@ -54,6 +54,7 @@ obj-$(CONFIG_I2C_SH_MOBILE) += i2c-sh_mobile.o
54obj-$(CONFIG_I2C_SIMTEC) += i2c-simtec.o 54obj-$(CONFIG_I2C_SIMTEC) += i2c-simtec.o
55obj-$(CONFIG_I2C_STU300) += i2c-stu300.o 55obj-$(CONFIG_I2C_STU300) += i2c-stu300.o
56obj-$(CONFIG_I2C_VERSATILE) += i2c-versatile.o 56obj-$(CONFIG_I2C_VERSATILE) += i2c-versatile.o
57obj-$(CONFIG_I2C_OCTEON) += i2c-octeon.o
57 58
58# External I2C/SMBus adapter drivers 59# External I2C/SMBus adapter drivers
59obj-$(CONFIG_I2C_PARPORT) += i2c-parport.o 60obj-$(CONFIG_I2C_PARPORT) += i2c-parport.o
diff --git a/drivers/i2c/busses/i2c-octeon.c b/drivers/i2c/busses/i2c-octeon.c
new file mode 100644
index 000000000000..60375504fa49
--- /dev/null
+++ b/drivers/i2c/busses/i2c-octeon.c
@@ -0,0 +1,651 @@
1/*
2 * (C) Copyright 2009-2010
3 * Nokia Siemens Networks, michael.lawnick.ext@nsn.com
4 *
5 * Portions Copyright (C) 2010 Cavium Networks, Inc.
6 *
7 * This is a driver for the i2c adapter in Cavium Networks' OCTEON processors.
8 *
9 * This file is licensed under the terms of the GNU General Public
10 * License version 2. This program is licensed "as is" without any
11 * warranty of any kind, whether express or implied.
12 */
13
14#include <linux/kernel.h>
15#include <linux/module.h>
16#include <linux/sched.h>
17#include <linux/init.h>
18
19#include <linux/io.h>
20#include <linux/i2c.h>
21#include <linux/interrupt.h>
22#include <linux/delay.h>
23#include <linux/platform_device.h>
24
25#include <asm/octeon/octeon.h>
26
27#define DRV_NAME "i2c-octeon"
28
29/* The previous out-of-tree version was implicitly version 1.0. */
30#define DRV_VERSION "2.0"
31
32/* register offsets */
33#define SW_TWSI 0x00
34#define TWSI_INT 0x10
35
36/* Controller command patterns */
37#define SW_TWSI_V 0x8000000000000000ull
38#define SW_TWSI_EOP_TWSI_DATA 0x0C00000100000000ull
39#define SW_TWSI_EOP_TWSI_CTL 0x0C00000200000000ull
40#define SW_TWSI_EOP_TWSI_CLKCTL 0x0C00000300000000ull
41#define SW_TWSI_EOP_TWSI_STAT 0x0C00000300000000ull
42#define SW_TWSI_EOP_TWSI_RST 0x0C00000700000000ull
43#define SW_TWSI_OP_TWSI_CLK 0x0800000000000000ull
44#define SW_TWSI_R 0x0100000000000000ull
45
46/* Controller command and status bits */
47#define TWSI_CTL_CE 0x80
48#define TWSI_CTL_ENAB 0x40
49#define TWSI_CTL_STA 0x20
50#define TWSI_CTL_STP 0x10
51#define TWSI_CTL_IFLG 0x08
52#define TWSI_CTL_AAK 0x04
53
54/* Some status values */
55#define STAT_START 0x08
56#define STAT_RSTART 0x10
57#define STAT_TXADDR_ACK 0x18
58#define STAT_TXDATA_ACK 0x28
59#define STAT_RXADDR_ACK 0x40
60#define STAT_RXDATA_ACK 0x50
61#define STAT_IDLE 0xF8
62
63struct octeon_i2c {
64 wait_queue_head_t queue;
65 struct i2c_adapter adap;
66 int irq;
67 int twsi_freq;
68 int sys_freq;
69 resource_size_t twsi_phys;
70 void __iomem *twsi_base;
71 resource_size_t regsize;
72 struct device *dev;
73};
74
75/**
76 * octeon_i2c_write_sw - write an I2C core register.
77 * @i2c: The struct octeon_i2c.
78 * @eop_reg: Register selector.
79 * @data: Value to be written.
80 *
81 * The I2C core registers are accessed indirectly via the SW_TWSI CSR.
82 */
83static void octeon_i2c_write_sw(struct octeon_i2c *i2c,
84 u64 eop_reg,
85 u8 data)
86{
87 u64 tmp;
88
89 __raw_writeq(SW_TWSI_V | eop_reg | data, i2c->twsi_base + SW_TWSI);
90 do {
91 tmp = __raw_readq(i2c->twsi_base + SW_TWSI);
92 } while ((tmp & SW_TWSI_V) != 0);
93}
94
95/**
96 * octeon_i2c_read_sw - write an I2C core register.
97 * @i2c: The struct octeon_i2c.
98 * @eop_reg: Register selector.
99 *
100 * Returns the data.
101 *
102 * The I2C core registers are accessed indirectly via the SW_TWSI CSR.
103 */
104static u8 octeon_i2c_read_sw(struct octeon_i2c *i2c, u64 eop_reg)
105{
106 u64 tmp;
107
108 __raw_writeq(SW_TWSI_V | eop_reg | SW_TWSI_R, i2c->twsi_base + SW_TWSI);
109 do {
110 tmp = __raw_readq(i2c->twsi_base + SW_TWSI);
111 } while ((tmp & SW_TWSI_V) != 0);
112
113 return tmp & 0xFF;
114}
115
116/**
117 * octeon_i2c_write_int - write the TWSI_INT register
118 * @i2c: The struct octeon_i2c.
119 * @data: Value to be written.
120 */
121static void octeon_i2c_write_int(struct octeon_i2c *i2c, u64 data)
122{
123 u64 tmp;
124
125 __raw_writeq(data, i2c->twsi_base + TWSI_INT);
126 tmp = __raw_readq(i2c->twsi_base + TWSI_INT);
127}
128
129/**
130 * octeon_i2c_int_enable - enable the TS interrupt.
131 * @i2c: The struct octeon_i2c.
132 *
133 * The interrupt will be asserted when there is non-STAT_IDLE state in
134 * the SW_TWSI_EOP_TWSI_STAT register.
135 */
136static void octeon_i2c_int_enable(struct octeon_i2c *i2c)
137{
138 octeon_i2c_write_int(i2c, 0x40);
139}
140
141/**
142 * octeon_i2c_int_disable - disable the TS interrupt.
143 * @i2c: The struct octeon_i2c.
144 */
145static void octeon_i2c_int_disable(struct octeon_i2c *i2c)
146{
147 octeon_i2c_write_int(i2c, 0);
148}
149
150/**
151 * octeon_i2c_unblock - unblock the bus.
152 * @i2c: The struct octeon_i2c.
153 *
154 * If there was a reset while a device was driving 0 to bus,
155 * bus is blocked. We toggle it free manually by some clock
156 * cycles and send a stop.
157 */
158static void octeon_i2c_unblock(struct octeon_i2c *i2c)
159{
160 int i;
161
162 dev_dbg(i2c->dev, "%s\n", __func__);
163 for (i = 0; i < 9; i++) {
164 octeon_i2c_write_int(i2c, 0x0);
165 udelay(5);
166 octeon_i2c_write_int(i2c, 0x200);
167 udelay(5);
168 }
169 octeon_i2c_write_int(i2c, 0x300);
170 udelay(5);
171 octeon_i2c_write_int(i2c, 0x100);
172 udelay(5);
173 octeon_i2c_write_int(i2c, 0x0);
174}
175
176/**
177 * octeon_i2c_isr - the interrupt service routine.
178 * @int: The irq, unused.
179 * @dev_id: Our struct octeon_i2c.
180 */
181static irqreturn_t octeon_i2c_isr(int irq, void *dev_id)
182{
183 struct octeon_i2c *i2c = dev_id;
184
185 octeon_i2c_int_disable(i2c);
186 wake_up_interruptible(&i2c->queue);
187
188 return IRQ_HANDLED;
189}
190
191
192static int octeon_i2c_test_iflg(struct octeon_i2c *i2c)
193{
194 return (octeon_i2c_read_sw(i2c, SW_TWSI_EOP_TWSI_CTL) & TWSI_CTL_IFLG) != 0;
195}
196
197/**
198 * octeon_i2c_wait - wait for the IFLG to be set.
199 * @i2c: The struct octeon_i2c.
200 *
201 * Returns 0 on success, otherwise a negative errno.
202 */
203static int octeon_i2c_wait(struct octeon_i2c *i2c)
204{
205 int result;
206
207 octeon_i2c_int_enable(i2c);
208
209 result = wait_event_interruptible_timeout(i2c->queue,
210 octeon_i2c_test_iflg(i2c),
211 i2c->adap.timeout);
212
213 octeon_i2c_int_disable(i2c);
214
215 if (result < 0) {
216 dev_dbg(i2c->dev, "%s: wait interrupted\n", __func__);
217 return result;
218 } else if (result == 0) {
219 dev_dbg(i2c->dev, "%s: timeout\n", __func__);
220 result = -ETIMEDOUT;
221 }
222
223 return 0;
224}
225
226/**
227 * octeon_i2c_start - send START to the bus.
228 * @i2c: The struct octeon_i2c.
229 *
230 * Returns 0 on success, otherwise a negative errno.
231 */
232static int octeon_i2c_start(struct octeon_i2c *i2c)
233{
234 u8 data;
235 int result;
236
237 octeon_i2c_write_sw(i2c, SW_TWSI_EOP_TWSI_CTL,
238 TWSI_CTL_ENAB | TWSI_CTL_STA);
239
240 result = octeon_i2c_wait(i2c);
241 if (result) {
242 if (octeon_i2c_read_sw(i2c, SW_TWSI_EOP_TWSI_STAT) == STAT_IDLE) {
243 /*
244 * Controller refused to send start flag May
245 * be a client is holding SDA low - let's try
246 * to free it.
247 */
248 octeon_i2c_unblock(i2c);
249 octeon_i2c_write_sw(i2c, SW_TWSI_EOP_TWSI_CTL,
250 TWSI_CTL_ENAB | TWSI_CTL_STA);
251
252 result = octeon_i2c_wait(i2c);
253 }
254 if (result)
255 return result;
256 }
257
258 data = octeon_i2c_read_sw(i2c, SW_TWSI_EOP_TWSI_STAT);
259 if ((data != STAT_START) && (data != STAT_RSTART)) {
260 dev_err(i2c->dev, "%s: bad status (0x%x)\n", __func__, data);
261 return -EIO;
262 }
263
264 return 0;
265}
266
267/**
268 * octeon_i2c_stop - send STOP to the bus.
269 * @i2c: The struct octeon_i2c.
270 *
271 * Returns 0 on success, otherwise a negative errno.
272 */
273static int octeon_i2c_stop(struct octeon_i2c *i2c)
274{
275 u8 data;
276
277 octeon_i2c_write_sw(i2c, SW_TWSI_EOP_TWSI_CTL,
278 TWSI_CTL_ENAB | TWSI_CTL_STP);
279
280 data = octeon_i2c_read_sw(i2c, SW_TWSI_EOP_TWSI_STAT);
281
282 if (data != STAT_IDLE) {
283 dev_err(i2c->dev, "%s: bad status(0x%x)\n", __func__, data);
284 return -EIO;
285 }
286 return 0;
287}
288
289/**
290 * octeon_i2c_write - send data to the bus.
291 * @i2c: The struct octeon_i2c.
292 * @target: Target address.
293 * @data: Pointer to the data to be sent.
294 * @length: Length of the data.
295 *
296 * The address is sent over the bus, then the data.
297 *
298 * Returns 0 on success, otherwise a negative errno.
299 */
300static int octeon_i2c_write(struct octeon_i2c *i2c, int target,
301 const u8 *data, int length)
302{
303 int i, result;
304 u8 tmp;
305
306 result = octeon_i2c_start(i2c);
307 if (result)
308 return result;
309
310 octeon_i2c_write_sw(i2c, SW_TWSI_EOP_TWSI_DATA, target << 1);
311 octeon_i2c_write_sw(i2c, SW_TWSI_EOP_TWSI_CTL, TWSI_CTL_ENAB);
312
313 result = octeon_i2c_wait(i2c);
314 if (result)
315 return result;
316
317 for (i = 0; i < length; i++) {
318 tmp = octeon_i2c_read_sw(i2c, SW_TWSI_EOP_TWSI_STAT);
319 if ((tmp != STAT_TXADDR_ACK) && (tmp != STAT_TXDATA_ACK)) {
320 dev_err(i2c->dev,
321 "%s: bad status before write (0x%x)\n",
322 __func__, tmp);
323 return -EIO;
324 }
325
326 octeon_i2c_write_sw(i2c, SW_TWSI_EOP_TWSI_DATA, data[i]);
327 octeon_i2c_write_sw(i2c, SW_TWSI_EOP_TWSI_CTL, TWSI_CTL_ENAB);
328
329 result = octeon_i2c_wait(i2c);
330 if (result)
331 return result;
332 }
333
334 return 0;
335}
336
337/**
338 * octeon_i2c_read - receive data from the bus.
339 * @i2c: The struct octeon_i2c.
340 * @target: Target address.
341 * @data: Pointer to the location to store the datae .
342 * @length: Length of the data.
343 *
344 * The address is sent over the bus, then the data is read.
345 *
346 * Returns 0 on success, otherwise a negative errno.
347 */
348static int octeon_i2c_read(struct octeon_i2c *i2c, int target,
349 u8 *data, int length)
350{
351 int i, result;
352 u8 tmp;
353
354 if (length < 1)
355 return -EINVAL;
356
357 result = octeon_i2c_start(i2c);
358 if (result)
359 return result;
360
361 octeon_i2c_write_sw(i2c, SW_TWSI_EOP_TWSI_DATA, (target<<1) | 1);
362 octeon_i2c_write_sw(i2c, SW_TWSI_EOP_TWSI_CTL, TWSI_CTL_ENAB);
363
364 result = octeon_i2c_wait(i2c);
365 if (result)
366 return result;
367
368 for (i = 0; i < length; i++) {
369 tmp = octeon_i2c_read_sw(i2c, SW_TWSI_EOP_TWSI_STAT);
370 if ((tmp != STAT_RXDATA_ACK) && (tmp != STAT_RXADDR_ACK)) {
371 dev_err(i2c->dev,
372 "%s: bad status before read (0x%x)\n",
373 __func__, tmp);
374 return -EIO;
375 }
376
377 if (i+1 < length)
378 octeon_i2c_write_sw(i2c, SW_TWSI_EOP_TWSI_CTL,
379 TWSI_CTL_ENAB | TWSI_CTL_AAK);
380 else
381 octeon_i2c_write_sw(i2c, SW_TWSI_EOP_TWSI_CTL,
382 TWSI_CTL_ENAB);
383
384 result = octeon_i2c_wait(i2c);
385 if (result)
386 return result;
387
388 data[i] = octeon_i2c_read_sw(i2c, SW_TWSI_EOP_TWSI_DATA);
389 }
390 return 0;
391}
392
393/**
394 * octeon_i2c_xfer - The driver's master_xfer function.
395 * @adap: Pointer to the i2c_adapter structure.
396 * @msgs: Pointer to the messages to be processed.
397 * @num: Length of the MSGS array.
398 *
399 * Returns the number of messages processed, or a negative errno on
400 * failure.
401 */
402static int octeon_i2c_xfer(struct i2c_adapter *adap,
403 struct i2c_msg *msgs,
404 int num)
405{
406 struct i2c_msg *pmsg;
407 int i;
408 int ret = 0;
409 struct octeon_i2c *i2c = i2c_get_adapdata(adap);
410
411 for (i = 0; ret == 0 && i < num; i++) {
412 pmsg = &msgs[i];
413 dev_dbg(i2c->dev,
414 "Doing %s %d byte(s) to/from 0x%02x - %d of %d messages\n",
415 pmsg->flags & I2C_M_RD ? "read" : "write",
416 pmsg->len, pmsg->addr, i + 1, num);
417 if (pmsg->flags & I2C_M_RD)
418 ret = octeon_i2c_read(i2c, pmsg->addr, pmsg->buf,
419 pmsg->len);
420 else
421 ret = octeon_i2c_write(i2c, pmsg->addr, pmsg->buf,
422 pmsg->len);
423 }
424 octeon_i2c_stop(i2c);
425
426 return (ret != 0) ? ret : num;
427}
428
429static u32 octeon_i2c_functionality(struct i2c_adapter *adap)
430{
431 return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL;
432}
433
434static const struct i2c_algorithm octeon_i2c_algo = {
435 .master_xfer = octeon_i2c_xfer,
436 .functionality = octeon_i2c_functionality,
437};
438
439static struct i2c_adapter octeon_i2c_ops = {
440 .owner = THIS_MODULE,
441 .name = "OCTEON adapter",
442 .algo = &octeon_i2c_algo,
443 .timeout = 2,
444};
445
446/**
447 * octeon_i2c_setclock - Calculate and set clock divisors.
448 */
449static int __init octeon_i2c_setclock(struct octeon_i2c *i2c)
450{
451 int tclk, thp_base, inc, thp_idx, mdiv_idx, ndiv_idx, foscl, diff;
452 int thp = 0x18, mdiv = 2, ndiv = 0, delta_hz = 1000000;
453
454 for (ndiv_idx = 0; ndiv_idx < 8 && delta_hz != 0; ndiv_idx++) {
455 /*
456 * An mdiv value of less than 2 seems to not work well
457 * with ds1337 RTCs, so we constrain it to larger
458 * values.
459 */
460 for (mdiv_idx = 15; mdiv_idx >= 2 && delta_hz != 0; mdiv_idx--) {
461 /*
462 * For given ndiv and mdiv values check the
463 * two closest thp values.
464 */
465 tclk = i2c->twsi_freq * (mdiv_idx + 1) * 10;
466 tclk *= (1 << ndiv_idx);
467 thp_base = (i2c->sys_freq / (tclk * 2)) - 1;
468 for (inc = 0; inc <= 1; inc++) {
469 thp_idx = thp_base + inc;
470 if (thp_idx < 5 || thp_idx > 0xff)
471 continue;
472
473 foscl = i2c->sys_freq / (2 * (thp_idx + 1));
474 foscl = foscl / (1 << ndiv_idx);
475 foscl = foscl / (mdiv_idx + 1) / 10;
476 diff = abs(foscl - i2c->twsi_freq);
477 if (diff < delta_hz) {
478 delta_hz = diff;
479 thp = thp_idx;
480 mdiv = mdiv_idx;
481 ndiv = ndiv_idx;
482 }
483 }
484 }
485 }
486 octeon_i2c_write_sw(i2c, SW_TWSI_OP_TWSI_CLK, thp);
487 octeon_i2c_write_sw(i2c, SW_TWSI_EOP_TWSI_CLKCTL, (mdiv << 3) | ndiv);
488
489 return 0;
490}
491
492static int __init octeon_i2c_initlowlevel(struct octeon_i2c *i2c)
493{
494 u8 status;
495 int tries;
496
497 /* disable high level controller, enable bus access */
498 octeon_i2c_write_sw(i2c, SW_TWSI_EOP_TWSI_CTL, TWSI_CTL_ENAB);
499
500 /* reset controller */
501 octeon_i2c_write_sw(i2c, SW_TWSI_EOP_TWSI_RST, 0);
502
503 for (tries = 10; tries; tries--) {
504 udelay(1);
505 status = octeon_i2c_read_sw(i2c, SW_TWSI_EOP_TWSI_STAT);
506 if (status == STAT_IDLE)
507 return 0;
508 }
509 dev_err(i2c->dev, "%s: TWSI_RST failed! (0x%x)\n", __func__, status);
510 return -EIO;
511}
512
513static int __devinit octeon_i2c_probe(struct platform_device *pdev)
514{
515 int irq, result = 0;
516 struct octeon_i2c *i2c;
517 struct octeon_i2c_data *i2c_data;
518 struct resource *res_mem;
519
520 /* All adaptors have an irq. */
521 irq = platform_get_irq(pdev, 0);
522 if (irq < 0)
523 return irq;
524
525 i2c = kzalloc(sizeof(*i2c), GFP_KERNEL);
526 if (!i2c) {
527 dev_err(&pdev->dev, "kzalloc failed\n");
528 result = -ENOMEM;
529 goto out;
530 }
531 i2c->dev = &pdev->dev;
532 i2c_data = pdev->dev.platform_data;
533
534 res_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
535
536 if (res_mem == NULL) {
537 dev_err(i2c->dev, "found no memory resource\n");
538 result = -ENXIO;
539 goto fail_region;
540 }
541
542 if (i2c_data == NULL) {
543 dev_err(i2c->dev, "no I2C frequency data\n");
544 result = -ENXIO;
545 goto fail_region;
546 }
547
548 i2c->twsi_phys = res_mem->start;
549 i2c->regsize = resource_size(res_mem);
550 i2c->twsi_freq = i2c_data->i2c_freq;
551 i2c->sys_freq = i2c_data->sys_freq;
552
553 if (!request_mem_region(i2c->twsi_phys, i2c->regsize, res_mem->name)) {
554 dev_err(i2c->dev, "request_mem_region failed\n");
555 goto fail_region;
556 }
557 i2c->twsi_base = ioremap(i2c->twsi_phys, i2c->regsize);
558
559 init_waitqueue_head(&i2c->queue);
560
561 i2c->irq = irq;
562
563 result = request_irq(i2c->irq, octeon_i2c_isr, 0, DRV_NAME, i2c);
564 if (result < 0) {
565 dev_err(i2c->dev, "failed to attach interrupt\n");
566 goto fail_irq;
567 }
568
569 result = octeon_i2c_initlowlevel(i2c);
570 if (result) {
571 dev_err(i2c->dev, "init low level failed\n");
572 goto fail_add;
573 }
574
575 result = octeon_i2c_setclock(i2c);
576 if (result) {
577 dev_err(i2c->dev, "clock init failed\n");
578 goto fail_add;
579 }
580
581 i2c->adap = octeon_i2c_ops;
582 i2c->adap.dev.parent = &pdev->dev;
583 i2c->adap.nr = pdev->id >= 0 ? pdev->id : 0;
584 i2c_set_adapdata(&i2c->adap, i2c);
585 platform_set_drvdata(pdev, i2c);
586
587 result = i2c_add_numbered_adapter(&i2c->adap);
588 if (result < 0) {
589 dev_err(i2c->dev, "failed to add adapter\n");
590 goto fail_add;
591 }
592
593 dev_info(i2c->dev, "version %s\n", DRV_VERSION);
594
595 return result;
596
597fail_add:
598 platform_set_drvdata(pdev, NULL);
599 free_irq(i2c->irq, i2c);
600fail_irq:
601 iounmap(i2c->twsi_base);
602 release_mem_region(i2c->twsi_phys, i2c->regsize);
603fail_region:
604 kfree(i2c);
605out:
606 return result;
607};
608
609static int __devexit octeon_i2c_remove(struct platform_device *pdev)
610{
611 struct octeon_i2c *i2c = platform_get_drvdata(pdev);
612
613 i2c_del_adapter(&i2c->adap);
614 platform_set_drvdata(pdev, NULL);
615 free_irq(i2c->irq, i2c);
616 iounmap(i2c->twsi_base);
617 release_mem_region(i2c->twsi_phys, i2c->regsize);
618 kfree(i2c);
619 return 0;
620};
621
622static struct platform_driver octeon_i2c_driver = {
623 .probe = octeon_i2c_probe,
624 .remove = __devexit_p(octeon_i2c_remove),
625 .driver = {
626 .owner = THIS_MODULE,
627 .name = DRV_NAME,
628 },
629};
630
631static int __init octeon_i2c_init(void)
632{
633 int rv;
634
635 rv = platform_driver_register(&octeon_i2c_driver);
636 return rv;
637}
638
639static void __exit octeon_i2c_exit(void)
640{
641 platform_driver_unregister(&octeon_i2c_driver);
642}
643
644MODULE_AUTHOR("Michael Lawnick <michael.lawnick.ext@nsn.com>");
645MODULE_DESCRIPTION("I2C-Bus adapter for Cavium OCTEON processors");
646MODULE_LICENSE("GPL");
647MODULE_VERSION(DRV_VERSION);
648MODULE_ALIAS("platform:" DRV_NAME);
649
650module_init(octeon_i2c_init);
651module_exit(octeon_i2c_exit);
diff --git a/drivers/ide/au1xxx-ide.c b/drivers/ide/au1xxx-ide.c
index 87cef0c440ad..349a67bf1a36 100644
--- a/drivers/ide/au1xxx-ide.c
+++ b/drivers/ide/au1xxx-ide.c
@@ -56,8 +56,8 @@ static inline void auide_insw(unsigned long port, void *addr, u32 count)
56 chan_tab_t *ctp; 56 chan_tab_t *ctp;
57 au1x_ddma_desc_t *dp; 57 au1x_ddma_desc_t *dp;
58 58
59 if(!put_dest_flags(ahwif->rx_chan, (void*)addr, count << 1, 59 if (!au1xxx_dbdma_put_dest(ahwif->rx_chan, virt_to_phys(addr),
60 DDMA_FLAGS_NOIE)) { 60 count << 1, DDMA_FLAGS_NOIE)) {
61 printk(KERN_ERR "%s failed %d\n", __func__, __LINE__); 61 printk(KERN_ERR "%s failed %d\n", __func__, __LINE__);
62 return; 62 return;
63 } 63 }
@@ -74,8 +74,8 @@ static inline void auide_outsw(unsigned long port, void *addr, u32 count)
74 chan_tab_t *ctp; 74 chan_tab_t *ctp;
75 au1x_ddma_desc_t *dp; 75 au1x_ddma_desc_t *dp;
76 76
77 if(!put_source_flags(ahwif->tx_chan, (void*)addr, 77 if (!au1xxx_dbdma_put_source(ahwif->tx_chan, virt_to_phys(addr),
78 count << 1, DDMA_FLAGS_NOIE)) { 78 count << 1, DDMA_FLAGS_NOIE)) {
79 printk(KERN_ERR "%s failed %d\n", __func__, __LINE__); 79 printk(KERN_ERR "%s failed %d\n", __func__, __LINE__);
80 return; 80 return;
81 } 81 }
@@ -246,17 +246,14 @@ static int auide_build_dmatable(ide_drive_t *drive, struct ide_cmd *cmd)
246 flags = DDMA_FLAGS_NOIE; 246 flags = DDMA_FLAGS_NOIE;
247 247
248 if (iswrite) { 248 if (iswrite) {
249 if(!put_source_flags(ahwif->tx_chan, 249 if (!au1xxx_dbdma_put_source(ahwif->tx_chan,
250 (void*) sg_virt(sg), 250 sg_phys(sg), tc, flags)) {
251 tc, flags)) {
252 printk(KERN_ERR "%s failed %d\n", 251 printk(KERN_ERR "%s failed %d\n",
253 __func__, __LINE__); 252 __func__, __LINE__);
254 } 253 }
255 } else 254 } else {
256 { 255 if (!au1xxx_dbdma_put_dest(ahwif->rx_chan,
257 if(!put_dest_flags(ahwif->rx_chan, 256 sg_phys(sg), tc, flags)) {
258 (void*) sg_virt(sg),
259 tc, flags)) {
260 printk(KERN_ERR "%s failed %d\n", 257 printk(KERN_ERR "%s failed %d\n",
261 __func__, __LINE__); 258 __func__, __LINE__);
262 } 259 }
diff --git a/drivers/mmc/host/au1xmmc.c b/drivers/mmc/host/au1xmmc.c
index d3f55615c099..57b21198828f 100644
--- a/drivers/mmc/host/au1xmmc.c
+++ b/drivers/mmc/host/au1xmmc.c
@@ -650,11 +650,11 @@ static int au1xmmc_prepare_data(struct au1xmmc_host *host,
650 flags = DDMA_FLAGS_IE; 650 flags = DDMA_FLAGS_IE;
651 651
652 if (host->flags & HOST_F_XMIT) { 652 if (host->flags & HOST_F_XMIT) {
653 ret = au1xxx_dbdma_put_source_flags(channel, 653 ret = au1xxx_dbdma_put_source(channel,
654 (void *)sg_virt(sg), len, flags); 654 sg_phys(sg), len, flags);
655 } else { 655 } else {
656 ret = au1xxx_dbdma_put_dest_flags(channel, 656 ret = au1xxx_dbdma_put_dest(channel,
657 (void *)sg_virt(sg), len, flags); 657 sg_phys(sg), len, flags);
658 } 658 }
659 659
660 if (!ret) 660 if (!ret)
@@ -1017,6 +1017,10 @@ static int __devinit au1xmmc_probe(struct platform_device *pdev)
1017 } else 1017 } else
1018 mmc->caps |= MMC_CAP_NEEDS_POLL; 1018 mmc->caps |= MMC_CAP_NEEDS_POLL;
1019 1019
1020 /* platform may not be able to use all advertised caps */
1021 if (host->platdata)
1022 mmc->caps &= ~(host->platdata->mask_host_caps);
1023
1020 tasklet_init(&host->data_task, au1xmmc_tasklet_data, 1024 tasklet_init(&host->data_task, au1xmmc_tasklet_data,
1021 (unsigned long)host); 1025 (unsigned long)host);
1022 1026
diff --git a/drivers/mtd/maps/Kconfig b/drivers/mtd/maps/Kconfig
index 2de0cc823d60..2bb03a8b9ef1 100644
--- a/drivers/mtd/maps/Kconfig
+++ b/drivers/mtd/maps/Kconfig
@@ -251,12 +251,6 @@ config MTD_NETtel
251 help 251 help
252 Support for flash chips on NETtel/SecureEdge/SnapGear boards. 252 Support for flash chips on NETtel/SecureEdge/SnapGear boards.
253 253
254config MTD_ALCHEMY
255 tristate "AMD Alchemy Pb1xxx/Db1xxx/RDK MTD support"
256 depends on SOC_AU1X00 && MTD_PARTITIONS && MTD_CFI
257 help
258 Flash memory access on AMD Alchemy Pb/Db/RDK Reference Boards
259
260config MTD_DILNETPC 254config MTD_DILNETPC
261 tristate "CFI Flash device mapped on DIL/Net PC" 255 tristate "CFI Flash device mapped on DIL/Net PC"
262 depends on X86 && MTD_CONCAT && MTD_PARTITIONS && MTD_CFI_INTELEXT && BROKEN 256 depends on X86 && MTD_CONCAT && MTD_PARTITIONS && MTD_CFI_INTELEXT && BROKEN
diff --git a/drivers/mtd/maps/Makefile b/drivers/mtd/maps/Makefile
index ce315214ff2b..a44919f3f3d2 100644
--- a/drivers/mtd/maps/Makefile
+++ b/drivers/mtd/maps/Makefile
@@ -40,7 +40,6 @@ obj-$(CONFIG_MTD_SCx200_DOCFLASH)+= scx200_docflash.o
40obj-$(CONFIG_MTD_DBOX2) += dbox2-flash.o 40obj-$(CONFIG_MTD_DBOX2) += dbox2-flash.o
41obj-$(CONFIG_MTD_SOLUTIONENGINE)+= solutionengine.o 41obj-$(CONFIG_MTD_SOLUTIONENGINE)+= solutionengine.o
42obj-$(CONFIG_MTD_PCI) += pci.o 42obj-$(CONFIG_MTD_PCI) += pci.o
43obj-$(CONFIG_MTD_ALCHEMY) += alchemy-flash.o
44obj-$(CONFIG_MTD_AUTCPU12) += autcpu12-nvram.o 43obj-$(CONFIG_MTD_AUTCPU12) += autcpu12-nvram.o
45obj-$(CONFIG_MTD_EDB7312) += edb7312.o 44obj-$(CONFIG_MTD_EDB7312) += edb7312.o
46obj-$(CONFIG_MTD_IMPA7) += impa7.o 45obj-$(CONFIG_MTD_IMPA7) += impa7.o
diff --git a/drivers/mtd/maps/alchemy-flash.c b/drivers/mtd/maps/alchemy-flash.c
deleted file mode 100644
index 845ad4f2a542..000000000000
--- a/drivers/mtd/maps/alchemy-flash.c
+++ /dev/null
@@ -1,166 +0,0 @@
1/*
2 * Flash memory access on AMD Alchemy evaluation boards
3 *
4 * (C) 2003, 2004 Pete Popov <ppopov@embeddedalley.com>
5 */
6
7#include <linux/init.h>
8#include <linux/module.h>
9#include <linux/types.h>
10#include <linux/kernel.h>
11
12#include <linux/mtd/mtd.h>
13#include <linux/mtd/map.h>
14#include <linux/mtd/partitions.h>
15
16#include <asm/io.h>
17
18#ifdef CONFIG_MIPS_PB1000
19#define BOARD_MAP_NAME "Pb1000 Flash"
20#define BOARD_FLASH_SIZE 0x00800000 /* 8MB */
21#define BOARD_FLASH_WIDTH 4 /* 32-bits */
22#endif
23
24#ifdef CONFIG_MIPS_PB1500
25#define BOARD_MAP_NAME "Pb1500 Flash"
26#define BOARD_FLASH_SIZE 0x04000000 /* 64MB */
27#define BOARD_FLASH_WIDTH 4 /* 32-bits */
28#endif
29
30#ifdef CONFIG_MIPS_PB1100
31#define BOARD_MAP_NAME "Pb1100 Flash"
32#define BOARD_FLASH_SIZE 0x04000000 /* 64MB */
33#define BOARD_FLASH_WIDTH 4 /* 32-bits */
34#endif
35
36#ifdef CONFIG_MIPS_PB1550
37#define BOARD_MAP_NAME "Pb1550 Flash"
38#define BOARD_FLASH_SIZE 0x08000000 /* 128MB */
39#define BOARD_FLASH_WIDTH 4 /* 32-bits */
40#endif
41
42#ifdef CONFIG_MIPS_PB1200
43#define BOARD_MAP_NAME "Pb1200 Flash"
44#define BOARD_FLASH_SIZE 0x08000000 /* 128MB */
45#define BOARD_FLASH_WIDTH 2 /* 16-bits */
46#endif
47
48#ifdef CONFIG_MIPS_DB1000
49#define BOARD_MAP_NAME "Db1000 Flash"
50#define BOARD_FLASH_SIZE 0x02000000 /* 32MB */
51#define BOARD_FLASH_WIDTH 4 /* 32-bits */
52#endif
53
54#ifdef CONFIG_MIPS_DB1500
55#define BOARD_MAP_NAME "Db1500 Flash"
56#define BOARD_FLASH_SIZE 0x02000000 /* 32MB */
57#define BOARD_FLASH_WIDTH 4 /* 32-bits */
58#endif
59
60#ifdef CONFIG_MIPS_DB1100
61#define BOARD_MAP_NAME "Db1100 Flash"
62#define BOARD_FLASH_SIZE 0x02000000 /* 32MB */
63#define BOARD_FLASH_WIDTH 4 /* 32-bits */
64#endif
65
66#ifdef CONFIG_MIPS_DB1550
67#define BOARD_MAP_NAME "Db1550 Flash"
68#define BOARD_FLASH_SIZE 0x08000000 /* 128MB */
69#define BOARD_FLASH_WIDTH 4 /* 32-bits */
70#endif
71
72#ifdef CONFIG_MIPS_DB1200
73#define BOARD_MAP_NAME "Db1200 Flash"
74#define BOARD_FLASH_SIZE 0x04000000 /* 64MB */
75#define BOARD_FLASH_WIDTH 2 /* 16-bits */
76#endif
77
78#ifdef CONFIG_MIPS_BOSPORUS
79#define BOARD_MAP_NAME "Bosporus Flash"
80#define BOARD_FLASH_SIZE 0x01000000 /* 16MB */
81#define BOARD_FLASH_WIDTH 2 /* 16-bits */
82#endif
83
84#ifdef CONFIG_MIPS_MIRAGE
85#define BOARD_MAP_NAME "Mirage Flash"
86#define BOARD_FLASH_SIZE 0x04000000 /* 64MB */
87#define BOARD_FLASH_WIDTH 4 /* 32-bits */
88#define USE_LOCAL_ACCESSORS /* why? */
89#endif
90
91static struct map_info alchemy_map = {
92 .name = BOARD_MAP_NAME,
93};
94
95static struct mtd_partition alchemy_partitions[] = {
96 {
97 .name = "User FS",
98 .size = BOARD_FLASH_SIZE - 0x00400000,
99 .offset = 0x0000000
100 },{
101 .name = "YAMON",
102 .size = 0x0100000,
103 .offset = MTDPART_OFS_APPEND,
104 .mask_flags = MTD_WRITEABLE
105 },{
106 .name = "raw kernel",
107 .size = (0x300000 - 0x40000), /* last 256KB is yamon env */
108 .offset = MTDPART_OFS_APPEND,
109 }
110};
111
112static struct mtd_info *mymtd;
113
114static int __init alchemy_mtd_init(void)
115{
116 struct mtd_partition *parts;
117 int nb_parts = 0;
118 unsigned long window_addr;
119 unsigned long window_size;
120
121 /* Default flash buswidth */
122 alchemy_map.bankwidth = BOARD_FLASH_WIDTH;
123
124 window_addr = 0x20000000 - BOARD_FLASH_SIZE;
125 window_size = BOARD_FLASH_SIZE;
126
127 /*
128 * Static partition definition selection
129 */
130 parts = alchemy_partitions;
131 nb_parts = ARRAY_SIZE(alchemy_partitions);
132 alchemy_map.size = window_size;
133
134 /*
135 * Now let's probe for the actual flash. Do it here since
136 * specific machine settings might have been set above.
137 */
138 printk(KERN_NOTICE BOARD_MAP_NAME ": probing %d-bit flash bus\n",
139 alchemy_map.bankwidth*8);
140 alchemy_map.virt = ioremap(window_addr, window_size);
141 mymtd = do_map_probe("cfi_probe", &alchemy_map);
142 if (!mymtd) {
143 iounmap(alchemy_map.virt);
144 return -ENXIO;
145 }
146 mymtd->owner = THIS_MODULE;
147
148 add_mtd_partitions(mymtd, parts, nb_parts);
149 return 0;
150}
151
152static void __exit alchemy_mtd_cleanup(void)
153{
154 if (mymtd) {
155 del_mtd_partitions(mymtd);
156 map_destroy(mymtd);
157 iounmap(alchemy_map.virt);
158 }
159}
160
161module_init(alchemy_mtd_init);
162module_exit(alchemy_mtd_cleanup);
163
164MODULE_AUTHOR("Embedded Alley Solutions, Inc");
165MODULE_DESCRIPTION(BOARD_MAP_NAME " MTD driver");
166MODULE_LICENSE("GPL");
diff --git a/drivers/mtd/nand/au1550nd.c b/drivers/mtd/nand/au1550nd.c
index 92c334ff4508..43d46e424040 100644
--- a/drivers/mtd/nand/au1550nd.c
+++ b/drivers/mtd/nand/au1550nd.c
@@ -19,6 +19,7 @@
19#include <asm/io.h> 19#include <asm/io.h>
20 20
21#include <asm/mach-au1x00/au1xxx.h> 21#include <asm/mach-au1x00/au1xxx.h>
22#include <asm/mach-db1x00/bcsr.h>
22 23
23/* 24/*
24 * MTD structure for NAND controller 25 * MTD structure for NAND controller
@@ -475,7 +476,8 @@ static int __init au1xxx_nand_init(void)
475 /* set gpio206 high */ 476 /* set gpio206 high */
476 au_writel(au_readl(GPIO2_DIR) & ~(1 << 6), GPIO2_DIR); 477 au_writel(au_readl(GPIO2_DIR) & ~(1 << 6), GPIO2_DIR);
477 478
478 boot_swapboot = (au_readl(MEM_STSTAT) & (0x7 << 1)) | ((bcsr->status >> 6) & 0x1); 479 boot_swapboot = (au_readl(MEM_STSTAT) & (0x7 << 1)) | ((bcsr_read(BCSR_STATUS) >> 6) & 0x1);
480
479 switch (boot_swapboot) { 481 switch (boot_swapboot) {
480 case 0: 482 case 0:
481 case 2: 483 case 2:
diff --git a/drivers/net/au1000_eth.c b/drivers/net/au1000_eth.c
index 6bac04603a88..6e5a68ecde09 100644
--- a/drivers/net/au1000_eth.c
+++ b/drivers/net/au1000_eth.c
@@ -55,6 +55,7 @@
55#include <linux/delay.h> 55#include <linux/delay.h>
56#include <linux/crc32.h> 56#include <linux/crc32.h>
57#include <linux/phy.h> 57#include <linux/phy.h>
58#include <linux/platform_device.h>
58 59
59#include <asm/cpu.h> 60#include <asm/cpu.h>
60#include <asm/mipsregs.h> 61#include <asm/mipsregs.h>
@@ -63,6 +64,7 @@
63#include <asm/processor.h> 64#include <asm/processor.h>
64 65
65#include <au1000.h> 66#include <au1000.h>
67#include <au1xxx_eth.h>
66#include <prom.h> 68#include <prom.h>
67 69
68#include "au1000_eth.h" 70#include "au1000_eth.h"
@@ -112,15 +114,15 @@ struct au1000_private *au_macs[NUM_ETH_INTERFACES];
112 * 114 *
113 * PHY detection algorithm 115 * PHY detection algorithm
114 * 116 *
115 * If AU1XXX_PHY_STATIC_CONFIG is undefined, the PHY setup is 117 * If phy_static_config is undefined, the PHY setup is
116 * autodetected: 118 * autodetected:
117 * 119 *
118 * mii_probe() first searches the current MAC's MII bus for a PHY, 120 * mii_probe() first searches the current MAC's MII bus for a PHY,
119 * selecting the first (or last, if AU1XXX_PHY_SEARCH_HIGHEST_ADDR is 121 * selecting the first (or last, if phy_search_highest_addr is
120 * defined) PHY address not already claimed by another netdev. 122 * defined) PHY address not already claimed by another netdev.
121 * 123 *
122 * If nothing was found that way when searching for the 2nd ethernet 124 * If nothing was found that way when searching for the 2nd ethernet
123 * controller's PHY and AU1XXX_PHY1_SEARCH_ON_MAC0 is defined, then 125 * controller's PHY and phy1_search_mac0 is defined, then
124 * the first MII bus is searched as well for an unclaimed PHY; this is 126 * the first MII bus is searched as well for an unclaimed PHY; this is
125 * needed in case of a dual-PHY accessible only through the MAC0's MII 127 * needed in case of a dual-PHY accessible only through the MAC0's MII
126 * bus. 128 * bus.
@@ -129,9 +131,7 @@ struct au1000_private *au_macs[NUM_ETH_INTERFACES];
129 * controller is not registered to the network subsystem. 131 * controller is not registered to the network subsystem.
130 */ 132 */
131 133
132/* autodetection defaults */ 134/* autodetection defaults: phy1_search_mac0 */
133#undef AU1XXX_PHY_SEARCH_HIGHEST_ADDR
134#define AU1XXX_PHY1_SEARCH_ON_MAC0
135 135
136/* static PHY setup 136/* static PHY setup
137 * 137 *
@@ -148,29 +148,6 @@ struct au1000_private *au_macs[NUM_ETH_INTERFACES];
148 * specific irq-map 148 * specific irq-map
149 */ 149 */
150 150
151#if defined(CONFIG_MIPS_BOSPORUS)
152/*
153 * Micrel/Kendin 5 port switch attached to MAC0,
154 * MAC0 is associated with PHY address 5 (== WAN port)
155 * MAC1 is not associated with any PHY, since it's connected directly
156 * to the switch.
157 * no interrupts are used
158 */
159# define AU1XXX_PHY_STATIC_CONFIG
160
161# define AU1XXX_PHY0_ADDR 5
162# define AU1XXX_PHY0_BUSID 0
163# undef AU1XXX_PHY0_IRQ
164
165# undef AU1XXX_PHY1_ADDR
166# undef AU1XXX_PHY1_BUSID
167# undef AU1XXX_PHY1_IRQ
168#endif
169
170#if defined(AU1XXX_PHY0_BUSID) && (AU1XXX_PHY0_BUSID > 0)
171# error MAC0-associated PHY attached 2nd MACs MII bus not supported yet
172#endif
173
174static void enable_mac(struct net_device *dev, int force_reset) 151static void enable_mac(struct net_device *dev, int force_reset)
175{ 152{
176 unsigned long flags; 153 unsigned long flags;
@@ -390,67 +367,55 @@ static int mii_probe (struct net_device *dev)
390 struct au1000_private *const aup = netdev_priv(dev); 367 struct au1000_private *const aup = netdev_priv(dev);
391 struct phy_device *phydev = NULL; 368 struct phy_device *phydev = NULL;
392 369
393#if defined(AU1XXX_PHY_STATIC_CONFIG) 370 if (aup->phy_static_config) {
394 BUG_ON(aup->mac_id < 0 || aup->mac_id > 1); 371 BUG_ON(aup->mac_id < 0 || aup->mac_id > 1);
395 372
396 if(aup->mac_id == 0) { /* get PHY0 */ 373 if (aup->phy_addr)
397# if defined(AU1XXX_PHY0_ADDR) 374 phydev = aup->mii_bus->phy_map[aup->phy_addr];
398 phydev = au_macs[AU1XXX_PHY0_BUSID]->mii_bus->phy_map[AU1XXX_PHY0_ADDR]; 375 else
399# else 376 printk (KERN_INFO DRV_NAME ":%s: using PHY-less setup\n",
400 printk (KERN_INFO DRV_NAME ":%s: using PHY-less setup\n", 377 dev->name);
401 dev->name);
402 return 0;
403# endif /* defined(AU1XXX_PHY0_ADDR) */
404 } else if (aup->mac_id == 1) { /* get PHY1 */
405# if defined(AU1XXX_PHY1_ADDR)
406 phydev = au_macs[AU1XXX_PHY1_BUSID]->mii_bus->phy_map[AU1XXX_PHY1_ADDR];
407# else
408 printk (KERN_INFO DRV_NAME ":%s: using PHY-less setup\n",
409 dev->name);
410 return 0; 378 return 0;
411# endif /* defined(AU1XXX_PHY1_ADDR) */ 379 } else {
412 } 380 int phy_addr;
413 381
414#else /* defined(AU1XXX_PHY_STATIC_CONFIG) */ 382 /* find the first (lowest address) PHY on the current MAC's MII bus */
415 int phy_addr; 383 for (phy_addr = 0; phy_addr < PHY_MAX_ADDR; phy_addr++)
416 384 if (aup->mii_bus->phy_map[phy_addr]) {
417 /* find the first (lowest address) PHY on the current MAC's MII bus */ 385 phydev = aup->mii_bus->phy_map[phy_addr];
418 for (phy_addr = 0; phy_addr < PHY_MAX_ADDR; phy_addr++) 386 if (!aup->phy_search_highest_addr)
419 if (aup->mii_bus->phy_map[phy_addr]) { 387 break; /* break out with first one found */
420 phydev = aup->mii_bus->phy_map[phy_addr]; 388 }
421# if !defined(AU1XXX_PHY_SEARCH_HIGHEST_ADDR)
422 break; /* break out with first one found */
423# endif
424 }
425 389
426# if defined(AU1XXX_PHY1_SEARCH_ON_MAC0) 390 if (aup->phy1_search_mac0) {
427 /* try harder to find a PHY */ 391 /* try harder to find a PHY */
428 if (!phydev && (aup->mac_id == 1)) { 392 if (!phydev && (aup->mac_id == 1)) {
429 /* no PHY found, maybe we have a dual PHY? */ 393 /* no PHY found, maybe we have a dual PHY? */
430 printk (KERN_INFO DRV_NAME ": no PHY found on MAC1, " 394 printk (KERN_INFO DRV_NAME ": no PHY found on MAC1, "
431 "let's see if it's attached to MAC0...\n"); 395 "let's see if it's attached to MAC0...\n");
432 396
433 BUG_ON(!au_macs[0]); 397 /* find the first (lowest address) non-attached PHY on
398 * the MAC0 MII bus */
399 for (phy_addr = 0; phy_addr < PHY_MAX_ADDR; phy_addr++) {
400 struct phy_device *const tmp_phydev =
401 aup->mii_bus->phy_map[phy_addr];
434 402
435 /* find the first (lowest address) non-attached PHY on 403 if (aup->mac_id == 1)
436 * the MAC0 MII bus */ 404 break;
437 for (phy_addr = 0; phy_addr < PHY_MAX_ADDR; phy_addr++) {
438 struct phy_device *const tmp_phydev =
439 au_macs[0]->mii_bus->phy_map[phy_addr];
440 405
441 if (!tmp_phydev) 406 if (!tmp_phydev)
442 continue; /* no PHY here... */ 407 continue; /* no PHY here... */
443 408
444 if (tmp_phydev->attached_dev) 409 if (tmp_phydev->attached_dev)
445 continue; /* already claimed by MAC0 */ 410 continue; /* already claimed by MAC0 */
446 411
447 phydev = tmp_phydev; 412 phydev = tmp_phydev;
448 break; /* found it */ 413 break; /* found it */
414 }
415 }
449 } 416 }
450 } 417 }
451# endif /* defined(AU1XXX_PHY1_SEARCH_OTHER_BUS) */
452 418
453#endif /* defined(AU1XXX_PHY_STATIC_CONFIG) */
454 if (!phydev) { 419 if (!phydev) {
455 printk (KERN_ERR DRV_NAME ":%s: no PHY found\n", dev->name); 420 printk (KERN_ERR DRV_NAME ":%s: no PHY found\n", dev->name);
456 return -1; 421 return -1;
@@ -578,31 +543,6 @@ setup_hw_rings(struct au1000_private *aup, u32 rx_base, u32 tx_base)
578 } 543 }
579} 544}
580 545
581static struct {
582 u32 base_addr;
583 u32 macen_addr;
584 int irq;
585 struct net_device *dev;
586} iflist[2] = {
587#ifdef CONFIG_SOC_AU1000
588 {AU1000_ETH0_BASE, AU1000_MAC0_ENABLE, AU1000_MAC0_DMA_INT},
589 {AU1000_ETH1_BASE, AU1000_MAC1_ENABLE, AU1000_MAC1_DMA_INT}
590#endif
591#ifdef CONFIG_SOC_AU1100
592 {AU1100_ETH0_BASE, AU1100_MAC0_ENABLE, AU1100_MAC0_DMA_INT}
593#endif
594#ifdef CONFIG_SOC_AU1500
595 {AU1500_ETH0_BASE, AU1500_MAC0_ENABLE, AU1500_MAC0_DMA_INT},
596 {AU1500_ETH1_BASE, AU1500_MAC1_ENABLE, AU1500_MAC1_DMA_INT}
597#endif
598#ifdef CONFIG_SOC_AU1550
599 {AU1550_ETH0_BASE, AU1550_MAC0_ENABLE, AU1550_MAC0_DMA_INT},
600 {AU1550_ETH1_BASE, AU1550_MAC1_ENABLE, AU1550_MAC1_DMA_INT}
601#endif
602};
603
604static int num_ifs;
605
606/* 546/*
607 * ethtool operations 547 * ethtool operations
608 */ 548 */
@@ -711,7 +651,6 @@ static int au1000_init(struct net_device *dev)
711 651
712static inline void update_rx_stats(struct net_device *dev, u32 status) 652static inline void update_rx_stats(struct net_device *dev, u32 status)
713{ 653{
714 struct au1000_private *aup = netdev_priv(dev);
715 struct net_device_stats *ps = &dev->stats; 654 struct net_device_stats *ps = &dev->stats;
716 655
717 ps->rx_packets++; 656 ps->rx_packets++;
@@ -969,7 +908,7 @@ static netdev_tx_t au1000_tx(struct sk_buff *skb, struct net_device *dev)
969 } 908 }
970 909
971 pDB = aup->tx_db_inuse[aup->tx_head]; 910 pDB = aup->tx_db_inuse[aup->tx_head];
972 skb_copy_from_linear_data(skb, pDB->vaddr, skb->len); 911 skb_copy_from_linear_data(skb, (void *)pDB->vaddr, skb->len);
973 if (skb->len < ETH_ZLEN) { 912 if (skb->len < ETH_ZLEN) {
974 for (i=skb->len; i<ETH_ZLEN; i++) { 913 for (i=skb->len; i<ETH_ZLEN; i++) {
975 ((char *)pDB->vaddr)[i] = 0; 914 ((char *)pDB->vaddr)[i] = 0;
@@ -1058,53 +997,59 @@ static const struct net_device_ops au1000_netdev_ops = {
1058 .ndo_change_mtu = eth_change_mtu, 997 .ndo_change_mtu = eth_change_mtu,
1059}; 998};
1060 999
1061static struct net_device * au1000_probe(int port_num) 1000static int __devinit au1000_probe(struct platform_device *pdev)
1062{ 1001{
1063 static unsigned version_printed = 0; 1002 static unsigned version_printed = 0;
1064 struct au1000_private *aup = NULL; 1003 struct au1000_private *aup = NULL;
1004 struct au1000_eth_platform_data *pd;
1065 struct net_device *dev = NULL; 1005 struct net_device *dev = NULL;
1066 db_dest_t *pDB, *pDBfree; 1006 db_dest_t *pDB, *pDBfree;
1007 int irq, i, err = 0;
1008 struct resource *base, *macen;
1067 char ethaddr[6]; 1009 char ethaddr[6];
1068 int irq, i, err;
1069 u32 base, macen;
1070 1010
1071 if (port_num >= NUM_ETH_INTERFACES) 1011 base = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1072 return NULL; 1012 if (!base) {
1013 printk(KERN_ERR DRV_NAME ": failed to retrieve base register\n");
1014 err = -ENODEV;
1015 goto out;
1016 }
1073 1017
1074 base = CPHYSADDR(iflist[port_num].base_addr ); 1018 macen = platform_get_resource(pdev, IORESOURCE_MEM, 1);
1075 macen = CPHYSADDR(iflist[port_num].macen_addr); 1019 if (!macen) {
1076 irq = iflist[port_num].irq; 1020 printk(KERN_ERR DRV_NAME ": failed to retrieve MAC Enable register\n");
1021 err = -ENODEV;
1022 goto out;
1023 }
1077 1024
1078 if (!request_mem_region( base, MAC_IOSIZE, "Au1x00 ENET") || 1025 irq = platform_get_irq(pdev, 0);
1079 !request_mem_region(macen, 4, "Au1x00 ENET")) 1026 if (irq < 0) {
1080 return NULL; 1027 printk(KERN_ERR DRV_NAME ": failed to retrieve IRQ\n");
1028 err = -ENODEV;
1029 goto out;
1030 }
1081 1031
1082 if (version_printed++ == 0) 1032 if (!request_mem_region(base->start, resource_size(base), pdev->name)) {
1083 printk("%s version %s %s\n", DRV_NAME, DRV_VERSION, DRV_AUTHOR); 1033 printk(KERN_ERR DRV_NAME ": failed to request memory region for base registers\n");
1034 err = -ENXIO;
1035 goto out;
1036 }
1037
1038 if (!request_mem_region(macen->start, resource_size(macen), pdev->name)) {
1039 printk(KERN_ERR DRV_NAME ": failed to request memory region for MAC enable register\n");
1040 err = -ENXIO;
1041 goto err_request;
1042 }
1084 1043
1085 dev = alloc_etherdev(sizeof(struct au1000_private)); 1044 dev = alloc_etherdev(sizeof(struct au1000_private));
1086 if (!dev) { 1045 if (!dev) {
1087 printk(KERN_ERR "%s: alloc_etherdev failed\n", DRV_NAME); 1046 printk(KERN_ERR "%s: alloc_etherdev failed\n", DRV_NAME);
1088 return NULL; 1047 err = -ENOMEM;
1048 goto err_alloc;
1089 } 1049 }
1090 1050
1091 dev->base_addr = base; 1051 SET_NETDEV_DEV(dev, &pdev->dev);
1092 dev->irq = irq; 1052 platform_set_drvdata(pdev, dev);
1093 dev->netdev_ops = &au1000_netdev_ops;
1094 SET_ETHTOOL_OPS(dev, &au1000_ethtool_ops);
1095 dev->watchdog_timeo = ETH_TX_TIMEOUT;
1096
1097 err = register_netdev(dev);
1098 if (err != 0) {
1099 printk(KERN_ERR "%s: Cannot register net device, error %d\n",
1100 DRV_NAME, err);
1101 free_netdev(dev);
1102 return NULL;
1103 }
1104
1105 printk("%s: Au1xx0 Ethernet found at 0x%x, irq %d\n",
1106 dev->name, base, irq);
1107
1108 aup = netdev_priv(dev); 1053 aup = netdev_priv(dev);
1109 1054
1110 spin_lock_init(&aup->lock); 1055 spin_lock_init(&aup->lock);
@@ -1115,21 +1060,29 @@ static struct net_device * au1000_probe(int port_num)
1115 (NUM_TX_BUFFS + NUM_RX_BUFFS), 1060 (NUM_TX_BUFFS + NUM_RX_BUFFS),
1116 &aup->dma_addr, 0); 1061 &aup->dma_addr, 0);
1117 if (!aup->vaddr) { 1062 if (!aup->vaddr) {
1118 free_netdev(dev); 1063 printk(KERN_ERR DRV_NAME ": failed to allocate data buffers\n");
1119 release_mem_region( base, MAC_IOSIZE); 1064 err = -ENOMEM;
1120 release_mem_region(macen, 4); 1065 goto err_vaddr;
1121 return NULL;
1122 } 1066 }
1123 1067
1124 /* aup->mac is the base address of the MAC's registers */ 1068 /* aup->mac is the base address of the MAC's registers */
1125 aup->mac = (volatile mac_reg_t *)iflist[port_num].base_addr; 1069 aup->mac = (volatile mac_reg_t *)ioremap_nocache(base->start, resource_size(base));
1070 if (!aup->mac) {
1071 printk(KERN_ERR DRV_NAME ": failed to ioremap MAC registers\n");
1072 err = -ENXIO;
1073 goto err_remap1;
1074 }
1126 1075
1127 /* Setup some variables for quick register address access */ 1076 /* Setup some variables for quick register address access */
1128 aup->enable = (volatile u32 *)iflist[port_num].macen_addr; 1077 aup->enable = (volatile u32 *)ioremap_nocache(macen->start, resource_size(macen));
1129 aup->mac_id = port_num; 1078 if (!aup->enable) {
1130 au_macs[port_num] = aup; 1079 printk(KERN_ERR DRV_NAME ": failed to ioremap MAC enable register\n");
1080 err = -ENXIO;
1081 goto err_remap2;
1082 }
1083 aup->mac_id = pdev->id;
1131 1084
1132 if (port_num == 0) { 1085 if (pdev->id == 0) {
1133 if (prom_get_ethernet_addr(ethaddr) == 0) 1086 if (prom_get_ethernet_addr(ethaddr) == 0)
1134 memcpy(au1000_mac_addr, ethaddr, sizeof(au1000_mac_addr)); 1087 memcpy(au1000_mac_addr, ethaddr, sizeof(au1000_mac_addr));
1135 else { 1088 else {
@@ -1139,7 +1092,7 @@ static struct net_device * au1000_probe(int port_num)
1139 } 1092 }
1140 1093
1141 setup_hw_rings(aup, MAC0_RX_DMA_ADDR, MAC0_TX_DMA_ADDR); 1094 setup_hw_rings(aup, MAC0_RX_DMA_ADDR, MAC0_TX_DMA_ADDR);
1142 } else if (port_num == 1) 1095 } else if (pdev->id == 1)
1143 setup_hw_rings(aup, MAC1_RX_DMA_ADDR, MAC1_TX_DMA_ADDR); 1096 setup_hw_rings(aup, MAC1_RX_DMA_ADDR, MAC1_TX_DMA_ADDR);
1144 1097
1145 /* 1098 /*
@@ -1147,14 +1100,37 @@ static struct net_device * au1000_probe(int port_num)
1147 * to match those that are printed on their stickers 1100 * to match those that are printed on their stickers
1148 */ 1101 */
1149 memcpy(dev->dev_addr, au1000_mac_addr, sizeof(au1000_mac_addr)); 1102 memcpy(dev->dev_addr, au1000_mac_addr, sizeof(au1000_mac_addr));
1150 dev->dev_addr[5] += port_num; 1103 dev->dev_addr[5] += pdev->id;
1151 1104
1152 *aup->enable = 0; 1105 *aup->enable = 0;
1153 aup->mac_enabled = 0; 1106 aup->mac_enabled = 0;
1154 1107
1108 pd = pdev->dev.platform_data;
1109 if (!pd) {
1110 printk(KERN_INFO DRV_NAME ": no platform_data passed, PHY search on MAC0\n");
1111 aup->phy1_search_mac0 = 1;
1112 } else {
1113 aup->phy_static_config = pd->phy_static_config;
1114 aup->phy_search_highest_addr = pd->phy_search_highest_addr;
1115 aup->phy1_search_mac0 = pd->phy1_search_mac0;
1116 aup->phy_addr = pd->phy_addr;
1117 aup->phy_busid = pd->phy_busid;
1118 aup->phy_irq = pd->phy_irq;
1119 }
1120
1121 if (aup->phy_busid && aup->phy_busid > 0) {
1122 printk(KERN_ERR DRV_NAME ": MAC0-associated PHY attached 2nd MACs MII"
1123 "bus not supported yet\n");
1124 err = -ENODEV;
1125 goto err_mdiobus_alloc;
1126 }
1127
1155 aup->mii_bus = mdiobus_alloc(); 1128 aup->mii_bus = mdiobus_alloc();
1156 if (aup->mii_bus == NULL) 1129 if (aup->mii_bus == NULL) {
1157 goto err_out; 1130 printk(KERN_ERR DRV_NAME ": failed to allocate mdiobus structure\n");
1131 err = -ENOMEM;
1132 goto err_mdiobus_alloc;
1133 }
1158 1134
1159 aup->mii_bus->priv = dev; 1135 aup->mii_bus->priv = dev;
1160 aup->mii_bus->read = au1000_mdiobus_read; 1136 aup->mii_bus->read = au1000_mdiobus_read;
@@ -1168,23 +1144,19 @@ static struct net_device * au1000_probe(int port_num)
1168 1144
1169 for(i = 0; i < PHY_MAX_ADDR; ++i) 1145 for(i = 0; i < PHY_MAX_ADDR; ++i)
1170 aup->mii_bus->irq[i] = PHY_POLL; 1146 aup->mii_bus->irq[i] = PHY_POLL;
1171
1172 /* if known, set corresponding PHY IRQs */ 1147 /* if known, set corresponding PHY IRQs */
1173#if defined(AU1XXX_PHY_STATIC_CONFIG) 1148 if (aup->phy_static_config)
1174# if defined(AU1XXX_PHY0_IRQ) 1149 if (aup->phy_irq && aup->phy_busid == aup->mac_id)
1175 if (AU1XXX_PHY0_BUSID == aup->mac_id) 1150 aup->mii_bus->irq[aup->phy_addr] = aup->phy_irq;
1176 aup->mii_bus->irq[AU1XXX_PHY0_ADDR] = AU1XXX_PHY0_IRQ; 1151
1177# endif 1152 err = mdiobus_register(aup->mii_bus);
1178# if defined(AU1XXX_PHY1_IRQ) 1153 if (err) {
1179 if (AU1XXX_PHY1_BUSID == aup->mac_id) 1154 printk(KERN_ERR DRV_NAME " failed to register MDIO bus\n");
1180 aup->mii_bus->irq[AU1XXX_PHY1_ADDR] = AU1XXX_PHY1_IRQ; 1155 goto err_mdiobus_reg;
1181# endif 1156 }
1182#endif
1183 mdiobus_register(aup->mii_bus);
1184 1157
1185 if (mii_probe(dev) != 0) { 1158 if (mii_probe(dev) != 0)
1186 goto err_out; 1159 goto err_out;
1187 }
1188 1160
1189 pDBfree = NULL; 1161 pDBfree = NULL;
1190 /* setup the data buffer descriptors and attach a buffer to each one */ 1162 /* setup the data buffer descriptors and attach a buffer to each one */
@@ -1216,19 +1188,35 @@ static struct net_device * au1000_probe(int port_num)
1216 aup->tx_db_inuse[i] = pDB; 1188 aup->tx_db_inuse[i] = pDB;
1217 } 1189 }
1218 1190
1191 dev->base_addr = base->start;
1192 dev->irq = irq;
1193 dev->netdev_ops = &au1000_netdev_ops;
1194 SET_ETHTOOL_OPS(dev, &au1000_ethtool_ops);
1195 dev->watchdog_timeo = ETH_TX_TIMEOUT;
1196
1219 /* 1197 /*
1220 * The boot code uses the ethernet controller, so reset it to start 1198 * The boot code uses the ethernet controller, so reset it to start
1221 * fresh. au1000_init() expects that the device is in reset state. 1199 * fresh. au1000_init() expects that the device is in reset state.
1222 */ 1200 */
1223 reset_mac(dev); 1201 reset_mac(dev);
1224 1202
1225 return dev; 1203 err = register_netdev(dev);
1204 if (err) {
1205 printk(KERN_ERR DRV_NAME "%s: Cannot register net device, aborting.\n",
1206 dev->name);
1207 goto err_out;
1208 }
1209
1210 printk("%s: Au1xx0 Ethernet found at 0x%lx, irq %d\n",
1211 dev->name, (unsigned long)base->start, irq);
1212 if (version_printed++ == 0)
1213 printk("%s version %s %s\n", DRV_NAME, DRV_VERSION, DRV_AUTHOR);
1214
1215 return 0;
1226 1216
1227err_out: 1217err_out:
1228 if (aup->mii_bus != NULL) { 1218 if (aup->mii_bus != NULL)
1229 mdiobus_unregister(aup->mii_bus); 1219 mdiobus_unregister(aup->mii_bus);
1230 mdiobus_free(aup->mii_bus);
1231 }
1232 1220
1233 /* here we should have a valid dev plus aup-> register addresses 1221 /* here we should have a valid dev plus aup-> register addresses
1234 * so we can reset the mac properly.*/ 1222 * so we can reset the mac properly.*/
@@ -1242,67 +1230,84 @@ err_out:
1242 if (aup->tx_db_inuse[i]) 1230 if (aup->tx_db_inuse[i])
1243 ReleaseDB(aup, aup->tx_db_inuse[i]); 1231 ReleaseDB(aup, aup->tx_db_inuse[i]);
1244 } 1232 }
1233err_mdiobus_reg:
1234 mdiobus_free(aup->mii_bus);
1235err_mdiobus_alloc:
1236 iounmap(aup->enable);
1237err_remap2:
1238 iounmap(aup->mac);
1239err_remap1:
1245 dma_free_noncoherent(NULL, MAX_BUF_SIZE * (NUM_TX_BUFFS + NUM_RX_BUFFS), 1240 dma_free_noncoherent(NULL, MAX_BUF_SIZE * (NUM_TX_BUFFS + NUM_RX_BUFFS),
1246 (void *)aup->vaddr, aup->dma_addr); 1241 (void *)aup->vaddr, aup->dma_addr);
1247 unregister_netdev(dev); 1242err_vaddr:
1248 free_netdev(dev); 1243 free_netdev(dev);
1249 release_mem_region( base, MAC_IOSIZE); 1244err_alloc:
1250 release_mem_region(macen, 4); 1245 release_mem_region(macen->start, resource_size(macen));
1251 return NULL; 1246err_request:
1247 release_mem_region(base->start, resource_size(base));
1248out:
1249 return err;
1252} 1250}
1253 1251
1254/* 1252static int __devexit au1000_remove(struct platform_device *pdev)
1255 * Setup the base address and interrupt of the Au1xxx ethernet macs
1256 * based on cpu type and whether the interface is enabled in sys_pinfunc
1257 * register. The last interface is enabled if SYS_PF_NI2 (bit 4) is 0.
1258 */
1259static int __init au1000_init_module(void)
1260{ 1253{
1261 int ni = (int)((au_readl(SYS_PINFUNC) & (u32)(SYS_PF_NI2)) >> 4); 1254 struct net_device *dev = platform_get_drvdata(pdev);
1262 struct net_device *dev; 1255 struct au1000_private *aup = netdev_priv(dev);
1263 int i, found_one = 0; 1256 int i;
1257 struct resource *base, *macen;
1264 1258
1265 num_ifs = NUM_ETH_INTERFACES - ni; 1259 platform_set_drvdata(pdev, NULL);
1260
1261 unregister_netdev(dev);
1262 mdiobus_unregister(aup->mii_bus);
1263 mdiobus_free(aup->mii_bus);
1264
1265 for (i = 0; i < NUM_RX_DMA; i++)
1266 if (aup->rx_db_inuse[i])
1267 ReleaseDB(aup, aup->rx_db_inuse[i]);
1268
1269 for (i = 0; i < NUM_TX_DMA; i++)
1270 if (aup->tx_db_inuse[i])
1271 ReleaseDB(aup, aup->tx_db_inuse[i]);
1272
1273 dma_free_noncoherent(NULL, MAX_BUF_SIZE *
1274 (NUM_TX_BUFFS + NUM_RX_BUFFS),
1275 (void *)aup->vaddr, aup->dma_addr);
1276
1277 iounmap(aup->mac);
1278 iounmap(aup->enable);
1279
1280 base = platform_get_resource(pdev, IORESOURCE_MEM, 0);
1281 release_mem_region(base->start, resource_size(base));
1282
1283 macen = platform_get_resource(pdev, IORESOURCE_MEM, 1);
1284 release_mem_region(macen->start, resource_size(macen));
1285
1286 free_netdev(dev);
1266 1287
1267 for(i = 0; i < num_ifs; i++) {
1268 dev = au1000_probe(i);
1269 iflist[i].dev = dev;
1270 if (dev)
1271 found_one++;
1272 }
1273 if (!found_one)
1274 return -ENODEV;
1275 return 0; 1288 return 0;
1276} 1289}
1277 1290
1278static void __exit au1000_cleanup_module(void) 1291static struct platform_driver au1000_eth_driver = {
1292 .probe = au1000_probe,
1293 .remove = __devexit_p(au1000_remove),
1294 .driver = {
1295 .name = "au1000-eth",
1296 .owner = THIS_MODULE,
1297 },
1298};
1299MODULE_ALIAS("platform:au1000-eth");
1300
1301
1302static int __init au1000_init_module(void)
1303{
1304 return platform_driver_register(&au1000_eth_driver);
1305}
1306
1307static void __exit au1000_exit_module(void)
1279{ 1308{
1280 int i, j; 1309 platform_driver_unregister(&au1000_eth_driver);
1281 struct net_device *dev;
1282 struct au1000_private *aup;
1283
1284 for (i = 0; i < num_ifs; i++) {
1285 dev = iflist[i].dev;
1286 if (dev) {
1287 aup = netdev_priv(dev);
1288 unregister_netdev(dev);
1289 mdiobus_unregister(aup->mii_bus);
1290 mdiobus_free(aup->mii_bus);
1291 for (j = 0; j < NUM_RX_DMA; j++)
1292 if (aup->rx_db_inuse[j])
1293 ReleaseDB(aup, aup->rx_db_inuse[j]);
1294 for (j = 0; j < NUM_TX_DMA; j++)
1295 if (aup->tx_db_inuse[j])
1296 ReleaseDB(aup, aup->tx_db_inuse[j]);
1297 dma_free_noncoherent(NULL, MAX_BUF_SIZE *
1298 (NUM_TX_BUFFS + NUM_RX_BUFFS),
1299 (void *)aup->vaddr, aup->dma_addr);
1300 release_mem_region(dev->base_addr, MAC_IOSIZE);
1301 release_mem_region(CPHYSADDR(iflist[i].macen_addr), 4);
1302 free_netdev(dev);
1303 }
1304 }
1305} 1310}
1306 1311
1307module_init(au1000_init_module); 1312module_init(au1000_init_module);
1308module_exit(au1000_cleanup_module); 1313module_exit(au1000_exit_module);
diff --git a/drivers/net/au1000_eth.h b/drivers/net/au1000_eth.h
index 824ecd5ff3a8..f9d29a29b8fd 100644
--- a/drivers/net/au1000_eth.h
+++ b/drivers/net/au1000_eth.h
@@ -108,6 +108,15 @@ struct au1000_private {
108 struct phy_device *phy_dev; 108 struct phy_device *phy_dev;
109 struct mii_bus *mii_bus; 109 struct mii_bus *mii_bus;
110 110
111 /* PHY configuration */
112 int phy_static_config;
113 int phy_search_highest_addr;
114 int phy1_search_mac0;
115
116 int phy_addr;
117 int phy_busid;
118 int phy_irq;
119
111 /* These variables are just for quick access to certain regs addresses. */ 120 /* These variables are just for quick access to certain regs addresses. */
112 volatile mac_reg_t *mac; /* mac registers */ 121 volatile mac_reg_t *mac; /* mac registers */
113 volatile u32 *enable; /* address of MAC Enable Register */ 122 volatile u32 *enable; /* address of MAC Enable Register */
diff --git a/drivers/net/cpmac.c b/drivers/net/cpmac.c
index 8d0be26f94e3..bf2072e54200 100644
--- a/drivers/net/cpmac.c
+++ b/drivers/net/cpmac.c
@@ -36,6 +36,7 @@
36#include <linux/phy_fixed.h> 36#include <linux/phy_fixed.h>
37#include <linux/platform_device.h> 37#include <linux/platform_device.h>
38#include <linux/dma-mapping.h> 38#include <linux/dma-mapping.h>
39#include <linux/clk.h>
39#include <asm/gpio.h> 40#include <asm/gpio.h>
40#include <asm/atomic.h> 41#include <asm/atomic.h>
41 42
@@ -294,9 +295,16 @@ static int cpmac_mdio_write(struct mii_bus *bus, int phy_id,
294 295
295static int cpmac_mdio_reset(struct mii_bus *bus) 296static int cpmac_mdio_reset(struct mii_bus *bus)
296{ 297{
298 struct clk *cpmac_clk;
299
300 cpmac_clk = clk_get(&bus->dev, "cpmac");
301 if (IS_ERR(cpmac_clk)) {
302 printk(KERN_ERR "unable to get cpmac clock\n");
303 return -1;
304 }
297 ar7_device_reset(AR7_RESET_BIT_MDIO); 305 ar7_device_reset(AR7_RESET_BIT_MDIO);
298 cpmac_write(bus->priv, CPMAC_MDIO_CONTROL, MDIOC_ENABLE | 306 cpmac_write(bus->priv, CPMAC_MDIO_CONTROL, MDIOC_ENABLE |
299 MDIOC_CLKDIV(ar7_cpmac_freq() / 2200000 - 1)); 307 MDIOC_CLKDIV(clk_get_rate(cpmac_clk) / 2200000 - 1));
300 return 0; 308 return 0;
301} 309}
302 310
diff --git a/drivers/net/irda/au1k_ir.c b/drivers/net/irda/au1k_ir.c
index 9b2eebdbb25b..b5cbd39d0685 100644
--- a/drivers/net/irda/au1k_ir.c
+++ b/drivers/net/irda/au1k_ir.c
@@ -36,6 +36,7 @@
36#include <asm/pb1000.h> 36#include <asm/pb1000.h>
37#elif defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1100) 37#elif defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1100)
38#include <asm/db1x00.h> 38#include <asm/db1x00.h>
39#include <asm/mach-db1x00/bcsr.h>
39#else 40#else
40#error au1k_ir: unsupported board 41#error au1k_ir: unsupported board
41#endif 42#endif
@@ -66,10 +67,6 @@ static char version[] __devinitdata =
66 67
67#define RUN_AT(x) (jiffies + (x)) 68#define RUN_AT(x) (jiffies + (x))
68 69
69#if defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1100)
70static BCSR * const bcsr = (BCSR *)0xAE000000;
71#endif
72
73static DEFINE_SPINLOCK(ir_lock); 70static DEFINE_SPINLOCK(ir_lock);
74 71
75/* 72/*
@@ -282,9 +279,8 @@ static int au1k_irda_net_init(struct net_device *dev)
282 279
283#if defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1100) 280#if defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1100)
284 /* power on */ 281 /* power on */
285 bcsr->resets &= ~BCSR_RESETS_IRDA_MODE_MASK; 282 bcsr_mod(BCSR_RESETS, BCSR_RESETS_IRDA_MODE_MASK,
286 bcsr->resets |= BCSR_RESETS_IRDA_MODE_FULL; 283 BCSR_RESETS_IRDA_MODE_FULL);
287 au_sync();
288#endif 284#endif
289 285
290 return 0; 286 return 0;
@@ -720,14 +716,14 @@ au1k_irda_set_speed(struct net_device *dev, int speed)
720 716
721 if (speed == 4000000) { 717 if (speed == 4000000) {
722#if defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1100) 718#if defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1100)
723 bcsr->resets |= BCSR_RESETS_FIR_SEL; 719 bcsr_mod(BCSR_RESETS, 0, BCSR_RESETS_FIR_SEL);
724#else /* Pb1000 and Pb1100 */ 720#else /* Pb1000 and Pb1100 */
725 writel(1<<13, CPLD_AUX1); 721 writel(1<<13, CPLD_AUX1);
726#endif 722#endif
727 } 723 }
728 else { 724 else {
729#if defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1100) 725#if defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1100)
730 bcsr->resets &= ~BCSR_RESETS_FIR_SEL; 726 bcsr_mod(BCSR_RESETS, BCSR_RESETS_FIR_SEL, 0);
731#else /* Pb1000 and Pb1100 */ 727#else /* Pb1000 and Pb1100 */
732 writel(readl(CPLD_AUX1) & ~(1<<13), CPLD_AUX1); 728 writel(readl(CPLD_AUX1) & ~(1<<13), CPLD_AUX1);
733#endif 729#endif
diff --git a/drivers/pcmcia/Kconfig b/drivers/pcmcia/Kconfig
index e8f35dac2d51..0a6601c76809 100644
--- a/drivers/pcmcia/Kconfig
+++ b/drivers/pcmcia/Kconfig
@@ -173,6 +173,27 @@ config PCMCIA_AU1X00
173 tristate "Au1x00 pcmcia support" 173 tristate "Au1x00 pcmcia support"
174 depends on SOC_AU1X00 && PCMCIA 174 depends on SOC_AU1X00 && PCMCIA
175 175
176config PCMCIA_ALCHEMY_DEVBOARD
177 tristate "Alchemy Db/Pb1xxx PCMCIA socket services"
178 depends on SOC_AU1X00 && PCMCIA
179 select 64BIT_PHYS_ADDR
180 help
181 Enable this driver of you want PCMCIA support on your Alchemy
182 Db1000, Db/Pb1100, Db/Pb1500, Db/Pb1550, Db/Pb1200 board.
183 NOT suitable for the PB1000!
184
185 This driver is also available as a module called db1xxx_ss.ko
186
187config PCMCIA_XXS1500
188 tristate "MyCable XXS1500 PCMCIA socket support"
189 depends on PCMCIA && MIPS_XXS1500
190 select 64BIT_PHYS_ADDR
191 help
192 Support for the PCMCIA/CF socket interface on MyCable XXS1500
193 systems.
194
195 This driver is also available as a module called xxs1500_ss.ko
196
176config PCMCIA_BCM63XX 197config PCMCIA_BCM63XX
177 tristate "bcm63xx pcmcia support" 198 tristate "bcm63xx pcmcia support"
178 depends on BCM63XX && PCMCIA 199 depends on BCM63XX && PCMCIA
diff --git a/drivers/pcmcia/Makefile b/drivers/pcmcia/Makefile
index 3c83f68c803a..381b031d9d75 100644
--- a/drivers/pcmcia/Makefile
+++ b/drivers/pcmcia/Makefile
@@ -35,18 +35,10 @@ obj-$(CONFIG_OMAP_CF) += omap_cf.o
35obj-$(CONFIG_BFIN_CFPCMCIA) += bfin_cf_pcmcia.o 35obj-$(CONFIG_BFIN_CFPCMCIA) += bfin_cf_pcmcia.o
36obj-$(CONFIG_AT91_CF) += at91_cf.o 36obj-$(CONFIG_AT91_CF) += at91_cf.o
37obj-$(CONFIG_ELECTRA_CF) += electra_cf.o 37obj-$(CONFIG_ELECTRA_CF) += electra_cf.o
38obj-$(CONFIG_PCMCIA_ALCHEMY_DEVBOARD) += db1xxx_ss.o
38 39
39au1x00_ss-y += au1000_generic.o 40au1x00_ss-y += au1000_generic.o
40au1x00_ss-$(CONFIG_MIPS_PB1000) += au1000_pb1x00.o 41au1x00_ss-$(CONFIG_MIPS_PB1000) += au1000_pb1x00.o
41au1x00_ss-$(CONFIG_MIPS_PB1100) += au1000_pb1x00.o
42au1x00_ss-$(CONFIG_MIPS_PB1200) += au1000_db1x00.o
43au1x00_ss-$(CONFIG_MIPS_PB1500) += au1000_pb1x00.o
44au1x00_ss-$(CONFIG_MIPS_DB1000) += au1000_db1x00.o
45au1x00_ss-$(CONFIG_MIPS_DB1100) += au1000_db1x00.o
46au1x00_ss-$(CONFIG_MIPS_DB1200) += au1000_db1x00.o
47au1x00_ss-$(CONFIG_MIPS_DB1500) += au1000_db1x00.o
48au1x00_ss-$(CONFIG_MIPS_DB1550) += au1000_db1x00.o
49au1x00_ss-$(CONFIG_MIPS_XXS1500) += au1000_xxs1500.o
50 42
51sa1111_cs-y += sa1111_generic.o 43sa1111_cs-y += sa1111_generic.o
52sa1111_cs-$(CONFIG_ASSABET_NEPONSET) += sa1100_neponset.o 44sa1111_cs-$(CONFIG_ASSABET_NEPONSET) += sa1100_neponset.o
@@ -76,3 +68,5 @@ pxa2xx-obj-$(CONFIG_MACH_E740) += pxa2xx_e740.o
76pxa2xx-obj-$(CONFIG_MACH_STARGATE2) += pxa2xx_stargate2.o 68pxa2xx-obj-$(CONFIG_MACH_STARGATE2) += pxa2xx_stargate2.o
77 69
78obj-$(CONFIG_PCMCIA_PXA2XX) += pxa2xx_base.o $(pxa2xx-obj-y) 70obj-$(CONFIG_PCMCIA_PXA2XX) += pxa2xx_base.o $(pxa2xx-obj-y)
71
72obj-$(CONFIG_PCMCIA_XXS1500) += xxs1500_ss.o
diff --git a/drivers/pcmcia/au1000_db1x00.c b/drivers/pcmcia/au1000_db1x00.c
deleted file mode 100644
index c78d77fd7e3b..000000000000
--- a/drivers/pcmcia/au1000_db1x00.c
+++ /dev/null
@@ -1,305 +0,0 @@
1/*
2 *
3 * Alchemy Semi Db1x00 boards specific pcmcia routines.
4 *
5 * Copyright 2002 MontaVista Software Inc.
6 * Author: MontaVista Software, Inc.
7 * ppopov@mvista.com or source@mvista.com
8 *
9 * Copyright 2004 Pete Popov, updated the driver to 2.6.
10 * Followed the sa11xx API and largely copied many of the hardware
11 * independent functions.
12 *
13 * ########################################################################
14 *
15 * This program is free software; you can distribute it and/or modify it
16 * under the terms of the GNU General Public License (Version 2) as
17 * published by the Free Software Foundation.
18 *
19 * This program is distributed in the hope it will be useful, but WITHOUT
20 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22 * for more details.
23 *
24 * You should have received a copy of the GNU General Public License along
25 * with this program; if not, write to the Free Software Foundation, Inc.,
26 * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
27 *
28 * ########################################################################
29 *
30 *
31 */
32
33#include <linux/module.h>
34#include <linux/kernel.h>
35#include <linux/errno.h>
36#include <linux/interrupt.h>
37#include <linux/device.h>
38#include <linux/init.h>
39
40#include <asm/irq.h>
41#include <asm/signal.h>
42#include <asm/mach-au1x00/au1000.h>
43
44#if defined(CONFIG_MIPS_DB1200)
45 #include <db1200.h>
46#elif defined(CONFIG_MIPS_PB1200)
47 #include <pb1200.h>
48#else
49 #include <asm/mach-db1x00/db1x00.h>
50 static BCSR * const bcsr = (BCSR *)BCSR_KSEG1_ADDR;
51#endif
52
53#include "au1000_generic.h"
54
55#if 0
56#define debug(x,args...) printk(KERN_DEBUG "%s: " x, __func__ , ##args)
57#else
58#define debug(x,args...)
59#endif
60
61
62struct au1000_pcmcia_socket au1000_pcmcia_socket[PCMCIA_NUM_SOCKS];
63extern int au1x00_pcmcia_socket_probe(struct device *, struct pcmcia_low_level *, int, int);
64
65static int db1x00_pcmcia_hw_init(struct au1000_pcmcia_socket *skt)
66{
67#ifdef CONFIG_MIPS_DB1550
68 skt->irq = skt->nr ? AU1000_GPIO_5 : AU1000_GPIO_3;
69#elif defined(CONFIG_MIPS_DB1200) || defined(CONFIG_MIPS_PB1200)
70 skt->irq = skt->nr ? BOARD_PC1_INT : BOARD_PC0_INT;
71#else
72 skt->irq = skt->nr ? AU1000_GPIO_5 : AU1000_GPIO_2;
73#endif
74 return 0;
75}
76
77static void db1x00_pcmcia_shutdown(struct au1000_pcmcia_socket *skt)
78{
79 bcsr->pcmcia = 0; /* turn off power */
80 au_sync_delay(2);
81}
82
83static void
84db1x00_pcmcia_socket_state(struct au1000_pcmcia_socket *skt, struct pcmcia_state *state)
85{
86 u32 inserted;
87 unsigned char vs;
88
89 state->ready = 0;
90 state->vs_Xv = 0;
91 state->vs_3v = 0;
92 state->detect = 0;
93
94 switch (skt->nr) {
95 case 0:
96 vs = bcsr->status & 0x3;
97#if defined(CONFIG_MIPS_DB1200) || defined(CONFIG_MIPS_PB1200)
98 inserted = BOARD_CARD_INSERTED(0);
99#else
100 inserted = !(bcsr->status & (1<<4));
101#endif
102 break;
103 case 1:
104 vs = (bcsr->status & 0xC)>>2;
105#if defined(CONFIG_MIPS_DB1200) || defined(CONFIG_MIPS_PB1200)
106 inserted = BOARD_CARD_INSERTED(1);
107#else
108 inserted = !(bcsr->status & (1<<5));
109#endif
110 break;
111 default:/* should never happen */
112 return;
113 }
114
115 if (inserted)
116 debug("db1x00 socket %d: inserted %d, vs %d pcmcia %x\n",
117 skt->nr, inserted, vs, bcsr->pcmcia);
118
119 if (inserted) {
120 switch (vs) {
121 case 0:
122 case 2:
123 state->vs_3v=1;
124 break;
125 case 3: /* 5V */
126 break;
127 default:
128 /* return without setting 'detect' */
129 printk(KERN_ERR "db1x00 bad VS (%d)\n",
130 vs);
131 }
132 state->detect = 1;
133 state->ready = 1;
134 }
135 else {
136 /* if the card was previously inserted and then ejected,
137 * we should turn off power to it
138 */
139 if ((skt->nr == 0) && (bcsr->pcmcia & BCSR_PCMCIA_PC0RST)) {
140 bcsr->pcmcia &= ~(BCSR_PCMCIA_PC0RST |
141 BCSR_PCMCIA_PC0DRVEN |
142 BCSR_PCMCIA_PC0VPP |
143 BCSR_PCMCIA_PC0VCC);
144 au_sync_delay(10);
145 }
146 else if ((skt->nr == 1) && bcsr->pcmcia & BCSR_PCMCIA_PC1RST) {
147 bcsr->pcmcia &= ~(BCSR_PCMCIA_PC1RST |
148 BCSR_PCMCIA_PC1DRVEN |
149 BCSR_PCMCIA_PC1VPP |
150 BCSR_PCMCIA_PC1VCC);
151 au_sync_delay(10);
152 }
153 }
154
155 state->bvd1=1;
156 state->bvd2=1;
157 state->wrprot=0;
158}
159
160static int
161db1x00_pcmcia_configure_socket(struct au1000_pcmcia_socket *skt, struct socket_state_t *state)
162{
163 u16 pwr;
164 int sock = skt->nr;
165
166 debug("config_skt %d Vcc %dV Vpp %dV, reset %d\n",
167 sock, state->Vcc, state->Vpp,
168 state->flags & SS_RESET);
169
170 /* pcmcia reg was set to zero at init time. Be careful when
171 * initializing a socket not to wipe out the settings of the
172 * other socket.
173 */
174 pwr = bcsr->pcmcia;
175 pwr &= ~(0xf << sock*8); /* clear voltage settings */
176
177 state->Vpp = 0;
178 switch(state->Vcc){
179 case 0: /* Vcc 0 */
180 pwr |= SET_VCC_VPP(0,0,sock);
181 break;
182 case 50: /* Vcc 5V */
183 switch(state->Vpp) {
184 case 0:
185 pwr |= SET_VCC_VPP(2,0,sock);
186 break;
187 case 50:
188 pwr |= SET_VCC_VPP(2,1,sock);
189 break;
190 case 12:
191 pwr |= SET_VCC_VPP(2,2,sock);
192 break;
193 case 33:
194 default:
195 pwr |= SET_VCC_VPP(0,0,sock);
196 printk("%s: bad Vcc/Vpp (%d:%d)\n",
197 __func__,
198 state->Vcc,
199 state->Vpp);
200 break;
201 }
202 break;
203 case 33: /* Vcc 3.3V */
204 switch(state->Vpp) {
205 case 0:
206 pwr |= SET_VCC_VPP(1,0,sock);
207 break;
208 case 12:
209 pwr |= SET_VCC_VPP(1,2,sock);
210 break;
211 case 33:
212 pwr |= SET_VCC_VPP(1,1,sock);
213 break;
214 case 50:
215 default:
216 pwr |= SET_VCC_VPP(0,0,sock);
217 printk("%s: bad Vcc/Vpp (%d:%d)\n",
218 __func__,
219 state->Vcc,
220 state->Vpp);
221 break;
222 }
223 break;
224 default: /* what's this ? */
225 pwr |= SET_VCC_VPP(0,0,sock);
226 printk(KERN_ERR "%s: bad Vcc %d\n",
227 __func__, state->Vcc);
228 break;
229 }
230
231 bcsr->pcmcia = pwr;
232 au_sync_delay(300);
233
234 if (sock == 0) {
235 if (!(state->flags & SS_RESET)) {
236 pwr |= BCSR_PCMCIA_PC0DRVEN;
237 bcsr->pcmcia = pwr;
238 au_sync_delay(300);
239 pwr |= BCSR_PCMCIA_PC0RST;
240 bcsr->pcmcia = pwr;
241 au_sync_delay(100);
242 }
243 else {
244 pwr &= ~(BCSR_PCMCIA_PC0RST | BCSR_PCMCIA_PC0DRVEN);
245 bcsr->pcmcia = pwr;
246 au_sync_delay(100);
247 }
248 }
249 else {
250 if (!(state->flags & SS_RESET)) {
251 pwr |= BCSR_PCMCIA_PC1DRVEN;
252 bcsr->pcmcia = pwr;
253 au_sync_delay(300);
254 pwr |= BCSR_PCMCIA_PC1RST;
255 bcsr->pcmcia = pwr;
256 au_sync_delay(100);
257 }
258 else {
259 pwr &= ~(BCSR_PCMCIA_PC1RST | BCSR_PCMCIA_PC1DRVEN);
260 bcsr->pcmcia = pwr;
261 au_sync_delay(100);
262 }
263 }
264 return 0;
265}
266
267/*
268 * Enable card status IRQs on (re-)initialisation. This can
269 * be called at initialisation, power management event, or
270 * pcmcia event.
271 */
272void db1x00_socket_init(struct au1000_pcmcia_socket *skt)
273{
274 /* nothing to do for now */
275}
276
277/*
278 * Disable card status IRQs and PCMCIA bus on suspend.
279 */
280void db1x00_socket_suspend(struct au1000_pcmcia_socket *skt)
281{
282 /* nothing to do for now */
283}
284
285struct pcmcia_low_level db1x00_pcmcia_ops = {
286 .owner = THIS_MODULE,
287
288 .hw_init = db1x00_pcmcia_hw_init,
289 .hw_shutdown = db1x00_pcmcia_shutdown,
290
291 .socket_state = db1x00_pcmcia_socket_state,
292 .configure_socket = db1x00_pcmcia_configure_socket,
293
294 .socket_init = db1x00_socket_init,
295 .socket_suspend = db1x00_socket_suspend
296};
297
298int au1x_board_init(struct device *dev)
299{
300 int ret = -ENODEV;
301 bcsr->pcmcia = 0; /* turn off power, if it's not already off */
302 au_sync_delay(2);
303 ret = au1x00_pcmcia_socket_probe(dev, &db1x00_pcmcia_ops, 0, 2);
304 return ret;
305}
diff --git a/drivers/pcmcia/au1000_generic.c b/drivers/pcmcia/au1000_generic.c
index 02088704ac2c..171c8a654887 100644
--- a/drivers/pcmcia/au1000_generic.c
+++ b/drivers/pcmcia/au1000_generic.c
@@ -405,18 +405,16 @@ int au1x00_pcmcia_socket_probe(struct device *dev, struct pcmcia_low_level *ops,
405 skt->virt_io = (void *) 405 skt->virt_io = (void *)
406 (ioremap((phys_t)AU1X_SOCK0_IO, 0x1000) - 406 (ioremap((phys_t)AU1X_SOCK0_IO, 0x1000) -
407 (u32)mips_io_port_base); 407 (u32)mips_io_port_base);
408 skt->phys_attr = AU1X_SOCK0_PSEUDO_PHYS_ATTR; 408 skt->phys_attr = AU1X_SOCK0_PHYS_ATTR;
409 skt->phys_mem = AU1X_SOCK0_PSEUDO_PHYS_MEM; 409 skt->phys_mem = AU1X_SOCK0_PHYS_MEM;
410 } 410 }
411#ifndef CONFIG_MIPS_XXS1500
412 else { 411 else {
413 skt->virt_io = (void *) 412 skt->virt_io = (void *)
414 (ioremap((phys_t)AU1X_SOCK1_IO, 0x1000) - 413 (ioremap((phys_t)AU1X_SOCK1_IO, 0x1000) -
415 (u32)mips_io_port_base); 414 (u32)mips_io_port_base);
416 skt->phys_attr = AU1X_SOCK1_PSEUDO_PHYS_ATTR; 415 skt->phys_attr = AU1X_SOCK1_PHYS_ATTR;
417 skt->phys_mem = AU1X_SOCK1_PSEUDO_PHYS_MEM; 416 skt->phys_mem = AU1X_SOCK1_PHYS_MEM;
418 } 417 }
419#endif
420 pcmcia_base_vaddrs[i] = (u32 *)skt->virt_io; 418 pcmcia_base_vaddrs[i] = (u32 *)skt->virt_io;
421 ret = ops->hw_init(skt); 419 ret = ops->hw_init(skt);
422 420
diff --git a/drivers/pcmcia/au1000_generic.h b/drivers/pcmcia/au1000_generic.h
index 13a4fbc58711..a324d329dea6 100644
--- a/drivers/pcmcia/au1000_generic.h
+++ b/drivers/pcmcia/au1000_generic.h
@@ -36,30 +36,14 @@
36#define AU1X_SOCK0_IO 0xF00000000ULL 36#define AU1X_SOCK0_IO 0xF00000000ULL
37#define AU1X_SOCK0_PHYS_ATTR 0xF40000000ULL 37#define AU1X_SOCK0_PHYS_ATTR 0xF40000000ULL
38#define AU1X_SOCK0_PHYS_MEM 0xF80000000ULL 38#define AU1X_SOCK0_PHYS_MEM 0xF80000000ULL
39/* pseudo 32 bit phys addresses, which get fixed up to the
40 * real 36 bit address in fixup_bigphys_addr() */
41#define AU1X_SOCK0_PSEUDO_PHYS_ATTR 0xF4000000
42#define AU1X_SOCK0_PSEUDO_PHYS_MEM 0xF8000000
43 39
44/* pcmcia socket 1 needs external glue logic so the memory map 40/* pcmcia socket 1 needs external glue logic so the memory map
45 * differs from board to board. 41 * differs from board to board.
46 */ 42 */
47#if defined(CONFIG_MIPS_PB1000) || defined(CONFIG_MIPS_PB1100) || \ 43#if defined(CONFIG_MIPS_PB1000)
48 defined(CONFIG_MIPS_PB1500) || defined(CONFIG_MIPS_PB1550) || \
49 defined(CONFIG_MIPS_PB1200)
50#define AU1X_SOCK1_IO 0xF08000000ULL 44#define AU1X_SOCK1_IO 0xF08000000ULL
51#define AU1X_SOCK1_PHYS_ATTR 0xF48000000ULL 45#define AU1X_SOCK1_PHYS_ATTR 0xF48000000ULL
52#define AU1X_SOCK1_PHYS_MEM 0xF88000000ULL 46#define AU1X_SOCK1_PHYS_MEM 0xF88000000ULL
53#define AU1X_SOCK1_PSEUDO_PHYS_ATTR 0xF4800000
54#define AU1X_SOCK1_PSEUDO_PHYS_MEM 0xF8800000
55#elif defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1100) || \
56 defined(CONFIG_MIPS_DB1500) || defined(CONFIG_MIPS_DB1550) || \
57 defined(CONFIG_MIPS_DB1200)
58#define AU1X_SOCK1_IO 0xF04000000ULL
59#define AU1X_SOCK1_PHYS_ATTR 0xF44000000ULL
60#define AU1X_SOCK1_PHYS_MEM 0xF84000000ULL
61#define AU1X_SOCK1_PSEUDO_PHYS_ATTR 0xF4400000
62#define AU1X_SOCK1_PSEUDO_PHYS_MEM 0xF8400000
63#endif 47#endif
64 48
65struct pcmcia_state { 49struct pcmcia_state {
diff --git a/drivers/pcmcia/au1000_pb1x00.c b/drivers/pcmcia/au1000_pb1x00.c
index b1984ed72d1d..5a979cb8f3e6 100644
--- a/drivers/pcmcia/au1000_pb1x00.c
+++ b/drivers/pcmcia/au1000_pb1x00.c
@@ -1,6 +1,6 @@
1/* 1/*
2 * 2 *
3 * Alchemy Semi Pb1x00 boards specific pcmcia routines. 3 * Alchemy Semi Pb1000 boards specific pcmcia routines.
4 * 4 *
5 * Copyright 2002 MontaVista Software Inc. 5 * Copyright 2002 MontaVista Software Inc.
6 * Author: MontaVista Software, Inc. 6 * Author: MontaVista Software, Inc.
@@ -46,20 +46,11 @@
46 46
47#define debug(fmt, arg...) do { } while (0) 47#define debug(fmt, arg...) do { } while (0)
48 48
49#ifdef CONFIG_MIPS_PB1000
50#include <asm/pb1000.h> 49#include <asm/pb1000.h>
51#define PCMCIA_IRQ AU1000_GPIO_15 50#define PCMCIA_IRQ AU1000_GPIO_15
52#elif defined (CONFIG_MIPS_PB1500)
53#include <asm/pb1500.h>
54#define PCMCIA_IRQ AU1500_GPIO_203
55#elif defined (CONFIG_MIPS_PB1100)
56#include <asm/pb1100.h>
57#define PCMCIA_IRQ AU1000_GPIO_11
58#endif
59 51
60static int pb1x00_pcmcia_init(struct pcmcia_init *init) 52static int pb1x00_pcmcia_init(struct pcmcia_init *init)
61{ 53{
62#ifdef CONFIG_MIPS_PB1000
63 u16 pcr; 54 u16 pcr;
64 pcr = PCR_SLOT_0_RST | PCR_SLOT_1_RST; 55 pcr = PCR_SLOT_0_RST | PCR_SLOT_1_RST;
65 56
@@ -74,21 +65,10 @@ static int pb1x00_pcmcia_init(struct pcmcia_init *init)
74 au_sync_delay(20); 65 au_sync_delay(20);
75 66
76 return PCMCIA_NUM_SOCKS; 67 return PCMCIA_NUM_SOCKS;
77
78#else /* fixme -- take care of the Pb1500 at some point */
79
80 u16 pcr;
81 pcr = au_readw(PCMCIA_BOARD_REG) & ~0xf; /* turn off power */
82 pcr &= ~(PC_DEASSERT_RST | PC_DRV_EN);
83 au_writew(pcr, PCMCIA_BOARD_REG);
84 au_sync_delay(500);
85 return PCMCIA_NUM_SOCKS;
86#endif
87} 68}
88 69
89static int pb1x00_pcmcia_shutdown(void) 70static int pb1x00_pcmcia_shutdown(void)
90{ 71{
91#ifdef CONFIG_MIPS_PB1000
92 u16 pcr; 72 u16 pcr;
93 pcr = PCR_SLOT_0_RST | PCR_SLOT_1_RST; 73 pcr = PCR_SLOT_0_RST | PCR_SLOT_1_RST;
94 pcr |= SET_VCC_VPP(VCC_HIZ,VPP_HIZ,0); 74 pcr |= SET_VCC_VPP(VCC_HIZ,VPP_HIZ,0);
@@ -96,14 +76,6 @@ static int pb1x00_pcmcia_shutdown(void)
96 au_writel(pcr, PB1000_PCR); 76 au_writel(pcr, PB1000_PCR);
97 au_sync_delay(20); 77 au_sync_delay(20);
98 return 0; 78 return 0;
99#else
100 u16 pcr;
101 pcr = au_readw(PCMCIA_BOARD_REG) & ~0xf; /* turn off power */
102 pcr &= ~(PC_DEASSERT_RST | PC_DRV_EN);
103 au_writew(pcr, PCMCIA_BOARD_REG);
104 au_sync_delay(2);
105 return 0;
106#endif
107} 79}
108 80
109static int 81static int
@@ -112,21 +84,11 @@ pb1x00_pcmcia_socket_state(unsigned sock, struct pcmcia_state *state)
112 u32 inserted0, inserted1; 84 u32 inserted0, inserted1;
113 u16 vs0, vs1; 85 u16 vs0, vs1;
114 86
115#ifdef CONFIG_MIPS_PB1000
116 vs0 = vs1 = (u16)au_readl(PB1000_ACR1); 87 vs0 = vs1 = (u16)au_readl(PB1000_ACR1);
117 inserted0 = !(vs0 & (ACR1_SLOT_0_CD1 | ACR1_SLOT_0_CD2)); 88 inserted0 = !(vs0 & (ACR1_SLOT_0_CD1 | ACR1_SLOT_0_CD2));
118 inserted1 = !(vs1 & (ACR1_SLOT_1_CD1 | ACR1_SLOT_1_CD2)); 89 inserted1 = !(vs1 & (ACR1_SLOT_1_CD1 | ACR1_SLOT_1_CD2));
119 vs0 = (vs0 >> 4) & 0x3; 90 vs0 = (vs0 >> 4) & 0x3;
120 vs1 = (vs1 >> 12) & 0x3; 91 vs1 = (vs1 >> 12) & 0x3;
121#else
122 vs0 = (au_readw(BOARD_STATUS_REG) >> 4) & 0x3;
123#ifdef CONFIG_MIPS_PB1500
124 inserted0 = !((au_readl(GPIO2_PINSTATE) >> 1) & 0x1); /* gpio 201 */
125#else /* Pb1100 */
126 inserted0 = !((au_readl(SYS_PINSTATERD) >> 9) & 0x1); /* gpio 9 */
127#endif
128 inserted1 = 0;
129#endif
130 92
131 state->ready = 0; 93 state->ready = 0;
132 state->vs_Xv = 0; 94 state->vs_Xv = 0;
@@ -203,7 +165,6 @@ pb1x00_pcmcia_configure_socket(const struct pcmcia_configure *configure)
203 165
204 if(configure->sock > PCMCIA_MAX_SOCK) return -1; 166 if(configure->sock > PCMCIA_MAX_SOCK) return -1;
205 167
206#ifdef CONFIG_MIPS_PB1000
207 pcr = au_readl(PB1000_PCR); 168 pcr = au_readl(PB1000_PCR);
208 169
209 if (configure->sock == 0) { 170 if (configure->sock == 0) {
@@ -323,84 +284,6 @@ pb1x00_pcmcia_configure_socket(const struct pcmcia_configure *configure)
323 au_writel(pcr, PB1000_PCR); 284 au_writel(pcr, PB1000_PCR);
324 au_sync_delay(300); 285 au_sync_delay(300);
325 286
326#else
327
328 pcr = au_readw(PCMCIA_BOARD_REG) & ~0xf;
329
330 debug("Vcc %dV Vpp %dV, pcr %x, reset %d\n",
331 configure->vcc, configure->vpp, pcr, configure->reset);
332
333
334 switch(configure->vcc){
335 case 0: /* Vcc 0 */
336 pcr |= SET_VCC_VPP(0,0);
337 break;
338 case 50: /* Vcc 5V */
339 switch(configure->vpp) {
340 case 0:
341 pcr |= SET_VCC_VPP(2,0);
342 break;
343 case 50:
344 pcr |= SET_VCC_VPP(2,1);
345 break;
346 case 12:
347 pcr |= SET_VCC_VPP(2,2);
348 break;
349 case 33:
350 default:
351 pcr |= SET_VCC_VPP(0,0);
352 printk("%s: bad Vcc/Vpp (%d:%d)\n",
353 __func__,
354 configure->vcc,
355 configure->vpp);
356 break;
357 }
358 break;
359 case 33: /* Vcc 3.3V */
360 switch(configure->vpp) {
361 case 0:
362 pcr |= SET_VCC_VPP(1,0);
363 break;
364 case 12:
365 pcr |= SET_VCC_VPP(1,2);
366 break;
367 case 33:
368 pcr |= SET_VCC_VPP(1,1);
369 break;
370 case 50:
371 default:
372 pcr |= SET_VCC_VPP(0,0);
373 printk("%s: bad Vcc/Vpp (%d:%d)\n",
374 __func__,
375 configure->vcc,
376 configure->vpp);
377 break;
378 }
379 break;
380 default: /* what's this ? */
381 pcr |= SET_VCC_VPP(0,0);
382 printk(KERN_ERR "%s: bad Vcc %d\n",
383 __func__, configure->vcc);
384 break;
385 }
386
387 au_writew(pcr, PCMCIA_BOARD_REG);
388 au_sync_delay(300);
389
390 if (!configure->reset) {
391 pcr |= PC_DRV_EN;
392 au_writew(pcr, PCMCIA_BOARD_REG);
393 au_sync_delay(100);
394 pcr |= PC_DEASSERT_RST;
395 au_writew(pcr, PCMCIA_BOARD_REG);
396 au_sync_delay(100);
397 }
398 else {
399 pcr &= ~(PC_DEASSERT_RST | PC_DRV_EN);
400 au_writew(pcr, PCMCIA_BOARD_REG);
401 au_sync_delay(100);
402 }
403#endif
404 return 0; 287 return 0;
405} 288}
406 289
diff --git a/drivers/pcmcia/au1000_xxs1500.c b/drivers/pcmcia/au1000_xxs1500.c
deleted file mode 100644
index b43d47b50819..000000000000
--- a/drivers/pcmcia/au1000_xxs1500.c
+++ /dev/null
@@ -1,188 +0,0 @@
1/*
2 *
3 * MyCable board specific pcmcia routines.
4 *
5 * Copyright 2003 MontaVista Software Inc.
6 * Author: Pete Popov, MontaVista Software, Inc.
7 * ppopov@mvista.com or source@mvista.com
8 *
9 * ########################################################################
10 *
11 * This program is free software; you can distribute it and/or modify it
12 * under the terms of the GNU General Public License (Version 2) as
13 * published by the Free Software Foundation.
14 *
15 * This program is distributed in the hope it will be useful, but WITHOUT
16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
18 * for more details.
19 *
20 * You should have received a copy of the GNU General Public License along
21 * with this program; if not, write to the Free Software Foundation, Inc.,
22 * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
23 *
24 * ########################################################################
25 *
26 *
27 */
28#include <linux/module.h>
29#include <linux/init.h>
30#include <linux/delay.h>
31#include <linux/ioport.h>
32#include <linux/kernel.h>
33#include <linux/timer.h>
34#include <linux/mm.h>
35#include <linux/proc_fs.h>
36#include <linux/types.h>
37
38#include <pcmcia/cs_types.h>
39#include <pcmcia/cs.h>
40#include <pcmcia/ss.h>
41#include <pcmcia/cistpl.h>
42#include <pcmcia/bus_ops.h>
43
44#include <asm/io.h>
45#include <asm/irq.h>
46#include <asm/system.h>
47
48#include <asm/au1000.h>
49#include <asm/au1000_pcmcia.h>
50
51#define PCMCIA_MAX_SOCK 0
52#define PCMCIA_NUM_SOCKS (PCMCIA_MAX_SOCK + 1)
53#define PCMCIA_IRQ AU1000_GPIO_4
54
55#if 0
56#define DEBUG(x, args...) printk(__func__ ": " x, ##args)
57#else
58#define DEBUG(x,args...)
59#endif
60
61static int xxs1500_pcmcia_init(struct pcmcia_init *init)
62{
63 return PCMCIA_NUM_SOCKS;
64}
65
66static int xxs1500_pcmcia_shutdown(void)
67{
68 /* turn off power */
69 au_writel(au_readl(GPIO2_PINSTATE) | (1<<14)|(1<<30),
70 GPIO2_OUTPUT);
71 au_sync_delay(100);
72
73 /* assert reset */
74 au_writel(au_readl(GPIO2_PINSTATE) | (1<<4)|(1<<20),
75 GPIO2_OUTPUT);
76 au_sync_delay(100);
77 return 0;
78}
79
80
81static int
82xxs1500_pcmcia_socket_state(unsigned sock, struct pcmcia_state *state)
83{
84 u32 inserted; u32 vs;
85 unsigned long gpio, gpio2;
86
87 if(sock > PCMCIA_MAX_SOCK) return -1;
88
89 gpio = au_readl(SYS_PINSTATERD);
90 gpio2 = au_readl(GPIO2_PINSTATE);
91
92 vs = gpio2 & ((1<<8) | (1<<9));
93 inserted = (!(gpio & 0x1) && !(gpio & 0x2));
94
95 state->ready = 0;
96 state->vs_Xv = 0;
97 state->vs_3v = 0;
98 state->detect = 0;
99
100 if (inserted) {
101 switch (vs) {
102 case 0:
103 case 1:
104 case 2:
105 state->vs_3v=1;
106 break;
107 case 3: /* 5V */
108 default:
109 /* return without setting 'detect' */
110 printk(KERN_ERR "au1x00_cs: unsupported VS\n",
111 vs);
112 return;
113 }
114 state->detect = 1;
115 }
116
117 if (state->detect) {
118 state->ready = 1;
119 }
120
121 state->bvd1= gpio2 & (1<<10);
122 state->bvd2 = gpio2 & (1<<11);
123 state->wrprot=0;
124 return 1;
125}
126
127
128static int xxs1500_pcmcia_get_irq_info(struct pcmcia_irq_info *info)
129{
130
131 if(info->sock > PCMCIA_MAX_SOCK) return -1;
132 info->irq = PCMCIA_IRQ;
133 return 0;
134}
135
136
137static int
138xxs1500_pcmcia_configure_socket(const struct pcmcia_configure *configure)
139{
140
141 if(configure->sock > PCMCIA_MAX_SOCK) return -1;
142
143 DEBUG("Vcc %dV Vpp %dV, reset %d\n",
144 configure->vcc, configure->vpp, configure->reset);
145
146 switch(configure->vcc){
147 case 33: /* Vcc 3.3V */
148 /* turn on power */
149 DEBUG("turn on power\n");
150 au_writel((au_readl(GPIO2_PINSTATE) & ~(1<<14))|(1<<30),
151 GPIO2_OUTPUT);
152 au_sync_delay(100);
153 break;
154 case 50: /* Vcc 5V */
155 default: /* what's this ? */
156 printk(KERN_ERR "au1x00_cs: unsupported VCC\n");
157 case 0: /* Vcc 0 */
158 /* turn off power */
159 au_sync_delay(100);
160 au_writel(au_readl(GPIO2_PINSTATE) | (1<<14)|(1<<30),
161 GPIO2_OUTPUT);
162 break;
163 }
164
165 if (!configure->reset) {
166 DEBUG("deassert reset\n");
167 au_writel((au_readl(GPIO2_PINSTATE) & ~(1<<4))|(1<<20),
168 GPIO2_OUTPUT);
169 au_sync_delay(100);
170 au_writel((au_readl(GPIO2_PINSTATE) & ~(1<<5))|(1<<21),
171 GPIO2_OUTPUT);
172 }
173 else {
174 DEBUG("assert reset\n");
175 au_writel(au_readl(GPIO2_PINSTATE) | (1<<4)|(1<<20),
176 GPIO2_OUTPUT);
177 }
178 au_sync_delay(100);
179 return 0;
180}
181
182struct pcmcia_low_level xxs1500_pcmcia_ops = {
183 xxs1500_pcmcia_init,
184 xxs1500_pcmcia_shutdown,
185 xxs1500_pcmcia_socket_state,
186 xxs1500_pcmcia_get_irq_info,
187 xxs1500_pcmcia_configure_socket
188};
diff --git a/drivers/pcmcia/db1xxx_ss.c b/drivers/pcmcia/db1xxx_ss.c
new file mode 100644
index 000000000000..3889cf07d6ce
--- /dev/null
+++ b/drivers/pcmcia/db1xxx_ss.c
@@ -0,0 +1,623 @@
1/*
2 * PCMCIA socket code for the Alchemy Db1xxx/Pb1xxx boards.
3 *
4 * Copyright (c) 2009 Manuel Lauss <manuel.lauss@gmail.com>
5 *
6 */
7
8/* This is a fairly generic PCMCIA socket driver suitable for the
9 * following Alchemy Development boards:
10 * Db1000, Db/Pb1500, Db/Pb1100, Db/Pb1550, Db/Pb1200.
11 *
12 * The Db1000 is used as a reference: Per-socket card-, carddetect- and
13 * statuschange IRQs connected to SoC GPIOs, control and status register
14 * bits arranged in per-socket groups in an external PLD. All boards
15 * listed here use this layout, including bit positions and meanings.
16 * Of course there are exceptions in later boards:
17 *
18 * - Pb1100/Pb1500: single socket only; voltage key bits VS are
19 * at STATUS[5:4] (instead of STATUS[1:0]).
20 * - Au1200-based: additional card-eject irqs, irqs not gpios!
21 */
22
23#include <linux/delay.h>
24#include <linux/gpio.h>
25#include <linux/interrupt.h>
26#include <linux/pm.h>
27#include <linux/platform_device.h>
28#include <linux/resource.h>
29#include <linux/spinlock.h>
30
31#include <pcmcia/cs_types.h>
32#include <pcmcia/ss.h>
33
34#include <asm/mach-au1x00/au1000.h>
35#include <asm/mach-db1x00/bcsr.h>
36
37#define MEM_MAP_SIZE 0x400000
38#define IO_MAP_SIZE 0x1000
39
40struct db1x_pcmcia_sock {
41 struct pcmcia_socket socket;
42 int nr; /* socket number */
43 void *virt_io;
44
45 /* the "pseudo" addresses of the PCMCIA space. */
46 phys_addr_t phys_io;
47 phys_addr_t phys_attr;
48 phys_addr_t phys_mem;
49
50 /* previous flags for set_socket() */
51 unsigned int old_flags;
52
53 /* interrupt sources: linux irq numbers! */
54 int insert_irq; /* default carddetect irq */
55 int stschg_irq; /* card-status-change irq */
56 int card_irq; /* card irq */
57 int eject_irq; /* db1200/pb1200 have these */
58
59#define BOARD_TYPE_DEFAULT 0 /* most boards */
60#define BOARD_TYPE_DB1200 1 /* IRQs aren't gpios */
61#define BOARD_TYPE_PB1100 2 /* VS bits slightly different */
62 int board_type;
63};
64
65#define to_db1x_socket(x) container_of(x, struct db1x_pcmcia_sock, socket)
66
67/* DB/PB1200: check CPLD SIGSTATUS register bit 10/12 */
68static int db1200_card_inserted(struct db1x_pcmcia_sock *sock)
69{
70 unsigned short sigstat;
71
72 sigstat = bcsr_read(BCSR_SIGSTAT);
73 return sigstat & 1 << (8 + 2 * sock->nr);
74}
75
76/* carddetect gpio: low-active */
77static int db1000_card_inserted(struct db1x_pcmcia_sock *sock)
78{
79 return !gpio_get_value(irq_to_gpio(sock->insert_irq));
80}
81
82static int db1x_card_inserted(struct db1x_pcmcia_sock *sock)
83{
84 switch (sock->board_type) {
85 case BOARD_TYPE_DB1200:
86 return db1200_card_inserted(sock);
87 default:
88 return db1000_card_inserted(sock);
89 }
90}
91
92/* STSCHG tends to bounce heavily when cards are inserted/ejected.
93 * To avoid this, the interrupt is normally disabled and only enabled
94 * after reset to a card has been de-asserted.
95 */
96static inline void set_stschg(struct db1x_pcmcia_sock *sock, int en)
97{
98 if (sock->stschg_irq != -1) {
99 if (en)
100 enable_irq(sock->stschg_irq);
101 else
102 disable_irq(sock->stschg_irq);
103 }
104}
105
106static irqreturn_t db1000_pcmcia_cdirq(int irq, void *data)
107{
108 struct db1x_pcmcia_sock *sock = data;
109
110 pcmcia_parse_events(&sock->socket, SS_DETECT);
111
112 return IRQ_HANDLED;
113}
114
115static irqreturn_t db1000_pcmcia_stschgirq(int irq, void *data)
116{
117 struct db1x_pcmcia_sock *sock = data;
118
119 pcmcia_parse_events(&sock->socket, SS_STSCHG);
120
121 return IRQ_HANDLED;
122}
123
124static irqreturn_t db1200_pcmcia_cdirq(int irq, void *data)
125{
126 struct db1x_pcmcia_sock *sock = data;
127
128 /* Db/Pb1200 have separate per-socket insertion and ejection
129 * interrupts which stay asserted as long as the card is
130 * inserted/missing. The one which caused us to be called
131 * needs to be disabled and the other one enabled.
132 */
133 if (irq == sock->insert_irq) {
134 disable_irq_nosync(sock->insert_irq);
135 enable_irq(sock->eject_irq);
136 } else {
137 disable_irq_nosync(sock->eject_irq);
138 enable_irq(sock->insert_irq);
139 }
140
141 pcmcia_parse_events(&sock->socket, SS_DETECT);
142
143 return IRQ_HANDLED;
144}
145
146static int db1x_pcmcia_setup_irqs(struct db1x_pcmcia_sock *sock)
147{
148 int ret;
149 unsigned long flags;
150
151 if (sock->stschg_irq != -1) {
152 ret = request_irq(sock->stschg_irq, db1000_pcmcia_stschgirq,
153 0, "pcmcia_stschg", sock);
154 if (ret)
155 return ret;
156 }
157
158 /* Db/Pb1200 have separate per-socket insertion and ejection
159 * interrupts, which should show edge behaviour but don't.
160 * So interrupts are disabled until both insertion and
161 * ejection handler have been registered and the currently
162 * active one disabled.
163 */
164 if (sock->board_type == BOARD_TYPE_DB1200) {
165 local_irq_save(flags);
166
167 ret = request_irq(sock->insert_irq, db1200_pcmcia_cdirq,
168 IRQF_DISABLED, "pcmcia_insert", sock);
169 if (ret)
170 goto out1;
171
172 ret = request_irq(sock->eject_irq, db1200_pcmcia_cdirq,
173 IRQF_DISABLED, "pcmcia_eject", sock);
174 if (ret) {
175 free_irq(sock->insert_irq, sock);
176 local_irq_restore(flags);
177 goto out1;
178 }
179
180 /* disable the currently active one */
181 if (db1200_card_inserted(sock))
182 disable_irq_nosync(sock->insert_irq);
183 else
184 disable_irq_nosync(sock->eject_irq);
185
186 local_irq_restore(flags);
187 } else {
188 /* all other (older) Db1x00 boards use a GPIO to show
189 * card detection status: use both-edge triggers.
190 */
191 set_irq_type(sock->insert_irq, IRQ_TYPE_EDGE_BOTH);
192 ret = request_irq(sock->insert_irq, db1000_pcmcia_cdirq,
193 0, "pcmcia_carddetect", sock);
194
195 if (ret)
196 goto out1;
197 }
198
199 return 0; /* all done */
200
201out1:
202 if (sock->stschg_irq != -1)
203 free_irq(sock->stschg_irq, sock);
204
205 return ret;
206}
207
208static void db1x_pcmcia_free_irqs(struct db1x_pcmcia_sock *sock)
209{
210 if (sock->stschg_irq != -1)
211 free_irq(sock->stschg_irq, sock);
212
213 free_irq(sock->insert_irq, sock);
214 if (sock->eject_irq != -1)
215 free_irq(sock->eject_irq, sock);
216}
217
218/*
219 * configure a PCMCIA socket on the Db1x00 series of boards (and
220 * compatibles).
221 *
222 * 2 external registers are involved:
223 * pcmcia_status (offset 0x04): bits [0:1/2:3]: read card voltage id
224 * pcmcia_control(offset 0x10):
225 * bits[0:1] set vcc for card
226 * bits[2:3] set vpp for card
227 * bit 4: enable data buffers
228 * bit 7: reset# for card
229 * add 8 for second socket.
230 */
231static int db1x_pcmcia_configure(struct pcmcia_socket *skt,
232 struct socket_state_t *state)
233{
234 struct db1x_pcmcia_sock *sock = to_db1x_socket(skt);
235 unsigned short cr_clr, cr_set;
236 unsigned int changed;
237 int v, p, ret;
238
239 /* card voltage setup */
240 cr_clr = (0xf << (sock->nr * 8)); /* clear voltage settings */
241 cr_set = 0;
242 v = p = ret = 0;
243
244 switch (state->Vcc) {
245 case 50:
246 ++v;
247 case 33:
248 ++v;
249 case 0:
250 break;
251 default:
252 printk(KERN_INFO "pcmcia%d unsupported Vcc %d\n",
253 sock->nr, state->Vcc);
254 }
255
256 switch (state->Vpp) {
257 case 12:
258 ++p;
259 case 33:
260 case 50:
261 ++p;
262 case 0:
263 break;
264 default:
265 printk(KERN_INFO "pcmcia%d unsupported Vpp %d\n",
266 sock->nr, state->Vpp);
267 }
268
269 /* sanity check: Vpp must be 0, 12, or Vcc */
270 if (((state->Vcc == 33) && (state->Vpp == 50)) ||
271 ((state->Vcc == 50) && (state->Vpp == 33))) {
272 printk(KERN_INFO "pcmcia%d bad Vcc/Vpp combo (%d %d)\n",
273 sock->nr, state->Vcc, state->Vpp);
274 v = p = 0;
275 ret = -EINVAL;
276 }
277
278 /* create new voltage code */
279 cr_set |= ((v << 2) | p) << (sock->nr * 8);
280
281 changed = state->flags ^ sock->old_flags;
282
283 if (changed & SS_RESET) {
284 if (state->flags & SS_RESET) {
285 set_stschg(sock, 0);
286 /* assert reset, disable io buffers */
287 cr_clr |= (1 << (7 + (sock->nr * 8)));
288 cr_clr |= (1 << (4 + (sock->nr * 8)));
289 } else {
290 /* de-assert reset, enable io buffers */
291 cr_set |= 1 << (7 + (sock->nr * 8));
292 cr_set |= 1 << (4 + (sock->nr * 8));
293 }
294 }
295
296 /* update PCMCIA configuration */
297 bcsr_mod(BCSR_PCMCIA, cr_clr, cr_set);
298
299 sock->old_flags = state->flags;
300
301 /* reset was taken away: give card time to initialize properly */
302 if ((changed & SS_RESET) && !(state->flags & SS_RESET)) {
303 msleep(500);
304 set_stschg(sock, 1);
305 }
306
307 return ret;
308}
309
310/* VCC bits at [3:2]/[11:10] */
311#define GET_VCC(cr, socknr) \
312 ((((cr) >> 2) >> ((socknr) * 8)) & 3)
313
314/* VS bits at [0:1]/[3:2] */
315#define GET_VS(sr, socknr) \
316 (((sr) >> (2 * (socknr))) & 3)
317
318/* reset bits at [7]/[15] */
319#define GET_RESET(cr, socknr) \
320 ((cr) & (1 << (7 + (8 * (socknr)))))
321
322static int db1x_pcmcia_get_status(struct pcmcia_socket *skt,
323 unsigned int *value)
324{
325 struct db1x_pcmcia_sock *sock = to_db1x_socket(skt);
326 unsigned short cr, sr;
327 unsigned int status;
328
329 status = db1x_card_inserted(sock) ? SS_DETECT : 0;
330
331 cr = bcsr_read(BCSR_PCMCIA);
332 sr = bcsr_read(BCSR_STATUS);
333
334 /* PB1100/PB1500: voltage key bits are at [5:4] */
335 if (sock->board_type == BOARD_TYPE_PB1100)
336 sr >>= 4;
337
338 /* determine card type */
339 switch (GET_VS(sr, sock->nr)) {
340 case 0:
341 case 2:
342 status |= SS_3VCARD; /* 3V card */
343 case 3:
344 break; /* 5V card: set nothing */
345 default:
346 status |= SS_XVCARD; /* treated as unsupported in core */
347 }
348
349 /* if Vcc is not zero, we have applied power to a card */
350 status |= GET_VCC(cr, sock->nr) ? SS_POWERON : 0;
351
352 /* reset de-asserted? then we're ready */
353 status |= (GET_RESET(cr, sock->nr)) ? SS_READY : SS_RESET;
354
355 *value = status;
356
357 return 0;
358}
359
360static int db1x_pcmcia_sock_init(struct pcmcia_socket *skt)
361{
362 return 0;
363}
364
365static int db1x_pcmcia_sock_suspend(struct pcmcia_socket *skt)
366{
367 return 0;
368}
369
370static int au1x00_pcmcia_set_io_map(struct pcmcia_socket *skt,
371 struct pccard_io_map *map)
372{
373 struct db1x_pcmcia_sock *sock = to_db1x_socket(skt);
374
375 map->start = (u32)sock->virt_io;
376 map->stop = map->start + IO_MAP_SIZE;
377
378 return 0;
379}
380
381static int au1x00_pcmcia_set_mem_map(struct pcmcia_socket *skt,
382 struct pccard_mem_map *map)
383{
384 struct db1x_pcmcia_sock *sock = to_db1x_socket(skt);
385
386 if (map->flags & MAP_ATTRIB)
387 map->static_start = sock->phys_attr + map->card_start;
388 else
389 map->static_start = sock->phys_mem + map->card_start;
390
391 return 0;
392}
393
394static struct pccard_operations db1x_pcmcia_operations = {
395 .init = db1x_pcmcia_sock_init,
396 .suspend = db1x_pcmcia_sock_suspend,
397 .get_status = db1x_pcmcia_get_status,
398 .set_socket = db1x_pcmcia_configure,
399 .set_io_map = au1x00_pcmcia_set_io_map,
400 .set_mem_map = au1x00_pcmcia_set_mem_map,
401};
402
403static int __devinit db1x_pcmcia_socket_probe(struct platform_device *pdev)
404{
405 struct db1x_pcmcia_sock *sock;
406 struct resource *r;
407 int ret, bid;
408
409 sock = kzalloc(sizeof(struct db1x_pcmcia_sock), GFP_KERNEL);
410 if (!sock)
411 return -ENOMEM;
412
413 sock->nr = pdev->id;
414
415 bid = BCSR_WHOAMI_BOARD(bcsr_read(BCSR_WHOAMI));
416 switch (bid) {
417 case BCSR_WHOAMI_PB1500:
418 case BCSR_WHOAMI_PB1500R2:
419 case BCSR_WHOAMI_PB1100:
420 sock->board_type = BOARD_TYPE_PB1100;
421 break;
422 case BCSR_WHOAMI_DB1000 ... BCSR_WHOAMI_PB1550_SDR:
423 sock->board_type = BOARD_TYPE_DEFAULT;
424 break;
425 case BCSR_WHOAMI_PB1200 ... BCSR_WHOAMI_DB1200:
426 sock->board_type = BOARD_TYPE_DB1200;
427 break;
428 default:
429 printk(KERN_INFO "db1xxx-ss: unknown board %d!\n", bid);
430 ret = -ENODEV;
431 goto out0;
432 };
433
434 /*
435 * gather resources necessary and optional nice-to-haves to
436 * operate a socket:
437 * This includes IRQs for Carddetection/ejection, the card
438 * itself and optional status change detection.
439 * Also, the memory areas covered by a socket. For these
440 * we require the 32bit "pseudo" addresses (see the au1000.h
441 * header for more information).
442 */
443
444 /* card: irq assigned to the card itself. */
445 r = platform_get_resource_byname(pdev, IORESOURCE_IRQ, "card");
446 sock->card_irq = r ? r->start : 0;
447
448 /* insert: irq which triggers on card insertion/ejection */
449 r = platform_get_resource_byname(pdev, IORESOURCE_IRQ, "insert");
450 sock->insert_irq = r ? r->start : -1;
451
452 /* stschg: irq which trigger on card status change (optional) */
453 r = platform_get_resource_byname(pdev, IORESOURCE_IRQ, "stschg");
454 sock->stschg_irq = r ? r->start : -1;
455
456 /* eject: irq which triggers on ejection (DB1200/PB1200 only) */
457 r = platform_get_resource_byname(pdev, IORESOURCE_IRQ, "eject");
458 sock->eject_irq = r ? r->start : -1;
459
460 ret = -ENODEV;
461
462 /*
463 * pseudo-attr: The 32bit address of the PCMCIA attribute space
464 * for this socket (usually the 36bit address shifted 4 to the
465 * right).
466 */
467 r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "pcmcia-attr");
468 if (!r) {
469 printk(KERN_ERR "pcmcia%d has no 'pseudo-attr' resource!\n",
470 sock->nr);
471 goto out0;
472 }
473 sock->phys_attr = r->start;
474
475 /*
476 * pseudo-mem: The 32bit address of the PCMCIA memory space for
477 * this socket (usually the 36bit address shifted 4 to the right)
478 */
479 r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "pcmcia-mem");
480 if (!r) {
481 printk(KERN_ERR "pcmcia%d has no 'pseudo-mem' resource!\n",
482 sock->nr);
483 goto out0;
484 }
485 sock->phys_mem = r->start;
486
487 /*
488 * pseudo-io: The 32bit address of the PCMCIA IO space for this
489 * socket (usually the 36bit address shifted 4 to the right).
490 */
491 r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "pcmcia-io");
492 if (!r) {
493 printk(KERN_ERR "pcmcia%d has no 'pseudo-io' resource!\n",
494 sock->nr);
495 goto out0;
496 }
497 sock->phys_io = r->start;
498
499 /*
500 * PCMCIA client drivers use the inb/outb macros to access
501 * the IO registers. Since mips_io_port_base is added
502 * to the access address of the mips implementation of
503 * inb/outb, we need to subtract it here because we want
504 * to access the I/O or MEM address directly, without
505 * going through this "mips_io_port_base" mechanism.
506 */
507 sock->virt_io = (void *)(ioremap(sock->phys_io, IO_MAP_SIZE) -
508 mips_io_port_base);
509
510 if (!sock->virt_io) {
511 printk(KERN_ERR "pcmcia%d: cannot remap IO area\n",
512 sock->nr);
513 ret = -ENOMEM;
514 goto out0;
515 }
516
517 sock->socket.ops = &db1x_pcmcia_operations;
518 sock->socket.owner = THIS_MODULE;
519 sock->socket.pci_irq = sock->card_irq;
520 sock->socket.features = SS_CAP_STATIC_MAP | SS_CAP_PCCARD;
521 sock->socket.map_size = MEM_MAP_SIZE;
522 sock->socket.io_offset = (unsigned long)sock->virt_io;
523 sock->socket.dev.parent = &pdev->dev;
524 sock->socket.resource_ops = &pccard_static_ops;
525
526 platform_set_drvdata(pdev, sock);
527
528 ret = db1x_pcmcia_setup_irqs(sock);
529 if (ret) {
530 printk(KERN_ERR "pcmcia%d cannot setup interrupts\n",
531 sock->nr);
532 goto out1;
533 }
534
535 set_stschg(sock, 0);
536
537 ret = pcmcia_register_socket(&sock->socket);
538 if (ret) {
539 printk(KERN_ERR "pcmcia%d failed to register\n", sock->nr);
540 goto out2;
541 }
542
543 printk(KERN_INFO "Alchemy Db/Pb1xxx pcmcia%d @ io/attr/mem %09llx"
544 "(%p) %09llx %09llx card/insert/stschg/eject irqs @ %d "
545 "%d %d %d\n", sock->nr, sock->phys_io, sock->virt_io,
546 sock->phys_attr, sock->phys_mem, sock->card_irq,
547 sock->insert_irq, sock->stschg_irq, sock->eject_irq);
548
549 return 0;
550
551out2:
552 db1x_pcmcia_free_irqs(sock);
553out1:
554 iounmap((void *)(sock->virt_io + (u32)mips_io_port_base));
555out0:
556 kfree(sock);
557 return ret;
558}
559
560static int __devexit db1x_pcmcia_socket_remove(struct platform_device *pdev)
561{
562 struct db1x_pcmcia_sock *sock = platform_get_drvdata(pdev);
563
564 db1x_pcmcia_free_irqs(sock);
565 pcmcia_unregister_socket(&sock->socket);
566 iounmap((void *)(sock->virt_io + (u32)mips_io_port_base));
567 kfree(sock);
568
569 return 0;
570}
571
572#ifdef CONFIG_PM
573static int db1x_pcmcia_suspend(struct device *dev)
574{
575 return pcmcia_socket_dev_suspend(dev);
576}
577
578static int db1x_pcmcia_resume(struct device *dev)
579{
580 return pcmcia_socket_dev_resume(dev);
581}
582
583static struct dev_pm_ops db1x_pcmcia_pmops = {
584 .resume = db1x_pcmcia_resume,
585 .suspend = db1x_pcmcia_suspend,
586 .thaw = db1x_pcmcia_resume,
587 .freeze = db1x_pcmcia_suspend,
588};
589
590#define DB1XXX_SS_PMOPS &db1x_pcmcia_pmops
591
592#else
593
594#define DB1XXX_SS_PMOPS NULL
595
596#endif
597
598static struct platform_driver db1x_pcmcia_socket_driver = {
599 .driver = {
600 .name = "db1xxx_pcmcia",
601 .owner = THIS_MODULE,
602 .pm = DB1XXX_SS_PMOPS
603 },
604 .probe = db1x_pcmcia_socket_probe,
605 .remove = __devexit_p(db1x_pcmcia_socket_remove),
606};
607
608int __init db1x_pcmcia_socket_load(void)
609{
610 return platform_driver_register(&db1x_pcmcia_socket_driver);
611}
612
613void __exit db1x_pcmcia_socket_unload(void)
614{
615 platform_driver_unregister(&db1x_pcmcia_socket_driver);
616}
617
618module_init(db1x_pcmcia_socket_load);
619module_exit(db1x_pcmcia_socket_unload);
620
621MODULE_LICENSE("GPL");
622MODULE_DESCRIPTION("PCMCIA Socket Services for Alchemy Db/Pb1x00 boards");
623MODULE_AUTHOR("Manuel Lauss");
diff --git a/drivers/pcmcia/xxs1500_ss.c b/drivers/pcmcia/xxs1500_ss.c
new file mode 100644
index 000000000000..61560cd6e287
--- /dev/null
+++ b/drivers/pcmcia/xxs1500_ss.c
@@ -0,0 +1,350 @@
1/*
2 * PCMCIA socket code for the MyCable XXS1500 system.
3 *
4 * Copyright (c) 2009 Manuel Lauss <manuel.lauss@gmail.com>
5 *
6 */
7
8#include <linux/delay.h>
9#include <linux/gpio.h>
10#include <linux/interrupt.h>
11#include <linux/io.h>
12#include <linux/ioport.h>
13#include <linux/mm.h>
14#include <linux/platform_device.h>
15#include <linux/pm.h>
16#include <linux/resource.h>
17#include <linux/spinlock.h>
18
19#include <pcmcia/cs_types.h>
20#include <pcmcia/cs.h>
21#include <pcmcia/ss.h>
22#include <pcmcia/cistpl.h>
23
24#include <asm/irq.h>
25#include <asm/system.h>
26#include <asm/mach-au1x00/au1000.h>
27
28#define MEM_MAP_SIZE 0x400000
29#define IO_MAP_SIZE 0x1000
30
31
32/*
33 * 3.3V cards only; all interfacing is done via gpios:
34 *
35 * 0/1: carddetect (00 = card present, xx = huh)
36 * 4: card irq
37 * 204: reset (high-act)
38 * 205: buffer enable (low-act)
39 * 208/209: card voltage key (00,01,10,11)
40 * 210: battwarn
41 * 211: batdead
42 * 214: power (low-act)
43 */
44#define GPIO_CDA 0
45#define GPIO_CDB 1
46#define GPIO_CARDIRQ 4
47#define GPIO_RESET 204
48#define GPIO_OUTEN 205
49#define GPIO_VSL 208
50#define GPIO_VSH 209
51#define GPIO_BATTDEAD 210
52#define GPIO_BATTWARN 211
53#define GPIO_POWER 214
54
55struct xxs1500_pcmcia_sock {
56 struct pcmcia_socket socket;
57 void *virt_io;
58
59 phys_addr_t phys_io;
60 phys_addr_t phys_attr;
61 phys_addr_t phys_mem;
62
63 /* previous flags for set_socket() */
64 unsigned int old_flags;
65};
66
67#define to_xxs_socket(x) container_of(x, struct xxs1500_pcmcia_sock, socket)
68
69static irqreturn_t cdirq(int irq, void *data)
70{
71 struct xxs1500_pcmcia_sock *sock = data;
72
73 pcmcia_parse_events(&sock->socket, SS_DETECT);
74
75 return IRQ_HANDLED;
76}
77
78static int xxs1500_pcmcia_configure(struct pcmcia_socket *skt,
79 struct socket_state_t *state)
80{
81 struct xxs1500_pcmcia_sock *sock = to_xxs_socket(skt);
82 unsigned int changed;
83
84 /* power control */
85 switch (state->Vcc) {
86 case 0:
87 gpio_set_value(GPIO_POWER, 1); /* power off */
88 break;
89 case 33:
90 gpio_set_value(GPIO_POWER, 0); /* power on */
91 break;
92 case 50:
93 default:
94 return -EINVAL;
95 }
96
97 changed = state->flags ^ sock->old_flags;
98
99 if (changed & SS_RESET) {
100 if (state->flags & SS_RESET) {
101 gpio_set_value(GPIO_RESET, 1); /* assert reset */
102 gpio_set_value(GPIO_OUTEN, 1); /* buffers off */
103 } else {
104 gpio_set_value(GPIO_RESET, 0); /* deassert reset */
105 gpio_set_value(GPIO_OUTEN, 0); /* buffers on */
106 msleep(500);
107 }
108 }
109
110 sock->old_flags = state->flags;
111
112 return 0;
113}
114
115static int xxs1500_pcmcia_get_status(struct pcmcia_socket *skt,
116 unsigned int *value)
117{
118 unsigned int status;
119 int i;
120
121 status = 0;
122
123 /* check carddetects: GPIO[0:1] must both be low */
124 if (!gpio_get_value(GPIO_CDA) && !gpio_get_value(GPIO_CDB))
125 status |= SS_DETECT;
126
127 /* determine card voltage: GPIO[208:209] binary value */
128 i = (!!gpio_get_value(GPIO_VSL)) | ((!!gpio_get_value(GPIO_VSH)) << 1);
129
130 switch (i) {
131 case 0:
132 case 1:
133 case 2:
134 status |= SS_3VCARD; /* 3V card */
135 break;
136 case 3: /* 5V card, unsupported */
137 default:
138 status |= SS_XVCARD; /* treated as unsupported in core */
139 }
140
141 /* GPIO214: low active power switch */
142 status |= gpio_get_value(GPIO_POWER) ? 0 : SS_POWERON;
143
144 /* GPIO204: high-active reset line */
145 status |= gpio_get_value(GPIO_RESET) ? SS_RESET : SS_READY;
146
147 /* other stuff */
148 status |= gpio_get_value(GPIO_BATTDEAD) ? 0 : SS_BATDEAD;
149 status |= gpio_get_value(GPIO_BATTWARN) ? 0 : SS_BATWARN;
150
151 *value = status;
152
153 return 0;
154}
155
156static int xxs1500_pcmcia_sock_init(struct pcmcia_socket *skt)
157{
158 gpio_direction_input(GPIO_CDA);
159 gpio_direction_input(GPIO_CDB);
160 gpio_direction_input(GPIO_VSL);
161 gpio_direction_input(GPIO_VSH);
162 gpio_direction_input(GPIO_BATTDEAD);
163 gpio_direction_input(GPIO_BATTWARN);
164 gpio_direction_output(GPIO_RESET, 1); /* assert reset */
165 gpio_direction_output(GPIO_OUTEN, 1); /* disable buffers */
166 gpio_direction_output(GPIO_POWER, 1); /* power off */
167
168 return 0;
169}
170
171static int xxs1500_pcmcia_sock_suspend(struct pcmcia_socket *skt)
172{
173 return 0;
174}
175
176static int au1x00_pcmcia_set_io_map(struct pcmcia_socket *skt,
177 struct pccard_io_map *map)
178{
179 struct xxs1500_pcmcia_sock *sock = to_xxs_socket(skt);
180
181 map->start = (u32)sock->virt_io;
182 map->stop = map->start + IO_MAP_SIZE;
183
184 return 0;
185}
186
187static int au1x00_pcmcia_set_mem_map(struct pcmcia_socket *skt,
188 struct pccard_mem_map *map)
189{
190 struct xxs1500_pcmcia_sock *sock = to_xxs_socket(skt);
191
192 if (map->flags & MAP_ATTRIB)
193 map->static_start = sock->phys_attr + map->card_start;
194 else
195 map->static_start = sock->phys_mem + map->card_start;
196
197 return 0;
198}
199
200static struct pccard_operations xxs1500_pcmcia_operations = {
201 .init = xxs1500_pcmcia_sock_init,
202 .suspend = xxs1500_pcmcia_sock_suspend,
203 .get_status = xxs1500_pcmcia_get_status,
204 .set_socket = xxs1500_pcmcia_configure,
205 .set_io_map = au1x00_pcmcia_set_io_map,
206 .set_mem_map = au1x00_pcmcia_set_mem_map,
207};
208
209static int __devinit xxs1500_pcmcia_probe(struct platform_device *pdev)
210{
211 struct xxs1500_pcmcia_sock *sock;
212 struct resource *r;
213 int ret, irq;
214
215 sock = kzalloc(sizeof(struct xxs1500_pcmcia_sock), GFP_KERNEL);
216 if (!sock)
217 return -ENOMEM;
218
219 ret = -ENODEV;
220
221 /*
222 * pseudo-attr: The 32bit address of the PCMCIA attribute space
223 * for this socket (usually the 36bit address shifted 4 to the
224 * right).
225 */
226 r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "pcmcia-attr");
227 if (!r) {
228 dev_err(&pdev->dev, "missing 'pcmcia-attr' resource!\n");
229 goto out0;
230 }
231 sock->phys_attr = r->start;
232
233 /*
234 * pseudo-mem: The 32bit address of the PCMCIA memory space for
235 * this socket (usually the 36bit address shifted 4 to the right)
236 */
237 r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "pcmcia-mem");
238 if (!r) {
239 dev_err(&pdev->dev, "missing 'pcmcia-mem' resource!\n");
240 goto out0;
241 }
242 sock->phys_mem = r->start;
243
244 /*
245 * pseudo-io: The 32bit address of the PCMCIA IO space for this
246 * socket (usually the 36bit address shifted 4 to the right).
247 */
248 r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "pcmcia-io");
249 if (!r) {
250 dev_err(&pdev->dev, "missing 'pcmcia-io' resource!\n");
251 goto out0;
252 }
253 sock->phys_io = r->start;
254
255
256 /*
257 * PCMCIA client drivers use the inb/outb macros to access
258 * the IO registers. Since mips_io_port_base is added
259 * to the access address of the mips implementation of
260 * inb/outb, we need to subtract it here because we want
261 * to access the I/O or MEM address directly, without
262 * going through this "mips_io_port_base" mechanism.
263 */
264 sock->virt_io = (void *)(ioremap(sock->phys_io, IO_MAP_SIZE) -
265 mips_io_port_base);
266
267 if (!sock->virt_io) {
268 dev_err(&pdev->dev, "cannot remap IO area\n");
269 ret = -ENOMEM;
270 goto out0;
271 }
272
273 sock->socket.ops = &xxs1500_pcmcia_operations;
274 sock->socket.owner = THIS_MODULE;
275 sock->socket.pci_irq = gpio_to_irq(GPIO_CARDIRQ);
276 sock->socket.features = SS_CAP_STATIC_MAP | SS_CAP_PCCARD;
277 sock->socket.map_size = MEM_MAP_SIZE;
278 sock->socket.io_offset = (unsigned long)sock->virt_io;
279 sock->socket.dev.parent = &pdev->dev;
280 sock->socket.resource_ops = &pccard_static_ops;
281
282 platform_set_drvdata(pdev, sock);
283
284 /* setup carddetect irq: use one of the 2 GPIOs as an
285 * edge detector.
286 */
287 irq = gpio_to_irq(GPIO_CDA);
288 set_irq_type(irq, IRQ_TYPE_EDGE_BOTH);
289 ret = request_irq(irq, cdirq, 0, "pcmcia_carddetect", sock);
290 if (ret) {
291 dev_err(&pdev->dev, "cannot setup cd irq\n");
292 goto out1;
293 }
294
295 ret = pcmcia_register_socket(&sock->socket);
296 if (ret) {
297 dev_err(&pdev->dev, "failed to register\n");
298 goto out2;
299 }
300
301 printk(KERN_INFO "MyCable XXS1500 PCMCIA socket services\n");
302
303 return 0;
304
305out2:
306 free_irq(gpio_to_irq(GPIO_CDA), sock);
307out1:
308 iounmap((void *)(sock->virt_io + (u32)mips_io_port_base));
309out0:
310 kfree(sock);
311 return ret;
312}
313
314static int __devexit xxs1500_pcmcia_remove(struct platform_device *pdev)
315{
316 struct xxs1500_pcmcia_sock *sock = platform_get_drvdata(pdev);
317
318 pcmcia_unregister_socket(&sock->socket);
319 free_irq(gpio_to_irq(GPIO_CDA), sock);
320 iounmap((void *)(sock->virt_io + (u32)mips_io_port_base));
321 kfree(sock);
322
323 return 0;
324}
325
326static struct platform_driver xxs1500_pcmcia_socket_driver = {
327 .driver = {
328 .name = "xxs1500_pcmcia",
329 .owner = THIS_MODULE,
330 },
331 .probe = xxs1500_pcmcia_probe,
332 .remove = __devexit_p(xxs1500_pcmcia_remove),
333};
334
335int __init xxs1500_pcmcia_socket_load(void)
336{
337 return platform_driver_register(&xxs1500_pcmcia_socket_driver);
338}
339
340void __exit xxs1500_pcmcia_socket_unload(void)
341{
342 platform_driver_unregister(&xxs1500_pcmcia_socket_driver);
343}
344
345module_init(xxs1500_pcmcia_socket_load);
346module_exit(xxs1500_pcmcia_socket_unload);
347
348MODULE_LICENSE("GPL");
349MODULE_DESCRIPTION("PCMCIA Socket Services for MyCable XXS1500 systems");
350MODULE_AUTHOR("Manuel Lauss");
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
index e9b15c3746fa..a81ff7bc5fa1 100644
--- a/drivers/serial/8250.c
+++ b/drivers/serial/8250.c
@@ -1217,12 +1217,6 @@ static void autoconfig(struct uart_8250_port *up, unsigned int probeflags)
1217 } 1217 }
1218#endif 1218#endif
1219 1219
1220#ifdef CONFIG_SERIAL_8250_AU1X00
1221 /* if access method is AU, it is a 16550 with a quirk */
1222 if (up->port.type == PORT_16550A && up->port.iotype == UPIO_AU)
1223 up->bugs |= UART_BUG_NOMSR;
1224#endif
1225
1226 serial_outp(up, UART_LCR, save_lcr); 1220 serial_outp(up, UART_LCR, save_lcr);
1227 1221
1228 if (up->capabilities != uart_config[up->port.type].flags) { 1222 if (up->capabilities != uart_config[up->port.type].flags) {
@@ -2428,7 +2422,7 @@ serial8250_pm(struct uart_port *port, unsigned int state,
2428static unsigned int serial8250_port_size(struct uart_8250_port *pt) 2422static unsigned int serial8250_port_size(struct uart_8250_port *pt)
2429{ 2423{
2430 if (pt->port.iotype == UPIO_AU) 2424 if (pt->port.iotype == UPIO_AU)
2431 return 0x100000; 2425 return 0x1000;
2432#ifdef CONFIG_ARCH_OMAP 2426#ifdef CONFIG_ARCH_OMAP
2433 if (is_omap_port(pt)) 2427 if (is_omap_port(pt))
2434 return 0x16 << pt->port.regshift; 2428 return 0x16 << pt->port.regshift;
@@ -2585,6 +2579,13 @@ static void serial8250_config_port(struct uart_port *port, int flags)
2585 2579
2586 if (flags & UART_CONFIG_TYPE) 2580 if (flags & UART_CONFIG_TYPE)
2587 autoconfig(up, probeflags); 2581 autoconfig(up, probeflags);
2582
2583#ifdef CONFIG_SERIAL_8250_AU1X00
2584 /* if access method is AU, it is a 16550 with a quirk */
2585 if (up->port.type == PORT_16550A && up->port.iotype == UPIO_AU)
2586 up->bugs |= UART_BUG_NOMSR;
2587#endif
2588
2588 if (up->port.type != PORT_UNKNOWN && flags & UART_CONFIG_IRQ) 2589 if (up->port.type != PORT_UNKNOWN && flags & UART_CONFIG_IRQ)
2589 autoconfig_irq(up); 2590 autoconfig_irq(up);
2590 2591
diff --git a/drivers/spi/au1550_spi.c b/drivers/spi/au1550_spi.c
index cfd5ff9508fa..ba8ac4f599d3 100644
--- a/drivers/spi/au1550_spi.c
+++ b/drivers/spi/au1550_spi.c
@@ -412,11 +412,13 @@ static int au1550_spi_dma_txrxb(struct spi_device *spi, struct spi_transfer *t)
412 } 412 }
413 413
414 /* put buffers on the ring */ 414 /* put buffers on the ring */
415 res = au1xxx_dbdma_put_dest(hw->dma_rx_ch, hw->rx, t->len); 415 res = au1xxx_dbdma_put_dest(hw->dma_rx_ch, virt_to_phys(hw->rx),
416 t->len, DDMA_FLAGS_IE);
416 if (!res) 417 if (!res)
417 dev_err(hw->dev, "rx dma put dest error\n"); 418 dev_err(hw->dev, "rx dma put dest error\n");
418 419
419 res = au1xxx_dbdma_put_source(hw->dma_tx_ch, (void *)hw->tx, t->len); 420 res = au1xxx_dbdma_put_source(hw->dma_tx_ch, virt_to_phys(hw->tx),
421 t->len, DDMA_FLAGS_IE);
420 if (!res) 422 if (!res)
421 dev_err(hw->dev, "tx dma put source error\n"); 423 dev_err(hw->dev, "tx dma put source error\n");
422 424
diff --git a/drivers/staging/octeon/Makefile b/drivers/staging/octeon/Makefile
index c0a583cc2227..87447c102fa0 100644
--- a/drivers/staging/octeon/Makefile
+++ b/drivers/staging/octeon/Makefile
@@ -14,7 +14,6 @@ obj-${CONFIG_OCTEON_ETHERNET} := octeon-ethernet.o
14octeon-ethernet-objs := ethernet.o 14octeon-ethernet-objs := ethernet.o
15octeon-ethernet-objs += ethernet-mdio.o 15octeon-ethernet-objs += ethernet-mdio.o
16octeon-ethernet-objs += ethernet-mem.o 16octeon-ethernet-objs += ethernet-mem.o
17octeon-ethernet-objs += ethernet-proc.o
18octeon-ethernet-objs += ethernet-rgmii.o 17octeon-ethernet-objs += ethernet-rgmii.o
19octeon-ethernet-objs += ethernet-rx.o 18octeon-ethernet-objs += ethernet-rx.o
20octeon-ethernet-objs += ethernet-sgmii.o 19octeon-ethernet-objs += ethernet-sgmii.o
diff --git a/drivers/staging/octeon/ethernet-defines.h b/drivers/staging/octeon/ethernet-defines.h
index f13131b03c33..6a2cd50a17df 100644
--- a/drivers/staging/octeon/ethernet-defines.h
+++ b/drivers/staging/octeon/ethernet-defines.h
@@ -41,17 +41,10 @@
41 * Tells the driver to populate the packet buffers with kernel skbuffs. 41 * Tells the driver to populate the packet buffers with kernel skbuffs.
42 * This allows the driver to receive packets without copying them. It also 42 * This allows the driver to receive packets without copying them. It also
43 * means that 32bit userspace can't access the packet buffers. 43 * means that 32bit userspace can't access the packet buffers.
44 * USE_32BIT_SHARED
45 * This define tells the driver to allocate memory for buffers from the
46 * 32bit sahred region instead of the kernel memory space.
47 * USE_HW_TCPUDP_CHECKSUM 44 * USE_HW_TCPUDP_CHECKSUM
48 * Controls if the Octeon TCP/UDP checksum engine is used for packet 45 * Controls if the Octeon TCP/UDP checksum engine is used for packet
49 * output. If this is zero, the kernel will perform the checksum in 46 * output. If this is zero, the kernel will perform the checksum in
50 * software. 47 * software.
51 * USE_MULTICORE_RECEIVE
52 * Process receive interrupts on multiple cores. This spreads the network
53 * load across the first 8 processors. If ths is zero, only one core
54 * processes incomming packets.
55 * USE_ASYNC_IOBDMA 48 * USE_ASYNC_IOBDMA
56 * Use asynchronous IO access to hardware. This uses Octeon's asynchronous 49 * Use asynchronous IO access to hardware. This uses Octeon's asynchronous
57 * IOBDMAs to issue IO accesses without stalling. Set this to zero 50 * IOBDMAs to issue IO accesses without stalling. Set this to zero
@@ -75,29 +68,15 @@
75#define CONFIG_CAVIUM_RESERVE32 0 68#define CONFIG_CAVIUM_RESERVE32 0
76#endif 69#endif
77 70
78#if CONFIG_CAVIUM_RESERVE32
79#define USE_32BIT_SHARED 1
80#define USE_SKBUFFS_IN_HW 0
81#define REUSE_SKBUFFS_WITHOUT_FREE 0
82#else
83#define USE_32BIT_SHARED 0
84#define USE_SKBUFFS_IN_HW 1 71#define USE_SKBUFFS_IN_HW 1
85#ifdef CONFIG_NETFILTER 72#ifdef CONFIG_NETFILTER
86#define REUSE_SKBUFFS_WITHOUT_FREE 0 73#define REUSE_SKBUFFS_WITHOUT_FREE 0
87#else 74#else
88#define REUSE_SKBUFFS_WITHOUT_FREE 1 75#define REUSE_SKBUFFS_WITHOUT_FREE 1
89#endif 76#endif
90#endif
91
92/* Max interrupts per second per core */
93#define INTERRUPT_LIMIT 10000
94 77
95/* Don't limit the number of interrupts */
96/*#define INTERRUPT_LIMIT 0 */
97#define USE_HW_TCPUDP_CHECKSUM 1 78#define USE_HW_TCPUDP_CHECKSUM 1
98 79
99#define USE_MULTICORE_RECEIVE 1
100
101/* Enable Random Early Dropping under load */ 80/* Enable Random Early Dropping under load */
102#define USE_RED 1 81#define USE_RED 1
103#define USE_ASYNC_IOBDMA (CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE > 0) 82#define USE_ASYNC_IOBDMA (CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE > 0)
@@ -115,21 +94,12 @@
115/* Use this to not have FPA frees control L2 */ 94/* Use this to not have FPA frees control L2 */
116/*#define DONT_WRITEBACK(x) 0 */ 95/*#define DONT_WRITEBACK(x) 0 */
117 96
118/* Maximum number of packets to process per interrupt. */
119#define MAX_RX_PACKETS 120
120/* Maximum number of SKBs to try to free per xmit packet. */ 97/* Maximum number of SKBs to try to free per xmit packet. */
121#define MAX_SKB_TO_FREE 10
122#define MAX_OUT_QUEUE_DEPTH 1000 98#define MAX_OUT_QUEUE_DEPTH 1000
123 99
124#ifndef CONFIG_SMP 100#define FAU_TOTAL_TX_TO_CLEAN (CVMX_FAU_REG_END - sizeof(uint32_t))
125#undef USE_MULTICORE_RECEIVE 101#define FAU_NUM_PACKET_BUFFERS_TO_FREE (FAU_TOTAL_TX_TO_CLEAN - sizeof(uint32_t))
126#define USE_MULTICORE_RECEIVE 0
127#endif
128
129#define IP_PROTOCOL_TCP 6
130#define IP_PROTOCOL_UDP 0x11
131 102
132#define FAU_NUM_PACKET_BUFFERS_TO_FREE (CVMX_FAU_REG_END - sizeof(uint32_t))
133#define TOTAL_NUMBER_OF_PORTS (CVMX_PIP_NUM_INPUT_PORTS+1) 103#define TOTAL_NUMBER_OF_PORTS (CVMX_PIP_NUM_INPUT_PORTS+1)
134 104
135 105
diff --git a/drivers/staging/octeon/ethernet-mdio.c b/drivers/staging/octeon/ethernet-mdio.c
index 05a5cc0f43ed..7e0be8d00dc3 100644
--- a/drivers/staging/octeon/ethernet-mdio.c
+++ b/drivers/staging/octeon/ethernet-mdio.c
@@ -96,11 +96,11 @@ const struct ethtool_ops cvm_oct_ethtool_ops = {
96}; 96};
97 97
98/** 98/**
99 * IOCTL support for PHY control 99 * cvm_oct_ioctl - IOCTL support for PHY control
100 *
101 * @dev: Device to change 100 * @dev: Device to change
102 * @rq: the request 101 * @rq: the request
103 * @cmd: the command 102 * @cmd: the command
103 *
104 * Returns Zero on success 104 * Returns Zero on success
105 */ 105 */
106int cvm_oct_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) 106int cvm_oct_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
@@ -153,7 +153,7 @@ static void cvm_oct_adjust_link(struct net_device *dev)
153 153
154 154
155/** 155/**
156 * Setup the PHY 156 * cvm_oct_phy_setup_device - setup the PHY
157 * 157 *
158 * @dev: Device to setup 158 * @dev: Device to setup
159 * 159 *
diff --git a/drivers/staging/octeon/ethernet-mdio.h b/drivers/staging/octeon/ethernet-mdio.h
index 55d0614a7cd9..a417d4fce12c 100644
--- a/drivers/staging/octeon/ethernet-mdio.h
+++ b/drivers/staging/octeon/ethernet-mdio.h
@@ -32,7 +32,6 @@
32#include <linux/ip.h> 32#include <linux/ip.h>
33#include <linux/string.h> 33#include <linux/string.h>
34#include <linux/ethtool.h> 34#include <linux/ethtool.h>
35#include <linux/mii.h>
36#include <linux/seq_file.h> 35#include <linux/seq_file.h>
37#include <linux/proc_fs.h> 36#include <linux/proc_fs.h>
38#include <net/dst.h> 37#include <net/dst.h>
diff --git a/drivers/staging/octeon/ethernet-mem.c b/drivers/staging/octeon/ethernet-mem.c
index b595903e2af1..00cc91df6b46 100644
--- a/drivers/staging/octeon/ethernet-mem.c
+++ b/drivers/staging/octeon/ethernet-mem.c
@@ -4,7 +4,7 @@
4 * Contact: support@caviumnetworks.com 4 * Contact: support@caviumnetworks.com
5 * This file is part of the OCTEON SDK 5 * This file is part of the OCTEON SDK
6 * 6 *
7 * Copyright (c) 2003-2007 Cavium Networks 7 * Copyright (c) 2003-2010 Cavium Networks
8 * 8 *
9 * This file is free software; you can redistribute it and/or modify 9 * This file is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License, Version 2, as 10 * it under the terms of the GNU General Public License, Version 2, as
@@ -26,8 +26,6 @@
26**********************************************************************/ 26**********************************************************************/
27#include <linux/kernel.h> 27#include <linux/kernel.h>
28#include <linux/netdevice.h> 28#include <linux/netdevice.h>
29#include <linux/mii.h>
30#include <net/dst.h>
31 29
32#include <asm/octeon/octeon.h> 30#include <asm/octeon/octeon.h>
33 31
@@ -36,18 +34,19 @@
36#include "cvmx-fpa.h" 34#include "cvmx-fpa.h"
37 35
38/** 36/**
39 * Fill the supplied hardware pool with skbuffs 37 * cvm_oct_fill_hw_skbuff - fill the supplied hardware pool with skbuffs
40 *
41 * @pool: Pool to allocate an skbuff for 38 * @pool: Pool to allocate an skbuff for
42 * @size: Size of the buffer needed for the pool 39 * @size: Size of the buffer needed for the pool
43 * @elements: Number of buffers to allocate 40 * @elements: Number of buffers to allocate
41 *
42 * Returns the actual number of buffers allocated.
44 */ 43 */
45static int cvm_oct_fill_hw_skbuff(int pool, int size, int elements) 44static int cvm_oct_fill_hw_skbuff(int pool, int size, int elements)
46{ 45{
47 int freed = elements; 46 int freed = elements;
48 while (freed) { 47 while (freed) {
49 48
50 struct sk_buff *skb = dev_alloc_skb(size + 128); 49 struct sk_buff *skb = dev_alloc_skb(size + 256);
51 if (unlikely(skb == NULL)) { 50 if (unlikely(skb == NULL)) {
52 pr_warning 51 pr_warning
53 ("Failed to allocate skb for hardware pool %d\n", 52 ("Failed to allocate skb for hardware pool %d\n",
@@ -55,7 +54,7 @@ static int cvm_oct_fill_hw_skbuff(int pool, int size, int elements)
55 break; 54 break;
56 } 55 }
57 56
58 skb_reserve(skb, 128 - (((unsigned long)skb->data) & 0x7f)); 57 skb_reserve(skb, 256 - (((unsigned long)skb->data) & 0x7f));
59 *(struct sk_buff **)(skb->data - sizeof(void *)) = skb; 58 *(struct sk_buff **)(skb->data - sizeof(void *)) = skb;
60 cvmx_fpa_free(skb->data, pool, DONT_WRITEBACK(size / 128)); 59 cvmx_fpa_free(skb->data, pool, DONT_WRITEBACK(size / 128));
61 freed--; 60 freed--;
@@ -64,8 +63,7 @@ static int cvm_oct_fill_hw_skbuff(int pool, int size, int elements)
64} 63}
65 64
66/** 65/**
67 * Free the supplied hardware pool of skbuffs 66 * cvm_oct_free_hw_skbuff- free hardware pool skbuffs
68 *
69 * @pool: Pool to allocate an skbuff for 67 * @pool: Pool to allocate an skbuff for
70 * @size: Size of the buffer needed for the pool 68 * @size: Size of the buffer needed for the pool
71 * @elements: Number of buffers to allocate 69 * @elements: Number of buffers to allocate
@@ -93,96 +91,76 @@ static void cvm_oct_free_hw_skbuff(int pool, int size, int elements)
93} 91}
94 92
95/** 93/**
96 * This function fills a hardware pool with memory. Depending 94 * cvm_oct_fill_hw_memory - fill a hardware pool with memory.
97 * on the config defines, this memory might come from the
98 * kernel or global 32bit memory allocated with
99 * cvmx_bootmem_alloc.
100 *
101 * @pool: Pool to populate 95 * @pool: Pool to populate
102 * @size: Size of each buffer in the pool 96 * @size: Size of each buffer in the pool
103 * @elements: Number of buffers to allocate 97 * @elements: Number of buffers to allocate
98 *
99 * Returns the actual number of buffers allocated.
104 */ 100 */
105static int cvm_oct_fill_hw_memory(int pool, int size, int elements) 101static int cvm_oct_fill_hw_memory(int pool, int size, int elements)
106{ 102{
107 char *memory; 103 char *memory;
104 char *fpa;
108 int freed = elements; 105 int freed = elements;
109 106
110 if (USE_32BIT_SHARED) { 107 while (freed) {
111 extern uint64_t octeon_reserve32_memory; 108 /*
112 109 * FPA memory must be 128 byte aligned. Since we are
113 memory = 110 * aligning we need to save the original pointer so we
114 cvmx_bootmem_alloc_range(elements * size, 128, 111 * can feed it to kfree when the memory is returned to
115 octeon_reserve32_memory, 112 * the kernel.
116 octeon_reserve32_memory + 113 *
117 (CONFIG_CAVIUM_RESERVE32 << 20) - 114 * We allocate an extra 256 bytes to allow for
118 1); 115 * alignment and space for the original pointer saved
119 if (memory == NULL) 116 * just before the block.
120 panic("Unable to allocate %u bytes for FPA pool %d\n", 117 */
121 elements * size, pool); 118 memory = kmalloc(size + 256, GFP_ATOMIC);
122 119 if (unlikely(memory == NULL)) {
123 pr_notice("Memory range %p - %p reserved for " 120 pr_warning("Unable to allocate %u bytes for FPA pool %d\n",
124 "hardware\n", memory, 121 elements * size, pool);
125 memory + elements * size - 1); 122 break;
126
127 while (freed) {
128 cvmx_fpa_free(memory, pool, 0);
129 memory += size;
130 freed--;
131 }
132 } else {
133 while (freed) {
134 /* We need to force alignment to 128 bytes here */
135 memory = kmalloc(size + 127, GFP_ATOMIC);
136 if (unlikely(memory == NULL)) {
137 pr_warning("Unable to allocate %u bytes for "
138 "FPA pool %d\n",
139 elements * size, pool);
140 break;
141 }
142 memory = (char *)(((unsigned long)memory + 127) & -128);
143 cvmx_fpa_free(memory, pool, 0);
144 freed--;
145 } 123 }
124 fpa = (char *)(((unsigned long)memory + 256) & ~0x7fUL);
125 *((char **)fpa - 1) = memory;
126 cvmx_fpa_free(fpa, pool, 0);
127 freed--;
146 } 128 }
147 return elements - freed; 129 return elements - freed;
148} 130}
149 131
150/** 132/**
151 * Free memory previously allocated with cvm_oct_fill_hw_memory 133 * cvm_oct_free_hw_memory - Free memory allocated by cvm_oct_fill_hw_memory
152 *
153 * @pool: FPA pool to free 134 * @pool: FPA pool to free
154 * @size: Size of each buffer in the pool 135 * @size: Size of each buffer in the pool
155 * @elements: Number of buffers that should be in the pool 136 * @elements: Number of buffers that should be in the pool
156 */ 137 */
157static void cvm_oct_free_hw_memory(int pool, int size, int elements) 138static void cvm_oct_free_hw_memory(int pool, int size, int elements)
158{ 139{
159 if (USE_32BIT_SHARED) { 140 char *memory;
160 pr_warning("Warning: 32 shared memory is not freeable\n"); 141 char *fpa;
161 } else { 142 do {
162 char *memory; 143 fpa = cvmx_fpa_alloc(pool);
163 do { 144 if (fpa) {
164 memory = cvmx_fpa_alloc(pool); 145 elements--;
165 if (memory) { 146 fpa = (char *)phys_to_virt(cvmx_ptr_to_phys(fpa));
166 elements--; 147 memory = *((char **)fpa - 1);
167 kfree(phys_to_virt(cvmx_ptr_to_phys(memory))); 148 kfree(memory);
168 } 149 }
169 } while (memory); 150 } while (fpa);
170 151
171 if (elements < 0) 152 if (elements < 0)
172 pr_warning("Freeing of pool %u had too many " 153 pr_warning("Freeing of pool %u had too many buffers (%d)\n",
173 "buffers (%d)\n", 154 pool, elements);
174 pool, elements); 155 else if (elements > 0)
175 else if (elements > 0) 156 pr_warning("Warning: Freeing of pool %u is missing %d buffers\n",
176 pr_warning("Warning: Freeing of pool %u is " 157 pool, elements);
177 "missing %d buffers\n",
178 pool, elements);
179 }
180} 158}
181 159
182int cvm_oct_mem_fill_fpa(int pool, int size, int elements) 160int cvm_oct_mem_fill_fpa(int pool, int size, int elements)
183{ 161{
184 int freed; 162 int freed;
185 if (USE_SKBUFFS_IN_HW) 163 if (USE_SKBUFFS_IN_HW && pool == CVMX_FPA_PACKET_POOL)
186 freed = cvm_oct_fill_hw_skbuff(pool, size, elements); 164 freed = cvm_oct_fill_hw_skbuff(pool, size, elements);
187 else 165 else
188 freed = cvm_oct_fill_hw_memory(pool, size, elements); 166 freed = cvm_oct_fill_hw_memory(pool, size, elements);
@@ -191,7 +169,7 @@ int cvm_oct_mem_fill_fpa(int pool, int size, int elements)
191 169
192void cvm_oct_mem_empty_fpa(int pool, int size, int elements) 170void cvm_oct_mem_empty_fpa(int pool, int size, int elements)
193{ 171{
194 if (USE_SKBUFFS_IN_HW) 172 if (USE_SKBUFFS_IN_HW && pool == CVMX_FPA_PACKET_POOL)
195 cvm_oct_free_hw_skbuff(pool, size, elements); 173 cvm_oct_free_hw_skbuff(pool, size, elements);
196 else 174 else
197 cvm_oct_free_hw_memory(pool, size, elements); 175 cvm_oct_free_hw_memory(pool, size, elements);
diff --git a/drivers/staging/octeon/ethernet-proc.c b/drivers/staging/octeon/ethernet-proc.c
deleted file mode 100644
index 16308d484d3b..000000000000
--- a/drivers/staging/octeon/ethernet-proc.c
+++ /dev/null
@@ -1,144 +0,0 @@
1/**********************************************************************
2 * Author: Cavium Networks
3 *
4 * Contact: support@caviumnetworks.com
5 * This file is part of the OCTEON SDK
6 *
7 * Copyright (c) 2003-2007 Cavium Networks
8 *
9 * This file is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License, Version 2, as
11 * published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful, but
14 * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
15 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
16 * NONINFRINGEMENT. See the GNU General Public License for more
17 * details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this file; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22 * or visit http://www.gnu.org/licenses/.
23 *
24 * This file may also be available under a different license from Cavium.
25 * Contact Cavium Networks for more information
26**********************************************************************/
27#include <linux/kernel.h>
28#include <linux/seq_file.h>
29#include <linux/proc_fs.h>
30#include <net/dst.h>
31
32#include <asm/octeon/octeon.h>
33
34#include "octeon-ethernet.h"
35#include "ethernet-defines.h"
36
37#include "cvmx-helper.h"
38#include "cvmx-pip.h"
39
40/**
41 * User is reading /proc/octeon_ethernet_stats
42 *
43 * @m:
44 * @v:
45 * Returns
46 */
47static int cvm_oct_stats_show(struct seq_file *m, void *v)
48{
49 struct octeon_ethernet *priv;
50 int port;
51
52 for (port = 0; port < TOTAL_NUMBER_OF_PORTS; port++) {
53
54 if (cvm_oct_device[port]) {
55 priv = netdev_priv(cvm_oct_device[port]);
56
57 seq_printf(m, "\nOcteon Port %d (%s)\n", port,
58 cvm_oct_device[port]->name);
59 seq_printf(m,
60 "rx_packets: %12lu\t"
61 "tx_packets: %12lu\n",
62 priv->stats.rx_packets,
63 priv->stats.tx_packets);
64 seq_printf(m,
65 "rx_bytes: %12lu\t"
66 "tx_bytes: %12lu\n",
67 priv->stats.rx_bytes, priv->stats.tx_bytes);
68 seq_printf(m,
69 "rx_errors: %12lu\t"
70 "tx_errors: %12lu\n",
71 priv->stats.rx_errors,
72 priv->stats.tx_errors);
73 seq_printf(m,
74 "rx_dropped: %12lu\t"
75 "tx_dropped: %12lu\n",
76 priv->stats.rx_dropped,
77 priv->stats.tx_dropped);
78 seq_printf(m,
79 "rx_length_errors: %12lu\t"
80 "tx_aborted_errors: %12lu\n",
81 priv->stats.rx_length_errors,
82 priv->stats.tx_aborted_errors);
83 seq_printf(m,
84 "rx_over_errors: %12lu\t"
85 "tx_carrier_errors: %12lu\n",
86 priv->stats.rx_over_errors,
87 priv->stats.tx_carrier_errors);
88 seq_printf(m,
89 "rx_crc_errors: %12lu\t"
90 "tx_fifo_errors: %12lu\n",
91 priv->stats.rx_crc_errors,
92 priv->stats.tx_fifo_errors);
93 seq_printf(m,
94 "rx_frame_errors: %12lu\t"
95 "tx_heartbeat_errors: %12lu\n",
96 priv->stats.rx_frame_errors,
97 priv->stats.tx_heartbeat_errors);
98 seq_printf(m,
99 "rx_fifo_errors: %12lu\t"
100 "tx_window_errors: %12lu\n",
101 priv->stats.rx_fifo_errors,
102 priv->stats.tx_window_errors);
103 seq_printf(m,
104 "rx_missed_errors: %12lu\t"
105 "multicast: %12lu\n",
106 priv->stats.rx_missed_errors,
107 priv->stats.multicast);
108 }
109 }
110
111 return 0;
112}
113
114/**
115 * /proc/octeon_ethernet_stats was openned. Use the single_open iterator
116 *
117 * @inode:
118 * @file:
119 * Returns
120 */
121static int cvm_oct_stats_open(struct inode *inode, struct file *file)
122{
123 return single_open(file, cvm_oct_stats_show, NULL);
124}
125
126static const struct file_operations cvm_oct_stats_operations = {
127 .open = cvm_oct_stats_open,
128 .read = seq_read,
129 .llseek = seq_lseek,
130 .release = single_release,
131};
132
133void cvm_oct_proc_initialize(void)
134{
135 struct proc_dir_entry *entry =
136 create_proc_entry("octeon_ethernet_stats", 0, NULL);
137 if (entry)
138 entry->proc_fops = &cvm_oct_stats_operations;
139}
140
141void cvm_oct_proc_shutdown(void)
142{
143 remove_proc_entry("octeon_ethernet_stats", NULL);
144}
diff --git a/drivers/staging/octeon/ethernet-proc.h b/drivers/staging/octeon/ethernet-proc.h
deleted file mode 100644
index 82c7d9f78bc4..000000000000
--- a/drivers/staging/octeon/ethernet-proc.h
+++ /dev/null
@@ -1,29 +0,0 @@
1/*********************************************************************
2 * Author: Cavium Networks
3 *
4 * Contact: support@caviumnetworks.com
5 * This file is part of the OCTEON SDK
6 *
7 * Copyright (c) 2003-2007 Cavium Networks
8 *
9 * This file is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License, Version 2, as
11 * published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful, but
14 * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
15 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
16 * NONINFRINGEMENT. See the GNU General Public License for more
17 * details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this file; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22 * or visit http://www.gnu.org/licenses/.
23 *
24 * This file may also be available under a different license from Cavium.
25 * Contact Cavium Networks for more information
26*********************************************************************/
27
28void cvm_oct_proc_initialize(void);
29void cvm_oct_proc_shutdown(void);
diff --git a/drivers/staging/octeon/ethernet-rgmii.c b/drivers/staging/octeon/ethernet-rgmii.c
index 3820f1ec11d1..a0d4d4b98bdc 100644
--- a/drivers/staging/octeon/ethernet-rgmii.c
+++ b/drivers/staging/octeon/ethernet-rgmii.c
@@ -26,7 +26,7 @@
26**********************************************************************/ 26**********************************************************************/
27#include <linux/kernel.h> 27#include <linux/kernel.h>
28#include <linux/netdevice.h> 28#include <linux/netdevice.h>
29#include <linux/mii.h> 29#include <linux/phy.h>
30#include <net/dst.h> 30#include <net/dst.h>
31 31
32#include <asm/octeon/octeon.h> 32#include <asm/octeon/octeon.h>
@@ -48,14 +48,20 @@ static int number_rgmii_ports;
48static void cvm_oct_rgmii_poll(struct net_device *dev) 48static void cvm_oct_rgmii_poll(struct net_device *dev)
49{ 49{
50 struct octeon_ethernet *priv = netdev_priv(dev); 50 struct octeon_ethernet *priv = netdev_priv(dev);
51 unsigned long flags; 51 unsigned long flags = 0;
52 cvmx_helper_link_info_t link_info; 52 cvmx_helper_link_info_t link_info;
53 int use_global_register_lock = (priv->phydev == NULL);
53 54
54 /* 55 BUG_ON(in_interrupt());
55 * Take the global register lock since we are going to touch 56 if (use_global_register_lock) {
56 * registers that affect more than one port. 57 /*
57 */ 58 * Take the global register lock since we are going to
58 spin_lock_irqsave(&global_register_lock, flags); 59 * touch registers that affect more than one port.
60 */
61 spin_lock_irqsave(&global_register_lock, flags);
62 } else {
63 mutex_lock(&priv->phydev->bus->mdio_lock);
64 }
59 65
60 link_info = cvmx_helper_link_get(priv->port); 66 link_info = cvmx_helper_link_get(priv->port);
61 if (link_info.u64 == priv->link_info) { 67 if (link_info.u64 == priv->link_info) {
@@ -115,7 +121,11 @@ static void cvm_oct_rgmii_poll(struct net_device *dev)
115 dev->name); 121 dev->name);
116 } 122 }
117 } 123 }
118 spin_unlock_irqrestore(&global_register_lock, flags); 124
125 if (use_global_register_lock)
126 spin_unlock_irqrestore(&global_register_lock, flags);
127 else
128 mutex_unlock(&priv->phydev->bus->mdio_lock);
119 return; 129 return;
120 } 130 }
121 131
@@ -151,7 +161,12 @@ static void cvm_oct_rgmii_poll(struct net_device *dev)
151 link_info = cvmx_helper_link_autoconf(priv->port); 161 link_info = cvmx_helper_link_autoconf(priv->port);
152 priv->link_info = link_info.u64; 162 priv->link_info = link_info.u64;
153 } 163 }
154 spin_unlock_irqrestore(&global_register_lock, flags); 164
165 if (use_global_register_lock)
166 spin_unlock_irqrestore(&global_register_lock, flags);
167 else {
168 mutex_unlock(&priv->phydev->bus->mdio_lock);
169 }
155 170
156 if (priv->phydev == NULL) { 171 if (priv->phydev == NULL) {
157 /* Tell core. */ 172 /* Tell core. */
@@ -213,8 +228,11 @@ static irqreturn_t cvm_oct_rgmii_rml_interrupt(int cpl, void *dev_id)
213 struct net_device *dev = 228 struct net_device *dev =
214 cvm_oct_device[cvmx_helper_get_ipd_port 229 cvm_oct_device[cvmx_helper_get_ipd_port
215 (interface, index)]; 230 (interface, index)];
216 if (dev) 231 struct octeon_ethernet *priv = netdev_priv(dev);
217 cvm_oct_rgmii_poll(dev); 232
233 if (dev && !atomic_read(&cvm_oct_poll_queue_stopping))
234 queue_work(cvm_oct_poll_queue, &priv->port_work);
235
218 gmx_rx_int_reg.u64 = 0; 236 gmx_rx_int_reg.u64 = 0;
219 gmx_rx_int_reg.s.phy_dupx = 1; 237 gmx_rx_int_reg.s.phy_dupx = 1;
220 gmx_rx_int_reg.s.phy_link = 1; 238 gmx_rx_int_reg.s.phy_link = 1;
@@ -252,8 +270,11 @@ static irqreturn_t cvm_oct_rgmii_rml_interrupt(int cpl, void *dev_id)
252 struct net_device *dev = 270 struct net_device *dev =
253 cvm_oct_device[cvmx_helper_get_ipd_port 271 cvm_oct_device[cvmx_helper_get_ipd_port
254 (interface, index)]; 272 (interface, index)];
255 if (dev) 273 struct octeon_ethernet *priv = netdev_priv(dev);
256 cvm_oct_rgmii_poll(dev); 274
275 if (dev && !atomic_read(&cvm_oct_poll_queue_stopping))
276 queue_work(cvm_oct_poll_queue, &priv->port_work);
277
257 gmx_rx_int_reg.u64 = 0; 278 gmx_rx_int_reg.u64 = 0;
258 gmx_rx_int_reg.s.phy_dupx = 1; 279 gmx_rx_int_reg.s.phy_dupx = 1;
259 gmx_rx_int_reg.s.phy_link = 1; 280 gmx_rx_int_reg.s.phy_link = 1;
@@ -302,6 +323,12 @@ int cvm_oct_rgmii_stop(struct net_device *dev)
302 return 0; 323 return 0;
303} 324}
304 325
326static void cvm_oct_rgmii_immediate_poll(struct work_struct *work)
327{
328 struct octeon_ethernet *priv = container_of(work, struct octeon_ethernet, port_work);
329 cvm_oct_rgmii_poll(cvm_oct_device[priv->port]);
330}
331
305int cvm_oct_rgmii_init(struct net_device *dev) 332int cvm_oct_rgmii_init(struct net_device *dev)
306{ 333{
307 struct octeon_ethernet *priv = netdev_priv(dev); 334 struct octeon_ethernet *priv = netdev_priv(dev);
@@ -309,7 +336,7 @@ int cvm_oct_rgmii_init(struct net_device *dev)
309 336
310 cvm_oct_common_init(dev); 337 cvm_oct_common_init(dev);
311 dev->netdev_ops->ndo_stop(dev); 338 dev->netdev_ops->ndo_stop(dev);
312 339 INIT_WORK(&priv->port_work, cvm_oct_rgmii_immediate_poll);
313 /* 340 /*
314 * Due to GMX errata in CN3XXX series chips, it is necessary 341 * Due to GMX errata in CN3XXX series chips, it is necessary
315 * to take the link down immediately when the PHY changes 342 * to take the link down immediately when the PHY changes
@@ -397,4 +424,5 @@ void cvm_oct_rgmii_uninit(struct net_device *dev)
397 number_rgmii_ports--; 424 number_rgmii_ports--;
398 if (number_rgmii_ports == 0) 425 if (number_rgmii_ports == 0)
399 free_irq(OCTEON_IRQ_RML, &number_rgmii_ports); 426 free_irq(OCTEON_IRQ_RML, &number_rgmii_ports);
427 cancel_work_sync(&priv->port_work);
400} 428}
diff --git a/drivers/staging/octeon/ethernet-rx.c b/drivers/staging/octeon/ethernet-rx.c
index 1b237b7e689d..cb38f9eb2cc0 100644
--- a/drivers/staging/octeon/ethernet-rx.c
+++ b/drivers/staging/octeon/ethernet-rx.c
@@ -4,7 +4,7 @@
4 * Contact: support@caviumnetworks.com 4 * Contact: support@caviumnetworks.com
5 * This file is part of the OCTEON SDK 5 * This file is part of the OCTEON SDK
6 * 6 *
7 * Copyright (c) 2003-2007 Cavium Networks 7 * Copyright (c) 2003-2010 Cavium Networks
8 * 8 *
9 * This file is free software; you can redistribute it and/or modify 9 * This file is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License, Version 2, as 10 * it under the terms of the GNU General Public License, Version 2, as
@@ -27,16 +27,14 @@
27#include <linux/module.h> 27#include <linux/module.h>
28#include <linux/kernel.h> 28#include <linux/kernel.h>
29#include <linux/cache.h> 29#include <linux/cache.h>
30#include <linux/cpumask.h>
30#include <linux/netdevice.h> 31#include <linux/netdevice.h>
31#include <linux/init.h> 32#include <linux/init.h>
32#include <linux/etherdevice.h> 33#include <linux/etherdevice.h>
33#include <linux/ip.h> 34#include <linux/ip.h>
34#include <linux/string.h> 35#include <linux/string.h>
35#include <linux/prefetch.h> 36#include <linux/prefetch.h>
36#include <linux/ethtool.h> 37#include <linux/smp.h>
37#include <linux/mii.h>
38#include <linux/seq_file.h>
39#include <linux/proc_fs.h>
40#include <net/dst.h> 38#include <net/dst.h>
41#ifdef CONFIG_XFRM 39#ifdef CONFIG_XFRM
42#include <linux/xfrm.h> 40#include <linux/xfrm.h>
@@ -48,8 +46,9 @@
48#include <asm/octeon/octeon.h> 46#include <asm/octeon/octeon.h>
49 47
50#include "ethernet-defines.h" 48#include "ethernet-defines.h"
51#include "octeon-ethernet.h"
52#include "ethernet-mem.h" 49#include "ethernet-mem.h"
50#include "ethernet-rx.h"
51#include "octeon-ethernet.h"
53#include "ethernet-util.h" 52#include "ethernet-util.h"
54 53
55#include "cvmx-helper.h" 54#include "cvmx-helper.h"
@@ -61,62 +60,88 @@
61 60
62#include "cvmx-gmxx-defs.h" 61#include "cvmx-gmxx-defs.h"
63 62
64struct cvm_tasklet_wrapper { 63struct cvm_napi_wrapper {
65 struct tasklet_struct t; 64 struct napi_struct napi;
66}; 65} ____cacheline_aligned_in_smp;
67 66
68/* 67static struct cvm_napi_wrapper cvm_oct_napi[NR_CPUS] __cacheline_aligned_in_smp;
69 * Aligning the tasklet_struct on cachline boundries seems to decrease
70 * throughput even though in theory it would reduce contantion on the
71 * cache lines containing the locks.
72 */
73 68
74static struct cvm_tasklet_wrapper cvm_oct_tasklet[NR_CPUS]; 69struct cvm_oct_core_state {
70 int baseline_cores;
71 /*
72 * The number of additional cores that could be processing
73 * input packtes.
74 */
75 atomic_t available_cores;
76 cpumask_t cpu_state;
77} ____cacheline_aligned_in_smp;
75 78
76/** 79static struct cvm_oct_core_state core_state __cacheline_aligned_in_smp;
77 * Interrupt handler. The interrupt occurs whenever the POW 80
78 * transitions from 0->1 packets in our group. 81static void cvm_oct_enable_napi(void *_)
79 *
80 * @cpl:
81 * @dev_id:
82 * @regs:
83 * Returns
84 */
85irqreturn_t cvm_oct_do_interrupt(int cpl, void *dev_id)
86{ 82{
87 /* Acknowledge the interrupt */ 83 int cpu = smp_processor_id();
88 if (INTERRUPT_LIMIT) 84 napi_schedule(&cvm_oct_napi[cpu].napi);
89 cvmx_write_csr(CVMX_POW_WQ_INT, 1 << pow_receive_group); 85}
90 else 86
91 cvmx_write_csr(CVMX_POW_WQ_INT, 0x10001 << pow_receive_group); 87static void cvm_oct_enable_one_cpu(void)
92 preempt_disable(); 88{
93 tasklet_schedule(&cvm_oct_tasklet[smp_processor_id()].t); 89 int v;
94 preempt_enable(); 90 int cpu;
95 return IRQ_HANDLED; 91
92 /* Check to see if more CPUs are available for receive processing... */
93 v = atomic_sub_if_positive(1, &core_state.available_cores);
94 if (v < 0)
95 return;
96
97 /* ... if a CPU is available, Turn on NAPI polling for that CPU. */
98 for_each_online_cpu(cpu) {
99 if (!cpu_test_and_set(cpu, core_state.cpu_state)) {
100 v = smp_call_function_single(cpu, cvm_oct_enable_napi,
101 NULL, 0);
102 if (v)
103 panic("Can't enable NAPI.");
104 break;
105 }
106 }
107}
108
109static void cvm_oct_no_more_work(void)
110{
111 int cpu = smp_processor_id();
112
113 /*
114 * CPU zero is special. It always has the irq enabled when
115 * waiting for incoming packets.
116 */
117 if (cpu == 0) {
118 enable_irq(OCTEON_IRQ_WORKQ0 + pow_receive_group);
119 return;
120 }
121
122 cpu_clear(cpu, core_state.cpu_state);
123 atomic_add(1, &core_state.available_cores);
96} 124}
97 125
98#ifdef CONFIG_NET_POLL_CONTROLLER
99/** 126/**
100 * This is called when the kernel needs to manually poll the 127 * cvm_oct_do_interrupt - interrupt handler.
101 * device. For Octeon, this is simply calling the interrupt 128 *
102 * handler. We actually poll all the devices, not just the 129 * The interrupt occurs whenever the POW has packets in our group.
103 * one supplied.
104 * 130 *
105 * @dev: Device to poll. Unused
106 */ 131 */
107void cvm_oct_poll_controller(struct net_device *dev) 132static irqreturn_t cvm_oct_do_interrupt(int cpl, void *dev_id)
108{ 133{
109 preempt_disable(); 134 /* Disable the IRQ and start napi_poll. */
110 tasklet_schedule(&cvm_oct_tasklet[smp_processor_id()].t); 135 disable_irq_nosync(OCTEON_IRQ_WORKQ0 + pow_receive_group);
111 preempt_enable(); 136 cvm_oct_enable_napi(NULL);
137
138 return IRQ_HANDLED;
112} 139}
113#endif
114 140
115/** 141/**
116 * This is called on receive errors, and determines if the packet 142 * cvm_oct_check_rcv_error - process receive errors
117 * can be dropped early-on in cvm_oct_tasklet_rx().
118 *
119 * @work: Work queue entry pointing to the packet. 143 * @work: Work queue entry pointing to the packet.
144 *
120 * Returns Non-zero if the packet can be dropped, zero otherwise. 145 * Returns Non-zero if the packet can be dropped, zero otherwise.
121 */ 146 */
122static inline int cvm_oct_check_rcv_error(cvmx_wqe_t *work) 147static inline int cvm_oct_check_rcv_error(cvmx_wqe_t *work)
@@ -199,19 +224,20 @@ static inline int cvm_oct_check_rcv_error(cvmx_wqe_t *work)
199} 224}
200 225
201/** 226/**
202 * Tasklet function that is scheduled on a core when an interrupt occurs. 227 * cvm_oct_napi_poll - the NAPI poll function.
228 * @napi: The NAPI instance, or null if called from cvm_oct_poll_controller
229 * @budget: Maximum number of packets to receive.
203 * 230 *
204 * @unused: 231 * Returns the number of packets processed.
205 */ 232 */
206void cvm_oct_tasklet_rx(unsigned long unused) 233static int cvm_oct_napi_poll(struct napi_struct *napi, int budget)
207{ 234{
208 const int coreid = cvmx_get_core_num(); 235 const int coreid = cvmx_get_core_num();
209 uint64_t old_group_mask; 236 uint64_t old_group_mask;
210 uint64_t old_scratch; 237 uint64_t old_scratch;
211 int rx_count = 0; 238 int rx_count = 0;
212 int number_to_free; 239 int did_work_request = 0;
213 int num_freed; 240 int packet_not_copied;
214 int packet_not_copied;
215 241
216 /* Prefetch cvm_oct_device since we know we need it soon */ 242 /* Prefetch cvm_oct_device since we know we need it soon */
217 prefetch(cvm_oct_device); 243 prefetch(cvm_oct_device);
@@ -227,59 +253,63 @@ void cvm_oct_tasklet_rx(unsigned long unused)
227 cvmx_write_csr(CVMX_POW_PP_GRP_MSKX(coreid), 253 cvmx_write_csr(CVMX_POW_PP_GRP_MSKX(coreid),
228 (old_group_mask & ~0xFFFFull) | 1 << pow_receive_group); 254 (old_group_mask & ~0xFFFFull) | 1 << pow_receive_group);
229 255
230 if (USE_ASYNC_IOBDMA) 256 if (USE_ASYNC_IOBDMA) {
231 cvmx_pow_work_request_async(CVMX_SCR_SCRATCH, CVMX_POW_NO_WAIT); 257 cvmx_pow_work_request_async(CVMX_SCR_SCRATCH, CVMX_POW_NO_WAIT);
258 did_work_request = 1;
259 }
232 260
233 while (1) { 261 while (rx_count < budget) {
234 struct sk_buff *skb = NULL; 262 struct sk_buff *skb = NULL;
263 struct sk_buff **pskb = NULL;
235 int skb_in_hw; 264 int skb_in_hw;
236 cvmx_wqe_t *work; 265 cvmx_wqe_t *work;
237 266
238 if (USE_ASYNC_IOBDMA) { 267 if (USE_ASYNC_IOBDMA && did_work_request)
239 work = cvmx_pow_work_response_async(CVMX_SCR_SCRATCH); 268 work = cvmx_pow_work_response_async(CVMX_SCR_SCRATCH);
240 } else { 269 else
241 if ((INTERRUPT_LIMIT == 0) 270 work = cvmx_pow_work_request_sync(CVMX_POW_NO_WAIT);
242 || likely(rx_count < MAX_RX_PACKETS)) 271
243 work =
244 cvmx_pow_work_request_sync
245 (CVMX_POW_NO_WAIT);
246 else
247 work = NULL;
248 }
249 prefetch(work); 272 prefetch(work);
250 if (work == NULL) 273 did_work_request = 0;
274 if (work == NULL) {
275 union cvmx_pow_wq_int wq_int;
276 wq_int.u64 = 0;
277 wq_int.s.iq_dis = 1 << pow_receive_group;
278 wq_int.s.wq_int = 1 << pow_receive_group;
279 cvmx_write_csr(CVMX_POW_WQ_INT, wq_int.u64);
251 break; 280 break;
281 }
282 pskb = (struct sk_buff **)(cvm_oct_get_buffer_ptr(work->packet_ptr) - sizeof(void *));
283 prefetch(pskb);
252 284
253 /* 285 if (USE_ASYNC_IOBDMA && rx_count < (budget - 1)) {
254 * Limit each core to processing MAX_RX_PACKETS 286 cvmx_pow_work_request_async_nocheck(CVMX_SCR_SCRATCH, CVMX_POW_NO_WAIT);
255 * packets without a break. This way the RX can't 287 did_work_request = 1;
256 * starve the TX task. 288 }
257 */ 289
258 if (USE_ASYNC_IOBDMA) { 290 if (rx_count == 0) {
259 291 /*
260 if ((INTERRUPT_LIMIT == 0) 292 * First time through, see if there is enough
261 || likely(rx_count < MAX_RX_PACKETS)) 293 * work waiting to merit waking another
262 cvmx_pow_work_request_async_nocheck 294 * CPU.
263 (CVMX_SCR_SCRATCH, CVMX_POW_NO_WAIT); 295 */
264 else { 296 union cvmx_pow_wq_int_cntx counts;
265 cvmx_scratch_write64(CVMX_SCR_SCRATCH, 297 int backlog;
266 0x8000000000000000ull); 298 int cores_in_use = core_state.baseline_cores - atomic_read(&core_state.available_cores);
267 cvmx_pow_tag_sw_null_nocheck(); 299 counts.u64 = cvmx_read_csr(CVMX_POW_WQ_INT_CNTX(pow_receive_group));
268 } 300 backlog = counts.s.iq_cnt + counts.s.ds_cnt;
301 if (backlog > budget * cores_in_use && napi != NULL)
302 cvm_oct_enable_one_cpu();
269 } 303 }
270 304
271 skb_in_hw = USE_SKBUFFS_IN_HW && work->word2.s.bufs == 1; 305 skb_in_hw = USE_SKBUFFS_IN_HW && work->word2.s.bufs == 1;
272 if (likely(skb_in_hw)) { 306 if (likely(skb_in_hw)) {
273 skb = 307 skb = *pskb;
274 *(struct sk_buff
275 **)(cvm_oct_get_buffer_ptr(work->packet_ptr) -
276 sizeof(void *));
277 prefetch(&skb->head); 308 prefetch(&skb->head);
278 prefetch(&skb->len); 309 prefetch(&skb->len);
279 } 310 }
280 prefetch(cvm_oct_device[work->ipprt]); 311 prefetch(cvm_oct_device[work->ipprt]);
281 312
282 rx_count++;
283 /* Immediately throw away all packets with receive errors */ 313 /* Immediately throw away all packets with receive errors */
284 if (unlikely(work->word2.snoip.rcv_error)) { 314 if (unlikely(work->word2.snoip.rcv_error)) {
285 if (cvm_oct_check_rcv_error(work)) 315 if (cvm_oct_check_rcv_error(work))
@@ -292,39 +322,27 @@ void cvm_oct_tasklet_rx(unsigned long unused)
292 * buffer. 322 * buffer.
293 */ 323 */
294 if (likely(skb_in_hw)) { 324 if (likely(skb_in_hw)) {
295 /* 325 skb->data = skb->head + work->packet_ptr.s.addr - cvmx_ptr_to_phys(skb->head);
296 * This calculation was changed in case the
297 * skb header is using a different address
298 * aliasing type than the buffer. It doesn't
299 * make any differnece now, but the new one is
300 * more correct.
301 */
302 skb->data =
303 skb->head + work->packet_ptr.s.addr -
304 cvmx_ptr_to_phys(skb->head);
305 prefetch(skb->data); 326 prefetch(skb->data);
306 skb->len = work->len; 327 skb->len = work->len;
307 skb_set_tail_pointer(skb, skb->len); 328 skb_set_tail_pointer(skb, skb->len);
308 packet_not_copied = 1; 329 packet_not_copied = 1;
309 } else { 330 } else {
310
311 /* 331 /*
312 * We have to copy the packet. First allocate 332 * We have to copy the packet. First allocate
313 * an skbuff for it. 333 * an skbuff for it.
314 */ 334 */
315 skb = dev_alloc_skb(work->len); 335 skb = dev_alloc_skb(work->len);
316 if (!skb) { 336 if (!skb) {
317 DEBUGPRINT("Port %d failed to allocate " 337 DEBUGPRINT("Port %d failed to allocate skbuff, packet dropped\n",
318 "skbuff, packet dropped\n", 338 work->ipprt);
319 work->ipprt);
320 cvm_oct_free_work(work); 339 cvm_oct_free_work(work);
321 continue; 340 continue;
322 } 341 }
323 342
324 /* 343 /*
325 * Check if we've received a packet that was 344 * Check if we've received a packet that was
326 * entirely stored in the work entry. This is 345 * entirely stored in the work entry.
327 * untested.
328 */ 346 */
329 if (unlikely(work->word2.s.bufs == 0)) { 347 if (unlikely(work->word2.s.bufs == 0)) {
330 uint8_t *ptr = work->packet_data; 348 uint8_t *ptr = work->packet_data;
@@ -343,15 +361,13 @@ void cvm_oct_tasklet_rx(unsigned long unused)
343 /* No packet buffers to free */ 361 /* No packet buffers to free */
344 } else { 362 } else {
345 int segments = work->word2.s.bufs; 363 int segments = work->word2.s.bufs;
346 union cvmx_buf_ptr segment_ptr = 364 union cvmx_buf_ptr segment_ptr = work->packet_ptr;
347 work->packet_ptr;
348 int len = work->len; 365 int len = work->len;
349 366
350 while (segments--) { 367 while (segments--) {
351 union cvmx_buf_ptr next_ptr = 368 union cvmx_buf_ptr next_ptr =
352 *(union cvmx_buf_ptr *) 369 *(union cvmx_buf_ptr *)cvmx_phys_to_ptr(segment_ptr.s.addr - 8);
353 cvmx_phys_to_ptr(segment_ptr.s. 370
354 addr - 8);
355 /* 371 /*
356 * Octeon Errata PKI-100: The segment size is 372 * Octeon Errata PKI-100: The segment size is
357 * wrong. Until it is fixed, calculate the 373 * wrong. Until it is fixed, calculate the
@@ -361,22 +377,18 @@ void cvm_oct_tasklet_rx(unsigned long unused)
361 * one: int segment_size = 377 * one: int segment_size =
362 * segment_ptr.s.size; 378 * segment_ptr.s.size;
363 */ 379 */
364 int segment_size = 380 int segment_size = CVMX_FPA_PACKET_POOL_SIZE -
365 CVMX_FPA_PACKET_POOL_SIZE - 381 (segment_ptr.s.addr - (((segment_ptr.s.addr >> 7) - segment_ptr.s.back) << 7));
366 (segment_ptr.s.addr - 382 /*
367 (((segment_ptr.s.addr >> 7) - 383 * Don't copy more than what
368 segment_ptr.s.back) << 7)); 384 * is left in the packet.
369 /* Don't copy more than what is left 385 */
370 in the packet */
371 if (segment_size > len) 386 if (segment_size > len)
372 segment_size = len; 387 segment_size = len;
373 /* Copy the data into the packet */ 388 /* Copy the data into the packet */
374 memcpy(skb_put(skb, segment_size), 389 memcpy(skb_put(skb, segment_size),
375 cvmx_phys_to_ptr(segment_ptr.s. 390 cvmx_phys_to_ptr(segment_ptr.s.addr),
376 addr),
377 segment_size); 391 segment_size);
378 /* Reduce the amount of bytes left
379 to copy */
380 len -= segment_size; 392 len -= segment_size;
381 segment_ptr = next_ptr; 393 segment_ptr = next_ptr;
382 } 394 }
@@ -389,16 +401,15 @@ void cvm_oct_tasklet_rx(unsigned long unused)
389 struct net_device *dev = cvm_oct_device[work->ipprt]; 401 struct net_device *dev = cvm_oct_device[work->ipprt];
390 struct octeon_ethernet *priv = netdev_priv(dev); 402 struct octeon_ethernet *priv = netdev_priv(dev);
391 403
392 /* Only accept packets for devices 404 /*
393 that are currently up */ 405 * Only accept packets for devices that are
406 * currently up.
407 */
394 if (likely(dev->flags & IFF_UP)) { 408 if (likely(dev->flags & IFF_UP)) {
395 skb->protocol = eth_type_trans(skb, dev); 409 skb->protocol = eth_type_trans(skb, dev);
396 skb->dev = dev; 410 skb->dev = dev;
397 411
398 if (unlikely 412 if (unlikely(work->word2.s.not_IP || work->word2.s.IP_exc || work->word2.s.L4_error))
399 (work->word2.s.not_IP
400 || work->word2.s.IP_exc
401 || work->word2.s.L4_error))
402 skb->ip_summed = CHECKSUM_NONE; 413 skb->ip_summed = CHECKSUM_NONE;
403 else 414 else
404 skb->ip_summed = CHECKSUM_UNNECESSARY; 415 skb->ip_summed = CHECKSUM_UNNECESSARY;
@@ -414,15 +425,13 @@ void cvm_oct_tasklet_rx(unsigned long unused)
414#endif 425#endif
415 } 426 }
416 netif_receive_skb(skb); 427 netif_receive_skb(skb);
428 rx_count++;
417 } else { 429 } else {
430 /* Drop any packet received for a device that isn't up */
418 /* 431 /*
419 * Drop any packet received for a 432 DEBUGPRINT("%s: Device not up, packet dropped\n",
420 * device that isn't up. 433 dev->name);
421 */ 434 */
422 /*
423 DEBUGPRINT("%s: Device not up, packet dropped\n",
424 dev->name);
425 */
426#ifdef CONFIG_64BIT 435#ifdef CONFIG_64BIT
427 atomic64_add(1, (atomic64_t *)&priv->stats.rx_dropped); 436 atomic64_add(1, (atomic64_t *)&priv->stats.rx_dropped);
428#else 437#else
@@ -435,9 +444,8 @@ void cvm_oct_tasklet_rx(unsigned long unused)
435 * Drop any packet received for a device that 444 * Drop any packet received for a device that
436 * doesn't exist. 445 * doesn't exist.
437 */ 446 */
438 DEBUGPRINT("Port %d not controlled by Linux, packet " 447 DEBUGPRINT("Port %d not controlled by Linux, packet dropped\n",
439 "dropped\n", 448 work->ipprt);
440 work->ipprt);
441 dev_kfree_skb_irq(skb); 449 dev_kfree_skb_irq(skb);
442 } 450 }
443 /* 451 /*
@@ -459,47 +467,93 @@ void cvm_oct_tasklet_rx(unsigned long unused)
459 cvm_oct_free_work(work); 467 cvm_oct_free_work(work);
460 } 468 }
461 } 469 }
462
463 /* Restore the original POW group mask */ 470 /* Restore the original POW group mask */
464 cvmx_write_csr(CVMX_POW_PP_GRP_MSKX(coreid), old_group_mask); 471 cvmx_write_csr(CVMX_POW_PP_GRP_MSKX(coreid), old_group_mask);
465 if (USE_ASYNC_IOBDMA) { 472 if (USE_ASYNC_IOBDMA) {
466 /* Restore the scratch area */ 473 /* Restore the scratch area */
467 cvmx_scratch_write64(CVMX_SCR_SCRATCH, old_scratch); 474 cvmx_scratch_write64(CVMX_SCR_SCRATCH, old_scratch);
468 } 475 }
476 cvm_oct_rx_refill_pool(0);
469 477
470 if (USE_SKBUFFS_IN_HW) { 478 if (rx_count < budget && napi != NULL) {
471 /* Refill the packet buffer pool */ 479 /* No more work */
472 number_to_free = 480 napi_complete(napi);
473 cvmx_fau_fetch_and_add32(FAU_NUM_PACKET_BUFFERS_TO_FREE, 0); 481 cvm_oct_no_more_work();
474
475 if (number_to_free > 0) {
476 cvmx_fau_atomic_add32(FAU_NUM_PACKET_BUFFERS_TO_FREE,
477 -number_to_free);
478 num_freed =
479 cvm_oct_mem_fill_fpa(CVMX_FPA_PACKET_POOL,
480 CVMX_FPA_PACKET_POOL_SIZE,
481 number_to_free);
482 if (num_freed != number_to_free) {
483 cvmx_fau_atomic_add32
484 (FAU_NUM_PACKET_BUFFERS_TO_FREE,
485 number_to_free - num_freed);
486 }
487 }
488 } 482 }
483 return rx_count;
489} 484}
490 485
486#ifdef CONFIG_NET_POLL_CONTROLLER
487/**
488 * cvm_oct_poll_controller - poll for receive packets
489 * device.
490 *
491 * @dev: Device to poll. Unused
492 */
493void cvm_oct_poll_controller(struct net_device *dev)
494{
495 cvm_oct_napi_poll(NULL, 16);
496}
497#endif
498
491void cvm_oct_rx_initialize(void) 499void cvm_oct_rx_initialize(void)
492{ 500{
493 int i; 501 int i;
494 /* Initialize all of the tasklets */ 502 struct net_device *dev_for_napi = NULL;
495 for (i = 0; i < NR_CPUS; i++) 503 union cvmx_pow_wq_int_thrx int_thr;
496 tasklet_init(&cvm_oct_tasklet[i].t, cvm_oct_tasklet_rx, 0); 504 union cvmx_pow_wq_int_pc int_pc;
505
506 for (i = 0; i < TOTAL_NUMBER_OF_PORTS; i++) {
507 if (cvm_oct_device[i]) {
508 dev_for_napi = cvm_oct_device[i];
509 break;
510 }
511 }
512
513 if (NULL == dev_for_napi)
514 panic("No net_devices were allocated.");
515
516 if (max_rx_cpus > 1 && max_rx_cpus < num_online_cpus())
517 atomic_set(&core_state.available_cores, max_rx_cpus);
518 else
519 atomic_set(&core_state.available_cores, num_online_cpus());
520 core_state.baseline_cores = atomic_read(&core_state.available_cores);
521
522 core_state.cpu_state = CPU_MASK_NONE;
523 for_each_possible_cpu(i) {
524 netif_napi_add(dev_for_napi, &cvm_oct_napi[i].napi,
525 cvm_oct_napi_poll, rx_napi_weight);
526 napi_enable(&cvm_oct_napi[i].napi);
527 }
528 /* Register an IRQ hander for to receive POW interrupts */
529 i = request_irq(OCTEON_IRQ_WORKQ0 + pow_receive_group,
530 cvm_oct_do_interrupt, 0, "Ethernet", cvm_oct_device);
531
532 if (i)
533 panic("Could not acquire Ethernet IRQ %d\n",
534 OCTEON_IRQ_WORKQ0 + pow_receive_group);
535
536 disable_irq_nosync(OCTEON_IRQ_WORKQ0 + pow_receive_group);
537
538 int_thr.u64 = 0;
539 int_thr.s.tc_en = 1;
540 int_thr.s.tc_thr = 1;
541 /* Enable POW interrupt when our port has at least one packet */
542 cvmx_write_csr(CVMX_POW_WQ_INT_THRX(pow_receive_group), int_thr.u64);
543
544 int_pc.u64 = 0;
545 int_pc.s.pc_thr = 5;
546 cvmx_write_csr(CVMX_POW_WQ_INT_PC, int_pc.u64);
547
548
549 /* Scheduld NAPI now. This will indirectly enable interrupts. */
550 cvm_oct_enable_one_cpu();
497} 551}
498 552
499void cvm_oct_rx_shutdown(void) 553void cvm_oct_rx_shutdown(void)
500{ 554{
501 int i; 555 int i;
502 /* Shutdown all of the tasklets */ 556 /* Shutdown all of the NAPIs */
503 for (i = 0; i < NR_CPUS; i++) 557 for_each_possible_cpu(i)
504 tasklet_kill(&cvm_oct_tasklet[i].t); 558 netif_napi_del(&cvm_oct_napi[i].napi);
505} 559}
diff --git a/drivers/staging/octeon/ethernet-rx.h b/drivers/staging/octeon/ethernet-rx.h
index a9b72b87a7a6..a0743b85d54e 100644
--- a/drivers/staging/octeon/ethernet-rx.h
+++ b/drivers/staging/octeon/ethernet-rx.h
@@ -24,10 +24,29 @@
24 * This file may also be available under a different license from Cavium. 24 * This file may also be available under a different license from Cavium.
25 * Contact Cavium Networks for more information 25 * Contact Cavium Networks for more information
26*********************************************************************/ 26*********************************************************************/
27#include "cvmx-fau.h"
27 28
28irqreturn_t cvm_oct_do_interrupt(int cpl, void *dev_id);
29void cvm_oct_poll_controller(struct net_device *dev); 29void cvm_oct_poll_controller(struct net_device *dev);
30void cvm_oct_tasklet_rx(unsigned long unused);
31
32void cvm_oct_rx_initialize(void); 30void cvm_oct_rx_initialize(void);
33void cvm_oct_rx_shutdown(void); 31void cvm_oct_rx_shutdown(void);
32
33static inline void cvm_oct_rx_refill_pool(int fill_threshold)
34{
35 int number_to_free;
36 int num_freed;
37 /* Refill the packet buffer pool */
38 number_to_free =
39 cvmx_fau_fetch_and_add32(FAU_NUM_PACKET_BUFFERS_TO_FREE, 0);
40
41 if (number_to_free > fill_threshold) {
42 cvmx_fau_atomic_add32(FAU_NUM_PACKET_BUFFERS_TO_FREE,
43 -number_to_free);
44 num_freed = cvm_oct_mem_fill_fpa(CVMX_FPA_PACKET_POOL,
45 CVMX_FPA_PACKET_POOL_SIZE,
46 number_to_free);
47 if (num_freed != number_to_free) {
48 cvmx_fau_atomic_add32(FAU_NUM_PACKET_BUFFERS_TO_FREE,
49 number_to_free - num_freed);
50 }
51 }
52}
diff --git a/drivers/staging/octeon/ethernet-sgmii.c b/drivers/staging/octeon/ethernet-sgmii.c
index 6061d01eca2d..2d8589eb461e 100644
--- a/drivers/staging/octeon/ethernet-sgmii.c
+++ b/drivers/staging/octeon/ethernet-sgmii.c
@@ -26,7 +26,6 @@
26**********************************************************************/ 26**********************************************************************/
27#include <linux/kernel.h> 27#include <linux/kernel.h>
28#include <linux/netdevice.h> 28#include <linux/netdevice.h>
29#include <linux/mii.h>
30#include <net/dst.h> 29#include <net/dst.h>
31 30
32#include <asm/octeon/octeon.h> 31#include <asm/octeon/octeon.h>
diff --git a/drivers/staging/octeon/ethernet-spi.c b/drivers/staging/octeon/ethernet-spi.c
index 00dc0f4bad19..b58b8971f939 100644
--- a/drivers/staging/octeon/ethernet-spi.c
+++ b/drivers/staging/octeon/ethernet-spi.c
@@ -26,7 +26,6 @@
26**********************************************************************/ 26**********************************************************************/
27#include <linux/kernel.h> 27#include <linux/kernel.h>
28#include <linux/netdevice.h> 28#include <linux/netdevice.h>
29#include <linux/mii.h>
30#include <net/dst.h> 29#include <net/dst.h>
31 30
32#include <asm/octeon/octeon.h> 31#include <asm/octeon/octeon.h>
diff --git a/drivers/staging/octeon/ethernet-tx.c b/drivers/staging/octeon/ethernet-tx.c
index 535294105f65..afc2b734d554 100644
--- a/drivers/staging/octeon/ethernet-tx.c
+++ b/drivers/staging/octeon/ethernet-tx.c
@@ -4,7 +4,7 @@
4 * Contact: support@caviumnetworks.com 4 * Contact: support@caviumnetworks.com
5 * This file is part of the OCTEON SDK 5 * This file is part of the OCTEON SDK
6 * 6 *
7 * Copyright (c) 2003-2007 Cavium Networks 7 * Copyright (c) 2003-2010 Cavium Networks
8 * 8 *
9 * This file is free software; you can redistribute it and/or modify 9 * This file is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License, Version 2, as 10 * it under the terms of the GNU General Public License, Version 2, as
@@ -31,10 +31,6 @@
31#include <linux/etherdevice.h> 31#include <linux/etherdevice.h>
32#include <linux/ip.h> 32#include <linux/ip.h>
33#include <linux/string.h> 33#include <linux/string.h>
34#include <linux/ethtool.h>
35#include <linux/mii.h>
36#include <linux/seq_file.h>
37#include <linux/proc_fs.h>
38#include <net/dst.h> 34#include <net/dst.h>
39#ifdef CONFIG_XFRM 35#ifdef CONFIG_XFRM
40#include <linux/xfrm.h> 36#include <linux/xfrm.h>
@@ -52,11 +48,14 @@
52 48
53#include "cvmx-wqe.h" 49#include "cvmx-wqe.h"
54#include "cvmx-fau.h" 50#include "cvmx-fau.h"
51#include "cvmx-pip.h"
55#include "cvmx-pko.h" 52#include "cvmx-pko.h"
56#include "cvmx-helper.h" 53#include "cvmx-helper.h"
57 54
58#include "cvmx-gmxx-defs.h" 55#include "cvmx-gmxx-defs.h"
59 56
57#define CVM_OCT_SKB_CB(skb) ((u64 *)((skb)->cb))
58
60/* 59/*
61 * You can define GET_SKBUFF_QOS() to override how the skbuff output 60 * You can define GET_SKBUFF_QOS() to override how the skbuff output
62 * function determines which output queue is used. The default 61 * function determines which output queue is used. The default
@@ -68,12 +67,81 @@
68#define GET_SKBUFF_QOS(skb) 0 67#define GET_SKBUFF_QOS(skb) 0
69#endif 68#endif
70 69
70static void cvm_oct_tx_do_cleanup(unsigned long arg);
71static DECLARE_TASKLET(cvm_oct_tx_cleanup_tasklet, cvm_oct_tx_do_cleanup, 0);
72
73/* Maximum number of SKBs to try to free per xmit packet. */
74#define MAX_SKB_TO_FREE (MAX_OUT_QUEUE_DEPTH * 2)
75
76static inline int32_t cvm_oct_adjust_skb_to_free(int32_t skb_to_free, int fau)
77{
78 int32_t undo;
79 undo = skb_to_free > 0 ? MAX_SKB_TO_FREE : skb_to_free + MAX_SKB_TO_FREE;
80 if (undo > 0)
81 cvmx_fau_atomic_add32(fau, -undo);
82 skb_to_free = -skb_to_free > MAX_SKB_TO_FREE ? MAX_SKB_TO_FREE : -skb_to_free;
83 return skb_to_free;
84}
85
86static void cvm_oct_kick_tx_poll_watchdog(void)
87{
88 union cvmx_ciu_timx ciu_timx;
89 ciu_timx.u64 = 0;
90 ciu_timx.s.one_shot = 1;
91 ciu_timx.s.len = cvm_oct_tx_poll_interval;
92 cvmx_write_csr(CVMX_CIU_TIMX(1), ciu_timx.u64);
93}
94
95void cvm_oct_free_tx_skbs(struct net_device *dev)
96{
97 int32_t skb_to_free;
98 int qos, queues_per_port;
99 int total_freed = 0;
100 int total_remaining = 0;
101 unsigned long flags;
102 struct octeon_ethernet *priv = netdev_priv(dev);
103
104 queues_per_port = cvmx_pko_get_num_queues(priv->port);
105 /* Drain any pending packets in the free list */
106 for (qos = 0; qos < queues_per_port; qos++) {
107 if (skb_queue_len(&priv->tx_free_list[qos]) == 0)
108 continue;
109 skb_to_free = cvmx_fau_fetch_and_add32(priv->fau+qos*4, MAX_SKB_TO_FREE);
110 skb_to_free = cvm_oct_adjust_skb_to_free(skb_to_free, priv->fau+qos*4);
111
112
113 total_freed += skb_to_free;
114 if (skb_to_free > 0) {
115 struct sk_buff *to_free_list = NULL;
116 spin_lock_irqsave(&priv->tx_free_list[qos].lock, flags);
117 while (skb_to_free > 0) {
118 struct sk_buff *t = __skb_dequeue(&priv->tx_free_list[qos]);
119 t->next = to_free_list;
120 to_free_list = t;
121 skb_to_free--;
122 }
123 spin_unlock_irqrestore(&priv->tx_free_list[qos].lock, flags);
124 /* Do the actual freeing outside of the lock. */
125 while (to_free_list) {
126 struct sk_buff *t = to_free_list;
127 to_free_list = to_free_list->next;
128 dev_kfree_skb_any(t);
129 }
130 }
131 total_remaining += skb_queue_len(&priv->tx_free_list[qos]);
132 }
133 if (total_freed >= 0 && netif_queue_stopped(dev))
134 netif_wake_queue(dev);
135 if (total_remaining)
136 cvm_oct_kick_tx_poll_watchdog();
137}
138
71/** 139/**
72 * Packet transmit 140 * cvm_oct_xmit - transmit a packet
73 *
74 * @skb: Packet to send 141 * @skb: Packet to send
75 * @dev: Device info structure 142 * @dev: Device info structure
76 * Returns Always returns zero 143 *
144 * Returns Always returns NETDEV_TX_OK
77 */ 145 */
78int cvm_oct_xmit(struct sk_buff *skb, struct net_device *dev) 146int cvm_oct_xmit(struct sk_buff *skb, struct net_device *dev)
79{ 147{
@@ -81,13 +149,15 @@ int cvm_oct_xmit(struct sk_buff *skb, struct net_device *dev)
81 union cvmx_buf_ptr hw_buffer; 149 union cvmx_buf_ptr hw_buffer;
82 uint64_t old_scratch; 150 uint64_t old_scratch;
83 uint64_t old_scratch2; 151 uint64_t old_scratch2;
84 int dropped;
85 int qos; 152 int qos;
86 int queue_it_up; 153 int i;
154 enum {QUEUE_CORE, QUEUE_HW, QUEUE_DROP} queue_type;
87 struct octeon_ethernet *priv = netdev_priv(dev); 155 struct octeon_ethernet *priv = netdev_priv(dev);
156 struct sk_buff *to_free_list;
88 int32_t skb_to_free; 157 int32_t skb_to_free;
89 int32_t undo;
90 int32_t buffers_to_free; 158 int32_t buffers_to_free;
159 u32 total_to_clean;
160 unsigned long flags;
91#if REUSE_SKBUFFS_WITHOUT_FREE 161#if REUSE_SKBUFFS_WITHOUT_FREE
92 unsigned char *fpa_head; 162 unsigned char *fpa_head;
93#endif 163#endif
@@ -98,9 +168,6 @@ int cvm_oct_xmit(struct sk_buff *skb, struct net_device *dev)
98 */ 168 */
99 prefetch(priv); 169 prefetch(priv);
100 170
101 /* Start off assuming no drop */
102 dropped = 0;
103
104 /* 171 /*
105 * The check on CVMX_PKO_QUEUES_PER_PORT_* is designed to 172 * The check on CVMX_PKO_QUEUES_PER_PORT_* is designed to
106 * completely remove "qos" in the event neither interface 173 * completely remove "qos" in the event neither interface
@@ -135,6 +202,28 @@ int cvm_oct_xmit(struct sk_buff *skb, struct net_device *dev)
135 } 202 }
136 203
137 /* 204 /*
205 * We have space for 6 segment pointers, If there will be more
206 * than that, we must linearize.
207 */
208 if (unlikely(skb_shinfo(skb)->nr_frags > 5)) {
209 if (unlikely(__skb_linearize(skb))) {
210 queue_type = QUEUE_DROP;
211 if (USE_ASYNC_IOBDMA) {
212 /* Get the number of skbuffs in use by the hardware */
213 CVMX_SYNCIOBDMA;
214 skb_to_free = cvmx_scratch_read64(CVMX_SCR_SCRATCH);
215 } else {
216 /* Get the number of skbuffs in use by the hardware */
217 skb_to_free = cvmx_fau_fetch_and_add32(priv->fau + qos * 4,
218 MAX_SKB_TO_FREE);
219 }
220 skb_to_free = cvm_oct_adjust_skb_to_free(skb_to_free, priv->fau + qos * 4);
221 spin_lock_irqsave(&priv->tx_free_list[qos].lock, flags);
222 goto skip_xmit;
223 }
224 }
225
226 /*
138 * The CN3XXX series of parts has an errata (GMX-401) which 227 * The CN3XXX series of parts has an errata (GMX-401) which
139 * causes the GMX block to hang if a collision occurs towards 228 * causes the GMX block to hang if a collision occurs towards
140 * the end of a <68 byte packet. As a workaround for this, we 229 * the end of a <68 byte packet. As a workaround for this, we
@@ -162,13 +251,6 @@ int cvm_oct_xmit(struct sk_buff *skb, struct net_device *dev)
162 } 251 }
163 } 252 }
164 253
165 /* Build the PKO buffer pointer */
166 hw_buffer.u64 = 0;
167 hw_buffer.s.addr = cvmx_ptr_to_phys(skb->data);
168 hw_buffer.s.pool = 0;
169 hw_buffer.s.size =
170 (unsigned long)skb_end_pointer(skb) - (unsigned long)skb->head;
171
172 /* Build the PKO command */ 254 /* Build the PKO command */
173 pko_command.u64 = 0; 255 pko_command.u64 = 0;
174 pko_command.s.n2 = 1; /* Don't pollute L2 with the outgoing packet */ 256 pko_command.s.n2 = 1; /* Don't pollute L2 with the outgoing packet */
@@ -178,7 +260,31 @@ int cvm_oct_xmit(struct sk_buff *skb, struct net_device *dev)
178 pko_command.s.subone0 = 1; 260 pko_command.s.subone0 = 1;
179 261
180 pko_command.s.dontfree = 1; 262 pko_command.s.dontfree = 1;
181 pko_command.s.reg0 = priv->fau + qos * 4; 263
264 /* Build the PKO buffer pointer */
265 hw_buffer.u64 = 0;
266 if (skb_shinfo(skb)->nr_frags == 0) {
267 hw_buffer.s.addr = XKPHYS_TO_PHYS((u64)skb->data);
268 hw_buffer.s.pool = 0;
269 hw_buffer.s.size = skb->len;
270 } else {
271 hw_buffer.s.addr = XKPHYS_TO_PHYS((u64)skb->data);
272 hw_buffer.s.pool = 0;
273 hw_buffer.s.size = skb_headlen(skb);
274 CVM_OCT_SKB_CB(skb)[0] = hw_buffer.u64;
275 for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) {
276 struct skb_frag_struct *fs = skb_shinfo(skb)->frags + i;
277 hw_buffer.s.addr = XKPHYS_TO_PHYS((u64)(page_address(fs->page) + fs->page_offset));
278 hw_buffer.s.size = fs->size;
279 CVM_OCT_SKB_CB(skb)[i + 1] = hw_buffer.u64;
280 }
281 hw_buffer.s.addr = XKPHYS_TO_PHYS((u64)CVM_OCT_SKB_CB(skb));
282 hw_buffer.s.size = skb_shinfo(skb)->nr_frags + 1;
283 pko_command.s.segs = skb_shinfo(skb)->nr_frags + 1;
284 pko_command.s.gather = 1;
285 goto dont_put_skbuff_in_hw;
286 }
287
182 /* 288 /*
183 * See if we can put this skb in the FPA pool. Any strange 289 * See if we can put this skb in the FPA pool. Any strange
184 * behavior from the Linux networking stack will most likely 290 * behavior from the Linux networking stack will most likely
@@ -190,7 +296,7 @@ int cvm_oct_xmit(struct sk_buff *skb, struct net_device *dev)
190 * shown a 25% increase in performance under some loads. 296 * shown a 25% increase in performance under some loads.
191 */ 297 */
192#if REUSE_SKBUFFS_WITHOUT_FREE 298#if REUSE_SKBUFFS_WITHOUT_FREE
193 fpa_head = skb->head + 128 - ((unsigned long)skb->head & 0x7f); 299 fpa_head = skb->head + 256 - ((unsigned long)skb->head & 0x7f);
194 if (unlikely(skb->data < fpa_head)) { 300 if (unlikely(skb->data < fpa_head)) {
195 /* 301 /*
196 * printk("TX buffer beginning can't meet FPA 302 * printk("TX buffer beginning can't meet FPA
@@ -248,10 +354,9 @@ int cvm_oct_xmit(struct sk_buff *skb, struct net_device *dev)
248 * We can use this buffer in the FPA. We don't need the FAU 354 * We can use this buffer in the FPA. We don't need the FAU
249 * update anymore 355 * update anymore
250 */ 356 */
251 pko_command.s.reg0 = 0;
252 pko_command.s.dontfree = 0; 357 pko_command.s.dontfree = 0;
253 358
254 hw_buffer.s.back = (skb->data - fpa_head) >> 7; 359 hw_buffer.s.back = ((unsigned long)skb->data >> 7) - ((unsigned long)fpa_head >> 7);
255 *(struct sk_buff **)(fpa_head - sizeof(void *)) = skb; 360 *(struct sk_buff **)(fpa_head - sizeof(void *)) = skb;
256 361
257 /* 362 /*
@@ -272,16 +377,16 @@ int cvm_oct_xmit(struct sk_buff *skb, struct net_device *dev)
272 skb->tc_verd = 0; 377 skb->tc_verd = 0;
273#endif /* CONFIG_NET_CLS_ACT */ 378#endif /* CONFIG_NET_CLS_ACT */
274#endif /* CONFIG_NET_SCHED */ 379#endif /* CONFIG_NET_SCHED */
380#endif /* REUSE_SKBUFFS_WITHOUT_FREE */
275 381
276dont_put_skbuff_in_hw: 382dont_put_skbuff_in_hw:
277#endif /* REUSE_SKBUFFS_WITHOUT_FREE */
278 383
279 /* Check if we can use the hardware checksumming */ 384 /* Check if we can use the hardware checksumming */
280 if (USE_HW_TCPUDP_CHECKSUM && (skb->protocol == htons(ETH_P_IP)) && 385 if (USE_HW_TCPUDP_CHECKSUM && (skb->protocol == htons(ETH_P_IP)) &&
281 (ip_hdr(skb)->version == 4) && (ip_hdr(skb)->ihl == 5) && 386 (ip_hdr(skb)->version == 4) && (ip_hdr(skb)->ihl == 5) &&
282 ((ip_hdr(skb)->frag_off == 0) || (ip_hdr(skb)->frag_off == 1 << 14)) 387 ((ip_hdr(skb)->frag_off == 0) || (ip_hdr(skb)->frag_off == 1 << 14))
283 && ((ip_hdr(skb)->protocol == IP_PROTOCOL_TCP) 388 && ((ip_hdr(skb)->protocol == IPPROTO_TCP)
284 || (ip_hdr(skb)->protocol == IP_PROTOCOL_UDP))) { 389 || (ip_hdr(skb)->protocol == IPPROTO_UDP))) {
285 /* Use hardware checksum calc */ 390 /* Use hardware checksum calc */
286 pko_command.s.ipoffp1 = sizeof(struct ethhdr) + 1; 391 pko_command.s.ipoffp1 = sizeof(struct ethhdr) + 1;
287 } 392 }
@@ -299,89 +404,116 @@ dont_put_skbuff_in_hw:
299 cvmx_fau_fetch_and_add32(FAU_NUM_PACKET_BUFFERS_TO_FREE, 0); 404 cvmx_fau_fetch_and_add32(FAU_NUM_PACKET_BUFFERS_TO_FREE, 0);
300 } 405 }
301 406
302 /* 407 skb_to_free = cvm_oct_adjust_skb_to_free(skb_to_free, priv->fau+qos*4);
303 * We try to claim MAX_SKB_TO_FREE buffers. If there were not
304 * that many available, we have to un-claim (undo) any that
305 * were in excess. If skb_to_free is positive we will free
306 * that many buffers.
307 */
308 undo = skb_to_free > 0 ?
309 MAX_SKB_TO_FREE : skb_to_free + MAX_SKB_TO_FREE;
310 if (undo > 0)
311 cvmx_fau_atomic_add32(priv->fau+qos*4, -undo);
312 skb_to_free = -skb_to_free > MAX_SKB_TO_FREE ?
313 MAX_SKB_TO_FREE : -skb_to_free;
314 408
315 /* 409 /*
316 * If we're sending faster than the receive can free them then 410 * If we're sending faster than the receive can free them then
317 * don't do the HW free. 411 * don't do the HW free.
318 */ 412 */
319 if ((buffers_to_free < -100) && !pko_command.s.dontfree) { 413 if ((buffers_to_free < -100) && !pko_command.s.dontfree)
320 pko_command.s.dontfree = 1; 414 pko_command.s.dontfree = 1;
321 pko_command.s.reg0 = priv->fau + qos * 4; 415
416 if (pko_command.s.dontfree) {
417 queue_type = QUEUE_CORE;
418 pko_command.s.reg0 = priv->fau+qos*4;
419 } else {
420 queue_type = QUEUE_HW;
322 } 421 }
422 if (USE_ASYNC_IOBDMA)
423 cvmx_fau_async_fetch_and_add32(CVMX_SCR_SCRATCH, FAU_TOTAL_TX_TO_CLEAN, 1);
323 424
324 cvmx_pko_send_packet_prepare(priv->port, priv->queue + qos, 425 spin_lock_irqsave(&priv->tx_free_list[qos].lock, flags);
325 CVMX_PKO_LOCK_CMD_QUEUE);
326 426
327 /* Drop this packet if we have too many already queued to the HW */ 427 /* Drop this packet if we have too many already queued to the HW */
328 if (unlikely 428 if (unlikely(skb_queue_len(&priv->tx_free_list[qos]) >= MAX_OUT_QUEUE_DEPTH)) {
329 (skb_queue_len(&priv->tx_free_list[qos]) >= MAX_OUT_QUEUE_DEPTH)) { 429 if (dev->tx_queue_len != 0) {
330 /* 430 /* Drop the lock when notifying the core. */
331 DEBUGPRINT("%s: Tx dropped. Too many queued\n", dev->name); 431 spin_unlock_irqrestore(&priv->tx_free_list[qos].lock, flags);
332 */ 432 netif_stop_queue(dev);
333 dropped = 1; 433 spin_lock_irqsave(&priv->tx_free_list[qos].lock, flags);
434 } else {
435 /* If not using normal queueing. */
436 queue_type = QUEUE_DROP;
437 goto skip_xmit;
438 }
334 } 439 }
440
441 cvmx_pko_send_packet_prepare(priv->port, priv->queue + qos,
442 CVMX_PKO_LOCK_NONE);
443
335 /* Send the packet to the output queue */ 444 /* Send the packet to the output queue */
336 else if (unlikely 445 if (unlikely(cvmx_pko_send_packet_finish(priv->port,
337 (cvmx_pko_send_packet_finish 446 priv->queue + qos,
338 (priv->port, priv->queue + qos, pko_command, hw_buffer, 447 pko_command, hw_buffer,
339 CVMX_PKO_LOCK_CMD_QUEUE))) { 448 CVMX_PKO_LOCK_NONE))) {
340 DEBUGPRINT("%s: Failed to send the packet\n", dev->name); 449 DEBUGPRINT("%s: Failed to send the packet\n", dev->name);
341 dropped = 1; 450 queue_type = QUEUE_DROP;
451 }
452skip_xmit:
453 to_free_list = NULL;
454
455 switch (queue_type) {
456 case QUEUE_DROP:
457 skb->next = to_free_list;
458 to_free_list = skb;
459 priv->stats.tx_dropped++;
460 break;
461 case QUEUE_HW:
462 cvmx_fau_atomic_add32(FAU_NUM_PACKET_BUFFERS_TO_FREE, -1);
463 break;
464 case QUEUE_CORE:
465 __skb_queue_tail(&priv->tx_free_list[qos], skb);
466 break;
467 default:
468 BUG();
469 }
470
471 while (skb_to_free > 0) {
472 struct sk_buff *t = __skb_dequeue(&priv->tx_free_list[qos]);
473 t->next = to_free_list;
474 to_free_list = t;
475 skb_to_free--;
476 }
477
478 spin_unlock_irqrestore(&priv->tx_free_list[qos].lock, flags);
479
480 /* Do the actual freeing outside of the lock. */
481 while (to_free_list) {
482 struct sk_buff *t = to_free_list;
483 to_free_list = to_free_list->next;
484 dev_kfree_skb_any(t);
342 } 485 }
343 486
344 if (USE_ASYNC_IOBDMA) { 487 if (USE_ASYNC_IOBDMA) {
488 CVMX_SYNCIOBDMA;
489 total_to_clean = cvmx_scratch_read64(CVMX_SCR_SCRATCH);
345 /* Restore the scratch area */ 490 /* Restore the scratch area */
346 cvmx_scratch_write64(CVMX_SCR_SCRATCH, old_scratch); 491 cvmx_scratch_write64(CVMX_SCR_SCRATCH, old_scratch);
347 cvmx_scratch_write64(CVMX_SCR_SCRATCH + 8, old_scratch2); 492 cvmx_scratch_write64(CVMX_SCR_SCRATCH + 8, old_scratch2);
348 }
349
350 queue_it_up = 0;
351 if (unlikely(dropped)) {
352 dev_kfree_skb_any(skb);
353 priv->stats.tx_dropped++;
354 } else { 493 } else {
355 if (USE_SKBUFFS_IN_HW) { 494 total_to_clean = cvmx_fau_fetch_and_add32(FAU_TOTAL_TX_TO_CLEAN, 1);
356 /* Put this packet on the queue to be freed later */
357 if (pko_command.s.dontfree)
358 queue_it_up = 1;
359 else
360 cvmx_fau_atomic_add32
361 (FAU_NUM_PACKET_BUFFERS_TO_FREE, -1);
362 } else {
363 /* Put this packet on the queue to be freed later */
364 queue_it_up = 1;
365 }
366 } 495 }
367 496
368 if (queue_it_up) { 497 if (total_to_clean & 0x3ff) {
369 spin_lock(&priv->tx_free_list[qos].lock); 498 /*
370 __skb_queue_tail(&priv->tx_free_list[qos], skb); 499 * Schedule the cleanup tasklet every 1024 packets for
371 cvm_oct_free_tx_skbs(priv, skb_to_free, qos, 0); 500 * the pathological case of high traffic on one port
372 spin_unlock(&priv->tx_free_list[qos].lock); 501 * delaying clean up of packets on a different port
373 } else { 502 * that is blocked waiting for the cleanup.
374 cvm_oct_free_tx_skbs(priv, skb_to_free, qos, 1); 503 */
504 tasklet_schedule(&cvm_oct_tx_cleanup_tasklet);
375 } 505 }
376 506
377 return 0; 507 cvm_oct_kick_tx_poll_watchdog();
508
509 return NETDEV_TX_OK;
378} 510}
379 511
380/** 512/**
381 * Packet transmit to the POW 513 * cvm_oct_xmit_pow - transmit a packet to the POW
382 *
383 * @skb: Packet to send 514 * @skb: Packet to send
384 * @dev: Device info structure 515 * @dev: Device info structure
516
385 * Returns Always returns zero 517 * Returns Always returns zero
386 */ 518 */
387int cvm_oct_xmit_pow(struct sk_buff *skb, struct net_device *dev) 519int cvm_oct_xmit_pow(struct sk_buff *skb, struct net_device *dev)
@@ -459,8 +591,8 @@ int cvm_oct_xmit_pow(struct sk_buff *skb, struct net_device *dev)
459 work->word2.s.dec_ipcomp = 0; /* FIXME */ 591 work->word2.s.dec_ipcomp = 0; /* FIXME */
460#endif 592#endif
461 work->word2.s.tcp_or_udp = 593 work->word2.s.tcp_or_udp =
462 (ip_hdr(skb)->protocol == IP_PROTOCOL_TCP) 594 (ip_hdr(skb)->protocol == IPPROTO_TCP)
463 || (ip_hdr(skb)->protocol == IP_PROTOCOL_UDP); 595 || (ip_hdr(skb)->protocol == IPPROTO_UDP);
464#if 0 596#if 0
465 /* FIXME */ 597 /* FIXME */
466 work->word2.s.dec_ipsec = 0; 598 work->word2.s.dec_ipsec = 0;
@@ -529,116 +661,63 @@ int cvm_oct_xmit_pow(struct sk_buff *skb, struct net_device *dev)
529} 661}
530 662
531/** 663/**
532 * Transmit a work queue entry out of the ethernet port. Both 664 * cvm_oct_tx_shutdown_dev - free all skb that are currently queued for TX.
533 * the work queue entry and the packet data can optionally be 665 * @dev: Device being shutdown
534 * freed. The work will be freed on error as well.
535 *
536 * @dev: Device to transmit out.
537 * @work_queue_entry:
538 * Work queue entry to send
539 * @do_free: True if the work queue entry and packet data should be
540 * freed. If false, neither will be freed.
541 * @qos: Index into the queues for this port to transmit on. This
542 * is used to implement QoS if their are multiple queues per
543 * port. This parameter must be between 0 and the number of
544 * queues per port minus 1. Values outside of this range will
545 * be change to zero.
546 * 666 *
547 * Returns Zero on success, negative on failure.
548 */ 667 */
549int cvm_oct_transmit_qos(struct net_device *dev, void *work_queue_entry, 668void cvm_oct_tx_shutdown_dev(struct net_device *dev)
550 int do_free, int qos)
551{ 669{
552 unsigned long flags;
553 union cvmx_buf_ptr hw_buffer;
554 cvmx_pko_command_word0_t pko_command;
555 int dropped;
556 struct octeon_ethernet *priv = netdev_priv(dev); 670 struct octeon_ethernet *priv = netdev_priv(dev);
557 cvmx_wqe_t *work = work_queue_entry; 671 unsigned long flags;
672 int qos;
558 673
559 if (!(dev->flags & IFF_UP)) { 674 for (qos = 0; qos < 16; qos++) {
560 DEBUGPRINT("%s: Device not up\n", dev->name); 675 spin_lock_irqsave(&priv->tx_free_list[qos].lock, flags);
561 if (do_free) 676 while (skb_queue_len(&priv->tx_free_list[qos]))
562 cvm_oct_free_work(work); 677 dev_kfree_skb_any(__skb_dequeue
563 return -1; 678 (&priv->tx_free_list[qos]));
679 spin_unlock_irqrestore(&priv->tx_free_list[qos].lock, flags);
564 } 680 }
681}
565 682
566 /* The check on CVMX_PKO_QUEUES_PER_PORT_* is designed to completely 683static void cvm_oct_tx_do_cleanup(unsigned long arg)
567 remove "qos" in the event neither interface supports 684{
568 multiple queues per port */ 685 int port;
569 if ((CVMX_PKO_QUEUES_PER_PORT_INTERFACE0 > 1) ||
570 (CVMX_PKO_QUEUES_PER_PORT_INTERFACE1 > 1)) {
571 if (qos <= 0)
572 qos = 0;
573 else if (qos >= cvmx_pko_get_num_queues(priv->port))
574 qos = 0;
575 } else
576 qos = 0;
577
578 /* Start off assuming no drop */
579 dropped = 0;
580
581 local_irq_save(flags);
582 cvmx_pko_send_packet_prepare(priv->port, priv->queue + qos,
583 CVMX_PKO_LOCK_CMD_QUEUE);
584
585 /* Build the PKO buffer pointer */
586 hw_buffer.u64 = 0;
587 hw_buffer.s.addr = work->packet_ptr.s.addr;
588 hw_buffer.s.pool = CVMX_FPA_PACKET_POOL;
589 hw_buffer.s.size = CVMX_FPA_PACKET_POOL_SIZE;
590 hw_buffer.s.back = work->packet_ptr.s.back;
591 686
592 /* Build the PKO command */ 687 for (port = 0; port < TOTAL_NUMBER_OF_PORTS; port++) {
593 pko_command.u64 = 0; 688 if (cvm_oct_device[port]) {
594 pko_command.s.n2 = 1; /* Don't pollute L2 with the outgoing packet */ 689 struct net_device *dev = cvm_oct_device[port];
595 pko_command.s.dontfree = !do_free; 690 cvm_oct_free_tx_skbs(dev);
596 pko_command.s.segs = work->word2.s.bufs; 691 }
597 pko_command.s.total_bytes = work->len; 692 }
693}
598 694
599 /* Check if we can use the hardware checksumming */ 695static irqreturn_t cvm_oct_tx_cleanup_watchdog(int cpl, void *dev_id)
600 if (unlikely(work->word2.s.not_IP || work->word2.s.IP_exc)) 696{
601 pko_command.s.ipoffp1 = 0; 697 /* Disable the interrupt. */
602 else 698 cvmx_write_csr(CVMX_CIU_TIMX(1), 0);
603 pko_command.s.ipoffp1 = sizeof(struct ethhdr) + 1; 699 /* Do the work in the tasklet. */
700 tasklet_schedule(&cvm_oct_tx_cleanup_tasklet);
701 return IRQ_HANDLED;
702}
604 703
605 /* Send the packet to the output queue */ 704void cvm_oct_tx_initialize(void)
606 if (unlikely 705{
607 (cvmx_pko_send_packet_finish 706 int i;
608 (priv->port, priv->queue + qos, pko_command, hw_buffer,
609 CVMX_PKO_LOCK_CMD_QUEUE))) {
610 DEBUGPRINT("%s: Failed to send the packet\n", dev->name);
611 dropped = -1;
612 }
613 local_irq_restore(flags);
614 707
615 if (unlikely(dropped)) { 708 /* Disable the interrupt. */
616 if (do_free) 709 cvmx_write_csr(CVMX_CIU_TIMX(1), 0);
617 cvm_oct_free_work(work); 710 /* Register an IRQ hander for to receive CIU_TIMX(1) interrupts */
618 priv->stats.tx_dropped++; 711 i = request_irq(OCTEON_IRQ_TIMER1,
619 } else if (do_free) 712 cvm_oct_tx_cleanup_watchdog, 0,
620 cvmx_fpa_free(work, CVMX_FPA_WQE_POOL, DONT_WRITEBACK(1)); 713 "Ethernet", cvm_oct_device);
621 714
622 return dropped; 715 if (i)
716 panic("Could not acquire Ethernet IRQ %d\n", OCTEON_IRQ_TIMER1);
623} 717}
624EXPORT_SYMBOL(cvm_oct_transmit_qos);
625 718
626/** 719void cvm_oct_tx_shutdown(void)
627 * This function frees all skb that are currently queued for TX.
628 *
629 * @dev: Device being shutdown
630 */
631void cvm_oct_tx_shutdown(struct net_device *dev)
632{ 720{
633 struct octeon_ethernet *priv = netdev_priv(dev); 721 /* Free the interrupt handler */
634 unsigned long flags; 722 free_irq(OCTEON_IRQ_TIMER1, cvm_oct_device);
635 int qos;
636
637 for (qos = 0; qos < 16; qos++) {
638 spin_lock_irqsave(&priv->tx_free_list[qos].lock, flags);
639 while (skb_queue_len(&priv->tx_free_list[qos]))
640 dev_kfree_skb_any(__skb_dequeue
641 (&priv->tx_free_list[qos]));
642 spin_unlock_irqrestore(&priv->tx_free_list[qos].lock, flags);
643 }
644} 723}
diff --git a/drivers/staging/octeon/ethernet-tx.h b/drivers/staging/octeon/ethernet-tx.h
index c0bebf750bc0..547680c6c371 100644
--- a/drivers/staging/octeon/ethernet-tx.h
+++ b/drivers/staging/octeon/ethernet-tx.h
@@ -29,29 +29,6 @@ int cvm_oct_xmit(struct sk_buff *skb, struct net_device *dev);
29int cvm_oct_xmit_pow(struct sk_buff *skb, struct net_device *dev); 29int cvm_oct_xmit_pow(struct sk_buff *skb, struct net_device *dev);
30int cvm_oct_transmit_qos(struct net_device *dev, void *work_queue_entry, 30int cvm_oct_transmit_qos(struct net_device *dev, void *work_queue_entry,
31 int do_free, int qos); 31 int do_free, int qos);
32void cvm_oct_tx_shutdown(struct net_device *dev); 32void cvm_oct_tx_initialize(void);
33 33void cvm_oct_tx_shutdown(void);
34/** 34void cvm_oct_tx_shutdown_dev(struct net_device *dev);
35 * Free dead transmit skbs.
36 *
37 * @priv: The driver data
38 * @skb_to_free: The number of SKBs to free (free none if negative).
39 * @qos: The queue to free from.
40 * @take_lock: If true, acquire the skb list lock.
41 */
42static inline void cvm_oct_free_tx_skbs(struct octeon_ethernet *priv,
43 int skb_to_free,
44 int qos, int take_lock)
45{
46 /* Free skbuffs not in use by the hardware. */
47 if (skb_to_free > 0) {
48 if (take_lock)
49 spin_lock(&priv->tx_free_list[qos].lock);
50 while (skb_to_free > 0) {
51 dev_kfree_skb(__skb_dequeue(&priv->tx_free_list[qos]));
52 skb_to_free--;
53 }
54 if (take_lock)
55 spin_unlock(&priv->tx_free_list[qos].lock);
56 }
57}
diff --git a/drivers/staging/octeon/ethernet-util.h b/drivers/staging/octeon/ethernet-util.h
index 37b665918000..23467563fe57 100644
--- a/drivers/staging/octeon/ethernet-util.h
+++ b/drivers/staging/octeon/ethernet-util.h
@@ -30,10 +30,9 @@
30 } while (0) 30 } while (0)
31 31
32/** 32/**
33 * Given a packet data address, return a pointer to the 33 * cvm_oct_get_buffer_ptr - convert packet data address to pointer
34 * beginning of the packet buffer.
35 *
36 * @packet_ptr: Packet data hardware address 34 * @packet_ptr: Packet data hardware address
35 *
37 * Returns Packet buffer pointer 36 * Returns Packet buffer pointer
38 */ 37 */
39static inline void *cvm_oct_get_buffer_ptr(union cvmx_buf_ptr packet_ptr) 38static inline void *cvm_oct_get_buffer_ptr(union cvmx_buf_ptr packet_ptr)
@@ -43,9 +42,7 @@ static inline void *cvm_oct_get_buffer_ptr(union cvmx_buf_ptr packet_ptr)
43} 42}
44 43
45/** 44/**
46 * Given an IPD/PKO port number, return the logical interface it is 45 * INTERFACE - convert IPD port to locgical interface
47 * on.
48 *
49 * @ipd_port: Port to check 46 * @ipd_port: Port to check
50 * 47 *
51 * Returns Logical interface 48 * Returns Logical interface
@@ -65,9 +62,7 @@ static inline int INTERFACE(int ipd_port)
65} 62}
66 63
67/** 64/**
68 * Given an IPD/PKO port number, return the port's index on a 65 * INDEX - convert IPD/PKO port number to the port's interface index
69 * logical interface.
70 *
71 * @ipd_port: Port to check 66 * @ipd_port: Port to check
72 * 67 *
73 * Returns Index into interface port list 68 * Returns Index into interface port list
diff --git a/drivers/staging/octeon/ethernet-xaui.c b/drivers/staging/octeon/ethernet-xaui.c
index ee3dc41b2c53..3fca1cc31ed8 100644
--- a/drivers/staging/octeon/ethernet-xaui.c
+++ b/drivers/staging/octeon/ethernet-xaui.c
@@ -26,7 +26,6 @@
26**********************************************************************/ 26**********************************************************************/
27#include <linux/kernel.h> 27#include <linux/kernel.h>
28#include <linux/netdevice.h> 28#include <linux/netdevice.h>
29#include <linux/mii.h>
30#include <net/dst.h> 29#include <net/dst.h>
31 30
32#include <asm/octeon/octeon.h> 31#include <asm/octeon/octeon.h>
diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/ethernet.c
index 4cfd4b136b32..02b63678811a 100644
--- a/drivers/staging/octeon/ethernet.c
+++ b/drivers/staging/octeon/ethernet.c
@@ -29,7 +29,6 @@
29#include <linux/module.h> 29#include <linux/module.h>
30#include <linux/netdevice.h> 30#include <linux/netdevice.h>
31#include <linux/etherdevice.h> 31#include <linux/etherdevice.h>
32#include <linux/delay.h>
33#include <linux/phy.h> 32#include <linux/phy.h>
34 33
35#include <net/dst.h> 34#include <net/dst.h>
@@ -43,8 +42,6 @@
43#include "ethernet-tx.h" 42#include "ethernet-tx.h"
44#include "ethernet-mdio.h" 43#include "ethernet-mdio.h"
45#include "ethernet-util.h" 44#include "ethernet-util.h"
46#include "ethernet-proc.h"
47
48 45
49#include "cvmx-pip.h" 46#include "cvmx-pip.h"
50#include "cvmx-pko.h" 47#include "cvmx-pko.h"
@@ -104,13 +101,15 @@ MODULE_PARM_DESC(pow_send_list, "\n"
104 "\t\"eth2,spi3,spi7\" would cause these three devices to transmit\n" 101 "\t\"eth2,spi3,spi7\" would cause these three devices to transmit\n"
105 "\tusing the pow_send_group."); 102 "\tusing the pow_send_group.");
106 103
107static int disable_core_queueing = 1; 104int max_rx_cpus = -1;
108module_param(disable_core_queueing, int, 0444); 105module_param(max_rx_cpus, int, 0444);
109MODULE_PARM_DESC(disable_core_queueing, "\n" 106MODULE_PARM_DESC(max_rx_cpus, "\n"
110 "\tWhen set the networking core's tx_queue_len is set to zero. This\n" 107 "\t\tThe maximum number of CPUs to use for packet reception.\n"
111 "\tallows packets to be sent without lock contention in the packet\n" 108 "\t\tUse -1 to use all available CPUs.");
112 "\tscheduler resulting in some cases in improved throughput.\n");
113 109
110int rx_napi_weight = 32;
111module_param(rx_napi_weight, int, 0444);
112MODULE_PARM_DESC(rx_napi_weight, "The NAPI WEIGHT parameter.");
114 113
115/* 114/*
116 * The offset from mac_addr_base that should be used for the next port 115 * The offset from mac_addr_base that should be used for the next port
@@ -122,9 +121,16 @@ MODULE_PARM_DESC(disable_core_queueing, "\n"
122static unsigned int cvm_oct_mac_addr_offset; 121static unsigned int cvm_oct_mac_addr_offset;
123 122
124/** 123/**
125 * Periodic timer to check auto negotiation 124 * cvm_oct_poll_queue - Workqueue for polling operations.
125 */
126struct workqueue_struct *cvm_oct_poll_queue;
127
128/**
129 * cvm_oct_poll_queue_stopping - flag to indicate polling should stop.
130 *
131 * Set to one right before cvm_oct_poll_queue is destroyed.
126 */ 132 */
127static struct timer_list cvm_oct_poll_timer; 133atomic_t cvm_oct_poll_queue_stopping = ATOMIC_INIT(0);
128 134
129/** 135/**
130 * Array of every ethernet device owned by this driver indexed by 136 * Array of every ethernet device owned by this driver indexed by
@@ -132,65 +138,44 @@ static struct timer_list cvm_oct_poll_timer;
132 */ 138 */
133struct net_device *cvm_oct_device[TOTAL_NUMBER_OF_PORTS]; 139struct net_device *cvm_oct_device[TOTAL_NUMBER_OF_PORTS];
134 140
135/** 141u64 cvm_oct_tx_poll_interval;
136 * Periodic timer tick for slow management operations 142
137 * 143static void cvm_oct_rx_refill_worker(struct work_struct *work);
138 * @arg: Device to check 144static DECLARE_DELAYED_WORK(cvm_oct_rx_refill_work, cvm_oct_rx_refill_worker);
139 */ 145
140static void cvm_do_timer(unsigned long arg) 146static void cvm_oct_rx_refill_worker(struct work_struct *work)
141{ 147{
142 int32_t skb_to_free, undo; 148 /*
143 int queues_per_port; 149 * FPA 0 may have been drained, try to refill it if we need
144 int qos; 150 * more than num_packet_buffers / 2, otherwise normal receive
145 struct octeon_ethernet *priv; 151 * processing will refill it. If it were drained, no packets
146 static int port; 152 * could be received so cvm_oct_napi_poll would never be
153 * invoked to do the refill.
154 */
155 cvm_oct_rx_refill_pool(num_packet_buffers / 2);
147 156
148 if (port >= CVMX_PIP_NUM_INPUT_PORTS) { 157 if (!atomic_read(&cvm_oct_poll_queue_stopping))
149 /* 158 queue_delayed_work(cvm_oct_poll_queue,
150 * All ports have been polled. Start the next 159 &cvm_oct_rx_refill_work, HZ);
151 * iteration through the ports in one second. 160}
152 */ 161
153 port = 0; 162static void cvm_oct_periodic_worker(struct work_struct *work)
154 mod_timer(&cvm_oct_poll_timer, jiffies + HZ); 163{
155 return; 164 struct octeon_ethernet *priv = container_of(work,
156 } 165 struct octeon_ethernet,
157 if (!cvm_oct_device[port]) 166 port_periodic_work.work);
158 goto out;
159 167
160 priv = netdev_priv(cvm_oct_device[port]);
161 if (priv->poll) 168 if (priv->poll)
162 priv->poll(cvm_oct_device[port]); 169 priv->poll(cvm_oct_device[priv->port]);
163
164 queues_per_port = cvmx_pko_get_num_queues(port);
165 /* Drain any pending packets in the free list */
166 for (qos = 0; qos < queues_per_port; qos++) {
167 if (skb_queue_len(&priv->tx_free_list[qos]) == 0)
168 continue;
169 skb_to_free = cvmx_fau_fetch_and_add32(priv->fau + qos * 4,
170 MAX_SKB_TO_FREE);
171 undo = skb_to_free > 0 ?
172 MAX_SKB_TO_FREE : skb_to_free + MAX_SKB_TO_FREE;
173 if (undo > 0)
174 cvmx_fau_atomic_add32(priv->fau+qos*4, -undo);
175 skb_to_free = -skb_to_free > MAX_SKB_TO_FREE ?
176 MAX_SKB_TO_FREE : -skb_to_free;
177 cvm_oct_free_tx_skbs(priv, skb_to_free, qos, 1);
178 }
179 cvm_oct_device[port]->netdev_ops->ndo_get_stats(cvm_oct_device[port]);
180 170
181out: 171 cvm_oct_device[priv->port]->netdev_ops->ndo_get_stats(cvm_oct_device[priv->port]);
182 port++; 172
183 /* Poll the next port in a 50th of a second. 173 if (!atomic_read(&cvm_oct_poll_queue_stopping))
184 This spreads the polling of ports out a little bit */ 174 queue_delayed_work(cvm_oct_poll_queue, &priv->port_periodic_work, HZ);
185 mod_timer(&cvm_oct_poll_timer, jiffies + HZ / 50); 175 }
186}
187 176
188/**
189 * Configure common hardware for all interfaces
190 */
191static __init void cvm_oct_configure_common_hw(void) 177static __init void cvm_oct_configure_common_hw(void)
192{ 178{
193 int r;
194 /* Setup the FPA */ 179 /* Setup the FPA */
195 cvmx_fpa_enable(); 180 cvmx_fpa_enable();
196 cvm_oct_mem_fill_fpa(CVMX_FPA_PACKET_POOL, CVMX_FPA_PACKET_POOL_SIZE, 181 cvm_oct_mem_fill_fpa(CVMX_FPA_PACKET_POOL, CVMX_FPA_PACKET_POOL_SIZE,
@@ -205,28 +190,13 @@ static __init void cvm_oct_configure_common_hw(void)
205 cvmx_helper_setup_red(num_packet_buffers / 4, 190 cvmx_helper_setup_red(num_packet_buffers / 4,
206 num_packet_buffers / 8); 191 num_packet_buffers / 8);
207 192
208 /* Enable the MII interface */
209 if (!octeon_is_simulation())
210 cvmx_write_csr(CVMX_SMIX_EN(0), 1);
211
212 /* Register an IRQ hander for to receive POW interrupts */
213 r = request_irq(OCTEON_IRQ_WORKQ0 + pow_receive_group,
214 cvm_oct_do_interrupt, IRQF_SHARED, "Ethernet",
215 cvm_oct_device);
216
217#if defined(CONFIG_SMP) && 0
218 if (USE_MULTICORE_RECEIVE) {
219 irq_set_affinity(OCTEON_IRQ_WORKQ0 + pow_receive_group,
220 cpu_online_mask);
221 }
222#endif
223} 193}
224 194
225/** 195/**
226 * Free a work queue entry received in a intercept callback. 196 * cvm_oct_free_work- Free a work queue entry
197 *
198 * @work_queue_entry: Work queue entry to free
227 * 199 *
228 * @work_queue_entry:
229 * Work queue entry to free
230 * Returns Zero on success, Negative on failure. 200 * Returns Zero on success, Negative on failure.
231 */ 201 */
232int cvm_oct_free_work(void *work_queue_entry) 202int cvm_oct_free_work(void *work_queue_entry)
@@ -253,9 +223,9 @@ int cvm_oct_free_work(void *work_queue_entry)
253EXPORT_SYMBOL(cvm_oct_free_work); 223EXPORT_SYMBOL(cvm_oct_free_work);
254 224
255/** 225/**
256 * Get the low level ethernet statistics 226 * cvm_oct_common_get_stats - get the low level ethernet statistics
257 *
258 * @dev: Device to get the statistics from 227 * @dev: Device to get the statistics from
228 *
259 * Returns Pointer to the statistics 229 * Returns Pointer to the statistics
260 */ 230 */
261static struct net_device_stats *cvm_oct_common_get_stats(struct net_device *dev) 231static struct net_device_stats *cvm_oct_common_get_stats(struct net_device *dev)
@@ -299,8 +269,7 @@ static struct net_device_stats *cvm_oct_common_get_stats(struct net_device *dev)
299} 269}
300 270
301/** 271/**
302 * Change the link MTU. Unimplemented 272 * cvm_oct_common_change_mtu - change the link MTU
303 *
304 * @dev: Device to change 273 * @dev: Device to change
305 * @new_mtu: The new MTU 274 * @new_mtu: The new MTU
306 * 275 *
@@ -364,8 +333,7 @@ static int cvm_oct_common_change_mtu(struct net_device *dev, int new_mtu)
364} 333}
365 334
366/** 335/**
367 * Set the multicast list. Currently unimplemented. 336 * cvm_oct_common_set_multicast_list - set the multicast list
368 *
369 * @dev: Device to work on 337 * @dev: Device to work on
370 */ 338 */
371static void cvm_oct_common_set_multicast_list(struct net_device *dev) 339static void cvm_oct_common_set_multicast_list(struct net_device *dev)
@@ -420,10 +388,10 @@ static void cvm_oct_common_set_multicast_list(struct net_device *dev)
420} 388}
421 389
422/** 390/**
423 * Set the hardware MAC address for a device 391 * cvm_oct_common_set_mac_address - set the hardware MAC address for a device
424 * 392 * @dev: The device in question.
425 * @dev: Device to change the MAC address for 393 * @addr: Address structure to change it too.
426 * @addr: Address structure to change it too. MAC address is addr + 2. 394
427 * Returns Zero on success 395 * Returns Zero on success
428 */ 396 */
429static int cvm_oct_common_set_mac_address(struct net_device *dev, void *addr) 397static int cvm_oct_common_set_mac_address(struct net_device *dev, void *addr)
@@ -470,9 +438,9 @@ static int cvm_oct_common_set_mac_address(struct net_device *dev, void *addr)
470} 438}
471 439
472/** 440/**
473 * Per network device initialization 441 * cvm_oct_common_init - per network device initialization
474 *
475 * @dev: Device to initialize 442 * @dev: Device to initialize
443 *
476 * Returns Zero on success 444 * Returns Zero on success
477 */ 445 */
478int cvm_oct_common_init(struct net_device *dev) 446int cvm_oct_common_init(struct net_device *dev)
@@ -510,8 +478,11 @@ int cvm_oct_common_init(struct net_device *dev)
510 && (always_use_pow || strstr(pow_send_list, dev->name))) 478 && (always_use_pow || strstr(pow_send_list, dev->name)))
511 priv->queue = -1; 479 priv->queue = -1;
512 480
513 if (priv->queue != -1 && USE_HW_TCPUDP_CHECKSUM) 481 if (priv->queue != -1) {
514 dev->features |= NETIF_F_IP_CSUM; 482 dev->features |= NETIF_F_SG;
483 if (USE_HW_TCPUDP_CHECKSUM)
484 dev->features |= NETIF_F_IP_CSUM;
485 }
515 486
516 /* We do our own locking, Linux doesn't need to */ 487 /* We do our own locking, Linux doesn't need to */
517 dev->features |= NETIF_F_LLTX; 488 dev->features |= NETIF_F_LLTX;
@@ -625,12 +596,6 @@ static const struct net_device_ops cvm_oct_pow_netdev_ops = {
625 596
626extern void octeon_mdiobus_force_mod_depencency(void); 597extern void octeon_mdiobus_force_mod_depencency(void);
627 598
628/**
629 * Module/ driver initialization. Creates the linux network
630 * devices.
631 *
632 * Returns Zero on success
633 */
634static int __init cvm_oct_init_module(void) 599static int __init cvm_oct_init_module(void)
635{ 600{
636 int num_interfaces; 601 int num_interfaces;
@@ -648,8 +613,12 @@ static int __init cvm_oct_init_module(void)
648 else 613 else
649 cvm_oct_mac_addr_offset = 0; 614 cvm_oct_mac_addr_offset = 0;
650 615
651 cvm_oct_proc_initialize(); 616 cvm_oct_poll_queue = create_singlethread_workqueue("octeon-ethernet");
652 cvm_oct_rx_initialize(); 617 if (cvm_oct_poll_queue == NULL) {
618 pr_err("octeon-ethernet: Cannot create workqueue");
619 return -ENOMEM;
620 }
621
653 cvm_oct_configure_common_hw(); 622 cvm_oct_configure_common_hw();
654 623
655 cvmx_helper_initialize_packet_io_global(); 624 cvmx_helper_initialize_packet_io_global();
@@ -682,6 +651,9 @@ static int __init cvm_oct_init_module(void)
682 */ 651 */
683 cvmx_fau_atomic_write32(FAU_NUM_PACKET_BUFFERS_TO_FREE, 0); 652 cvmx_fau_atomic_write32(FAU_NUM_PACKET_BUFFERS_TO_FREE, 0);
684 653
654 /* Initialize the FAU used for counting tx SKBs that need to be freed */
655 cvmx_fau_atomic_write32(FAU_TOTAL_TX_TO_CLEAN, 0);
656
685 if ((pow_send_group != -1)) { 657 if ((pow_send_group != -1)) {
686 struct net_device *dev; 658 struct net_device *dev;
687 pr_info("\tConfiguring device for POW only access\n"); 659 pr_info("\tConfiguring device for POW only access\n");
@@ -689,7 +661,6 @@ static int __init cvm_oct_init_module(void)
689 if (dev) { 661 if (dev) {
690 /* Initialize the device private structure. */ 662 /* Initialize the device private structure. */
691 struct octeon_ethernet *priv = netdev_priv(dev); 663 struct octeon_ethernet *priv = netdev_priv(dev);
692 memset(priv, 0, sizeof(struct octeon_ethernet));
693 664
694 dev->netdev_ops = &cvm_oct_pow_netdev_ops; 665 dev->netdev_ops = &cvm_oct_pow_netdev_ops;
695 priv->imode = CVMX_HELPER_INTERFACE_MODE_DISABLED; 666 priv->imode = CVMX_HELPER_INTERFACE_MODE_DISABLED;
@@ -700,19 +671,16 @@ static int __init cvm_oct_init_module(void)
700 skb_queue_head_init(&priv->tx_free_list[qos]); 671 skb_queue_head_init(&priv->tx_free_list[qos]);
701 672
702 if (register_netdev(dev) < 0) { 673 if (register_netdev(dev) < 0) {
703 pr_err("Failed to register ethernet " 674 pr_err("Failed to register ethernet device for POW\n");
704 "device for POW\n");
705 kfree(dev); 675 kfree(dev);
706 } else { 676 } else {
707 cvm_oct_device[CVMX_PIP_NUM_INPUT_PORTS] = dev; 677 cvm_oct_device[CVMX_PIP_NUM_INPUT_PORTS] = dev;
708 pr_info("%s: POW send group %d, receive " 678 pr_info("%s: POW send group %d, receive group %d\n",
709 "group %d\n", 679 dev->name, pow_send_group,
710 dev->name, pow_send_group, 680 pow_receive_group);
711 pow_receive_group);
712 } 681 }
713 } else { 682 } else {
714 pr_err("Failed to allocate ethernet device " 683 pr_err("Failed to allocate ethernet device for POW\n");
715 "for POW\n");
716 } 684 }
717 } 685 }
718 686
@@ -730,17 +698,15 @@ static int __init cvm_oct_init_module(void)
730 struct net_device *dev = 698 struct net_device *dev =
731 alloc_etherdev(sizeof(struct octeon_ethernet)); 699 alloc_etherdev(sizeof(struct octeon_ethernet));
732 if (!dev) { 700 if (!dev) {
733 pr_err("Failed to allocate ethernet device " 701 pr_err("Failed to allocate ethernet device for port %d\n", port);
734 "for port %d\n", port);
735 continue; 702 continue;
736 } 703 }
737 if (disable_core_queueing)
738 dev->tx_queue_len = 0;
739 704
740 /* Initialize the device private structure. */ 705 /* Initialize the device private structure. */
741 priv = netdev_priv(dev); 706 priv = netdev_priv(dev);
742 memset(priv, 0, sizeof(struct octeon_ethernet));
743 707
708 INIT_DELAYED_WORK(&priv->port_periodic_work,
709 cvm_oct_periodic_worker);
744 priv->imode = imode; 710 priv->imode = imode;
745 priv->port = port; 711 priv->port = port;
746 priv->queue = cvmx_pko_get_base_queue(priv->port); 712 priv->queue = cvmx_pko_get_base_queue(priv->port);
@@ -803,44 +769,25 @@ static int __init cvm_oct_init_module(void)
803 fau -= 769 fau -=
804 cvmx_pko_get_num_queues(priv->port) * 770 cvmx_pko_get_num_queues(priv->port) *
805 sizeof(uint32_t); 771 sizeof(uint32_t);
772 queue_delayed_work(cvm_oct_poll_queue,
773 &priv->port_periodic_work, HZ);
806 } 774 }
807 } 775 }
808 } 776 }
809 777
810 if (INTERRUPT_LIMIT) { 778 cvm_oct_tx_initialize();
811 /* 779 cvm_oct_rx_initialize();
812 * Set the POW timer rate to give an interrupt at most
813 * INTERRUPT_LIMIT times per second.
814 */
815 cvmx_write_csr(CVMX_POW_WQ_INT_PC,
816 octeon_bootinfo->eclock_hz / (INTERRUPT_LIMIT *
817 16 * 256) << 8);
818 780
819 /* 781 /*
820 * Enable POW timer interrupt. It will count when 782 * 150 uS: about 10 1500-byte packtes at 1GE.
821 * there are packets available. 783 */
822 */ 784 cvm_oct_tx_poll_interval = 150 * (octeon_get_clock_rate() / 1000000);
823 cvmx_write_csr(CVMX_POW_WQ_INT_THRX(pow_receive_group),
824 0x1ful << 24);
825 } else {
826 /* Enable POW interrupt when our port has at least one packet */
827 cvmx_write_csr(CVMX_POW_WQ_INT_THRX(pow_receive_group), 0x1001);
828 }
829 785
830 /* Enable the poll timer for checking RGMII status */ 786 queue_delayed_work(cvm_oct_poll_queue, &cvm_oct_rx_refill_work, HZ);
831 init_timer(&cvm_oct_poll_timer);
832 cvm_oct_poll_timer.data = 0;
833 cvm_oct_poll_timer.function = cvm_do_timer;
834 mod_timer(&cvm_oct_poll_timer, jiffies + HZ);
835 787
836 return 0; 788 return 0;
837} 789}
838 790
839/**
840 * Module / driver shutdown
841 *
842 * Returns Zero on success
843 */
844static void __exit cvm_oct_cleanup_module(void) 791static void __exit cvm_oct_cleanup_module(void)
845{ 792{
846 int port; 793 int port;
@@ -853,22 +800,31 @@ static void __exit cvm_oct_cleanup_module(void)
853 /* Free the interrupt handler */ 800 /* Free the interrupt handler */
854 free_irq(OCTEON_IRQ_WORKQ0 + pow_receive_group, cvm_oct_device); 801 free_irq(OCTEON_IRQ_WORKQ0 + pow_receive_group, cvm_oct_device);
855 802
856 del_timer(&cvm_oct_poll_timer); 803 atomic_inc_return(&cvm_oct_poll_queue_stopping);
804 cancel_delayed_work_sync(&cvm_oct_rx_refill_work);
805
857 cvm_oct_rx_shutdown(); 806 cvm_oct_rx_shutdown();
807 cvm_oct_tx_shutdown();
808
858 cvmx_pko_disable(); 809 cvmx_pko_disable();
859 810
860 /* Free the ethernet devices */ 811 /* Free the ethernet devices */
861 for (port = 0; port < TOTAL_NUMBER_OF_PORTS; port++) { 812 for (port = 0; port < TOTAL_NUMBER_OF_PORTS; port++) {
862 if (cvm_oct_device[port]) { 813 if (cvm_oct_device[port]) {
863 cvm_oct_tx_shutdown(cvm_oct_device[port]); 814 struct net_device *dev = cvm_oct_device[port];
864 unregister_netdev(cvm_oct_device[port]); 815 struct octeon_ethernet *priv = netdev_priv(dev);
865 kfree(cvm_oct_device[port]); 816 cancel_delayed_work_sync(&priv->port_periodic_work);
817
818 cvm_oct_tx_shutdown_dev(dev);
819 unregister_netdev(dev);
820 kfree(dev);
866 cvm_oct_device[port] = NULL; 821 cvm_oct_device[port] = NULL;
867 } 822 }
868 } 823 }
869 824
825 destroy_workqueue(cvm_oct_poll_queue);
826
870 cvmx_pko_shutdown(); 827 cvmx_pko_shutdown();
871 cvm_oct_proc_shutdown();
872 828
873 cvmx_ipd_free_ptr(); 829 cvmx_ipd_free_ptr();
874 830
diff --git a/drivers/staging/octeon/octeon-ethernet.h b/drivers/staging/octeon/octeon-ethernet.h
index 402a15b9bb0e..d58192563552 100644
--- a/drivers/staging/octeon/octeon-ethernet.h
+++ b/drivers/staging/octeon/octeon-ethernet.h
@@ -4,7 +4,7 @@
4 * Contact: support@caviumnetworks.com 4 * Contact: support@caviumnetworks.com
5 * This file is part of the OCTEON SDK 5 * This file is part of the OCTEON SDK
6 * 6 *
7 * Copyright (c) 2003-2007 Cavium Networks 7 * Copyright (c) 2003-2010 Cavium Networks
8 * 8 *
9 * This file is free software; you can redistribute it and/or modify 9 * This file is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License, Version 2, as 10 * it under the terms of the GNU General Public License, Version 2, as
@@ -57,58 +57,12 @@ struct octeon_ethernet {
57 uint64_t link_info; 57 uint64_t link_info;
58 /* Called periodically to check link status */ 58 /* Called periodically to check link status */
59 void (*poll) (struct net_device *dev); 59 void (*poll) (struct net_device *dev);
60 struct delayed_work port_periodic_work;
61 struct work_struct port_work; /* may be unused. */
60}; 62};
61 63
62/**
63 * Free a work queue entry received in a intercept callback.
64 *
65 * @work_queue_entry:
66 * Work queue entry to free
67 * Returns Zero on success, Negative on failure.
68 */
69int cvm_oct_free_work(void *work_queue_entry); 64int cvm_oct_free_work(void *work_queue_entry);
70 65
71/**
72 * Transmit a work queue entry out of the ethernet port. Both
73 * the work queue entry and the packet data can optionally be
74 * freed. The work will be freed on error as well.
75 *
76 * @dev: Device to transmit out.
77 * @work_queue_entry:
78 * Work queue entry to send
79 * @do_free: True if the work queue entry and packet data should be
80 * freed. If false, neither will be freed.
81 * @qos: Index into the queues for this port to transmit on. This
82 * is used to implement QoS if their are multiple queues per
83 * port. This parameter must be between 0 and the number of
84 * queues per port minus 1. Values outside of this range will
85 * be change to zero.
86 *
87 * Returns Zero on success, negative on failure.
88 */
89int cvm_oct_transmit_qos(struct net_device *dev, void *work_queue_entry,
90 int do_free, int qos);
91
92/**
93 * Transmit a work queue entry out of the ethernet port. Both
94 * the work queue entry and the packet data can optionally be
95 * freed. The work will be freed on error as well. This simply
96 * wraps cvmx_oct_transmit_qos() for backwards compatability.
97 *
98 * @dev: Device to transmit out.
99 * @work_queue_entry:
100 * Work queue entry to send
101 * @do_free: True if the work queue entry and packet data should be
102 * freed. If false, neither will be freed.
103 *
104 * Returns Zero on success, negative on failure.
105 */
106static inline int cvm_oct_transmit(struct net_device *dev,
107 void *work_queue_entry, int do_free)
108{
109 return cvm_oct_transmit_qos(dev, work_queue_entry, do_free, 0);
110}
111
112extern int cvm_oct_rgmii_init(struct net_device *dev); 66extern int cvm_oct_rgmii_init(struct net_device *dev);
113extern void cvm_oct_rgmii_uninit(struct net_device *dev); 67extern void cvm_oct_rgmii_uninit(struct net_device *dev);
114extern int cvm_oct_rgmii_open(struct net_device *dev); 68extern int cvm_oct_rgmii_open(struct net_device *dev);
@@ -134,5 +88,11 @@ extern int pow_send_group;
134extern int pow_receive_group; 88extern int pow_receive_group;
135extern char pow_send_list[]; 89extern char pow_send_list[];
136extern struct net_device *cvm_oct_device[]; 90extern struct net_device *cvm_oct_device[];
91extern struct workqueue_struct *cvm_oct_poll_queue;
92extern atomic_t cvm_oct_poll_queue_stopping;
93extern u64 cvm_oct_tx_poll_interval;
94
95extern int max_rx_cpus;
96extern int rx_napi_weight;
137 97
138#endif 98#endif
diff --git a/drivers/staging/sm7xx/smtc2d.c b/drivers/staging/sm7xx/smtc2d.c
index 133b86c6a678..2fff0a0052d1 100644
--- a/drivers/staging/sm7xx/smtc2d.c
+++ b/drivers/staging/sm7xx/smtc2d.c
@@ -5,7 +5,7 @@
5 * Author: Boyod boyod.yang@siliconmotion.com.cn 5 * Author: Boyod boyod.yang@siliconmotion.com.cn
6 * 6 *
7 * Copyright (C) 2009 Lemote, Inc. 7 * Copyright (C) 2009 Lemote, Inc.
8 * Author: Wu Zhangjin, wuzj@lemote.com 8 * Author: Wu Zhangjin, wuzhangjin@gmail.com
9 * 9 *
10 * This file is subject to the terms and conditions of the GNU General Public 10 * This file is subject to the terms and conditions of the GNU General Public
11 * License. See the file COPYING in the main directory of this archive for 11 * License. See the file COPYING in the main directory of this archive for
diff --git a/drivers/staging/sm7xx/smtc2d.h b/drivers/staging/sm7xx/smtc2d.h
index 38d0c335322b..02b4fa29136c 100644
--- a/drivers/staging/sm7xx/smtc2d.h
+++ b/drivers/staging/sm7xx/smtc2d.h
@@ -5,7 +5,7 @@
5 * Author: Ge Wang, gewang@siliconmotion.com 5 * Author: Ge Wang, gewang@siliconmotion.com
6 * 6 *
7 * Copyright (C) 2009 Lemote, Inc. 7 * Copyright (C) 2009 Lemote, Inc.
8 * Author: Wu Zhangjin, wuzj@lemote.com 8 * Author: Wu Zhangjin, wuzhangjin@gmail.com
9 * 9 *
10 * This file is subject to the terms and conditions of the GNU General Public 10 * This file is subject to the terms and conditions of the GNU General Public
11 * License. See the file COPYING in the main directory of this archive for 11 * License. See the file COPYING in the main directory of this archive for
diff --git a/drivers/staging/sm7xx/smtcfb.c b/drivers/staging/sm7xx/smtcfb.c
index 161dbc9c1397..a4f6f49aef48 100644
--- a/drivers/staging/sm7xx/smtcfb.c
+++ b/drivers/staging/sm7xx/smtcfb.c
@@ -6,7 +6,7 @@
6 * Boyod boyod.yang@siliconmotion.com.cn 6 * Boyod boyod.yang@siliconmotion.com.cn
7 * 7 *
8 * Copyright (C) 2009 Lemote, Inc. 8 * Copyright (C) 2009 Lemote, Inc.
9 * Author: Wu Zhangjin, wuzj@lemote.com 9 * Author: Wu Zhangjin, wuzhangjin@gmail.com
10 * 10 *
11 * This file is subject to the terms and conditions of the GNU General Public 11 * This file is subject to the terms and conditions of the GNU General Public
12 * License. See the file COPYING in the main directory of this archive for 12 * License. See the file COPYING in the main directory of this archive for
diff --git a/drivers/staging/sm7xx/smtcfb.h b/drivers/staging/sm7xx/smtcfb.h
index 7f2c34138215..7ee565c2c952 100644
--- a/drivers/staging/sm7xx/smtcfb.h
+++ b/drivers/staging/sm7xx/smtcfb.h
@@ -6,7 +6,7 @@
6 * Boyod boyod.yang@siliconmotion.com.cn 6 * Boyod boyod.yang@siliconmotion.com.cn
7 * 7 *
8 * Copyright (C) 2009 Lemote, Inc. 8 * Copyright (C) 2009 Lemote, Inc.
9 * Author: Wu Zhangjin, wuzj@lemote.com 9 * Author: Wu Zhangjin, wuzhangjin@gmail.com
10 * 10 *
11 * This file is subject to the terms and conditions of the GNU General Public 11 * This file is subject to the terms and conditions of the GNU General Public
12 * License. See the file COPYING in the main directory of this archive for 12 * License. See the file COPYING in the main directory of this archive for
diff --git a/drivers/watchdog/ar7_wdt.c b/drivers/watchdog/ar7_wdt.c
index 2e94b71b20d9..2bb95cd308c1 100644
--- a/drivers/watchdog/ar7_wdt.c
+++ b/drivers/watchdog/ar7_wdt.c
@@ -34,6 +34,7 @@
34#include <linux/ioport.h> 34#include <linux/ioport.h>
35#include <linux/io.h> 35#include <linux/io.h>
36#include <linux/uaccess.h> 36#include <linux/uaccess.h>
37#include <linux/clk.h>
37 38
38#include <asm/addrspace.h> 39#include <asm/addrspace.h>
39#include <asm/mach-ar7/ar7.h> 40#include <asm/mach-ar7/ar7.h>
@@ -80,6 +81,8 @@ static struct resource *ar7_regs_wdt;
80/* Pointer to the remapped WDT IO space */ 81/* Pointer to the remapped WDT IO space */
81static struct ar7_wdt *ar7_wdt; 82static struct ar7_wdt *ar7_wdt;
82 83
84static struct clk *vbus_clk;
85
83static void ar7_wdt_kick(u32 value) 86static void ar7_wdt_kick(u32 value)
84{ 87{
85 WRITE_REG(ar7_wdt->kick_lock, 0x5555); 88 WRITE_REG(ar7_wdt->kick_lock, 0x5555);
@@ -138,17 +141,19 @@ static void ar7_wdt_disable(u32 value)
138static void ar7_wdt_update_margin(int new_margin) 141static void ar7_wdt_update_margin(int new_margin)
139{ 142{
140 u32 change; 143 u32 change;
144 u32 vbus_rate;
141 145
142 change = new_margin * (ar7_vbus_freq() / prescale_value); 146 vbus_rate = clk_get_rate(vbus_clk);
147 change = new_margin * (vbus_rate / prescale_value);
143 if (change < 1) 148 if (change < 1)
144 change = 1; 149 change = 1;
145 if (change > 0xffff) 150 if (change > 0xffff)
146 change = 0xffff; 151 change = 0xffff;
147 ar7_wdt_change(change); 152 ar7_wdt_change(change);
148 margin = change * prescale_value / ar7_vbus_freq(); 153 margin = change * prescale_value / vbus_rate;
149 printk(KERN_INFO DRVNAME 154 printk(KERN_INFO DRVNAME
150 ": timer margin %d seconds (prescale %d, change %d, freq %d)\n", 155 ": timer margin %d seconds (prescale %d, change %d, freq %d)\n",
151 margin, prescale_value, change, ar7_vbus_freq()); 156 margin, prescale_value, change, vbus_rate);
152} 157}
153 158
154static void ar7_wdt_enable_wdt(void) 159static void ar7_wdt_enable_wdt(void)
@@ -298,6 +303,13 @@ static int __devinit ar7_wdt_probe(struct platform_device *pdev)
298 goto out_mem_region; 303 goto out_mem_region;
299 } 304 }
300 305
306 vbus_clk = clk_get(NULL, "vbus");
307 if (IS_ERR(vbus_clk)) {
308 printk(KERN_ERR DRVNAME ": could not get vbus clock\n");
309 rc = PTR_ERR(vbus_clk);
310 goto out_mem_region;
311 }
312
301 ar7_wdt_disable_wdt(); 313 ar7_wdt_disable_wdt();
302 ar7_wdt_prescale(prescale_value); 314 ar7_wdt_prescale(prescale_value);
303 ar7_wdt_update_margin(margin); 315 ar7_wdt_update_margin(margin);
diff --git a/sound/oss/au1550_ac97.c b/sound/oss/au1550_ac97.c
index 4191acccbcdb..c1070e33b32f 100644
--- a/sound/oss/au1550_ac97.c
+++ b/sound/oss/au1550_ac97.c
@@ -614,7 +614,8 @@ start_adc(struct au1550_state *s)
614 /* Put two buffers on the ring to get things started. 614 /* Put two buffers on the ring to get things started.
615 */ 615 */
616 for (i=0; i<2; i++) { 616 for (i=0; i<2; i++) {
617 au1xxx_dbdma_put_dest(db->dmanr, db->nextIn, db->dma_fragsize); 617 au1xxx_dbdma_put_dest(db->dmanr, virt_to_phys(db->nextIn),
618 db->dma_fragsize, DDMA_FLAGS_IE);
618 619
619 db->nextIn += db->dma_fragsize; 620 db->nextIn += db->dma_fragsize;
620 if (db->nextIn >= db->rawbuf + db->dmasize) 621 if (db->nextIn >= db->rawbuf + db->dmasize)
@@ -732,8 +733,9 @@ static void dac_dma_interrupt(int irq, void *dev_id)
732 db->dma_qcount--; 733 db->dma_qcount--;
733 734
734 if (db->count >= db->fragsize) { 735 if (db->count >= db->fragsize) {
735 if (au1xxx_dbdma_put_source(db->dmanr, db->nextOut, 736 if (au1xxx_dbdma_put_source(db->dmanr,
736 db->fragsize) == 0) { 737 virt_to_phys(db->nextOut), db->fragsize,
738 DDMA_FLAGS_IE) == 0) {
737 err("qcount < 2 and no ring room!"); 739 err("qcount < 2 and no ring room!");
738 } 740 }
739 db->nextOut += db->fragsize; 741 db->nextOut += db->fragsize;
@@ -777,7 +779,8 @@ static void adc_dma_interrupt(int irq, void *dev_id)
777 779
778 /* Put a new empty buffer on the destination DMA. 780 /* Put a new empty buffer on the destination DMA.
779 */ 781 */
780 au1xxx_dbdma_put_dest(dp->dmanr, dp->nextIn, dp->dma_fragsize); 782 au1xxx_dbdma_put_dest(dp->dmanr, virt_to_phys(dp->nextIn),
783 dp->dma_fragsize, DDMA_FLAGS_IE);
781 784
782 dp->nextIn += dp->dma_fragsize; 785 dp->nextIn += dp->dma_fragsize;
783 if (dp->nextIn >= dp->rawbuf + dp->dmasize) 786 if (dp->nextIn >= dp->rawbuf + dp->dmasize)
@@ -1177,8 +1180,9 @@ au1550_write(struct file *file, const char *buffer, size_t count, loff_t * ppos)
1177 * we know the dma has stopped. 1180 * we know the dma has stopped.
1178 */ 1181 */
1179 while ((db->dma_qcount < 2) && (db->count >= db->fragsize)) { 1182 while ((db->dma_qcount < 2) && (db->count >= db->fragsize)) {
1180 if (au1xxx_dbdma_put_source(db->dmanr, db->nextOut, 1183 if (au1xxx_dbdma_put_source(db->dmanr,
1181 db->fragsize) == 0) { 1184 virt_to_phys(db->nextOut), db->fragsize,
1185 DDMA_FLAGS_IE) == 0) {
1182 err("qcount < 2 and no ring room!"); 1186 err("qcount < 2 and no ring room!");
1183 } 1187 }
1184 db->nextOut += db->fragsize; 1188 db->nextOut += db->fragsize;
diff --git a/sound/soc/au1x/Kconfig b/sound/soc/au1x/Kconfig
index 410a893aa66b..4b67140fdec3 100644
--- a/sound/soc/au1x/Kconfig
+++ b/sound/soc/au1x/Kconfig
@@ -22,11 +22,13 @@ config SND_SOC_AU1XPSC_AC97
22## 22##
23## Boards 23## Boards
24## 24##
25config SND_SOC_SAMPLE_PSC_AC97 25config SND_SOC_DB1200
26 tristate "Sample Au12x0/Au1550 PSC AC97 sound machine" 26 tristate "DB1200 AC97+I2S audio support"
27 depends on SND_SOC_AU1XPSC 27 depends on SND_SOC_AU1XPSC
28 select SND_SOC_AU1XPSC_AC97 28 select SND_SOC_AU1XPSC_AC97
29 select SND_SOC_AC97_CODEC 29 select SND_SOC_AC97_CODEC
30 select SND_SOC_AU1XPSC_I2S
31 select SND_SOC_WM8731
30 help 32 help
31 This is a sample AC97 sound machine for use in Au12x0/Au1550 33 Select this option to enable audio (AC97 or I2S) on the
32 based systems which have audio on PSC1 (e.g. Db1200 demoboard). 34 Alchemy/AMD/RMI DB1200 demoboard.
diff --git a/sound/soc/au1x/Makefile b/sound/soc/au1x/Makefile
index 6c6950b8003a..16873076e8c4 100644
--- a/sound/soc/au1x/Makefile
+++ b/sound/soc/au1x/Makefile
@@ -8,6 +8,6 @@ obj-$(CONFIG_SND_SOC_AU1XPSC_I2S) += snd-soc-au1xpsc-i2s.o
8obj-$(CONFIG_SND_SOC_AU1XPSC_AC97) += snd-soc-au1xpsc-ac97.o 8obj-$(CONFIG_SND_SOC_AU1XPSC_AC97) += snd-soc-au1xpsc-ac97.o
9 9
10# Boards 10# Boards
11snd-soc-sample-ac97-objs := sample-ac97.o 11snd-soc-db1200-objs := db1200.o
12 12
13obj-$(CONFIG_SND_SOC_SAMPLE_PSC_AC97) += snd-soc-sample-ac97.o 13obj-$(CONFIG_SND_SOC_DB1200) += snd-soc-db1200.o
diff --git a/sound/soc/au1x/db1200.c b/sound/soc/au1x/db1200.c
new file mode 100644
index 000000000000..cdf7be1b9b91
--- /dev/null
+++ b/sound/soc/au1x/db1200.c
@@ -0,0 +1,141 @@
1/*
2 * DB1200 ASoC audio fabric support code.
3 *
4 * (c) 2008-9 Manuel Lauss <manuel.lauss@gmail.com>
5 *
6 */
7
8#include <linux/module.h>
9#include <linux/moduleparam.h>
10#include <linux/timer.h>
11#include <linux/interrupt.h>
12#include <linux/platform_device.h>
13#include <sound/core.h>
14#include <sound/pcm.h>
15#include <sound/soc.h>
16#include <sound/soc-dapm.h>
17#include <asm/mach-au1x00/au1000.h>
18#include <asm/mach-au1x00/au1xxx_psc.h>
19#include <asm/mach-au1x00/au1xxx_dbdma.h>
20#include <asm/mach-db1x00/bcsr.h>
21
22#include "../codecs/ac97.h"
23#include "../codecs/wm8731.h"
24#include "psc.h"
25
26/*------------------------- AC97 PART ---------------------------*/
27
28static struct snd_soc_dai_link db1200_ac97_dai = {
29 .name = "AC97",
30 .stream_name = "AC97 HiFi",
31 .cpu_dai = &au1xpsc_ac97_dai,
32 .codec_dai = &ac97_dai,
33};
34
35static struct snd_soc_card db1200_ac97_machine = {
36 .name = "DB1200_AC97",
37 .dai_link = &db1200_ac97_dai,
38 .num_links = 1,
39 .platform = &au1xpsc_soc_platform,
40};
41
42static struct snd_soc_device db1200_ac97_devdata = {
43 .card = &db1200_ac97_machine,
44 .codec_dev = &soc_codec_dev_ac97,
45};
46
47/*------------------------- I2S PART ---------------------------*/
48
49static int db1200_i2s_startup(struct snd_pcm_substream *substream)
50{
51 struct snd_soc_pcm_runtime *rtd = substream->private_data;
52 struct snd_soc_dai *codec_dai = rtd->dai->codec_dai;
53 struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai;
54 int ret;
55
56 /* WM8731 has its own 12MHz crystal */
57 snd_soc_dai_set_sysclk(codec_dai, WM8731_SYSCLK,
58 12000000, SND_SOC_CLOCK_IN);
59
60 /* codec is bitclock and lrclk master */
61 ret = snd_soc_dai_set_fmt(codec_dai, SND_SOC_DAIFMT_LEFT_J |
62 SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBM_CFM);
63 if (ret < 0)
64 goto out;
65
66 ret = snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_LEFT_J |
67 SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBM_CFM);
68 if (ret < 0)
69 goto out;
70
71 ret = 0;
72out:
73 return ret;
74}
75
76static struct snd_soc_ops db1200_i2s_wm8731_ops = {
77 .startup = db1200_i2s_startup,
78};
79
80static struct snd_soc_dai_link db1200_i2s_dai = {
81 .name = "WM8731",
82 .stream_name = "WM8731 PCM",
83 .cpu_dai = &au1xpsc_i2s_dai,
84 .codec_dai = &wm8731_dai,
85 .ops = &db1200_i2s_wm8731_ops,
86};
87
88static struct snd_soc_card db1200_i2s_machine = {
89 .name = "DB1200_I2S",
90 .dai_link = &db1200_i2s_dai,
91 .num_links = 1,
92 .platform = &au1xpsc_soc_platform,
93};
94
95static struct snd_soc_device db1200_i2s_devdata = {
96 .card = &db1200_i2s_machine,
97 .codec_dev = &soc_codec_dev_wm8731,
98};
99
100/*------------------------- COMMON PART ---------------------------*/
101
102static struct platform_device *db1200_asoc_dev;
103
104static int __init db1200_audio_load(void)
105{
106 int ret;
107
108 ret = -ENOMEM;
109 db1200_asoc_dev = platform_device_alloc("soc-audio", -1);
110 if (!db1200_asoc_dev)
111 goto out;
112
113 /* DB1200 board setup set PSC1MUX to preferred audio device */
114 if (bcsr_read(BCSR_RESETS) & BCSR_RESETS_PSC1MUX)
115 platform_set_drvdata(db1200_asoc_dev, &db1200_i2s_devdata);
116 else
117 platform_set_drvdata(db1200_asoc_dev, &db1200_ac97_devdata);
118
119 db1200_ac97_devdata.dev = &db1200_asoc_dev->dev;
120 db1200_i2s_devdata.dev = &db1200_asoc_dev->dev;
121 ret = platform_device_add(db1200_asoc_dev);
122
123 if (ret) {
124 platform_device_put(db1200_asoc_dev);
125 db1200_asoc_dev = NULL;
126 }
127out:
128 return ret;
129}
130
131static void __exit db1200_audio_unload(void)
132{
133 platform_device_unregister(db1200_asoc_dev);
134}
135
136module_init(db1200_audio_load);
137module_exit(db1200_audio_unload);
138
139MODULE_LICENSE("GPL");
140MODULE_DESCRIPTION("DB1200 ASoC audio support");
141MODULE_AUTHOR("Manuel Lauss");
diff --git a/sound/soc/au1x/dbdma2.c b/sound/soc/au1x/dbdma2.c
index 19e4d37eba1c..6d9f4c624949 100644
--- a/sound/soc/au1x/dbdma2.c
+++ b/sound/soc/au1x/dbdma2.c
@@ -51,8 +51,8 @@ struct au1xpsc_audio_dmadata {
51 struct snd_pcm_substream *substream; 51 struct snd_pcm_substream *substream;
52 unsigned long curr_period; /* current segment DDMA is working on */ 52 unsigned long curr_period; /* current segment DDMA is working on */
53 unsigned long q_period; /* queue period(s) */ 53 unsigned long q_period; /* queue period(s) */
54 unsigned long dma_area; /* address of queued DMA area */ 54 dma_addr_t dma_area; /* address of queued DMA area */
55 unsigned long dma_area_s; /* start address of DMA area */ 55 dma_addr_t dma_area_s; /* start address of DMA area */
56 unsigned long pos; /* current byte position being played */ 56 unsigned long pos; /* current byte position being played */
57 unsigned long periods; /* number of SG segments in total */ 57 unsigned long periods; /* number of SG segments in total */
58 unsigned long period_bytes; /* size in bytes of one SG segment */ 58 unsigned long period_bytes; /* size in bytes of one SG segment */
@@ -94,8 +94,7 @@ static const struct snd_pcm_hardware au1xpsc_pcm_hardware = {
94 94
95static void au1x_pcm_queue_tx(struct au1xpsc_audio_dmadata *cd) 95static void au1x_pcm_queue_tx(struct au1xpsc_audio_dmadata *cd)
96{ 96{
97 au1xxx_dbdma_put_source_flags(cd->ddma_chan, 97 au1xxx_dbdma_put_source(cd->ddma_chan, cd->dma_area,
98 (void *)phys_to_virt(cd->dma_area),
99 cd->period_bytes, DDMA_FLAGS_IE); 98 cd->period_bytes, DDMA_FLAGS_IE);
100 99
101 /* update next-to-queue period */ 100 /* update next-to-queue period */
@@ -109,9 +108,8 @@ static void au1x_pcm_queue_tx(struct au1xpsc_audio_dmadata *cd)
109 108
110static void au1x_pcm_queue_rx(struct au1xpsc_audio_dmadata *cd) 109static void au1x_pcm_queue_rx(struct au1xpsc_audio_dmadata *cd)
111{ 110{
112 au1xxx_dbdma_put_dest_flags(cd->ddma_chan, 111 au1xxx_dbdma_put_dest(cd->ddma_chan, cd->dma_area,
113 (void *)phys_to_virt(cd->dma_area), 112 cd->period_bytes, DDMA_FLAGS_IE);
114 cd->period_bytes, DDMA_FLAGS_IE);
115 113
116 /* update next-to-queue period */ 114 /* update next-to-queue period */
117 ++cd->q_period; 115 ++cd->q_period;
@@ -233,7 +231,7 @@ static int au1xpsc_pcm_hw_params(struct snd_pcm_substream *substream,
233 pcd->substream = substream; 231 pcd->substream = substream;
234 pcd->period_bytes = params_period_bytes(params); 232 pcd->period_bytes = params_period_bytes(params);
235 pcd->periods = params_periods(params); 233 pcd->periods = params_periods(params);
236 pcd->dma_area_s = pcd->dma_area = (unsigned long)runtime->dma_addr; 234 pcd->dma_area_s = pcd->dma_area = runtime->dma_addr;
237 pcd->q_period = 0; 235 pcd->q_period = 0;
238 pcd->curr_period = 0; 236 pcd->curr_period = 0;
239 pcd->pos = 0; 237 pcd->pos = 0;
diff --git a/sound/soc/au1x/sample-ac97.c b/sound/soc/au1x/sample-ac97.c
deleted file mode 100644
index 27683eb7905e..000000000000
--- a/sound/soc/au1x/sample-ac97.c
+++ /dev/null
@@ -1,144 +0,0 @@
1/*
2 * Sample Au12x0/Au1550 PSC AC97 sound machine.
3 *
4 * Copyright (c) 2007-2008 Manuel Lauss <mano@roarinelk.homelinux.net>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms outlined in the file COPYING at the root of this
8 * source archive.
9 *
10 * This is a very generic AC97 sound machine driver for boards which
11 * have (AC97) audio at PSC1 (e.g. DB1200 demoboards).
12 */
13
14#include <linux/module.h>
15#include <linux/moduleparam.h>
16#include <linux/timer.h>
17#include <linux/interrupt.h>
18#include <linux/platform_device.h>
19#include <sound/core.h>
20#include <sound/pcm.h>
21#include <sound/soc.h>
22#include <sound/soc-dapm.h>
23#include <asm/mach-au1x00/au1000.h>
24#include <asm/mach-au1x00/au1xxx_psc.h>
25#include <asm/mach-au1x00/au1xxx_dbdma.h>
26
27#include "../codecs/ac97.h"
28#include "psc.h"
29
30static int au1xpsc_sample_ac97_init(struct snd_soc_codec *codec)
31{
32 snd_soc_dapm_sync(codec);
33 return 0;
34}
35
36static struct snd_soc_dai_link au1xpsc_sample_ac97_dai = {
37 .name = "AC97",
38 .stream_name = "AC97 HiFi",
39 .cpu_dai = &au1xpsc_ac97_dai, /* see psc-ac97.c */
40 .codec_dai = &ac97_dai, /* see codecs/ac97.c */
41 .init = au1xpsc_sample_ac97_init,
42 .ops = NULL,
43};
44
45static struct snd_soc_card au1xpsc_sample_ac97_machine = {
46 .name = "Au1xxx PSC AC97 Audio",
47 .dai_link = &au1xpsc_sample_ac97_dai,
48 .num_links = 1,
49};
50
51static struct snd_soc_device au1xpsc_sample_ac97_devdata = {
52 .card = &au1xpsc_sample_ac97_machine,
53 .platform = &au1xpsc_soc_platform, /* see dbdma2.c */
54 .codec_dev = &soc_codec_dev_ac97,
55};
56
57static struct resource au1xpsc_psc1_res[] = {
58 [0] = {
59 .start = CPHYSADDR(PSC1_BASE_ADDR),
60 .end = CPHYSADDR(PSC1_BASE_ADDR) + 0x000fffff,
61 .flags = IORESOURCE_MEM,
62 },
63 [1] = {
64#ifdef CONFIG_SOC_AU1200
65 .start = AU1200_PSC1_INT,
66 .end = AU1200_PSC1_INT,
67#elif defined(CONFIG_SOC_AU1550)
68 .start = AU1550_PSC1_INT,
69 .end = AU1550_PSC1_INT,
70#endif
71 .flags = IORESOURCE_IRQ,
72 },
73 [2] = {
74 .start = DSCR_CMD0_PSC1_TX,
75 .end = DSCR_CMD0_PSC1_TX,
76 .flags = IORESOURCE_DMA,
77 },
78 [3] = {
79 .start = DSCR_CMD0_PSC1_RX,
80 .end = DSCR_CMD0_PSC1_RX,
81 .flags = IORESOURCE_DMA,
82 },
83};
84
85static struct platform_device *au1xpsc_sample_ac97_dev;
86
87static int __init au1xpsc_sample_ac97_load(void)
88{
89 int ret;
90
91#ifdef CONFIG_SOC_AU1200
92 unsigned long io;
93
94 /* modify sys_pinfunc for AC97 on PSC1 */
95 io = au_readl(SYS_PINFUNC);
96 io |= SYS_PINFUNC_P1C;
97 io &= ~(SYS_PINFUNC_P1A | SYS_PINFUNC_P1B);
98 au_writel(io, SYS_PINFUNC);
99 au_sync();
100#endif
101
102 ret = -ENOMEM;
103
104 /* setup PSC clock source for AC97 part: external clock provided
105 * by codec. The psc-ac97.c driver depends on this setting!
106 */
107 au_writel(PSC_SEL_CLK_SERCLK, PSC1_BASE_ADDR + PSC_SEL_OFFSET);
108 au_sync();
109
110 au1xpsc_sample_ac97_dev = platform_device_alloc("soc-audio", -1);
111 if (!au1xpsc_sample_ac97_dev)
112 goto out;
113
114 au1xpsc_sample_ac97_dev->resource =
115 kmemdup(au1xpsc_psc1_res, sizeof(struct resource) *
116 ARRAY_SIZE(au1xpsc_psc1_res), GFP_KERNEL);
117 au1xpsc_sample_ac97_dev->num_resources = ARRAY_SIZE(au1xpsc_psc1_res);
118 au1xpsc_sample_ac97_dev->id = 1;
119
120 platform_set_drvdata(au1xpsc_sample_ac97_dev,
121 &au1xpsc_sample_ac97_devdata);
122 au1xpsc_sample_ac97_devdata.dev = &au1xpsc_sample_ac97_dev->dev;
123 ret = platform_device_add(au1xpsc_sample_ac97_dev);
124
125 if (ret) {
126 platform_device_put(au1xpsc_sample_ac97_dev);
127 au1xpsc_sample_ac97_dev = NULL;
128 }
129
130out:
131 return ret;
132}
133
134static void __exit au1xpsc_sample_ac97_exit(void)
135{
136 platform_device_unregister(au1xpsc_sample_ac97_dev);
137}
138
139module_init(au1xpsc_sample_ac97_load);
140module_exit(au1xpsc_sample_ac97_exit);
141
142MODULE_LICENSE("GPL");
143MODULE_DESCRIPTION("Au1xxx PSC sample AC97 machine");
144MODULE_AUTHOR("Manuel Lauss <mano@roarinelk.homelinux.net>");