Merge branch 'audit.b54' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit...
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 1 Aug 2008 18:23:09 +0000 (11:23 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 1 Aug 2008 18:23:09 +0000 (11:23 -0700)
* 'audit.b54' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current:
  [PATCH] Fix the bug of using AUDIT_STATUS_RATE_LIMIT when set fail, no error output.
  [PATCH] Fix the kernel panic of audit_filter_task when key field is set
  Re: [PATCH] the loginuid field should be output in all AUDIT_CONFIG_CHANGE audit messages
  kernel/audit.c control character detection is off-by-one
  [PATCH] Audit: Collect signal info when SIGUSR2 is sent to auditd

598 files changed:
Documentation/ABI/testing/sysfs-class-regulator [new file with mode: 0644]
Documentation/power/power_supply_class.txt
Documentation/power/regulator/consumer.txt [new file with mode: 0644]
Documentation/power/regulator/machine.txt [new file with mode: 0644]
Documentation/power/regulator/overview.txt [new file with mode: 0644]
Documentation/power/regulator/regulator.txt [new file with mode: 0644]
MAINTAINERS
arch/arm/Kconfig
arch/mips/Kconfig
arch/mips/Kconfig.debug
arch/mips/au1000/Kconfig
arch/mips/au1000/common/Makefile
arch/mips/au1000/common/dbg_io.c [deleted file]
arch/mips/au1000/db1x00/init.c
arch/mips/au1000/mtx-1/init.c
arch/mips/au1000/pb1000/init.c
arch/mips/au1000/pb1100/init.c
arch/mips/au1000/pb1200/init.c
arch/mips/au1000/pb1500/init.c
arch/mips/au1000/pb1550/init.c
arch/mips/au1000/xxs1500/init.c
arch/mips/basler/excite/Makefile
arch/mips/basler/excite/excite_dbg_io.c [deleted file]
arch/mips/basler/excite/excite_irq.c
arch/mips/basler/excite/excite_setup.c
arch/mips/configs/cobalt_defconfig
arch/mips/configs/db1000_defconfig
arch/mips/configs/db1100_defconfig
arch/mips/configs/db1200_defconfig
arch/mips/configs/db1500_defconfig
arch/mips/configs/db1550_defconfig
arch/mips/configs/excite_defconfig
arch/mips/configs/ip27_defconfig
arch/mips/configs/msp71xx_defconfig
arch/mips/configs/mtx1_defconfig
arch/mips/configs/pb1100_defconfig
arch/mips/configs/pb1500_defconfig
arch/mips/configs/pb1550_defconfig
arch/mips/configs/pnx8550-jbs_defconfig
arch/mips/configs/pnx8550-stb810_defconfig
arch/mips/configs/rbtx49xx_defconfig
arch/mips/configs/sb1250-swarm_defconfig
arch/mips/configs/yosemite_defconfig
arch/mips/emma2rh/markeins/platform.c
arch/mips/emma2rh/markeins/setup.c
arch/mips/kernel/Makefile
arch/mips/kernel/gdb-low.S [deleted file]
arch/mips/kernel/gdb-stub.c [deleted file]
arch/mips/kernel/irq.c
arch/mips/kernel/kgdb.c [new file with mode: 0644]
arch/mips/kernel/traps.c
arch/mips/mm/tlb-r3k.c
arch/mips/mti-malta/Makefile
arch/mips/mti-malta/malta-init.c
arch/mips/mti-malta/malta-kgdb.c [deleted file]
arch/mips/mti-malta/malta-setup.c
arch/mips/nxp/pnx8550/common/Makefile
arch/mips/nxp/pnx8550/common/gdb_hook.c [deleted file]
arch/mips/nxp/pnx8550/common/int.c
arch/mips/nxp/pnx8550/common/proc.c
arch/mips/nxp/pnx8550/common/setup.c
arch/mips/pci/ops-tx3927.c
arch/mips/pci/ops-tx4927.c
arch/mips/pci/pci-tx4927.c
arch/mips/pci/pci-tx4938.c
arch/mips/pci/pci.c
arch/mips/pmc-sierra/msp71xx/msp_serial.c
arch/mips/pmc-sierra/yosemite/Makefile
arch/mips/pmc-sierra/yosemite/dbg_io.c [deleted file]
arch/mips/pmc-sierra/yosemite/irq.c
arch/mips/rb532/gpio.c
arch/mips/rb532/time.c
arch/mips/sgi-ip22/ip22-setup.c
arch/mips/sgi-ip27/Makefile
arch/mips/sgi-ip27/ip27-dbgio.c [deleted file]
arch/mips/sibyte/bcm1480/irq.c
arch/mips/sibyte/cfe/setup.c
arch/mips/sibyte/sb1250/irq.c
arch/mips/sibyte/swarm/Makefile
arch/mips/sibyte/swarm/dbg_io.c [deleted file]
arch/mips/txx9/Kconfig
arch/mips/txx9/generic/Makefile
arch/mips/txx9/generic/dbgio.c [deleted file]
arch/mips/txx9/generic/irq_tx3927.c [new file with mode: 0644]
arch/mips/txx9/generic/pci.c
arch/mips/txx9/generic/setup.c
arch/mips/txx9/generic/setup_tx3927.c [new file with mode: 0644]
arch/mips/txx9/generic/setup_tx4927.c
arch/mips/txx9/generic/setup_tx4938.c
arch/mips/txx9/generic/smsc_fdc37m81x.c
arch/mips/txx9/jmr3927/Makefile
arch/mips/txx9/jmr3927/irq.c
arch/mips/txx9/jmr3927/kgdb_io.c [deleted file]
arch/mips/txx9/jmr3927/prom.c
arch/mips/txx9/jmr3927/setup.c
arch/mips/txx9/rbtx4927/irq.c
arch/mips/txx9/rbtx4927/prom.c
arch/mips/txx9/rbtx4927/setup.c
arch/mips/txx9/rbtx4938/irq.c
arch/mips/txx9/rbtx4938/prom.c
arch/mips/txx9/rbtx4938/setup.c
arch/s390/Kconfig
arch/s390/kernel/compat_wrapper.S
arch/s390/kernel/ipl.c
arch/s390/kernel/mem_detect.c
arch/s390/kernel/syscalls.S
arch/s390/kernel/time.c
arch/s390/lib/delay.c
arch/s390/mm/init.c
arch/sh/Kconfig
arch/sh/Makefile
arch/sh/boards/Kconfig [new file with mode: 0644]
arch/sh/boards/Makefile [new file with mode: 0644]
arch/sh/boards/board-ap325rxa.c [moved from arch/sh/boards/renesas/ap325rxa/setup.c with 99% similarity]
arch/sh/boards/board-magicpanelr2.c [moved from arch/sh/boards/magicpanelr2/setup.c with 100% similarity]
arch/sh/boards/board-rsk7203.c [moved from arch/sh/boards/renesas/rsk7203/setup.c with 92% similarity]
arch/sh/boards/board-sh7785lcr.c [moved from arch/sh/boards/renesas/sh7785lcr/setup.c with 100% similarity]
arch/sh/boards/board-shmin.c [moved from arch/sh/boards/shmin/setup.c with 100% similarity]
arch/sh/boards/mach-cayman/Makefile [moved from arch/sh/boards/cayman/Makefile with 100% similarity]
arch/sh/boards/mach-cayman/irq.c [moved from arch/sh/boards/cayman/irq.c with 99% similarity]
arch/sh/boards/mach-cayman/led.c [moved from arch/sh/boards/cayman/led.c with 100% similarity]
arch/sh/boards/mach-cayman/setup.c [moved from arch/sh/boards/cayman/setup.c with 99% similarity]
arch/sh/boards/mach-dreamcast/Makefile [moved from arch/sh/boards/dreamcast/Makefile with 100% similarity]
arch/sh/boards/mach-dreamcast/irq.c [moved from arch/sh/boards/dreamcast/irq.c with 99% similarity]
arch/sh/boards/mach-dreamcast/rtc.c [moved from arch/sh/boards/dreamcast/rtc.c with 100% similarity]
arch/sh/boards/mach-dreamcast/setup.c [moved from arch/sh/boards/dreamcast/setup.c with 98% similarity]
arch/sh/boards/mach-edosk7705/Makefile [moved from arch/sh/boards/renesas/edosk7705/Makefile with 100% similarity]
arch/sh/boards/mach-edosk7705/io.c [moved from arch/sh/boards/renesas/edosk7705/io.c with 100% similarity]
arch/sh/boards/mach-edosk7705/setup.c [moved from arch/sh/boards/renesas/edosk7705/setup.c with 100% similarity]
arch/sh/boards/mach-highlander/Kconfig [moved from arch/sh/boards/renesas/r7780rp/Kconfig with 100% similarity]
arch/sh/boards/mach-highlander/Makefile [moved from arch/sh/boards/renesas/r7780rp/Makefile with 100% similarity]
arch/sh/boards/mach-highlander/irq-r7780mp.c [moved from arch/sh/boards/renesas/r7780rp/irq-r7780mp.c with 100% similarity]
arch/sh/boards/mach-highlander/irq-r7780rp.c [moved from arch/sh/boards/renesas/r7780rp/irq-r7780rp.c with 100% similarity]
arch/sh/boards/mach-highlander/irq-r7785rp.c [moved from arch/sh/boards/renesas/r7780rp/irq-r7785rp.c with 100% similarity]
arch/sh/boards/mach-highlander/psw.c [moved from arch/sh/boards/renesas/r7780rp/psw.c with 98% similarity]
arch/sh/boards/mach-highlander/setup.c [moved from arch/sh/boards/renesas/r7780rp/setup.c with 100% similarity]
arch/sh/boards/mach-hp6xx/Makefile [moved from arch/sh/boards/hp6xx/Makefile with 100% similarity]
arch/sh/boards/mach-hp6xx/hp6xx_apm.c [moved from arch/sh/boards/hp6xx/hp6xx_apm.c with 100% similarity]
arch/sh/boards/mach-hp6xx/pm.c [moved from arch/sh/boards/hp6xx/pm.c with 98% similarity]
arch/sh/boards/mach-hp6xx/pm_wakeup.S [moved from arch/sh/boards/hp6xx/pm_wakeup.S with 96% similarity]
arch/sh/boards/mach-hp6xx/setup.c [moved from arch/sh/boards/hp6xx/setup.c with 99% similarity]
arch/sh/boards/mach-landisk/Makefile [moved from arch/sh/boards/landisk/Makefile with 100% similarity]
arch/sh/boards/mach-landisk/gio.c [moved from arch/sh/boards/landisk/gio.c with 97% similarity]
arch/sh/boards/mach-landisk/irq.c [moved from arch/sh/boards/landisk/irq.c with 96% similarity]
arch/sh/boards/mach-landisk/psw.c [moved from arch/sh/boards/landisk/psw.c with 98% similarity]
arch/sh/boards/mach-landisk/setup.c [moved from arch/sh/boards/landisk/setup.c with 98% similarity]
arch/sh/boards/mach-lboxre2/Makefile [moved from arch/sh/boards/lboxre2/Makefile with 100% similarity]
arch/sh/boards/mach-lboxre2/irq.c [moved from arch/sh/boards/lboxre2/irq.c with 100% similarity]
arch/sh/boards/mach-lboxre2/setup.c [moved from arch/sh/boards/lboxre2/setup.c with 100% similarity]
arch/sh/boards/mach-microdev/Makefile [moved from arch/sh/boards/superh/microdev/Makefile with 100% similarity]
arch/sh/boards/mach-microdev/io.c [moved from arch/sh/boards/superh/microdev/io.c with 100% similarity]
arch/sh/boards/mach-microdev/irq.c [moved from arch/sh/boards/superh/microdev/irq.c with 100% similarity]
arch/sh/boards/mach-microdev/led.c [moved from arch/sh/boards/superh/microdev/led.c with 100% similarity]
arch/sh/boards/mach-microdev/setup.c [moved from arch/sh/boards/superh/microdev/setup.c with 100% similarity]
arch/sh/boards/mach-migor/Kconfig [moved from arch/sh/boards/renesas/migor/Kconfig with 100% similarity]
arch/sh/boards/mach-migor/Makefile [moved from arch/sh/boards/renesas/migor/Makefile with 100% similarity]
arch/sh/boards/mach-migor/lcd_qvga.c [moved from arch/sh/boards/renesas/migor/lcd_qvga.c with 100% similarity]
arch/sh/boards/mach-migor/setup.c [moved from arch/sh/boards/renesas/migor/setup.c with 99% similarity]
arch/sh/boards/mach-r2d/Kconfig [moved from arch/sh/boards/renesas/rts7751r2d/Kconfig with 100% similarity]
arch/sh/boards/mach-r2d/Makefile [moved from arch/sh/boards/renesas/rts7751r2d/Makefile with 100% similarity]
arch/sh/boards/mach-r2d/irq.c [moved from arch/sh/boards/renesas/rts7751r2d/irq.c with 100% similarity]
arch/sh/boards/mach-r2d/setup.c [moved from arch/sh/boards/renesas/rts7751r2d/setup.c with 100% similarity]
arch/sh/boards/mach-sdk7780/Kconfig [moved from arch/sh/boards/renesas/sdk7780/Kconfig with 100% similarity]
arch/sh/boards/mach-sdk7780/Makefile [moved from arch/sh/boards/renesas/sdk7780/Makefile with 100% similarity]
arch/sh/boards/mach-sdk7780/irq.c [moved from arch/sh/boards/renesas/sdk7780/irq.c with 100% similarity]
arch/sh/boards/mach-sdk7780/setup.c [moved from arch/sh/boards/renesas/sdk7780/setup.c with 100% similarity]
arch/sh/boards/mach-se/7206/Makefile [moved from arch/sh/boards/se/7206/Makefile with 100% similarity]
arch/sh/boards/mach-se/7206/io.c [moved from arch/sh/boards/se/7206/io.c with 98% similarity]
arch/sh/boards/mach-se/7206/irq.c [moved from arch/sh/boards/se/7206/irq.c with 98% similarity]
arch/sh/boards/mach-se/7206/setup.c [moved from arch/sh/boards/se/7206/setup.c with 98% similarity]
arch/sh/boards/mach-se/7343/Makefile [moved from arch/sh/boards/se/7343/Makefile with 100% similarity]
arch/sh/boards/mach-se/7343/io.c [moved from arch/sh/boards/se/7343/io.c with 99% similarity]
arch/sh/boards/mach-se/7343/irq.c [moved from arch/sh/boards/se/7343/irq.c with 96% similarity]
arch/sh/boards/mach-se/7343/setup.c [moved from arch/sh/boards/se/7343/setup.c with 98% similarity]
arch/sh/boards/mach-se/770x/Makefile [moved from arch/sh/boards/se/770x/Makefile with 100% similarity]
arch/sh/boards/mach-se/770x/io.c [moved from arch/sh/boards/se/770x/io.c with 99% similarity]
arch/sh/boards/mach-se/770x/irq.c [moved from arch/sh/boards/se/770x/irq.c with 98% similarity]
arch/sh/boards/mach-se/770x/setup.c [moved from arch/sh/boards/se/770x/setup.c with 96% similarity]
arch/sh/boards/mach-se/7721/Makefile [moved from arch/sh/boards/se/7721/Makefile with 100% similarity]
arch/sh/boards/mach-se/7721/irq.c [moved from arch/sh/boards/se/7721/irq.c with 96% similarity]
arch/sh/boards/mach-se/7721/setup.c [moved from arch/sh/boards/se/7721/setup.c with 98% similarity]
arch/sh/boards/mach-se/7722/Makefile [moved from arch/sh/boards/se/7722/Makefile with 100% similarity]
arch/sh/boards/mach-se/7722/irq.c [moved from arch/sh/boards/se/7722/irq.c with 98% similarity]
arch/sh/boards/mach-se/7722/setup.c [moved from arch/sh/boards/se/7722/setup.c with 99% similarity]
arch/sh/boards/mach-se/7751/Makefile [moved from arch/sh/boards/se/7751/Makefile with 100% similarity]
arch/sh/boards/mach-se/7751/io.c [moved from arch/sh/boards/se/7751/io.c with 99% similarity]
arch/sh/boards/mach-se/7751/irq.c [moved from arch/sh/boards/se/7751/irq.c with 96% similarity]
arch/sh/boards/mach-se/7751/pci.c [moved from arch/sh/boards/se/7751/pci.c with 100% similarity]
arch/sh/boards/mach-se/7751/setup.c [moved from arch/sh/boards/se/7751/setup.c with 98% similarity]
arch/sh/boards/mach-se/7780/Makefile [moved from arch/sh/boards/se/7780/Makefile with 100% similarity]
arch/sh/boards/mach-se/7780/irq.c [moved from arch/sh/boards/se/7780/irq.c with 97% similarity]
arch/sh/boards/mach-se/7780/setup.c [moved from arch/sh/boards/se/7780/setup.c with 98% similarity]
arch/sh/boards/mach-se/Makefile [new file with mode: 0644]
arch/sh/boards/mach-se/board-se7619.c [moved from arch/sh/boards/se/7619/setup.c with 100% similarity]
arch/sh/boards/mach-sh03/Makefile [moved from arch/sh/boards/sh03/Makefile with 100% similarity]
arch/sh/boards/mach-sh03/rtc.c [moved from arch/sh/boards/sh03/rtc.c with 100% similarity]
arch/sh/boards/mach-sh03/setup.c [moved from arch/sh/boards/sh03/setup.c with 96% similarity]
arch/sh/boards/mach-sh7763rdp/Makefile [moved from arch/sh/boards/renesas/sh7763rdp/Makefile with 100% similarity]
arch/sh/boards/mach-sh7763rdp/irq.c [moved from arch/sh/boards/renesas/sh7763rdp/irq.c with 100% similarity]
arch/sh/boards/mach-sh7763rdp/setup.c [moved from arch/sh/boards/renesas/sh7763rdp/setup.c with 100% similarity]
arch/sh/boards/mach-snapgear/Makefile [moved from arch/sh/boards/snapgear/Makefile with 100% similarity]
arch/sh/boards/mach-snapgear/io.c [moved from arch/sh/boards/snapgear/io.c with 100% similarity]
arch/sh/boards/mach-snapgear/setup.c [moved from arch/sh/boards/snapgear/setup.c with 98% similarity]
arch/sh/boards/mach-systemh/Makefile [moved from arch/sh/boards/renesas/systemh/Makefile with 100% similarity]
arch/sh/boards/mach-systemh/io.c [moved from arch/sh/boards/renesas/systemh/io.c with 100% similarity]
arch/sh/boards/mach-systemh/irq.c [moved from arch/sh/boards/renesas/systemh/irq.c with 100% similarity]
arch/sh/boards/mach-systemh/setup.c [moved from arch/sh/boards/renesas/systemh/setup.c with 100% similarity]
arch/sh/boards/mach-titan/Makefile [moved from arch/sh/boards/titan/Makefile with 100% similarity]
arch/sh/boards/mach-titan/io.c [moved from arch/sh/boards/titan/io.c with 100% similarity]
arch/sh/boards/mach-titan/setup.c [moved from arch/sh/boards/titan/setup.c with 100% similarity]
arch/sh/boards/mach-x3proto/Makefile [moved from arch/sh/boards/renesas/x3proto/Makefile with 100% similarity]
arch/sh/boards/mach-x3proto/ilsel.c [moved from arch/sh/boards/renesas/x3proto/ilsel.c with 100% similarity]
arch/sh/boards/mach-x3proto/setup.c [moved from arch/sh/boards/renesas/x3proto/setup.c with 100% similarity]
arch/sh/boards/magicpanelr2/Kconfig [deleted file]
arch/sh/boards/magicpanelr2/Makefile [deleted file]
arch/sh/boards/renesas/ap325rxa/Makefile [deleted file]
arch/sh/boards/renesas/rsk7203/Makefile [deleted file]
arch/sh/boards/renesas/sh7785lcr/Makefile [deleted file]
arch/sh/boards/se/7619/Makefile [deleted file]
arch/sh/boards/shmin/Makefile [deleted file]
arch/sh/boot/Makefile
arch/sh/boot/compressed/head_64.S
arch/sh/configs/ap325rxa_defconfig
arch/sh/configs/dreamcast_defconfig
arch/sh/configs/hp6xx_defconfig
arch/sh/configs/landisk_defconfig
arch/sh/configs/lboxre2_defconfig
arch/sh/configs/magicpanelr2_defconfig
arch/sh/configs/microdev_defconfig
arch/sh/configs/migor_defconfig
arch/sh/configs/r7780mp_defconfig
arch/sh/configs/r7785rp_defconfig
arch/sh/configs/rsk7203_defconfig
arch/sh/configs/rts7751r2d1_defconfig
arch/sh/configs/rts7751r2dplus_defconfig
arch/sh/configs/sdk7780_defconfig
arch/sh/configs/se7206_defconfig
arch/sh/configs/se7343_defconfig
arch/sh/configs/se7619_defconfig
arch/sh/drivers/dma/dma-g2.c
arch/sh/drivers/dma/dma-pvr2.c
arch/sh/drivers/dma/dma-sh.c
arch/sh/drivers/dma/dma-sh.h
arch/sh/drivers/pci/fixups-dreamcast.c
arch/sh/drivers/pci/ops-cayman.c
arch/sh/drivers/pci/ops-dreamcast.c
arch/sh/drivers/pci/ops-se7780.c
arch/sh/drivers/pci/pci-sh5.c
arch/sh/include/asm/.gitignore [moved from include/asm-sh/.gitignore with 57% similarity]
arch/sh/include/asm/Kbuild [moved from include/asm-sh/Kbuild with 100% similarity]
arch/sh/include/asm/a.out.h [moved from include/asm-sh/a.out.h with 100% similarity]
arch/sh/include/asm/adc.h [moved from include/asm-sh/adc.h with 88% similarity]
arch/sh/include/asm/addrspace.h [moved from include/asm-sh/addrspace.h with 98% similarity]
arch/sh/include/asm/atomic-grb.h [moved from include/asm-sh/atomic-grb.h with 100% similarity]
arch/sh/include/asm/atomic-irq.h [moved from include/asm-sh/atomic-irq.h with 100% similarity]
arch/sh/include/asm/atomic-llsc.h [moved from include/asm-sh/atomic-llsc.h with 100% similarity]
arch/sh/include/asm/atomic.h [moved from include/asm-sh/atomic.h with 100% similarity]
arch/sh/include/asm/auxvec.h [moved from include/asm-sh/auxvec.h with 94% similarity]
arch/sh/include/asm/bitops-grb.h [moved from include/asm-sh/bitops-grb.h with 100% similarity]
arch/sh/include/asm/bitops-irq.h [moved from include/asm-sh/bitops-irq.h with 100% similarity]
arch/sh/include/asm/bitops.h [moved from include/asm-sh/bitops.h with 100% similarity]
arch/sh/include/asm/bug.h [moved from include/asm-sh/bug.h with 100% similarity]
arch/sh/include/asm/bugs.h [moved from include/asm-sh/bugs.h with 100% similarity]
arch/sh/include/asm/byteorder.h [moved from include/asm-sh/byteorder.h with 100% similarity]
arch/sh/include/asm/cache.h [moved from include/asm-sh/cache.h with 97% similarity]
arch/sh/include/asm/cacheflush.h [moved from include/asm-sh/cacheflush.h with 98% similarity]
arch/sh/include/asm/checksum.h [moved from include/asm-sh/checksum.h with 100% similarity]
arch/sh/include/asm/checksum_32.h [moved from include/asm-sh/checksum_32.h with 100% similarity]
arch/sh/include/asm/checksum_64.h [moved from include/asm-sh/checksum_64.h with 100% similarity]
arch/sh/include/asm/clock.h [moved from include/asm-sh/clock.h with 100% similarity]
arch/sh/include/asm/cmpxchg-grb.h [moved from include/asm-sh/cmpxchg-grb.h with 100% similarity]
arch/sh/include/asm/cmpxchg-irq.h [moved from include/asm-sh/cmpxchg-irq.h with 100% similarity]
arch/sh/include/asm/cpu-features.h [moved from include/asm-sh/cpu-features.h with 100% similarity]
arch/sh/include/asm/cputime.h [moved from include/asm-sh/cputime.h with 100% similarity]
arch/sh/include/asm/current.h [moved from include/asm-sh/current.h with 100% similarity]
arch/sh/include/asm/delay.h [moved from include/asm-sh/delay.h with 100% similarity]
arch/sh/include/asm/device.h [moved from include/asm-sh/device.h with 100% similarity]
arch/sh/include/asm/div64.h [moved from include/asm-sh/div64.h with 100% similarity]
arch/sh/include/asm/dma-mapping.h [moved from include/asm-sh/dma-mapping.h with 100% similarity]
arch/sh/include/asm/dma.h [moved from include/asm-sh/dma.h with 99% similarity]
arch/sh/include/asm/dmabrg.h [moved from include/asm-sh/dmabrg.h with 100% similarity]
arch/sh/include/asm/edosk7705.h [moved from include/asm-sh/edosk7705.h with 100% similarity]
arch/sh/include/asm/elf.h [moved from include/asm-sh/elf.h with 100% similarity]
arch/sh/include/asm/emergency-restart.h [moved from include/asm-sh/emergency-restart.h with 100% similarity]
arch/sh/include/asm/entry-macros.S [moved from include/asm-sh/entry-macros.S with 100% similarity]
arch/sh/include/asm/errno.h [moved from include/asm-sh/errno.h with 100% similarity]
arch/sh/include/asm/fb.h [moved from include/asm-sh/fb.h with 100% similarity]
arch/sh/include/asm/fcntl.h [moved from include/asm-sh/fcntl.h with 100% similarity]
arch/sh/include/asm/fixmap.h [moved from include/asm-sh/fixmap.h with 100% similarity]
arch/sh/include/asm/flat.h [moved from include/asm-sh/flat.h with 100% similarity]
arch/sh/include/asm/fpu.h [moved from include/asm-sh/fpu.h with 100% similarity]
arch/sh/include/asm/freq.h [moved from include/asm-sh/freq.h with 94% similarity]
arch/sh/include/asm/futex-irq.h [moved from include/asm-sh/futex-irq.h with 100% similarity]
arch/sh/include/asm/futex.h [moved from include/asm-sh/futex.h with 100% similarity]
arch/sh/include/asm/gpio.h [moved from include/asm-sh/gpio.h with 94% similarity]
arch/sh/include/asm/hardirq.h [moved from include/asm-sh/hardirq.h with 100% similarity]
arch/sh/include/asm/hd64461.h [moved from include/asm-sh/hd64461.h with 100% similarity]
arch/sh/include/asm/hd64465/gpio.h [moved from include/asm-sh/hd64465/gpio.h with 100% similarity]
arch/sh/include/asm/hd64465/hd64465.h [moved from include/asm-sh/hd64465/hd64465.h with 100% similarity]
arch/sh/include/asm/hd64465/io.h [moved from include/asm-sh/hd64465/io.h with 100% similarity]
arch/sh/include/asm/heartbeat.h [moved from include/asm-sh/heartbeat.h with 100% similarity]
arch/sh/include/asm/hp6xx.h [moved from include/asm-sh/hp6xx.h with 100% similarity]
arch/sh/include/asm/hugetlb.h [moved from include/asm-sh/hugetlb.h with 100% similarity]
arch/sh/include/asm/hw_irq.h [moved from include/asm-sh/hw_irq.h with 100% similarity]
arch/sh/include/asm/i2c-sh7760.h [moved from include/asm-sh/i2c-sh7760.h with 100% similarity]
arch/sh/include/asm/ilsel.h [moved from include/asm-sh/ilsel.h with 100% similarity]
arch/sh/include/asm/io.h [moved from include/asm-sh/io.h with 100% similarity]
arch/sh/include/asm/io_generic.h [moved from include/asm-sh/io_generic.h with 100% similarity]
arch/sh/include/asm/io_trapped.h [moved from include/asm-sh/io_trapped.h with 100% similarity]
arch/sh/include/asm/ioctl.h [moved from include/asm-sh/ioctl.h with 100% similarity]
arch/sh/include/asm/ioctls.h [moved from include/asm-sh/ioctls.h with 100% similarity]
arch/sh/include/asm/ipcbuf.h [moved from include/asm-sh/ipcbuf.h with 100% similarity]
arch/sh/include/asm/irq.h [moved from include/asm-sh/irq.h with 97% similarity]
arch/sh/include/asm/irq_regs.h [moved from include/asm-sh/irq_regs.h with 100% similarity]
arch/sh/include/asm/irqflags.h [moved from include/asm-sh/irqflags.h with 100% similarity]
arch/sh/include/asm/irqflags_32.h [moved from include/asm-sh/irqflags_32.h with 100% similarity]
arch/sh/include/asm/irqflags_64.h [moved from include/asm-sh/irqflags_64.h with 98% similarity]
arch/sh/include/asm/kdebug.h [moved from include/asm-sh/kdebug.h with 100% similarity]
arch/sh/include/asm/kexec.h [moved from include/asm-sh/kexec.h with 100% similarity]
arch/sh/include/asm/kgdb.h [moved from include/asm-sh/kgdb.h with 100% similarity]
arch/sh/include/asm/kmap_types.h [moved from include/asm-sh/kmap_types.h with 100% similarity]
arch/sh/include/asm/lboxre2.h [moved from include/asm-sh/lboxre2.h with 100% similarity]
arch/sh/include/asm/linkage.h [moved from include/asm-sh/linkage.h with 100% similarity]
arch/sh/include/asm/local.h [moved from include/asm-sh/local.h with 100% similarity]
arch/sh/include/asm/machvec.h [moved from include/asm-sh/machvec.h with 100% similarity]
arch/sh/include/asm/magicpanelr2.h [moved from include/asm-sh/magicpanelr2.h with 100% similarity]
arch/sh/include/asm/mc146818rtc.h [moved from include/asm-sh/mc146818rtc.h with 100% similarity]
arch/sh/include/asm/microdev.h [moved from include/asm-sh/microdev.h with 100% similarity]
arch/sh/include/asm/migor.h [moved from include/asm-sh/migor.h with 100% similarity]
arch/sh/include/asm/mman.h [moved from include/asm-sh/mman.h with 100% similarity]
arch/sh/include/asm/mmu.h [moved from include/asm-sh/mmu.h with 100% similarity]
arch/sh/include/asm/mmu_context.h [moved from include/asm-sh/mmu_context.h with 99% similarity]
arch/sh/include/asm/mmu_context_32.h [moved from include/asm-sh/mmu_context_32.h with 100% similarity]
arch/sh/include/asm/mmu_context_64.h [moved from include/asm-sh/mmu_context_64.h with 98% similarity]
arch/sh/include/asm/mmzone.h [moved from include/asm-sh/mmzone.h with 100% similarity]
arch/sh/include/asm/module.h [moved from include/asm-sh/module.h with 100% similarity]
arch/sh/include/asm/msgbuf.h [moved from include/asm-sh/msgbuf.h with 100% similarity]
arch/sh/include/asm/mutex.h [moved from include/asm-sh/mutex.h with 100% similarity]
arch/sh/include/asm/page.h [moved from include/asm-sh/page.h with 100% similarity]
arch/sh/include/asm/param.h [moved from include/asm-sh/param.h with 100% similarity]
arch/sh/include/asm/parport.h [moved from include/asm-sh/parport.h with 100% similarity]
arch/sh/include/asm/pci.h [moved from include/asm-sh/pci.h with 100% similarity]
arch/sh/include/asm/percpu.h [moved from include/asm-sh/percpu.h with 100% similarity]
arch/sh/include/asm/pgalloc.h [moved from include/asm-sh/pgalloc.h with 100% similarity]
arch/sh/include/asm/pgtable.h [moved from include/asm-sh/pgtable.h with 100% similarity]
arch/sh/include/asm/pgtable_32.h [moved from include/asm-sh/pgtable_32.h with 100% similarity]
arch/sh/include/asm/pgtable_64.h [moved from include/asm-sh/pgtable_64.h with 100% similarity]
arch/sh/include/asm/pm.h [moved from include/asm-sh/pm.h with 100% similarity]
arch/sh/include/asm/poll.h [moved from include/asm-sh/poll.h with 100% similarity]
arch/sh/include/asm/posix_types.h [moved from include/asm-sh/posix_types.h with 100% similarity]
arch/sh/include/asm/posix_types_32.h [moved from include/asm-sh/posix_types_32.h with 100% similarity]
arch/sh/include/asm/posix_types_64.h [moved from include/asm-sh/posix_types_64.h with 100% similarity]
arch/sh/include/asm/processor.h [moved from include/asm-sh/processor.h with 100% similarity]
arch/sh/include/asm/processor_32.h [moved from include/asm-sh/processor_32.h with 98% similarity]
arch/sh/include/asm/processor_64.h [moved from include/asm-sh/processor_64.h with 99% similarity]
arch/sh/include/asm/ptrace.h [moved from include/asm-sh/ptrace.h with 100% similarity]
arch/sh/include/asm/push-switch.h [moved from include/asm-sh/push-switch.h with 100% similarity]
arch/sh/include/asm/r7780rp.h [moved from include/asm-sh/r7780rp.h with 100% similarity]
arch/sh/include/asm/resource.h [moved from include/asm-sh/resource.h with 100% similarity]
arch/sh/include/asm/rtc.h [moved from include/asm-sh/rtc.h with 92% similarity]
arch/sh/include/asm/rts7751r2d.h [moved from include/asm-sh/rts7751r2d.h with 100% similarity]
arch/sh/include/asm/rwsem.h [moved from include/asm-sh/rwsem.h with 100% similarity]
arch/sh/include/asm/scatterlist.h [moved from include/asm-sh/scatterlist.h with 100% similarity]
arch/sh/include/asm/sdk7780.h [moved from include/asm-sh/sdk7780.h with 100% similarity]
arch/sh/include/asm/sections.h [moved from include/asm-sh/sections.h with 100% similarity]
arch/sh/include/asm/segment.h [moved from include/asm-sh/segment.h with 100% similarity]
arch/sh/include/asm/sembuf.h [moved from include/asm-sh/sembuf.h with 100% similarity]
arch/sh/include/asm/serial.h [moved from include/asm-sh/serial.h with 96% similarity]
arch/sh/include/asm/setup.h [moved from include/asm-sh/setup.h with 100% similarity]
arch/sh/include/asm/sfp-machine.h [moved from include/asm-sh/sfp-machine.h with 100% similarity]
arch/sh/include/asm/sh7760fb.h [moved from include/asm-sh/sh7760fb.h with 100% similarity]
arch/sh/include/asm/sh7763rdp.h [moved from include/asm-sh/sh7763rdp.h with 100% similarity]
arch/sh/include/asm/sh7785lcr.h [moved from include/asm-sh/sh7785lcr.h with 100% similarity]
arch/sh/include/asm/sh_bios.h [moved from include/asm-sh/sh_bios.h with 100% similarity]
arch/sh/include/asm/sh_keysc.h [moved from include/asm-sh/sh_keysc.h with 100% similarity]
arch/sh/include/asm/sh_mobile_lcdc.h [moved from include/asm-sh/sh_mobile_lcdc.h with 100% similarity]
arch/sh/include/asm/shmbuf.h [moved from include/asm-sh/shmbuf.h with 100% similarity]
arch/sh/include/asm/shmin.h [moved from include/asm-sh/shmin.h with 100% similarity]
arch/sh/include/asm/shmparam.h [moved from include/asm-sh/shmparam.h with 100% similarity]
arch/sh/include/asm/sigcontext.h [moved from include/asm-sh/sigcontext.h with 100% similarity]
arch/sh/include/asm/siginfo.h [moved from include/asm-sh/siginfo.h with 100% similarity]
arch/sh/include/asm/signal.h [moved from include/asm-sh/signal.h with 100% similarity]
arch/sh/include/asm/smc37c93x.h [moved from include/asm-sh/smc37c93x.h with 100% similarity]
arch/sh/include/asm/smp.h [moved from include/asm-sh/smp.h with 100% similarity]
arch/sh/include/asm/snapgear.h [moved from include/asm-sh/snapgear.h with 100% similarity]
arch/sh/include/asm/socket.h [moved from include/asm-sh/socket.h with 100% similarity]
arch/sh/include/asm/sockios.h [moved from include/asm-sh/sockios.h with 100% similarity]
arch/sh/include/asm/sparsemem.h [moved from include/asm-sh/sparsemem.h with 100% similarity]
arch/sh/include/asm/spi.h [moved from include/asm-sh/spi.h with 100% similarity]
arch/sh/include/asm/spinlock.h [moved from include/asm-sh/spinlock.h with 100% similarity]
arch/sh/include/asm/spinlock_types.h [moved from include/asm-sh/spinlock_types.h with 100% similarity]
arch/sh/include/asm/stat.h [moved from include/asm-sh/stat.h with 100% similarity]
arch/sh/include/asm/statfs.h [moved from include/asm-sh/statfs.h with 100% similarity]
arch/sh/include/asm/string.h [moved from include/asm-sh/string.h with 100% similarity]
arch/sh/include/asm/string_32.h [moved from include/asm-sh/string_32.h with 100% similarity]
arch/sh/include/asm/string_64.h [moved from include/asm-sh/string_64.h with 100% similarity]
arch/sh/include/asm/system.h [moved from include/asm-sh/system.h with 100% similarity]
arch/sh/include/asm/system_32.h [moved from include/asm-sh/system_32.h with 100% similarity]
arch/sh/include/asm/system_64.h [moved from include/asm-sh/system_64.h with 100% similarity]
arch/sh/include/asm/systemh7751.h [moved from include/asm-sh/systemh7751.h with 100% similarity]
arch/sh/include/asm/termbits.h [moved from include/asm-sh/termbits.h with 100% similarity]
arch/sh/include/asm/termios.h [moved from include/asm-sh/termios.h with 100% similarity]
arch/sh/include/asm/thread_info.h [moved from include/asm-sh/thread_info.h with 100% similarity]
arch/sh/include/asm/timer.h [moved from include/asm-sh/timer.h with 96% similarity]
arch/sh/include/asm/timex.h [moved from include/asm-sh/timex.h with 100% similarity]
arch/sh/include/asm/titan.h [moved from include/asm-sh/titan.h with 100% similarity]
arch/sh/include/asm/tlb.h [moved from include/asm-sh/tlb.h with 100% similarity]
arch/sh/include/asm/tlb_64.h [moved from include/asm-sh/tlb_64.h with 100% similarity]
arch/sh/include/asm/tlbflush.h [moved from include/asm-sh/tlbflush.h with 100% similarity]
arch/sh/include/asm/topology.h [moved from include/asm-sh/topology.h with 100% similarity]
arch/sh/include/asm/types.h [moved from include/asm-sh/types.h with 100% similarity]
arch/sh/include/asm/uaccess.h [moved from include/asm-sh/uaccess.h with 97% similarity]
arch/sh/include/asm/uaccess_32.h [moved from include/asm-sh/uaccess_32.h with 98% similarity]
arch/sh/include/asm/uaccess_64.h [moved from include/asm-sh/uaccess_64.h with 100% similarity]
arch/sh/include/asm/ubc.h [moved from include/asm-sh/ubc.h with 98% similarity]
arch/sh/include/asm/ucontext.h [moved from include/asm-sh/ucontext.h with 100% similarity]
arch/sh/include/asm/unaligned.h [moved from include/asm-sh/unaligned.h with 100% similarity]
arch/sh/include/asm/unistd.h [moved from include/asm-sh/unistd.h with 100% similarity]
arch/sh/include/asm/unistd_32.h [moved from include/asm-sh/unistd_32.h with 100% similarity]
arch/sh/include/asm/unistd_64.h [moved from include/asm-sh/unistd_64.h with 100% similarity]
arch/sh/include/asm/user.h [moved from include/asm-sh/user.h with 100% similarity]
arch/sh/include/asm/vga.h [moved from include/asm-sh/vga.h with 100% similarity]
arch/sh/include/asm/watchdog.h [moved from include/asm-sh/watchdog.h with 96% similarity]
arch/sh/include/asm/xor.h [moved from include/asm-sh/xor.h with 100% similarity]
arch/sh/include/cpu-common/cpu/addrspace.h [moved from include/asm-sh/cpu-sh2/addrspace.h with 100% similarity]
arch/sh/include/cpu-common/cpu/cacheflush.h [moved from include/asm-sh/cpu-sh2/cacheflush.h with 99% similarity]
arch/sh/include/cpu-common/cpu/mmu_context.h [moved from include/asm-sh/cpu-sh2/mmu_context.h with 100% similarity]
arch/sh/include/cpu-common/cpu/rtc.h [moved from include/asm-sh/cpu-sh2/rtc.h with 100% similarity]
arch/sh/include/cpu-common/cpu/sigcontext.h [moved from include/asm-sh/cpu-sh2/sigcontext.h with 100% similarity]
arch/sh/include/cpu-common/cpu/timer.h [moved from include/asm-sh/cpu-sh2/timer.h with 100% similarity]
arch/sh/include/cpu-sh2/cpu/cache.h [moved from include/asm-sh/cpu-sh2/cache.h with 100% similarity]
arch/sh/include/cpu-sh2/cpu/dma.h [moved from include/asm-sh/cpu-sh2/dma.h with 100% similarity]
arch/sh/include/cpu-sh2/cpu/freq.h [moved from include/asm-sh/cpu-sh2/freq.h with 100% similarity]
arch/sh/include/cpu-sh2/cpu/ubc.h [moved from include/asm-sh/cpu-sh2/ubc.h with 100% similarity]
arch/sh/include/cpu-sh2/cpu/watchdog.h [moved from include/asm-sh/cpu-sh2/watchdog.h with 100% similarity]
arch/sh/include/cpu-sh2a/cpu/cache.h [moved from include/asm-sh/cpu-sh2a/cache.h with 100% similarity]
arch/sh/include/cpu-sh2a/cpu/dma.h [new file with mode: 0644]
arch/sh/include/cpu-sh2a/cpu/freq.h [moved from include/asm-sh/cpu-sh2a/freq.h with 100% similarity]
arch/sh/include/cpu-sh2a/cpu/rtc.h [moved from include/asm-sh/cpu-sh2a/rtc.h with 100% similarity]
arch/sh/include/cpu-sh2a/cpu/ubc.h [new file with mode: 0644]
arch/sh/include/cpu-sh2a/cpu/watchdog.h [new file with mode: 0644]
arch/sh/include/cpu-sh3/cpu/adc.h [moved from include/asm-sh/cpu-sh3/adc.h with 100% similarity]
arch/sh/include/cpu-sh3/cpu/cache.h [moved from include/asm-sh/cpu-sh3/cache.h with 100% similarity]
arch/sh/include/cpu-sh3/cpu/cacheflush.h [new file with mode: 0644]
arch/sh/include/cpu-sh3/cpu/dac.h [moved from include/asm-sh/cpu-sh3/dac.h with 100% similarity]
arch/sh/include/cpu-sh3/cpu/dma.h [moved from include/asm-sh/cpu-sh3/dma.h with 100% similarity]
arch/sh/include/cpu-sh3/cpu/freq.h [moved from include/asm-sh/cpu-sh3/freq.h with 100% similarity]
arch/sh/include/cpu-sh3/cpu/gpio.h [moved from include/asm-sh/cpu-sh3/gpio.h with 100% similarity]
arch/sh/include/cpu-sh3/cpu/mmu_context.h [moved from include/asm-sh/cpu-sh3/mmu_context.h with 100% similarity]
arch/sh/include/cpu-sh3/cpu/timer.h [moved from include/asm-sh/cpu-sh3/timer.h with 100% similarity]
arch/sh/include/cpu-sh3/cpu/ubc.h [moved from include/asm-sh/cpu-sh3/ubc.h with 100% similarity]
arch/sh/include/cpu-sh3/cpu/watchdog.h [moved from include/asm-sh/cpu-sh3/watchdog.h with 100% similarity]
arch/sh/include/cpu-sh4/cpu/addrspace.h [moved from include/asm-sh/cpu-sh4/addrspace.h with 100% similarity]
arch/sh/include/cpu-sh4/cpu/cache.h [moved from include/asm-sh/cpu-sh4/cache.h with 100% similarity]
arch/sh/include/cpu-sh4/cpu/cacheflush.h [moved from include/asm-sh/cpu-sh4/cacheflush.h with 100% similarity]
arch/sh/include/cpu-sh4/cpu/dma-sh7780.h [moved from include/asm-sh/cpu-sh4/dma-sh7780.h with 100% similarity]
arch/sh/include/cpu-sh4/cpu/dma.h [moved from include/asm-sh/cpu-sh4/dma.h with 97% similarity]
arch/sh/include/cpu-sh4/cpu/fpu.h [moved from include/asm-sh/cpu-sh4/fpu.h with 100% similarity]
arch/sh/include/cpu-sh4/cpu/freq.h [moved from include/asm-sh/cpu-sh4/freq.h with 100% similarity]
arch/sh/include/cpu-sh4/cpu/mmu_context.h [moved from include/asm-sh/cpu-sh4/mmu_context.h with 100% similarity]
arch/sh/include/cpu-sh4/cpu/rtc.h [moved from include/asm-sh/cpu-sh4/rtc.h with 100% similarity]
arch/sh/include/cpu-sh4/cpu/sigcontext.h [moved from include/asm-sh/cpu-sh4/sigcontext.h with 100% similarity]
arch/sh/include/cpu-sh4/cpu/sq.h [moved from include/asm-sh/cpu-sh4/sq.h with 100% similarity]
arch/sh/include/cpu-sh4/cpu/timer.h [moved from include/asm-sh/cpu-sh4/timer.h with 100% similarity]
arch/sh/include/cpu-sh4/cpu/ubc.h [moved from include/asm-sh/cpu-sh4/ubc.h with 100% similarity]
arch/sh/include/cpu-sh4/cpu/watchdog.h [moved from include/asm-sh/cpu-sh4/watchdog.h with 100% similarity]
arch/sh/include/cpu-sh5/cpu/addrspace.h [moved from include/asm-sh/cpu-sh5/addrspace.h with 100% similarity]
arch/sh/include/cpu-sh5/cpu/cache.h [moved from include/asm-sh/cpu-sh5/cache.h with 100% similarity]
arch/sh/include/cpu-sh5/cpu/cacheflush.h [moved from include/asm-sh/cpu-sh5/cacheflush.h with 100% similarity]
arch/sh/include/cpu-sh5/cpu/dma.h [moved from include/asm-sh/cpu-sh5/dma.h with 100% similarity]
arch/sh/include/cpu-sh5/cpu/irq.h [moved from include/asm-sh/cpu-sh5/irq.h with 100% similarity]
arch/sh/include/cpu-sh5/cpu/mmu_context.h [moved from include/asm-sh/cpu-sh5/mmu_context.h with 100% similarity]
arch/sh/include/cpu-sh5/cpu/registers.h [moved from include/asm-sh/cpu-sh5/registers.h with 100% similarity]
arch/sh/include/cpu-sh5/cpu/rtc.h [moved from include/asm-sh/cpu-sh5/rtc.h with 100% similarity]
arch/sh/include/mach-dreamcast/mach/dma.h [moved from include/asm-sh/dreamcast/dma.h with 100% similarity]
arch/sh/include/mach-dreamcast/mach/maple.h [moved from include/asm-sh/dreamcast/maple.h with 100% similarity]
arch/sh/include/mach-dreamcast/mach/pci.h [moved from include/asm-sh/dreamcast/pci.h with 93% similarity]
arch/sh/include/mach-dreamcast/mach/sysasic.h [moved from include/asm-sh/dreamcast/sysasic.h with 100% similarity]
arch/sh/include/mach-landisk/mach/gio.h [moved from include/asm-sh/landisk/gio.h with 100% similarity]
arch/sh/include/mach-landisk/mach/iodata_landisk.h [moved from include/asm-sh/landisk/iodata_landisk.h with 100% similarity]
arch/sh/include/mach-se/mach/se.h [moved from include/asm-sh/se.h with 100% similarity]
arch/sh/include/mach-se/mach/se7206.h [moved from include/asm-sh/se7206.h with 100% similarity]
arch/sh/include/mach-se/mach/se7343.h [moved from include/asm-sh/se7343.h with 100% similarity]
arch/sh/include/mach-se/mach/se7721.h [moved from include/asm-sh/se7721.h with 100% similarity]
arch/sh/include/mach-se/mach/se7722.h [moved from include/asm-sh/se7722.h with 100% similarity]
arch/sh/include/mach-se/mach/se7751.h [moved from include/asm-sh/se7751.h with 100% similarity]
arch/sh/include/mach-se/mach/se7780.h [moved from include/asm-sh/se7780.h with 100% similarity]
arch/sh/include/mach-sh03/mach/io.h [moved from include/asm-sh/sh03/io.h with 100% similarity]
arch/sh/include/mach-sh03/mach/sh03.h [moved from include/asm-sh/sh03/sh03.h with 100% similarity]
arch/sh/kernel/.gitignore [new file with mode: 0644]
arch/sh/kernel/cf-enabler.c
arch/sh/kernel/cpu/irq/intc-sh5.c
arch/sh/kernel/cpu/sh2/entry.S
arch/sh/kernel/cpu/sh2a/entry.S
arch/sh/kernel/cpu/sh3/entry.S
arch/sh/kernel/cpu/sh4/fpu.c
arch/sh/kernel/cpu/sh4/softfloat.c
arch/sh/kernel/cpu/sh4/sq.c
arch/sh/kernel/cpu/sh5/entry.S
arch/sh/kernel/head_64.S
arch/sh/kernel/irq.c
arch/sh/kernel/time_64.c
arch/sh/lib64/panic.c
arch/sh/mm/fault_64.c
arch/sh/tools/Makefile
arch/x86/kernel/pci-dma.c
arch/x86/kernel/setup.c
drivers/Makefile
drivers/cdrom/gdrom.c
drivers/input/keyboard/maple_keyb.c
drivers/mmc/card/block.c
drivers/mmc/card/mmc_test.c
drivers/mmc/core/core.c
drivers/mmc/host/au1xmmc.c
drivers/mmc/host/sdhci-pci.c
drivers/mmc/host/sdhci.c
drivers/mmc/host/sdhci.h
drivers/power/Kconfig
drivers/power/Makefile
drivers/power/olpc_battery.c
drivers/power/power_supply_sysfs.c
drivers/power/tosa_battery.c [new file with mode: 0644]
drivers/regulator/Kconfig [new file with mode: 0644]
drivers/regulator/Makefile [new file with mode: 0644]
drivers/regulator/bq24022.c [new file with mode: 0644]
drivers/regulator/core.c [new file with mode: 0644]
drivers/regulator/fixed.c [new file with mode: 0644]
drivers/regulator/virtual.c [new file with mode: 0644]
drivers/s390/block/dasd_alias.c
drivers/s390/block/dasd_devmap.c
drivers/s390/block/dasd_eckd.c
drivers/s390/block/dasd_eckd.h
drivers/s390/block/dasd_int.h
drivers/s390/char/sclp.c
drivers/s390/char/sclp_cmd.c
drivers/s390/char/sclp_config.c
drivers/s390/cio/idset.c
drivers/s390/cio/qdio_main.c
drivers/s390/cio/qdio_perf.c
drivers/s390/cio/qdio_setup.c
drivers/s390/kvm/kvm_virtio.c
drivers/s390/net/qeth_core.h
drivers/s390/net/qeth_core_main.c
drivers/s390/net/qeth_l2_main.c
drivers/s390/net/qeth_l3_main.c
drivers/serial/sh-sci.h
drivers/sh/maple/maple.c
drivers/video/Makefile
drivers/video/backlight/hp680_bl.c
drivers/video/hitfb.c
drivers/video/pvr2fb.c
include/asm-mips/gdb-stub.h [deleted file]
include/asm-mips/kdebug.h
include/asm-mips/kgdb.h [new file with mode: 0644]
include/asm-mips/pci.h
include/asm-mips/txx9/generic.h
include/asm-mips/txx9/jmr3927.h
include/asm-mips/txx9/pci.h
include/asm-mips/txx9/smsc_fdc37m81x.h
include/asm-mips/txx9/tx3927.h
include/asm-mips/txx9/tx4927.h
include/asm-mips/txx9/tx4927pcic.h
include/asm-mips/txx9/tx4938.h
include/asm-mips/txx9/txx927.h [deleted file]
include/asm-mips/txx9irq.h
include/asm-s390/hardirq.h
include/asm-s390/ipl.h
include/asm-s390/schid.h
include/asm-s390/setup.h
include/asm-s390/unistd.h
include/asm-sh/cpu-sh2a/addrspace.h [deleted file]
include/asm-sh/cpu-sh2a/cacheflush.h [deleted file]
include/asm-sh/cpu-sh2a/dma.h [deleted file]
include/asm-sh/cpu-sh2a/mmu_context.h [deleted file]
include/asm-sh/cpu-sh2a/timer.h [deleted file]
include/asm-sh/cpu-sh2a/ubc.h [deleted file]
include/asm-sh/cpu-sh2a/watchdog.h [deleted file]
include/asm-sh/cpu-sh3/addrspace.h [deleted file]
include/asm-sh/cpu-sh3/cacheflush.h [deleted file]
include/asm-sh/cpu-sh3/rtc.h [deleted file]
include/asm-sh/cpu-sh3/sigcontext.h [deleted file]
include/asm-sh/cpu-sh5/timer.h [deleted file]
include/asm-x86/iommu.h
include/linux/iommu-helper.h
include/linux/maple.h
include/linux/page-flags.h
include/linux/power_supply.h
include/linux/regulator/bq24022.h [new file with mode: 0644]
include/linux/regulator/consumer.h [new file with mode: 0644]
include/linux/regulator/driver.h [new file with mode: 0644]
include/linux/regulator/fixed.h [new file with mode: 0644]
include/linux/regulator/machine.h [new file with mode: 0644]
init/calibrate.c
lib/iommu-helper.c
mm/hugetlb.c
mm/rmap.c
security/selinux/hooks.c
sound/sh/aica.c

diff --git a/Documentation/ABI/testing/sysfs-class-regulator b/Documentation/ABI/testing/sysfs-class-regulator
new file mode 100644 (file)
index 0000000..79a4a75
--- /dev/null
@@ -0,0 +1,315 @@
+What:          /sys/class/regulator/.../state
+Date:          April 2008
+KernelVersion: 2.6.26
+Contact:       Liam Girdwood <lg@opensource.wolfsonmicro.com>
+Description:
+               Each regulator directory will contain a field called
+               state. This holds the regulator output state.
+
+               This will be one of the following strings:
+
+               'enabled'
+               'disabled'
+               'unknown'
+
+               'enabled' means the regulator output is ON and is supplying
+               power to the system.
+
+               'disabled' means the regulator output is OFF and is not
+               supplying power to the system..
+
+               'unknown' means software cannot determine the state.
+
+               NOTE: this field can be used in conjunction with microvolts
+               and microamps to determine regulator output levels.
+
+
+What:          /sys/class/regulator/.../type
+Date:          April 2008
+KernelVersion: 2.6.26
+Contact:       Liam Girdwood <lg@opensource.wolfsonmicro.com>
+Description:
+               Each regulator directory will contain a field called
+               type. This holds the regulator type.
+
+               This will be one of the following strings:
+
+               'voltage'
+               'current'
+               'unknown'
+
+               'voltage' means the regulator output voltage can be controlled
+               by software.
+
+               'current' means the regulator output current limit can be
+               controlled by software.
+
+               'unknown' means software cannot control either voltage or
+               current limit.
+
+
+What:          /sys/class/regulator/.../microvolts
+Date:          April 2008
+KernelVersion: 2.6.26
+Contact:       Liam Girdwood <lg@opensource.wolfsonmicro.com>
+Description:
+               Each regulator directory will contain a field called
+               microvolts. This holds the regulator output voltage setting
+               measured in microvolts (i.e. E-6 Volts).
+
+               NOTE: This value should not be used to determine the regulator
+               output voltage level as this value is the same regardless of
+               whether the regulator is enabled or disabled.
+
+
+What:          /sys/class/regulator/.../microamps
+Date:          April 2008
+KernelVersion: 2.6.26
+Contact:       Liam Girdwood <lg@opensource.wolfsonmicro.com>
+Description:
+               Each regulator directory will contain a field called
+               microamps. This holds the regulator output current limit
+               setting measured in microamps (i.e. E-6 Amps).
+
+               NOTE: This value should not be used to determine the regulator
+               output current level as this value is the same regardless of
+               whether the regulator is enabled or disabled.
+
+
+What:          /sys/class/regulator/.../opmode
+Date:          April 2008
+KernelVersion: 2.6.26
+Contact:       Liam Girdwood <lg@opensource.wolfsonmicro.com>
+Description:
+               Each regulator directory will contain a field called
+               opmode. This holds the regulator operating mode setting.
+
+               The opmode value can be one of the following strings:
+
+               'fast'
+               'normal'
+               'idle'
+               'standby'
+               'unknown'
+
+               The modes are described in include/linux/regulator/regulator.h
+
+               NOTE: This value should not be used to determine the regulator
+               output operating mode as this value is the same regardless of
+               whether the regulator is enabled or disabled.
+
+
+What:          /sys/class/regulator/.../min_microvolts
+Date:          April 2008
+KernelVersion: 2.6.26
+Contact:       Liam Girdwood <lg@opensource.wolfsonmicro.com>
+Description:
+               Each regulator directory will contain a field called
+               min_microvolts. This holds the minimum safe working regulator
+               output voltage setting for this domain measured in microvolts.
+
+               NOTE: this will return the string 'constraint not defined' if
+               the power domain has no min microvolts constraint defined by
+               platform code.
+
+
+What:          /sys/class/regulator/.../max_microvolts
+Date:          April 2008
+KernelVersion: 2.6.26
+Contact:       Liam Girdwood <lg@opensource.wolfsonmicro.com>
+Description:
+               Each regulator directory will contain a field called
+               max_microvolts. This holds the maximum safe working regulator
+               output voltage setting for this domain measured in microvolts.
+
+               NOTE: this will return the string 'constraint not defined' if
+               the power domain has no max microvolts constraint defined by
+               platform code.
+
+
+What:          /sys/class/regulator/.../min_microamps
+Date:          April 2008
+KernelVersion: 2.6.26
+Contact:       Liam Girdwood <lg@opensource.wolfsonmicro.com>
+Description:
+               Each regulator directory will contain a field called
+               min_microamps. This holds the minimum safe working regulator
+               output current limit setting for this domain measured in
+               microamps.
+
+               NOTE: this will return the string 'constraint not defined' if
+               the power domain has no min microamps constraint defined by
+               platform code.
+
+
+What:          /sys/class/regulator/.../max_microamps
+Date:          April 2008
+KernelVersion: 2.6.26
+Contact:       Liam Girdwood <lg@opensource.wolfsonmicro.com>
+Description:
+               Each regulator directory will contain a field called
+               max_microamps. This holds the maximum safe working regulator
+               output current limit setting for this domain measured in
+               microamps.
+
+               NOTE: this will return the string 'constraint not defined' if
+               the power domain has no max microamps constraint defined by
+               platform code.
+
+
+What:          /sys/class/regulator/.../num_users
+Date:          April 2008
+KernelVersion: 2.6.26
+Contact:       Liam Girdwood <lg@opensource.wolfsonmicro.com>
+Description:
+               Each regulator directory will contain a field called
+               num_users. This holds the number of consumer devices that
+               have called regulator_enable() on this regulator.
+
+
+What:          /sys/class/regulator/.../requested_microamps
+Date:          April 2008
+KernelVersion: 2.6.26
+Contact:       Liam Girdwood <lg@opensource.wolfsonmicro.com>
+Description:
+               Each regulator directory will contain a field called
+               requested_microamps. This holds the total requested load
+               current in microamps for this regulator from all its consumer
+               devices.
+
+
+What:          /sys/class/regulator/.../parent
+Date:          April 2008
+KernelVersion: 2.6.26
+Contact:       Liam Girdwood <lg@opensource.wolfsonmicro.com>
+Description:
+               Some regulator directories will contain a link called parent.
+               This points to the parent or supply regulator if one exists.
+
+What:          /sys/class/regulator/.../suspend_mem_microvolts
+Date:          May 2008
+KernelVersion: 2.6.26
+Contact:       Liam Girdwood <lg@opensource.wolfsonmicro.com>
+Description:
+               Each regulator directory will contain a field called
+               suspend_mem_microvolts. This holds the regulator output
+               voltage setting for this domain measured in microvolts when
+               the system is suspended to memory.
+
+               NOTE: this will return the string 'not defined' if
+               the power domain has no suspend to memory voltage defined by
+               platform code.
+
+What:          /sys/class/regulator/.../suspend_disk_microvolts
+Date:          May 2008
+KernelVersion: 2.6.26
+Contact:       Liam Girdwood <lg@opensource.wolfsonmicro.com>
+Description:
+               Each regulator directory will contain a field called
+               suspend_disk_microvolts. This holds the regulator output
+               voltage setting for this domain measured in microvolts when
+               the system is suspended to disk.
+
+               NOTE: this will return the string 'not defined' if
+               the power domain has no suspend to disk voltage defined by
+               platform code.
+
+What:          /sys/class/regulator/.../suspend_standby_microvolts
+Date:          May 2008
+KernelVersion: 2.6.26
+Contact:       Liam Girdwood <lg@opensource.wolfsonmicro.com>
+Description:
+               Each regulator directory will contain a field called
+               suspend_standby_microvolts. This holds the regulator output
+               voltage setting for this domain measured in microvolts when
+               the system is suspended to standby.
+
+               NOTE: this will return the string 'not defined' if
+               the power domain has no suspend to standby voltage defined by
+               platform code.
+
+What:          /sys/class/regulator/.../suspend_mem_mode
+Date:          May 2008
+KernelVersion: 2.6.26
+Contact:       Liam Girdwood <lg@opensource.wolfsonmicro.com>
+Description:
+               Each regulator directory will contain a field called
+               suspend_mem_mode. This holds the regulator operating mode
+               setting for this domain when the system is suspended to
+               memory.
+
+               NOTE: this will return the string 'not defined' if
+               the power domain has no suspend to memory mode defined by
+               platform code.
+
+What:          /sys/class/regulator/.../suspend_disk_mode
+Date:          May 2008
+KernelVersion: 2.6.26
+Contact:       Liam Girdwood <lg@opensource.wolfsonmicro.com>
+Description:
+               Each regulator directory will contain a field called
+               suspend_disk_mode. This holds the regulator operating mode
+               setting for this domain when the system is suspended to disk.
+
+               NOTE: this will return the string 'not defined' if
+               the power domain has no suspend to disk mode defined by
+               platform code.
+
+What:          /sys/class/regulator/.../suspend_standby_mode
+Date:          May 2008
+KernelVersion: 2.6.26
+Contact:       Liam Girdwood <lg@opensource.wolfsonmicro.com>
+Description:
+               Each regulator directory will contain a field called
+               suspend_standby_mode. This holds the regulator operating mode
+               setting for this domain when the system is suspended to
+               standby.
+
+               NOTE: this will return the string 'not defined' if
+               the power domain has no suspend to standby mode defined by
+               platform code.
+
+What:          /sys/class/regulator/.../suspend_mem_state
+Date:          May 2008
+KernelVersion: 2.6.26
+Contact:       Liam Girdwood <lg@opensource.wolfsonmicro.com>
+Description:
+               Each regulator directory will contain a field called
+               suspend_mem_state. This holds the regulator operating state
+               when suspended to memory.
+
+               This will be one of the following strings:
+
+               'enabled'
+               'disabled'
+               'not defined'
+
+What:          /sys/class/regulator/.../suspend_disk_state
+Date:          May 2008
+KernelVersion: 2.6.26
+Contact:       Liam Girdwood <lg@opensource.wolfsonmicro.com>
+Description:
+               Each regulator directory will contain a field called
+               suspend_disk_state. This holds the regulator operating state
+               when suspended to disk.
+
+               This will be one of the following strings:
+
+               'enabled'
+               'disabled'
+               'not defined'
+
+What:          /sys/class/regulator/.../suspend_standby_state
+Date:          May 2008
+KernelVersion: 2.6.26
+Contact:       Liam Girdwood <lg@opensource.wolfsonmicro.com>
+Description:
+               Each regulator directory will contain a field called
+               suspend_standby_state. This holds the regulator operating
+               state when suspended to standby.
+
+               This will be one of the following strings:
+
+               'enabled'
+               'disabled'
+               'not defined'
index a8686e5..c6cd495 100644 (file)
@@ -101,6 +101,10 @@ of charge when battery became full/empty". It also could mean "value of
 charge when battery considered full/empty at given conditions (temperature,
 age)". I.e. these attributes represents real thresholds, not design values.
 
+CHARGE_COUNTER - the current charge counter (in µAh).  This could easily
+be negative; there is no empty or full value.  It is only useful for
+relative, time-based measurements.
+
 ENERGY_FULL, ENERGY_EMPTY - same as above but for energy.
 
 CAPACITY - capacity in percents.
diff --git a/Documentation/power/regulator/consumer.txt b/Documentation/power/regulator/consumer.txt
new file mode 100644 (file)
index 0000000..82b7a43
--- /dev/null
@@ -0,0 +1,182 @@
+Regulator Consumer Driver Interface
+===================================
+
+This text describes the regulator interface for consumer device drivers.
+Please see overview.txt for a description of the terms used in this text.
+
+
+1. Consumer Regulator Access (static & dynamic drivers)
+=======================================================
+
+A consumer driver can get access to it's supply regulator by calling :-
+
+regulator = regulator_get(dev, "Vcc");
+
+The consumer passes in it's struct device pointer and power supply ID. The core
+then finds the correct regulator by consulting a machine specific lookup table.
+If the lookup is successful then this call will return a pointer to the struct
+regulator that supplies this consumer.
+
+To release the regulator the consumer driver should call :-
+
+regulator_put(regulator);
+
+Consumers can be supplied by more than one regulator e.g. codec consumer with
+analog and digital supplies :-
+
+digital = regulator_get(dev, "Vcc");  /* digital core */
+analog = regulator_get(dev, "Avdd");  /* analog */
+
+The regulator access functions regulator_get() and regulator_put() will
+usually be called in your device drivers probe() and remove() respectively.
+
+
+2. Regulator Output Enable & Disable (static & dynamic drivers)
+====================================================================
+
+A consumer can enable it's power supply by calling:-
+
+int regulator_enable(regulator);
+
+NOTE: The supply may already be enabled before regulator_enabled() is called.
+This may happen if the consumer shares the regulator or the regulator has been
+previously enabled by bootloader or kernel board initialization code.
+
+A consumer can determine if a regulator is enabled by calling :-
+
+int regulator_is_enabled(regulator);
+
+This will return > zero when the regulator is enabled.
+
+
+A consumer can disable it's supply when no longer needed by calling :-
+
+int regulator_disable(regulator);
+
+NOTE: This may not disable the supply if it's shared with other consumers. The
+regulator will only be disabled when the enabled reference count is zero.
+
+Finally, a regulator can be forcefully disabled in the case of an emergency :-
+
+int regulator_force_disable(regulator);
+
+NOTE: this will immediately and forcefully shutdown the regulator output. All
+consumers will be powered off.
+
+
+3. Regulator Voltage Control & Status (dynamic drivers)
+======================================================
+
+Some consumer drivers need to be able to dynamically change their supply
+voltage to match system operating points. e.g. CPUfreq drivers can scale
+voltage along with frequency to save power, SD drivers may need to select the
+correct card voltage, etc.
+
+Consumers can control their supply voltage by calling :-
+
+int regulator_set_voltage(regulator, min_uV, max_uV);
+
+Where min_uV and max_uV are the minimum and maximum acceptable voltages in
+microvolts.
+
+NOTE: this can be called when the regulator is enabled or disabled. If called
+when enabled, then the voltage changes instantly, otherwise the voltage
+configuration changes and the voltage is physically set when the regulator is
+next enabled.
+
+The regulators configured voltage output can be found by calling :-
+
+int regulator_get_voltage(regulator);
+
+NOTE: get_voltage() will return the configured output voltage whether the
+regulator is enabled or disabled and should NOT be used to determine regulator
+output state. However this can be used in conjunction with is_enabled() to
+determine the regulator physical output voltage.
+
+
+4. Regulator Current Limit Control & Status (dynamic drivers)
+===========================================================
+
+Some consumer drivers need to be able to dynamically change their supply
+current limit to match system operating points. e.g. LCD backlight driver can
+change the current limit to vary the backlight brightness, USB drivers may want
+to set the limit to 500mA when supplying power.
+
+Consumers can control their supply current limit by calling :-
+
+int regulator_set_current_limit(regulator, min_uV, max_uV);
+
+Where min_uA and max_uA are the minimum and maximum acceptable current limit in
+microamps.
+
+NOTE: this can be called when the regulator is enabled or disabled. If called
+when enabled, then the current limit changes instantly, otherwise the current
+limit configuration changes and the current limit is physically set when the
+regulator is next enabled.
+
+A regulators current limit can be found by calling :-
+
+int regulator_get_current_limit(regulator);
+
+NOTE: get_current_limit() will return the current limit whether the regulator
+is enabled or disabled and should not be used to determine regulator current
+load.
+
+
+5. Regulator Operating Mode Control & Status (dynamic drivers)
+=============================================================
+
+Some consumers can further save system power by changing the operating mode of
+their supply regulator to be more efficient when the consumers operating state
+changes. e.g. consumer driver is idle and subsequently draws less current
+
+Regulator operating mode can be changed indirectly or directly.
+
+Indirect operating mode control.
+--------------------------------
+Consumer drivers can request a change in their supply regulator operating mode
+by calling :-
+
+int regulator_set_optimum_mode(struct regulator *regulator, int load_uA);
+
+This will cause the core to recalculate the total load on the regulator (based
+on all it's consumers) and change operating mode (if necessary and permitted)
+to best match the current operating load.
+
+The load_uA value can be determined from the consumers datasheet. e.g.most
+datasheets have tables showing the max current consumed in certain situations.
+
+Most consumers will use indirect operating mode control since they have no
+knowledge of the regulator or whether the regulator is shared with other
+consumers.
+
+Direct operating mode control.
+------------------------------
+Bespoke or tightly coupled drivers may want to directly control regulator
+operating mode depending on their operating point. This can be achieved by
+calling :-
+
+int regulator_set_mode(struct regulator *regulator, unsigned int mode);
+unsigned int regulator_get_mode(struct regulator *regulator);
+
+Direct mode will only be used by consumers that *know* about the regulator and
+are not sharing the regulator with other consumers.
+
+
+6. Regulator Events
+===================
+Regulators can notify consumers of external events. Events could be received by
+consumers under regulator stress or failure conditions.
+
+Consumers can register interest in regulator events by calling :-
+
+int regulator_register_notifier(struct regulator *regulator,
+                             struct notifier_block *nb);
+
+Consumers can uregister interest by calling :-
+
+int regulator_unregister_notifier(struct regulator *regulator,
+                               struct notifier_block *nb);
+
+Regulators use the kernel notifier framework to send event to thier interested
+consumers.
diff --git a/Documentation/power/regulator/machine.txt b/Documentation/power/regulator/machine.txt
new file mode 100644 (file)
index 0000000..c9a3566
--- /dev/null
@@ -0,0 +1,101 @@
+Regulator Machine Driver Interface
+===================================
+
+The regulator machine driver interface is intended for board/machine specific
+initialisation code to configure the regulator subsystem. Typical things that
+machine drivers would do are :-
+
+ 1. Regulator -> Device mapping.
+ 2. Regulator supply configuration.
+ 3. Power Domain constraint setting.
+
+
+
+1. Regulator -> device mapping
+==============================
+Consider the following machine :-
+
+  Regulator-1 -+-> Regulator-2 --> [Consumer A @ 1.8 - 2.0V]
+               |
+               +-> [Consumer B @ 3.3V]
+
+The drivers for consumers A & B must be mapped to the correct regulator in
+order to control their power supply. This mapping can be achieved in machine
+initialisation code by calling :-
+
+int regulator_set_device_supply(const char *regulator, struct device *dev,
+                               const char *supply);
+
+and is shown with the following code :-
+
+regulator_set_device_supply("Regulator-1", devB, "Vcc");
+regulator_set_device_supply("Regulator-2", devA, "Vcc");
+
+This maps Regulator-1 to the 'Vcc' supply for Consumer B and maps Regulator-2
+to the 'Vcc' supply for Consumer A.
+
+
+2. Regulator supply configuration.
+==================================
+Consider the following machine (again) :-
+
+  Regulator-1 -+-> Regulator-2 --> [Consumer A @ 1.8 - 2.0V]
+               |
+               +-> [Consumer B @ 3.3V]
+
+Regulator-1 supplies power to Regulator-2. This relationship must be registered
+with the core so that Regulator-1 is also enabled when Consumer A enables it's
+supply (Regulator-2).
+
+This relationship can be register with the core via :-
+
+int regulator_set_supply(const char *regulator, const char *regulator_supply);
+
+In this example we would use the following code :-
+
+regulator_set_supply("Regulator-2", "Regulator-1");
+
+Relationships can be queried by calling :-
+
+const char *regulator_get_supply(const char *regulator);
+
+
+3. Power Domain constraint setting.
+===================================
+Each power domain within a system has physical constraints on voltage and
+current. This must be defined in software so that the power domain is always
+operated within specifications.
+
+Consider the following machine (again) :-
+
+  Regulator-1 -+-> Regulator-2 --> [Consumer A @ 1.8 - 2.0V]
+               |
+               +-> [Consumer B @ 3.3V]
+
+This gives us two regulators and two power domains:
+
+                   Domain 1: Regulator-2, Consumer B.
+                   Domain 2: Consumer A.
+
+Constraints can be registered by calling :-
+
+int regulator_set_platform_constraints(const char *regulator,
+       struct regulation_constraints *constraints);
+
+The example is defined as follows :-
+
+struct regulation_constraints domain_1 = {
+       .min_uV = 3300000,
+       .max_uV = 3300000,
+       .valid_modes_mask = REGULATOR_MODE_NORMAL,
+};
+
+struct regulation_constraints domain_2 = {
+       .min_uV = 1800000,
+       .max_uV = 2000000,
+       .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
+       .valid_modes_mask = REGULATOR_MODE_NORMAL,
+};
+
+regulator_set_platform_constraints("Regulator-1", &domain_1);
+regulator_set_platform_constraints("Regulator-2", &domain_2);
diff --git a/Documentation/power/regulator/overview.txt b/Documentation/power/regulator/overview.txt
new file mode 100644 (file)
index 0000000..bdcb332
--- /dev/null
@@ -0,0 +1,171 @@
+Linux voltage and current regulator framework
+=============================================
+
+About
+=====
+
+This framework is designed to provide a standard kernel interface to control
+voltage and current regulators.
+
+The intention is to allow systems to dynamically control regulator power output
+in order to save power and prolong battery life. This applies to both voltage
+regulators (where voltage output is controllable) and current sinks (where
+current limit is controllable).
+
+(C) 2008  Wolfson Microelectronics PLC.
+Author: Liam Girdwood <lg@opensource.wolfsonmicro.com>
+
+
+Nomenclature
+============
+
+Some terms used in this document:-
+
+  o Regulator    - Electronic device that supplies power to other devices.
+                   Most regulators can enable and disable their output whilst
+                   some can control their output voltage and or current.
+
+                   Input Voltage -> Regulator -> Output Voltage
+
+
+  o PMIC         - Power Management IC. An IC that contains numerous regulators
+                   and often contains other susbsystems.
+
+
+  o Consumer     - Electronic device that is supplied power by a regulator.
+                   Consumers can be classified into two types:-
+
+                   Static: consumer does not change it's supply voltage or
+                   current limit. It only needs to enable or disable it's
+                   power supply. It's supply voltage is set by the hardware,
+                   bootloader, firmware or kernel board initialisation code.
+
+                   Dynamic: consumer needs to change it's supply voltage or
+                   current limit to meet operation demands.
+
+
+  o Power Domain - Electronic circuit that is supplied it's input power by the
+                   output power of a regulator, switch or by another power
+                   domain.
+
+                   The supply regulator may be behind a switch(s). i.e.
+
+                   Regulator -+-> Switch-1 -+-> Switch-2 --> [Consumer A]
+                              |             |
+                              |             +-> [Consumer B], [Consumer C]
+                              |
+                              +-> [Consumer D], [Consumer E]
+
+                   That is one regulator and three power domains:
+
+                   Domain 1: Switch-1, Consumers D & E.
+                   Domain 2: Switch-2, Consumers B & C.
+                   Domain 3: Consumer A.
+
+                   and this represents a "supplies" relationship:
+
+                   Domain-1 --> Domain-2 --> Domain-3.
+
+                   A power domain may have regulators that are supplied power
+                   by other regulators. i.e.
+
+                   Regulator-1 -+-> Regulator-2 -+-> [Consumer A]
+                                |
+                                +-> [Consumer B]
+
+                   This gives us two regulators and two power domains:
+
+                   Domain 1: Regulator-2, Consumer B.
+                   Domain 2: Consumer A.
+
+                   and a "supplies" relationship:
+
+                   Domain-1 --> Domain-2
+
+
+  o Constraints  - Constraints are used to define power levels for performance
+                   and hardware protection. Constraints exist at three levels:
+
+                   Regulator Level: This is defined by the regulator hardware
+                   operating parameters and is specified in the regulator
+                   datasheet. i.e.
+
+                     - voltage output is in the range 800mV -> 3500mV.
+                     - regulator current output limit is 20mA @ 5V but is
+                       10mA @ 10V.
+
+                   Power Domain Level: This is defined in software by kernel
+                   level board initialisation code. It is used to constrain a
+                   power domain to a particular power range. i.e.
+
+                     - Domain-1 voltage is 3300mV
+                     - Domain-2 voltage is 1400mV -> 1600mV
+                     - Domain-3 current limit is 0mA -> 20mA.
+
+                   Consumer Level: This is defined by consumer drivers
+                   dynamically setting voltage or current limit levels.
+
+                   e.g. a consumer backlight driver asks for a current increase
+                   from 5mA to 10mA to increase LCD illumination. This passes
+                   to through the levels as follows :-
+
+                   Consumer: need to increase LCD brightness. Lookup and
+                   request next current mA value in brightness table (the
+                   consumer driver could be used on several different
+                   personalities based upon the same reference device).
+
+                   Power Domain: is the new current limit within the domain
+                   operating limits for this domain and system state (e.g.
+                   battery power, USB power)
+
+                   Regulator Domains: is the new current limit within the
+                   regulator operating parameters for input/ouput voltage.
+
+                   If the regulator request passes all the constraint tests
+                   then the new regulator value is applied.
+
+
+Design
+======
+
+The framework is designed and targeted at SoC based devices but may also be
+relevant to non SoC devices and is split into the following four interfaces:-
+
+
+   1. Consumer driver interface.
+
+      This uses a similar API to the kernel clock interface in that consumer
+      drivers can get and put a regulator (like they can with clocks atm) and
+      get/set voltage, current limit, mode, enable and disable. This should
+      allow consumers complete control over their supply voltage and current
+      limit. This also compiles out if not in use so drivers can be reused in
+      systems with no regulator based power control.
+
+        See Documentation/power/regulator/consumer.txt
+
+   2. Regulator driver interface.
+
+      This allows regulator drivers to register their regulators and provide
+      operations to the core. It also has a notifier call chain for propagating
+      regulator events to clients.
+
+        See Documentation/power/regulator/regulator.txt
+
+   3. Machine interface.
+
+      This interface is for machine specific code and allows the creation of
+      voltage/current domains (with constraints) for each regulator. It can
+      provide regulator constraints that will prevent device damage through
+      overvoltage or over current caused by buggy client drivers. It also
+      allows the creation of a regulator tree whereby some regulators are
+      supplied by others (similar to a clock tree).
+
+        See Documentation/power/regulator/machine.txt
+
+   4. Userspace ABI.
+
+      The framework also exports a lot of useful voltage/current/opmode data to
+      userspace via sysfs. This could be used to help monitor device power
+      consumption and status.
+
+        See Documentation/ABI/testing/regulator-sysfs.txt
diff --git a/Documentation/power/regulator/regulator.txt b/Documentation/power/regulator/regulator.txt
new file mode 100644 (file)
index 0000000..a690501
--- /dev/null
@@ -0,0 +1,30 @@
+Regulator Driver Interface
+==========================
+
+The regulator driver interface is relatively simple and designed to allow
+regulator drivers to register their services with the core framework.
+
+
+Registration
+============
+
+Drivers can register a regulator by calling :-
+
+struct regulator_dev *regulator_register(struct regulator_desc *regulator_desc,
+                                         void *reg_data);
+
+This will register the regulators capabilities and operations the regulator
+core. The core does not touch reg_data (private to regulator driver).
+
+Regulators can be unregistered by calling :-
+
+void regulator_unregister(struct regulator_dev *rdev);
+
+
+Regulator Events
+================
+Regulators can send events (e.g. over temp, under voltage, etc) to consumer
+drivers by calling :-
+
+int regulator_notifier_call_chain(struct regulator_dev *rdev,
+                                 unsigned long event, void *data);
index deedc0d..c65a5b9 100644 (file)
@@ -3968,7 +3968,7 @@ M:        lethal@linux-sh.org
 L:     linux-sh@vger.kernel.org
 W:     http://www.linux-sh.org
 T:     git kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6.git
-S:     Maintained
+S:     Supported
 
 SUN3/3X
 P:     Sam Creasey
@@ -4504,6 +4504,15 @@ M:       kaber@trash.net
 L:     netdev@vger.kernel.org
 S:     Maintained
 
+VOLTAGE AND CURRENT REGULATOR FRAMEWORK
+P:     Liam Girdwood
+M:     lg@opensource.wolfsonmicro.com
+P:     Mark Brown
+M:     broonie@opensource.wolfsonmicro.com
+W:     http://opensource.wolfsonmicro.com/node/15
+T:     git kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6.git
+S:     Supported
+
 VT1211 HARDWARE MONITOR DRIVER
 P:     Juerg Haefliger
 M:     juergh@gmail.com
index 257033c..4b8acd2 100644 (file)
@@ -1225,6 +1225,8 @@ source "drivers/dma/Kconfig"
 
 source "drivers/dca/Kconfig"
 
+source "drivers/regulator/Kconfig"
+
 source "drivers/uio/Kconfig"
 
 endmenu
index b4c4eaa..4da736e 100644 (file)
@@ -3,6 +3,7 @@ config MIPS
        default y
        select HAVE_IDE
        select HAVE_OPROFILE
+       select HAVE_ARCH_KGDB
        # Horrible source of confusion.  Die, die, die ...
        select EMBEDDED
        select RTC_LIB
@@ -34,7 +35,6 @@ config BASLER_EXCITE
        select SYS_HAS_CPU_RM9000
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_BIG_ENDIAN
-       select SYS_SUPPORTS_KGDB
        help
          The eXcite is a smart camera platform manufactured by
          Basler Vision Technologies AG.
@@ -280,7 +280,6 @@ config PMC_MSP
        select SYS_HAS_CPU_MIPS32_R2
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_BIG_ENDIAN
-       select SYS_SUPPORTS_KGDB
        select IRQ_CPU
        select SERIAL_8250
        select SERIAL_8250_CONSOLE
@@ -306,7 +305,6 @@ config PMC_YOSEMITE
        select SYS_SUPPORTS_64BIT_KERNEL
        select SYS_SUPPORTS_BIG_ENDIAN
        select SYS_SUPPORTS_HIGHMEM
-       select SYS_SUPPORTS_KGDB
        select SYS_SUPPORTS_SMP
        help
          Yosemite is an evaluation board for the RM9000x2 processor
@@ -359,7 +357,6 @@ config SGI_IP27
        select SYS_HAS_CPU_R10000
        select SYS_SUPPORTS_64BIT_KERNEL
        select SYS_SUPPORTS_BIG_ENDIAN
-       select SYS_SUPPORTS_KGDB
        select SYS_SUPPORTS_NUMA
        select SYS_SUPPORTS_SMP
        select GENERIC_HARDIRQS_NO__DO_IRQ
@@ -475,7 +472,6 @@ config SIBYTE_SWARM
        select SYS_HAS_CPU_SB1
        select SYS_SUPPORTS_BIG_ENDIAN
        select SYS_SUPPORTS_HIGHMEM
-       select SYS_SUPPORTS_KGDB
        select SYS_SUPPORTS_LITTLE_ENDIAN
        select ZONE_DMA32 if 64BIT
 
@@ -868,7 +864,6 @@ config SOC_PNX8550
        select SYS_HAS_EARLY_PRINTK
        select SYS_SUPPORTS_32BIT_KERNEL
        select GENERIC_HARDIRQS_NO__DO_IRQ
-       select SYS_SUPPORTS_KGDB
        select GENERIC_GPIO
 
 config SWAP_IO_SPACE
index f18cf92..765c8e2 100644 (file)
@@ -34,28 +34,6 @@ config SMTC_IDLE_HOOK_DEBUG
          arch/mips/kernel/smtc.c.  This debugging option result in significant
          overhead so should be disabled in production kernels.
 
-config KGDB
-       bool "Remote GDB kernel debugging"
-       depends on DEBUG_KERNEL && SYS_SUPPORTS_KGDB
-       select DEBUG_INFO
-       help
-         If you say Y here, it will be possible to remotely debug the MIPS
-         kernel using gdb. This enlarges your kernel image disk size by
-         several megabytes and requires a machine with more than 16 MB,
-         better 32 MB RAM to avoid excessive linking time. This is only
-         useful for kernel hackers. If unsure, say N.
-
-config SYS_SUPPORTS_KGDB
-       bool
-
-config GDB_CONSOLE
-       bool "Console output to GDB"
-       depends on KGDB
-       help
-         If you are using GDB for remote debugging over a serial port and
-         would like kernel messages to be formatted into GDB $O packets so
-         that GDB prints them as program output, say 'Y'.
-
 config SB1XXX_CORELIS
        bool "Corelis Debugger"
        depends on SIBYTE_SB1xxx_SOC
index 1fe97cc..e4a057d 100644 (file)
@@ -134,4 +134,3 @@ config SOC_AU1X00
        select SYS_HAS_CPU_MIPS32_R1
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_APM_EMULATION
-       select SYS_SUPPORTS_KGDB
index dd0e19d..df48fd6 100644 (file)
@@ -9,7 +9,6 @@ obj-y += prom.o irq.o puts.o time.o reset.o \
        au1xxx_irqmap.o clocks.o platform.o power.o setup.o \
        sleeper.o cputable.o dma.o dbdma.o gpio.o
 
-obj-$(CONFIG_KGDB)             += dbg_io.o
 obj-$(CONFIG_PCI)              += pci.o
 
 EXTRA_CFLAGS += -Werror
diff --git a/arch/mips/au1000/common/dbg_io.c b/arch/mips/au1000/common/dbg_io.c
deleted file mode 100644 (file)
index af5be7d..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-#include <linux/types.h>
-
-#include <asm/mach-au1x00/au1000.h>
-
-#ifdef CONFIG_KGDB
-
-/*
- * FIXME the user should be able to select the
- * uart to be used for debugging.
- */
-#define DEBUG_BASE  UART_DEBUG_BASE
-
-#define         UART16550_BAUD_2400             2400
-#define         UART16550_BAUD_4800             4800
-#define         UART16550_BAUD_9600             9600
-#define         UART16550_BAUD_19200            19200
-#define         UART16550_BAUD_38400            38400
-#define         UART16550_BAUD_57600            57600
-#define         UART16550_BAUD_115200           115200
-
-#define         UART16550_PARITY_NONE           0
-#define         UART16550_PARITY_ODD            0x08
-#define         UART16550_PARITY_EVEN           0x18
-#define         UART16550_PARITY_MARK           0x28
-#define         UART16550_PARITY_SPACE          0x38
-
-#define         UART16550_DATA_5BIT             0x0
-#define         UART16550_DATA_6BIT             0x1
-#define         UART16550_DATA_7BIT             0x2
-#define         UART16550_DATA_8BIT             0x3
-
-#define         UART16550_STOP_1BIT             0x0
-#define         UART16550_STOP_2BIT             0x4
-
-
-#define UART_RX                0       /* Receive buffer */
-#define UART_TX                4       /* Transmit buffer */
-#define UART_IER       8       /* Interrupt Enable Register */
-#define UART_IIR       0xC     /* Interrupt ID Register */
-#define UART_FCR       0x10    /* FIFO Control Register */
-#define UART_LCR       0x14    /* Line Control Register */
-#define UART_MCR       0x18    /* Modem Control Register */
-#define UART_LSR       0x1C    /* Line Status Register */
-#define UART_MSR       0x20    /* Modem Status Register */
-#define UART_CLK       0x28    /* Baud Rat4e Clock Divider */
-#define UART_MOD_CNTRL 0x100   /* Module Control */
-
-/* memory-mapped read/write of the port */
-#define UART16550_READ(y)     (au_readl(DEBUG_BASE + y) & 0xff)
-#define UART16550_WRITE(y, z) (au_writel(z & 0xff, DEBUG_BASE + y))
-
-extern unsigned long calc_clock(void);
-
-void debugInit(u32 baud, u8 data, u8 parity, u8 stop)
-{
-       if (UART16550_READ(UART_MOD_CNTRL) != 0x3)
-               UART16550_WRITE(UART_MOD_CNTRL, 3);
-       calc_clock();
-
-       /* disable interrupts */
-       UART16550_WRITE(UART_IER, 0);
-
-       /* set up baud rate */
-       {
-               u32 divisor;
-
-               /* set divisor */
-               divisor = get_au1x00_uart_baud_base() / baud;
-               UART16550_WRITE(UART_CLK, divisor & 0xffff);
-       }
-
-       /* set data format */
-       UART16550_WRITE(UART_LCR, (data | parity | stop));
-}
-
-static int remoteDebugInitialized;
-
-u8 getDebugChar(void)
-{
-       if (!remoteDebugInitialized) {
-               remoteDebugInitialized = 1;
-               debugInit(UART16550_BAUD_115200,
-                         UART16550_DATA_8BIT,
-                         UART16550_PARITY_NONE,
-                         UART16550_STOP_1BIT);
-       }
-
-       while ((UART16550_READ(UART_LSR) & 0x1) == 0);
-       return UART16550_READ(UART_RX);
-}
-
-
-int putDebugChar(u8 byte)
-{
-       if (!remoteDebugInitialized) {
-               remoteDebugInitialized = 1;
-               debugInit(UART16550_BAUD_115200,
-                         UART16550_DATA_8BIT,
-                         UART16550_PARITY_NONE,
-                         UART16550_STOP_1BIT);
-       }
-
-       while ((UART16550_READ(UART_LSR) & 0x40) == 0);
-       UART16550_WRITE(UART_TX, byte);
-
-       return 1;
-}
-
-#endif
index 5ebe0de..8474135 100644 (file)
@@ -57,6 +57,6 @@ void __init prom_init(void)
        if (!memsize_str)
                memsize = 0x04000000;
        else
-               memsize = strict_strtol(memsize_str, 0, NULL);
+               strict_strtol(memsize_str, 0, &memsize);
        add_memory_region(0, memsize, BOOT_MEM_RAM);
 }
index 33a4aeb..3bae13c 100644 (file)
@@ -55,6 +55,6 @@ void __init prom_init(void)
        if (!memsize_str)
                memsize = 0x04000000;
        else
-               memsize = strict_strtol(memsize_str, 0, NULL);
+               strict_strtol(memsize_str, 0, &memsize);
        add_memory_region(0, memsize, BOOT_MEM_RAM);
 }
index 3837365..8a9c7d5 100644 (file)
@@ -52,6 +52,6 @@ void __init prom_init(void)
        if (!memsize_str)
                memsize = 0x04000000;
        else
-               memsize = strict_strtol(memsize_str, 0, NULL);
+               strict_strtol(memsize_str, 0, &memsize);
        add_memory_region(0, memsize, BOOT_MEM_RAM);
 }
index 8355483..7c67923 100644 (file)
@@ -54,7 +54,7 @@ void __init prom_init(void)
        if (!memsize_str)
                memsize = 0x04000000;
        else
-               memsize = strict_strtol(memsize_str, 0, NULL);
+               strict_strtol(memsize_str, 0, &memsize);
 
        add_memory_region(0, memsize, BOOT_MEM_RAM);
 }
index 09fd63b..e9b2a0f 100644 (file)
@@ -53,6 +53,6 @@ void __init prom_init(void)
        if (!memsize_str)
                memsize = 0x08000000;
        else
-               memsize = strict_strtol(memsize_str, 0, NULL);
+               strict_strtol(memsize_str, 0, &memsize);
        add_memory_region(0, memsize, BOOT_MEM_RAM);
 }
index 49f51e1..3b6e395 100644 (file)
@@ -53,6 +53,6 @@ void __init prom_init(void)
        if (!memsize_str)
                memsize = 0x04000000;
        else
-               memsize = strict_strtol(memsize_str, 0, NULL);
+               strict_strtol(memsize_str, 0, &memsize);
        add_memory_region(0, memsize, BOOT_MEM_RAM);
 }
index 1b5f584..e1055a1 100644 (file)
@@ -53,6 +53,6 @@ void __init prom_init(void)
        if (!memsize_str)
                memsize = 0x08000000;
        else
-               memsize = strict_strtol(memsize_str, 0, NULL);
+               strict_strtol(memsize_str, 0, &memsize);
        add_memory_region(0, memsize, BOOT_MEM_RAM);
 }
index b849bf5..7516434 100644 (file)
@@ -53,6 +53,6 @@ void __init prom_init(void)
        if (!memsize_str)
                memsize = 0x04000000;
        else
-               memsize = strict_strtol(memsize_str, 0, NULL);
+               strict_strtol(memsize_str, 0, &memsize);
        add_memory_region(0, memsize, BOOT_MEM_RAM);
 }
index 519142c..cff29cf 100644 (file)
@@ -5,5 +5,4 @@
 obj-$(CONFIG_BASLER_EXCITE)    += excite_irq.o excite_prom.o excite_setup.o \
                                   excite_device.o excite_procfs.o
 
-obj-$(CONFIG_KGDB)             += excite_dbg_io.o
 obj-m                          += excite_iodev.o
diff --git a/arch/mips/basler/excite/excite_dbg_io.c b/arch/mips/basler/excite/excite_dbg_io.c
deleted file mode 100644 (file)
index d289e3a..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- *  Copyright (C) 2004 by Basler Vision Technologies AG
- *  Author: Thomas Koeller <thomas.koeller@baslerweb.com>
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#include <linux/linkage.h>
-#include <linux/init.h>
-#include <linux/kernel.h>
-#include <asm/gdb-stub.h>
-#include <asm/rm9k-ocd.h>
-#include <excite.h>
-
-#if defined(CONFIG_SERIAL_8250) && CONFIG_SERIAL_8250_NR_UARTS > 1
-#error Debug port used by serial driver
-#endif
-
-#define UART_CLK               25000000
-#define BASE_BAUD              (UART_CLK / 16)
-#define REGISTER_BASE_0                0x0208UL
-#define REGISTER_BASE_1                0x0238UL
-
-#define REGISTER_BASE_DBG      REGISTER_BASE_1
-
-#define CPRR   0x0004
-#define UACFG  0x0200
-#define UAINTS 0x0204
-#define UARBR  (REGISTER_BASE_DBG + 0x0000)
-#define UATHR  (REGISTER_BASE_DBG + 0x0004)
-#define UADLL  (REGISTER_BASE_DBG + 0x0008)
-#define UAIER  (REGISTER_BASE_DBG + 0x000c)
-#define UADLH  (REGISTER_BASE_DBG + 0x0010)
-#define UAIIR  (REGISTER_BASE_DBG + 0x0014)
-#define UAFCR  (REGISTER_BASE_DBG + 0x0018)
-#define UALCR  (REGISTER_BASE_DBG + 0x001c)
-#define UAMCR  (REGISTER_BASE_DBG + 0x0020)
-#define UALSR  (REGISTER_BASE_DBG + 0x0024)
-#define UAMSR  (REGISTER_BASE_DBG + 0x0028)
-#define UASCR  (REGISTER_BASE_DBG + 0x002c)
-
-#define        PARITY_NONE     0
-#define        PARITY_ODD      0x08
-#define        PARITY_EVEN     0x18
-#define        PARITY_MARK     0x28
-#define        PARITY_SPACE    0x38
-
-#define        DATA_5BIT       0x0
-#define        DATA_6BIT       0x1
-#define        DATA_7BIT       0x2
-#define        DATA_8BIT       0x3
-
-#define        STOP_1BIT       0x0
-#define        STOP_2BIT       0x4
-
-#define BAUD_DBG       57600
-#define        PARITY_DBG      PARITY_NONE
-#define        DATA_DBG        DATA_8BIT
-#define        STOP_DBG        STOP_1BIT
-
-/* Initialize the serial port for KGDB debugging */
-void __init excite_kgdb_init(void)
-{
-       const u32 divisor = BASE_BAUD / BAUD_DBG;
-
-       /* Take the UART out of reset */
-       titan_writel(0x00ff1cff, CPRR);
-       titan_writel(0x00000000, UACFG);
-       titan_writel(0x00000002, UACFG);
-
-       titan_writel(0x0, UALCR);
-       titan_writel(0x0, UAIER);
-
-       /* Disable FIFOs */
-       titan_writel(0x00, UAFCR);
-
-       titan_writel(0x80, UALCR);
-       titan_writel(divisor & 0xff, UADLL);
-       titan_writel((divisor & 0xff00) >> 8, UADLH);
-       titan_writel(0x0, UALCR);
-
-       titan_writel(DATA_DBG | PARITY_DBG | STOP_DBG, UALCR);
-
-       /* Enable receiver interrupt */
-       titan_readl(UARBR);
-       titan_writel(0x1, UAIER);
-}
-
-int getDebugChar(void)
-{
-       while (!(titan_readl(UALSR) & 0x1));
-       return titan_readl(UARBR);
-}
-
-int putDebugChar(int data)
-{
-       while (!(titan_readl(UALSR) & 0x20));
-       titan_writel(data, UATHR);
-       return 1;
-}
-
-/* KGDB interrupt handler */
-asmlinkage void excite_kgdb_inthdl(void)
-{
-       if (unlikely(
-               ((titan_readl(UAIIR) & 0x7) == 4)
-               && ((titan_readl(UARBR) & 0xff) == 0x3)))
-                       set_async_breakpoint(&regs->cp0_epc);
-}
index 4903e06..934e0a6 100644 (file)
@@ -50,10 +50,6 @@ void __init arch_init_irq(void)
        mips_cpu_irq_init();
        rm7k_cpu_irq_init();
        rm9k_cpu_irq_init();
-
-#ifdef CONFIG_KGDB
-       excite_kgdb_init();
-#endif
 }
 
 asmlinkage void plat_irq_dispatch(void)
@@ -90,9 +86,6 @@ asmlinkage void plat_irq_dispatch(void)
        msgint      = msgintflags & msgintmask & (0x1 << (TITAN_MSGINT % 0x20));
        if ((pending & (1 << TITAN_IRQ)) && msgint) {
                ocd_writel(msgint, INTP0Clear0 + (TITAN_MSGINT / 0x20 * 0x10));
-#if defined(CONFIG_KGDB)
-               excite_kgdb_inthdl();
-#endif
                do_IRQ(TITAN_IRQ);
                return;
        }
index 6dd8f0d..d66b3b8 100644 (file)
@@ -95,13 +95,13 @@ static int __init excite_init_console(void)
        /* Take the DUART out of reset */
        titan_writel(0x00ff1cff, CPRR);
 
-#if defined(CONFIG_KGDB) || (CONFIG_SERIAL_8250_NR_UARTS > 1)
+#if (CONFIG_SERIAL_8250_NR_UARTS > 1)
        /* Enable both ports */
        titan_writel(MASK_SER0 | MASK_SER1, UACFG);
 #else
        /* Enable port #0 only */
        titan_writel(MASK_SER0, UACFG);
-#endif /* defined(CONFIG_KGDB) */
+#endif
 
        /*
         * Set up serial port #0. Do not use autodetection; the result is
index 2678b7e..eb44b72 100644 (file)
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.23-rc5
-# Thu Sep  6 13:14:29 2007
+# Linux kernel version: 2.6.26
+# Fri Jul 25 10:25:34 2008
 #
 CONFIG_MIPS=y
 
@@ -10,9 +10,11 @@ CONFIG_MIPS=y
 #
 # CONFIG_MACH_ALCHEMY is not set
 # CONFIG_BASLER_EXCITE is not set
+# CONFIG_BCM47XX is not set
 CONFIG_MIPS_COBALT=y
 # CONFIG_MACH_DECSTATION is not set
 # CONFIG_MACH_JAZZ is not set
+# CONFIG_LASAT is not set
 # CONFIG_LEMOTE_FULONG is not set
 # CONFIG_MIPS_MALTA is not set
 # CONFIG_MIPS_SIM is not set
@@ -24,6 +26,7 @@ CONFIG_MIPS_COBALT=y
 # CONFIG_PMC_YOSEMITE is not set
 # CONFIG_SGI_IP22 is not set
 # CONFIG_SGI_IP27 is not set
+# CONFIG_SGI_IP28 is not set
 # CONFIG_SGI_IP32 is not set
 # CONFIG_SIBYTE_CRHINE is not set
 # CONFIG_SIBYTE_CARMEL is not set
@@ -34,19 +37,25 @@ CONFIG_MIPS_COBALT=y
 # CONFIG_SIBYTE_SENTOSA is not set
 # CONFIG_SIBYTE_BIGSUR is not set
 # CONFIG_SNI_RM is not set
-# CONFIG_TOSHIBA_JMR3927 is not set
-# CONFIG_TOSHIBA_RBTX4927 is not set
-# CONFIG_TOSHIBA_RBTX4938 is not set
+# CONFIG_MACH_TX39XX is not set
+# CONFIG_MACH_TX49XX is not set
+# CONFIG_MIKROTIK_RB532 is not set
 # CONFIG_WR_PPMC is not set
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
 # CONFIG_ARCH_HAS_ILOG2_U32 is not set
 # CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_ARCH_SUPPORTS_OPROFILE=y
 CONFIG_GENERIC_FIND_NEXT_BIT=y
 CONFIG_GENERIC_HWEIGHT=y
 CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_CLOCKEVENTS=y
 CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CMOS_UPDATE=y
 CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
 CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_CEVT_GT641XX=y
+CONFIG_CEVT_R4K=y
+CONFIG_CSRC_R4K=y
 CONFIG_DMA_NONCOHERENT=y
 CONFIG_DMA_NEED_PCI_MAP_STATE=y
 CONFIG_EARLY_PRINTK=y
@@ -108,6 +117,7 @@ CONFIG_CPU_HAS_SYNC=y
 CONFIG_GENERIC_HARDIRQS=y
 CONFIG_GENERIC_IRQ_PROBE=y
 CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_POPULATES_NODE_MAP=y
 CONFIG_SELECT_MEMORY_MODEL=y
 CONFIG_FLATMEM_MANUAL=y
 # CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -115,10 +125,16 @@ CONFIG_FLATMEM_MANUAL=y
 CONFIG_FLATMEM=y
 CONFIG_FLAT_NODE_MEM_MAP=y
 # CONFIG_SPARSEMEM_STATIC is not set
+# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
+CONFIG_PAGEFLAGS_EXTENDED=y
 CONFIG_SPLIT_PTLOCK_CPUS=4
 # CONFIG_RESOURCES_64BIT is not set
 CONFIG_ZONE_DMA_FLAG=0
 CONFIG_VIRT_TO_BUS=y
+# CONFIG_TICK_ONESHOT is not set
+# CONFIG_NO_HZ is not set
+# CONFIG_HIGH_RES_TIMERS is not set
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
 # CONFIG_HZ_48 is not set
 # CONFIG_HZ_100 is not set
 # CONFIG_HZ_128 is not set
@@ -151,23 +167,28 @@ CONFIG_SYSVIPC_SYSCTL=y
 # CONFIG_POSIX_MQUEUE is not set
 # CONFIG_BSD_PROCESS_ACCT is not set
 # CONFIG_TASKSTATS is not set
-# CONFIG_USER_NS is not set
 # CONFIG_AUDIT is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_LOG_BUF_SHIFT=14
-CONFIG_SYSFS_DEPRECATED=y
+# CONFIG_CGROUPS is not set
+# CONFIG_GROUP_SCHED is not set
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
 CONFIG_RELAY=y
+# CONFIG_NAMESPACES is not set
 # CONFIG_BLK_DEV_INITRD is not set
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
 CONFIG_SYSCTL=y
 CONFIG_EMBEDDED=y
 CONFIG_SYSCTL_SYSCALL=y
+CONFIG_SYSCTL_SYSCALL_CHECK=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_HOTPLUG=y
 CONFIG_PRINTK=y
 CONFIG_BUG=y
 CONFIG_ELF_CORE=y
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_COMPAT_BRK=y
 CONFIG_BASE_FULL=y
 CONFIG_FUTEX=y
 CONFIG_ANON_INODES=y
@@ -177,23 +198,37 @@ CONFIG_TIMERFD=y
 CONFIG_EVENTFD=y
 CONFIG_SHMEM=y
 CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_SLAB=y
-# CONFIG_SLUB is not set
+CONFIG_SLUB_DEBUG=y
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
 # CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+# CONFIG_MARKERS is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_HAVE_IOREMAP_PROT is not set
+# CONFIG_HAVE_KPROBES is not set
+# CONFIG_HAVE_KRETPROBES is not set
+# CONFIG_HAVE_DMA_ATTRS is not set
+# CONFIG_USE_GENERIC_SMP_HELPERS is not set
+# CONFIG_HAVE_CLK is not set
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SLABINFO=y
 CONFIG_RT_MUTEXES=y
 # CONFIG_TINY_SHMEM is not set
 CONFIG_BASE_SMALL=0
 CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
 CONFIG_MODULE_UNLOAD=y
 # CONFIG_MODULE_FORCE_UNLOAD is not set
 # CONFIG_MODVERSIONS is not set
 # CONFIG_MODULE_SRCVERSION_ALL is not set
-# CONFIG_KMOD is not set
+CONFIG_KMOD=y
 CONFIG_BLOCK=y
 # CONFIG_LBD is not set
 # CONFIG_BLK_DEV_IO_TRACE is not set
 # CONFIG_LSF is not set
 # CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
 
 #
 # IO Schedulers
@@ -207,18 +242,18 @@ CONFIG_DEFAULT_AS=y
 # CONFIG_DEFAULT_CFQ is not set
 # CONFIG_DEFAULT_NOOP is not set
 CONFIG_DEFAULT_IOSCHED="anticipatory"
+CONFIG_CLASSIC_RCU=y
 
 #
 # Bus options (PCI, PCMCIA, EISA, ISA, TC)
 #
 CONFIG_HW_HAS_PCI=y
 CONFIG_PCI=y
+CONFIG_PCI_DOMAINS=y
 # CONFIG_ARCH_SUPPORTS_MSI is not set
+CONFIG_PCI_LEGACY=y
 CONFIG_MMU=y
-
-#
-# PCCARD (PCMCIA/CardBus) support
-#
+CONFIG_I8253=y
 # CONFIG_PCCARD is not set
 # CONFIG_HOTPLUG_PCI is not set
 
@@ -232,8 +267,8 @@ CONFIG_TRAD_SIGNALS=y
 #
 # Power management options
 #
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
 # CONFIG_PM is not set
-CONFIG_SUSPEND_UP_POSSIBLE=y
 
 #
 # Networking
@@ -250,6 +285,7 @@ CONFIG_XFRM=y
 CONFIG_XFRM_USER=y
 # CONFIG_XFRM_SUB_POLICY is not set
 CONFIG_XFRM_MIGRATE=y
+# CONFIG_XFRM_STATISTICS is not set
 CONFIG_NET_KEY=y
 CONFIG_NET_KEY_MIGRATE=y
 CONFIG_INET=y
@@ -269,6 +305,7 @@ CONFIG_IP_FIB_HASH=y
 CONFIG_INET_XFRM_MODE_TRANSPORT=y
 CONFIG_INET_XFRM_MODE_TUNNEL=y
 CONFIG_INET_XFRM_MODE_BEET=y
+# CONFIG_INET_LRO is not set
 CONFIG_INET_DIAG=y
 CONFIG_INET_TCP_DIAG=y
 # CONFIG_TCP_CONG_ADVANCED is not set
@@ -276,8 +313,6 @@ CONFIG_TCP_CONG_CUBIC=y
 CONFIG_DEFAULT_TCP_CONG="cubic"
 # CONFIG_TCP_MD5SIG is not set
 # CONFIG_IPV6 is not set
-# CONFIG_INET6_XFRM_TUNNEL is not set
-# CONFIG_INET6_TUNNEL is not set
 # CONFIG_NETWORK_SECMARK is not set
 # CONFIG_NETFILTER is not set
 # CONFIG_IP_DCCP is not set
@@ -294,10 +329,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
 # CONFIG_LAPB is not set
 # CONFIG_ECONET is not set
 # CONFIG_WAN_ROUTER is not set
-
-#
-# QoS and/or fair queueing
-#
 # CONFIG_NET_SCHED is not set
 
 #
@@ -305,6 +336,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
 #
 # CONFIG_NET_PKTGEN is not set
 # CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
 # CONFIG_IRDA is not set
 # CONFIG_BT is not set
 # CONFIG_AF_RXRPC is not set
@@ -326,9 +358,12 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
 #
 # Generic Driver Options
 #
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
 CONFIG_STANDALONE=y
 CONFIG_PREVENT_FIRMWARE_BUILD=y
 CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
 # CONFIG_SYS_HYPERVISOR is not set
 # CONFIG_CONNECTOR is not set
 CONFIG_MTD=y
@@ -337,6 +372,7 @@ CONFIG_MTD=y
 CONFIG_MTD_PARTITIONS=y
 # CONFIG_MTD_REDBOOT_PARTS is not set
 # CONFIG_MTD_CMDLINE_PARTS is not set
+# CONFIG_MTD_AR7_PARTS is not set
 
 #
 # User Modules And Translation Layers
@@ -350,6 +386,7 @@ CONFIG_MTD_BLKDEVS=y
 # CONFIG_INFTL is not set
 # CONFIG_RFD_FTL is not set
 # CONFIG_SSFDC is not set
+# CONFIG_MTD_OOPS is not set
 
 #
 # RAM/ROM/Flash chip drivers
@@ -384,6 +421,7 @@ CONFIG_MTD_PHYSMAP=y
 CONFIG_MTD_PHYSMAP_START=0x0
 CONFIG_MTD_PHYSMAP_LEN=0x0
 CONFIG_MTD_PHYSMAP_BANKWIDTH=0
+# CONFIG_MTD_INTEL_VR_NOR is not set
 # CONFIG_MTD_PLATRAM is not set
 
 #
@@ -423,7 +461,9 @@ CONFIG_BLK_DEV_LOOP=y
 # CONFIG_BLK_DEV_RAM is not set
 # CONFIG_CDROM_PKTCDVD is not set
 # CONFIG_ATA_OVER_ETH is not set
+# CONFIG_BLK_DEV_HD is not set
 # CONFIG_MISC_DEVICES is not set
+CONFIG_HAVE_IDE=y
 # CONFIG_IDE is not set
 
 #
@@ -462,10 +502,15 @@ CONFIG_SCSI_WAIT_SCAN=m
 # CONFIG_SCSI_FC_ATTRS is not set
 # CONFIG_SCSI_ISCSI_ATTRS is not set
 # CONFIG_SCSI_SAS_LIBSAS is not set
+# CONFIG_SCSI_SRP_ATTRS is not set
 # CONFIG_SCSI_LOWLEVEL is not set
+# CONFIG_SCSI_DH is not set
 CONFIG_ATA=y
 # CONFIG_ATA_NONSTANDARD is not set
+CONFIG_SATA_PMP=y
 # CONFIG_SATA_AHCI is not set
+# CONFIG_SATA_SIL24 is not set
+CONFIG_ATA_SFF=y
 # CONFIG_SATA_SVW is not set
 # CONFIG_ATA_PIIX is not set
 # CONFIG_SATA_MV is not set
@@ -475,7 +520,6 @@ CONFIG_ATA=y
 # CONFIG_SATA_PROMISE is not set
 # CONFIG_SATA_SX4 is not set
 # CONFIG_SATA_SIL is not set
-# CONFIG_SATA_SIL24 is not set
 # CONFIG_SATA_SIS is not set
 # CONFIG_SATA_ULI is not set
 # CONFIG_SATA_VIA is not set
@@ -504,7 +548,9 @@ CONFIG_ATA=y
 # CONFIG_PATA_MPIIX is not set
 # CONFIG_PATA_OLDPIIX is not set
 # CONFIG_PATA_NETCELL is not set
+# CONFIG_PATA_NINJA32 is not set
 # CONFIG_PATA_NS87410 is not set
+# CONFIG_PATA_NS87415 is not set
 # CONFIG_PATA_OPTI is not set
 # CONFIG_PATA_OPTIDMA is not set
 # CONFIG_PATA_PDC_OLD is not set
@@ -518,29 +564,27 @@ CONFIG_ATA=y
 CONFIG_PATA_VIA=y
 # CONFIG_PATA_WINBOND is not set
 # CONFIG_PATA_PLATFORM is not set
+# CONFIG_PATA_SCH is not set
 # CONFIG_MD is not set
+# CONFIG_FUSION is not set
 
 #
-# Fusion MPT device support
+# IEEE 1394 (FireWire) support
 #
-# CONFIG_FUSION is not set
-# CONFIG_FUSION_SPI is not set
-# CONFIG_FUSION_FC is not set
-# CONFIG_FUSION_SAS is not set
 
 #
-# IEEE 1394 (FireWire) support
+# Enable only one of the two stacks, unless you know what you are doing
 #
 # CONFIG_FIREWIRE is not set
 # CONFIG_IEEE1394 is not set
 # CONFIG_I2O is not set
 CONFIG_NETDEVICES=y
-# CONFIG_NETDEVICES_MULTIQUEUE is not set
 # CONFIG_DUMMY is not set
 # CONFIG_BONDING is not set
 # CONFIG_MACVLAN is not set
 # CONFIG_EQUALIZER is not set
 # CONFIG_TUN is not set
+# CONFIG_VETH is not set
 # CONFIG_ARCNET is not set
 # CONFIG_PHYLIB is not set
 CONFIG_NET_ETHERNET=y
@@ -562,7 +606,12 @@ CONFIG_TULIP=y
 # CONFIG_DM9102 is not set
 # CONFIG_ULI526X is not set
 # CONFIG_HP100 is not set
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
 # CONFIG_NET_PCI is not set
+# CONFIG_B44 is not set
 # CONFIG_NETDEV_1000 is not set
 # CONFIG_NETDEV_10000 is not set
 # CONFIG_TR is not set
@@ -572,6 +621,7 @@ CONFIG_TULIP=y
 #
 # CONFIG_WLAN_PRE80211 is not set
 # CONFIG_WLAN_80211 is not set
+# CONFIG_IWLWIFI_LEDS is not set
 
 #
 # USB Network Adapters
@@ -580,7 +630,6 @@ CONFIG_TULIP=y
 # CONFIG_USB_KAWETH is not set
 # CONFIG_USB_PEGASUS is not set
 # CONFIG_USB_RTL8150 is not set
-# CONFIG_USB_USBNET_MII is not set
 # CONFIG_USB_USBNET is not set
 # CONFIG_WAN is not set
 # CONFIG_FDDI is not set
@@ -588,7 +637,6 @@ CONFIG_TULIP=y
 # CONFIG_PPP is not set
 # CONFIG_SLIP is not set
 # CONFIG_NET_FC is not set
-# CONFIG_SHAPER is not set
 # CONFIG_NETCONSOLE is not set
 # CONFIG_NETPOLL is not set
 # CONFIG_NET_POLL_CONTROLLER is not set
@@ -607,7 +655,6 @@ CONFIG_INPUT_POLLDEV=y
 #
 # CONFIG_INPUT_MOUSEDEV is not set
 # CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_TSDEV is not set
 CONFIG_INPUT_EVDEV=y
 # CONFIG_INPUT_EVBUG is not set
 
@@ -642,7 +689,9 @@ CONFIG_VT=y
 CONFIG_VT_CONSOLE=y
 CONFIG_HW_CONSOLE=y
 CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_DEVKMEM=y
 # CONFIG_SERIAL_NONSTANDARD is not set
+# CONFIG_NOZOMI is not set
 
 #
 # Serial drivers
@@ -664,65 +713,122 @@ CONFIG_UNIX98_PTYS=y
 CONFIG_LEGACY_PTYS=y
 CONFIG_LEGACY_PTY_COUNT=256
 # CONFIG_IPMI_HANDLER is not set
-# CONFIG_WATCHDOG is not set
 # CONFIG_HW_RANDOM is not set
-# CONFIG_RTC is not set
-CONFIG_COBALT_LCD=y
 # CONFIG_R3964 is not set
 # CONFIG_APPLICOM is not set
-# CONFIG_DRM is not set
 # CONFIG_RAW_DRIVER is not set
 # CONFIG_TCG_TPM is not set
 CONFIG_DEVPORT=y
 # CONFIG_I2C is not set
-
-#
-# SPI support
-#
 # CONFIG_SPI is not set
-# CONFIG_SPI_MASTER is not set
 # CONFIG_W1 is not set
 # CONFIG_POWER_SUPPLY is not set
 # CONFIG_HWMON is not set
+# CONFIG_THERMAL is not set
+# CONFIG_THERMAL_HWMON is not set
+# CONFIG_WATCHDOG is not set
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB_POSSIBLE=y
+# CONFIG_SSB is not set
 
 #
 # Multifunction device drivers
 #
+# CONFIG_MFD_CORE is not set
 # CONFIG_MFD_SM501 is not set
+# CONFIG_HTC_PASIC3 is not set
 
 #
 # Multimedia devices
 #
+
+#
+# Multimedia core support
+#
 # CONFIG_VIDEO_DEV is not set
 # CONFIG_DVB_CORE is not set
+# CONFIG_VIDEO_MEDIA is not set
+
+#
+# Multimedia drivers
+#
 # CONFIG_DAB is not set
 
 #
 # Graphics support
 #
+# CONFIG_DRM is not set
+# CONFIG_VGASTATE is not set
+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
+# CONFIG_FB_CFB_FILLRECT is not set
+# CONFIG_FB_CFB_COPYAREA is not set
+# CONFIG_FB_CFB_IMAGEBLIT is not set
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+# CONFIG_FB_SYS_FOPS is not set
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_CYBER2000 is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_S3 is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FB_VT8623 is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_ARK is not set
+# CONFIG_FB_PM3 is not set
+# CONFIG_FB_CARMINE is not set
+CONFIG_FB_COBALT=y
+# CONFIG_FB_VIRTUAL is not set
 # CONFIG_BACKLIGHT_LCD_SUPPORT is not set
 
 #
 # Display device support
 #
 # CONFIG_DISPLAY_SUPPORT is not set
-# CONFIG_VGASTATE is not set
-# CONFIG_VIDEO_OUTPUT_CONTROL is not set
-# CONFIG_FB is not set
 
 #
 # Console display driver support
 #
 # CONFIG_VGA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
-
-#
-# Sound
-#
+# CONFIG_FRAMEBUFFER_CONSOLE is not set
+# CONFIG_LOGO is not set
 # CONFIG_SOUND is not set
 CONFIG_HID_SUPPORT=y
 CONFIG_HID=m
 # CONFIG_HID_DEBUG is not set
+# CONFIG_HIDRAW is not set
 
 #
 # USB Input Devices
@@ -743,6 +849,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
 CONFIG_USB_ARCH_HAS_EHCI=y
 CONFIG_USB=m
 # CONFIG_USB_DEBUG is not set
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
 
 #
 # Miscellaneous USB options
@@ -751,15 +858,18 @@ CONFIG_USB=m
 # CONFIG_USB_DEVICE_CLASS is not set
 # CONFIG_USB_DYNAMIC_MINORS is not set
 # CONFIG_USB_OTG is not set
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
 
 #
 # USB Host Controller Drivers
 #
+# CONFIG_USB_C67X00_HCD is not set
 CONFIG_USB_EHCI_HCD=m
-# CONFIG_USB_EHCI_SPLIT_ISO is not set
 # CONFIG_USB_EHCI_ROOT_HUB_TT is not set
 # CONFIG_USB_EHCI_TT_NEWSCHED is not set
 # CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_ISP1760_HCD is not set
 CONFIG_USB_OHCI_HCD=m
 # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
 # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
@@ -773,6 +883,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
 #
 # CONFIG_USB_ACM is not set
 # CONFIG_USB_PRINTER is not set
+# CONFIG_USB_WDM is not set
 
 #
 # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -785,6 +896,7 @@ CONFIG_USB_STORAGE=m
 # CONFIG_USB_STORAGE_DEBUG is not set
 # CONFIG_USB_STORAGE_DATAFAB is not set
 # CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
 # CONFIG_USB_STORAGE_DPCM is not set
 # CONFIG_USB_STORAGE_USBAT is not set
 # CONFIG_USB_STORAGE_SDDR09 is not set
@@ -793,6 +905,7 @@ CONFIG_USB_STORAGE=m
 # CONFIG_USB_STORAGE_ALAUDA is not set
 # CONFIG_USB_STORAGE_ONETOUCH is not set
 # CONFIG_USB_STORAGE_KARMA is not set
+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
 # CONFIG_USB_LIBUSUAL is not set
 
 #
@@ -800,15 +913,11 @@ CONFIG_USB_STORAGE=m
 #
 # CONFIG_USB_MDC800 is not set
 # CONFIG_USB_MICROTEK is not set
-CONFIG_USB_MON=y
+# CONFIG_USB_MON is not set
 
 #
 # USB port drivers
 #
-
-#
-# USB Serial Converter support
-#
 # CONFIG_USB_SERIAL is not set
 
 #
@@ -833,16 +942,10 @@ CONFIG_USB_MON=y
 # CONFIG_USB_LD is not set
 # CONFIG_USB_TRANCEVIBRATOR is not set
 # CONFIG_USB_IOWARRIOR is not set
-
-#
-# USB DSL modem support
-#
-
-#
-# USB Gadget Support
-#
+# CONFIG_USB_ISIGHTFW is not set
 # CONFIG_USB_GADGET is not set
 # CONFIG_MMC is not set
+# CONFIG_MEMSTICK is not set
 CONFIG_NEW_LEDS=y
 CONFIG_LEDS_CLASS=y
 
@@ -858,6 +961,8 @@ CONFIG_LEDS_COBALT_RAQ=y
 CONFIG_LEDS_TRIGGERS=y
 # CONFIG_LEDS_TRIGGER_TIMER is not set
 # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
+# CONFIG_ACCESSIBILITY is not set
 # CONFIG_INFINIBAND is not set
 CONFIG_RTC_LIB=y
 CONFIG_RTC_CLASS=y
@@ -882,9 +987,10 @@ CONFIG_RTC_INTF_DEV=y
 # Platform RTC drivers
 #
 CONFIG_RTC_DRV_CMOS=y
+# CONFIG_RTC_DRV_DS1511 is not set
 # CONFIG_RTC_DRV_DS1553 is not set
-# CONFIG_RTC_DRV_STK17TA8 is not set
 # CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
 # CONFIG_RTC_DRV_M48T86 is not set
 # CONFIG_RTC_DRV_M48T59 is not set
 # CONFIG_RTC_DRV_V3020 is not set
@@ -892,23 +998,7 @@ CONFIG_RTC_DRV_CMOS=y
 #
 # on-CPU RTC drivers
 #
-
-#
-# DMA Engine support
-#
-# CONFIG_DMA_ENGINE is not set
-
-#
-# DMA Clients
-#
-
-#
-# DMA Devices
-#
-
-#
-# Userspace I/O
-#
+# CONFIG_DMADEVICES is not set
 # CONFIG_UIO is not set
 
 #
@@ -923,22 +1013,22 @@ CONFIG_EXT3_FS=y
 CONFIG_EXT3_FS_XATTR=y
 CONFIG_EXT3_FS_POSIX_ACL=y
 CONFIG_EXT3_FS_SECURITY=y
-# CONFIG_EXT4DEV_FS is not set
+CONFIG_EXT4DEV_FS=y
+CONFIG_EXT4DEV_FS_XATTR=y
+CONFIG_EXT4DEV_FS_POSIX_ACL=y
+CONFIG_EXT4DEV_FS_SECURITY=y
 CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
+CONFIG_JBD2=y
 CONFIG_FS_MBCACHE=y
 # CONFIG_REISERFS_FS is not set
 # CONFIG_JFS_FS is not set
 CONFIG_FS_POSIX_ACL=y
 # CONFIG_XFS_FS is not set
-# CONFIG_GFS2_FS is not set
 # CONFIG_OCFS2_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_ROMFS_FS is not set
+CONFIG_DNOTIFY=y
 CONFIG_INOTIFY=y
 CONFIG_INOTIFY_USER=y
 # CONFIG_QUOTA is not set
-CONFIG_DNOTIFY=y
 # CONFIG_AUTOFS_FS is not set
 # CONFIG_AUTOFS4_FS is not set
 # CONFIG_FUSE_FS is not set
@@ -967,7 +1057,6 @@ CONFIG_SYSFS=y
 CONFIG_TMPFS=y
 CONFIG_TMPFS_POSIX_ACL=y
 # CONFIG_HUGETLB_PAGE is not set
-CONFIG_RAMFS=y
 CONFIG_CONFIGFS_FS=y
 
 #
@@ -983,32 +1072,28 @@ CONFIG_CONFIGFS_FS=y
 # CONFIG_JFFS2_FS is not set
 # CONFIG_CRAMFS is not set
 # CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
 # CONFIG_HPFS_FS is not set
 # CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
 # CONFIG_SYSV_FS is not set
 # CONFIG_UFS_FS is not set
-
-#
-# Network File Systems
-#
+CONFIG_NETWORK_FILESYSTEMS=y
 CONFIG_NFS_FS=y
 CONFIG_NFS_V3=y
 CONFIG_NFS_V3_ACL=y
 # CONFIG_NFS_V4 is not set
-# CONFIG_NFS_DIRECTIO is not set
 CONFIG_NFSD=y
 CONFIG_NFSD_V2_ACL=y
 CONFIG_NFSD_V3=y
 CONFIG_NFSD_V3_ACL=y
 # CONFIG_NFSD_V4 is not set
-CONFIG_NFSD_TCP=y
 CONFIG_LOCKD=y
 CONFIG_LOCKD_V4=y
 CONFIG_EXPORTFS=y
 CONFIG_NFS_ACL_SUPPORT=y
 CONFIG_NFS_COMMON=y
 CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_BIND34 is not set
 # CONFIG_RPCSEC_GSS_KRB5 is not set
 # CONFIG_RPCSEC_GSS_SPKM3 is not set
 # CONFIG_SMB_FS is not set
@@ -1022,34 +1107,26 @@ CONFIG_SUNRPC=y
 #
 # CONFIG_PARTITION_ADVANCED is not set
 CONFIG_MSDOS_PARTITION=y
-
-#
-# Native Language Support
-#
 # CONFIG_NLS is not set
-
-#
-# Distributed Lock Manager
-#
 # CONFIG_DLM is not set
 
-#
-# Profiling support
-#
-# CONFIG_PROFILING is not set
-
 #
 # Kernel hacking
 #
 CONFIG_TRACE_IRQFLAGS_SUPPORT=y
 # CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_WARN_DEPRECATED=y
 CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_FRAME_WARN=1024
 # CONFIG_MAGIC_SYSRQ is not set
 # CONFIG_UNUSED_SYMBOLS is not set
 # CONFIG_DEBUG_FS is not set
 # CONFIG_HEADERS_CHECK is not set
 # CONFIG_DEBUG_KERNEL is not set
-CONFIG_CROSSCOMPILE=y
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+# CONFIG_DEBUG_MEMORY_INIT is not set
+# CONFIG_SAMPLES is not set
 CONFIG_CMDLINE=""
 
 #
@@ -1057,14 +1134,95 @@ CONFIG_CMDLINE=""
 #
 # CONFIG_KEYS is not set
 # CONFIG_SECURITY is not set
-# CONFIG_CRYPTO is not set
+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+# CONFIG_CRYPTO_MANAGER is not set
+# CONFIG_CRYPTO_GF128MUL is not set
+# CONFIG_CRYPTO_NULL is not set
+# CONFIG_CRYPTO_CRYPTD is not set
+# CONFIG_CRYPTO_AUTHENC is not set
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Authenticated Encryption with Associated Data
+#
+# CONFIG_CRYPTO_CCM is not set
+# CONFIG_CRYPTO_GCM is not set
+# CONFIG_CRYPTO_SEQIV is not set
+
+#
+# Block modes
+#
+# CONFIG_CRYPTO_CBC is not set
+# CONFIG_CRYPTO_CTR is not set
+# CONFIG_CRYPTO_CTS is not set
+# CONFIG_CRYPTO_ECB is not set
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_PCBC is not set
+# CONFIG_CRYPTO_XTS is not set
+
+#
+# Hash modes
+#
+# CONFIG_CRYPTO_HMAC is not set
+# CONFIG_CRYPTO_XCBC is not set
+
+#
+# Digest
+#
+# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_MD4 is not set
+# CONFIG_CRYPTO_MD5 is not set
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_RMD128 is not set
+# CONFIG_CRYPTO_RMD160 is not set
+# CONFIG_CRYPTO_RMD256 is not set
+# CONFIG_CRYPTO_RMD320 is not set
+# CONFIG_CRYPTO_SHA1 is not set
+# CONFIG_CRYPTO_SHA256 is not set
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_WP512 is not set
+
+#
+# Ciphers
+#
+# CONFIG_CRYPTO_AES is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_ARC4 is not set
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_DES is not set
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SALSA20 is not set
+# CONFIG_CRYPTO_SEED is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+
+#
+# Compression
+#
+# CONFIG_CRYPTO_DEFLATE is not set
+# CONFIG_CRYPTO_LZO is not set
+CONFIG_CRYPTO_HW=y
+# CONFIG_CRYPTO_DEV_HIFN_795X is not set
 
 #
 # Library routines
 #
 CONFIG_BITREVERSE=y
+# CONFIG_GENERIC_FIND_FIRST_BIT is not set
 # CONFIG_CRC_CCITT is not set
-# CONFIG_CRC16 is not set
+CONFIG_CRC16=y
+# CONFIG_CRC_T10DIF is not set
 # CONFIG_CRC_ITU_T is not set
 CONFIG_CRC32=y
 # CONFIG_CRC7 is not set
index ebb8ad6..a279165 100644 (file)
@@ -1092,7 +1092,6 @@ CONFIG_ENABLE_MUST_CHECK=y
 CONFIG_LOG_BUF_SHIFT=14
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-CONFIG_SYS_SUPPORTS_KGDB=y
 
 #
 # Security options
index ad4e5ef..8944d15 100644 (file)
@@ -1092,7 +1092,6 @@ CONFIG_ENABLE_MUST_CHECK=y
 CONFIG_LOG_BUF_SHIFT=14
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-CONFIG_SYS_SUPPORTS_KGDB=y
 
 #
 # Security options
index d0dc2e8..ab17973 100644 (file)
@@ -1174,7 +1174,6 @@ CONFIG_ENABLE_MUST_CHECK=y
 CONFIG_LOG_BUF_SHIFT=14
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE="mem=48M"
-CONFIG_SYS_SUPPORTS_KGDB=y
 
 #
 # Security options
index 9155082..b65803f 100644 (file)
@@ -1392,7 +1392,6 @@ CONFIG_ENABLE_MUST_CHECK=y
 CONFIG_LOG_BUF_SHIFT=14
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-CONFIG_SYS_SUPPORTS_KGDB=y
 
 #
 # Security options
index e4e3244..a190ac0 100644 (file)
@@ -1209,7 +1209,6 @@ CONFIG_ENABLE_MUST_CHECK=y
 CONFIG_LOG_BUF_SHIFT=14
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-CONFIG_SYS_SUPPORTS_KGDB=y
 
 #
 # Security options
index 3572e80..4e465e9 100644 (file)
@@ -1269,7 +1269,6 @@ CONFIG_ENABLE_MUST_CHECK=y
 CONFIG_LOG_BUF_SHIFT=14
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-CONFIG_SYS_SUPPORTS_KGDB=y
 
 #
 # Security options
index 138c575..831d3e5 100644 (file)
@@ -943,7 +943,6 @@ CONFIG_ENABLE_MUST_CHECK=y
 # CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-CONFIG_SYS_SUPPORTS_KGDB=y
 
 #
 # Security options
index 59d1947..dd13db4 100644 (file)
@@ -1415,8 +1415,6 @@ CONFIG_FORCED_INLINING=y
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
 # CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_KGDB is not set
-CONFIG_SYS_SUPPORTS_KGDB=y
 # CONFIG_RUNTIME_DEBUG is not set
 # CONFIG_MIPS_UNCACHED is not set
 
index bacf0dd..db92726 100644 (file)
@@ -3020,7 +3020,6 @@ CONFIG_MAGIC_SYSRQ=y
 # CONFIG_DEBUG_KERNEL is not set
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-CONFIG_SYS_SUPPORTS_KGDB=y
 
 #
 # Security options
index 6dfe6f7..9e21e33 100644 (file)
@@ -1085,7 +1085,6 @@ CONFIG_ENABLE_MUST_CHECK=y
 CONFIG_LOG_BUF_SHIFT=14
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-CONFIG_SYS_SUPPORTS_KGDB=y
 
 #
 # Security options
index c965a87..af67ed4 100644 (file)
@@ -1202,7 +1202,6 @@ CONFIG_ENABLE_MUST_CHECK=y
 CONFIG_LOG_BUF_SHIFT=14
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-CONFIG_SYS_SUPPORTS_KGDB=y
 
 #
 # Security options
index 0778996..7956f56 100644 (file)
@@ -1195,7 +1195,6 @@ CONFIG_ENABLE_MUST_CHECK=y
 CONFIG_LOG_BUF_SHIFT=14
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
-CONFIG_SYS_SUPPORTS_KGDB=y
 
 #
 # Security options
index 37c7b5f..723bd51 100644 (file)
@@ -1216,10 +1216,8 @@ CONFIG_DEBUG_MUTEXES=y
 CONFIG_FORCED_INLINING=y
 # CONFIG_RCU_TORTURE_TEST is not set
 CONFIG_CROSSCOMPILE=y
-CONFIG_CMDLINE="console=ttyS1,38400n8 kgdb=ttyS0 root=/dev/nfs ip=bootp"
+CONFIG_CMDLINE="console=ttyS1,38400n8 root=/dev/nfs ip=bootp"
 # CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_KGDB is not set
-CONFIG_SYS_SUPPORTS_KGDB=y
 # CONFIG_RUNTIME_DEBUG is not set
 
 #
index 893e5c4..b5052fb 100644 (file)
@@ -1206,10 +1206,8 @@ CONFIG_DEBUG_SLAB=y
 CONFIG_FORCED_INLINING=y
 # CONFIG_RCU_TORTURE_TEST is not set
 CONFIG_CROSSCOMPILE=y
-CONFIG_CMDLINE="console=ttyS1,38400n8 kgdb=ttyS0 root=/dev/nfs ip=bootp"
+CONFIG_CMDLINE="console=ttyS1,38400n8 root=/dev/nfs ip=bootp"
 # CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_KGDB is not set
-CONFIG_SYS_SUPPORTS_KGDB=y
 # CONFIG_RUNTIME_DEBUG is not set
 
 #
index e42aed5..c7c0864 100644 (file)
@@ -742,7 +742,6 @@ CONFIG_DEBUG_FS=y
 # CONFIG_DEBUG_KERNEL is not set
 # CONFIG_SAMPLES is not set
 CONFIG_CMDLINE=""
-CONFIG_SYS_SUPPORTS_KGDB=y
 
 #
 # Security options
index 1ea9786..a9acaa2 100644 (file)
@@ -963,7 +963,6 @@ CONFIG_ENABLE_MUST_CHECK=y
 # CONFIG_DEBUG_KERNEL is not set
 # CONFIG_SAMPLES is not set
 CONFIG_CMDLINE=""
-CONFIG_SYS_SUPPORTS_KGDB=y
 # CONFIG_SB1XXX_CORELIS is not set
 
 #
index 7f86c43..ea8249c 100644 (file)
@@ -827,8 +827,6 @@ CONFIG_FORCED_INLINING=y
 CONFIG_CROSSCOMPILE=y
 CONFIG_CMDLINE=""
 # CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_KGDB is not set
-CONFIG_SYS_SUPPORTS_KGDB=y
 # CONFIG_RUNTIME_DEBUG is not set
 
 #
index 1156770..d70627d 100644 (file)
@@ -34,7 +34,6 @@
 #include <asm/bcache.h>
 #include <asm/irq.h>
 #include <asm/reboot.h>
-#include <asm/gdb-stub.h>
 #include <asm/traps.h>
 #include <asm/debug.h>
 
index 62bfb45..a56c4b8 100644 (file)
@@ -41,7 +41,6 @@
 #include <asm/bcache.h>
 #include <asm/irq.h>
 #include <asm/reboot.h>
-#include <asm/gdb-stub.h>
 #include <asm/traps.h>
 #include <asm/debug.h>
 
index 0fd3197..706f939 100644 (file)
@@ -71,7 +71,7 @@ obj-$(CONFIG_MIPS32_COMPAT)   += linux32.o ptrace32.o signal32.o
 obj-$(CONFIG_MIPS32_N32)       += binfmt_elfn32.o scall64-n32.o signal_n32.o
 obj-$(CONFIG_MIPS32_O32)       += binfmt_elfo32.o scall64-o32.o
 
-obj-$(CONFIG_KGDB)             += gdb-low.o gdb-stub.o
+obj-$(CONFIG_KGDB)             += kgdb.o
 obj-$(CONFIG_PROC_FS)          += proc.o
 
 obj-$(CONFIG_64BIT)            += cpu-bugs64.o
diff --git a/arch/mips/kernel/gdb-low.S b/arch/mips/kernel/gdb-low.S
deleted file mode 100644 (file)
index 2c44606..0000000
+++ /dev/null
@@ -1,394 +0,0 @@
-/*
- * gdb-low.S contains the low-level trap handler for the GDB stub.
- *
- * Copyright (C) 1995 Andreas Busse
- */
-#include <linux/sys.h>
-
-#include <asm/asm.h>
-#include <asm/errno.h>
-#include <asm/irqflags.h>
-#include <asm/mipsregs.h>
-#include <asm/regdef.h>
-#include <asm/stackframe.h>
-#include <asm/gdb-stub.h>
-
-#ifdef CONFIG_32BIT
-#define DMFC0  mfc0
-#define DMTC0  mtc0
-#define LDC1   lwc1
-#define SDC1   lwc1
-#endif
-#ifdef CONFIG_64BIT
-#define DMFC0  dmfc0
-#define DMTC0  dmtc0
-#define LDC1   ldc1
-#define SDC1   ldc1
-#endif
-
-/*
- * [jsun] We reserves about 2x GDB_FR_SIZE in stack.  The lower (addressed)
- * part is used to store registers and passed to exception handler.
- * The upper part is reserved for "call func" feature where gdb client
- * saves some of the regs, setups call frame and passes args.
- *
- * A trace shows about 200 bytes are used to store about half of all regs.
- * The rest should be big enough for frame setup and passing args.
- */
-
-/*
- * The low level trap handler
- */
-               .align  5
-               NESTED(trap_low, GDB_FR_SIZE, sp)
-               .set    noat
-               .set    noreorder
-
-               mfc0    k0, CP0_STATUS
-               sll     k0, 3                   /* extract cu0 bit */
-               bltz    k0, 1f
-               move    k1, sp
-
-               /*
-                * Called from user mode, go somewhere else.
-                */
-               mfc0    k0, CP0_CAUSE
-               andi    k0, k0, 0x7c
-#ifdef CONFIG_64BIT
-               dsll    k0, k0, 1
-#endif
-               PTR_L   k1, saved_vectors(k0)
-               jr      k1
-               nop
-1:
-               move    k0, sp
-               PTR_SUBU sp, k1, GDB_FR_SIZE*2  # see comment above
-               LONG_S  k0, GDB_FR_REG29(sp)
-               LONG_S  $2, GDB_FR_REG2(sp)
-
-/*
- * First save the CP0 and special registers
- */
-
-               mfc0    v0, CP0_STATUS
-               LONG_S  v0, GDB_FR_STATUS(sp)
-               mfc0    v0, CP0_CAUSE
-               LONG_S  v0, GDB_FR_CAUSE(sp)
-               DMFC0   v0, CP0_EPC
-               LONG_S  v0, GDB_FR_EPC(sp)
-               DMFC0   v0, CP0_BADVADDR
-               LONG_S  v0, GDB_FR_BADVADDR(sp)
-               mfhi    v0
-               LONG_S  v0, GDB_FR_HI(sp)
-               mflo    v0
-               LONG_S  v0, GDB_FR_LO(sp)
-
-/*
- * Now the integer registers
- */
-
-               LONG_S  zero, GDB_FR_REG0(sp)           /* I know... */
-               LONG_S  $1, GDB_FR_REG1(sp)
-               /* v0 already saved */
-               LONG_S  $3, GDB_FR_REG3(sp)
-               LONG_S  $4, GDB_FR_REG4(sp)
-               LONG_S  $5, GDB_FR_REG5(sp)
-               LONG_S  $6, GDB_FR_REG6(sp)
-               LONG_S  $7, GDB_FR_REG7(sp)
-               LONG_S  $8, GDB_FR_REG8(sp)
-               LONG_S  $9, GDB_FR_REG9(sp)
-               LONG_S  $10, GDB_FR_REG10(sp)
-               LONG_S  $11, GDB_FR_REG11(sp)
-               LONG_S  $12, GDB_FR_REG12(sp)
-               LONG_S  $13, GDB_FR_REG13(sp)
-               LONG_S  $14, GDB_FR_REG14(sp)
-               LONG_S  $15, GDB_FR_REG15(sp)
-               LONG_S  $16, GDB_FR_REG16(sp)
-               LONG_S  $17, GDB_FR_REG17(sp)
-               LONG_S  $18, GDB_FR_REG18(sp)
-               LONG_S  $19, GDB_FR_REG19(sp)
-               LONG_S  $20, GDB_FR_REG20(sp)
-               LONG_S  $21, GDB_FR_REG21(sp)
-               LONG_S  $22, GDB_FR_REG22(sp)
-               LONG_S  $23, GDB_FR_REG23(sp)
-               LONG_S  $24, GDB_FR_REG24(sp)
-               LONG_S  $25, GDB_FR_REG25(sp)
-               LONG_S  $26, GDB_FR_REG26(sp)
-               LONG_S  $27, GDB_FR_REG27(sp)
-               LONG_S  $28, GDB_FR_REG28(sp)
-               /* sp already saved */
-               LONG_S  $30, GDB_FR_REG30(sp)
-               LONG_S  $31, GDB_FR_REG31(sp)
-
-               CLI                             /* disable interrupts */
-               TRACE_IRQS_OFF
-
-/*
- * Followed by the floating point registers
- */
-               mfc0    v0, CP0_STATUS          /* FPU enabled? */
-               srl     v0, v0, 16
-               andi    v0, v0, (ST0_CU1 >> 16)
-
-               beqz    v0,2f                   /* disabled, skip */
-                nop
-
-               SDC1    $0, GDB_FR_FPR0(sp)
-               SDC1    $1, GDB_FR_FPR1(sp)
-               SDC1    $2, GDB_FR_FPR2(sp)
-               SDC1    $3, GDB_FR_FPR3(sp)
-               SDC1    $4, GDB_FR_FPR4(sp)
-               SDC1    $5, GDB_FR_FPR5(sp)
-               SDC1    $6, GDB_FR_FPR6(sp)
-               SDC1    $7, GDB_FR_FPR7(sp)
-               SDC1    $8, GDB_FR_FPR8(sp)
-               SDC1    $9, GDB_FR_FPR9(sp)
-               SDC1    $10, GDB_FR_FPR10(sp)
-               SDC1    $11, GDB_FR_FPR11(sp)
-               SDC1    $12, GDB_FR_FPR12(sp)
-               SDC1    $13, GDB_FR_FPR13(sp)
-               SDC1    $14, GDB_FR_FPR14(sp)
-               SDC1    $15, GDB_FR_FPR15(sp)
-               SDC1    $16, GDB_FR_FPR16(sp)
-               SDC1    $17, GDB_FR_FPR17(sp)
-               SDC1    $18, GDB_FR_FPR18(sp)
-               SDC1    $19, GDB_FR_FPR19(sp)
-               SDC1    $20, GDB_FR_FPR20(sp)
-               SDC1    $21, GDB_FR_FPR21(sp)
-               SDC1    $22, GDB_FR_FPR22(sp)
-               SDC1    $23, GDB_FR_FPR23(sp)
-               SDC1    $24, GDB_FR_FPR24(sp)
-               SDC1    $25, GDB_FR_FPR25(sp)
-               SDC1    $26, GDB_FR_FPR26(sp)
-               SDC1    $27, GDB_FR_FPR27(sp)
-               SDC1    $28, GDB_FR_FPR28(sp)
-               SDC1    $29, GDB_FR_FPR29(sp)
-               SDC1    $30, GDB_FR_FPR30(sp)
-               SDC1    $31, GDB_FR_FPR31(sp)
-
-/*
- * FPU control registers
- */
-
-               cfc1    v0, CP1_STATUS
-               LONG_S  v0, GDB_FR_FSR(sp)
-               cfc1    v0, CP1_REVISION
-               LONG_S  v0, GDB_FR_FIR(sp)
-
-/*
- * Current stack frame ptr
- */
-
-2:
-               LONG_S  sp, GDB_FR_FRP(sp)
-
-/*
- * CP0 registers (R4000/R4400 unused registers skipped)
- */
-
-               mfc0    v0, CP0_INDEX
-               LONG_S  v0, GDB_FR_CP0_INDEX(sp)
-               mfc0    v0, CP0_RANDOM
-               LONG_S  v0, GDB_FR_CP0_RANDOM(sp)
-               DMFC0   v0, CP0_ENTRYLO0
-               LONG_S  v0, GDB_FR_CP0_ENTRYLO0(sp)
-               DMFC0   v0, CP0_ENTRYLO1
-               LONG_S  v0, GDB_FR_CP0_ENTRYLO1(sp)
-               DMFC0   v0, CP0_CONTEXT
-               LONG_S  v0, GDB_FR_CP0_CONTEXT(sp)
-               mfc0    v0, CP0_PAGEMASK
-               LONG_S  v0, GDB_FR_CP0_PAGEMASK(sp)
-               mfc0    v0, CP0_WIRED
-               LONG_S  v0, GDB_FR_CP0_WIRED(sp)
-               DMFC0   v0, CP0_ENTRYHI
-               LONG_S  v0, GDB_FR_CP0_ENTRYHI(sp)
-               mfc0    v0, CP0_PRID
-               LONG_S  v0, GDB_FR_CP0_PRID(sp)
-
-               .set    at
-
-/*
- * Continue with the higher level handler
- */
-
-               move    a0,sp
-
-               jal     handle_exception
-                nop
-
-/*
- * Restore all writable registers, in reverse order
- */
-
-               .set    noat
-
-               LONG_L  v0, GDB_FR_CP0_ENTRYHI(sp)
-               LONG_L  v1, GDB_FR_CP0_WIRED(sp)
-               DMTC0   v0, CP0_ENTRYHI
-               mtc0    v1, CP0_WIRED
-               LONG_L  v0, GDB_FR_CP0_PAGEMASK(sp)
-               LONG_L  v1, GDB_FR_CP0_ENTRYLO1(sp)
-               mtc0    v0, CP0_PAGEMASK
-               DMTC0   v1, CP0_ENTRYLO1
-               LONG_L  v0, GDB_FR_CP0_ENTRYLO0(sp)
-               LONG_L  v1, GDB_FR_CP0_INDEX(sp)
-               DMTC0   v0, CP0_ENTRYLO0
-               LONG_L  v0, GDB_FR_CP0_CONTEXT(sp)
-               mtc0    v1, CP0_INDEX
-               DMTC0   v0, CP0_CONTEXT
-
-
-/*
- * Next, the floating point registers
- */
-               mfc0    v0, CP0_STATUS          /* check if the FPU is enabled */
-               srl     v0, v0, 16
-               andi    v0, v0, (ST0_CU1 >> 16)
-
-               beqz    v0, 3f                  /* disabled, skip */
-                nop
-
-               LDC1    $31, GDB_FR_FPR31(sp)
-               LDC1    $30, GDB_FR_FPR30(sp)
-               LDC1    $29, GDB_FR_FPR29(sp)
-               LDC1    $28, GDB_FR_FPR28(sp)
-               LDC1    $27, GDB_FR_FPR27(sp)
-               LDC1    $26, GDB_FR_FPR26(sp)
-               LDC1    $25, GDB_FR_FPR25(sp)
-               LDC1    $24, GDB_FR_FPR24(sp)
-               LDC1    $23, GDB_FR_FPR23(sp)
-               LDC1    $22, GDB_FR_FPR22(sp)
-               LDC1    $21, GDB_FR_FPR21(sp)
-               LDC1    $20, GDB_FR_FPR20(sp)
-               LDC1    $19, GDB_FR_FPR19(sp)
-               LDC1    $18, GDB_FR_FPR18(sp)
-               LDC1    $17, GDB_FR_FPR17(sp)
-               LDC1    $16, GDB_FR_FPR16(sp)
-               LDC1    $15, GDB_FR_FPR15(sp)
-               LDC1    $14, GDB_FR_FPR14(sp)
-               LDC1    $13, GDB_FR_FPR13(sp)
-               LDC1    $12, GDB_FR_FPR12(sp)
-               LDC1    $11, GDB_FR_FPR11(sp)
-               LDC1    $10, GDB_FR_FPR10(sp)
-               LDC1    $9, GDB_FR_FPR9(sp)
-               LDC1    $8, GDB_FR_FPR8(sp)
-               LDC1    $7, GDB_FR_FPR7(sp)
-               LDC1    $6, GDB_FR_FPR6(sp)
-               LDC1    $5, GDB_FR_FPR5(sp)
-               LDC1    $4, GDB_FR_FPR4(sp)
-               LDC1    $3, GDB_FR_FPR3(sp)
-               LDC1    $2, GDB_FR_FPR2(sp)
-               LDC1    $1, GDB_FR_FPR1(sp)
-               LDC1    $0, GDB_FR_FPR0(sp)
-
-/*
- * Now the CP0 and integer registers
- */
-
-3:
-#ifdef CONFIG_MIPS_MT_SMTC
-               /* Read-modify write of Status must be atomic */
-               mfc0    t2, CP0_TCSTATUS
-               ori     t1, t2, TCSTATUS_IXMT
-               mtc0    t1, CP0_TCSTATUS
-               andi    t2, t2, TCSTATUS_IXMT
-               _ehb
-               DMT     9                               # dmt   t1
-               jal     mips_ihb
-               nop
-#endif /* CONFIG_MIPS_MT_SMTC */
-               mfc0    t0, CP0_STATUS
-               ori     t0, 0x1f
-               xori    t0, 0x1f
-               mtc0    t0, CP0_STATUS
-#ifdef CONFIG_MIPS_MT_SMTC
-               andi    t1, t1, VPECONTROL_TE
-               beqz    t1, 9f
-               nop
-               EMT                                     # emt
-9:
-               mfc0    t1, CP0_TCSTATUS
-               xori    t1, t1, TCSTATUS_IXMT
-               or      t1, t1, t2
-               mtc0    t1, CP0_TCSTATUS
-               _ehb
-#endif /* CONFIG_MIPS_MT_SMTC */
-               LONG_L  v0, GDB_FR_STATUS(sp)
-               LONG_L  v1, GDB_FR_EPC(sp)
-               mtc0    v0, CP0_STATUS
-               DMTC0   v1, CP0_EPC
-               LONG_L  v0, GDB_FR_HI(sp)
-               LONG_L  v1, GDB_FR_LO(sp)
-               mthi    v0
-               mtlo    v1
-               LONG_L  $31, GDB_FR_REG31(sp)
-               LONG_L  $30, GDB_FR_REG30(sp)
-               LONG_L  $28, GDB_FR_REG28(sp)
-               LONG_L  $27, GDB_FR_REG27(sp)
-               LONG_L  $26, GDB_FR_REG26(sp)
-               LONG_L  $25, GDB_FR_REG25(sp)
-               LONG_L  $24, GDB_FR_REG24(sp)
-               LONG_L  $23, GDB_FR_REG23(sp)
-               LONG_L  $22, GDB_FR_REG22(sp)
-               LONG_L  $21, GDB_FR_REG21(sp)
-               LONG_L  $20, GDB_FR_REG20(sp)
-               LONG_L  $19, GDB_FR_REG19(sp)
-               LONG_L  $18, GDB_FR_REG18(sp)
-               LONG_L  $17, GDB_FR_REG17(sp)
-               LONG_L  $16, GDB_FR_REG16(sp)
-               LONG_L  $15, GDB_FR_REG15(sp)
-               LONG_L  $14, GDB_FR_REG14(sp)
-               LONG_L  $13, GDB_FR_REG13(sp)
-               LONG_L  $12, GDB_FR_REG12(sp)
-               LONG_L  $11, GDB_FR_REG11(sp)
-               LONG_L  $10, GDB_FR_REG10(sp)
-               LONG_L  $9, GDB_FR_REG9(sp)
-               LONG_L  $8, GDB_FR_REG8(sp)
-               LONG_L  $7, GDB_FR_REG7(sp)
-               LONG_L  $6, GDB_FR_REG6(sp)
-               LONG_L  $5, GDB_FR_REG5(sp)
-               LONG_L  $4, GDB_FR_REG4(sp)
-               LONG_L  $3, GDB_FR_REG3(sp)
-               LONG_L  $2, GDB_FR_REG2(sp)
-               LONG_L  $1, GDB_FR_REG1(sp)
-#if defined(CONFIG_CPU_R3000) || defined(CONFIG_CPU_TX39XX)
-               LONG_L  k0, GDB_FR_EPC(sp)
-               LONG_L  $29, GDB_FR_REG29(sp)           /* Deallocate stack */
-               jr      k0
-               rfe
-#else
-               LONG_L  sp, GDB_FR_REG29(sp)            /* Deallocate stack */
-
-               .set    mips3
-               eret
-               .set    mips0
-#endif
-               .set    at
-               .set    reorder
-               END(trap_low)
-
-LEAF(kgdb_read_byte)
-4:             lb      t0, (a0)
-               sb      t0, (a1)
-               li      v0, 0
-               jr      ra
-               .section __ex_table,"a"
-               PTR     4b, kgdbfault
-               .previous
-               END(kgdb_read_byte)
-
-LEAF(kgdb_write_byte)
-5:             sb      a0, (a1)
-               li      v0, 0
-               jr      ra
-               .section __ex_table,"a"
-               PTR     5b, kgdbfault
-               .previous
-               END(kgdb_write_byte)
-
-               .type   kgdbfault@function
-               .ent    kgdbfault
-
-kgdbfault:     li      v0, -EFAULT
-               jr      ra
-               .end    kgdbfault
diff --git a/arch/mips/kernel/gdb-stub.c b/arch/mips/kernel/gdb-stub.c
deleted file mode 100644 (file)
index 25f4eab..0000000
+++ /dev/null
@@ -1,1155 +0,0 @@
-/*
- *  arch/mips/kernel/gdb-stub.c
- *
- *  Originally written by Glenn Engel, Lake Stevens Instrument Division
- *
- *  Contributed by HP Systems
- *
- *  Modified for SPARC by Stu Grossman, Cygnus Support.
- *
- *  Modified for Linux/MIPS (and MIPS in general) by Andreas Busse
- *  Send complaints, suggestions etc. to <andy@waldorf-gmbh.de>
- *
- *  Copyright (C) 1995 Andreas Busse
- *
- *  Copyright (C) 2003 MontaVista Software Inc.
- *  Author: Jun Sun, jsun@mvista.com or jsun@junsun.net
- */
-
-/*
- *  To enable debugger support, two things need to happen.  One, a
- *  call to set_debug_traps() is necessary in order to allow any breakpoints
- *  or error conditions to be properly intercepted and reported to gdb.
- *  Two, a breakpoint needs to be generated to begin communication.  This
- *  is most easily accomplished by a call to breakpoint().  Breakpoint()
- *  simulates a breakpoint by executing a BREAK instruction.
- *
- *
- *    The following gdb commands are supported:
- *
- * command          function                               Return value
- *
- *    g             return the value of the CPU registers  hex data or ENN
- *    G             set the value of the CPU registers     OK or ENN
- *
- *    mAA..AA,LLLL  Read LLLL bytes at address AA..AA      hex data or ENN
- *    MAA..AA,LLLL: Write LLLL bytes at address AA.AA      OK or ENN
- *
- *    c             Resume at current address              SNN   ( signal NN)
- *    cAA..AA       Continue at address AA..AA             SNN
- *
- *    s             Step one instruction                   SNN
- *    sAA..AA       Step one instruction from AA..AA       SNN
- *
- *    k             kill
- *
- *    ?             What was the last sigval ?             SNN   (signal NN)
- *
- *    bBB..BB      Set baud rate to BB..BB                OK or BNN, then sets
- *                                                        baud rate
- *
- * All commands and responses are sent with a packet which includes a
- * checksum.  A packet consists of
- *
- * $<packet info>#<checksum>.
- *
- * where
- * <packet info> :: <characters representing the command or response>
- * <checksum>    :: < two hex digits computed as modulo 256 sum of <packetinfo>>
- *
- * When a packet is received, it is first acknowledged with either '+' or '-'.
- * '+' indicates a successful transfer.  '-' indicates a failed transfer.
- *
- * Example:
- *
- * Host:                  Reply:
- * $m0,10#2a               +$00010203040506070809101112131415#42
- *
- *
- *  ==============
- *  MORE EXAMPLES:
- *  ==============
- *
- *  For reference -- the following are the steps that one
- *  company took (RidgeRun Inc) to get remote gdb debugging
- *  going. In this scenario the host machine was a PC and the
- *  target platform was a Galileo EVB64120A MIPS evaluation
- *  board.
- *
- *  Step 1:
- *  First download gdb-5.0.tar.gz from the internet.
- *  and then build/install the package.
- *
- *  Example:
- *    $ tar zxf gdb-5.0.tar.gz
- *    $ cd gdb-5.0
- *    $ ./configure --target=mips-linux-elf
- *    $ make
- *    $ install
- *    $ which mips-linux-elf-gdb
- *    /usr/local/bin/mips-linux-elf-gdb
- *
- *  Step 2:
- *  Configure linux for remote debugging and build it.
- *
- *  Example:
- *    $ cd ~/linux
- *    $ make menuconfig <go to "Kernel Hacking" and turn on remote debugging>
- *    $ make
- *
- *  Step 3:
- *  Download the kernel to the remote target and start
- *  the kernel running. It will promptly halt and wait
- *  for the host gdb session to connect. It does this
- *  since the "Kernel Hacking" option has defined
- *  CONFIG_KGDB which in turn enables your calls
- *  to:
- *     set_debug_traps();
- *     breakpoint();
- *
- *  Step 4:
- *  Start the gdb session on the host.
- *
- *  Example:
- *    $ mips-linux-elf-gdb vmlinux
- *    (gdb) set remotebaud 115200
- *    (gdb) target remote /dev/ttyS1
- *    ...at this point you are connected to
- *       the remote target and can use gdb
- *       in the normal fasion. Setting
- *       breakpoints, single stepping,
- *       printing variables, etc.
- */
-#include <linux/string.h>
-#include <linux/kernel.h>
-#include <linux/signal.h>
-#include <linux/sched.h>
-#include <linux/mm.h>
-#include <linux/console.h>
-#include <linux/init.h>
-#include <linux/smp.h>
-#include <linux/spinlock.h>
-#include <linux/slab.h>
-#include <linux/reboot.h>
-
-#include <asm/asm.h>
-#include <asm/cacheflush.h>
-#include <asm/mipsregs.h>
-#include <asm/pgtable.h>
-#include <asm/system.h>
-#include <asm/gdb-stub.h>
-#include <asm/inst.h>
-
-/*
- * external low-level support routines
- */
-
-extern int putDebugChar(char c);    /* write a single character      */
-extern char getDebugChar(void);     /* read and return a single char */
-extern void trap_low(void);
-
-/*
- * breakpoint and test functions
- */
-extern void breakpoint(void);
-extern void breakinst(void);
-extern void async_breakpoint(void);
-extern void async_breakinst(void);
-extern void adel(void);
-
-/*
- * local prototypes
- */
-
-static void getpacket(char *buffer);
-static void putpacket(char *buffer);
-static int computeSignal(int tt);
-static int hex(unsigned char ch);
-static int hexToInt(char **ptr, int *intValue);
-static int hexToLong(char **ptr, long *longValue);
-static unsigned char *mem2hex(char *mem, char *buf, int count, int may_fault);
-void handle_exception(struct gdb_regs *regs);
-
-int kgdb_enabled;
-
-/*
- * spin locks for smp case
- */
-static DEFINE_SPINLOCK(kgdb_lock);
-static raw_spinlock_t kgdb_cpulock[NR_CPUS] = {
-       [0 ... NR_CPUS-1] = __RAW_SPIN_LOCK_UNLOCKED,
-};
-
-/*
- * BUFMAX defines the maximum number of characters in inbound/outbound buffers
- * at least NUMREGBYTES*2 are needed for register packets
- */
-#define BUFMAX 2048
-
-static char input_buffer[BUFMAX];
-static char output_buffer[BUFMAX];
-static int initialized;        /* !0 means we've been initialized */
-static int kgdb_started;
-static const char hexchars[]="0123456789abcdef";
-
-/* Used to prevent crashes in memory access.  Note that they'll crash anyway if
-   we haven't set up fault handlers yet... */
-int kgdb_read_byte(unsigned char *address, unsigned char *dest);
-int kgdb_write_byte(unsigned char val, unsigned char *dest);
-
-/*
- * Convert ch from a hex digit to an int
- */
-static int hex(unsigned char ch)
-{
-       if (ch >= 'a' && ch <= 'f')
-               return ch-'a'+10;
-       if (ch >= '0' && ch <= '9')
-               return ch-'0';
-       if (ch >= 'A' && ch <= 'F')
-               return ch-'A'+10;
-       return -1;
-}
-
-/*
- * scan for the sequence $<data>#<checksum>
- */
-static void getpacket(char *buffer)
-{
-       unsigned char checksum;
-       unsigned char xmitcsum;
-       int i;
-       int count;
-       unsigned char ch;
-
-       do {
-               /*
-                * wait around for the start character,
-                * ignore all other characters
-                */
-               while ((ch = (getDebugChar() & 0x7f)) != '$') ;
-
-               checksum = 0;
-               xmitcsum = -1;
-               count = 0;
-
-               /*
-                * now, read until a # or end of buffer is found
-                */
-               while (count < BUFMAX) {
-                       ch = getDebugChar();
-                       if (ch == '#')
-                               break;
-                       checksum = checksum + ch;
-                       buffer[count] = ch;
-                       count = count + 1;
-               }
-
-               if (count >= BUFMAX)
-                       continue;
-
-               buffer[count] = 0;
-
-               if (ch == '#') {
-                       xmitcsum = hex(getDebugChar() & 0x7f) << 4;
-                       xmitcsum |= hex(getDebugChar() & 0x7f);
-
-                       if (checksum != xmitcsum)
-                               putDebugChar('-');      /* failed checksum */
-                       else {
-                               putDebugChar('+'); /* successful transfer */
-
-                               /*
-                                * if a sequence char is present,
-                                * reply the sequence ID
-                                */
-                               if (buffer[2] == ':') {
-                                       putDebugChar(buffer[0]);
-                                       putDebugChar(buffer[1]);
-
-                                       /*
-                                        * remove sequence chars from buffer
-                                        */
-                                       count = strlen(buffer);
-                                       for (i=3; i <= count; i++)
-                                               buffer[i-3] = buffer[i];
-                               }
-                       }
-               }
-       }
-       while (checksum != xmitcsum);
-}
-
-/*
- * send the packet in buffer.
- */
-static void putpacket(char *buffer)
-{
-       unsigned char checksum;
-       int count;
-       unsigned char ch;
-
-       /*
-        * $<packet info>#<checksum>.
-        */
-
-       do {
-               putDebugChar('$');
-               checksum = 0;
-               count = 0;
-
-               while ((ch = buffer[count]) != 0) {
-                       if (!(putDebugChar(ch)))
-                               return;
-                       checksum += ch;
-                       count += 1;
-               }
-
-               putDebugChar('#');
-               putDebugChar(hexchars[checksum >> 4]);
-               putDebugChar(hexchars[checksum & 0xf]);
-
-       }
-       while ((getDebugChar() & 0x7f) != '+');
-}
-
-
-/*
- * Convert the memory pointed to by mem into hex, placing result in buf.
- * Return a pointer to the last char put in buf (null), in case of mem fault,
- * return 0.
- * may_fault is non-zero if we are reading from arbitrary memory, but is currently
- * not used.
- */
-static unsigned char *mem2hex(char *mem, char *buf, int count, int may_fault)
-{
-       unsigned char ch;
-
-       while (count-- > 0) {
-               if (kgdb_read_byte(mem++, &ch) != 0)
-                       return 0;
-               *buf++ = hexchars[ch >> 4];
-               *buf++ = hexchars[ch & 0xf];
-       }
-
-       *buf = 0;
-
-       return buf;
-}
-
-/*
- * convert the hex array pointed to by buf into binary to be placed in mem
- * return a pointer to the character AFTER the last byte written
- * may_fault is non-zero if we are reading from arbitrary memory, but is currently
- * not used.
- */
-static char *hex2mem(char *buf, char *mem, int count, int binary, int may_fault)
-{
-       int i;
-       unsigned char ch;
-
-       for (i=0; i<count; i++)
-       {
-               if (binary) {
-                       ch = *buf++;
-                       if (ch == 0x7d)
-                               ch = 0x20 ^ *buf++;
-               }
-               else {
-                       ch = hex(*buf++) << 4;
-                       ch |= hex(*buf++);
-               }
-               if (kgdb_write_byte(ch, mem++) != 0)
-                       return 0;
-       }
-
-       return mem;
-}
-
-/*
- * This table contains the mapping between SPARC hardware trap types, and
- * signals, which are primarily what GDB understands.  It also indicates
- * which hardware traps we need to commandeer when initializing the stub.
- */
-static struct hard_trap_info {
-       unsigned char tt;               /* Trap type code for MIPS R3xxx and R4xxx */
-       unsigned char signo;            /* Signal that we map this trap into */
-} hard_trap_info[] = {
-       { 6, SIGBUS },                  /* instruction bus error */
-       { 7, SIGBUS },                  /* data bus error */
-       { 9, SIGTRAP },                 /* break */
-       { 10, SIGILL },                 /* reserved instruction */
-/*     { 11, SIGILL },         */      /* CPU unusable */
-       { 12, SIGFPE },                 /* overflow */
-       { 13, SIGTRAP },                /* trap */
-       { 14, SIGSEGV },                /* virtual instruction cache coherency */
-       { 15, SIGFPE },                 /* floating point exception */
-       { 23, SIGSEGV },                /* watch */
-       { 31, SIGSEGV },                /* virtual data cache coherency */
-       { 0, 0}                         /* Must be last */
-};
-
-/* Save the normal trap handlers for user-mode traps. */
-void *saved_vectors[32];
-
-/*
- * Set up exception handlers for tracing and breakpoints
- */
-void set_debug_traps(void)
-{
-       struct hard_trap_info *ht;
-       unsigned long flags;
-       unsigned char c;
-
-       local_irq_save(flags);
-       for (ht = hard_trap_info; ht->tt && ht->signo; ht++)
-               saved_vectors[ht->tt] = set_except_vector(ht->tt, trap_low);
-
-       putDebugChar('+'); /* 'hello world' */
-       /*
-        * In case GDB is started before us, ack any packets
-        * (presumably "$?#xx") sitting there.
-        */
-       while((c = getDebugChar()) != '$');
-       while((c = getDebugChar()) != '#');
-       c = getDebugChar(); /* eat first csum byte */
-       c = getDebugChar(); /* eat second csum byte */
-       putDebugChar('+'); /* ack it */
-
-       initialized = 1;
-       local_irq_restore(flags);
-}
-
-void restore_debug_traps(void)
-{
-       struct hard_trap_info *ht;
-       unsigned long flags;
-
-       local_irq_save(flags);
-       for (ht = hard_trap_info; ht->tt && ht->signo; ht++)
-               set_except_vector(ht->tt, saved_vectors[ht->tt]);
-       local_irq_restore(flags);
-}
-
-/*
- * Convert the MIPS hardware trap type code to a Unix signal number.
- */
-static int computeSignal(int tt)
-{
-       struct hard_trap_info *ht;
-
-       for (ht = hard_trap_info; ht->tt && ht->signo; ht++)
-               if (ht->tt == tt)
-                       return ht->signo;
-
-       return SIGHUP;          /* default for things we don't know about */
-}
-
-/*
- * While we find nice hex chars, build an int.
- * Return number of chars processed.
- */
-static int hexToInt(char **ptr, int *intValue)
-{
-       int numChars = 0;
-       int hexValue;
-
-       *intValue = 0;
-
-       while (**ptr) {
-               hexValue = hex(**ptr);
-               if (hexValue < 0)
-                       break;
-
-               *intValue = (*intValue << 4) | hexValue;
-               numChars ++;
-
-               (*ptr)++;
-       }
-
-       return (numChars);
-}
-
-static int hexToLong(char **ptr, long *longValue)
-{
-       int numChars = 0;
-       int hexValue;
-
-       *longValue = 0;
-
-       while (**ptr) {
-               hexValue = hex(**ptr);
-               if (hexValue < 0)
-                       break;
-
-               *longValue = (*longValue << 4) | hexValue;
-               numChars ++;
-
-               (*ptr)++;
-       }
-
-       return numChars;
-}
-
-
-#if 0
-/*
- * Print registers (on target console)
- * Used only to debug the stub...
- */
-void show_gdbregs(struct gdb_regs * regs)
-{
-       /*
-        * Saved main processor registers
-        */
-       printk("$0 : %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-              regs->reg0, regs->reg1, regs->reg2, regs->reg3,
-              regs->reg4, regs->reg5, regs->reg6, regs->reg7);
-       printk("$8 : %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-              regs->reg8, regs->reg9, regs->reg10, regs->reg11,
-              regs->reg12, regs->reg13, regs->reg14, regs->reg15);
-       printk("$16: %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-              regs->reg16, regs->reg17, regs->reg18, regs->reg19,
-              regs->reg20, regs->reg21, regs->reg22, regs->reg23);
-       printk("$24: %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
-              regs->reg24, regs->reg25, regs->reg26, regs->reg27,
-              regs->reg28, regs->reg29, regs->reg30, regs->reg31);
-
-       /*
-        * Saved cp0 registers
-        */
-       printk("epc  : %08lx\nStatus: %08lx\nCause : %08lx\n",
-              regs->cp0_epc, regs->cp0_status, regs->cp0_cause);
-}
-#endif /* dead code */
-
-/*
- * We single-step by setting breakpoints. When an exception
- * is handled, we need to restore the instructions hoisted
- * when the breakpoints were set.
- *
- * This is where we save the original instructions.
- */
-static struct gdb_bp_save {
-       unsigned long addr;
-       unsigned int val;
-} step_bp[2];
-
-#define BP 0x0000000d  /* break opcode */
-
-/*
- * Set breakpoint instructions for single stepping.
- */
-static void single_step(struct gdb_regs *regs)
-{
-       union mips_instruction insn;
-       unsigned long targ;
-       int is_branch, is_cond, i;
-
-       targ = regs->cp0_epc;
-       insn.word = *(unsigned int *)targ;
-       is_branch = is_cond = 0;
-
-       switch (insn.i_format.opcode) {
-       /*
-        * jr and jalr are in r_format format.
-        */
-       case spec_op:
-               switch (insn.r_format.func) {
-               case jalr_op:
-               case jr_op:
-                       targ = *(&regs->reg0 + insn.r_format.rs);
-                       is_branch = 1;
-                       break;
-               }
-               break;
-
-       /*
-        * This group contains:
-        * bltz_op, bgez_op, bltzl_op, bgezl_op,
-        * bltzal_op, bgezal_op, bltzall_op, bgezall_op.
-        */
-       case bcond_op:
-               is_branch = is_cond = 1;
-               targ += 4 + (insn.i_format.simmediate << 2);
-               break;
-
-       /*
-        * These are unconditional and in j_format.
-        */
-       case jal_op:
-       case j_op:
-               is_branch = 1;
-               targ += 4;
-               targ >>= 28;
-               targ <<= 28;
-               targ |= (insn.j_format.target << 2);
-               break;
-
-       /*
-        * These are conditional.
-        */
-       case beq_op:
-       case beql_op:
-       case bne_op:
-       case bnel_op:
-       case blez_op:
-       case blezl_op:
-       case bgtz_op:
-       case bgtzl_op:
-       case cop0_op:
-       case cop1_op:
-       case cop2_op:
-       case cop1x_op:
-               is_branch = is_cond = 1;
-               targ += 4 + (insn.i_format.simmediate << 2);
-               break;
-       }
-
-       if (is_branch) {
-               i = 0;
-               if (is_cond && targ != (regs->cp0_epc + 8)) {
-                       step_bp[i].addr = regs->cp0_epc + 8;
-                       step_bp[i++].val = *(unsigned *)(regs->cp0_epc + 8);
-                       *(unsigned *)(regs->cp0_epc + 8) = BP;
-               }
-               step_bp[i].addr = targ;
-               step_bp[i].val  = *(unsigned *)targ;
-               *(unsigned *)targ = BP;
-       } else {
-               step_bp[0].addr = regs->cp0_epc + 4;
-               step_bp[0].val  = *(unsigned *)(regs->cp0_epc + 4);
-               *(unsigned *)(regs->cp0_epc + 4) = BP;
-       }
-}
-
-/*
- *  If asynchronously interrupted by gdb, then we need to set a breakpoint
- *  at the interrupted instruction so that we wind up stopped with a
- *  reasonable stack frame.
- */
-static struct gdb_bp_save async_bp;
-
-/*
- * Swap the interrupted EPC with our asynchronous breakpoint routine.
- * This is safer than stuffing the breakpoint in-place, since no cache
- * flushes (or resulting smp_call_functions) are required.  The
- * assumption is that only one CPU will be handling asynchronous bp's,
- * and only one can be active at a time.
- */
-extern spinlock_t smp_call_lock;
-
-void set_async_breakpoint(unsigned long *epc)
-{
-       /* skip breaking into userland */
-       if ((*epc & 0x80000000) == 0)
-               return;
-
-#ifdef CONFIG_SMP
-       /* avoid deadlock if someone is make IPC */
-       if (spin_is_locked(&smp_call_lock))
-               return;
-#endif
-
-       async_bp.addr = *epc;
-       *epc = (unsigned long)async_breakpoint;
-}
-
-#ifdef CONFIG_SMP
-static void kgdb_wait(void *arg)
-{
-       unsigned flags;
-       int cpu = smp_processor_id();
-
-       local_irq_save(flags);
-
-       __raw_spin_lock(&kgdb_cpulock[cpu]);
-       __raw_spin_unlock(&kgdb_cpulock[cpu]);
-
-       local_irq_restore(flags);
-}
-#endif
-
-/*
- * GDB stub needs to call kgdb_wait on all processor with interrupts
- * disabled, so it uses it's own special variant.
- */
-static int kgdb_smp_call_kgdb_wait(void)
-{
-#ifdef CONFIG_SMP
-       cpumask_t mask = cpu_online_map;
-       struct call_data_struct data;
-       int cpu = smp_processor_id();
-       int cpus;
-
-       /*
-        * Can die spectacularly if this CPU isn't yet marked online
-        */
-       BUG_ON(!cpu_online(cpu));
-
-       cpu_clear(cpu, mask);
-       cpus = cpus_weight(mask);
-       if (!cpus)
-               return 0;
-
-       if (spin_is_locked(&smp_call_lock)) {
-               /*
-                * Some other processor is trying to make us do something
-                * but we're not going to respond... give up
-                */
-               return -1;
-               }
-
-       /*
-        * We will continue here, accepting the fact that
-        * the kernel may deadlock if another CPU attempts
-        * to call smp_call_function now...
-        */
-
-       data.func = kgdb_wait;
-       data.info = NULL;
-       atomic_set(&data.started, 0);
-       data.wait = 0;
-
-       spin_lock(&smp_call_lock);
-       call_data = &data;
-       mb();
-
-       core_send_ipi_mask(mask, SMP_CALL_FUNCTION);
-
-       /* Wait for response */
-       /* FIXME: lock-up detection, backtrace on lock-up */
-       while (atomic_read(&data.started) != cpus)
-               barrier();
-
-       call_data = NULL;
-       spin_unlock(&smp_call_lock);
-#endif
-
-       return 0;
-}
-
-/*
- * This function does all command processing for interfacing to gdb.  It
- * returns 1 if you should skip the instruction at the trap address, 0
- * otherwise.
- */
-void handle_exception(struct gdb_regs *regs)
-{
-       int trap;                       /* Trap type */