aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-kernel
diff options
context:
space:
mode:
authorAndrea Adami <andrea.adami@gmail.com>2015-04-18 23:20:58 +0200
committerAndrea Adami <andrea.adami@gmail.com>2015-04-18 23:58:06 +0200
commit3f29b22a550afda263eb48c6d81f05c3f82456d9 (patch)
tree88e5ebcedfe0dd9837c8dab6fb591f1ad2d74560 /recipes-kernel
parent824b971f8abc45a8ac8bca784a43d371f05325e5 (diff)
downloadmeta-handheld-3f29b22a550afda263eb48c6d81f05c3f82456d9.tar.gz
jornada: remove unmaintained machines and kernels
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
Diffstat (limited to 'recipes-kernel')
-rw-r--r--recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/LinuxSH-2.6.17.patch56290
-rw-r--r--recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/alsa_hp6xx_2.6.17.patch636
-rw-r--r--recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/defconfig_jlime1187
-rw-r--r--recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/io.h-fix.patch31
-rw-r--r--recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/keyboard-fix-deadkeys.patch204
-rw-r--r--recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/keymap-fix.patch408
-rw-r--r--recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/rtc-2.6.17.patch987
-rw-r--r--recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/unexpected-int-fix.patch17
-rw-r--r--recipes-kernel/linux/linux-jlime-jornada6xx_2.6.17.bb31
-rw-r--r--recipes-kernel/linux/linux-jlime-jornada7xx_2.6.37+git.bb24
10 files changed, 0 insertions, 59815 deletions
diff --git a/recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/LinuxSH-2.6.17.patch b/recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/LinuxSH-2.6.17.patch
deleted file mode 100644
index 8c4b54d..0000000
--- a/recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/LinuxSH-2.6.17.patch
+++ /dev/null
@@ -1,56290 +0,0 @@
-diff -ruN linux-2.6.17-vanilla/CVS/Entries linux-2.6.17/CVS/Entries
---- linux-2.6.17-vanilla/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/CVS/Entries 2006-07-12 16:54:18.000000000 +0000
-@@ -0,0 +1,21 @@
-+/.cvsignore/1.1/Wed May 12 13:52:16 2004/-ko/
-+/ChangeLog-1999/1.1.1.1/Mon Oct 15 20:44:29 2001//
-+/ChangeLog-2000/1.1.1.1/Mon Oct 15 20:44:31 2001//
-+/ChangeLog-2001/1.1/Mon Jan 7 03:57:47 2002/-ko/
-+/ChangeLog-2002/1.3/Sun May 4 19:29:45 2003//
-+/ChangeLog-2003/1.2/Sun Jan 4 18:29:21 2004//
-+/ChangeLog-2004/1.1/Mon Jan 31 12:17:59 2005/-ko/
-+/ChangeLog-2005/1.1/Fri Jan 27 16:07:15 2006/-ko/
-+D/Documentation////
-+D/arch////
-+D/drivers////
-+D/include////
-+D/lib////
-+D/mm////
-+D/net////
-+D/scripts////
-+D/sound////
-+/AGAINST-2.6.17/1.1/Wed Jul 5 08:46:47 2006/-ko/
-+/ChangeLog/1.366/Wed Jul 5 07:19:04 2006/-ko/
-+/Makefile/1.102/Wed Jul 5 14:49:57 2006/-ko/
-+/localversion-sh/1.1/Wed Jul 5 07:22:47 2006/-ko/
-diff -ruN linux-2.6.17-vanilla/CVS/Entries.Log linux-2.6.17/CVS/Entries.Log
---- linux-2.6.17-vanilla/CVS/Entries.Log 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/CVS/Entries.Log 2006-07-12 16:54:18.000000000 +0000
-@@ -0,0 +1,6 @@
-+A D/fs////
-+A D/init////
-+A D/kernel////
-+R D/kernel////
-+R D/init////
-+R D/fs////
-diff -ruN linux-2.6.17-vanilla/CVS/Repository linux-2.6.17/CVS/Repository
---- linux-2.6.17-vanilla/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/CVS/Repository 2006-07-12 16:54:18.000000000 +0000
-@@ -0,0 +1 @@
-+linux
-diff -ruN linux-2.6.17-vanilla/CVS/Root linux-2.6.17/CVS/Root
---- linux-2.6.17-vanilla/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/CVS/Root 2006-07-12 16:54:18.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/ChangeLog linux-2.6.17/ChangeLog
---- linux-2.6.17-vanilla/ChangeLog 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/ChangeLog 2006-07-12 16:54:18.000000000 +0000
-@@ -0,0 +1,19 @@
-+2006-06-05 Adrian McMenamin <adrian@mcmen.demon.co.uk>
-+
-+ Dreamcast AICA driver tidy
-+
-+ * sound/sh/aica.c: code tidying of whitespace and returns
-+ * sound/sh/Kconfig: tidying
-+
-+
-+2006-06-04 Adrian McMenamin <adrian@mcmen.demon.co.uk>
-+
-+ Dreamcast AICA sound support added
-+
-+ * sound/Kconfig: Added here and updated to support ALSA SH devices
-+ * sound/Makefile: Added here and updated to support ALSA SH devices
-+ * sound/sh: New directory to hold ALSA files for SH devices
-+ * sound/sh/aica.c: New file to add AICA sound support
-+ * sound/sh/aica.h: Header to upport AICA sound
-+ * sound/sh/Kconfig: New file to add AICA sound support
-+ * sound/sh/Makefile: New file required to add AICA sound support
-diff -ruN linux-2.6.17-vanilla/ChangeLog-1999 linux-2.6.17/ChangeLog-1999
---- linux-2.6.17-vanilla/ChangeLog-1999 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/ChangeLog-1999 2006-07-12 16:54:18.000000000 +0000
-@@ -0,0 +1,902 @@
-+1999-12-23 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/sys_sh.c (do_mmap2, old_mmap, sys_mmap2): Follow
-+ the change of 2.3.32.
-+
-+ * arch/sh/kernel/head.S (_start): Change the name of label from _stext.
-+
-+ * include/linux/linkage.h: Dont prepend "_" for label.
-+ * arch/sh/vmlinux.lds.S: Likewise.
-+ * include/asm-sh/system.h (switch_to): Likewise.
-+
-+ * include/asm-sh/stat.h: Follow the change of 2.3.34.
-+
-+ * arch/sh/kernel/entry.S: Added getrlimit, mmap2, truncate64,
-+ ftruncate64, stat64, lstat64, and fstat64.
-+ * include/asm-sh/unistd.h: Likewise.
-+
-+1999-12-22 John Hassey <hassey@gte.net>
-+
-+ * arch/sh/kernel/irq_onchip.c (init_IRQ): Initialize the interrupt
-+ controller.
-+
-+1999-12-19 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/defconfig: Updated.
-+ * arch/sh/config.in (CONFIG_SUPERH): Defined.
-+ (CONFIG_CF_ENABLER): New config.
-+
-+ * arch/sh/kernel/irq_imask.c: New file.
-+ * arch/sh/kernel/entry.S (restore_all): Inherit IMASK of SR.
-+ * arch/sh/kernel/Makefile: Use CONFIG_CF_ENABLER.
-+ * arch/sh/kernel/cf-enabler.c: New file.
-+
-+ * include/asm-sh/irq.h (TIMER_PRIORITY): Changed from 1.
-+ The reason is for my board. Should consider later.
-+
-+1999-12-14 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/string.h (struct_cpy): Follow the changes of
-+ 2.3.32.
-+ * arch/sh/kernel/process.c (copy_thread): Use struct_cpy.
-+
-+1999-12-12 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/config.in: Added PCI support configuration.
-+ * arch/sh/kernel/time.c (get_cpu_mhz): New function.
-+
-+1999-12-11 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/cache.h: Follow the change of 2.3.30.
-+
-+1999-12-09 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/irq.h (TIMER_IPR_OFFSET): Spell fixed.
-+
-+1999-12-07 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/pgtable.h: Updated for 2.3.30.
-+ * include/asm-sh/pgtable-2level.h (set_pte, set_pmd, set_pgd): Added.
-+ * include/asm-sh/page.h (__pte, __pmd, __pgd): Added.
-+ * include/asm-sh/hardirq.h: Follow the change of 2.3.30.
-+
-+ * arch/sh/mm/init.c (__handle_bad_pmd, __handle_bad_pmd_kernel,
-+ get_pte_kernel_slow, get_pte_slow): Use set_pmd.
-+ * include/asm-sh/pgalloc.h (pte_alloc_kernel, pte_alloc): Ditto.
-+
-+1999-11-30 Toshiharu Nozawa <nozawat@hitachi-ul.co.jp>
-+
-+ * arch/sh/kernel/time.c (time_init): Implement better mesurement
-+ using RTC interrupt.
-+
-+1999-11-28 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/setup.c (setup_arch): Updated for 2.3.30.
-+ * include/asm-sh/io.h (IO_SPACE_LIMIT): Added for 2.3.30.
-+ (inw_p, outw_p): Added.
-+
-+ * include/asm-sh/ide.h (ide_default_io_base): Changed for my board.
-+ * include/asm-sh/hdreg.h (ide_ioreg_t): Changed to unsigend int.
-+
-+ * arch/sh/config.in: Added block device configuration.
-+
-+1999-11-26 Toshiharu Nozawa <nozawat@hitachi-ul.co.jp>
-+
-+ * drivers/char/sh-scif.c (sci_receive_chars): Add dummy read
-+ before clearing flag.
-+
-+ * arch/sh/kernel/time.c (time_init): Implement better mesurement.
-+
-+1999-11-25 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/pgalloc.h: New file.
-+ * include/asm-sh/pgalloc-2level.h: New file.
-+ * arch/sh/kernel/pci-sh.c: New file.
-+ * include/asm-sh/pci.h: New file.
-+ * arch/sh/kernel/irq.c: Follow the changes of 2.3.29.
-+ * arch/sh/mm/init.c, arch/sh/mm/fault.c, arch/sh/mm/ioremap.c:
-+ Likewise.
-+
-+ * include/asm-sh/highmem.h: Removed.
-+
-+1999-11-23 Toshiharu Nozawa <nozawat@hitachi-ul.co.jp>
-+
-+ * arch/sh/kernel/time.c (time_init): Implement getting clock
-+ (system clock and module clock) information.
-+
-+1999-11-18 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * drivers/char/{sh-scif.c,sh-sci.c}: Avoid race conditions.
-+ Don't initialize the module if c_cflags is same.
-+
-+1999-11-17 Toshiharu Nozawa <nozawat@hitachi-ul.co.jp>
-+
-+ * drivers/char/sh-scif.c: Use ctrl_in, ctrl_out for SCSCR, SCSMR
-+ and SCFCR. It's accessed as byte for SH-3.
-+
-+1999-11-16 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/io.h (ctrl_in, ctrl_out): New macro.
-+
-+1999-11-15 Sugioka Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/kernel/entry.S (system_call): Bug fix. Change
-+ cmp/ge --> cmp/hs.
-+
-+1999-11-14 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/irq_onchip.c: Include <linux/config.h>.
-+
-+ * include/asm-sh/dma.h: Include <asm/io.h>.
-+
-+ * include/asm-sh/div64.h: New file.
-+
-+ * arch/sh/kernel/process.c (get_wchan): New function.
-+
-+ * arch/sh/mm/init.c (paging_init,mem_init,si_meminfo): Follow the
-+ changes of 2.2.27.
-+ * include/asm-sh/processor.h (KSTK_EIP, KSTK_ESP): Ditto.
-+
-+ * drivers/char/sh-scif.c: Incorporate changes of sh-sci.c,
-+ to be real TTY support.
-+
-+1999-11-10 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/cache.c (__flush_page_to_ram): Renamed from
-+ flush_page_to_ram.
-+
-+ * include/asm-sh/dma.h (MAX_DMA_ADDRESS): Add __MEMORY_START.
-+ * include/asm-sh/pgtable.h (page_pte_prot): Removed.
-+ (__flush_page_to_ram): Renamed from flush_page_to_ram.
-+ (flush_page_to_ram): New Macro.
-+
-+1999-11-10 YAEGASHI Takeshi <yaegashi@ma.kcom.ne.jp>
-+
-+ * include/asm-sh/pgtable.h (_PAGE_CHG_MASK, PAGE_NONE,
-+ PAGE_SHARED, PAGE_COPY, PAGE_READONLY, PAGE_KERNEL,
-+ PAGE_KERNEL_RO): Add _PAGE_CACHABLE.
-+
-+1999-11-06 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/mmu_context.h (set_asid): Don't change
-+ the value of other part of PTEH.
-+
-+ * include/asm-sh/shmparam.h (SHMLBA): Incorporate the changes
-+ of pre-2.3.26-2.
-+
-+1999-11-05 YAEGASHI Takeshi <yaegashi@ma.kcom.ne.jp>
-+
-+ * arch/sh/kernel/sys_sh.c (sys_mmap): Bug fix for arguments.
-+
-+1999-11-03 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/page.h (__pa,__va,MAP_NR): Changed not using
-+ __PAGE_OFFSET.
-+
-+ * arch/sh/kernel/setup.c (parse_mem_cmdline): Followed the changes
-+ of __pa and __va.
-+
-+ * include/asm-sh/pgtable-2level.h (SWP_ENTRY): Moved to pgtable.h.
-+ * include/asm-sh/page.h (__pte,__pmd,__pgd): Removed.
-+
-+ Do we need getrlimit changes?
-+
-+1999-10-31 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/fault.c (__flush_tlb_page): Bug fix. Set ASID before
-+ doing the flush of TLB.
-+
-+ Cosmetic changes around SuperH MM.
-+ * arch/sh/mm/fault.c (update_mmu_cache): Don't set PTEH register.
-+
-+ * arch/sh/kernel/process.c (copy_thread): Removed setting
-+ p->mm->context. It's done in copy_mm.
-+ * include/asm-sh/mmu_context.h (destroy_context): Don't
-+ need to reset mm->context.
-+
-+1999-10-30 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/fault.c: Handle TLB miss of vmalloc area.
-+
-+ * drivers/char/sh-sci.c: Include serialP.h, not include
-+ serial_reg.h.
-+ (sci_transmit_chars): Bug fix. Clear GS_TX_INTEN flag
-+ when clearing TIE flag.
-+
-+1999-10-29 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/resource.h (INIT_RLIMITS): Follow the change
-+ of 2.3.24.
-+ * include/asm-sh/pgtable-2level.h (pgd_clear): Do nothing.
-+ * arch/sh/kernel/setup.c (setup_arch): Follow the changes of
-+ 2.3.24.
-+
-+ * include/asm-sh/uaccess.h (__strnlen_user): Minor fix.
-+
-+1999-10-28 YAEGASHI Takeshi <yaegashi@ma.kcom.ne.jp>
-+
-+ * arch/sh/lib/checksum.S: Bug fix. Change bf/s --> bt/s.
-+
-+1999-10-28 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/uaccess.h (__strnlen_user): Bug fix. Don't
-+ fetch the memory over the boundary.
-+ (strnlen_user): Bug fix. 'n ' could be large value when it's
-+ used through strlen_user. Don't use access_ok with 'n'.
-+
-+1999-10-27 YAEGASHI Takeshi <yaegashi@ma.kcom.ne.jp>
-+
-+ * arch/sh/kernel/irq_onchip.c: Support extended on-chip I/O.
-+ * include/asm-sh/irq.h (NR_IRQS): Ditto.
-+
-+ * include/asm-sh/io.h (outsb,outsw,outsl,insb,insw,insl): Added.
-+
-+ * drivers/char/sh-scif.c: Add SH-3 support.
-+
-+ * arch/sh/kernel/time.c (do_timer_interrupt): Increment the
-+ register.
-+
-+ * arch/sh/kernel/entry.S (INTEVT): Use INTEVTE2 for SH7709.
-+
-+ * arch/sh/config.in: Introduce CONFIG_CPU_SUBTYPE.
-+ Config added for Network device drivers.
-+
-+1999-10-27 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/string.h (memscan): Bug fix. Use memchr.
-+
-+ * include/asm-sh/bitops.h (ext2_set_bit and others): Little
-+ endian support.
-+
-+ * arch/sh/kernel/head.S: Remove entry for MEMORY_END, followed
-+ changes of setup.c. Reported by Jiu Zheng.
-+
-+1999-10-26 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/spinlock.h: This file is used only for SMP.
-+ Reported by Manfred Spraul.
-+
-+1999-10-24 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/ioctls.h
-+ (TCGETS,TCSETS,TCSETSW,TCSETSF,TIOCGLCKTRMIOS,TIOCSLCKTRMIOS): Use
-+ Immediate 0x54XX value as struct termios is different between
-+ kernel and glibc.
-+
-+ * arch/sh/kernel/entry.S (system_call): Add debug output to LED.
-+
-+ * drivers/char/sh-sci.c (sci_set_real_termios): Bug fix.
-+ Enable receive interrupt, or we lose inputs.
-+
-+1999-10-23 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/pgtable.h (pte_pagenr): substract the offset
-+ __MEMORY_START.
-+ (mk_pte): add the offset __MEMORY_START.
-+
-+1999-10-22 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/setup.c (setup_arch): Follow the change of 2.3.23.
-+ * arch/sh/mm/init.c (show_mem, pageing_init, mem_init, and bad
-+ page handling): Follow the change of 2.3.23.
-+ * include/asm-sh/highmem.h, include/asm-sh/pgtable-2level.h: New
-+ headers.
-+ * include/asm-sh/dma.h (MAX_DMA_ADDRESS): Defined.
-+ * include/asm-sh/pgtable.h: Follow the changes of 2.3.23.
-+ * drivers/char/{sh-scif.c,sh-sci.c} (serial_console_init):
-+ Follow the interface change of 2.3.23.
-+
-+ * arch/sh/kernel/setup.c (MEMORY_END): Removed.
-+
-+1999-10-21 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/entry.S (restore_all, debug): Bug fix. Fix SSR
-+ race condition (SSR could be modified by interrupts).
-+
-+1999-10-20 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/system.h (__sti,__cli,__save_and_cli): Relax the
-+ register constraints.
-+ (__save_and_cli): Improve a bit.
-+
-+1999-10-19 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * drivers/char/{sh-scif.c,sh-sci.c}: Bug fix. FLAGS is long
-+ instead of short. Fix typo for cli (not cil).
-+ Thanks to Alexei Minayev and Jiu Zheng.
-+
-+ * arch/sh/kernel/irq_onchip.c (disable_onChip_irq,
-+ enable_onChip_irq): Protect critical regions.
-+
-+1999-10-17 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/string.h (__HAVE_ARCH_MEMCHR): Defined.
-+ * arch/sh/lib/memchr.S: New file.
-+
-+ * include/asm-sh/spinlock.h: Merged with Kaz'.
-+
-+ * arch/sh/kernel/setup.c (setup_arch): Set command_line.
-+
-+ * arch/sh/kernel/entry.S (exception_handling_table): Set
-+ 'none' for entry #0, to avoid spurious interrupt. Questionable.
-+
-+1999-10-16 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * drivers/char/{sh-scif.c,sh-sci.c}: Protect critical regions.
-+ Bug fix for sci_chars_in_buffer (it's for *transmit* not receive).
-+
-+1999-10-15 Tetsuya Okada <okayan@c-creators.co.jp>
-+
-+ * arch/sh/config.in, arch/sh/kernel/time.c (set_rtc_time):
-+ Implemented.
-+
-+1999-10-14 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/entry.S (system_call): Bug fix of the case
-+ with arguments on the stack.
-+
-+1999-10-12 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/uaccess.h (__strnlen_user,strnlen_user): Changed
-+ from {__,}strlen_user.
-+
-+ * arch/sh/kernel/entry.S (sys_call_table): sys_mmap.
-+ * arch/sh/kernel/sys_sh.c (sys_mmap): Implemented.
-+
-+1999-10-11 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * drivers/char/{sh-scif.c,sh-sci.c} (gdb_detach):
-+ Conditionalize the interaction with the value of in_gdb.
-+
-+ * arch/sh/mm/init.c (paging_init): Initialize asid.
-+
-+ * arch/sh/kernel/irq_onchip.c (no_irq_type): Moved to irq.c.
-+
-+ * include/asm-sh/checksum.h (ip_fast_csum): cmp/eq works only
-+ for register "r0".
-+ Thanks to Mikhail Sogrine <sogrine@Informatik.Uni-Tuebingen.De>
-+ and Tetsuya Okada <okayan@c-creators.co.jp>
-+
-+1999-10-10 Tetsuya Okada <okayan@c-creators.co.jp>
-+
-+ * arch/sh/kernel/time.c (get_rtc_time): Implemented for on chip
-+ RTC.
-+
-+1999-10-09 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/entry.S (none): Do nothing for NMI.
-+
-+ * drivers/char/sh-scif.c (sci_transmit_chars,sci_receive_chars):
-+ Bug fix for counting room.
-+
-+1999-10-06 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/{signal.h,socket.h,termbits.h,termios.h,types.h}:
-+ Updated.
-+
-+ * include/asm-sh/smplock.h: Merge Kaz's. And rename it from
-+ smp_lock.h.
-+
-+1999-10-05 Sugioka Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/mm/init.c: Initialized to MMU_CONTEXT_FIRST_VERSION.
-+
-+1999-10-05 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/vmlinux.lds.S: New section ".empty_zero_page".
-+
-+ * drivers/char/sh-scif.c (gdb_detach): Change trap #.
-+ (SCSCR_INIT): New macro.
-+ (SCI_IRP_OFFSET): Bug fix.
-+
-+ * arch/sh/kernel/entry.S (fixup_syscall_argerr): Implemented.
-+
-+ * include/asm-sh/uaccess.h: Use .balign.
-+
-+1999-10-04 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * drivers/char/sh-sci.c: Implement TTY.
-+
-+ * drivers/char/sh-scif.c (sci_enable_tx_interrupts): Handle
-+ interrupt request flag correctly.
-+ (sci_interrupt): Call sci_enable_tx_interrupts.
-+
-+1999-10-03 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/irq_onchip.c
-+ (enable_onChip_irq,disable_onChip_irq): Fixed the address
-+ calculation.
-+
-+1999-10-02 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/ioctls.h (TIOCMBIS,TIOCMBIC,TIOCMSET): Fixed the
-+ typo of type.
-+
-+ * arch/sh/kernel/entry.S (handle_exception): Fixed the entry
-+ position.
-+
-+ * drivers/char/sh-scif.c: Implement serial TTY.
-+
-+1999-10-01 Tetsuya Okada <okayan@c-creators.co.jp>
-+
-+ * drivers/char/sh-scif.c: Conditionalize with
-+ CONFIG_DEBUG_KERNEL_WITH_GDB_STUB.
-+
-+1999-09-28 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/config.in(CONFIG_MEMORY_END): Removed.
-+
-+ * arch/sh/vmlinux.lds.S (section .data.disk_image): Removed.
-+
-+ * arch/sh/kernel/test-img.c: Removed.
-+ * arch/sh/kernel/Makefile(O_OBJS): Remove test-img.o.
-+
-+ * arch/sh/kernel/signal.c (setup_frame,setup_rt_frame): Bug fix
-+ for little endian machine.
-+
-+ * arch/sh/lib/memcpy.S: Bug fix: CONFIG_LITTLE_ENDIAN -->
-+ __LITTLE_ENDIAN__.
-+
-+1999-09-24 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/defconfig: Updated.
-+
-+ * arch/sh/kernel/head.S: Assumes arguments come with register R4&R5.
-+ * arch/sh/kernel/setup.c (setup_arch): Introduce new boot interface
-+ "BabeFace".
-+
-+ * include/asm-sh/bugs.h (check_bugs): Set loops_per_sec, and display
-+ CPU type.
-+
-+ * include/asm-sh/processor.h: New enumeration for CPU type.
-+
-+ * arch/sh/mm/cache.c (detect_cpu_and_cache_system): New function.
-+
-+ * arch/sh/config.in: Follow the change of the name of sh-sci.c and
-+ sh-scif.c.
-+
-+ * driver/char/{sh-sci.c,sh-scif.c}: Renamed since they're
-+ almost same between SH-3 and SH-4.
-+ Thanks to Mikhail Sogrine <sogrine@Informatik.Uni-Tuebingen.De>.
-+
-+1999-09-23 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/entry.S, include/asm-sh/ptrace.h: Stack layout change.
-+ (error): Bug fix.
-+
-+ * arch/sh/kernel/signal.c, arch/sh/kernel/process.c: Follow the
-+ interface change of ptrace.h.
-+
-+ * include/asm-sh/ptrace.h: Rename the member u_regs to regs.
-+ Introduce new member "sp".
-+
-+ * include/asm-sh/sigcontext.h(struct sigcntext): Rename the members.
-+
-+ * include/asm-sh/elf.h (ELF_PLAT_INIT): Taken from Kaz'
-+ Implementation. Don't know if it's really needed or not.
-+
-+1999-09-22 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/head.S: Set SR register.
-+
-+ * arch/sh/mm/cache.c (flush_icache_range): Bug fix. Tag address
-+ for IC Address Array is virtual address, not physical.
-+ (flush_cache_range): Likewise.
-+ (cache_flush_area): Likewise.
-+ (follow_page): Removed.
-+
-+1999-09-21 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/process.c (show_regs): Format change a bit.
-+
-+ * include/asm-sh/delay.h (__delay,__udelay): Kaz' Implementatin.
-+
-+ * arch/sh/lib/memmove.S: Don't include <linux/config.h>, use
-+ __LITTLE_ENDIAN__ instead.
-+ * arch/sh/lib/memcpy.S: Likewise.
-+ * arch/sh/kernel/signal.c: Likewise.
-+ * include/asm-sh/elf.h: Likewise.
-+ * include/asm-sh/byteorder.h: Likewise.
-+ * include/asm-sh/checksum.h: Likewise.
-+ (csum_tcpudp_nofold,csum_ipv6_magic): Improve a bit. (Don't branch)
-+ (ip_fast_csum,csum_fold): Merge Kaz' Implementation.
-+
-+1999-09-20 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/{atomic.h,bitops.h}: Use save_and_cli.
-+
-+1999-09-19 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/entry.S (ret_from_irq): Just return when
-+ interrupted from kernel space.
-+
-+ * arch/sh/kernel/irq.c (do_IRQ): set syscall_nr = -1.
-+
-+ * arch/sh/mm/fault.c (update_mmu_cache): Flush icache when needed.
-+
-+ * arch/sh/kernel/process.c (show_regs): Display TEA value.
-+ * arch/sh/kernel/traps.c (show_registers): Removed.
-+
-+1999-09-18 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/entry.S (system_call): Bug fix: TRA contains
-+ the value = imm x 4.
-+
-+ * arch/sh/mm/init.c (paging_init): Use ctrl_outl.
-+
-+ * arch/sh/config.in (CONFIG_MEMORY_END): New config variable.
-+
-+ * arch/sh/kernel/{entry.S,head.S,irq_onchip.c,setup.c,time.c},
-+ arch/sh/mm/{cache.c,fault.c}: Use __sh3__ and __SH4__ to
-+ distinguish CPU.
-+
-+ * include/asm-sh/addrspace.h, include/asm-sh/cache.h,
-+ include/asm-sh/elf.h, include/asm-sh/mmu_context.h,
-+ include/asm-sh/pgtable.h: Likewise.
-+
-+ * arch/sh/Makefile (AFLAGS): Add processor specific flag.
-+
-+ * arch/sh/kernel/head.S: Merge Kaz' implementation of SH-4 FPU
-+ initialization.
-+
-+ * arch/sh/kernel/time.c: SH-4 Support.
-+
-+ * drivers/char/sh4scif.c: New file.
-+
-+ * include/asm-sh/io.h (ctrl_in{b,w,l},ctrl_out{b,w,l}): New
-+ Interfaces for memory mapped control register access.
-+
-+1999-09-17 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/fault.c (__flush_tlb_page): SH-4 Support.
-+
-+ * arch/sh/kernel/signal.c (setup_frame, setup_rt_frame):
-+ Add flush_icache_range.
-+
-+ * arch/sh/mm/cache.c: SH-4 Support.
-+
-+1999-09-15 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/mmu_context.h (MMU_TTB): Change for SH-4.
-+ * arch/sh/kernel/entry.S (MMU_TEA): Change for SH-4.
-+
-+ * arch/sh/Makefile (LIBS): Nuke the 'gniibe' dependency.
-+ Suggested by Mikhail Sogrine <sogrine@Informatik.Uni-Tuebingen.De>.
-+
-+1999-09-13 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/traps.c, include/asm-sh/semaphore.h,
-+ include/asm-sh/spinlock.h: Updated to 2.3.18.
-+
-+ * arch/sh/Makefile (HOSTCC): Removed.
-+ Suggested by Mikhail Sogrine <sogrine@Informatik.Uni-Tuebingen.De>.
-+
-+1999-09-12 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/entry.S: Add SH-4 Support.
-+
-+1999-09-09 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/hardirq.h (synchronize_irq): barrier.
-+
-+1999-09-08 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/delay.h (__delay): Fixed.
-+
-+ * include/asm-sh/checksum.h (csum_tcpudp_nofold): Support both
-+ endianess.
-+
-+ * include/asm-sh/bugs.h, arch/sh/mm/fault.c,
-+ arch/sh/kernel/traps.c, arch/sh/kernel/time.c,
-+ arch/sh/kernel/ptrace.c, arch/sh/kernel/irq_onchip.c:
-+ Update to 2.3.17.
-+
-+1999-09-07 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/atomic.h (__atomic_fool_gcc): Add "volatile".
-+
-+ SH4 Merge. Phase #1.
-+ * include/asm-sh/io.h,arch/sh/Makefile: Merged.
-+
-+ * include/asm-sh/addrspace.h: Replaced to Kaz's Implementation.
-+
-+ * arch/sh/kernel/process.c (dump_thread,dump_fpu): Use Kaz's
-+ Implementation.
-+ (copy_thread,flush_thread,exit_thread): Merged.
-+ (last_task_used_math): New Variable.
-+
-+1999-09-06 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/cache.c (cache_flush_all): Rename from
-+ __fluch_cache_all, to distinguish the cache-flush-function for TLB
-+ handling. This is the mere function to flush cache, with no
-+ relation to TLB handling.
-+ (cache_flush_area,cache_purge_area,cache_wback_area): Implemented,
-+ not works as expected on SH7708S, though.
-+
-+ * include/asm-sh/cache.h
-+ (cache_flush_area,cache_purge_areacache_wback_area):
-+ Add declarations.
-+
-+ * include/asm-sh/io.h (dma_cache_inv,dma_cache_wback,
-+ dma_cache_wback_inv): Define appropriate functions.
-+
-+1999-09-05 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/checksum.h (ip_fast_csum): Fix bug.
-+
-+ * arch/sh/kernel/head.S: Call cache_init.
-+
-+ * arch/sh/mm/cache.c: New file.
-+
-+ * arch/sh/vmlinux.lds.S: Include <linux/config.h>.
-+ * arch/sh/Makefile: Don't use -imacros.
-+
-+ * arch/sh/lib/memmove.S: New Implementation.
-+ * arch/sh/lib/wordcopy.S: Removed.
-+
-+1999-09-04 Toshi Morita <tm2@best.com>
-+
-+ * include/asm-sh/unistd.h (_syscall0,1,2,3,4): Add "memory" clobber.
-+
-+1999-09-04 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/system.h (switch_to): Save/restore GBR, so that
-+ driver can use GBR. Suggested by Toshi Morita <tm2@best.com>.
-+
-+ * include/asm-sh/{hdreg.h,ide.h}: New file (Updated to 2.3.16).
-+ * arch/sh/kernel/irq.c (free_irq): Update to 2.3.16 (of i386
-+ version).
-+ * include/asm-sh/uaccess.h (__range_ok: SIZE): Coerce to interger.
-+ * include/asm-sh/system.h (__xchg): Add volatile qualifier for PTR.
-+
-+ * include/asm-sh/bugs.h (check_bugs): Use __init instead of
-+ __initfunc.
-+
-+ * arch/sh/lib/memcpy.S: New implementation.
-+ * arch/sh/lib/memset.S: New implementation.
-+
-+1999-09-03 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/sys_sh.c (sys_oldmmap, sys_oldselect,
-+ sys_olduname): Removed.
-+
-+ * arch/sh/kernel/head.S: Implement SH4 cache initialization.
-+ When clearing BSS, utilize predecrement feature of SuperH.
-+
-+1999-09-03 John Hassey <hassey@gte.net>
-+
-+ * arch/sh/kernel/head.S (CACHE_INIT): Fix to appropriate value 0xd.
-+
-+1999-09-02 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/Makefile (archmrproper): Delete vmlinux.lds on "mrproper".
-+
-+1999-09-01 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/checksum.h, arch/sh/lib/checksum.S:
-+ Implemented with the interface of i386 version.
-+ * arch/sh/lib/csum_partial_copy.c, arch/sh/lib/checksum.c: Removed.
-+
-+1999-08-29 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/processor.h (thread_saved_pc): Implemented.
-+
-+ * arch/sh/kernel/entry.S (interrupt_table): Fill `do_IRQ'.
-+
-+1999-08-28 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * drivers/char/sh3sci.c (put_char): Wow! GCC 2.95.1 does super
-+ optimization! Introduce barrier between asm statement.
-+
-+ * arch/sh/kernel/test-img.c: New image.
-+ * arch/sh/kernel/setup.c (setup_arch): Set initrd_end to
-+ __bss_start.
-+
-+ New System Call Interface. Thanks to YAEGASHI Takeshi for
-+ the discussion.
-+ * arch/sh/kernel/entry.S (system_call): Implement systemcall
-+ which has more than five arguments.
-+
-+ * include/asm-sh/unistd.h (_syscall0,1,2,3,4): Use trapa #0.
-+ * arch/sh/kernel/process.c (kernel_thread): Ditto.
-+ * arch/sh/kernel/signal.c (setup_frame, setup_rt_frame): Ditto.
-+
-+ * arch/sh/kernel/entry.S
-+ (general_exception,tlb_miss,interrupt,handle_exception): Avoid
-+ potential races. We should stay BL=1 to avoid breakage of
-+ hardware registers (such as TRA, MMU_TEA, k2, or k3).
-+
-+ * arch/sh/kernel/traps.c (DO_ERROR): Add STI.
-+
-+ New IRQ Programming Interface.
-+ * arch/sh/kernel/irq.c, include/asm-sh/irq.h: Implemented.
-+ * arch/sh/kernel/irq_onchip.c: New file.
-+
-+ * arch/sh/kernel/time.c (time_init): Use new scheme.
-+
-+1999-08-27 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/Makefile (arch/sh/vmlinux.lds): Add support for
-+ a generation of the ldscript.
-+
-+ * arch/sh/vmlinux.lds.S: Renemed from vmlinux.lds.S, and
-+ introduce using CONFIG_MEMORY_START, and CONFIG_LITTLE_ENDIAN.
-+
-+ * include/asm-sh/elf.h (EM_SH): Delete and...
-+ * include/linux/elf.h (EM_SH): Add here.
-+
-+ Updated to 2.3.15.
-+ * include/asm/sh/pgtable.h (io_remap_page_range): Added.
-+
-+1999-08-26 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * asm-sh/pgtable.h (SET_PAGE_DIR): Removed.
-+
-+ * mm/fault.c (do_page_fault): Store the address to thread
-+ structure.
-+
-+ * asm-sh/processor.h (start_thread): Make it macro, instead of
-+ inline function to avoid inclusion of ptrace.h.
-+ Add the member "address" to store the memory address to be paged.
-+
-+ * asm-sh/system.h (rmb, wmb): Added.
-+
-+ * defconfig: New file.
-+ * config.in: Add processor type selection, endianness, and memory
-+ start address.
-+
-+1999-08-25 John Hassey <hassey@gte.net>
-+
-+ * asm-sh/byteorder.h: Add little endian support.
-+
-+ * kernel/head.S: Check if cache is enabled already.
-+ Don't flush it, if it is the case.
-+
-+ * vmlinux.lds(___bss_start,__end): Aligned to 4-byte.
-+
-+1999-08-25 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * asm-sh/elf.h (ELF_DATA): Support little endian.
-+
-+ * drivers/block/rd.c (rd_request): Add minimum hack to
-+ support ramdisk for root filesystem.
-+
-+1999-08-24 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * mm/init.c (mem_init): Bug fix for counting datapages.
-+
-+ * asm-sh/string.h (strncpy,strncmp): Clean up.
-+ * asm-sh/system.h (xchg_u32): Bug fix.
-+ * kernel/process.c (__switch_to, copy_thread): Handle the case where
-+ mm == 0.
-+
-+ * kernel/head.S(_stext:1): Fixed to correct mask value.
-+ Reported by John Hassey <hassey@gte.net>.
-+
-+1999-08-23 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * asm-sh/cache.h, asm-sh/hardirq.h, asm-sh/init.h, asm-sh/io.h,
-+ asm-sh/mmu_context.h, asm-sh/page.h, asm-sh/pgtable.h,
-+ asm-sh/processor.h, asm-sh/semaphore.h, asm-sh/softirq.h,
-+ asm-sh/spinlock.h, asm-sh/system.h, asm-sh/unistd.h:
-+ Update to 2.3.14.
-+
-+ * asm-sh/hw_irq.h: New file (2.3.14).
-+
-+ * kernel/entry.S (sys_idle), kernel/process.c (sys_idle): Removed
-+ (Update to 2.3.14).
-+
-+ * mm/init.c, mm/fault.c, kernel/init_task.c: Updated to 2.3.14.
-+ * kernel/signal.c (do_signal): Update to 2.3.14.
-+ * kernel/traps.c (DO_ERROR): Updated to 2.3.14.
-+
-+ * config.in: Remove support of JAVA binaries.
-+
-+1999-08-22 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * kernel/entry.S (signal_return): Revert the changes of 08-19.
-+ (DO_FAULT): Remove unblocking of interrupt (not needed).
-+ (interrupt): Set return address ret_from_irq, instead of
-+ ret_from_syscall.
-+
-+ * string.h (strncpy): Fix uninitialized __limit.
-+
-+ * kernel/signal.c (setup_frame,setup_rt_frame): Support both endians.
-+
-+1999-08-19 Niibe Yutaka <gniibe@m17n.org>
-+
-+ * Second version, named "OSHIDASHI".
-+ Linux 2.2.11.
-+
-+ * system.h (__sti, __cli, __save_and_cli): Bug fix.
-+ * kernel/entry.S (signal_return, DO_FAULT): Bug fix.
-+
-+ * string.h: Remove useless "earlyclobber" constraints from asm
-+ statements.
-+ * uaccess.h,string.h,system.h: Don't write "r0" directly, instead
-+ use %n specification.
-+
-+ * socket.h, pgtable.h (ZERO_PAGE), mm/ioremap.c (__ioremap), mm/init.c
-+ (show_mem): Updated to 2.2.11.
-+
-+ * kernel/traps.c: Implement exception handling for address error,
-+ reserved instruction and illegal slot instruction.
-+
-+ * kernel/test-img.c (root_fs_image): compressed by GNU zip.
-+ * kernel/setup.c (setup_arch), kernel/test-img.c: New root file
-+ system image which includes executable using signal.
-+
-+ * kernel/entry.S (ret_with_reschedule): Bug fix for access
-+ tsk->sigpending.
-+ (nmi, debug): Removed (because this is only for my board).
-+
-+ * kernel/entry.S (exception_handling_table): set sys_ni_syscall
-+ for ioperm, iopl, and vm86.
-+ * kernel/ioport.c, kernel/vm86.c: Removed.
-+
-+ * sigcontext.h, kernel/signal.c: Signal handling implemented.
-+
-+ * sh3sci.c (put_char): Clean up a bit.
-+
-+1999-08-18 Niibe Yutaka <gniibe@m17n.org>
-+
-+ * Initial version, named "YORIKIRI".
-+
-+ It boots! It runs ELF executable! It forks!
-+
-+ Environment:
-+ Linux 2.2.10.
-+ Kyoto Micro Computer's SH-3 Evaluation Board (SH7708 60MHz).
-+ GDB 4.18 with patch for the board.
-+ GNU binutils snapshot 1999-08-17.
-+ EGCS 1.1.2.
-+
-+ Start writing ChangeLog:
-+ * vmlinux.lds: Linker script for vmlinux.
-+
-+ * kernel/vm86.c, kernel/traps.c, kernel/time.c, kernel/sys_sh.c,
-+ kernel/sh_ksyms.c, kernel/setup.c, kernel/irq.c,
-+ kernel/ioport.c, kernel/init_task.c, kernel/head.S,
-+ kernel/entry.S, kernel/signal.c, kernel/ptrace.c,
-+ kernel/process.c: It works!
-+
-+ * kernel/test-img.c: Root fs image with
-+ /dev/console --> /dev/tty0 (4,0)
-+ /linuxrc printing "Hello World!.
-+
-+ * lib/checksum.c, lib/csum_partial_copy.c, lib/delay.c, lib/memcpy.S,
-+ lib/memmove.S, lib/memset.S, lib/old-checksum.c, lib/wordcopy.S:
-+ Taken from GCC outputs, newlib-1.8.0, and other part of Linux.
-+
-+ * mm/extable.c, mm/fault.c, mm/init.c, mm/ioremap.c:
-+ Implement SH-3 MMU.
-+
-+ * semaphore-helper.h, atomic.h, current.h, mman.h, processor.h,
-+ unistd.h, bugs.h, softirq.h, user.h, bitops.h, shmparam.h,
-+ namei.h, elf.h, ioctls.h, posix_types.h, statfs.h, termios.h,
-+ termbits.h, signal.h, siginfo.h, unaligned.h, semaphore.h,
-+ uaccess.h, system.h, cache.h, pgtable.h: Header files.
-+
-+ * mmu_context.h: New file. Idea taken from MIPS Implementation.
-+
-+Little History:
-+
-+I've started the project which ports Linux to SuperH in the summer of
-+1998. Got the CPU programming manual and hardware manual from
-+Hitachi, prepared GNU tool-chains (binutils, gcc) on my Intel box.
-+
-+I've asked Hitachi for hardware information of thier Windows CE
-+machine, but it seemed that it was difficult for Hitachi to disclose
-+the information (NDA wrt Microsoft???). Anyway, I've started writing
-+some code with Linux version 2.1.63.
-+
-+As there's no platform running the code, I got bored. Hence, in June
-+1999, I bought "SH-3 Evaluation Kit" made by Kyoto Micro Computer,
-+which is available from CQ publishing company (in Japan). At first,
-+I've port GDB for that board, it helps me much for understanding the
-+CPU. Then, I port Linux 2.2.10.
-+
-+ -- Niibe Yutaka
-+ at ETL, Tsukuba, Japan.
-+ 1999-08-18
-diff -ruN linux-2.6.17-vanilla/ChangeLog-2000 linux-2.6.17/ChangeLog-2000
---- linux-2.6.17-vanilla/ChangeLog-2000 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/ChangeLog-2000 2006-07-12 16:54:18.000000000 +0000
-@@ -0,0 +1,2069 @@
-+2000-12-28 Mitch Davis <mdavis@pocketpenguins.com>
-+
-+ * Changelog, arch/sh/kernel/Makefile,
-+ arch/sh/kernel/mach_foobar.c: Replaced FOOBAR with DMIDA.
-+
-+2000-12-26 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * drivers/char/Makefile: Added CONFIG_SH_DREAMCAST.
-+ * drivers/char/maple.{h,c}: New files.
-+ * drivers/char/dc_keyb.c: New file.
-+
-+ * drivers/video/Config.in (CONFIG_FB_DC): Added.
-+ * drivers/video/Makefile (obj-$(CONFIG_FB_DC)): Added.
-+ * drivers/video/dcfb.c: New file.
-+ * drivers/video/fbmem.c: Added CONFIG_FB_DC.
-+
-+ * include/asm-sh/io.h: Added CONFIG_SH_DREAMCAST.
-+ * include/asm-sh/io_dc.h: New file.
-+ * include/asm-sh/machvec.h: Added MACH_DREAMCAST.
-+ * include/asm-sh/keyboard.h (kbd_init_hw): Added code for
-+ MACH_DREAMCAST.
-+
-+ * arch/sh/kernel/Makefile (obj-$(CONFIG_SH_DREAMCAST)): Added.
-+ * arch/sh/kernel/setup_dc.c: New file.
-+ * arch/sh/kernel/io_dc.c: New file.
-+ * arch/sh/kernel/mach_dc.c: New file.
-+
-+ * arch/sh/config.in: Added Dreamcast support, whatever it means.
-+
-+2000-12-25 Philipp Rumpf <prumpf@tux.org>
-+
-+ * arch/sh/kernel/rtc.c, include/asm-sh/rtc.h: New files.
-+ * arch/sh/config.in [CONFIG_SH_RTC]: made SH onchip RTC support
-+ conditional.
-+ * arch/sh/kernel/Makefile [CONFIG_SH_RTC]: Likewise.
-+ * arch/sh/kernel/mach_dmida.c, arch/sh/kernel/mach_se.c,
-+ arch/sh/kernel/mach_hp600.c, arch/sh/kernel/mach_unknown.c: Likewise.
-+ * arch/sh/kernel/time.c (get_timer_frequency): modified to work with
-+ non-standard RTCs.
-+ (do_timer_interrupt): Likewise.
-+ (set_rtc_time) (get_rtc_time): removed functions
-+
-+2000-12-25 Philipp Rumpf <prumpf@tux.org>
-+
-+ * arch/sh/kernel/mach_ec3104.c, arch/sh/kernel/io_ec3104.c,
-+ arch/sh/kernel/setup_ec3104.c, include/asm-sh/ec3104.h,
-+ include/asm-sh/io_ec3104.h, include/asm-sh/serial-ec3104.h,
-+ include/asm-sh/keyboard-ec3104.h,
-+ drivers/char/ec3104_keyb.c: New files
-+
-+ * arch/sh/config.in, arch/sh/kernel/Makefile, include/asm-sh/io.h,
-+ include/asm-sh/irq.h, include/asm-sh/machvec.h: Added support for
-+ the EC3104 companion chip.
-+
-+ * include/asm-sh/serial.h [CONFIG_SH_EC3104]: Use alternate header
-+ file for EC3104.
-+ * include/asm-sh/keyboard.h [CONFIG_SH_EC3104]: Likewise.
-+
-+2000-12-25 Philipp Rumpf <prumpf@tux.org>
-+
-+ * drivers/video/epson1355fb.c: New file
-+ * drivers/video/Config.in, drivers/video/Makefile,
-+ drivers/video/fbmem.c: added epson 1355 support
-+
-+2000-12-24 Philipp Rumpf <prumpf@tux.org>
-+
-+ * arch/sh/boot/compressed/head.S (init_sr): initialize imask to 15
-+ * arch/sh/kernel/fpu.c: Remove '$' for register specification.
-+
-+2000-12-22 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/Makefile, arch/sh/mm/Makefile, arch/sh/lib/Makefile
-+ arch/sh/overdrive/Makefile: New style Makefile.
-+
-+ * Updated to 2.4.0-test13-pre4.
-+
-+ * Updated to 2.4.0-test12. Mostyly done by Greg Banks.
-+
-+2000-11-26 Takashi Yoshii <yoshii-takashi@hitachi-ul.co.jp>
-+
-+ * arch/sh/boot/compressed/head.S (fake_headers_as_bzImage): Added.
-+
-+2000-11-23 David Howells <dhowells@redhat.com>
-+
-+ * arch/sh/kernel/traps.c (handle_unaligned_ins):
-+ Use copy_from_user, copy_to_user (were __copy_user).
-+ (handle_unaligned_delayslot): Likewise.
-+ (do_address_error): Likewise.
-+
-+2000-11-23 David Howells <dhowells@redhat.com>
-+
-+ * arch/sh/kernel/traps.c: New Variable.
-+ (die_if_no_fixup): Return integer.
-+ (handle_unaligned_ins): Retern integer.
-+ (handle_unaligned_delayslot, handle_unaligned_access): New
-+ functions.
-+
-+2000-11-22 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Updated to 2.4.0-test11.
-+ * arch/sh/kernel/time.c (set_rtc_time): Add declaration of abs.
-+ (time_init): Remove unused variable 'i'.
-+ * arch/sh/kernel/setup_hd64461.c (setup_hd64461): Ifdef-out
-+ access of INTC_ICR1.
-+
-+ * include/asm-sh/pgtable.h(module_map, module_umap): Removed.
-+ * include/asm-sh/xor.h, include/asm-sh/module.h: New files.
-+ * arch/sh/config.in (CONFIG_EISA, CONFIG_MCA): Added.
-+
-+2000-11-17 YAEGASHI Takeshi <yaegashi@ma.kcom.ne.jp>
-+
-+ * arch/sh/config.in: Add HP620/680/690 support.
-+
-+ * include/asm-sh/machvec.h, arch/sh/kenrnel/mach_hp600.c: Add
-+ HP620/680/690 machine vectors.
-+
-+ * arch/sh/kernel/setup.c: Add struct screen_info.
-+
-+ * drivers/char/scan_keyb.[ch], drivers/char/hp600_keyb.c: Add HP620
-+ keyboard support. Reverse bit order of scan table. Use kernel
-+ timer instead of task queue.
-+
-+ * drivers/net/smc9194.c: Bug fix.
-+
-+ * drivers/video/hitfb.c: API clean up. Add 8bpp support for HP620.
-+
-+ * include/asm-sh/ide.h, arch/sh/kernel/io_hd64461.c: Add ide1 ports.
-+
-+ * include/asm-sh/hd64461.h: Add more register definitions.
-+
-+2000-11-15 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/kernel/time.c (time_init): clock calculation bug fixed.
-+
-+ * arch/sh/io_generic.c: Follow the change of I/O func.
-+
-+2000-11-11 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/Makefile (CFLAGS, AFLAGS): Use -m4-nofpu.
-+
-+ * arch/sh/kernel/io.c, arch/sh/kernel/io_generic.c,
-+ arch/sh/kernel/io_hd64461.c, arch/sh/kernel/io_hd64465.c,
-+ arch/sh/kernel/io_se.c, arch/sh/kernel/setup_hd64461.c,
-+ arch/sh/overdrive/io.c, include/asm-sh/io.h,
-+ include/asm-sh/io_generic.h, include/asm-sh/io_hd64461.h,
-+ include/asm-sh/io_hd64465.h, include/asm-sh/io_od.h,
-+ include/asm-sh/io_se.h, include/asm-sh/io_unknown.h,
-+ include/asm-sh/machvec.h: Clean up the API.
-+ arch/sh/kernel/process.c: Follow the change of I/O func.
-+
-+ * include/asm-sh/pgtable-2level.h (pgd_none, pgd_bad, pgd_present,
-+ pmd_offset): Make them static inline.
-+ * include/asm-sh/pgtable.h (pte_read, pte_exec, pte_dirty,
-+ pte_young, pte_write, pte_shared, pte_rdprotect, pte_exprotect,
-+ pte_mkclean, pte_mkold, pte_wrprotect, pte_mkread, pte_mkexec,
-+ pte_mkdirty, pte_mkyoung, pte_mkwrite, pte_modify): Likewise.
-+ * include/asm-sh/siginfo.h (copy_siginfo): Likewise.
-+ * include/asm-sh/uaccess.h (verify_area): Likewise.
-+
-+ * include/asm-sh/io.h(___raw_readq, ___raw_writeq): Removed.
-+
-+ * arch/sh/kernel/entry.S (call_dae): Remove STI().
-+ * arch/sh/kernel/traps.c (handle_unaligned): Use __LITTLE_ENDIAN__
-+ instead.
-+
-+2000-11-11 Jesper Skov <jskov@redhat.com>
-+
-+ * arch/sh/kernel/traps.c (handle_unaligned, do_address_error):
-+ New functions.
-+ Added bad alignment handling, based on original code by Philipp
-+ Rumpf, bug fixed, and enhanced to handle r0-indexed access as well.
-+ (DO_ERROR(7), DO_ERROR(8)): Removed.
-+ (trap_init): Dont' set exception_handling_table[7] and [8].
-+ * arch/sh/kernel/entry.S (address_error_load, address_error_store,
-+ call_dae): New entries.
-+
-+2000-11-11 Philipp Rumpf <prumpf@parcelfarce.linux.theplanet.co.uk>
-+
-+ * arch/sh/kernel/time.c (get_cpu_mhz, rtc_interrupt, irq1): Removed.
-+ (get_timer_frequency): New function.
-+ (time_init): New way of get the frequency.
-+
-+2000-11-11 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/Makefile (arch/sh/vmlinux.lds): Add -traditional.
-+ (O_OBJS): Add io_generic.o unconditionally.
-+
-+2000-11-11 Jesper Skov <jskov@redhat.com>
-+
-+ * arch/sh/kernel/entry.S, arch/sh/kernel/head.S,
-+ arch/sh/kernel/irq.c, arch/sh/kernel/irq_imask.c,
-+ arch/sh/kernel/process.c, arch/sh/kernel/traps.c,
-+ arch/sh/lib/checksum.S, include/asm-sh/current.h,
-+ include/asm-sh/delay.h, include/asm-sh/processor.h,
-+ include/asm-sh/system.h: Remove '$' for register specification.
-+ * arch/sh/lib/checksum.S (SRC, DST): Use "..." for CPP.
-+ * arch/sh/kernel/Makefile (.S.o): Remove -traditional flag.
-+ * arch/sh/lib/Makefile: Ditto.
-+
-+2000-11-07 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/kernel/irq_ipr.c (ipr_irq_demux): Set port mode register
-+ before read data register.
-+
-+ * include/asm-sh/irq.h (PORT_PxCR): Defined.
-+
-+2000-11-04 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/kernel/time.c (do_gettimeoffset): Implemented.
-+ (time_init): TMU0 counter value changed.
-+
-+ * include/asm-sh/timex.h (CLOCK_TICK_RATE) Changed.
-+
-+2000-11-03 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/kernel/irq_ipr.c Add PINT interrupt hanlers.
-+ (ipr_irq_demux): IPR/PINT interrupt demux added.
-+ (pint_irq_type, pint_map): Added.
-+ (init_IRQ): Add PINT initializer.
-+ (*_IPR_*): Fixed typo.
-+
-+ * arch/sh/kernel/setup_hd64461.c (hd64461_irq_demux): use __irq_demux
-+
-+ * include/asm-sh/irq.h (NR_IRQS): changed.
-+ (irq_demux): Changed.
-+ (__irq_demux): Defined.
-+ (PINT_IRQ_BASE, PINT0_IRQ, PINT8_IRQ, PINT0_IPR_ADDR, PINT8_IPR_ADDR,
-+ PINT0_IPR_POS, PINT8_IPR_POS, PINT0_PRIORITY, PINT8_PRIORITY): added.
-+ (PORT_PADR, PORT_PBDR, PORT_PCDR, PORT_PFDR): added.
-+ (*_IPR_*): Fixed typo.
-+
-+2000-11-02 Takashi Yoshii <yoshii-takashi@hitachi-ul.co.jp>
-+
-+ * arch/sh/kernel/dma.c: New file.
-+
-+ * include/asm-sh/dma.h (SH_MAX_DMA_CHANNELS): Added.
-+ (SAR, DAR, DMATCR, CHCR, DMAOR, DMTE_IRQ, DMA_MODE_READ,
-+ DMA_MODE_WRITE, DMA_AUTOINIT, REQ_L, REQ_E, RACK_H, RACK_L, ACK_R,
-+ ACK_W, ACK_H, ACK_L, DM_INC, DM_DEC, SM_INC, SM_DEC, RS_DUAL, RS_IN,
-+ RS_OUT, TM_BURST, TS_8, TS_16, TS_32, TS_64, TS_BLK, CHCR_DE,
-+ CHCR_TE, CHCR_IE, DMAOR_COD, DMAOR_AE, DMAOR_NMIF, DMAOR_DME):
-+ Added.
-+ (struct dma_info_t): defined.
-+ (clear_dma_ff, claim_dma_lock, release_dma_lock, setup_dma,
-+ enable_dma,disable_dma, set_dma_mode, set_dma_addr, set_dma_count,
-+ get_dma_residue): Declared.
-+
-+ * include/asm-sh/irq.h (DMTE0_IRQ, DMTE1_IRQ, DMTE2_IRQ, DMTE3_IRQ,
-+ DMAE_IRQ, DMA_IPR_ADDR, DMA_IPR_POS, DMA_PRIORITY): Added macros.
-+
-+2000-11-02 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Updated to 2.4.0-test10.
-+ * include/asm-sh/ptrace.h (PTRACE_SETOPTIONS): Added
-+ (PTRACE_O_TRACESYSGOOD): Added.
-+ * include/asm-sh/param.h (CLOCKS_PER_SEC): Added.
-+ * arch/sh/kernel/ptrace.c (sys_ptrace:PTRACE_DETACH): Set
-+ child->ptrace =0.
-+ (sys_ptrace): Add the case of PTRACE_SETOPTIONS.
-+ (syscall_trace): Handle ptrace flag 0x80.
-+
-+2000-10-27 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/mach_unknown.c (mv_ioremap_nocache): Removed.
-+ * arch/sh/kernel/mach_se.c (mv_ioremap_nocache): Removed.
-+ * arch/sh/kernel/io_unknown.c (ioremap_nocache): Removed.
-+ * arch/sh/kernel/io_generic.c (generic_ioremap_nocache): Removed.
-+
-+ * include/asm-sh/io_unknown.h (unknown_ioremap_nocache,
-+ __ioremap_nocache): Removed.
-+ * include/asm-sh/io_se.h (__ioremap_nocache): Removed.
-+ * include/asm-sh/io_od.h (__ioremap_nocache): Removed.
-+ * include/asm-sh/io_hd64465.h (__ioremap_nocache): Removed.
-+ * include/asm-sh/io_generic.h (generic_ioremap_nocache): Removed.
-+ * include/asm-sh/io.h (__ioremap_nocache): Removed.
-+ * include/asm-sh/io.h (ioremap_nocache): Removed.
-+ * include/asm-sh/machvec.h (struct sh_machine_vector): Removed
-+ ioremap_nocache.
-+
-+ * arch/sh/mm/fault.c (update_mmu_cache): SH-3 doesn't have PTEA.
-+
-+2000-10-27 Bryan Rittmeyer <bryan@ixiacom.com>
-+
-+ * arch/sh/kernel/setup.c (setup_arch): Declare mv_unknown.
-+ * arch/sh/kernel/sh_ksyms.c: Removed comment for memcmp.
-+
-+2000-10-27 David Woodhouse <dwmw2@infradead.org>
-+
-+ * arch/sh/kernel/time.c (get_cpu_mhz): Add .align 2 for speed
-+ detection.
-+
-+2000-10-27 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/fault.c (__do_page_fault): Removed (now it's call_dpf
-+ in entry.S).
-+ (__do_page_fault): Rename from __do_page_fault1.
-+
-+ * arch/sh/kernel/entry.S (call_dpf): New entry.
-+ (tlb_miss_load, tlb_miss_store, initial_page_write,
-+ tlb_protection_violation_load, tlb_protection_violation_store): Use
-+ call_dpf.
-+
-+ * include/asm-sh/pgalloc-2level.h (get_pmd_fast, free_pmd_fast,
-+ free_pmd_slow, pmd_alloc): Make them static inline.
-+
-+ * arch/sh/mm/ioremap.c (remap_area_pages): Use pgd_offset_k.
-+ (remap_area_pte): Use _PAGE_HW_SHARED.
-+ (remap_area_pages): Remove set_pgdir.
-+
-+ * include/asm-sh/pgalloc.h (set_pgdir): Removed.
-+ (get_pgd_slow, get_pgd_fast, free_pgd_fast, free_pgd_slow,
-+ get_pte_fast, free_pte_fast, free_pte_slow, pte_alloc_kernel,
-+ pte_alloc, pmd_free, flush_tlb_pgtables): Make them static inline.
-+ (get_pgd_slow, free_pgd_slow): Use 2KB PGD.
-+
-+2000-10-13 Greg Banks <gbanks@pocketpenguins.com>
-+
-+ * arch/sh/config.in: HD64465 PCMCIA support. These changes
-+ needed for the PCMCIA host bridge driver currently submitted
-+ to the PCMCIA maintainer.
-+ * arch/sh/kernel/io_hd64465.c: IO routines for HD64465.
-+ * arch/sh/kernel/mach_dmida.c: Added machine DMIDA.
-+ * arch/sh/kernel/Makefile: Added machine DMIDA. Added HD64465.
-+ Reorged how O_OBJS list is built.
-+ * arch/sh/kernel/setup_hd64465.c: Setup and IRQ handling for HD64465.
-+ * arch/sh/kernel/sh_ksyms.c: Exported various symbols to make
-+ PCMCIA modules work.
-+ * arch/sh/mm/fault.c: TLB miss handler sets TC/SA bits of
-+ PTEA according to bits in PTE.
-+ * include/asm-sh/hd64465.h: Register defines for HD64465.
-+ * include/asm-sh/io.h: Added machine DMIDA
-+ * include/asm-sh/io_hd64461.h: Function declaration.
-+ * include/asm-sh/io_hd64465.h: IO declarations for HD64465.
-+ * include/asm-sh/machvec.h: HD64465 support.
-+ * include/asm-sh/mmu_context.h: PTEA define.
-+ * include/asm-sh/pgtable.h: PAGE_KERNEL_PCC(slot, type) is a
-+ pgprot_t which can be used to setup SH7750 PCMCIA space mappings.
-+
-+2000-09-29 Bryan Rittmeyer <bryan@ixiacom.com>
-+
-+ * arch/sh/kernel/sh_ksyms.c (memcpy, memset, memmove, memcmp,
-+ flush_dcache_page): Added.
-+
-+2000-09-29 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/unistd.h (setup): Removed.
-+
-+2000-09-28 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/system.h (switch_to): Add T-flag to the clobber
-+ list of asm statements.
-+
-+2000-09-28 Jesper Skov <jskov@redhat.com>
-+
-+ * include/asm-sh/string.h: Add T-flag to the clobber list of asm
-+ statements.
-+ * include/asm-sh/delay.h: Same.
-+ * include/asm-sh/checksum.h: Same.
-+ * include/asm-sh/bitops.h: Same.
-+ * arch/sh/kernel/time.c: Same.
-+ * arch/sh/kernel/irq_imask.c: Same.
-+ * arch/sh/kernel/process.c: Same.
-+ * include/asm-sh/uaccess.h: Same. Plus clobber memory in
-+ copy_to_user and clear_user.
-+
-+2000-09-28 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/entry.S (sys_fcntl64): Added.
-+ * include/asm/unistd.h (__NR_fcntl64): Added.
-+
-+2000-09-27 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm/unistd.h (_syscall0, _syscall1, _syscall2, _syscall3,
-+ _syscall4, _syscall5): Don't put "$" prefix for register name.
-+ * include/asm-sh/system.h (switch_to): Likewise.
-+ * arch/sh/kernel/sh_bios.c (sh_bios_call): Likewise.
-+ * arch/sh/kernel/process.c (kernel_thread): Likewise.
-+ Use __sc0 and __sc3.
-+
-+ * arch/sh/lib/checksum.S (SRC, DST): Don't use variable arguments.
-+
-+ * drivers/char/sh-sci.c (sci_set_termios_cflag): Call init_pins
-+ AFTER setting baud.
-+
-+2000-09-26 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/system.h (smp_mb, smp_rmb, smp_wmb): Use CONFIG_SMP
-+ instead of __SMP__.
-+
-+2000-09-25 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/system.h (smp_mb, smp_rmb, smp_wmb): New macros.
-+ (__sti, __cli, (xchg_u32, xchg_u8): Make them static inline.
-+
-+ * include/asm-sh/bitops.h (set_bit, clear_bit, change_bit,
-+ test_and_set_bit, test_and_clear_bit, test_and_change_bit, test_bit,
-+ ffz, find_next_zero_bit, ext2_set_bit, ext2_clear_bit,
-+ ext2_test_bit, ext2_find_next_zero_bit): Make them static inline.
-+ (smp_mb__before_clear_bit, smp_mb__after_clear_bit): New macros.
-+
-+ * include/asm-sh/atomic.h (atomic_t): Use volatile int member
-+ regardless of CONFIG_SMP or not.
-+ (__atomic_fool_gcc): Removed.
-+ (atomic_add, atomic_sub, atomic_add_return, atomic_sub_return,
-+ atomic_clear_mask, atomic_set_mask): Make them static inline.
-+
-+2000-09-25 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Follow the change of test9-pre6.
-+ * include/asm-sh/resource.h (RLIMIT_LOCKS): Added.
-+ (INIT_RLIMITS): Added new entry for LOCKS.
-+
-+ * include/asm-sh/fcntl.h (F_INPROGRESS, LOCK_MAND, LOCK_READ,
-+ LOCK_WRITE, LOCK_RW, F_LINUX_SPECIFIC_BASE): Added.
-+
-+2000-09-18 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/pci.h (pcibios_set_master,
-+ pcibios_penalize_isa_irq, (pci_map_single, pci_unmap_single,
-+ pci_map_sg, pci_unmap_sg, pci_dma_sync_single, pci_dma_sync_sg):
-+ Make them static.
-+
-+2000-09-18 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/setup_cqreek.c: Remove mv_port_2addr.
-+ * include/asm/io_hd64461.h (__isa_port2addr, __ioremap, __iounmap):
-+ Added.
-+
-+2000-09-18 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Follow new cache handling scheme. Because now is the transition
-+ time (I think it's not fully changed to use "flush_dcache_page"),
-+ let's leave flush_page_to_ram.
-+
-+ * arch/sh/mm/cache.c (clear_user_page, copy_user_page): Implemented.
-+ (__flush_page_to_ram): New function.
-+ (flush_page_to_ram): Use __flush_page_to_ram.
-+
-+ * include/asm-sh/page.h (clear_user_page, copy_user_page): Define
-+ function for SH-4.
-+
-+ Revert the changes of 2000-09-09.
-+ * arch/sh/mm/cache.c (flush_cache_page): Reverted.
-+ * include/asm-sh/pgtable.h (flush_cache_page): Ditto.
-+
-+2000-09-18 YAEGASHI Takeshi <yaegashi@ma.kcom.ne.jp>
-+
-+ SCI error handling(frame/parity/overrun error, BREAK)
-+
-+ * include/asm-sh/irq.h: Add *_BRI_IRQ definitions.
-+
-+ * arch/sh/kernel/irq_ipr.c (init_IRQ): Add make_ipr_irq() calls for
-+ *_BRI_IRQ.
-+
-+ * drivers/char/sh-sci.h : Add BRI to irq table, new macros.
-+
-+ * drivers/char/sh-sci.h (sci_handle_errors, sci_handle_breaks,
-+ sci_br_interrupt): added.
-+ (sci_receive_chars): Add error handling for SCIF(checking SCxSR).
-+ (sci_er_interrupt): Add error handling for SCI(sci_handle_errors).
-+ (sci_init): Add BRI initialization.
-+
-+2000-09-09 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/pgtable.h (flush_cache_page): Do nothing.
-+ * arch/sh/mm/cache.c (flush_cache_page): Removed.
-+
-+2000-09-08 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/irq_imask.c (startup_imask_irq,
-+ shutdown_imask_irq): Don't do anything. When used with
-+ proble_irq, interrupt may be masked.
-+ NOTE: For IMASK, default is "all enabled"
-+
-+ * arch/sh/kernel/irq_ipr.c (make_ipr_irq): Revert the changes on
-+ 09-05. It's done with disable_irq_nosync.
-+
-+2000-09-06 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Follow the changes of 2.4.0-test8-pre5.
-+
-+ * arch/sh/kernel/process.c (copy_thread): Add "unused" argument.
-+ It's "stack_top" from do_fork.
-+ (sys_fork, sys_clone, sys_vfork): Add last argument 0.
-+
-+2000-09-05 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/irq_ipr.c (make_ipr_irq): Initialize status, action
-+ and depth field.
-+
-+2000-09-04 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * drivers/char/sh-sci.h (SCIF_ORER): Added.
-+ * drivers/char/sh-sci.c (sci_er_interrupt): Handle overrun error
-+ for SH-4 SCIF.
-+ (sci_set_baud): Set SCSMR bit0,1(clock select) every time.
-+
-+2000-09-04 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Follow the changes of 2.4.0-test8-pre3.
-+
-+ * arch/sh/kernel/signal.c (do_signal): Use pending.signal, instead
-+ of signal (taskstruct structure chane for siganal).
-+
-+ * include/asm-sh/uaccess.h (put_user_ret, get_user_ret,
-+ __put_user_ret, __get_user_ret, copy_to_user_ret,
-+ __copy_to_user_ret, copy_from_user_ret, __copy_from_user_ret):
-+ Removed.
-+
-+2000-09-04 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/cache.c (cache_init): Re-initialize the cache system,
-+ even if it's already initialized.
-+ (detect_cpu_and_cache_system): Be conservative.
-+
-+2000-09-03 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/pgtable.h (_PAGE_PRESENT): Use hardware V-bit.
-+ (_PAGE_U0_SHARED): New macro to implement user space shared page.
-+ (_PAGE_HW_SHARED): We need this hardware setting.
-+ (_PAGE_FLAGS_HARDWARE_DEFAULT): Removed.
-+ (_PAGE_FLAGS_HARDWARE_MASK): Include SZ-bit, SH-bit and WT-bit.
-+ (_PAGE_FLAGS_HARD): Hardware PTE flags setting (for SZ=4KB).
-+ (_PAGE_SHARED): Use U0_SHARED for SH-4, HW_SHARED for SH-3, because
-+ there's alias issue on SH-4.
-+ (PAGE_NONE, PAGE_SHARED, PAGE_COPY, PAGE_READONLY, PAGE_KERNEL,
-+ PAGE_KERNEL_RO): Includd _PAGE_FLAGS_HARD.
-+
-+ (PAGE_KERNEL, PAGE_KERNEL_RO): Include _PAGE_HW_SHARED.
-+
-+ (_PAGE_ACCESSED, _PAGE_PROTNONE): Layout changed.
-+ (SWP_TYPE, SWP_OFFSET, SWP_ENTRY): Likewise.
-+
-+ * arch/sh/mm/fault.c (update_mmu_cache): Don't OR the hardware value
-+ to PTE. It's now already included.
-+
-+2000-08-31 Jesper Skov <jskov@redhat.com>
-+
-+ * arch/sh/mm/fault.c (__do_page_fault): Fixed bug that caused
-+ infinite cycle of faults when writing to a page for the first time.
-+
-+2000-08-30 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/head.S: Move the alignment expression before .text
-+ directive.
-+
-+2000-08-28 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.0-test7.
-+
-+2000-08-25 Jesper Skov <jskov@redhat.com>
-+
-+ * arch/sh/vmlinux.lds.S: Discard .exitcalls from modules.
-+
-+ * Documentation/Configure.help: Fixed CPU selection description.
-+
-+2000-08-24 Bryan Rittmeyer <bryan@ixiacom.com>
-+
-+ * drivers/char/sh-sci.h (BPS_57600): Added.
-+ * drivers/char/sh-sci.c (sci_set_baud): Support 57600 baud.
-+
-+2000-08-24 Toshinobu Sugioka <sugioka@itonet.co.jp>
-+
-+ * net/ipv4/ip_sockglue.c: Include
-+ <linux/netfilter_ipv4/ipchains_core.h>.
-+
-+2000-08-24 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * net/ipv4/ip_sockglue.c (ip_setsockopt): Bug fix. Ipchains didn't
-+ work. When IP_FW_XXX command is invoked, we don't need to get the
-+ VAL with get_user, it might got EFAULT when the optval is not
-+ aligned as 4-byte. (Ipchains uses string as OPTVAL).
-+
-+2000-08-23 Greg Banks <gbanks@pocketpenguins.com>
-+
-+ (These entries were written by gniibe.)
-+ * arch/sh/kernel/entry.S (system_call): Remove setting of return
-+ value.
-+
-+ * arch/sh/kernel/sh_ksyms.c (strlen): Exported.
-+ (DECLARE_EXPORT): New macro.
-+ (__udivsi3_i4, __sdivsi3_i4, __movstr_i4_even, __movstr_i4_odd,
-+ __ashrdi3, __ashldi3): Exported.
-+
-+2000-08-23 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Follow the change of 2.4.0-test7-pre7.
-+ * include/asm-sh/fcntl.h (F_GETLK64, F_SETLK64, F_SETLKW64): New
-+ macros.
-+ (flock64): Added.
-+
-+ Updated to 2.4.0-test7-pre7.
-+ * include/asm-sh/unistd.h (__NR_getdents64): Added.
-+ * include/asm-sh/mmu_context.h (init_new_context): Return 0.
-+
-+ * arch/sh/kernel/mach_se.c: Include <linux/config.h>.
-+ * arch/sh/kernel/mach_unknown.c: Likewise.
-+ * arch/sh/kernel/setup_cqreek.c: Likewise.
-+ * include/asm-sh/dma.h: Likewise.
-+ * include/asm-sh/machvec_init.h: Likewise.
-+
-+ * arch/sh/kernel/entry.S (sys_getdents64): Added.
-+
-+ * arch/sh/kernel/cf-enabler.c: Don't include <linux/config.h>.
-+ * arch/sh/kernel/io.c: Ditto.
-+ * arch/sh/kernel/io_generic.c: Likewise.
-+
-+2000-08-20 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/fault.c (update_mmu_cache): Bug fix. This routine
-+ is called by ptrace when PTE does not have information.
-+
-+2000-08-19 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/setup_cqreek.c (setup_cqreek): Work around.
-+ Let it not sleep.
-+
-+ * arch/sh/kernel/setup_cqreek.c (struct cqreek_irq_data): New
-+ structure.
-+ (disable_cqreek_irq, enable_cqreek_irq, mask_and_ack_cqreek,
-+ init_cqreek_IRQ): Generalized to handle both cases of IDE and ISA.
-+
-+ * mm/vmscan.c (try_to_swap_out): We need to call flush_page_to_ram.
-+
-+ * arch/sh/mm/cache.c (flush_page_to_ram): Semantics change.
-+ We invalidate the cache line too.
-+ (flush_cache_page): No need to do any for physically tagged cache.
-+
-+ * mm/memory.c (break_cow, do_anonymous_page, do_no_page): Revert the
-+ changes of 2000-08-17. NOTE: In fact, we need to flush I-cache at
-+ break_cow and do_anonymous_page, but it's buggy software if it's
-+ goes fetch the instruction from that page...
-+ (do_swap_page): flush_page_to_ram instead of flush_dcache_page.
-+
-+2000-08-17 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * mm/memory.c (do_anonymous_page): We need to flush I-cache and
-+ D-cache here, as it's newly allocated page.
-+ (do_no_page): We need to flush D-cache.
-+ (do_swap_page): Flush D-cache & I-cache here. There're cases
-+ where read_swap_cache is called asynchronously and pages are
-+ cached.
-+
-+ * Revert the change for fs/buffer.c (end_buffer_io_async). It's
-+ more than needed. We only need to flush when kernel WRITES to the
-+ page (from I/O), not READ (to I/O).
-+
-+ * Revert the changes for mm/memory.c (do_wp_page: case 1): We have
-+ valid PTE here (it's read-only but works).
-+
-+2000-08-16 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * fs/buffer.c (end_buffer_io_async): Flush D-cache. When kernel
-+ writes to the page, we should flush USER cache so that USER doesn't
-+ read stale data.
-+
-+ * mm/memory.c (do_swap_page): Bug fix. We need to flush D-cache.
-+ For newly allocated page, D-cache may contain stale USER data.
-+ (break_cow): Likewise. Note that flush_cache_page is not good for
-+ physically tagged architecture. (For old implementation, flushing
-+ routine was called before setting PTE.)
-+ (do_wp_page: case 1): Likewise.
-+
-+2000-08-13 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * mm/memory.c (break_cow): Bug fix. We need to flush I-cache.
-+ For newly allocated page, I-cache may contain stale USER data.
-+
-+ * arch/sh/mm/init.c (mem_init): Flush empty_zero_page.
-+
-+2000-08-11 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/cache.c (check_cache_page): Renamed from
-+ check_dcache_page.
-+
-+2000-08-10 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.0-test6.
-+
-+ * arch/sh/mm/cache.c (check_dcache_page): New debug function.
-+ * arch/sh/kernel/traps.c (dump_stack): Only output call trace.
-+
-+ Cosmetic changes for TLB handling.
-+ * arch/sh/mm/fault.c (__flush_tlb_page): First argument is ASID now
-+ (instead of MM).
-+ (__flush_tlb_page): Don't take MM as argument.
-+ (handle_vmalloc_fault): Removed.
-+ (do_page_fault): Don't call handle_vmalloc_fault.
-+ (__do_page_fault1, __do_page_fault): New functions.
-+ (update_mmu_cache): Use pte_shared.
-+ (flush_tlb_page): Handle the case where MM != CURRENT->MM.
-+ (flush_tlb_range): Likewise.
-+
-+ * include/asm-sh/pgtable.h (pte_shared): New inline function.
-+ (_PAGE_SHARED): New macro.
-+ (PAGE_SHARED): Added _PAGE_SHARED.
-+
-+ * arch/sh/kernel/entry.S (tlb_miss_load, tlb_miss_store,
-+ initial_page_write, tlb_protection_violation_load,
-+ tlb_protection_violation_store): Call __do_page_fault.
-+ Don't call STI().
-+
-+ Follow the change of 2.4.0-test6-pre10.
-+ * include/asm-sh/page.h (virt_to_page, VALID_PAGE): New macro.
-+ (MAP_NR): Removed.
-+
-+2000-08-09 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.0-test6-pre9.
-+
-+ * arch/sh/mm/cache.c (flush_cache_page): Call flush_dcache_page.
-+ (flush_cache_range): Call flush_cache_all.
-+ (flush_dcache_page): New function. Flush D-cache for the page.
-+
-+ * arch/sh/mm/fault.c (update_mmu_cache): Use flush_dcache_page.
-+
-+ * arch/sh/mm/cache.c (flush_icache_page, flush_page_to_ram): Revert
-+ the changes on 08-05.
-+
-+ * include/asm-sh/pgtable.h (flush_dcache_page): Added declaration
-+ for SH-4.
-+
-+ Import changes from 2.4.0-test6-pre8.
-+ * arch/sh/mm/init.c: Use virt_to_page to get page.
-+ * include/asm-sh/processor.h: Likewise.
-+ * include/asm-sh/pgtable.h (ZERO_PAGE): Likewise.
-+ (pte_pagenr): Removed.
-+
-+2000-08-09 Toshinobu Sugioka <sugioka@itonet.co.jp>.
-+
-+ * arch/sh/kernel/signal.c (save_sigcontext_fpu): Bug fix.
-+ We can't use immediate value for __copy_to_user.
-+
-+2000-08-08 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Import changes from 2.4.0-test6-pre7. (by Keith Owens)
-+ * include/asm-sh/hardirq.h (irq_cpustat_t, in_interrupt, in_irq,
-+ hardirq_trylock, irq_enter, irq_exit): Clean them up.
-+ * include/asm-sh/softirq.h (cpu_bh_disable, cpu_bh_enable,
-+ in_softirq): Likewise.
-+ * arch/sh/kernel/irq.c: Likewise.
-+ * arch/sh/kernel/entry.S (ret_from_syscall): Use __irq_stat.
-+
-+ Import changes from 2.4.0-test6-pre7. (Perhaps, by David S. Miller)
-+ * include/asm-sh/pgtable.h (flush_dcache_page): Added.
-+ (page_address): Remove debug functionality.
-+ * include/asm-sh/system.h: Remove set_rmb.
-+
-+2000-08-05 Jesper Skov <jskov@redhat.com>
-+
-+ Changes to use SCI/F for PPP.
-+ * drivers/char/sh-sci.c (sci_sched_event, do_softint): Added.
-+ (sci_transmit_chars): Call sci_sched_event.
-+ (SCI_EVENT_WRITE_WAKEUP): New definition.
-+ (sci_port): Added members 'tqueue' and 'event'.
-+
-+ Cosmetic changes.
-+ * include/asm-sh/irq.h (SCIF_ERI_IRQ and others): Add condition for
-+ CONFIG_CPU_SUBTYPE_SH7707.
-+ * arch/sh/kernel/semaphore.c (semaphore_wake_lock): Added.
-+ * arch/sh/config.in (CONFIG_GDB_STUB_VBR): We need this regardless
-+ of CONFIG_DEBUG_KERNEL_WITH_GDB_STUB.
-+
-+2000-08-05 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/cache.c (flush_page_to_ram): Use save_and_cli.
-+ (flush_icache_page, flush_icache_range): Ditto.
-+
-+2000-08-04 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/cache.c (icache_purge_range, flush_cache_range):
-+ Use of A-bit was wrong. We need better way to handle this...
-+
-+ * arch/sh/mm/fault.c (update_mmu_cache): Bug fix. Don't deref
-+ vma, when it's NULL.
-+ (handle_vmalloc_fault): Work around. Don't call __flush_tlb_page
-+ when mm==NULL.
-+
-+2000-08-04 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Machvec support.
-+ * arch/sh/kernel/setup.c: Remove WEAK references.
-+ (get_mv_byname): Use .macvec.init. section.
-+ * include/asm-sh/machvec_init.h (__initmv): Use
-+ .macvec.init. section.
-+ * arch/sh/vmlinux.lds.S (.machvec.init): Added new section for
-+ Machine Vector.
-+
-+ CqREEK support.
-+ * arch/sh/config.in: Added CONFIG_SH_CQREEK.
-+ * arch/sh/kernel/Makefile (O_OBJS): Added CqREEK Bridge support.
-+ * arch/sh/kernel/setup_cqreek.c: New file.
-+
-+2000-08-02 Stuart Menefy <stuart.menefy@st.com>
-+
-+ (These entries were written by gniibe.)
-+ * arch/sh/kernel/Makefile: Add io_generic.o for UNKNOWN.
-+
-+ * arch/sh/kernel/io_generic.c (generic_io_base): New variable.
-+ (generic_inw_p, generic_inl_p, generic_outw_p, generic_outl_p):
-+ New functions.
-+ * include/asm-sh/io_generic.h: Likewise.
-+
-+ * arch/sh/kernel/io_unknown.c: Remove unused inclusions.
-+ * arch/sh/kernel/setup.c (parse_cmdline): Added I/O base and
-+ MMIO enable feature.
-+
-+ * include/asm-sh/machvec_init.h: UNKNOWN could use GENERIC feature.
-+
-+2000-08-01 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/overdrive/io.c: Include <asm/processor.h>.
-+
-+ * arch/sh/kernel/irq_ipr.c (init_IRQ): Remove the variable 'i'.
-+ * arch/sh/kernel/setup_se.c (init_se_IRQ): Likewise.
-+
-+ * include/asm-sh/machvec.h (struct sh_machine_vector): Bit field
-+ int should be unsigned.
-+
-+ * include/asm-sh/ide.h (ide_default_irq_hp600,
-+ ide_default_io_base_hp600): Make them static. No reason for
-+ "static", matter of taste, but all other functions in this
-+ file use "static".
-+
-+ * include/asm-sh/keyboard.h: Added "extern" qualifier. Removed
-+ __init for declaration. Remove <linux/config.h>.
-+
-+ * include/asm-sh/irq.h (irq_demux, hd64461_irq_demux): Make them
-+ extern.
-+
-+ * include/asm-sh/{io_hd64461.h,io_od.h,io_generic.h,io_se.h,
-+ io_unknown.h}: Added "extern" qualifier.
-+
-+ * arch/sh/kernel/mach_hp600.c (hd64461_irq_demux): Removed.
-+ Include asm/irq.h.
-+
-+ * arch/sh/defconfig: Updated.
-+
-+2000-08-01 Jesper Skov <jskov@redhat.com>
-+
-+ * arch/sh/config.in: Add SH7707 support.
-+ * arch/sh/defconfig: Ditto.
-+ * arch/sh/kernel/entry.S: Ditto.
-+ * arch/sh/kernel/irq_ipr.c: Ditto.
-+ * drivers/char/sh-sci.c: Ditto.
-+ * drivers/char/sh-sci.h: Ditto.
-+ * include/asm-sh/bugs.h: Ditto.
-+ * include/asm-sh/irq.h: Ditto.
-+ * include/asm-sh/processor.h: Ditto.
-+
-+2000-08-01 YAEGASHI Takeshi <yaegashi@ma.kcom.ne.jp>
-+
-+ * arch/sh/config.in, arch/sh/kernel/entry.S,
-+ Documentation/Concigure.help: Add CONFIG_GDB_STUB_VBR.
-+
-+ * include/asm-sh/delay.h: Fix __udelay_val.
-+
-+ * drivers/video/hitfb.c (hitfb_encode_fix): Add break;
-+
-+ * drivers/char/hp600_keyb.c, drivers/char/scan_keyb.c: Fix key scan
-+ tables and routines.
-+
-+2000-08-01 Stuart Menefy <stuart.menefy@st.com>
-+
-+ (These entries were written by gniibe.)
-+ * Documentation/sh/new-machine.txt, arch/sh/kernel/io.c,
-+ arch/sh/kernel/io_unknown.c, arch/sh/kernel/led_se.c,
-+ arch/sh/kernel/mach_hp600.c, arch/sh/kernel/mach_se.c,
-+ arch/sh/kernel/mach_unknown.c, arch/sh/lib/strcasecmp.c,
-+ include/asm-sh/io_generic.h, include/asm-sh/io_hp600.h,
-+ include/asm-sh/io_od.h, include/asm-sh/io_se.h,
-+ include/asm-sh/io_unknown.h, include/asm-sh/machvec.h,
-+ include/asm-sh/machvec_init.h: New files.
-+
-+ Overdrive support.
-+ * arch/sh/overdrive/Makefile, arch/sh/overdrive/fpga.c,
-+ arch/sh/overdrive/fpga.h, arch/sh/overdrive/galileo.c,
-+ arch/sh/overdrive/gt64111.h, arch/sh/overdrive/io.c,
-+ arch/sh/overdrive/irq.c, arch/sh/overdrive/led.c,
-+ arch/sh/overdrive/mach.c, arch/sh/overdrive/overdrive.h,
-+ arch/sh/overdrive/overdrive.ttf, arch/sh/overdrive/pcidma.c
-+ arch/sh/overdrive/setup.c: New files
-+
-+ arch/sh/Makefile: Added support for OverDrive.
-+
-+ arch/sh/config.in: Remove CONFIG_IOPORT_START.
-+ Added CONFIG_HEARTBEAT.
-+
-+ arch/sh/kernel/Makefile: Set O_OBJS for each machines.
-+
-+ arch/sh/kernel/cf-enabler.c (cf_init): Make it static.
-+ arch/sh/kernel/io_generic.c: Make the functions generic.
-+ arch/sh/kernel/io_hd64461.c: Make the functions specific.
-+ arch/sh/kernel/io_se.c: Likewise.
-+
-+ arch/sh/kernel/irq.c (do_IRQ): Call irq_demux.
-+
-+ arch/sh/kernel/irq_imask.c (disable_imask_irq): Make it static.
-+ arch/sh/kernel/irq_ipr.c: (disable_ipr_irq) Likewise.
-+
-+ arch/sh/kernel/pci-sh.c (pcibios_init, pcibios_setup): New functions.
-+
-+ arch/sh/kernel/setup.c (sh_mv): New variable.
-+ (parse_cmdline): Support machine selection.
-+
-+ arch/sh/kernel/setup_hd64461.c (hd64461_irq_demux): New function.
-+
-+ arch/sh/kernel/setup_se.c (init_se_IRQ): Use new make_ipr_irq.
-+
-+ arch/sh/kernel/time.c: Support CONFIG_HEARTBEAT. Check MACH_HP600
-+ at runtime.
-+
-+ arch/sh/lib/Makefile: Don't add -D__ASSEMBLY__. Add strcasecmp.o.
-+
-+ arch/sh/lib/checksum.S: Alignment fix.
-+
-+ arch/sh/mm/Makefile: Don't include ioremap.o.
-+
-+ include/asm-sh/dma.h: Added isa_dma_bridge_buggy.
-+
-+ include/asm-sh/hd64461.h: Added CONFIG_HD64461_IRQ.
-+ include/asm-sh/ide.h: Added _hp600 functions.
-+
-+ include/asm-sh/io.h: Introduce Alpha convention.
-+
-+ include/asm-sh/irq.h: Added ACTUAL_NR_IRQS.
-+
-+ include/asm-sh/keyboard.h: Use MACH_HP600.
-+
-+ include/asm-sh/pci.h: Updated.
-+
-+ drivers/char/sh-sci.c, drivers/char/sh-sci.h: Counter support.
-+ Don't set IPR in the driver.
-+
-+ drivers/net/Config.in: Remove condition CONFIG_SH_SOLUTION_ENGINE
-+ for CONFIG_STNIC.
-+
-+ drivers/net/stnic.c: Check MACH_SE at runtime.
-+
-+ drivers/pci/pci.ids: Add GT-64111.
-+ include/linux/pci_ids.h: Likewise.
-+
-+2000-07-31 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/bugs.h (check_bugs): Distinguish CPU type.
-+
-+2000-07-30 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Updated to 2.4.0-test5.
-+
-+2000-07-27 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Updated to 2.4.0-test5-pre6.
-+
-+ * include/asm-sh/sh_bios.h: Don't include
-+ <config/sh/standard/bios.h>.
-+
-+2000-07-26 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Updated to 2.4.0-test5-pre5.
-+
-+ * include/asm-sh/mmu_context.h (switch_mm): Setting the bit only
-+ when prev != next.
-+
-+ * arch/sh/kernel/sh_bios.c: Include <linux/config.h> instead of
-+ <config/sh/standard/bios.h>.
-+
-+ * arch/sh/kernel/setup.c: We (already) include <linux/console.h>,
-+ don't need including for CONFIG_SH_EARLY_PRINTK again.
-+
-+ * include/asm-sh/checksum.h: Include <linux/config.h>.
-+
-+ * include/asm-sh/serial.h: Not include <linux/config.h>.
-+
-+ * mm/mmap.c (exit_mmap): Flushing TLB is not needed.
-+
-+2000-07-24 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Updated to 2.4.0-test5-pre4.
-+
-+ * drivers/char/sh-sci.c: IRDA is for SH7709 only.
-+
-+2000-07-22 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/entry.S (debug_trap, debug_kernel):
-+ #ifdef/#endif change, this is needed for SH BIOS call too.
-+
-+ * arch/sh/boot/compressed/head.S (init_sr): Set Block=0,
-+ so that we can use BIOS call.
-+
-+2000-07-21 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Documentation/Configure.help (CONFIG_CPU_SUBTYPE_SH7708,
-+ CONFIG_CF_ENABLER, CONFIG_SH_SCI): Updated.
-+
-+ (CONFIG_SH_SCIF): Removed.
-+
-+ * arch/sh/defconfig (CONFIG_SH_EARLY_PRINTK): Updated.
-+
-+ * drivers/char/tty_io.c (console_init): Don't call
-+ sh_console_unregister.
-+
-+ * drivers/char/sh-sci.c (sci_console_init): Call
-+ sh_console_unregister here, instead.
-+
-+2000-07-20 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Follow the changes of 2.4.0-test5-pre3.
-+ * arch/sh/defconfig: Updated.
-+
-+2000-07-20 YAEGASHI Takeshi <yaegashi@ma.kcom.ne.jp>
-+
-+ * sh-sci.h (PORT_IRDA, SH3_IRDA_IRQS): New definition.
-+ (SCI_INIT, SCI_NPORTS): Fixed for CONFIG_CPU_SUBTYPE_SH7708.
-+
-+ * sh-sci.c (sci_init_pins_irda): New Function.
-+
-+2000-07-19 Hiroshi Ito <ito@mlb.co.jp>
-+
-+ * arch/sh/mm/cache.c (detect_cpu_and_cache_system): Add __init
-+ attribute.
-+ * arch/sh/mm/cache.c (cache_system_info) Initialize it.
-+
-+2000-07-18 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/fault.c (update_mmu_cache): Bug fix. Avoid aliases
-+ for shared page.
-+ Reported by Stuart Menefy <stuart.menefy@st.com> on June 23th.
-+
-+ * arch/sh/mm/fault.c (__flush_tlb_phys): New function. Flush
-+ TLB which corresponds the PHYS physical page.
-+
-+ * include/asm-sh/mmu_context.h (MMU_ITLB_DATA_ARRAY,
-+ MMU_UTLB_DATA_ARRAY, MMU_UTLB_ENTRIES, MMU_U_ENTRY_SHIFT,
-+ MMU_UTLB_VALID, MMU_ITLB_ENTRIES, MMU_U_ENTRY_SHIFT,
-+ MMU_ITLB_VALID): New definition.
-+
-+2000-07-18 Stuart Menefy <stuart.menefy@st.com>
-+
-+ * mm/mmap.c (exit_mmap): Bug fix. Added flush_cache_range and
-+ flush_tlb_range.
-+
-+ * arch/sh/kernel/entry.S (restore_all): Bug fix. Correct the
-+ handling IMASK-bits.
-+
-+2000-07-13 Yutarou Ebihara <ebiharaml@si-linux.com>
-+
-+ * arch/sh/kernel/io_generic.c (insw, insl, outsw, outsl): Work
-+ around implemented.
-+
-+2000-07-11 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/boot/compressed/Makefile (ZIMAGE_OFFSET): Add more
-+ 64KB for the use of program loader which loads the image from
-+ second storage.
-+
-+ Follow the changes of test3-pre9.
-+ * arch/sh/kernel/time.c (do_settimeofday): Updated.
-+ (do_gettimeofday): Use wall_jiffies.
-+
-+ * arch/sh/kernel/process.c (cpu_idle): Follow the change of
-+ 2.4.0-test3-pre9.
-+
-+ * include/asm-sh/timex.h (cycles_t): Type changed to long long.
-+
-+ * arch/sh/kernel/entry.S (tsk_ptrace): Change the offset value,
-+ following the change of linux/sched.h:(struct task_struct).
-+
-+2000-07-08 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/sh_ksyms.c (drive_info): Removed.
-+ It's x86 specific code.
-+
-+ Follow the change of test3-pre5.
-+ * include/asm-sh/bitops.h (minix_test_and_set_bit): Added.
-+ * arch/sh/kernel/process.c (sys_execve): Remove lock_kernel and
-+ unlock_kernel.
-+ * arch/sh/kernel/signal.c (do_signal): Likewise.
-+
-+2000-07-07 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/bitops.h (set_bit, clear_bit, change_bit,
-+ test_and_set_bit, test_and_clear_bit, test_and_change_bit,
-+ test_bit, ext2_set_bit, ext2_clear_bit, ext2_test_bit):
-+ Add qualifier `volatile'.
-+
-+2000-07-06 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Follow the change of test3-pre4.
-+ * arch/sh/kernel/sys_sh.c (do_mmap2): Remove
-+ lock_kernel/unlock_kernel.
-+ (sys_pipe): Likewise.
-+
-+2000-07-04 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Use CONFIG_CPU_LITTLE_ENDIAN (it's used for MIPS).
-+ * Documentation/Configure.help: Merge the help message.
-+ * arch/sh/Makefile: Use CONFIG_CPU_LITTLE_ENDIAN, instead of
-+ CONFIG_LITTLE_ENDIAN.
-+ * arch/sh/defconfig: Likewise.
-+ * arch/sh/vmlinux.lds.S: Likewise.
-+
-+ Follow the chane of test3-pre2.
-+ * arch/sh/kernel/setup.c (rom_resources): Removed.
-+
-+ * include/asm-sh/softirq.h (in_softirq, cpu_bh_disable,
-+ cpu_bh_enable): Use __local_bh_count and __local_irq_count.
-+
-+ * include/asm-sh/hardirq.h (local_irq_count, local_bh_count):
-+ Define Macros.
-+
-+ * arch/sh/kernel/sh_ksyms.c (local_bh_count, local_irq_count):
-+ Removed.
-+
-+ * arch/sh/kernel/irq.c (__local_bh_count): Renamed from
-+ local_bh_count.
-+ (__local_irq_count): Renamed from local_irq_count.
-+
-+2000-06-27 Yutarou Ebihara <ebiharaml@si-linux.com>
-+
-+ * arch/sh/kernel/cf-enabler.c (cf_init): Use ctrl_outw instead
-+ of outw.
-+
-+2000-06-25 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Follow the change of 2.4.0-test2.
-+ * arch/sh/kernel/time.c: Include <linux/config.h>.
-+ * include/asm-sh/keyboard.h: Likewise.
-+ * arch/sh/defconfig: Updated.
-+
-+2000-06-22 Stuart Menefy <stuart.menefy@st.com>
-+
-+ * driver/char/{sh-sci.c,sh-sci.h}, include/asm-sh/io.h: Changes to
-+ support multiple SCI/SCIF ports concurrently. NOTE: new major device
-+ number for on-chip serial ports.
-+
-+ * drivers/char/{Makefile,tty_io.c}, include/asm-sh/serial.h,
-+ arch/sh/config.in, arch/sh/kernel/serup_se.c: Add support for 16550
-+ compatible UARTS.
-+
-+2000-06-18 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/boot/compressed/misc.c (puts): Don't call put_string.
-+
-+ * arch/sh/Makefile (tool_prefix): Renamed from tool-prefix.
-+
-+ * include/asm/checksum.h (csum_ipv6_magic): Define only when
-+ CONFIG_IPV6 is enabled.
-+
-+ Follow the change of 2.4.0-test1-ac20.
-+ * arch/sh/kernel/setup.c (memparse): Removed.
-+
-+2000-06-17 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/defconfig: Updated.
-+
-+ Follow the change of 2.4.0-test1-ac19.
-+ * arch/sh/kernel/entry.S (tsk_ptrace): Use ptrace field and
-+ PT_TRACESYS.
-+ * arch/sh/kernel/ptrace.c (sys_ptrace, syscall_trace): Likewise.
-+ * arch/sh/kernel/signal.c (do_signal): Likewise.
-+ * arch/sh/kernel/process.c (sys_execve): Likewise.
-+
-+2000-06-13 Stuart Menefy <stuart.menefy@st.com>
-+
-+ * include/asm-sh/uaccess.h: Fixed __copy_user to return the number
-+ of bytes not copied rather than EFAULT when an error occurs.
-+
-+ * arch/sh/config.in, arch/sh/kernel/Makefile,
-+ arch/sh/kernel/setup_od.c:
-+ Added STMicroelectronics Overdrive support.
-+
-+ * arch/sh/kernel/setup.c, arch/sh/kernel/time.c,
-+ drivers/char/sh-sci.h, include/asm-sh/processor.h:
-+ Added recording of the various clock frequencies, and use the
-+ module clock frequency when setting the serial port baud rate.
-+
-+ * drivers/char/sh-sci.c: Modifications to set the baud rate
-+ when used as the console.
-+
-+2000-06-11 YAEGASHI Takeshi <yaegashi@ma.kcom.ne.jp>
-+
-+ * include/asm-sh/linux_logo.h: Needed for the frame buffer console.
-+ Would anyone design and contribute our logo? :->
-+
-+ * net/ipv4/ipconfig.c: Remove inclusion of <asm/segment.h>.
-+
-+ * drivers/char/Makefile, include/asm-sh/keyboard.h,
-+ drivers/char/scan_keyb.c, drivers/char/scan_keyb.h,
-+ drivers/char/hp600_keyb.c: Add generic scan keyboard driver and
-+ HP690 scan code table.
-+
-+ * arch/sh/kernel/Makefile, arch/sh/kernel/irq.c,
-+ arch/sh/kernel/io_hd64461.c, arch/sh/kernel/setup_hd64461.c,
-+ include/asm-sh/hd64461.h,: Add support for HD64461 companion chip.
-+
-+ * drivers/video/Config.in, drivers/video/Makefile,
-+ drivers/video/fbmem.c, drivers/video/hitfb.c: Add support for
-+ HD64461 frame buffer.
-+
-+ * drivers/char/vt.c: Add !defined(__sh__) to the #if conditionals to
-+ avoid sys_ioperm().
-+
-+ * arch/sh/kernel/time.c, drivers/char/sh-sci.h,
-+ include/asm-sh/ide.h: ad hoc work around for HP690...
-+
-+ * arch/sh/config.in: introduce new configs: CONFIG_SH_HP600,
-+ CONFIG_HD64461, and so on.
-+
-+ * arch/sh/boot/compressed/Makefile: my kernel is now bigger than
-+ 1MB...
-+
-+2000-06-09 Tadashi Kadowaki <kadowaki@white.plala.or.jp>
-+
-+ * arch/sh/Makefile (CFLAGS, AFLAGS, LDFLAGS): Support big endian.
-+
-+2000-06-08 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/ptrace.c (sys_ptrace): Bug fix. Change the
-+ last argument of access_process_vm.
-+
-+ (ubc_set_tracing): Handle SH7709's UBC. I don't know it's right.
-+ I see SH7729 manual.
-+
-+2000-06-08 YAEGASHI Takeshi <yaegashi@ma.kcom.ne.jp>
-+
-+ * include/asm-sh/pgtable.h (mk_pte_phys): Don't add + __MEMORY_START.
-+ 2000-05-18 change is wrong.
-+
-+2000-06-07 Toshiharu Nozawa <nozawat@hitachi-ul.co.jp>
-+
-+ Compact Flash Support for SolutionEngine.
-+ * arch/sh/kernel/cf-enabler.c (cf_init): Implemented for
-+ SolutionEngine.
-+
-+ * include/asm-sh/hitachi_se.h (PA_MRSHPC_*, MRSHPC_*): Added.
-+
-+ * arch/sh/config.in: SolutionEngine may use enabler.
-+
-+2000-06-02 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/entry.S (Throughout): Use ".align 2" instead
-+ of ".balign 4".
-+ (debug_kernel): Renamed from "debug".
-+ (debug_trap): Implemented.
-+ (system_call): Call debug_trap.
-+
-+ * arch/sh/kernel/process.c (break_point_trap_software): New
-+ function.
-+ (break_point_trap): Define arguments.
-+
-+ * arch/sh/kernel/entry.S (system_call): Push/Pop registers
-+ against syscall_trace, those may be clobbered.
-+
-+2000-06-01 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * net/sunrpc/clnt.c, fs/nfs/read.c, fs/nfs/proc.c,
-+ fs/nfs/nfs3proc.c, fs/nfs/file.c, fs/nfs/dir.c: Remove inclusion
-+ of <asm/segment.h>, as Trond agreed to do that.
-+
-+ * drivers/net/stnic.c (stnic_reset): Add last "\n".
-+ (stnic_block_output): Added magic curses from oaknet.c.
-+
-+2000-05-25 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Follow the change of pre10-2.
-+ * include/asm-sh/ide.h (ide_init_hwif_ports): set IDE_IRQ_OFFSET=0.
-+
-+2000-05-22 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/Makefile (OBJCOPY): Added -R .stab and -R .stabstr too.
-+
-+ * arch/sh/vmlinux.lds.S: Fill nop (=0x0009) for .text section.
-+ (.empty_zero_page): Make it independent section.
-+
-+ * arch/sh/boot/compressed/Makefile: Remove setting of CFLAGS here.
-+ (ZIMAGE_OFFSET): Calculate the value by shell.
-+ (piggy.o: OBJCOPY): Added -R .empty_zero_page.
-+
-+ * arch/sh/boot/compressed/head.S (kernel_start_addr): Use _text.
-+ Remove __ASSEMBLY__ for newer kernel.
-+
-+ * arch/sh/boot/compressed/misc.c (decompress_kernel): Return type
-+ changed to void (was: int).
-+ (memcpy): Let it return value.
-+ (memset): Ditto.
-+ (HEAP_SIZE): Make it big enough.
-+ (decompress_kernel): Use _text for initialization of output_ptr.
-+
-+ * drivers/char/sh-sci.c (put_char, put_string, get_char,
-+ handle_error, lowhex, highhex, hexchars): Moved to ...
-+ drivers/char/sh-sci.h: ...here.
-+ drivers/char/sh-sci.c (gdb_detach): Added __init qualifier.
-+
-+ Bug fix.
-+ * include/asm-sh/uaccess.h (__copy_user): Bug fix for __N == 0.
-+ Reported by Toshinobu Sugioka <sugioka@itonet.co.jp>.
-+
-+2000-05-18 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/pgtable.h (mk_pte_phys): Bug fix. Added
-+ __MEMORY_START.
-+
-+ Bug fixes for swap entry encoding and pte encoding.
-+ (_PAGE_FLAGS_HARDWARE_MASK): Mask V-bit.
-+ (_PAGE_FLAGS_HARDWARE_DEFAULT): Enable V-bit.
-+ Make _PAGE_PRESENT as software flag, and let it be the b0-bit.
-+
-+2000-05-17 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/fault.c (update_mmu_cache): We don't need to call
-+ __flush_tlb_page. See the implementation of establish_pte in
-+ mm/memory.c.
-+ (handle_vmalloc_fault): Instead, call __flush_tlb_page here.
-+ (update_mmu_cache): Conditionalize the setting of PTEH.
-+ (handle_vmalloc_fault): Change the first argument type.
-+
-+2000-05-16 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/boot/compressed/Makefile (head.o): Remove dependency
-+ to $(TOPDIR)/include/linux/tasks.h.
-+
-+ * arch/sh/boot/compressed/head.S: Removed #include <asm/segment.h>.
-+
-+2000-05-16 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Compressed vmlinux support by Stuart Menefy.
-+ ftp.uk.linux.org:/pub/superh/linux-2.2.13-shpatch-0.03.gz
-+ * arch/sh/boot/Makefile,
-+ arch/sh/boot/compressed/Makefile,
-+ arch/sh/boot/compressed/misc.c,
-+ arch/sh/boot/compressed/install.sh,
-+ arch/sh/boot/compressed/head.S: New files imported.
-+
-+2000-05-14 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/lib/checksum.S (csum_partial): Improved a bit.
-+ * include/asm-sh/checksum.h (ip_fast_csum): Improved implementation
-+ for both of code size and speed.
-+ (csum_fold): Removed last line: "extu.w %0, %0". It's not needed,
-+ as it always cast to unsigned short. Caution: the result value as
-+ "unsigned int" is different.
-+
-+2000-05-13 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/time.c (time_init): Bug fix for SH-3's CPG.
-+ Not fully implementation yet.
-+
-+ * include/asm-sh/smc37c93x.h (GPIO46_INDEX, GPIO47_INDEX): Added.
-+ * arch/sh/kernel/setup_se.c (init_smsc): Added setting of
-+ nIO{R,W}OP. Suggested by Toshiharu Nozawa <nozawat@hitachi-ul.co.jp>.
-+
-+ * include/asm-sh/unistd.h (_syscall5): Bug fix.
-+
-+ * arch/sh/kernel/irq.c (init_irq_proc): Added.
-+
-+2000-05-09 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/lib/checksum.S: Bug fix for big endian.
-+
-+ * arch/sh/kernel/ptrace.c (sys_ptrace): Follow the change of
-+ 2.3.99-pre7-6.
-+ * arch/sh/mm/fault.c (do_page_fault): Likewise.
-+
-+2000-05-08 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * drivers/net/stnic.c: New file by Kazumoto Kojima.
-+ (stnic_probe): Changed the prototype.
-+ (stnic_probe): Use new style probing API.
-+
-+ * include/asm-sh/hitachi_se.h (IRQ_STNIC): Added.
-+
-+ * arch/sh/kernel/time.c (time_init): New variable `bus_clock'.
-+
-+2000-05-08 Toshinobu Sugioka <sugioka@itonet.co.jp>
-+
-+ * include/asm-sh/checksum.h (csum_fold): Change the implementation
-+ for readability and in case it is used with no cast to ushort.
-+
-+ * arch/sh/lib/checksum.S: Shift 8-bit when it's big endian.
-+
-+2000-05-06 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm/io.h (outb, outb_p, outw, outl): Fix the prototype.
-+ * arch/sh/kernel/io_se.c (outb, outb_p, outw, outl): Follow the
-+ change of io.h.
-+
-+ * arch/sh/kernel/io_generic.c (inb, inb_p, inw, inl, insb, insw,
-+ insl, outb, outb_p, outw, outl, outsb, outsw, outsl): Fix the
-+ prototype.
-+
-+ * arch/sh/kernel/setup_se.c (init_smsc): Removed setting of
-+ POWER_CONTROL, since it is done by ACTIVATE.
-+
-+2000-05-05 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * drivers/char/sh-sci.h (SCI_IPR_ADDR): Fixed typo.
-+ * arch/sh/kernel/setup_se.c (init_se_IRQ): Fixed the value, it is
-+ inverted.
-+
-+2000-05-03 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/irq.c (do_IRQ): Don't call sti.
-+
-+ * arch/sh/kernel/irq_ipr.c (make_ipr_irq): Don't enable it at this
-+ time. It will be enabled when request_irq is called.
-+
-+ Fixes for I/O handling.
-+ * arch/sh/kernel/setup_se.c (smsc_config): Use outb_p.
-+ (init_smsc): Set Power Control register.
-+
-+ * include/asm-sh/io.h (inb_p, outb_p): Added.
-+ (inb, inw, inl): Fix the return value type.
-+
-+ * arch/sh/kernel/io_generic.c (delay, inb_p, outb_p): New functions.
-+ * arch/sh/kernel/io_se.c (delay, inb_p, outb_p): New functions.
-+
-+ * include/asm/irq.h (INTC_IPRB): Fix typo.
-+
-+2000-05-03 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ New I/O handling.
-+ * arch/sh/kernel/io_generic.c: New file.
-+
-+ * arch/sh/config.in (CONFIG_IOPORT_START): New CONFIG variable.
-+ (CONFIG_CF_ENABLER): Conditionalize it (Not for SolutionEngine).
-+
-+ * include/asm-sh/ide.h (ide_default_irq, ide_default_io_base):
-+ Use PORT, instead of ADDR.
-+
-+ * include/asm-sh/io.h (inb_local, outb_local): Removed.
-+ (inb,inw,inl,insb,insw,insl,outb,outw,outl,outsb,outsw,outsl):
-+ Make them real function.
-+ (sh_isa_slot,isa_readb,isa_readw,isa_readl,isa_writeb,
-+ isa_writew,isa_writel,isa_memset_io,isa_memcpy_fromio): Added.
-+
-+ SolutionEngine support.
-+ * include/asm-sh/smc37c93x.h: New file by Kazumoto Kojima.
-+ * arch/sh/kernel/setup_se.c: New file by Kazumoto Kojima.
-+ * include/asm-sh/hitachi_se.h: Ditto.
-+
-+ * arch/sh/kernel/Makefile (O_OBJS): Added irq_ipr.o, removing
-+ irq_onchip.c. Added setup_se.c.
-+
-+2000-05-02 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/fault.c (do_page_fault): Bug fix. When "Oops", we
-+ don't try to follow the page handling data when PGDIR==0.
-+
-+ * arch/sh/kernel/time.c (time_init): Removed IPR setting.
-+ * arch/sh/kernel/irq_ipr.c (init_IRQ): ... moved to here.
-+
-+ * drivers/char/sh-sci.c (sci_init): Use new calling of set_ipr_data.
-+ * drivers/char/sh-sci.h (SCI_IPR_POS, SCI_IPR_ADDR): New macros.
-+ (SCI_IPR_OFFSET): Removed.
-+
-+ * arch/sh/kernel/irq_ipr.c (startup_ipr_irq, ipr_irq_type,
-+ disable_ipr_irq, enable_ipr_irq, make_ipr_irq, mask_and_ack_ipr,
-+ end_ipr_irq): Renamed from *_onChip_*.
-+ (struct ipr_data): Added member POS. Remove OFFSET, and added ADDR.
-+ (startup_onChip2_irq, onChip2_irq_type, disable_onChip2_irq,
-+ enable_onChip2_irq, mask_and_ack_onChip2, end_onChip2_irq): Removed.
-+
-+ * include/asm-sh/irq.h (make_ipr_irq): Renamed from make_onChip_irq.
-+ (set_ipr_data): Change the prototype for address.
-+
-+ * arch/sh/kernel/irq_ipr.c: Renamed from irq_onchip.c.
-+
-+2000-05-01 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Support of SH7709A.
-+ * arch/sh/kernel/time.c (do_timer_interrupt): Remove Takeshi's
-+ debugging code (output to Port C).
-+
-+ * drivers/char/sh-sci.h (PCLK): Added value for my SH7709A board.
-+ * drivers/char/sh-sci.c (sci_set_termios_cflag): Added SH7709's
-+ SCPCR/SCPDR handling.
-+ (put_char, get_char): Added dummy read of SC_SR, Without this, some
-+ garbage characters would appear on SH7709A.
-+
-+2000-04-30 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/entry.S (restore_all): Bug fix. We should consider
-+ FPU exception within the critical region. We should not change the
-+ IMASK value in this case. Or else, we would introduce a "hole" in
-+ the critical region.
-+
-+ * arch/sh/mm/fault.c (update_mmu_cache): Bug fix. We need to flush
-+ ITLB.
-+
-+ * arch/sh/kernel/time.c (time_init): Bug fix. The interval should
-+ depend on HZ.
-+
-+2000-04-29 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/cache.c (flush_cache_all): Don't touch CCR.
-+ (flush_cache_range): Don't call icache_purge_range.
-+ (dcache_flush_range, dcache_purge_range): Removed.
-+
-+ * arch/sh/kernel/entry.S (system_call): Bug fix. Substract 0x40
-+ from TRA number.
-+
-+ * arch/sh/kernel/signal.c (save_sigcontext_fpu): Cosmetic fix.
-+ Use __copy_to_user as it's user-space value.
-+
-+2000-04-28 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Bug fixes of cache handling of SH-4.
-+ * arch/sh/mm/cache.c (dcache_flush_range, dcache_purge_range,
-+ dcache_wback_range): Renamed from cache_flush_area,
-+ cache_purge_area, cache_wback_area, and only handle D-cache.
-+
-+ (icache_purge_range): New function.
-+ (flush_icache_range): Use icache_purge_range.
-+
-+ (flush_icache_page): Bug fix. Rewritten.
-+ (flush_cache_range): Bug fix. Rewritten.
-+ (flush_page_to_ram): Implemented.
-+
-+ (cache_wback_all): Assumes it is called P2 area, and make
-+ it inline function.
-+ (cache_init): Jump to P2-area before calling cache_wback_all.
-+ (flush_cache_all): Likewise.
-+
-+ (CACHE_IC_ENTRY_SHIFT, CACHE_IC_NUM_ENTRIES,
-+ CACHE_OC_ENTRY_PHYS_MASK): New macros.
-+
-+ * include/asm-sh/cache.h (cache_flush_area, cache_purge_area,
-+ cache_wback_area): Hide them as cache.c static function.
-+
-+2000-04-27 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Bug fix of cache handling of SH-4.
-+ * arch/sh/mm/cache.c (flush_page_to_ram): Replaced from
-+ __flush_page_to_ram.
-+ * include/asm-sh/pgtable.h (__flush_page_to_ram): Removed.
-+ (flush_page_to_ram): Declare directly.
-+ * include/asm-sh/system.h (back_to_P1): Added one more nop.
-+
-+ Cosmetic change for TLB handling of SH-4.
-+ * arch/sh/mm/fault.c (__flush_tlb_page): Removed useless
-+ ITLB handling.
-+
-+ Updated to 2.3.99-pre6.
-+ * include/asm-sh/{atomic.h,delay.h,hardirq.h,smplock.h,system.h}:
-+ Follow the change of 2.3.99-pre6-7.
-+ * arch/sh/mm/fault.c (__verify_write, do_page_fault): Follow the
-+ change of 2.3.99-pre6-6.
-+
-+2000-04-24 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.3.99-pre6-5.
-+
-+2000-04-22 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/entry.S (debug, system_call, restore_all,
-+ handle_exception): Change the order of push/pop, and accessing
-+ memory on the stack. Introduce new syscall ABI.
-+
-+ * include/asm-sh/ptrace.h (struct pt_regs): Reorganize the
-+ structure.
-+ * include/asm-sh/sigcontext.h: Likewise.
-+
-+ * arch/sh/kernel/signal.c (setup_frame, setup_rt_frame):
-+ Use New ABI.
-+ * arch/sh/kernel/process.c (kernel_thread): Use New ABI.
-+ * include/asm-sh/unistd.h (_syscall0, _syscall1, _syscall2,
-+ _syscall3, _syscall4, _syscall5): Use New ABI.
-+
-+ * arch/sh/kernel/process.c (sys_execve, sys_vfork, sys_clone,
-+ sys_fork): Follow the change of syscall ABI.
-+ * arch/sh/kernel/signal.c (sys_sigsuspend, sys_rt_sigsuspend,
-+ sys_sigaltstack, sys_sigreturn, sys_rt_sigreturn): Likewise.
-+ * arch/sh/kernel/sys_sh.c (sys_pipe): Likewise.
-+
-+2000-04-21 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/time.c (RCR1_*, RCR2_*): Defined.
-+ (set_rtc_time, get_rtc_time, get_cpu_mhz): Use them.
-+
-+ * arch/sh/kernel/time.c (get_rtc_time): Bug fix. Clear CF-bit every
-+ time. Set RCR2_RTCEN to start RTC.
-+
-+ * include/asm-sh/elf.h (SET_PERSONALITY): Follow the change
-+ of 2.3.99-pre6-3.
-+
-+2000-04-20 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Change how to set syscall_nr.
-+ * arch/sh/kernel/entry.S (handle_exception): Set syscall_nr = -1,
-+ as default.
-+ (system_call): Set syscall_nr.
-+ * arch/sh/kernel/entry.S (tlb_miss_load, tlb_miss_store,
-+ initial_page_write, tlb_protection_violation_load,
-+ tlb_protection_violation_store, error): Don't touch syscall_nr.
-+ * arch/sh/kernel/fpu.c (do_fpu_state_restore, do_fpu_error): Likewise.
-+ * arch/sh/kernel/traps.c (DO_ERROR): Likewise.
-+ * arch/sh/kernel/irq.c (do_IRQ): Likewise.
-+
-+ Change IMASK irq handling implementation.
-+ * arch/sh/kernel/entry.S (restore_all, STI): Use r6_bank, instead
-+ of r5_bank.
-+ * arch/sh/kernel/irq_imask.c (set_interrupt_registers): Likewise.
-+ * arch/sh/kernel/head.S (_stext): Likewise.
-+ * include/asm-sh/system.h (__sti): Likewise.
-+
-+ Change CURRENT implementation. Use $r7_bank1 to have pointer to
-+ "current" task, instead of having stack pointer in $r4_bank1.
-+ * include/asm-sh/current.h (get_current): Use $r7_bank.
-+ * arch/sh/kernel/process.c (__switch_to): Save to $r7_bank.
-+ * arch/sh/kernel/entry.S (system_call, ret_with_reschedule,
-+ handle_exception): Use $r7_bank.
-+ * arch/sh/kernel/traps.c (dump_stack): Likewise.
-+ * arch/sh/kernel/head.S (_stext): Likewise.
-+
-+ Bug fix.
-+ * arch/sh/mm/cache.c (flush_cache_all): Assume that it is called in
-+ interrupt disabled state.
-+ (flush_cache_all): Fixed race condition.
-+
-+ * arch/sh/kernel/fpu.c (do_fpu_state_restore): Release FPU.
-+
-+2000-04-16 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/fpu.c (do_fpu_state_restore, fpu_prepare_fd):
-+ Handle complicated situation where it gets inconsistent. It would
-+ be good if SH has some atomic op-code for handling SR register,
-+ or ll/sc.
-+
-+ * arch/sh/kernel/process.c (__switch_to, dump_fpu, copy_thread):
-+ Fix race conditions where FPU registers may be corrupted. I.e.,
-+ protect unlazy_fpu.
-+ * arch/sh/kernel/signal.c (save_sigcontext_fpu): Likewise.
-+
-+2000-04-14 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/entry.S (STI): It was wrong. Replace from
-+ RESTORE_FLAGS.
-+
-+ * include/asm-sh/system.h (__restore_flags): Use __sti.
-+
-+ * arch/sh/kernel/irq_imask.c (set_interrupt_registers): Bug fix.
-+ We do compare the b7-b4 bits.
-+
-+2000-04-09 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/irq_imask.c (imask_irq_type) : Change the name
-+ so that output of /proc/interrupt looks good.
-+ * arch/sh/kernel/irq_onchip.c (onChip_irq_type, onChip2_irq_type):
-+ Likewise.
-+
-+ * arch/sh/kernel/entry.S (RESTORE_FLAGS): Bug fix. Compare
-+ four bits properly.
-+
-+ * drivers/char/sh-sci.c (sci_init_drivers): Add CRTSCTS flag.
-+
-+ * include/asm-sh/elf.h (ELF_PLAT_INIT): Initialize SR register.
-+
-+ * arch/sh/kernel/signal.c (sys_sigsuspend, sys_rt_sigsuspend,
-+ sys_sigaltstack, sys_sigreturn, sys_rt_sigreturn): Follow new
-+ syscall ABI.
-+
-+ * arch/sh/kernel/sys_sh.c (sys_pipe): Follow new syscall ABI.
-+
-+ * arch/sh/kernel/entry.S (system_call): Bug fix. Access SP+8, since
-+ $r2 and $r3 are on the stack.
-+
-+ * include/asm-sh/unistd.h (_syscall5): Follow the change of ABI.
-+
-+2000-04-08 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/config.in: Updated to 2.3.99-pre4-pre5.
-+ * arch/sh/kernel/Makefile (.S.o, head.o): Likewise.
-+ * arch/sh/lib/Makefile (.S.o): Likewise.
-+ * arch/sh/mm/init.c (paging_init): Likewise.
-+ * include/asm-sh/namei.h (__emul_prefix): Likewise.
-+
-+ * arch/sh/defconfig: Updated.
-+
-+ Syscall ABI changes suggested by Stuart Menefy.
-+ * arch/sh/kernel/process.c (sys_fork, sys_clone, sys_vfork,
-+ sys_execve): Follow new syscall ABI.
-+
-+ * arch/sh/kernel/entry.S: New macro COMPAT_OLD_SYSCALL_ABI.
-+ New syscall ABI which use $r2 and $r3.
-+
-+2000-04-05 Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
-+
-+ * arch/sh/kernel/head.S: Initialize FPU.
-+ * arch/sh/kernel/fpu.c (save_fpu, restore_fpu): Set FPSCR
-+ register (SZ=0) before FMOV.S operation.
-+ * arch/sh/kernel/entry.S (handle_exception, restore_all): Likewise.
-+ * arch/sh/kernel/entry.S (handle_exception): Bug fix for setting $k1.
-+ We should better not use delay slot for PC-relative-load.
-+
-+ * arch/sh/kernel/signal.c (restore_sigcontext): Fix the tsk.
-+ (restore_sigcontext_fpu): Fix the structure member name.
-+ (save_sigcontext_fpu): Likewise.
-+
-+2000-04-03 Ludovic LANGE <ludovic.lange@free.fr>
-+
-+ * include/asm-sh/ptrace.h (UBC_*): Fix the values.
-+
-+2000-04-01 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/hardirq.h (in_interrupt): Bug fix.
-+ (local_bh_count): Moved from softirq.h.
-+
-+2000-03-25 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * drivers/char/sh-sci.c: Use module_init.
-+
-+ * arch/sh/defconfig: Updated.
-+
-+ * include/asm-sh/sigcontext.h(struct sigcontext): Following the
-+ usage of GCC, change sc_xfpregs --> sc_xdregs.
-+
-+ * arch/sh/kernel/process.c (copy_thread): Don't use struct_cpy.
-+ * include/asm-sh/string.h (struct_cpy): Removed. As we have memcpy
-+ implementation.
-+
-+2000-03-22 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Merge "ptrace" by Kaz.
-+ * arch/sh/kernel/ptrace.c (ubc_set_tracing, compute_next_pc):
-+ New functions. Implemented by Kaz Kojima.
-+
-+ * arch/sh/kernel/process.c (break_point_trap): New function.
-+ Implemented by Kaz Kojima.
-+
-+2000-03-21 Sugioka Toshinobu <sugioka@itonet.co.jp>
-+
-+ * include/asm-sh/uaccess.h (__clear_user): Bug fix.
-+ (__strncpy_from_user): Bug fix.
-+
-+2000-03-20 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/unistd.h (__NR_mincore, __NR_madvise): Follow
-+ the change of 2.33.99-pre2.
-+ * include/asm-sh/mman.h (MADV_*): Likewise.
-+ * arch/sh/kernel/entry.S: Likewise.
-+
-+ * drivers/char/sh-sci.c (sci_set_real_termios): Follow the change of
-+ interface of generic_serial.h of 2.33.99-pre2.
-+
-+ * include/asm-sh/page.h (clear_user_page, copy_user_page): Follow
-+ the change of 2.33.99-pre2.
-+ * include/asm-sh/pci.h: Likewise.
-+
-+2000-03-11 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/ptrace.h: Change the order of the member,
-+ so that implementation of ptrace gets straight.
-+ Remove SP and use REGS[15] instead.
-+ * include/asm-sh/sigcontext.h: Likewise.
-+
-+ * arch/sh/kernel/entry.S (debug, system_call, restore_all,
-+ handle_exception): Change the order of push/pop, and reference.
-+
-+ * arch/sh/kernel/signal.c: Follow the change of struct pt_regs.
-+ * arch/sh/kernel/process.c: Likewise.
-+
-+2000-03-10 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/config.in: Follow the change of 2.3.51.
-+ * arch/sh/defconfig: Updated.
-+
-+ * arch/sh/kernel/signal.c (restore_sigcontext_fpu): New function.
-+ (restore_sigcontext): Restore FPU context when used.
-+ (save_sigcontext_fpu): New function.
-+ (setup_sigcontext): Save FPU context.
-+ Based on Kaz' implementation, preserving API of sigcontext.h.
-+
-+2000-03-09 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/sigcontext.h: Added members for FPU registers.
-+ (Originally done by Kaz Kojima)
-+
-+2000-03-07 Terumitsu Kohama <tkohama@hipro.hitachi-hipro.co.jp>
-+
-+ * drivers/char/sh-sci.h (SCBRR_VALUE): Fix the expression.
-+
-+2000-03-07 Sugioka Toshinobu <sugioka@itonet.co.jp>
-+
-+ * include/asm-sh/system.h (jump_to_P2, back_to_P1): Improved.
-+ * arch/sh/mm/fault.c (__flush_tlb_page): Bug fix for SH-4.
-+ Change TLB from P2.
-+
-+ * include/asm-sh/processor.h (TASK_SIZE): Change the value
-+ for SH7709/SH7750 (was: 0x80000000).
-+
-+2000-03-07 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/defconfig: Updated.
-+
-+ * include/asm-sh/system.h (jump_to_P2, back_to_P1): Moved
-+ from cache.c.
-+
-+ * arch/sh/mm/cache.c: Use new macro.
-+
-+ * arch/sh/kernel/entry.S: Replace STI with RESTORE_FLAGS,
-+ to allow exception in critical region (interrupt stopped).
-+
-+ Follow the changes of 2.3.49.
-+ * include/asm-sh/pgtable.h (FIRST_USER_PGD_NR): New macro.
-+ * include/asm-sh/socket.h (SO_PEERNAME): New macro.
-+
-+2000-03-06 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Use IMASK for cli/sti (instead of BL).
-+ Suggested by Sugioka Toshinobu <sugioka@itonet.co.jp>.
-+ (Initial implementation was done by Kaz Kojima for SH-4.)
-+
-+ * arch/sh/kernel/entry.S: Use r5_bank to hold the imask value.
-+ * arch/sh/kernel/irq_imask.c: Likewise.
-+ * arch/sh/kernel/head.S: Likewise.
-+ * include/asm-sh/system.h (__sti, __cli, __save_flags,
-+ __save_and_cli, __restore_flags): New Implementation.
-+
-+2000-03-06 Sugioka Toshinobu <sugioka@itonet.co.jp>
-+
-+ * drivers/char/sh-sci.h: Add SH-4 support.
-+ * drivers/char/sh-sci.c (sci_set_baud, sci_set_termios_cflag):
-+ Support lower baudrate.
-+ (sci_rx_interrupt, sci_tx_interrupt): Always clear out interrupt
-+ source to avoid interrupt loop.
-+
-+2000-03-05 Greg Banks <gregory.banks@nstc.nec.com.au>
-+
-+ * drivers/char/sh-sci.c (sci_set_baud), drivers/char/sh-sci.h
-+ (BPS_*): Support more BPSs.
-+
-+2000-03-05 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Follow the changes of 2.3.48.
-+ * arch/sh/kernel/setup.c (setup_arch): Call paging_init.
-+ * include/asm-sh/pgtable.h: Declare paging_init.
-+
-+2000-03-04 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/lib/div.S: New file.
-+ * arch/sh/kernel/fpu.c (enable_fpu_in_danger): New function.
-+
-+2000-03-03 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/system.h (__restore_flags): Inherit IMASK and SR.
-+
-+2000-03-02 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/processor.h (clear_fpu): Don't release_fpu().
-+
-+2000-03-01 Sugioka Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/mm/fault.c (__flush_tlb_page): Bug fix. The mask value
-+ was wrong (was: 0x30).
-+
-+2000-02-29 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/process.c (kernel_thread): Call unlazy_fpu.
-+
-+ * arch/sh/kernel/fpu.c (do_fpu_state_restore): Bug fix. Grab FPU
-+ before restore/unlazy_fpu/fpu_init or else, it causes system reset.
-+
-+ * arch/sh/kernel/irq.c (do_IRQ): Add __sti() before calling softirq.
-+
-+2000-02-27 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * drivers/char/sh-sci.h (SC_SR): Bug fix. It's 16-bit for SH-4.
-+
-+ * arch/sh/kernel/head.S: Removed initalization of FPU.
-+ * arch/sh/kernel/setup.c (setup_arch): ...Moved here.
-+ Besides, set used_math and flags of init_task.
-+
-+2000-02-26 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/user.h (struct user): Add u_fpvalid.
-+
-+ * arch/sh/kernel/head.S: SR.FD=1 on initialization.
-+
-+ * arch/sh/kernel/fpu.c (fpu_prepare_fd, do_fpu_state_restore,
-+ do_fpu_error, fpu_init): Implemented.
-+
-+ * arch/sh/kernel/entry.S (restore_all, handle_exception): Handle FPU.
-+
-+2000-02-24 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/process.c (__switch_to): Call unlazy_fpu.
-+ (last_task_used_math): Removed.
-+
-+ * include/asm-sh/elf.h (elf_fpregset_t): Change the definition.
-+ * include/asm-sh/user.h (user_fpu_struct): Added.
-+ (struct user): Added fpu support.
-+
-+ * arch/sh/kernel/Makefile (O_OBJS): Add fpu.o for CONFIG_CPU_SH4.
-+
-+2000-02-23 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/fault.c (do_page_fault): Bug fix. (The value
-+ stored in MMU_TTB is kernel address (not physical address)).
-+
-+ * include/asm-sh/unistd.h (_syscall5): Added.
-+ (_syscall4): Bug fix of register __sc7.
-+
-+2000-02-20 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Follow the changes of 2.3.45-47.
-+ * include/asm-sh/page.h (get_order): Added.
-+
-+2000-02-14 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Follow the changes of 2.3.44.
-+ * arch/sh/mm/init.c (paging_init): Use free_area_init_node.
-+ * include/asm-sh/pgtable.h (__pgd_offset): Use pgd_index.
-+ * arch/sh/mm/cache.c (flush_icache_page): Implemented.
-+
-+2000-02-13 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/time.c (time_init, get_rtc_time): Don't depend on
-+ CONFIG_SH_CPU_RTC (Always enabled).
-+
-+ * arch/sh/config.in: Serial interface is "choice" (at least for now).
-+ (CONFIG_SH_CPU_RTC): Removed.
-+
-+2000-02-11 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Follow the change of 2.3.43.
-+ Softirq change:
-+ * arch/sh/kernel/irq.c (do_IRQ): Change bottom half interface to
-+ softirq.
-+ * include/asm/softirq.h (local_bh_enable): Ditto.
-+ Remove unused macros.
-+ * arch/sh/kernel/entry.S (handle_softirq): Ditto.
-+ (ret_from_irq): Branch to ret_from_syscall, so that softirq will
-+ be called.
-+ * arch/sh/kernel/signal.c (do_signal): Go back if kernel mode.
-+ (setup_rt_frame): Bug fix. The number is NR_rt_sigreturn.
-+ * include/asm-sh/hardirq.h (in_irq): Moved from softirq.h.
-+
-+ Memory management change:
-+ * include/asm-sh/pgalloc.h (flush_tlb_pgtables): Added.
-+ * include/asm-sh/mmu_context.h (enter_lazy_tlb): Added.
-+ (switch_mm): Set bit of cpu_vm_mask befor activate_context.
-+ * arch/sh/mm/init.c (show_mem): Remove calling show_net_buffers.
-+ * include/asm-sh/page.h (PTE_MASK): Added.
-+ * include/asm-sh/pgtable.h (_PAGE_CHG_MASK): Use PTE_MASK.
-+
-+2000-02-10 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * drivers/chare/sh-sci.h: New file.
-+ * drivers/chare/sh-sci.c: Try to merge sh-scif.c.
-+
-+ * arch/sh/{config.in,defconfig}: Updated.
-+
-+2000-02-08 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/setup.c (setup_arch): Use init_bootmem_node,
-+ instead of init_bootmem.
-+
-+ * arch/sh/mm/init.c (paging_init, mem_init): Get memory info from
-+ NODE_DATA. See bootmem.c for detail. Use free_area_init_core,
-+ instead of free_area_init.
-+
-+2000-02-06 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Follow the change of 2.3.42.
-+ * arch/sh/defconfig: Updated.
-+ * include/asm-sh/checksum.h: Include changes from 2.3.42.
-+ * arch/sh/config.in: Change the semantics of CONFIG_SERIAL.
-+ * drivers/char/Makefile: Likewise.
-+
-+ * drivers/chare/sh-sci.c: Remove locks, actually this *was* the
-+ cause of the race condition!
-+ (my_hd): Removed.
-+
-+2000-02-05 Peter Orem <pmorem@iptcorp.com>
-+
-+ * arch/sh/mm/fault.c (update_mmu_cache): Set PTEH register.
-+
-+2000-01-30 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Follow the changes of 2.3.41.
-+ * include/asm-sh/system.h (xchg_u8): Added.
-+ * include/asm-sh/pci.h: Added Dynamic DMA mapping stuff.
-+ * include/asm-sh/scatterlist: Added.
-+ * arch/sh/kernel/semaphore.c (Read-Write semaphoe): Implemented.
-+ * include/asm-sh/semaphore.h (Read-Write semaphoe): Added.
-+ * include/asm-sh/unistd.h (__NR_pivot_root): Added.
-+ * include/asm-sh/types.h (dma_addr_t): Added.
-+ * include/asm-sh/termios.h (TIOCM_LOOP): Added.
-+ * include/asm-sh/siginfo.h (NSIGCHLD): Define as 6.
-+ * arch/sh/kernel/entry.S (sys_pivot_root): Added.
-+ * arch/sh/kernel/sys_sh.c (sys_uname): Apply change of 2.3.41.
-+
-+ * include/asm-sh/dma.h (MAX_DMA_ADDRESS): Remove +__MEMORY_START,
-+ and set it 256MB.
-+
-+2000-01-29 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/entry.S (tlb_miss,general_exception): Set
-+ return address to ret_from_irq. In case of system call,
-+ it is overwritten to ret_from_syscall.
-+
-+2000-01-25 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/dma.h (MAX_DMA_ADDRESS): All area (512MB) can
-+ be used with DMA.
-+
-+2000-01-25 Toshiharu Nozawa <nozawat@hitachi-ul.co.jp>
-+
-+ * arch/sh/mm/init.c (paging_init): Bug fix for
-+ zones_size[ZONE_NORMAL].
-+
-+2000-01-23 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/siginfo.h: Follow the changes of 2.3.41-pre2.
-+ * arch/sh/kernel/signal.c (do_signal): Likewise.
-+
-+2000-01-22 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/sys_sh.c (sys_pipe): Follow the ABI of Kaz'
-+ Implementation.
-+
-+2000-01-21 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/fault.c (do_page_fault): Bug fix for OOPS.
-+
-+ * include/asm-sh/posix_types.h: Follow the changes of 2.3.40.
-+
-+2000-01-16 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * drivers/char/sh-sci.c (sci_er_interrupt): Kick transmission.
-+
-+2000-01-15 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/unistd.h (__NR_getrlimit, __NR_umount): Compatibility
-+ change for libc.
-+
-+2000-01-13 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/signal.c (do_signal): set si_uid16.
-+
-+ * arch/sh/kernel/entry.S: Changed to support *16.
-+
-+ * include/asm-sh/unistd.h (*32): Added.
-+
-+ * include/asm-sh/msgbuf.h, include/asm-sh/ipcbuf.h,
-+ include/asm-sh/sembuf.h, include/asm-sh/shmbuf.h: New files.
-+
-+ * include/asm-sh/siginfo.h: Support uid32/gid32.
-+
-+ * include/asm-sh/posix_types.h: Introduce uid16/32, gid16/32.
-+
-+2000-01-09 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/time.c (time_init): Remove INTERVAL.
-+
-+ Follow the changes of 2.3.35--2.3.38.
-+ * include/asm/checksum.h (csum_partial_copy_to_user): Removed.
-+ * include/sh/processor.h (get_task_struct): Added.
-+ * arch/sh/kernel/setup.c (setup_arch): Add condition for
-+ INITRD_START.
-+
-+
-+Local Variables:
-+mode: change-log
-+left-margin: 8
-+fill-column: 76
-+version-control: never
-+End:
-diff -ruN linux-2.6.17-vanilla/ChangeLog-2001 linux-2.6.17/ChangeLog-2001
---- linux-2.6.17-vanilla/ChangeLog-2001 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/ChangeLog-2001 2006-07-12 16:54:18.000000000 +0000
-@@ -0,0 +1,1827 @@
-+2001-12-28 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/fpu.c (do_fpu_error): Handle denormalized floating
-+ point number. Remove un-needed grab_fpu.
-+
-+ * arch/sh/kernel/head.S (_stext): Don't initialize FPU, as FPU is
-+ not used by kernel.
-+ (SR): Initial value with FD=1 (no FPU use).
-+
-+ * include/asm-sh/processor.h (unlazy_fpu): Don't need to grab_fpu.
-+ (clear_fpu): Call release_fpu.
-+
-+ * arch/sh/kernel/entry.S (PF_USEDFPU, __PF_USEDFPU): Removed.
-+ (restore_all, handle_exception): Simplified.
-+ (__fpu_prepare_fd, __init_task_flags): Removed
-+
-+ * arch/sh/kernel/fpu.c (enable_fpu_in_danger): Removed.
-+ (fpu_prepare_fd): Removed.
-+
-+2001-12-28 Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
-+
-+ * include/asm-sh/processor.h (FPSCR_ENABLE_MASK, FPSCR_FLAG_MASK):
-+ New macros.
-+
-+ * arch/sh/kernel/fpu.c (denormal_to_double, ieee_fpe_handler):
-+ New functions.
-+
-+2001-12-26 Jeremy Siegel <jsiegel@mvista.com>
-+
-+ * arch/sh/kernel/traps.c: fix handle_unaligned_access() branch offsets
-+ * arch/sh/mm/fault.c: check for null mmap when handling page fault
-+
-+2001-12-20 Takashi Yoshii <yoshii-takashi@hitachi-ul.co.jp>
-+
-+ * include/asm-sh/pgtable.h (pgprot_noncached): Defined and
-+ implemented.
-+
-+2001-12-16 Paul Mundt <lethal@chaoticdreams.org>
-+
-+ * drivers/char/shwdt.c: Added a proper timer for pinging the device
-+ periodically. Clock division ratio is now settable at load time ..
-+ Numerous other small bug fixes.
-+
-+2001-12-14 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/hitachi_se.h (PA_BCR): Comment fix to sync mainline.
-+
-+ * drivers/block/rd.c (initrd_read): Don't need to flush the cache.
-+ (This file can be removed.)
-+ * include/linux/highmem.h (memclear_highpage_flush): Likewise.
-+
-+2001-12-12 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/kernel/rtc.c (sh_rtc_gettimeofday): Fix SH-4 RTC bug work
-+ around.
-+ (set_rtc_time, sh_rtc_settimeofday): Likewise. Remove schedule_timeout
-+ call and merged to sh_rtc_settimeofday.
-+
-+2001-12-11 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/sys_sh.c-1.7: Removed.
-+
-+2001-12-10 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * mm/memory.c (do_wp_page): Re-introduce ifdef-out-ing
-+ flush_cache_page.
-+
-+2001-12-06 M. R. Brown <mrbrown@0xd6.org>
-+
-+ * drivers/char/maple_keyb.c (dc_scan_kbd): Replaced calls to
-+ memscan() with calls to memchr(). Credit goes to Robert M. Love for
-+ the patch.
-+
-+2001-12-04 Jeremy Siegel <jsiegel@mvista.com>
-+ * Include gdrom compile patch from Robert M. Love <rml@tech9.net>
-+ * drivers/net/gdrom.c: as per patch
-+ * include/asm-sh/segment.h: new file as per patch
-+
-+2001-12-03 Jeremy Siegel <jsiegel@mvista.com>
-+ * init/main.c: Robert Love's <rml@tech9.net> patch adding gdrom
-+ to bootable device list, as per M.R. Brown (mrbrown@0xd6.org)
-+ * init/main.c: new file
-+
-+2001-11-30 Jeremy Siegel <jsiegel@mvista.com>
-+ * drivers/char/shwdt.c: missing file copied from full tree
-+ * updated to 2.5.0 (same as 2.4.15)
-+
-+2001-11-02 Jeremy Siegel <jsiegel@mvista.com>
-+
-+ * arch/sh/config.in: allow setting of CONFIG_SH_PCIDMA_NONCOHERENT
-+ * include/asm-sh/stat.h: consistency w/glibc using either endian
-+ * include/asm-sh/uaccess.h: add Tomoyoshi ASANO's big-endian fix
-+ * arch/sh/kernel/{io_,pci-}7751se.c: minor cleanup
-+
-+2001-10-30 Jeremy Siegel <jsiegel@mvista.com>
-+
-+ * arch/sh/kernel/io_7751se.c: get pci.h from linux, not asm
-+ * include/asm-sh/pci.h: define pci_dac_dma_supported()
-+
-+2001-10-16 M. R. Brown <mrbrown@0xd6.org>
-+
-+ * Branch merge of linux-2_4-branch.
-+
-+ * Added treelink.sh and treeunlink.sh to the scripts/ directory.
-+
-+ * Merged in NIIBE's updates from kernel/.
-+
-+2001-10-15 M. R. Brown <mrbrown@0xd6.org>
-+
-+ * Brought HEAD to a state ready for 2.5 development.
-+
-+ * linux-2_4-branch branch created. This allows for concurrent
-+ development of the 2.4 and 2.5 trees.
-+
-+2001-10-14 NIIBE Yutaka <gniibe@server1.m17n.org>
-+
-+ * drivers/net/8139too.c (rtl8139_start_xmit): Fix merge gerbage.
-+
-+ * arch/sh/kernel/setup_se.c (init_se_IRQ): Remove
-+ CONFIG_SH_7751_SOLUTION_ENGINE section.
-+ * include/asm-sh/hitachi_se.h (PA_BCR): Likewise.
-+
-+2001-10-13 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/Makefile (CFLAGS, AFLAGS): Use -m4 -mno-implicit-fp for
-+ SH4 compile. We used to use -m4-nofpu but it's not compatible
-+ to -m4 (differs in calling convention).
-+
-+2001-10-13 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.13-pre2.
-+
-+2001-10-12 David Woodhouse <dwmw2@redhat.com>
-+
-+ * arch/sh/config.in: Set default memory sizes for Solution Engines
-+
-+2001-10-11 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.12.
-+ * Updated to 2.4.11.
-+
-+2001-10-04 Paul Mundt <lethal@chaoticdreams.org>
-+
-+ * arch/sh/mm/fault.c (do_page_fault): Don't kill init when out
-+ of memory.
-+
-+2001-10-01 M. R. Brown <mrbrown@0xd6.org>
-+
-+ * drivers/video/pvr2fb.c (pvr2fb_init): Make fb_find_mode() default
-+ to 16bpp instead of 32bpp.
-+
-+2001-09-26 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/uaccess.h (__put_user_u64): New macro.
-+ * arch/sh/kernel/signal.c: Include <linux/personality.h>.
-+ * drivers/char/sh-sci.c (banner): Fix __initdata.
-+
-+ * Updated to 2.4.10.
-+
-+2001-09-15 Paul Mundt <lethal@chaoticdreams.org>
-+
-+ * arch/sh/Makefile: Remove usage of $(tool_prefix) and needless
-+ redefinition of CROSS_COMPILE. Obey toplevel CROSS_COMPILE
-+ instead.
-+
-+2001-09-13 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/sys_sh.c (arch_get_unmapped_area): Don't
-+ COLOUR_ALIGN when it comes with MAP_PRIVATE.
-+
-+2001-09-13 Paul Mundt <lethal@chaoticdreams.org>
-+
-+ * Documentation/Configure.help: Add CONFIG_SH_WDT description.
-+ * arch/sh/config.in: Add watchdog card menu, and watchdog driver.
-+ * drivers/char/Makefile: Add CONFIG_SH_WDT support.
-+ * drivers/char/shwdt.c: New file.
-+
-+2001-09-11 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/softirq.h (__cpu_raise_softirq): Removed.
-+ * Updated to 2.4.10-pre6.
-+
-+2001-09-10 David Woodhouse <dwmw2@infradead.org>
-+
-+ * arch/sh/mm/cache-sh3.c: Clearer definitions of CCR_CACHE_VAL and
-+ CCR_CACHE_INIT.
-+ * arch/sh/mm/cache-sh4.c: Likewise.
-+
-+2001-09-03 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/keyboard.h (kbd_rate): Removed.
-+ * Updated to 2.4.10-pre4.
-+
-+2001-08-31 M. R. Brown <mrbrown@0xd6.org>
-+
-+ * arch/sh/kernel/Makefile: Add dependency for rtc-aica.o for
-+ CONFIG_SH_DREAMCAST.
-+ * arch/sh/kernel/mach_dc.c: Add prototypes and pointers for the AICA
-+ RTC routines to the machvec.
-+ * arch/sh/kernel/time.c (time_init): Remove checks for
-+ MACH_DREAMCAST as we can just use the RTC routines defined in the
-+ machvec.
-+ * arch/sh/kernel/rtc-aica.c: New file.
-+
-+2001-08-31 Jeremy Siegel <jsiegel@mvista.com>
-+
-+ * include/asm-sh/system.h: make __cli_and_save() volatile again
-+
-+2001-08-24 David Woodhouse <dwmw2@infradead.org>
-+
-+ * arch/sh/mm/cache-sh3.c: We were missing a loop over the ways in
-+ __flush_wback_region(). Also disable interrupts between reading
-+ an entry and writing it back modified.
-+ * arch/sh/kernel/pcibios.c: Generic versions of five pcibios_xxx()
-+ functions which can be shared between platforms.
-+ * arch/sh/kernel/pci_st40.c: Use $1.
-+ * arch/sh/kernel/pci-dc.c: Use $1.
-+ * arch/sh/kernel/pci-sh7751.c: Use $1.
-+ * arch/sh/kernel/Makefile: Use $1.
-+
-+2001-08-23 David Woodhouse <dwmw2@infradead.org>
-+
-+ * arch/sh/config.in: Add CONFIG_MEMORY_SIZE, clean up
-+ platform-specific memory start/size definitions.
-+ * include/asm-sh/page.h: Define __MEMORY_SIZE.
-+ * arch/sh/kernel/setup.c: Use __MEMORY_SIZE instead of hardcoded 4MiB.
-+
-+2001-08-22 David Woodhouse <dwmw2@infradead.org>
-+
-+ * drivers/net/via-rhine.c: Update to version LK1.1.11 from
-+ 2.4.9-ac9 (set dev->base_addr before first call to wait_for_reset()
-+ and free the bounce buffers only if we allocated any in the first
-+ place.
-+
-+2001-08-20 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/elf.h: Removed inclusion of <asm/byteorder.h>.
-+
-+2001-08-17 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * drivers/net/8139too.c: Include <linux/completion.h>.
-+ * drivers/maple/maple.c: Likewise.
-+ (kmapled_exited, maple_exit, kmapled_thread): Use new "completion"
-+ interface.
-+
-+ * include/asm-sh/keyboard.h (kbd_rate): New function.
-+ * include/asm-sh/io.h (page_to_bus): New macro.
-+ * include/asm-sh/mmzone.h (page_to_phys): Defined.
-+
-+ * Updated to 2.4.9.
-+
-+2001-08-14 David Woodhouse <dwmw2@infradead.org>
-+
-+ * arch/sh/kernel/pci-dma.c: Use dma_cache_wback_inv() in
-+ pci_alloc_consistent instead of flush_cache_all(), which is
-+ a nop on SH3. If the size is so large that it's quicker just
-+ to flush the whole cache, that's a decision for the
-+ arch-specific cache management code to make.
-+
-+2001-08-11 David Woodhouse <dwmw2@infradead.org>
-+
-+ * arch/sh/config.in: New CONFIG_SH_PCIDMA_NONCOHERENT option
-+ * include/asm-sh/pci.h: Include cache management calls for the
-+ case where the above option is set.
-+ * arch/sh/kernel/sh_ksyms.c: include linux/pci.h not asm/pci.h
-+
-+2001-08-11 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.8.
-+
-+2001-08-10 Jeremy Siegel <jsiegel@mvista.com>
-+ Change SH7751 to separate machine type.
-+ Added new files:
-+ * arch/sh/kernel/{io,setup,mach,led}_7751se.c
-+ * include/asm-sh/{io,hitachi}_7751se.h
-+ Modified files:
-+ * arch/sh/kernel/Makefile, arh/sh/kernel/{io,led}_se.c
-+ * arch/sh/kernel/pci-{7751se,sh7751}.c
-+ * include/asm-sh/{io,pci,machvec}.h
-+
-+2001-08-10 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/cache-sh4.c (__flush_wback_region,
-+ __flush_purge_region): Comment fix for the arguments.
-+ * arch/sh/mm/cache-sh3.c (__flush_wback_region,
-+ __flush_purge_region): Likewise.
-+
-+2001-08-10 David Woodhouse <dwmw2@infradead.org>
-+
-+ * arch/sh/mm/cache-sh3.c: Implementation of cache management
-+ routines __flush_{wback,invalidate,purge}_region. Required for
-+ SH3 platforms which have DMA hardware.
-+ * include/asm-sh/pgtable.h: Take the 'extern' definitions of the
-+ above out of #ifdef __SH4__
-+
-+2001-08-10 David Woodhouse <dwmw2@infradead.org>
-+
-+ * drivers/mtd/maps/solutionengine.c: Map driver for flash chips
-+ and PROM on Solution Engine and similar boards.
-+ * drivers/mtd/maps/Config.in: Appropriate magic.
-+ * drivers/mtd/maps/Makefile: Ditto.
-+
-+2001-08-10 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.8-pre8.
-+
-+ Bug fix for dis-contiguous page handling.
-+ * include/asm-sh/mmzone.h (is_valid_page): New inline function.
-+ (VALID_PAGE): Use is_valid_page.
-+
-+2001-08-09 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.8-pre7.
-+
-+ * arch/sh/mm/fault.c (update_mmu_cache): Use __set_bit (was:
-+ set_bit).
-+ * arch/sh/mm/cache-sh4.c (copy_user_page): Set PG_mapped flag
-+ in advance. Because it will be mapped real soon now.
-+ (clear_user_page): Ditto.
-+
-+ * include/asm-sh/pgtable.h (__flush_cache_page): Removed.
-+ * arch/sh/mm/cache-sh4.c (__flush_dcache_page): Renamed from
-+ __flush_cache_page and make it static. Removed u0, as it's
-+ always 0. Removed the statements of case u0!=0.
-+ (flush_dcache_page): Call __flush_dcache_page.
-+
-+ * arch/sh/mm/fault.c (update_mmu_cache): We only need to flush
-+ cache of kernel mapped address.
-+
-+2001-08-08 YAEGASHI Takeshi <t@keshi.org>
-+
-+ * drivers/video/pvr2fb.c:
-+ (pvr2_modedb): fix "vga_640x480" entry.
-+ (pvr2fb_set_var): set SCROLL_YREDRAW to speed up scroll.
-+ (pvr2_setcolreg): fix bit field manipulation for RGB565.
-+ (pvr2fb_init, pvr2fb_setup): correct number of entries of
-+ cable_type and video_output.
-+ * drivers/char/dc_keyb.c: New file: implement kbd_translate().
-+ * drivers/char/Makefile: Ditto.
-+ * include/asm-sh/keyboard.h: Ditto.
-+ * arch/sh/kernel/pci-dc.c (pci_free_consistent): reset
-+ gapspci_dma_used in order to allocate PCI buffer again.
-+
-+2001-08-08 Greg Banks <gnb@alphalink.com.au>
-+
-+ * include/asm-sh/linux_logo.h: New logo.
-+
-+2001-08-08 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.8-pre6.
-+ * Updated to 2.4.8-pre5.
-+
-+ * arch/sh/mm/cache-sh4.c (ptep_get_and_clear): Moved to ...
-+ (check_cache_page): Removed.
-+ (__flush_icache_page): Removed.
-+ * include/asm-sh/pgtable.h (__flush_icache_page): Removed.
-+
-+ * include/asm-sh/pgalloc.h (ptep_get_and_clear): ... here.
-+ (ptep_test_and_clear_young, ptep_test_and_clear_dirty,
-+ ptep_set_wrprotect, ptep_mkdirty): Moved from pgtable.h.
-+ (ptep_get_and_clear needs definition of mm.h).
-+
-+ * include/asm-sh/pgtable.h (PG_mapped): Renamed from
-+ PG_mapped_with_alias.
-+ (__flush_cache_page): Removed last argument, and add first arg.
-+ * arch/sh/mm/cache-sh4.c (__flush_cache_page): Take u0 address
-+ as first argument. Don't care about I-cache.
-+ (flush_dcache_page): Follow the change.
-+
-+ * include/asm-sh/ide.h (ide_insw): Removed.
-+ * drivers/cdrom/gdrom.c (gdrom_intr): Remove __flush_wback_region.
-+
-+ * arch/sh/mm/fault.c (update_mmu_cache): Flush the cache when first
-+ mapped, even if it has no alias. (We needed this to for NFS).
-+
-+2001-08-07 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * drivers/net/8139too.c (rtl8139_hw_start): Added tp->rx_config = 0.
-+
-+2001-08-07 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/pgtable.h (PG_mapped_with_alias): New macro.
-+ (PG_dcache_dirty: Deleted.
-+ (ptep_get_and_clear, ptep_test_and_clear_young,
-+ ptep_test_and_clear_dirty, ptep_set_wrprotect, ptep_mkdirty,
-+ pte_same): Define here (was: included by <asm-generic/pgtable.h>).
-+
-+ * arch/sh/mm/cache-sh4.c (flush_dcache_page): New implementation.
-+ Check if it's mapped or not.
-+ (ptep_get_and_clear): New function (was: generic implementation).
-+
-+ * arch/sh/mm/fault.c (update_mmu_cache): Flush the cache when
-+ it's mapped at first, and mark the page as it's mapped.
-+ Bug fix: check the page is VALID or not.
-+
-+ * arch/sh/mm/cache-sh4.c (CACHE_ALIAS): Moved to ...
-+ * include/asm-sh/pgtable.h (CACHE_ALIAS): ... here.
-+
-+ * arch/sh/kernel/setup.c (boot_cpu_data): Have initial value for
-+ loops_per_jiffy.
-+
-+2001-08-06 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/clear_page.S: Use aligned address for write back.
-+ * arch/sh/mm/__copy_user_page-sh4.S: Likewise.
-+ * arch/sh/mm/copy_page.S: Likewise.
-+
-+ * arch/sh/mm/cache-sh4.c (CACHE_IC_NUM_WAYS, CACHE_OC_NUM_WAYS):
-+ Removed.
-+ (cache_wback_all): Removed and integrate to cache_init.
-+
-+ * arch/sh/mm/copy_page.S: Write back TO,
-+ * arch/sh/mm/clear_page.S: Write back TO.
-+
-+ * arch/sh/mm/cache-sh3.c (cache_init): Read CCR at P2.
-+ * arch/sh/mm/cache-sh4.c (cache_init): Likewise.
-+ (__flush_cache_page): Fix bug. Call restore_flags.
-+ (flush_cache_page): New implementation.
-+ (clear_user_page, copy_user_page): Do it in assembler routines.
-+
-+2001-08-05 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/pgtable.h (PTE_PHYS_MASK): Defined.
-+ (pte_page): Bug fix. Use PTE_PHYS_MASK.
-+
-+ * mm/vmscan.c (try_to_swap_out): Bug fix. Flush the page before we
-+ clear the PTE.
-+
-+ * Updated to 2.4.8-pre4.
-+
-+2001-08-04 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/cache-sh4.c (__flush_wback_region): Fix bug of
-+ expression of END.
-+ (__flush_purge_region): Likewise.
-+ (__flush_invalidate_region): Likewise.
-+
-+2001-08-03 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * drivers/cdrom/gdrom.c (gdrom_init): Restrict merging request.
-+ (dont_merge_requests_fn, dont_bh_merge_fn): New functions.
-+
-+ * arch/sh/kernel/sys_sh.c (arch_get_unmapped_area): Always align
-+ to 16KB.
-+
-+ * arch/sh/mm/cache-sh4.c (flush_cache_sigtramp): Protect from
-+ interrupt.
-+ (__flush_cache_page, __flush_icache_page): Likewise.
-+ (check_cache_page): Likewise.
-+
-+2001-08-02 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * drivers/maple/maple.c (maple_send): Bug fix. Call
-+ dma_cache_wback_inv. (was: __flush_wback_region).
-+
-+ * include/asm-sh/io.h (dma_cache_wback_inv, dma_cache_inv,
-+ dma_cache_wback): Defined with new __flush_XXX_region functions.
-+ (was: bogus cache_XXX_area functions, not implemented).
-+
-+ * drivers/cdrom/gdrom.c (gdrom_intr): Follow the change of
-+ the last argument of __flush_wback_region.
-+ * include/asm-sh/ide.h (ide_insw): Likewise.
-+
-+ * arch/sh/mm/cache-sh4.c (__flush_purge_region): New function.
-+ (__flush_icache_page): New function.
-+ (__flush_wback_region, __flush_invalidate_region): Last argument
-+ is SIZE (was: END).
-+
-+ * include/asm-sh/pgtable.h (__flush_purge_region,
-+ __flush_icache_page): Added.
-+
-+2001-07-31 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/system.h (switch_to): Revert changes of 07-30.
-+ In schedule(), switch_to() is always called with interrupt enabled.
-+
-+ * drivers/cdrom/gdrom.c (DEVICE_NAME): Shorter name (when error).
-+ (gdrom_do_command): Protect from interrupts.
-+ (do_gdrom_request): Handle the case where a request is made up
-+ from multple chunks.
-+
-+ * Updated to 2.4.8-pre3.
-+
-+ * drivers/cdrom/gdrom.c: New file.
-+ * drivers/cdrom/Makefile, drivers/cdrom/Config.in, arch/sh/config.in:
-+ Support SEGA Dreamcast GD-ROM Driver (CD-R).
-+
-+2001-07-30 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/pci-dc.c (pci_alloc_consistent): Format arg change
-+ to stop warning.
-+ * drivers/maple/maple.c: Likewise.
-+
-+ * arch/sh/kernel/pci-sh7751.c (pci_conf1_read_config_byte,
-+ pci_conf1_read_config_word, pci_conf1_read_config_dword,
-+ pci_conf1_write_config_byte, pci_conf1_write_config_word,
-+ pci_conf1_write_config_dword): Use no underscore version
-+ of save_and_cli and restore_flags.
-+
-+ * arch/sh/overdrive/led.c (mach_led): Likewise.
-+
-+ * include/asm-sh/system.h (switch_to): Alternative implementation
-+ which maintain interrupt-disabled state.
-+ (__save_flags, __save_and_cli): New implementations.
-+ (__restore_flags): Debuuging implementation.
-+ (really_restore_flags): New define.
-+
-+ * include/asm-sh/softirq.h (local_bh_enable): Add barrier and
-+ remove __sti.
-+
-+ * arch/sh/kernel/setup_dc.c (disable_systemasic_irq,
-+ enable_systemasic_irq): Protect critical region. Driver
-+ can call disable_irq.
-+
-+ * arch/sh/kernel/setup_cqreek.c (setup_cqreek): Remove declaration
-+ of disable_hlt.
-+
-+ * arch/sh/kernel/process.c (cpu_idle): Match __cli/__sti. Avoid
-+ sleeping with interrupt disabled.
-+
-+2001-07-30 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * include/asm-sh/pgtable.h (__flush_wback_region): Defined for SH3.
-+
-+2001-07-29 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * drivers/char/sh-sci.c (put_char, put_string): Only for
-+ CONFIG_SERIAL_CONSOLE.
-+
-+ * Updated to 2.4.8-pre2.
-+
-+2001-07-28 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/mm/__copy_user_page-sh4.S (__copy_user_page): Bug fix.
-+ Do not clobber r10,r11.
-+ * arch/sh/mm/copy_page.S (copy_page): Bug fix. Do not clobber r10,r11.
-+ * arch/sh/mm/cache-sh4.c (clear_user_page, copy_user_page): Bug fix.
-+ Call __flush_tlb_page with interrupt disabled.
-+
-+2001-07-28 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/Makefile (arch/sh/vmlinux.lds): Revert the change of
-+ 2001-07-27. GCC complains (misunderstand) it.
-+
-+2001-07-27 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/vmlinux.lds.in (.data.cacheline_aligned): Align 16 for SH3.
-+ Reported by Masahiro ABE <m-abe@aandd.co.jp>.
-+ * arch/sh/vmlinux.lds.in: Rename from vmlinux.lds.S, since
-+ it's not written in assembler.
-+ * arch/sh/Makefile (arch/sh/vmlinux.lds): Follow the change.
-+
-+ * drivers/ide/ide.c (ide_wait_cmd): Revert the change to sync
-+ mainline. IIRC, it was needed for SolutionEngine, but such
-+ timing issue shoule be solved target specific way.
-+
-+ * scripts/Configure: Revert the change to sync mainline.
-+
-+ Follow the changes of 2.4.8-pre1.
-+ * include/asm-sh/irq.h (irq_demux): Make them static inline.
-+ * include/asm-sh/mmu_context.h (get_new_mmu_context, get_mmu_context,
-+ init_new_context, destroy_context, set_asid, get_asid,
-+ activate_context, switch_mm, enter_lazy_tlb): Likewise.
-+ * include/asm-sh/io.h (isa_port2addr, ctrl_inb, ctrl_inl, ctrl_outb,
-+ ctrl_outw, virt_to_phys, phys_to_virt): Likewise.
-+ * include/asm-sh/processor.h (thread_saved_pc, grab_fpu,(release_fpu):
-+ Likewise.
-+ * include/asm-sh/uaccess.h (__strncpy_from_user, __clear_user,
-+ __copy_user): Likewise.
-+ * include/asm-sh/semaphore.h (sema_init): Likewise.
-+ * include/asm-sh/pci.h (pci_dma_supported): Likewise.
-+ * include/asm-sh/page.h (get_order): Likewise.
-+ * include/asm-sh/checksum.h (csum_partial_copy_nocheck,
-+ csum_partial_copy_from_user): Likewise.
-+
-+ * include/asm-sh/smplock.h: Remove bogus SMP lock implementation.
-+
-+ * Updated to 2.4.8-pre1.
-+
-+ * arch/sh/kernel/entry.S (ret_from_fork): Call schedule_tail.
-+ by Stuart Menefy <stuart.menefy@st.com>.
-+
-+2001-07-26 Takashi YOSHII <yoshii-takashi@hitachi-ul.co.jp>
-+
-+ * include/asm-sh/irq.h, include/asm-sh/dma.h, arch/sh/kernel/dma.c,
-+ arch/sh/kernel/Makefile, arch/sh/config.in,
-+ Documentation/Configure.help: DMA support update.
-+
-+2001-07-25 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/setup_cqreek.c (mask_and_ack_cqreek): Move the
-+ inw after the masking.
-+ (setup_cqreek): Remove call of disable_hlt.
-+
-+ * arch/sh/mm/cache-sh4.c (flush_cache_sigtramp): Access from P2
-+ area.
-+
-+2001-07-24 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/cache-sh4.c (__flush_wback_region): Rename from
-+ __flush_dcache_region, as it's confusing.
-+ (__flush_invalidate_region): Make it externally visible.
-+ * include/asm-sh/pgtable.h: Follow the change.
-+ * drivers/maple/maple.c (maple_send): Follow the change.
-+
-+2001-07-24 Masahiro ABE <m-abe@aandd.co.jp>
-+
-+ * arch/sh/kernel/setup.c (setup_arch): #ifdef mv_unknown to eliminate
-+ warning.
-+
-+2001-07-24 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/segment.h: Removed.
-+ * arch/sh/kernel/pci-sh7751.c: Remove inclusion of <asm/segment.h>.
-+
-+2001-07-23 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/time.c (do_timer_interrupt): Remove #if 0 for
-+ sh_do_profile.
-+
-+2001-07-23 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/copy_page.S, arch/sh/mm/clear_page.S: Bug fix.
-+ SH-3 doesn't have movca op-code.
-+
-+ * include/asm-sh/page.h (clear_page, copy_page): Declared.
-+ * arch/sh/mm/clear_page.S, arch/sh/mm/copy_page.S: New files.
-+ * arch/sh/mm/Makefile (obj-y): Added.
-+
-+ * include/asm-sh/page.h (__clear_user_page, __copy_user_page):
-+ Declared.
-+ * arch/sh/mm/cache-sh4.c: Use them.
-+ * arch/sh/mm/__clear_user_page-sh4.S,
-+ arch/sh/mm/__copy_user_page-sh4.S: New files.
-+ * arch/sh/mm/Makefile: Added.
-+
-+2001-07-23 David Woodhouse <dwmw2@infradead.org>
-+
-+ * arch/sh/mm/Makefile (CONFIG_CPU_SH3, CONFIG_CPU_SH4): Conditionally
-+ defined.
-+ * arch/sh/mm/cache-sh3.c, arch/sh/mm/cache-sh4.c: New files.
-+ * arch/sh/mm/cache.c: Removed.
-+
-+2001-07-23 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/io_adx.h: Copyright notice fix.
-+
-+ * Documentation/Configure.help (CONFIG_CPU_LITTLE_ENDIAN): Revert the
-+ change to sync mainline.
-+ * README (ON WHAT HARDWARE DOES IT RUN?): Likewise.
-+
-+ * Documentation/Configure.help (CONFIG_8139TOO_DREAMCAST): Added.
-+ * drivers/net/Config.in (CONFIG_8139TOO_DREAMCAST): New config.
-+ * drivers/net/8139too.c (CONFIG_8139TOO_DREAMCAST): New config.
-+ (RX_BUF_LEN_IDX): Depends CONFIG_8139TOO_DREAMCAST.
-+ (rtl8139_rx_config): Likewise.
-+ (rtl8139_start_xmit): Use USE_NO_DMAMAP.
-+
-+ * arch/sh/config.in: Fix the indentation.
-+
-+2001-07-22 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.7.
-+
-+2001-07-20 Masahiro ABE <m-abe@aandd.co.jp>
-+
-+ * Documentation/Configure.help (CONFIG_CF_AREA5): Edit text.
-+
-+2001-07-19 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.7-pre8.
-+
-+ * arch/sh/kernel/process.c (cpu_idle): Remove not-needed __sti.
-+ As it was asymmetric, may cause trouble.
-+
-+2001-07-18 Masahiro ABE <m-abe@aandd.co.jp>
-+
-+ * Documentation/Configure.help (CONFIG_CF_ENABLER): Support area 5 too.
-+ (CONFIG_CF_AREA5): Added.
-+ * arch/sh/config.in: Added selection of CompactFlash area.
-+ * arch/sh/kernel/cf-enabler.c (allocate_cf_area): Added to support
-+ directly connected CompactFlash for SH4.
-+ (cf_init_default): call allocate_cf_area if SH4.
-+
-+ * Documentation/Configure.help (CONFIG_SH_GENERIC): Added ADX.
-+ * arch/sh/config.in (CONFIG_SH_ADX): Added for ADX support.
-+ (CONFIG_MEMORY_START): Added definition for ADX.
-+ (CONFIG_CF_ENABLER): Added ADX.
-+ * arch/sh/kernel/Makefile: Added ADX support.
-+ * include/asm-sh/io.h: Added ADX support.
-+ * include/asm-sh/machvec.h: Added ADX support.
-+
-+ * arch/sh/kernel/{io_adx.c,mach_adx.c,setup_adx.c}: New files.
-+ * include/asm-sh/io_adx.h: New file.
-+
-+ * arch/sh/kernel/irq_maskreg.c: New file.
-+ Add support for simple word-size IRQ mask register.
-+ * include/asm-sh/irq.h : Likewise.
-+
-+2001-07-18 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/fault.c (__do_page_fault): Use pte_not_present.
-+ * include/asm-sh/pgtable.h (pte_not_present): New inline function.
-+
-+2001-07-18 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Don't use pgd/pte memory pool.
-+ * include/asm-sh/pgalloc.h (do_check_pgt_cache): Defined.
-+ (pgd_quicklist, pte_quicklist, pgtable_cache_size): Null definition.
-+ (pgd_alloc): Renamed from pgd_alloc_slow.
-+ (pgd_free): Renamed from free_pgd_slow.
-+ (get_pgd_fast, free_pgd_fast): Removed.
-+ (pte_alloc_one_fast): Just return 0.
-+ (pte_free_fast): Removed.
-+ (pte_free): Defined as pte_free_slow.
-+
-+ * arch/sh/mm/init.c (do_check_pgt_cache): Removed.
-+ (show_mem): Removed showing pgtable_cache_size.
-+
-+ * include/asm-sh/processor.h (pte_quick, pgtable_cache_sz): Removed.
-+ (hard_math): Change the order.
-+ * arch/sh/kernel/setup.c: Follow the change.
-+
-+ * include/asm-sh/pgtable-2level.h (pgd_clear): Do nothing.
-+
-+ * mm/memory.c (free_one_pgd): Revert change of 2001-07-16.
-+ (As it's not accepted by Linus.)
-+
-+
-+ * Updated to 2.4.7-pre7.
-+
-+ * arch/sh/mm/cache.c (__flush_cache_page): Don't disable interrupt.
-+
-+2001-07-17 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/cache.c (p3map_sem): New variable.
-+ (p3_cache_init): Initialize p3map_sem.
-+ (clear_user_page, copy_user_page): Use semaphore(s) to protect
-+ critical section.
-+ (flush_cache_all): New implementation.
-+
-+ * arch/sh/mm/fault.c (update_mmu_cache): Make the critical section
-+ shorter.
-+
-+2001-07-17 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/mm/cache.c (clear_user_page, copy_user_page): Bug fix.
-+ Disable interrupt until __flush_dcache_region() is done.
-+
-+2001-07-17 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/fault.c (__do_page_fault): Bug fix. Don't allow
-+ PGD overrun.
-+
-+ * arch/sh/kernel/dma.c: Remove inclusion of <asm/smp.h>.
-+ * arch/sh/kernel/setup.c, arch/sh/kernel/irq.c: Ditto.
-+ * arch/sh/kernel/process.c: Include file clean up.
-+
-+ * arch/sh/kernel/process.c (machine_restart, machine_halt): New
-+ implementations.
-+
-+2001-07-16 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * mm/memory.c (free_one_pgd): Bug fix. Do pgd_clear _after_
-+ free_one_pmd.
-+
-+ * arch/sh/kernel/setup.c (boot_cpu_data): Bug fix. 0 for
-+ pgtable_cache_sz.
-+
-+ * arch/sh/mm/cache.c (clear_user_page, copy_user_page): Clear PTE
-+ after use.
-+
-+2001-07-16 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * include/asm-sh/pgalloc.h (__flush_tlb_page): Declared.
-+ * arch/sh/mm/cache.c : Add inclusion <asm/pgalloc.h>,
-+ <asm/mmu_context.h>
-+ (clear_user_page, copy_user_page): Do __flush_tlb_page() before
-+ update_mmu_cache().
-+ * arch/sh/mm/fault.c (__flush_tlb_page): Make it global.
-+
-+2001-07-16 Takashi YOSHII <yoshii-takashi@hitachi-ul.co.jp>
-+
-+ * arch/sh/kernel/ptrace.c (ubc_set_tracing): Bug fix for SH7709A.
-+
-+ * include/asm-sh/ptrace.h (UBC_TYPE_SH7729, BBR_CPU, BBR_DMA,
-+ BRCR_PCTE): Defined.
-+ (BBR_WRITE): Change the value.
-+
-+2001-07-16 Masahiro Abe <m-abe@aandd.co.jp>
-+
-+ IRQ handling update.
-+ * arch/sh/kernel/setup_bigsur.c (end_bigsur_irq): Don't enable IRQ
-+ when it is disabled.
-+ * arch/sh/kernel/setup_ec3104.c (end_ec3104_irq): Likewise.
-+ * arch/sh/kernel/setup_hd64465.c (end_hd64465_irq): Likewise.
-+ * arch/sh/kernel/setup_hd64461.c (end_hd64461_irq): Likewise.
-+ * arch/sh/kernel/setup_dc.c (end_systemasic_irq): Likewise.
-+ * arch/sh/kernel/irq_ipr.c (end_pint_irq): Likewise.
-+
-+2001-07-16 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/mmzone.h: Remove inclusion of bootmem.h.
-+
-+2001-07-12 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ IRQ handling bug fix. Reported by Masahiro Abe <m-abe@aandd.co.jp>
-+ * arch/sh/kernel/irq_intc2.c (end_intc2_irq): Don't enable IRQ
-+ when it is disabled.
-+ * arch/sh/kernel/irq_ipr.c (end_ipr_irq): Likewise.
-+ * arch/sh/kernel/irq_imask.c (end_imask_irq): Likewise.
-+
-+ * arch/sh/kernel/irq.c (setup_irq): Clear desc->status.
-+ (probe_irq_on): Removed unmatched spin_unlock_irq().
-+
-+2001-07-12 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/cache.c (copy_user_page, clear_user_page): Bug fix.
-+ Call __flush_dcache_region so that the data goes to memory, to
-+ maintain cache coherency between I and D.
-+
-+2001-07-11 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/config.in (CONFIG_DEBUG_KERNEL_WITH_GDB_STUB): Removed.
-+
-+ * arch/sh/kernel/entry.S (call_dae, debug_trap): Only for
-+ CONFIG_SH_STANDARD_BIOS (was: also CONFIG_DEBUG_KERNEL_WITH_GDB_STUB).
-+ * arch/sh/kernel/traps.c (gdb_vbr_vector, trap_init): Likewise.
-+ * drivers/char/sh-sci.c: Likewise.
-+
-+ * Documentation/Configure.help (CONFIG_GDB_STUB_VBR): Removed.
-+ (CONFIG_DEBUG_KERNEL_WITH_GDB_STUB): Removed.
-+ (CONFIG_STNIC): Added.
-+ (CONFIG_SH_RTC): Added.
-+ (CONFIG_SH_GENERIC): Added.
-+
-+2001-07-11 Masahiro Abe <m-abe@aandd.co.jp>
-+
-+ * include/asm-sh/machvec.h: Bug fix. Move #endif.
-+
-+2001-07-11 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/hardirq.h (irq_cpustat_t): Added __ksoftirqd_task.
-+ * include/asm-sh/atomic.h (smp_mb__before_atomic_dec): Defined.
-+
-+ * Updated to 2.4.7-pre6.
-+ * Documentation/fb/pvr2fb.txt (Advantages): Typo fix.
-+
-+2001-07-11 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.7-pre5.
-+
-+ Follow the change of 2.4.7-pre5.
-+ * include/asm-sh/softirq.h (raise_softirq): Removed.
-+
-+2001-07-10 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Updated to 2.4.6.
-+
-+ Follow the change of 2.4.6.
-+ * arch/sh/vmlinux.lds.S (.rodata): Added .rodata.*.
-+ * include/asm-sh/hitachi_se.h (PA_MRSHPC): Spell fix for comment.
-+
-+2001-07-10 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/init.c (paging_init): Use __MEMORY_SIZE_2ND.
-+
-+2001-07-08 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/config.in (CONFIG_DISCONTIGMEM): Bug fix. Added "then".
-+ By ISHIKAWA Mutsumi <ishikawa@linux.or.jp>.
-+
-+ * include/asm-sh/page.h (phys_to_page): Bug fixed for paren.
-+ By YAEGASHI Takeshi <t@keshi.org>.
-+
-+ Discontiguous memory support.
-+ * arch/sh/config.in (CONFIG_DISCONTIGMEM): New config.
-+ * arch/sh/kernel/setup.c (setup_arch): Setup NODE_DATA, and NODE(1).
-+ * arch/sh/mm/init.c (discontig_page_data, discontig_node_bdata):
-+ New variables.
-+ (paging_init): Initialize NODE(1).
-+ (mem_init): Initialize NODE(1).
-+ * include/asm-sh/mmzone.h: New file.
-+ * include/asm-sh/pgtable.h (pte_page): Use phys_to_page.
-+ * include/asm-sh/page.h (__MEMORY_START_2ND, __MEMORY_SIZE_2ND):
-+ Defined.
-+ (VALID_PAGE, phys_to_page): #ifdef/#endif-out.
-+
-+2001-07-07 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/page.h (phys_to_page): New macro.
-+ (virt_to_page): Use phys_to_page.
-+ * include/asm-sh/pgtable.h (pte_page): Use phys_to_page.
-+
-+2001-07-07 YAEGASHI Takeshi <t@keshi.org>
-+
-+ HD64461 IRQ number fix for HP600.
-+ 93: 10076 HD64461-IRQ ide0 # CF slot
-+ 94: 15095 HD64461-IRQ NE2000 # PC-card slot
-+
-+ * include/asm-sh/hd64461.h (HD64461_IRQ_NUM): Added.
-+ * include/asm-sh/ide.h (ide_default_irq_hp600): Fix irq number.
-+ * arch/sh/kernel/mach_hp600.c (mv_hp620, mv_hp680, mv_hp690): Fix
-+ mv_nr_irqs.
-+
-+2001-07-06 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/cache.c (flush_icache_page, flush_dcache_page,
-+ flush_page_to_ram, check_cache_page): Use page_address.
-+ * arch/sh/mm/fault.c (update_mmu_cache): Use page_address.
-+ (and Bug fix.)
-+ * include/asm-sh/pgtable.h (mk_pte): Use page_address.
-+
-+2001-07-04 Jeremy Siegel <jsiegel@mvista.com>
-+
-+ * arch/sh/lib/checksum.S: Bug fix. Update R1's value.
-+
-+2001-07-04 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * include/asm-sh/pgtable.h (__flush_dcache_region): Defined for SH-3.
-+ * drivers/net/Config.in (CONFIG_CS89x0): Can be enabled even when PCI
-+ is disabled.
-+
-+2001-07-03 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/setup.c: Bug fix. 0 for pte_quick.
-+
-+2001-07-02 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/cache.c (__flush_invalidate_region): New function.
-+ (copy_user_page, clear_user_page): Bug fix. Use
-+ __flush_invalidate_region.
-+
-+ * include/asm-sh/pgtable.h (PG_dcache_dirty): Defined.
-+ * arch/sh/mm/cache.c (flush_dcache_page): Defer flushing the cache
-+ if possible.
-+ * arch/sh/mm/fault.c (update_mmu_cache): Handle the deferred
-+ flushing.
-+
-+2001-07-01 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * drivers/net/stnic.c (stnic_probe): Set endian.
-+ Reported by <yshimizu@ic-software.co.jp>.
-+
-+2001-06-30 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/cache.c (__flush_cache_page): Protect against
-+ interrupt.
-+ (flush_cache_all): Just clear the address array.
-+ (detect_cpu_and_cache_system): Likewise.
-+ (flush_cache_page): Bug fix. Tag is physical address.
-+
-+ * Updated to 2.4.6-pre8.
-+
-+ SH-4 cache handling improvement.
-+ * arch/sh/mm/cache.c (flush_icache_page, flush_page_to_ram):
-+ #if 0/#endfi out.
-+ * include/asm-sh/pgtable.h (flush_page_to_ram, flush_icache_page):
-+ Define as NULL.
-+ * kernel/ptrace.c (access_one_page): Add flush_dcache_page.
-+
-+ * arch/sh/mm/cache.c (flush_cache_page): Remove bogus comment.
-+ Change comment as we also need to let I-cache to flush.
-+ (flush_dcache_page): Mention I-cache in comment.
-+ (__flush_cache_page): New function. (Use 0 to invalidate.)
-+ (flush_dcache_page): Use __flush_cache_page.
-+
-+ * arch/sh/mm/Makefile (obj-y): Added ioremap.o.
-+ * arch/sh/mm/ioremap.c (remap_area_pages): Use pgd_offset_k.
-+ (p3_ioremap): Renamed from __ioremap.
-+ (p3_iounmap): Renamed from iounmap.
-+ (remap_area_pages): Make it global.
-+
-+ * arch/sh/mm/fault.c (__do_page_fault): Use P3SEG and P4SEG
-+ instead of VMALLOC_START and VMALLOC_END.
-+ * include/asm-sh/pgtable.h (p3_cache_init): New function.
-+ (VMALLOC_START): Change the value.
-+ * arch/sh/mm/cache.c (p3_cache_init): New function.
-+ (icache_purge_region): Removed.
-+ (flush_icache_range): Just call flush_cache_all. It's efficient
-+ because the range would be so large (Usually it's larger than
-+ cache size itself). And it's OK, because it's rarely used.
-+ (clear_user_page, copy_user_page): New implementations.
-+
-+ * arch/sh/mm/init.c (mem_init): Use __flush_dcache_region
-+ (was: flush_page_to_ram. The obsolete interface).
-+ (mem_init): Call p3_cache_init.
-+
-+ * arch/sh/mm/cache.c (icache_purge_region): Renamed from
-+ icache_purge_range.
-+ (__flush_dcache_region): Renamed (was: __flush_dcache_range).
-+ (flush_icache_range): Follow the changes.
-+ * include/asm/ide.h (ide_insw): Use __flush_dcache_region.
-+ * include/asm-sh/pgtable.h: Ditto.
-+
-+ * drivers/maple/maple.c (maple_send): Use __flush_dcache_region
-+ (was: flush_page_to_ram. The obsolete interface).
-+ (maple_sendbuf_page): Removed.
-+
-+ * include/asm-sh/pgtable.h (HAVE_ARCH_UNMAPPED_AREA): Defined for
-+ SH-4.
-+ * arch/sh/kernel/sys_sh.c (arch_get_unmapped_area): New function.
-+ * include/asm-sh/shmparam.h (SHMLBA): 16kB for SH-4.
-+ * arch/sh/mm/fault.c (update_mmu_cache): Removed pte_shared
-+ handling.
-+ (__flush_tlb_phys): Removed.
-+ * include/asm-sh/pgtable.h (pte_shared): Removed.
-+
-+2001-06-29 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/io_se.c (se_outb_p): Bug fix. Remove duplicated
-+ `if' clause.
-+
-+2001-06-28 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/string.h (strlen): Declared.
-+ (__HAVE_ARCH_STRLEN): Defined.
-+ * arch/sh/lib/strlen.S: New file.
-+ * arch/sh/lib/Makefile (obj-y): Added strlen.o.
-+
-+ * Updated to 2.4.6-pre6.
-+
-+ Implement cache flush on I/O completion.
-+ * include/asm-sh/pgtable.h (__flush_dcache_range): Declared.
-+ * arch/sh/mm/cache.c (__flush_dcache_range): Rename from
-+ dcache_wback_range. And make it visible (not-static).
-+ * include/asm-sh/ide.h (ide_insw): New macro to handle cache flush
-+ for I/O.
-+
-+ * Revert the patch of 2001-06-26. It should be done by driver
-+ layer not VM layer.
-+
-+2001-06-27 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/lib/checksum.S (csum_partial_copy_generic): Performance
-+ tweak. Use @(<DISP>,RN) addressing mode. Consider pipeline
-+ of SH-3. Perhaps we need different implementation for SH-4.
-+
-+2001-06-26 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ New implementation of flush-ing the page on swap.
-+
-+ * include/linux/mm.h (PG_flush_after, PageFlushAfter,
-+ SetPageFlushAfter, PageTestandClearFlushAfter): New bit.
-+ * mm/page_io.c (rw_swap_page_base): Set flush-after bit.
-+ * fs/buffer.c (end_buffer_io_async): Implement flush-ing
-+ with PG_flush_after.
-+
-+ * mm/memory.c (do_swap_page): Remove flush-ing the page.
-+
-+2001-06-26 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * drivers/ide/ide-geometry.c: Revert change of 2001-03-08.
-+ It's not needed as we have the header file now .
-+
-+ * include/linux/netdevice.h include/net/checksum.h,
-+ net/core/datagram.c, net/core/iovec.c, net/core/scm.c,
-+ net/core/skbuff.c, net/core/sock.c, net/socket.c: Revert changes to
-+ sync standard kernel (was: Changes to support no CONFIG_NET).
-+
-+2001-06-25 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.6-pre5.
-+
-+2001-06-25 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/pgtable.h (_PAGE_FLAGS_HARDWARE_MASK): Drop SH-bit
-+ on SH-3.
-+
-+2001-06-24 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/pgtable.h (__pmd_offset): Removed. It's only
-+ valid for x86.
-+
-+ * include/asm-sh/string.h (strcpy, strncpy, strcmp, strncmp): Make
-+ them static inline.
-+
-+ * include/asm-sh/processor.h (INIT_MMAP): Bug fix. Set vm_start
-+ and vm_end to 0. (was: 0x80000000--0xa0000000).
-+
-+ * include/asm-sh/pgtable.h: Revert changes of 2001-06-20.
-+ Atomic update is for SMP machine. We don't need it for SuperH.
-+
-+2001-06-23 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Enable use of pgd_quicklist and pte_quicklist (was: not used).
-+ * include/asm-sh/pgalloc.h (pgd_free): Use free_pgd_fast (was: slow).
-+ (pte_free): Use pte_free_fast (was: slow).
-+ (pte_alloc_one_fast): Clear the first entry (was: assign ret[1]).
-+ * include/asm-sh/pgtable-2level.h (pgd_clear): Zero clear for reuse.
-+
-+2001-06-21 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/irq.c (do_IRQ): Bug fix. Clear IRQ_INPROGRESS bit.
-+
-+ * include/asm-sh/pgtable.h: Include <asm/pgtable-2level.h> earlier.
-+ * include/asm-sh/pgtable-2level.h: Add #ifndef/#endif for
-+ __ASSEMBLY__.
-+
-+ * arch/sh/mm/init.c (paging_init): Fixed to PTRS_PER_PGD.
-+ (was: USER_PTRS_PER_PGD*2)
-+ (swapper_pg_dir): Use PTRS_PER_PGD (was: 1024 directly).
-+
-+ * include/asm-sh/pgtable.h (TWOLEVEL_PGDIR_SHIFT,
-+ BOOT_USER_PGD_PTRS, BOOT_KERNEL_PGD_PTRS, USER_PGD_PTRS,
-+ KERNEL_PGD_PTRS): Removed. (only valid for x86)
-+
-+ * Updated to 2.4.6-pre4.
-+
-+2001-06-20 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/pgtable.h (_PAGE_BIT_DIRTY, _PAGE_BIT_RW,
-+ _PAGE_BIT_ACCESSED): Defined.
-+ (ptep_test_and_clear_dirty, ptep_test_and_clear_young,
-+ ptep_set_wrprotect, ptep_mkdirty, ptep_get_and_clear): Implement
-+ atomic update of PTE.
-+
-+2001-06-19 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/irq_ipr.c (init_IRQ): Removed initialization
-+ of INTC_IRRX, INTC_ICRX.
-+
-+ * include/asm-sh/softirq.h (local_bh_enable): Follow the change of
-+ semantics of softirq (of IA-32).
-+
-+ * arch/sh/kernel/entry.S (ret_from_syscall): Don't call softirq.
-+ (handle_softirq): Removed.
-+ (ret_with_reschedule): Label removed.
-+
-+ * arch/sh/kernel/irq.c (do_IRQ): Follow the change of IA-32 version.
-+ (irq_controller_lock): Removed.
-+
-+ * include/asm-sh/hardirq.h: Remove __softirq_active, __softirq_mask.
-+ Add softirq_pending.
-+
-+
-+ * Updated 2.4.6-pre3.
-+
-+2001-05-28 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * include/asm-sh/bitops.h (__change_bit,__test_and_set_bit,
-+ __test_and_clear_bit,__test_and_change_bit): Added.
-+
-+2001-05-28 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/config.in (CONFIG_SH_SH2000): Added.
-+ * arch/sh/kernel/Makefile: Likewise.
-+ * include/asm-sh/io.h: Likewise.
-+ * include/asm-sh/machvec.h: Likewise.
-+ * arch/sh/kernel/{setup_sh2000.c,io_sh2000.c}: New file.
-+ * include/asm-sh/io_sh2000.h: New file.
-+
-+ * arch/sh/kernel/sh_ksyms.c (strnlen): Exported.
-+
-+2001-05-28 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.5.
-+ * arch/sh/kernel/rtc.c (set_rtc_time): Removed declaration
-+ of the function abs.
-+
-+2001-05-24 Stuart Menefy <stuart.menefy@st.com>
-+
-+ * arch/sh/config.in: Change to ST40STB1 config, moved char/pcmcia to
-+ char menu, and added joystick and media options
-+
-+2001-05-24 Stuart Menefy <stuart.menefy@st.com>
-+
-+ * arch/sh/kernel/{time,setup}.c include/asm-sh/processor.h: Added
-+ support for for ST40STB1 memory clock
-+ * arch/sh/overdrive/irq.c: Set up INTC to use encoded interrupt pins,
-+ and set up non-Overdrive interrupts as imask type.
-+ * include/asm-sh/pci.h: Move declaration of struct pci_dev so declared
-+ before used
-+ * arch/sh/kernel/io_se.c: Typo fix
-+ * arch/sh/stboards/{led.c,harp.h}: Add LED_ON and LED_OFF macros
-+
-+2001-05-24 M. R. Brown <mrbrown@linuxdc.org>
-+
-+ LinuxDC drivers merge.
-+
-+ * Documentation/Configure.help: Added documentation for CONFIG_FB_PVR2
-+ and CONFIG_FB_PVR2_DEBUG.
-+ * Documentation/fb/00-INDEX: Added line for pvr2fb.txt.
-+ * Documentation/fb/pvr2fb.txt: New file, document features of the pvr2
-+ frame buffer.
-+ * arch/sh/config.in: Conditionalized Maple driver options, set
-+ CONFIG_SH_RTC to "n" when configuring for Dreamcast.
-+ * arch/sh/kernel/mach_dc.c: Machine vector: Use NR_IRQS standard
-+ (reflects new IRQ count), added systemasic_irq_demux.
-+ * arch/sh/kernel/pci-dc.c: Include new asm/dc_sysasic.h. Removed
-+ definition of GAPSPCI_INTC and updated GAPSPCI_IRQ to new IRQ
-+ convention. (disable_gapspci_irq, enable_gapspci_irq,
-+ mask_and_gapspci_irq, end_gapspci_irq, startup_gapspci_irq,
-+ shutdown_gapspci_irq, gapspci_irq_type): Removed. (gapspci_init):
-+ Removed assignment of gapspci_irq_type.
-+ * arch/sh/kernel/setup_dc.c: New includes to reflect IRQ standard.
-+ (disable_systemasic_irq, enable_systemasic_irq, ack_systemasic_irq,
-+ end_systemasic_irq, startup_systemasic_irq, shutdown_systemasic_irq,
-+ systemasic_int, systemasic_irq_demux): New routines.
-+ (setup_dreamcast): Assign systemasic_int to respective irq_desc IRQs.
-+ * drivers/video/Config.in: Added configuration options for
-+ CONFIG_FB_PVR2, removed options for CONFIG_FB_DC.
-+ * drivers/video/Makefile: Added dependency for CONFIG_FB_PVR2, removed
-+ dependancy for CONFIG_FB_DC.
-+ * drivers/video/dcfb.c: Removed file.
-+ * drivers/video/fbmem.c: Added externs for pvr2fb routintes, removed
-+ declaration of dcfb_init(). Added pvr2 to the list of framebuffers,
-+ removed dcfb from that list.
-+ * drivers/video/pvr2fb.c: New file, PowerVR 2 frame buffer support,
-+ replaces generic DC fb support.
-+ * include/asm-sh/dc_sysasic.h: New file, Definitions for Dreamcast
-+ hardware events.
-+ * include/asm-sh/irq.h: Added OFFCHIP_NR_IRQS def. for Dreamcast,
-+ added declaration of systemasic_irq_demux().
-+
-+2001-05-24 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.5-pre5.
-+
-+ * arch/sh/kernel/hd64465_gpio.c, arch/sh/kernel/io_cat68701.c,
-+ arch/sh/kernel/io_dc.c, arch/sh/kernel/io_ec3104.c,
-+ arch/sh/kernel/irq_intc2.c, arch/sh/kernel/mach_dc.c,
-+ arch/sh/kernel/setup_dc.c, arch/sh/kernel/setup_ec3104.c,
-+ arch/sh/mm/cache.c, include/asm-sh/hd64465_gpio.h: Follow the
-+ change of 2.4.5-pre5. Inclusion of config.h.
-+
-+2001-05-24 Stuart Menefy <stuart.menefy@st.com>
-+
-+ * arch/sh/kernel/pci_st40.c
-+ arch/sh/overdrive/{Makefile,galileo.c,mach.c,pcidma.c}
-+ arch/sh/stboards/{Makefile,mach.c,pcidma.c}: Changes for new style
-+ of PCI set up
-+
-+ * arch/sh/kernel/entry.S include/asm-sh/irq.h: Updated the number of
-+ interrupts for ST40STB1
-+
-+2001-05-22 M. R. Brown <mrbrown@linuxdc.org>
-+
-+ Preliminary Dreamcast Maple Bus driver restructuring.
-+
-+ * drivers/dreamcast/maple/Config.in, drivers/dreamcast/maple/Makefile
-+ drivers/dreamcast/maple/maple.c, drivers/dreamcast/maple/maple.h,
-+ drivers/dreamcast/maple/dckbd.c, drivers/dreamcast/maple/dcmouse.c,
-+ drivers/dreamcast/maple/dcpad.c: Files moved to consistent kernel
-+ directories and renamed.
-+ * drivers/dreamcast/Config.in, drivers/dreamcast/Makefile: Removed.
-+ * drivers/maple/Config.in, drivers/maple/Makefile,
-+ drivers/maple/maple.c: New files, moved from drivers/dreamcast/maple.
-+ * include/linux/maple.h: New file, was
-+ drivers/dreamcast/maple/maple.h.
-+ * drivers/char/maple_keyb.c: New file, was
-+ drivers/dreamcast/maple/dckbd.c.
-+ * drivers/char/maplemouse.c: New file, was
-+ drivers/dreamcast/maple/dcmouse.c.
-+ * drivers/char/Makefile: Added dependencies for CONFIG_MAPLE_KEYBOARD
-+ and CONFIG_MAPLE_MOUSE
-+ * drivers/char/joystick/maplecontrol.c: New file, was
-+ drivers/dreamcast/maple/dcpad.c.
-+ * drivers/char/joystick/Config.in: Added config options for
-+ CONFIG_MAPLE_CONTROL.
-+ * drivers/char/joystick/Makefile: Added dependency for
-+ CONFIG_MAPLE_CONTROL.
-+ * Makefile: Added DRIVERS dependency for CONFIG_MAPLE.
-+ * drivers/Makefile: Added dependencies for CONFIG_MAPLE.
-+ * arch/sh/Makefile: Removed Dreamcast driver dependencies.
-+ * arch/sh/config.in: Check for CONFIG_SH_DREAMCAST for
-+ CONFIG_MEMORY_START. Added config options for CONFIG_MAPLE_*, added
-+ sources to drivers/maple/Config.in and
-+ drivers/char/joystick/Config.in.
-+
-+2001-05-21 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.5-pre4.
-+
-+2001-05-17 YAEGASHI Takeshi <t@keshi.org>
-+
-+ * arch/sh/kernel/pci-dc.c: New file: Dreamcast PCI routines.
-+ * arch/sh/kernel/setup_dc.c: Moved PCI code to pci-dc.c.
-+ * arch/sh/kernel/mach_dc.c (mv_init_pci): Removed.
-+ * arch/sh/kernel/Makefile: Added rules for pci-dc.o.
-+ * include/asm-sh/pci.h (PCIBIOS_MIN_IO, PCIBIOS_MIN_MEM): Added
-+ definitions for Dreamcast.
-+ * drivers/net/8139too.c (rtl8139_hw_start): Keep RxConfig register's
-+ cache(tp->rx_config) dirty.
-+
-+2001-05-16 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/pci-sh7751.c (pcibios_set_master, pci_check_direct,
-+ pcibios_fixup_peer_bridges, pcibios_enable_device,
-+ pcibios_set_master): Prepend KERN_INFO for printk.
-+
-+ * Updated to 2.4.5-pre2.
-+
-+2001-05-14 Dustin McIntire <dustin@sensoria.com>
-+
-+ * arch/sh/kernel/sh_ksyms.c: Move CONFIG_PCI above the
-+ pci_alloc_consistent.
-+ * arch/sh/kernel/pci-irq.c: Removed.
-+
-+ Big Sur support update.
-+ * include/asm-sh/pci-sh7751.h (SH7751_PCICONF13): Change the value.
-+ It was 0x40.
-+ (PLATFORM_ASPEN, PLATFORM_BIGSUR): Removed.
-+ * arch/sh/kernel/setup_bigsur.c: Calculation change of mask and bit.
-+ * arch/sh/kernel/pci-bigsur.c: Turn the clocks and clear powerdown
-+ IRQ earlier.
-+ * arch/sh/kernel/Makefile: Remove pci-bigsur.o.
-+
-+2001-05-14 Jeremy Siegel <jsiegel@mvista.com>
-+
-+ * include/asm-sh/machvec.h: Bug fix. Don't overwrite the
-+ definition of MACH_SE.
-+
-+2001-05-09 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Remove support of 7750 Overdrive.
-+
-+ * include/asm-sh/io_od.h: Removed.
-+ * arch/sh/overdrive/io_od.h: Moved from include/asm-sh,
-+ as a reference.
-+
-+ * include/asm-sh/pci.h: Removed the case of
-+ defined(CONFIG_SH_7750_OVERDRIVE).
-+ * include/asm-sh/io.h: Likewise.
-+
-+ * arch/sh/Makefile (SUBDIRS): Don't add arch/sh/overdrive.
-+ (archclean): Don't go to overdrive subdirs, but stboards.
-+
-+ * arch/sh/config.in (CONFIG_SH_7750_OVERDRIVE): Deleted.
-+
-+2001-05-09 Ian da Silva <idasilva@mvista.com>
-+
-+ Solution Engine 7751 support.
-+
-+ * include/asm-sh/hitachi_se.h, include/asm-sh/io.h,
-+ include/asm-sh/machvec.h, include/asm-sh/pci.h:
-+ Add the case of CONFIG_SH_7751_SOLUTION_ENGINE.
-+
-+ * arch/sh/kernel/setup_se.c (init_se_IRQ): Handle the case of
-+ CONFIG_SH_7751_SOLUTION_ENGINE differentry.
-+
-+ * arch/sh/kernel/pci-7751se.c: New file.
-+
-+ * arch/sh/kernel/io_se.c: Include <asm/pci.h> and <asm/pci-sh7751.h>.
-+ (TOP_PCIC, PCIIOBR, PCIMBR, PCI_IO_AREA, PCI_MEM_AREA) New macros.
-+ (port2adr): Fixed. Don't include 0x2000 as MRSHPC address.
-+ (se_inb, se_inb_p, se_inw, se_inl, se_outb, se_outb_p, se_outw,
-+ se_outl): Handle the case of PXSEG and CONFIG_PCI.
-+ (se_readb, se_readw, se_readl, se_writeb, se_writew, se_writel):
-+ Handle the case of CONFIG_PCI.
-+
-+ * arch/sh/kernel/Makefile: Define objects for
-+ CONFIG_SH_7751_SOLUTION_ENGINE.
-+
-+ * arch/sh/config.in (CONFIG_SH_7751_SOLUTION_ENGINE): Added.
-+
-+2001-05-09 Dustin McIntire <dustin@sensoria.com>
-+
-+ SH7751 support and New target BIGSUR.
-+
-+ * include/asm-sh/bigsur.h, include/asm-sh/io_bigsur.h,
-+ include/asm-sh/pci-sh7751.h, include/asm-sh/serial-bigsur.h: New
-+ files.
-+ * include/asm-sh/serial.h: Added inclusion of serial-bigsur.h.
-+ * include/asm-sh/processor.h: Add comment for SH7751.
-+ * include/asm-sh/pci.h (PCIBIOS_MIN_IO, PCIBIOS_MIN_MEM): Handle
-+ cases of ST40STB1, SH7751 and BIGSUR.
-+ (pcibios_set_master): Comment it out.
-+ * include/asm-sh/machvec.h: Added mv_hw_bigsur bit.
-+ (MACH_BIGSUR): Added.
-+
-+ * include/asm-sh/irq.h: Added CONFIG_CPU_SUBTYPE_SH7751 and
-+ CONFIG_SH_BIGSUR.
-+
-+ * include/asm-sh/io.h: Added CONFIG_SH_BIGSUR.
-+ * include/asm-sh/bugs.h (check_bugs): Print SH7750/SH7750. (was:
-+ only SH7750).
-+
-+ * drivers/pcmcia/hd64465_ss.c (hs_set_io_map): Added last argument 0,
-+ for the call of hd64465_port_map.
-+
-+ * drivers/net/smc9194.h (chip_ids): Added SMC91C100FD.
-+ * drivers/net/smc9194.c (smc_probe): The semantics IRQ2==IRQ9 is
-+ only valid in PC (__i386__).
-+
-+ * drivers/char/sh-sci.h (CONFIG_CPU_SUBTYPE_SH7751): Added.
-+
-+ * arch/sh/mm/cache.c (detect_cpu_and_cache_system): SH7751 is
-+ CPU_SH7750.
-+
-+ * arch/sh/kernel/sh_ksyms.c (__lshrdi3, flush_cache_range,
-+ flush_dcache_page): Added.
-+
-+ * arch/sh/kernel/led_bigsur.c, arch/sh/kernel/mach_bigsur.c,
-+ arch/sh/kernel/pci-bigsur.c, arch/sh/kernel/pci-irq.c,
-+ arch/sh/kernel/pci-sh7751.c, arch/sh/kernel/setup_bigsur.c:
-+ New files.
-+
-+ * arch/sh/kernel/io_hd64465.c (hd64465_isa_port2addr): Renamed
-+ from POT2ADDR.
-+ (PORT2ADDR): Define as macro.
-+
-+ * include/asm-sh/io_bigsur.c: New file.
-+ * arch/sh/kernel/entry.S (exception_handling_table): Added entries
-+ for CONFIG_CPU_SUBTYPE_SH7751.
-+
-+ * arch/sh/kernel/pci-dma.c: New file. Copied from stboards/pcidma.c.
-+ * arch/sh/kernel/pci-sh.c: Removed.
-+
-+ * arch/sh/kernel/Makefile (machine-specific-objs): Added for
-+ CONFIG_SH_BIGSUR.
-+ (obj-$(CONFIG_SH_BIGSUR)): Added.
-+ (obj-$(CONFIG_CPU_SUBTYPE_SH7751)): Added.
-+ (obj-$(CONFIG_SH_BIGSUR)): Added.
-+
-+ * arch/sh/config.in (CONFIG_SH_BIGSUR): New target.
-+ (CONFIG_CPU_SUBTYPE_SH7751): New subtype.
-+
-+ * arch/sh/Makefile (CFLAGS for CONFIG_DEBUG_KERNEL_WITH_GDB_STUB):
-+ Added as comment.
-+
-+2001-05-07 Masahiro Abe <m-abe@aandd.co.jp>
-+
-+ * include/asm-sh/processor.h (struct sh_fpu_hard_struct): Rename
-+ xd_regs to xfp_regs, and change type from long long to long.
-+ (struct sh_fpu_soft_struct): Likewise.
-+ * include/asm-sh/user.h (struct user_fpu_struct): Likewise.
-+
-+2001-05-04 YAEGASHI Takeshi <t@keshi.org>
-+
-+ * drivers/dreamcast/maple/maple.h: Fixed typo.
-+ * include/asm-sh/bitops.h (ffs, hweightN): Added definitions.
-+ * drivers/char/sh-sci.c (sci_init_drivers): Added driver names used
-+ with devfs.
-+
-+2001-04-30 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.4.
-+
-+2001-04-26 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.4-pre8.
-+
-+2001-04-26 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.4-pre7.
-+
-+2001-04-24 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * config.in: Added CONFIG_RTC.
-+ * arch/sh/rtc.c: Moved some definitions to include/asm-sh/rtc.h.
-+ * include/asm-sh/rtc.h: Likewise
-+ * include/asm-sh/mc146818rtc.h (RTC_PORT, RTC_IRQ, CMOS_READ,
-+ CMOS_WRITE, __CMOS_READ, __CMOS_WRITE): Defined.
-+ * arch/sh/sh_ksyms.c (__movstr): EXPORT-ed.
-+ (__ashrdi3, __ashldi3): EXPORT-ed even if SH-3.
-+
-+2001-04-23 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * lib/rwsem.c: Remove inclusion of linux/bitops.h.
-+
-+ * Updated to 2.4.4-pre6.
-+
-+2001-04-20 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/config.in (CONFIG_RWSEM_GENERIC): Removed.
-+ * include/linux/rwsem.h (down_write): Conflict merged.
-+ * include/asm-sh/semaphore.h: Only valid for __KERNEL__.
-+
-+ * Updated to 2.4.4-pre5.
-+
-+2001-04-20 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/config.in: define CONFIG_RWSEM_GENERIC.
-+ * include/asm-sh/bitops.h (__set_bit, __clear_bit): defined.
-+ * include/asm-sh/semaphore.h: Follow i386 implementation.
-+ * include/linux/rwsem.h: small fix.
-+ * lib/rwsem.c: Added include linux/bitops.h.
-+
-+2001-04-19 YAEGASHI Takeshi <t@keshi.org>
-+
-+ * drivers/dreamcast/maple/maple.h: Added copyright notice.
-+
-+ * arch/sh/kernel/setup_dc.c: Added prototype for gapspci_init().
-+ (pci_alloc_consistent): Fixed printk format string.
-+
-+2001-04-18 YAEGASHI Takeshi <t@keshi.org>
-+
-+ * arch/sh/kernel/time.c, drivers/net/8139too.c: MACH_DREAMCAST
-+ should be used to keep the generic kernel working.
-+
-+ * drivers/net/8139too.c (rtl8139_start_xmit): Force to use the
-+ dedicated SRAM buffer for bus-mastering.
-+
-+ * include/asm-sh/mc146818rtc.h: New file: Added to satisfy the
-+ include from drivers/char/rtc.c.
-+
-+2001-04-18 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.4-pre4.
-+
-+2001-04-14 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.4-pre3.
-+
-+2001-04-12 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.4-pre2.
-+
-+2001-04-09 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.4-pre1.
-+
-+2001-04-01 YAEGASHI Takeshi <t@keshi.org>
-+
-+ Added SEGA Dreamcast support with the code released from the FFII
-+ (http://www.ffii.org/).
-+
-+ * arch/sh/config.in: Added Dreamcast Configuration.
-+ * arch/sh/Makefile: Added build rules of Dreamcast drivers.
-+ * arch/sh/kernel/Makefile: Added Dreamcast platform support.
-+ * arch/sh/kernel/io_dc.c: New file: Likewise.
-+ * arch/sh/kernel/mach_dc.c: New file: Likewise.
-+ * arch/sh/setup_dc.c: New file: Likewise
-+ * include/asm-sh/io_dc.h: New file: Likewise.
-+ * arch/sh/kernel/time.c (time_init): Added Dreamcast RTC override.
-+ * drivers/video/dcfb.c: New file: Dreamcast framebuffer driver.
-+ * drivers/pci/pci.ids: Updated vendor/device ids for SEGA Broadband
-+ Adapter.
-+ * drivers/net/8139too.c(board_t, board_info, rtl8139_pci_tbl,
-+ rtl8139_rx_config, RX_BUF_LEN_IDX): Added SEGA Broadband Adapter
-+ support.
-+ * drivers/dreamcast/Config.in: New file: Dreamcast driver support.
-+ * drivers/dreamcast/Makefile: New file: Likewise.
-+ * drivers/dreamcast/maple/Config.in: New file: MAPLE Bus driver
-+ support.
-+ * drivers/dreamcast/maple/Makefile: New file: Likewise.
-+ * drivers/dreamcast/maple/maple.[ch]: New files: MAPLE Bus core driver.
-+ * drivers/dreamcast/maple/dckbd.c: New file: Dreamcast Keyboard driver.
-+ * drivers/dreamcast/maple/dcmouse.c: New file: Dreamcast Mouse driver.
-+ * drivers/dreamcast/maple/dcpad.c: New file: Dreamcast Controller.
-+ driver
-+ * include/linux/input.h (BUS_MAPLE): Added new bus type.
-+ * drivers/char/Makefile (KEYBD): Removed older Dreamcast keyboard
-+ support.
-+ * include/asm-sh/keyboard.h (dreamcast_kbd_init_hw): likewise.
-+
-+ * arsh/sh/kernel/sh_ksyms.c: Include asm/pgalloc.h for
-+ flush_tlb_page prototype.
-+
-+2001-03-31 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Follow the change in 2.4.3.
-+ * include/asm-sh/pgtable.h (__handle_bad_pmd,
-+ __handle_bad_pmd_kernel): Removed.
-+
-+ * arch/sh/kernel/ptrace.c (sys_ptrace): Follow the change of x86
-+ version.
-+ * arch/sh/mm/extable.c (search_exception_table): Likewise.
-+ * arch/sh/mm/init.c (do_check_pgt_cache): Likewise.
-+ * arch/sh/mm/init.c (get_pte_slow, get_pte_kernel_slow,
-+ __handle_bad_pmd_kernel, __handle_bad_pmd, get_bad_pte_table,
-+ empty_bad_pte_table): Removed.
-+ * include/asm-sh/pgtable-2level.h (pgd_clear): Be Function.
-+ * include/asm-sh/pgalloc-2level.h: Removed.
-+ * arch/sh/mm/ioremap.c (remap_area_pmd): Use pte_alloc with init_mm
-+ (was pte_alloc_kernel).
-+ (remap_area_pte): Add checks to BUG.
-+ Check address!=0 for the condition of do-while.
-+ (remap_area_pmd): Add check to BUG.
-+ Use pte_alloc with init_mm (was pte_alloc_kernel).
-+ Check address!=0 for the condition of do-while.
-+ (remap_area_pages): Use pgd_offset (was pgd_offset_k).
-+ Add check to BUG, spin_lock/unlock.
-+ Use pmd_alloc of init_mm instead of pmd_alloc_kernel.
-+ (__ioremap): Change the compare to 0x100000 to '<' (was: '<=').
-+ Return error.
-+
-+ Updated to 2.4.3.
-+ * arch/sh/mm/fault.c (do_page_fault): Use up_read/down_read
-+ (was: up/down).
-+ * arch/sh/kernel/sys_sh.c (do_mmap2): Use up_write/down_write
-+ (was: up/down).
-+ * arch/sh/kernel/sh_ksyms.c (flush_tlb_page): EXPORT-ed.
-+
-+2001-03-09 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * include/asm-sh/sigcontext.h (struct sigcontext): Make it
-+ compatible with glibc-2.2.2.
-+
-+2001-03-08 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * drivers/ide/ide-geometry.c: Added '#ifdef __i386__'
-+ for i386 specific include file.
-+
-+2001-03-04 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/entry.S (call_dpf): Cosmetic changes.
-+ Use "tst r0, r0" instead of "tst #0xff, r0".
-+ (ret_with_reschedule): Likewise.
-+
-+2001-03-04 Philipp Rumpf <prumpf@tux.org>
-+
-+ * arch/sh/kernel/process.c (kernel_thread): Remove bogus comment.
-+ Bug fix. Use "tst r0, r0" instead of "tst #0xff, r0".
-+
-+2001-02-24 Bryan Rittmeyer <bryan@ixiacom.com>
-+
-+ * arch/sh/kernel/sh_ksyms.c (strncat): Added.
-+
-+2001-02-24 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/rtc.c (RTC_BIT_INVERTED): New macro.
-+ (sh_rtc_gettimeofday): Use RTC_BIT_INVERTED.
-+ (sh_rtc_settimeofday): Work around implemented.
-+
-+ Updated to 2.4.2.
-+ * include/asm-sh/termios.h (N_IRDA): Incorporate changes of 2.4.2.
-+ * include/asm-sh/socket.h, arch/sh/kernel/irq.c,
-+ arch/sh/kernel/process.c, arch/sh/kernel/setup.c: Likewise.
-+
-+2001-02-14 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/setup_cqreek.c (mv_ioremap, mv_iounmap,
-+ mv_rtc_gettimeofday, mv_rtc_settimeofday): Define.
-+
-+2001-02-07 Stuart Menefy <stuart.menefy@st.com>
-+
-+ Added support for ST40STB1
-+ * arch/sh/kernel/pci_st40.[ch]: New files
-+ * arch/sh/kernel/irq_intc2.c: New file
-+ * arch/sh/kernel/Makefile: Added build of ST40 files
-+ * arch/sh/kernel/irq_ipr.c: Added support for second SCIF
-+ * arch/sh/kernel/time.c: Added support for FRQCR changes
-+ * arch/sh/mm/cache.c: Added ST40 to list of chip types
-+ * arch/sh/config.in: Added ST40 CPU and ST boards
-+ * arch/sh/overdrive/Makefile: Renamed config option
-+ * include/asm-sh/bugs.h: Added ST40STB1 to list of chips
-+ * include/asm-sh/pci.h: Added DMA support
-+ * include/asm-sh/processor.h: Added ST40STB1 to list of chips
-+
-+ Added support for ST40STB1 HARP and Overdrive platforms
-+ * arch/sh/Makefile: Build in stboards directory if needed
-+ * include/asm-sh/io.h: Added HARP and Overdrive IO
-+ * arch/sh/stboards/{harp.h,irq.c,led.c,mach.c,pcidma.c,setup.c},
-+ arch/sh/stboards/Makefile: New files
-+
-+ * arch/sh/kernel/io_hd64465.c, include/asm-sh/io_hd64465.h: Added
-+ logical shift capability to address mapping code.
-+
-+ * arch/sh/kernel/setup_hd64465.c, include/asm-sh/serial.h: Fixed
-+ support for 16550 serial port.
-+
-+ * arch/sh/kernel/rtc.c: Fix 1/128 second support.
-+
-+ * arch/sh/kernel/setup.c: Added some global variables needed for
-+ frame buffer support.
-+
-+ * drivers/char/sh-sci.[ch]: Added ST40STB1 support, and claim
-+ interrupt on open, allowing SCI(F) to be shared by drivers.
-+
-+ * drivers/net/tulip/tulip_core.c: Added SH specific defines
-+
-+ * drivers/pci/pci.ids: Added STE10/100 device ID
-+
-+ * include/asm-sh/irq.h: Added ST40STB1 defines, and reworked
-+ defintion of NR_IRQS to make easier to manage
-+
-+ * include/asm-sh/hd64461.h, include/asm-sh/hd64465.h: Use new
-+ irq.h defines for peripherial chip interrupts
-+
-+2001-02-02 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.1.
-+ * arch/sh/kernel/traps.c: Include linux/config.h.
-+
-+2001-01-31 Philipp Rumpf <prumpf@tux.org>
-+
-+ * arch/sh/kernel/setup_ec3104.c (get_pending_interrupts):
-+ New function.
-+
-+ * drivers/char/ec3104_keyb.c (ec3104_keyb_receive): Removed.
-+ (e5_checksum, e5_wait_for_cts, e5_send_byte, e5_send_packet,
-+ e5_receive): New functions.
-+ (struct e5_struct): Renamed from ec3104_keyb_struct.
-+
-+ * drivers/video/Config.in (CONFIG_E1355_REG_BASE,
-+ CONFIG_E1355_FB_BASE): New config variables.
-+ * drivers/video/epson1355fb.c (e1355fb_init): Don't call
-+ disable_hw_cursor from here.
-+ (AERO_HACKS): Undefined.
-+
-+2001-01-30 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.1-pre12.
-+
-+2001-01-29 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.1-pre11.
-+ * arch/sh/kernel/signal.c: Remove the decl. of sys_wait4.
-+
-+2001-01-27 Yutaro Ebihara <ebiharaml@si-linux.com>
-+
-+ * arch/sh/config.in (CONFIG_CF_ENABLER): Valid when
-+ CONFIG_SH_CAT68701.
-+
-+2001-01-26 Yutaro Ebihara <ebiharaml@si-linux.com>
-+
-+ Add support for CAT68701 board computer.
-+ * arch/sh/config.in (CONFIG_SH_CAT68701): Added.
-+ * arch/sh/kernel/Makefile (obj-$(CONFIG_SH_CAT68701)): Added.
-+ * arch/sh/kernel/io_cat68701.c: New file.
-+ * arch/sh/kernel/mach_cat68701.c: New file.
-+ * include/asm-sh/io.h (CONFIG_SH_CAT68701): Include
-+ asm/io_cat68701.h.
-+ * inlude/asm/io_cat68701.h: New file.
-+ * include/asm-sh/irq.h (cat68701_irq_demux): New function.
-+
-+2001-01-24 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.1-pre10.
-+
-+2001-01-23 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/signal.c (setup_frame, setup_rt_frame):
-+ Use flush_cache_sigtramp.
-+
-+ * arch/sh/mm/cache.c (flush_cache_sigtramp): Implemented.
-+
-+ * include/asm-sh/pgtable.h (_PAGE_SHARED): Always _PAGE_U0_SHARED.
-+ (was conditionally _PAGE_HW_SHARED on SH-3). With _PAGE_HW_SHARED,
-+ all processes share the page, while proper semantics is "some
-+ processes share the page".
-+ (flush_cache_sigtramp): New function.
-+
-+ * Updated to 2.4.1-pre9.
-+
-+ * arch/sh/kernel/sh_ksyms.c (__udivsi3, __sdivsi3): Added.
-+
-+2001-01-13 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.1-pre3.
-+
-+2001-01-10 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/sh_ksyms.c (__udivsi3_i4, __sdivsi3_i4): Removed.
-+
-+2001-01-10 Bryan Rittmeyer <bryan@ixiacom.com>
-+
-+ * arch/sh/kernel/entry.S: Fixed typo for SR and added "OFF_" for SP.
-+
-+2001-01-10 Denis Dowling <dpd@preston.net>
-+
-+ * arch/sh/kernel/entry.S: Change RX-->OFF_RX.
-+
-+2001-01-08 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * drivers/net/stnic.c (stnic_probe): Set the MAC address from BIOS.
-+
-+ * include/asm-sh/sh_bios.h (sh_bios_shutdown): New function.
-+ * arch/sh/kernel/sh_bios.c (BIOS_CALL_ETH_NODE_ADDR): Added.
-+ (sh_bios_get_node_addr): New function.
-+
-+2001-01-06 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.0.
-+ * arch/sh/kernel/rtc.c: Remove the inclusion of <linux/config.h>.
-+
-+2001-01-04 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/process.c (machine_halt, machine_restart):
-+ Call sh_bios_shutdown.
-+ * include/asm-sh/sh_bios.h (sh_bios_shutdown): New function.
-+ * arch/sh/kernel/sh_bios.c (sh_bios_shutdown): New function.
-+ (BIOS_CALL_SHUTDOWN): Added.
-+
-+ * arch/sh/kernel/sh_bios.c (CONFIG_SH_STANDARD_BIOS): No conditional
-+ compilation, since it's done in Makefile.
-+ (linux/config.h): Not included.
-+
-+ * drivers/net/stnic.c (STNIC_DELAY): We need more delay for
-+ SolutionEngine 7709A.
-+
-+ * arch/sh/lib/delay.c (__const_udelay): Fixed. Use DMULU.
-+
-+2001-01-03 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Updated to 2.4.0-prerelease.
-+ * include/asm-sh/{bugs.h,delay.h}: Follow 2.4.0-prerelease.
-+ * arch/sh/lib/delay.c: Ditto.
-+
-+2001-01-03 Mitch Davis <mdavis@pocketpenguins.com>
-+
-+ * arch/sh/config.in, arch/sh/kernel/entry.S,
-+ arch/sh/kernel/traps.c: Get the setting of the VBR from
-+ the previous value (set by bootloader) instead of explicitly
-+ hard-coding it.
-+ * arch/sh/config.in: Pull in the Linux Kernel Input (LKI)
-+ device configuration.
-+ * arch/sh/kernel/sh_ksyms.c: Export some symbols we need.
-+ * include/asm-sh/segment.h: Some old header files expect this
-+ file to exist.
-+ * drivers/char/Makefile: Added an entry for DMIDA keyboard
-+ support.
-+ * kernel-official/drivers/input/keybdev.c: Added an entry
-+ for SuperH LKI support.
-+ * drivers/char/sh-sci.h: The SCI port on the DMIDA is used
-+ to drive an SPI bus in synchronous mode. So it's not available
-+ as a general-purpose async serial port. Disable it.
-+
-+2001-01-03 Mitch Davis <mdavis@pocketpenguins.com>
-+
-+ * include/asm-sh/hd64465_gpio.h,
-+ arch/sh/kernel/hd64465_gpio.c,
-+ arch/sh/kernel/Makefile: Added support for the 5
-+ 8-bit GPIO ports on the HD64465.
-+ * arch/sh/kernel/io_hd64465.c: Added some debugging DIPRINTKs.
-+ * include/asm-sh/hd64465.h: Added register definitions
-+ for the HD64465's onboard PS/2 mouse/keyboard and USB
-+ controllers.
-+
-+Local Variables:
-+mode: change-log
-+left-margin: 8
-+fill-column: 76
-+version-control: never
-+End:
-diff -ruN linux-2.6.17-vanilla/ChangeLog-2002 linux-2.6.17/ChangeLog-2002
---- linux-2.6.17-vanilla/ChangeLog-2002 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/ChangeLog-2002 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1,1750 @@
-+2002-12-21 Paul Mundt <lethal@linux-sh.org>
-+
-+ * Makefile: Fix-up TOPDIR so it again references /bin/pwd
-+ instead of the non-existant CURDIR .. now we can build a
-+ zImage again.
-+
-+ * arch/sh/kernel/setup.c (get_cpu_subtype): Added.
-+ (show_cpuinfo): General cleanup/rewrite. Get rid of the ifdef mess.
-+ * arch/sh/kernel/time.c: Add profiling definitions.
-+
-+ * arch/sh/mm/cache-sh4.c (flush_icache_range): Drop the usage of
-+ __flush_wback_region() in favor of __flush_dcache_all() -- suboptimal,
-+ but does the Right Thing(tm).
-+
-+ * drivers/net/Kconfig: Add 8139TOO_DREAMCAST. Seems this got
-+ lost along the merges and caused pci_alloc_consistent() to fail.
-+
-+ * include/asm-sh/bugs.h (check_bugs): Lots of cleanup, do
-+ the utsname update per-family, and leave the subtype notification
-+ to get_cpu_subtype().
-+
-+2002-12-19 Paul Mundt <lethal@linux-sh.org>
-+
-+ * Makefile: Bump up the inline-limit to 5000.
-+
-+2002-12-16 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/boards/saturn/Makefile: Add smp.c.
-+ * arch/sh/boards/saturn/smp.c: New file.
-+ * include/asm-sh/saturn/smpc.h: New file.
-+
-+2002-12-15 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/vmlinux.lds.S: Add __per_cpu_{start,end}.
-+
-+ * arch/sh/kernel/smp.c: New file.
-+ (smp_cpus_done, smp_send_reschedule, stop_this_cpu, smp_send_stop,
-+ smp_call_function, __smp_call_function): Added.
-+ * arch/sh/kernel/setup.c: Add platform_setup() and get_system_type()
-+ references .. fixes compile-time warnings.
-+
-+ * include/asm-sh/bitops.h (find_first_bit, find_next_bit): Added.
-+ * include/asm-sh/smp.h (cpu_online, cpu_possible, num_online_cpus):
-+ Added.
-+ * include/asm-sh/spinlock.h: Change rwlock/spinlock lock type to
-+ long. Add spinlock/rwlock debugging.
-+ (spin_lock_init): Fixed up invalid lock reference.
-+ (spin_unlock_wait): Use spin_is_locked().
-+ (_raw_spin_trylock): Added.
-+ (rwlock_init, rwlock_is_locked): Added.
-+ Add a SMP_MSG_RESCHEDULE definition.
-+
-+2002-12-14 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/Kconfig: Add CONFIG_SMP and NR_CPUS definitions.
-+
-+ * arch/sh/kernel/Makefile: Add smp.c if CONFIG_SMP is set.
-+ * arch/sh/kernel/irq.c (probe_irq_on): Get rid of synchronize_irq()
-+ calls, since they weren't doing anything anyways .. use barrier()
-+ for our delay instead.
-+ * arch/sh/kernel/time.c: Clean up profiling definitions.
-+
-+ * include/asm-sh/processor.h: Track cpu_data for each processor.
-+
-+ * include/asm-sh/smp.h: Make it do something.
-+ * include/asm-sh/spinlock.h: Ditto.
-+ * include/asm-sh/system.h: Clean up some left-over cruft that we
-+ don't have any use for anymore.
-+
-+2002-12-13 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/mm/init.c (enable_mmu, disable_mmu): Moved ..
-+ * include/asm-sh/mmu_context.h: .. here. Make it a nop for non-SH3/4.
-+
-+2002-12-12 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/mm/init.c (paging_init): Largely rewritten to support
-+ CONFIG_MMU being set or not while still taking discontig into
-+ consideration. -- Allows SH-3/4 to boot with the MMU turned off.
-+ (mem_init): Cleaned up remaining MAX_LOW_PFN/START_PFN references.
-+ (enable_mmu): Added.
-+ (disable_mmu): Added.
-+ (pgd_alloc, pgd_free, pte_alloc_one_kernel, pte_alloc_one): Moved ..
-+
-+ * arch/sh/kernel/time.c (sh_do_profile): New function.
-+
-+ * include/asm-sh/pgalloc.h: .. here.
-+ * include/asm-sh/page.h (MAP_NR): Re-added. This was removed about
-+ 2 years ago .. but we actually have a real use for it now.
-+ * include/asm-sh/hw-irq.h (sh_do_profile): Removed.
-+
-+2002-12-04 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/Kconfig: Add CPU_SH2/CPU_SUBTYPE_SH7604. Don't set MMU if
-+ CPU_SH2 is set. Default SH_WRITETHROUGH on for SH-2.
-+ * arch/sh/Makefile: Add SH-2 CFLAGS/AFLAGS.
-+ * arch/sh/vmlinux.lds.S: Fix SH-2 alignment.
-+
-+ * arch/sh/kernel/cpu/Makefile: Add sh2/
-+ * arch/sh/kernel/cpu/sh2/Makefile: New file.
-+
-+ * arch/sh/kernel/setup.c (show_cpuinfo): Get rid of SH-3/4
-+ distinction. Print everything out dynamically .. look at the dcache
-+ flags for combined caches (in the case of SH-2 and SH-3).
-+
-+ * arch/sh/mm/Makefile: Add SH-2 cache file.
-+ * arch/sh/mm/cache-sh3.c (detect_cpu_and_cache_system): Default cache
-+ flags to CACHE_COMBINED.
-+ * arch/sh/mm/cache-sh2.c: New file.
-+ * arch/sh/mm/init.c (sh_cache_init): Use __get_oc_addr() to get
-+ the OC address (this is CPU specific).
-+
-+ * include/asm-sh/bugs.h (check_bugs): Add a CPU_SH7604 case.
-+ * include/asm-sh/cache.h: Add SH-2 definitions. Add a flags variable
-+ to the cache_info struct. Also add a __get_oc_addr() fallback.
-+ * include/asm-sh/processor.h: Add CPU_SH7604 definition.
-+
-+2002-12-01 Paul Mundt <lethal@linux-sh.org>
-+
-+ * TODO: More removals .. write-through caching, probing,
-+ config.in/Makefile cleanup, etc.
-+
-+ * arch/sh/Kconfig: Clean up CPU_LITTLE_ENDIAN definition (which was
-+ blatantly ripped off from MIPS, but neglected to change the MIPS
-+ reference). Clean up SH_WDT definition, we're not just for SH-3/4
-+ anymore.. And finally, added SH_WRITETHROUGH and SH_OCRAM definitions.
-+
-+ * arch/sh/kernel/setup.c (show_cpuinfo): Calculate I/D cache sizes
-+ dynamically.
-+ * arch/sh/kernel/sh_ksyms.c: dump_fpu() now takes a pt_regs arg.
-+
-+ * arch/sh/mm/cache-sh3.c: Moved out cache definitions to asm/cache.h
-+ Nuked cache_wback_all() and sh_cache_init, reworked much of
-+ detect_cpu_and_cache_system(), as well as various other cleanups.
-+ * arch/sh/mm/cache-sh4.c: Folded detect_cpu() back into
-+ detect_cpu_and_cache_system() and did more rework. Added a proper
-+ flush_icache_range() and made flush_cache_sigtramp() wrap by
-+ blowing out a line. Removed sh_cache_init().
-+ * arch/sh/mm/init.c (sh_cache_init): Added.
-+
-+ * include/asm-sh/cache.h: Move SH-3/4 cache definitions here. Also
-+ add __cacheline_aligned stuff and a generic cache_info structure
-+ for I/D cache representation per-CPU.
-+ * include/asm-sh/cacheflush.h: Comment on write-through.
-+ * include/asm-sh/mman.h: Added MAP_POPULATE and MAP_NONBLOCK.
-+ * include/asm-sh/mmu_context.h: Drag in asm/uaccess.h..
-+ * include/asm-sh/processor.h: Add i/d-cache entries to sh_cpuinfo.
-+
-+2002-11-16 Paul Mundt <lethal@linux-sh.org>
-+
-+ * TODO: Blow another one off the list. (SH-4 run-time probing).
-+
-+ * arch/sh/kernel/time.c: Rip out the PVR defines ..
-+ * include/asm-sh/processor.h: Move them here, instead. Also add
-+ definitions for 7750S and 7750R.
-+
-+ * arch/sh/mm/cache-sh4.c: detect_cpu_and_cache_system() gutted.
-+ Replaced by detect_cpu(), which does version/revision probing
-+ at run-time instead of at preprocessing time. Kill off remaining
-+ ifdef abuse in flush_cache_4096() .. also add sanity checks for
-+ 7751R.
-+
-+2002-11-15 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/mm/cache-sh3.c, arch/sh/mm/cache-sh4.c: If the OC is in RAM
-+ mode, we only have half the entries to flush.. so tear down
-+ CACHE_OC_NUM_ENTRIES accordingly.
-+
-+2002-11-14 Paul Mundt <lethal@linux-sh.org>
-+
-+ * drivers/video/pvr2fb.c (pvr2fb_init): Move ID assignment down a bit,
-+ so we don't inadvertently dereference NULL..
-+
-+2002-11-13 Paul Mundt <lethal@linux-sh.org>
-+
-+ * AGAINST-2.5.44: Really remove it.
-+
-+ * arch/sh/boards/se/7751/Makefile, arch/sh/boards/adx/Makefile,
-+ arch/sh/boards/bigsur/Makefile, arch/sh/boards/cat68701/Makefile,
-+ arch/sh/boards/cqreek/Makefile, arch/sh/boards/dmida/Makefile,
-+ arch/sh/boards/ec3104/Makefile, arch/sh/boards/harp/Makefile,
-+ arch/sh/boards/overdrive/Makefile, arch/sh/boards/sh2000/Makefile,
-+ arch/sh/boards/unknown/Makefile, arch/sh/boards/hp6xx/hp620/Makefile,
-+ arch/sh/boards/hp6xx/hp680/Makefile,
-+ arch/sh/boards/hp6xx/hp690/Makefile: Kill off O_TARGET.
-+
-+ * arch/sh/cchips/hd6446x/hd64461/Makefile,
-+ arch/sh/cchips/hd6446x/hd64465/Makefile: Here too.
-+
-+ * arch/sh/Kconfig: Support crypto. Add CONFIG_SWAP, CONFIG_MMU, and
-+ CONFIG_VIPT definitions.
-+
-+ * mm/memory.c: Use CONFIG_VIVT for flush_cache_page() check. Could
-+ probably use a CONFIG_ARM check, but screw it.
-+
-+2002-11-05 M. R. Brown <mrbrown@linux-sh.org>
-+
-+ Branch merge of Linux-SH HEAD (2.5.45)
-+
-+ * AGAINST-2.5.45: New file.
-+ * AGAINST-2.5.44: Remove.
-+
-+ * arch/sh/Kconfig, drivers/cdrom/Kconfig, drivers/char/Kconfig,
-+ drivers/input/joystick/Kconfig, drivers/input/keyboard/Kconfig,
-+ drivers/net/Kconfig: Add files.
-+ * arch/sh/Config.help, arch/sh/config.in, drivers/cdrom/Config.help,
-+ drivers/cdrom/Config.in, drivers/char/Config.help,
-+ drivers/input/joystick/Config.help, drivers/input/joystick/Config.in,
-+ drivers/maple/Config.in, drivers/mtd/Config.help,
-+ drivers/mtd/maps/Config.help, drivers/mtd/maps/Config.in,
-+ drivers/net/Config.help, drivers/net/Config.in: Remove files.
-+ * Makefile, arch/sh/kernel/cf-enabler.c, arch/sh/mm/cache-sh4.c,
-+ arch/sh/mm/fault.c, drivers/block/rd.c, drivers/char/Makefile,
-+ drivers/char/maple_keyb.c, drivers/char/shwdt.c,
-+ drivers/net/8139too.c, drivers/pci/pci.ids, fs/mpage.c,
-+ include/asm-sh/uaccess.h, init/do_mounts.c, kernel/timer.c: Modified
-+ files.
-+
-+2002-11-05 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/irq.c (do_IRQ): Add kstat_cpu() hooks.
-+
-+ * arch/sh/kernel/ptrace.c, arch/sh/kernel/process.c,
-+ include/asm-sh/process.h: Death to PTRACE_O_TRACESYSGOOD as well as
-+ PTRACE_SETOPTIONS.
-+
-+ * include/asm-sh/processor.h (copy_segments, release_segments):
-+ Removed.
-+
-+ Sync with 2.5.46 non-Kconfig updates.
-+
-+2002-11-04 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/cpufreq.c (sh_cpufreq_setstate): Do a bit of rework
-+ here so we use the read/write routines provided by the watchdog.h.
-+
-+ * drivers/char/shwdt.c: WDT update. Merge in some bits from mainline,
-+ as well as some additional cleanup. SH-2 support. Move all of the
-+ read/write garbage out..
-+
-+ * include/asm-sh/watchdog.h: Add support for the SH-2. And dump the
-+ read/write stuff here.. then inline it.
-+
-+ * arch/sh/boards/bigsur/irq.c, arch/sh/boards/cqreek/irq.c,
-+ arch/sh/boards/dreamcast/irq.c, arch/sh/boards/harp/irq.c,
-+ arch/sh/boards/overdrive/irq.c, arch/sh/boards/overdrive/led.c,
-+ arch/sh/kernel/irq_intc2.c, arch/sh/kernel/irq_ipr.c,
-+ arch/sh/kernel/irq_maskreg.c, arch/sh/kernel/pci-sh7751.c,
-+ arch/sh/mm/cache-sh3.c, arch/sh/mm/cache-sh4.c,
-+ arch/sh/mm/fault.c, drivers/cdrom/gdrom.c,
-+ drivers/char/sh-sci.c, drivers/maple/maple.c,
-+ drivers/pcmcia/hd64465_ss.c, include/asm-sh/atomic.h,
-+ arch/sh/cchips/hd6446x/hd64461/setup.c,
-+ arch/sh/cchips/hd6446x/hd64465/gpio.c,
-+ arch/sh/cchips/hd6446x/hd64465/setup.c,
-+ include/asm-sh/bitops.h:
-+
-+ Global save_and_cli()/restore_flags() death, make everyone use
-+ local_irq_save()/local_irq_restore().
-+
-+ * include/asm-sh/system.h: Kill the rest of the save_and_cli badness
-+ here.
-+
-+2002-11-02 M. R. Brown <mrbrown@linux-sh.org>
-+
-+ * arch/sh/kernel/cpufreq.c (sh_cpufreq_update_clocks): Update
-+ loops_per_jiffy for the current CPU.
-+ (sh_cpufreq_setstate): Add cpu parameter. Call
-+ cpufreq_notify_transition() before and after the frequency changes.
-+ (sh_cpufreq_setpolicy): Pass cpu to sh_cpufreq_setstate().
-+ (sh_cpufreq_init): Oops, we need kHz, not Hz.
-+
-+ * drivers/char/sh-sci.c (sci_notifier): New function. Attempt to
-+ update baud rate when our peripheral clock changes.
-+ (sci_init_drivers): Add notifier.
-+
-+2002-11-02 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/time.c: Fix up some of the frequency table
-+ declarations, move the divisor/values accessors into the same
-+ macro.
-+ * arch/sh/kernel/cpufreq.c (sh_cpufreq_setstate): Clean up some
-+ watchdog definitions.
-+ * drivers/char/shwdt.c: Move some of the watchdog definitions
-+ out of the way.
-+
-+ * include/asm-sh/watchdog.h: New file.
-+
-+2002-11-01 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/cpufreq.c: New file.
-+ * arch/sh/kernel/time.c: Countless hacks for cpufreq.
-+
-+ * include/asm-sh/freq.h: New file.
-+
-+
-+2002-11-01 M. R. Brown <mrbrown@linux-sh.org>
-+
-+ * drivers/cdrom/Kconfig, drivers/char/Kconfig,
-+ drivers/input/joystick/Kconfig, drivers/input/keyboard/Kconfig,
-+ drivers/net/Kconfig: Add from stock 2.5.45.
-+ * drivers/cdrom/Config.help, drivers/char/Config.help,
-+ drivers/input/joystick/Config.help: Remove.
-+
-+ Linux 2.5.45.
-+
-+ * AGAINST-2.5.45: New file.
-+ * AGAINST-2.5.44: Remove.
-+
-+ * arch/sh/Kconfig: New file.
-+ * arch/sh/Config.help, drivers/cdrom/Config.help,
-+ drivers/cdrom/Config.in, drivers/char/Config.help,
-+ drivers/input/joystick/Config.help, drivers/input/joystick/Config.in,
-+ drivers/maple/Config.in, drivers/mtd/maps/Config.help,
-+ drivers/mtd/maps/Config.in, drivers/mtd/Config.help,
-+ drivers/net/Config.help, drivers/net/Config.in, arch/sh/config.in:
-+ Remove.
-+
-+ * Makefile, arch/sh/mm/fault.c, drivers/char/Makefile,
-+ drivers/net/8139too.c, fs/mpage.c, init/do_mounts.c, kernel/timer.c:
-+ Merge changes from Linux 2.5.45.
-+
-+
-+2002-10-28 M. R. Brown <mrbrown@linux-sh.org>
-+
-+ Restructure PCI code / PCI auto implementation
-+
-+ * TODO: Update.
-+
-+ * arch/sh/config.in: Disable CONFIG_PCI_AUTO for the Dreamcast.
-+
-+ * arch/sh/boards/dreamcast/pci.c: Implement board_pci_channels.
-+ (pcibios_fixup, pcibios_fixup_irqs): New routines.
-+ (pcibios_init): Remove.
-+ * arch/sh/boards/dreamcast/setup.c (platform_setup): Add call to
-+ gapspci_init() if CONFIG_PCI is enabled.
-+
-+ * arch/sh/kernel/pci.c (pcibios_init): New routine.
-+ * arch/sh/kernel/pci_auto.c (pciauto_setup_bars,
-+ pciauto_prescan_setup_bridge, pciauto_postscan_setup_bridge,
-+ pciauto_prescan_setup_cardbus_bridge,
-+ pciauto_postscan_setup_cardbus_bridge, pciauto_bus_scan): Change
-+ declaration to static.
-+
-+ * include/asm-sh/pci.h: Add struct pci_channel; add prototypes for
-+ board-specific fixup routines; add prototype for
-+ pciauto_assign_resources().
-+
-+ * arch/sh/kernel/pcibios.c: Move...
-+ * arch/sh/kernel/pci.c: ...here.
-+ * arch/sh/kernel/pci_auto.c: New file. Import
-+ arch/mips/kernel/pci_auto.c from linux-mips.
-+ * arch/sh/kernel/Makefile: Rename rule for pcibios.o; add rule for
-+ pci_auto.o.
-+
-+2002-10-28 Paul Mundt <lethal@linux-sh.org>
-+
-+ * drivers/video/pvr2fb.c: Rather extensive rewrite for new API.
-+
-+ * arch/sh/boards/se/770x/Makefile: Remove O_TARGET.
-+ * arch/sh/boards/se/770x/irq.c: Drag in hitachi_se.h for
-+ definitions.
-+
-+ * drivers/char/sh-sci.c (sci_receive_chars): Fix handle_sysrq()
-+ invokation.
-+ * drivers/char/sysrq.c (send_sig_all): for_each_task renamed to
-+ for_each_process.
-+
-+2002-10-27 M. R. Brown <mrbrown@linux-sh.org>
-+
-+ * arch/sh/vmlinux.lds.S: Major cleanups, more in-line with the i386
-+ port.
-+
-+ * arch/sh/kernel/setup.c (setup_arch): Get rid of hack console init.
-+ The full hack is scheduled to be removed at a later date.
-+
-+ * drivers/video/pvr2fb.c: Comment out unused structure definitions so
-+ it builds.
-+
-+ * arch/sh/Makefile: Make boards build properly.
-+
-+ * arch/sh/boards/dreamcast/Makefile: 2.5-ify.
-+ * arch/sh/boards/dreamcast/pci.c, arch/sh/boards/dreamcast/rtc.c,
-+ arch/sh/boards/dreamcast/setup.c: Finish merging 2.5.44 changes from
-+ HEAD.
-+
-+ * arch/sh/kernel/Makefile: Remove O_TARGET.
-+ * arch/sh/kernel/time.c: Fix rtc_{get,set}_time() initializations.
-+ (time_init): Make sure we call board_time_init() before calling any
-+ routines that depend on it. Make sure we always get the cpu and bus
-+ clock from the CPU.
-+ * drivers/char/tty_io.c: Merge from 2.5.44.
-+
-+2002-10-24 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/Makefile: Kill off the SE7751 LED code, use
-+ SE generic code instead.
-+ * arch/sh/kernel/led_se.c: Bring in SE7751 definitions if
-+ CONFIG_SH_7751_SOLUTION_ENGINE is set.
-+ * arch/sh/kernel/mach_7751se.c: Change heartbeat_7751se references
-+ to heartbeat_se.
-+ * arch/sh/kernel/led_7751se.c: Removed.
-+
-+2002-10-23 Paul Mundt <lethal@linuxdc.org>
-+
-+ * arch/sh/config.in: Added CONFIG_CMDLINE_BOOL/CONFIG_CMDLINE.
-+ Can now manually hard-code an intial kernel command line.
-+
-+ * arch/sh/kernel/setup.c (setup_arch): Append CONFIG_CMDLINE
-+ to the kernel command line when CONFIG_CMDLINE_BOOL is set.
-+ * arch/sh/kernel/rtc.c (sh_rtc_gettimeofday): Timespec pointer
-+ changed name, reflect that in the rest of the code..
-+
-+ * include/asm-sh/ide.h (ide_init_default_hwifs): Fix the
-+ ide_register_hw() call so it gets passed the correct number of
-+ arguments.
-+
-+2002-10-22 Paul Mundt <lethal@linuxdc.org>
-+
-+ * include/asm-sh/bugs.h (check_bugs): Added a CPU_SH7751R check.
-+
-+2002-10-21 Paul Mundt <lethal@linuxdc.org>
-+
-+ * arch/sh/Makefile: Kill off LOADADDR cruft.
-+
-+ * arch/sh/boot/compressed/Makefile: Fixup ZLDFLAGS so we use
-+ vmlinux.lds.s.
-+
-+ * arch/sh/kernel/entry.S: Rename sys_pread/pwrite to
-+ sys_pread64/pwrite64.
-+ * arch/sh/kernel/time.c: Define jiffies_64. Redefine TICK_SIZE to
-+ use TICK_NSEC instead of tick_nsec.
-+
-+ * drivers/block/rd.c (rd_blkdev_pagecache_IO): Make sure we
-+ flush_dcache_page() on the associated page from the BIO vector
-+ instead of the buffer head.
-+
-+ * drivers/char/maple_keyb.c (dc_kbd_connect): Fix bustype
-+ assignment and make it build again.
-+
-+ * drivers/input/keyboard/maple_keyb.c (dc_kbd_connect): Build fix.
-+
-+ * drivers/video/pv2fb.c (pvr2fb_set_var): Comment out offending
-+ sections. Clean this up later and make things work again.
-+
-+ * fs/mpage.c: Add mm.h header.
-+
-+ * include/asm-sh/param.h: Define USER_HZ and redefine
-+ CLOCKS_PER_SEC.
-+ * include/asm-sh/pgalloc.h (pte_free_tlb): Renamed to
-+ __pte_free_tlb. Likewise for pmd.
-+ * include/asm-sh/system.h (irqs_disabled): Added.
-+ * include/asm-sh/tlb.h (tlb_remove_tlb_entry): Renamed to
-+ __tlb_remove_tlb_entry.
-+ * include/asm-sh/kmap_types.h: New file -- generic skeletal
-+ stuff required by AIO.
-+
-+ * kernel/time.c (do_adjtimex): Protect tick_nsec reference with
-+ CONFIG_VARIABLE_CLOCK_TICK_RATE.
-+ * kernel/timer.c (update_wall_time_one_tick): Use TICK_NSEC
-+ instead of tick_nsec for systems with a non-static clock tick
-+ rate.
-+
-+ Also protect the tick_nsec declaration with the
-+ CONFIG_VARIABLE_CLOCK_TICK_RATE -- fixup all other tick_nsec
-+ references with TICK_NSEC instead.
-+
-+2002-10-21 M. R. Brown <mrbrown@linuxdc.org>
-+
-+ * arch/sh/config.in: Massive cleanups in preparation of the
-+ linux-2_5-restructure merge.
-+
-+ * arch/sh/kernel/head.S: Rename cache_init to sh_cache_init to
-+ prevent conflict with sunrpc code (net/sunrpc/cache.c).
-+ * arch/sh/kernel/mach_dc.c: Rename aica_rtc_* routines to sh_rtc_*.
-+ Temporary stop-gap until restructure where RTC is cleaned up.
-+ * arch/sh/kernel/pci-dc.c (pcibios_init): Call gapspci_init()
-+ directly. Properly initialize PCI subsystem via subsys_initcall().
-+ * arch/sh/kernel/rtc-aica.c: Rename aica_rtc* routines to sh_rtc_*.
-+ Temporary stop-gap until restructure where RTC is cleaned up.
-+ * arch/sh/kernel/setup.c (scif_sercon_putc, scif_sercon_flush,
-+ scif_sercon_write, scif_sercon_device, scif_sercon_setup,
-+ scif_sercon_init, scif_sercon_unregister): New routines. Implement a
-+ hacked SH4 SCIF console until normal consoles are rewritten and
-+ CONFIG_VT is handled properly.
-+ (setup_arch): Inititalize SCIF serial console.
-+ * arch/sh/kernel/setup_dc.c (setup_dreamcast): Remove call to
-+ gapspci_init; minor cleanups.
-+
-+ * arch/sh/mm/cache-sh3.c: Rename cache_init to sh_cache_init to
-+ prevent conflict with sunrpc code (net/sunrpc/cache.c).
-+ * arch/sh/mm/cache-sh4.c: Rename cache_init to sh_cache_init to
-+ prevent conflict with sunrpc code (net/sunrpc/cache.c).
-+ * arch/sh/mm/init.c (paging_init): Initialize mem_map.
-+ CONFIG_DISCONTIGMEM case is not implemented yet.
-+
-+ * drivers/pci/pci.ids: Remove duplicate entry.
-+
-+ * include/asm-sh/hw_irq.h (sh_do_profile): New function. Holdover
-+ until restructure is in place.
-+
-+2002-10-19 M. R. Brown <mrbrown@linuxdc.org>
-+
-+ * arch/sh/kernel/init_task.c: Fix init_signals initialization.
-+ * arch/sh/kernel/irq.c (handle_IRQ_event): Remove unused SMP crud; fix
-+ irq_enter() and irq_exit() macros.
-+ (disable_irq): Call synchronize_irq().
-+ (synchronize_irq): New funtion; available if CONFIG_SMP is defined.
-+ * arch/sh/kernel/pcibios.c (pcibios_align_resource,
-+ pcibios_enable_device): Fix function declarations.
-+ * arch/sh/kernel/rtc-aica.c (aica_rtc_gettimeofday): Convert to struct
-+ timespec.
-+ (aica_rtc_settimeofday): Now accepts time_t instead of
-+ timeval/timespec.
-+ * arch/sh/kernel/rtc.c (sh_rtc_gettimeofday): Convert to struct
-+ timespec.
-+ (sh_rtc_settimeofday): Now accepts time_t instead of timeval/timespec.
-+ * arch/sh/kernel/sh_ksyms.c Commented out screen_info symbol until
-+ it's replacement is determined; Export synchronize_irq().
-+ * arch/sh/kernel/time.c: Merged from restructure.
-+ (do_gettimeoffset): Convert to nanoseconds/update for timespec.
-+ (do_settimeofday): Same here.
-+ (sh_do_profile): Removed.
-+ (do_timer_interrupt): More usec->nsec conversion.
-+ (get_timer_frequency): Use nanoseconds instead of usecs. Not so sure
-+ about this one.
-+ (time_init): CONFIG_CPU_SUBTYPE_ST40STB1 hack gutted; KGDB is
-+ initialized from here.
-+
-+ * include/asm-sh/hardirq.h: Converted to 2.5 series.
-+ * include/asm-sh/machvec.h: mv_rtc_gettimeofday and
-+ mv_rtc_settimeofday prototypes updated.
-+ * include/asm-sh/rtc.h: Update prototypes.
-+ * include/asm-sh/softirq.h: Converted to 2.5 series.
-+ * include/asm-sh/system.h: Comment out macros now included in
-+ kernel/sched.c by default (no need to override).
-+
-+
-+ * arch/sh/kernel/process.c (sys_fork, sys_clone, sys_vfork): Add
-+ missing user_tid parameter, set to NULL for all calls.
-+ * arch/sh/kernel/signal.c (sys_sigsuspend, sys_rt_sigsuspend,
-+ sys_sigreturn, sys_rt_sigreturn, handle_signal): Replace obsolete
-+ field sigmask_lock with sig->siglock.
-+
-+ * include/asm-sh/system.h: Fix definition of save_and_cli() for UP.
-+
-+ * include/asm-sh/linkage.h, include/asm-sh/percpu.h,
-+ include/asm-sh/rmap.h, include/asm-sh/topology.h: Add missing header
-+ files from 2.5 series.
-+
-+ Linux 2.5.44
-+
-+ * AGAINST-2.5.44: New file.
-+ * AGAINST-2.5.43: Removed.
-+
-+ * Makefile, arch/sh/lib/old-checksum.c, drivers/block/rd.c,
-+ drivers/char/Makefile, drivers/char/Config.help, fs/nfs/inode.c,
-+ include/asm-sh/checksum.h, include/asm-sh/system.h: Merge changes from
-+ Linux 2.5.44.
-+
-+2002-10-18 M. R. Brown <mrbrown@linuxdc.org>
-+
-+ * fs/nfs/inode.c: Fix merge breakage.
-+
-+ Linux 2.5.43
-+
-+ * AGAINST-2.5.43: New file.
-+ * AGAINST-2.5.42: Removed.
-+
-+ * Makefile, arch/sh/kernel/mach_7751se.c, arch/sh/kernel/mach_adx.c,
-+ arch/sh/kernel/mach_bigsur.c, arch/sh/kernel/mach_cat68701.c,
-+ arch/sh/kernel/mach_dc.c, arch/sh/kernel/mach_dmida.c,
-+ arch/sh/kernel/mach_ec3104.c, arch/sh/kernel/mach_hp600.c,
-+ arch/sh/kernel/mach_se.c, arch/sh/kernel/mach_unknown.c,
-+ arch/sh/kernel/setup.c, arch/sh/kernel/setup_cqreek.c,
-+ arch/sh/kernel/setup_dc.c, arch/sh/kernel/setup_ec3104.c,
-+ arch/sh/kernel/setup_hd64465.c, arch/sh/kernel/setup_sh2000.c,
-+ arch/sh/stboards/mach.c, drivers/block/rd.c, drivers/Makefile,
-+ drivers/char/Makefile, drivers/char/Config.help,
-+ drivers/mtd/maps/Config.in, drivers/mtd/maps/Config.help,
-+ drivers/mtd/Config.help, fs/nfs/inode.c, mm/memory.c: Merge changes
-+ from Linux 2.5.43.
-+
-+ Linux 2.5.42
-+
-+ * AGAINST-2.5.42: New file.
-+ * AGAINST-2.5.41: Removed.
-+
-+ * Makefile, drivers/block/rd.c, drivers/char/Config.help,
-+ fs/nfs/inode.c, include/linux/input.h: Merge changes from Linux
-+ 2.5.42.
-+
-+ * Makefile: Fix merge breakage.
-+
-+ 5Linux 2.5.41
-+
-+ * AGAINST-2.5.41: New file.
-+ * AGAINST-2.5.40: Removed.
-+
-+ * Makefile, drivers/block/rd.c, drivers/char/Makefile,
-+ drivers/char/Config.help, drivers/char/sh-sci.c,
-+ drivers/char/sh-sci.h, drivers/mtd/maps/Config.in,
-+ drivers/mtd/maps/Config.help, drivers/net/Config.in,
-+ drivers/pci/pci.ids, drivers/pcmcia/hd64465_ss.c, fs/nfs/inode.c,
-+ include/asm-sh/unistd.h, init/do_mounts.c, mm/memory.c: Merge changes
-+ from Linux 2.5.41.
-+
-+ Linux 2.5.40
-+
-+ * AGAINST-2.5.40: New file.
-+ * AGAINST-2.5.39: Removed.
-+
-+ * Makefile, drivers/block/rd.c, drivers/net/8139too.c, mm/memory.c:
-+ Merge changes from Linux 2.5.40.
-+
-+ Linux 2.5.39
-+
-+ * AGAINST-2.5.39: New file.
-+ * AGAINST-2.5.38: Removed.
-+
-+ * Makefile, arch/sh/Makefile, arch/sh/kernel/Makefile,
-+ arch/sh/mm/Makefile, arch/sh/stboards/Makefile, drivers/block/rd.c,
-+ mm/memory.c: Merge changes from Linux 2.5.39.
-+
-+ Linux 2.5.38
-+
-+ * AGAINST-2.5.38: New file.
-+ * AGAINST-2.5.37: Removed.
-+
-+ * Makefile, drivers/block/rd.c: Merge changes from Linux 2.5.38.
-+
-+ Linux 2.5.37
-+
-+ * AGAINST-2.5.37: New file.
-+ * AGAINST-2.5.36: Removed.
-+
-+ * Makefile, drivers/block/rd.c, drivers/net/8139too.c,
-+ drivers/net/Config.in, drivers/net/Config.help, fs/nfs/inode.c,
-+ mm/memory.c: Merge changes from Linux 2.5.37.
-+
-+ Linux 2.5.36
-+
-+ * AGAINST-2.5.36: New file.
-+ * AGAINST-2.5.35: Removed.
-+
-+ * Makefile, arch/sh/Makefile, drivers/char/Makefile, kernel/ptrace.c,
-+ mm/memory.c: Merge changes from Linux 2.5.36.
-+
-+ * Makefile: Fix merge breakage.
-+
-+ Linux 2.5.35
-+
-+ * AGAINST-2.5.35: New file.
-+ * AGAINST-2.5.34: Removed.
-+
-+ * Makefile, arch/sh/Makefile, drivers/char/Makefile,
-+ drivers/char/Config.help, drivers/pci/pci.ids, fs/nfs/inode.c,
-+ include/asm-sh/hdreg.h, include/asm-sh/pgtable.h: Merge changes from
-+ Linux 2.5.35.
-+
-+ Linux 2.5.34
-+
-+ * AGAINST-2.5.34: New file.
-+ * AGAINST-2.5.33: Removed.
-+
-+ * Makefile, arch/sh/mm/init.c, drivers/block/rd.c,
-+ drivers/char/Makefile, drivers/net/8139too.c, init/do_mounts.c,
-+ kernel/ptrace.c, mm/memory.c: Merge changes from Linux 2.5.34.
-+
-+ Linux 2.5.33
-+
-+ * AGAINST-2.5.33: New file.
-+ * AGAINST-2.5.32: Removed.
-+
-+ * Makefile, arch/sh/kernel/irq_intc2.c, arch/sh/kernel/pci-dc.c,
-+ arch/sh/kernel/pci-sh7751.c, arch/sh/kernel/pci_st40.c,
-+ drivers/char/Makefile, drivers/char/Config.help,
-+ drivers/net/8139too.c, drivers/net/Config.in, drivers/net/Config.help,
-+ fs/nfs/inode.c, include/asm-sh/cache.h: Merge changes from Linux
-+ 2.5.33.
-+
-+ * drivers/pci/pci.ids, drivers/char/Makefile: Fix merge breakage.
-+
-+ Linux 2.5.32
-+
-+ * AGAINST-2.5.32: New file.
-+ * AGAINST-2.5.31: Removed.
-+
-+ * Makefile, arch/sh/Makefile, arch/sh/config.in,
-+ drivers/char/Makefile, drivers/char/Config.help,
-+ drivers/input/joystick/Config.help, drivers/input/joystick/Config.in,
-+ drivers/mtd/maps/Config.in, drivers/pci/pci.ids,
-+ drivers/video/epson1355fb.c, drivers/video/hitfb.c,
-+ drivers/video/pvr2fb.c, include/asm-sh/keyboard.h,
-+ include/asm-sh/smplock.h, include/linux/input.h, init/do_mounts.c,
-+ kernel/ptrace.c, mm/memory.c: Merge changes from Linux 2.5.32.
-+
-+ Linux 2.5.31
-+
-+ * AGAINST-2.5.31: New file.
-+ * AGAINST-2.5.30: Removed.
-+
-+ * Makefile, arch/sh/config.in, drivers/char/Makefile,
-+ drivers/net/8139too.c, mm/memory.c: Merge changes from Linux 2.5.31.
-+
-+ * init/do_mounts.c, mm/memory.c: Fix merge breakage.
-+
-+ Linux 2.5.30
-+
-+ * AGAINST-2.5.30: New file.
-+ * AGAINST-2.5.29: Removed.
-+
-+ * Makefile, arch/sh/kernel/Makefile, drivers/block/rd.c,
-+ drivers/Makefile, drivers/char/Makefile, drivers/char/Config.help,
-+ drivers/net/Config.in, fs/nfs/inode.c, include/asm-sh/processor.h,
-+ include/asm-sh/socket.h, include/asm-sh/unistd.h,
-+ include/linux/input.h, init/do_mounts.c, kernel/ptrace.c, mm/memory.c:
-+ Merge changes from Linux 2.5.30.
-+
-+ Linux 2.5.29
-+
-+ * AGAINST-2.5.29: New file.
-+ * AGAINST-2.5.28: Removed.
-+
-+ * Makefile, arch/sh/config.in, drivers/input/joystick/Config.help,
-+ drivers/input/joystick/Config.in, drivers/input/joystick/Makefile,
-+ fs/nfs/inode.c, include/linux/input.h, init/do_mounts.c: Merge changes
-+ from Linux 2.5.29.
-+
-+ Linux 2.5.28
-+
-+ * AGAINST-2.5.28: New file.
-+ * AGAINST-2.5.27: Removed.
-+
-+ * Makefile, arch/sh/kernel/irq.c, arch/sh/kernel/process.c,
-+ drivers/block/rd.c, drivers/Makefile, drivers/char/Makefile,
-+ drivers/net/8139too.c, include/asm-sh/system.h, kernel/ptrace.c,
-+ mm/memory.c: Merge changes from Linux 2.5.28.
-+
-+ Linux 2.5.27
-+
-+ * AGAINST-2.5.27: New file.
-+ * AGAINST-2.5.26: Removed.
-+
-+ * Makefile, include/asm-sh/ide.h, kernel/ptrace.c, mm/memory.c: Merge
-+ changes from Linux 2.5.27.
-+
-+ Linux 2.5.26
-+
-+ * AGAINST-2.5.26: New file.
-+ * AGAINST-2.5.25: Removed.
-+
-+ * Makefile, arch/sh/config.in, drivers/char/Makefile,
-+ drivers/char/Config.help, drivers/input/joystick/Config.help,
-+ drivers/input/joystick/Config.in, drivers/input/joystick/Makefile,
-+ fs/nfs/inode.c, include/asm-sh/pgtable-2level.h,
-+ include/linux/input.h: Merge changes from Linux 2.5.26.
-+
-+ * include/linux/input.h: Fix merge breakage.
-+
-+ Linux 2.5.25
-+
-+ * AGAINST-2.5.25: New file.
-+ * AGAINST-2.5.24: Removed.
-+
-+ * Makefile, arch/sh/Makefile, arch/sh/boot/compressed/Makefile,
-+ arch/sh/boot/Makefile, drivers/char/Makefile,
-+ drivers/input/joystick/Config.help, drivers/input/joystick/Config.in,
-+ drivers/input/joystick/Makefile, fs/nfs/inode.c,
-+ include/linux/input.h, mm/memory.c: Merge changes from Linux 2.5.25.
-+
-+2002-08-28 Matt Boytim <matt@boytim.org>
-+
-+ * drivers/char/sh-sci.c (sci_receive_chars): Add dummy read
-+ when copied==0 to clear interrupt.
-+
-+2002-06-26 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/Makefile (archclean): Remove invoking make under
-+ subdirectory.
-+ (LINKFLAGS): Add adding 'jiffies' definition.
-+
-+ * arch/sh/vmlinux.lds.S (jiffies): Removed.
-+
-+ * arch/sh/mm/ioremap.c: Include <linux/mm.h> and <asm/page.h>.
-+
-+ * arch/sh/mm/cache-sh4.c (copy_user_page, clear_user_page): Follow
-+ new API.
-+
-+ * arch/sh/kernel/irq.c (show_interrupts): Use NR_CPUS (was:
-+ smp_num_cpus).
-+
-+ * arch/sh/kernel/sh_ksyms.c: Don't include <asm/pgalloc.h>.
-+
-+ * include/asm-sh/signal.h: Declare struct pt_regs.
-+
-+ * include/asm-sh/pgtable.h (mk_pte): New definition using pfn_pte.
-+
-+ * include/asm-sh/pgalloc.h (pmd_free_tlb): Fixed to have a argument
-+ tlb.
-+ (ptep_get_and_clear): Fixed the argurment to pfn_to_page.
-+
-+ * include/asm-sh/pgtable-2level.h (pte_pfn): Fixed to access the
-+ member pte (was: pte_low).
-+
-+ * include/asm-sh/page.h (VALID_PAGE): Removed.
-+ (PFN_START, pfn_to_page, page_to_pfn, virt_to_page, pfn_valid,
-+ virt_addr_valid): Defined.
-+
-+ * include/asm-sh/siginfo.h: Remove unmatched #endif.
-+
-+2002-06-26 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * AGAINST-2.5.24: New file.
-+ * AGAINST-2.5.24: Removed.
-+ * Makefile: Version 2.5.24.
-+
-+ * arch/sh/kernel/sys_sh.c, drivers/Makefile, drivers/char/Makefile,
-+ drivers/mtd/maps/Config.in, drivers/net/8139too.c,
-+ drivers/net/Config.in, drivers/pcmcia/hd64465_ss.c: Incorporate
-+ changes in 2.5.23.
-+
-+2002-06-26 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * AGAINST-2.5.23: New file.
-+ * AGAINST-2.5.22: Removed.
-+ * Makefile: Version 2.5.23.
-+
-+ * arch/sh/Makefile, arch/sh/boot/Makefile, arch/sh/kernel/time.c,
-+ drivers/block/rd.c: Incorporate changes in 2.5.23.
-+
-+2002-06-18 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/system.h (prepare_to_switch): Removed.
-+ (prepare_arch_schedule, finish_arch_schedule, prepare_arch_switch,
-+ finish_arch_switch): Added.
-+ (switch_to): New API.
-+
-+ * AGAINST-2.5.22: New file.
-+ * AGAINST-2.5.21: Removed.
-+ * Makefile: Version 2.5.22.
-+
-+ * arch/sh/kernel/setup.c, drivers/Makefile, drivers/block/rd.c,
-+ drivers/char/Makefile, drivers/pci/pci.ids, fs/nfs/inode.c,
-+ init/do_mounts.c, mm/memory.c: Incorporate changes in 2.5.22.
-+
-+2002-06-18 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * AGAINST-2.5.21: New file.
-+ * AGAINST-2.5.20: Removed.
-+ * Makefile: Version 2.5.21.
-+
-+ * arch/sh/boot/Makefile, drivers/block/rd.c, drivers/char/Makefile,
-+ fs/nfs/inode.c: Incorporate changes in 2.5.21.
-+
-+2002-06-18 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/page.h (clear_user_page, copy_user_page): New API.
-+
-+ * AGAINST-2.5.20: New file.
-+ * AGAINST-2.5.19: Removed.
-+ * Makefile: Version 2.5.20.
-+
-+ * drivers/cdrom/Config.help, drivers/cdrom/Config.in,
-+ drivers/cdrom/Makefile, drivers/char/Config.help,
-+ drivers/char/Makefile, drivers/net/Config.help, fs/nfs/inode.c,
-+ include/asm-sh/pgtable.h, init/do_mounts.c, mm/memory.c: Incorporate
-+ changes in 2.5.20.
-+
-+2002-06-18 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/pgtable-2level.h (pte_pfn, pfn_pte, pfn_pmd): Added.
-+
-+ * AGAINST-2.5.19: New file.
-+ * AGAINST-2.5.18: Removed.
-+ * Makefile: Version 2.5.19.
-+
-+ * arch/sh/kernel/Makefile, arch/sh/kernel/signal.c,
-+ arch/sh/stboards/Makefile, drivers/Makefile, drivers/block/rd.c,
-+ drivers/cdrom/Makefile, drivers/char/Makefile,
-+ drivers/video/hitfb.c, include/asm-sh/errno.h, include/asm-sh/ide.h,
-+ include/asm-sh/siginfo.h, init/do_mounts.c, mm/memory.c: Incorporate
-+ changes in 2.5.19.
-+
-+2002-06-18 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/bitops.h (fls): Added.
-+ * arch/sh/kernel/signal.c: Include <linux/suspend.h>.
-+ (do_signal): Handle PF_FREEZE.
-+
-+ * AGAINST-2.5.18: New file.
-+ * AGAINST-2.5.17: Removed.
-+ * Makefile: Version 2.5.18.
-+
-+ * arch/sh/defconfig, arch/sh/kernel/Makefile, arch/sh/lib/Makefile,
-+ arch/sh/mm/Makefile, arch/sh/mm/init.c, drivers/block/rd.c,
-+ drivers/char/Makefile, drivers/char/shwdt.c,
-+ drivers/input/joystick/Makefile, drivers/pci/pci.ids,
-+ fs/nfs/inode.c, init/do_mounts.c, mm/memory.c: Incorporate changes
-+ in 2.5.18.
-+
-+2002-05-24 Paul Mundt <lethal@chaoticdreams.org>
-+
-+ * arch/sh/Config.help, arch/sh/config.in, arch/sh/kernel/Makefile:
-+ Add CONFIG_UBC_WAKEUP definitions.
-+ * arch/sh/kernel/setup.c (setup_arch): Call ubc_wakeup() if
-+ CONFIG_UBC_WAKEUP=y.
-+ * arch/sh/kernel/ubc.S: New file.
-+
-+ * include/asm-sh/ptrace.h: Move UBC definitions out to a UBC
-+ specific header.
-+ * include/asm-sh/ubc.h: New file.
-+
-+2002-05-23 Paul Mundt <lethal@chaoticdreams.org>
-+
-+ * drivers/char/shwdt.c: SH-5 support. Various other cleanups.
-+
-+2002-05-23 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/tlb.h (tlb_start_vma, tlb_end_vma,
-+ tlb_remove_tlb_entry, tlb_flush): To be implemented.
-+
-+ * AGAINST-2.5.17: New file.
-+ * AGAINST-2.5.16: Removed.
-+ * Makefile: Version 2.5.17.
-+
-+ * drivers/block/rd.c, fs/nfs/inode.c, include/asm-sh/ioctls.h,
-+ mm/memory.c: Incorporate changes in 2.5.17.
-+
-+2002-05-23 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/pgalloc.h (pte_free_tlb, pmd_free_tlb): Added.
-+
-+ * AGAINST-2.5.16: New file.
-+ * AGAINST-2.5.15: Removed.
-+ * Makefile: Version 2.5.16.
-+
-+ * arch/sh/kernel/process.c, arch/sh/vmlinux.lds.S,
-+ drivers/net/8139too.c, include/asm-sh/ide.h, include/linux/input.h,
-+ mm/memory.c: Incorporate changes in 2.5.16.
-+
-+2002-05-23 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/signal.c (do_signal): Added SIGURG case.
-+
-+ * AGAINST-2.5.15: New file.
-+ * AGAINST-2.5.14: Removed.
-+ * Makefile: Version 2.5.15.
-+
-+ * arch/sh/kernel/pci_st40.c, arch/sh/kernel/pcibios.c,
-+ drivers/Makefile, drivers/char/Makefile, include/asm-sh/ide.h,
-+ kernel/ptrace.c: Incorporate changes in 2.5.15.
-+
-+2002-05-07 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/pgtable.h (mk_pte_phys): Removed.
-+
-+ * AGAINST-2.5.14: New file.
-+ * AGAINST-2.5.13: Removed.
-+ * Makefile: Version 2.5.14.
-+
-+ * arch/sh/mm/cache-sh4.c, arch/sh/mm/fault.c, arch/sh/mm/init.c,
-+ arch/sh/mm/ioremap.c, drivers/pci/pci.ids, include/asm-sh/pgalloc.h,
-+ init/do_mounts.c, mm/memory.c: Incorporate changes in 2.5.14.
-+
-+2002-05-06 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * AGAINST-2.5.13: New file.
-+ * AGAINST-2.5.12: Removed.
-+ * Makefile: Version 2.5.13.
-+
-+ * Makefile, drivers/block/rd.c, drivers/net/Config.in,
-+ drivers/pci/pci.ids: Incorporate changes in 2.5.13.
-+
-+2002-05-01 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * AGAINST-2.5.12: New file.
-+ * AGAINST-2.5.11: Removed.
-+ * Makefile: Version 2.5.12.
-+
-+ * arch/sh/mm/init.c, drivers/block/rd.c, drivers/char/Makefile,
-+ drivers/pci/pci.ids, fs/nfs/inode.c, mm/memory.c: Incorporate
-+ changes in 2.5.12.
-+
-+2002-04-30 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Follow up to 2.5.11.
-+ * arch/sh/mm/clear_page.S: Remove SYMBOL_NAME.
-+ * arch/sh/kernel/head.S, arch/sh/kernel/entry.S,
-+ arch/sh/lib/memmove.S: Likewise.
-+
-+ * AGAINST-2.5.11: New file.
-+ * AGAINST-2.5.10: Removed.
-+ * Makefile: Version 2.5.11.
-+
-+ * Documentation/cachetlb.txt: Incorporate changes in 2.5.11.
-+ * arch/sh/defconfig, drivers/block/rd.c, drivers/char/Config.help,
-+ drivers/char/Makefile, drivers/video/epson1355fb.c,
-+ drivers/video/hitfb.c, drivers/video/pvr2fb.c,
-+ include/asm-sh/ide.h, mm/memory.c: Likewise.
-+
-+2002-04-26 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * AGAINST-2.5.10: New file.
-+ * AGAINST-2.5.9: Removed.
-+ * Makefile: Version 2.5.10.
-+ * drivers/pci/pci.ids: Incorporate changes in 2.5.10.
-+
-+2002-04-25 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/mm/cache-sh4.c (CACHE_ASSOC): Defined.
-+ (flush_cache_4096_all): Moved to clear_page.S.
-+ (flush_cache_4096): Rewritten. Use __flush_cache_4096.
-+ (flush_dcache_page,__flush_cache_page): Don't protect from interrupt.
-+ (flush_cache_all): Rewritten. Use __flush_dcache_all.
-+ (flush_cache_range): Follow change of flush_cache_4096_all.
-+ * arch/sh/mm/clear_page.S (__flush_cache_4096_all): Removed.
-+ (flush_cache_4096_all): New implementation.
-+ (__flush_cache_4096): Optimized. Use ASSOC bit.
-+ (__flush_dcache_all): New function.
-+ (__clear_user): Clean-up local label.
-+
-+ * copy_page.S (__copy_user): Clean-up local label.
-+
-+ * arch/sh/kernel/time.c (sh_do_profile): Add profile even if PC is in
-+ P2 area.
-+
-+2002-04-23 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * AGAINST-2.5.9: New file.
-+ * AGAINST-2.5.8: Removed.
-+ * Makefile: Version 2.5.9.
-+ * drivers/char/Makefile: Incorporate changes in 2.5.9.
-+ * drivers/pci/pci.ids: Likewise.
-+ * include/asm-sh/errno.h (E2BIG): Follow the change of i386 version.
-+
-+2002-04-17 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/mm/copy_page.S (__copy_user): New function.
-+ * include/asm-sh/uaccess.h (__copy_user): Remove macro,
-+ declared as external function.
-+
-+2002-04-15 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Makefile: Version 2.5.8.
-+ * AGAINST-2.5.8: New file.
-+ * AGAINST-2.5.8-pre3: Removed.
-+
-+ * drivers/block/rd.c: Incorporate changes in 2.5.8-pre3 -> final.
-+
-+2002-04-13 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/mm/clear_page.S (__clear_user): Bug fix.
-+
-+2002-04-12 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Follow up to 2.5.8-pre3.
-+ * include/asm-sh/tlbflush.h (flush_tlb_kernel_range): New API.
-+ * arch/sh/mm/fault.c (flush_tlb_kernel_range): New function.
-+
-+ * arch/sh/kernel/entry.S (sys_sched_setaffinity,
-+ sys_sched_getaffinity): New syscall entries.
-+ * include/asm-sh/unistd.h (__NR_sched_setaffinity,
-+ __NR_sched_getaffinity): New macros.
-+
-+2002-04-11 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Follow up to 2.5.8-pre2.
-+ * arch/sh/kernel/process.c: Include <linux/platform.h>.
-+ (default_idle): New function.
-+ (cpu_idle): Call default_idle.
-+
-+ * arch/sh/kernel/signal.c: Include <linux/binfmt.h>.
-+
-+ * include/asm-sh/pgalloc.h: Inline functions move to real functions.
-+ * arch/sh/mm/init.c (pgd_alloc, pgd_free, pte_alloc_one_kernel,
-+ pte_alloc_one): Moved to here.
-+
-+ * include/asm-sh/thread_info.h (PREEMPT_ACTIVE): Defined.
-+
-+ * include/asm-sh/cacheflush.h, include/asm-sh/tlbflush.h: New files.
-+
-+ * include/asm-sh/mmu_context.h: Include asm/tlbflush.h.
-+
-+ * arch/sh/kernel/signal.c: Include asm/cacheflush.h.
-+ * arch/sh/mm/cache-sh3.c: Likewise.
-+ * arch/sh/mm/cache-sh4.c: Likewise.
-+ * arch/sh/mm/fault.c: Likewise.
-+
-+ * arch/sh/kernel/sh_ksyms.c: Include asm/tlbflush.h,
-+ asm/cacheflush.h.
-+ * arch/sh/mm/ioremap.c: Likewise.
-+
-+2002-04-10 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * Makefile: Version 2.5.8-pre3.
-+ * AGAINST-2.5.8-pre3: New file.
-+ * AGAINST-2.5.8-pre1: Removed.
-+
-+ * include/asm-sh/unistd.h: Incorporate changes in 2.5.8-pre2 -> pre3.
-+ * drivers/block/rd.c: Likewise.
-+
-+ * mm/memory.c: Incorporate changes in 2.5.8-pre1 -> pre2.
-+ * fs/nfs/inode.c: Incorporate changes in 2.5.8-pre1 -> pre2.
-+
-+2002-04-07 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/traps.c (show_task): Don't use __get_user,
-+ it's kernel space. Assume 80-columns.
-+
-+2002-04-06 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/semaphore.c: Inlcude <linux/errno.h>.
-+
-+2002-04-05 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Bug fix for thread_info.
-+ * arch/sh/kernel/ptrace.c (get_stack_long): Use task->thread_info.
-+ (put_stack_long): Likewise.
-+ (sys_ptrace): Likewise.
-+
-+2002-04-05 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * fs/nfs/inode.c: Added.
-+ (nfs_find_actor): Return 0 when the type of file is not same.
-+
-+2002-04-05 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * drivers/input/joystick/Config.in: Updated to 2.5.8-pre1.
-+ * drivers/input/joystick/Config.help: Ditto.
-+ * drivers/input/joystick/Makefile: Ditto.
-+ * drivers/net/Config.in: Ditto.
-+ * arch/sh/kernel/pci-sh7751.c: Martin's e-mail change to ucw.cz.
-+ (follow the change of arch/i386/*.)
-+ * drivers/video/epson1355fb.c (e1355fb_init): Use NODEV Instead of -1.
-+
-+2002-04-04 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Update to 2.5.8-pre1.
-+ * AGAINST-2.5.8-pre1: New file.
-+ * AGAINST-2.5.7: Removed.
-+ * Makefile: Version 2.5.8-pre1.
-+ * Makefile, arch/sh/kernel/sh_ksyms.c, drivers/block/rd.c,
-+ drivers/char/shwdt.c, drivers/net/Config.in, drivers/pci/pci.ids,
-+ init/do_mounts.c: Include changes from mainline (2.5.8-pre1).
-+ * arch/sh/kernel/sh_ksyms.c (simple_strtol, strtok): Removed.
-+ * drivers/char/shwdt.c (nowayout): New module option (to be
-+ configured at runtime by Matt Domsch).
-+
-+2002-04-03 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/cache-sh4.c (flush_cache_4096_all, flush_cache_4096):
-+ Changed the compile time condition for ST40 and SH7751. OC can be
-+ handled in P2, while IC must be handled at P1.
-+
-+ * arch/sh/mm/clear_page.S (__flush_cache_4096_all): Renamed
-+ from __flush_cache_4096_nocheck.
-+
-+2002-03-29 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/cache-sh4.c (flush_cache_4096_nocheck): New function.
-+ (flush_icache_all): New function.
-+ (flush_cache_all): Use flush_icache_all. Don't need to protect
-+ from interrupt as we don't flush dcache by writing CCR.
-+ (flush_cache_range): Don't call __flush_cache_page, but
-+ call flush_cache_4096_nocheck.
-+
-+ * arch/sh/mm/clear_page.S (__flush_cache_4096_nocheck): New function.
-+
-+2002-03-28 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/entry.S (work_notifysig): One cycle optimization.
-+
-+2002-03-28 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/process.c (cpu_idle): Bug fix. Don't exit loop
-+ when hlt_counter != 0.
-+
-+ * include/asm-sh/uaccess.h (__access_ok): Added missing inline
-+ qualifier.
-+
-+ * arch/sh/kernel/entry.S (OFF_TRA): Renamed from IS_SYSCALL.
-+ (system_call, handle_exception): Set tra.
-+
-+ * arch/sh/kernel/signal.c (restore_sigcontext, handle_signal,
-+ do_signal): Use tra.
-+
-+ * include/asm-sh/ptrace.h (tra): Renamed from is_syscall.
-+
-+2002-03-28 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/signal.c (save_sigcontext_fpu): Don't need
-+ to protect from interrupt.
-+ * arch/sh/kernel/process.c (dump_fpu, __switch_to, copy_thread):
-+ Likewise.
-+
-+2002-03-28 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/cache-sh4.c (flush_dcache_page): Merged with
-+ __flush_dcache_page.
-+
-+2002-03-28 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/clear_page.S (__flush_cache_4096): Only define for
-+ SH7750.
-+
-+ * arch/sh/mm/cache-sh4.c (flush_cache_4096): Plain loop for SH7751
-+ and ST40 (no need to go P2).
-+
-+2002-03-27 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/entry.S (IS_SYSCALL): Renamed from SYSCALL_NR.
-+ (system_call, handle_exception): Set is_syscall.
-+
-+ * arch/sh/kernel/signal.c (restore_sigcontext, handle_signal,
-+ do_signal): Use is_syscall.
-+
-+ * include/asm-sh/ptrace.h (is_syscall): Renamed from syscall_nr.
-+
-+ * arch/sh/kernel/signal.c (save_sigcontext_fpu): Use __put_user
-+ (was: __copy_to_user).
-+ (handle_signal, do_signal): Bug fix. Don't set register 0.
-+
-+ * include/asm-sh/hw_irq.h (sh_do_profile): Removed from here.
-+ * arch/sh/kernel/time.c (sh_do_profile): But implemented here.
-+
-+2002-03-27 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/copy_page.S: File merged with __copy_user_page-sh4.S.
-+ * arch/sh/mm/clear_page.S: File merged with __clear_user.S.
-+ (__flush_cache_4096): New function.
-+ * arch/sh/mm/Makefile: Remove __copy_user_page-sh4.S and
-+ __clear_user.S.
-+
-+ * arch/sh/mm/cache-sh4.c (__flush_icache_page): Removed.
-+ (flush_cache_4096): New function.
-+
-+2002-03-27 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/cache-sh4.c (__flush_cache_page): New function.
-+ (flush_cache_range, flush_cache_page, flush_icache_user_range): Use
-+ __flush_cache_page.
-+
-+2002-03-26 NIIBE Yutaka <gniibe@server1.m17n.org>
-+
-+ * arch/sh/mm/cache-sh4.c (flush_cache_mm): Don't check
-+ mm->context, it's for TLB handling.
-+ (flush_cache_range): Likewise.
-+ (flush_cache_mm): Fix the comment. The alias issue is there
-+ for write-through cache too.
-+ (flush_cache_range): Don't handle in P2.
-+
-+2002-03-26 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/cache-sh4.c (flush_cache_range): Bug fix.
-+ Handle the case where PMD is none or bad.
-+ The argument to __flush_icache_page/__flush_dcache_page
-+ is physical address (was: virtual address).
-+
-+2002-03-26 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/mmu_context.h (switch_mm): Remove setting/resetting
-+ of mm->cpu_vm_mask. It's for SMP implementation.
-+ (get_new_mmu_context): Removed.
-+ (get_mmu_context): Merved with get_new_mmu_context.
-+
-+2002-03-25 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/lib/Makefile (obj-y): Removed old-checksum.o as
-+ it seems nothing depends on that.
-+
-+ * arch/sh/kernel/sh_ksyms.c (csum_partial_copy):
-+ Don't export old (possibly obsolete) function.
-+
-+2002-03-25 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/uaccess.h (__clear_user): Make it external
-+ function. (Was: inline function).
-+
-+ * arch/sh/mm/Makefile: Added the entry for __clear_user.o.
-+ * arch/sh/mm/__clear_user.S: File name change. As it's also used by
-+ SH-3, renamed from __clear_user_page-sh4.S,
-+ (__clear_user): New function.
-+
-+2002-03-24 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/system.h (mm_segment_t): Move the definition to...
-+ * include/asm-sh/uaccess.h: ... here. And change it to have boolean
-+ is_user_space.
-+ (KERNEL_DS, USER_DS): New value domain: 0 or 1.
-+ (get_fs): Simplified.
-+ (set_fs): Optimized by asm.
-+ (__get_user_check): New implementation.
-+ (__get_user_1, __get_user_2, __get_user_4): New macros.
-+ (strnlen_user): Use __access_ok function.
-+ (strlen_user): Implemented as inline function.
-+
-+2002-03-23 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/uaccess.h (__range_ok): Removed.
-+ (__access_ok, access_ok): New implementation.
-+
-+ * include/asm-sh/thread_info.h (TIF_USERSPACE): Change to 31,
-+ so that expression can be simple (was: 18).
-+
-+2002-03-22 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/thread_info.h: Define cpu and preempt_count as
-+ 16-bit to fit cache (for SH-3).
-+ (INIT_THREAD_INFO): Initialize the member 'cpu'.
-+
-+ * include/asm-sh/system.h (switch_to): Use __dummy output argument
-+ for r0.
-+
-+ * include/asm-sh/pgtable.h (pte_offset): Removed.
-+ (pte_offset_map, pte_offset_map_nested): Define as pte_offset_kernel.
-+
-+ * include/asm-sh/pgalloc.h (pte_alloc_one): Bug fix for clear_page.
-+
-+ * arch/sh/mm/cache-sh4.c (flush_cache_range): Don't need to check
-+ find_vma.
-+
-+ * arch/sh/mm/cache-sh4.c (flush_cache_range, flush_cache_page,
-+ clear_user_page, copy_user_page): Use pte_offset_kernel.
-+ * arch/sh/mm/fault.c (__do_page_fault): Likewise.
-+
-+ * arch/sh/kernel/signal.c (restore_sigcontext): Use tsk.
-+
-+ * arch/sh/kernel/setup.c (setup_arch): Bug fix for FPU
-+ initialization.
-+
-+ * arch/sh/kernel/ptrace.c (sys_ptrace): Remove unused variable tsk.
-+ (do_syscall_trace): Use tsk.
-+
-+ * arch/sh/kernel/process.c (alloc_task_struct, free_task_struct):
-+ Removed.
-+ (copy_thread): Bug fix for thread_info. Clear TIF_USEDFPU flag.
-+ (copy_thread, dump_thread): Don't distingush init_task specially.
-+ (switch_to): Bug fix, use next->thread_info.
-+
-+ * arch/sh/kernel/entry.S (work_resched, resume_userspace,
-+ syscall_exit): Use r8 for current_thread_info.
-+ (syscall_exit_work): Bug fix, load do_syscall_trace.
-+ (system_call): Don't need to ext.u. Micro opt. for syscall_nr.
-+ (syscall_trace_entry, syscall_badsys): Bug fix for error return
-+ value.
-+
-+2002-03-22 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/mman.h (PROT_SEM): Added.
-+
-+ * arch/sh/kernel/signal.c (do_signal): Follow the name change of
-+ p_ptr -> parent of the task.
-+
-+ * include/asm-sh/unistd.h (__NR_futex): Added.
-+ * arch/sh/kernel/entry.S (sys_call_table): Added sys_futex.
-+ (syscall_exit_work): Move up. (Near work_pending.)
-+ (sys_nfsservctl): Define to sys_ni_syscall, when not NFSD.
-+
-+ * include/asm-sh/pgalloc.h (check_pgt_cache): New macro.
-+
-+2002-03-22 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Update to 2.5.7.
-+ * AGAINST-2.5.7: New file.
-+ * AGAINST-2.5.6: Removed.
-+ * Makefile: Version 2.5.7.
-+ * Makefile, arch/sh/Config.help, arch/sh/config.in,
-+ drivers/Makefile, drivers/pci/pci.ids, kernel/ptrace.c, mm/memory.c:
-+ Include changes from mainline (2.5.7).
-+
-+2002-03-22 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/pgalloc.h (ptep_get_and_clear): Follow the change of
-+ type of member i_map_shared.
-+ * include/asm-sh/unistd.h (__NR_tkill, __NR_sendfile64): Added.
-+ * include/asm-sh/siginfo.h (SI_DETHREAD): Added.
-+ * arch/sh/kernel/entry.S (sys_call_table): Added sys_sendfile64.
-+
-+2002-03-22 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Update to 2.5.6.
-+ * AGAINST-2.5.6: New file.
-+ * AGAINST-2.5.5: Removed.
-+ * Makefile: Version 2.5.6.
-+ * Makefile, drivers/Makefile, drivers/block/rd.c,
-+ drivers/char/Config.help, drivers/char/Makefile,
-+ drivers/net/8139too.c, drivers/net/Config.help,
-+ drivers/net/Config.in, drivers/pci/pci.ids, init/do_mounts.c,
-+ mm/memory.c: Include changes from mainline (2.5.6).
-+
-+2002-03-22 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/pgtable.h (pmd_page_kernel): Renamed from pmd_page.
-+ (pmd_page): New macro for user page.
-+ (pte_offset_kernel): New macro.
-+ (pte_offset_map, pte_offset_map_nested, pte_unmap, pte_unmap_nested):
-+ New macros.
-+
-+ * arch/sh/mm/ioremap.c (remap_area_pmd): Use pte_alloc_kernel
-+ (was: pte_alloc).
-+
-+2002-03-22 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/process.c (cpu_idle): Don't call check_pgt_cache.
-+
-+ * include/asm-sh/pgalloc.h (pmd_populate_kernel): Renemed from
-+ pmd_populate.
-+ (pmd_populate): New function for U0 page.
-+ (do_check_pgt_cache): Removed.
-+ (pmd_free_slow, pmd_free_fast): Removed.
-+ (pmd_alloc_one_fast): Removed.
-+ (pte_free_slow): Renamed to pte_free. Macro removed.
-+ (pte_alloc_one_fast): Removed.
-+ (pte_alloc_one_kernel, pte_free_kernel): New function.
-+ (pte_alloc_one): Call schedule_timeout and try again.
-+
-+2002-03-22 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/entry.S (ret_from_fork): Follow the change of
-+ switch_to. Don't call schedule_tail (it's now SMP only function).
-+ Move the label to syscall_exit.
-+
-+ * include/asm-sh/system.h (switch_to): Change the API (removing
-+ last argument).
-+
-+ * include/asm-sh/page.h (VM_DATA_DEFAULT_FLAGS): Defined.
-+
-+ * include/asm-sh/bitops.h (sched_find_first_bit): 140-bit
-+ implementation. It's moved to here...
-+ * include/asm-sh/mmu_context.h: ... from here. (Removed).
-+
-+2002-03-22 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/cache-sh4.c (flush_icache_user_range): New function.
-+ * include/asm-sh/pgtable.h (flush_icache_user_range): Declared.
-+
-+ * kernel/ptrace.c (access_process_vm): Remove flush_dcache_page
-+ as we do flush_icache_user_range here. (No difference now.)
-+
-+2002-03-20 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Update to 2.5.5.
-+ * AGAINST-2.5.5: New file.
-+ * AGAINST-2.5.4: Removed.
-+ * Documentation/cachetlb.txt: Include the change.
-+ * Makefile: Version 2.5.5. Merged.
-+ * arch/sh/config.in, drivers/Makefile: Sound driver move.
-+ * arch/sh/kernel/signal.c: recalc_sigpending API change.
-+ * drivers/net/8139too.c, drivers/net/Config.in: Update.
-+ * drivers/pci/pci.ids: Update.
-+ * include/asm-sh/pgtable.h: New API flush_icache_user_range,
-+ Removed page_address API here (move to linux/mm.h).
-+ * include/net/inet_ecn.h: Update.
-+ * kernel/ptrace.c: Use new API flush_icache_user_range.
-+ * mm/memory.c: Update.
-+
-+2002-03-09 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/mm/cache-sh4.c (flush_cache_range): New auto variable mm.
-+
-+ * arch/sh/kernel/process.c (get_wchan): Follow the API change of
-+ thread_saved_pc.
-+
-+ * include/asm-sh/thread_info.h (cpu): Added the member, not
-+ meaningful though (SuperH doesn't support SMP).
-+
-+ * include/asm-sh/semaphore.h: Include <linux/wait.h>.
-+
-+ * include/asm-sh/processor.h (thread_saved_pc): Make it a macro,
-+ so that we don't need the implementation of struct task.
-+ Fixed, thread is not a pointer.
-+
-+ * arch/sh/config.in: joystick driver is now under drivers/input.
-+
-+ * arch/sh/kernel/entry.S (flags, work, syscall_trace): Removed.
-+ (k_current): Removed.
-+ (work_pending): Use _TIF_NEED_RESCHED.
-+ (work_resched): Use GET_THREAD_INFO and _TIF_WORK_MASK.
-+ (work_notifysig): Use _TIF_SIGPENDING.
-+ (resume_userspace): Use GET_THREAD_INFO and _TIF_WORK_MASK.
-+ (system_call): Use GET_THREAD_INFO and _TIF_SYSCALL_TRACE.
-+ (system_exit): Use GET_THREAD_INFO and _TIF_ALLWORK_MASK.
-+ (system_trace_entry): Use _TIF_SYSCALL_TRACE.
-+
-+ * include/asm-sh/thread_info.h (_TIF_WORK_MASK, _TIF_ALLWORK_MASK):
-+ Change the value to 8-bit.
-+
-+2002-03-05 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/fpu.c (save_fpu, ieee_fpe_handler,
-+ do_fpu_state_restore): Use set_tsk_thread_flag and
-+ clear_tsk_thread_flag.
-+
-+ * arch/sh/kernel/process.c (print_syscall): Removed.
-+
-+ * include/asm-sh/processor.h (thread_saved_pc): Follow the change
-+ of API (argument type).
-+ (THREAD_SIZE): Removed from here (will be in thread_info.h).
-+ (alloc_task_struct, free_task_struct, get_task_struct, init_task,
-+ init_stack): Removed.
-+ (unlazy_fpu, clear_fpu): Use test_tsk_thread_flag and
-+ clear_tsk_thread_flag.
-+
-+ * include/asm-sh/uaccess.h (KERN_ADDR_LIMIT, USER_ADDR_LIMIT): New
-+ macros.
-+ (KERNEL_DS, USER_DS): Use KERN_ADDR_LIMIT, USER_ADDR_LIMIT.
-+ (get_fs, set_fs): New functions using thread flag.
-+ (__addr_ok, __range_ok): Use get_fs().seg.
-+
-+ * include/asm-sh/thread_info.h: New file.
-+
-+2002-02-28 Paul Mundt <lethal@chaoticdreams.org>
-+
-+ * arch/sh/kernel/traps.c (dump_stack): Removed.
-+ (show_task): Added.
-+ (show_trace_task): Hand off actual stack pointer to show_task()
-+ to do a real backtrace.
-+
-+2002-02-28 M. R. Brown <mrbrown@0xd6.org>
-+
-+ * Makefile: Added -sh to EXTRAVERSION.
-+
-+2002-02-27 Paul Mundt <lethal@chaoticdreams.org>
-+
-+ * arch/sh/mm/cache-sh4.c (__flush_icache_page): Added back in.
-+ (flush_cache_range): Rewritten entirely.
-+ (flush_cache_mm): Only flush caches on a valid mm context.
-+
-+2002-02-27 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Updated to 2.5.4.
-+ * Makefile: Version 2.5.4
-+ * AGAINST-2.5.4: New file.
-+ * AGAINST-2.5.3: Removed.
-+
-+ * arch/sh/kernel/signal.c (setup_frame): Use current_thread_info.
-+ (setup_rt_frame): Likewise.
-+ * include/asm-sh/uaccess.h (get_fs,set_fs,__addr_ok,__range_ok):
-+ Likewise.
-+
-+ * arch/sh/kernel/setup.c (setup_arch): Use set_thread_flag.
-+ * arch/sh/kernel/fpu.c
-+ (save_fpu,ieee_fpe_handler,do_fpu_state_restore): Likewise.
-+
-+ * arch/sh/kernel/ptrace.c (sys_ptrace): Use set_tsk_thread_flag and
-+ clear_tsk_thread_flag.
-+ (do_syscall_trace): Follow the change of i386.
-+
-+ * arch/sh/kernel/pci-dma.c (pci_alloc_consistent): Use virt_to_phys
-+ instead of virt_to_bus.
-+
-+ * arch/sh/kernel/init_task.c (init_thread_union): New variable.
-+
-+ * arch/sh/kernel/entry.S (syscall_call): Rename from syscall_traced.
-+
-+2002-02-27 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * drivers/char/joystick -> drivers/input/joystick.
-+ * include/linux/input.h: Updated to version 1.57.
-+
-+ * include/asm-sh/siginfo.h (SI_TKILL): Added.
-+ * include/asm-sh/scatterlist.h (struct scatterlist): Remove member
-+ address.
-+ * include/asm-sh/pci.h (pci_map_sg, pci_dma_sync_sg): Follow struct
-+ scatterlist interface change.
-+
-+ * drivers/net/8139too.c: Merged version 0.9.24.
-+
-+ * drivers/char/sh-sci.c (sci_ioctl TIOCGSERIAL): Set return code.
-+
-+ * arch/sh/vmlinux.lds.S (.text.lock): Removed.
-+ * arch/sh/kernel/signal.c (do_signal): Use sig_exit.
-+ * Makefile: Version 2.5.4. Merged.
-+ * arch/sh/kernel/entry.S (sys_tkill): Added.
-+ * drivers/char/Makefile: Merged (Removed joystick).
-+ * drivers/Makefile (subdir-$(CONFIG_SERIO),
-+ subdir-$(CONFIG_GAMEPORT)): Merged.
-+
-+2002-02-26 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Updated to 2.5.3.
-+ * Makefile: Version 2.5.3
-+ * AGAINST-2.5.3: New file.
-+ * AGAINST-2.5.3-pre5: Removed.
-+
-+ * include/asm-sh/bitops.h (__ffs): Implemented.
-+
-+ * include/asm-sh/mmu_context.h (sched_find_first_bit): Implemented
-+ (copied i386 implementation).
-+ (sched_find_first_zero_bit): Removed.
-+
-+ * arch/sh/kernel/ptrace.c (sys_ptrace): Use ptrace_check_attach.
-+ Replace PT_TRACESYS -> PT_SYSCALLTRACE.
-+
-+ * arch/sh/kernel/entry.S (sys_call_table): Added entries.
-+ Remove COMPAT_OLD_SYSCALL_ABI things.
-+ Follow up to new member "task_work" in task_struct.
-+
-+ * include/asm-sh/unistd.h (__NR_security, __NR_gettid,
-+ __NR_setxattr, __NR_lsetxattr, __NR_fsetxattr, __NR_getxattr,
-+ __NR_lgetxattr, __NR_fgetxattr, __NR_listxattr, __NR_llistxattr,
-+ __NR_flistxattr, __NR_removexattr, __NR_lremovexattr,
-+ __NR_fremovexattr): Added.
-+
-+2002-02-26 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Merge changes in 2.5.3-pre6.
-+ * Makefile (Drivers-y): Added drivers/base/base.o.
-+ * drivers/Makefile (subdir-y): Added "base".
-+ * drivers/char/Config.help (CONFIG_WATCHDOG): Added.
-+ * arch/sh/Config.help (CONFIG_PCI_GOBIOS, CONFIG_KCORE_ELF,
-+ CONFIG_SH_GENERIC, CONFIG_SH_SOLUTION_ENGINE,
-+ CONFIG_SH_7751_SOLUTION_ENGINE, CONFIG_SH_HP620, CONFIG_SH_HP680,
-+ CONFIG_SH_HP690, CONFIG_SH_CQREEK, CONFIG_SH_DMIDA, CONFIG_SH_EC3104,
-+ CONFIG_SH_DREAMCAST, CONFIG_SH_UNKNOWN): Added.
-+
-+2002-02-26 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/io_se.c (delay): More delay needed for
-+ SolutionEngine SH7709A.
-+
-+2002-01-25 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * init/main.c: Removed as it's same (2.5.2-pre10).
-+ * include/linux/highmen.h: Removed as it's same (2.5.1).
-+
-+2002-01-25 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/Config.help (CONFIG_CPU_SUBTYPE_SH7751,
-+ CONFIG_CPU_SUBTYPE_ST40STB1) Added subtypes.
-+ (CONFIG_SH_SH2000): Added a machine.
-+ (CONFIG_SH_7751_SOLUTION_ENGINE,CONFIG_SH_CQREEK,CONFIG_SH_DMIDA,
-+ CONFIG_SH_DREAMCAST,CONFIG_SH_EC3104,CONFIG_SH_GENERIC,
-+ CONFIG_SH_HP620,CONFIG_SH_HP680,CONFIG_SH_HP690,
-+ CONFIG_SH_OVERDRIVE,CONFIG_SH_SOLUTION_ENGINE,CONFIG_SH_UNKNOWN):
-+ Added entries lost in transition to divided Config.help.
-+
-+ * drivers/net/Config.help (CONFIG_8139TOO_DREAMCAST): Added.
-+
-+2002-01-25 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Updated to 2.5.3-pre5.
-+ * Documentation/Configure.help: Removed.
-+ * arch/sh/Config.help: New file.
-+ * drivers/cdrom/Config.help: New file.
-+ * drivers/char/Config.help: New file.
-+ * drivers/char/joystick/Config.help: New file.
-+ * drivers/mtd/Config.help: New file.
-+ * drivers/mtd/maps/Config.help: New file.
-+ * drivers/net/Config.help: New file.
-+ * drivers/net/8139too.c: Include changes from mainline (2.5.3-pre5).
-+ * arch/sh/config.in: Include changes from mainline (2.5.3-pre5).
-+ * Makefile: Version 2.5.3-pre5.
-+
-+ * AGAINST-2.5.3-pre5: New file.
-+ * AGAINST-2.5.3-pre4: Removed.
-+
-+2002-01-24 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * arch/sh/kernel/process.c: Include <linux/a.out.h>.
-+ * arch/sh/kernel/signal.c: <linux/tty.h>.
-+ * include/asm-sh/mmu_context.h (sched_find_first_zero_bit): Follow
-+ the change of i386 version in 2.5.3-pre4.
-+
-+2002-01-24 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Updated to 2.5.3-pre4.
-+ * Documentation/Configure.help, Documentation/cachetlb.txt,
-+ arch/sh/vmlinux.lds.S, arch/sh/kernel/init_task.c,
-+ arch/sh/kernel/process.c, arch/sh/mm/cache-sh4.c,
-+ arch/sh/mm/fault.c, arch/sh/vmlinux.lds.S, drivers/net/Config.in,
-+ drivers/pcmcia/hd64465_ss.c, drivers/video/hitfb.c,
-+ drivers/video/pvr2fb.c, include/asm-sh/ide.h, include/asm-sh/pci.h,
-+ include/asm-sh/pgalloc.h, include/asm-sh/pgtable.h,
-+ include/linux/highmem.h, init/main.c, mm/memory.c:
-+ Include changes from mainline (2.5.3-pre4).
-+
-+ * AGAINST-2.5.3-pre4: New file.
-+ * AGAINST-2.5.2: Removed.
-+
-+2002-01-24 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * kernel/ptrace.c (access_process_vm): Added flush_dcache_page
-+ lost in 2.5.2 merge.
-+
-+2002-01-19 Paul Mundt <lethal@chaoticdreams.org>
-+
-+ * arch/sh/kernel/io_7751se.c: Typo. Rename CHECK_SH_7751_PCIIO to
-+ CHECK_SH7751_PCIIO, so 7751se can build with CONFIG_PCI=n.
-+
-+ * include/net/inet_ecn.h: Addin #ifdef sanity that was lost in 2.4.14.
-+ This allows us to build with CONFIG_INET=n.
-+
-+2002-01-20 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ * include/asm-sh/pci.h (PCI_DMA_BUS_IS_PHYS): Added.
-+
-+2002-01-15 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Updated to 2.5.2.
-+ * init/main.c (rest_init): Remove call of init_idle().
-+ * drivers/net/8139too.c: Include <linux/crc32.h>, remove
-+ ether_crc and ethernet_polynomial.
-+ * arch/sh/config.in: source lib/Config.in.
-+
-+ * AGAINST-2.5.2: New file.
-+ * AGAINST-2.5.1: Removed.
-+
-+2002-01-08 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Updated to 2.5.2-pre10.
-+ * Makefile, Documentation/Configure.help, arch/sh/kernel/process.c,
-+ arch/sh/kernel/setup.c, drivers/block/rd.c, drivers/char/sh-sci.c,
-+ drivers/char/shwdt.c, init/do_mounts.c, init/main.c, kernel/ptrace.c,
-+ mm/memory.c: Include changes from mainline (2.5.2-pre10).
-+
-+ * drivers/cdrom/gdrom.c (DEVICE_NR): MINOR -> minor.
-+ (gdrom_init): MKDEV -> mk_kdev.
-+ * arch/sh/mm/fault.c (do_page_fault): Use yield.
-+
-+ * include/asm-sh/mmu_context.h (sched_find_first_zero_bit):
-+ Implemented. (Just copied from x86 implementation.)
-+
-+ * arch/sh/kernel/setup.c (sh_console_device): Returns /dev/null.
-+
-+ * arch/sh/kernel/irq.c: Include <linux/mm.h>.
-+ * arch/sh/kernel/process.c: Include <linux/mm.h>.
-+ (cpu_idle): Don't call init_idle here. Remove setting of ->nice.
-+
-+2002-01-05 NIIBE Yutaka <gniibe@m17n.org>
-+
-+ Updated to 2.5.1.
-+ * Makefile, arch/sh/kernel/irq.c, drivers/block/rd.c,
-+ drivers/net/8139too.c, include/linux/highmem.h, init/main.c,
-+ mm/memory.c: Include changes from mainline (2.5.1).
-+
-+ * init/do_mounts.c: New file from mainline with changes for GD-ROM.
-+
-+ * AGAINST-2.5.1: New file.
-+ * AGAINST-2.5.0: Removed.
-+
-+ * include/asm-sh/scatterlist.h: Followed x86 version.
-+
-+Local Variables:
-+mode: change-log
-+left-margin: 8
-+fill-column: 76
-+version-control: never
-+End:
-diff -ruN linux-2.6.17-vanilla/ChangeLog-2003 linux-2.6.17/ChangeLog-2003
---- linux-2.6.17-vanilla/ChangeLog-2003 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/ChangeLog-2003 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1,1409 @@
-+2003-12-18 Paul Mundt <lethal@linux-sh.org>
-+
-+ * mm/mmap.c, Makefile: Merge 2.6.0.
-+
-+2003-11-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
-+
-+ * include/asm-sh/ptrace.h (struct pt_regs): Remove expevt field.
-+ * arch/sh/kernel/ptrace.c (get_stack_long): Count EXPEVT slot and
-+ DSP case.
-+ (put_stack_long): Likewise.
-+ * arch/sh/kernel/process.c (dump_task_regs): Likewise.
-+ (copy_thread): Likewise.
-+
-+2003-11-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
-+
-+ * include/asm-sh/kgdb.h (kgdb_flush_icache_range): Define.
-+ * arch/sh/kernel/kgdb_stub.c (get_step_address): Use it.
-+ (do_single_step, undo_single_step, write_mem_msg): Likewise.
-+ * include/asm-sh/processor.h (struct thread_struct): Add
-+ ubc_pc field.
-+ * arch/sh/kernel/process.c (ubc_usercnt): New variable.
-+ (exit_thread): Clear ubc_pc if required.
-+ (copy_thread): Initialize ubc_pc.
-+ (ubc_set_tracing): New.
-+ (__switch_to): Call ubc_set_tracing if needed.
-+ (break_point_trap): Clear ubc_pc.
-+ * arch/sh/kernel/ptrace.c (compute_next_pc): Remove.
-+ (ubc_set_tracing): Likewise.
-+ (sys_ptrace) [PTRACE_SINGLESTEP]: Only set ubc_pc here.
-+
-+2003-11-26 Paul Mundt <lethal@linux-sh.org>
-+
-+ * Makefile: Merge 2.6.0-test11.
-+
-+2003-11-25 Kaz Kojima <kkojima@rr.iij4u.or.jp>
-+
-+ * include/asm-sh/ptrace.h (struct pt_regs): Add expevt field.
-+
-+2003-11-23 Paul Mundt <lethal@linux-sh.org>
-+
-+ * Makefile, drivers/ide/Kconfig, drivers/ide/pci/alim15x3.c,
-+ drivers/net/8139too.c, include/linux/pci_ids.h, mm/memory.c:
-+ Merge 2.6.0-test10.
-+
-+2003-11-18 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/entry.S (tlb_miss_load, tlb_miss_store,
-+ initial_page_write, tlb_protection_violation_load,
-+ tlb_protection_violation_store, address_error_load,
-+ address_error_store, system_call): Make these global, so we can
-+ reference them externally for the exception handling table.
-+ (none): Renamed to exception_none.
-+ (error): Renamed to exception_error.
-+ (exception_handling_table): Removed. Now defined per-processor
-+ family.
-+
-+ * arch/sh/kernel/cpu/sh3/Makefile: Add ex.o rule.
-+ * arch/sh/kernel/cpu/sh3/ex.S: SH-3 exception handling table.
-+
-+ * arch/sh/kernel/cpu/sh4/Makefile: Add ex.o rule.
-+ * arch/sh/kernel/cpu/sh4/ex.S: SH-4 exception handling table.
-+
-+2003-11-17 PAul van Gool <pvangool@mimotech.com>
-+
-+ * arch/sh/configs/defconfig-se7751: Changed default config for
-+ SolutionEngine 7751(R) boards so default Linux 2.6.0-test9 builds
-+ run on those boards.
-+
-+2003-11-14 Richard Curnow <richard.curnow@superh.com>
-+
-+ * arch/sh/kernel/traps.c (trap_init): If there's no FPU (or it's
-+ disabled) on the SH-4, treat the FPUDIS and SLOTFPUDIS exceptions
-+ as reserved.
-+
-+2003-11-11 Kaz Kojima <kkojima@rr.iij4u.or.jp>
-+
-+ * include/asm-sh/cpu-sh2/sigcontext.h: New file.
-+ * include/asm-sh/cpu-sh3/sigcontext.h: Likewise.
-+ * include/asm-sh/cpu-sh4/sigcontext.h: Likewise.
-+ * include/asm-sh/sigcontext.h: Remove the definition of
-+ sigcontext struct and include cpu specific sigcontext.h.
-+
-+2003-11-10 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/cpu/sh4/sq.c (__sq_remap, sq_unmap): Build fixes
-+ for MMUless.
-+
-+2003-10-31 Kaz Kojima <kkojima@rr.iij4u.or.jp>
-+
-+ * arch/sh/mm/init.c (paging_init): Clear the size of normal zone
-+ if all pages are in dma zone.
-+
-+2003-10-29 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/entry.S (CLI): Added. Consolidate CLI.
-+ (resume_kernel, preempt_stop): Added. CONFIG_PREEMPT works again.
-+ (ret_from_exception): Move above ret_from_irq and call preempt_stop().
-+
-+ * TODO: Preemption works now, take it off the TODO list..
-+
-+2003-10-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
-+
-+ * include/asm-sh/ptrace.h (REG_FPREG0, REG_FPREG15, REG_XFREG0,
-+ REG_FPSCR, REG_FPUL): Change so to match user.h struct.
-+
-+2003-10-25 Paul Mundt <lethal@linux-sh.org>
-+
-+ * drivers/char/keyboard.c, drivers/char/Makefile, Makefile,
-+ drivers/char/tty_io.c, mm/memory.c, mm/mmap.c: Merge 2.6.0-test9.
-+
-+ * arch/sh/mm/Makefile: Don't build regular copy/clear_page.S when
-+ we don't have an MMU.
-+ * arch/sh/mm/pg-nommu.c: New file. clear_page()/copy_page() without
-+ an MMU.
-+
-+ * include/asm-sh/page.h: Wrap clear_user_page()/copy_user_page()
-+ to clear_page()/copy_page() when building for !CONFIG_MMU.
-+
-+2003-10-18 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/Kconfig: Add CONFIG_MAPLE back in.
-+
-+ * drivers/maple/Makefile: Fix for 2.6.
-+ * drivers/maple/maple.c (maple_freeq): Removed. This is only called
-+ once, and kfree() does all of this for us already..
-+ (kmapled_thread): Drop the BKL, fixup damonize() / tsk->comm for 2.6,
-+ and finally, allow for SIGKILL from userspace.
-+
-+2003-10-18 Kaz Kojima <kkojima@rr.iij4u.or.jp>
-+
-+ * arch/sh/kernel/entry.S (sys_call_table): Reserve an entry.
-+ * include/asm-sh/unistd.h (__NR_vserver): Define.
-+ (NR_syscalls): Update.
-+ * arch/sh/kernel/irq.c (disable_irq): Call synchronize_irq only
-+ if the action is not NULL.
-+ (enable_irq): Drop IRQ_INPROGRESS bit from status if depth is 1.
-+ * arch/sh/kernel/traps.c (show_stack): Use kstack_end.
-+
-+2003-10-17 Paul Mundt <lethal@linux-sh.org>
-+
-+ * drivers/char/tty_io.c, drivers/net/8139too.c, Makefile:
-+ Merge 2.6.0-test8.
-+
-+ * net/sunrpc/clnt.c: Deleted, merged into mainline..
-+
-+2003-10-14 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/entry.S, arch/sh/kernel/sh_ksyms.c,
-+ arch/sh/kernel/cpu/sh4/sq.c: MMUless cleanups.
-+
-+ * include/asm-sh/flat.h: New file (needed for binfmt_flat).
-+
-+2003-10-13 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/boards/dreamcast/setup.c, arch/sh/kernel/irq.c,
-+ arch/sh/kernel/process.c, arch/sh/kernel/setup.c,
-+ arch/sh/kernel/signal.c, arch/sh/kernel/sys_sh.c,
-+ drivers/char/sh-sci.c, include/asm-sh/ipc.h, include/asm-sh/irq.h,
-+ include/asm-sh/uaccess.h, include/asm-sh/unistd.h: Random cleanup
-+ of bugs encountered by sparse (mostly __user annotations).
-+
-+2003-10-12 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/entry.S (exception_handling_table): Label exception
-+ codes, thoroughly. Add TMU3 and TMU4 vectors for 7751, and also add
-+ 7760 vectors.
-+
-+ * drivers/char/sh-sci.[ch]: Add 7760 support.
-+
-+ * arch/sh/Kconfig, arch/sh/Makefile, arch/sh/tools/mach-types: Add
-+ CONFIG_SH_7751_SYSTEMH rules.
-+
-+ * arch/sh/boards/systemh/Makefile, arch/sh/boards/systemh/io.c,
-+ arch/sh/boards/systemh/irq.c, arch/sh/boards/systemh/setup.c,
-+ include/asm-sh/systemh/7751systemh.h, include/asm-sh/systemh/io.h:
-+ Add SystemH 7751R support (ported from MPC Data's 2.4.18 tree).
-+
-+ * arch/sh/configs/defconfig-systemh: Provide a rough defconfig.
-+
-+2003-10-10 Paul van Gool <pvangool@mimotech.com>
-+
-+ * arch/sh/boards/se/7751/pci.c: Replaced compile-time check
-+ 'PCIBIOS_MIN_MEM != SH7751_PCI_MEMORY_BASE' with a runtime
-+ check (BUG_ON()).
-+
-+2003-10-09 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/drivers/dma/dma-pvr2.c (pvr2_get_dma_residue): Added.
-+ (pvr2_dma_interrupt): Set xfer_complete when the completion
-+ interrupt fires.
-+
-+ * drivers/video/pvr2fb.c (pvr2fb_open, pvr2fb_release): Removed.
-+ (pvr2fb_dc_init): Do request_dma() for pvr2 channel here instead.
-+ (pvr2fb_dc_exit): Likewise for free_dma().
-+
-+ * arch/sh/kernel/time.c (sched_clock): Cloned from v850.
-+
-+ * net/sunrpc/clnt.c (call_verify): Compile fix. Make all users of
-+ task->tk_pid use dprintk().
-+
-+ * Makefile, Documentation/cachetlb.txt, arch/sh/kernel/init_task.c,
-+ arch/sh/kernel/irq.c, arch/sh/kernel/process.c, arch/sh/kernel/time.c,
-+ arch/sh/kernel/traps.c, arch/sh/mm/init.c, arch/sh/mm/ioremap.c,
-+ drivers/char/generic_serial.c, drivers/char/tty_io.c,
-+ drivers/ide/Kconfig, drivers/serial/Kconfig, drivers/video/Kconfig,
-+ fs/nfs/inode.c, include/asm-sh/cacheflush.h, include/asm-sh/mmzone.h,
-+ include/asm-sh/pgtable.h, include/asm-sh/bigsur/serial.h,
-+ include/asm-sh/ec3104/serial.h, include/linux/mm.h, mm/memory.c,
-+ mm/mmap.c: Merge 2.6.0-test7.
-+
-+ * Makefile, arch/sh/Kconfig, arch/sh/kernel/setup.c,
-+ drivers/char/Makefile, drivers/char/keyboard.c, drivers/char/sysrq.c,
-+ drivers/char/tty_io.c, drivers/ide/Kconfig, drivers/serial/Kconfig,
-+ drivers/serial/Makefile, drivers/video/Kconfig, include/asm-sh/mman.h,
-+ include/asm-sh/posix_types.h, include/asm-sh/processor.h,
-+ include/asm-sh/signal.h include/linux/input.h,
-+ include/linux/miscdevice.h, include/linux/mm.h, mm/memory.c,
-+ mm/mmap.c: Merge 2.6.0-test6.
-+
-+2003-10-08 Paul van Gool <pvangool@mimotech.com>
-+
-+ * arch/sh/boards/se/7751/pci.c: Since PCIBIOS_MIN_MEM is no
-+ longer a hardcoded define, we can no longer use it with the
-+ preprocessor.
-+
-+ * arch/sh/drivers/pci/pci-sh7751.c: Include linux/delay.h to get
-+ definition of mdelay.
-+
-+2003-10-08 Paul Mundt <lethal@linux-sh.org>
-+
-+ * drivers/video/pvr2fb.c (pvr2fb_open, pvr2fb_release, pvr2fb_write):
-+ Added zero-copy DMA when CONFIG_SH_DMA is set.
-+ (pvr2fb_common_init): Map through the store queues when we have
-+ CONFIG_SH_STORE_QUEUES set.
-+
-+2003-10-01 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+ Kaz Kojima <kkojima@rr.iij4u.or.jp>
-+
-+ * arch/sh/kernel/signal.c (OR_R0_R0): Define.
-+ (struct sigframe): Extend retcode to hold 8 instructions.
-+ (struct rt_sigframe): Likewise.
-+ (setup_frame): Put 5 "or r0,r0" instructions to avoid an SH-4
-+ core bug. Flush more cache line if needed.
-+ (setup_rt_frame): Likewise.
-+
-+2003-09-30 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/drivers/dma/Kconfig: Add a couple of options, clean up
-+ channel number selection for both on-chip and off-chip channels.
-+
-+ * arch/sh/drivers/dma/dma-sh.c: Relatively large batch of changes.
-+ Dropped SAR/DAR/CHCR/DMATCR[] usage and went to a direct mapping of
-+ the registers directly. We now support all 8 channels of the 7751R.
-+
-+ * arch/sh/drivers/dma/dma-sh.h: Define MAX_DMAC_CHANNELS (wrap to
-+ CONFIG_NR_ONCHIP_DMA_CHANNELS).
-+
-+ * arch/sh/entry.S (interrupt_table): Add hooks for DMTE4-7 on the
-+ 7751R.
-+
-+ * include/asm-sh/dma.h: Cleanup MAX_DMA_CHANNELS definition based
-+ off of config options.
-+
-+ * include/asm-sh/irq.h: Add DMTE4-7 definitions.
-+
-+ * include/asm-sh/cpu-sh3/dma.h: Kill off old definitions. Define
-+ SH_DMAC_BASE.
-+ * include/asm-sh/cpu-sh4/dma.h: Same here.
-+
-+2003-09-23 Sean McGoogan <Sean.McGoogan@superh.com>
-+
-+ * arch/sh/kernel/entry.S: preserve EXPEVT across nested interrupts.
-+
-+ * arch/sh/kernel/cpu/sh4/fpu.c: Ensure that FPSCR.PR == FPSCR.SZ == 1
-+ never occurs.
-+
-+2003-09-22 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/drivers/pci/pci-sh7751.c: Fixup pci-sh7751.h path.
-+
-+ * arch/sh/boards/snapgear/io.c: Same here.
-+
-+ * arch/sh/mm/cache-sh4.c (detect_cpu_and_cache_system): Add run-time
-+ probing for the SH7760 and the SH4-202. Force EMODE on subtypes that
-+ have it available.
-+
-+ * include/asm-sh/processor.h: Add CPU_SH7760 and CPU_SH4_202
-+ definitions.
-+
-+2003-09-22 Kaz Kojima <kkojima@rr.iij4u.or.jp>
-+
-+ * arch/sh/kernel/signal.c (MOVW, TRAP16): Define.
-+ (struct sigframe): Change retcode so to hold 3 words.
-+ (struct rt_sigframe): Likewise. Remove pinfo and puc members.
-+ (setup_frame): Use mov.w 1f,r3; trap #0x10; 1: .word N sequence
-+ in trampoline.
-+ (setup_rt_frame): Likewise. Don't set pinfo and puc of frame.
-+
-+2003-09-21 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/Kconfig: Add a sane default for SH7751 PCLK value.
-+
-+ * arch/sh/boards/bigsur/Makefile: Remove pci.o
-+ * arch/sh/boards/bigsur/pci.c: Ported for new SH7751 PCI changes, and
-+ moved ..
-+ * arch/sh/drivers/pci/ops-bigsur.c: here.
-+
-+ * arch/sh/boards/snapgear/Makefile, arch/sh/boards/snapgear/pci.c,
-+ arch/sh/drivers/pci/ops-snapgear.c: Same changes as for BigSur.
-+
-+ * arch/sh/drivers/pci/Makefile: Add bigsur/snapgear ops.
-+
-+ * arch/sh/mm/init.c: Include linux/pagemap.h, shut up compiler.
-+
-+ * include/asm-sh/pci-sh7751.h: Added changes for new interface, and
-+ moved ..
-+ * arch/sh/drivers/pci/pci-sh7751.h: here.
-+
-+ * arch/sh/drivers/pci/pci-sh7751.c: Fixup pci_probe definition, we
-+ don't deal with anything other then conf1 access, so drop the unused
-+ flags.
-+ (__area_sdram_check): Added. Responsible for BCR1/BCR2 validation
-+ for a given area.
-+ (sh7751_pcic_init): Added. Do general purpose initialization here.
-+ window0/window1 values are passed in in the form of an address map
-+ structure. Any boards doing this type of general initialization
-+ should be using this code instead (so far BigSur and SnapGear boards,
-+ though this will also include the SystemH 7751R).
-+ (pcibios_setup): Get rid of conf1 and rom args, as they aren't used.
-+
-+ * include/asm-sh/pci.h: Get rid of hardcoded PCIBIOS_MIN_{IO,MEM}
-+ definitions. Wrap these to their respective resources in
-+ board_pci_channels instead.
-+
-+ * drivers/serial/sh-sci.c: Updates for new SH-SCI driver.
-+
-+2003-09-18 David McCullough <davidm@snapgear.com>
-+
-+ * arch/sh/boards/snapgear/pci/pci.c: fixup the memory and IO regions
-+ to get PCI working.
-+
-+2003-09-17 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/drivers/pci/pci-sh7751.c (sh7751_pci_write): Fixup error
-+ path where interrupts weren't getting reenabled.
-+
-+2003-09-16 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/drivers/dma/Makefile: Add dma-isa.o and dma-g2.o.
-+ * arch/sh/drivers/dma/dma-isa.c: New file (provides wrapper for old
-+ ISA DMA API to new DMA API).
-+
-+ * arch/sh/drivers/dma/dma-g2.c: New file (adds preliminary support
-+ for G2 DMA -- currently being tested for SPU DMA, though there
-+ are still some issues with the interrupt not firing correctly).
-+
-+ * include/asm-sh/dma.h (claim_dma_lock, release_dma_lock): Moved to
-+ dma-isa.c.
-+
-+2003-09-08 Paul Mundt <lethal@linux-sh.org>
-+
-+ * Makefile, arch/sh/Kconfig, arch/sh/boards/dmida/mach.c,
-+ arch/sh/boards/dreamcast/irq.c, arch/sh/boards/ec3104/irq.c,
-+ arch/sh/boards/harp/mach.c, arch/sh/boards/hp6xx/hp620/mach.c,
-+ arch/sh/boards/hp6xx/hp680/mach.c, arch/sh/boards/hp6xx/hp690/mach.c,
-+ arch/sh/boards/overdrive/mach.c, arch/sh/boards/saturn/irq.c,
-+ arch/sh/boards/unknown/mach.c, arch/sh/kernel/cpufreq.c,
-+ drivers/Makefile, drivers/char/generic_serial.c,
-+ drivers/char/tty_io.c, drivers/ide/Kconfig, drivers/video/Kconfig,
-+ drivers/ide/pci/alim15x3.c, drivers/net/8139too.c,
-+ drivers/pci/pci.ids, drivers/serial/Kconfig, drivers/serial/Makefile,
-+ drivers/video/Makefile, drivers/video/fbmem.c, fs/nfs/inode.c,
-+ include/asm-sh/semaphore.h, include/linux/miscdevice.h,
-+ include/linux/mm.h, include/linux/pci_ids.h, mm/memory.c,
-+ mm/mmap.c: Merge 2.6.0-test5.
-+
-+2003-09-06 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/Kconfig: Reorder CPU family / subtype selection.
-+
-+2003-09-06 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/lib/div64-generic.c (__div64_32): Bug fix.
-+
-+2003-09-03 TAKANO Nobuyuki <n_takano@sas-tokyo.co.jp>
-+ Kaz Kojima <kkojima@rr.iij4u.or.jp>
-+
-+ * drivers/char/sh-sci.c (sci_init_pins_scif): Mask correct
-+ bits of SCPCR.
-+ (sci_set_real_termios): Don't change TTY_HW_COOK_IN and
-+ TTY_HW_COOK_OUT flags.
-+ * drivers/char/sh-sci.h (O_OTHER, I_OTHER): Remove.
-+
-+2003-09-02 Kaz Kojima <kkojima@rr.iij4u.or.jp>
-+
-+ * arch/sh/kernel/signal.c (setup_frame): Set additional arguments
-+ for the signal handler correctly.
-+ (setup_rt_frame): Likewise.
-+
-+2003-09-01 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/Kconfig: Add CONFIG_SH_DSP.
-+
-+ * arch/sh/kernel/entry.S: Save and restore DSP registers when
-+ CONFIG_SH_DSP is set.
-+ * arch/sh/kernel/head.S: Do initial callin to sh_cpu_init instead
-+ of sh_cache_init.
-+
-+ * arch/sh/kernel/ptrace.c: Add PTRACE_SETDSPREGS/PTRACE_GETDSPREGS
-+ cases to copyin/out dsp regs.
-+
-+ * arch/sh/kernel/setup.c (setup_arch): Remove UBC and FPU setup,
-+ this is done at sh_cpu_init() time instead.
-+
-+ * arch/sh/kernel/traps.c (is_dsp_init): Added.
-+ (do_reserved_inst, do_illegal_slot_inst): Check for DSP instruction
-+ when CONFIG_SH_DSP is set.
-+
-+ * arch/sh/kernel/cpu/Makefile: Add init.o.
-+ * arch/sh/kernel/cpu/init.c: New file. Do initial CPU init here.
-+ Add DSP init code.
-+
-+ * arch/sh/mm/init.c (sh_cache_init): Moved to arch/sh/kernel/cpu/init.c
-+
-+ * include/asm-sh/processor.h: Add CPU_HAS_DSP flag.
-+ * include/asm-sh/ptrace.h: Add DSP regs.
-+
-+ * arch/sh/kernel/irq.c (probe_irq_on): Convert the last remaining
-+ synchronize_irq() to barrier().
-+
-+ * arch/sh/kernel/smp.c: Convert cpu_online_map and cpu_possible_map
-+ to cpumask_t.
-+ (__cpu_up): Use copy_process() instead of do_fork() to manually fork
-+ idle task on cpu.
-+ (start_secondary): Setup VBR properly for secondary cpu, and also
-+ increment cpus_booted.
-+ (stop_this_cpu): cpu_relax() in busy loop.
-+
-+ * include/asm-sh/spinlock.h: Add a RW_LOCK_BIAS definition, update
-+ RW_LOCK_UNLOCKED to initialize the counter with the bias.
-+ (rwlock_is_locked): Use atomic_read() to look at counter value.
-+ (_raw_write_trylock): New function. Mostly cloned from x86_64.
-+
-+ * include/asm-sh/smp.h (cpu_online, cpu_possible): Use cpu_isset()
-+ to work with new cpumask_t types for the maps.
-+ (num_online_cpus): Removed.
-+
-+2003-08-31 Kaz Kojima <kkojima@rr.iij4u.or.jp>
-+
-+ * arch/sh/kernel/entry.S (sys_call_table): Add fadvise64_64 syscall.
-+ * arch/sh/kernel/sys_sh.c (sys_fadvise64_64_wrapper): New.
-+ * include/asm-sh/unistd.h: Add fadvise64_64 syscall.
-+
-+2003-08-27 Paul Mundt <lethal@linux-sh.org>
-+
-+ * drivers/net/Kconfig: Kill off CONFIG_8139TOO_DREAMCAST.
-+ * drivers/net/8139too.c: Likewise. Get rid of SEGABBA references,
-+ use RTL8139 instead. Also use USE_BUF16K for rx ring buffer size
-+ selection.
-+
-+2003-08-25 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/drivers/dma/Makefile, arch/sh/drivers/dma/dma-api.c,
-+ arch/sh/drivers/dma/Kconfig, arch/sh/drivers/dma/dma-pvr2.c,
-+ arch/sh/drivers/dma/dma-sh.[ch]: Added new DMA subsystem with
-+ drivers for the SH DMAC and the DC PVR2.
-+
-+ * arch/sh/kernel/cpu/Makefile: Remove dma.c.
-+ * arch/sh/kernel/cpu/dma.c: Deleted.
-+
-+ * arch/sh/mm/Makefile: Add rule for pg-dma.c.
-+ * arch/sh/mm/pg-dma.c: Added. This implemented optimized versions
-+ of copy_page() and clear_page() using the SH DMAC (selectable with
-+ CONFIG_DMA_PAGE_OPS).
-+ * arch/sh/mm/clear_page.S (clear_page): Renamed to clear_page_slow.
-+ * arch/sh/mm/copy_page.S (copy_page): Renamed to copy_page_slow.
-+ * arch/sh/mm/init.c: Add copy_page/clear_page function pointers,
-+ assign these to the _slow routines at startup, override them later
-+ when something better (ie, DMA) comes along.
-+
-+ * include/asm-sh/dma.h: Rewritten entirely.
-+ * include/asm-sh/page.h: Fixup copy/clear_page definitions.
-+ * include/asm-sh/processor.h (cpu_relax): Get rid of the barrier()
-+ wrapper, use sleep instead, this tends to be more friendly when
-+ it comes to power consumption, and gives us something meaningful
-+ to do in a busy loop.
-+
-+2003-08-23 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/pci/pci.c (pcibios_enable_device): Use pci_name() instead
-+ of dev->dev.name/slot_name.
-+ (pcibios_set_master): Likewise.
-+
-+ * arch/sh/vmlinux.lds.S: Moved ..
-+ * arch/sh/kernel/vmlinux.lds.S: here.
-+
-+ * arch/sh/boot/compressed/Makefile: Fixup vmlinux.lds.s path.
-+
-+ * Makefile, arch/sh/kernel/Makefile, drivers/Makefile,
-+ drivers/char/keyboard.c, drivers/ide/Kconfig,
-+ drivers/ide/pci/alim15x3.c, drivers/mtd/maps/Kconfig,
-+ drivers/net/8139too.c, drivers/net/Kconfig,
-+ drivers/pcmcia/hd64465_ss.c, fs/nfs/inode.c,
-+ include/linux/mm.h, include/linux/pci_ids.h,
-+ kernel/timer.c, mm/memory.c: Merge 2.6.0-test4.
-+
-+2003-08-22 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/Kconfig: Rename BOOT_LINK_ADDR to BOOT_LINK_OFFSET.
-+ * arch/sh/boot/compressed/Makefile: Likewise.
-+
-+2003-08-14 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/Kconfig: Add BOOT_LINK_ADDR. Add '0x' prefix to hex
-+ parameters.
-+ * arch/sh/Makefile: Remove bzImage target.
-+ * arch/sh/boot/Makefile: Likewise.
-+ * arch/sh/boot/compressed/Makefile: Likewise. Compute IMAGE_OFFSET
-+ with BOOT_LINK_ADDR option.
-+ * arch/sh/configs/defconfig-adx: Add '0x' prefix to hex parameters.
-+ * arch/sh/configs/defconfig-cqreek: Likewise.
-+ * arch/sh/configs/defconfig-dreamcast: Likewise.
-+ * arch/sh/configs/defconfig-se7751: Likewise.
-+
-+2003-08-11 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/Makefile: Add bzImage support.
-+ * arch/sh/boot/Makefile: Likewise.
-+ * arch/sh/boot/compressed/Makefile: Likewise.
-+ * arch/sh/boot/compressed/head.S: Likewise. Revived.
-+
-+2003-08-09 Paul Mundt <lethal@linux-sh.org>
-+
-+ * Makefile, arch/sh/defconfig, arch/sh/boards/dreamcast/pci.c,
-+ arch/sh/boards/mpc1211/pci.c, arch/sh/boards/overdrive/galileo.c,
-+ arch/sh/configs/defconfig-adx, arch/sh/configs/defconfig-cqreek,
-+ arch/sh/mm/cache-sh2.c, arch/sh/mm/cache-sh3.c,
-+ drivers/char/tty_io.c, drivers/char/watchdog/shwdt.c,
-+ drivers/ide/Kconfig, drivers/ide/pci/alim15x3.c,
-+ drivers/net/8139too.c, drivers/net/Kconfig, drivers/pci/pci.ids,
-+ drivers/serial/Kconfig, include/asm-sh/processor.h,
-+ include/linux/pci_ids.h, mm/memory.c: Merge 2.6.0-test3.
-+
-+2003-08-05 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/Kconfig: Add CONFIG_PCI_AUTO_UPDATE_RESOURCES to
-+ have the PCI auto code update BARs automatically. This is
-+ the default for just about everyone, read the help text for
-+ more information.
-+
-+ * arch/sh/kernel/pci.c (pcibios_init): Remove pcibios_fixup().
-+ (pcibios_update_resource): Use pci_name() to access dev->slot_name.
-+ (pcibios_enable_device): Same here.
-+
-+ * arch/sh/kernel/pci_auto.c (pciauto_setup_bars): Manually preserve
-+ the existing BAR value when trying to figure out the BAR size. Only
-+ change the BAR value when CONFIG_PCI_AUTO_UPDATE_RESOURCES is set.
-+
-+ * arch/sh/boards/dreamcast/pci.c: Rewritten.
-+
-+ * include/linux/pci_ids.h: Add PCI_DEVICE_ID_SEGA_BBA as well as
-+ PCI_VENDOR_ID_SEGA.
-+
-+2003-08-04 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/Makefile: Add arch/sh/pci/.
-+
-+ * arch/sh/kernel/cpu/sh4/pci-sh7751.c: Moved to arch/sh/pci/.
-+ * arch/sh/kernel/cpu/sh4/pci-st40.[ch]: Same here.
-+
-+2003-08-02 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/cchips/hd6446x/hd6446{1,5}/io.c (hd6446{1,5}_insb,
-+ hd6446{1,5}_insw, hd6446{1,5}_insl, hd6446{1,5}_outsb,
-+ hd6446{1,5}_outsw, hd6446{1,5}_outsl): Deleted. Use the generic
-+ functions.
-+
-+ * arch/sh/cchips/hd6446x/hd6446{1,5}/setup.c: Cleanup irq
-+ return values for new API.
-+
-+ * include/asm-sh/hd6446{1,5}/io.h: Remove unused I/O functions.
-+
-+ * arch/sh/boards/snapgear/io.c (snapgear_insb, snapgear_insw,
-+ snapgear_outsb, snapgear_outsw): Deleted. We can use the
-+ generic functions here as well.
-+
-+ * include/asm-sh/snapgear/io.h: Remove unused I/O functions.
-+
-+ * arch/sh/boards/se/77{0x,51}/io.c (se_readb, se_readw, se_readl,
-+ se_writeb, se_writew, se_writel): Deleted. We can use the
-+ generic interface for this instead.
-+
-+ * arch/sh/boards/se/77{0x,51}/mach.c: Remove the aforementioned
-+ I/O functions + c99 initializers.
-+
-+ * include/asm-sh/se{,7751}/io.h: Remove unused I/O functions.
-+
-+ * arch/sh/kernel/cpu/sh4/pci-sh7751.c
-+ (sh7751_pci_read, sh7751_pci_write): Do general cleanup,
-+ simplify read and write operations in general. Fixes a
-+ bug with getting bogus data back on my 7751R board.
-+
-+2003-08-01 Paul van Gool <pvangool@mimotech.com>
-+
-+ * arch/sh/boards/se/7751/pci.c: Should allow for more than
-+ 1 PCI device. Changed last devfn from 1 to 0xff.
-+
-+2003-07-31 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/Makefile, arch/sh/boards/snapgear/Makefile,
-+ arch/sh/boards/snapgear/io.c, arch/sh/boards/snapgear/pci.c
-+ arch/sh/boards/snapgear/rtc.c, arch/sh/boards/snapgear/setup.c,
-+ arch/sh/tools/mach-types, drivers/net/8139too.c,
-+ include/asm-sh/irq.h, include/asm-sh/mc146818rtc.h,
-+ include/asm-sh/pci.h, include/asm-sh/rtc.h,
-+ include/asm-sh/snapgear/io.h: Add SecureEdge5410 support.
-+
-+ * arch/sh/kernel/cpu/sh4/pci-sh7751.c: Ported to new PCI Auto
-+ API.
-+
-+2003-07-31 Paul van Gool <pvangool@mimotech.com>
-+
-+ * arch/sh/boards/se/7751/pci.c: Added empty pcibios_fixup
-+ function. Added pci_channel definition for SE7751(R) board.
-+
-+2003-07-29 Paul Mundt <lethal@linux-sh.org>
-+
-+ * include/asm-sh/bigsur/io.h, include/asm-sh/mpc1211/io.h,
-+ include/asm-sh/hd64465/io.h, include/asm-sh/overdrive/io.h,
-+ include/asm-sh/hd64461/io.h, include/asm-sh/adx/io.h,
-+ include/asm-sh/ec3104/io.h, include/asm-sh/cat68701/io.h,
-+ include/asm-sh/dreamcast/io.h, include/asm-sh/se/io.h,
-+ include/asm-sh/saturn/io.h, include/asm-sh/sh2000/io.h,
-+ include/asm-sh/se7751/io.h: Kill off I/O definitions and
-+ general __WANT_IO_DEF mess, we grab these implicitly through
-+ the machvec now.
-+
-+ * include/asm-sh/io.h: Bit of a policy change, we now force
-+ _everything_ through the machine vector. Each board already
-+ provides its own definitions for what it wants, there's no
-+ reason to have to repeat this in every board's io.h.
-+
-+ (__set_io_port_base): Added. We use this for setting a
-+ common port base that can then be used by the generic
-+ isa_port2addr implementation.
-+
-+ * arch/sh/kernel/setup.c (sh_mv_setup): Wrap the mv_io_base
-+ assignment to use __set_io_port_base().
-+
-+ * arch/sh/boards/dreamcast/Makefile: Remove io.c
-+ * arch/sh/boards/dreamcast/setup.c: Get rid of dreamcast
-+ specific isa_port2addr implementation, we use the generic
-+ one now.
-+
-+ (platform_setup): Init the port base with __set_io_port_base().
-+
-+ * arch/sh/boards/dreamcast/io.c: Deleted.
-+
-+ * include/asm-sh/dreamcast/io.h: Deleted.
-+
-+2003-07-28 Paul Mundt <lethal@linux-sh.org>
-+
-+ * drivers/char/watchdog/shwdt.c (sh_wdt_open): Get rid of
-+ MOD_INC_USE_COUNT. Use __module_get() for module refcounting
-+ instead.
-+
-+ * arch/sh/kernel/setup.c (setup_arch): Get rid of machvec
-+ setup code.
-+ (sh_mv_setup): Added. Move setup code here. Also walk the
-+ sh_mv and manually load up generic routines for anything
-+ that board-specific code hasn't filled in.
-+
-+ * arch/sh/boards/dreamcast/Makefile: Remove mach.c
-+ * arch/sh/boards/dreamcast/mach.c: Deleted.
-+ * arch/sh/boards/dreamcast/setup.c: Move mv definition here,
-+ also clean it up for the new changes.
-+
-+ * arch/sh/boards/saturn/Makefile: Remove mach.c
-+ * arch/sh/boards/saturn/mach.c: Deleted.
-+ * arch/sh/boards/saturn/setup.c: Follow the dreamcast change
-+ here as well.
-+
-+ * arch/sh/boards/mpc1211/Makefile: Remove mach.c
-+ * arch/sh/boards/mpc1211/rtc.c (mpc1211_time_init): Added.
-+ Wrap rtc definitions to rtc_{get,set}_time, and init them
-+ properly.
-+ * arch/sh/boards/mpc1211/setup.c: Add rtc timer init code,
-+ and follow the other boards for mv changes.
-+ * arch/sh/boards/mpc1211/mach.c: Deleted.
-+
-+ * arch/sh/boards/cqreek/Makefile, arch/sh/boards/cqreek/mach.c,
-+ arch/sh/boards/cqreek/setup.c: Follow mv changes.
-+
-+ * arch/sh/boards/sh2000/Makefile, arch/sh/boards/sh2000/mach.c,
-+ arch/sh/boards/sh2000/setup.c: Follow mv changes.
-+
-+ * arch/sh/boards/hp6xx/hp680/mach.c: Remove generic_ and
-+ sh_rtc_xxx references, since this is handled for us now.
-+ * arch/sh/boards/hp6xx/hp690/mach.c: Same here.
-+
-+ * arch/sh/boards/overdrive/mach.c: And here.
-+
-+ ... and the same for the rest of the boards, so we won't bother
-+ listing them all here again. Look at linuxsh-cvs for this date
-+ if you really care.
-+
-+ * include/asm-sh/machvec.h: Remove several unused functions.
-+
-+2003-07-28 Paul van Gool <pvangool@mimotech.com>
-+
-+ * arch/sh/configs/defconfig-se7751: Added new 2.6.0-test2
-+ config settings:
-+
-+ CONFIG_IOSCHED_AS
-+ CONFIG_IOSCHED_DEADLINE
-+ CONFIG_LBD
-+
-+2003-07-27 Paul van Gool <pvangool@mimotech.com>
-+
-+ * include/asm-sh/pci-sh7751.h: Re-added in order to add
-+ SH7751R_DEVICE_ID definition.
-+
-+ * arch/sh/kernel/cpu/sh4/pci-sh7751.c: Initialized mask
-+ variable to prevent compiler from complaining.
-+
-+ Changed PCIDBG statement to use new variable name instead
-+ of old Linux 2.4 one.
-+
-+ Changed PCI hardware check to also check for 7751R hardware
-+ and not just 7751.
-+
-+2003-07-27 Paul Mundt <lethal@linux-sh.org>
-+
-+ * Makefile, arch/sh/Makefile, arch/sh/mm/init.c,
-+ drivers/ide/Kconfig, drivers/net/8139too.c, drivers/net/Kconfig,
-+ drivers/pci/pci.ids, drivers/serial/Kconfig,
-+ drivers/serial/Makefile, drivers/video/Makefile, fs/nfs/inode.c,
-+ include/linux/pci_ids.h, kernel/time.c: Merge 2.6.0-test2.
-+
-+ * arch/sh/kernel/cpu/sh4/pci-sh7751.c: Merge changes from
-+ mainline with a few fixes.
-+
-+ (pcibios_allocate_resources): Deprecate pci_for_each_dev(),
-+ use pci_find_device() instead.
-+ (pcibios_assign_resources): Same here.
-+
-+ * arch/sh/kernel/setup.c: Use asm/sections.h.
-+ * arch/sh/kernel/traps.c: Same here.
-+
-+ * arch/sh/configs/defconfig-dreamcast: Update defconfig.
-+
-+ * include/asm-sh/local.h: New file.
-+ * include/asm-sh/sections.h: New file.
-+
-+2003-07-27 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/kernel/ptrace.c: Fix single step.
-+
-+2003-07-26 Paul van Gool <paul.vangool@rinconnetworks.com>
-+
-+ * arch/sh/Makefile: Fix for defconfig-% rules when there's no
-+ prior .config.
-+
-+ * arch/sh/configs/defconfig-se7751: Add SE7751 defconfig.
-+
-+2003-07-25 Paul Mundt <lethal@linux-sh.org>
-+
-+ * Documentation/sh/new-machine.txt: Added documentation on how to
-+ work with the new tree.
-+
-+2003-07-22 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/Kconfig: Add KGDB options back in.
-+
-+ * arch/sh/configs/defconfig-dreamcast: Update DC defconfig.
-+
-+ * arch/sh/Makefile: Add support for building a defconfig out of
-+ arch/sh/configs/. Also add a 'make help' text for SH. And finally,
-+ also rename cpu- to cflags- to make the KGDB options look a bit
-+ saner.
-+
-+ Builds for provided defconfigs can now be launched in the format
-+ of: 'make defconfig-$(boardname)' followed by vmlinux/zImage/etc.
-+
-+2003-07-21 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/cpu/sh4/Makefile: Remove irq_intc2.o for generic
-+ 7751 builds, leave this as ST40 specific for now.
-+
-+ * arch/sh/Kconfig: Get rid of CONFIG_PCI_BIOS cruft.
-+
-+ * arch/sh/kernel/cpu/sh4/pci-sh7751.c: Same here (forward port of
-+ changes from David Woodhouse against 2.4 branch).
-+
-+ * arch/sh/Makefile: Link in arch/sh/lib/ before any of the other
-+ libs-y directories.
-+
-+ * arch/sh/lib/Makefile: Add div64-generic.o
-+ * arch/sh/lib/div64-generic.c: New file. Provide a compliant
-+ __div64_32 interface that wraps to our __xdiv64_32.
-+
-+ * include/asm-sh/div64.h (do_div): Removed. Wrap to the generic
-+ interface at asm-generic/div64.h instead.
-+
-+2003-07-19 Paul Mundt <lethal@linux-sh.org>
-+
-+ * drivers/video/pvr2fb.c: Rewrite. Use the hardware palette, and add
-+ support for PCI-based PVR2 boards (such as the neon250 in my case).
-+
-+2003-07-19 Kaz Kojima <kkojima@rr.iij4u.or.jp>
-+
-+ * arch/sh/kernel/entry.S (sys_call_table): Add new syscalls.
-+ * arch/sh/kernel/irq.c (do_IRQ): Use kstat_this_cpu.
-+ * include/asm-sh/hardirq.h (irq_cpustat_t): Remove unused members.
-+ * include/asm-sh/unistd.h: Add new syscalls.
-+
-+2003-07-17 Paul Mundt <lethal@linux-sh.org>
-+
-+ Merge with 2.5.74 ... 2.6.0-test1.
-+
-+2003-07-16 Paul Mundt <lethal@linux-sh.org>
-+
-+ * include/asm-sh/segment.h: Re-added (some headers unfortunately still
-+ seem to require this..).
-+ * include/asm-sh/cache.h: Fixup L1_CACHE_BYTES definition (use the shift
-+ defined per-cpu family).
-+ * include/asm-sh/cpu-sh2/cache.h: Remove L1_CACHE_BYTES definition, and
-+ add a L1_CACHE_SHIFT definition instead.
-+ * include/asm-sh/cpu-sh3/cache.h: Same here.
-+ * include/asm-sh/cpu-sh4/cache.h: and here.
-+
-+2003-07-15 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/mm/cache-sh4.c: Add a cpu flag for p2 cache restriction
-+ for users who need it (7750, 7750S/7750R?) and test that instead
-+ of the subtype.
-+
-+ * include/asm-sh/processor.h: Define CPU_HAS_P2_FLUSH_BUG.
-+
-+2003-07-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
-+
-+ * arch/sh/kernel/entry.S (sys_call_table): Add new syscalls.
-+ * arch/sh/kernel/irq.c (__report_bad_irq, report_bad_irq): New.
-+ (noirqdebug_setup): Likewise.
-+ (note_interrupt): Likewise.
-+ (do_IRQ): Call note_interrupt if required.
-+ * arch/sh/kernel/module.c (module_arch_cleanup): new.
-+ * arch/sh/mm/fault.c (do_page_fault): Use in_atomic. Use
-+ VM_FAULT_xxx symbolic constants. Use fixup_exception.
-+ * arch/sh/mm/ioremap.c: Fix so to follow i386 changes.
-+ * drivers/char/sh-sci.c (sci_hungup, sci_close): Add again.
-+ (sci_real_drive): Add sci_hungup and sci_close.
-+ (sci_rx_interrupt): Return IRQ_HANDLED.
-+ (sci_tx_interrupt, sci_br_interrupt, sci_br_interrupt): Likewise.
-+ (sci_init_drivers): Change return type of handlers.
-+ * drivers/net/stnic.c (do_stnic_intr): Return the result of
-+ ei_interrupt.
-+ * include/asm-sh/hardirq.h: Remove commented out part.
-+ * include/asm-sh/pgalloc.h (pte_alloc_one_kernel): Use
-+ __GFP_REPEAT feature.
-+ (pte_alloc_one): Likewise.
-+ * include/asm-sh/unistd.h: Update for new syscalls.
-+
-+2003-07-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
-+
-+ * include/asm-sh/system.h (switch_to): Set LAST properly.
-+
-+2003-07-06 Dominik Brodowski <linux@brodo.de>
-+ Paul Mundt <lethal@linux-sh.org>
-+
-+ * drivers/pcmcia/hd64465_ss.c: Update for new PCMCIA API.
-+
-+2003-06-29 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/Kconfig, drivers/serial/Kconfig, drivers/serial/Makefile,
-+ drivers/char/keyboard.c, fs/nfs/inode.c, include/linux/highmem.h,
-+ include/linux/input.h, include/linux/pci_ids.h, kernel/timer.c,
-+ Makefile: Merge 2.5.73.
-+
-+ * arch/sh/Kconfig, arch/sh/kernel/time.c, drivers/char/keyboard.c,
-+ drivers/ide/Kconfig, include/linux/input.h, kernel/sysctl.c,
-+ kernel/time.c, kernel/timer.c, Makefile: Merge 2.5.72.
-+
-+2003-06-15 Paul Mundt <lethal@linux-sh.org>
-+
-+ * Makefile, arch/sh/kernel/irq.c, arch/sh/lib/Makefile,
-+ drivers/Makefile, drivers/char/Makefile,
-+ drivers/char/generic_serial.c, drivers/char/sh-sci.c,
-+ drivers/char/tty_io.c, drivers/ide/Kconfig, drivers/mtd/mtdcore.c,
-+ drivers/mtd/mtdpart.c, drivers/mtd/chips/cfi_cmdset_0002.c,
-+ drivers/mtd/chips/jedec_probe.c, drivers/mtd/maps/Kconfig,
-+ drivers/mtd/maps/Makefile, drivers/mtd/maps/solutionengine.c,
-+ drivers/net/8139too.c, drivers/net/Kconfig, drivers/pci/pci.ids,
-+ drivers/serial/Kconfig, drivers/serial/Makefile,
-+ drivers/video/Kconfig, drivers/video/Makefile, include/asm-sh/bug.h,
-+ include/asm-sh/pci.h, include/linux/highmem.h,
-+ include/linux/pci_ids.h, include/linux/mtd/partitions.h,
-+ kernel/sys.c, kernel/sysctl.c, kernel/time.c, kernel/timer.c,
-+ mm/memory.c: Merge 2.5.71.
-+
-+2003-06-13 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/cpu/dma.c: Fix up exports so modules can use dma
-+ functions without resulting in undefined symbols.
-+
-+2003-06-01 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/irq.c (handle_IRQ_event): Check handler return value,
-+ also report if no one cared about the interrupt.
-+
-+2003-05-27 Paul Mundt <lethal@linux-sh.org>
-+
-+ * Makefile, arch/sh/mm/init.c, drivers/Makefile,
-+ drivers/char/keyboard.c, drivers/char/sh-sci.c,
-+ drivers/char/sysrq.c, drivers/char/tty_io.c,
-+ drivers/net/8139too.c, drivers/net/Kconfig,
-+ drivers/pci/pci.ids, drivers/video/fbmem.c
-+ fs/locks.c, fs/nfs/inode.c, include/linux/elf.h,
-+ include/linux/input.h, include/linux/mm.h,
-+ include/linux/pci_ids.h, kernel/sys.c, kernel/sysctl.c,
-+ kernel/timer.c, mm/memory.c: Merge 2.5.70.
-+
-+ * include/asm-sh/elf.h: Move ELF relocation definitions here.
-+
-+ * arch/sh/kernel/process.c (kernel_thread): Use the new do_fork() API.
-+ (sys_clone, sys_fork, sys_vfork) : Same here.
-+
-+ * arch/sh/kernel/cpu/dma.c (dma_err, dma_tei): Use new irq API.
-+
-+2003-05-24 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/Kconfig: Add note for CONFIG_SH_WDT about HZ scaling.
-+
-+ * drivers/char/watchdog/shwdt.c: General updates.. add note about
-+ HZ scaling here as well.
-+
-+ * drivers/serial/Kconfig: Add SCI definitions.
-+ * drivers/serial/Makefile: Same here.
-+
-+ * drivers/serial/sh-sci.c, drivers/serial/sh-sci.h: Add rewrite
-+ of SH-SCI driver for new serial API.
-+
-+ * include/asm-sh/param.h: Set HZ to 1000 when the WDT is enabled.
-+
-+ * include/asm-sh/watchdog.h: Move cpu-specific functions and
-+ definitions out of the way.
-+ * include/asm-sh/cpu-sh[234]/watchdog.h: .. and put them here.
-+
-+ * arch/sh/kernel/pci.c (pcibios_align_resource): Define this as a
-+ weak symbol, so we can override it.
-+
-+ * arch/sh/boards/mpc1211/pci.c (pcibios_align_resource): Added.
-+
-+2003-05-19 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/setup.c (topology_init): Added.
-+ (c_start, c_next): Add support for NR_CPUS > 1.
-+
-+ * arch/sh/kernel/cpu/sh4/pci-st40.c: Cleanup irq handler return type.
-+
-+ * arch/sh/cchips/hd6446x/hd64465/gpio.c: Various cleanups.. modules,
-+ resource allocation, etc. Also fixup irq handler return type.
-+
-+ * drivers/video/pvr2fb.c: Further cleanups.
-+
-+ * include/asm-sh/machvec.h: Get rid of machvec machtype tracking,
-+ do this dynamically through the new mach-type generation interface.
-+
-+ * arch/sh/boards: Get rid of all mv_hw_* references.
-+
-+ * arch/sh/Makefile: Add rule to build arch/sh/tools.
-+
-+ * arch/sh/tools/Makefile, arch/sh/tools/machgen.sh,
-+ arch/sh/tools/mach-types: Added.
-+
-+ This completes the initial mach-type generation code. From now on,
-+ definitions that previously were hardcoded in machvec.h will be
-+ automatically generated as include/asm-sh/machtypes.h.
-+
-+2003-05-17 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/cpufreq.c (sh_cpufreq_setstate): Add rudimentary SMP
-+ support, also verify that CPU is online.
-+ (sh_cpufreq_cpu_init): Remove the policy->cpu != 0 check, look at
-+ cpu_online() instead.
-+
-+2003-05-16 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/setup.c (scif_sercon_device): Remove.
-+ * arch/sh/kernel/time.c (timer_interrupt): Use irqreturn_t for return
-+ type.
-+ * arch/sh/kernel/Makefile: Make SH cpufreq driver independant of
-+ cpufreq core. Use CONFIG_SH_CPU_FREQ instead.
-+ * arch/sh/kernel/cpufreq.c: Rewritten for new API.
-+
-+ * arch/sh/Kconfig: Add cpufreq definitions.
-+
-+ * include/asm-sh/thread_info.h: Drop redefinition of TI_PRE_COUNT.
-+
-+2003-05-16 Saito.K <ksaito@interface.co.jp>
-+
-+ * arch/sh/Kconfig: Add mpc1211 support.
-+ * arch/sh/Makefile: Add mpc1211 support.
-+ * arch/sh/vmlinux.lds.S: Add mpc1211 support.
-+
-+ * arch/sh/boards/mpc1211/Makefile: New file.
-+ * arch/sh/boards/mpc1211/io.c: New file.
-+ * arch/sh/boards/mpc1211/led.c: New file.
-+ * arch/sh/boards/mpc1211/mach.c: New file.
-+ * arch/sh/boards/mpc1211/pci.c: New file.
-+ * arch/sh/boards/mpc1211/rtc.c: New file.
-+ * arch/sh/boards/mpc1211/setup.c: New file.
-+
-+ * arch/sh/kernel/sh_ksyms.c (memscan, __copy_user, __udivdi3,
-+ __flush_purge_region, __down_trylock): Add to exported symbols.
-+
-+ * drivers/char/keyboard.c: Add mpc1211 support.
-+
-+ * drivers/ide/Kconfig: Add mpc1211 support.
-+ * drivers/ide/pci/alim15x3.c: Add mpc1211 support.
-+
-+ * drivers/mtd/chips/jedec_probe.c: Add Fujitsu MBM29F040C support.
-+
-+ * drivers/mtd/maps/Kconfig: Add mpc1211 support.
-+ * drivers/mtd/maps/Makefile: Add mpc1211 support.
-+ * drivers/mtd/maps/mpc1211.c: Add mpc1211 support.
-+
-+ * drivers/video/Kconfig: Add Chips 69000 display support.
-+ * drivers/video/Makefile: Add Chips 69000 display support.
-+ * drivers/video/asiliantfb.c: New file.
-+ * drivers/video/fbmem.c: Add Chips 69000 display support.
-+
-+ * include/asm-sh/dma.h: Add mpc1211 support.
-+ * include/asm-sh/floppy.h: New file.
-+ * include/asm-sh/irq.h: Add mpc1211 support.
-+ (irq_canonicalize): here as an inline function.
-+ * include/asm-sh/keyboard.h: Add mpc1211 support.
-+ * include/asm-sh/machvec.h: Add mpc1211 support.
-+ * include/asm-sh/mc146818rtc.h: Add mpc1211 support.
-+
-+ * include/asm-sh/mpc1211/dma.h: New file.
-+ * include/asm-sh/mpc1211/io.h: New file.
-+ * include/asm-sh/mpc1211/keyboard.h: New file.
-+ * include/asm-sh/mpc1211/m1543c.h: New file.
-+ * include/asm-sh/mpc1211/mc146818rtc.h: New file.
-+ * include/asm-sh/mpc1211/mpc1211.h: New file.
-+ * include/asm-sh/mpc1211/pci.h: New file.
-+
-+ * include/asm-sh/pci.h: Add mpc1211 support.
-+ (sg_dma_address): Fix typo.
-+ * include/asm-sh/scatterlist.h: Copy from kernel.org.
-+
-+ * include/linux/pci_ids.h: Add Chips 69000 display support.
-+
-+2003-05-12 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/boards/Makefile: Removed.
-+ * arch/sh/Makefile: Include top-level .config for rules that don't set
-+ include_config in the top-level Makefile. (ie, make clean/mrproper).
-+
-+2003-05-12 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/boards/Makefile: New file.
-+
-+2003-05-10 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * include/asm-sh/cpu-sh4/cache.h (CCR_CACHE_EMODE): Defined.
-+ * arch/sh/mm/cache-sh4.c (detect_cpu_and_cache_system): Check CCR_CACHE_EMODE setting.
-+ (__flush_dcache_all_ex): New function.
-+ (__flush_cache_4096_all_ex): New function.
-+ (flush_cache_4096_all): Moved from clear_page.S, changed for 2-way cache.
-+ (flush_icache_range): Do flush-cache-all.
-+ (flush_cache_sigtramp): Don't use flush_icache_range for efficiency.
-+ (flush_cache_all): Check cache ways and use relevant function.
-+ (flush_dcache_page): Reverted to previous version (2.4.20).
-+ (__flush_cache_page): Likewise.
-+ (flush_cache_range): External function declaration moved to the top.
-+ * arch/sh/mm/clear_page.S (__clear_user): Bug fix from 2.4 branch.
-+ (flush_cache_4096_all): Renamed to __flush_cache_4096_all.
-+ * arch/sh/mm/init.c (sh_cache_init): Don't change CCR_CACHE_EMODE bit of CCR.
-+
-+ * arch/sh/Makefile: Follow i386 changes.
-+ * arch/sh/boot/compressed/Makefile: Likewise.
-+ * arch/sh/boot/Makefile: Restored and follow i386 changes.
-+ * arch/sh/boot/compressed/vmlinux.scr: New.
-+ * arch/sh/.cvsignore: ignore vmlinux.lds.s
-+ * arch/sh/boot/compressed/.cvsignore: Add sub-target files.
-+
-+ * include/asm-sh/bug.h: Restore and follow i386 changes.
-+ * mm/memory.c: Follow 2.5.69.
-+ * include/net/inet_ecn.h: Removed.
-+ * include/asm-sh/ide.h (ide_init_default_hwifs): Bug fix from 2.4 branch.
-+ * include/asm-sh/kmap_types.h: Follow i386 changes.
-+
-+2003-05-07 Kaz Kojima <kkojima@rr.iij4u.or.jp>
-+
-+ * arch/sh/lib/udivdi3.c: New file.
-+ * arch/sh/lib/Makefile (obj-y): Add udivdi3.o.
-+
-+2003-05-07 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/cpu/sh4/pci-sh7751.c (pci_conf1_read): General
-+ cleanup. Should now build and read values correctly.
-+ * arch/sh/kernel/cpu/sh4/pci-st40.c (st40pci_read): Same here.
-+
-+ * arch/sh/mm/cache-sh4.c (flush_icache_range): Clear out valid
-+ bit for each way in the icache.
-+
-+ * drivers/video/Makefile: Make pvr2fb use cfb files.
-+ * drivers/video/pvr2fb.c: Updates.
-+
-+2003-05-07 Kaz Kojima <kkojima@rr.iij4u.or.jp>
-+ Paul Mundt <lethal@linux-sh.org>
-+
-+ * Makefile (CFLAGS): Use -O1 to avoid miss compiling by gcc-3.2.
-+ (core-y): Add usr/.
-+
-+ * arch/sh/Makefile (LDFLAGS_BLOB): Define.
-+
-+ * arch/sh/kernel/cpu/rtc.c (sh_rtc_gettimeofday): Don't make
-+ overflow.
-+ * arch/sh/kernel/entry.S: Add gUSA support. Call syscall_tail
-+ only when returning from fork. Add new syscalls.
-+ * arch/sh/kernel/io_7751se.c: Fix typo.
-+ * arch/sh/kernel/io_se.c (delay): Wait more.
-+ * arch/sh/kernel/irq.c: Follow i386 changes.
-+ * arch/sh/kernel/module.c: Rewriting.
-+ * arch/sh/kernel/process.c (kernel_thread_helper): New.
-+ (kernel_thread): Use kernel_thread_helper. Return error value also.
-+ (dump_task_regs, dump_task_fpu): New.
-+ (copy_thread): Handle CLONE_SETTLS flag and initialize child tids.
-+ (__switch_to): Return PREV pointer.
-+ (sys_clone): Handle tid pointers.
-+ * arch/sh/kernel/ptrace.c: Cleanup and follow i386 changes.
-+ * arch/sh/kernel/signal.c (handle_signal): Add gUSA support.
-+ (do_signal): Handle ERESTART_RESTARTBLOCK case.
-+ * arch/sh/kernel/sys_sh.c (sys_ipc): Use sys_semtimedop and
-+ handle SEMTIMEDOP.
-+ * arch/sh/kernel/time.c (TICK_SIZE): Use tick_nsec.
-+ (do_gettimeoffset): Lock critical region.
-+ (do_gettimeofday): Follow i386 changes.
-+ (time_init): Override tick_nsec here.
-+
-+ * arch/sh/lib/Makefile (obj-y): Add div64.o.
-+ * arch/sh/lib/div64.S: New file.
-+
-+ * arch/sh/mm/cache-sh2.c (detect_cpu_and_cache_system): Use
-+ SH_CACHE_* instead of CACHE_* because CACHE_VALID collides with
-+ the one in NFS header file.
-+ * arch/sh/mm/cache-sh3.c (detect_cpu_and_cache_system): Likewise.
-+ (__flush_wback_region): Likewise.
-+ (__flush_purge_region): Likewise.
-+ * arch/sh/mm/cache-sh4.c (flush_cache_4096): Likewise.
-+ * arch/sh/mm/init.c (sh_cache_init): Likewise.
-+ * arch/sh/mm/extable.c (fixup_exception): New.
-+ * arch/sh/mm/tlb-sh4.c (update_mmu_cache): Set write through
-+ bit of PTEL if CONFIG_SH_WRITETHROUGH defined.
-+
-+ * drivers/net/stnic.c (ei_interrupet): Change return type.
-+
-+ * include/asm-sh/byteorder.h (___arch__swab64): New.
-+ (__arch__swab64): Define.
-+ * include/asm-sh/cache.h: Rename CACHE_* to SH_CACHE_*.
-+ * include/asm-sh/delay.h (ndelay): Define.
-+ * include/asm-sh/div64.h (do_div): Implement a real 64/32-bit
-+ division.
-+ * include/asm-sh/elf.h: Follow i386 change.
-+ * include/asm-sh/hardirq.h: Likewise.
-+ * include/asm-sh/ide.h: Include generic definitions.
-+ * include/asm-sh/ipc.h (SEMTIMEDOP): Define.
-+ * include/asm-sh/module.h (MODULE_PROC_FAMILY): Define.
-+ * include/asm-sh/param.h: Follow i386 changes.
-+ * include/asm-sh/pci.h (pci_map_sg): Fix dma_address in loop.
-+ (pci_dma_sync_sg): Likewise.
-+ * include/asm-sh/pgtable.h: Change _PAGE_FILE to 0x80 and drop this
-+ bit from _PAGE_FLAGS_HARDWARE_MASK.
-+ * include/asm-sh/processor.h: Follow i386 changes.
-+ * include/asm-sh/ptrace.h: Remove PTRACE_OLDSETOPTIONS and
-+ define PTRACE_O_TRACESYSGOOD.
-+ * include/asm-sh/rwsem.h: Cut&copy from i386.
-+ * include/asm-sh/semaphore.h: Follow i386 changes.
-+ * include/asm-sh/thread_info.h: Follow i386 changes.
-+ (struct thread_info): Make CPU and PREEMPT_COUNT 32-bit.
-+ * include/asm-sh/tlb.h (tlb_start_vma): Call flush_cache_range.
-+ (tlb_end_vma): Call flush_tlb_range.
-+ * include/asm-sh/types.h: Follow i386 changes.
-+ * include/asm-sh/uaccess.h: Remove fixup_exception.
-+ * include/asm-sh/unistd.h: Define new system call numbers.
-+
-+ * include/linux/elf.h: Define SH relocation types.
-+
-+ * kernel/timer.c (tick_sec): Don't use static initializer.
-+ (tick_nsec): Likewise.
-+ (init_timers): Initialize tick_sec and tick_nsec here.
-+
-+2003-05-05 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/setup.c (sh_console_device): Removed.
-+
-+ * drivers/char/sh-sci.c: General tty cleanup, get rid of minor() and
-+ mk_kdev() usage.
-+
-+ * drivers/video/hitfb.c (hitfb_init): fb_info.node cleanups, get rid
-+ of NODEV and minor().
-+ * drivers/video/pvr2fb.c (pvr2fb_interrupt): Use new irqreturn_t type.
-+ (pvr2fb_init): get rid of NODEV and minor().
-+
-+ * include/asm-sh/pgalloc.h (pte_alloc_one_kernel): Use __GFP_REPEAT
-+ for pte allocation.
-+
-+ Merge 2.5.69.
-+
-+2003-05-01 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/entry.S (ret_from_fork): Add back in. Invoke
-+ schedule_tail(), since its not just for SMP anymore.
-+ * arch/sh/kernel/traps.c (dump_stack): Added.
-+ * arch/sh/kernel/module.c: New file.
-+
-+ * include/asm-sh/module.h: Rework for new module interface.
-+
-+2003-04-22 Paul Mundt <lethal@linux-sh.org>
-+
-+ Merge with 2.5.67 and 2.5.68.
-+
-+2003-04-18 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/mm/clear_page.S (__flush_cache_4096): Revert previous change
-+ and modified for efficiency.
-+
-+2003-04-17 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/mm/clear_page.S (__flush_cache_4096): Don't change associated
-+ data that is to be flushed.
-+
-+2003-04-01 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/Kconfig: Move the CONFIG_MMU option further down and
-+ add some rudimentary help text.
-+
-+ * arch/sh/vmlinux.lds.s: Add __param and __initramfs sections.
-+
-+ * arch/sh/kernel/entry.S: Deprecate sys_create_module,
-+ sys_query_module, and sys_get_kernel_syms.
-+
-+ * arch/sh/mm/extable.c (search_extable): Added. Use the unified
-+ extable handling code.
-+ (search_one_table, search_exception_table): Removed.
-+ * arch/sh/mm/fault.c (do_page_fault): Use the unified extable
-+ search.
-+ * arch/sh/kernel/traps.c (die_if_no_fixup): Same here.
-+
-+ * include/asm-sh/uaccess.h (search_exception_table): Removed.
-+
-+ * drivers/block/rd.c: Include linux/mm.h for page_address().
-+
-+2003-03-31 Paul Mundt <lethal@linux-sh.org>
-+
-+ * include/asm-sh/pgtable.h (pte_file, pte_to_pgoff,
-+ pgoff_to_pte): Added. Also set PTE_FILE_MAX_BITS.
-+
-+ * drivers/char/watchdog/shwdt.c: Cleanup.
-+
-+ * drivers/video/pvr2fb.c: Further API fixes.
-+
-+ Merge with 2.5.62 ... 2.5.66.
-+
-+2003-03-30 Paul Mundt <lethal@linux-sh.org>
-+
-+ Merge with 2.5.47 ... 2.5.61.
-+
-+2003-03-29 Paul Mundt <lethal@linux-sh.org>
-+
-+ Merge with 2.5.46.
-+
-+2003-03-24 Daniel Jacobowitz <drow@false.org>
-+ Kaz Kojima <kkojima@rr.iij4u.or.jp>
-+
-+ * arch/sh/kernel/ptrace.c (ubc_set_tracing): Break before executing
-+ instruction.
-+
-+2003-03-24 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/kernel/entry.S: Call sys_pread_wrapper/sys_pwrite_wrapper
-+ instead of sys_pread64/sys_pwrite64.
-+ * arch/sh/kernel/sys_sh.c (sys_pread_wrapper,sys_pwrite_wrapper):
-+ New function.
-+
-+ * arch/sh/mm/copy_page.S (__copy_user): Add missing exception handling
-+ point.
-+
-+2003-01-28 Paul Mundt <lethal@linux-sh.org>
-+
-+ * Makefile, arch/sh/Kconfig, drivers/block/rd.c,
-+ drivers/Makefile, drivers/char/Makefile,
-+ drivers/char/tty_io.c, drivers/net/8139too.c,
-+ drivers/net/Kconfig, drivers/video/epson1355fb.c,
-+ drivers/video/hitfb.c, drivers/video/pvr2fb.c,
-+ include/asm-sh/signal.h, init/do_mounts.c, kernel/ptrace.c,
-+ kernel/timer.c, mm/memory.c: Merge 2.5.51.
-+
-+ * Makefile, drivers/Makefile, drivers/char/Makefile,
-+ drivers/pci/pci.ids, include/asm-sh/processor.h,
-+ init/do_mounts.c, kernel/ptrace.c, kernel/timer.c: Merge 2.5.50.
-+
-+ * Makefile, drivers/char/Makefile, drivers/char/Kconfig,
-+ drivers/char/tty_io.c, drivers/pcmcia/hd64465_ss.c,
-+ fs/nfs/inode.c, fs/mpage.c: Merge 2.5.49.
-+
-+ * drivers/char/shwdt.c: Move to watchdog/
-+
-+ * arch/sh/Kconfig, drivers/char/tty_io.c, init/do_mounts.c,
-+ drivers/input/keyboard/Kconfig, fs/nfs/inode.c, fs/mpage.c,
-+ include/asm-sh/stat.h, include/linux/input.h, kernel/time.c,
-+ kernel/timer.c, Makefile: Merge 2.5.48.
-+
-+ * Makefile, arch/sh/Kconfig, arch/sh/kernel/pci-sh7751.c,
-+ arch/sh/kernel/pci_st40.c, drivers/block/rd.c,
-+ drivers/char/sh-sci.c, drivers/char/shwdt.c,
-+ drivers/char/sysrq.c, drivers/char/tty_io.c,
-+ drivers/net/Kconfig, drivers/pci/pci.ids, fs/nfs/inode.c,
-+ fs/mpage.c, kernel/timer.c: Merge 2.5.47.
-+
-+ * Makefile, arch/sh/Kconfig, arch/sh/kernel/irq.c,
-+ arch/sh/kernel/process.c, arch/sh/kernel/ptrace.c,
-+ drivers/Makefile, drivers/block/rd.c, drivers/char/Makefile,
-+ drivers/char/sysrq.c, drivers/net/Kconfig, init/do_mounts.c,
-+ include/asm-sh/processor.h, include/asm-sh/ptrace.h,
-+ kernel/ptrace.c, kernel/timer.c, mm/memory.c: Merge 2.5.46.
-+
-+2003-01-16 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/Kconfig: Add CONFIG_DEBUG_SPINLOCK.
-+
-+ * arch/sh/kernel/traps.c (per_cpu_trap_init, gdb_vbr_init): Added.
-+ (trap_init): Do some generic exception table setup, and wrap to
-+ per_cpu_trap_init() to setup boot cpu.
-+
-+ * include/asm-sh/spinlock.h (_raw_spin_lock, _raw_spin_unlock,
-+ _raw_read_lock, _raw_read_unlock, _raw_write_lock,
-+ _raw_write_unlock): And preliminary spin/read/write locks.
-+
-+ Clean up CONFIG_DEBUG_SPINLOCK stuff.
-+
-+2003-01-15 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/vmlinux.lds.S: Don't use static values for cacheline or
-+ page size. Use L1_CACHE_BYTES/PAGE_SIZE accordingly.
-+
-+2003-01-13 Paul Mundt <lethal@linux-sh.org>
-+
-+ * include/asm-sh/uaccess.h (__access_ok, set_fs, get_fs): Added for
-+ CONFIG_MMU=n.
-+
-+2003-01-10 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/entry.S: Wrap sys_madvise and sys_readahead
-+ to sys_ni_syscall if !CONFIG_MMU. Fixup exception handling
-+ when we don't have an MMU (or if its disabled).
-+
-+2003-01-09 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/Kconfig: Add CONFIG_BINFMT_FLAT.
-+
-+ * mm/Makefile, mm/filemap.c, mm/mmap.c, mm/nommu.c,
-+ mm/page_alloc.c, mm/slab.c, mm/vmscan.c, kernel/fork.c,
-+ kernel/sys.c, kernel/sysctl.c, fs/exec.c, fs/locks.c,
-+ fs/mpage.c, fs/proc/array.c, fs/proc/base.c,
-+ fs/proc/proc_misc.c, drivers/char/mem.c,
-+ include/linux/blkdev.h, include/linux/mm.h,
-+ include/linux/page-flags.h, include/linux/slab.h,
-+ include/linux/swap.h: Merge uClinux 2.5.45-uc1-mm patch.
-+
-+ * fs/Makefile: Add binfmt_flat.
-+ * fs/binfmt_flat.c: New file.
-+
-+ * include/linux/flat.h: New file.
-+
-+2003-01-05 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/Makefile: Do a bit of cleaning, and lay the groundwork
-+ for include/asm-sh/cpu/
-+
-+2003-01-01 Paul Mundt <lethal@linux-sh.org>
-+
-+ * ChangeLog-2002: New file, move the old one out of the way.
-+
-+ * arch/sh/boot/compressed/Makefile: Add top-level include dir
-+ to CFLAGS/AFLAGS.
-+
-+ * arch/sh/kernel/process.c (sys_fork): Can't fork() properly
-+ with no MMU (at least under uClinux), return -EINVAL instead.
-+
-+ * arch/sh/mm/Makefile: Build pg-sh4.c for all SH-4, not just
-+ ones with an MMU.
-+ * arch/sh/mm/tlb-nommu.c (update_mmu_cache): Added.
-+
-+ * include/asm-sh/bugs.h (check_bugs): Add a default rule for
-+ CPU subtype.
-+ * include/asm-sh/pgtable.h: Fixup page protection flags for
-+ systems without an MMU .. wrap to __pgprot(0).
-+ * include/asm-sh/processor.h (save_fpu): Make it work on
-+ SH-4 again.
-+
-+ * include/asm-sh/addrspace.h: Move CPU specific definitions out of
-+ the way.. reference asm/cpu/addrspace.h instead.
-+ * include/asm-sh/cpu-sh3/addrspace.h,
-+ include/asm-sh/cpu-sh4/addrspace.h: Added.
-+
-diff -ruN linux-2.6.17-vanilla/ChangeLog-2004 linux-2.6.17/ChangeLog-2004
---- linux-2.6.17-vanilla/ChangeLog-2004 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/ChangeLog-2004 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1,930 @@
-+2004-12-03 Tom Rini <trini@kernel.crashing.org>
-+
-+ * arch/sh/configs/se7750_defconfig: Add defconfig for ms7750sse01
-+ * include/asm-sh/system.h (__cmpxchg_u32, __cmpxchg, cmpxchg): Add
-+ so that we provide a simple cmpxchg(). Borrowed from MIPS.
-+
-+2004-12-03 Saito.K <ksaito@interface.co.jp>
-+
-+ * include/asm-sh/irq.h: Add CTP/PCI-SH03 IDE.
-+ * include/asm-sh/sh03/ide.h: New file.
-+
-+2004-10-25 Paul Mundt <paul.mundt@nokia.com>
-+
-+ * arch/sh/kernel/signal.c (handle_signal): Modify to take a
-+ struct k_sigaction arg.
-+ (do_signal): get_signal_to_deliver() now fills in the k_sigaction
-+ struct, pass this into handle_signal().
-+
-+ * arch/sh/kernel/entry.S (sys_call_table): Update for 2.6.9 syscalls,
-+ sys_waitid in particular.
-+
-+ * include/asm-sh/bitops.h (ext2_find_next_zero_bit): addr is specified
-+ as a char *, which causes find_next_zero_bit() to complain. Cast it.
-+
-+ * include/asm-sh/pgtable.h (ptep_get_and_clear): Get rid of inline
-+ bogosity causing compile death.
-+
-+ * include/asm-sh/system.h: Kill off linux/kernel.h include, as it's
-+ both unecessary and causes a circular dependency.
-+
-+ * include/asm-sh/unistd.h: syscall updates.
-+
-+2004-10-24 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/kernel/signal.c (get_sigframe): Fix sigaltstack behavior.
-+
-+2004-10-15 Tom Rini <trini@kernel.crashing.org>
-+
-+ * arch/sh/ramdisk/Makefile: Fix for usage with O=
-+
-+2004-10-15 Tom Rini <trini@kernel.crashing.org>
-+
-+ * include/asm-sh/bitops.h (find_next_zero_bit): First parameter is
-+ now a const unsigned long.
-+ (sched_find_first_bit): Likewise.
-+
-+2004-10-14 Paul Mundt <paul.mundt@nokia.com>
-+
-+ * arch/sh/Kconfig: Cleanup PCLK values.
-+
-+ * arch/sh/configs/microdev_defconfig: Add microdev defconfig.
-+
-+ * arch/sh/boards/superh/microdev/setup.c (smc91x_setup): Added
-+ smc91x platform device registration.
-+
-+ * arch/sh/kernel/early_printk.c (scif_sercon_init): Fixup SCBRR
-+ calculations to use CONFIG_SH_PCLK_FREQ value.
-+ * arch/sh/kernel/sh_ksyms.c (__div64_32, strcpy): Exported to
-+ satisfy module builds.
-+ (csum_ipv6_magic, clear_page): Likewise.
-+
-+ * include/asm-sh/bug.h: Make BUG() oops.
-+ * include/asm-sh/checksum.h: Fix IPv6 compile.
-+ * include/asm-sh/unistd.h (_exit): Removed.
-+
-+ * drivers/net/Kconfig: Enable smc91x for SuperH.
-+ * drivers/net/smc91x.[ch]: Cleanup ISA support, add support for
-+ SH4-202 MicroDev.
-+
-+2004-10-13 Masahiro Miyake <miya@lineo.co.jp>
-+
-+ * arch/sh/boards/snapgear/setup.c: Use asm/cpu/timer.h for TMU
-+ definitions.
-+
-+ * arch/sh/kernel/time.c: Likewise.
-+
-+ * include/asm-sh/cpu-sh3/freq.h: Add FRQCR definition for SH7300.
-+
-+ * include/asm-sh/cpu-sh3/timer.h: New file, TMU definitions.
-+ * include/asm-sh/cpu-sh4/timer.h: New file.
-+
-+2004-10-04 Saito.K <ksaito@interface.co.jp>
-+
-+ * arch/sh/Kconfig: Add CTP/PCI-SH03 support.
-+ * arch/sh/Makefile: Add CTP/PCI-SH03 support.
-+ * arch/sh/boards/sh03/Makefile: New file.
-+ * arch/sh/boards/sh03/led.c: New file.
-+ * arch/sh/boards/sh03/pci.c: New file.
-+ * arch/sh/boards/sh03/rtc.c: New file.
-+ * arch/sh/boards/sh03/setup.c: New file.
-+ * arch/sh/config/sh03_defconfig: New file.
-+ * arch/sh/drivers/pci/pci-sh7751.c: Add CTP/PCI-SH03 support.
-+ * drivers/char/Kconfig: Add CTP/PCI-SH03 support.
-+ * drivers/char/Makefile: Add CTP/PCI-SH03 support.
-+ * drivers/char/sh03rtc.c: New file.
-+ * include/asm-sh/sh03/io.h: New file.
-+ * include/asm-sh/sh03/sh03.h: New file.
-+
-+2004-10-01 Paul Mundt <paul.mundt@nokia.com>
-+
-+ * arch/sh/drivers/pci/pci-sh7751.c (pcibios_fixup_irqs): Define as a
-+ weak symbol so other boards can overload the fixups.
-+
-+2004-09-24 Tom Rini <trini@kernel.crashing.org>
-+
-+ * arch/sh/Makefile: Test for machdir-y not being empty before
-+ adding to core-y.
-+
-+2004-09-24 Tom Rini <trini@kernel.crashing.org>
-+
-+ * drivers/net/8139too.c: Revert changes that moved asserts() around.
-+
-+2004-09-24 Tom Rini <trini@kernel.crashing.org>
-+
-+ * arch/sh/boards/se/7751/io.c: pci-sh7751.h has moved, update include.
-+ * arch/sh/boards/se/7751/pci.c: pci-sh7751.h has moved, update include.
-+
-+2004-09-24 Tom Rini <trini@kernel.crashing.org>
-+
-+ * arch/sh/tools/Makefile: Switch from machgen.sh to gen-mach-types
-+ * arch/sh/tools/machgen.sh: Remove
-+ * arch/sh/tools/gen-mach-types: Add
-+ * arch/sh/Makefile: Update the cpu and mach symlink rules to match
-+ how ARM does it.
-+ * This updates our symlink and machtypes.h stuff to match what
-+ ARM does today which fixes O= building.
-+
-+2004-09-24 Tom Rini <trini@kernel.crashing.org>
-+
-+ * include/asm-sh: adc.h, addrspace.h, cache.h, cacheflush.h, dma.h,
-+ freq.h, mmu_context.h, processor.h, rtc.h, shmparam.h, ubc.h,
-+ watchdog.h: Protect all contents with #ifdef __KERNEL__
-+ * include/asm-sh/user.h: remove <linux/types.h> and <asm/processor.h>
-+ from the #include list.
-+ * The net result is that glibc can now compile with these headers.
-+
-+2004-08-19 Alex Bennee <kernel-hacker@bennee.com>
-+
-+ * arch/sh/drivers/pci/pci-st40.c Updated PLL calculation
-+ * arch/sh/drivers/pci/pci-st40.c Fixes to init
-+ * arch/sh/drivers/pci/pci-st40.[ch] Updated RBAR
-+
-+2004-08-19 Alex Bennee <kernel-hacker@bennee.com>
-+
-+ * Forward porting of INTC2 IRQ Handling from 2.4
-+ * added intc2 irq initialisation
-+ * removed make_intc2_irq call from from pci
-+ * updated intc2 irq functions
-+ * updated st40 pci irq code
-+ * fixed pcibios_init to return ok
-+
-+2004-08-19 Alex Bennee <kernel-hacker@bennee.com>
-+
-+ * moved map_harp_irq -> pcibios_map_platform_irq in harp/setup.c
-+ * added subsys_initcall(pcibios_init) to ST40 PCI code.
-+
-+2004-08-03 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/cpu/sh4/probe.c (detect_cpu_and_cache_system): Add
-+ CPU_HAS_PERF_COUNTER for SH7750/SH7750S.
-+
-+ * arch/sh/kernel/setup.c (cpu_flags): Add perfctr flag.
-+
-+ * arch/sh/oprofile/Makefile: Add op_model_sh7750 rule.
-+ * arch/sh/oprofile/op_model_sh7750.c: New file, OProfile support for
-+ SH7750/SH7750S performance counters.
-+
-+ * include/asm-sh/processor.h: Add CPU_HAS_PERF_COUNTER.
-+
-+2004-07-28 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/drivers/dma/dma-pvr2.c: Update for DMA API changes.
-+ * arch/sh/drivers/dma/dma-g2.c: Likewise.
-+
-+2004-07-26 Paul Mundt <lethal@linux-sh.org>
-+
-+ More fixups by Hosokawa-san <hosokawa@ace-jp.com>
-+
-+ * arch/sh/drivers/pci/fixups-rts7751r2d.c (pci_fixup_pcic): Use
-+ PCI_REG() for proper register offsets. Additional PCIC init.
-+
-+ * arch/sh/drivers/pci/ops-rts7751r2d.c (sh7751_pci_map): Fix window0
-+ size, add dummy window1.
-+
-+ * arch/sh/drivers/pci/pci-sh7751.c (pci_fixup_ide_bases): Enable this
-+ for RTS7751R2D/HS7751RVoIP.
-+ (pcibios_fixups): Likewise.
-+
-+ * arch/sh/drivers/pci/pci.c (pcibios_enable_device): Add mask check.
-+
-+2004-07-07 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/mm/cache-sh[234].c (detect_cpu_and_cache_system): Moved ..
-+ * arch/sh/kernel/cpu/sh[234]/probe.c: here.
-+ * arch/sh/kernel/cpu/sh[234]/Makefile: Add probe.o rule.
-+
-+2004-07-05 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/time.c (time_init): RTS7751R2D and HS7751RVoIP don't
-+ need special handling for the interval value..
-+
-+2004-06-28 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/asm-offsets.c: New file.
-+ * arch/sh/kernel/entry.S: Include asm/asm-offsets.h.
-+
-+ * arch/sh/Makefile: Add asm-offsets rules.
-+
-+ * include/asm-sh/thread_info.h: Remove struct elem references, do
-+ them dynamically at build time via asm-offsets instead.
-+
-+ * arch/sh/lib/memcpy-sh4.S: Merge Stuart's SH-4 optimized memcpy().
-+ * arch/sh/lib/Makefile: Use memcpy-sh4 for CONFIG_CPU_SH4.
-+
-+2004-06-28 Hiroshi DOYU <Hiroshi_DOYU@montavista.co.jp>
-+
-+ * arch/sh/Kconfig, arch/sh/Makefile,arch/sh/kernel/process.c,
-+ arch/sh/kernel/setup.c,arch/sh/kernel/signal.c,arch/sh/kernel/time.c,
-+ arch/sh/kernel/cpu/sh4/Makefile,arch/sh/kernel/cpu/sh4/ex.S,
-+ arch/sh/mm/cache-sh4.c, arch/sh/tools/mach-types, drivers/serial/sh-sci.c
-+ drivers/serial/sh-sci.h, include/asm-sh/irq.h include/asm-sh/processor.h,
-+ include/asm-sh/cpu-sh4/freq.h: Modified for sh73180cp01
-+
-+ * arch/sh/boards/se/73180/Makefile, arch/sh/configs/se73180_defconfig
-+ arch/sh/boards/se/73180/io.c, arch/sh/boards/se/73180/irq.c,
-+ arch/sh/boards/se/73180/led.c, arch/sh/boards/se/73180/setup.c,
-+ include/asm-sh/se73180/io.h, include/asm-sh/se73180/se73180.h,
-+ include/asm-sh/irq-sh73180.h: New files for sh73180cp01
-+
-+2004-06-26 Paul Mundt <lethal@linux-sh.org>
-+
-+ * sound/oss/voyagergx_sound.c (request_dma2): Use irqreturn_t for irq
-+ callback.
-+ (do_irq): Convert to irqreturn_t.
-+ (init_voyagergx): s/\(INT_MASK\)/VOYAGER_\1/, likewise for INT_MASK_AC.
-+
-+ * arch/sh/drivers/dma/dma-api.c: Don't export unregister_dmac().
-+
-+ * arch/sh/boards/dreamcast/setup.c: Wrap dreamcast_consistent_alloc
-+ and dreamcast_consistent_free into the machvec.
-+
-+ * arch/sh/boards/renesas/rts7751r2d/mach.c: consistent API wrappers
-+ in the machvec are only built in if CONFIG_USB_OHCI_HCD is set,
-+ check this in the machvec assignment so we don't get undefined symbols
-+ at link time (Noted by Hosokawa-san <hosokawa@ace-jp.com>).
-+
-+ * arch/sh/cchips/voyagergx/consistent.c (voyagergx_consistent_alloc):
-+ return NULL when we aren't capable of doing the allocation (this will
-+ then wrap to consistent_alloc() in the generic path).
-+ (voyagergx_consistent_free): return non-0 to have the generic path
-+ wrap to consistent_free(), and get rid of its invocation here.
-+
-+ * arch/sh/drivers/pci/dma-dreamcast.c (__pci_alloc_consistent):
-+ Renamed to dreamcast_consistent_alloc().
-+ (__pci_free_consistent): Renamed to dreamcast_consistent_free().
-+ Both cleaned up to work with new model.
-+
-+ * include/asm-sh/dma-mapping.h: Get rid of dreamcast-specific hacks,
-+ these are now wrapped properly through the machvec.
-+ (dma_alloc_coherent): Check return val of mv_consistent_alloc(),
-+ wrap to consistent_alloc() if the former isn't interested in the
-+ mapping.
-+ (dma_free_coherent): Likewise, but for mv_consistent_free() and
-+ consistent_free().
-+
-+ * include/asm-sh/machvec.h (mv_consistent_free): Change return-type
-+ to int.
-+
-+ * arch/sh/kernel/cpu/irq_ipr.c: export make_ipr_irq to satisfy module
-+ dependancies.
-+ * arch/sh/mm/consistent.c: export consistent_alloc/consistent_free.
-+ * sound/oss/voyagergx_8051.c: export init_8051/command_8051.
-+
-+ * arch/sh/configs/rts7751r2d_defconfig: Update RTS7751R2D defconfig.
-+
-+2004-06-25 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/time.c (sh_do_profile): Add oprofile hook.
-+ Change to take pt_regs.
-+ (do_timer_interrupt): Hand off regs to sh_do_profile()
-+ instead of just PC value (profile_hook() expects this).
-+
-+2004-06-15 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/Kconfig: Add CONFIG_CPU_SUBTYPE_SH7705.
-+
-+ * arch/sh/kernel/cpu/irq_ipr.c, arch/sh/kernel/cpu/sh3/ex.S,
-+ arch/sh/kernel/entry.S, arch/sh/kernel/setup.c,
-+ arch/sh/kernel/time.c: Add support for SH7705.
-+
-+ * include/asm-sh/irq.h, include/asm-sh/processor.h: Likewise.
-+
-+ * arch/sh/boards/systemh: Moved ..
-+ * arch/sh/boards/renesas/systemh: here.
-+
-+ * arch/sh/Makefile: Update systemh path.
-+ * arch/sh/boards/renesas/systemh/Makefile: Adjust pci.o path.
-+
-+2004-06-10 Hiroshi DOYU <Hiroshi_DOYU@montavista.co.jp>
-+
-+ * arch/sh/Kconfig, arch/sh/Makefile,
-+ arch/sh/kernel/entry.S, arch/sh/kernel/setup.c,
-+ arch/sh/kernel/time.c, arch/sh/kernel/cpu/irq_ipr.c,
-+ arch/sh/kernel/cpu/sh3/ex.S, arch/sh/tools/mach-types,
-+ drivers/serial/sh-sci.c, drivers/serial/sh-sci.h,
-+ include/asm-sh/bugs.h, include/asm-sh/irq.h,
-+ include/asm-sh/ubc.h: modified for sh7300cp01
-+
-+ * arch/sh/boards/se/7300/Makefile, arch/sh/boards/se/7300/io.c,
-+ arch/sh/boards/se/7300/irq.c, arch/sh/boards/se/7300/led.c,
-+ arch/sh/boards/se/7300/mach.c, arch/sh/boards/se/7300/setup.c,
-+ arch/sh/configs/se7300_defconfig, include/asm-sh/se7300/io.h,
-+ include/asm-sh/se7300/irq-sh7300.h, include/asm-sh/se7300/se7300.h:
-+ New files for sh7300cp01
-+
-+2004-06-08 Paul Mundt <lethal@linux-sh.org>
-+
-+ * drivers/ide/Kconfig: Add CONFIG_IDE_SH.
-+ * drivers/ide/Makefile: Add CONFIG_IDE_SH rule.
-+ * drivers/ide/ide.c: Merge from mainline.
-+ (probe_for_hwifs): Add ide_sh_init().
-+ * drivers/ide/sh/ide-sh.c: New file, generic host driver for SuperH.
-+
-+ * include/asm-sh/ide.h: Update for new API.
-+ * include/asm-sh/irq.h: Only load asm/mach/ide.h on platforms where
-+ the irq definitions vary from the standard 14/15.
-+
-+2004-06-07 Hiroshi DOYU <Hiroshi_DOYU@montavista.co.jp>
-+
-+ * arch/sh/Kconfig: Added support for embedded ramdisk
-+ * arch/sh/Makefile: Likewise
-+ * arch/sh/kernel/setup.c (setup_arch): Likewise
-+ * arch/sh/ramdisk/Makefile: New file. Likewise
-+ * arch/sh/ramdisk/ld.script: New file. Likewise
-+ * arch/sh/kernel/vmlinux.lds.S: Likewise
-+
-+2004-06-04 Andriy Skulysh <askulysh@image.kiev.ua>
-+
-+ * arch/sh/mm/cache-sh3.c (detect_cpu_and_cache_system): use
-+ way_incr instead of way_shift.
-+ * arch/sh/mm/cache-sh3.c (__flush_wback_region): Likewise.
-+
-+ * include/asm-sh/ide.h (ide_init_hwif_ports): Removed.
-+ * include/asm-sh/hp6xx/ide.h: Fix typo.
-+ * include/asm-sh/hp6xx/hp6xx.h: hp680 updates.
-+ * include/asm-sh/cpu-sh3/dac.h: Likewise.
-+ * arch/sh/kernel/sh_ksyms.c: Export consistent_sync.
-+
-+ * arch/sh/kernel/cpu/adc.c: New file. Added simple SH ADC support.
-+ * include/asm-sh/adc.h: Likewise.
-+ * arch/sh/Kconfig: Likewise.
-+ * arch/sh/kernel/cpu/Makefile: Likewise.
-+
-+ * drivers/input/touchscreen/hp680_ts_input.c: New file. Added Jornada 680
-+ touchscreen support.
-+ * drivers/input/touchscreen/Makefile: Likewise.
-+ * drivers/input/touchscreen/Kconfig: Likewise.
-+
-+2004-06-02 Alex Bennee <kernel-hacker@bennee.com>
-+
-+ * arch/sh/KConfig: Added ST subtypes from ST Tree (Dave McKay)
-+ * arch/sh/KConfig: Added CONFIG_DEBUG_INFO from other arch's
-+
-+2004-06-02 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/setup.c (show_cpuflags): Fix off-by-1 index
-+ for flag names.
-+
-+2004-05-28 Paul Mundt <lethal@linux-sh.org>
-+
-+ * include/asm-sh/pgalloc.h (ptep_test_and_clear_young): Removed.
-+ (ptep_test_and_clear_dirty): Removed.
-+ (ptep_set_wrprotect): Likewise.
-+ (ptep_mkdirty): Likewise.
-+ (ptep_get_and_clear): Removed for SH-3.
-+
-+ * include/asm-sh/pgtable.h (pte_same): Removed.
-+
-+ Use generic ptep_xxx() routines for everything other than the SH-4
-+ version of ptep_get_and_clear().
-+
-+2004-05-25 Alex Bennee <kernel-hacker@bennee.com>
-+
-+ * arch/sh/kernel/time.c: Fixed clock detection for ST40
-+
-+2004-05-07 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/kernel/ptrace.c (sys_ptrace): Handle PTRACE_SETOPTIONS in
-+ default case.
-+
-+2004-05-05 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/process.c (default_idle): Add hlt_counter check to
-+ determine if we can use sleep or not. Use cpu_sleep() instead of
-+ cpu_relax().
-+ * include/asm-sh/processor.h (cpu_relax): Renamed to cpu_sleep().
-+ Add dummy definition for cpu_relax().
-+
-+2004-05-02 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/kernel/traps.c (is_dsp_inst,trap_init): Don't use bit operation
-+ macros for cpu_data->flags.
-+ * arch/sh/kernel/cpu/init.c (dsp_init,sh_cpu_init): Likewise.
-+ * arch/sh/mm/tlb-sh3.c (__flush_tlb_page): Likewise.
-+ * arch/sh/mm/cache-sh3.c (detect_cpu_and_cache_system): Likewise.
-+ * arch/sh/mm/cache-sh4.c (detect_cpu_and_cache_system): Likewise.
-+ (flush_cache_4096): Likewise. Jump to P2 area when accessing I-cache
-+ array.
-+
-+2004-04-30 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * include/asm-sh/checksum.h (csum_ipv6_magic): Remove #ifdef CONFIG_IPV6.
-+
-+ * arch/sh/boot/compressed/Makefile (CONFIG_MEMORY_START,
-+ CONFIG_BOOT_LINK_OFFSET): Add '0x' prefix to dummy value.
-+
-+2004-04-28 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * drivers/serial/sh-sci.h: Fix typo.
-+ * drivers/serial/sh-sci.c (sci_handle_breaks): Test SCIF_ORER definition
-+ instead of sub cpu type.
-+ (sci_er_interrupt): Fix compile error.
-+
-+ * arch/sh/boot/compressed/Makefile (CONFIG_MEMORY_START,
-+ CONFIG_BOOT_LINK_OFFSET): Assign dummy values if these 2 variables are
-+ not defined, in order to suppress error message.
-+
-+ * include/asm-sh/sigcontext.h: Do not include asm/cpu/sigcontext.h.
-+ (struct sigcontext): Moved from asm-sh/cpu*/sigcontext.h.
-+ * include/asm-sh/cpu-sh2/sigcontext.h,include/asm-sh/cpu-sh3/sigcontext.h,
-+ include/asm-sh/cpu-sh4/sigcontext.h: Removed.
-+
-+2004-04-23 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/boot/compressed/misc.c: New file. Fix for gcc-3.4.
-+
-+2004-04-21 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * include/asm-sh/user.h: New file. Don't include linux/types.h.
-+
-+2004-04-15 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/mm/consistent.c: Export consistent_sync.
-+
-+ * arch/sh/kernel/time.c (time_init): Allow 1% mismatch for auto detected
-+ clock frequency.
-+
-+ * include/asm-sh/serial.h: New file. Remove irq_canonicalize.
-+
-+ * arch/sh/Makefile: Target 'all' depends on zImage.
-+
-+2004-04-13 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * drivers/serial/sh-sci.h (SCI_CTRL_FLAGS_REIE): Defined.
-+ * drivers/serial/sh-sci.c (sci_er_interrupt): Add handling scif overrun
-+ error.
-+ (sci_start_rx): Enable Rx error interrupt.
-+ (sci_stop_rx): Disable Rx error interrupt.
-+
-+ * arch/sh/mm/cache-sh4.c (detect_cpu_and_cache_system): Don't force set
-+ EMODE before flushing all D-cache. Refer CVR on SH4_501/SH4-202 only.
-+ * arch/sh/kernel/cpu/init.c (cache_init): Flush only 1 way if EMODE is
-+ not set. Writing 0 to address array is enough for flushing. Force EMODE
-+ here (after flushing data cache).
-+
-+ * include/asm-sh/unistd.h: Include linux/linkage.h.
-+
-+ * drivers/char/rtc.c: New file. Fix ioctl return code when RTC_IRQ==0.
-+
-+2004-04-13 Yoshinori Sato <ysato@users.sourceforge.jp>
-+
-+ * drivers/serial/Kconfig: New file. Add SERIAL_SH_SCI dependency on
-+ H8300.
-+ * drivers/serial/sh-sci.h (CPU_SCI_FNS, sci_rxd_in): Fix compilation
-+ error.
-+ * drivers/serial/sh-sci.c (sci_init_pins_sci, serial_console_setup,
-+ sci_transmit_chars, sci_receive_chars, sci_set_termios, sci_init):
-+ Fix compilation error on H8300.
-+
-+2004-04-08 Kaz Kojima <kkojima@rr.iij4u.or.jp>
-+
-+ * include/asm-sh/pgtable.h (__pte_to_swp_entry): Take into account
-+ _PAGE_WT bit.
-+ (__swp_entry_to_pte, pte_to_pgoff, pgoff_to_pte): Likewise.
-+
-+2004-03-29 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/mm/consistent.c (consistent_alloc): Fix page freeing logic.
-+
-+2004-03-26 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/mm/init.c (set_pte_phys): Added.
-+ (__set_fixmap): Added. Use set_pte_phys() to set fixmap translation.
-+
-+ * include/asm-sh/fixmap.h: New file.
-+
-+ * include/asm-sh/pgtable.h: Adjust VMALLOC_END to play nicely with
-+ fixmap. Add PAGE_KERNEL_NOCACHE.
-+
-+2004-03-21 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/Makefile: Remove defconfig- parsing, this is now done in a
-+ generic fashion by the top-level Makefile.
-+
-+ Remove -Os on CONFIG_EMBEDDED, this is now done already by
-+ CONFIG_CC_OPTIMIZE_FOR_SIZE.
-+
-+ * arch/sh/configs/defconfig-%: Renamed to %_defconfig.
-+ * arch/sh/configs/dreamcast_defconfig: Update dreamcast defconfig.
-+
-+ * Documentation/sh/new-machine.txt: Update notes about defconfigs.
-+
-+ * arch/sh/Kconfig: Re-order the cpufreq options, move them into their
-+ own menu in the same way i386 does.
-+
-+ * arch/sh/drivers/dma/Kconfig: Place DMA options inside their own menu.
-+ * arch/sh/cchips/Kconfig: Likewise.
-+
-+ * drivers/video/pvr2fb.c (pvr2fb_setcolreg): Work still needs to be
-+ done on the hardware palette, use the pseudo_palette as a fallback for
-+ 16/32bpp modes for the time being (this could be worked around with
-+ getcolreg(), but as that's gone now...).
-+
-+ * drivers/maple/Kconfig: Removed.
-+
-+ * drivers/input/mouse/maplemouse.c (dc_mouse_connect): init input dev,
-+ cleanup compile warnings. Don't use MOD_INC_USE_COUNT.
-+ (dc_mouse_disconnect): Don't use MOD_DEC_USE_COUNT.
-+
-+ * drivers/input/keyboard/maple_keyb.c (dc_kbd_connect): Same as for
-+ maplemouse.
-+ (dc_kbd_disconnect): Likewise.
-+
-+ * drivers/input/joystick/maplecontrol.c: Likewise.
-+
-+ * include/asm-sh/pgtable.h (pgprot_writecombine): Added.
-+
-+ * drivers/video/fbmem.c (fb_mmap): Add sh as a pgprot_writecombine()
-+ user.
-+
-+2004-03-16 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/Kconfig: Add HugeTLB page size selection.
-+
-+ * arch/sh/mm/Makefile: Add hugetlbpage.o
-+ * arch/sh/mm/hugetlbpage.c: Cloned from sparc64.
-+ * arch/sh/mm/tlb-sh4.c (update_mmu_cache): Use _PAGE_WT in the
-+ CONFIG_SH_WRITETHROUGH case.
-+
-+ * fs/Kconfig: Add SuperH to the list of platforms that support
-+ hugetlbfs.
-+
-+ * include/asm-sh/page.h: Add huge page support.
-+ * include/asm-sh/pgtable.h: Make PAGE_FILE use _PAGE_WT to free
-+ up _PAGE_SZ[0-1] bits and add huge page support that makes use
-+ of these.
-+
-+2004-03-15 Andriy Skulysh <askulysh@image.kiev.ua>
-+
-+ * arch/sh/boards/hp6xx/hp680/mach.c,
-+ arch/sh/boards/hp6xx/hp680/setup.c, arch/sh/cchips/hd6446x/hd64461/io.c,
-+ arch/sh/cchips/hd6446x/hd64461/setup.c, arch/sh/kernel/cpu/irq_ipr.c,
-+ arch/sh/kernel/sh_ksyms.c, drivers/ide/legacy/ide-cs.c,
-+ drivers/input/keyboard/Kconfig, drivers/input/keyboard/Makefile,
-+ drivers/input/keyboard/hp600_keyb.c, drivers/input/keyboard/scan_keyb.c,
-+ drivers/input/keyboard/scan_keyb.h, drivers/pcmcia/Kconfig,
-+ drivers/pcmcia/Makefile, drivers/pcmcia/hd64461_ss.c,
-+ drivers/serial/sh-sci.c, drivers/video/hitfb.c,
-+ include/asm-sh/cpu-sh3/dac.h, include/asm-sh/hd64461/hd64461.h,
-+ include/asm-sh/hd64461/io.h, include/asm-sh/hp6xx/hp6xx.h,
-+ include/asm-sh/irq.h, sound/oss/Kconfig, sound/oss/Makefile,
-+ sound/oss/sh_dac_audio.c: hp680 updates.
-+
-+2004-03-13 Peter Garrone <pgarrone@linuxmail.org>
-+
-+ * arch/sh/kernel/traps.c (show_stack): Set stack pointer from
-+ task structure so that sysrq dumps stack calltrace for each task
-+ rather than N repeats of current task.
-+
-+2004-03-11 Yutaro Ebihara <ebiharaml@si-linux.com>
-+ Kaz Kojima <kkojima@rr.iij4u.or.jp>
-+
-+ * arch/sh/kernel/sys_sh.c (arch_get_unmapped_area): #ifdef'ed
-+ for HAVE_ARCH_UNMAPPED_AREA. Speedup searching.
-+ * include/asm-sh/cpu-sh3/cacheflush.h (HAVE_ARCH_UNMAPPED_AREA):
-+ Define.
-+
-+2004-03-11 Paul Mundt <lethal@linux-sh.org>
-+
-+ * include/asm-sh/dma-mapping.h (dma_set_mask): Cloned from MIPS.
-+ (dma_sync_single_range): Added.
-+
-+ * arch/sh/boards/adx/Makefile, arch/sh/boards/bigsur/Makefile,
-+ arch/sh/boards/cat68701/Makefile, arch/sh/boards/cqreek/Makefile,
-+ arch/sh/boards/dmida/Makefile, arch/sh/boards/dreamcast/Makefile,
-+ arch/sh/boards/ec3104/Makefile, arch/sh/boards/harp/Makefile,
-+ arch/sh/boards/hp6xx/hp620/Makefile, arch/sh/boards/hp6xx/hp680/Makefile,
-+ arch/sh/boards/hp6xx/hp690/Makefile, arch/sh/boards/mpc1211/Makefile,
-+ arch/sh/boards/overdrive/Makefile, arch/sh/boards/saturn/Makefile,
-+ arch/sh/boards/se/770x/Makefile, arch/sh/boards/se/7751/Makefile,
-+ arch/sh/boards/sh2000/Makefile, arch/sh/boards/snapgear/Makefile,
-+ arch/sh/boards/systemh/Makefile, arch/sh/boards/unknown/Makefile,
-+ arch/sh/Kconfig, arch/sh/cchips/hd6446x/hd64461/Makefile,
-+ arch/sh/cchips/hd6446x/hd64465/Makefile, arch/sh/kernel/sys_sh.c,
-+ drivers/Makefile, drivers/cdrom/Makefile, drivers/char/sh-sci.c,
-+ drivers/char/tty_io.c, drivers/ide/pci/alim15x3.c, drivers/ide/Kconfig,
-+ drivers/pci/pci.ids, drivers/serial/Makefile, drivers/serial/Kconfig,
-+ drivers/video/Makefile, drivers/video/Kconfig, drivers/video/fbmem.c,
-+ drivers/Kconfig, include/asm-sh/cache.h, include/asm-sh/hardirq.h,
-+ include/asm-sh/kmap_types.h, include/asm-sh/param.h,
-+ include/asm-sh/unistd.h, include/linux/pci_ids.h, include/linux/mm.h,
-+ include/linux/fb.h, include/linux/serial_core.h, Makefile,
-+ mm/memory.c, mm/mmap.c, net/ipv4/ipconfig.c: Merge 2.6.4.
-+
-+ * arch/sh/drivers/pci/Kconfig: Remove CONFIG_PCI_DMA.
-+ * arch/sh/drivers/pci/Makefile: Remove pci-dma.o
-+ * arch/sh/drivers/pci/pci-dma.c: Deleted.
-+ * arch/sh/drivers/pci/dma-dreamcast.c (pci_alloc_consistent):
-+ Renamed to __pci_alloc_consistent().
-+ (pci_free_consistent): Renamed to __pci_free_consistent().
-+
-+ * arch/sh/mm/Makefile: Add consistent.o
-+ * arch/sh/mm/consistent.c: New file.
-+
-+ * include/asm-sh/dma-mapping.h: Implement DMA mapping support using
-+ consistent_xxxx() interface.
-+ * include/asm-sh/pci.h: Wrap PCI DMA routines to DMA mapping API.
-+
-+ * TODO: DMA mapping is done, knock it off the list..
-+
-+2004-02-28 Paul Mundt <lethal@linux-sh.org>
-+
-+ * drivers/Kconfig: Merged from mainline. Add maple.
-+
-+ * drivers/maple/Kconfig: New file.
-+
-+ * arch/sh/Kconfig: Get rid of the majority of drivers/ sources, use
-+ the top-level drivers/Kconfig instead. Move maple definitions out
-+ to their own Kconfig.
-+
-+ * drivers/serial/sh-sci.c (sci_receive_chars): Fixup break_flag
-+ references to satisfy SH-3 build.
-+
-+2004-02-26 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/configs/defconfig-hp680: Update defconfig.
-+
-+ * arch/sh/cchips/Kconfig: Add CONFIG_HD6446X_SERIES option, make this
-+ selectable by anyone instead of relying on individual boards to select.
-+
-+ * arch/sh/kernel/time.c: Fixup IFC/BFC/STC tables for SH-3.
-+
-+ * arch/sh/boards/hp6xx/hp680/setup.c: Include asm/io.h.
-+
-+ * drivers/video/hitfb.c (hitfb_set_par): Doesn't exist, don't reference
-+ it in fb ops.
-+
-+ * include/asm-sh/dma-mapping.h (dma_alloc_coherent): Added dummy
-+ code to satisfy new dmapool interface when CONFIG_PCI=n.
-+ (dma_free_coherent): Likewise.
-+
-+2004-02-24 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/cpu/sh4/sq.c (sq_flush): Fix thinko, addr is input,
-+ not output.
-+ (sq_flush_range): Fix completion wait, read from P4SEG_STORE_QUE
-+ instead of the base address of a given SQ mapping.
-+ (__sq_alloc_map): Add 1 to map->size to fix an off by one issue
-+ that induced an unhandled address translation fault.
-+ (__sq_remap): Revamp locking to be saner for SMP and preempt.
-+ Get rid of old page table setup code, setup a SQ VMA instead.
-+ (sq_remap): Add sanity checks on phys addr. PAGE_ALIGN() size.
-+ (sq_unmap): Get rid of old code that only worked for a single
-+ translation, wrap to vfree() instead to undo the work done by
-+ remap_area_pages() in __sq_remap().
-+
-+ * arch/sh/mm/ioremap.c (p3_iounmap): void function doesn't return.
-+
-+2004-02-22 Kaz Kojima <kkojima@rr.iij4u.or.jp>
-+
-+ * arch/sh/boards/se/770x/io.c (se_insb): Don't use casted object
-+ as lvalue.
-+ (se_insw, se_outsb, se_outsw): Likewise.
-+ * arch/sh/kernel/io.c (memcpy_fromio, memcpy_toio): Likewise.
-+ * arch/sh/kernel/module.c (COPY_UNALIGNED_WORD): Likewise.
-+
-+2004-02-22 Kaz Kojima <kkojima@rr.iij4u.or.jp>
-+
-+ * arch/sh/boards/se/770x/irq.c: Include the correct machine
-+ specific header file.
-+ * arch/sh/kernel/cf-enabler.c: Likewise.
-+ * drivers/net/stnic.c: Likewise.
-+
-+2004-02-21 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/entry.S (sys_call_table): Kill off .rept usage for
-+ padding. Use sys_ni_syscall directly for NR_syscalls.
-+
-+2004-02-20 Yoshinori Sato <ysato@users.sourceforge.jp>
-+
-+ * drivers/char/sh-sci.c (sci_request_irq): Don't reference
-+ sci_br_interrupt on SCI_ONLY systems.
-+
-+2004-02-20 Yutaro Ebihara <ebiharaml@si-linux.com>
-+
-+ * arch/sh/mm/init.c (mem_init): Set max_mapnr and num_physpages
-+ correctly.
-+
-+2004-02-19 Paul Mundt <lethal@linux-sh.org>
-+
-+ * drivers/char/watchdog/shwdt.c (sh_wdt_init): Fix build error.
-+ * drivers/serial/sh-sci.h: Move PORT_SCI/SCIF/IRDA definitions ..
-+
-+ * include/linux/serial_core.h: .. here.
-+
-+ * include/asm-sh/pci.h (pci_map_page, pci_unmap_page): Added.
-+
-+ * arch/sh/drivers/pci/Kconfig: Set CONFIG_SH_PCIDMA_NONCOHERENT by
-+ default.
-+ * arch/sh/mm/extable.c (search_extable): Deleted. We use the generic
-+ one instead.
-+
-+ * drivers/serial/sh-sci.[ch]: Add h8 support.
-+
-+2004-02-19 Peter Garrone <pgarrone@linuxmail.org>
-+
-+ * drivers/serial/sh-sci.c, drivers/serial/sh-sci.h: Fix rx interrupt
-+ and sysrq handling.
-+
-+2004-02-19 Paul Mundt <lethal@linux-sh.org>
-+ Richard Curnow <richard.curnow@superh.com>
-+
-+ * arch/sh/mm/cache-sh4.c (detect_cpu_and_cache_system): Add effective
-+ CCN CVR probing so that the way_shift/entry_mask/sets are probed
-+ from CVR.ICS/CVR.OCS at run-time on anything that isn't a direct-mapped
-+ cache.
-+
-+ * include/asm-sh/processor.h: Define CCN_CVR.
-+
-+2004-02-19 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/mm/cache-sh4.c (flush_cache_range): Fix pte-table boundary
-+ check logic.
-+ (detect_cpu_and_cache_system): Don't set CPU_HAS_P2_FLUSH_BUG for
-+ SH7750R.
-+
-+2004-02-18 Paul Mundt <lethal@linux-sh.org>
-+
-+ * Makefile, arch/sh/Kconfig, drivers/char/Makefile,
-+ drivers/char/keyboard.c, drivers/char/tty_io.c,
-+ drivers/char/watchdog/shwdt.c, drivers/ide/Kconfig,
-+ drivers/ide/pci/alim15x3.c, drivers/net/8139too.c,
-+ drivers/net/stnic.c, drivers/pci/pci.ids, drivers/video/Kconfig,
-+ drivers/video/Makefile, drivers/video/fbmem.c, fs/nfs/inode.c,
-+ include/asm-sh/io.h, include/asm-sh/pci.h, include/linux/fb.h,
-+ include/linux/input.h, include/linux/mm.h, include/linux/pci_ids.h,
-+ mm/memory.c: Merge 2.6.3.
-+
-+2004-02-10 Yoshinori Sato <ysato@users.sourceforge.jp>
-+
-+ * drivers/char/sh-sci.c, drivers/char/sh-sci.h: Add H8/300 support.
-+
-+2004-02-06 Kaz Kojima <kkojima@rr.iij4u.or.jp>
-+
-+ * arch/sh/kernel/process.c (copy_thread): Don't clear TIF_USEDFPU
-+ here.
-+
-+ * include/asm-sh/signal.h: Hide kernel stuff from userland.
-+
-+2004-02-04 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/Kconfig, drivers/char/keyboard.c, drivers/char/Makefile,
-+ drivers/char/sysrq.c, drivers/char/tty_io.c,
-+ drivers/char/watchdog/shwdt.c, drivers/ide/Kconfig,
-+ drivers/input/keyboard/maple_keyb.c, drivers/net/8139too.c,
-+ drivers/pci/pci.ids, drivers/serial/Kconfig, drivers/video/Makefile,
-+ drivers/video/Kconfig, drivers/video/fbmem.c, fs/nfs/inode.c,
-+ include/asm-sh/byteorder.h, include/asm-sh/floppy.h,
-+ include/asm-sh/pgtable.h, include/asm-sh/smp.h,
-+ include/asm-sh/spinlock.h, include/linux/miscdevice.h,
-+ include/linux/input.h, include/linux/pci_ids.h, include/linux/mm.h,
-+ Makefile, mm/memory.c, mm/mmap.c, mm/msync.c: Merge 2.6.2.
-+
-+2004-02-01 Andriy Skulysh <askulysh@image.kiev.ua>
-+
-+ * drivers/video/hitfb.c (hitfb_set_base, hitfb_accel_wait,
-+ hitfb_accel_start, hitfb_accel_set_dest, hitfb_accel_solidfill,
-+ hitfb_accel_bitblt, hitfb_fillrect, hitfb_copyarea,
-+ hitfb_pan_display, hitfb_blank): Add hitfb acceleration.
-+
-+ * arch/sh/boards/hp6xx/hp680/setup.c: Added.
-+
-+ * arch/sh/cchips/hd6446x/hd64461/io.c (hd64461_insb,
-+ hd64461_insw, hd64461_insl, hd64461_outsb, hd64461_outsw,
-+ hd64461_outsl): Added.
-+
-+ * arch/sh/configs/defconfig-hp680: Added.
-+
-+ * include/asm-sh/hd64461/hd64461.h: Add definitions.
-+ * include/asm-sh/hd64461/io.h: Add io definitions.
-+
-+2004-02-01 Paul Mundt <lethal@linux-sh.org>
-+
-+ * drivers/video/pvr2fb.c (pvr2fb_check_var): Fix typo in pixclock
-+ verification. Clean up FB_SYNC_BROADCAST mess being set even with
-+ VO_VGA. And finally, don't clobber the margins when being invoked
-+ through __fb_try_mode().
-+ (pvr2fb_common_init): Use fb_memset() instead of memset_io().
-+ We always have 256 cmap entries, alloc accordingly.
-+
-+ * drivers/video/hitfb.c (hitfb_init): Move color bitfield setting ..
-+ (hitfb_check_var): here.
-+
-+ Also get rid of hd64461_xxx() IO routine usage, use fb_readX/writeX()
-+ instead, use the generic routines outright, and take care of the
-+ port2mem issues in the board setup code.
-+
-+ * drivers/video/Makefile: Yank cfbcopyarea.o from the hitfb objs,
-+ we don't use it anymore.
-+
-+ * arch/sh/boards/hp6xx/hp680/setup.c (platform_setup): Setup the
-+ io port base, use generic io routines.
-+
-+2004-01-18 Paul Mundt <lethal@linux-sh.org>
-+
-+ * include/linux/fb.h: Merged from stock 2.6.1. Add sh to the list of
-+ platforms to wrap fb_xxx to __raw_xxx.
-+
-+2004-01-12 Kaz Kojima <kkojima@rr.iij4u.or.jp>
-+
-+ * arch/sh/kernel/signal.c (handle_signal): Disable interrupts
-+ in gUSA handling when enabling preemption.
-+ * arch/sh/kernel/process.c (__switch_to): Do gUSA handling
-+ when enabling preemption.
-+ * arch/sh/kernel/entry.S: Jump to resume_userspace if it's
-+ return to user space also in preemption case. Don't use short
-+ branches with far labels to avoid the assembler warnings.
-+ Correct the condition for exception path.
-+
-+2004-01-12 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/kernel/cpu/sh4/fpu.c (save_fpu): Clear PF_USEDFPU before
-+ saving fpu to avoid fpscr corruption while preemption.
-+ * arch/sh/kernel/process.c (copy_thread): Remove setting SR_FD
-+ already done in unlazy_fpu.
-+
-+2004-01-12 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/kernel/entry.S (restore_all): Don't inherit current FD-bit,
-+ resotore saved FD-bit instead.
-+ (handle_exception): Set FD-bit when entering kernel.
-+ * arch/sh/kernel/cpu/sh4/fpu.c (save_fpu): Add 2nd argument 'regs'.
-+ Reset FD-bit while fpu proccesing. Add 'regs' parameter for
-+ release_fpu.
-+ (restore_fpu): Reset FD-bit while fpu proccesing.
-+ (fpu_init): Likewise.
-+ (do_fpu_error): Add 'regs' parameter for save_fpu.
-+ (do_fpu_state_restore): Add 'regs' parameter for grab_fpu.
-+ * arch/sh/kernel/process.c (flush_thread): Add 'regs' parameter for
-+ clear_fpu.
-+ (dump_fpu): Add 'regs' parameter for unlazy_fpu.
-+ (copy_thread): Likewise.
-+ (__switch_to): Likewise.
-+ * arch/sh/kernel/signal.c (save_sigcontext_fpu): Add 'regs' argument.
-+ Add 'regs' parameter for unlazy_fpu.
-+ (restore_sigcontext): Add 'regs' parameter for clear_fpu.
-+ (setup_sigcontext): Add 'regs' parameter for save_sigcontext_fpu.
-+ * arch/sh/kernel/cpu/init.c (sh_cpu_init): Use disable_fpu instead
-+ of release_fpu.
-+ * include/asm-sh/processor.h: Include asm/ptrace.h for struct pt_regs.
-+ (start_thread): Set FD bit.
-+ (enable_fpu): New function.
-+ (disable_fpu): New function.
-+ (release_fpu): Set FD-bit of saved SR instead of current SR.
-+ (grub_fpu): Clear FD-bit of saved SR instead of current SR.
-+ (unlazy_fpu): Add 'regs' argument. Pass 'regs' to save_fpu.
-+ (clear_fpu): Add 'regs' argument. Pass 'regs' to release_fpu.
-+ * include/asm-sh/ptrace.h: Don't include asm/processor.h
-+
-+2004-01-12 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/kernel/cpu/rtc.c (sh_rtc_gettimeofday): Don't call
-+ schedule_timeout. Re-read RTC registers if MSB of R64CNT was changed
-+ while reading them on SH-4 which has unreliable CF bit. Reduce
-+ interrupt disabled area.
-+
-+2004-01-12 Masaki Saitoh <masaki-saitoh@aandd.co.jp>
-+
-+ * arch/sh/kernel/cpu/rtc.c (sh_rtc_gettimeofday): Protect RTC
-+ from interrupt.
-+ (sh_rtc_settimeofday): Likewise.
-+ * arch/sh/kernel/irq.c (do_IRQ): Prevent any preemption while
-+ the handler called.
-+
-+2004-01-12 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/mm/fault.c (update_mmu_cache): Protect __flush_tlb_page
-+ from interrupt.
-+
-+2004-01-09 Paul Mundt <lethal@linux-sh.org>
-+
-+ * Makefile, arch/sh/Kconfig, arch/sh/kernel/irq.c,
-+ drivers/char/keyboard.c, drivers/ide/Kconfig,
-+ drivers/mtd/chips/jedec_probe.c, drivers/net/8139too.c,
-+ drivers/pci/pci.ids, include/linux/input.h, include/linux/mm.h,
-+ include/linux/pci_ids.h, mm/memory.c, mm/mmap.c: Merge 2.6.1.
-+
-+2004-01-08 Paul Mundt <lethal@linux-sh.org>
-+
-+ * drivers/video/Kconfig: Drop CONFIG_FB_PVR2_DEBUG, we use the
-+ standard pr_debug() facility these days.
-+ * drivers/video/pvr2fb.c (pvr2fb_write): Cleanup return semantics.
-+ We manually need to page_cache_release() each pinned page, regardless
-+ of whether we get everything we asked for or not.
-+
-+2004-01-07 Paul Mundt <lethal@linux-sh.org>
-+
-+ * drivers/video/pvr2fb.c (pvr2fb_write): If we get a contiguous
-+ region from get_user_pages(), do the write in one giant transfer.
-+ Kill the flush_dcache_page(), this is already done in generic code.
-+ (pvr2fb_init): Fix allocation typo, make sure we allocate the
-+ proper size.. this was inadvertently trampling the cmap.
-+ (pvr2fb_common_init): Actually allocate the cmap by way of
-+ fb_alloc_cmap().
-+
-+2004-01-04 Paul Mundt <lethal@linux-sh.org>
-+
-+ * scripts/treelink.sh, scripts/treeunlink.sh: Add arch and BK dirs
-+ to the prune list.
-+
-diff -ruN linux-2.6.17-vanilla/ChangeLog-2005 linux-2.6.17/ChangeLog-2005
---- linux-2.6.17-vanilla/ChangeLog-2005 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/ChangeLog-2005 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1,162 @@
-+2005-10-31 Andriy Skulysh <askulysh@image.kiev.ua>
-+
-+ Hitfb update.
-+
-+ * drivers/video/hitfb.c: Fix pannig and bitblt.
-+ (hitfb_sync): New function.
-+ (hitfb_check_var): New function.
-+ (hitfb_set_par): New function.
-+ * drivers/video/backlight/hp680_bl.c: Use platform device id -1.
-+
-+2005-08-22 Andriy Skulysh <askulysh@image.kiev.ua>
-+
-+ Add SH3 DMA support.
-+
-+ * include/asm-sh/cpu-sh3/dma-sh.h: New file.
-+ * include/asm-sh/cpu-sh4/dma-sh.h: New file.
-+ * arch/sh/drivers/dma/dma-sh.c: Add SH3 DMA.
-+ * arch/sh/drivers/dma/dma-sh.h: Likewise.
-+ * include/asm-sh/cpu-sh3/dma.h: Likewise.
-+ * include/asm-sh/dma.h: Likewise.
-+
-+2005-08-15 Andriy Skulysh <askulysh@image.kiev.ua>
-+
-+ Fix bug in hd64461 pcmcia module.
-+
-+ * drivers/pcmcia/hd64461_ss.c: Better init procedure.
-+ * arch/sh/boards/hp6xx/setup.c: Disable hd64461 pcmcia and DAC at boot.
-+
-+2005-07-25 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
-+
-+ * arch/sh/lib/memset.S (memset): Correct 2nd argument handling.
-+
-+2005-06-15 Andriy Skulysh <askulysh@image.kiev.ua>
-+
-+ Add linux backlight support for HP Jornada 680.
-+
-+ * drivers/video/hitfb.c: Remove jornada's backlight stuff.
-+ * drivers/video/backlight/Makefile: New file.
-+ * drivers/video/backlight/Kconfig: New file.
-+ * drivers/video/backlight/hp680_bl.c: New file.
-+
-+2005-06-10 Andriy Skulysh <askulysh@image.kiev.ua>
-+
-+ Add sh7709 clock support.
-+
-+ * arch/sh/kernel/cpu/clock.c: Propagate bus clock.
-+ * arch/sh/kernel/cpu/sh3/clock-sh7709.c: New file.
-+ * arch/sh/kernel/cpu/sh3/Makefile: Add clock-sh7709.o.
-+ * sound/oss/sh_dac_audio.c: Update to clock framework.
-+
-+2005-06-10 Andriy Skulysh <askulysh@image.kiev.ua>
-+
-+ Fix hp6xx changes. Split HP600 keyboard routine for 620 and 680/690.
-+
-+ * include/asm-sh/irq.h: Fix hp6xx changes.
-+ * drivers/input/touchscreen/Kconfig: Likewise.
-+ * drivers/video/hitfb.c: HP690 seems to have only 512 Kb video memory.
-+ * drivers/input/keyboard/hp620_keyb.c: New file.
-+ * drivers/input/keyboard/hp680_keyb.c: New file.
-+ * drivers/input/keyboard/hp600_keyb.c: Removed file.
-+ * drivers/input/keyboard/Makefile: Split update.
-+ * drivers/input/keyboard/Kconfig: Split update.
-+
-+2005-05-21 Paul Mundt <lethal@linux-sh.org>
-+
-+ Patches from Hosokawa-san <hosokawa@ace-jp.com>:
-+
-+ * drivers/char/Makefile: Add rtc9701_rtc rule that was dropped.
-+ * drivers/char/rtc9701_rtc.c: Update rtc_lock definition.
-+ (rtc9701_rtc_interrupt): Modify for irqreturn_t type.
-+
-+2005-03-26 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/Kconfig: Make TMU selectable (CONFIG_SH_TMU).
-+ Drop CONFIG_SH_PCLK_CALC, we make this the default if we
-+ have an RTC and no set PCLK value.
-+
-+ * arch/sh/boards/overdrive/Makefile: Drop time.o
-+ * arch/sh/boards/overdrive/time.c: Deleted.
-+ * arch/sh/boards/overdrive/setup.c (platform_setup): Drop
-+ od_time_init usage, rely on the clock framework instead.
-+
-+ * arch/sh/kernel/Makefile: Add timers/
-+ * arch/sh/kernel/time.c: Rip out clock and TMU code.
-+ * arch/sh/kernel/setup.c: Remove clock reporting, use the generic
-+ show_clocks() provided by the clock framework instead.
-+
-+ * arch/sh/kernel/timers/timer.c: New file, common bits for timer
-+ framework.
-+ * arch/sh/kernel/timers/timer-tmu.c: Move TMU system timer code
-+ here, hook into common timer framework.
-+
-+ * arch/sh/kernel/cpu/Makefile: Add clock.o
-+ * arch/sh/kernel/cpu/clock.c: New file, adding clock framework.
-+
-+ * arch/sh/kernel/cpu/sh3/Makefile: Add clock support.
-+ * arch/sh/kernel/cpu/sh3/clock-sh3.c,
-+ arch/sh/kernel/cpu/sh3/clock-sh7300.c,
-+ arch/sh/kernel/cpu/sh3/clock-sh7705.c: SH-3 clock support.
-+
-+ * arch/sh/kernel/cpu/sh4/Makefile: Add clock support.
-+ * arch/sh/kernel/cpu/sh4/clock-sh4-202.c,
-+ arch/sh/kernel/cpu/sh4/clock-sh4.c,
-+ arch/sh/kernel/cpu/sh4/clock-sh73180.c: SH-4 clock support.
-+
-+ * drivers/serial/sh-sci.c: Update for clock framework.
-+ * drivers/serial/sh-sci.h: Likewise.
-+
-+ * include/asm-sh/clock.h: New file for clock framework.
-+ * include/asm-sh/timer.h: New file for timer framework.
-+
-+ * include/asm-sh/freq.h: Remove unused cruft.
-+ * include/asm-sh/processor.h: Remove clocks from struct sh_cpuinfo.
-+
-+ * include/asm-sh/timex.h: Update CLOCK_TICK_RATE to match HZ.
-+
-+2005-03-10 Andriy Skulysh <askulysh@image.kiev.ua>
-+
-+ * drivers/pcmcia/hd64461_ss.c (hd64461_init_soket): Update
-+ for 2.6.11.
-+
-+2005-03-06 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/mm/cache-sh4.c (flush_cache_range): page align the
-+ end address, this was causing an unaligned fault in some cases.
-+
-+ Also check the size of the range, of the range >= 64 pages,
-+ just purge the entire dcache instead of manually walking the
-+ page tables and checking for aliases. This gives a noticeable
-+ performance win, as per sh64.
-+
-+2005-03-02 Paul Mundt <lethal@linux-sh.org>
-+
-+ Merge 2.6.11.
-+
-+ * TODO: Get rid of the in-kernel TODO list, we will use the wiki
-+ instead.
-+
-+ * arch/sh/configs/*_defconfig: Update for 2.6.11.
-+
-+2005-02-02 Kristoffer Ericson <kristoffer@jlime.com>
-+
-+ * arch/sh/boards/hp6xx/hp620/Makefile: Add setup.o rule.
-+ * arch/sh/boards/hp6xx/hp620/setup.c: New file adding hp620 setup
-+ code (cloned from hp680 with some minor modification).
-+
-+2005-02-01 Kristoffer Ericson <kristoffer@jlime.com>
-+
-+ * drivers/pcmcia/hd64461_ss.c (hd64461_set_mem_map): Fix build problem
-+ with start address.
-+
-+2005-01-31 Paul Mundt <lethal@linux-sh.org>
-+
-+ * arch/sh/kernel/cpufreq.c (sh_cpufreq_setstate): Update for cpumask
-+ changes.
-+
-+2005-01-31 Paul Mundt <lethal@linux-sh.org>
-+ Christoph Hellwig <hch@lst.de>
-+
-+ * arch/sh/Kconfig, arch/sh/kernel/irq.c, include/asm-sh/hardirq.h:
-+ Patch from Christoph Hellwig implementing generic hardirq support.
-+ Initial testing done by Tom Rini on SE7750.
-diff -ruN linux-2.6.17-vanilla/Documentation/CVS/Entries linux-2.6.17/Documentation/CVS/Entries
---- linux-2.6.17-vanilla/Documentation/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/Documentation/CVS/Entries 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+D/sh////
-diff -ruN linux-2.6.17-vanilla/Documentation/CVS/Repository linux-2.6.17/Documentation/CVS/Repository
---- linux-2.6.17-vanilla/Documentation/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/Documentation/CVS/Repository 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+linux/Documentation
-diff -ruN linux-2.6.17-vanilla/Documentation/CVS/Root linux-2.6.17/Documentation/CVS/Root
---- linux-2.6.17-vanilla/Documentation/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/Documentation/CVS/Root 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/Documentation/sh/CVS/Entries linux-2.6.17/Documentation/sh/CVS/Entries
---- linux-2.6.17-vanilla/Documentation/sh/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/Documentation/sh/CVS/Entries 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1,4 @@
-+/kgdb.txt/1.2/Fri Nov 1 17:19:12 2002//
-+/new-machine.txt/1.6/Sun Jan 15 17:32:05 2006//
-+/register-banks.txt/1.1/Sat Jan 7 20:22:21 2006//
-+D
-diff -ruN linux-2.6.17-vanilla/Documentation/sh/CVS/Repository linux-2.6.17/Documentation/sh/CVS/Repository
---- linux-2.6.17-vanilla/Documentation/sh/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/Documentation/sh/CVS/Repository 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+linux/Documentation/sh
-diff -ruN linux-2.6.17-vanilla/Documentation/sh/CVS/Root linux-2.6.17/Documentation/sh/CVS/Root
---- linux-2.6.17-vanilla/Documentation/sh/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/Documentation/sh/CVS/Root 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/Documentation/sh/new-machine.txt linux-2.6.17/Documentation/sh/new-machine.txt
---- linux-2.6.17-vanilla/Documentation/sh/new-machine.txt 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/Documentation/sh/new-machine.txt 2006-07-12 16:54:19.000000000 +0000
-@@ -41,11 +41,6 @@
- |
- .. more boards here ...
-
--It should also be noted that each board is required to have some certain
--headers. At the time of this writing, io.h is the only thing that needs
--to be provided for each board, and can generally just reference generic
--functions (with the exception of isa_port2addr).
--
- Next, for companion chips:
- .
- `-- arch
-@@ -104,12 +99,13 @@
- Both the Solution Engine and the hp6xx boards are an example of this.
-
- After you have setup your new arch/sh/boards/ directory, remember that you
--also must add a directory in include/asm-sh for headers localized to this
--board. In order to interoperate seamlessly with the build system, it's best
--to have this directory the same as the arch/sh/boards/ directory name,
--though if your board is again part of a family, the build system has ways
--of dealing with this, and you can feel free to name the directory after
--the family member itself.
-+should also add a directory in include/asm-sh for headers localized to this
-+board (if there are going to be more than one). In order to interoperate
-+seamlessly with the build system, it's best to have this directory the same
-+as the arch/sh/boards/ directory name, though if your board is again part of
-+a family, the build system has ways of dealing with this (via incdir-y
-+overloading), and you can feel free to name the directory after the family
-+member itself.
-
- There are a few things that each board is required to have, both in the
- arch/sh/boards and the include/asm-sh/ heirarchy. In order to better
-@@ -122,6 +118,7 @@
- * arch/sh/boards/vapor/setup.c - Setup code for imaginary board
- */
- #include <linux/init.h>
-+#include <asm/rtc.h> /* for board_time_init() */
-
- const char *get_system_type(void)
- {
-@@ -152,79 +149,57 @@
- }
-
- Our new imaginary board will also have to tie into the machvec in order for it
--to be of any use. Currently the machvec is slowly on its way out, but is still
--required for the time being. As such, let us take a look at what needs to be
--done for the machvec assignment.
-+to be of any use.
-
- machvec functions fall into a number of categories:
-
- - I/O functions to IO memory (inb etc) and PCI/main memory (readb etc).
-- - I/O remapping functions (ioremap etc)
-- - some initialisation functions
-- - a 'heartbeat' function
-- - some miscellaneous flags
--
--The tree can be built in two ways:
-- - as a fully generic build. All drivers are linked in, and all functions
-- go through the machvec
-- - as a machine specific build. In this case only the required drivers
-- will be linked in, and some macros may be redefined to not go through
-- the machvec where performance is important (in particular IO functions).
--
--There are three ways in which IO can be performed:
-- - none at all. This is really only useful for the 'unknown' machine type,
-- which us designed to run on a machine about which we know nothing, and
-- so all all IO instructions do nothing.
-- - fully custom. In this case all IO functions go to a machine specific
-- set of functions which can do what they like
-- - a generic set of functions. These will cope with most situations,
-- and rely on a single function, mv_port2addr, which is called through the
-- machine vector, and converts an IO address into a memory address, which
-- can be read from/written to directly.
--
--Thus adding a new machine involves the following steps (I will assume I am
--adding a machine called vapor):
-+ - I/O mapping functions (ioport_map, ioport_unmap, etc).
-+ - a 'heartbeat' function.
-+ - PCI and IRQ initialization routines.
-+ - Consistent allocators (for boards that need special allocators,
-+ particularly for allocating out of some board-specific SRAM for DMA
-+ handles).
-+
-+There are machvec functions added and removed over time, so always be sure to
-+consult include/asm-sh/machvec.h for the current state of the machvec.
-+
-+The kernel will automatically wrap in generic routines for undefined function
-+pointers in the machvec at boot time, as machvec functions are referenced
-+unconditionally throughout most of the tree. Some boards have incredibly
-+sparse machvecs (such as the dreamcast and sh03), whereas others must define
-+virtually everything (rts7751r2d).
-+
-+Adding a new machine is relatively trivial (using vapor as an example):
-+
-+If the board-specific definitions are quite minimalistic, as is the case for
-+the vast majority of boards, simply having a single board-specific header is
-+sufficient.
-
-- - add a new file include/asm-sh/vapor/io.h which contains prototypes for
-+ - add a new file include/asm-sh/vapor.h which contains prototypes for
- any machine specific IO functions prefixed with the machine name, for
- example vapor_inb. These will be needed when filling out the machine
- vector.
-
-- This is the minimum that is required, however there are ample
-- opportunities to optimise this. In particular, by making the prototypes
-- inline function definitions, it is possible to inline the function when
-- building machine specific versions. Note that the machine vector
-- functions will still be needed, so that a module built for a generic
-- setup can be loaded.
--
-- - add a new file arch/sh/boards/vapor/mach.c. This contains the definition
-- of the machine vector. When building the machine specific version, this
-- will be the real machine vector (via an alias), while in the generic
-- version is used to initialise the machine vector, and then freed, by
-- making it initdata. This should be defined as:
--
-- struct sh_machine_vector mv_vapor __initmv = {
-- .mv_name = "vapor",
-- }
-- ALIAS_MV(vapor)
--
-- - finally add a file arch/sh/boards/vapor/io.c, which contains
-- definitions of the machine specific io functions.
--
--A note about initialisation functions. Three initialisation functions are
--provided in the machine vector:
-- - mv_arch_init - called very early on from setup_arch
-- - mv_init_irq - called from init_IRQ, after the generic SH interrupt
-- initialisation
-- - mv_init_pci - currently not used
--
--Any other remaining functions which need to be called at start up can be
--added to the list using the __initcalls macro (or module_init if the code
--can be built as a module). Many generic drivers probe to see if the device
--they are targeting is present, however this may not always be appropriate,
--so a flag can be added to the machine vector which will be set on those
--machines which have the hardware in question, reducing the probe to a
--single conditional.
-+ Note that these prototypes are generated automatically by setting
-+ __IO_PREFIX to something sensible. A typical example would be:
-+
-+ #define __IO_PREFIX vapor
-+ #include <asm/io_generic.h>
-+
-+ somewhere in the board-specific header. Any boards being ported that still
-+ have a legacy io.h should remove it entirely and switch to the new model.
-+
-+ - Add machine vector definitions to the board's setup.c. At a bare minimum,
-+ this must be defined as something like:
-+
-+ struct sh_machine_vector mv_vapor __initmv = {
-+ .mv_name = "vapor",
-+ };
-+ ALIAS_MV(vapor)
-+
-+ - finally add a file arch/sh/boards/vapor/io.c, which contains definitions of
-+ the machine specific io functions (if there are enough to warrant it).
-
- 3. Hooking into the Build System
- ================================
-@@ -303,4 +278,3 @@
- oldconfig (prompting you for any new options since the time of creation),
- and start you on your way to having a functional kernel for your new
- board.
--
-diff -ruN linux-2.6.17-vanilla/Documentation/sh/register-banks.txt linux-2.6.17/Documentation/sh/register-banks.txt
---- linux-2.6.17-vanilla/Documentation/sh/register-banks.txt 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/Documentation/sh/register-banks.txt 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1,33 @@
-+ Notes on register bank usage in the kernel
-+ ==========================================
-+
-+Introduction
-+------------
-+
-+The SH-3 and SH-4 CPU families traditionally include a single partial register
-+bank (selected by SR.RB, only r0 ... r7 are banked), whereas other families
-+may have more full-featured banking or simply no such capabilities at all.
-+
-+SR.RB banking
-+-------------
-+
-+In the case of this type of banking, banked registers are mapped directly to
-+r0 ... r7 if SR.RB is set to the bank we are interested in, otherwise ldc/stc
-+can still be used to reference the banked registers (as r0_bank ... r7_bank)
-+when in the context of another bank. The developer must keep the SR.RB value
-+in mind when writing code that utilizes these banked registers, for obvious
-+reasons. Userspace is also not able to poke at the bank1 values, so these can
-+be used rather effectively as scratch registers by the kernel.
-+
-+Presently the kernel uses several of these registers.
-+
-+ - r0_bank, r1_bank (referenced as k0 and k1, used for scratch
-+ registers when doing exception handling).
-+ - r2_bank (used to track the EXPEVT/INTEVT code)
-+ - Used by do_IRQ() and friends for doing irq mapping based off
-+ of the interrupt exception vector jump table offset
-+ - r6_bank (global interrupt mask)
-+ - The SR.IMASK interrupt handler makes use of this to set the
-+ interrupt priority level (used by local_irq_enable())
-+ - r7_bank (current)
-+
-diff -ruN linux-2.6.17-vanilla/Makefile linux-2.6.17/Makefile
---- linux-2.6.17-vanilla/Makefile 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/Makefile 2006-07-12 16:54:19.000000000 +0000
-@@ -172,7 +172,7 @@
- # Default value for CROSS_COMPILE is not to prefix executables
- # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
-
--ARCH ?= $(SUBARCH)
-+ARCH ?= sh
- CROSS_COMPILE ?=
-
- # Architecture as present in compile.h
-diff -ruN linux-2.6.17-vanilla/arch/CVS/Entries linux-2.6.17/arch/CVS/Entries
---- linux-2.6.17-vanilla/arch/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/CVS/Entries 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+D/sh////
-diff -ruN linux-2.6.17-vanilla/arch/CVS/Repository linux-2.6.17/arch/CVS/Repository
---- linux-2.6.17-vanilla/arch/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/CVS/Repository 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch
-diff -ruN linux-2.6.17-vanilla/arch/CVS/Root linux-2.6.17/arch/CVS/Root
---- linux-2.6.17-vanilla/arch/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/CVS/Root 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/CVS/Entries linux-2.6.17/arch/sh/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/CVS/Entries 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1,14 @@
-+/Kconfig.debug/1.4/Mon Jan 30 16:05:57 2006/-ko/
-+D/boards////
-+D/boot////
-+D/cchips////
-+D/configs////
-+D/drivers////
-+D/kernel////
-+D/lib////
-+D/mm////
-+D/oprofile////
-+D/tools////
-+/Kconfig/1.100/Wed Jul 12 16:51:50 2006/-ko/
-+/Makefile/1.65/Wed Jul 12 16:51:50 2006/-ko/
-+D/math-emu////
-diff -ruN linux-2.6.17-vanilla/arch/sh/CVS/Repository linux-2.6.17/arch/sh/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/CVS/Repository 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh
-diff -ruN linux-2.6.17-vanilla/arch/sh/CVS/Root linux-2.6.17/arch/sh/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/CVS/Root 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/Kconfig linux-2.6.17/arch/sh/Kconfig
---- linux-2.6.17-vanilla/arch/sh/Kconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/Kconfig 2006-07-12 16:54:19.000000000 +0000
-@@ -255,7 +255,7 @@
- value on any of the known systems will only lead to disaster.
-
- config MEMORY_SIZE
-- hex "Physical memory size"
-+ hex "Physical memory size"
- default "0x00400000"
- help
- This sets the default memory size assumed by your SH kernel. It can
-@@ -335,10 +335,19 @@
- default y
- help
- Selecting this option will enable support for SH processors that
-- have FPU units (ie, SH77xx).
-+ have FPU units (ie, SH77xx).
-
- This option must be set in order to enable the FPU.
-
-+config SH_FPU_EMU
-+ bool "FPU emulation support"
-+ depends on !SH_FPU && EXPERIMENTAL
-+ default n
-+ help
-+ Selecting this option will enable support for software FPU emulation.
-+ Most SH-3 users will want to say Y here, whereas most SH-4 users will
-+ want to say N.
-+
- config SH_DSP
- bool "DSP support"
- depends on !CPU_SH4
-@@ -400,9 +409,11 @@
-
- endmenu
-
--#source "arch/sh/boards/renesas/hs7751rvoip/Kconfig"
-+source "arch/sh/boards/renesas/hs7751rvoip/Kconfig"
-+
-+source "arch/sh/boards/renesas/rts7751r2d/Kconfig"
-
--#source "arch/sh/boards/renesas/rts7751r2d/Kconfig"
-+source "arch/sh/boards/renesas/r7780rp/Kconfig"
-
- config SH_PCLK_FREQ
- int "Peripheral clock frequency (in Hz)"
-@@ -454,7 +465,7 @@
-
- config ISA_DMA_API
- bool
-- depends on SH_MPC1211
-+ depends on MPC1211
- default y
-
- menu "Kernel features"
-@@ -636,6 +647,16 @@
-
- endmenu
-
-+menu "Power management options (EXPERIMENTAL)"
-+depends on EXPERIMENTAL
-+
-+source kernel/power/Kconfig
-+
-+config APM
-+ bool "Advanced Power Management Emulation"
-+ depends on PM
-+endmenu
-+
- source "net/Kconfig"
-
- source "drivers/Kconfig"
-diff -ruN linux-2.6.17-vanilla/arch/sh/Kconfig.debug linux-2.6.17/arch/sh/Kconfig.debug
---- linux-2.6.17-vanilla/arch/sh/Kconfig.debug 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/Kconfig.debug 2006-07-12 16:54:21.000000000 +0000
-@@ -32,6 +32,7 @@
-
- config KGDB
- bool "Include KGDB kernel debugger"
-+ select FRAME_POINTER
- help
- Include in-kernel hooks for kgdb, the Linux kernel source level
- debugger. See <http://kgdb.sourceforge.net/> for more information.
-@@ -112,13 +113,4 @@
-
- endmenu
-
--config FRAME_POINTER
-- bool "Compile the kernel with frame pointers"
-- default y if KGDB
-- help
-- If you say Y here the resulting kernel image will be slightly larger
-- and slower, but it will give very useful debugging information.
-- If you don't debug the kernel, you can say N, but we may not be able
-- to solve problems without frame pointers.
--
- endmenu
-diff -ruN linux-2.6.17-vanilla/arch/sh/Makefile linux-2.6.17/arch/sh/Makefile
---- linux-2.6.17-vanilla/arch/sh/Makefile 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/Makefile 2006-07-12 16:54:19.000000000 +0000
-@@ -79,6 +79,7 @@
- LIBGCC := $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
-
- core-y += arch/sh/kernel/ arch/sh/mm/
-+core-$(CONFIG_SH_FPU_EMU) += arch/sh/math-emu/
-
- # Boards
- machdir-$(CONFIG_SH_SOLUTION_ENGINE) := se/770x
-@@ -104,16 +105,14 @@
- machdir-$(CONFIG_SH_RTS7751R2D) := renesas/rts7751r2d
- machdir-$(CONFIG_SH_7751_SYSTEMH) := renesas/systemh
- machdir-$(CONFIG_SH_EDOSK7705) := renesas/edosk7705
-+machdir-$(CONFIG_SH_R7780RP) := renesas/r7780rp
- machdir-$(CONFIG_SH_SH4202_MICRODEV) := superh/microdev
-+machdir-$(CONFIG_SH_LANDISK) := landisk
-+machdir-$(CONFIG_SH_TITAN) := titan
- machdir-$(CONFIG_SH_UNKNOWN) := unknown
-
- incdir-y := $(notdir $(machdir-y))
--
--incdir-$(CONFIG_SH_SOLUTION_ENGINE) := se
--incdir-$(CONFIG_SH_7751_SOLUTION_ENGINE) := se7751
--incdir-$(CONFIG_SH_7300_SOLUTION_ENGINE) := se7300
--incdir-$(CONFIG_SH_73180_SOLUTION_ENGINE) := se73180
--incdir-$(CONFIG_SH_HP600) := hp6xx
-+incdir-$(CONFIG_SH_HP6XX) := hp6xx
-
- ifneq ($(machdir-y),)
- core-y += arch/sh/boards/$(machdir-y)/
-@@ -137,17 +136,14 @@
-
- CPPFLAGS_vmlinux.lds := -traditional
-
--ifneq ($(KBUILD_SRC),)
- incdir-prefix := $(srctree)/include/asm-sh/
--else
--incdir-prefix :=
--endif
-
- # Update machine arch and proc symlinks if something which affects
- # them changed. We use .arch and .mach to indicate when they were
- # updated last, otherwise make uses the target directory mtime.
-
--include/asm-sh/.cpu: $(wildcard include/config/cpu/*.h) include/config/MARKER
-+include/asm-sh/.cpu: $(wildcard include/config/cpu/*.h) \
-+ include/config/MARKER FORCE
- @echo ' SYMLINK include/asm-sh/cpu -> include/asm-sh/$(cpuincdir-y)'
- $(Q)if [ ! -d include/asm-sh ]; then mkdir -p include/asm-sh; fi
- $(Q)ln -fsn $(incdir-prefix)$(cpuincdir-y) include/asm-sh/cpu
-@@ -157,7 +153,8 @@
- # don't, just reference the parent directory so the semantics are
- # kept roughly the same.
-
--include/asm-sh/.mach: $(wildcard include/config/sh/*.h) include/config/MARKER
-+include/asm-sh/.mach: $(wildcard include/config/sh/*.h) \
-+ include/config/MARKER FORCE
- @echo -n ' SYMLINK include/asm-sh/mach -> '
- $(Q)if [ ! -d include/asm-sh ]; then mkdir -p include/asm-sh; fi
- $(Q)if [ -d $(incdir-prefix)$(incdir-y) ]; then \
-@@ -170,7 +167,7 @@
- fi
- @touch $@
-
--archprepare: maketools include/asm-sh/.cpu include/asm-sh/.mach
-+archprepare: include/asm-sh/.cpu include/asm-sh/.mach maketools
-
- PHONY += maketools FORCE
- maketools: include/linux/version.h FORCE
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/CVS/Entries linux-2.6.17/arch/sh/boards/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/CVS/Entries 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1,21 @@
-+D/adx////
-+D/bigsur////
-+D/cat68701////
-+D/cqreek////
-+D/dmida////
-+D/dreamcast////
-+D/ec3104////
-+D/harp////
-+D/hp6xx////
-+D/landisk////
-+D/mpc1211////
-+D/overdrive////
-+D/renesas////
-+D/saturn////
-+D/se////
-+D/sh03////
-+D/sh2000////
-+D/snapgear////
-+D/superh////
-+D/titan////
-+D/unknown////
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/CVS/Repository linux-2.6.17/arch/sh/boards/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/CVS/Repository 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/CVS/Root linux-2.6.17/arch/sh/boards/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/CVS/Root 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/adx/CVS/Entries linux-2.6.17/arch/sh/boards/adx/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/adx/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/adx/CVS/Entries 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1,5 @@
-+/Makefile/1.5/Thu Mar 11 18:08:01 2004//
-+/irq.c/1.2/Fri Nov 1 17:19:14 2002//
-+/irq_maskreg.c/1.3/Fri Oct 28 13:12:47 2005/-ko/
-+/setup.c/1.4/Mon Aug 4 01:38:06 2003//
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/adx/CVS/Repository linux-2.6.17/arch/sh/boards/adx/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/adx/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/adx/CVS/Repository 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/adx
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/adx/CVS/Root linux-2.6.17/arch/sh/boards/adx/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/adx/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/adx/CVS/Root 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/bigsur/CVS/Entries linux-2.6.17/arch/sh/boards/bigsur/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/bigsur/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/bigsur/CVS/Entries 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1,6 @@
-+/Makefile/1.6/Thu Mar 11 18:08:02 2004//
-+/io.c/1.4/Tue Mar 8 06:46:55 2005//
-+/irq.c/1.5/Fri Oct 28 13:12:47 2005//
-+/led.c/1.2/Fri Nov 1 17:19:14 2002//
-+/setup.c/1.5/Mon Dec 27 23:14:24 2004//
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/bigsur/CVS/Repository linux-2.6.17/arch/sh/boards/bigsur/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/bigsur/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/bigsur/CVS/Repository 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/bigsur
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/bigsur/CVS/Root linux-2.6.17/arch/sh/boards/bigsur/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/bigsur/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/bigsur/CVS/Root 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/cat68701/CVS/Entries linux-2.6.17/arch/sh/boards/cat68701/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/cat68701/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/cat68701/CVS/Entries 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1,4 @@
-+/Makefile/1.5/Thu Mar 11 18:08:02 2004//
-+/irq.c/1.2/Fri Nov 1 17:19:15 2002//
-+/setup.c/1.3/Mon Aug 4 01:44:39 2003//
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/cat68701/CVS/Repository linux-2.6.17/arch/sh/boards/cat68701/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/cat68701/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/cat68701/CVS/Repository 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/cat68701
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/cat68701/CVS/Root linux-2.6.17/arch/sh/boards/cat68701/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/cat68701/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/cat68701/CVS/Root 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/cqreek/CVS/Entries linux-2.6.17/arch/sh/boards/cqreek/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/cqreek/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/cqreek/CVS/Entries 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1,4 @@
-+/Makefile/1.6/Thu Mar 11 18:08:02 2004//
-+/irq.c/1.4/Fri Oct 28 13:12:47 2005/-ko/
-+/setup.c/1.5/Mon Aug 4 01:51:58 2003//
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/cqreek/CVS/Repository linux-2.6.17/arch/sh/boards/cqreek/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/cqreek/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/cqreek/CVS/Repository 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/cqreek
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/cqreek/CVS/Root linux-2.6.17/arch/sh/boards/cqreek/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/cqreek/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/cqreek/CVS/Root 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/cqreek/irq.c linux-2.6.17/arch/sh/boards/cqreek/irq.c
---- linux-2.6.17-vanilla/arch/sh/boards/cqreek/irq.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/cqreek/irq.c 2006-07-12 16:54:19.000000000 +0000
-@@ -1,4 +1,4 @@
--/* $Id: irq.c,v 1.1.2.4 2002/11/04 20:33:56 lethal Exp $
-+/* $Id: irq.c,v 1.3 2003/05/04 19:29:46 lethal Exp $
- *
- * arch/sh/boards/cqreek/irq.c
- *
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/dmida/CVS/Entries linux-2.6.17/arch/sh/boards/dmida/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/dmida/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/dmida/CVS/Entries 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1,3 @@
-+/Makefile/1.4/Thu Mar 11 18:08:02 2004//
-+/mach.c/1.5/Tue Sep 9 00:14:07 2003//
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/dmida/CVS/Repository linux-2.6.17/arch/sh/boards/dmida/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/dmida/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/dmida/CVS/Repository 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/dmida
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/dmida/CVS/Root linux-2.6.17/arch/sh/boards/dmida/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/dmida/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/dmida/CVS/Root 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/dreamcast/CVS/Entries linux-2.6.17/arch/sh/boards/dreamcast/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/dreamcast/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/dreamcast/CVS/Entries 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1,5 @@
-+/Makefile/1.7/Thu Mar 11 18:08:02 2004//
-+/irq.c/1.5/Fri Aug 26 20:12:14 2005//
-+/setup.c/1.8/Wed Jan 4 13:24:06 2006//
-+/rtc.c/1.6/Sat Jul 8 20:16:03 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/dreamcast/CVS/Repository linux-2.6.17/arch/sh/boards/dreamcast/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/dreamcast/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/dreamcast/CVS/Repository 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/dreamcast
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/dreamcast/CVS/Root linux-2.6.17/arch/sh/boards/dreamcast/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/dreamcast/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/dreamcast/CVS/Root 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/dreamcast/irq.c linux-2.6.17/arch/sh/boards/dreamcast/irq.c
---- linux-2.6.17-vanilla/arch/sh/boards/dreamcast/irq.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/dreamcast/irq.c 2006-07-12 16:54:19.000000000 +0000
-@@ -26,10 +26,10 @@
- event.
-
- There are three 32-bit ESRs located at 0xa05f8900 - 0xa05f6908. Event
-- types can be found in include/asm-sh/dc_sysasic.h. There are three groups
-- of EMRs that parallel the ESRs. Each EMR group corresponds to an IRQ, so
-- 0xa05f6910 - 0xa05f6918 triggers IRQ 13, 0xa05f6920 - 0xa05f6928 triggers
-- IRQ 11, and 0xa05f6930 - 0xa05f6938 triggers IRQ 9.
-+ types can be found in include/asm-sh/dreamcast/sysasic.h. There are three
-+ groups of EMRs that parallel the ESRs. Each EMR group corresponds to an
-+ IRQ, so 0xa05f6910 - 0xa05f6918 triggers IRQ 13, 0xa05f6920 - 0xa05f6928
-+ triggers IRQ 11, and 0xa05f6930 - 0xa05f6938 triggers IRQ 9.
-
- In the kernel, these events are mapped to virtual IRQs so that drivers can
- respond to them as they would a normal interrupt. In order to keep this
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/dreamcast/rtc.c linux-2.6.17/arch/sh/boards/dreamcast/rtc.c
---- linux-2.6.17-vanilla/arch/sh/boards/dreamcast/rtc.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/dreamcast/rtc.c 2006-07-12 16:54:19.000000000 +0000
-@@ -1,4 +1,5 @@
--/* arch/sh/kernel/rtc-aica.c
-+/*
-+ * arch/sh/boards/dreamcast/rtc.c
- *
- * Dreamcast AICA RTC routines.
- *
-@@ -10,15 +11,12 @@
- */
-
- #include <linux/time.h>
--
-+#include <asm/rtc.h>
- #include <asm/io.h>
-
--extern void (*rtc_get_time)(struct timespec *);
--extern int (*rtc_set_time)(const time_t);
--
- /* The AICA RTC has an Epoch of 1/1/1950, so we must subtract 20 years (in
-- seconds to get the standard Unix Epoch when getting the time, and add 20
-- years when setting the time. */
-+ seconds) to get the standard Unix Epoch when getting the time, and add
-+ 20 years when setting the time. */
- #define TWENTY_YEARS ((20 * 365LU + 5) * 86400)
-
- /* The AICA RTC is represented by a 32-bit seconds counter stored in 2 16-bit
-@@ -32,7 +30,8 @@
- *
- * Grabs the current RTC seconds counter and adjusts it to the Unix Epoch.
- */
--void aica_rtc_gettimeofday(struct timespec *ts) {
-+void aica_rtc_gettimeofday(struct timespec *ts)
-+{
- unsigned long val1, val2;
-
- do {
-@@ -55,7 +54,8 @@
- *
- * Adjusts the given @tv to the AICA Epoch and sets the RTC seconds counter.
- */
--int aica_rtc_settimeofday(const time_t secs) {
-+int aica_rtc_settimeofday(const time_t secs)
-+{
- unsigned long val1, val2;
- unsigned long adj = secs + TWENTY_YEARS;
-
-@@ -75,7 +75,7 @@
-
- void aica_time_init(void)
- {
-- rtc_get_time = aica_rtc_gettimeofday;
-- rtc_set_time = aica_rtc_settimeofday;
-+ rtc_sh_get_time = aica_rtc_gettimeofday;
-+ rtc_sh_set_time = aica_rtc_settimeofday;
- }
-
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/dreamcast/setup.c linux-2.6.17/arch/sh/boards/dreamcast/setup.c
---- linux-2.6.17-vanilla/arch/sh/boards/dreamcast/setup.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/dreamcast/setup.c 2006-07-12 16:54:19.000000000 +0000
-@@ -25,18 +25,16 @@
-
- #include <asm/io.h>
- #include <asm/irq.h>
-+#include <asm/rtc.h>
- #include <asm/machvec.h>
--#include <asm/machvec_init.h>
- #include <asm/mach/sysasic.h>
-
- extern struct hw_interrupt_type systemasic_int;
--/* XXX: Move this into it's proper header. */
--extern void (*board_time_init)(void);
- extern void aica_time_init(void);
- extern int gapspci_init(void);
- extern int systemasic_irq_demux(int);
-
--void *dreamcast_consistent_alloc(struct device *, size_t, dma_addr_t *, int);
-+void *dreamcast_consistent_alloc(struct device *, size_t, dma_addr_t *, gfp_t);
- int dreamcast_consistent_free(struct device *, size_t, void *, dma_addr_t);
-
- const char *get_system_type(void)
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/ec3104/CVS/Entries linux-2.6.17/arch/sh/boards/ec3104/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/ec3104/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/ec3104/CVS/Entries 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1,5 @@
-+/Makefile/1.5/Thu Mar 11 18:08:02 2004//
-+/io.c/1.2/Fri Nov 1 17:19:17 2002//
-+/irq.c/1.3/Tue Sep 9 00:14:07 2003//
-+/setup.c/1.3/Tue Jul 29 03:11:49 2003//
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/ec3104/CVS/Repository linux-2.6.17/arch/sh/boards/ec3104/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/ec3104/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/ec3104/CVS/Repository 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/ec3104
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/ec3104/CVS/Root linux-2.6.17/arch/sh/boards/ec3104/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/ec3104/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/ec3104/CVS/Root 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/harp/CVS/Entries linux-2.6.17/arch/sh/boards/harp/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/harp/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/harp/CVS/Entries 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1,7 @@
-+/Makefile/1.4/Thu Mar 11 18:08:02 2004//
-+/irq.c/1.4/Fri Oct 28 13:12:47 2005//
-+/led.c/1.2/Fri Nov 1 17:19:17 2002//
-+/mach.c/1.4/Tue Sep 9 00:14:07 2003//
-+/pcidma.c/1.2/Fri Nov 1 17:19:17 2002//
-+/setup.c/1.3/Thu Aug 19 12:24:27 2004//
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/harp/CVS/Repository linux-2.6.17/arch/sh/boards/harp/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/harp/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/harp/CVS/Repository 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/harp
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/harp/CVS/Root linux-2.6.17/arch/sh/boards/harp/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/harp/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/harp/CVS/Root 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/hp6xx/CVS/Entries linux-2.6.17/arch/sh/boards/hp6xx/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/hp6xx/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/hp6xx/CVS/Entries 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1,7 @@
-+/Makefile/1.2/Sun Jan 29 17:46:23 2006/-ko/
-+/hp6xx_apm.c/1.2/Mon Jan 30 15:57:17 2006//
-+/mach.c/1.4/Wed Jan 4 14:53:18 2006/-ko/
-+/pm.c/1.2/Mon Jan 30 15:57:17 2006//
-+/pm_wakeup.S/1.2/Mon Jan 30 15:57:17 2006//
-+/setup.c/1.4/Sun Jan 29 22:13:39 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/hp6xx/CVS/Repository linux-2.6.17/arch/sh/boards/hp6xx/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/hp6xx/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/hp6xx/CVS/Repository 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/hp6xx
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/hp6xx/CVS/Root linux-2.6.17/arch/sh/boards/hp6xx/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/hp6xx/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/hp6xx/CVS/Root 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/hp6xx/Makefile linux-2.6.17/arch/sh/boards/hp6xx/Makefile
---- linux-2.6.17-vanilla/arch/sh/boards/hp6xx/Makefile 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/hp6xx/Makefile 2006-07-12 16:54:19.000000000 +0000
-@@ -2,5 +2,8 @@
- # Makefile for the HP6xx specific parts of the kernel
- #
-
--obj-y := mach.o setup.o
-+obj-y := mach.o setup.o
-+obj-$(CONFIG_PM) += pm.o pm_wakeup.o
-+obj-$(CONFIG_APM) += hp6xx_apm.o
-+
-
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/hp6xx/hp6xx_apm.c linux-2.6.17/arch/sh/boards/hp6xx/hp6xx_apm.c
---- linux-2.6.17-vanilla/arch/sh/boards/hp6xx/hp6xx_apm.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/hp6xx/hp6xx_apm.c 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1,123 @@
-+/*
-+ * bios-less APM driver for hp680
-+ *
-+ * Copyright 2005 (c) Andriy Skulysh <askulysh@gmail.com>
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License.
-+ */
-+#include <linux/config.h>
-+#include <linux/module.h>
-+#include <linux/apm_bios.h>
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/interrupt.h>
-+#include <asm/io.h>
-+#include <asm/apm.h>
-+#include <asm/adc.h>
-+#include <asm/hp6xx/hp6xx.h>
-+
-+#define SH7709_PGDR 0xa400012c
-+
-+#define APM_CRITICAL 10
-+#define APM_LOW 30
-+
-+#define HP680_BATTERY_MAX 896
-+#define HP680_BATTERY_MIN 628
-+#define HP680_BATTERY_AC_ON 900
-+
-+#define MODNAME "hp6x0_apm"
-+
-+static int hp6x0_apm_get_info(char *buf, char **start, off_t fpos, int length)
-+{
-+ u8 pgdr;
-+ char *p;
-+ int battery_status;
-+ int battery_flag;
-+ int ac_line_status;
-+ int time_units = APM_BATTERY_LIFE_UNKNOWN;
-+
-+ int battery = adc_single(ADC_CHANNEL_BATTERY);
-+ int backup = adc_single(ADC_CHANNEL_BACKUP);
-+ int charging = adc_single(ADC_CHANNEL_CHARGE);
-+ int percentage;
-+
-+ percentage = 100 * (battery - HP680_BATTERY_MIN) /
-+ (HP680_BATTERY_MAX - HP680_BATTERY_MIN);
-+
-+ ac_line_status = (battery > HP680_BATTERY_AC_ON) ?
-+ APM_AC_ONLINE : APM_AC_OFFLINE;
-+
-+ p = buf;
-+
-+ pgdr = ctrl_inb(SH7709_PGDR);
-+ if (pgdr & PGDR_MAIN_BATTERY_OUT) {
-+ battery_status = APM_BATTERY_STATUS_NOT_PRESENT;
-+ battery_flag = 0x80;
-+ percentage = -1;
-+ } else if (charging < 8 ) {
-+ battery_status = APM_BATTERY_STATUS_CHARGING;
-+ battery_flag = 0x08;
-+ ac_line_status = 0xff;
-+ } else if (percentage <= APM_CRITICAL) {
-+ battery_status = APM_BATTERY_STATUS_CRITICAL;
-+ battery_flag = 0x04;
-+ } else if (percentage <= APM_LOW) {
-+ battery_status = APM_BATTERY_STATUS_LOW;
-+ battery_flag = 0x02;
-+ } else {
-+ battery_status = APM_BATTERY_STATUS_HIGH;
-+ battery_flag = 0x01;
-+ }
-+
-+ p += sprintf(p, "1.0 1.2 0x%02x 0x%02x 0x%02x 0x%02x %d%% %d %s\n",
-+ APM_32_BIT_SUPPORT,
-+ ac_line_status,
-+ battery_status,
-+ battery_flag,
-+ percentage,
-+ time_units,
-+ "min");
-+ p += sprintf(p, "bat=%d backup=%d charge=%d\n",
-+ battery, backup, charging);
-+
-+ return p - buf;
-+}
-+
-+static irqreturn_t hp6x0_apm_interrupt(int irq, void *dev, struct pt_regs *regs)
-+{
-+ if (!apm_suspended)
-+ apm_queue_event(APM_USER_SUSPEND);
-+
-+ return IRQ_HANDLED;
-+}
-+
-+static int __init hp6x0_apm_init(void)
-+{
-+ int ret;
-+
-+ ret = request_irq(HP680_BTN_IRQ, hp6x0_apm_interrupt,
-+ SA_INTERRUPT, MODNAME, 0);
-+ if (unlikely(ret < 0)) {
-+ printk(KERN_ERR MODNAME ": IRQ %d request failed\n",
-+ HP680_BTN_IRQ);
-+ return ret;
-+ }
-+
-+ apm_get_info = hp6x0_apm_get_info;
-+
-+ return ret;
-+}
-+
-+static void __exit hp6x0_apm_exit(void)
-+{
-+ free_irq(HP680_BTN_IRQ, 0);
-+ apm_get_info = 0;
-+}
-+
-+module_init(hp6x0_apm_init);
-+module_exit(hp6x0_apm_exit);
-+
-+MODULE_AUTHOR("Adriy Skulysh");
-+MODULE_DESCRIPTION("hp6xx Advanced Power Management");
-+MODULE_LICENSE("GPL");
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/hp6xx/pm.c linux-2.6.17/arch/sh/boards/hp6xx/pm.c
---- linux-2.6.17-vanilla/arch/sh/boards/hp6xx/pm.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/hp6xx/pm.c 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1,88 @@
-+/*
-+ * hp6x0 Power Management Routines
-+ *
-+ * Copyright (c) 2006 Andriy Skulysh <askulsyh@gmail.com>
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License.
-+ */
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/suspend.h>
-+#include <linux/errno.h>
-+#include <linux/time.h>
-+#include <asm/io.h>
-+#include <asm/hd64461.h>
-+#include <asm/hp6xx/hp6xx.h>
-+#include <asm/cpu/dac.h>
-+#include <asm/pm.h>
-+
-+#define STBCR 0xffffff82
-+#define STBCR2 0xffffff88
-+
-+static int hp6x0_pm_enter(suspend_state_t state)
-+{
-+ u8 stbcr, stbcr2;
-+#ifdef CONFIG_HD64461_ENABLER
-+ u8 scr;
-+ u16 hd64461_stbcr;
-+#endif
-+
-+ if (state != PM_SUSPEND_MEM)
-+ return -EINVAL;
-+
-+#ifdef CONFIG_HD64461_ENABLER
-+ outb(0, HD64461_PCC1CSCIER);
-+
-+ scr = inb(HD64461_PCC1SCR);
-+ scr |= HD64461_PCCSCR_VCC1;
-+ outb(scr, HD64461_PCC1SCR);
-+
-+ hd64461_stbcr = inw(HD64461_STBCR);
-+ hd64461_stbcr |= HD64461_STBCR_SPC1ST;
-+ outw(hd64461_stbcr, HD64461_STBCR);
-+#endif
-+
-+ ctrl_outb(0x1f, DACR);
-+
-+ stbcr = ctrl_inb(STBCR);
-+ ctrl_outb(0x01, STBCR);
-+
-+ stbcr2 = ctrl_inb(STBCR2);
-+ ctrl_outb(0x7f , STBCR2);
-+
-+ outw(0xf07f, HD64461_SCPUCR);
-+
-+ pm_enter();
-+
-+ outw(0, HD64461_SCPUCR);
-+ ctrl_outb(stbcr, STBCR);
-+ ctrl_outb(stbcr2, STBCR2);
-+
-+#ifdef CONFIG_HD64461_ENABLER
-+ hd64461_stbcr = inw(HD64461_STBCR);
-+ hd64461_stbcr &= ~HD64461_STBCR_SPC1ST;
-+ outw(hd64461_stbcr, HD64461_STBCR);
-+
-+ outb(0x4c, HD64461_PCC1CSCIER);
-+ outb(0x00, HD64461_PCC1CSCR);
-+#endif
-+
-+ return 0;
-+}
-+
-+/*
-+ * Set to PM_DISK_FIRMWARE so we can quickly veto suspend-to-disk.
-+ */
-+static struct pm_ops hp6x0_pm_ops = {
-+ .pm_disk_mode = PM_DISK_FIRMWARE,
-+ .enter = hp6x0_pm_enter,
-+};
-+
-+static int __init hp6x0_pm_init(void)
-+{
-+ pm_set_ops(&hp6x0_pm_ops);
-+ return 0;
-+}
-+
-+late_initcall(hp6x0_pm_init);
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/hp6xx/pm_wakeup.S linux-2.6.17/arch/sh/boards/hp6xx/pm_wakeup.S
---- linux-2.6.17-vanilla/arch/sh/boards/hp6xx/pm_wakeup.S 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/hp6xx/pm_wakeup.S 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1,58 @@
-+/*
-+ * Copyright (c) 2006 Andriy Skulysh <askulsyh@gmail.com>
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ */
-+
-+#include <linux/linkage.h>
-+#include <asm/cpu/mmu_context.h>
-+
-+#define k0 r0
-+#define k1 r1
-+#define k2 r2
-+#define k3 r3
-+#define k4 r4
-+
-+/*
-+ * Kernel mode register usage:
-+ * k0 scratch
-+ * k1 scratch
-+ * k2 scratch (Exception code)
-+ * k3 scratch (Return address)
-+ * k4 scratch
-+ * k5 reserved
-+ * k6 Global Interrupt Mask (0--15 << 4)
-+ * k7 CURRENT_THREAD_INFO (pointer to current thread info)
-+ */
-+
-+ENTRY(wakeup_start)
-+! clear STBY bit
-+ mov #-126, k2
-+ and #127, k0
-+ mov.b k0, @k2
-+! enable refresh
-+ mov.l 5f, k1
-+ mov.w 6f, k0
-+ mov.w k0, @k1
-+! jump to handler
-+ mov.l 2f, k2
-+ mov.l 3f, k3
-+ mov.l @k2, k2
-+
-+ mov.l 4f, k1
-+ jmp @k1
-+ nop
-+
-+ .align 2
-+1: .long EXPEVT
-+2: .long INTEVT
-+3: .long ret_from_irq
-+4: .long handle_exception
-+5: .long 0xffffff68
-+6: .word 0x0524
-+
-+ENTRY(wakeup_end)
-+ nop
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/hp6xx/setup.c linux-2.6.17/arch/sh/boards/hp6xx/setup.c
---- linux-2.6.17-vanilla/arch/sh/boards/hp6xx/setup.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/hp6xx/setup.c 2006-07-12 16:54:19.000000000 +0000
-@@ -16,6 +16,9 @@
- #include <asm/hp6xx/hp6xx.h>
- #include <asm/cpu/dac.h>
-
-+#define SCPCR 0xa4000116
-+#define SCPDR 0xa4000136
-+
- const char *get_system_type(void)
- {
- return "HP6xx";
-@@ -25,6 +28,7 @@
- {
- u8 v8;
- u16 v;
-+
- v = inw(HD64461_STBCR);
- v |= HD64461_STBCR_SURTST | HD64461_STBCR_SIRST |
- HD64461_STBCR_STM1ST | HD64461_STBCR_STM0ST |
-@@ -51,5 +55,15 @@
- v8 &= ~DACR_DAE;
- ctrl_outb(v8,DACR);
-
-+ v8 = ctrl_inb(SCPDR);
-+ v8 |= SCPDR_TS_SCAN_X | SCPDR_TS_SCAN_Y;
-+ v8 &= ~SCPDR_TS_SCAN_ENABLE;
-+ ctrl_outb(v8, SCPDR);
-+
-+ v = ctrl_inw(SCPCR);
-+ v &= ~SCPCR_TS_MASK;
-+ v |= SCPCR_TS_ENABLE;
-+ ctrl_outw(v, SCPCR);
-+
- return 0;
- }
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/landisk/CVS/Entries linux-2.6.17/arch/sh/boards/landisk/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/landisk/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/landisk/CVS/Entries 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,7 @@
-+/Makefile/1.2/Wed Feb 8 21:55:09 2006/-ko/
-+/io.c/1.4/Sun Feb 5 21:55:28 2006/-ko/
-+/irq.c/1.2/Sat Nov 12 13:02:45 2005/-ko/
-+/landisk_pwb.c/1.2/Sat Nov 12 13:02:45 2005/-ko/
-+/setup.c/1.3/Tue Jan 3 22:51:46 2006/-ko/
-+/rtc.c/1.3/Sat Jul 8 20:16:03 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/landisk/CVS/Repository linux-2.6.17/arch/sh/boards/landisk/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/landisk/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/landisk/CVS/Repository 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/landisk
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/landisk/CVS/Root linux-2.6.17/arch/sh/boards/landisk/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/landisk/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/landisk/CVS/Root 2006-07-12 16:54:19.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/landisk/Makefile linux-2.6.17/arch/sh/boards/landisk/Makefile
---- linux-2.6.17-vanilla/arch/sh/boards/landisk/Makefile 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/landisk/Makefile 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,5 @@
-+#
-+# Makefile for I-O DATA DEVICE, INC. "LANDISK Series"
-+#
-+
-+obj-y := setup.o io.o irq.o rtc.o landisk_pwb.o
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/landisk/io.c linux-2.6.17/arch/sh/boards/landisk/io.c
---- linux-2.6.17-vanilla/arch/sh/boards/landisk/io.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/landisk/io.c 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,250 @@
-+/*
-+ * arch/sh/boards/landisk/io.c
-+ *
-+ * Copyright (C) 2001 Ian da Silva, Jeremy Siegel
-+ * Based largely on io_se.c.
-+ *
-+ * I/O routine for I-O Data Device, Inc. LANDISK.
-+ *
-+ * Initial version only to support LAN access; some
-+ * placeholder code from io_landisk.c left in with the
-+ * expectation of later SuperIO and PCMCIA access.
-+ */
-+/*
-+ * modifed by kogiidena
-+ * 2005.03.03
-+ */
-+#include <linux/kernel.h>
-+#include <linux/types.h>
-+#include <linux/pci.h>
-+#include <asm/landisk/iodata_landisk.h>
-+#include <asm/addrspace.h>
-+#include <asm/io.h>
-+
-+extern void *area5_io_base; /* Area 5 I/O Base address */
-+extern void *area6_io_base; /* Area 6 I/O Base address */
-+
-+static inline unsigned long port2adr(unsigned int port)
-+{
-+ if ((0x1f0 <= port && port < 0x1f8) || port == 0x3f6)
-+ if (port == 0x3f6)
-+ return ((unsigned long)area5_io_base + 0x2c);
-+ else
-+ return ((unsigned long)area5_io_base + PA_PIDE_OFFSET +
-+ ((port - 0x1f0) << 1));
-+ else if ((0x170 <= port && port < 0x178) || port == 0x376)
-+ if (port == 0x376)
-+ return ((unsigned long)area6_io_base + 0x2c);
-+ else
-+ return ((unsigned long)area6_io_base + PA_SIDE_OFFSET +
-+ ((port - 0x170) << 1));
-+ else
-+ maybebadio((unsigned long)port);
-+
-+ return port;
-+}
-+
-+/*
-+ * General outline: remap really low stuff [eventually] to SuperIO,
-+ * stuff in PCI IO space (at or above window at pci.h:PCIBIOS_MIN_IO)
-+ * is mapped through the PCI IO window. Stuff with high bits (PXSEG)
-+ * should be way beyond the window, and is used w/o translation for
-+ * compatibility.
-+ */
-+u8 landisk_inb(unsigned long port)
-+{
-+ if (PXSEG(port))
-+ return ctrl_inb(port);
-+ else if (is_pci_ioaddr(port))
-+ return ctrl_inb(pci_ioaddr(port));
-+
-+ return ctrl_inw(port2adr(port)) & 0xff;
-+}
-+
-+u8 landisk_inb_p(unsigned long port)
-+{
-+ u8 v;
-+
-+ if (PXSEG(port))
-+ v = ctrl_inb(port);
-+ else if (is_pci_ioaddr(port))
-+ v = ctrl_inb(pci_ioaddr(port));
-+ else
-+ v = ctrl_inw(port2adr(port)) & 0xff;
-+
-+ ctrl_delay();
-+
-+ return v;
-+}
-+
-+u16 landisk_inw(unsigned long port)
-+{
-+ if (PXSEG(port))
-+ return ctrl_inw(port);
-+ else if (is_pci_ioaddr(port))
-+ return ctrl_inw(pci_ioaddr(port));
-+ else
-+ maybebadio(port);
-+
-+ return 0;
-+}
-+
-+u32 landisk_inl(unsigned long port)
-+{
-+ if (PXSEG(port))
-+ return ctrl_inl(port);
-+ else if (is_pci_ioaddr(port))
-+ return ctrl_inl(pci_ioaddr(port));
-+ else
-+ maybebadio(port);
-+
-+ return 0;
-+}
-+
-+void landisk_outb(u8 value, unsigned long port)
-+{
-+ if (PXSEG(port))
-+ ctrl_outb(value, port);
-+ else if (is_pci_ioaddr(port))
-+ ctrl_outb(value, pci_ioaddr(port));
-+ else
-+ ctrl_outw(value, port2adr(port));
-+}
-+
-+void landisk_outb_p(u8 value, unsigned long port)
-+{
-+ if (PXSEG(port))
-+ ctrl_outb(value, port);
-+ else if (is_pci_ioaddr(port))
-+ ctrl_outb(value, pci_ioaddr(port));
-+ else
-+ ctrl_outw(value, port2adr(port));
-+ ctrl_delay();
-+}
-+
-+void landisk_outw(u16 value, unsigned long port)
-+{
-+ if (PXSEG(port))
-+ ctrl_outw(value, port);
-+ else if (is_pci_ioaddr(port))
-+ ctrl_outw(value, pci_ioaddr(port));
-+ else
-+ maybebadio(port);
-+}
-+
-+void landisk_outl(u32 value, unsigned long port)
-+{
-+ if (PXSEG(port))
-+ ctrl_outl(value, port);
-+ else if (is_pci_ioaddr(port))
-+ ctrl_outl(value, pci_ioaddr(port));
-+ else
-+ maybebadio(port);
-+}
-+
-+void landisk_insb(unsigned long port, void *dst, unsigned long count)
-+{
-+ volatile u16 *p;
-+ u8 *buf = dst;
-+
-+ if (PXSEG(port)) {
-+ while (count--)
-+ *buf++ = *(volatile u8 *)port;
-+ } else if (is_pci_ioaddr(port)) {
-+ volatile u8 *bp = (volatile u8 *)pci_ioaddr(port);
-+
-+ while (count--)
-+ *buf++ = *bp;
-+ } else {
-+ p = (volatile u16 *)port2adr(port);
-+ while (count--)
-+ *buf++ = *p & 0xff;
-+ }
-+}
-+
-+void landisk_insw(unsigned long port, void *dst, unsigned long count)
-+{
-+ volatile u16 *p;
-+ u16 *buf = dst;
-+
-+ if (PXSEG(port))
-+ p = (volatile u16 *)port;
-+ else if (is_pci_ioaddr(port))
-+ p = (volatile u16 *)pci_ioaddr(port);
-+ else
-+ p = (volatile u16 *)port2adr(port);
-+ while (count--)
-+ *buf++ = *p;
-+}
-+
-+void landisk_insl(unsigned long port, void *dst, unsigned long count)
-+{
-+ u32 *buf = dst;
-+
-+ if (is_pci_ioaddr(port)) {
-+ volatile u32 *p = (volatile u32 *)pci_ioaddr(port);
-+
-+ while (count--)
-+ *buf++ = *p;
-+ } else
-+ maybebadio(port);
-+}
-+
-+void landisk_outsb(unsigned long port, const void *src, unsigned long count)
-+{
-+ volatile u16 *p;
-+ const u8 *buf = src;
-+
-+ if (PXSEG(port))
-+ while (count--)
-+ ctrl_outb(*buf++, port);
-+ else if (is_pci_ioaddr(port)) {
-+ volatile u8 *bp = (volatile u8 *)pci_ioaddr(port);
-+
-+ while (count--)
-+ *bp = *buf++;
-+ } else {
-+ p = (volatile u16 *)port2adr(port);
-+ while (count--)
-+ *p = *buf++;
-+ }
-+}
-+
-+void landisk_outsw(unsigned long port, const void *src, unsigned long count)
-+{
-+ volatile u16 *p;
-+ const u16 *buf = src;
-+
-+ if (PXSEG(port))
-+ p = (volatile u16 *)port;
-+ else if (is_pci_ioaddr(port))
-+ p = (volatile u16 *)pci_ioaddr(port);
-+ else
-+ p = (volatile u16 *)port2adr(port);
-+
-+ while (count--)
-+ *p = *buf++;
-+}
-+
-+void landisk_outsl(unsigned long port, const void *src, unsigned long count)
-+{
-+ const u32 *buf = src;
-+
-+ if (is_pci_ioaddr(port)) {
-+ volatile u32 *p = (volatile u32 *)pci_ioaddr(port);
-+
-+ while (count--)
-+ *p = *buf++;
-+ } else
-+ maybebadio(port);
-+}
-+
-+void __iomem *landisk_ioport_map(unsigned long port, unsigned int size)
-+{
-+ if (PXSEG(port))
-+ return (void __iomem *)port;
-+ else if (is_pci_ioaddr(port))
-+ return (void __iomem *)pci_ioaddr(port);
-+
-+ return (void __iomem *)port2adr(port);
-+}
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/landisk/irq.c linux-2.6.17/arch/sh/boards/landisk/irq.c
---- linux-2.6.17-vanilla/arch/sh/boards/landisk/irq.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/landisk/irq.c 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,105 @@
-+/*
-+ * arch/sh/boards/landisk/irq.c
-+ *
-+ * Copyright (C) 2001 Ian da Silva, Jeremy Siegel
-+ * Based largely on io_se.c.
-+ *
-+ * I/O routine for I-O Data Device, Inc. LANDISK.
-+ *
-+ * Initial version only to support LAN access; some
-+ * placeholder code from io_landisk.c left in with the
-+ * expectation of later SuperIO and PCMCIA access.
-+ */
-+/*
-+ * modified by kogiidena
-+ * 2005.03.03
-+ */
-+
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/irq.h>
-+#include <asm/io.h>
-+#include <asm/irq.h>
-+#include <asm/landisk/iodata_landisk.h>
-+
-+static void enable_landisk_irq(unsigned int irq);
-+static void disable_landisk_irq(unsigned int irq);
-+
-+/* shutdown is same as "disable" */
-+#define shutdown_landisk_irq disable_landisk_irq
-+
-+static void ack_landisk_irq(unsigned int irq);
-+static void end_landisk_irq(unsigned int irq);
-+
-+static unsigned int startup_landisk_irq(unsigned int irq)
-+{
-+ enable_landisk_irq(irq);
-+ return 0; /* never anything pending */
-+}
-+
-+static void disable_landisk_irq(unsigned int irq)
-+{
-+ unsigned long flags;
-+ unsigned char val;
-+ unsigned char mask = 0xff ^ (0x01 << (irq - 5));
-+
-+ /* Set the priority in IPR to 0 */
-+ local_irq_save(flags);
-+ val = ctrl_inb(PA_IMASK);
-+ val &= mask;
-+ ctrl_outb(val, PA_IMASK);
-+ local_irq_restore(flags);
-+}
-+
-+static void enable_landisk_irq(unsigned int irq)
-+{
-+ unsigned long flags;
-+ unsigned char val;
-+ unsigned char value = (0x01 << (irq - 5));
-+
-+ /* Set priority in IPR back to original value */
-+ local_irq_save(flags);
-+ val = ctrl_inb(PA_IMASK);
-+ val |= value;
-+ ctrl_outb(val, PA_IMASK);
-+ local_irq_restore(flags);
-+}
-+
-+static void ack_landisk_irq(unsigned int irq)
-+{
-+ disable_landisk_irq(irq);
-+}
-+
-+static void end_landisk_irq(unsigned int irq)
-+{
-+ if (!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS)))
-+ enable_landisk_irq(irq);
-+}
-+
-+static struct hw_interrupt_type landisk_irq_type = {
-+ .typename = "LANDISK IRQ",
-+ .startup = startup_landisk_irq,
-+ .shutdown = shutdown_landisk_irq,
-+ .enable = enable_landisk_irq,
-+ .disable = disable_landisk_irq,
-+ .ack = ack_landisk_irq,
-+ .end = end_landisk_irq
-+};
-+
-+static void make_landisk_irq(unsigned int irq)
-+{
-+ disable_irq_nosync(irq);
-+ irq_desc[irq].handler = &landisk_irq_type;
-+ disable_landisk_irq(irq);
-+}
-+
-+/*
-+ * Initialize IRQ setting
-+ */
-+void __init init_landisk_IRQ(void)
-+{
-+ int i;
-+
-+ for (i = 5; i < 14; i++)
-+ make_landisk_irq(i);
-+}
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/landisk/landisk_pwb.c linux-2.6.17/arch/sh/boards/landisk/landisk_pwb.c
---- linux-2.6.17-vanilla/arch/sh/boards/landisk/landisk_pwb.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/landisk/landisk_pwb.c 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,348 @@
-+/*
-+ * arch/sh/boards/landisk/landisk_pwb.c -- driver for the Power control switch.
-+ *
-+ * This driver will also support the I-O DATA Device, Inc. LANDISK Board.
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * Copylight (C) 2002 Atom Create Engineering Co., Ltd.
-+ *
-+ * LED control drive function added by kogiidena
-+ */
-+
-+#include <linux/config.h>
-+#include <linux/module.h>
-+#include <linux/errno.h>
-+#include <linux/signal.h>
-+#include <linux/major.h>
-+#include <linux/poll.h>
-+#include <linux/init.h>
-+#include <linux/delay.h>
-+#include <linux/sched.h>
-+#include <linux/timer.h>
-+#include <linux/interrupt.h>
-+
-+#include <asm/system.h>
-+#include <asm/io.h>
-+#include <asm/irq.h>
-+#include <asm/uaccess.h>
-+#include <asm/landisk/iodata_landisk.h>
-+
-+#define SHUTDOWN_BTN_MINOR 1 /* Shutdown button device minor no. */
-+#define LED_MINOR 21 /* LED minor no. */
-+#define BTN_MINOR 22 /* BUTTON minor no. */
-+#define GIO_MINOR 40 /* GIO minor no. */
-+
-+static int openCnt;
-+static int openCntLED;
-+static int openCntGio;
-+static int openCntBtn;
-+static int landisk_btn;
-+static int landisk_btnctrlpid;
-+/*
-+ * Functions prototypes
-+ */
-+
-+static int gio_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
-+ unsigned long arg);
-+
-+static int swdrv_open(struct inode *inode, struct file *filp)
-+{
-+ int minor;
-+
-+ minor = MINOR(inode->i_rdev);
-+ filp->private_data = (void *)minor;
-+
-+ if (minor == SHUTDOWN_BTN_MINOR) {
-+ if (openCnt > 0) {
-+ return -EALREADY;
-+ } else {
-+ openCnt++;
-+ return 0;
-+ }
-+ } else if (minor == LED_MINOR) {
-+ if (openCntLED > 0) {
-+ return -EALREADY;
-+ } else {
-+ openCntLED++;
-+ return 0;
-+ }
-+ } else if (minor == BTN_MINOR) {
-+ if (openCntBtn > 0) {
-+ return -EALREADY;
-+ } else {
-+ openCntBtn++;
-+ return 0;
-+ }
-+ } else if (minor == GIO_MINOR) {
-+ if (openCntGio > 0) {
-+ return -EALREADY;
-+ } else {
-+ openCntGio++;
-+ return 0;
-+ }
-+ }
-+ return -ENOENT;
-+
-+}
-+
-+static int swdrv_close(struct inode *inode, struct file *filp)
-+{
-+ int minor;
-+
-+ minor = MINOR(inode->i_rdev);
-+ if (minor == SHUTDOWN_BTN_MINOR) {
-+ openCnt--;
-+ } else if (minor == LED_MINOR) {
-+ openCntLED--;
-+ } else if (minor == BTN_MINOR) {
-+ openCntBtn--;
-+ } else if (minor == GIO_MINOR) {
-+ openCntGio--;
-+ }
-+ return 0;
-+}
-+
-+static int swdrv_read(struct file *filp, char *buff, size_t count,
-+ loff_t * ppos)
-+{
-+ int minor;
-+ minor = (int)(filp->private_data);
-+
-+ if (!access_ok(VERIFY_WRITE, (void *)buff, count))
-+ return -EFAULT;
-+
-+ if (minor == SHUTDOWN_BTN_MINOR) {
-+ if (landisk_btn & 0x10) {
-+ put_user(1, buff);
-+ return 1;
-+ } else {
-+ return 0;
-+ }
-+ }
-+ return 0;
-+}
-+
-+static int swdrv_write(struct file *filp, const char *buff, size_t count,
-+ loff_t * ppos)
-+{
-+ int minor;
-+ minor = (int)(filp->private_data);
-+
-+ if (minor == SHUTDOWN_BTN_MINOR) {
-+ return count;
-+ }
-+ return count;
-+}
-+
-+static irqreturn_t sw_interrupt(int irq, void *dev_id, struct pt_regs *regs)
-+{
-+ landisk_btn = (0x0ff & (~ctrl_inb(PA_STATUS)));
-+ disable_irq(IRQ_BUTTON);
-+ disable_irq(IRQ_POWER);
-+ ctrl_outb(0x00, PA_PWRINT_CLR);
-+
-+ if (landisk_btnctrlpid != 0) {
-+ kill_proc(landisk_btnctrlpid, SIGUSR1, 1);
-+ landisk_btnctrlpid = 0;
-+ }
-+
-+ return IRQ_HANDLED;
-+}
-+
-+static struct file_operations swdrv_fops = {
-+ .read = swdrv_read, /* read */
-+ .write = swdrv_write, /* write */
-+ .open = swdrv_open, /* open */
-+ .release = swdrv_close, /* release */
-+ .ioctl = gio_ioctl, /* ioctl */
-+
-+};
-+
-+static char banner[] __initdata =
-+ KERN_INFO "LANDISK and USL-5P Button, LED and GIO driver initialized\n";
-+
-+int __init swdrv_init(void)
-+{
-+ int error;
-+
-+ printk("%s", banner);
-+
-+ openCnt = 0;
-+ openCntLED = 0;
-+ openCntBtn = 0;
-+ openCntGio = 0;
-+ landisk_btn = 0;
-+ landisk_btnctrlpid = 0;
-+
-+ if ((error = register_chrdev(SHUTDOWN_BTN_MAJOR, "swdrv", &swdrv_fops))) {
-+ printk(KERN_ERR
-+ "Button, LED and GIO driver:Couldn't register driver, error=%d\n",
-+ error);
-+ return 1;
-+ }
-+
-+ if (request_irq(IRQ_POWER, sw_interrupt, 0, "SHUTDOWNSWITCH", NULL)) {
-+ printk(KERN_ERR "Unable to get IRQ 11.\n");
-+ return 1;
-+ }
-+ if (request_irq(IRQ_BUTTON, sw_interrupt, 0, "USL-5P BUTTON", NULL)) {
-+ printk(KERN_ERR "Unable to get IRQ 12.\n");
-+ return 1;
-+ }
-+ ctrl_outb(0x00, PA_PWRINT_CLR);
-+
-+ return 0;
-+}
-+
-+module_init(swdrv_init);
-+
-+/*
-+ * gio driver
-+ *
-+ */
-+
-+#include <asm/landisk/gio.h>
-+
-+static int gio_ioctl(struct inode *inode, struct file *filp,
-+ unsigned int cmd, unsigned long arg)
-+{
-+ int minor;
-+ unsigned int data, mask;
-+ static unsigned int addr = 0;
-+
-+ minor = (int)(filp->private_data);
-+
-+ /* access control */
-+ if (minor == GIO_MINOR) {
-+ ;
-+ } else if (minor == LED_MINOR) {
-+ if (((cmd & 0x0ff) >= 9) && ((cmd & 0x0ff) < 20)) {
-+ ;
-+ } else {
-+ return -EINVAL;
-+ }
-+ } else if (minor == BTN_MINOR) {
-+ if (((cmd & 0x0ff) >= 20) && ((cmd & 0x0ff) < 30)) {
-+ ;
-+ } else {
-+ return -EINVAL;
-+ }
-+ } else {
-+ return -EINVAL;
-+ }
-+
-+ if (cmd & 0x01) { /* write */
-+ if (copy_from_user(&data, (int *)arg, sizeof(int))) {
-+ return -EFAULT;
-+ }
-+ }
-+
-+ switch (cmd) {
-+ case GIODRV_IOCSGIOSETADDR: /* addres set */
-+ addr = data;
-+ break;
-+
-+ case GIODRV_IOCSGIODATA1: /* write byte */
-+ ctrl_outb((unsigned char)(0x0ff & data), addr);
-+ break;
-+
-+ case GIODRV_IOCSGIODATA2: /* write word */
-+ if (addr & 0x01) {
-+ return -EFAULT;
-+ }
-+ ctrl_outw((unsigned short int)(0x0ffff & data), addr);
-+ break;
-+
-+ case GIODRV_IOCSGIODATA4: /* write long */
-+ if (addr & 0x03) {
-+ return -EFAULT;
-+ }
-+ ctrl_outl(data, addr);
-+ break;
-+
-+ case GIODRV_IOCGGIODATA1: /* read byte */
-+ data = ctrl_inb(addr);
-+ break;
-+
-+ case GIODRV_IOCGGIODATA2: /* read word */
-+ if (addr & 0x01) {
-+ return -EFAULT;
-+ }
-+ data = ctrl_inw(addr);
-+ break;
-+
-+ case GIODRV_IOCGGIODATA4: /* read long */
-+ if (addr & 0x03) {
-+ return -EFAULT;
-+ }
-+ data = ctrl_inl(addr);
-+ break;
-+ case GIODRV_IOCSGIO_LED: /* write */
-+ mask = ((data & 0x00ffffff) << 8)
-+ | ((data & 0x0000ffff) << 16)
-+ | ((data & 0x000000ff) << 24);
-+ landisk_ledparam = data & (~mask);
-+ if (landisk_arch == 0) { /* arch == landisk */
-+ landisk_ledparam &= 0x03030303;
-+ mask = (~(landisk_ledparam >> 22)) & 0x000c;
-+ landisk_ledparam |= mask;
-+ } else { /* arch == usl-5p */
-+ mask = (landisk_ledparam >> 24) & 0x0001;
-+ landisk_ledparam |= mask;
-+ landisk_ledparam &= 0x007f7f7f;
-+ }
-+ landisk_ledparam |= 0x80;
-+ break;
-+ case GIODRV_IOCGGIO_LED: /* read */
-+ data = landisk_ledparam;
-+ if (landisk_arch == 0) { /* arch == landisk */
-+ data &= 0x03030303;
-+ } else { /* arch == usl-5p */
-+ ;
-+ }
-+ data &= (~0x080);
-+ break;
-+ case GIODRV_IOCSGIO_BUZZER: /* write */
-+ landisk_buzzerparam = data;
-+ landisk_ledparam |= 0x80;
-+ break;
-+ case GIODRV_IOCGGIO_LANDISK: /* read */
-+ data = landisk_arch & 0x01;
-+ break;
-+ case GIODRV_IOCGGIO_BTN: /* read */
-+ data = (0x0ff & ctrl_inb(PA_PWRINT_CLR));
-+ data <<= 8;
-+ data |= (0x0ff & ctrl_inb(PA_IMASK));
-+ data <<= 8;
-+ data |= (0x0ff & landisk_btn);
-+ data <<= 8;
-+ data |= (0x0ff & (~ctrl_inb(PA_STATUS)));
-+ break;
-+ case GIODRV_IOCSGIO_BTNPID: /* write */
-+ landisk_btnctrlpid = data;
-+ landisk_btn = 0;
-+ if (irq_desc[IRQ_BUTTON].depth) {
-+ enable_irq(IRQ_BUTTON);
-+ }
-+ if (irq_desc[IRQ_POWER].depth) {
-+ enable_irq(IRQ_POWER);
-+ }
-+ break;
-+ case GIODRV_IOCGGIO_BTNPID: /* read */
-+ data = landisk_btnctrlpid;
-+ break;
-+ default:
-+ return -EFAULT;
-+ break;
-+ }
-+
-+ if ((cmd & 0x01) == 0) { /* read */
-+ if (copy_to_user((int *)arg, &data, sizeof(int))) {
-+ return -EFAULT;
-+ }
-+ }
-+ return 0;
-+}
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/landisk/rtc.c linux-2.6.17/arch/sh/boards/landisk/rtc.c
---- linux-2.6.17-vanilla/arch/sh/boards/landisk/rtc.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/landisk/rtc.c 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,93 @@
-+/*
-+ * arch/sh/boards/landisk/rtc.c -- RTC support
-+ *
-+ * Copyright (C) 2000 Philipp Rumpf <prumpf@tux.org>
-+ * Copyright (C) 1999 Tetsuya Okada & Niibe Yutaka
-+ */
-+/*
-+ * modifed by kogiidena
-+ * 2005.09.16
-+ */
-+
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <linux/sched.h>
-+#include <linux/time.h>
-+#include <linux/delay.h>
-+#include <linux/spinlock.h>
-+#include <linux/bcd.h>
-+#include <asm/rtc.h>
-+
-+extern spinlock_t rtc_lock;
-+
-+extern void
-+rs5c313_set_cmos_time(unsigned int BCD_yr, unsigned int BCD_mon,
-+ unsigned int BCD_day, unsigned int BCD_hr,
-+ unsigned int BCD_min, unsigned int BCD_sec);
-+
-+extern unsigned long
-+rs5c313_get_cmos_time(unsigned int *BCD_yr, unsigned int *BCD_mon,
-+ unsigned int *BCD_day, unsigned int *BCD_hr,
-+ unsigned int *BCD_min, unsigned int *BCD_sec);
-+
-+void landisk_rtc_gettimeofday(struct timespec *tv)
-+{
-+ unsigned int BCD_yr, BCD_mon, BCD_day, BCD_hr, BCD_min, BCD_sec;
-+ unsigned long flags;
-+
-+ spin_lock_irqsave(&rtc_lock, flags);
-+ tv->tv_sec = rs5c313_get_cmos_time
-+ (&BCD_yr, &BCD_mon, &BCD_day, &BCD_hr, &BCD_min, &BCD_sec);
-+ tv->tv_nsec = 0;
-+ spin_unlock_irqrestore(&rtc_lock, flags);
-+}
-+
-+int landisk_rtc_settimeofday(const time_t secs)
-+{
-+ int retval = 0;
-+ int real_seconds, real_minutes, cmos_minutes;
-+ unsigned long flags;
-+ unsigned long nowtime = secs;
-+ unsigned int BCD_yr, BCD_mon, BCD_day, BCD_hr, BCD_min, BCD_sec;
-+
-+ spin_lock_irqsave(&rtc_lock, flags);
-+
-+ rs5c313_get_cmos_time
-+ (&BCD_yr, &BCD_mon, &BCD_day, &BCD_hr, &BCD_min, &BCD_sec);
-+ cmos_minutes = BCD_min;
-+ BCD_TO_BIN(cmos_minutes);
-+
-+ /*
-+ * since we're only adjusting minutes and seconds,
-+ * don't interfere with hour overflow. This avoids
-+ * messing with unknown time zones but requires your
-+ * RTC not to be off by more than 15 minutes
-+ */
-+ real_seconds = nowtime % 60;
-+ real_minutes = nowtime / 60;
-+ if (((abs(real_minutes - cmos_minutes) + 15) / 30) & 1)
-+ real_minutes += 30; /* correct for half hour time zone */
-+ real_minutes %= 60;
-+
-+ if (abs(real_minutes - cmos_minutes) < 30) {
-+ BIN_TO_BCD(real_seconds);
-+ BIN_TO_BCD(real_minutes);
-+ rs5c313_set_cmos_time(BCD_yr, BCD_mon, BCD_day, BCD_hr,
-+ real_minutes, real_seconds);
-+ } else {
-+ printk(KERN_WARNING
-+ "set_rtc_time: can't update from %d to %d\n",
-+ cmos_minutes, real_minutes);
-+ retval = -1;
-+ }
-+
-+ spin_unlock_irqrestore(&rtc_lock, flags);
-+ return retval;
-+}
-+
-+void landisk_time_init(void)
-+{
-+ rtc_sh_get_time = landisk_rtc_gettimeofday;
-+ rtc_sh_set_time = landisk_rtc_settimeofday;
-+}
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/landisk/setup.c linux-2.6.17/arch/sh/boards/landisk/setup.c
---- linux-2.6.17-vanilla/arch/sh/boards/landisk/setup.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/landisk/setup.c 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,179 @@
-+/*
-+ * arch/sh/boards/landisk/setup.c
-+ *
-+ * Copyright (C) 2000 Kazumoto Kojima
-+ * Copyright (C) 2002 Paul Mundt
-+ *
-+ * I-O DATA Device, Inc. LANDISK Support.
-+ *
-+ * Modified for LANDISK by
-+ * Atom Create Engineering Co., Ltd. 2002.
-+ *
-+ * modifed by kogiidena
-+ * 2005.09.16
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ */
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/pm.h>
-+#include <linux/mm.h>
-+#include <asm/machvec.h>
-+#include <asm/rtc.h>
-+#include <asm/landisk/iodata_landisk.h>
-+#include <asm/io.h>
-+
-+void landisk_time_init(void);
-+void init_landisk_IRQ(void);
-+
-+int landisk_ledparam;
-+int landisk_buzzerparam;
-+int landisk_arch;
-+
-+/* cycle the led's in the clasic knightrider/sun pattern */
-+static void heartbeat_landisk(void)
-+{
-+ static unsigned int cnt = 0, blink = 0x00, period = 25;
-+ volatile u8 *p = (volatile u8 *)PA_LED;
-+ char data;
-+
-+ if ((landisk_ledparam & 0x080) == 0)
-+ return;
-+
-+ cnt += 1;
-+
-+ if (cnt < period)
-+ return;
-+
-+ cnt = 0;
-+ blink++;
-+
-+ data = (blink & 0x01) ? (landisk_ledparam >> 16) : 0;
-+ data |= (blink & 0x02) ? (landisk_ledparam >> 8) : 0;
-+ data |= landisk_ledparam;
-+
-+ /* buzzer */
-+ if (landisk_buzzerparam & 0x1) {
-+ data |= 0x80;
-+ } else {
-+ data &= 0x7f;
-+ }
-+ *p = data;
-+
-+ if (((landisk_ledparam & 0x007f7f00) == 0) &&
-+ (landisk_buzzerparam == 0))
-+ landisk_ledparam &= (~0x0080);
-+
-+ landisk_buzzerparam >>= 1;
-+}
-+
-+/*
-+ * The Machine Vector
-+ */
-+struct sh_machine_vector mv_landisk __initmv = {
-+ .mv_nr_irqs = 72,
-+ .mv_inb = landisk_inb,
-+ .mv_inw = landisk_inw,
-+ .mv_inl = landisk_inl,
-+ .mv_outb = landisk_outb,
-+ .mv_outw = landisk_outw,
-+ .mv_outl = landisk_outl,
-+ .mv_inb_p = landisk_inb_p,
-+ .mv_inw_p = landisk_inw,
-+ .mv_inl_p = landisk_inl,
-+ .mv_outb_p = landisk_outb_p,
-+ .mv_outw_p = landisk_outw,
-+ .mv_outl_p = landisk_outl,
-+ .mv_insb = landisk_insb,
-+ .mv_insw = landisk_insw,
-+ .mv_insl = landisk_insl,
-+ .mv_outsb = landisk_outsb,
-+ .mv_outsw = landisk_outsw,
-+ .mv_outsl = landisk_outsl,
-+ .mv_ioport_map = landisk_ioport_map,
-+ .mv_init_irq = init_landisk_IRQ,
-+#ifdef CONFIG_HEARTBEAT
-+ .mv_heartbeat = heartbeat_landisk,
-+#endif
-+};
-+ALIAS_MV(landisk)
-+
-+const char *get_system_type(void)
-+{
-+ return "LANDISK";
-+}
-+
-+static void landisk_power_off(void)
-+{
-+ ctrl_outb(0x01, PA_SHUTDOWN);
-+}
-+
-+static void check_usl5p(void)
-+{
-+ volatile u8 *p = (volatile u8 *)PA_LED;
-+ u8 tmp1, tmp2;
-+
-+ tmp1 = *p;
-+ *p = 0x40;
-+ tmp2 = *p;
-+ *p = tmp1;
-+
-+ landisk_arch = (tmp2 == 0x40);
-+ if (landisk_arch == 1) {
-+ /* arch == usl-5p */
-+ landisk_ledparam = 0x00000380;
-+ landisk_ledparam |= (tmp1 & 0x07c);
-+ } else {
-+ /* arch == landisk */
-+ landisk_ledparam = 0x02000180;
-+ landisk_ledparam |= 0x04;
-+ }
-+}
-+
-+void __init platform_setup(void)
-+{
-+ landisk_buzzerparam = 0;
-+ check_usl5p();
-+
-+ printk(KERN_INFO "I-O DATA DEVICE, INC. \"LANDISK Series\" support.\n");
-+ board_time_init = landisk_time_init;
-+ pm_power_off = landisk_power_off;
-+}
-+
-+void *area5_io_base;
-+void *area6_io_base;
-+
-+static int __init landisk_cf_init(void)
-+{
-+ pgprot_t prot;
-+ unsigned long paddrbase, psize;
-+
-+ /* open I/O area window */
-+ paddrbase = virt_to_phys((void *)PA_AREA5_IO);
-+ psize = PAGE_SIZE;
-+ prot = PAGE_KERNEL_PCC(1, _PAGE_PCC_IO16);
-+ area5_io_base = p3_ioremap(paddrbase, psize, prot.pgprot);
-+ if (!area5_io_base) {
-+ printk("allocate_cf_area : can't open CF I/O window!\n");
-+ return -ENOMEM;
-+ }
-+
-+ paddrbase = virt_to_phys((void *)PA_AREA6_IO);
-+ psize = PAGE_SIZE;
-+ prot = PAGE_KERNEL_PCC(0, _PAGE_PCC_IO16);
-+ area6_io_base = p3_ioremap(paddrbase, psize, prot.pgprot);
-+ if (!area6_io_base) {
-+ printk("allocate_cf_area : can't open HDD I/O window!\n");
-+ return -ENOMEM;
-+ }
-+
-+ printk(KERN_INFO "Allocate Area5/6 success.\n");
-+
-+ /* XXX : do we need attribute and common-memory area also? */
-+
-+ return 0;
-+}
-+
-+__initcall(landisk_cf_init);
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/mpc1211/CVS/Entries linux-2.6.17/arch/sh/boards/mpc1211/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/mpc1211/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/mpc1211/CVS/Entries 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,6 @@
-+/Makefile/1.4/Thu Mar 11 18:08:02 2004/-ko/
-+/led.c/1.1/Fri May 16 17:18:15 2003/-ko/
-+/pci.c/1.6/Mon Oct 25 10:41:01 2004/-ko/
-+/setup.c/1.4/Sun Feb 5 21:55:28 2006/-ko/
-+/rtc.c/1.4/Sat Jul 8 20:16:04 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/mpc1211/CVS/Repository linux-2.6.17/arch/sh/boards/mpc1211/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/mpc1211/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/mpc1211/CVS/Repository 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/mpc1211
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/mpc1211/CVS/Root linux-2.6.17/arch/sh/boards/mpc1211/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/mpc1211/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/mpc1211/CVS/Root 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/mpc1211/rtc.c linux-2.6.17/arch/sh/boards/mpc1211/rtc.c
---- linux-2.6.17-vanilla/arch/sh/boards/mpc1211/rtc.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/mpc1211/rtc.c 2006-07-12 16:54:20.000000000 +0000
-@@ -130,7 +130,7 @@
-
- void mpc1211_time_init(void)
- {
-- rtc_get_time = mpc1211_rtc_gettimeofday;
-- rtc_set_time = mpc1211_rtc_settimeofday;
-+ rtc_sh_get_time = mpc1211_rtc_gettimeofday;
-+ rtc_sh_set_time = mpc1211_rtc_settimeofday;
- }
-
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/mpc1211/setup.c linux-2.6.17/arch/sh/boards/mpc1211/setup.c
---- linux-2.6.17-vanilla/arch/sh/boards/mpc1211/setup.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/mpc1211/setup.c 2006-07-12 16:54:20.000000000 +0000
-@@ -256,23 +256,12 @@
- }
- }
-
--/*
-- Initialize the board
--*/
--
--
--static void delay (void)
--{
-- volatile unsigned short tmp;
-- tmp = *(volatile unsigned short *) 0xa0000000;
--}
--
--static void delay1000 (void)
-+static void delay1000(void)
- {
- int i;
-
- for (i=0; i<1000; i++)
-- delay ();
-+ ctrl_delay();
- }
-
- static int put_smb_blk(unsigned char *p, int address, int command, int no)
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/overdrive/CVS/Entries linux-2.6.17/arch/sh/boards/overdrive/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/overdrive/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/overdrive/CVS/Entries 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,11 @@
-+/Makefile/1.5/Sat Mar 26 20:25:35 2005//
-+/fpga.c/1.2/Fri Nov 1 17:19:19 2002//
-+/galileo.c/1.4/Mon Oct 25 10:41:01 2004//
-+/io.c/1.2/Fri Nov 1 17:19:19 2002//
-+/irq.c/1.4/Fri Oct 28 13:12:48 2005//
-+/led.c/1.3/Sun May 4 19:29:47 2003//
-+/mach.c/1.4/Tue Sep 9 00:14:07 2003//
-+/overdrive.ttf/1.2/Fri Nov 1 17:19:19 2002//
-+/pcidma.c/1.3/Mon Dec 27 23:14:24 2004//
-+/setup.c/1.3/Sat Mar 26 20:25:35 2005//
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/overdrive/CVS/Repository linux-2.6.17/arch/sh/boards/overdrive/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/overdrive/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/overdrive/CVS/Repository 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/overdrive
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/overdrive/CVS/Root linux-2.6.17/arch/sh/boards/overdrive/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/overdrive/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/overdrive/CVS/Root 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/overdrive/overdrive.ttf linux-2.6.17/arch/sh/boards/overdrive/overdrive.ttf
---- linux-2.6.17-vanilla/arch/sh/boards/overdrive/overdrive.ttf 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/overdrive/overdrive.ttf 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,770 @@
-+255,255, 98,255, 51, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
-+160, 9, 52,129, 38,208, 4,154, 64, 19, 0, 89, 96, 10,100,129,137,134, 85, 6,154, 0, 25,104, 2, 77,160, 76,148, 1, 0, 0, 0, 0, 0, 6,202, 0, 25, 0, 89,100,170, 9, 52,129, 38, 80, 6,154, 68, 19,112, 2, 96, 10, 76,149,129, 50, 64, 6,200, 0,188,254,
-+ 0, 21,160, 2, 84,128, 10, 80, 1, 42,128, 10, 80, 1, 42, 64, 7,180,128, 10, 80, 1, 42, 64, 5,168, 0, 61,160, 2, 0, 0, 0, 0, 0, 9, 80, 1, 46,128, 10,120, 1, 21,160, 2, 84,128, 10,208, 3, 42, 64, 5, 80, 1, 42,160, 2, 84,128, 11,112, 1,204,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 64, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,128, 0, 16, 0, 0, 8, 0, 0, 0, 0,204,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,124,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 0,128, 2, 0, 0, 2, 0, 0, 0, 64,101,160, 0, 0, 0, 0, 0, 0, 0, 80, 0, 2, 0, 0, 74, 9, 0, 0, 0, 0,128, 66, 0, 2, 0, 0, 0, 0, 1, 32,160, 0, 4,160, 0, 16, 0, 72,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 8, 0, 0, 1, 0, 32, 2, 0, 0, 0, 1, 0, 0, 0, 12,128, 4, 0, 0, 0, 0, 0, 0, 80, 0, 8, 1, 0, 32, 0, 0, 0, 0, 0, 0, 2,130, 0, 0, 0, 0, 0,130, 8,128, 16,144, 0, 2, 0, 1,160,254,
-+160, 9, 54, 0, 0, 16, 0, 18, 16, 0, 72, 68, 0, 32, 0, 0, 0, 0,208, 0, 0, 64, 34,104, 0, 69, 4, 0, 0, 0, 0, 0, 0, 0, 80, 24, 26, 64, 33, 1, 0, 1, 32,144, 36,192, 66, 4, 0, 26, 64, 3, 8, 0, 1,160, 16, 0,128, 66, 18, 0, 2, 0,240,252,
-+ 0, 1, 48, 0, 0, 0, 0, 8, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,192, 0, 0, 0, 1, 2, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 24, 0, 2, 0, 0, 0, 0, 0, 16, 0, 4, 0, 0, 24, 0, 3, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 16,204,253,
-+128, 1, 60, 0, 0,240, 0, 22, 0, 0, 88, 0, 0,224, 1, 0, 0, 0,240, 0, 0,192, 2, 96, 16, 7, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 30,192, 1, 0, 0, 12, 96, 0, 44,128, 3, 0, 0, 30,192, 3, 0, 0, 12,224, 0, 0,128, 3,240, 0, 0, 4, 72,252,
-+128, 5, 54, 0, 0,208, 0, 10, 0, 0, 40, 0, 0,160, 1, 0, 0, 0,208, 0, 0, 64, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0,128,132, 26, 64, 2, 0, 0, 64, 33, 40, 20,128, 4, 0, 0, 26, 64, 3, 0,130, 76, 33, 1, 0,128, 64,209, 0, 0, 0,200,252,
-+128, 5, 0, 10, 0, 0, 2, 16, 0, 0, 64, 0, 0, 0, 4, 0, 0, 0, 0,128, 0, 0, 2, 0, 18, 4, 0, 0, 0, 0, 0, 0, 0, 0, 64, 8,128, 0, 1, 0, 0, 44,128,132, 32, 0, 2, 0, 0,128, 0, 0, 0, 4, 0,130, 0, 0, 0, 64,193, 34, 0, 1,188,255,
-+224, 65, 8, 0, 0, 32, 64, 12, 0, 0, 56, 0, 0, 64,128, 0, 0, 0, 48, 0, 0,128, 1,120, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0,176, 64, 6,136, 2, 0, 0, 15, 68, 1, 24, 0, 5, 0, 0, 6,144,128, 24, 32, 15, 64, 1, 0, 0, 1,224, 0, 6, 8, 0,253,
-+128, 1, 1, 0, 0, 0, 32, 16, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 96, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 1, 0, 0, 12, 2, 64, 32, 0, 2, 0, 0, 0, 64, 0, 96, 64, 12,128, 0, 0, 0, 0, 0, 0, 0, 16,112,252,
-+128, 5, 0, 0, 0, 0, 0, 8, 0, 0, 40, 0, 0, 0, 8, 2, 0, 0, 16, 0, 0, 0, 1, 96, 10, 9, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 2, 64, 2, 0, 0, 76, 0, 5, 16,128, 4, 0, 0, 2, 64, 0, 0, 2, 76, 36, 1, 0, 0, 20, 2, 36,136, 0, 20,254,
-+ 32, 16, 53, 0, 0, 16, 0, 18, 1, 0, 40, 33, 0, 32, 0, 0,128, 6,208, 0, 0, 64, 0, 0, 0, 5, 8, 0, 4, 0, 0, 0, 0, 0, 16, 0, 26, 0, 0,104, 0, 0, 32,144, 4,128, 0, 1, 0, 18, 80, 0,104, 0, 0, 0, 0, 4,128, 66,210, 0, 2, 0,200,255,
-+ 0, 0, 48, 0, 0, 0, 0, 8, 16, 0, 64, 0, 0, 0, 0, 0, 0, 6,192, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,120,252,
-+ 0, 0, 60, 0, 0,192, 0, 22, 0, 0, 56, 0, 0,224, 1, 0,128, 7,240, 0, 0,192, 0, 0, 0, 7, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0,120, 0, 0, 96, 0, 48, 0, 6, 4, 0, 22,192, 3,120, 0, 0, 0, 0, 0,128, 3,240, 0, 0, 4,172,254,
-+ 8, 0, 54, 0, 0,192, 0, 10, 0, 0, 72, 0, 0,160, 1, 0,128, 6,208, 0, 0, 64, 0, 0, 0, 9, 0, 0, 0, 10, 0, 0, 0, 0, 0,132, 26, 0, 0,104, 0, 0, 32, 40, 48, 5, 16, 0, 0, 10, 64, 3,104, 0, 0, 0, 0,128,144, 32, 17, 32, 0,128, 92,255,
-+ 0, 8, 48, 0, 0,192, 2, 16, 0, 0, 32, 0, 0, 0, 4, 0, 0, 16, 0, 0, 0, 0, 19, 0, 0, 4, 0, 0, 48, 2, 0, 0, 0, 0, 0, 4, 0, 16, 0, 0, 20, 0,128, 4, 48, 18, 18, 2, 0, 16, 0, 3, 0, 32, 0, 0, 0, 0, 10, 64, 1, 34, 0,129, 1,252,
-+ 96, 64, 56, 0, 0,240, 64, 12, 0, 0, 80, 0, 0, 64,128, 0, 0, 1, 52,128, 0,128,131, 0, 0, 10, 0, 0, 12, 8, 0, 0, 0, 0, 48, 64, 6, 0, 0, 24, 0, 0, 64, 65, 12,128, 5, 0, 0, 14,128,131, 24, 0, 0, 0, 0, 60, 0, 1,224, 0, 6, 8,100,254,
-+ 4, 0, 52, 0, 0,192, 0, 16, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 3, 0, 0, 4, 0, 0, 48, 0, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 64, 48, 0, 2, 0, 0, 16, 64, 0, 0, 0, 0, 0, 0, 0, 32, 0,192, 0, 0, 16, 13,255,
-+ 0, 73, 52, 0, 0,192, 34, 8, 0, 0, 64, 0, 0, 0, 72, 0, 0, 0, 16, 0, 0, 64, 3, 0, 0, 9, 0, 0,176, 8, 0, 0, 0, 0, 0, 64, 2, 0, 0, 8, 0, 0, 0, 5,176, 8, 38, 2, 0, 8, 64,128, 8, 0, 0, 0, 0, 0, 1, 20, 2, 36,144, 0,116,254,
-+160, 1, 6, 0, 0, 16, 0, 26, 0, 0, 40, 64, 0, 32, 0, 0,128, 0, 16, 0, 0, 64, 35, 1, 0, 73, 4, 0, 52, 0, 0, 0, 0, 0, 16, 0, 26, 0, 0,104, 0, 0, 32,144, 4,128, 66, 2, 0, 2, 64,163, 8, 0, 0, 0, 0, 4,128, 66,210, 0, 18, 3,236,255,
-+ 0, 1, 0, 0, 0,192, 0, 24, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 4, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 96, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 36,255,
-+128, 1, 48, 8, 0,240, 32, 30, 0, 0, 56, 0, 0,224, 1, 0, 0, 6,192, 0, 0, 0, 3, 0, 0, 11, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0,120, 0, 0, 96, 0, 48,128, 3, 0, 0, 24, 0, 3, 1, 0, 0, 0, 0, 0,128, 3,192, 32, 16, 0,220,255,
-+132, 41, 0, 0, 0,208, 4, 26, 0, 0, 72, 0, 0,160, 1, 0, 0, 6, 0, 20, 0, 0,163, 0, 0, 5, 0, 0, 52, 0, 0, 0, 0, 0, 0,132, 26, 0, 0,104, 0, 0, 32, 40, 48,137, 4, 0, 0, 0, 8, 35, 0,130, 0, 0, 0,128,144, 0,193, 8, 24, 32,121,253,
-+ 4, 4, 0, 34, 0, 0, 2, 24, 0, 0, 32, 0, 0, 0, 4, 0, 0, 22,192, 32, 0, 0, 16, 1, 0, 8, 0, 0, 48, 0, 0, 0, 0, 0, 0, 8, 0, 8, 0, 0, 2, 0,128, 8,176, 0, 2, 0, 0, 88, 4, 3, 0, 8, 0, 0, 0, 0, 10, 64,193, 40, 88, 0, 76,254,
-+ 96,128, 12, 0, 0, 32, 64, 28, 0, 0, 80, 0, 0, 64,128, 0,128, 7,242, 0, 0,192, 3, 0, 0, 7, 0, 0, 56, 0, 0, 0, 0, 0, 48, 64, 6, 0, 0, 24, 16, 0, 64, 65, 12, 32, 5, 0, 0, 30,192,131, 24, 0, 0, 0, 0, 12, 0, 1,240, 0, 14, 16,212,254,
-+136, 65, 0, 0, 0, 0, 0, 24, 0, 0, 32, 0, 0, 0, 0, 0, 0, 6,192, 0, 0, 0, 3, 0, 0, 8, 0, 0, 48, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 64, 48, 0, 2, 0, 0, 24, 0, 3, 96, 0, 0, 0, 0, 48, 32, 0,192, 0, 24,128, 48,253,
-+128, 9, 0, 9, 0, 0, 34, 24, 0, 0, 64, 0, 0, 0, 64, 0, 0, 70,193, 32, 0, 0,131, 0, 0, 4, 0, 0, 52, 0, 0, 0, 0, 0,192, 4, 0, 0, 0, 8, 0, 0, 0, 5, 48,144, 4, 0, 0, 88, 8,131, 0, 32, 0, 0, 0, 0, 1, 20,194, 40, 24, 5,208,252,
-+ 32, 8, 4, 0, 0, 16, 0, 82, 8, 0, 8,132, 0, 32,132, 0,128, 0,208, 0, 0, 64, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0,208, 0, 26, 0, 0, 40, 17, 0, 32,144, 4,137, 16, 17, 0, 26, 64,163, 8, 0, 0, 0, 0, 0,128, 66, 18, 0, 82, 0,172,255,
-+ 0,128, 0, 0, 0,192, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,128, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8,112,253,
-+ 0, 64, 0, 0, 0, 48, 32, 22, 0, 0, 32, 0, 0,128, 0, 0,128, 7,240, 0, 0,192, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0,192, 64, 30, 0, 0, 56, 16, 0, 96, 0, 12, 8, 6, 48, 0, 24, 4, 3, 96, 0, 0, 0, 0, 0,128, 3,241, 0, 0, 16,232,253,
-+ 8, 0, 0, 0, 0, 16, 4, 10, 0, 0, 64, 17, 0,128, 65, 0,128, 6,209, 0, 0, 64, 0, 0, 0, 44, 2, 0, 0, 0, 0, 0, 0, 0,192, 4, 26, 0, 0, 8, 0, 0, 32, 40, 4, 0, 16, 17, 0,152, 0, 64, 0, 18, 0, 0, 0, 0,128, 16,208,136,128,128, 48,253,
-+ 0, 8, 49, 33, 0, 0, 2, 16, 0, 0, 0, 1, 0, 0, 4, 0, 0, 16, 0, 66, 0, 0, 11, 0, 0, 32, 4, 0, 48, 1, 0, 0, 0, 0,128, 4, 0, 1, 0, 0, 4, 0,128, 0,144, 8, 18,194,130, 88, 8,136, 96, 16, 0, 0, 0, 0, 0, 64, 1, 68, 80,144, 93,254,
-+ 96, 0, 60, 0, 0, 32, 64, 12, 0, 0,120, 64, 0, 96,128, 0, 0, 1, 50, 0, 0,128, 3, 2, 0, 15, 0, 0, 60, 16, 0, 0, 0, 0,240, 64, 6, 8, 0, 16, 64, 0, 64, 65, 40,128, 5,224, 0, 30,192, 2,120, 0, 0, 0, 0, 0, 0, 1,224, 0, 22, 0, 80,255,
-+132, 65, 0, 0, 0, 0, 0, 16, 0, 0, 32, 0, 0,128, 65, 0, 0, 0, 0, 0, 0, 64, 3, 0, 0, 12, 2, 0, 0, 16, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 16, 0, 0, 64, 0, 0, 2,208, 0, 24, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0,192, 0, 16, 0,113,252,
-+ 0, 17, 0, 9, 0, 0, 34, 8, 0, 0, 96, 10, 0,128, 5, 0,128, 64, 1, 0, 0, 64, 3, 0, 0,140, 0, 0, 0, 1, 0, 0, 0, 0,192,130, 0, 0, 0, 64, 2, 0, 0, 5, 36, 66, 38,210, 0,152, 8, 35, 96, 16, 0, 0, 0, 0, 0, 20, 2, 40, 16, 16,120,252,
-+160, 49, 4, 0, 0,208, 0,146, 96,160, 72, 4,137, 32, 0, 0,128, 0,208, 0, 0, 64, 0,104, 0, 1, 0, 0, 52, 0, 0, 0, 0, 0,208, 0, 26, 0, 0, 40, 17, 0, 32,144, 52,128, 64, 81, 4, 2, 64, 3,104, 0, 0, 32, 17, 0,128, 0, 16, 8, 2, 0, 40,254,
-+128, 1, 0, 0, 0, 0, 0, 8, 0, 0, 32, 64, 4, 4,128, 0, 0, 0,192, 0, 0, 0,128, 96, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 3, 96, 0, 0,128, 0, 1, 0, 0, 0, 32, 0, 0,248,253,
-+128, 0, 0, 0, 0, 0, 64, 22, 0,131, 88, 0, 11,128, 0, 0, 0, 0,241, 0, 0, 0, 1,120, 0, 12, 0, 0, 60, 0, 0, 0, 0, 0,192, 64, 24, 0, 0, 56, 0, 0, 96, 0, 0, 0, 6, 0, 0, 24,192, 3,120, 0, 0, 96, 1, 0,128, 1,241, 0, 0, 4,208,252,
-+ 4, 9, 1, 0, 0, 0, 0, 10, 0, 16, 40, 0, 5,128, 73, 0, 0, 38,208, 0, 0, 0, 19,108, 0, 76, 2, 0, 52, 0, 0, 0, 0, 0,128, 4, 64, 16, 0, 8, 20, 0, 32, 40, 0, 9, 32, 1, 68, 0, 96, 3,104, 0, 0,160, 0, 0,128, 6,208, 36, 0,128,192,252,
-+ 12, 64, 0, 33, 0,192, 64, 16, 0, 9, 65, 0, 8, 0, 4, 0, 0, 22, 0, 8, 0, 0, 16, 1, 33,128, 4, 0, 0, 64, 0, 0, 0, 0,192, 2,128, 0, 0, 0, 4, 0,128, 64,128, 32, 18, 66, 4, 88, 0, 3, 0, 68, 0, 0, 1, 0, 0, 38, 1, 34, 0,129, 65,255,
-+224, 1, 12, 0, 0,240, 0, 12,192, 2, 48, 0, 7, 96,128, 0,128, 7, 50,128, 0,192, 0, 24, 0, 15, 0, 0, 12, 0, 0, 0, 0, 0,240,128, 30, 4, 0, 16, 64, 0, 64, 1, 12,128, 5,240, 32, 30,132, 3, 24, 0, 0,224, 0, 0, 0, 7,160, 0, 30, 8, 84,253,
-+ 8, 0, 48, 0, 0,192, 32, 16, 0, 1, 66, 0, 8,128, 1, 0, 0, 6, 0, 0, 0, 0,128, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0,192,128, 24, 0, 0, 0, 16, 0, 0, 64, 0, 0, 2, 0, 0, 24, 0, 3, 0, 0, 0, 0, 1, 0,128, 6,193, 32, 0, 16, 17,254,
-+ 0, 17, 50, 9, 0,192, 4, 8, 0, 35, 32, 0, 4,128, 81, 0, 0, 70, 1, 0, 0, 0, 0, 8, 0, 76, 16, 0, 0, 0, 0, 0, 0, 0,192, 4, 24, 32, 0, 64, 2, 0, 0, 5, 0, 33, 38,194, 20,152, 4, 3, 0, 0, 0,128, 0, 0,128, 38, 64, 8,128, 0, 88,254,
-+ 32, 0, 4, 0, 0, 16, 0, 18, 1, 0, 8, 0, 69,168, 1, 0,128, 6, 16, 0, 0, 64, 98, 72, 64, 41, 8, 0, 4, 0, 0, 0, 0, 0, 16, 0, 2, 64, 34, 9, 0, 0,160,144, 20,128, 68, 18, 0, 26, 64, 0,104, 0, 0, 32, 0, 4,128, 66, 18, 4, 26, 0, 46,255,
-+ 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 16, 0,128, 1, 0, 0, 0, 0, 0, 0, 0, 1, 32, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0,128, 24, 16,192,254,
-+ 96, 0, 48, 0, 0, 0, 0, 22, 0, 0, 96, 32, 4,128, 1, 1, 0, 6,192, 0, 0,192, 2, 88, 0, 11, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 24,200, 2, 96, 0, 0,224, 64, 12,136, 5, 48, 0, 24, 4, 0, 96, 0, 0,128, 1, 0,128, 3, 0, 32, 24, 4,184,254,
-+ 40, 0, 48, 0, 0,192, 40, 10, 0, 0, 0, 4, 64, 1, 16, 0, 0, 6, 4, 20, 0, 64, 1, 40, 0, 5, 0, 0, 0, 32, 0, 0, 0, 0, 0,132, 24, 65, 1, 96, 0, 0, 32, 16, 4,128, 2, 16, 0, 0, 0, 0, 96,130, 0,128, 73,128,160, 64, 2, 0, 24,128,173,252,
-+128, 81, 48, 0, 0, 0, 2, 16, 0, 0, 32, 1, 32,132, 5, 0, 0, 64,192, 40, 0, 0, 2, 64, 0, 8, 0, 0, 48, 8, 0, 0, 0, 0, 0, 4, 0, 1, 2, 0, 1, 0, 0, 68,128, 32, 4,192, 24, 0, 1, 0, 96, 64, 0, 0, 0,128, 32, 64, 1, 2, 24,144, 8,254,
-+192, 1, 60, 8, 0, 48, 64, 12, 0, 0, 88, 32, 11,224,129, 0,128, 1,241, 0, 0,128, 1, 56, 0, 6, 0, 0, 60, 0, 0, 0, 0, 0, 48, 64, 30,196, 1, 24, 32, 0, 64, 0, 8,128, 3,224, 0, 30,208,128, 24, 0, 0,224,129, 12, 0, 1, 48, 64, 22, 0,213,252,
-+132, 1, 48, 8, 0,192, 0, 16, 0, 0, 32, 64, 12,130, 1, 0, 0, 6,192, 0, 0, 0, 2, 64, 0, 8, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 24, 4, 2, 0, 0, 0, 0, 0, 0, 0, 4,192, 0, 24, 0, 3, 96, 64, 0,128, 65, 0, 0, 0, 0, 0, 24, 8,247,255,
-+128, 1, 48, 0, 0,192, 32, 8, 0, 0, 96, 4,140,128, 69, 0, 0, 70,194, 36, 0, 0, 1, 32, 0, 5, 0, 0, 48, 8, 0, 0, 0, 0,192, 64, 24, 1, 1, 0, 10, 0, 0, 41, 4, 33, 2,192, 0,152, 2,131, 96, 4, 0,128, 9, 48, 32, 20,130, 40, 88, 0,112,253,
-+ 48, 0, 4, 0, 0, 16, 0, 18, 66, 66, 8, 12, 1,160, 17, 4,128, 64, 82, 2, 1, 64, 19, 8, 0, 1, 32, 0, 4, 0, 0, 0, 0, 0, 80, 24, 26, 64, 0, 40, 8, 0,160, 1, 4,128, 68,212, 0, 2, 81, 3,104, 0, 0,160, 1, 4,128, 66,210, 4, 66, 0, 42,254,
-+ 0, 0, 0, 0, 0, 0, 0, 8, 0, 1, 0, 0, 0, 0, 65, 0, 0, 0,128, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 8, 88,255,
-+128, 1, 12, 0, 0,240, 0, 22,192, 2, 32, 0, 12,130, 1, 48, 0, 6,192, 0, 0, 0,129, 96, 64, 12,128,129, 48, 16, 0, 0, 0, 0, 64, 0, 24, 0, 3, 24, 16, 0, 96, 64, 60,128, 5,192, 0, 8,192,131, 96, 0, 0,128, 65, 0,128, 3,241, 32, 0, 0,212,252,
-+140, 1, 4, 0, 0,208, 0, 10, 64, 1, 64, 16, 64,128, 73, 48, 0, 0,196, 72, 0, 0, 10, 96, 1, 76,136, 17, 0, 0, 0, 0, 0, 0,128,132, 64, 8,147, 8, 2, 0, 32, 16, 52,128, 2, 0, 66, 16, 68, 0, 96,130, 0, 0, 4,128,160, 32, 16, 0, 64,144,101,252,
-+ 4, 4, 48, 0, 0, 0, 2, 16, 0, 2, 0, 1, 44, 2, 4, 0, 17,130, 64, 4, 0, 0, 32, 0, 0, 0, 0, 64,176, 8, 0, 0, 0, 0, 64, 4, 64, 0, 0, 0, 0, 0,128, 81, 0, 1, 4, 0, 34, 64, 8, 0, 0, 8, 0, 0, 4,129, 32, 64, 1, 2, 64,144, 80,255,
-+ 96,128, 56, 8, 0, 32, 64, 12,192, 1,120, 64, 15, 96,128, 12,128, 5,240, 32, 0,192,131,120, 32, 15,228, 1, 60, 0, 0, 0, 0, 0,176, 64, 30,196, 3, 17, 64, 0,192, 1, 8,144, 3,240, 0, 30,128,131,120, 0, 0,224, 1, 60, 0, 1,224, 64, 6, 0, 29,255,
-+ 12, 0, 48, 0, 0, 0, 0, 16, 0, 2, 32, 0, 12, 0, 0, 0, 0, 2,192, 0, 0, 0, 0, 96, 16, 12,128,129, 48, 0, 0, 0, 0, 0, 0, 0, 24, 0,131, 0, 0, 0,160, 65, 0, 0, 4,192, 0, 8, 64, 3, 96, 64, 0,128,129, 0, 0, 0, 64, 0, 0, 0,167,255,
-+ 0, 40, 48, 0, 0, 0, 40, 8, 0, 1, 96, 10, 76, 4, 68, 0, 4, 22,193,136, 0, 0,162, 96, 2,140,130, 9,176, 16, 0, 0, 0, 0,128, 64, 24, 32, 19, 0, 32, 0,160, 5, 4, 9, 2,192,128,152, 72,128, 96, 4, 0,128, 1, 0, 32, 20, 66, 40, 8, 16,208,254,
-+ 32, 0, 4, 0, 0,208, 0,146, 72, 65, 8, 0,133, 32, 0, 0,128, 0, 80, 8, 2, 64, 0, 8, 0,137,160, 1, 4, 0, 0, 0, 0, 0,208, 0, 2, 64, 0, 8, 0, 13, 32,144, 4,137,132, 16, 0, 90, 64, 0, 8, 0, 13, 32, 4, 4,128, 66,210, 0, 26, 0,140,255,
-+ 0, 0, 0, 0, 0,192, 0, 8, 0, 2, 0, 0, 8, 4, 0, 0, 0, 6,128, 64, 0, 0, 0, 0, 0, 4,136, 1, 0, 0, 0, 0, 0, 0,192,128, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 2, 0, 0, 16, 16, 0, 0, 0, 12, 0,128, 0, 0, 0, 0, 0, 24, 0,240,254,
-+128, 1, 48, 0, 0,240, 0, 22,192, 1, 96, 0, 7,224, 1, 0,128, 1,192, 0, 6,192, 0, 96, 16, 11,224, 1, 48, 16, 0, 0, 0, 0,192, 64, 24, 8,131,120, 0, 15, 96, 0, 12,136, 5,192, 64, 24, 8, 0, 96, 32, 15,128, 64, 48,136, 3,192, 0, 24, 0, 92,254,
-+136, 1, 0, 10, 0,208, 0, 10, 64, 2, 96, 34, 9,160, 1, 0,128, 0,193, 72, 2, 64, 0, 96, 1, 5,160, 1, 48, 2, 0, 0, 0, 0,192, 4, 24, 1, 11,104, 0, 13, 32, 40, 4,128, 2,192, 0, 24, 0, 0, 96, 0, 13, 0, 17,128,128, 16,193, 36, 24, 0, 17,253,
-+ 0, 4, 48, 8, 0, 0, 2, 16, 0, 1, 0, 36, 4, 0, 4, 0, 0, 16, 64, 36, 88, 0, 35, 0, 1, 8, 0, 8, 0, 9, 0, 0, 0, 0, 64, 4, 0, 0, 8, 1, 32, 32,132,128, 16, 2, 4, 0, 4, 24, 33,136, 0, 18, 32, 0,132, 0, 32, 64,193, 2, 24, 3,152,255,
-+ 96,128, 12, 0, 0, 32,128, 12,128, 2,120, 0, 10, 64,128, 0, 0, 1,242, 0, 28,136,131,120, 32, 6, 96, 0, 61, 0, 0, 0, 0, 0,240, 64, 30,196, 3, 16, 0, 3, 64, 1, 40,160, 3,240, 32, 30,192, 0,120, 0, 3,232, 1, 12, 0, 1,240, 32, 30, 0,248,255,
-+ 4, 64, 48, 0, 0, 0, 0, 16, 0, 1, 96, 0, 4, 0, 0, 0, 0, 0,192, 0, 24, 64, 3, 96, 32, 8, 0, 0, 48, 0, 0, 0, 0, 0,192, 0, 24, 4, 3, 0, 0, 0, 0, 64, 0, 0, 4,192, 32, 24, 0,131, 96, 0, 0,128, 0, 0, 0, 0,192, 0, 0,128, 24,255,
-+ 0, 4, 48, 8, 0, 16, 0, 8, 64, 2, 96, 20, 9, 0, 68, 0,128, 64,193,136, 24, 64, 3, 96, 2, 5, 0, 0, 48, 17, 0, 0, 0, 0,192,130, 24, 0, 11, 1, 10, 0, 0, 5, 36, 66, 2,192, 0, 24, 8, 35, 96, 68, 0,128, 41,128, 16, 20,194, 32, 0, 32, 52,253,
-+ 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0,144, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 50,252,
-+ 32, 0, 0,144, 0, 0, 0, 2, 0, 0, 0, 0, 0, 32, 0, 4,128, 0, 0, 0, 2, 64, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 1, 32, 0, 1, 0, 0, 0, 64, 0, 0, 0, 0, 0, 1, 0, 0, 4,128, 0, 18, 0, 2, 0,180,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 1, 64, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 32, 0, 0,128, 0, 16, 0, 0,128, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,216,255,
-+ 36, 0,128,136, 0, 16, 20, 2, 64, 64, 8, 68, 1, 33, 0, 4,128, 32, 18, 8, 2, 0, 8, 8, 4,129, 32, 0, 4, 5, 0, 0, 0, 0, 16, 0, 66, 64, 64, 8, 1, 1, 0, 16, 4,129,128, 0, 0, 2, 2, 0, 8, 8, 1, 32, 32, 4, 0, 0, 16, 0, 2,128, 89,252,
-+ 4,128, 0, 6, 0, 0, 24,128, 16, 0, 1, 32, 0, 4, 48, 0, 0,192, 0, 0, 0, 3, 16, 2, 0,128, 1, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 12, 0, 0, 48, 0, 6, 0, 2, 0, 0, 0, 8, 0, 0, 0, 0,128, 0, 0,192, 0, 4, 0,128, 64,253,
-+ 32, 0, 0,128, 0, 16, 0, 0, 0, 0, 0, 0, 0, 32, 0, 4, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 64,128, 0, 0, 0, 0, 0, 4, 0, 0, 0, 64, 2, 0,193,252,
-+ 8,128, 0, 0, 0, 0, 64, 0, 16, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 8, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 64, 0, 0,128, 0, 16, 0, 4, 64, 0, 16, 0, 2, 64, 0, 0, 0, 1, 0, 0, 4, 0, 0, 0,111,252,
-+ 0, 4, 0,133, 0, 0, 2, 0, 0, 16, 1, 36,128, 8, 8, 4, 0, 64, 16,130, 64, 0, 8, 8, 68,128, 40, 4,129, 32, 0, 0, 0, 0, 16, 0, 2, 2, 32, 0, 0, 1, 1, 16,128, 0, 64, 0, 4, 2, 1, 32, 8, 1, 1, 1, 16, 4, 0, 0, 0, 8, 3, 0, 72,252,
-+ 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,252,
-+ 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,254,
-+ 0, 32, 0, 0, 0, 0, 0, 64, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 16, 0, 0, 0, 0, 8,220,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 32, 0, 0, 0, 0, 16, 0, 28,254,
-+ 0, 0, 0, 0, 0, 0, 0, 32, 0, 1, 0, 0, 20, 0, 0, 0, 0, 0,128, 0, 1, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 8, 0, 0, 0, 64, 0,128, 0, 0, 0, 0, 0, 0, 0, 0,108,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0,128, 0, 80, 0, 0, 0, 0, 0, 0, 64, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 32,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 8, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 32, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 16,148,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 64, 0,240,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 64, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 4, 0, 0, 0, 0, 2,182,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,255,
-+ 0, 0, 0, 0, 4, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 0, 0, 0, 0, 1, 0, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,140,255,
-+ 0, 0, 0, 0, 2, 0, 32, 0, 4, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 64, 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 32, 32, 0, 0, 0, 0, 8, 2, 0, 0, 0, 4,124,255,
-+ 0, 0, 0,136, 1, 0,128, 4, 16, 6, 0, 0, 0, 0, 0, 4, 0, 1,130, 2, 0,144, 0, 2, 32, 2, 8, 0, 0, 0, 0, 0, 0, 0, 80, 64, 2, 16, 0, 16, 0, 64,193,168, 0, 0,180, 0, 0, 0, 0, 0, 74, 65, 0, 0, 64,168,160, 0, 64, 0,128, 18, 60,255,
-+ 0, 0, 0, 1,210,128, 0, 8, 4, 2, 0, 0, 0, 2, 64, 0, 0,132, 64, 0, 0, 0, 0, 0, 12, 8,128, 0, 16, 0, 0, 0, 0, 0, 0, 32,208, 0,160,144, 16,152,165, 32, 52,136,130,128, 0, 10, 64, 17, 16, 0, 0, 0, 3, 96, 9,128, 1, 90, 0, 0,180,253,
-+ 0, 0, 0,128, 0, 0, 0, 8, 4, 0, 0, 0, 0, 8, 0, 1, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 1, 32, 0, 0, 0, 0, 0, 0, 32, 0, 0,128, 0, 64, 0, 0, 1, 16, 8, 4, 0, 0, 16, 0, 2, 0, 0, 0, 0, 0, 0, 8, 0, 1, 0, 0, 0,156,252,
-+ 0, 0, 0, 0, 0,129, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 4, 8, 64, 32, 0, 0,129, 0, 0, 0, 0, 0, 0, 0,128, 0, 16, 0, 0, 2, 32, 0, 0,112,255,
-+ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 64, 90,253,
-+ 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 8, 0, 68, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 4,128, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,254,
-+ 0, 0, 0, 0, 0, 0, 32, 0, 32, 0, 0, 64, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 24, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0,112,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0,192,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 0, 20, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0,180,254,
-+128, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 8, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,124,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 32, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 2, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,152,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20,253,
-+ 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,252,
-+ 64, 0, 4, 0, 0, 16, 0, 0,128, 0, 16, 0, 2, 32, 0, 4,128, 0, 64, 0, 2,128, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0,128, 0, 8, 0, 0, 32, 0, 4, 4, 1, 0, 0, 0, 72, 0, 0, 0, 0, 64, 0, 0,128, 0, 0, 0, 0, 0, 96,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 16, 0, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 4, 80,255,
-+ 0, 0, 64, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 32,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,252,
-+ 0, 4, 5, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 0, 0, 0,228,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0,128,252,
-+ 8, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 32, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236,252,
-+ 2, 0, 0, 0, 4, 64, 0, 8, 4, 0, 32, 16, 0, 0, 64, 16, 0, 2, 1, 32, 0, 0,128, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 16, 0, 4, 0, 0, 0, 8,128, 0, 0, 4, 0,129, 32, 0, 0, 0, 0, 0, 8, 2, 0, 0, 8,192,108,254,
-+ 64, 0, 0, 0, 1, 1, 0, 0, 0,128, 0, 0, 4,128, 0, 4, 0, 0, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 0, 0, 0, 4, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 32, 0, 0,128, 0, 0, 8, 0, 0, 0, 0, 64,219,253,
-+ 32, 64, 0,128, 1, 36, 0, 4, 8, 0, 18, 32,129, 35,128,108, 6, 1, 3, 64, 0, 16, 0, 1, 0, 1, 0, 5, 8, 0, 0, 0, 0, 0, 0, 20, 2,148, 0, 17, 0, 3, 0, 0, 0, 16, 0, 6, 20, 4,128, 0, 57, 0, 0, 32, 0, 0, 48, 1, 0, 32, 4, 0,160,253,
-+128, 8, 48, 8, 96,129, 0, 8, 68, 0, 32, 0, 66,128, 0, 0, 0,197, 0, 4, 24, 0, 1, 0, 12, 4, 0, 5, 16, 34, 0, 0, 0, 0,128, 72,194, 3,119, 32, 0, 32,194, 65, 24, 45,206, 64, 4, 52, 0,129, 0, 24, 0, 0, 0, 16, 1,128, 0, 92, 80, 0, 48,254,
-+128, 0, 16, 8, 0, 1, 0, 8, 4, 0, 32, 0, 0,128, 0, 0, 0, 0, 0, 0, 8, 0, 1, 0, 0, 4, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 16, 0, 0,129, 64, 16, 8, 1, 64, 0, 0, 0,129, 0, 16, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,136,255,
-+ 0, 0, 8, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 8, 0, 0, 0, 16, 0, 0, 1, 0, 0, 0, 0, 0, 0, 32, 0, 0, 4,129, 0, 0, 0, 64, 0, 0, 4, 2, 1, 0, 8, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 1, 32, 8, 0,180,255,
-+ 16, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,134,253,
-+ 2, 0,128, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 8,128, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 64, 48,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 32, 0, 64, 0, 0, 0, 0, 0, 0, 0, 4, 0, 16, 1, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,180,252,
-+ 2,160, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 16,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 64, 56,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0,152,253,
-+ 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 32, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,253,
-+ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 8, 0,136, 0, 0, 0, 0, 0, 0, 0, 18, 2, 0, 32, 0, 1, 0, 0, 0, 0, 0, 16, 16, 2, 0, 0, 8, 8, 1, 0, 0, 0, 0, 4, 0, 32, 0, 0, 88,254,
-+ 32, 1, 0, 0, 0,128, 0, 0, 2, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 16, 0, 0, 0, 0, 4, 0, 0, 0, 0,113,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 16, 0, 32, 0, 0, 0, 0, 0, 0, 0, 64,182,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 64, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0, 16, 0, 0, 0,228,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0,116,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 48, 0, 0, 0,132,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 8, 0, 16, 0, 0, 0, 48,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 16, 0,192, 8, 0, 0, 64,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0,224, 32, 0, 0, 4,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0,192, 0, 0, 0,208,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 18, 0,192, 0, 0, 0,196,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 18, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 66, 2, 0, 10,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,128, 6, 0, 20,254,
-+ 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 4, 2,128,225,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 24,130, 28,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 32, 28, 0,129,253,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 0, 24, 0, 63,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 36, 24, 0, 12,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 64, 0,208, 8, 0, 0,248,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0,192, 64, 0, 0,176,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 64, 0, 0,188,255,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0,109,252,
-+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0,192, 68, 0, 0, 80,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 48, 0, 0, 0, 4,252,
-+ 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0,128, 0, 0,128,152,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 20, 0, 0, 8,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 34, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,164, 64, 0,208, 0, 10, 9, 96,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0,192, 0, 16, 0,228,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0,192, 0, 14, 0, 68,253,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0,192, 36, 18, 0, 89,253,
-+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0,192, 68, 8, 0,220,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0,240, 0, 20, 0,112,252,
-+ 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0,192, 64, 8,128, 16,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 16, 0, 40,254,
-+ 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 16, 0, 0, 0, 94,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 0, 0, 32, 0, 0, 12,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0,192, 64, 0, 0,204,255,
-+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0,192, 2, 0,128,101,254,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0,128, 0,128,100,253,
-+ 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 48, 0, 0, 0,229,255,
-+ 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 64, 64, 0, 0,139,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 28,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 16, 36, 0, 0,208,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 16, 0, 0, 0, 0, 0, 44,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0,192, 0, 0, 0,168,254,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0,192, 64, 0, 0, 41,253,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0,192, 68, 0, 0,144,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0,176, 0, 0, 0, 0,253,
-+ 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0,192, 0, 0,128,220,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0,192, 20, 0, 0,128,254,
-+ 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 5, 4, 0, 0, 16, 0, 2, 0,246,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128, 0, 0, 0, 0, 0, 0, 0,180,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 96, 1, 48, 16, 0, 48, 0, 6, 0,144,252,
-+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 48, 1, 0, 16, 0, 2,128, 93,254,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,192, 8, 24,130,156,255,
-+ 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0,224, 0, 60, 32, 0,224, 32, 28, 0, 68,255,
-+ 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 48, 8, 0,192, 0, 24,128,109,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 48, 1, 0,192, 0, 24, 0,236,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 38, 0, 0, 0, 0, 0, 0, 0, 0, 32, 80, 4, 9, 0,208, 16, 74, 8, 20,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 44,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0,128, 1, 48, 8, 0,128, 0, 14, 0,216,252,
-+ 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 1, 0, 0, 0, 0, 0, 0, 0, 0,144,128, 0, 0, 0, 36, 18, 0, 85,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,128,132,144, 16, 0, 0, 68, 8, 0, 40,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0,192, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 0, 0, 0, 0, 96, 1, 44, 0, 0,240, 0, 20, 0,252,255,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 1, 0, 0, 0, 0, 0, 0, 0,128, 0, 16, 0, 0, 0, 64, 8,128,224,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0,128,129, 48, 18, 0, 0, 2, 16, 0,172,255,
-+ 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,255,
-+ 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4, 0, 0, 0, 0, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 0,128, 0, 16, 0, 2, 0,116,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 44, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4, 0, 0, 0, 0, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4,132, 0, 16, 0, 2,128,105,253,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 2, 64,128, 72,252,
-+ 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4, 0, 0, 0, 0, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4, 0, 0, 18, 0, 2, 64, 0, 8, 0, 1, 0, 0, 0,144, 0, 0, 64, 0, 8, 12,253,
-+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 32, 0, 0, 0, 0,128, 85,255,
-+ 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4, 0, 0, 0, 0, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4, 0, 32, 24, 0, 2, 64, 0, 8, 0, 1, 32, 16, 0,130, 0, 0, 4,129, 32,104,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 32, 0, 0, 0, 2, 0, 0, 28,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 16, 0, 0, 0, 0, 0, 0,188,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,120,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,255,
-+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 0, 16,202,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 88,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8,228,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8,176,254,
-+ 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 74, 66, 1, 64, 16,228,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 64, 0, 0, 0, 88,254,
-+ 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 52,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0,120,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 88,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0,124,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0,148,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 4, 0, 0, 0, 0, 0, 24,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 60,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 13,255,
-+ 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0,176, 0, 16, 0, 40,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 36,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 22,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 8,254,
-+ 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0,128, 1, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,192, 2, 0, 2, 0, 0, 16, 0, 0, 0, 0, 0, 0,160, 0,128, 4, 0, 36,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0,192, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 64, 16, 0, 0, 0, 64, 0, 0,128, 0,128, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 0, 0,100, 66, 48, 8, 5,100,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 64, 32, 8, 4,224,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 16, 0, 0, 88,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 88,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44,255,
-+ 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 64, 0, 2, 0,201,254,
-+ 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 76,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 64, 2, 1, 0, 0, 0, 0, 0, 0, 0,208, 16, 0, 0, 0, 0, 0, 0,160, 33, 0, 0, 0, 0, 0, 0, 0,208,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0,224, 1, 0, 0, 0, 0, 0, 0, 0, 16,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0,192, 34, 0, 0, 0, 0, 0, 0, 32, 72, 0, 0, 0, 0, 0, 0, 0, 60,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 92,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,196,129, 0, 0, 0, 0, 0, 0, 0, 0,240, 32, 0, 0, 0, 0, 0, 0,192, 65, 0, 0, 0, 0, 0, 0, 0,200,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0,148,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5, 11, 1, 0, 0, 0, 0, 0, 0, 0,192, 32, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 28,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0,208, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148,254,
-+ 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 24,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0,192, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,129,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20,196, 0, 2, 0, 0, 0, 0, 0, 0, 0,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164,252,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,209,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,138, 4, 35, 0, 0, 0, 0, 0, 0, 0, 0, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,128, 0, 0, 0, 0, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,255,
-+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 4, 32, 0, 0, 0, 0, 0, 0, 0, 0,128, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,165,252,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,244,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,196, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,253,
-+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0,128, 0, 0, 0, 0, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 80,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252,252,
-+ 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0,108,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 1, 0, 0, 0, 0, 0, 0, 0,208,255,
-+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 1, 0, 0, 0, 0, 0, 0, 0,109,252,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0,128, 9, 0, 0, 0, 0, 0, 0, 0,208,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0,192, 65, 0, 0, 0, 0, 0, 0, 0,104,252,
-+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,112,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 8, 18, 0, 0, 0, 0, 0, 0, 0, 0,192, 4, 1, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 20,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 64, 3, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0,222,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30,192,131, 0, 0, 0, 0, 0, 0, 0, 0,128,128, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0,144,252,
-+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 64, 32, 0, 0, 0, 0, 0, 0, 0, 0, 64, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 33,252,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0,136, 0, 0, 0, 0, 0, 0, 0, 0, 64, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,208,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,128, 3, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 96,128, 0, 0, 0, 0, 0, 0, 0, 53,254,
-+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0,129, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0,128,130, 0, 0, 0, 0, 0, 0,128, 81, 0, 0, 0, 0, 0, 0, 0,152,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0,108,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,192, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,128, 65, 0, 0, 0, 0, 0, 0, 0,188,253,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 64, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,237,253,
-+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 16,139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,128, 3, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0,224,129, 0, 0, 0, 0, 0, 0, 0, 4,255,
-+ 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 52,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 8, 16, 1, 0, 0, 0, 0, 0, 0, 0,192,128, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 44,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 64, 18, 1, 0, 0, 0, 0, 0, 0, 0, 16, 16, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0,206,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0,192, 32, 0, 0, 0, 0, 0, 0,224, 1, 0, 0, 0, 0, 0, 0, 0, 52,255,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 1, 0, 0, 0, 0, 0, 0, 0, 64, 8, 0, 0, 0, 0, 0, 0,160, 41, 0, 0, 0, 0, 0, 0,128,209,255,
-+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0,128,152,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,192, 2, 2, 0, 0, 0, 0, 0, 0, 0, 48, 32, 0, 0, 0, 0, 0, 0,192, 65, 0, 0, 0, 0, 0, 0, 0,249,252,
-+ 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0,128, 65, 0, 0, 0, 0, 0, 0, 0,175,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 8,147, 0, 0, 0, 0, 0, 0, 0, 0,192, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 68,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30,192, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,252,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 64, 19, 1, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0,101,252,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 4,136, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,152,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,128, 3, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 96, 64, 0, 0, 0, 0, 0, 0, 0, 84,255,
-+ 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,128,120,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 8, 16, 0, 0, 0, 0, 0, 0, 0, 0,192, 16, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 44,255,
-+ 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,252,
-+ 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4, 0, 0, 0, 0, 0, 16, 0, 0, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 0, 20,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52,254,
-+ 44, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4, 0, 0, 0, 0, 0, 16, 0, 0, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2,128, 92,252,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0,128,181,254,
-+ 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4, 0, 0, 0, 0, 0, 16, 0, 0, 16, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 0, 0, 4,128, 0, 16, 0, 2, 0,100,252,
-+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,249,255,
-+ 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4, 0, 0, 0, 0, 0, 16, 0, 64, 0, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 0,132, 4,128, 0, 16, 0, 2, 0,124,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,104,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 2, 0, 0, 0, 0, 0, 0, 0, 28,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,184,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 60,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,188,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0, 0, 0, 1, 1, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 56,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,172,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 1, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 64,252,254,
-+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 1, 4,140, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0,176, 0, 0, 0, 0, 0, 0, 0, 68,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 8, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 9, 0, 0, 16, 20, 0, 64, 0, 8, 0, 0, 0, 0, 0, 8,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 8, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 0, 64, 0, 4, 0, 0, 0, 0, 0,116,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 88,254,
-+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 88,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,252,255,
-+ 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,105,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 32, 0, 0,128, 34, 2, 0, 26, 0, 0, 0, 0, 0, 32, 8,148, 16, 0, 0, 0, 0, 16, 0, 26, 64, 96,104, 0,129, 36, 4, 20, 64, 0,144, 2, 0, 64, 16, 72, 68, 0, 0, 0, 0,128, 6, 80, 16, 0, 0,240,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 64, 32, 0, 0, 64, 64, 0, 0,128, 32, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,184,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,128, 3, 0, 0, 24, 0, 0, 0, 0, 0,128, 0, 48, 0, 0, 0, 0, 0,192, 32, 0, 0, 2, 2, 0, 0,128, 65, 28, 0, 0,176, 0, 0, 0,131, 88, 0, 0, 0, 0, 0, 0, 0,112, 0, 0, 0,204,252,
-+ 0, 0, 0, 0, 0, 0, 0, 24, 1, 0, 0, 0, 0, 0, 80, 0,128, 4, 0, 0, 24, 16, 0, 0, 0, 0, 0, 80, 0, 64, 0, 0, 0, 0,192, 8, 88, 8, 0, 96, 32, 32, 8, 16, 36, 0, 0, 80, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 22,146, 0, 0, 0,216,255,
-+ 0, 0, 0, 0, 0, 0, 0, 24, 9, 0, 0, 0, 0, 0, 16, 0, 0, 2, 0, 0, 88, 0, 0, 0, 0, 0, 0,136, 16, 4, 0, 0, 0, 0,192, 4, 24, 1, 16, 97, 36, 0,130, 0, 18, 0, 0,128, 0, 0, 0, 1, 68, 0, 0, 0, 0, 0, 0, 38, 66, 0, 0, 0,236,253,
-+ 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 96, 0, 1, 0, 5, 0, 0, 6, 16, 0, 0, 0, 0, 96, 0, 44, 0, 0, 0, 0, 0,240, 32, 30,196, 0,120, 0, 3, 96, 1, 40, 0, 0,112, 0, 0,192, 2, 56, 0, 0, 0, 0, 0,128, 7,160, 0, 0, 0,216,252,
-+ 0, 0, 0, 0, 0, 0, 0, 24, 8, 0, 0, 0, 0,128, 0, 0, 0, 2, 0, 0, 24, 0, 0, 0, 0, 0, 0, 64, 48, 0, 0, 0, 0, 0,192, 64, 24, 8, 0, 96, 0, 8,130, 0, 16, 0, 0,128, 0, 0, 0, 1, 64, 0, 0, 0, 0, 0, 0, 6, 64, 0, 0, 0,160,253,
-+ 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0,128, 65, 0, 0, 4, 0, 0,152, 16, 0, 0, 0, 0,128, 17,176, 64, 0, 0, 0, 0,192, 8, 24, 1, 35, 97,128, 44,128,145, 36, 0, 0, 64, 0, 0, 0, 35, 33, 0, 0, 0, 0, 0, 0, 6,145, 0, 0, 0,236,252,
-+ 0, 0, 0, 0, 0, 0, 0,154, 8, 0, 8, 0, 0,160, 4, 0,128, 6, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 4, 6, 0, 0, 0, 0,208, 0, 10, 17, 0,104, 4, 0, 0, 0, 36, 64, 0,144, 64, 0, 64, 0, 8, 0, 0, 0, 0, 0,128, 66, 8, 0, 0, 0,178,254,
-+ 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 0, 16, 0, 0, 96, 32, 0, 0, 0, 16, 0, 0, 64, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0,208,253,
-+ 0, 0, 0, 0, 0, 0, 0, 24, 8, 0, 0, 0, 0,128,129, 0, 0, 6, 4, 0, 24, 0, 0, 0, 0, 0, 0, 0, 32, 8, 0, 0, 0, 0,192, 32, 14, 0, 0, 96, 16, 0, 0, 0, 44, 0, 0,176, 0, 0, 0,131, 96, 32, 0, 0, 0, 0,128, 3, 0, 0, 0, 0,232,252,
-+ 8, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 8, 0, 0, 70, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 18, 0, 0, 96, 2, 0, 0, 0, 20, 0, 0, 80, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 0,128,205,253,
-+ 0, 0, 0, 0, 0, 0, 0,136, 32, 0, 96, 2, 0,128, 32, 0, 0, 6, 1, 0,136, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,192, 4, 8, 0, 0, 32, 36, 0, 0, 0, 32, 0, 0,128, 0, 0, 0, 16, 32,128, 0, 0, 0, 0, 0, 2, 0, 0, 0,128, 40,255,
-+ 0, 0, 0, 0, 0, 0, 0, 14, 0, 0,120, 32, 0, 96, 1, 0,128, 1, 0, 0, 22, 4, 0, 0, 0, 0, 0, 0, 12, 32, 0, 0, 0, 0,240, 32, 20, 0, 0,120, 0, 0, 0, 0, 28, 0, 0,112, 0, 0,192, 3, 89, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 13,252,
-+ 4, 0, 0, 0, 0, 0, 0, 24, 8, 0, 96, 0, 0,128,129, 0, 0, 6, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 64, 8, 0, 0, 64, 0, 0, 0, 0, 32, 0, 0,128, 0, 0, 0,131, 32, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 75,254,
-+ 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 96, 0, 0,128, 1, 0, 0, 22, 1, 0,152, 32, 0, 0, 0, 0, 0, 0, 48, 10, 0, 0, 0, 0,192, 8, 16, 0, 0, 96,128, 0, 0, 0, 16, 0, 0, 64, 0, 0, 0, 11, 96, 36, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0,192,253,
-+ 16, 0, 0, 0, 0, 0, 0,138, 0, 0, 0, 0, 0, 32, 48, 0,128, 66, 0, 0, 26, 1, 0, 0, 0, 0, 32, 8,148, 0, 0, 0, 0, 0,208, 0, 2, 0, 0, 72, 4, 0, 32, 17, 4, 0, 0,208, 0, 0, 0, 0, 72, 8,137,160, 0, 1,128, 22, 0, 0, 0, 0,104,252,
-+ 0, 0, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 24, 16, 0, 0, 0, 0, 0, 0, 1, 16, 0, 0, 0, 0,192, 0, 24, 0, 0, 32, 64, 0,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 4, 8, 1, 0, 0, 6, 2, 0, 0, 0,240,254,
-+ 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0,128, 0, 1,128, 3, 0, 0, 24, 0, 0, 0, 0, 0, 0, 65, 48, 0, 0, 0, 0, 0, 0, 32, 24, 8, 0, 96, 0, 0, 96, 1, 48, 0, 0,192, 0, 0, 0, 0, 88, 0, 11,224, 0, 0, 0, 6, 0, 0, 0, 0, 0,255,
-+ 12, 0, 0, 0, 0, 0, 0, 24, 17, 0, 0, 0, 0, 0, 8, 0,128, 4, 0, 0,152, 16, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0,192, 8, 88, 0, 0, 96, 16, 0,160, 0, 48, 9, 0, 0, 40, 0, 0, 0, 40, 0, 5, 32, 1, 0, 0, 6, 1, 0, 0, 0, 65,253,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 72, 16, 0, 0, 0, 0, 0,136, 16, 16, 0, 0, 0, 0,192, 4, 24, 5, 0, 0, 32, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 64, 0, 8,128, 0, 0, 0, 38, 0, 0, 0, 0,252,253,
-+ 0, 0, 0, 0, 0, 0, 0, 22, 8, 0, 0, 0, 0, 96,128, 0, 0, 5, 0, 0, 30, 0, 0, 0, 0, 0, 96, 0, 44, 0, 0, 0, 0, 0,240, 32, 30, 0, 0, 56, 0, 0,224, 0, 60, 16, 0,240, 0, 0, 0, 0, 56, 0, 7, 64, 1, 0,128, 7, 1, 0, 0, 0, 24,253,
-+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 48, 32, 0, 0, 0, 0,192, 64, 24, 0, 0, 0, 0, 0, 0, 1, 48, 0, 0,192, 0, 0, 0, 0, 64, 0, 8,128, 0, 0, 0, 2, 2, 0, 0,128,124,254,
-+ 0, 0, 0, 0, 0, 0, 0,152, 16, 0, 0, 0, 0,128, 73, 0, 0, 4, 0, 0, 88, 16, 0, 0, 0, 0,128, 5, 50, 1, 0, 0, 0, 0,192, 8,152, 4, 0, 96, 34, 0,128, 0, 48, 10, 0,192, 68, 0, 0, 0, 32, 0, 4, 0, 1, 0, 0, 66, 0, 0, 0, 0, 92,252,
-+ 0, 0, 0, 0, 0, 0, 0,154, 8, 0, 0, 0, 0,160,133, 0,128, 38, 4, 0, 2, 0, 0, 0, 0, 0, 32, 4, 5, 18, 0, 0, 0, 0, 16, 0, 90, 0, 0,104, 4, 33, 36, 17, 52, 0, 0, 16, 0, 0, 64, 2, 40, 4, 41, 32, 1, 1,128, 34, 4, 0, 0, 0, 24,253,
-+ 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0,128, 1, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 8, 0, 96, 32, 0,128, 0, 1, 0, 0, 0, 0, 0, 0, 1, 65, 64, 4,132, 0, 0, 0, 4, 0, 0, 0, 0, 64,254,
-+ 0, 0, 0, 0, 0, 0, 0, 24, 8, 0, 0, 0, 0, 0, 1, 0, 0, 6, 0, 0, 0, 8, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0,192, 0, 24, 8, 0, 96, 16, 12, 96, 1, 48, 16, 0,192, 32, 0,192, 2, 56, 0, 11, 96, 1, 0,128, 3, 0, 0, 0, 0,156,255,
-+ 8, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0,129, 0, 0, 20, 1, 0, 64, 0, 0, 0, 0, 0, 0, 32, 0, 66, 0, 0, 0, 0,192, 0, 24, 1, 0, 96, 2,136,176, 0, 0, 0, 0,192, 2, 0, 64, 1, 72, 0, 5,160, 0, 0,128, 4, 0, 0, 0,128, 73,252,
-+ 0, 0, 0, 0, 0, 0, 0,152, 32, 0, 0, 0, 0,128, 9, 0, 0, 6, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0,128, 8, 0, 0, 0, 0,192, 16, 8, 5, 0, 96, 36, 4, 4, 1,128, 64, 0, 0, 4, 0, 0, 2, 32, 0, 8, 0, 1, 0, 0, 2, 0, 0, 0,128,100,255,
-+ 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0,224, 1, 1,128, 7, 0, 0, 6, 0, 0, 0, 0, 0, 96, 0, 13, 0, 0, 0, 0, 0,240, 0, 14, 0, 0, 88, 0, 15,224, 0, 60, 0, 0,240, 64, 0,192, 1, 80, 0, 7,224, 0, 0, 0, 5, 0, 0, 0, 0,128,254,
-+ 4, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0,128, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 8, 0, 0, 0, 0, 0, 0, 24, 0, 0, 96, 0, 4, 8, 1, 48, 0, 0,192, 32, 0, 0, 2, 32, 0, 8, 0, 1, 0, 0, 2, 0, 0, 0,128,181,255,
-+ 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0,128,133, 0, 0, 38, 1, 0, 24, 9, 0, 0, 0, 0,128, 17, 48, 2, 0, 0, 0, 0, 0, 64, 24, 4, 0, 32,128, 76,128, 0, 48, 8, 0,192, 8, 0, 0, 1, 72, 0, 4,160, 0, 0, 0, 4, 0, 0, 0, 0, 44,253,
-+ 0, 0, 0, 0, 0, 0, 0,154, 8, 0, 0, 0, 0, 32, 5, 0,128, 64, 0, 0, 2, 17, 0, 0, 0, 0, 32,144,164, 16, 0, 0, 0, 0, 80, 64, 90, 0, 0, 40, 4,133,164, 16, 36, 33, 0,208, 0, 0, 64, 34, 41, 8, 13, 32, 5, 0,128, 22, 16, 0, 0, 0,220,253,
-+ 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0,128, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0,128, 0, 24, 8, 0, 96, 32, 0, 0,129, 16, 0, 0, 0, 0, 0, 0, 1, 64, 0, 0,128,128, 0, 0, 6, 2, 0, 0, 0,228,255,
-+ 0, 0, 0, 0, 0, 0, 0, 16, 8, 0, 0, 0, 0,128,129, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 64, 48, 0, 0, 0, 0, 0,112, 0, 16, 8, 0, 64, 16, 12,224, 0, 44, 0, 0,192, 64, 0,192, 2, 56, 0, 12,100, 1, 0, 0, 6,192,128, 0, 0,240,252,
-+ 8, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0,128, 9, 0, 0, 32, 1, 0,136, 4, 0, 0, 0, 0, 0, 4, 48, 64, 0, 0, 0, 0,144, 0, 16, 1, 0, 96, 2, 32, 36, 1, 20, 0, 0, 0, 0, 0, 64, 1, 72, 0, 0,160, 0, 0, 0, 6, 1, 2, 0,128,177,252,
-+ 0, 0, 0, 0, 0, 0, 0,152, 32, 0, 0, 0, 0, 0, 32, 0, 0, 22, 0, 0, 64, 16, 0, 0, 0, 0, 0, 9, 0, 4, 0, 0, 0, 0, 64, 0, 24, 5, 0, 96, 36,132,136, 0, 32, 0, 0, 0, 2, 1, 0, 2, 32, 0, 0, 16, 1, 0, 0, 34,192, 40, 0,128,156,252,
-+ 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0,224, 0, 0,128, 7, 2, 0, 6, 0, 0, 0, 0, 0,224,129, 28, 0, 0, 0, 0, 0,160, 0, 30, 0, 0,120, 0, 11, 64, 1, 28, 0, 0,240, 0, 0,192, 1, 80, 0, 15,224, 0, 0,128, 3,241, 0, 0, 0, 80,253,
-+ 4, 0, 0, 0, 0, 0, 0, 24, 8, 0, 0, 0, 0, 0,128, 0, 0, 2, 0, 0, 24, 0, 0, 0, 0, 0,128, 1, 0, 0, 0, 0, 0, 0, 64, 0, 24, 0, 0, 96, 0, 12,128, 0, 32, 0, 0,192, 0, 0, 0, 2, 32, 0, 12, 0, 1, 0, 0, 6,194, 0, 0,128,121,254,
-+ 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0,128, 1, 0, 0, 6, 2, 0, 24, 33, 0, 0, 0, 0,128, 9,178, 64, 0, 0, 0, 0,144, 0, 24, 4, 0, 96,128, 44, 40, 1, 16, 0, 0,192, 32, 0, 0, 1, 72, 0, 44,162, 0, 0, 0, 70,192, 72, 0, 0, 40,255,
-+ 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0,160,133, 0,128, 38, 4, 0, 26, 1, 0, 0, 0, 0,160, 1,164, 0, 0, 0, 0, 0,208, 24, 90, 0, 0, 40, 4, 41, 36, 0, 52, 0, 0, 80, 64, 0, 64, 16, 8, 20, 13, 32, 72, 36,160, 6,144, 16, 0, 0,134,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0,128, 1, 0, 0, 6, 0, 0, 24, 16, 0, 0, 0, 0, 0, 0, 16, 16, 0, 0, 0, 0, 64, 0, 24, 8, 0, 0, 64, 4, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 2, 0, 0, 0, 0, 16, 0, 0, 64, 0, 0, 0,132,254,
-+ 0, 0, 0, 0, 0, 0, 0, 24, 8, 0, 0, 0, 0,128, 1, 0, 0, 2, 0, 0, 24, 0, 0, 0, 0, 0, 0,128, 48, 0, 0, 0, 0, 0,192, 32, 24, 8, 0, 96, 0, 12,128, 65, 48, 16, 0,112, 0, 0, 0,129, 96, 0, 12,132, 65, 44, 0, 6,176, 0, 0, 0,132,255,
-+ 8, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0,128,129, 0, 0, 22, 1, 0,152, 16, 0, 0, 0, 0,128, 5, 48, 65, 0, 0, 0, 0,192, 8, 24, 1, 0, 0, 16, 76, 16, 8, 0, 0, 0,144, 0, 0, 0, 34, 0, 20, 0, 0, 0, 20, 0, 32, 84, 0, 0,128,149,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 9, 0, 0, 6, 1, 0, 88, 16, 0, 0, 0, 0,128, 5, 0, 16, 0, 0, 0, 0,192, 4, 24, 5, 0, 32, 32, 0,129, 81,128, 64, 0, 64, 0, 0, 0, 0, 36,128, 0,144, 0, 34, 0, 32,128, 0, 0,128,168,255,
-+ 0, 0, 0, 0, 0, 0, 0, 22, 16, 0, 0, 0, 0,224, 1, 1,128, 7, 0, 0, 22, 0, 0, 0, 0, 0,224,129, 28, 0, 0, 0, 0, 0,240, 32, 30, 0, 0, 88, 0, 7,224, 1, 60, 0, 0,160, 0, 0,192, 3, 88, 0, 15, 96, 1, 28,128, 7,114, 0, 0, 0,252,253,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 6, 0, 0, 24, 0, 0, 0, 0, 0,128, 1, 0, 32, 0, 0, 0, 0,192, 64, 8, 0, 0, 96, 0, 0,128, 1, 48, 8, 0, 64, 0, 0, 0, 1, 32, 0, 12,128, 0, 32, 0, 6,128, 0, 0,128, 17,254,
-+ 0, 0, 0, 0, 0, 0, 0, 24, 33, 0, 0, 0, 0,128,132, 0, 0, 34, 1, 0, 72, 16, 0, 0, 0, 0,128,137, 48, 1, 0, 0, 0, 0,192, 8, 8, 4, 0, 96, 34,140,144,145, 48, 2, 0,144, 0, 0, 0, 83, 96, 36,140,130,145, 20, 0, 70, 65, 0, 0, 0,204,253,
-+ 16, 0, 0, 0, 0, 0, 0, 26, 1, 0, 0, 0, 0, 32, 0, 0,128, 34, 4, 0, 10, 1, 0, 8, 0, 0,160, 5, 5, 18, 0, 0, 0, 0,144, 64, 10, 1, 0,104, 0, 65,162, 8, 20, 33, 0,208, 0, 2, 67, 1, 72, 4, 37,160, 4, 20,160, 0,208, 0, 2, 3, 36,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 24, 16, 0, 0, 0, 0,128, 1, 0, 0, 0, 0, 0, 0, 64, 0, 16, 16, 0, 96, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 2, 33, 64, 8, 4,129, 32, 0, 6, 0, 0, 0, 0, 68,252,
-+ 0, 0, 0, 0, 0, 0, 0, 8, 16, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 16, 0, 0, 0, 0, 0,128, 0, 1, 0, 0, 0, 0, 0,176, 0, 14, 0, 0, 96, 16, 0,128, 0, 28, 0, 0,192, 64, 8,200, 1, 88, 0, 7,224, 0, 28, 0, 6,192, 32, 16, 8,220,252,
-+ 12, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 80, 0, 0, 22, 1, 0,152, 16, 0, 0, 0, 0, 0, 1, 0, 66, 0, 0, 0, 0, 80, 0, 18, 0, 0, 0, 2,128, 2, 40, 36, 0, 0, 0, 0, 0, 64, 2, 40, 0, 9, 32, 1, 36, 0, 6, 4, 4, 0,129,233,255,
-+ 4, 0, 0, 0, 0, 0, 0, 24, 1, 0, 0, 0, 0, 0, 4, 1, 0, 6, 1, 0, 88, 16, 0, 96, 1, 0, 0, 16,128, 0, 0, 0, 0, 0,128, 0, 8, 0, 0, 96, 0, 64, 4, 0, 18, 0, 0, 0, 2, 65, 0, 1, 64, 0, 4,128, 0, 16, 0, 38, 0, 64, 0,128, 16,255,
-+ 0, 0, 0, 0, 0, 0, 0, 30, 8, 0, 0, 0, 0, 96, 0, 0,128, 3, 0, 0, 30, 0, 0,120, 64, 0,224,129, 12, 8, 0, 0, 0, 0,112, 0, 20, 0, 0,120, 16, 3, 96, 1, 40, 0, 0,240, 0, 6,144, 2, 56, 0, 10, 64, 1, 40,128, 7,241, 0, 6, 16, 64,253,
-+ 12, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 65, 0, 0, 6, 0, 0, 24, 0, 0, 96, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0,128, 0, 8, 0, 0, 96, 32, 0,128, 1, 16, 0, 0,192, 0, 0, 8, 1, 64, 0, 4,128, 0, 16, 0, 6,192, 0, 0,136,113,254,
-+ 0, 0, 0, 0, 0, 0, 0,144, 16, 0, 0, 0, 0,128, 17, 0, 0, 38, 1, 0, 88, 16, 0, 96, 0, 0, 0, 9, 49, 9, 0, 0, 0, 0, 64, 0, 16, 0, 0, 96, 2, 72,132, 81, 36, 0, 0,192, 36, 88, 64, 2, 32, 0, 9, 0, 1, 32, 0, 38,193, 68, 24, 0,120,255,
-+ 0, 0, 0, 0, 0, 0, 0, 10, 1, 0, 0, 0, 0,160,133, 0,128, 2, 4, 0, 26, 0, 0, 0, 0, 0,160, 16, 53, 33, 0, 0, 0, 0, 16, 40, 26, 0, 0, 40, 1, 41,160, 16, 4,128, 18, 20, 0, 0, 64, 33, 9, 1, 13, 32, 8,132,136, 22, 16, 0, 0, 0,252,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0,128, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 32, 4, 4, 1, 1, 0, 4, 0, 0, 0, 0, 2, 0, 16, 0, 0, 64, 0, 0, 6, 2, 32, 0, 0,136,252,
-+ 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0,128, 1, 0,128, 3, 0, 0, 24, 0, 0, 0, 0, 0,128,129, 16, 16, 0, 0, 0, 0,192, 32, 24, 0, 0, 56, 0, 12,232, 0, 48,136, 3,192,128, 0,192, 1, 96, 16, 12,130, 1, 48, 8, 4, 64, 32, 0, 0,228,255,
-+ 12, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0,128,129, 0,128, 4, 0, 0,152, 32, 0, 0, 0, 0, 0, 8, 32, 2, 0, 0, 0, 0, 0, 8, 0, 8, 0, 72, 0, 76, 32, 1, 48,128, 4, 0, 2, 0, 64, 2, 0, 4, 32, 0, 68, 0, 0, 4,129, 2, 0, 0, 93,255,
-+ 4, 0, 0, 0, 0, 0, 0, 8, 1, 0, 0, 0, 0,128, 8, 0, 0, 2, 0, 0, 24, 16, 0, 0, 0, 0,128, 32, 0, 1, 0, 0, 0, 0, 64, 0,129, 0, 0, 32, 0, 0,132, 0, 0, 1, 2,192, 2, 0, 0, 1, 32,128, 64,128, 0, 18, 64, 38, 0, 0, 1, 0, 24,254,
-+ 0, 0, 0, 0, 0, 0, 0, 22, 8, 0, 0, 0, 0,224, 0, 1, 0, 5, 0, 0, 30, 0, 0, 0, 0, 0, 96, 1, 60, 32, 0, 0, 0, 0,176, 0, 30, 8, 0, 80, 0, 7, 64, 1, 60, 16, 5,240, 32, 0,128, 2, 88, 0, 15,100, 1, 44,128, 7,241, 0, 0, 0, 36,253,
-+ 12, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0,128, 1, 0, 0, 2, 0, 0, 24, 0, 0, 0, 0, 0,128, 1, 0, 0, 0, 0, 0, 0, 64, 0, 24, 4, 0, 32, 0, 0,136, 0, 48, 8, 2,192, 64, 0, 0, 1, 32, 0, 12,130, 0, 16, 0, 6, 66, 0, 0,128, 8,255,
-+ 0, 0, 0, 0, 0, 0, 0,152, 16, 0, 0, 0, 0,128,133, 0, 0, 4, 0, 0, 24, 5, 0, 0, 0, 0,128,129, 32, 16, 0, 0, 0, 0,192, 72, 24, 0, 0, 64, 0, 12, 32, 1,176, 0, 4,192, 8, 0, 64, 2, 96, 36, 12,128,145, 48, 18, 70,192, 64, 0, 0, 52,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30,252,
-+ 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 64, 0, 8, 0, 1, 0, 0, 0,128, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 2, 0, 12,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 1, 32, 0, 0, 0, 0, 0, 76,254,
-+ 44, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4, 0, 0, 0, 0, 0, 16, 2, 2, 64, 0, 8, 0, 1, 32, 32, 4,132, 0, 16, 2, 2, 64, 64, 8, 8, 1, 33, 16, 4,130, 0, 16, 16, 2,128,209,253,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 8, 0, 0, 1, 0, 0,128, 0, 16, 0, 2, 24, 0, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 0,128,176,255,
-+ 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4, 0, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4, 0, 0, 0, 0, 0, 0, 64, 0, 64, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 32, 0, 8, 0, 1, 16, 0, 4, 64, 2, 0, 88,253,
-+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 0, 0, 0, 2, 64, 0, 8, 0, 0, 0, 0, 0,128, 0, 0,227,254,
-+ 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4, 0,128, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4, 0, 0, 0, 0, 0, 0, 8, 0, 66, 0, 0, 8, 1, 0, 16, 0, 32,128, 0, 8, 2, 0, 32, 0, 4,128, 0, 32, 0, 4,128, 0, 8, 2, 0,116,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 2, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 16, 0, 0, 0, 0, 0, 0, 1, 32, 0, 0,128, 0, 0, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4, 0, 1, 0, 0,152,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 44,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,128,116,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 1, 64, 0, 0, 0, 1, 0, 0, 2, 64, 0, 8, 4, 1, 32, 0, 0,128, 0, 0,184,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,188,254,
-+ 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 8, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,252,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 32, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 92,253,
-+ 0, 0, 0, 0, 0, 0, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 32, 8, 4, 0, 32, 0, 0, 2, 0, 0, 8, 1, 2, 0, 0, 0, 0, 0, 0, 0,128, 32, 8, 0, 2, 0, 32, 0, 0,232,252,
-+ 0, 0, 0, 0, 0, 0,128, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 2, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,192, 2, 16, 80, 8, 0, 0, 72,128, 16,160, 0, 4, 0, 0, 0, 80, 16, 10, 0, 32, 0, 5,128, 0, 0,128, 0, 8,248,253,
-+ 0, 0, 0, 0, 0, 64, 0, 8, 0, 0, 0, 16, 0, 1, 32, 0, 18, 2,128, 0, 0, 0, 16, 0, 0, 0, 0,145, 84, 18, 0, 0, 0, 0, 0, 0,152, 4, 6, 64, 0, 0, 0, 0, 48, 0, 0,128, 0, 16, 0, 38, 1, 2, 0, 2, 64, 16, 0,130, 4, 16, 0, 0, 76,254,
-+ 0, 0, 0, 0, 0,128, 0, 8, 0, 0, 0, 16, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 8, 4, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 33, 0, 4, 0, 0, 0, 0, 92,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 1, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 1, 64, 0, 0, 0, 0, 32, 0, 0,128, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 0, 16, 0, 0,220,252,
-+ 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 32, 8, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 44,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 56,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 44,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 56,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 64, 4, 0, 0, 0, 0, 0, 16, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 14,253,
-+ 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 16, 0, 0, 64, 0, 8, 0, 1, 32, 0, 4, 0, 0, 16, 0, 0,164,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 0, 0,180,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 16,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 0, 0, 0, 0, 64, 2, 8, 0, 1, 16, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0,156,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 16, 0, 32, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180,252,
-+ 8, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0,128, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,252,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 16, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 16, 4, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 64, 0, 0, 2, 64, 32, 0, 0,145, 1, 0, 0, 70,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,252,
-+ 0, 0, 0, 0, 0, 0, 16, 0, 4, 0, 8, 0, 0, 0, 0, 8, 16, 2, 1, 0, 8, 2, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 2, 0, 0, 0, 0, 0, 0, 16, 0, 0, 64, 0, 0, 0, 0, 64, 0, 8,128, 0, 17, 0, 0, 1, 16, 0, 0,134,253,
-+ 76, 0, 0, 0, 1, 0, 0, 8, 2, 0, 0, 0, 0,132, 0, 0, 16, 0,128, 0, 0, 0, 64, 0, 0, 0,128, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 32, 16, 0, 0, 64, 8, 0, 1, 0, 0, 0, 0, 1, 0, 16, 4, 2, 0, 0, 0,130, 0, 0, 0, 64, 38,253,
-+ 32, 0, 0,128, 0, 0, 64, 2, 24, 0, 16, 0, 0, 40, 0, 8, 48, 1, 18, 0, 4, 8, 0, 18, 0, 0, 32, 0, 4, 0, 0, 0, 0, 0, 32, 0, 8, 24, 0, 8, 64, 40, 0, 0, 13,128, 0, 32, 0, 8, 64, 0, 16, 64, 3, 72,128, 8,128, 0,134, 66, 0, 0, 68,253,
-+ 0, 0, 32, 0, 0,128, 0, 8, 2, 1, 0, 0, 4, 0, 33, 0,128, 0, 1, 0, 20, 4, 5, 0, 0,128,130, 0, 0, 0, 0, 0, 0, 0,192, 32, 72, 2, 0, 16, 8,136,132, 1, 36,136, 4, 32, 32, 8, 0, 2, 80, 32,134,200, 0, 24, 0, 4, 68, 18, 44, 0, 12,254,
-+ 0, 0, 0, 0, 0, 0, 0, 8,128, 0, 0, 0, 8, 0, 0, 0, 0, 0, 1, 0, 0, 4, 1, 0, 0, 0,130, 0, 0, 0, 0, 0, 0, 0, 32, 32, 8, 0, 0, 0, 0, 0, 64, 0, 0, 16, 0, 0, 32, 16, 0, 0, 0, 0, 2, 64, 0, 8, 0, 0, 32, 0, 4, 0,132,254,
-+ 0, 0, 8, 0, 0, 32, 0, 0, 4, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 4, 0, 0, 16, 2,128, 0, 32, 0, 2, 0, 0, 0, 0, 1, 16, 0, 0, 0, 0, 0, 0, 2, 0, 16, 0, 0,112,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,254,
-+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 28,254,
-+ 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 32, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0,196,255,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,244,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,236,255,
-+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0,192,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,244,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,253,
-+ 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 8, 0, 0, 0, 64, 0, 0, 0, 8, 0, 0, 32, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 2, 0, 0, 0,213,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 2, 0, 0, 8, 32, 0, 32, 0, 4,128, 0, 64, 0, 0, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 18, 0, 0, 0,104,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,254,
-+ 32, 0, 4,128, 16, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 73, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212,253,
-+ 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,254,
-+ 0, 0, 12, 0, 0, 2, 0, 0, 0, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 11, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,252,
-+ 0, 0, 4, 0, 64, 0, 0, 0, 0, 0,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 5, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252,252,
-+128, 17,176, 0, 32, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,152, 0, 0, 0, 0, 8,128, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,108,253,
-+224,129, 56,136, 1, 0, 0, 0, 0, 0, 16, 32, 0, 0, 0, 0, 0, 0, 0, 0, 30, 8, 0, 0, 0, 6,192,129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,252,
-+128, 1, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 8, 0, 0, 0, 8,160, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,255,
-+128, 1, 48, 0, 68, 2, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0,152, 0, 0, 0, 0, 4,160, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,108,252,
-+ 0, 0,180,160, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,130, 8, 0, 0, 0, 9, 40, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,255,
-+ 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,128, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,
-+ 0, 0, 48,128, 1, 0, 0, 0, 0, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 96, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,253,
-+ 8, 0, 48,162, 0, 0, 0, 0, 0, 0,104, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2, 0, 0, 0, 5,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,193,253,
-+ 0, 0,128, 0, 70, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 8, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,200,252,
-+ 0, 0, 12, 16, 7, 0, 0, 0, 0, 0, 16, 32, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 6,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,254,
-+ 4, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 8, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 81,253,
-+ 0, 0, 0, 10, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 80, 8, 0, 0, 0, 4,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,253,
-+ 16, 0, 4,128, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 13, 32,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,254,
-+ 0, 0, 48, 0, 6, 0, 0, 0, 0, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 96, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,254,
-+ 12, 0, 48, 0, 6, 0, 0, 0, 0, 0,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 8, 0, 0, 0, 13,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33,253,
-+ 4, 0,128, 0, 70, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 64, 8, 0, 0, 0, 12, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,252,
-+ 0, 0, 12,144, 7, 0, 0, 0, 0, 0, 16, 32, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 14,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,254,
-+ 24, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 8, 0, 0, 0, 12, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,156,252,
-+ 0, 0, 0, 10, 6, 1, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0,152, 0, 0, 0, 0, 12,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,253,
-+ 0, 0, 4,128, 0, 0, 0, 0, 0, 0, 8, 66, 0, 0, 0, 0, 0, 0, 0, 0, 26, 2, 0, 0, 0, 41, 40, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 4,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,254,
-+ 0, 0, 60, 0, 6, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 11, 96, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,255,
-+ 8, 0, 52, 0, 0, 1, 0, 0, 0, 0, 96, 16, 0, 0, 0, 0, 0, 0, 0, 0, 72, 8, 0, 0, 0, 5,160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 17,255,
-+ 0, 0,128, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 80, 8, 0, 0, 0, 8, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 48,252,
-+ 0, 0, 8,144, 1, 0, 0, 0, 0, 0, 24, 32, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 6,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,253,
-+ 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 8, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,215,252,
-+ 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 4,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144,254,
-+ 16, 0, 52,128, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 1, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,252,
-+ 0, 0, 48, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148,254,
-+ 0, 0, 0, 0, 2, 4, 0, 0, 0, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,254,
-+ 12, 0, 0, 0, 22, 0, 0, 0, 0, 0,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4,254,
-+ 4, 0,176, 0, 16, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 64, 8, 0, 0, 0, 32,128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,113,253,
-+ 0, 0, 60,144, 1, 2, 0, 0, 0, 0, 16, 32, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 3,196, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252,
-+ 12, 0, 48, 0, 6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,193,253,
-+ 0, 0, 48, 9, 22, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0,161, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,255,
-+ 0, 0, 20,130, 64, 0, 0, 0, 0, 0,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 2, 0, 0, 0, 9,160, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0,168,252,
-+ 0, 0, 32, 32, 0, 4, 0, 0, 0, 0, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 4,132, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 20,255,
-+ 0, 0, 48, 32, 2, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,160,253,
-+ 8, 0, 48, 0, 70, 4, 0, 0, 0, 0, 96, 16, 0, 0, 0, 0, 0, 0, 0, 0, 80, 8, 0, 0, 0, 5, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,128, 24,252,
-+ 0, 0,128, 0, 16, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 88, 8, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,132,237,255,
-+ 0, 0, 44,136, 1, 2, 0, 0, 0, 0, 24, 32, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 6,224, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 52,252,
-+ 4, 0, 0, 8, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 8, 0, 0, 0, 8, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,157,254,
-+ 0, 0, 48, 2, 22, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0,152, 0, 0, 0, 0, 4, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,140,253,
-+ 16, 0, 52,146, 6, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0,128, 0, 0, 0, 2, 66, 0, 8, 0, 41,164, 16, 52, 0, 0, 0, 0, 0, 0, 0, 0, 64, 3, 0, 0, 0,160, 1, 0, 0, 0, 0, 0, 0, 0, 0,104, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 18,254,
-+ 0, 0, 48, 0, 6, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 4, 0, 64, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0,144,253,
-+ 0, 0, 48,128, 7, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11,128, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0,192, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0,228,253,
-+ 12, 0, 48,136, 6, 0, 0, 0, 0, 0, 96, 18, 0, 0, 0, 0, 0, 0, 0, 0, 80, 8, 0, 0, 0, 5,128,133, 52, 0, 0, 0, 0, 0, 0, 0, 0, 64, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0,128, 5,253,
-+ 4, 0, 16, 9, 64, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 22, 2, 0, 72, 8, 3, 97, 66, 8,128, 9, 1, 10, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 0, 0,128,133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 10, 0, 0, 0, 0,128,124,254,
-+ 0, 0, 60, 0, 1, 1, 0, 0, 0, 0, 24, 32, 0, 0, 0, 0,128, 7, 0, 0, 6,192, 3,120, 0, 6, 96, 1, 12, 0, 0, 0, 0, 0, 0, 0, 0,192, 0, 0, 0, 0,224, 1, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0,240,253,
-+ 12, 0, 48, 16, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 6, 0, 0, 24, 8, 3, 96, 0, 8,128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,117,254,
-+ 0, 0, 48, 1, 0, 0, 0, 0, 0, 0, 96, 20, 0, 0, 0, 0, 0, 6, 0, 0,152, 0, 3, 96, 0, 4, 0, 73, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,172,255,
-+ 16, 0, 4,128, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 52, 0, 0,208, 16,130, 16, 0, 0, 0,137, 36, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 64, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 0, 0, 0, 0, 52, 0, 0, 0, 0, 26, 0, 84,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 24, 0, 0, 0, 0, 4, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 48, 0, 0, 0, 0, 24, 0, 44,254,
-+ 0, 0, 60, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0, 0, 0, 32, 0,192, 0, 24, 0, 0, 0, 0, 11, 96, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0,192, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0, 0, 60, 0, 0, 0, 0, 30, 0, 72,254,
-+ 12, 0, 52, 0, 0, 0, 0, 0, 0, 0,104, 0, 0, 0, 0,176, 0, 0, 64, 66,152, 2, 0, 0, 0, 5, 32, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 64, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 0, 0, 0, 0, 52, 0, 0, 0, 0, 26, 0, 29,252,
-+ 4, 0,128, 0, 32, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 48, 1, 0,128, 66, 16, 8, 0, 0, 0, 8,128, 73, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 8, 0, 0, 0, 0, 4, 48,255,
-+ 0, 0, 8,144, 1, 2, 0, 0, 0, 0, 16, 32, 0, 0, 0, 60, 16, 0,240, 0, 6, 0, 0, 0, 0, 6,192, 1, 12, 0, 0, 0, 0, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 12, 0, 0, 0, 0, 6, 0, 44,252,
-+ 12, 0, 0, 0, 6, 1, 0, 0, 0, 0, 0, 16, 0, 0, 0, 48, 0, 0, 0, 64, 16, 0, 0, 0, 0, 8,160, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 32,252,
-+ 0, 0, 0, 9, 6, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 48, 16, 0, 0, 4, 72, 8, 0, 0, 0, 4,160, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0,224,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,150,252,
-+ 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 0, 0, 0, 0, 0, 0, 16, 0, 2, 0, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 0, 0, 1, 32, 0, 0,128, 0, 16, 0, 0, 0, 56,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 8, 0, 0, 0, 0, 4,228,255,
-+ 40, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 0,136, 4, 1, 0, 0, 0, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0,130,128, 13,254,
-+ 0, 0, 0, 6,192, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 2,132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 80,254,
-+ 32, 0, 4, 0, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 2, 0, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 0, 0, 1, 32, 0, 0,128, 0, 16, 0, 0, 0,128,253,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 75,252,
-+ 32, 0, 0, 17, 16, 24, 0, 2, 64, 0, 0, 1, 1, 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 0, 16, 0, 6, 4, 0, 0, 0, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 33, 1, 32, 0,132,144, 0, 16, 0,130, 0,140,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 64, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164,255,
-+ 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180,255,
-+ 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 4, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 60,252,
-+ 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,254,
-+ 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52,254,
-+ 0, 0, 0, 0, 21, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0,136, 2,129, 0, 0, 40, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 8, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,255,
-+ 0, 1, 80,128, 2, 16, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 24, 32, 0, 4,130, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,128, 0, 16, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,252,
-+ 0, 0, 16, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 4, 2, 1, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,253,
-+ 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0,128, 0, 16, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,254,
-+ 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 36,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 44,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 4,136, 0, 1, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,108,254,
-+ 0, 0, 32, 0, 12, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,252,
-+ 12, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 8, 0, 16, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,128, 0, 0, 0, 0, 1, 0, 0, 4,130, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,253,
-+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 29,254,
-+ 0, 0, 8, 0, 21, 0, 0, 0, 3, 0, 8, 64, 0, 4, 0, 0, 0, 0, 2, 0,128,130, 80, 0, 0, 2, 68,128, 24, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,255,
-+ 0, 0, 16, 8, 1, 1, 0, 0, 0, 0, 96, 8, 0, 0, 0, 8,128, 10,128,136, 2, 0,112, 0, 20,140, 66, 65, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 1, 0, 0, 32, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 32, 0, 0, 0, 0, 16, 0, 0, 0, 24, 0, 0,172,254,
-+ 0, 0, 16, 8,128, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 16, 2, 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 32, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 52,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 16, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0,128, 0, 0, 4,128, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0,196,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,255,
-+ 8, 0, 0, 0, 4, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0,165,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180,254,
-+ 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,210,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 4,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44,255,
-+ 0, 0, 8, 0, 2, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,124,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 26, 0, 0, 40, 1, 0, 0, 0, 52, 2, 0, 16, 64, 0, 64, 0, 0, 0, 0, 0, 0, 4,128, 0, 0, 0, 0, 0,216,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 16, 0, 0, 0, 0, 8, 0,128, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 32, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 3, 2, 0, 0, 0, 0, 48,144, 7, 0, 0, 0, 0,132,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 4, 0, 64, 16, 0, 0, 0, 4, 9, 0, 0, 66, 0, 0, 19, 0, 0, 0, 0, 0, 48,129, 22, 2, 0, 0, 0, 76,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 4,128, 0, 0, 32, 18, 0, 0, 0, 0, 1, 0,192, 8, 0, 0, 3, 4, 0, 0, 0, 0, 0, 2, 64, 0, 0, 0, 0,140,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 64, 30, 4, 0, 88, 0, 0, 0, 0, 56, 8, 0,240, 32, 0,192, 3, 0, 0, 0, 0, 0, 60, 32, 7, 1, 0, 0, 0,100,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 0, 24, 4, 0, 32, 16, 0, 0, 0, 16, 0, 0,192,128, 0, 0, 3, 0, 0, 0, 0, 0, 48, 0, 6, 0, 0, 0, 0,136,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 0, 0, 1, 0, 32, 2, 0, 0, 0,144, 8, 0,192, 8, 0, 0, 35, 4, 0, 0, 0, 0, 48, 34, 32, 1, 0, 0, 0,220,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 40, 4, 0, 0, 0, 4, 0, 0,208, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 34,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 16, 0, 0, 0, 0, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 16, 0, 0, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0,100,254,
-+ 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 2, 0, 0, 0, 0, 0, 0,192, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 6, 0, 0, 0,128, 41,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 0, 0, 32, 64, 0, 0, 0, 0, 9, 0,192, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0,128, 36,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 4, 0, 80, 0, 0, 0, 0, 12, 0, 0,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 1, 0, 0, 0, 56,254,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 32, 16, 0, 0, 0, 48, 8, 0,192, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 77,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 32, 1, 0, 0, 0, 48, 0, 0,192, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 2, 0, 0, 0, 16,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 8, 0, 40, 1, 0, 0, 0, 52, 10, 0, 16, 0, 0, 64, 3, 0, 0, 0, 0, 0, 0,128, 22, 0, 0, 0, 0, 32,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,120,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 56, 0, 0, 0, 0, 60, 0, 0,192, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,128, 7, 0, 0, 0, 0, 88,252,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 4, 0, 72, 16, 0, 0, 0,132, 8, 0,192, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0,128, 16, 1, 0, 0, 0,169,254,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 32, 2, 0, 0, 0, 0, 9, 0,192, 66, 0, 0, 11, 4, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0,152,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 80, 16, 0, 0, 0, 56, 0, 0,240, 0, 0,192, 3, 0, 0, 0, 0, 0, 0, 0, 7, 1, 0, 0, 0, 68,253,
-+ 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 32, 16, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,128,164,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 5, 0, 32, 2, 0, 0, 0, 16, 10, 0, 0, 68, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 34, 1, 0, 0, 0,140,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 8, 0, 0, 0, 0, 4, 2, 0,208, 0, 0, 64, 0, 4, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 70,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0,192, 64, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 8, 0, 0, 0, 0, 0, 0, 60, 0, 0,192, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 96,252,
-+ 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154, 0, 0, 0, 0, 0, 0, 0, 52, 4, 0, 64, 8, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0,128,173,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 0, 17, 0, 0, 0, 16, 9, 0,192, 66, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0,128,160,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 24, 0, 0, 0, 0, 56, 0, 0,240, 0, 0,192, 3, 1, 0, 0, 0, 0, 0,128, 7, 2, 0, 0, 0, 33,253,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 96, 64, 0, 0, 0, 32, 0, 0, 64, 32, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,253,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 96, 2, 0, 0, 0, 0, 10, 0,192, 2, 0, 0,138, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,218,253,
-+ 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 8, 0, 0, 0, 0, 4, 0, 0, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 16, 0, 0, 0, 0, 88,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,108,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,252,
-+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 1, 0, 0, 0,109,255,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 4, 0, 0, 33, 0, 0, 0, 48, 9, 0,128, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0,252,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 24, 0, 0, 0, 0, 56, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 1, 2, 0, 0, 0,132,252,
-+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 96, 16, 0, 0, 0, 0, 8, 0,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 40,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 96, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0, 0, 0, 52,254,
-+ 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 8, 0, 0, 0, 0, 4, 0, 0,208, 0, 0, 64, 3, 0, 0, 0, 0, 0, 0,128, 18, 0, 0, 0, 0, 96,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0, 0, 0, 88,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0, 0, 0, 0, 0,192, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0,196,255,
-+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 4, 0,104, 0, 0, 0, 0, 0, 0, 0, 0, 8, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 36, 1, 0, 0, 0,189,254,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 96, 17, 0, 0, 0, 0, 16, 0, 0, 66, 0, 0, 11, 1, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0,112,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 0,112, 0, 0, 0, 0, 12, 0, 0,240, 0, 0,192, 3, 0, 0, 0, 0, 0, 0,128, 5, 2, 0, 0, 0, 52,255,
-+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 64, 0, 0, 0, 48, 8, 0,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,128,140,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 1, 0, 0, 2, 0, 0, 0, 48, 1, 0, 0, 68, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0,252,253,
-+ 16, 0, 0, 0, 0,208, 0, 0, 0, 0, 0, 0, 0,160, 1, 0, 0, 0, 0, 0, 0, 64, 3,104, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 26, 1, 0, 40, 4, 0,160, 1, 4, 0, 0, 16, 8, 0, 64, 2, 4, 0, 0, 0, 0, 0,128, 6, 0, 0, 2, 0,210,252,
-+ 0, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0,128, 1, 0, 0, 0, 0, 0, 0, 0, 3, 96, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 64, 16, 0,128, 1, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212,255,
-+ 0, 0, 0, 0, 0,240, 0, 0, 0, 0, 0, 0, 0,224, 1, 0, 0, 0, 0, 0, 0,192, 3,120, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 16, 0,224, 1, 48, 0, 0, 48, 0, 0, 0,130, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 24, 8,164,254,
-+ 12, 0, 0, 0, 0,208, 0, 0, 0, 0, 0, 0, 0,160, 1, 0, 0, 0, 0, 0, 0, 64, 3,104, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0,128, 4, 0, 64, 2, 0,160, 1, 48, 0, 0, 16, 66, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 32, 1, 0,152,128, 33,254,
-+ 4, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0,160, 0, 20, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 88, 0, 0, 32, 33, 0,128, 1, 48, 6, 0, 0, 8, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0,130,144,255,
-+ 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0,192, 0, 24, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 30, 8, 0, 88, 0, 0,192, 1, 60, 0, 0,160, 64, 0,192, 3, 0, 0, 0, 0, 0, 0,128, 7, 2, 0, 30, 0, 65,253,
-+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 32, 16, 0,128, 1, 48, 0, 0,192, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 24, 16, 53,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 16, 0, 32, 1, 0,160, 1, 48, 32, 0,192, 36, 0, 0, 11, 4, 0, 0, 0, 0, 0, 0, 0, 1, 0, 24, 0, 70,255,
-+ 32, 0, 0, 0, 0,208, 0, 0, 0, 0, 0, 0, 0,160, 1, 0, 0, 0, 0, 0, 0, 64, 3,104, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 2, 72, 0,104, 0, 0,160, 1, 52, 0, 0,144, 2, 0, 64, 0, 4, 0, 0, 0, 0, 0,128, 16, 0, 0, 0, 0,132,255,
-+ 0, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0,128, 1, 0, 0, 0, 0, 0, 0, 0, 3, 96, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 1, 48, 8, 0, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 16,252,
-+ 0, 0, 0, 0, 0,240, 0, 0, 0, 0, 0, 0, 0,224, 1, 0, 0, 0, 0, 0, 0,192, 3,120, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3,120, 16, 0,224, 1, 48, 0, 0,128, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,252,
-+ 8, 0, 0, 0, 0,208, 0, 0, 0, 0, 0, 0, 0,160, 1, 0, 0, 0, 0, 0, 0, 64, 3,104, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 64, 4, 3, 8, 2, 0,160, 1,176, 8, 0,192, 4, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 16, 1, 0, 0, 0, 53,254,
-+128, 33, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0,128, 0, 16, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0,128, 4, 19, 0, 17, 0,128, 1, 48, 1, 0,128, 68, 0, 0, 17, 2, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0,148,254,
-+224, 1, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0,192, 0, 24, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 6,192, 3,113, 0, 0,192, 1, 44, 8, 0,112, 0, 0,192, 3, 0, 0, 0, 0, 0, 0,128, 1, 1, 0, 0, 0, 52,254,
-+132, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 96, 64, 0,128, 1, 48, 8, 0,128, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 88,252,
-+128, 1, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 16, 5, 3, 1, 2, 0,128, 1, 48, 2, 0, 64, 40, 0, 0,138, 0, 0, 0, 0, 0, 0, 0, 36, 1, 0, 0, 0,108,253,
-+ 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30,253,
-+ 32, 0, 4,128, 0, 0, 0, 2, 64, 0, 8, 0, 1, 0, 0, 4,128, 0, 16, 0, 2, 0, 0, 0, 0, 1, 32, 0, 0, 0, 0, 0, 0, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 0,204,253,
-+ 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0,128, 0, 16, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,253,
-+ 44, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 64, 16, 8, 0, 1, 32, 0, 4, 0, 0, 0, 0, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32,136, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2,128,245,253,
-+ 4, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 8, 0, 0,136,128, 8, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,128, 92,253,
-+ 32, 0, 4,128, 0, 0, 0, 2, 64, 0, 8, 0, 1, 0, 0, 4,128, 0, 16, 0, 2, 0, 0, 0, 0, 1, 32, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 64, 0, 0, 0, 1, 0, 0, 0,128, 0, 0, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4, 0, 0, 16, 0, 2, 0,169,255,
-+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 64, 0, 0, 0, 0, 32, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,177,255,
-+ 32, 0, 4,128, 0, 16, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4,128, 0, 16, 0, 2, 64, 16, 8, 33, 1, 32, 0, 4, 5, 0, 0, 0, 0, 16, 0, 0, 65, 0, 0, 4, 1, 0,136, 0,130, 0, 0, 0, 2, 64, 0, 8, 0, 1, 32, 0, 4, 0, 64, 16, 0, 2, 0,158,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,150,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,252,
-+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 32, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 12,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 0, 0, 0, 0, 0, 8, 0, 32, 0, 0, 0, 4,255,
-+ 0, 0, 32, 0, 4, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 64, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 16, 0, 2, 0, 0, 0, 0,180,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 2, 0, 0, 0, 0, 52,254,
-+ 0, 0, 32, 0, 4, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 4, 0,248,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0,120,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 45,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0,188,255,
-+ 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,255,
-+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 80,254,
-+ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0,164,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 32,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 1, 16, 0, 0,128, 0, 0, 0, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,128,152,253,
-+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 64, 73,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,136, 0, 16, 0, 0, 64, 0, 16, 0, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0,128, 0,130, 2, 0, 0, 32,255,
-+128, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 4,128, 64, 0, 0, 0, 0, 0, 16, 0, 0, 32, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0,128, 0, 8, 66, 8, 32, 8, 0, 0, 1, 32, 0, 16, 64, 0, 0, 7, 1, 0, 20, 0, 0, 0, 80, 8, 2, 65, 2, 0, 0,176,253,
-+128, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 2,128, 32, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 8, 1, 0, 16, 0, 0, 0, 16, 4, 1, 33, 0, 0, 0, 8,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 4, 0, 0, 16, 0,128, 0, 8, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 88,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 1, 0, 0, 0, 0, 16, 0, 64, 1, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,252,
-+ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 32, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 8,253,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,105,255,
-+ 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 6, 0, 8, 8, 0, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128, 0, 0, 0, 0, 92,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,254,
-+ 0, 4,129, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 0, 2, 0, 32, 66, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,132, 0, 0, 0, 0, 0, 0, 0, 32, 1, 36,128, 0,144, 0, 16, 17, 0, 72, 0,132,255,
-+ 0, 0, 0, 32, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0,128, 0, 0, 64, 0, 64, 0, 0, 0, 0, 32, 8, 0, 0, 0, 0, 0, 0, 24, 0, 2, 0, 0, 2, 1, 0, 32, 0, 0, 0, 0, 0, 0, 0, 64, 0, 8, 0, 1, 32, 0, 20,128, 2, 16, 0,196,252,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 1, 0, 0,164,255,
-+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 2, 64, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 8, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 16, 0, 2, 64, 0, 0, 0, 0, 32, 0,172,253,
-+ 0, 23,224, 2,188,128, 11, 80, 1, 42, 64, 5,168, 0, 45,160, 2, 92,128, 10, 80, 1, 46, 64, 5,168, 0, 21,224, 2, 0, 0, 0, 0,128, 10, 80, 1, 42, 64, 5,104, 1, 21,224, 2, 84,128, 10, 80, 1, 42, 64, 5,104, 1, 21,160, 5, 84,128, 10, 80, 1,100,253,
-+192, 8, 20, 1,131, 85, 4,136, 0, 17,104, 2, 77,128, 96,145, 1, 34, 64, 6,200, 0, 17, 32, 3, 77,128, 8,144, 1, 0, 0, 0, 0,208, 4,200, 0, 25,120, 2, 77,162, 9,144, 1, 39,208, 4,156, 0, 17, 40, 3, 37,162, 12,148,172, 50, 80, 6,202, 0, 80,255,
-+255,255
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/CVS/Entries linux-2.6.17/arch/sh/boards/renesas/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/CVS/Entries 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,5 @@
-+D/edosk7705////
-+D/hs7751rvoip////
-+D/r7780rp////
-+D/rts7751r2d////
-+D/systemh////
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/CVS/Repository linux-2.6.17/arch/sh/boards/renesas/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/CVS/Repository 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/renesas
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/CVS/Root linux-2.6.17/arch/sh/boards/renesas/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/CVS/Root 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/edosk7705/CVS/Entries linux-2.6.17/arch/sh/boards/renesas/edosk7705/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/edosk7705/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/edosk7705/CVS/Entries 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,4 @@
-+/Makefile/1.2/Sun Oct 16 16:31:08 2005/-ko/
-+/io.c/1.1/Mon Aug 30 12:55:31 2004/-ko/
-+/setup.c/1.1/Mon Aug 30 12:55:31 2004/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/edosk7705/CVS/Repository linux-2.6.17/arch/sh/boards/renesas/edosk7705/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/edosk7705/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/edosk7705/CVS/Repository 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/renesas/edosk7705
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/edosk7705/CVS/Root linux-2.6.17/arch/sh/boards/renesas/edosk7705/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/edosk7705/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/edosk7705/CVS/Root 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/edosk7705/Makefile linux-2.6.17/arch/sh/boards/renesas/edosk7705/Makefile
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/edosk7705/Makefile 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/edosk7705/Makefile 2006-07-12 16:54:20.000000000 +0000
-@@ -1,10 +1,6 @@
- #
- # Makefile for the EDOSK7705 specific parts of the kernel
- #
--# Note! Dependencies are done automagically by 'make dep', which also
--# removes any old dependencies. DON'T put your own dependencies here
--# unless it's something special (ie not a .c file).
--#
-
- obj-y := setup.o io.o
-
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/hs7751rvoip/CVS/Entries linux-2.6.17/arch/sh/boards/renesas/hs7751rvoip/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/hs7751rvoip/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/hs7751rvoip/CVS/Entries 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,7 @@
-+/Kconfig/1.1/Fri Jun 24 11:21:00 2005/-ko/
-+/Makefile/1.4/Wed Nov 23 15:42:02 2005/-ko/
-+/io.c/1.8/Sun Feb 5 21:55:28 2006/-ko/
-+/irq.c/1.2/Fri Oct 28 13:12:48 2005/-ko/
-+/pci.c/1.3/Sun Aug 15 16:59:25 2004/-ko/
-+/setup.c/1.5/Wed Jan 4 16:34:30 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/hs7751rvoip/CVS/Repository linux-2.6.17/arch/sh/boards/renesas/hs7751rvoip/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/hs7751rvoip/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/hs7751rvoip/CVS/Repository 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/renesas/hs7751rvoip
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/hs7751rvoip/CVS/Root linux-2.6.17/arch/sh/boards/renesas/hs7751rvoip/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/hs7751rvoip/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/hs7751rvoip/CVS/Root 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/hs7751rvoip/Kconfig linux-2.6.17/arch/sh/boards/renesas/hs7751rvoip/Kconfig
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/hs7751rvoip/Kconfig 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/hs7751rvoip/Kconfig 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,12 @@
-+if SH_HS7751RVOIP
-+
-+menu "HS7751RVoIP options"
-+
-+config HS7751RVOIP_CODEC
-+ bool "Support VoIP Codec section"
-+ help
-+ Selecting this option will support CODEC section.
-+
-+endmenu
-+
-+endif
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/hs7751rvoip/Makefile linux-2.6.17/arch/sh/boards/renesas/hs7751rvoip/Makefile
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/hs7751rvoip/Makefile 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/hs7751rvoip/Makefile 2006-07-12 16:54:20.000000000 +0000
-@@ -1,12 +1,8 @@
- #
- # Makefile for the HS7751RVoIP specific parts of the kernel
- #
--# Note! Dependencies are done automagically by 'make dep', which also
--# removes any old dependencies. DON'T put your own dependencies here
--# unless it's something special (ie not a .c file).
--#
-
--obj-y := mach.o setup.o io.o irq.o led.o
-+obj-y := setup.o io.o irq.o
-
- obj-$(CONFIG_PCI) += pci.o
-
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/hs7751rvoip/io.c linux-2.6.17/arch/sh/boards/renesas/hs7751rvoip/io.c
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/hs7751rvoip/io.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/hs7751rvoip/io.c 2006-07-12 16:54:20.000000000 +0000
-@@ -14,18 +14,13 @@
- #include <linux/config.h>
- #include <linux/kernel.h>
- #include <linux/types.h>
-+#include <linux/module.h>
- #include <asm/io.h>
- #include <asm/hs7751rvoip/hs7751rvoip.h>
- #include <asm/addrspace.h>
-
--#include <linux/module.h>
--#include <linux/pci.h>
--#include "../../../drivers/pci/pci-sh7751.h"
--
--extern void *area5_io8_base; /* Area 5 8bit I/O Base address */
- extern void *area6_io8_base; /* Area 6 8bit I/O Base address */
- extern void *area5_io16_base; /* Area 5 16bit I/O Base address */
--extern void *area6_io16_base; /* Area 6 16bit I/O Base address */
-
- /*
- * The 7751R HS7751RVoIP uses the built-in PCI controller (PCIC)
-@@ -34,25 +29,8 @@
- * like the other Solution Engine boards.
- */
-
--#define PCIIOBR (volatile long *)PCI_REG(SH7751_PCIIOBR)
--#define PCIMBR (volatile long *)PCI_REG(SH7751_PCIMBR)
--#define PCI_IO_AREA SH7751_PCI_IO_BASE
--#define PCI_MEM_AREA SH7751_PCI_CONFIG_BASE
--
--#define PCI_IOMAP(adr) (PCI_IO_AREA + (adr & ~SH7751_PCIIOBR_MASK))
--
--#if defined(CONFIG_HS7751RVOIP_CODEC)
- #define CODEC_IO_BASE 0x1000
--#endif
--
--#define maybebadio(name,port) \
-- printk("bad PC-like io %s for port 0x%lx at 0x%08x\n", \
-- #name, (port), (__u32) __builtin_return_address(0))
--
--static inline void delay(void)
--{
-- ctrl_inw(0xa0000000);
--}
-+#define CODEC_IOMAP(a) ((unsigned long)area6_io8_base + ((a) - CODEC_IO_BASE))
-
- static inline unsigned long port2adr(unsigned int port)
- {
-@@ -60,9 +38,10 @@
- if (port == 0x3f6)
- return ((unsigned long)area5_io16_base + 0x0c);
- else
-- return ((unsigned long)area5_io16_base + 0x800 + ((port-0x1f0) << 1));
-+ return ((unsigned long)area5_io16_base + 0x800 +
-+ ((port-0x1f0) << 1));
- else
-- maybebadio(port2adr, (unsigned long)port);
-+ maybebadio((unsigned long)port);
- return port;
- }
-
-@@ -79,25 +58,10 @@
- }
-
- #if defined(CONFIG_HS7751RVOIP_CODEC)
--static inline int
--codec_port(unsigned long port)
--{
-- if (CODEC_IO_BASE <= port && port < (CODEC_IO_BASE+0x20))
-- return 1;
-- else
-- return 0;
--}
--#endif
--
--/* In case someone configures the kernel w/o PCI support: in that */
--/* scenario, don't ever bother to check for PCI-window addresses */
--
--/* NOTE: WINDOW CHECK MAY BE A BIT OFF, HIGH PCIBIOS_MIN_IO WRAPS? */
--#if defined(CONFIG_PCI)
--#define CHECK_SH7751_PCIIO(port) \
-- ((port >= PCIBIOS_MIN_IO) && (port < (PCIBIOS_MIN_IO + SH7751_PCI_IO_SIZE)))
-+#define codec_port(port) \
-+ ((CODEC_IO_BASE <= (port)) && ((port) < (CODEC_IO_BASE + 0x20)))
- #else
--#define CHECK_SH7751_PCIIO(port) (0)
-+#define codec_port(port) (0)
- #endif
-
- /*
-@@ -110,15 +74,13 @@
- unsigned char hs7751rvoip_inb(unsigned long port)
- {
- if (PXSEG(port))
-- return *(volatile unsigned char *)port;
--#if defined(CONFIG_HS7751RVOIP_CODEC)
-+ return ctrl_inb(port);
- else if (codec_port(port))
-- return *(volatile unsigned char *)((unsigned long)area6_io8_base+(port-CODEC_IO_BASE));
--#endif
-- else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))
-- return *(volatile unsigned char *)PCI_IOMAP(port);
-+ return ctrl_inb(CODEC_IOMAP(port));
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ return ctrl_inb(pci_ioaddr(port));
- else
-- return (*(volatile unsigned short *)port2adr(port) & 0xff);
-+ return ctrl_inw(port2adr(port)) & 0xff;
- }
-
- unsigned char hs7751rvoip_inb_p(unsigned long port)
-@@ -126,38 +88,36 @@
- unsigned char v;
-
- if (PXSEG(port))
-- v = *(volatile unsigned char *)port;
--#if defined(CONFIG_HS7751RVOIP_CODEC)
-+ v = ctrl_inb(port);
- else if (codec_port(port))
-- v = *(volatile unsigned char *)((unsigned long)area6_io8_base+(port-CODEC_IO_BASE));
--#endif
-- else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))
-- v = *(volatile unsigned char *)PCI_IOMAP(port);
-+ v = ctrl_inb(CODEC_IOMAP(port));
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ v = ctrl_inb(pci_ioaddr(port));
- else
-- v = (*(volatile unsigned short *)port2adr(port) & 0xff);
-- delay();
-+ v = ctrl_inw(port2adr(port)) & 0xff;
-+ ctrl_delay();
- return v;
- }
-
- unsigned short hs7751rvoip_inw(unsigned long port)
- {
- if (PXSEG(port))
-- return *(volatile unsigned short *)port;
-- else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))
-- return *(volatile unsigned short *)PCI_IOMAP(port);
-+ return ctrl_inw(port);
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ return ctrl_inw(pci_ioaddr(port));
- else
-- maybebadio(inw, port);
-+ maybebadio(port);
- return 0;
- }
-
- unsigned int hs7751rvoip_inl(unsigned long port)
- {
- if (PXSEG(port))
-- return *(volatile unsigned long *)port;
-- else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))
-- return *(volatile unsigned long *)PCI_IOMAP(port);
-+ return ctrl_inl(port);
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ return ctrl_inl(pci_ioaddr(port));
- else
-- maybebadio(inl, port);
-+ maybebadio(port);
- return 0;
- }
-
-@@ -165,146 +125,160 @@
- {
-
- if (PXSEG(port))
-- *(volatile unsigned char *)port = value;
--#if defined(CONFIG_HS7751RVOIP_CODEC)
-+ ctrl_outb(value, port);
- else if (codec_port(port))
-- *(volatile unsigned cjar *)((unsigned long)area6_io8_base+(port-CODEC_IO_BASE)) = value;
--#endif
-- else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))
-- *(unsigned char *)PCI_IOMAP(port) = value;
-+ ctrl_outb(value, CODEC_IOMAP(port));
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ ctrl_outb(value, pci_ioaddr(port));
- else
-- *(volatile unsigned short *)port2adr(port) = value;
-+ ctrl_outb(value, port2adr(port));
- }
-
- void hs7751rvoip_outb_p(unsigned char value, unsigned long port)
- {
- if (PXSEG(port))
-- *(volatile unsigned char *)port = value;
--#if defined(CONFIG_HS7751RVOIP_CODEC)
-+ ctrl_outb(value, port);
- else if (codec_port(port))
-- *(volatile unsigned cjar *)((unsigned long)area6_io8_base+(port-CODEC_IO_BASE)) = value;
--#endif
-- else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))
-- *(unsigned char *)PCI_IOMAP(port) = value;
-+ ctrl_outb(value, CODEC_IOMAP(port));
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ ctrl_outb(value, pci_ioaddr(port));
- else
-- *(volatile unsigned short *)port2adr(port) = value;
-- delay();
-+ ctrl_outw(value, port2adr(port));
-+
-+ ctrl_delay();
- }
-
- void hs7751rvoip_outw(unsigned short value, unsigned long port)
- {
- if (PXSEG(port))
-- *(volatile unsigned short *)port = value;
-- else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))
-- *(unsigned short *)PCI_IOMAP(port) = value;
-+ ctrl_outw(value, port);
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ ctrl_outw(value, pci_ioaddr(port));
- else
-- maybebadio(outw, port);
-+ maybebadio(port);
- }
-
- void hs7751rvoip_outl(unsigned int value, unsigned long port)
- {
- if (PXSEG(port))
-- *(volatile unsigned long *)port = value;
-- else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))
-- *((unsigned long *)PCI_IOMAP(port)) = value;
-+ ctrl_outl(value, port);
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ ctrl_outl(value, pci_ioaddr(port));
- else
-- maybebadio(outl, port);
-+ maybebadio(port);
- }
-
- void hs7751rvoip_insb(unsigned long port, void *addr, unsigned long count)
- {
-+ u8 *buf = addr;
-+
- if (PXSEG(port))
-- while (count--) *((unsigned char *) addr)++ = *(volatile unsigned char *)port;
--#if defined(CONFIG_HS7751RVOIP_CODEC)
-+ while (count--)
-+ *buf++ = ctrl_inb(port);
- else if (codec_port(port))
-- while (count--) *((unsigned char *) addr)++ = *(volatile unsigned char *)((unsigned long)area6_io8_base+(port-CODEC_IO_BASE));
--#endif
-- else if (CHECK_SH7751_PCIIO(port) || shifted_port(port)) {
-- volatile __u8 *bp = (__u8 *)PCI_IOMAP(port);
-+ while (count--)
-+ *buf++ = ctrl_inb(CODEC_IOMAP(port));
-+ else if (is_pci_ioaddr(port) || shifted_port(port)) {
-+ volatile u8 *bp = (volatile u8 *)pci_ioaddr(port);
-
-- while (count--) *((volatile unsigned char *) addr)++ = *bp;
-+ while (count--)
-+ *buf++ = *bp;
- } else {
-- volatile __u16 *p = (volatile unsigned short *)port2adr(port);
-+ volatile u16 *p = (volatile u16 *)port2adr(port);
-
-- while (count--) *((unsigned char *) addr)++ = *p & 0xff;
-+ while (count--)
-+ *buf++ = *p & 0xff;
- }
- }
-
- void hs7751rvoip_insw(unsigned long port, void *addr, unsigned long count)
- {
-- volatile __u16 *p;
-+ volatile u16 *p;
-+ u16 *buf = addr;
-
- if (PXSEG(port))
-- p = (volatile unsigned short *)port;
-- else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))
-- p = (volatile unsigned short *)PCI_IOMAP(port);
-- else
-- p = (volatile unsigned short *)port2adr(port);
-- while (count--) *((__u16 *) addr)++ = *p;
-+ p = (volatile u16 *)port;
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ p = (volatile u16 *)pci_ioaddr(port);
-+ else
-+ p = (volatile u16 *)port2adr(port);
-+ while (count--)
-+ *buf++ = *p;
- }
-
- void hs7751rvoip_insl(unsigned long port, void *addr, unsigned long count)
- {
-- if (CHECK_SH7751_PCIIO(port) || shifted_port(port)) {
-- volatile __u32 *p = (__u32 *)PCI_IOMAP(port);
-
-- while (count--) *((__u32 *) addr)++ = *p;
-+ if (is_pci_ioaddr(port) || shifted_port(port)) {
-+ volatile u32 *p = (volatile u32 *)pci_ioaddr(port);
-+ u32 *buf = addr;
-+
-+ while (count--)
-+ *buf++ = *p;
- } else
-- maybebadio(insl, port);
-+ maybebadio(port);
- }
-
- void hs7751rvoip_outsb(unsigned long port, const void *addr, unsigned long count)
- {
-+ const u8 *buf = addr;
-+
- if (PXSEG(port))
-- while (count--) *(volatile unsigned char *)port = *((unsigned char *) addr)++;
--#if defined(CONFIG_HS7751RVOIP_CODEC)
-+ while (count--)
-+ ctrl_outb(*buf++, port);
- else if (codec_port(port))
-- while (count--) *(volatile unsigned char *)((unsigned long)area6_io8_base+(port-CODEC_IO_BASE)) = *((unsigned char *) addr)++;
--#endif
-- else if (CHECK_SH7751_PCIIO(port) || shifted_port(port)) {
-- volatile __u8 *bp = (__u8 *)PCI_IOMAP(port);
-+ while (count--)
-+ ctrl_outb(*buf++, CODEC_IOMAP(port));
-+ else if (is_pci_ioaddr(port) || shifted_port(port)) {
-+ volatile u8 *bp = (volatile u8 *)pci_ioaddr(port);
-
-- while (count--) *bp = *((volatile unsigned char *) addr)++;
-+ while (count--)
-+ *bp = *buf++;
- } else {
-- volatile __u16 *p = (volatile unsigned short *)port2adr(port);
-+ volatile u16 *p = (volatile u16 *)port2adr(port);
-
-- while (count--) *p = *((unsigned char *) addr)++;
-+ while (count--)
-+ *p = *buf++;
- }
- }
-
- void hs7751rvoip_outsw(unsigned long port, const void *addr, unsigned long count)
- {
-- volatile __u16 *p;
-+ volatile u16 *p;
-+ const u16 *buf = addr;
-
- if (PXSEG(port))
-- p = (volatile unsigned short *)port;
-- else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))
-- p = (volatile unsigned short *)PCI_IOMAP(port);
-+ p = (volatile u16 *)port;
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ p = (volatile u16 *)pci_ioaddr(port);
- else
-- p = (volatile unsigned short *)port2adr(port);
-- while (count--) *p = *((__u16 *) addr)++;
-+ p = (volatile u16 *)port2adr(port);
-+
-+ while (count--)
-+ *p = *buf++;
- }
-
- void hs7751rvoip_outsl(unsigned long port, const void *addr, unsigned long count)
- {
-- if (CHECK_SH7751_PCIIO(port) || shifted_port(port)) {
-- volatile __u32 *p = (__u32 *)PCI_IOMAP(port);
-+ const u32 *buf = addr;
-
-- while (count--) *p = *((__u32 *) addr)++;
-+ if (is_pci_ioaddr(port) || shifted_port(port)) {
-+ volatile u32 *p = (volatile u32 *)pci_ioaddr(port);
-+
-+ while (count--)
-+ *p = *buf++;
- } else
-- maybebadio(outsl, port);
-+ maybebadio(port);
- }
-
--void *hs7751rvoip_ioremap(unsigned long offset, unsigned long size)
-+void __iomem *hs7751rvoip_ioport_map(unsigned long port, unsigned int size)
- {
-- if (offset >= 0xfd000000)
-- return (void *)offset;
-- else
-- return (void *)P2SEGADDR(offset);
--}
--EXPORT_SYMBOL(hs7751rvoip_ioremap);
-+ if (PXSEG(port))
-+ return (void __iomem *)port;
-+ else if (unlikely(codec_port(port) && (size == 1)))
-+ return (void __iomem *)CODEC_IOMAP(port);
-+ else if (is_pci_ioaddr(port))
-+ return (void __iomem *)pci_ioaddr(port);
-
--unsigned long hs7751rvoip_isa_port2addr(unsigned long offset)
--{
-- return port2adr(offset);
-+ return (void __iomem *)port2adr(port);
- }
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/hs7751rvoip/setup.c linux-2.6.17/arch/sh/boards/renesas/hs7751rvoip/setup.c
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/hs7751rvoip/setup.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/hs7751rvoip/setup.c 2006-07-12 16:54:20.000000000 +0000
-@@ -13,25 +13,68 @@
- #include <linux/config.h>
- #include <linux/init.h>
- #include <linux/irq.h>
--
-+#include <linux/mm.h>
-+#include <linux/vmalloc.h>
- #include <linux/hdreg.h>
- #include <linux/ide.h>
-+#include <linux/pm.h>
- #include <asm/io.h>
- #include <asm/hs7751rvoip/hs7751rvoip.h>
-+#include <asm/machvec.h>
-+#include <asm/rtc.h>
-+#include <asm/irq.h>
-
--#include <linux/mm.h>
--#include <linux/vmalloc.h>
-+unsigned int debug_counter;
-+
-+static void __init hs7751rvoip_init_irq(void)
-+{
-+#if defined(CONFIG_HS7751RVOIP_CODEC)
-+ make_ipr_irq(DMTE0_IRQ, DMA_IPR_ADDR, DMA_IPR_POS, DMA_PRIORITY);
-+ make_ipr_irq(DMTE1_IRQ, DMA_IPR_ADDR, DMA_IPR_POS, DMA_PRIORITY);
-+#endif
-
--/* defined in mm/ioremap.c */
--extern void * p3_ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags);
-+ init_hs7751rvoip_IRQ();
-+}
-
--unsigned int debug_counter;
-+struct sh_machine_vector mv_hs7751rvoip __initmv = {
-+ .mv_nr_irqs = 72,
-+
-+ .mv_inb = hs7751rvoip_inb,
-+ .mv_inw = hs7751rvoip_inw,
-+ .mv_inl = hs7751rvoip_inl,
-+ .mv_outb = hs7751rvoip_outb,
-+ .mv_outw = hs7751rvoip_outw,
-+ .mv_outl = hs7751rvoip_outl,
-+
-+ .mv_inb_p = hs7751rvoip_inb_p,
-+ .mv_inw_p = hs7751rvoip_inw,
-+ .mv_inl_p = hs7751rvoip_inl,
-+ .mv_outb_p = hs7751rvoip_outb_p,
-+ .mv_outw_p = hs7751rvoip_outw,
-+ .mv_outl_p = hs7751rvoip_outl,
-+
-+ .mv_insb = hs7751rvoip_insb,
-+ .mv_insw = hs7751rvoip_insw,
-+ .mv_insl = hs7751rvoip_insl,
-+ .mv_outsb = hs7751rvoip_outsb,
-+ .mv_outsw = hs7751rvoip_outsw,
-+ .mv_outsl = hs7751rvoip_outsl,
-+
-+ .mv_init_irq = hs7751rvoip_init_irq,
-+ .mv_ioport_map = hs7751rvoip_ioport_map,
-+};
-+ALIAS_MV(hs7751rvoip)
-
- const char *get_system_type(void)
- {
- return "HS7751RVoIP";
- }
-
-+static void hs7751rvoip_power_off(void)
-+{
-+ ctrl_outw(ctrl_inw(PA_OUTPORTR) & 0xffdf, PA_OUTPORTR);
-+}
-+
- /*
- * Initialize the board
- */
-@@ -39,6 +82,7 @@
- {
- printk(KERN_INFO "Renesas Technology Sales HS7751RVoIP-2 support.\n");
- ctrl_outb(0xf0, PA_OUTPORTR);
-+ pm_power_off = hs7751rvoip_power_off;
- debug_counter = 0;
- }
-
-@@ -47,16 +91,15 @@
- void *area5_io16_base;
- void *area6_io16_base;
-
--int __init cf_init(void)
-+static int __init hs7751rvoip_cf_init(void)
- {
- pgprot_t prot;
-- unsigned long paddrbase, psize;
-+ unsigned long paddrbase;
-
- /* open I/O area window */
- paddrbase = virt_to_phys((void *)(PA_AREA5_IO+0x00000800));
-- psize = PAGE_SIZE;
- prot = PAGE_KERNEL_PCC(1, _PAGE_PCC_COM16);
-- area5_io16_base = p3_ioremap(paddrbase, psize, prot.pgprot);
-+ area5_io16_base = p3_ioremap(paddrbase, PAGE_SIZE, prot.pgprot);
- if (!area5_io16_base) {
- printk("allocate_cf_area : can't open CF I/O window!\n");
- return -ENOMEM;
-@@ -65,19 +108,18 @@
- /* XXX : do we need attribute and common-memory area also? */
-
- paddrbase = virt_to_phys((void *)PA_AREA6_IO);
-- psize = PAGE_SIZE;
- #if defined(CONFIG_HS7751RVOIP_CODEC)
- prot = PAGE_KERNEL_PCC(0, _PAGE_PCC_COM8);
- #else
- prot = PAGE_KERNEL_PCC(0, _PAGE_PCC_IO8);
- #endif
-- area6_io8_base = p3_ioremap(paddrbase, psize, prot.pgprot);
-+ area6_io8_base = p3_ioremap(paddrbase, PAGE_SIZE, prot.pgprot);
- if (!area6_io8_base) {
- printk("allocate_cf_area : can't open CODEC I/O 8bit window!\n");
- return -ENOMEM;
- }
- prot = PAGE_KERNEL_PCC(0, _PAGE_PCC_IO16);
-- area6_io16_base = p3_ioremap(paddrbase, psize, prot.pgprot);
-+ area6_io16_base = p3_ioremap(paddrbase, PAGE_SIZE, prot.pgprot);
- if (!area6_io16_base) {
- printk("allocate_cf_area : can't open CODEC I/O 16bit window!\n");
- return -ENOMEM;
-@@ -86,4 +128,4 @@
- return 0;
- }
-
--__initcall (cf_init);
-+__initcall(hs7751rvoip_cf_init);
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/r7780rp/CVS/Entries linux-2.6.17/arch/sh/boards/renesas/r7780rp/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/r7780rp/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/r7780rp/CVS/Entries 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,7 @@
-+/Makefile/1.1/Sat Jan 7 19:55:56 2006/-ko/
-+/io.c/1.2/Sun Feb 5 21:55:28 2006/-ko/
-+/led.c/1.1/Sat Jan 7 19:55:56 2006/-ko/
-+/Kconfig/1.1/Thu Jul 6 08:19:31 2006/-ko/
-+/irq.c/1.2/Thu Jul 6 12:38:03 2006/-ko/
-+/setup.c/1.3/Thu Jul 6 12:38:03 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/r7780rp/CVS/Repository linux-2.6.17/arch/sh/boards/renesas/r7780rp/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/r7780rp/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/r7780rp/CVS/Repository 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/renesas/r7780rp
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/r7780rp/CVS/Root linux-2.6.17/arch/sh/boards/renesas/r7780rp/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/r7780rp/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/r7780rp/CVS/Root 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/r7780rp/Kconfig linux-2.6.17/arch/sh/boards/renesas/r7780rp/Kconfig
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/r7780rp/Kconfig 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/r7780rp/Kconfig 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,14 @@
-+if SH_R7780RP
-+
-+menu "R7780RP options"
-+
-+config SH_R7780MP
-+ bool "R7780MP board support"
-+ default y
-+ help
-+ Selecting this option will enable support for the mass-production
-+ version of the R7780RP. If in doubt, say Y.
-+
-+endmenu
-+
-+endif
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/r7780rp/Makefile linux-2.6.17/arch/sh/boards/renesas/r7780rp/Makefile
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/r7780rp/Makefile 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/r7780rp/Makefile 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,6 @@
-+#
-+# Makefile for the R7780RP-1 specific parts of the kernel
-+#
-+
-+obj-y := setup.o io.o irq.o
-+obj-$(CONFIG_HEARTBEAT) += led.o
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/r7780rp/io.c linux-2.6.17/arch/sh/boards/renesas/r7780rp/io.c
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/r7780rp/io.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/r7780rp/io.c 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,301 @@
-+/*
-+ * Copyright (C) 2001 Ian da Silva, Jeremy Siegel
-+ * Based largely on io_se.c.
-+ *
-+ * I/O routine for Renesas Solutions Highlander R7780RP-1
-+ *
-+ * Initial version only to support LAN access; some
-+ * placeholder code from io_r7780rp.c left in with the
-+ * expectation of later SuperIO and PCMCIA access.
-+ */
-+#include <linux/pci.h>
-+#include <linux/kernel.h>
-+#include <linux/types.h>
-+#include <asm/r7780rp/r7780rp.h>
-+#include <asm/addrspace.h>
-+#include <asm/io.h>
-+
-+static inline unsigned long port2adr(unsigned int port)
-+{
-+ if ((0x1f0 <= port && port < 0x1f8) || port == 0x3f6)
-+ if (port == 0x3f6)
-+ return (PA_AREA5_IO + 0x80c);
-+ else
-+ return (PA_AREA5_IO + 0x1000 + ((port-0x1f0) << 1));
-+ else
-+ maybebadio((unsigned long)port);
-+
-+ return port;
-+}
-+
-+static inline unsigned long port88796l(unsigned int port, int flag)
-+{
-+ unsigned long addr;
-+
-+ if (flag)
-+ addr = PA_AX88796L + ((port - AX88796L_IO_BASE) << 1);
-+ else
-+ addr = PA_AX88796L + ((port - AX88796L_IO_BASE) << 1) + 0x1000;
-+
-+ return addr;
-+}
-+
-+/* The 7780 R7780RP-1 seems to have everything hooked */
-+/* up pretty normally (nothing on high-bytes only...) so this */
-+/* shouldn't be needed */
-+static inline int shifted_port(unsigned long port)
-+{
-+ /* For IDE registers, value is not shifted */
-+ if ((0x1f0 <= port && port < 0x1f8) || port == 0x3f6)
-+ return 0;
-+ else
-+ return 1;
-+}
-+
-+#if defined(CONFIG_NE2000) || defined(CONFIG_NE2000_MODULE)
-+#define CHECK_AX88796L_PORT(port) \
-+ ((port >= AX88796L_IO_BASE) && (port < (AX88796L_IO_BASE+0x20)))
-+#else
-+#define CHECK_AX88796L_PORT(port) (0)
-+#endif
-+
-+/*
-+ * General outline: remap really low stuff [eventually] to SuperIO,
-+ * stuff in PCI IO space (at or above window at pci.h:PCIBIOS_MIN_IO)
-+ * is mapped through the PCI IO window. Stuff with high bits (PXSEG)
-+ * should be way beyond the window, and is used w/o translation for
-+ * compatibility.
-+ */
-+u8 r7780rp_inb(unsigned long port)
-+{
-+ if (CHECK_AX88796L_PORT(port))
-+ return ctrl_inw(port88796l(port, 0)) & 0xff;
-+ else if (PXSEG(port))
-+ return ctrl_inb(port);
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ return ctrl_inb(pci_ioaddr(port));
-+
-+ return ctrl_inw(port2adr(port)) & 0xff;
-+}
-+
-+u8 r7780rp_inb_p(unsigned long port)
-+{
-+ u8 v;
-+
-+ if (CHECK_AX88796L_PORT(port))
-+ v = ctrl_inw(port88796l(port, 0)) & 0xff;
-+ else if (PXSEG(port))
-+ v = ctrl_inb(port);
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ v = ctrl_inb(pci_ioaddr(port));
-+ else
-+ v = ctrl_inw(port2adr(port)) & 0xff;
-+
-+ ctrl_delay();
-+
-+ return v;
-+}
-+
-+u16 r7780rp_inw(unsigned long port)
-+{
-+ if (CHECK_AX88796L_PORT(port))
-+ maybebadio(port);
-+ else if (PXSEG(port))
-+ return ctrl_inw(port);
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ return ctrl_inw(pci_ioaddr(port));
-+ else
-+ maybebadio(port);
-+
-+ return 0;
-+}
-+
-+u32 r7780rp_inl(unsigned long port)
-+{
-+ if (CHECK_AX88796L_PORT(port))
-+ maybebadio(port);
-+ else if (PXSEG(port))
-+ return ctrl_inl(port);
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ return ctrl_inl(pci_ioaddr(port));
-+ else
-+ maybebadio(port);
-+
-+ return 0;
-+}
-+
-+void r7780rp_outb(u8 value, unsigned long port)
-+{
-+ if (CHECK_AX88796L_PORT(port))
-+ ctrl_outw(value, port88796l(port, 0));
-+ else if (PXSEG(port))
-+ ctrl_outb(value, port);
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ ctrl_outb(value, pci_ioaddr(port));
-+ else
-+ ctrl_outw(value, port2adr(port));
-+}
-+
-+void r7780rp_outb_p(u8 value, unsigned long port)
-+{
-+ if (CHECK_AX88796L_PORT(port))
-+ ctrl_outw(value, port88796l(port, 0));
-+ else if (PXSEG(port))
-+ ctrl_outb(value, port);
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ ctrl_outb(value, pci_ioaddr(port));
-+ else
-+ ctrl_outw(value, port2adr(port));
-+
-+ ctrl_delay();
-+}
-+
-+void r7780rp_outw(u16 value, unsigned long port)
-+{
-+ if (CHECK_AX88796L_PORT(port))
-+ maybebadio(port);
-+ else if (PXSEG(port))
-+ ctrl_outw(value, port);
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ ctrl_outw(value, pci_ioaddr(port));
-+ else
-+ maybebadio(port);
-+}
-+
-+void r7780rp_outl(u32 value, unsigned long port)
-+{
-+ if (CHECK_AX88796L_PORT(port))
-+ maybebadio(port);
-+ else if (PXSEG(port))
-+ ctrl_outl(value, port);
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ ctrl_outl(value, pci_ioaddr(port));
-+ else
-+ maybebadio(port);
-+}
-+
-+void r7780rp_insb(unsigned long port, void *dst, unsigned long count)
-+{
-+ volatile u16 *p;
-+ u8 *buf = dst;
-+
-+ if (CHECK_AX88796L_PORT(port)) {
-+ p = (volatile u16 *)port88796l(port, 0);
-+ while (count--)
-+ *buf++ = *p & 0xff;
-+ } else if (PXSEG(port)) {
-+ while (count--)
-+ *buf++ = *(volatile u8 *)port;
-+ } else if (is_pci_ioaddr(port) || shifted_port(port)) {
-+ volatile u8 *bp = (volatile u8 *)pci_ioaddr(port);
-+
-+ while (count--)
-+ *buf++ = *bp;
-+ } else {
-+ p = (volatile u16 *)port2adr(port);
-+ while (count--)
-+ *buf++ = *p & 0xff;
-+ }
-+}
-+
-+void r7780rp_insw(unsigned long port, void *dst, unsigned long count)
-+{
-+ volatile u16 *p;
-+ u16 *buf = dst;
-+
-+ if (CHECK_AX88796L_PORT(port))
-+ p = (volatile u16 *)port88796l(port, 1);
-+ else if (PXSEG(port))
-+ p = (volatile u16 *)port;
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ p = (volatile u16 *)pci_ioaddr(port);
-+ else
-+ p = (volatile u16 *)port2adr(port);
-+
-+ while (count--)
-+ *buf++ = *p;
-+}
-+
-+void r7780rp_insl(unsigned long port, void *dst, unsigned long count)
-+{
-+ u32 *buf = dst;
-+
-+ if (CHECK_AX88796L_PORT(port))
-+ maybebadio(port);
-+ else if (is_pci_ioaddr(port) || shifted_port(port)) {
-+ volatile u32 *p = (volatile u32 *)pci_ioaddr(port);
-+
-+ while (count--)
-+ *buf++ = *p;
-+ } else
-+ maybebadio(port);
-+}
-+
-+void r7780rp_outsb(unsigned long port, const void *src, unsigned long count)
-+{
-+ volatile u16 *p;
-+ const u8 *buf = src;
-+
-+ if (CHECK_AX88796L_PORT(port)) {
-+ p = (volatile u16 *)port88796l(port, 0);
-+ while (count--)
-+ *p = *buf++;
-+ } else if (PXSEG(port))
-+ while (count--)
-+ ctrl_outb(*buf++, port);
-+ else if (is_pci_ioaddr(port) || shifted_port(port)) {
-+ volatile u8 *bp = (volatile u8 *)pci_ioaddr(port);
-+
-+ while (count--)
-+ *bp = *buf++;
-+ } else {
-+ p = (volatile u16 *)port2adr(port);
-+ while (count--)
-+ *p = *buf++;
-+ }
-+}
-+
-+void r7780rp_outsw(unsigned long port, const void *src, unsigned long count)
-+{
-+ volatile u16 *p;
-+ const u16 *buf = src;
-+
-+ if (CHECK_AX88796L_PORT(port))
-+ p = (volatile u16 *)port88796l(port, 1);
-+ else if (PXSEG(port))
-+ p = (volatile u16 *)port;
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ p = (volatile u16 *)pci_ioaddr(port);
-+ else
-+ p = (volatile u16 *)port2adr(port);
-+
-+ while (count--)
-+ *p = *buf++;
-+}
-+
-+void r7780rp_outsl(unsigned long port, const void *src, unsigned long count)
-+{
-+ const u32 *buf = src;
-+
-+ if (CHECK_AX88796L_PORT(port))
-+ maybebadio(port);
-+ else if (is_pci_ioaddr(port) || shifted_port(port)) {
-+ volatile u32 *p = (volatile u32 *)pci_ioaddr(port);
-+
-+ while (count--)
-+ *p = *buf++;
-+ } else
-+ maybebadio(port);
-+}
-+
-+void __iomem *r7780rp_ioport_map(unsigned long port, unsigned int size)
-+{
-+ if (CHECK_AX88796L_PORT(port))
-+ return (void __iomem *)port88796l(port, size > 1);
-+ else if (PXSEG(port))
-+ return (void __iomem *)port;
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ return (void __iomem *)pci_ioaddr(port);
-+
-+ return (void __iomem *)port2adr(port);
-+}
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/r7780rp/irq.c linux-2.6.17/arch/sh/boards/renesas/r7780rp/irq.c
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/r7780rp/irq.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/r7780rp/irq.c 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,123 @@
-+/*
-+ * linux/arch/sh/boards/renesas/r7780rp/irq.c
-+ *
-+ * Copyright (C) 2000 Kazumoto Kojima
-+ *
-+ * Renesas Solutions Highlander R7780RP-1 Support.
-+ *
-+ * Modified for R7780RP-1 by
-+ * Atom Create Engineering Co., Ltd. 2002.
-+ */
-+
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/irq.h>
-+#include <asm/io.h>
-+#include <asm/irq.h>
-+#include <asm/r7780rp/r7780rp.h>
-+
-+#ifdef CONFIG_SH_R7780MP
-+static int mask_pos[] = {12, 11, 9, 14, 15, 8, 13, 6, 5, 4, 3, 2, 0, 0, 1, 0};
-+#else
-+static int mask_pos[] = {15, 14, 13, 12, 11, 10, 9, 8, 7, 5, 6, 4, 0, 1, 2, 0};
-+#endif
-+
-+static void enable_r7780rp_irq(unsigned int irq);
-+static void disable_r7780rp_irq(unsigned int irq);
-+
-+/* shutdown is same as "disable" */
-+#define shutdown_r7780rp_irq disable_r7780rp_irq
-+
-+static void ack_r7780rp_irq(unsigned int irq);
-+static void end_r7780rp_irq(unsigned int irq);
-+
-+static unsigned int startup_r7780rp_irq(unsigned int irq)
-+{
-+ enable_r7780rp_irq(irq);
-+ return 0; /* never anything pending */
-+}
-+
-+static void disable_r7780rp_irq(unsigned int irq)
-+{
-+ unsigned long flags;
-+ unsigned short val;
-+ unsigned short mask = 0xffff ^ (0x0001 << mask_pos[irq]);
-+
-+ /* Set the priority in IPR to 0 */
-+ local_irq_save(flags);
-+ val = ctrl_inw(IRLCNTR1);
-+ val &= mask;
-+ ctrl_outw(val, IRLCNTR1);
-+ local_irq_restore(flags);
-+}
-+
-+static void enable_r7780rp_irq(unsigned int irq)
-+{
-+ unsigned long flags;
-+ unsigned short val;
-+ unsigned short value = (0x0001 << mask_pos[irq]);
-+
-+ /* Set priority in IPR back to original value */
-+ local_irq_save(flags);
-+ val = ctrl_inw(IRLCNTR1);
-+ val |= value;
-+ ctrl_outw(val, IRLCNTR1);
-+ local_irq_restore(flags);
-+}
-+
-+static void ack_r7780rp_irq(unsigned int irq)
-+{
-+ disable_r7780rp_irq(irq);
-+}
-+
-+static void end_r7780rp_irq(unsigned int irq)
-+{
-+ if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
-+ enable_r7780rp_irq(irq);
-+}
-+
-+static struct hw_interrupt_type r7780rp_irq_type = {
-+ .typename = "R7780RP-IRQ",
-+ .startup = startup_r7780rp_irq,
-+ .shutdown = shutdown_r7780rp_irq,
-+ .enable = enable_r7780rp_irq,
-+ .disable = disable_r7780rp_irq,
-+ .ack = ack_r7780rp_irq,
-+ .end = end_r7780rp_irq,
-+};
-+
-+static void make_r7780rp_irq(unsigned int irq)
-+{
-+ disable_irq_nosync(irq);
-+ irq_desc[irq].handler = &r7780rp_irq_type;
-+ disable_r7780rp_irq(irq);
-+}
-+
-+/*
-+ * Initialize IRQ setting
-+ */
-+void __init init_r7780rp_IRQ(void)
-+{
-+ int i;
-+
-+ /* IRL0=PCI Slot #A
-+ * IRL1=PCI Slot #B
-+ * IRL2=PCI Slot #C
-+ * IRL3=PCI Slot #D
-+ * IRL4=CF Card
-+ * IRL5=CF Card Insert
-+ * IRL6=M66596
-+ * IRL7=SD Card
-+ * IRL8=Touch Panel
-+ * IRL9=SCI
-+ * IRL10=Serial
-+ * IRL11=Extention #A
-+ * IRL11=Extention #B
-+ * IRL12=Debug LAN
-+ * IRL13=Push Switch
-+ * IRL14=ZiggBee IO
-+ */
-+
-+ for (i=0; i<15; i++)
-+ make_r7780rp_irq(i);
-+}
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/r7780rp/led.c linux-2.6.17/arch/sh/boards/renesas/r7780rp/led.c
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/r7780rp/led.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/r7780rp/led.c 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,45 @@
-+/*
-+ * Copyright (C) Atom Create Engineering Co., Ltd.
-+ *
-+ * May be copied or modified under the terms of GNU General Public
-+ * License. See linux/COPYING for more information.
-+ *
-+ * This file contains Renesas Solutions HIGHLANDER R7780RP-1 specific LED code.
-+ */
-+
-+#include <linux/config.h>
-+#include <linux/sched.h>
-+#include <asm/io.h>
-+#include <asm/r7780rp/r7780rp.h>
-+
-+/* Cycle the LED's in the clasic Knightriger/Sun pattern */
-+void heartbeat_r7780rp(void)
-+{
-+ static unsigned int cnt = 0, period = 0;
-+ volatile unsigned short *p = (volatile unsigned short *)PA_OBLED;
-+ static unsigned bit = 0, up = 1;
-+ unsigned bit_pos[] = {2, 1, 0, 3, 6, 5, 4, 7};
-+
-+ cnt += 1;
-+ if (cnt < period)
-+ return;
-+
-+ cnt = 0;
-+
-+ /* Go through the points (roughly!):
-+ * f(0)=10, f(1)=16, f(2)=20, f(5)=35, f(int)->110
-+ */
-+ period = 110 - ((300 << FSHIFT)/((avenrun[0]/5) + (3<<FSHIFT)));
-+
-+ *p = 1 << bit_pos[bit];
-+ if (up)
-+ if (bit == 7) {
-+ bit--;
-+ up = 0;
-+ } else
-+ bit++;
-+ else if (bit == 0)
-+ up = 1;
-+ else
-+ bit--;
-+}
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/r7780rp/setup.c linux-2.6.17/arch/sh/boards/renesas/r7780rp/setup.c
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/r7780rp/setup.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/r7780rp/setup.c 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,164 @@
-+/*
-+ * arch/sh/boards/renesas/r7780rp/setup.c
-+ *
-+ * Copyright (C) 2002 Atom Create Engineering Co., Ltd.
-+ * Copyright (C) 2005, 2006 Paul Mundt
-+ *
-+ * Renesas Solutions Highlander R7780RP-1 Support.
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ */
-+#include <linux/init.h>
-+#include <linux/platform_device.h>
-+#include <asm/machvec.h>
-+#include <asm/r7780rp/r7780rp.h>
-+#include <asm/clock.h>
-+#include <asm/io.h>
-+
-+extern void heartbeat_r7780rp(void);
-+extern void init_r7780rp_IRQ(void);
-+
-+/*
-+ * The Machine Vector
-+ */
-+struct sh_machine_vector mv_r7780rp __initmv = {
-+ .mv_nr_irqs = 109,
-+
-+ .mv_inb = r7780rp_inb,
-+ .mv_inw = r7780rp_inw,
-+ .mv_inl = r7780rp_inl,
-+ .mv_outb = r7780rp_outb,
-+ .mv_outw = r7780rp_outw,
-+ .mv_outl = r7780rp_outl,
-+
-+ .mv_inb_p = r7780rp_inb_p,
-+ .mv_inw_p = r7780rp_inw,
-+ .mv_inl_p = r7780rp_inl,
-+ .mv_outb_p = r7780rp_outb_p,
-+ .mv_outw_p = r7780rp_outw,
-+ .mv_outl_p = r7780rp_outl,
-+
-+ .mv_insb = r7780rp_insb,
-+ .mv_insw = r7780rp_insw,
-+ .mv_insl = r7780rp_insl,
-+ .mv_outsb = r7780rp_outsb,
-+ .mv_outsw = r7780rp_outsw,
-+ .mv_outsl = r7780rp_outsl,
-+
-+ .mv_ioport_map = r7780rp_ioport_map,
-+ .mv_init_irq = init_r7780rp_IRQ,
-+#ifdef CONFIG_HEARTBEAT
-+ .mv_heartbeat = heartbeat_r7780rp,
-+#endif
-+};
-+ALIAS_MV(r7780rp)
-+
-+static struct resource m66596_usb_host_resources[] = {
-+ [0] = {
-+ .start = 0xa4800000,
-+ .end = 0xa4ffffff,
-+ .flags = IORESOURCE_MEM,
-+ },
-+ [1] = {
-+ .start = 6, /* irq number */
-+ .end = 6,
-+ .flags = IORESOURCE_IRQ,
-+ },
-+};
-+
-+static struct platform_device m66596_usb_host_device = {
-+ .name = "m66596-hcd",
-+ .id = 0,
-+ .dev = {
-+ .dma_mask = NULL, /* don't use dma */
-+ .coherent_dma_mask = 0xffffffff,
-+ },
-+ .num_resources = ARRAY_SIZE(m66596_usb_host_resources),
-+ .resource = m66596_usb_host_resources,
-+};
-+
-+static struct platform_device *r7780rp_devices[] __initdata = {
-+ &m66596_usb_host_device,
-+};
-+
-+static int __init r7780rp_devices_setup(void)
-+{
-+ return platform_add_devices(r7780rp_devices,
-+ ARRAY_SIZE(r7780rp_devices));
-+}
-+__initcall(r7780rp_devices_setup);
-+
-+/*
-+ * Platform specific clocks
-+ */
-+static void ivdr_clk_enable(struct clk *clk)
-+{
-+ ctrl_outw(ctrl_inw(PA_IVDRCTL) | (1 << 8), PA_IVDRCTL);
-+}
-+
-+static void ivdr_clk_disable(struct clk *clk)
-+{
-+ ctrl_outw(ctrl_inw(PA_IVDRCTL) & ~(1 << 8), PA_IVDRCTL);
-+}
-+
-+static struct clk_ops ivdr_clk_ops = {
-+ .enable = ivdr_clk_enable,
-+ .disable = ivdr_clk_disable,
-+};
-+
-+static struct clk ivdr_clk = {
-+ .name = "ivdr_clk",
-+ .ops = &ivdr_clk_ops,
-+};
-+
-+static struct clk *r7780rp_clocks[] = {
-+ &ivdr_clk,
-+};
-+
-+const char *get_system_type(void)
-+{
-+ return "Highlander R7780RP-1";
-+}
-+
-+static void r7780rp_power_off(void)
-+{
-+#ifdef CONFIG_SH_R7780MP
-+ ctrl_outw(0x0001, PA_POFF);
-+#endif
-+}
-+
-+/*
-+ * Initialize the board
-+ */
-+void __init platform_setup(void)
-+{
-+ u16 ver = ctrl_inw(PA_VERREG);
-+ int i;
-+
-+ printk(KERN_INFO "Renesas Solutions Highlander R7780RP-1 support.\n");
-+
-+ printk(KERN_INFO "Board version: %d (revision %d), "
-+ "FPGA version: %d (revision %d)\n",
-+ (ver >> 12) & 0xf, (ver >> 8) & 0xf,
-+ (ver >> 4) & 0xf, ver & 0xf);
-+
-+ /*
-+ * Enable the important clocks right away..
-+ */
-+ for (i = 0; i < ARRAY_SIZE(r7780rp_clocks); i++) {
-+ struct clk *clk = r7780rp_clocks[i];
-+
-+ clk_register(clk);
-+ clk_enable(clk);
-+ }
-+
-+ ctrl_outw(0x0000, PA_OBLED); /* Clear LED. */
-+#ifndef CONFIG_SH_R7780MP
-+ ctrl_outw(0x0001, PA_SDPOW); /* SD Power ON */
-+#endif
-+ ctrl_outw(ctrl_inw(PA_IVDRCTL) | 0x0100, PA_IVDRCTL); /* Si13112 */
-+
-+ pm_power_off = r7780rp_power_off;
-+}
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/rts7751r2d/CVS/Entries linux-2.6.17/arch/sh/boards/renesas/rts7751r2d/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/rts7751r2d/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/rts7751r2d/CVS/Entries 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,8 @@
-+/Kconfig/1.1/Fri Jun 24 11:21:00 2005/-ko/
-+/Makefile/1.2/Sun Oct 16 16:31:08 2005/-ko/
-+/io.c/1.6/Sun Feb 5 21:55:28 2006/-ko/
-+/irq.c/1.3/Fri Oct 28 13:12:48 2005/-ko/
-+/mach.c/1.6/Tue Jan 3 22:51:46 2006/-ko/
-+/led.c/1.3/Sat Jul 8 20:16:04 2006/-ko/
-+/setup.c/1.5/Sat Jul 8 20:16:04 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/rts7751r2d/CVS/Repository linux-2.6.17/arch/sh/boards/renesas/rts7751r2d/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/rts7751r2d/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/rts7751r2d/CVS/Repository 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/renesas/rts7751r2d
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/rts7751r2d/CVS/Root linux-2.6.17/arch/sh/boards/renesas/rts7751r2d/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/rts7751r2d/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/rts7751r2d/CVS/Root 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/rts7751r2d/Kconfig linux-2.6.17/arch/sh/boards/renesas/rts7751r2d/Kconfig
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/rts7751r2d/Kconfig 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/rts7751r2d/Kconfig 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,12 @@
-+if SH_RTS7751R2D
-+
-+menu "RTS7751R2D options"
-+
-+config RTS7751R2D_REV11
-+ bool "RTS7751R2D Rev. 1.1 board support"
-+ help
-+ Selecting this option will support version rev. 1.1.
-+endmenu
-+
-+endif
-+
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/rts7751r2d/Makefile linux-2.6.17/arch/sh/boards/renesas/rts7751r2d/Makefile
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/rts7751r2d/Makefile 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/rts7751r2d/Makefile 2006-07-12 16:54:20.000000000 +0000
-@@ -1,10 +1,6 @@
- #
- # Makefile for the RTS7751R2D specific parts of the kernel
- #
--# Note! Dependencies are done automagically by 'make dep', which also
--# removes any old dependencies. DON'T put your own dependencies here
--# unless it's something special (ie not a .c file).
--#
-
- obj-y := mach.o setup.o io.o irq.o led.o
-
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/rts7751r2d/io.c linux-2.6.17/arch/sh/boards/renesas/rts7751r2d/io.c
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/rts7751r2d/io.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/rts7751r2d/io.c 2006-07-12 16:54:20.000000000 +0000
-@@ -1,6 +1,4 @@
- /*
-- * linux/arch/sh/kernel/io_rts7751r2d.c
-- *
- * Copyright (C) 2001 Ian da Silva, Jeremy Siegel
- * Based largely on io_se.c.
- *
-@@ -10,17 +8,13 @@
- * placeholder code from io_rts7751r2d.c left in with the
- * expectation of later SuperIO and PCMCIA access.
- */
--
- #include <linux/kernel.h>
- #include <linux/types.h>
--#include <asm/io.h>
-+#include <linux/pci.h>
- #include <asm/rts7751r2d/rts7751r2d.h>
-+#include <asm/io.h>
- #include <asm/addrspace.h>
-
--#include <linux/module.h>
--#include <linux/pci.h>
--#include "../../../drivers/pci/pci-sh7751.h"
--
- /*
- * The 7751R RTS7751R2D uses the built-in PCI controller (PCIC)
- * of the 7751R processor, and has a SuperIO accessible via the PCI.
-@@ -28,22 +22,6 @@
- * like the other Solution Engine boards.
- */
-
--#define PCIIOBR (volatile long *)PCI_REG(SH7751_PCIIOBR)
--#define PCIMBR (volatile long *)PCI_REG(SH7751_PCIMBR)
--#define PCI_IO_AREA SH7751_PCI_IO_BASE
--#define PCI_MEM_AREA SH7751_PCI_CONFIG_BASE
--
--#define PCI_IOMAP(adr) (PCI_IO_AREA + (adr & ~SH7751_PCIIOBR_MASK))
--
--#define maybebadio(name,port) \
-- printk("bad PC-like io %s for port 0x%lx at 0x%08x\n", \
-- #name, (port), (__u32) __builtin_return_address(0))
--
--static inline void delay(void)
--{
-- ctrl_inw(0xa0000000);
--}
--
- static inline unsigned long port2adr(unsigned int port)
- {
- if ((0x1f0 <= port && port < 0x1f8) || port == 0x3f6)
-@@ -52,7 +30,7 @@
- else
- return (PA_AREA5_IO + 0x1000 + ((port-0x1f0) << 1));
- else
-- maybebadio(port2adr, (unsigned long)port);
-+ maybebadio((unsigned long)port);
-
- return port;
- }
-@@ -81,17 +59,6 @@
- return 1;
- }
-
--/* In case someone configures the kernel w/o PCI support: in that */
--/* scenario, don't ever bother to check for PCI-window addresses */
--
--/* NOTE: WINDOW CHECK MAY BE A BIT OFF, HIGH PCIBIOS_MIN_IO WRAPS? */
--#if defined(CONFIG_PCI)
--#define CHECK_SH7751_PCIIO(port) \
-- ((port >= PCIBIOS_MIN_IO) && (port < (PCIBIOS_MIN_IO + SH7751_PCI_IO_SIZE)))
--#else
--#define CHECK_SH7751_PCIIO(port) (0)
--#endif
--
- #if defined(CONFIG_NE2000) || defined(CONFIG_NE2000_MODULE)
- #define CHECK_AX88796L_PORT(port) \
- ((port >= AX88796L_IO_BASE) && (port < (AX88796L_IO_BASE+0x20)))
-@@ -112,8 +79,8 @@
- return (*(volatile unsigned short *)port88796l(port, 0)) & 0xff;
- else if (PXSEG(port))
- return *(volatile unsigned char *)port;
-- else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))
-- return *(volatile unsigned char *)PCI_IOMAP(port);
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ return *(volatile unsigned char *)pci_ioaddr(port);
- else
- return (*(volatile unsigned short *)port2adr(port) & 0xff);
- }
-@@ -126,11 +93,12 @@
- v = (*(volatile unsigned short *)port88796l(port, 0)) & 0xff;
- else if (PXSEG(port))
- v = *(volatile unsigned char *)port;
-- else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))
-- v = *(volatile unsigned char *)PCI_IOMAP(port);
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ v = *(volatile unsigned char *)pci_ioaddr(port);
- else
- v = (*(volatile unsigned short *)port2adr(port) & 0xff);
-- delay();
-+
-+ ctrl_delay();
-
- return v;
- }
-@@ -138,13 +106,13 @@
- unsigned short rts7751r2d_inw(unsigned long port)
- {
- if (CHECK_AX88796L_PORT(port))
-- maybebadio(inw, port);
-+ maybebadio(port);
- else if (PXSEG(port))
- return *(volatile unsigned short *)port;
-- else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))
-- return *(volatile unsigned short *)PCI_IOMAP(port);
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ return *(volatile unsigned short *)pci_ioaddr(port);
- else
-- maybebadio(inw, port);
-+ maybebadio(port);
-
- return 0;
- }
-@@ -152,13 +120,13 @@
- unsigned int rts7751r2d_inl(unsigned long port)
- {
- if (CHECK_AX88796L_PORT(port))
-- maybebadio(inl, port);
-+ maybebadio(port);
- else if (PXSEG(port))
- return *(volatile unsigned long *)port;
-- else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))
-- return *(volatile unsigned long *)PCI_IOMAP(port);
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ return *(volatile unsigned long *)pci_ioaddr(port);
- else
-- maybebadio(inl, port);
-+ maybebadio(port);
-
- return 0;
- }
-@@ -169,8 +137,8 @@
- *((volatile unsigned short *)port88796l(port, 0)) = value;
- else if (PXSEG(port))
- *(volatile unsigned char *)port = value;
-- else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))
-- *(volatile unsigned char *)PCI_IOMAP(port) = value;
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ *(volatile unsigned char *)pci_ioaddr(port) = value;
- else
- *(volatile unsigned short *)port2adr(port) = value;
- }
-@@ -181,143 +149,152 @@
- *((volatile unsigned short *)port88796l(port, 0)) = value;
- else if (PXSEG(port))
- *(volatile unsigned char *)port = value;
-- else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))
-- *(volatile unsigned char *)PCI_IOMAP(port) = value;
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ *(volatile unsigned char *)pci_ioaddr(port) = value;
- else
- *(volatile unsigned short *)port2adr(port) = value;
-- delay();
-+
-+ ctrl_delay();
- }
-
- void rts7751r2d_outw(unsigned short value, unsigned long port)
- {
- if (CHECK_AX88796L_PORT(port))
-- maybebadio(outw, port);
-+ maybebadio(port);
- else if (PXSEG(port))
- *(volatile unsigned short *)port = value;
-- else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))
-- *(volatile unsigned short *)PCI_IOMAP(port) = value;
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ *(volatile unsigned short *)pci_ioaddr(port) = value;
- else
-- maybebadio(outw, port);
-+ maybebadio(port);
- }
-
- void rts7751r2d_outl(unsigned int value, unsigned long port)
- {
- if (CHECK_AX88796L_PORT(port))
-- maybebadio(outl, port);
-+ maybebadio(port);
- else if (PXSEG(port))
- *(volatile unsigned long *)port = value;
-- else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))
-- *(volatile unsigned long *)PCI_IOMAP(port) = value;
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ *(volatile unsigned long *)pci_ioaddr(port) = value;
- else
-- maybebadio(outl, port);
-+ maybebadio(port);
- }
-
- void rts7751r2d_insb(unsigned long port, void *addr, unsigned long count)
- {
-+ unsigned long a = (unsigned long)addr;
- volatile __u8 *bp;
- volatile __u16 *p;
-- unsigned char *s = addr;
-
- if (CHECK_AX88796L_PORT(port)) {
- p = (volatile unsigned short *)port88796l(port, 0);
-- while (count--) *s++ = *p & 0xff;
-+ while (count--)
-+ ctrl_outb(*p & 0xff, a++);
- } else if (PXSEG(port))
-- while (count--) *s++ = *(volatile unsigned char *)port;
-- else if (CHECK_SH7751_PCIIO(port) || shifted_port(port)) {
-- bp = (__u8 *)PCI_IOMAP(port);
-- while (count--) *s++ = *bp;
-+ while (count--)
-+ ctrl_outb(ctrl_inb(port), a++);
-+ else if (is_pci_ioaddr(port) || shifted_port(port)) {
-+ bp = (__u8 *)pci_ioaddr(port);
-+ while (count--)
-+ ctrl_outb(*bp, a++);
- } else {
- p = (volatile unsigned short *)port2adr(port);
-- while (count--) *s++ = *p & 0xff;
-+ while (count--)
-+ ctrl_outb(*p & 0xff, a++);
- }
- }
-
- void rts7751r2d_insw(unsigned long port, void *addr, unsigned long count)
- {
-+ unsigned long a = (unsigned long)addr;
- volatile __u16 *p;
-- __u16 *s = addr;
-
- if (CHECK_AX88796L_PORT(port))
- p = (volatile unsigned short *)port88796l(port, 1);
- else if (PXSEG(port))
- p = (volatile unsigned short *)port;
-- else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))
-- p = (volatile unsigned short *)PCI_IOMAP(port);
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ p = (volatile unsigned short *)pci_ioaddr(port);
- else
- p = (volatile unsigned short *)port2adr(port);
-- while (count--) *s++ = *p;
-+ while (count--)
-+ ctrl_outw(*p, a++);
- }
-
- void rts7751r2d_insl(unsigned long port, void *addr, unsigned long count)
- {
- if (CHECK_AX88796L_PORT(port))
-- maybebadio(insl, port);
-- else if (CHECK_SH7751_PCIIO(port) || shifted_port(port)) {
-- volatile __u32 *p = (__u32 *)PCI_IOMAP(port);
-- __u32 *s = addr;
--
-- while (count--) *s++ = *p;
-+ maybebadio(port);
-+ else if (is_pci_ioaddr(port) || shifted_port(port)) {
-+ unsigned long a = (unsigned long)addr;
-+
-+ while (count--) {
-+ ctrl_outl(ctrl_inl(pci_ioaddr(port)), a);
-+ a += 4;
-+ }
- } else
-- maybebadio(insl, port);
-+ maybebadio(port);
- }
-
- void rts7751r2d_outsb(unsigned long port, const void *addr, unsigned long count)
- {
-+ unsigned long a = (unsigned long)addr;
- volatile __u8 *bp;
- volatile __u16 *p;
-- const __u8 *s = addr;
-
- if (CHECK_AX88796L_PORT(port)) {
- p = (volatile unsigned short *)port88796l(port, 0);
-- while (count--) *p = *s++;
-+ while (count--)
-+ *p = ctrl_inb(a++);
- } else if (PXSEG(port))
-- while (count--) *(volatile unsigned char *)port = *s++;
-- else if (CHECK_SH7751_PCIIO(port) || shifted_port(port)) {
-- bp = (__u8 *)PCI_IOMAP(port);
-- while (count--) *bp = *s++;
-+ while (count--)
-+ ctrl_outb(a++, port);
-+ else if (is_pci_ioaddr(port) || shifted_port(port)) {
-+ bp = (__u8 *)pci_ioaddr(port);
-+ while (count--)
-+ *bp = ctrl_inb(a++);
- } else {
- p = (volatile unsigned short *)port2adr(port);
-- while (count--) *p = *s++;
-+ while (count--)
-+ *p = ctrl_inb(a++);
- }
- }
-
- void rts7751r2d_outsw(unsigned long port, const void *addr, unsigned long count)
- {
-+ unsigned long a = (unsigned long)addr;
- volatile __u16 *p;
-- const __u16 *s = addr;
-
- if (CHECK_AX88796L_PORT(port))
- p = (volatile unsigned short *)port88796l(port, 1);
- else if (PXSEG(port))
- p = (volatile unsigned short *)port;
-- else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))
-- p = (volatile unsigned short *)PCI_IOMAP(port);
-+ else if (is_pci_ioaddr(port) || shifted_port(port))
-+ p = (volatile unsigned short *)pci_ioaddr(port);
- else
- p = (volatile unsigned short *)port2adr(port);
-- while (count--) *p = *s++;
-+
-+ while (count--) {
-+ ctrl_outw(*p, a);
-+ a += 2;
-+ }
- }
-
- void rts7751r2d_outsl(unsigned long port, const void *addr, unsigned long count)
- {
- if (CHECK_AX88796L_PORT(port))
-- maybebadio(outsl, port);
-- else if (CHECK_SH7751_PCIIO(port) || shifted_port(port)) {
-- volatile __u32 *p = (__u32 *)PCI_IOMAP(port);
-- const __u32 *s = addr;
--
-- while (count--) *p = *s++;
-+ maybebadio(port);
-+ else if (is_pci_ioaddr(port) || shifted_port(port)) {
-+ unsigned long a = (unsigned long)addr;
-+
-+ while (count--) {
-+ ctrl_outl(ctrl_inl(a), pci_ioaddr(port));
-+ a += 4;
-+ }
- } else
-- maybebadio(outsl, port);
--}
--
--void *rts7751r2d_ioremap(unsigned long offset, unsigned long size)
--{
-- if (offset >= 0xfd000000)
-- return (void *)offset;
-- else
-- return (void *)P2SEGADDR(offset);
-+ maybebadio(port);
- }
--EXPORT_SYMBOL(rts7751r2d_ioremap);
-
- unsigned long rts7751r2d_isa_port2addr(unsigned long offset)
- {
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/rts7751r2d/led.c linux-2.6.17/arch/sh/boards/renesas/rts7751r2d/led.c
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/rts7751r2d/led.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/rts7751r2d/led.c 2006-07-12 16:54:20.000000000 +0000
-@@ -13,8 +13,6 @@
- #include <asm/io.h>
- #include <asm/rts7751r2d/rts7751r2d.h>
-
--extern unsigned int debug_counter;
--
- #ifdef CONFIG_HEARTBEAT
-
- #include <linux/sched.h>
-@@ -56,12 +54,3 @@
- ctrl_outw(value, PA_OUTPORT);
- }
-
--void debug_led_disp(void)
--{
-- unsigned short value;
--
-- value = (unsigned short)debug_counter++;
-- rts7751r2d_led(value);
-- if (value == 0xff)
-- debug_counter = 0;
--}
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/rts7751r2d/mach.c linux-2.6.17/arch/sh/boards/renesas/rts7751r2d/mach.c
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/rts7751r2d/mach.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/rts7751r2d/mach.c 2006-07-12 16:54:20.000000000 +0000
-@@ -16,15 +16,16 @@
- #include <asm/machvec.h>
- #include <asm/rtc.h>
- #include <asm/irq.h>
--#include <asm/rts7751r2d/io.h>
-+#include <asm/mach/rts7751r2d.h>
-
- extern void heartbeat_rts7751r2d(void);
- extern void init_rts7751r2d_IRQ(void);
--extern void *rts7751r2d_ioremap(unsigned long, unsigned long);
- extern int rts7751r2d_irq_demux(int irq);
-
-+#ifdef CONFIG_USB_SM501
- extern void *voyagergx_consistent_alloc(struct device *, size_t, dma_addr_t *, gfp_t);
- extern int voyagergx_consistent_free(struct device *, size_t, void *, dma_addr_t);
-+#endif
-
- /*
- * The Machine Vector
-@@ -54,15 +55,13 @@
- .mv_outsw = rts7751r2d_outsw,
- .mv_outsl = rts7751r2d_outsl,
-
-- .mv_ioremap = rts7751r2d_ioremap,
-- .mv_isa_port2addr = rts7751r2d_isa_port2addr,
- .mv_init_irq = init_rts7751r2d_IRQ,
- #ifdef CONFIG_HEARTBEAT
- .mv_heartbeat = heartbeat_rts7751r2d,
- #endif
- .mv_irq_demux = rts7751r2d_irq_demux,
-
--#ifdef CONFIG_USB_OHCI_HCD
-+#ifdef CONFIG_USB_SM501
- .mv_consistent_alloc = voyagergx_consistent_alloc,
- .mv_consistent_free = voyagergx_consistent_free,
- #endif
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/rts7751r2d/setup.c linux-2.6.17/arch/sh/boards/renesas/rts7751r2d/setup.c
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/rts7751r2d/setup.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/rts7751r2d/setup.c 2006-07-12 16:54:20.000000000 +0000
-@@ -1,25 +1,87 @@
- /*
-- * linux/arch/sh/kernel/setup_rts7751r2d.c
-- *
-- * Copyright (C) 2000 Kazumoto Kojima
-- *
- * Renesas Technology Sales RTS7751R2D Support.
- *
-- * Modified for RTS7751R2D by
-- * Atom Create Engineering Co., Ltd. 2002.
-+ * Copyright (C) 2002 Atom Create Engineering Co., Ltd.
-+ * Copyright (C) 2004 - 2006 Paul Mundt
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
- */
--
- #include <linux/init.h>
-+#include <linux/platform_device.h>
-+#include <linux/serial_8250.h>
-+#include <linux/pm.h>
- #include <asm/io.h>
--#include <asm/rts7751r2d/rts7751r2d.h>
-+#include <asm/mach/rts7751r2d.h>
-+#include <asm/mach/voyagergx_reg.h>
-+
-+static struct plat_serial8250_port uart_platform_data[] = {
-+ {
-+ .membase = (void *)VOYAGER_UART_BASE,
-+ .mapbase = VOYAGER_UART_BASE,
-+ .iotype = UPIO_MEM,
-+ .irq = VOYAGER_UART0_IRQ,
-+ .flags = UPF_BOOT_AUTOCONF,
-+ .regshift = 2,
-+ .uartclk = (9600 * 16),
-+ }, {
-+ .flags = 0,
-+ },
-+};
-
--unsigned int debug_counter;
-+static void __init voyagergx_serial_init(void)
-+{
-+ unsigned long val;
-+
-+ /*
-+ * GPIO Control
-+ */
-+ val = inl(GPIO_MUX_HIGH);
-+ val |= 0x00001fe0;
-+ outl(val, GPIO_MUX_HIGH);
-+
-+ /*
-+ * Power Mode Gate
-+ */
-+ val = inl(POWER_MODE0_GATE);
-+ val |= (POWER_MODE0_GATE_U0 | POWER_MODE0_GATE_U1);
-+ outl(val, POWER_MODE0_GATE);
-+
-+ val = inl(POWER_MODE1_GATE);
-+ val |= (POWER_MODE1_GATE_U0 | POWER_MODE1_GATE_U1);
-+ outl(val, POWER_MODE1_GATE);
-+}
-+
-+static struct platform_device uart_device = {
-+ .name = "serial8250",
-+ .id = -1,
-+ .dev = {
-+ .platform_data = uart_platform_data,
-+ },
-+};
-+
-+static struct platform_device *rts7751r2d_devices[] __initdata = {
-+ &uart_device,
-+};
-+
-+static int __init rts7751r2d_devices_setup(void)
-+{
-+ return platform_add_devices(rts7751r2d_devices,
-+ ARRAY_SIZE(rts7751r2d_devices));
-+}
-+__initcall(rts7751r2d_devices_setup);
-
- const char *get_system_type(void)
- {
- return "RTS7751R2D";
- }
-
-+static void rts7751r2d_power_off(void)
-+{
-+ ctrl_outw(0x0001, PA_POWOFF);
-+}
-+
- /*
- * Initialize the board
- */
-@@ -27,5 +89,7 @@
- {
- printk(KERN_INFO "Renesas Technology Sales RTS7751R2D support.\n");
- ctrl_outw(0x0000, PA_OUTPORT);
-- debug_counter = 0;
-+ pm_power_off = rts7751r2d_power_off;
-+
-+ voyagergx_serial_init();
- }
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/systemh/CVS/Entries linux-2.6.17/arch/sh/boards/renesas/systemh/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/systemh/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/systemh/CVS/Entries 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,5 @@
-+/Makefile/1.1/Tue Jun 15 18:32:21 2004/-ko/
-+/io.c/1.5/Sun Feb 5 21:55:29 2006/-ko/
-+/irq.c/1.4/Wed Jan 4 18:52:50 2006/-ko/
-+/setup.c/1.3/Wed Jan 4 18:52:50 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/systemh/CVS/Repository linux-2.6.17/arch/sh/boards/renesas/systemh/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/systemh/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/systemh/CVS/Repository 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/renesas/systemh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/systemh/CVS/Root linux-2.6.17/arch/sh/boards/renesas/systemh/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/systemh/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/systemh/CVS/Root 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/systemh/io.c linux-2.6.17/arch/sh/boards/renesas/systemh/io.c
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/systemh/io.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/systemh/io.c 2006-07-12 16:54:20.000000000 +0000
-@@ -5,66 +5,25 @@
- * Based largely on io_se.c.
- *
- * I/O routine for Hitachi 7751 Systemh.
-- *
- */
--
- #include <linux/kernel.h>
- #include <linux/types.h>
--#include <asm/systemh/7751systemh.h>
-+#include <linux/pci.h>
-+#include <asm/systemh7751.h>
- #include <asm/addrspace.h>
- #include <asm/io.h>
-
--#include <linux/pci.h>
--#include "../../drivers/pci/pci-sh7751.h"
--
--/*
-- * The 7751 SystemH Engine uses the built-in PCI controller (PCIC)
-- * of the 7751 processor, and has a SuperIO accessible on its memory
-- * bus.
-- */
--
--#define PCIIOBR (volatile long *)PCI_REG(SH7751_PCIIOBR)
--#define PCIMBR (volatile long *)PCI_REG(SH7751_PCIMBR)
--#define PCI_IO_AREA SH7751_PCI_IO_BASE
--#define PCI_MEM_AREA SH7751_PCI_CONFIG_BASE
--
--#define PCI_IOMAP(adr) (PCI_IO_AREA + (adr & ~SH7751_PCIIOBR_MASK))
- #define ETHER_IOMAP(adr) (0xB3000000 + (adr)) /*map to 16bits access area
- of smc lan chip*/
--
--#define maybebadio(name,port) \
-- printk("bad PC-like io %s for port 0x%lx at 0x%08x\n", \
-- #name, (port), (__u32) __builtin_return_address(0))
--
--static inline void delay(void)
--{
-- ctrl_inw(0xa0000000);
--}
--
- static inline volatile __u16 *
- port2adr(unsigned int port)
- {
- if (port >= 0x2000)
- return (volatile __u16 *) (PA_MRSHPC + (port - 0x2000));
--#if 0
-- else
-- return (volatile __u16 *) (PA_SUPERIO + (port << 1));
--#endif
-- maybebadio(name,(unsigned long)port);
-+ maybebadio((unsigned long)port);
- return (volatile __u16*)port;
- }
-
--/* In case someone configures the kernel w/o PCI support: in that */
--/* scenario, don't ever bother to check for PCI-window addresses */
--
--/* NOTE: WINDOW CHECK MAY BE A BIT OFF, HIGH PCIBIOS_MIN_IO WRAPS? */
--#if defined(CONFIG_PCI)
--#define CHECK_SH7751_PCIIO(port) \
-- ((port >= PCIBIOS_MIN_IO) && (port < (PCIBIOS_MIN_IO + SH7751_PCI_IO_SIZE)))
--#else
--#define CHECK_SH7751_PCIIO(port) (0)
--#endif
--
- /*
- * General outline: remap really low stuff [eventually] to SuperIO,
- * stuff in PCI IO space (at or above window at pci.h:PCIBIOS_MIN_IO)
-@@ -76,8 +35,8 @@
- {
- if (PXSEG(port))
- return *(volatile unsigned char *)port;
-- else if (CHECK_SH7751_PCIIO(port))
-- return *(volatile unsigned char *)PCI_IOMAP(port);
-+ else if (is_pci_ioaddr(port))
-+ return *(volatile unsigned char *)pci_ioaddr(port);
- else if (port <= 0x3F1)
- return *(volatile unsigned char *)ETHER_IOMAP(port);
- else
-@@ -90,13 +49,13 @@
-
- if (PXSEG(port))
- v = *(volatile unsigned char *)port;
-- else if (CHECK_SH7751_PCIIO(port))
-- v = *(volatile unsigned char *)PCI_IOMAP(port);
-+ else if (is_pci_ioaddr(port))
-+ v = *(volatile unsigned char *)pci_ioaddr(port);
- else if (port <= 0x3F1)
- v = *(volatile unsigned char *)ETHER_IOMAP(port);
- else
- v = (*port2adr(port))&0xff;
-- delay();
-+ ctrl_delay();
- return v;
- }
-
-@@ -104,14 +63,14 @@
- {
- if (PXSEG(port))
- return *(volatile unsigned short *)port;
-- else if (CHECK_SH7751_PCIIO(port))
-- return *(volatile unsigned short *)PCI_IOMAP(port);
-+ else if (is_pci_ioaddr(port))
-+ return *(volatile unsigned short *)pci_ioaddr(port);
- else if (port >= 0x2000)
- return *port2adr(port);
- else if (port <= 0x3F1)
- return *(volatile unsigned int *)ETHER_IOMAP(port);
- else
-- maybebadio(inw, port);
-+ maybebadio(port);
- return 0;
- }
-
-@@ -119,14 +78,14 @@
- {
- if (PXSEG(port))
- return *(volatile unsigned long *)port;
-- else if (CHECK_SH7751_PCIIO(port))
-- return *(volatile unsigned int *)PCI_IOMAP(port);
-+ else if (is_pci_ioaddr(port))
-+ return *(volatile unsigned int *)pci_ioaddr(port);
- else if (port >= 0x2000)
- return *port2adr(port);
- else if (port <= 0x3F1)
- return *(volatile unsigned int *)ETHER_IOMAP(port);
- else
-- maybebadio(inl, port);
-+ maybebadio(port);
- return 0;
- }
-
-@@ -135,8 +94,8 @@
-
- if (PXSEG(port))
- *(volatile unsigned char *)port = value;
-- else if (CHECK_SH7751_PCIIO(port))
-- *((unsigned char*)PCI_IOMAP(port)) = value;
-+ else if (is_pci_ioaddr(port))
-+ *((unsigned char*)pci_ioaddr(port)) = value;
- else if (port <= 0x3F1)
- *(volatile unsigned char *)ETHER_IOMAP(port) = value;
- else
-@@ -147,37 +106,37 @@
- {
- if (PXSEG(port))
- *(volatile unsigned char *)port = value;
-- else if (CHECK_SH7751_PCIIO(port))
-- *((unsigned char*)PCI_IOMAP(port)) = value;
-+ else if (is_pci_ioaddr(port))
-+ *((unsigned char*)pci_ioaddr(port)) = value;
- else if (port <= 0x3F1)
- *(volatile unsigned char *)ETHER_IOMAP(port) = value;
- else
- *(port2adr(port)) = value;
-- delay();
-+ ctrl_delay();
- }
-
- void sh7751systemh_outw(unsigned short value, unsigned long port)
- {
- if (PXSEG(port))
- *(volatile unsigned short *)port = value;
-- else if (CHECK_SH7751_PCIIO(port))
-- *((unsigned short *)PCI_IOMAP(port)) = value;
-+ else if (is_pci_ioaddr(port))
-+ *((unsigned short *)pci_ioaddr(port)) = value;
- else if (port >= 0x2000)
- *port2adr(port) = value;
- else if (port <= 0x3F1)
- *(volatile unsigned short *)ETHER_IOMAP(port) = value;
- else
-- maybebadio(outw, port);
-+ maybebadio(port);
- }
-
- void sh7751systemh_outl(unsigned int value, unsigned long port)
- {
- if (PXSEG(port))
- *(volatile unsigned long *)port = value;
-- else if (CHECK_SH7751_PCIIO(port))
-- *((unsigned long*)PCI_IOMAP(port)) = value;
-+ else if (is_pci_ioaddr(port))
-+ *((unsigned long*)pci_ioaddr(port)) = value;
- else
-- maybebadio(outl, port);
-+ maybebadio(port);
- }
-
- void sh7751systemh_insb(unsigned long port, void *addr, unsigned long count)
-@@ -194,7 +153,7 @@
-
- void sh7751systemh_insl(unsigned long port, void *addr, unsigned long count)
- {
-- maybebadio(insl, port);
-+ maybebadio(port);
- }
-
- void sh7751systemh_outsb(unsigned long port, const void *addr, unsigned long count)
-@@ -211,73 +170,5 @@
-
- void sh7751systemh_outsl(unsigned long port, const void *addr, unsigned long count)
- {
-- maybebadio(outsw, port);
--}
--
--/* For read/write calls, just copy generic (pass-thru); PCIMBR is */
--/* already set up. For a larger memory space, these would need to */
--/* reset PCIMBR as needed on a per-call basis... */
--
--unsigned char sh7751systemh_readb(unsigned long addr)
--{
-- return *(volatile unsigned char*)addr;
--}
--
--unsigned short sh7751systemh_readw(unsigned long addr)
--{
-- return *(volatile unsigned short*)addr;
--}
--
--unsigned int sh7751systemh_readl(unsigned long addr)
--{
-- return *(volatile unsigned long*)addr;
--}
--
--void sh7751systemh_writeb(unsigned char b, unsigned long addr)
--{
-- *(volatile unsigned char*)addr = b;
--}
--
--void sh7751systemh_writew(unsigned short b, unsigned long addr)
--{
-- *(volatile unsigned short*)addr = b;
--}
--
--void sh7751systemh_writel(unsigned int b, unsigned long addr)
--{
-- *(volatile unsigned long*)addr = b;
--}
--
--
--
--/* Map ISA bus address to the real address. Only for PCMCIA. */
--
--/* ISA page descriptor. */
--static __u32 sh_isa_memmap[256];
--
--#if 0
--static int
--sh_isa_mmap(__u32 start, __u32 length, __u32 offset)
--{
-- int idx;
--
-- if (start >= 0x100000 || (start & 0xfff) || (length != 0x1000))
-- return -1;
--
-- idx = start >> 12;
-- sh_isa_memmap[idx] = 0xb8000000 + (offset &~ 0xfff);
-- printk("sh_isa_mmap: start %x len %x offset %x (idx %x paddr %x)\n",
-- start, length, offset, idx, sh_isa_memmap[idx]);
-- return 0;
--}
--#endif
--
--unsigned long
--sh7751systemh_isa_port2addr(unsigned long offset)
--{
-- int idx;
--
-- idx = (offset >> 12) & 0xff;
-- offset &= 0xfff;
-- return sh_isa_memmap[idx] + offset;
-+ maybebadio(port);
- }
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/systemh/irq.c linux-2.6.17/arch/sh/boards/renesas/systemh/irq.c
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/systemh/irq.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/systemh/irq.c 2006-07-12 16:54:20.000000000 +0000
-@@ -16,7 +16,7 @@
- #include <linux/hdreg.h>
- #include <linux/ide.h>
- #include <asm/io.h>
--#include <asm/mach/7751systemh.h>
-+#include <asm/systemh7751.h>
- #include <asm/smc37c93x.h>
-
- /* address of external interrupt mask register
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/renesas/systemh/setup.c linux-2.6.17/arch/sh/boards/renesas/systemh/setup.c
---- linux-2.6.17-vanilla/arch/sh/boards/renesas/systemh/setup.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/renesas/systemh/setup.c 2006-07-12 16:54:20.000000000 +0000
-@@ -15,9 +15,8 @@
- * for more details.
- */
- #include <linux/init.h>
--#include <asm/mach/7751systemh.h>
--#include <asm/mach/io.h>
- #include <asm/machvec.h>
-+#include <asm/systemh7751.h>
-
- extern void make_systemh_irq(unsigned int irq);
-
-@@ -31,8 +30,6 @@
- */
- void __init init_7751systemh_IRQ(void)
- {
--/* make_ipr_irq(10, BCR_ILCRD, 1, 0x0f-10); LAN */
--/* make_ipr_irq(14, BCR_ILCRA, 2, 0x0f-4); */
- make_systemh_irq(0xb); /* Ethernet interrupt */
- }
-
-@@ -60,15 +57,6 @@
- .mv_outsw = sh7751systemh_outsw,
- .mv_outsl = sh7751systemh_outsl,
-
-- .mv_readb = sh7751systemh_readb,
-- .mv_readw = sh7751systemh_readw,
-- .mv_readl = sh7751systemh_readl,
-- .mv_writeb = sh7751systemh_writeb,
-- .mv_writew = sh7751systemh_writew,
-- .mv_writel = sh7751systemh_writel,
--
-- .mv_isa_port2addr = sh7751systemh_isa_port2addr,
--
- .mv_init_irq = init_7751systemh_IRQ,
- };
- ALIAS_MV(7751systemh)
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/saturn/CVS/Entries linux-2.6.17/arch/sh/boards/saturn/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/saturn/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/saturn/CVS/Entries 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,6 @@
-+/Makefile/1.4/Thu Mar 11 18:08:03 2004/-ko/
-+/io.c/1.2/Sun May 4 19:29:47 2003/-ko/
-+/irq.c/1.4/Sun Oct 26 23:41:36 2003/-ko/
-+/setup.c/1.4/Sun Oct 26 23:41:36 2003/-ko/
-+/smp.c/1.3/Sun Oct 26 23:41:36 2003/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/saturn/CVS/Repository linux-2.6.17/arch/sh/boards/saturn/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/saturn/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/saturn/CVS/Repository 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/saturn
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/saturn/CVS/Root linux-2.6.17/arch/sh/boards/saturn/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/saturn/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/saturn/CVS/Root 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/7300/CVS/Entries linux-2.6.17/arch/sh/boards/se/7300/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/se/7300/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/7300/CVS/Entries 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,6 @@
-+/Makefile/1.1/Fri Jun 11 13:02:47 2004//
-+/io.c/1.3/Wed Jan 4 17:25:52 2006//
-+/irq.c/1.2/Wed Jan 4 17:25:52 2006//
-+/led.c/1.2/Wed Jan 4 17:25:52 2006//
-+/setup.c/1.2/Wed Jan 4 17:25:52 2006//
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/7300/CVS/Repository linux-2.6.17/arch/sh/boards/se/7300/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/se/7300/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/7300/CVS/Repository 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/se/7300
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/7300/CVS/Root linux-2.6.17/arch/sh/boards/se/7300/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/se/7300/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/7300/CVS/Root 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/7300/io.c linux-2.6.17/arch/sh/boards/se/7300/io.c
---- linux-2.6.17-vanilla/arch/sh/boards/se/7300/io.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/7300/io.c 2006-07-12 16:54:20.000000000 +0000
-@@ -10,8 +10,8 @@
-
- #include <linux/config.h>
- #include <linux/kernel.h>
--#include <asm/mach/se7300.h>
- #include <asm/io.h>
-+#include <asm/se7300.h>
-
- #define badio(fn, a) panic("bad i/o operation %s for %08lx.", #fn, a)
-
-@@ -100,6 +100,7 @@
- badio(inw, port);
- }
-
-+#ifdef CONFIG_SMC91X
- /* MSTLANEX01 LAN at 0xb400:0000 */
- static struct iop laniop = {
- .start = 0x300,
-@@ -111,6 +112,7 @@
- .outb = simple_outb,
- .outw = simple_outw,
- };
-+#endif
-
- /* NE2000 pc card NIC */
- static struct iop neiop = {
-@@ -124,6 +126,7 @@
- .outw = simple_outw,
- };
-
-+#ifdef CONFIG_IDE
- /* CF in CF slot */
- static struct iop cfiop = {
- .base = 0xb0600000,
-@@ -133,12 +136,13 @@
- .outb = pcc_outb,
- .outw = simple_outw,
- };
-+#endif
-
- static __inline__ struct iop *
- port2iop(unsigned long port)
- {
- if (0) ;
--#if defined(CONFIG_SMC91111)
-+#if defined(CONFIG_SMC91X)
- else if (laniop.check(&laniop, port))
- return &laniop;
- #endif
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/7300/irq.c linux-2.6.17/arch/sh/boards/se/7300/irq.c
---- linux-2.6.17-vanilla/arch/sh/boards/se/7300/irq.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/7300/irq.c 2006-07-12 16:54:20.000000000 +0000
-@@ -12,7 +12,7 @@
- #include <linux/irq.h>
- #include <asm/irq.h>
- #include <asm/io.h>
--#include <asm/mach/se7300.h>
-+#include <asm/se7300.h>
-
- /*
- * Initialize IRQ setting
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/7300/led.c linux-2.6.17/arch/sh/boards/se/7300/led.c
---- linux-2.6.17-vanilla/arch/sh/boards/se/7300/led.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/7300/led.c 2006-07-12 16:54:20.000000000 +0000
-@@ -13,24 +13,10 @@
-
- #include <linux/config.h>
- #include <linux/sched.h>
--#include <asm/mach/se7300.h>
--
--static void
--mach_led(int position, int value)
--{
-- volatile unsigned short *p = (volatile unsigned short *) PA_LED;
--
-- if (value) {
-- *p |= (1 << 8);
-- } else {
-- *p &= ~(1 << 8);
-- }
--}
--
-+#include <asm/se7300.h>
-
- /* Cycle the LED's in the clasic Knightrider/Sun pattern */
--void
--heartbeat_7300se(void)
-+void heartbeat_7300se(void)
- {
- static unsigned int cnt = 0, period = 0;
- volatile unsigned short *p = (volatile unsigned short *) PA_LED;
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/7300/setup.c linux-2.6.17/arch/sh/boards/se/7300/setup.c
---- linux-2.6.17-vanilla/arch/sh/boards/se/7300/setup.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/7300/setup.c 2006-07-12 16:54:20.000000000 +0000
-@@ -10,8 +10,7 @@
- #include <linux/config.h>
- #include <linux/init.h>
- #include <asm/machvec.h>
--#include <asm/machvec_init.h>
--#include <asm/mach/io.h>
-+#include <asm/se7300.h>
-
- void heartbeat_7300se(void);
- void init_7300se_IRQ(void);
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/73180/CVS/Entries linux-2.6.17/arch/sh/boards/se/73180/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/se/73180/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/73180/CVS/Entries 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,6 @@
-+/Makefile/1.1/Mon Jun 28 13:18:45 2004//
-+/io.c/1.2/Tue May 31 14:00:25 2005//
-+/irq.c/1.2/Tue May 31 14:00:25 2005//
-+/led.c/1.2/Tue May 31 14:00:25 2005//
-+/setup.c/1.3/Sun Jan 8 12:22:57 2006//
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/73180/CVS/Repository linux-2.6.17/arch/sh/boards/se/73180/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/se/73180/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/73180/CVS/Repository 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/se/73180
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/73180/CVS/Root linux-2.6.17/arch/sh/boards/se/73180/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/se/73180/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/73180/CVS/Root 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/73180/io.c linux-2.6.17/arch/sh/boards/se/73180/io.c
---- linux-2.6.17-vanilla/arch/sh/boards/se/73180/io.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/73180/io.c 2006-07-12 16:54:20.000000000 +0000
-@@ -100,6 +100,7 @@
- badio(inw, port);
- }
-
-+#ifdef CONFIG_SMC91X
- /* MSTLANEX01 LAN at 0xb400:0000 */
- static struct iop laniop = {
- .start = 0x300,
-@@ -111,6 +112,7 @@
- .outb = simple_outb,
- .outw = simple_outw,
- };
-+#endif
-
- /* NE2000 pc card NIC */
- static struct iop neiop = {
-@@ -124,6 +126,7 @@
- .outw = simple_outw,
- };
-
-+#ifdef CONFIG_IDE
- /* CF in CF slot */
- static struct iop cfiop = {
- .base = 0xb0600000,
-@@ -133,12 +136,13 @@
- .outb = pcc_outb,
- .outw = simple_outw,
- };
-+#endif
-
- static __inline__ struct iop *
- port2iop(unsigned long port)
- {
- if (0) ;
--#if defined(CONFIG_SMC91111)
-+#if defined(CONFIG_SMC91X)
- else if (laniop.check(&laniop, port))
- return &laniop;
- #endif
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/73180/irq.c linux-2.6.17/arch/sh/boards/se/73180/irq.c
---- linux-2.6.17-vanilla/arch/sh/boards/se/73180/irq.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/73180/irq.c 2006-07-12 16:54:20.000000000 +0000
-@@ -7,7 +7,6 @@
- * Modified for SH-Mobile SolutionEngine 73180 Support
- * by YOSHII Takashi <yoshii-takashi@hitachi-ul.co.jp>
- *
-- *
- */
-
- #include <linux/config.h>
-@@ -18,14 +17,6 @@
- #include <asm/mach/se73180.h>
-
- static int
--intreq2irq(int i)
--{
-- if (i == 5)
-- return 10;
-- return 32 + 7 - i;
--}
--
--static int
- irq2intreq(int irq)
- {
- if (irq == 10)
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/73180/led.c linux-2.6.17/arch/sh/boards/se/73180/led.c
---- linux-2.6.17-vanilla/arch/sh/boards/se/73180/led.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/73180/led.c 2006-07-12 16:54:20.000000000 +0000
-@@ -15,21 +15,8 @@
- #include <linux/sched.h>
- #include <asm/mach/se73180.h>
-
--static void
--mach_led(int position, int value)
--{
-- volatile unsigned short *p = (volatile unsigned short *) PA_LED;
--
-- if (value) {
-- *p |= (1 << LED_SHIFT);
-- } else {
-- *p &= ~(1 << LED_SHIFT);
-- }
--}
--
- /* Cycle the LED's in the clasic Knightrider/Sun pattern */
--void
--heartbeat_73180se(void)
-+void heartbeat_73180se(void)
- {
- static unsigned int cnt = 0, period = 0;
- volatile unsigned short *p = (volatile unsigned short *) PA_LED;
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/73180/setup.c linux-2.6.17/arch/sh/boards/se/73180/setup.c
---- linux-2.6.17-vanilla/arch/sh/boards/se/73180/setup.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/73180/setup.c 2006-07-12 16:54:20.000000000 +0000
-@@ -12,8 +12,8 @@
- #include <linux/config.h>
- #include <linux/init.h>
- #include <asm/machvec.h>
--#include <asm/machvec_init.h>
--#include <asm/mach/io.h>
-+#include <asm/se73180.h>
-+#include <asm/irq.h>
-
- void heartbeat_73180se(void);
- void init_73180se_IRQ(void);
-@@ -52,6 +52,7 @@
- .mv_outsl = sh73180se_outsl,
-
- .mv_init_irq = init_73180se_IRQ,
-+ .mv_irq_demux = shmse_irq_demux,
- #ifdef CONFIG_HEARTBEAT
- .mv_heartbeat = heartbeat_73180se,
- #endif
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/770x/CVS/Entries linux-2.6.17/arch/sh/boards/se/770x/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/se/770x/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/770x/CVS/Entries 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,7 @@
-+/Makefile/1.5/Tue May 31 14:49:59 2005//
-+/io.c/1.7/Sun Feb 5 21:55:29 2006//
-+/irq.c/1.7/Wed Jan 4 17:53:54 2006/-ko/
-+/led.c/1.4/Wed Jan 4 17:53:54 2006//
-+/mach.c/1.8/Wed Jan 4 17:53:54 2006//
-+/setup.c/1.5/Wed Jan 4 17:53:54 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/770x/CVS/Repository linux-2.6.17/arch/sh/boards/se/770x/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/se/770x/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/770x/CVS/Repository 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/se/770x
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/770x/CVS/Root linux-2.6.17/arch/sh/boards/se/770x/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/se/770x/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/770x/CVS/Root 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/770x/Makefile linux-2.6.17/arch/sh/boards/se/770x/Makefile
---- linux-2.6.17-vanilla/arch/sh/boards/se/770x/Makefile 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/770x/Makefile 2006-07-12 16:54:20.000000000 +0000
-@@ -2,5 +2,6 @@
- # Makefile for the 770x SolutionEngine specific parts of the kernel
- #
-
--obj-y := mach.o setup.o io.o irq.o led.o
-+obj-y := mach.o setup.o io.o irq.o
-
-+obj-$(CONFIG_HEARTBEAT) += led.o
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/770x/io.c linux-2.6.17/arch/sh/boards/se/770x/io.c
---- linux-2.6.17-vanilla/arch/sh/boards/se/770x/io.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/770x/io.c 2006-07-12 16:54:20.000000000 +0000
-@@ -1,4 +1,4 @@
--/* $Id: io.c,v 1.5 2004/02/22 23:08:43 kkojima Exp $
-+/* $Id: io.c,v 1.7 2006/02/05 21:55:29 lethal Exp $
- *
- * linux/arch/sh/kernel/io_se.c
- *
-@@ -11,7 +11,7 @@
- #include <linux/kernel.h>
- #include <linux/types.h>
- #include <asm/io.h>
--#include <asm/se/se.h>
-+#include <asm/se.h>
-
- /* SH pcmcia io window base, start and end. */
- int sh_pcic_io_wbase = 0xb8400000;
-@@ -20,11 +20,6 @@
- int sh_pcic_io_type;
- int sh_pcic_io_dummy;
-
--static inline void delay(void)
--{
-- ctrl_inw(0xa0000000);
--}
--
- /* MS7750 requires special versions of in*, out* routines, since
- PC-like io ports are located at upper half byte of 16-bit word which
- can be accessed only with 16-bit wide. */
-@@ -52,10 +47,6 @@
- return 1;
- }
-
--#define maybebadio(name,port) \
-- printk("bad PC-like io %s for port 0x%lx at 0x%08x\n", \
-- #name, (port), (__u32) __builtin_return_address(0))
--
- unsigned char se_inb(unsigned long port)
- {
- if (sh_pcic_io_start <= port && port <= sh_pcic_io_stop)
-@@ -76,7 +67,7 @@
- v = (*port2adr(port) >> 8);
- else
- v = (*port2adr(port))&0xff;
-- delay();
-+ ctrl_delay();
- return v;
- }
-
-@@ -86,13 +77,13 @@
- (sh_pcic_io_start <= port && port <= sh_pcic_io_stop))
- return *port2adr(port);
- else
-- maybebadio(inw, port);
-+ maybebadio(port);
- return 0;
- }
-
- unsigned int se_inl(unsigned long port)
- {
-- maybebadio(inl, port);
-+ maybebadio(port);
- return 0;
- }
-
-@@ -114,7 +105,7 @@
- *(port2adr(port)) = value << 8;
- else
- *(port2adr(port)) = value;
-- delay();
-+ ctrl_delay();
- }
-
- void se_outw(unsigned short value, unsigned long port)
-@@ -123,12 +114,12 @@
- (sh_pcic_io_start <= port && port <= sh_pcic_io_stop))
- *port2adr(port) = value;
- else
-- maybebadio(outw, port);
-+ maybebadio(port);
- }
-
- void se_outl(unsigned int value, unsigned long port)
- {
-- maybebadio(outl, port);
-+ maybebadio(port);
- }
-
- void se_insb(unsigned long port, void *addr, unsigned long count)
-@@ -159,7 +150,7 @@
-
- void se_insl(unsigned long port, void *addr, unsigned long count)
- {
-- maybebadio(insl, port);
-+ maybebadio(port);
- }
-
- void se_outsb(unsigned long port, const void *addr, unsigned long count)
-@@ -190,37 +181,5 @@
-
- void se_outsl(unsigned long port, const void *addr, unsigned long count)
- {
-- maybebadio(outsw, port);
--}
--
--/* Map ISA bus address to the real address. Only for PCMCIA. */
--
--/* ISA page descriptor. */
--static __u32 sh_isa_memmap[256];
--
--static int
--sh_isa_mmap(__u32 start, __u32 length, __u32 offset)
--{
-- int idx;
--
-- if (start >= 0x100000 || (start & 0xfff) || (length != 0x1000))
-- return -1;
--
-- idx = start >> 12;
-- sh_isa_memmap[idx] = 0xb8000000 + (offset &~ 0xfff);
--#if 0
-- printk("sh_isa_mmap: start %x len %x offset %x (idx %x paddr %x)\n",
-- start, length, offset, idx, sh_isa_memmap[idx]);
--#endif
-- return 0;
--}
--
--unsigned long
--se_isa_port2addr(unsigned long offset)
--{
-- int idx;
--
-- idx = (offset >> 12) & 0xff;
-- offset &= 0xfff;
-- return sh_isa_memmap[idx] + offset;
-+ maybebadio(port);
- }
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/770x/irq.c linux-2.6.17/arch/sh/boards/se/770x/irq.c
---- linux-2.6.17-vanilla/arch/sh/boards/se/770x/irq.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/770x/irq.c 2006-07-12 16:54:20.000000000 +0000
-@@ -12,7 +12,7 @@
- #include <linux/irq.h>
- #include <asm/irq.h>
- #include <asm/io.h>
--#include <asm/se/se.h>
-+#include <asm/se.h>
-
- /*
- * Initialize IRQ setting
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/770x/led.c linux-2.6.17/arch/sh/boards/se/770x/led.c
---- linux-2.6.17-vanilla/arch/sh/boards/se/770x/led.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/770x/led.c 2006-07-12 16:54:20.000000000 +0000
-@@ -10,22 +10,8 @@
- */
-
- #include <linux/config.h>
--#include <asm/se/se.h>
--
--static void mach_led(int position, int value)
--{
-- volatile unsigned short* p = (volatile unsigned short*)PA_LED;
--
-- if (value) {
-- *p |= (1<<8);
-- } else {
-- *p &= ~(1<<8);
-- }
--}
--
--#ifdef CONFIG_HEARTBEAT
--
- #include <linux/sched.h>
-+#include <asm/se.h>
-
- /* Cycle the LED's in the clasic Knightrider/Sun pattern */
- void heartbeat_se(void)
-@@ -65,4 +51,3 @@
- *p = 1<<(bit+8);
-
- }
--#endif /* CONFIG_HEARTBEAT */
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/770x/mach.c linux-2.6.17/arch/sh/boards/se/770x/mach.c
---- linux-2.6.17-vanilla/arch/sh/boards/se/770x/mach.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/770x/mach.c 2006-07-12 16:54:20.000000000 +0000
-@@ -14,12 +14,9 @@
-
- #include <asm/machvec.h>
- #include <asm/rtc.h>
--#include <asm/machvec_init.h>
--
--#include <asm/se/io.h>
-+#include <asm/se.h>
-
- void heartbeat_se(void);
--void setup_se(void);
- void init_se_IRQ(void);
-
- /*
-@@ -58,8 +55,6 @@
- .mv_outsw = se_outsw,
- .mv_outsl = se_outsl,
-
-- .mv_isa_port2addr = se_isa_port2addr,
--
- .mv_init_irq = init_se_IRQ,
- #ifdef CONFIG_HEARTBEAT
- .mv_heartbeat = heartbeat_se,
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/770x/setup.c linux-2.6.17/arch/sh/boards/se/770x/setup.c
---- linux-2.6.17-vanilla/arch/sh/boards/se/770x/setup.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/770x/setup.c 2006-07-12 16:54:20.000000000 +0000
-@@ -1,4 +1,4 @@
--/* $Id: setup.c,v 1.1.2.4 2002/03/02 21:57:07 lethal Exp $
-+/* $Id: setup.c,v 1.3 2003/05/04 19:29:47 lethal Exp $
- *
- * linux/arch/sh/boards/se/770x/setup.c
- *
-@@ -15,8 +15,8 @@
- #include <linux/hdreg.h>
- #include <linux/ide.h>
- #include <asm/io.h>
--#include <asm/se/se.h>
--#include <asm/se/smc37c93x.h>
-+#include <asm/se.h>
-+#include <asm/smc37c93x.h>
-
- /*
- * Configure the Super I/O chip
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/7751/CVS/Entries linux-2.6.17/arch/sh/boards/se/7751/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/se/7751/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/7751/CVS/Entries 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,8 @@
-+/Makefile/1.5/Tue May 31 15:16:49 2005//
-+/io.c/1.6/Sun Feb 5 21:55:29 2006//
-+/irq.c/1.3/Wed Jan 4 18:13:24 2006//
-+/led.c/1.4/Wed Jan 4 18:13:24 2006//
-+/mach.c/1.6/Wed Jan 4 18:13:24 2006//
-+/pci.c/1.8/Fri Sep 24 15:16:19 2004//
-+/setup.c/1.3/Wed Jan 4 18:13:24 2006//
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/7751/CVS/Repository linux-2.6.17/arch/sh/boards/se/7751/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/se/7751/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/7751/CVS/Repository 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/se/7751
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/7751/CVS/Root linux-2.6.17/arch/sh/boards/se/7751/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/se/7751/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/7751/CVS/Root 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/7751/Makefile linux-2.6.17/arch/sh/boards/se/7751/Makefile
---- linux-2.6.17-vanilla/arch/sh/boards/se/7751/Makefile 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/7751/Makefile 2006-07-12 16:54:20.000000000 +0000
-@@ -2,7 +2,8 @@
- # Makefile for the 7751 SolutionEngine specific parts of the kernel
- #
-
--obj-y := mach.o setup.o io.o irq.o led.o
-+obj-y := mach.o setup.o io.o irq.o
-
- obj-$(CONFIG_PCI) += pci.o
-+obj-$(CONFIG_HEARTBEAT) += led.o
-
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/7751/io.c linux-2.6.17/arch/sh/boards/se/7751/io.c
---- linux-2.6.17-vanilla/arch/sh/boards/se/7751/io.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/7751/io.c 2006-07-12 16:54:20.000000000 +0000
-@@ -1,6 +1,4 @@
--/*
-- * linux/arch/sh/kernel/io_7751se.c
-- *
-+/*
- * Copyright (C) 2001 Ian da Silva, Jeremy Siegel
- * Based largely on io_se.c.
- *
-@@ -10,96 +8,21 @@
- * placeholder code from io_se.c left in with the
- * expectation of later SuperIO and PCMCIA access.
- */
--
- #include <linux/kernel.h>
- #include <linux/types.h>
-+#include <linux/pci.h>
- #include <asm/io.h>
--#include <asm/se7751/se7751.h>
-+#include <asm/se7751.h>
- #include <asm/addrspace.h>
-
--#include <linux/pci.h>
--#include "../../../drivers/pci/pci-sh7751.h"
--
--#if 0
--/******************************************************************
-- * Variables from io_se.c, related to PCMCIA (not PCI); we're not
-- * compiling them in, and have removed references from functions
-- * which follow. [Many checked for IO ports in the range bounded
-- * by sh_pcic_io_start/stop, and used sh_pcic_io_wbase as offset.
-- * As start/stop are uninitialized, only port 0x0 would match?]
-- * When used, remember to adjust names to avoid clash with io_se?
-- *****************************************************************/
--/* SH pcmcia io window base, start and end. */
--int sh_pcic_io_wbase = 0xb8400000;
--int sh_pcic_io_start;
--int sh_pcic_io_stop;
--int sh_pcic_io_type;
--int sh_pcic_io_dummy;
--/*************************************************************/
--#endif
--
--/*
-- * The 7751 Solution Engine uses the built-in PCI controller (PCIC)
-- * of the 7751 processor, and has a SuperIO accessible via the PCI.
-- * The board also includes a PCMCIA controller on its memory bus,
-- * like the other Solution Engine boards.
-- */
--
--#define PCIIOBR (volatile long *)PCI_REG(SH7751_PCIIOBR)
--#define PCIMBR (volatile long *)PCI_REG(SH7751_PCIMBR)
--#define PCI_IO_AREA SH7751_PCI_IO_BASE
--#define PCI_MEM_AREA SH7751_PCI_CONFIG_BASE
--
--#define PCI_IOMAP(adr) (PCI_IO_AREA + (adr & ~SH7751_PCIIOBR_MASK))
--
--#define maybebadio(name,port) \
-- printk("bad PC-like io %s for port 0x%lx at 0x%08x\n", \
-- #name, (port), (__u32) __builtin_return_address(0))
--
--static inline void delay(void)
--{
-- ctrl_inw(0xa0000000);
--}
--
--static inline volatile __u16 *
--port2adr(unsigned int port)
-+static inline volatile u16 *port2adr(unsigned int port)
- {
- if (port >= 0x2000)
- return (volatile __u16 *) (PA_MRSHPC + (port - 0x2000));
--#if 0
-- else
-- return (volatile __u16 *) (PA_SUPERIO + (port << 1));
--#endif
-- maybebadio(name,(unsigned long)port);
-+ maybebadio((unsigned long)port);
- return (volatile __u16*)port;
- }
-
--#if 0
--/* The 7751 Solution Engine seems to have everything hooked */
--/* up pretty normally (nothing on high-bytes only...) so this */
--/* shouldn't be needed */
--static inline int
--shifted_port(unsigned long port)
--{
-- /* For IDE registers, value is not shifted */
-- if ((0x1f0 <= port && port < 0x1f8) || port == 0x3f6)
-- return 0;
-- else
-- return 1;
--}
--#endif
--
--/* In case someone configures the kernel w/o PCI support: in that */
--/* scenario, don't ever bother to check for PCI-window addresses */
--
--/* NOTE: WINDOW CHECK MAY BE A BIT OFF, HIGH PCIBIOS_MIN_IO WRAPS? */
--#if defined(CONFIG_PCI)
--#define CHECK_SH7751_PCIIO(port) \
-- ((port >= PCIBIOS_MIN_IO) && (port < (PCIBIOS_MIN_IO + SH7751_PCI_IO_SIZE)))
--#else
--#define CHECK_SH7751_PCIIO(port) (0)
--#endif
--
- /*
- * General outline: remap really low stuff [eventually] to SuperIO,
- * stuff in PCI IO space (at or above window at pci.h:PCIBIOS_MIN_IO)
-@@ -111,10 +34,10 @@
- {
- if (PXSEG(port))
- return *(volatile unsigned char *)port;
-- else if (CHECK_SH7751_PCIIO(port))
-- return *(volatile unsigned char *)PCI_IOMAP(port);
-+ else if (is_pci_ioaddr(port))
-+ return *(volatile unsigned char *)pci_ioaddr(port);
- else
-- return (*port2adr(port))&0xff;
-+ return (*port2adr(port)) & 0xff;
- }
-
- unsigned char sh7751se_inb_p(unsigned long port)
-@@ -123,11 +46,11 @@
-
- if (PXSEG(port))
- v = *(volatile unsigned char *)port;
-- else if (CHECK_SH7751_PCIIO(port))
-- v = *(volatile unsigned char *)PCI_IOMAP(port);
-+ else if (is_pci_ioaddr(port))
-+ v = *(volatile unsigned char *)pci_ioaddr(port);
- else
-- v = (*port2adr(port))&0xff;
-- delay();
-+ v = (*port2adr(port)) & 0xff;
-+ ctrl_delay();
- return v;
- }
-
-@@ -135,12 +58,12 @@
- {
- if (PXSEG(port))
- return *(volatile unsigned short *)port;
-- else if (CHECK_SH7751_PCIIO(port))
-- return *(volatile unsigned short *)PCI_IOMAP(port);
-+ else if (is_pci_ioaddr(port))
-+ return *(volatile unsigned short *)pci_ioaddr(port);
- else if (port >= 0x2000)
- return *port2adr(port);
- else
-- maybebadio(inw, port);
-+ maybebadio(port);
- return 0;
- }
-
-@@ -148,12 +71,12 @@
- {
- if (PXSEG(port))
- return *(volatile unsigned long *)port;
-- else if (CHECK_SH7751_PCIIO(port))
-- return *(volatile unsigned int *)PCI_IOMAP(port);
-+ else if (is_pci_ioaddr(port))
-+ return *(volatile unsigned int *)pci_ioaddr(port);
- else if (port >= 0x2000)
- return *port2adr(port);
- else
-- maybebadio(inl, port);
-+ maybebadio(port);
- return 0;
- }
-
-@@ -162,8 +85,8 @@
-
- if (PXSEG(port))
- *(volatile unsigned char *)port = value;
-- else if (CHECK_SH7751_PCIIO(port))
-- *((unsigned char*)PCI_IOMAP(port)) = value;
-+ else if (is_pci_ioaddr(port))
-+ *((unsigned char*)pci_ioaddr(port)) = value;
- else
- *(port2adr(port)) = value;
- }
-@@ -172,73 +95,41 @@
- {
- if (PXSEG(port))
- *(volatile unsigned char *)port = value;
-- else if (CHECK_SH7751_PCIIO(port))
-- *((unsigned char*)PCI_IOMAP(port)) = value;
-+ else if (is_pci_ioaddr(port))
-+ *((unsigned char*)pci_ioaddr(port)) = value;
- else
- *(port2adr(port)) = value;
-- delay();
-+ ctrl_delay();
- }
-
- void sh7751se_outw(unsigned short value, unsigned long port)
- {
- if (PXSEG(port))
- *(volatile unsigned short *)port = value;
-- else if (CHECK_SH7751_PCIIO(port))
-- *((unsigned short *)PCI_IOMAP(port)) = value;
-+ else if (is_pci_ioaddr(port))
-+ *((unsigned short *)pci_ioaddr(port)) = value;
- else if (port >= 0x2000)
- *port2adr(port) = value;
- else
-- maybebadio(outw, port);
-+ maybebadio(port);
- }
-
- void sh7751se_outl(unsigned int value, unsigned long port)
- {
- if (PXSEG(port))
- *(volatile unsigned long *)port = value;
-- else if (CHECK_SH7751_PCIIO(port))
-- *((unsigned long*)PCI_IOMAP(port)) = value;
-+ else if (is_pci_ioaddr(port))
-+ *((unsigned long*)pci_ioaddr(port)) = value;
- else
-- maybebadio(outl, port);
-+ maybebadio(port);
- }
-
- void sh7751se_insl(unsigned long port, void *addr, unsigned long count)
- {
-- maybebadio(insl, port);
-+ maybebadio(port);
- }
-
- void sh7751se_outsl(unsigned long port, const void *addr, unsigned long count)
- {
-- maybebadio(outsw, port);
--}
--
--/* Map ISA bus address to the real address. Only for PCMCIA. */
--
--/* ISA page descriptor. */
--static __u32 sh_isa_memmap[256];
--
--#if 0
--static int
--sh_isa_mmap(__u32 start, __u32 length, __u32 offset)
--{
-- int idx;
--
-- if (start >= 0x100000 || (start & 0xfff) || (length != 0x1000))
-- return -1;
--
-- idx = start >> 12;
-- sh_isa_memmap[idx] = 0xb8000000 + (offset &~ 0xfff);
-- printk("sh_isa_mmap: start %x len %x offset %x (idx %x paddr %x)\n",
-- start, length, offset, idx, sh_isa_memmap[idx]);
-- return 0;
--}
--#endif
--
--unsigned long
--sh7751se_isa_port2addr(unsigned long offset)
--{
-- int idx;
--
-- idx = (offset >> 12) & 0xff;
-- offset &= 0xfff;
-- return sh_isa_memmap[idx] + offset;
-+ maybebadio(port);
- }
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/7751/irq.c linux-2.6.17/arch/sh/boards/se/7751/irq.c
---- linux-2.6.17-vanilla/arch/sh/boards/se/7751/irq.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/7751/irq.c 2006-07-12 16:54:20.000000000 +0000
-@@ -13,7 +13,7 @@
- #include <linux/init.h>
- #include <linux/irq.h>
- #include <asm/irq.h>
--#include <asm/se7751/se7751.h>
-+#include <asm/se7751.h>
-
- /*
- * Initialize IRQ setting
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/7751/led.c linux-2.6.17/arch/sh/boards/se/7751/led.c
---- linux-2.6.17-vanilla/arch/sh/boards/se/7751/led.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/7751/led.c 2006-07-12 16:54:20.000000000 +0000
-@@ -8,24 +8,8 @@
- *
- * This file contains Solution Engine specific LED code.
- */
--
--#include <linux/config.h>
--#include <asm/se7751/se7751.h>
--
--static void mach_led(int position, int value)
--{
-- volatile unsigned short* p = (volatile unsigned short*)PA_LED;
--
-- if (value) {
-- *p |= (1<<8);
-- } else {
-- *p &= ~(1<<8);
-- }
--}
--
--#ifdef CONFIG_HEARTBEAT
--
- #include <linux/sched.h>
-+#include <asm/se7751.h>
-
- /* Cycle the LED's in the clasic Knightrider/Sun pattern */
- void heartbeat_7751se(void)
-@@ -65,4 +49,3 @@
- *p = 1<<(bit+8);
-
- }
--#endif /* CONFIG_HEARTBEAT */
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/7751/mach.c linux-2.6.17/arch/sh/boards/se/7751/mach.c
---- linux-2.6.17-vanilla/arch/sh/boards/se/7751/mach.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/7751/mach.c 2006-07-12 16:54:20.000000000 +0000
-@@ -11,12 +11,8 @@
-
- #include <linux/config.h>
- #include <linux/init.h>
--
- #include <asm/machvec.h>
--#include <asm/rtc.h>
--#include <asm/machvec_init.h>
--
--#include <asm/se7751/io.h>
-+#include <asm/se7751.h>
-
- void heartbeat_7751se(void);
- void init_7751se_IRQ(void);
-@@ -45,8 +41,6 @@
- .mv_insl = sh7751se_insl,
- .mv_outsl = sh7751se_outsl,
-
-- .mv_isa_port2addr = sh7751se_isa_port2addr,
--
- .mv_init_irq = init_7751se_IRQ,
- #ifdef CONFIG_HEARTBEAT
- .mv_heartbeat = heartbeat_7751se,
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/7751/setup.c linux-2.6.17/arch/sh/boards/se/7751/setup.c
---- linux-2.6.17-vanilla/arch/sh/boards/se/7751/setup.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/7751/setup.c 2006-07-12 16:54:20.000000000 +0000
-@@ -1,4 +1,4 @@
--/*
-+/*
- * linux/arch/sh/kernel/setup_7751se.c
- *
- * Copyright (C) 2000 Kazumoto Kojima
-@@ -12,11 +12,9 @@
- #include <linux/config.h>
- #include <linux/init.h>
- #include <linux/irq.h>
--
--#include <linux/hdreg.h>
- #include <linux/ide.h>
- #include <asm/io.h>
--#include <asm/se7751/se7751.h>
-+#include <asm/se7751.h>
-
- #ifdef CONFIG_SH_KGDB
- #include <asm/kgdb.h>
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/CVS/Entries linux-2.6.17/arch/sh/boards/se/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/se/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/CVS/Entries 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,4 @@
-+D/7300////
-+D/73180////
-+D/770x////
-+D/7751////
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/CVS/Repository linux-2.6.17/arch/sh/boards/se/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/se/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/CVS/Repository 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/se
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/se/CVS/Root linux-2.6.17/arch/sh/boards/se/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/se/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/se/CVS/Root 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/sh03/CVS/Entries linux-2.6.17/arch/sh/boards/sh03/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/sh03/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/sh03/CVS/Entries 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,5 @@
-+/Makefile/1.1/Thu Oct 7 11:01:14 2004/-ko/
-+/led.c/1.1/Thu Oct 7 11:01:14 2004/-ko/
-+/setup.c/1.3/Sun Feb 5 21:55:29 2006/-ko/
-+/rtc.c/1.4/Sat Jul 8 20:16:05 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/sh03/CVS/Repository linux-2.6.17/arch/sh/boards/sh03/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/sh03/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/sh03/CVS/Repository 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/sh03
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/sh03/CVS/Root linux-2.6.17/arch/sh/boards/sh03/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/sh03/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/sh03/CVS/Root 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/sh03/rtc.c linux-2.6.17/arch/sh/boards/sh03/rtc.c
---- linux-2.6.17-vanilla/arch/sh/boards/sh03/rtc.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/sh03/rtc.c 2006-07-12 16:54:20.000000000 +0000
-@@ -10,9 +10,10 @@
- #include <linux/sched.h>
- #include <linux/time.h>
- #include <linux/bcd.h>
--#include <asm/io.h>
- #include <linux/rtc.h>
- #include <linux/spinlock.h>
-+#include <asm/io.h>
-+#include <asm/rtc.h>
-
- #define RTC_BASE 0xb0000000
- #define RTC_SEC1 (RTC_BASE + 0)
-@@ -34,8 +35,6 @@
- #define RTC_BUSY 1
- #define RTC_STOP 2
-
--extern void (*rtc_get_time)(struct timespec *);
--extern int (*rtc_set_time)(const time_t);
- extern spinlock_t rtc_lock;
-
- unsigned long get_cmos_time(void)
-@@ -128,6 +127,6 @@
-
- void sh03_time_init(void)
- {
-- rtc_get_time = sh03_rtc_gettimeofday;
-- rtc_set_time = sh03_rtc_settimeofday;
-+ rtc_sh_get_time = sh03_rtc_gettimeofday;
-+ rtc_sh_set_time = sh03_rtc_settimeofday;
- }
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/sh03/setup.c linux-2.6.17/arch/sh/boards/sh03/setup.c
---- linux-2.6.17-vanilla/arch/sh/boards/sh03/setup.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/sh03/setup.c 2006-07-12 16:54:20.000000000 +0000
-@@ -8,22 +8,18 @@
- #include <linux/config.h>
- #include <linux/init.h>
- #include <linux/irq.h>
--#include <linux/hdreg.h>
--#include <linux/ide.h>
- #include <asm/io.h>
-+#include <asm/rtc.h>
- #include <asm/sh03/io.h>
- #include <asm/sh03/sh03.h>
- #include <asm/addrspace.h>
--#include "../../drivers/pci/pci-sh7751.h"
--
--extern void (*board_time_init)(void);
-
- const char *get_system_type(void)
- {
-- return "Interface CTP/PCI-SH03)";
-+ return "Interface (CTP/PCI-SH03)";
- }
-
--void init_sh03_IRQ(void)
-+static void init_sh03_IRQ(void)
- {
- ctrl_outw(ctrl_inw(INTC_ICR) | INTC_ICR_IRLM, INTC_ICR);
-
-@@ -35,31 +31,26 @@
-
- extern void *cf_io_base;
-
--unsigned long sh03_isa_port2addr(unsigned long port)
-+static void __iomem *sh03_ioport_map(unsigned long port, unsigned int size)
- {
- if (PXSEG(port))
-- return port;
-+ return (void __iomem *)port;
- /* CompactFlash (IDE) */
-- if (((port >= 0x1f0) && (port <= 0x1f7)) || (port == 0x3f6)) {
-- return (unsigned long)cf_io_base + port;
-- }
-- return port + SH7751_PCI_IO_BASE;
--}
-+ if (((port >= 0x1f0) && (port <= 0x1f7)) || (port == 0x3f6))
-+ return (void __iomem *)((unsigned long)cf_io_base + port);
-
--/*
-- * The Machine Vector
-- */
-+ return (void __iomem *)(port + PCI_IO_BASE);
-+}
-
- struct sh_machine_vector mv_sh03 __initmv = {
- .mv_nr_irqs = 48,
-- .mv_isa_port2addr = sh03_isa_port2addr,
-+ .mv_ioport_map = sh03_ioport_map,
- .mv_init_irq = init_sh03_IRQ,
-
- #ifdef CONFIG_HEARTBEAT
- .mv_heartbeat = heartbeat_sh03,
- #endif
- };
--
- ALIAS_MV(sh03)
-
- /* arch/sh/boards/sh03/rtc.c */
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/sh2000/CVS/Entries linux-2.6.17/arch/sh/boards/sh2000/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/sh2000/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/sh2000/CVS/Entries 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,3 @@
-+/Makefile/1.6/Thu Mar 11 18:08:03 2004//
-+/setup.c/1.4/Mon Aug 4 01:57:07 2003//
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/sh2000/CVS/Repository linux-2.6.17/arch/sh/boards/sh2000/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/sh2000/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/sh2000/CVS/Repository 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/sh2000
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/sh2000/CVS/Root linux-2.6.17/arch/sh/boards/sh2000/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/sh2000/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/sh2000/CVS/Root 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/snapgear/CVS/Entries linux-2.6.17/arch/sh/boards/snapgear/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/snapgear/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/snapgear/CVS/Entries 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,5 @@
-+/Makefile/1.3/Thu Mar 11 18:08:03 2004//
-+/io.c/1.5/Sun Feb 5 21:55:29 2006//
-+/setup.c/1.4/Wed Jan 4 18:42:42 2006//
-+/rtc.c/1.3/Sat Jul 8 20:16:05 2006//
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/snapgear/CVS/Repository linux-2.6.17/arch/sh/boards/snapgear/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/snapgear/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/snapgear/CVS/Repository 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/snapgear
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/snapgear/CVS/Root linux-2.6.17/arch/sh/boards/snapgear/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/snapgear/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/snapgear/CVS/Root 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/snapgear/io.c linux-2.6.17/arch/sh/boards/snapgear/io.c
---- linux-2.6.17-vanilla/arch/sh/boards/snapgear/io.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/snapgear/io.c 2006-07-12 16:54:20.000000000 +0000
-@@ -1,6 +1,4 @@
--/*
-- * linux/arch/sh/kernel/io_7751se.c
-- *
-+/*
- * Copyright (C) 2002 David McCullough <davidm@snapgear.com>
- * Copyright (C) 2001 Ian da Silva, Jeremy Siegel
- * Based largely on io_se.c.
-@@ -11,67 +9,22 @@
- * placeholder code from io_se.c left in with the
- * expectation of later SuperIO and PCMCIA access.
- */
--
- #include <linux/kernel.h>
- #include <linux/types.h>
- #include <linux/pci.h>
- #include <asm/io.h>
- #include <asm/addrspace.h>
-
--#include <asm/pci.h>
--#include "../../drivers/pci/pci-sh7751.h"
--
- #ifdef CONFIG_SH_SECUREEDGE5410
- unsigned short secureedge5410_ioport;
- #endif
-
--/*
-- * The SnapGear uses the built-in PCI controller (PCIC)
-- * of the 7751 processor
-- */
--
--#define PCIIOBR (volatile long *)PCI_REG(SH7751_PCIIOBR)
--#define PCIMBR (volatile long *)PCI_REG(SH7751_PCIMBR)
--#define PCI_IO_AREA SH7751_PCI_IO_BASE
--#define PCI_MEM_AREA SH7751_PCI_CONFIG_BASE
--
--
--#define PCI_IOMAP(adr) (PCI_IO_AREA + (adr & ~SH7751_PCIIOBR_MASK))
--
--
--#define maybebadio(name,port) \
-- printk("bad PC-like io %s for port 0x%lx at 0x%08x\n", \
-- #name, (port), (__u32) __builtin_return_address(0))
--
--
--static inline void delay(void)
--{
-- ctrl_inw(0xa0000000);
--}
--
--
- static inline volatile __u16 *port2adr(unsigned int port)
- {
--#if 0
-- if (port >= 0x2000)
-- return (volatile __u16 *) (PA_MRSHPC + (port - 0x2000));
--#endif
-- maybebadio(name,(unsigned long)port);
-+ maybebadio((unsigned long)port);
- return (volatile __u16*)port;
- }
-
--
--/* In case someone configures the kernel w/o PCI support: in that */
--/* scenario, don't ever bother to check for PCI-window addresses */
--
--/* NOTE: WINDOW CHECK MAY BE A BIT OFF, HIGH PCIBIOS_MIN_IO WRAPS? */
--#if defined(CONFIG_PCI)
--#define CHECK_SH7751_PCIIO(port) \
-- ((port >= PCIBIOS_MIN_IO) && (port < (PCIBIOS_MIN_IO + SH7751_PCI_IO_SIZE)))
--#else
--#define CHECK_SH7751_PCIIO(port) (0)
--#endif
--
- /*
- * General outline: remap really low stuff [eventually] to SuperIO,
- * stuff in PCI IO space (at or above window at pci.h:PCIBIOS_MIN_IO)
-@@ -79,148 +32,106 @@
- * should be way beyond the window, and is used w/o translation for
- * compatibility.
- */
--
- unsigned char snapgear_inb(unsigned long port)
- {
- if (PXSEG(port))
- return *(volatile unsigned char *)port;
-- else if (CHECK_SH7751_PCIIO(port))
-- return *(volatile unsigned char *)PCI_IOMAP(port);
-+ else if (is_pci_ioaddr(port))
-+ return *(volatile unsigned char *)pci_ioaddr(port);
- else
-- return (*port2adr(port))&0xff;
-+ return (*port2adr(port)) & 0xff;
- }
-
--
- unsigned char snapgear_inb_p(unsigned long port)
- {
- unsigned char v;
-
- if (PXSEG(port))
- v = *(volatile unsigned char *)port;
-- else if (CHECK_SH7751_PCIIO(port))
-- v = *(volatile unsigned char *)PCI_IOMAP(port);
-+ else if (is_pci_ioaddr(port))
-+ v = *(volatile unsigned char *)pci_ioaddr(port);
- else
-- v = (*port2adr(port))&0xff;
-- delay();
-+ v = (*port2adr(port))&0xff;
-+ ctrl_delay();
- return v;
- }
-
--
- unsigned short snapgear_inw(unsigned long port)
- {
- if (PXSEG(port))
- return *(volatile unsigned short *)port;
-- else if (CHECK_SH7751_PCIIO(port))
-- return *(volatile unsigned short *)PCI_IOMAP(port);
-+ else if (is_pci_ioaddr(port))
-+ return *(volatile unsigned short *)pci_ioaddr(port);
- else if (port >= 0x2000)
- return *port2adr(port);
- else
-- maybebadio(inw, port);
-+ maybebadio(port);
- return 0;
- }
-
--
- unsigned int snapgear_inl(unsigned long port)
- {
- if (PXSEG(port))
- return *(volatile unsigned long *)port;
-- else if (CHECK_SH7751_PCIIO(port))
-- return *(volatile unsigned int *)PCI_IOMAP(port);
-+ else if (is_pci_ioaddr(port))
-+ return *(volatile unsigned int *)pci_ioaddr(port);
- else if (port >= 0x2000)
- return *port2adr(port);
- else
-- maybebadio(inl, port);
-+ maybebadio(port);
- return 0;
- }
-
--
- void snapgear_outb(unsigned char value, unsigned long port)
- {
-
- if (PXSEG(port))
- *(volatile unsigned char *)port = value;
-- else if (CHECK_SH7751_PCIIO(port))
-- *((unsigned char*)PCI_IOMAP(port)) = value;
-+ else if (is_pci_ioaddr(port))
-+ *((unsigned char*)pci_ioaddr(port)) = value;
- else
- *(port2adr(port)) = value;
- }
-
--
- void snapgear_outb_p(unsigned char value, unsigned long port)
- {
- if (PXSEG(port))
- *(volatile unsigned char *)port = value;
-- else if (CHECK_SH7751_PCIIO(port))
-- *((unsigned char*)PCI_IOMAP(port)) = value;
-+ else if (is_pci_ioaddr(port))
-+ *((unsigned char*)pci_ioaddr(port)) = value;
- else
- *(port2adr(port)) = value;
-- delay();
-+ ctrl_delay();
- }
-
--
- void snapgear_outw(unsigned short value, unsigned long port)
- {
- if (PXSEG(port))
- *(volatile unsigned short *)port = value;
-- else if (CHECK_SH7751_PCIIO(port))
-- *((unsigned short *)PCI_IOMAP(port)) = value;
-+ else if (is_pci_ioaddr(port))
-+ *((unsigned short *)pci_ioaddr(port)) = value;
- else if (port >= 0x2000)
- *port2adr(port) = value;
- else
-- maybebadio(outw, port);
-+ maybebadio(port);
- }
-
--
- void snapgear_outl(unsigned int value, unsigned long port)
- {
- if (PXSEG(port))
- *(volatile unsigned long *)port = value;
-- else if (CHECK_SH7751_PCIIO(port))
-- *((unsigned long*)PCI_IOMAP(port)) = value;
-+ else if (is_pci_ioaddr(port))
-+ *((unsigned long*)pci_ioaddr(port)) = value;
- else
-- maybebadio(outl, port);
-+ maybebadio(port);
- }
-
- void snapgear_insl(unsigned long port, void *addr, unsigned long count)
- {
-- maybebadio(insl, port);
-+ maybebadio(port);
- }
-
- void snapgear_outsl(unsigned long port, const void *addr, unsigned long count)
- {
-- maybebadio(outsw, port);
--}
--
--/* Map ISA bus address to the real address. Only for PCMCIA. */
--
--
--/* ISA page descriptor. */
--static __u32 sh_isa_memmap[256];
--
--
--#if 0
--static int sh_isa_mmap(__u32 start, __u32 length, __u32 offset)
--{
-- int idx;
--
-- if (start >= 0x100000 || (start & 0xfff) || (length != 0x1000))
-- return -1;
--
-- idx = start >> 12;
-- sh_isa_memmap[idx] = 0xb8000000 + (offset &~ 0xfff);
--#if 0
-- printk("sh_isa_mmap: start %x len %x offset %x (idx %x paddr %x)\n",
-- start, length, offset, idx, sh_isa_memmap[idx]);
--#endif
-- return 0;
--}
--#endif
--
--unsigned long snapgear_isa_port2addr(unsigned long offset)
--{
-- int idx;
--
-- idx = (offset >> 12) & 0xff;
-- offset &= 0xfff;
-- return sh_isa_memmap[idx] + offset;
-+ maybebadio(port);
- }
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/snapgear/rtc.c linux-2.6.17/arch/sh/boards/snapgear/rtc.c
---- linux-2.6.17-vanilla/arch/sh/boards/snapgear/rtc.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/snapgear/rtc.c 2006-07-12 16:54:20.000000000 +0000
-@@ -17,10 +17,7 @@
- #include <linux/time.h>
- #include <linux/rtc.h>
- #include <linux/mc146818rtc.h>
--
- #include <asm/io.h>
--#include <asm/rtc.h>
--#include <asm/mc146818rtc.h>
-
- /****************************************************************************/
-
-@@ -168,11 +165,11 @@
- }
-
- if (use_ds1302) {
-- rtc_get_time = snapgear_rtc_gettimeofday;
-- rtc_set_time = snapgear_rtc_settimeofday;
-+ rtc_sh_get_time = snapgear_rtc_gettimeofday;
-+ rtc_sh_set_time = snapgear_rtc_settimeofday;
- } else {
-- rtc_get_time = sh_rtc_gettimeofday;
-- rtc_set_time = sh_rtc_settimeofday;
-+ rtc_sh_get_time = sh_rtc_gettimeofday;
-+ rtc_sh_set_time = sh_rtc_settimeofday;
- }
-
- printk("SnapGear RTC: using %s rtc.\n", use_ds1302 ? "ds1302" : "internal");
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/snapgear/setup.c linux-2.6.17/arch/sh/boards/snapgear/setup.c
---- linux-2.6.17-vanilla/arch/sh/boards/snapgear/setup.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/snapgear/setup.c 2006-07-12 16:54:20.000000000 +0000
-@@ -1,5 +1,4 @@
--/****************************************************************************/
--/*
-+/*
- * linux/arch/sh/boards/snapgear/setup.c
- *
- * Copyright (C) 2002 David McCullough <davidm@snapgear.com>
-@@ -12,8 +11,6 @@
- * Modified for 7751 Solution Engine by
- * Ian da Silva and Jeremy Siegel, 2001.
- */
--/****************************************************************************/
--
- #include <linux/config.h>
- #include <linux/init.h>
- #include <linux/irq.h>
-@@ -22,14 +19,13 @@
- #include <linux/delay.h>
- #include <linux/module.h>
- #include <linux/sched.h>
--
- #include <asm/machvec.h>
--#include <asm/mach/io.h>
-+#include <asm/snapgear.h>
- #include <asm/irq.h>
- #include <asm/io.h>
-+#include <asm/rtc.h>
- #include <asm/cpu/timer.h>
-
--extern void (*board_time_init)(void);
- extern void secureedge5410_rtc_init(void);
- extern void pcibios_init(void);
-
-@@ -86,91 +82,6 @@
- make_ipr_irq(IRL3_IRQ, IRL3_IPR_ADDR, IRL3_IPR_POS, IRL3_PRIORITY);
- }
-
--/****************************************************************************/
--/*
-- * Fast poll interrupt simulator.
-- */
--
--/*
-- * Leave all of the fast timer/fast poll stuff commented out for now, since
-- * it's not clear whether it actually works or not. Since it wasn't being used
-- * at all in 2.4, we'll assume it's not sane for 2.6 either.. -- PFM
-- */
--#if 0
--#define FAST_POLL 1000
--//#define FAST_POLL_INTR
--
--#define FASTTIMER_IRQ 17
--#define FASTTIMER_IPR_ADDR INTC_IPRA
--#define FASTTIMER_IPR_POS 2
--#define FASTTIMER_PRIORITY 3
--
--#ifdef FAST_POLL_INTR
--#define TMU1_TCR_INIT 0x0020
--#else
--#define TMU1_TCR_INIT 0
--#endif
--#define TMU_TSTR_INIT 1
--#define TMU1_TCR_CALIB 0x0000
--
--
--#ifdef FAST_POLL_INTR
--static void fast_timer_irq(int irq, void *dev_instance, struct pt_regs *regs)
--{
-- unsigned long timer_status;
-- timer_status = ctrl_inw(TMU1_TCR);
-- timer_status &= ~0x100;
-- ctrl_outw(timer_status, TMU1_TCR);
--}
--#endif
--
--/*
-- * return the current ticks on the fast timer
-- */
--
--unsigned long fast_timer_count(void)
--{
-- return(ctrl_inl(TMU1_TCNT));
--}
--
--/*
-- * setup a fast timer for profiling etc etc
-- */
--
--static void setup_fast_timer()
--{
-- unsigned long interval;
--
--#ifdef FAST_POLL_INTR
-- interval = (current_cpu_data.module_clock/4 + FAST_POLL/2) / FAST_POLL;
--
-- make_ipr_irq(FASTTIMER_IRQ, FASTTIMER_IPR_ADDR, FASTTIMER_IPR_POS,
-- FASTTIMER_PRIORITY);
--
-- printk("SnapGear: %dHz fast timer on IRQ %d\n",FAST_POLL,FASTTIMER_IRQ);
--
-- if (request_irq(FASTTIMER_IRQ, fast_timer_irq, 0, "SnapGear fast timer",
-- NULL) != 0)
-- printk("%s(%d): request_irq() failed?\n", __FILE__, __LINE__);
--#else
-- printk("SnapGear: fast timer running\n",FAST_POLL,FASTTIMER_IRQ);
-- interval = 0xffffffff;
--#endif
--
-- ctrl_outb(ctrl_inb(TMU_TSTR) & ~0x2, TMU_TSTR); /* disable timer 1 */
-- ctrl_outw(TMU1_TCR_INIT, TMU1_TCR);
-- ctrl_outl(interval, TMU1_TCOR);
-- ctrl_outl(interval, TMU1_TCNT);
-- ctrl_outb(ctrl_inb(TMU_TSTR) | 0x2, TMU_TSTR); /* enable timer 1 */
--
-- printk("Timer count 1 = 0x%x\n", fast_timer_count());
-- udelay(1000);
-- printk("Timer count 2 = 0x%x\n", fast_timer_count());
--}
--#endif
--
--/****************************************************************************/
--
- const char *get_system_type(void)
- {
- return "SnapGear SecureEdge5410";
-@@ -197,8 +108,6 @@
- .mv_outw_p = snapgear_outw,
- .mv_outl_p = snapgear_outl,
-
-- .mv_isa_port2addr = snapgear_isa_port2addr,
--
- .mv_init_irq = init_snapgear_IRQ,
- };
- ALIAS_MV(snapgear)
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/superh/CVS/Entries linux-2.6.17/arch/sh/boards/superh/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/superh/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/superh/CVS/Entries 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+D/microdev////
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/superh/CVS/Repository linux-2.6.17/arch/sh/boards/superh/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/superh/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/superh/CVS/Repository 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/superh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/superh/CVS/Root linux-2.6.17/arch/sh/boards/superh/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/superh/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/superh/CVS/Root 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/superh/microdev/CVS/Entries linux-2.6.17/arch/sh/boards/superh/microdev/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/superh/microdev/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/superh/microdev/CVS/Entries 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1,6 @@
-+/Makefile/1.1/Wed Aug 4 01:04:30 2004//
-+/io.c/1.3/Wed Jan 4 17:14:53 2006//
-+/irq.c/1.3/Sat Dec 17 23:34:08 2005//
-+/led.c/1.1/Wed Aug 4 01:04:30 2004//
-+/setup.c/1.7/Tue Jan 3 22:35:50 2006//
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/superh/microdev/CVS/Repository linux-2.6.17/arch/sh/boards/superh/microdev/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/superh/microdev/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/superh/microdev/CVS/Repository 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/superh/microdev
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/superh/microdev/CVS/Root linux-2.6.17/arch/sh/boards/superh/microdev/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/superh/microdev/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/superh/microdev/CVS/Root 2006-07-12 16:54:20.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/superh/microdev/setup.c linux-2.6.17/arch/sh/boards/superh/microdev/setup.c
---- linux-2.6.17-vanilla/arch/sh/boards/superh/microdev/setup.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/superh/microdev/setup.c 2006-07-12 16:54:21.000000000 +0000
-@@ -398,7 +398,7 @@
- /* enable the appropriate GPIO pins for IDE functionality:
- * bit[0] In/Out 1==input; 0==output
- * bit[1] Polarity 1==invert; 0==no invert
-- * bit[2] Int Enb #1 1==Enable Combined IRQ #1; 0==disable
-+ * bit[2] Int Enb #1 1==Enable Combined IRQ #1; 0==disable
- * bit[3:4] Function Select 00==original; 01==Alternate Function #1
- */
- SMSC_WRITE_INDEXED(0x00, 0xc2); /* GP42 = nIDE1_OE */
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/titan/CVS/Entries linux-2.6.17/arch/sh/boards/titan/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/titan/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/titan/CVS/Entries 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,4 @@
-+/Makefile/1.1/Wed Nov 9 14:56:34 2005/-ko/
-+/io.c/1.6/Sun Feb 5 21:55:29 2006/-ko/
-+/setup.c/1.3/Tue Jan 3 22:51:46 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/titan/CVS/Repository linux-2.6.17/arch/sh/boards/titan/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/titan/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/titan/CVS/Repository 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/titan
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/titan/CVS/Root linux-2.6.17/arch/sh/boards/titan/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/titan/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/titan/CVS/Root 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/titan/Makefile linux-2.6.17/arch/sh/boards/titan/Makefile
---- linux-2.6.17-vanilla/arch/sh/boards/titan/Makefile 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/titan/Makefile 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,5 @@
-+#
-+# Makefile for the Nimble Microsystems TITAN specific parts of the kernel
-+#
-+
-+obj-y := setup.o io.o
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/titan/io.c linux-2.6.17/arch/sh/boards/titan/io.c
---- linux-2.6.17-vanilla/arch/sh/boards/titan/io.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/titan/io.c 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,126 @@
-+/*
-+ * I/O routines for Titan
-+ */
-+#include <linux/pci.h>
-+#include <asm/machvec.h>
-+#include <asm/addrspace.h>
-+#include <asm/titan.h>
-+#include <asm/io.h>
-+
-+static inline unsigned int port2adr(unsigned int port)
-+{
-+ maybebadio((unsigned long)port);
-+ return port;
-+}
-+
-+u8 titan_inb(unsigned long port)
-+{
-+ if (PXSEG(port))
-+ return ctrl_inb(port);
-+ else if (is_pci_ioaddr(port))
-+ return ctrl_inb(pci_ioaddr(port));
-+ return ctrl_inw(port2adr(port)) & 0xff;
-+}
-+
-+u8 titan_inb_p(unsigned long port)
-+{
-+ u8 v;
-+
-+ if (PXSEG(port))
-+ v = ctrl_inb(port);
-+ else if (is_pci_ioaddr(port))
-+ v = ctrl_inb(pci_ioaddr(port));
-+ else
-+ v = ctrl_inw(port2adr(port)) & 0xff;
-+ ctrl_delay();
-+ return v;
-+}
-+
-+u16 titan_inw(unsigned long port)
-+{
-+ if (PXSEG(port))
-+ return ctrl_inw(port);
-+ else if (is_pci_ioaddr(port))
-+ return ctrl_inw(pci_ioaddr(port));
-+ else if (port >= 0x2000)
-+ return ctrl_inw(port2adr(port));
-+ else
-+ maybebadio(port);
-+ return 0;
-+}
-+
-+u32 titan_inl(unsigned long port)
-+{
-+ if (PXSEG(port))
-+ return ctrl_inl(port);
-+ else if (is_pci_ioaddr(port))
-+ return ctrl_inl(pci_ioaddr(port));
-+ else if (port >= 0x2000)
-+ return ctrl_inw(port2adr(port));
-+ else
-+ maybebadio(port);
-+ return 0;
-+}
-+
-+void titan_outb(u8 value, unsigned long port)
-+{
-+ if (PXSEG(port))
-+ ctrl_outb(value, port);
-+ else if (is_pci_ioaddr(port))
-+ ctrl_outb(value, pci_ioaddr(port));
-+ else
-+ ctrl_outw(value, port2adr(port));
-+}
-+
-+void titan_outb_p(u8 value, unsigned long port)
-+{
-+ if (PXSEG(port))
-+ ctrl_outb(value, port);
-+ else if (is_pci_ioaddr(port))
-+ ctrl_outb(value, pci_ioaddr(port));
-+ else
-+ ctrl_outw(value, port2adr(port));
-+ ctrl_delay();
-+}
-+
-+void titan_outw(u16 value, unsigned long port)
-+{
-+ if (PXSEG(port))
-+ ctrl_outw(value, port);
-+ else if (is_pci_ioaddr(port))
-+ ctrl_outw(value, pci_ioaddr(port));
-+ else if (port >= 0x2000)
-+ ctrl_outw(value, port2adr(port));
-+ else
-+ maybebadio(port);
-+}
-+
-+void titan_outl(u32 value, unsigned long port)
-+{
-+ if (PXSEG(port))
-+ ctrl_outl(value, port);
-+ else if (is_pci_ioaddr(port))
-+ ctrl_outl(value, pci_ioaddr(port));
-+ else
-+ maybebadio(port);
-+}
-+
-+void titan_insl(unsigned long port, void *dst, unsigned long count)
-+{
-+ maybebadio(port);
-+}
-+
-+void titan_outsl(unsigned long port, const void *src, unsigned long count)
-+{
-+ maybebadio(port);
-+}
-+
-+void __iomem *titan_ioport_map(unsigned long port, unsigned int size)
-+{
-+ if (PXSEG(port) || is_pci_memaddr(port))
-+ return (void __iomem *)port;
-+ else if (is_pci_ioaddr(port))
-+ return (void __iomem *)pci_ioaddr(port);
-+
-+ return (void __iomem *)port2adr(port);
-+}
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/titan/setup.c linux-2.6.17/arch/sh/boards/titan/setup.c
---- linux-2.6.17-vanilla/arch/sh/boards/titan/setup.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/titan/setup.c 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,59 @@
-+/*
-+ * Setup for Titan
-+ */
-+
-+#include <linux/init.h>
-+#include <asm/irq.h>
-+#include <asm/titan.h>
-+#include <asm/io.h>
-+
-+extern void __init pcibios_init_platform(void);
-+
-+static void __init init_titan_irq(void)
-+{
-+ /* enable individual interrupt mode for externals */
-+ ctrl_outw(ctrl_inw(INTC_ICR) | INTC_ICR_IRLM, INTC_ICR);
-+
-+ make_ipr_irq( TITAN_IRQ_WAN, IRL0_IPR_ADDR, IRL0_IPR_POS, IRL0_PRIORITY); /* PCIRQ0 */
-+ make_ipr_irq( TITAN_IRQ_LAN, IRL1_IPR_ADDR, IRL1_IPR_POS, IRL1_PRIORITY); /* PCIRQ1 */
-+ make_ipr_irq( TITAN_IRQ_MPCIA, IRL2_IPR_ADDR, IRL2_IPR_POS, IRL2_PRIORITY); /* PCIRQ2 */
-+ make_ipr_irq( TITAN_IRQ_USB, IRL3_IPR_ADDR, IRL3_IPR_POS, IRL3_PRIORITY); /* PCIRQ3 */
-+}
-+
-+const char *get_system_type(void)
-+{
-+ return "Titan";
-+}
-+
-+int __init platform_setup(void)
-+{
-+ printk("%s Platform Setup\n", get_system_type());
-+ return 0;
-+}
-+
-+struct sh_machine_vector mv_titan __initmv = {
-+ .mv_nr_irqs = NR_IRQS,
-+
-+ .mv_inb = titan_inb,
-+ .mv_inw = titan_inw,
-+ .mv_inl = titan_inl,
-+ .mv_outb = titan_outb,
-+ .mv_outw = titan_outw,
-+ .mv_outl = titan_outl,
-+
-+ .mv_inb_p = titan_inb_p,
-+ .mv_inw_p = titan_inw,
-+ .mv_inl_p = titan_inl,
-+ .mv_outb_p = titan_outb_p,
-+ .mv_outw_p = titan_outw,
-+ .mv_outl_p = titan_outl,
-+
-+ .mv_insl = titan_insl,
-+ .mv_outsl = titan_outsl,
-+
-+ .mv_ioport_map = titan_ioport_map,
-+
-+ .mv_init_irq = init_titan_irq,
-+ .mv_init_pci = pcibios_init_platform,
-+};
-+ALIAS_MV(titan)
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/unknown/CVS/Entries linux-2.6.17/arch/sh/boards/unknown/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boards/unknown/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/unknown/CVS/Entries 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,3 @@
-+/Makefile/1.5/Tue Nov 8 19:55:58 2005//
-+/setup.c/1.3/Tue Nov 8 19:55:58 2005//
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/unknown/CVS/Repository linux-2.6.17/arch/sh/boards/unknown/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boards/unknown/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/unknown/CVS/Repository 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boards/unknown
-diff -ruN linux-2.6.17-vanilla/arch/sh/boards/unknown/CVS/Root linux-2.6.17/arch/sh/boards/unknown/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boards/unknown/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boards/unknown/CVS/Root 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boot/.cvsignore linux-2.6.17/arch/sh/boot/.cvsignore
---- linux-2.6.17-vanilla/arch/sh/boot/.cvsignore 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boot/.cvsignore 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+zImage
-diff -ruN linux-2.6.17-vanilla/arch/sh/boot/CVS/Entries linux-2.6.17/arch/sh/boot/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boot/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boot/CVS/Entries 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,3 @@
-+/.cvsignore/1.1.1.1/Mon Oct 15 20:44:47 2001//
-+/Makefile/1.9/Wed Jun 16 15:21:46 2004/-ko/
-+D/compressed////
-diff -ruN linux-2.6.17-vanilla/arch/sh/boot/CVS/Repository linux-2.6.17/arch/sh/boot/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boot/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boot/CVS/Repository 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boot
-diff -ruN linux-2.6.17-vanilla/arch/sh/boot/CVS/Root linux-2.6.17/arch/sh/boot/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boot/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boot/CVS/Root 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/boot/compressed/.cvsignore linux-2.6.17/arch/sh/boot/compressed/.cvsignore
---- linux-2.6.17-vanilla/arch/sh/boot/compressed/.cvsignore 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boot/compressed/.cvsignore 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,3 @@
-+vmlinux
-+vmlinux.bin
-+vmlinux.bin.gz
-diff -ruN linux-2.6.17-vanilla/arch/sh/boot/compressed/CVS/Entries linux-2.6.17/arch/sh/boot/compressed/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/boot/compressed/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boot/compressed/CVS/Entries 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,6 @@
-+/.cvsignore/1.2/Sat May 10 03:22:05 2003//
-+/Makefile/1.13/Mon Oct 25 10:41:02 2004//
-+/head.S/1.3/Mon Aug 11 07:14:13 2003/-ko/
-+/misc.c/1.4/Mon May 31 21:20:29 2004/-ko/
-+/vmlinux.scr/1.1/Sat May 10 03:22:05 2003//
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/boot/compressed/CVS/Repository linux-2.6.17/arch/sh/boot/compressed/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/boot/compressed/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boot/compressed/CVS/Repository 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/boot/compressed
-diff -ruN linux-2.6.17-vanilla/arch/sh/boot/compressed/CVS/Root linux-2.6.17/arch/sh/boot/compressed/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/boot/compressed/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/boot/compressed/CVS/Root 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/cchips/CVS/Entries linux-2.6.17/arch/sh/cchips/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/cchips/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/cchips/CVS/Entries 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,3 @@
-+/Kconfig/1.5/Wed Jan 4 16:34:31 2006//
-+D/hd6446x////
-+D/voyagergx////
-diff -ruN linux-2.6.17-vanilla/arch/sh/cchips/CVS/Repository linux-2.6.17/arch/sh/cchips/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/cchips/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/cchips/CVS/Repository 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/cchips
-diff -ruN linux-2.6.17-vanilla/arch/sh/cchips/CVS/Root linux-2.6.17/arch/sh/cchips/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/cchips/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/cchips/CVS/Root 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/cchips/Kconfig linux-2.6.17/arch/sh/cchips/Kconfig
---- linux-2.6.17-vanilla/arch/sh/cchips/Kconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/cchips/Kconfig 2006-07-12 16:54:21.000000000 +0000
-@@ -65,6 +65,11 @@
-
- Do not change this unless you know what you are doing.
-
-+config HD64461_IOBASE
-+ hex "HD64461 start address"
-+ depends on HD64461
-+ default "0xb0000000"
-+
- config HD64461_ENABLER
- bool "HD64461 PCMCIA enabler"
- depends on HD64461
-@@ -73,7 +78,6 @@
- via the HD64461 companion chip.
- Otherwise, say N.
-
--
- config HD64465_IOBASE
- hex "HD64465 start address"
- depends on HD64465
-diff -ruN linux-2.6.17-vanilla/arch/sh/cchips/hd6446x/CVS/Entries linux-2.6.17/arch/sh/cchips/hd6446x/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/cchips/hd6446x/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/cchips/hd6446x/CVS/Entries 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,2 @@
-+D/hd64461////
-+D/hd64465////
-diff -ruN linux-2.6.17-vanilla/arch/sh/cchips/hd6446x/CVS/Repository linux-2.6.17/arch/sh/cchips/hd6446x/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/cchips/hd6446x/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/cchips/hd6446x/CVS/Repository 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/cchips/hd6446x
-diff -ruN linux-2.6.17-vanilla/arch/sh/cchips/hd6446x/CVS/Root linux-2.6.17/arch/sh/cchips/hd6446x/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/cchips/hd6446x/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/cchips/hd6446x/CVS/Root 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/cchips/hd6446x/hd64461/CVS/Entries linux-2.6.17/arch/sh/cchips/hd6446x/hd64461/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/cchips/hd6446x/hd64461/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/cchips/hd6446x/hd64461/CVS/Entries 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,4 @@
-+/Makefile/1.4/Thu Mar 11 18:08:03 2004//
-+/io.c/1.8/Sun Feb 5 21:55:29 2006//
-+/setup.c/1.7/Wed Jan 4 14:53:18 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/cchips/hd6446x/hd64461/CVS/Repository linux-2.6.17/arch/sh/cchips/hd6446x/hd64461/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/cchips/hd6446x/hd64461/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/cchips/hd6446x/hd64461/CVS/Repository 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/cchips/hd6446x/hd64461
-diff -ruN linux-2.6.17-vanilla/arch/sh/cchips/hd6446x/hd64461/CVS/Root linux-2.6.17/arch/sh/cchips/hd6446x/hd64461/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/cchips/hd6446x/hd64461/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/cchips/hd6446x/hd64461/CVS/Root 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/cchips/hd6446x/hd64461/io.c linux-2.6.17/arch/sh/cchips/hd6446x/hd64461/io.c
---- linux-2.6.17-vanilla/arch/sh/cchips/hd6446x/hd64461/io.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/cchips/hd6446x/hd64461/io.c 2006-07-12 16:54:21.000000000 +0000
-@@ -1,12 +1,12 @@
- /*
-- * $Id: io.c,v 1.6 2004/03/16 00:07:50 lethal Exp $
-+ * $Id: io.c,v 1.8 2006/02/05 21:55:29 lethal Exp $
- * Copyright (C) 2000 YAEGASHI Takeshi
- * Typical I/O routines for HD64461 system.
- */
-
- #include <linux/config.h>
- #include <asm/io.h>
--#include <asm/hd64461/hd64461.h>
-+#include <asm/hd64461.h>
-
- #define MEM_BASE (CONFIG_HD64461_IOBASE - HD64461_STBCR)
-
-@@ -55,11 +55,6 @@
- return 0xa0000000 + (port & 0x1fffffff);
- }
-
--static inline void delay(void)
--{
-- ctrl_inw(0xa0000000);
--}
--
- unsigned char hd64461_inb(unsigned long port)
- {
- return *(volatile unsigned char*)PORT2ADDR(port);
-@@ -68,7 +63,7 @@
- unsigned char hd64461_inb_p(unsigned long port)
- {
- unsigned long v = *(volatile unsigned char*)PORT2ADDR(port);
-- delay();
-+ ctrl_delay();
- return v;
- }
-
-@@ -90,7 +85,7 @@
- void hd64461_outb_p(unsigned char b, unsigned long port)
- {
- *(volatile unsigned char*)PORT2ADDR(port) = b;
-- delay();
-+ ctrl_delay();
- }
-
- void hd64461_outw(unsigned short b, unsigned long port)
-@@ -145,13 +140,13 @@
- while(count--) *addr=*buf++;
- }
-
--unsigned short hd64461_readw(unsigned long addr)
-+unsigned short hd64461_readw(void __iomem *addr)
- {
-- return *(volatile unsigned short*)(MEM_BASE+addr);
-+ return ctrl_inw(MEM_BASE+(unsigned long __force)addr);
- }
-
--void hd64461_writew(unsigned short b, unsigned long addr)
-+void hd64461_writew(unsigned short b, void __iomem *addr)
- {
-- *(volatile unsigned short*)(MEM_BASE+addr) = b;
-+ ctrl_outw(b, MEM_BASE+(unsigned long __force)addr);
- }
-
-diff -ruN linux-2.6.17-vanilla/arch/sh/cchips/hd6446x/hd64461/setup.c linux-2.6.17/arch/sh/cchips/hd6446x/hd64461/setup.c
---- linux-2.6.17-vanilla/arch/sh/cchips/hd6446x/hd64461/setup.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/cchips/hd6446x/hd64461/setup.c 2006-07-12 16:54:21.000000000 +0000
-@@ -15,8 +15,7 @@
-
- #include <asm/io.h>
- #include <asm/irq.h>
--
--#include <asm/hd64461/hd64461.h>
-+#include <asm/hd64461.h>
-
- static void disable_hd64461_irq(unsigned int irq)
- {
-diff -ruN linux-2.6.17-vanilla/arch/sh/cchips/hd6446x/hd64465/CVS/Entries linux-2.6.17/arch/sh/cchips/hd6446x/hd64465/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/cchips/hd6446x/hd64465/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/cchips/hd6446x/hd64465/CVS/Entries 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,5 @@
-+/Makefile/1.4/Thu Mar 11 18:08:03 2004//
-+/gpio.c/1.4/Mon May 19 22:24:18 2003//
-+/io.c/1.5/Tue Mar 8 06:46:56 2005/-ko/
-+/setup.c/1.5/Sun Aug 15 16:59:26 2004/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/cchips/hd6446x/hd64465/CVS/Repository linux-2.6.17/arch/sh/cchips/hd6446x/hd64465/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/cchips/hd6446x/hd64465/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/cchips/hd6446x/hd64465/CVS/Repository 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/cchips/hd6446x/hd64465
-diff -ruN linux-2.6.17-vanilla/arch/sh/cchips/hd6446x/hd64465/CVS/Root linux-2.6.17/arch/sh/cchips/hd6446x/hd64465/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/cchips/hd6446x/hd64465/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/cchips/hd6446x/hd64465/CVS/Root 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/cchips/voyagergx/CVS/Entries linux-2.6.17/arch/sh/cchips/voyagergx/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/cchips/voyagergx/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/cchips/voyagergx/CVS/Entries 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,5 @@
-+/Makefile/1.2/Tue May 31 14:33:28 2005/-ko/
-+/consistent.c/1.5/Fri Jan 27 16:11:52 2006/-ko/
-+/irq.c/1.5/Wed Feb 8 22:08:10 2006/-ko/
-+/setup.c/1.2/Wed Feb 8 22:08:10 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/cchips/voyagergx/CVS/Repository linux-2.6.17/arch/sh/cchips/voyagergx/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/cchips/voyagergx/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/cchips/voyagergx/CVS/Repository 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/cchips/voyagergx
-diff -ruN linux-2.6.17-vanilla/arch/sh/cchips/voyagergx/CVS/Root linux-2.6.17/arch/sh/cchips/voyagergx/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/cchips/voyagergx/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/cchips/voyagergx/CVS/Root 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/cchips/voyagergx/Makefile linux-2.6.17/arch/sh/cchips/voyagergx/Makefile
---- linux-2.6.17-vanilla/arch/sh/cchips/voyagergx/Makefile 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/cchips/voyagergx/Makefile 2006-07-12 16:54:21.000000000 +0000
-@@ -4,5 +4,5 @@
-
- obj-y := irq.o setup.o
-
--obj-$(CONFIG_USB_OHCI_HCD) += consistent.o
-+obj-$(CONFIG_USB_SM501) += consistent.o
-
-diff -ruN linux-2.6.17-vanilla/arch/sh/cchips/voyagergx/irq.c linux-2.6.17/arch/sh/cchips/voyagergx/irq.c
---- linux-2.6.17-vanilla/arch/sh/cchips/voyagergx/irq.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/cchips/voyagergx/irq.c 2006-07-12 16:54:21.000000000 +0000
-@@ -33,8 +33,7 @@
-
- #include <asm/io.h>
- #include <asm/irq.h>
--#include <asm/rts7751r2d/rts7751r2d.h>
--#include <asm/rts7751r2d/voyagergx_reg.h>
-+#include <asm/mach/voyagergx_reg.h>
-
- static void disable_voyagergx_irq(unsigned int irq)
- {
-diff -ruN linux-2.6.17-vanilla/arch/sh/cchips/voyagergx/setup.c linux-2.6.17/arch/sh/cchips/voyagergx/setup.c
---- linux-2.6.17-vanilla/arch/sh/cchips/voyagergx/setup.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/cchips/voyagergx/setup.c 2006-07-12 16:54:21.000000000 +0000
-@@ -13,7 +13,7 @@
- #include <linux/init.h>
- #include <linux/module.h>
- #include <asm/io.h>
--#include <asm/rts7751r2d/voyagergx_reg.h>
-+#include <asm/mach/voyagergx_reg.h>
-
- static int __init setup_voyagergx(void)
- {
-diff -ruN linux-2.6.17-vanilla/arch/sh/configs/CVS/Entries linux-2.6.17/arch/sh/configs/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/configs/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/configs/CVS/Entries 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,19 @@
-+/adx_defconfig/1.3/Wed Oct 5 21:34:14 2005//
-+/cqreek_defconfig/1.3/Wed Oct 5 21:34:14 2005//
-+/dreamcast_defconfig/1.8/Wed Jan 4 19:03:16 2006//
-+/hs7751rvoip_defconfig/1.4/Wed Jan 4 19:03:16 2006//
-+/landisk_defconfig/1.4/Sun Dec 18 00:20:37 2005/-ko/
-+/microdev_defconfig/1.7/Wed Jan 4 19:03:16 2006/-ko/
-+/rts7751r2d_defconfig/1.6/Wed Jan 4 19:03:16 2006/-ko/
-+/se7300_defconfig/1.5/Wed Jan 4 19:03:16 2006//
-+/se73180_defconfig/1.7/Sun Jan 8 12:22:57 2006//
-+/se7705_defconfig/1.4/Wed Jan 4 19:03:16 2006/-ko/
-+/se7750_defconfig/1.4/Wed Jan 4 19:03:16 2006/-ko/
-+/se7751_defconfig/1.4/Wed Jan 4 19:03:16 2006//
-+/sh03_defconfig/1.4/Wed Jan 4 19:03:16 2006/-ko/
-+/snapgear_defconfig/1.5/Wed Jan 4 19:03:16 2006//
-+/systemh_defconfig/1.4/Wed Jan 4 19:03:16 2006//
-+/r7780rp_defconfig/1.2/Wed Jul 5 14:50:34 2006/-ko/
-+/hp6xx_defconfig/1.8/Thu Jul 6 12:38:07 2006/-ko/
-+/titan_defconfig/1.3/Thu Jul 6 18:40:37 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/configs/CVS/Repository linux-2.6.17/arch/sh/configs/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/configs/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/configs/CVS/Repository 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/configs
-diff -ruN linux-2.6.17-vanilla/arch/sh/configs/CVS/Root linux-2.6.17/arch/sh/configs/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/configs/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/configs/CVS/Root 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/configs/adx_defconfig linux-2.6.17/arch/sh/configs/adx_defconfig
---- linux-2.6.17-vanilla/arch/sh/configs/adx_defconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/configs/adx_defconfig 2006-07-12 16:54:21.000000000 +0000
-@@ -1,7 +1,7 @@
- #
- # Automatically generated make config: don't edit
--# Linux kernel version: 2.6.11-sh
--# Wed Mar 2 15:09:26 2005
-+# Linux kernel version: 2.6.13-sh
-+# Thu Oct 6 00:20:11 2005
- #
- CONFIG_SUPERH=y
- CONFIG_UID16=y
-@@ -16,6 +16,7 @@
- CONFIG_EXPERIMENTAL=y
- CONFIG_CLEAN_COMPILE=y
- CONFIG_BROKEN_ON_SMP=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-
- #
- # General setup
-@@ -25,22 +26,23 @@
- # CONFIG_SYSVIPC is not set
- # CONFIG_BSD_PROCESS_ACCT is not set
- # CONFIG_SYSCTL is not set
--# CONFIG_AUDIT is not set
--CONFIG_LOG_BUF_SHIFT=14
- # CONFIG_HOTPLUG is not set
- # CONFIG_IKCONFIG is not set
- # CONFIG_EMBEDDED is not set
- CONFIG_KALLSYMS=y
- # CONFIG_KALLSYMS_EXTRA_PASS is not set
-+CONFIG_PRINTK=y
-+CONFIG_BUG=y
-+CONFIG_BASE_FULL=y
- CONFIG_FUTEX=y
- CONFIG_EPOLL=y
--# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
- CONFIG_SHMEM=y
- CONFIG_CC_ALIGN_FUNCTIONS=0
- CONFIG_CC_ALIGN_LABELS=0
- CONFIG_CC_ALIGN_LOOPS=0
- CONFIG_CC_ALIGN_JUMPS=0
- # CONFIG_TINY_SHMEM is not set
-+CONFIG_BASE_SMALL=0
-
- #
- # Loadable module support
-@@ -57,9 +59,7 @@
- # CONFIG_SH_7751_SYSTEMH is not set
- # CONFIG_SH_STB1_HARP is not set
- # CONFIG_SH_STB1_OVERDRIVE is not set
--# CONFIG_SH_HP620 is not set
--# CONFIG_SH_HP680 is not set
--# CONFIG_SH_HP690 is not set
-+# CONFIG_SH_HP6XX is not set
- # CONFIG_SH_CQREEK is not set
- # CONFIG_SH_DMIDA is not set
- # CONFIG_SH_EC3104 is not set
-@@ -76,46 +76,90 @@
- # CONFIG_SH_RTS7751R2D is not set
- # CONFIG_SH_EDOSK7705 is not set
- # CONFIG_SH_SH4202_MICRODEV is not set
-+# CONFIG_SH_LANDISK is not set
- # CONFIG_SH_UNKNOWN is not set
--# CONFIG_CPU_SH2 is not set
--# CONFIG_CPU_SH3 is not set
-+
-+#
-+# Processor selection
-+#
- CONFIG_CPU_SH4=y
-+
-+#
-+# SH-2 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7604 is not set
-+
-+#
-+# SH-3 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7300 is not set
- # CONFIG_CPU_SUBTYPE_SH7705 is not set
- # CONFIG_CPU_SUBTYPE_SH7707 is not set
- # CONFIG_CPU_SUBTYPE_SH7708 is not set
- # CONFIG_CPU_SUBTYPE_SH7709 is not set
-+
-+#
-+# SH-4 Processor Support
-+#
- CONFIG_CPU_SUBTYPE_SH7750=y
-+# CONFIG_CPU_SUBTYPE_SH7091 is not set
-+# CONFIG_CPU_SUBTYPE_SH7750R is not set
-+# CONFIG_CPU_SUBTYPE_SH7750S is not set
- # CONFIG_CPU_SUBTYPE_SH7751 is not set
-+# CONFIG_CPU_SUBTYPE_SH7751R is not set
- # CONFIG_CPU_SUBTYPE_SH7760 is not set
--# CONFIG_CPU_SUBTYPE_SH73180 is not set
-+# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+
-+#
-+# ST40 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_ST40STB1 is not set
- # CONFIG_CPU_SUBTYPE_ST40GX1 is not set
--# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+
-+#
-+# SH-4A Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_SH73180 is not set
-+# CONFIG_CPU_SUBTYPE_SH7770 is not set
-+# CONFIG_CPU_SUBTYPE_SH7780 is not set
-+
-+#
-+# Memory management options
-+#
- CONFIG_MMU=y
--# CONFIG_CMDLINE_BOOL is not set
-+CONFIG_SELECT_MEMORY_MODEL=y
-+CONFIG_FLATMEM_MANUAL=y
-+# CONFIG_DISCONTIGMEM_MANUAL is not set
-+# CONFIG_SPARSEMEM_MANUAL is not set
-+CONFIG_FLATMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+
-+#
-+# Cache configuration
-+#
-+# CONFIG_SH_DIRECT_MAPPED is not set
-+# CONFIG_SH_WRITETHROUGH is not set
-+# CONFIG_SH_OCRAM is not set
- CONFIG_MEMORY_START=0x08000000
- CONFIG_MEMORY_SIZE=0x00400000
--CONFIG_MEMORY_SET=y
--# CONFIG_MEMORY_OVERRIDE is not set
- CONFIG_CF_ENABLER=y
- # CONFIG_CF_AREA5 is not set
- CONFIG_CF_AREA6=y
- CONFIG_CF_BASE_ADDR=0xb8000000
-+
-+#
-+# Processor features
-+#
-+CONFIG_CPU_LITTLE_ENDIAN=y
- CONFIG_SH_RTC=y
- CONFIG_SH_FPU=y
--CONFIG_ZERO_PAGE_OFFSET=0x00001000
--CONFIG_BOOT_LINK_OFFSET=0x00800000
--CONFIG_CPU_LITTLE_ENDIAN=y
--# CONFIG_PREEMPT is not set
--# CONFIG_UBC_WAKEUP is not set
--# CONFIG_SH_WRITETHROUGH is not set
--# CONFIG_SH_OCRAM is not set
- # CONFIG_SH_STORE_QUEUES is not set
--# CONFIG_SMP is not set
--CONFIG_SH_PCLK_CALC=y
--CONFIG_SH_PCLK_FREQ=50000000
-+
-+#
-+# Timer support
-+#
-+CONFIG_SH_TMU=y
-+# CONFIG_SH_PCLK_FREQ_BOOL is not set
-
- #
- # CPU Frequency scaling
-@@ -133,18 +177,29 @@
- # CONFIG_HD6446X_SERIES is not set
-
- #
--# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
-+# Kernel features
- #
--# CONFIG_PCI is not set
-+# CONFIG_KEXEC is not set
-+# CONFIG_PREEMPT is not set
-+# CONFIG_SMP is not set
-
- #
--# PCCARD (PCMCIA/CardBus) support
-+# Boot options
- #
--# CONFIG_PCCARD is not set
-+CONFIG_ZERO_PAGE_OFFSET=0x00001000
-+CONFIG_BOOT_LINK_OFFSET=0x00800000
-+# CONFIG_UBC_WAKEUP is not set
-+# CONFIG_CMDLINE_BOOL is not set
-+
-+#
-+# Bus options
-+#
-+# CONFIG_PCI is not set
-
- #
--# PC-card bridges
-+# PCCARD (PCMCIA/CardBus) support
- #
-+# CONFIG_PCCARD is not set
-
- #
- # PCI Hotplug Support
-@@ -158,9 +213,9 @@
- # CONFIG_BINFMT_MISC is not set
-
- #
--# SH initrd options
-+# Networking
- #
--# CONFIG_EMBEDDED_RAMDISK is not set
-+# CONFIG_NET is not set
-
- #
- # Device Drivers
-@@ -250,6 +305,7 @@
- #
- # Fusion MPT device support
- #
-+# CONFIG_FUSION is not set
-
- #
- # IEEE 1394 (FireWire) support
-@@ -260,9 +316,8 @@
- #
-
- #
--# Networking support
-+# Network device support
- #
--# CONFIG_NET is not set
- # CONFIG_NETPOLL is not set
- # CONFIG_NET_POLL_CONTROLLER is not set
-
-@@ -293,18 +348,6 @@
- # CONFIG_INPUT_EVBUG is not set
-
- #
--# Input I/O drivers
--#
--# CONFIG_GAMEPORT is not set
--CONFIG_SOUND_GAMEPORT=y
--CONFIG_SERIO=y
--CONFIG_SERIO_I8042=y
--CONFIG_SERIO_SERPORT=y
--# CONFIG_SERIO_CT82C710 is not set
--CONFIG_SERIO_LIBPS2=y
--# CONFIG_SERIO_RAW is not set
--
--#
- # Input Device Drivers
- #
- CONFIG_INPUT_KEYBOARD=y
-@@ -322,6 +365,16 @@
- # CONFIG_INPUT_MISC is not set
-
- #
-+# Hardware I/O ports
-+#
-+CONFIG_SERIO=y
-+CONFIG_SERIO_I8042=y
-+CONFIG_SERIO_SERPORT=y
-+CONFIG_SERIO_LIBPS2=y
-+# CONFIG_SERIO_RAW is not set
-+# CONFIG_GAMEPORT is not set
-+
-+#
- # Character devices
- #
- CONFIG_VT=y
-@@ -359,13 +412,17 @@
- #
- # Ftape, the floppy tape device driver
- #
--# CONFIG_DRM is not set
- # CONFIG_RAW_DRIVER is not set
-
- #
-+# TPM devices
-+#
-+
-+#
- # I2C support
- #
- # CONFIG_I2C is not set
-+# CONFIG_I2C_SENSOR is not set
-
- #
- # Dallas's 1-wire bus
-@@ -373,6 +430,12 @@
- # CONFIG_W1 is not set
-
- #
-+# Hardware Monitoring support
-+#
-+CONFIG_HWMON=y
-+# CONFIG_HWMON_DEBUG_CHIP is not set
-+
-+#
- # Misc devices
- #
-
-@@ -393,7 +456,6 @@
- #
- # Console display driver support
- #
--CONFIG_VGA_CONSOLE=y
- CONFIG_DUMMY_CONSOLE=y
-
- #
-@@ -408,10 +470,6 @@
- # CONFIG_USB_ARCH_HAS_OHCI is not set
-
- #
--# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
--#
--
--#
- # USB Gadget Support
- #
- # CONFIG_USB_GADGET is not set
-@@ -424,17 +482,22 @@
- #
- # InfiniBand support
- #
--# CONFIG_INFINIBAND is not set
-+
-+#
-+# SN Devices
-+#
-
- #
- # File systems
- #
- CONFIG_EXT2_FS=y
- # CONFIG_EXT2_FS_XATTR is not set
-+# CONFIG_EXT2_FS_XIP is not set
- # CONFIG_EXT3_FS is not set
- # CONFIG_JBD is not set
- # CONFIG_REISERFS_FS is not set
- # CONFIG_JFS_FS is not set
-+# CONFIG_FS_POSIX_ACL is not set
-
- #
- # XFS support
-@@ -442,6 +505,7 @@
- # CONFIG_XFS_FS is not set
- # CONFIG_MINIX_FS is not set
- # CONFIG_ROMFS_FS is not set
-+CONFIG_INOTIFY=y
- # CONFIG_QUOTA is not set
- CONFIG_DNOTIFY=y
- # CONFIG_AUTOFS_FS is not set
-@@ -466,7 +530,6 @@
- CONFIG_PROC_FS=y
- # CONFIG_PROC_KCORE is not set
- CONFIG_SYSFS=y
--# CONFIG_DEVFS_FS is not set
- # CONFIG_DEVPTS_FS_XATTR is not set
- # CONFIG_TMPFS is not set
- # CONFIG_HUGETLBFS is not set
-@@ -509,7 +572,9 @@
- #
- # Kernel hacking
- #
-+# CONFIG_PRINTK_TIME is not set
- # CONFIG_DEBUG_KERNEL is not set
-+CONFIG_LOG_BUF_SHIFT=14
- # CONFIG_FRAME_POINTER is not set
- CONFIG_SH_STANDARD_BIOS=y
- # CONFIG_EARLY_SCIF_CONSOLE is not set
-diff -ruN linux-2.6.17-vanilla/arch/sh/configs/cqreek_defconfig linux-2.6.17/arch/sh/configs/cqreek_defconfig
---- linux-2.6.17-vanilla/arch/sh/configs/cqreek_defconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/configs/cqreek_defconfig 2006-07-12 16:54:21.000000000 +0000
-@@ -1,7 +1,7 @@
- #
- # Automatically generated make config: don't edit
--# Linux kernel version: 2.6.11-sh
--# Wed Mar 2 15:09:38 2005
-+# Linux kernel version: 2.6.13-sh
-+# Thu Oct 6 00:20:14 2005
- #
- CONFIG_SUPERH=y
- CONFIG_UID16=y
-@@ -16,6 +16,7 @@
- CONFIG_EXPERIMENTAL=y
- CONFIG_CLEAN_COMPILE=y
- CONFIG_BROKEN_ON_SMP=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-
- #
- # General setup
-@@ -25,22 +26,23 @@
- # CONFIG_SYSVIPC is not set
- # CONFIG_BSD_PROCESS_ACCT is not set
- # CONFIG_SYSCTL is not set
--# CONFIG_AUDIT is not set
--CONFIG_LOG_BUF_SHIFT=14
- # CONFIG_HOTPLUG is not set
- # CONFIG_IKCONFIG is not set
- # CONFIG_EMBEDDED is not set
- CONFIG_KALLSYMS=y
- # CONFIG_KALLSYMS_EXTRA_PASS is not set
-+CONFIG_PRINTK=y
-+CONFIG_BUG=y
-+CONFIG_BASE_FULL=y
- CONFIG_FUTEX=y
- CONFIG_EPOLL=y
--# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
- CONFIG_SHMEM=y
- CONFIG_CC_ALIGN_FUNCTIONS=0
- CONFIG_CC_ALIGN_LABELS=0
- CONFIG_CC_ALIGN_LOOPS=0
- CONFIG_CC_ALIGN_JUMPS=0
- # CONFIG_TINY_SHMEM is not set
-+CONFIG_BASE_SMALL=0
-
- #
- # Loadable module support
-@@ -57,9 +59,7 @@
- # CONFIG_SH_7751_SYSTEMH is not set
- # CONFIG_SH_STB1_HARP is not set
- # CONFIG_SH_STB1_OVERDRIVE is not set
--# CONFIG_SH_HP620 is not set
--# CONFIG_SH_HP680 is not set
--# CONFIG_SH_HP690 is not set
-+# CONFIG_SH_HP6XX is not set
- CONFIG_SH_CQREEK=y
- # CONFIG_SH_DMIDA is not set
- # CONFIG_SH_EC3104 is not set
-@@ -76,41 +76,86 @@
- # CONFIG_SH_RTS7751R2D is not set
- # CONFIG_SH_EDOSK7705 is not set
- # CONFIG_SH_SH4202_MICRODEV is not set
-+# CONFIG_SH_LANDISK is not set
- # CONFIG_SH_UNKNOWN is not set
--# CONFIG_CPU_SH2 is not set
-+
-+#
-+# Processor selection
-+#
- CONFIG_CPU_SH3=y
--# CONFIG_CPU_SH4 is not set
-+
-+#
-+# SH-2 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7604 is not set
-+
-+#
-+# SH-3 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7300 is not set
- # CONFIG_CPU_SUBTYPE_SH7705 is not set
- # CONFIG_CPU_SUBTYPE_SH7707 is not set
- CONFIG_CPU_SUBTYPE_SH7708=y
- # CONFIG_CPU_SUBTYPE_SH7709 is not set
-+
-+#
-+# SH-4 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7750 is not set
-+# CONFIG_CPU_SUBTYPE_SH7091 is not set
-+# CONFIG_CPU_SUBTYPE_SH7750R is not set
-+# CONFIG_CPU_SUBTYPE_SH7750S is not set
- # CONFIG_CPU_SUBTYPE_SH7751 is not set
-+# CONFIG_CPU_SUBTYPE_SH7751R is not set
- # CONFIG_CPU_SUBTYPE_SH7760 is not set
--# CONFIG_CPU_SUBTYPE_SH73180 is not set
-+# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+
-+#
-+# ST40 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_ST40STB1 is not set
- # CONFIG_CPU_SUBTYPE_ST40GX1 is not set
--# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+
-+#
-+# SH-4A Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_SH73180 is not set
-+# CONFIG_CPU_SUBTYPE_SH7770 is not set
-+# CONFIG_CPU_SUBTYPE_SH7780 is not set
-+
-+#
-+# Memory management options
-+#
- CONFIG_MMU=y
--# CONFIG_CMDLINE_BOOL is not set
-+CONFIG_SELECT_MEMORY_MODEL=y
-+CONFIG_FLATMEM_MANUAL=y
-+# CONFIG_DISCONTIGMEM_MANUAL is not set
-+# CONFIG_SPARSEMEM_MANUAL is not set
-+CONFIG_FLATMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+
-+#
-+# Cache configuration
-+#
-+# CONFIG_SH_DIRECT_MAPPED is not set
-+# CONFIG_SH_WRITETHROUGH is not set
-+# CONFIG_SH_OCRAM is not set
- CONFIG_MEMORY_START=0x0c000000
- CONFIG_MEMORY_SIZE=0x00400000
--# CONFIG_MEMORY_OVERRIDE is not set
-+
-+#
-+# Processor features
-+#
-+CONFIG_CPU_LITTLE_ENDIAN=y
- CONFIG_SH_RTC=y
- CONFIG_SH_DSP=y
- CONFIG_SH_ADC=y
--CONFIG_ZERO_PAGE_OFFSET=0x00001000
--CONFIG_BOOT_LINK_OFFSET=0x00800000
--CONFIG_CPU_LITTLE_ENDIAN=y
--# CONFIG_PREEMPT is not set
--# CONFIG_UBC_WAKEUP is not set
--# CONFIG_SH_WRITETHROUGH is not set
--# CONFIG_SH_OCRAM is not set
--# CONFIG_SMP is not set
--CONFIG_SH_PCLK_CALC=y
--CONFIG_SH_PCLK_FREQ=1193182
-+
-+#
-+# Timer support
-+#
-+CONFIG_SH_TMU=y
-+# CONFIG_SH_PCLK_FREQ_BOOL is not set
-
- #
- # CPU Frequency scaling
-@@ -128,18 +173,29 @@
- # CONFIG_HD6446X_SERIES is not set
-
- #
--# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
-+# Kernel features
- #
--# CONFIG_PCI is not set
-+# CONFIG_KEXEC is not set
-+# CONFIG_PREEMPT is not set
-+# CONFIG_SMP is not set
-
- #
--# PCCARD (PCMCIA/CardBus) support
-+# Boot options
- #
--# CONFIG_PCCARD is not set
-+CONFIG_ZERO_PAGE_OFFSET=0x00001000
-+CONFIG_BOOT_LINK_OFFSET=0x00800000
-+# CONFIG_UBC_WAKEUP is not set
-+# CONFIG_CMDLINE_BOOL is not set
-+
-+#
-+# Bus options
-+#
-+# CONFIG_PCI is not set
-
- #
--# PC-card bridges
-+# PCCARD (PCMCIA/CardBus) support
- #
-+# CONFIG_PCCARD is not set
-
- #
- # PCI Hotplug Support
-@@ -153,9 +209,9 @@
- # CONFIG_BINFMT_MISC is not set
-
- #
--# SH initrd options
-+# Networking
- #
--# CONFIG_EMBEDDED_RAMDISK is not set
-+# CONFIG_NET is not set
-
- #
- # Device Drivers
-@@ -245,6 +301,7 @@
- #
- # Fusion MPT device support
- #
-+# CONFIG_FUSION is not set
-
- #
- # IEEE 1394 (FireWire) support
-@@ -255,9 +312,8 @@
- #
-
- #
--# Networking support
-+# Network device support
- #
--# CONFIG_NET is not set
- # CONFIG_NETPOLL is not set
- # CONFIG_NET_POLL_CONTROLLER is not set
-
-@@ -288,18 +344,6 @@
- # CONFIG_INPUT_EVBUG is not set
-
- #
--# Input I/O drivers
--#
--# CONFIG_GAMEPORT is not set
--CONFIG_SOUND_GAMEPORT=y
--CONFIG_SERIO=y
--CONFIG_SERIO_I8042=y
--CONFIG_SERIO_SERPORT=y
--# CONFIG_SERIO_CT82C710 is not set
--CONFIG_SERIO_LIBPS2=y
--# CONFIG_SERIO_RAW is not set
--
--#
- # Input Device Drivers
- #
- CONFIG_INPUT_KEYBOARD=y
-@@ -317,6 +361,16 @@
- # CONFIG_INPUT_MISC is not set
-
- #
-+# Hardware I/O ports
-+#
-+CONFIG_SERIO=y
-+CONFIG_SERIO_I8042=y
-+CONFIG_SERIO_SERPORT=y
-+CONFIG_SERIO_LIBPS2=y
-+# CONFIG_SERIO_RAW is not set
-+# CONFIG_GAMEPORT is not set
-+
-+#
- # Character devices
- #
- CONFIG_VT=y
-@@ -354,13 +408,17 @@
- #
- # Ftape, the floppy tape device driver
- #
--# CONFIG_DRM is not set
- # CONFIG_RAW_DRIVER is not set
-
- #
-+# TPM devices
-+#
-+
-+#
- # I2C support
- #
- # CONFIG_I2C is not set
-+# CONFIG_I2C_SENSOR is not set
-
- #
- # Dallas's 1-wire bus
-@@ -368,6 +426,12 @@
- # CONFIG_W1 is not set
-
- #
-+# Hardware Monitoring support
-+#
-+CONFIG_HWMON=y
-+# CONFIG_HWMON_DEBUG_CHIP is not set
-+
-+#
- # Misc devices
- #
-
-@@ -388,7 +452,6 @@
- #
- # Console display driver support
- #
--CONFIG_VGA_CONSOLE=y
- CONFIG_DUMMY_CONSOLE=y
-
- #
-@@ -403,10 +466,6 @@
- # CONFIG_USB_ARCH_HAS_OHCI is not set
-
- #
--# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
--#
--
--#
- # USB Gadget Support
- #
- # CONFIG_USB_GADGET is not set
-@@ -419,17 +478,22 @@
- #
- # InfiniBand support
- #
--# CONFIG_INFINIBAND is not set
-+
-+#
-+# SN Devices
-+#
-
- #
- # File systems
- #
- CONFIG_EXT2_FS=y
- # CONFIG_EXT2_FS_XATTR is not set
-+# CONFIG_EXT2_FS_XIP is not set
- # CONFIG_EXT3_FS is not set
- # CONFIG_JBD is not set
- # CONFIG_REISERFS_FS is not set
- # CONFIG_JFS_FS is not set
-+# CONFIG_FS_POSIX_ACL is not set
-
- #
- # XFS support
-@@ -437,6 +501,7 @@
- # CONFIG_XFS_FS is not set
- # CONFIG_MINIX_FS is not set
- # CONFIG_ROMFS_FS is not set
-+CONFIG_INOTIFY=y
- # CONFIG_QUOTA is not set
- CONFIG_DNOTIFY=y
- # CONFIG_AUTOFS_FS is not set
-@@ -461,7 +526,6 @@
- CONFIG_PROC_FS=y
- # CONFIG_PROC_KCORE is not set
- CONFIG_SYSFS=y
--# CONFIG_DEVFS_FS is not set
- # CONFIG_DEVPTS_FS_XATTR is not set
- # CONFIG_TMPFS is not set
- # CONFIG_HUGETLBFS is not set
-@@ -504,7 +568,9 @@
- #
- # Kernel hacking
- #
-+# CONFIG_PRINTK_TIME is not set
- # CONFIG_DEBUG_KERNEL is not set
-+CONFIG_LOG_BUF_SHIFT=14
- # CONFIG_FRAME_POINTER is not set
- CONFIG_SH_STANDARD_BIOS=y
- # CONFIG_EARLY_PRINTK is not set
-diff -ruN linux-2.6.17-vanilla/arch/sh/configs/dreamcast_defconfig linux-2.6.17/arch/sh/configs/dreamcast_defconfig
---- linux-2.6.17-vanilla/arch/sh/configs/dreamcast_defconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/configs/dreamcast_defconfig 2006-07-12 16:54:21.000000000 +0000
-@@ -1,7 +1,7 @@
- #
- # Automatically generated make config: don't edit
--# Linux kernel version: 2.6.11-sh
--# Wed Mar 2 15:09:40 2005
-+# Linux kernel version: 2.6.15-sh
-+# Wed Jan 4 14:20:29 2006
- #
- CONFIG_SUPERH=y
- CONFIG_UID16=y
-@@ -17,11 +17,13 @@
- CONFIG_CLEAN_COMPILE=y
- CONFIG_BROKEN_ON_SMP=y
- CONFIG_LOCK_KERNEL=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-
- #
- # General setup
- #
- CONFIG_LOCALVERSION=""
-+CONFIG_LOCALVERSION_AUTO=y
- CONFIG_SWAP=y
- CONFIG_SYSVIPC=y
- # CONFIG_POSIX_MQUEUE is not set
-@@ -29,22 +31,26 @@
- # CONFIG_BSD_PROCESS_ACCT_V3 is not set
- CONFIG_SYSCTL=y
- # CONFIG_AUDIT is not set
--CONFIG_LOG_BUF_SHIFT=14
- CONFIG_HOTPLUG=y
- CONFIG_KOBJECT_UEVENT=y
- # CONFIG_IKCONFIG is not set
-+CONFIG_INITRAMFS_SOURCE=""
-+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
- CONFIG_EMBEDDED=y
- CONFIG_KALLSYMS=y
- # CONFIG_KALLSYMS_EXTRA_PASS is not set
-+CONFIG_PRINTK=y
-+CONFIG_BUG=y
-+CONFIG_BASE_FULL=y
- CONFIG_FUTEX=y
- CONFIG_EPOLL=y
--CONFIG_CC_OPTIMIZE_FOR_SIZE=y
- CONFIG_SHMEM=y
- CONFIG_CC_ALIGN_FUNCTIONS=0
- CONFIG_CC_ALIGN_LABELS=0
- CONFIG_CC_ALIGN_LOOPS=0
- CONFIG_CC_ALIGN_JUMPS=0
- # CONFIG_TINY_SHMEM is not set
-+CONFIG_BASE_SMALL=0
-
- #
- # Loadable module support
-@@ -58,6 +64,24 @@
- CONFIG_KMOD=y
-
- #
-+# Block layer
-+#
-+# CONFIG_LBD is not set
-+
-+#
-+# IO Schedulers
-+#
-+CONFIG_IOSCHED_NOOP=y
-+CONFIG_IOSCHED_AS=y
-+CONFIG_IOSCHED_DEADLINE=y
-+CONFIG_IOSCHED_CFQ=y
-+CONFIG_DEFAULT_AS=y
-+# CONFIG_DEFAULT_DEADLINE is not set
-+# CONFIG_DEFAULT_CFQ is not set
-+# CONFIG_DEFAULT_NOOP is not set
-+CONFIG_DEFAULT_IOSCHED="anticipatory"
-+
-+#
- # System type
- #
- # CONFIG_SH_SOLUTION_ENGINE is not set
-@@ -67,9 +91,7 @@
- # CONFIG_SH_7751_SYSTEMH is not set
- # CONFIG_SH_STB1_HARP is not set
- # CONFIG_SH_STB1_OVERDRIVE is not set
--# CONFIG_SH_HP620 is not set
--# CONFIG_SH_HP680 is not set
--# CONFIG_SH_HP690 is not set
-+# CONFIG_SH_HP6XX is not set
- # CONFIG_SH_CQREEK is not set
- # CONFIG_SH_DMIDA is not set
- # CONFIG_SH_EC3104 is not set
-@@ -86,48 +108,97 @@
- # CONFIG_SH_RTS7751R2D is not set
- # CONFIG_SH_EDOSK7705 is not set
- # CONFIG_SH_SH4202_MICRODEV is not set
-+# CONFIG_SH_LANDISK is not set
-+# CONFIG_SH_TITAN is not set
- # CONFIG_SH_UNKNOWN is not set
--# CONFIG_CPU_SH2 is not set
--# CONFIG_CPU_SH3 is not set
-+
-+#
-+# Processor selection
-+#
- CONFIG_CPU_SH4=y
-+
-+#
-+# SH-2 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7604 is not set
-+
-+#
-+# SH-3 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7300 is not set
- # CONFIG_CPU_SUBTYPE_SH7705 is not set
- # CONFIG_CPU_SUBTYPE_SH7707 is not set
- # CONFIG_CPU_SUBTYPE_SH7708 is not set
- # CONFIG_CPU_SUBTYPE_SH7709 is not set
-+
-+#
-+# SH-4 Processor Support
-+#
- CONFIG_CPU_SUBTYPE_SH7750=y
-+CONFIG_CPU_SUBTYPE_SH7091=y
-+CONFIG_CPU_SUBTYPE_SH7750R=y
-+# CONFIG_CPU_SUBTYPE_SH7750S is not set
- # CONFIG_CPU_SUBTYPE_SH7751 is not set
-+# CONFIG_CPU_SUBTYPE_SH7751R is not set
- # CONFIG_CPU_SUBTYPE_SH7760 is not set
--# CONFIG_CPU_SUBTYPE_SH73180 is not set
-+# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+
-+#
-+# ST40 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_ST40STB1 is not set
- # CONFIG_CPU_SUBTYPE_ST40GX1 is not set
--# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+
-+#
-+# SH-4A Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_SH73180 is not set
-+# CONFIG_CPU_SUBTYPE_SH7770 is not set
-+# CONFIG_CPU_SUBTYPE_SH7780 is not set
-+
-+#
-+# Memory management options
-+#
- CONFIG_MMU=y
- CONFIG_HUGETLB_PAGE_SIZE_64K=y
- # CONFIG_HUGETLB_PAGE_SIZE_1MB is not set
--# CONFIG_CMDLINE_BOOL is not set
-+CONFIG_SELECT_MEMORY_MODEL=y
-+CONFIG_FLATMEM_MANUAL=y
-+# CONFIG_DISCONTIGMEM_MANUAL is not set
-+# CONFIG_SPARSEMEM_MANUAL is not set
-+CONFIG_FLATMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+# CONFIG_SPARSEMEM_STATIC is not set
-+CONFIG_SPLIT_PTLOCK_CPUS=4
-+
-+#
-+# Cache configuration
-+#
-+# CONFIG_SH_DIRECT_MAPPED is not set
-+# CONFIG_SH_WRITETHROUGH is not set
-+# CONFIG_SH_OCRAM is not set
- CONFIG_MEMORY_START=0x0c000000
- CONFIG_MEMORY_SIZE=0x01000000
--CONFIG_MEMORY_SET=y
--# CONFIG_MEMORY_OVERRIDE is not set
--CONFIG_SH_FPU=y
--CONFIG_ZERO_PAGE_OFFSET=0x00001000
--CONFIG_BOOT_LINK_OFFSET=0x00800000
-+
-+#
-+# Processor features
-+#
- CONFIG_CPU_LITTLE_ENDIAN=y
--CONFIG_PREEMPT=y
--# CONFIG_UBC_WAKEUP is not set
--# CONFIG_SH_WRITETHROUGH is not set
--CONFIG_SH_OCRAM=y
-+CONFIG_SH_FPU=y
- CONFIG_SH_STORE_QUEUES=y
--# CONFIG_SMP is not set
--CONFIG_SH_PCLK_CALC=y
-+
-+#
-+# Timer support
-+#
-+CONFIG_SH_TMU=y
-+CONFIG_SH_PCLK_FREQ_BOOL=y
- CONFIG_SH_PCLK_FREQ=49876504
-
- #
- # CPU Frequency scaling
- #
- CONFIG_CPU_FREQ=y
-+CONFIG_CPU_FREQ_TABLE=y
- # CONFIG_CPU_FREQ_DEBUG is not set
- CONFIG_CPU_FREQ_STAT=y
- # CONFIG_CPU_FREQ_STAT_DETAILS is not set
-@@ -137,16 +208,13 @@
- CONFIG_CPU_FREQ_GOV_POWERSAVE=y
- CONFIG_CPU_FREQ_GOV_USERSPACE=y
- # CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
--CONFIG_CPU_FREQ_TABLE=y
--CONFIG_SH_CPU_FREQ=y
-+# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
-+# CONFIG_SH_CPU_FREQ is not set
-
- #
- # DMA support
- #
--CONFIG_SH_DMA=y
--CONFIG_NR_ONCHIP_DMA_CHANNELS=4
--CONFIG_NR_DMA_CHANNELS_BOOL=y
--CONFIG_NR_DMA_CHANNELS=9
-+# CONFIG_SH_DMA is not set
-
- #
- # Companion Chips
-@@ -154,14 +222,28 @@
- # CONFIG_HD6446X_SERIES is not set
-
- #
--# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
-+# Kernel features
-+#
-+# CONFIG_KEXEC is not set
-+CONFIG_PREEMPT=y
-+# CONFIG_SMP is not set
-+
-+#
-+# Boot options
-+#
-+CONFIG_ZERO_PAGE_OFFSET=0x00001000
-+CONFIG_BOOT_LINK_OFFSET=0x00800000
-+# CONFIG_UBC_WAKEUP is not set
-+CONFIG_CMDLINE_BOOL=y
-+CONFIG_CMDLINE="console=ttySC1,115200 panic=3"
-+
-+#
-+# Bus options
- #
--CONFIG_MAPLE=y
- CONFIG_PCI=y
- # CONFIG_SH_PCIDMA_NONCOHERENT is not set
- CONFIG_PCI_AUTO=y
- CONFIG_PCI_LEGACY_PROC=y
--CONFIG_PCI_NAMES=y
-
- #
- # PCCARD (PCMCIA/CardBus) support
-@@ -169,10 +251,6 @@
- # CONFIG_PCCARD is not set
-
- #
--# PC-card bridges
--#
--
--#
- # PCI Hotplug Support
- #
- # CONFIG_HOTPLUG_PCI is not set
-@@ -185,9 +263,72 @@
- # CONFIG_BINFMT_MISC is not set
-
- #
--# SH initrd options
-+# Networking
-+#
-+CONFIG_NET=y
-+
-+#
-+# Networking options
-+#
-+CONFIG_PACKET=y
-+# CONFIG_PACKET_MMAP is not set
-+CONFIG_UNIX=y
-+# CONFIG_NET_KEY is not set
-+CONFIG_INET=y
-+# CONFIG_IP_MULTICAST is not set
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+CONFIG_IP_FIB_HASH=y
-+# CONFIG_IP_PNP is not set
-+# CONFIG_NET_IPIP is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_SYN_COOKIES is not set
-+# CONFIG_INET_AH is not set
-+# CONFIG_INET_ESP is not set
-+# CONFIG_INET_IPCOMP is not set
-+# CONFIG_INET_TUNNEL is not set
-+CONFIG_INET_DIAG=y
-+CONFIG_INET_TCP_DIAG=y
-+# CONFIG_TCP_CONG_ADVANCED is not set
-+CONFIG_TCP_CONG_BIC=y
-+# CONFIG_IPV6 is not set
-+# CONFIG_NETFILTER is not set
-+
-+#
-+# DCCP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_DCCP is not set
-+
-+#
-+# SCTP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_SCTP is not set
-+# CONFIG_ATM is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_VLAN_8021Q is not set
-+# CONFIG_DECNET is not set
-+# CONFIG_LLC2 is not set
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
-+# CONFIG_X25 is not set
-+# CONFIG_LAPB is not set
-+# CONFIG_NET_DIVERT is not set
-+# CONFIG_ECONET is not set
-+# CONFIG_WAN_ROUTER is not set
-+
-+#
-+# QoS and/or fair queueing
- #
--# CONFIG_EMBEDDED_RAMDISK is not set
-+# CONFIG_NET_SCHED is not set
-+
-+#
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+# CONFIG_HAMRADIO is not set
-+# CONFIG_IRDA is not set
-+# CONFIG_BT is not set
-+# CONFIG_IEEE80211 is not set
-
- #
- # Device Drivers
-@@ -201,6 +342,11 @@
- # CONFIG_FW_LOADER is not set
-
- #
-+# Connector - unified userspace <-> kernelspace linker
-+#
-+# CONFIG_CONNECTOR is not set
-+
-+#
- # Memory Technology Devices (MTD)
- #
- # CONFIG_MTD is not set
-@@ -217,7 +363,6 @@
- #
- # Block devices
- #
--# CONFIG_BLK_DEV_FD is not set
- # CONFIG_BLK_CPQ_DA is not set
- # CONFIG_BLK_CPQ_CISS_DA is not set
- # CONFIG_BLK_DEV_DAC960 is not set
-@@ -226,21 +371,9 @@
- # CONFIG_BLK_DEV_LOOP is not set
- # CONFIG_BLK_DEV_NBD is not set
- # CONFIG_BLK_DEV_SX8 is not set
--CONFIG_BLK_DEV_RAM=y
-+# CONFIG_BLK_DEV_RAM is not set
- CONFIG_BLK_DEV_RAM_COUNT=16
--CONFIG_BLK_DEV_RAM_SIZE=1024
--CONFIG_BLK_DEV_INITRD=y
--CONFIG_INITRAMFS_SOURCE=""
--# CONFIG_LBD is not set
- # CONFIG_CDROM_PKTCDVD is not set
--
--#
--# IO Schedulers
--#
--CONFIG_IOSCHED_NOOP=y
--CONFIG_IOSCHED_AS=y
--CONFIG_IOSCHED_DEADLINE=y
--CONFIG_IOSCHED_CFQ=y
- # CONFIG_ATA_OVER_ETH is not set
-
- #
-@@ -251,6 +384,7 @@
- #
- # SCSI device support
- #
-+# CONFIG_RAID_ATTRS is not set
- # CONFIG_SCSI is not set
-
- #
-@@ -261,6 +395,7 @@
- #
- # Fusion MPT device support
- #
-+# CONFIG_FUSION is not set
-
- #
- # IEEE 1394 (FireWire) support
-@@ -273,70 +408,8 @@
- # CONFIG_I2O is not set
-
- #
--# Networking support
--#
--CONFIG_NET=y
--
--#
--# Networking options
--#
--CONFIG_PACKET=y
--# CONFIG_PACKET_MMAP is not set
--# CONFIG_NETLINK_DEV is not set
--CONFIG_UNIX=y
--# CONFIG_NET_KEY is not set
--CONFIG_INET=y
--# CONFIG_IP_MULTICAST is not set
--# CONFIG_IP_ADVANCED_ROUTER is not set
--CONFIG_IP_PNP=y
--CONFIG_IP_PNP_DHCP=y
--# CONFIG_IP_PNP_BOOTP is not set
--# CONFIG_IP_PNP_RARP is not set
--# CONFIG_NET_IPIP is not set
--# CONFIG_NET_IPGRE is not set
--# CONFIG_ARPD is not set
--# CONFIG_SYN_COOKIES is not set
--# CONFIG_INET_AH is not set
--# CONFIG_INET_ESP is not set
--# CONFIG_INET_IPCOMP is not set
--# CONFIG_INET_TUNNEL is not set
--CONFIG_IP_TCPDIAG=y
--# CONFIG_IP_TCPDIAG_IPV6 is not set
--# CONFIG_IPV6 is not set
--# CONFIG_NETFILTER is not set
--
--#
--# SCTP Configuration (EXPERIMENTAL)
--#
--# CONFIG_IP_SCTP is not set
--# CONFIG_ATM is not set
--# CONFIG_BRIDGE is not set
--# CONFIG_VLAN_8021Q is not set
--# CONFIG_DECNET is not set
--# CONFIG_LLC2 is not set
--# CONFIG_IPX is not set
--# CONFIG_ATALK is not set
--# CONFIG_X25 is not set
--# CONFIG_LAPB is not set
--# CONFIG_NET_DIVERT is not set
--# CONFIG_ECONET is not set
--# CONFIG_WAN_ROUTER is not set
--
--#
--# QoS and/or fair queueing
-+# Network device support
- #
--# CONFIG_NET_SCHED is not set
--# CONFIG_NET_CLS_ROUTE is not set
--
--#
--# Network testing
--#
--# CONFIG_NET_PKTGEN is not set
--# CONFIG_NETPOLL is not set
--# CONFIG_NET_POLL_CONTROLLER is not set
--# CONFIG_HAMRADIO is not set
--# CONFIG_IRDA is not set
--# CONFIG_BT is not set
- CONFIG_NETDEVICES=y
- # CONFIG_DUMMY is not set
- # CONFIG_BONDING is not set
-@@ -349,6 +422,11 @@
- # CONFIG_ARCNET is not set
-
- #
-+# PHY device support
-+#
-+# CONFIG_PHYLIB is not set
-+
-+#
- # Ethernet (10 or 100Mbit)
- #
- CONFIG_NET_ETHERNET=y
-@@ -356,6 +434,7 @@
- # CONFIG_STNIC is not set
- # CONFIG_HAPPYMEAL is not set
- # CONFIG_SUNGEM is not set
-+# CONFIG_CASSINI is not set
- # CONFIG_NET_VENDOR_3COM is not set
- # CONFIG_SMC91X is not set
-
-@@ -364,6 +443,7 @@
- #
- # CONFIG_NET_TULIP is not set
- # CONFIG_HP100 is not set
-+# CONFIG_NE2000 is not set
- CONFIG_NET_PCI=y
- # CONFIG_PCNET32 is not set
- # CONFIG_AMD8111_ETH is not set
-@@ -398,13 +478,17 @@
- # CONFIG_HAMACHI is not set
- # CONFIG_YELLOWFIN is not set
- # CONFIG_R8169 is not set
-+# CONFIG_SIS190 is not set
-+# CONFIG_SKGE is not set
- # CONFIG_SK98LIN is not set
- # CONFIG_VIA_VELOCITY is not set
- # CONFIG_TIGON3 is not set
-+# CONFIG_BNX2 is not set
-
- #
- # Ethernet (10000 Mbit)
- #
-+# CONFIG_CHELSIO_T1 is not set
- # CONFIG_IXGB is not set
- # CONFIG_S2IO is not set
-
-@@ -428,6 +512,8 @@
- # CONFIG_SLIP 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
-
- #
- # ISDN subsystem
-@@ -457,19 +543,6 @@
- # CONFIG_INPUT_EVBUG is not set
-
- #
--# Input I/O drivers
--#
--# CONFIG_GAMEPORT is not set
--CONFIG_SOUND_GAMEPORT=y
--CONFIG_SERIO=y
--# CONFIG_SERIO_I8042 is not set
--# CONFIG_SERIO_SERPORT is not set
--# CONFIG_SERIO_CT82C710 is not set
--# CONFIG_SERIO_PCIPS2 is not set
--CONFIG_SERIO_LIBPS2=y
--# CONFIG_SERIO_RAW is not set
--
--#
- # Input Device Drivers
- #
- CONFIG_INPUT_KEYBOARD=y
-@@ -478,17 +551,26 @@
- # CONFIG_KEYBOARD_LKKBD is not set
- # CONFIG_KEYBOARD_XTKBD is not set
- # CONFIG_KEYBOARD_NEWTON is not set
--# CONFIG_KEYBOARD_MAPLE is not set
- CONFIG_INPUT_MOUSE=y
- CONFIG_MOUSE_PS2=y
- # CONFIG_MOUSE_SERIAL is not set
--# CONFIG_MOUSE_MAPLE is not set
- # CONFIG_MOUSE_VSXXXAA is not set
- # CONFIG_INPUT_JOYSTICK is not set
- # CONFIG_INPUT_TOUCHSCREEN is not set
- # CONFIG_INPUT_MISC is not set
-
- #
-+# Hardware I/O ports
-+#
-+CONFIG_SERIO=y
-+# CONFIG_SERIO_I8042 is not set
-+# CONFIG_SERIO_SERPORT is not set
-+# CONFIG_SERIO_PCIPS2 is not set
-+CONFIG_SERIO_LIBPS2=y
-+# CONFIG_SERIO_RAW is not set
-+# CONFIG_GAMEPORT is not set
-+
-+#
- # Character devices
- #
- CONFIG_VT=y
-@@ -508,6 +590,7 @@
- CONFIG_SERIAL_SH_SCI_CONSOLE=y
- CONFIG_SERIAL_CORE=y
- CONFIG_SERIAL_CORE_CONSOLE=y
-+# CONFIG_SERIAL_JSM is not set
- CONFIG_UNIX98_PTYS=y
- CONFIG_LEGACY_PTYS=y
- CONFIG_LEGACY_PTY_COUNT=256
-@@ -547,6 +630,12 @@
- # CONFIG_RAW_DRIVER is not set
-
- #
-+# TPM devices
-+#
-+# CONFIG_TCG_TPM is not set
-+# CONFIG_TELCLOCK is not set
-+
-+#
- # I2C support
- #
- # CONFIG_I2C is not set
-@@ -557,10 +646,21 @@
- # CONFIG_W1 is not set
-
- #
-+# Hardware Monitoring support
-+#
-+CONFIG_HWMON=y
-+# CONFIG_HWMON_VID is not set
-+# CONFIG_HWMON_DEBUG_CHIP is not set
-+
-+#
- # Misc devices
- #
-
- #
-+# Multimedia Capabilities Port drivers
-+#
-+
-+#
- # Multimedia devices
- #
- # CONFIG_VIDEO_DEV is not set
-@@ -574,6 +674,10 @@
- # Graphics support
- #
- CONFIG_FB=y
-+CONFIG_FB_CFB_FILLRECT=y
-+CONFIG_FB_CFB_COPYAREA=y
-+CONFIG_FB_CFB_IMAGEBLIT=y
-+# CONFIG_FB_MACMODES is not set
- # CONFIG_FB_MODE_HELPERS is not set
- # CONFIG_FB_TILEBLITTING is not set
- # CONFIG_FB_CIRRUS is not set
-@@ -583,6 +687,8 @@
- # CONFIG_FB_IMSTT is not set
- CONFIG_FB_PVR2=y
- # CONFIG_FB_EPSON1355 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_OLD is not set
-@@ -595,24 +701,27 @@
- # CONFIG_FB_KYRO is not set
- # CONFIG_FB_3DFX is not set
- # CONFIG_FB_VOODOO1 is not set
-+# CONFIG_FB_CYBLA is not set
- # CONFIG_FB_TRIDENT is not set
- # CONFIG_FB_VIRTUAL is not set
-
- #
- # Console display driver support
- #
--# CONFIG_VGA_CONSOLE is not set
- CONFIG_DUMMY_CONSOLE=y
- CONFIG_FRAMEBUFFER_CONSOLE=y
-+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
- CONFIG_FONTS=y
- CONFIG_FONT_8x8=y
- CONFIG_FONT_8x16=y
- # CONFIG_FONT_6x11 is not set
-+# CONFIG_FONT_7x14 is not set
- # CONFIG_FONT_PEARL_8x8 is not set
- # CONFIG_FONT_ACORN_8x8 is not set
- # CONFIG_FONT_MINI_4x6 is not set
- # CONFIG_FONT_SUN8x16 is not set
- # CONFIG_FONT_SUN12x22 is not set
-+# CONFIG_FONT_10x18 is not set
-
- #
- # Logo configuration
-@@ -634,12 +743,12 @@
- #
- # USB support
- #
--# CONFIG_USB is not set
- CONFIG_USB_ARCH_HAS_HCD=y
- CONFIG_USB_ARCH_HAS_OHCI=y
-+# CONFIG_USB is not set
-
- #
--# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
-+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
- #
-
- #
-@@ -658,6 +767,10 @@
- # CONFIG_INFINIBAND is not set
-
- #
-+# SN Devices
-+#
-+
-+#
- # File systems
- #
- # CONFIG_EXT2_FS is not set
-@@ -665,17 +778,16 @@
- # CONFIG_JBD is not set
- # CONFIG_REISERFS_FS is not set
- # CONFIG_JFS_FS is not set
--
--#
--# XFS support
--#
-+# CONFIG_FS_POSIX_ACL is not set
- # CONFIG_XFS_FS is not set
- # CONFIG_MINIX_FS is not set
--CONFIG_ROMFS_FS=y
-+# CONFIG_ROMFS_FS is not set
-+CONFIG_INOTIFY=y
- # CONFIG_QUOTA is not set
--CONFIG_DNOTIFY=y
-+# CONFIG_DNOTIFY is not set
- # CONFIG_AUTOFS_FS is not set
- # CONFIG_AUTOFS4_FS is not set
-+# CONFIG_FUSE_FS is not set
-
- #
- # CD-ROM/DVD Filesystems
-@@ -696,15 +808,11 @@
- CONFIG_PROC_FS=y
- CONFIG_PROC_KCORE=y
- CONFIG_SYSFS=y
--CONFIG_DEVFS_FS=y
--CONFIG_DEVFS_MOUNT=y
--# CONFIG_DEVFS_DEBUG is not set
--# CONFIG_DEVPTS_FS_XATTR is not set
- CONFIG_TMPFS=y
--# CONFIG_TMPFS_XATTR is not set
- CONFIG_HUGETLBFS=y
- CONFIG_HUGETLB_PAGE=y
- CONFIG_RAMFS=y
-+# CONFIG_RELAYFS_FS is not set
-
- #
- # Miscellaneous filesystems
-@@ -716,7 +824,7 @@
- # CONFIG_BEFS_FS is not set
- # CONFIG_BFS_FS is not set
- # CONFIG_EFS_FS is not set
--CONFIG_CRAMFS=y
-+# CONFIG_CRAMFS is not set
- # CONFIG_VXFS_FS is not set
- # CONFIG_HPFS_FS is not set
- # CONFIG_QNX4FS_FS is not set
-@@ -726,22 +834,14 @@
- #
- # Network File Systems
- #
--CONFIG_NFS_FS=y
--CONFIG_NFS_V3=y
--# CONFIG_NFS_V4 is not set
--# CONFIG_NFS_DIRECTIO is not set
-+# CONFIG_NFS_FS is not set
- # CONFIG_NFSD is not set
--CONFIG_ROOT_NFS=y
--CONFIG_LOCKD=y
--CONFIG_LOCKD_V4=y
--CONFIG_SUNRPC=y
--# CONFIG_RPCSEC_GSS_KRB5 is not set
--# CONFIG_RPCSEC_GSS_SPKM3 is not set
- # CONFIG_SMB_FS is not set
- # CONFIG_CIFS is not set
- # CONFIG_NCP_FS is not set
- # CONFIG_CODA_FS is not set
- # CONFIG_AFS_FS is not set
-+# CONFIG_9P_FS is not set
-
- #
- # Partition Types
-@@ -758,13 +858,14 @@
- # Profiling support
- #
- CONFIG_PROFILING=y
--CONFIG_OPROFILE=y
-+# CONFIG_OPROFILE is not set
-
- #
- # Kernel hacking
- #
-+# CONFIG_PRINTK_TIME is not set
- # CONFIG_DEBUG_KERNEL is not set
--CONFIG_DEBUG_PREEMPT=y
-+CONFIG_LOG_BUF_SHIFT=14
- # CONFIG_FRAME_POINTER is not set
- # CONFIG_SH_STANDARD_BIOS is not set
- # CONFIG_EARLY_SCIF_CONSOLE is not set
-@@ -789,6 +890,6 @@
- # Library routines
- #
- # CONFIG_CRC_CCITT is not set
-+# CONFIG_CRC16 is not set
- CONFIG_CRC32=y
- # CONFIG_LIBCRC32C is not set
--CONFIG_ZLIB_INFLATE=y
-diff -ruN linux-2.6.17-vanilla/arch/sh/configs/hp6xx_defconfig linux-2.6.17/arch/sh/configs/hp6xx_defconfig
---- linux-2.6.17-vanilla/arch/sh/configs/hp6xx_defconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/configs/hp6xx_defconfig 2006-07-12 16:54:21.000000000 +0000
-@@ -1,11 +1,12 @@
- #
- # Automatically generated make config: don't edit
--# Linux kernel version: 2.6.15-sh
--# Wed Jan 4 15:32:56 2006
-+# Linux kernel version: 2.6.17
-+# Thu Jul 6 09:58:22 2006
- #
- CONFIG_SUPERH=y
--CONFIG_UID16=y
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
-+CONFIG_GENERIC_FIND_NEXT_BIT=y
-+CONFIG_GENERIC_HWEIGHT=y
- CONFIG_GENERIC_HARDIRQS=y
- CONFIG_GENERIC_IRQ_PROBE=y
- CONFIG_GENERIC_CALIBRATE_DELAY=y
-@@ -14,8 +15,6 @@
- # Code maturity level options
- #
- CONFIG_EXPERIMENTAL=y
--# CONFIG_CLEAN_COMPILE is not set
--CONFIG_BROKEN=y
- CONFIG_BROKEN_ON_SMP=y
- CONFIG_INIT_ENV_ARG_LIMIT=32
-
-@@ -28,25 +27,26 @@
- # CONFIG_SYSVIPC is not set
- # CONFIG_BSD_PROCESS_ACCT is not set
- # CONFIG_SYSCTL is not set
--CONFIG_HOTPLUG=y
- # CONFIG_IKCONFIG is not set
-+# CONFIG_RELAY is not set
- CONFIG_INITRAMFS_SOURCE=""
-+CONFIG_UID16=y
- CONFIG_CC_OPTIMIZE_FOR_SIZE=y
- # CONFIG_EMBEDDED is not set
- CONFIG_KALLSYMS=y
- # CONFIG_KALLSYMS_EXTRA_PASS is not set
-+CONFIG_HOTPLUG=y
- CONFIG_PRINTK=y
- CONFIG_BUG=y
-+CONFIG_ELF_CORE=y
- CONFIG_BASE_FULL=y
- CONFIG_FUTEX=y
- CONFIG_EPOLL=y
- CONFIG_SHMEM=y
--CONFIG_CC_ALIGN_FUNCTIONS=0
--CONFIG_CC_ALIGN_LABELS=0
--CONFIG_CC_ALIGN_LOOPS=0
--CONFIG_CC_ALIGN_JUMPS=0
-+CONFIG_SLAB=y
- # CONFIG_TINY_SHMEM is not set
- CONFIG_BASE_SMALL=0
-+# CONFIG_SLOB is not set
-
- #
- # Loadable module support
-@@ -57,6 +57,8 @@
- # Block layer
- #
- # CONFIG_LBD is not set
-+# CONFIG_BLK_DEV_IO_TRACE is not set
-+# CONFIG_LSF is not set
-
- #
- # IO Schedulers
-@@ -96,6 +98,7 @@
- # CONFIG_SH_SECUREEDGE5410 is not set
- # CONFIG_SH_HS7751RVOIP is not set
- # CONFIG_SH_RTS7751R2D is not set
-+# CONFIG_SH_R7780RP is not set
- # CONFIG_SH_EDOSK7705 is not set
- # CONFIG_SH_SH4202_MICRODEV is not set
- # CONFIG_SH_LANDISK is not set
-@@ -175,12 +178,14 @@
- CONFIG_SH_RTC=y
- # CONFIG_SH_DSP is not set
- CONFIG_SH_ADC=y
-+CONFIG_CPU_HAS_INTEVT=y
-+CONFIG_CPU_HAS_PINT_IRQ=y
-+CONFIG_CPU_HAS_SR_RB=y
-
- #
- # Timer support
- #
- CONFIG_SH_TMU=y
--CONFIG_SH_PCLK_FREQ_BOOL=y
- CONFIG_SH_PCLK_FREQ=22110000
-
- #
-@@ -194,7 +199,6 @@
- CONFIG_SH_DMA=y
- CONFIG_NR_ONCHIP_DMA_CHANNELS=4
- # CONFIG_NR_DMA_CHANNELS_BOOL is not set
--# CONFIG_DMA_PAGE_OPS is not set
-
- #
- # Companion Chips
-@@ -257,6 +261,14 @@
- # CONFIG_BINFMT_MISC is not set
-
- #
-+# Power management options (EXPERIMENTAL)
-+#
-+CONFIG_PM=y
-+CONFIG_PM_LEGACY=y
-+# CONFIG_PM_DEBUG is not set
-+CONFIG_APM=y
-+
-+#
- # Networking
- #
- # CONFIG_NET is not set
-@@ -315,7 +327,7 @@
- # CONFIG_BLK_DEV_IDE_SATA is not set
- CONFIG_BLK_DEV_IDEDISK=y
- # CONFIG_IDEDISK_MULTI_MODE is not set
--# CONFIG_BLK_DEV_IDECS is not set
-+CONFIG_BLK_DEV_IDECS=y
- # CONFIG_BLK_DEV_IDECD is not set
- # CONFIG_BLK_DEV_IDETAPE is not set
- # CONFIG_BLK_DEV_IDEFLOPPY is not set
-@@ -356,19 +368,12 @@
- #
- # IEEE 1394 (FireWire) support
- #
--# CONFIG_IEEE1394 is not set
-
- #
- # I2O device support
- #
-
- #
--# Network device support
--#
--# CONFIG_NETPOLL is not set
--# CONFIG_NET_POLL_CONTROLLER is not set
--
--#
- # ISDN subsystem
- #
-
-@@ -390,17 +395,31 @@
- CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
- CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
- # CONFIG_INPUT_JOYDEV is not set
--# CONFIG_INPUT_TSDEV is not set
-+CONFIG_INPUT_TSDEV=y
-+CONFIG_INPUT_TSDEV_SCREEN_X=240
-+CONFIG_INPUT_TSDEV_SCREEN_Y=320
- # CONFIG_INPUT_EVDEV is not set
- # CONFIG_INPUT_EVBUG is not set
-
- #
- # Input Device Drivers
- #
--# CONFIG_INPUT_KEYBOARD is not set
-+CONFIG_INPUT_KEYBOARD=y
-+# CONFIG_KEYBOARD_ATKBD is not set
-+# CONFIG_KEYBOARD_SUNKBD is not set
-+# CONFIG_KEYBOARD_LKKBD is not set
-+# CONFIG_KEYBOARD_XTKBD is not set
-+# CONFIG_KEYBOARD_NEWTON is not set
-+# CONFIG_KEYBOARD_HP620 is not set
-+CONFIG_KEYBOARD_HP680=y
- # CONFIG_INPUT_MOUSE is not set
- # CONFIG_INPUT_JOYSTICK is not set
--# CONFIG_INPUT_TOUCHSCREEN is not set
-+CONFIG_INPUT_TOUCHSCREEN=y
-+# CONFIG_TOUCHSCREEN_GUNZE is not set
-+# CONFIG_TOUCHSCREEN_ELO is not set
-+# CONFIG_TOUCHSCREEN_MTOUCH is not set
-+# CONFIG_TOUCHSCREEN_MK712 is not set
-+CONFIG_TOUCHSCREEN_HP600=y
- # CONFIG_INPUT_MISC is not set
-
- #
-@@ -471,6 +490,12 @@
- # CONFIG_I2C is not set
-
- #
-+# SPI support
-+#
-+# CONFIG_SPI is not set
-+# CONFIG_SPI_MASTER is not set
-+
-+#
- # Dallas's 1-wire bus
- #
- # CONFIG_W1 is not set
-@@ -480,6 +505,7 @@
- #
- CONFIG_HWMON=y
- # CONFIG_HWMON_VID is not set
-+# CONFIG_SENSORS_F71805F is not set
- # CONFIG_HWMON_DEBUG_CHIP is not set
-
- #
-@@ -487,13 +513,10 @@
- #
-
- #
--# Multimedia Capabilities Port drivers
--#
--
--#
- # Multimedia devices
- #
- # CONFIG_VIDEO_DEV is not set
-+CONFIG_VIDEO_V4L2=y
-
- #
- # Digital Video Broadcasting Devices
-@@ -507,6 +530,7 @@
- CONFIG_FB_CFB_COPYAREA=y
- CONFIG_FB_CFB_IMAGEBLIT=y
- # CONFIG_FB_MACMODES is not set
-+CONFIG_FB_FIRMWARE_EDID=y
- # CONFIG_FB_MODE_HELPERS is not set
- # CONFIG_FB_TILEBLITTING is not set
- # CONFIG_FB_EPSON1355 is not set
-@@ -553,7 +577,6 @@
- # Open Sound System
- #
- CONFIG_SOUND_PRIME=y
--# CONFIG_OBSOLETE_OSS_DRIVER is not set
- # CONFIG_SOUND_MSNDCLAS is not set
- # CONFIG_SOUND_MSNDPIN is not set
- CONFIG_SOUND_SH_DAC_AUDIO=y
-@@ -564,6 +587,7 @@
- #
- # CONFIG_USB_ARCH_HAS_HCD is not set
- # CONFIG_USB_ARCH_HAS_OHCI is not set
-+# CONFIG_USB_ARCH_HAS_EHCI is not set
-
- #
- # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
-@@ -580,13 +604,30 @@
- # CONFIG_MMC is not set
-
- #
-+# LED devices
-+#
-+# CONFIG_NEW_LEDS is not set
-+
-+#
-+# LED drivers
-+#
-+
-+#
-+# LED Triggers
-+#
-+
-+#
- # InfiniBand support
- #
--# CONFIG_INFINIBAND is not set
-
- #
--# SN Devices
-+# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
-+#
-+
-+#
-+# Real Time Clock
- #
-+# CONFIG_RTC_CLASS is not set
-
- #
- # File systems
-@@ -595,7 +636,6 @@
- # CONFIG_EXT2_FS_XATTR is not set
- # CONFIG_EXT2_FS_XIP is not set
- # CONFIG_EXT3_FS is not set
--# CONFIG_JBD is not set
- # CONFIG_REISERFS_FS is not set
- # CONFIG_JFS_FS is not set
- # CONFIG_FS_POSIX_ACL is not set
-@@ -635,7 +675,7 @@
- # CONFIG_HUGETLBFS is not set
- # CONFIG_HUGETLB_PAGE is not set
- CONFIG_RAMFS=y
--# CONFIG_RELAYFS_FS is not set
-+# CONFIG_CONFIGFS_FS is not set
-
- #
- # Miscellaneous filesystems
-@@ -713,9 +753,11 @@
- # Kernel hacking
- #
- # CONFIG_PRINTK_TIME is not set
-+# CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_DEBUG_KERNEL is not set
- CONFIG_LOG_BUF_SHIFT=14
--# CONFIG_FRAME_POINTER is not set
-+# CONFIG_DEBUG_FS is not set
-+# CONFIG_UNWIND_INFO is not set
- # CONFIG_SH_STANDARD_BIOS is not set
- # CONFIG_KGDB is not set
-
-diff -ruN linux-2.6.17-vanilla/arch/sh/configs/hs7751rvoip_defconfig linux-2.6.17/arch/sh/configs/hs7751rvoip_defconfig
---- linux-2.6.17-vanilla/arch/sh/configs/hs7751rvoip_defconfig 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/configs/hs7751rvoip_defconfig 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,884 @@
-+#
-+# Automatically generated make config: don't edit
-+# Linux kernel version: 2.6.15-sh
-+# Wed Jan 4 17:02:02 2006
-+#
-+CONFIG_SUPERH=y
-+CONFIG_UID16=y
-+CONFIG_RWSEM_GENERIC_SPINLOCK=y
-+CONFIG_GENERIC_HARDIRQS=y
-+CONFIG_GENERIC_IRQ_PROBE=y
-+CONFIG_GENERIC_CALIBRATE_DELAY=y
-+
-+#
-+# Code maturity level options
-+#
-+CONFIG_EXPERIMENTAL=y
-+CONFIG_CLEAN_COMPILE=y
-+CONFIG_BROKEN_ON_SMP=y
-+CONFIG_LOCK_KERNEL=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-+
-+#
-+# General setup
-+#
-+CONFIG_LOCALVERSION=""
-+CONFIG_LOCALVERSION_AUTO=y
-+CONFIG_SWAP=y
-+CONFIG_SYSVIPC=y
-+CONFIG_POSIX_MQUEUE=y
-+CONFIG_BSD_PROCESS_ACCT=y
-+# CONFIG_BSD_PROCESS_ACCT_V3 is not set
-+CONFIG_SYSCTL=y
-+# CONFIG_AUDIT is not set
-+CONFIG_HOTPLUG=y
-+CONFIG_KOBJECT_UEVENT=y
-+# CONFIG_IKCONFIG is not set
-+CONFIG_INITRAMFS_SOURCE=""
-+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-+CONFIG_EMBEDDED=y
-+# CONFIG_KALLSYMS is not set
-+CONFIG_PRINTK=y
-+CONFIG_BUG=y
-+CONFIG_BASE_FULL=y
-+CONFIG_FUTEX=y
-+CONFIG_EPOLL=y
-+CONFIG_SHMEM=y
-+CONFIG_CC_ALIGN_FUNCTIONS=0
-+CONFIG_CC_ALIGN_LABELS=0
-+CONFIG_CC_ALIGN_LOOPS=0
-+CONFIG_CC_ALIGN_JUMPS=0
-+# CONFIG_TINY_SHMEM is not set
-+CONFIG_BASE_SMALL=0
-+
-+#
-+# Loadable module support
-+#
-+CONFIG_MODULES=y
-+CONFIG_MODULE_UNLOAD=y
-+# CONFIG_MODULE_FORCE_UNLOAD is not set
-+CONFIG_OBSOLETE_MODPARM=y
-+# CONFIG_MODVERSIONS is not set
-+# CONFIG_MODULE_SRCVERSION_ALL is not set
-+CONFIG_KMOD=y
-+
-+#
-+# Block layer
-+#
-+# CONFIG_LBD is not set
-+
-+#
-+# IO Schedulers
-+#
-+CONFIG_IOSCHED_NOOP=y
-+CONFIG_IOSCHED_AS=y
-+CONFIG_IOSCHED_DEADLINE=y
-+CONFIG_IOSCHED_CFQ=y
-+CONFIG_DEFAULT_AS=y
-+# CONFIG_DEFAULT_DEADLINE is not set
-+# CONFIG_DEFAULT_CFQ is not set
-+# CONFIG_DEFAULT_NOOP is not set
-+CONFIG_DEFAULT_IOSCHED="anticipatory"
-+
-+#
-+# System type
-+#
-+# CONFIG_SH_SOLUTION_ENGINE is not set
-+# CONFIG_SH_7751_SOLUTION_ENGINE is not set
-+# CONFIG_SH_7300_SOLUTION_ENGINE is not set
-+# CONFIG_SH_73180_SOLUTION_ENGINE is not set
-+# CONFIG_SH_7751_SYSTEMH is not set
-+# CONFIG_SH_STB1_HARP is not set
-+# CONFIG_SH_STB1_OVERDRIVE is not set
-+# CONFIG_SH_HP6XX is not set
-+# CONFIG_SH_CQREEK is not set
-+# CONFIG_SH_DMIDA is not set
-+# CONFIG_SH_EC3104 is not set
-+# CONFIG_SH_SATURN is not set
-+# CONFIG_SH_DREAMCAST is not set
-+# CONFIG_SH_CAT68701 is not set
-+# CONFIG_SH_BIGSUR is not set
-+# CONFIG_SH_SH2000 is not set
-+# CONFIG_SH_ADX is not set
-+# CONFIG_SH_MPC1211 is not set
-+# CONFIG_SH_SH03 is not set
-+# CONFIG_SH_SECUREEDGE5410 is not set
-+CONFIG_SH_HS7751RVOIP=y
-+# CONFIG_SH_RTS7751R2D is not set
-+# CONFIG_SH_EDOSK7705 is not set
-+# CONFIG_SH_SH4202_MICRODEV is not set
-+# CONFIG_SH_LANDISK is not set
-+# CONFIG_SH_TITAN is not set
-+# CONFIG_SH_UNKNOWN is not set
-+
-+#
-+# Processor selection
-+#
-+CONFIG_CPU_SH4=y
-+
-+#
-+# SH-2 Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_SH7604 is not set
-+
-+#
-+# SH-3 Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_SH7300 is not set
-+# CONFIG_CPU_SUBTYPE_SH7705 is not set
-+# CONFIG_CPU_SUBTYPE_SH7707 is not set
-+# CONFIG_CPU_SUBTYPE_SH7708 is not set
-+# CONFIG_CPU_SUBTYPE_SH7709 is not set
-+
-+#
-+# SH-4 Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_SH7750 is not set
-+# CONFIG_CPU_SUBTYPE_SH7091 is not set
-+# CONFIG_CPU_SUBTYPE_SH7750R is not set
-+# CONFIG_CPU_SUBTYPE_SH7750S is not set
-+CONFIG_CPU_SUBTYPE_SH7751=y
-+CONFIG_CPU_SUBTYPE_SH7751R=y
-+# CONFIG_CPU_SUBTYPE_SH7760 is not set
-+# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+
-+#
-+# ST40 Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_ST40STB1 is not set
-+# CONFIG_CPU_SUBTYPE_ST40GX1 is not set
-+
-+#
-+# SH-4A Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_SH73180 is not set
-+# CONFIG_CPU_SUBTYPE_SH7770 is not set
-+# CONFIG_CPU_SUBTYPE_SH7780 is not set
-+
-+#
-+# Memory management options
-+#
-+CONFIG_MMU=y
-+CONFIG_SELECT_MEMORY_MODEL=y
-+CONFIG_FLATMEM_MANUAL=y
-+# CONFIG_DISCONTIGMEM_MANUAL is not set
-+# CONFIG_SPARSEMEM_MANUAL is not set
-+CONFIG_FLATMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+# CONFIG_SPARSEMEM_STATIC is not set
-+CONFIG_SPLIT_PTLOCK_CPUS=4
-+
-+#
-+# Cache configuration
-+#
-+# CONFIG_SH_DIRECT_MAPPED is not set
-+# CONFIG_SH_WRITETHROUGH is not set
-+# CONFIG_SH_OCRAM is not set
-+CONFIG_MEMORY_START=0x0c000000
-+CONFIG_MEMORY_SIZE=0x04000000
-+
-+#
-+# Processor features
-+#
-+CONFIG_CPU_LITTLE_ENDIAN=y
-+CONFIG_SH_RTC=y
-+CONFIG_SH_FPU=y
-+# CONFIG_SH_STORE_QUEUES is not set
-+
-+#
-+# Timer support
-+#
-+CONFIG_SH_TMU=y
-+
-+#
-+# HS7751RVoIP options
-+#
-+CONFIG_HS7751RVOIP_CODEC=y
-+# CONFIG_SH_PCLK_FREQ_BOOL is not set
-+
-+#
-+# CPU Frequency scaling
-+#
-+# CONFIG_CPU_FREQ is not set
-+
-+#
-+# DMA support
-+#
-+# CONFIG_SH_DMA is not set
-+
-+#
-+# Companion Chips
-+#
-+# CONFIG_HD6446X_SERIES is not set
-+
-+#
-+# Kernel features
-+#
-+# CONFIG_KEXEC is not set
-+CONFIG_PREEMPT=y
-+# CONFIG_SMP is not set
-+
-+#
-+# Boot options
-+#
-+CONFIG_ZERO_PAGE_OFFSET=0x00001000
-+CONFIG_BOOT_LINK_OFFSET=0x00800000
-+# CONFIG_UBC_WAKEUP is not set
-+CONFIG_CMDLINE_BOOL=y
-+CONFIG_CMDLINE="mem=64M console=ttySC1,115200 root=/dev/hda1"
-+
-+#
-+# Bus options
-+#
-+CONFIG_PCI=y
-+CONFIG_SH_PCIDMA_NONCOHERENT=y
-+CONFIG_PCI_AUTO=y
-+CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
-+CONFIG_PCI_LEGACY_PROC=y
-+
-+#
-+# PCCARD (PCMCIA/CardBus) support
-+#
-+# CONFIG_PCCARD is not set
-+
-+#
-+# PCI Hotplug Support
-+#
-+# CONFIG_HOTPLUG_PCI is not set
-+
-+#
-+# Executable file formats
-+#
-+CONFIG_BINFMT_ELF=y
-+# CONFIG_BINFMT_FLAT is not set
-+# CONFIG_BINFMT_MISC is not set
-+
-+#
-+# Networking
-+#
-+CONFIG_NET=y
-+
-+#
-+# Networking options
-+#
-+CONFIG_PACKET=y
-+CONFIG_PACKET_MMAP=y
-+CONFIG_UNIX=y
-+# CONFIG_NET_KEY is not set
-+CONFIG_INET=y
-+CONFIG_IP_MULTICAST=y
-+CONFIG_IP_ADVANCED_ROUTER=y
-+CONFIG_ASK_IP_FIB_HASH=y
-+# CONFIG_IP_FIB_TRIE is not set
-+CONFIG_IP_FIB_HASH=y
-+# CONFIG_IP_MULTIPLE_TABLES is not set
-+# CONFIG_IP_ROUTE_MULTIPATH is not set
-+# CONFIG_IP_ROUTE_VERBOSE is not set
-+# CONFIG_IP_PNP is not set
-+# CONFIG_NET_IPIP is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_IP_MROUTE is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_SYN_COOKIES is not set
-+# CONFIG_INET_AH is not set
-+# CONFIG_INET_ESP is not set
-+# CONFIG_INET_IPCOMP is not set
-+# CONFIG_INET_TUNNEL is not set
-+CONFIG_INET_DIAG=y
-+CONFIG_INET_TCP_DIAG=y
-+# CONFIG_TCP_CONG_ADVANCED is not set
-+CONFIG_TCP_CONG_BIC=y
-+# CONFIG_IPV6 is not set
-+# CONFIG_NETFILTER is not set
-+
-+#
-+# DCCP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_DCCP is not set
-+
-+#
-+# SCTP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_SCTP is not set
-+# CONFIG_ATM is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_VLAN_8021Q is not set
-+# CONFIG_DECNET is not set
-+# CONFIG_LLC2 is not set
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
-+# CONFIG_X25 is not set
-+# CONFIG_LAPB is not set
-+# CONFIG_NET_DIVERT 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
-+
-+#
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+# CONFIG_HAMRADIO is not set
-+# CONFIG_IRDA is not set
-+# CONFIG_BT is not set
-+# CONFIG_IEEE80211 is not set
-+
-+#
-+# Device Drivers
-+#
-+
-+#
-+# Generic Driver Options
-+#
-+CONFIG_STANDALONE=y
-+CONFIG_PREVENT_FIRMWARE_BUILD=y
-+CONFIG_FW_LOADER=m
-+
-+#
-+# Connector - unified userspace <-> kernelspace linker
-+#
-+# CONFIG_CONNECTOR is not set
-+
-+#
-+# Memory Technology Devices (MTD)
-+#
-+# CONFIG_MTD is not set
-+
-+#
-+# Parallel port support
-+#
-+# CONFIG_PARPORT is not set
-+
-+#
-+# Plug and Play support
-+#
-+
-+#
-+# Block devices
-+#
-+# CONFIG_BLK_CPQ_DA is not set
-+# CONFIG_BLK_CPQ_CISS_DA is not set
-+# CONFIG_BLK_DEV_DAC960 is not set
-+# CONFIG_BLK_DEV_UMEM is not set
-+# CONFIG_BLK_DEV_COW_COMMON is not set
-+# CONFIG_BLK_DEV_LOOP is not set
-+# CONFIG_BLK_DEV_NBD is not set
-+# CONFIG_BLK_DEV_SX8 is not set
-+# CONFIG_BLK_DEV_RAM is not set
-+CONFIG_BLK_DEV_RAM_COUNT=16
-+# CONFIG_CDROM_PKTCDVD is not set
-+# CONFIG_ATA_OVER_ETH is not set
-+
-+#
-+# ATA/ATAPI/MFM/RLL support
-+#
-+CONFIG_IDE=y
-+CONFIG_IDE_MAX_HWIFS=1
-+CONFIG_BLK_DEV_IDE=y
-+
-+#
-+# Please see Documentation/ide.txt for help/info on IDE drives
-+#
-+# CONFIG_BLK_DEV_IDE_SATA is not set
-+CONFIG_BLK_DEV_IDEDISK=y
-+# CONFIG_IDEDISK_MULTI_MODE is not set
-+# CONFIG_BLK_DEV_IDECD is not set
-+# CONFIG_BLK_DEV_IDETAPE is not set
-+# CONFIG_BLK_DEV_IDEFLOPPY is not set
-+# CONFIG_IDE_TASK_IOCTL is not set
-+
-+#
-+# IDE chipset support/bugfixes
-+#
-+CONFIG_IDE_GENERIC=y
-+CONFIG_BLK_DEV_IDEPCI=y
-+CONFIG_IDEPCI_SHARE_IRQ=y
-+# CONFIG_BLK_DEV_OFFBOARD is not set
-+CONFIG_BLK_DEV_GENERIC=y
-+# CONFIG_BLK_DEV_OPTI621 is not set
-+# CONFIG_BLK_DEV_IDEDMA_PCI is not set
-+CONFIG_IDE_SH=y
-+# CONFIG_IDE_ARM is not set
-+# CONFIG_BLK_DEV_IDEDMA is not set
-+# CONFIG_IDEDMA_AUTO is not set
-+# CONFIG_BLK_DEV_HD is not set
-+
-+#
-+# SCSI device support
-+#
-+# CONFIG_RAID_ATTRS is not set
-+# CONFIG_SCSI is not set
-+
-+#
-+# Multi-device support (RAID and LVM)
-+#
-+# CONFIG_MD is not set
-+
-+#
-+# Fusion MPT device support
-+#
-+# CONFIG_FUSION is not set
-+
-+#
-+# IEEE 1394 (FireWire) support
-+#
-+# CONFIG_IEEE1394 is not set
-+
-+#
-+# I2O device support
-+#
-+# CONFIG_I2O is not set
-+
-+#
-+# Network device support
-+#
-+CONFIG_NETDEVICES=y
-+# CONFIG_DUMMY is not set
-+# CONFIG_BONDING is not set
-+# CONFIG_EQUALIZER is not set
-+# CONFIG_TUN is not set
-+
-+#
-+# ARCnet devices
-+#
-+# CONFIG_ARCNET is not set
-+
-+#
-+# PHY device support
-+#
-+# CONFIG_PHYLIB is not set
-+
-+#
-+# Ethernet (10 or 100Mbit)
-+#
-+CONFIG_NET_ETHERNET=y
-+CONFIG_MII=y
-+# CONFIG_STNIC is not set
-+# CONFIG_HAPPYMEAL is not set
-+# CONFIG_SUNGEM is not set
-+# CONFIG_CASSINI is not set
-+# CONFIG_NET_VENDOR_3COM is not set
-+# CONFIG_SMC91X is not set
-+
-+#
-+# Tulip family network device support
-+#
-+# CONFIG_NET_TULIP is not set
-+# CONFIG_HP100 is not set
-+# CONFIG_NE2000 is not set
-+CONFIG_NET_PCI=y
-+# CONFIG_PCNET32 is not set
-+# CONFIG_AMD8111_ETH is not set
-+# CONFIG_ADAPTEC_STARFIRE is not set
-+# CONFIG_B44 is not set
-+# CONFIG_FORCEDETH is not set
-+# CONFIG_DGRS is not set
-+# CONFIG_EEPRO100 is not set
-+# CONFIG_E100 is not set
-+# CONFIG_FEALNX is not set
-+# CONFIG_NATSEMI is not set
-+# CONFIG_NE2K_PCI is not set
-+# CONFIG_8139CP is not set
-+CONFIG_8139TOO=y
-+# CONFIG_8139TOO_PIO is not set
-+# CONFIG_8139TOO_TUNE_TWISTER is not set
-+# CONFIG_8139TOO_8129 is not set
-+# CONFIG_8139_OLD_RX_RESET is not set
-+# CONFIG_SIS900 is not set
-+# CONFIG_EPIC100 is not set
-+# CONFIG_SUNDANCE is not set
-+# CONFIG_TLAN is not set
-+# CONFIG_VIA_RHINE is not set
-+
-+#
-+# Ethernet (1000 Mbit)
-+#
-+# CONFIG_ACENIC is not set
-+# CONFIG_DL2K is not set
-+# CONFIG_E1000 is not set
-+# CONFIG_NS83820 is not set
-+# CONFIG_HAMACHI is not set
-+# CONFIG_YELLOWFIN is not set
-+# CONFIG_R8169 is not set
-+# CONFIG_SIS190 is not set
-+# CONFIG_SKGE is not set
-+# CONFIG_SK98LIN is not set
-+# CONFIG_VIA_VELOCITY is not set
-+# CONFIG_TIGON3 is not set
-+# CONFIG_BNX2 is not set
-+
-+#
-+# Ethernet (10000 Mbit)
-+#
-+# CONFIG_CHELSIO_T1 is not set
-+# CONFIG_IXGB is not set
-+# CONFIG_S2IO is not set
-+
-+#
-+# Token Ring devices
-+#
-+# CONFIG_TR is not set
-+
-+#
-+# Wireless LAN (non-hamradio)
-+#
-+# CONFIG_NET_RADIO is not set
-+
-+#
-+# Wan interfaces
-+#
-+# CONFIG_WAN is not set
-+# CONFIG_FDDI is not set
-+# CONFIG_HIPPI is not set
-+# CONFIG_PPP is not set
-+# CONFIG_SLIP 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
-+
-+#
-+# ISDN subsystem
-+#
-+# CONFIG_ISDN is not set
-+
-+#
-+# Telephony Support
-+#
-+# CONFIG_PHONE is not set
-+
-+#
-+# Input device support
-+#
-+CONFIG_INPUT=y
-+
-+#
-+# Userland interfaces
-+#
-+# CONFIG_INPUT_MOUSEDEV is not set
-+# CONFIG_INPUT_JOYDEV is not set
-+# CONFIG_INPUT_TSDEV is not set
-+# CONFIG_INPUT_EVDEV is not set
-+# CONFIG_INPUT_EVBUG is not set
-+
-+#
-+# Input Device Drivers
-+#
-+# CONFIG_INPUT_KEYBOARD is not set
-+# CONFIG_INPUT_MOUSE is not set
-+# CONFIG_INPUT_JOYSTICK is not set
-+# CONFIG_INPUT_TOUCHSCREEN is not set
-+# CONFIG_INPUT_MISC is not set
-+
-+#
-+# Hardware I/O ports
-+#
-+CONFIG_SERIO=y
-+CONFIG_SERIO_I8042=y
-+CONFIG_SERIO_SERPORT=y
-+# CONFIG_SERIO_PCIPS2 is not set
-+# CONFIG_SERIO_LIBPS2 is not set
-+# CONFIG_SERIO_RAW is not set
-+# CONFIG_GAMEPORT is not set
-+
-+#
-+# Character devices
-+#
-+# CONFIG_VT is not set
-+# CONFIG_SERIAL_NONSTANDARD is not set
-+
-+#
-+# Serial drivers
-+#
-+# CONFIG_SERIAL_8250 is not set
-+
-+#
-+# Non-8250 serial port support
-+#
-+CONFIG_SERIAL_SH_SCI=y
-+CONFIG_SERIAL_SH_SCI_CONSOLE=y
-+CONFIG_SERIAL_CORE=y
-+CONFIG_SERIAL_CORE_CONSOLE=y
-+# CONFIG_SERIAL_JSM is not set
-+CONFIG_UNIX98_PTYS=y
-+# CONFIG_LEGACY_PTYS is not set
-+
-+#
-+# IPMI
-+#
-+# CONFIG_IPMI_HANDLER is not set
-+
-+#
-+# Watchdog Cards
-+#
-+# CONFIG_WATCHDOG is not set
-+# CONFIG_RTC is not set
-+# CONFIG_GEN_RTC is not set
-+# CONFIG_DTLK is not set
-+# CONFIG_R3964 is not set
-+# CONFIG_APPLICOM is not set
-+
-+#
-+# Ftape, the floppy tape device driver
-+#
-+# CONFIG_DRM is not set
-+# CONFIG_RAW_DRIVER is not set
-+
-+#
-+# TPM devices
-+#
-+# CONFIG_TCG_TPM is not set
-+# CONFIG_TELCLOCK is not set
-+
-+#
-+# I2C support
-+#
-+# CONFIG_I2C is not set
-+
-+#
-+# Dallas's 1-wire bus
-+#
-+# CONFIG_W1 is not set
-+
-+#
-+# Hardware Monitoring support
-+#
-+CONFIG_HWMON=y
-+# CONFIG_HWMON_VID is not set
-+# CONFIG_HWMON_DEBUG_CHIP is not set
-+
-+#
-+# Misc devices
-+#
-+
-+#
-+# Multimedia Capabilities Port drivers
-+#
-+
-+#
-+# Multimedia devices
-+#
-+# CONFIG_VIDEO_DEV is not set
-+
-+#
-+# Digital Video Broadcasting Devices
-+#
-+# CONFIG_DVB is not set
-+
-+#
-+# Graphics support
-+#
-+# CONFIG_FB is not set
-+
-+#
-+# Sound
-+#
-+# CONFIG_SOUND is not set
-+
-+#
-+# USB support
-+#
-+CONFIG_USB_ARCH_HAS_HCD=y
-+CONFIG_USB_ARCH_HAS_OHCI=y
-+# CONFIG_USB is not set
-+
-+#
-+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
-+#
-+
-+#
-+# USB Gadget Support
-+#
-+# CONFIG_USB_GADGET is not set
-+
-+#
-+# MMC/SD Card support
-+#
-+# CONFIG_MMC is not set
-+
-+#
-+# InfiniBand support
-+#
-+# CONFIG_INFINIBAND is not set
-+
-+#
-+# SN Devices
-+#
-+
-+#
-+# File systems
-+#
-+CONFIG_EXT2_FS=y
-+# CONFIG_EXT2_FS_XATTR is not set
-+# CONFIG_EXT2_FS_XIP is not set
-+# CONFIG_EXT3_FS is not set
-+# CONFIG_JBD is not set
-+# CONFIG_REISERFS_FS is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_FS_POSIX_ACL is not set
-+# CONFIG_XFS_FS is not set
-+# CONFIG_MINIX_FS is not set
-+# CONFIG_ROMFS_FS is not set
-+CONFIG_INOTIFY=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
-+
-+#
-+# CD-ROM/DVD Filesystems
-+#
-+# CONFIG_ISO9660_FS is not set
-+# CONFIG_UDF_FS is not set
-+
-+#
-+# DOS/FAT/NT Filesystems
-+#
-+# CONFIG_MSDOS_FS is not set
-+# CONFIG_VFAT_FS is not set
-+# CONFIG_NTFS_FS is not set
-+
-+#
-+# Pseudo filesystems
-+#
-+CONFIG_PROC_FS=y
-+CONFIG_PROC_KCORE=y
-+CONFIG_SYSFS=y
-+CONFIG_TMPFS=y
-+# CONFIG_HUGETLBFS is not set
-+# CONFIG_HUGETLB_PAGE is not set
-+CONFIG_RAMFS=y
-+# CONFIG_RELAYFS_FS is not set
-+
-+#
-+# Miscellaneous filesystems
-+#
-+# CONFIG_ADFS_FS is not set
-+# CONFIG_AFFS_FS is not set
-+# CONFIG_HFS_FS is not set
-+# CONFIG_HFSPLUS_FS is not set
-+# CONFIG_BEFS_FS is not set
-+# CONFIG_BFS_FS is not set
-+# CONFIG_EFS_FS is not set
-+# CONFIG_CRAMFS is not set
-+# CONFIG_VXFS_FS is not set
-+# CONFIG_HPFS_FS is not set
-+# CONFIG_QNX4FS_FS is not set
-+# CONFIG_SYSV_FS is not set
-+# CONFIG_UFS_FS is not set
-+
-+#
-+# Network File Systems
-+#
-+CONFIG_NFS_FS=y
-+CONFIG_NFS_V3=y
-+# CONFIG_NFS_V3_ACL is not set
-+CONFIG_NFS_V4=y
-+CONFIG_NFS_DIRECTIO=y
-+# CONFIG_NFSD is not set
-+CONFIG_LOCKD=y
-+CONFIG_LOCKD_V4=y
-+CONFIG_NFS_COMMON=y
-+CONFIG_SUNRPC=y
-+CONFIG_SUNRPC_GSS=y
-+CONFIG_RPCSEC_GSS_KRB5=y
-+# CONFIG_RPCSEC_GSS_SPKM3 is not set
-+# CONFIG_SMB_FS is not set
-+# CONFIG_CIFS is not set
-+# CONFIG_NCP_FS is not set
-+# CONFIG_CODA_FS is not set
-+# CONFIG_AFS_FS is not set
-+# CONFIG_9P_FS is not set
-+
-+#
-+# Partition Types
-+#
-+CONFIG_PARTITION_ADVANCED=y
-+# CONFIG_ACORN_PARTITION is not set
-+# CONFIG_OSF_PARTITION is not set
-+# CONFIG_AMIGA_PARTITION is not set
-+# CONFIG_ATARI_PARTITION is not set
-+# CONFIG_MAC_PARTITION is not set
-+CONFIG_MSDOS_PARTITION=y
-+# CONFIG_BSD_DISKLABEL is not set
-+# CONFIG_MINIX_SUBPARTITION is not set
-+# CONFIG_SOLARIS_X86_PARTITION is not set
-+# CONFIG_UNIXWARE_DISKLABEL is not set
-+# CONFIG_LDM_PARTITION is not set
-+# CONFIG_SGI_PARTITION is not set
-+# CONFIG_ULTRIX_PARTITION is not set
-+# CONFIG_SUN_PARTITION is not set
-+# CONFIG_EFI_PARTITION is not set
-+
-+#
-+# Native Language Support
-+#
-+# CONFIG_NLS is not set
-+
-+#
-+# Profiling support
-+#
-+# CONFIG_PROFILING is not set
-+
-+#
-+# Kernel hacking
-+#
-+# CONFIG_PRINTK_TIME is not set
-+# CONFIG_DEBUG_KERNEL is not set
-+CONFIG_LOG_BUF_SHIFT=14
-+# CONFIG_FRAME_POINTER is not set
-+# CONFIG_SH_STANDARD_BIOS is not set
-+# CONFIG_EARLY_SCIF_CONSOLE is not set
-+# CONFIG_KGDB is not set
-+
-+#
-+# Security options
-+#
-+# CONFIG_KEYS is not set
-+# CONFIG_SECURITY is not set
-+
-+#
-+# Cryptographic options
-+#
-+CONFIG_CRYPTO=y
-+# CONFIG_CRYPTO_HMAC is not set
-+# CONFIG_CRYPTO_NULL is not set
-+# CONFIG_CRYPTO_MD4 is not set
-+CONFIG_CRYPTO_MD5=y
-+# CONFIG_CRYPTO_SHA1 is not set
-+# CONFIG_CRYPTO_SHA256 is not set
-+# CONFIG_CRYPTO_SHA512 is not set
-+# CONFIG_CRYPTO_WP512 is not set
-+# CONFIG_CRYPTO_TGR192 is not set
-+CONFIG_CRYPTO_DES=y
-+# CONFIG_CRYPTO_BLOWFISH is not set
-+# CONFIG_CRYPTO_TWOFISH is not set
-+# CONFIG_CRYPTO_SERPENT is not set
-+# CONFIG_CRYPTO_AES is not set
-+# CONFIG_CRYPTO_CAST5 is not set
-+# CONFIG_CRYPTO_CAST6 is not set
-+# CONFIG_CRYPTO_TEA is not set
-+# CONFIG_CRYPTO_ARC4 is not set
-+# CONFIG_CRYPTO_KHAZAD is not set
-+# CONFIG_CRYPTO_ANUBIS is not set
-+# CONFIG_CRYPTO_DEFLATE is not set
-+# CONFIG_CRYPTO_MICHAEL_MIC is not set
-+# CONFIG_CRYPTO_CRC32C is not set
-+# CONFIG_CRYPTO_TEST is not set
-+
-+#
-+# Hardware crypto devices
-+#
-+
-+#
-+# Library routines
-+#
-+# CONFIG_CRC_CCITT is not set
-+# CONFIG_CRC16 is not set
-+CONFIG_CRC32=y
-+# CONFIG_LIBCRC32C is not set
-diff -ruN linux-2.6.17-vanilla/arch/sh/configs/landisk_defconfig linux-2.6.17/arch/sh/configs/landisk_defconfig
---- linux-2.6.17-vanilla/arch/sh/configs/landisk_defconfig 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/configs/landisk_defconfig 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,1372 @@
-+#
-+# Automatically generated make config: don't edit
-+# Linux kernel version: 2.6.14-sh
-+# Sun Dec 18 01:38:13 2005
-+#
-+CONFIG_SUPERH=y
-+CONFIG_UID16=y
-+CONFIG_RWSEM_GENERIC_SPINLOCK=y
-+CONFIG_GENERIC_HARDIRQS=y
-+CONFIG_GENERIC_IRQ_PROBE=y
-+CONFIG_GENERIC_CALIBRATE_DELAY=y
-+
-+#
-+# Code maturity level options
-+#
-+CONFIG_EXPERIMENTAL=y
-+CONFIG_CLEAN_COMPILE=y
-+CONFIG_BROKEN_ON_SMP=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-+
-+#
-+# General setup
-+#
-+CONFIG_LOCALVERSION=""
-+CONFIG_LOCALVERSION_AUTO=y
-+CONFIG_SWAP=y
-+CONFIG_SYSVIPC=y
-+# CONFIG_POSIX_MQUEUE is not set
-+# CONFIG_BSD_PROCESS_ACCT is not set
-+CONFIG_SYSCTL=y
-+# CONFIG_AUDIT is not set
-+CONFIG_HOTPLUG=y
-+CONFIG_KOBJECT_UEVENT=y
-+# CONFIG_IKCONFIG is not set
-+CONFIG_INITRAMFS_SOURCE=""
-+# CONFIG_EMBEDDED is not set
-+CONFIG_KALLSYMS=y
-+CONFIG_KALLSYMS_EXTRA_PASS=y
-+CONFIG_PRINTK=y
-+CONFIG_BUG=y
-+CONFIG_BASE_FULL=y
-+CONFIG_FUTEX=y
-+CONFIG_EPOLL=y
-+CONFIG_SHMEM=y
-+CONFIG_CC_ALIGN_FUNCTIONS=0
-+CONFIG_CC_ALIGN_LABELS=0
-+CONFIG_CC_ALIGN_LOOPS=0
-+CONFIG_CC_ALIGN_JUMPS=0
-+# CONFIG_TINY_SHMEM is not set
-+CONFIG_BASE_SMALL=0
-+
-+#
-+# Loadable module support
-+#
-+CONFIG_MODULES=y
-+CONFIG_MODULE_UNLOAD=y
-+CONFIG_MODULE_FORCE_UNLOAD=y
-+CONFIG_OBSOLETE_MODPARM=y
-+# CONFIG_MODVERSIONS is not set
-+# CONFIG_MODULE_SRCVERSION_ALL is not set
-+CONFIG_KMOD=y
-+
-+#
-+# System type
-+#
-+# CONFIG_SH_SOLUTION_ENGINE is not set
-+# CONFIG_SH_7751_SOLUTION_ENGINE is not set
-+# CONFIG_SH_7300_SOLUTION_ENGINE is not set
-+# CONFIG_SH_73180_SOLUTION_ENGINE is not set
-+# CONFIG_SH_7751_SYSTEMH is not set
-+# CONFIG_SH_STB1_HARP is not set
-+# CONFIG_SH_STB1_OVERDRIVE is not set
-+# CONFIG_SH_HP6XX is not set
-+# CONFIG_SH_CQREEK is not set
-+# CONFIG_SH_DMIDA is not set
-+# CONFIG_SH_EC3104 is not set
-+# CONFIG_SH_SATURN is not set
-+# CONFIG_SH_DREAMCAST is not set
-+# CONFIG_SH_CAT68701 is not set
-+# CONFIG_SH_BIGSUR is not set
-+# CONFIG_SH_SH2000 is not set
-+# CONFIG_SH_ADX is not set
-+# CONFIG_SH_MPC1211 is not set
-+# CONFIG_SH_SH03 is not set
-+# CONFIG_SH_SECUREEDGE5410 is not set
-+# CONFIG_SH_HS7751RVOIP is not set
-+# CONFIG_SH_RTS7751R2D is not set
-+# CONFIG_SH_EDOSK7705 is not set
-+# CONFIG_SH_SH4202_MICRODEV is not set
-+CONFIG_SH_LANDISK=y
-+# CONFIG_SH_TITAN is not set
-+# CONFIG_SH_UNKNOWN is not set
-+
-+#
-+# Processor selection
-+#
-+CONFIG_CPU_SH4=y
-+
-+#
-+# SH-2 Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_SH7604 is not set
-+
-+#
-+# SH-3 Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_SH7300 is not set
-+# CONFIG_CPU_SUBTYPE_SH7705 is not set
-+# CONFIG_CPU_SUBTYPE_SH7707 is not set
-+# CONFIG_CPU_SUBTYPE_SH7708 is not set
-+# CONFIG_CPU_SUBTYPE_SH7709 is not set
-+
-+#
-+# SH-4 Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_SH7750 is not set
-+# CONFIG_CPU_SUBTYPE_SH7091 is not set
-+# CONFIG_CPU_SUBTYPE_SH7750R is not set
-+# CONFIG_CPU_SUBTYPE_SH7750S is not set
-+CONFIG_CPU_SUBTYPE_SH7751=y
-+CONFIG_CPU_SUBTYPE_SH7751R=y
-+# CONFIG_CPU_SUBTYPE_SH7760 is not set
-+# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+
-+#
-+# ST40 Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_ST40STB1 is not set
-+# CONFIG_CPU_SUBTYPE_ST40GX1 is not set
-+
-+#
-+# SH-4A Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_SH73180 is not set
-+# CONFIG_CPU_SUBTYPE_SH7770 is not set
-+# CONFIG_CPU_SUBTYPE_SH7780 is not set
-+
-+#
-+# Memory management options
-+#
-+CONFIG_MMU=y
-+CONFIG_SELECT_MEMORY_MODEL=y
-+CONFIG_FLATMEM_MANUAL=y
-+# CONFIG_DISCONTIGMEM_MANUAL is not set
-+# CONFIG_SPARSEMEM_MANUAL is not set
-+CONFIG_FLATMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+# CONFIG_SPARSEMEM_STATIC is not set
-+
-+#
-+# Cache configuration
-+#
-+# CONFIG_SH_DIRECT_MAPPED is not set
-+# CONFIG_SH_WRITETHROUGH is not set
-+# CONFIG_SH_OCRAM is not set
-+CONFIG_MEMORY_START=0x0c000000
-+CONFIG_MEMORY_SIZE=0x04000000
-+
-+#
-+# Processor features
-+#
-+CONFIG_CPU_LITTLE_ENDIAN=y
-+CONFIG_SH_FPU=y
-+# CONFIG_SH_STORE_QUEUES is not set
-+
-+#
-+# Timer support
-+#
-+CONFIG_SH_TMU=y
-+CONFIG_SH_PCLK_FREQ_BOOL=y
-+CONFIG_SH_PCLK_FREQ=33333333
-+
-+#
-+# CPU Frequency scaling
-+#
-+# CONFIG_CPU_FREQ is not set
-+
-+#
-+# DMA support
-+#
-+CONFIG_SH_DMA=y
-+CONFIG_NR_ONCHIP_DMA_CHANNELS=4
-+# CONFIG_NR_DMA_CHANNELS_BOOL is not set
-+
-+#
-+# Companion Chips
-+#
-+# CONFIG_HD6446X_SERIES is not set
-+CONFIG_HEARTBEAT=y
-+
-+#
-+# Kernel features
-+#
-+CONFIG_KEXEC=y
-+# CONFIG_PREEMPT is not set
-+# CONFIG_SMP is not set
-+
-+#
-+# Boot options
-+#
-+CONFIG_ZERO_PAGE_OFFSET=0x00001000
-+CONFIG_BOOT_LINK_OFFSET=0x00800000
-+# CONFIG_UBC_WAKEUP is not set
-+# CONFIG_CMDLINE_BOOL is not set
-+
-+#
-+# Bus options
-+#
-+CONFIG_ISA=y
-+CONFIG_PCI=y
-+CONFIG_SH_PCIDMA_NONCOHERENT=y
-+CONFIG_PCI_AUTO=y
-+CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
-+CONFIG_PCI_LEGACY_PROC=y
-+
-+#
-+# PCCARD (PCMCIA/CardBus) support
-+#
-+CONFIG_PCCARD=y
-+# CONFIG_PCMCIA_DEBUG is not set
-+CONFIG_PCMCIA=y
-+CONFIG_PCMCIA_LOAD_CIS=y
-+CONFIG_PCMCIA_IOCTL=y
-+CONFIG_CARDBUS=y
-+
-+#
-+# PC-card bridges
-+#
-+CONFIG_YENTA=y
-+# CONFIG_PD6729 is not set
-+# CONFIG_I82092 is not set
-+# CONFIG_I82365 is not set
-+# CONFIG_TCIC is not set
-+CONFIG_PCMCIA_PROBE=y
-+CONFIG_PCCARD_NONSTATIC=y
-+
-+#
-+# PCI Hotplug Support
-+#
-+# CONFIG_HOTPLUG_PCI is not set
-+
-+#
-+# Executable file formats
-+#
-+CONFIG_BINFMT_ELF=y
-+# CONFIG_BINFMT_FLAT is not set
-+# CONFIG_BINFMT_MISC is not set
-+
-+#
-+# Networking
-+#
-+CONFIG_NET=y
-+
-+#
-+# Networking options
-+#
-+CONFIG_PACKET=y
-+# CONFIG_PACKET_MMAP is not set
-+CONFIG_UNIX=y
-+# CONFIG_NET_KEY is not set
-+CONFIG_INET=y
-+# CONFIG_IP_MULTICAST is not set
-+CONFIG_IP_ADVANCED_ROUTER=y
-+CONFIG_ASK_IP_FIB_HASH=y
-+# CONFIG_IP_FIB_TRIE is not set
-+CONFIG_IP_FIB_HASH=y
-+# CONFIG_IP_MULTIPLE_TABLES is not set
-+# CONFIG_IP_ROUTE_MULTIPATH is not set
-+# CONFIG_IP_ROUTE_VERBOSE is not set
-+CONFIG_IP_PNP=y
-+# CONFIG_IP_PNP_DHCP is not set
-+# CONFIG_IP_PNP_BOOTP is not set
-+# CONFIG_IP_PNP_RARP is not set
-+# CONFIG_NET_IPIP is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_SYN_COOKIES is not set
-+# CONFIG_INET_AH is not set
-+# CONFIG_INET_ESP is not set
-+# CONFIG_INET_IPCOMP is not set
-+# CONFIG_INET_TUNNEL is not set
-+CONFIG_INET_DIAG=y
-+CONFIG_INET_TCP_DIAG=y
-+# CONFIG_TCP_CONG_ADVANCED is not set
-+CONFIG_TCP_CONG_BIC=y
-+
-+#
-+# IP: Virtual Server Configuration
-+#
-+# CONFIG_IP_VS is not set
-+# CONFIG_IPV6 is not set
-+CONFIG_NETFILTER=y
-+# CONFIG_NETFILTER_DEBUG is not set
-+# CONFIG_NETFILTER_NETLINK is not set
-+
-+#
-+# IP: Netfilter Configuration
-+#
-+CONFIG_IP_NF_CONNTRACK=m
-+CONFIG_IP_NF_CT_ACCT=y
-+CONFIG_IP_NF_CONNTRACK_MARK=y
-+# CONFIG_IP_NF_CONNTRACK_EVENTS is not set
-+# CONFIG_IP_NF_CT_PROTO_SCTP is not set
-+CONFIG_IP_NF_FTP=m
-+CONFIG_IP_NF_IRC=m
-+# CONFIG_IP_NF_NETBIOS_NS is not set
-+CONFIG_IP_NF_TFTP=m
-+CONFIG_IP_NF_AMANDA=m
-+# CONFIG_IP_NF_PPTP is not set
-+CONFIG_IP_NF_QUEUE=m
-+CONFIG_IP_NF_IPTABLES=m
-+CONFIG_IP_NF_MATCH_LIMIT=m
-+CONFIG_IP_NF_MATCH_IPRANGE=m
-+CONFIG_IP_NF_MATCH_MAC=m
-+CONFIG_IP_NF_MATCH_PKTTYPE=m
-+CONFIG_IP_NF_MATCH_MARK=m
-+CONFIG_IP_NF_MATCH_MULTIPORT=m
-+CONFIG_IP_NF_MATCH_TOS=m
-+CONFIG_IP_NF_MATCH_RECENT=m
-+CONFIG_IP_NF_MATCH_ECN=m
-+CONFIG_IP_NF_MATCH_DSCP=m
-+CONFIG_IP_NF_MATCH_AH_ESP=m
-+CONFIG_IP_NF_MATCH_LENGTH=m
-+CONFIG_IP_NF_MATCH_TTL=m
-+CONFIG_IP_NF_MATCH_TCPMSS=m
-+CONFIG_IP_NF_MATCH_HELPER=m
-+CONFIG_IP_NF_MATCH_STATE=m
-+CONFIG_IP_NF_MATCH_CONNTRACK=m
-+CONFIG_IP_NF_MATCH_OWNER=m
-+CONFIG_IP_NF_MATCH_ADDRTYPE=m
-+CONFIG_IP_NF_MATCH_REALM=m
-+CONFIG_IP_NF_MATCH_SCTP=m
-+# CONFIG_IP_NF_MATCH_DCCP is not set
-+CONFIG_IP_NF_MATCH_COMMENT=m
-+CONFIG_IP_NF_MATCH_CONNMARK=m
-+# CONFIG_IP_NF_MATCH_CONNBYTES is not set
-+CONFIG_IP_NF_MATCH_HASHLIMIT=m
-+# CONFIG_IP_NF_MATCH_STRING is not set
-+CONFIG_IP_NF_FILTER=m
-+CONFIG_IP_NF_TARGET_REJECT=m
-+CONFIG_IP_NF_TARGET_LOG=m
-+CONFIG_IP_NF_TARGET_ULOG=m
-+CONFIG_IP_NF_TARGET_TCPMSS=m
-+# CONFIG_IP_NF_TARGET_NFQUEUE is not set
-+CONFIG_IP_NF_NAT=m
-+CONFIG_IP_NF_NAT_NEEDED=y
-+CONFIG_IP_NF_TARGET_MASQUERADE=m
-+CONFIG_IP_NF_TARGET_REDIRECT=m
-+CONFIG_IP_NF_TARGET_NETMAP=m
-+CONFIG_IP_NF_TARGET_SAME=m
-+# CONFIG_IP_NF_NAT_SNMP_BASIC is not set
-+CONFIG_IP_NF_NAT_IRC=m
-+CONFIG_IP_NF_NAT_FTP=m
-+CONFIG_IP_NF_NAT_TFTP=m
-+CONFIG_IP_NF_NAT_AMANDA=m
-+CONFIG_IP_NF_MANGLE=m
-+CONFIG_IP_NF_TARGET_TOS=m
-+CONFIG_IP_NF_TARGET_ECN=m
-+CONFIG_IP_NF_TARGET_DSCP=m
-+CONFIG_IP_NF_TARGET_MARK=m
-+CONFIG_IP_NF_TARGET_CLASSIFY=m
-+# CONFIG_IP_NF_TARGET_TTL is not set
-+CONFIG_IP_NF_TARGET_CONNMARK=m
-+# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
-+CONFIG_IP_NF_RAW=m
-+CONFIG_IP_NF_TARGET_NOTRACK=m
-+CONFIG_IP_NF_ARPTABLES=m
-+CONFIG_IP_NF_ARPFILTER=m
-+CONFIG_IP_NF_ARP_MANGLE=m
-+
-+#
-+# DCCP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_DCCP is not set
-+
-+#
-+# SCTP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_SCTP is not set
-+# CONFIG_ATM is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_VLAN_8021Q is not set
-+# CONFIG_DECNET is not set
-+CONFIG_LLC=m
-+# CONFIG_LLC2 is not set
-+# CONFIG_IPX is not set
-+CONFIG_ATALK=m
-+# CONFIG_DEV_APPLETALK is not set
-+# CONFIG_X25 is not set
-+# CONFIG_LAPB is not set
-+# CONFIG_NET_DIVERT is not set
-+# CONFIG_ECONET is not set
-+# CONFIG_WAN_ROUTER is not set
-+# CONFIG_NET_SCHED is not set
-+CONFIG_NET_CLS_ROUTE=y
-+
-+#
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+# CONFIG_HAMRADIO is not set
-+# CONFIG_IRDA is not set
-+# CONFIG_BT is not set
-+# CONFIG_IEEE80211 is not set
-+
-+#
-+# Device Drivers
-+#
-+
-+#
-+# Generic Driver Options
-+#
-+CONFIG_STANDALONE=y
-+CONFIG_PREVENT_FIRMWARE_BUILD=y
-+CONFIG_FW_LOADER=y
-+
-+#
-+# Connector - unified userspace <-> kernelspace linker
-+#
-+# CONFIG_CONNECTOR is not set
-+
-+#
-+# Memory Technology Devices (MTD)
-+#
-+# CONFIG_MTD is not set
-+
-+#
-+# Parallel port support
-+#
-+# CONFIG_PARPORT is not set
-+
-+#
-+# Plug and Play support
-+#
-+# CONFIG_PNP is not set
-+
-+#
-+# Block devices
-+#
-+# CONFIG_BLK_CPQ_DA is not set
-+# CONFIG_BLK_CPQ_CISS_DA is not set
-+# CONFIG_BLK_DEV_DAC960 is not set
-+# CONFIG_BLK_DEV_UMEM is not set
-+# CONFIG_BLK_DEV_COW_COMMON is not set
-+CONFIG_BLK_DEV_LOOP=y
-+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-+# CONFIG_BLK_DEV_NBD is not set
-+# CONFIG_BLK_DEV_SX8 is not set
-+# CONFIG_BLK_DEV_UB is not set
-+CONFIG_BLK_DEV_RAM=y
-+CONFIG_BLK_DEV_RAM_COUNT=16
-+CONFIG_BLK_DEV_RAM_SIZE=4096
-+# CONFIG_BLK_DEV_INITRD is not set
-+# CONFIG_LBD is not set
-+# CONFIG_CDROM_PKTCDVD is not set
-+
-+#
-+# IO Schedulers
-+#
-+CONFIG_IOSCHED_NOOP=y
-+CONFIG_IOSCHED_AS=y
-+CONFIG_IOSCHED_DEADLINE=y
-+CONFIG_IOSCHED_CFQ=y
-+# CONFIG_ATA_OVER_ETH is not set
-+
-+#
-+# ATA/ATAPI/MFM/RLL support
-+#
-+CONFIG_IDE=y
-+CONFIG_IDE_MAX_HWIFS=4
-+CONFIG_BLK_DEV_IDE=y
-+
-+#
-+# Please see Documentation/ide.txt for help/info on IDE drives
-+#
-+# CONFIG_BLK_DEV_IDE_SATA is not set
-+CONFIG_BLK_DEV_IDEDISK=y
-+# CONFIG_IDEDISK_MULTI_MODE is not set
-+# CONFIG_BLK_DEV_IDECS is not set
-+CONFIG_BLK_DEV_IDECD=y
-+# CONFIG_BLK_DEV_IDETAPE is not set
-+# CONFIG_BLK_DEV_IDEFLOPPY is not set
-+CONFIG_BLK_DEV_IDESCSI=y
-+# CONFIG_IDE_TASK_IOCTL is not set
-+
-+#
-+# IDE chipset support/bugfixes
-+#
-+CONFIG_IDE_GENERIC=y
-+CONFIG_BLK_DEV_IDEPCI=y
-+CONFIG_IDEPCI_SHARE_IRQ=y
-+CONFIG_BLK_DEV_OFFBOARD=y
-+CONFIG_BLK_DEV_GENERIC=y
-+# CONFIG_BLK_DEV_OPTI621 is not set
-+CONFIG_BLK_DEV_IDEDMA_PCI=y
-+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
-+CONFIG_IDEDMA_PCI_AUTO=y
-+CONFIG_IDEDMA_ONLYDISK=y
-+CONFIG_BLK_DEV_AEC62XX=y
-+# CONFIG_BLK_DEV_ALI15X3 is not set
-+# CONFIG_BLK_DEV_AMD74XX is not set
-+# CONFIG_BLK_DEV_CMD64X is not set
-+# CONFIG_BLK_DEV_TRIFLEX is not set
-+# CONFIG_BLK_DEV_CY82C693 is not set
-+# CONFIG_BLK_DEV_CS5520 is not set
-+# CONFIG_BLK_DEV_CS5530 is not set
-+# CONFIG_BLK_DEV_HPT34X is not set
-+# CONFIG_BLK_DEV_HPT366 is not set
-+# CONFIG_BLK_DEV_SC1200 is not set
-+# CONFIG_BLK_DEV_PIIX is not set
-+# CONFIG_BLK_DEV_IT821X is not set
-+# CONFIG_BLK_DEV_NS87415 is not set
-+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
-+# CONFIG_BLK_DEV_PDC202XX_NEW is not set
-+# CONFIG_BLK_DEV_SVWKS is not set
-+# CONFIG_BLK_DEV_SIIMAGE is not set
-+# CONFIG_BLK_DEV_SLC90E66 is not set
-+# CONFIG_BLK_DEV_TRM290 is not set
-+# CONFIG_BLK_DEV_VIA82CXXX is not set
-+CONFIG_IDE_SH=y
-+# CONFIG_IDE_ARM is not set
-+# CONFIG_IDE_CHIPSETS is not set
-+CONFIG_BLK_DEV_IDEDMA=y
-+# CONFIG_IDEDMA_IVB is not set
-+CONFIG_IDEDMA_AUTO=y
-+# CONFIG_BLK_DEV_HD is not set
-+
-+#
-+# SCSI device support
-+#
-+# CONFIG_RAID_ATTRS is not set
-+CONFIG_SCSI=y
-+CONFIG_SCSI_PROC_FS=y
-+
-+#
-+# SCSI support type (disk, tape, CD-ROM)
-+#
-+CONFIG_BLK_DEV_SD=y
-+# CONFIG_CHR_DEV_ST is not set
-+# CONFIG_CHR_DEV_OSST is not set
-+# CONFIG_BLK_DEV_SR is not set
-+# CONFIG_CHR_DEV_SG is not set
-+# CONFIG_CHR_DEV_SCH is not set
-+
-+#
-+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-+#
-+CONFIG_SCSI_MULTI_LUN=y
-+# CONFIG_SCSI_CONSTANTS is not set
-+# CONFIG_SCSI_LOGGING is not set
-+
-+#
-+# SCSI Transport Attributes
-+#
-+# CONFIG_SCSI_SPI_ATTRS is not set
-+# CONFIG_SCSI_FC_ATTRS is not set
-+# CONFIG_SCSI_ISCSI_ATTRS is not set
-+# CONFIG_SCSI_SAS_ATTRS is not set
-+
-+#
-+# SCSI low-level drivers
-+#
-+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
-+# CONFIG_SCSI_3W_9XXX is not set
-+# CONFIG_SCSI_ACARD is not set
-+# CONFIG_SCSI_AHA152X is not set
-+# CONFIG_SCSI_AACRAID is not set
-+# CONFIG_SCSI_AIC7XXX is not set
-+# CONFIG_SCSI_AIC7XXX_OLD is not set
-+# CONFIG_SCSI_AIC79XX is not set
-+# CONFIG_SCSI_DPT_I2O is not set
-+# CONFIG_SCSI_IN2000 is not set
-+# CONFIG_MEGARAID_NEWGEN is not set
-+# CONFIG_MEGARAID_LEGACY is not set
-+# CONFIG_MEGARAID_SAS is not set
-+# CONFIG_SCSI_SATA is not set
-+# CONFIG_SCSI_DMX3191D is not set
-+# CONFIG_SCSI_DTC3280 is not set
-+# CONFIG_SCSI_FUTURE_DOMAIN is not set
-+# CONFIG_SCSI_GENERIC_NCR5380 is not set
-+# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
-+# CONFIG_SCSI_IPS is not set
-+# CONFIG_SCSI_INITIO is not set
-+# CONFIG_SCSI_INIA100 is not set
-+# CONFIG_SCSI_NCR53C406A is not set
-+# CONFIG_SCSI_SYM53C8XX_2 is not set
-+# CONFIG_SCSI_IPR is not set
-+# CONFIG_SCSI_PAS16 is not set
-+# CONFIG_SCSI_PSI240I is not set
-+# CONFIG_SCSI_QLOGIC_FAS is not set
-+# CONFIG_SCSI_QLOGIC_FC is not set
-+# CONFIG_SCSI_QLOGIC_1280 is not set
-+CONFIG_SCSI_QLA2XXX=y
-+# CONFIG_SCSI_QLA21XX is not set
-+# CONFIG_SCSI_QLA22XX is not set
-+# CONFIG_SCSI_QLA2300 is not set
-+# CONFIG_SCSI_QLA2322 is not set
-+# CONFIG_SCSI_QLA6312 is not set
-+# CONFIG_SCSI_QLA24XX is not set
-+# CONFIG_SCSI_LPFC is not set
-+# CONFIG_SCSI_SYM53C416 is not set
-+# CONFIG_SCSI_DC395x is not set
-+# CONFIG_SCSI_DC390T is not set
-+# CONFIG_SCSI_T128 is not set
-+# CONFIG_SCSI_NSP32 is not set
-+# CONFIG_SCSI_DEBUG is not set
-+
-+#
-+# PCMCIA SCSI adapter support
-+#
-+# CONFIG_PCMCIA_AHA152X is not set
-+# CONFIG_PCMCIA_FDOMAIN is not set
-+# CONFIG_PCMCIA_NINJA_SCSI is not set
-+# CONFIG_PCMCIA_QLOGIC is not set
-+# CONFIG_PCMCIA_SYM53C500 is not set
-+
-+#
-+# Old CD-ROM drivers (not SCSI, not IDE)
-+#
-+# CONFIG_CD_NO_IDESCSI is not set
-+
-+#
-+# Multi-device support (RAID and LVM)
-+#
-+CONFIG_MD=y
-+CONFIG_BLK_DEV_MD=m
-+CONFIG_MD_LINEAR=m
-+CONFIG_MD_RAID0=m
-+CONFIG_MD_RAID1=m
-+# CONFIG_MD_RAID10 is not set
-+# CONFIG_MD_RAID5 is not set
-+# CONFIG_MD_RAID6 is not set
-+# CONFIG_MD_MULTIPATH is not set
-+# CONFIG_MD_FAULTY is not set
-+# CONFIG_BLK_DEV_DM is not set
-+
-+#
-+# Fusion MPT device 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
-+#
-+# CONFIG_IEEE1394 is not set
-+
-+#
-+# I2O device support
-+#
-+# CONFIG_I2O is not set
-+
-+#
-+# Network device support
-+#
-+CONFIG_NETDEVICES=y
-+# CONFIG_DUMMY is not set
-+# CONFIG_BONDING is not set
-+# CONFIG_EQUALIZER is not set
-+CONFIG_TUN=m
-+
-+#
-+# ARCnet devices
-+#
-+# CONFIG_ARCNET is not set
-+
-+#
-+# PHY device support
-+#
-+# CONFIG_PHYLIB is not set
-+
-+#
-+# Ethernet (10 or 100Mbit)
-+#
-+CONFIG_NET_ETHERNET=y
-+CONFIG_MII=y
-+# CONFIG_STNIC is not set
-+# CONFIG_HAPPYMEAL is not set
-+# CONFIG_SUNGEM is not set
-+# CONFIG_CASSINI is not set
-+# CONFIG_NET_VENDOR_3COM is not set
-+# CONFIG_NET_VENDOR_SMC is not set
-+# CONFIG_SMC91X is not set
-+# CONFIG_NET_VENDOR_RACAL is not set
-+
-+#
-+# Tulip family network device support
-+#
-+# CONFIG_NET_TULIP is not set
-+# CONFIG_AT1700 is not set
-+# CONFIG_DEPCA is not set
-+# CONFIG_HP100 is not set
-+# CONFIG_NET_ISA is not set
-+# CONFIG_NE2000 is not set
-+CONFIG_NET_PCI=y
-+# CONFIG_PCNET32 is not set
-+# CONFIG_AMD8111_ETH is not set
-+# CONFIG_ADAPTEC_STARFIRE is not set
-+# CONFIG_AC3200 is not set
-+# CONFIG_APRICOT is not set
-+# CONFIG_B44 is not set
-+# CONFIG_FORCEDETH is not set
-+# CONFIG_CS89x0 is not set
-+# CONFIG_DGRS is not set
-+# CONFIG_EEPRO100 is not set
-+# CONFIG_E100 is not set
-+# CONFIG_FEALNX is not set
-+# CONFIG_NATSEMI is not set
-+# CONFIG_NE2K_PCI is not set
-+CONFIG_8139CP=y
-+# CONFIG_8139TOO is not set
-+# CONFIG_SIS900 is not set
-+# CONFIG_EPIC100 is not set
-+# CONFIG_SUNDANCE is not set
-+# CONFIG_TLAN is not set
-+# CONFIG_VIA_RHINE is not set
-+
-+#
-+# Ethernet (1000 Mbit)
-+#
-+# CONFIG_ACENIC is not set
-+# CONFIG_DL2K is not set
-+# CONFIG_E1000 is not set
-+# CONFIG_NS83820 is not set
-+# CONFIG_HAMACHI is not set
-+# CONFIG_YELLOWFIN is not set
-+# CONFIG_R8169 is not set
-+# CONFIG_SIS190 is not set
-+# CONFIG_SKGE is not set
-+# CONFIG_SK98LIN is not set
-+# CONFIG_VIA_VELOCITY is not set
-+# CONFIG_TIGON3 is not set
-+# CONFIG_BNX2 is not set
-+
-+#
-+# Ethernet (10000 Mbit)
-+#
-+# CONFIG_CHELSIO_T1 is not set
-+# CONFIG_IXGB is not set
-+# CONFIG_S2IO is not set
-+
-+#
-+# Token Ring devices
-+#
-+# CONFIG_TR is not set
-+
-+#
-+# Wireless LAN (non-hamradio)
-+#
-+# CONFIG_NET_RADIO is not set
-+
-+#
-+# PCMCIA network device support
-+#
-+# CONFIG_NET_PCMCIA is not set
-+
-+#
-+# Wan interfaces
-+#
-+# CONFIG_WAN is not set
-+# CONFIG_FDDI is not set
-+# CONFIG_HIPPI is not set
-+# 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
-+
-+#
-+# ISDN subsystem
-+#
-+# CONFIG_ISDN is not set
-+
-+#
-+# Telephony Support
-+#
-+# CONFIG_PHONE is not set
-+
-+#
-+# Input device support
-+#
-+CONFIG_INPUT=y
-+
-+#
-+# Userland interfaces
-+#
-+CONFIG_INPUT_MOUSEDEV=y
-+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-+# CONFIG_INPUT_JOYDEV is not set
-+# CONFIG_INPUT_TSDEV is not set
-+# CONFIG_INPUT_EVDEV is not set
-+# CONFIG_INPUT_EVBUG is not set
-+
-+#
-+# Input Device Drivers
-+#
-+# CONFIG_INPUT_KEYBOARD is not set
-+# CONFIG_INPUT_MOUSE is not set
-+# CONFIG_INPUT_JOYSTICK is not set
-+# CONFIG_INPUT_TOUCHSCREEN is not set
-+# CONFIG_INPUT_MISC is not set
-+
-+#
-+# Hardware I/O ports
-+#
-+# CONFIG_SERIO is not set
-+# CONFIG_GAMEPORT is not set
-+
-+#
-+# Character devices
-+#
-+CONFIG_VT=y
-+CONFIG_VT_CONSOLE=y
-+CONFIG_HW_CONSOLE=y
-+# CONFIG_SERIAL_NONSTANDARD is not set
-+
-+#
-+# Serial drivers
-+#
-+# CONFIG_SERIAL_8250 is not set
-+
-+#
-+# Non-8250 serial port support
-+#
-+CONFIG_SERIAL_SH_SCI=y
-+CONFIG_SERIAL_SH_SCI_CONSOLE=y
-+CONFIG_SERIAL_CORE=y
-+CONFIG_SERIAL_CORE_CONSOLE=y
-+# CONFIG_SERIAL_JSM is not set
-+CONFIG_UNIX98_PTYS=y
-+CONFIG_LEGACY_PTYS=y
-+CONFIG_LEGACY_PTY_COUNT=256
-+
-+#
-+# IPMI
-+#
-+# CONFIG_IPMI_HANDLER is not set
-+
-+#
-+# Watchdog Cards
-+#
-+# CONFIG_WATCHDOG is not set
-+# CONFIG_RTC is not set
-+CONFIG_RS5C313_RTC=y
-+# CONFIG_GEN_RTC is not set
-+# CONFIG_DTLK is not set
-+# CONFIG_R3964 is not set
-+# CONFIG_APPLICOM is not set
-+
-+#
-+# Ftape, the floppy tape device driver
-+#
-+# CONFIG_DRM is not set
-+
-+#
-+# PCMCIA character devices
-+#
-+# CONFIG_SYNCLINK_CS is not set
-+# CONFIG_RAW_DRIVER is not set
-+
-+#
-+# TPM devices
-+#
-+# CONFIG_TCG_TPM is not set
-+
-+#
-+# I2C support
-+#
-+# CONFIG_I2C is not set
-+
-+#
-+# Dallas's 1-wire bus
-+#
-+# CONFIG_W1 is not set
-+
-+#
-+# Hardware Monitoring support
-+#
-+CONFIG_HWMON=y
-+# CONFIG_HWMON_VID is not set
-+# CONFIG_HWMON_DEBUG_CHIP is not set
-+
-+#
-+# Misc devices
-+#
-+
-+#
-+# Multimedia Capabilities Port drivers
-+#
-+
-+#
-+# Multimedia devices
-+#
-+CONFIG_VIDEO_DEV=m
-+
-+#
-+# Video For Linux
-+#
-+
-+#
-+# Video Adapters
-+#
-+# CONFIG_VIDEO_PMS is not set
-+# CONFIG_VIDEO_CPIA is not set
-+# CONFIG_VIDEO_STRADIS is not set
-+# CONFIG_VIDEO_MXB is not set
-+# CONFIG_VIDEO_DPC is not set
-+# CONFIG_VIDEO_HEXIUM_ORION is not set
-+# CONFIG_VIDEO_HEXIUM_GEMINI is not set
-+
-+#
-+# Radio Adapters
-+#
-+# CONFIG_RADIO_CADET is not set
-+# CONFIG_RADIO_RTRACK is not set
-+# CONFIG_RADIO_RTRACK2 is not set
-+# CONFIG_RADIO_AZTECH is not set
-+# CONFIG_RADIO_GEMTEK is not set
-+# CONFIG_RADIO_GEMTEK_PCI is not set
-+# CONFIG_RADIO_MAXIRADIO is not set
-+# CONFIG_RADIO_MAESTRO is not set
-+# CONFIG_RADIO_SF16FMI is not set
-+# CONFIG_RADIO_SF16FMR2 is not set
-+# CONFIG_RADIO_TERRATEC is not set
-+# CONFIG_RADIO_TRUST is not set
-+# CONFIG_RADIO_TYPHOON is not set
-+# CONFIG_RADIO_ZOLTRIX is not set
-+
-+#
-+# Digital Video Broadcasting Devices
-+#
-+# CONFIG_DVB is not set
-+
-+#
-+# Graphics support
-+#
-+# CONFIG_FB is not set
-+
-+#
-+# Console display driver support
-+#
-+# CONFIG_MDA_CONSOLE is not set
-+CONFIG_DUMMY_CONSOLE=y
-+CONFIG_FONT_8x16=y
-+
-+#
-+# Sound
-+#
-+CONFIG_SOUND=m
-+
-+#
-+# Advanced Linux Sound Architecture
-+#
-+# CONFIG_SND is not set
-+
-+#
-+# Open Sound System
-+#
-+CONFIG_SOUND_PRIME=m
-+# CONFIG_SOUND_BT878 is not set
-+# CONFIG_SOUND_CMPCI is not set
-+# CONFIG_SOUND_EMU10K1 is not set
-+# CONFIG_SOUND_FUSION is not set
-+# CONFIG_SOUND_CS4281 is not set
-+# CONFIG_SOUND_ES1370 is not set
-+# CONFIG_SOUND_ES1371 is not set
-+# CONFIG_SOUND_ESSSOLO1 is not set
-+# CONFIG_SOUND_MAESTRO is not set
-+# CONFIG_SOUND_MAESTRO3 is not set
-+# CONFIG_SOUND_ICH is not set
-+# CONFIG_SOUND_SONICVIBES is not set
-+# CONFIG_SOUND_TRIDENT is not set
-+# CONFIG_SOUND_MSNDCLAS is not set
-+# CONFIG_SOUND_MSNDPIN is not set
-+# CONFIG_SOUND_VIA82CXXX is not set
-+# CONFIG_SOUND_ALI5455 is not set
-+# CONFIG_SOUND_FORTE is not set
-+# CONFIG_SOUND_RME96XX is not set
-+# CONFIG_SOUND_AD1980 is not set
-+
-+#
-+# USB support
-+#
-+CONFIG_USB_ARCH_HAS_HCD=y
-+CONFIG_USB_ARCH_HAS_OHCI=y
-+CONFIG_USB=y
-+# CONFIG_USB_DEBUG is not set
-+
-+#
-+# Miscellaneous USB options
-+#
-+CONFIG_USB_DEVICEFS=y
-+# CONFIG_USB_BANDWIDTH is not set
-+# CONFIG_USB_DYNAMIC_MINORS is not set
-+# CONFIG_USB_OTG is not set
-+
-+#
-+# USB Host Controller Drivers
-+#
-+CONFIG_USB_EHCI_HCD=y
-+# CONFIG_USB_EHCI_SPLIT_ISO is not set
-+# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-+# CONFIG_USB_ISP116X_HCD is not set
-+CONFIG_USB_OHCI_HCD=y
-+# CONFIG_USB_OHCI_BIG_ENDIAN is not set
-+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-+# CONFIG_USB_UHCI_HCD is not set
-+# CONFIG_USB_SL811_HCD is not set
-+
-+#
-+# USB Device Class drivers
-+#
-+CONFIG_OBSOLETE_OSS_USB_DRIVER=y
-+CONFIG_USB_AUDIO=m
-+# CONFIG_USB_BLUETOOTH_TTY is not set
-+CONFIG_USB_MIDI=m
-+# CONFIG_USB_ACM is not set
-+CONFIG_USB_PRINTER=m
-+
-+#
-+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
-+#
-+CONFIG_USB_STORAGE=m
-+# CONFIG_USB_STORAGE_DEBUG is not set
-+CONFIG_USB_STORAGE_DATAFAB=y
-+CONFIG_USB_STORAGE_FREECOM=y
-+CONFIG_USB_STORAGE_ISD200=y
-+CONFIG_USB_STORAGE_DPCM=y
-+# CONFIG_USB_STORAGE_USBAT is not set
-+CONFIG_USB_STORAGE_SDDR09=y
-+CONFIG_USB_STORAGE_SDDR55=y
-+CONFIG_USB_STORAGE_JUMPSHOT=y
-+
-+#
-+# USB Input Devices
-+#
-+CONFIG_USB_HID=m
-+CONFIG_USB_HIDINPUT=y
-+# CONFIG_HID_FF is not set
-+# CONFIG_USB_HIDDEV is not set
-+
-+#
-+# USB HID Boot Protocol drivers
-+#
-+# CONFIG_USB_KBD is not set
-+# CONFIG_USB_MOUSE is not set
-+# CONFIG_USB_AIPTEK is not set
-+# CONFIG_USB_WACOM is not set
-+# CONFIG_USB_ACECAD is not set
-+# CONFIG_USB_KBTAB is not set
-+# CONFIG_USB_POWERMATE is not set
-+# CONFIG_USB_MTOUCH is not set
-+# CONFIG_USB_ITMTOUCH is not set
-+# CONFIG_USB_EGALAX is not set
-+# CONFIG_USB_YEALINK is not set
-+# CONFIG_USB_XPAD is not set
-+# CONFIG_USB_ATI_REMOTE is not set
-+# CONFIG_USB_KEYSPAN_REMOTE is not set
-+# CONFIG_USB_APPLETOUCH is not set
-+
-+#
-+# USB Imaging devices
-+#
-+# CONFIG_USB_MDC800 is not set
-+# CONFIG_USB_MICROTEK is not set
-+
-+#
-+# USB Multimedia devices
-+#
-+CONFIG_USB_DABUSB=m
-+CONFIG_USB_VICAM=m
-+CONFIG_USB_DSBR=m
-+CONFIG_USB_IBMCAM=m
-+CONFIG_USB_KONICAWC=m
-+CONFIG_USB_OV511=m
-+CONFIG_USB_SE401=m
-+CONFIG_USB_SN9C102=m
-+CONFIG_USB_STV680=m
-+CONFIG_USB_PWC=m
-+
-+#
-+# USB Network Adapters
-+#
-+# CONFIG_USB_CATC is not set
-+# CONFIG_USB_KAWETH is not set
-+CONFIG_USB_PEGASUS=m
-+CONFIG_USB_RTL8150=m
-+# CONFIG_USB_USBNET is not set
-+CONFIG_USB_MON=y
-+
-+#
-+# USB port drivers
-+#
-+
-+#
-+# USB Serial Converter support
-+#
-+CONFIG_USB_SERIAL=m
-+# CONFIG_USB_SERIAL_GENERIC is not set
-+# CONFIG_USB_SERIAL_AIRPRIME is not set
-+# CONFIG_USB_SERIAL_BELKIN is not set
-+# CONFIG_USB_SERIAL_WHITEHEAT is not set
-+# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
-+# CONFIG_USB_SERIAL_CP2101 is not set
-+# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
-+# CONFIG_USB_SERIAL_EMPEG is not set
-+CONFIG_USB_SERIAL_FTDI_SIO=m
-+# CONFIG_USB_SERIAL_VISOR is not set
-+# CONFIG_USB_SERIAL_IPAQ is not set
-+# CONFIG_USB_SERIAL_IR is not set
-+# CONFIG_USB_SERIAL_EDGEPORT is not set
-+# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
-+# CONFIG_USB_SERIAL_GARMIN is not set
-+# CONFIG_USB_SERIAL_IPW is not set
-+# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
-+# CONFIG_USB_SERIAL_KEYSPAN is not set
-+# CONFIG_USB_SERIAL_KLSI is not set
-+# CONFIG_USB_SERIAL_KOBIL_SCT is not set
-+# CONFIG_USB_SERIAL_MCT_U232 is not set
-+CONFIG_USB_SERIAL_PL2303=m
-+# CONFIG_USB_SERIAL_HP4X is not set
-+# CONFIG_USB_SERIAL_SAFE is not set
-+# CONFIG_USB_SERIAL_TI is not set
-+# CONFIG_USB_SERIAL_CYBERJACK is not set
-+# CONFIG_USB_SERIAL_XIRCOM is not set
-+# CONFIG_USB_SERIAL_OPTION is not set
-+# CONFIG_USB_SERIAL_OMNINET is not set
-+
-+#
-+# USB Miscellaneous drivers
-+#
-+CONFIG_USB_EMI62=m
-+CONFIG_USB_EMI26=m
-+# CONFIG_USB_AUERSWALD is not set
-+# CONFIG_USB_RIO500 is not set
-+# CONFIG_USB_LEGOTOWER is not set
-+# CONFIG_USB_LCD is not set
-+# CONFIG_USB_LED is not set
-+# CONFIG_USB_CYTHERM is not set
-+# CONFIG_USB_PHIDGETKIT is not set
-+# CONFIG_USB_PHIDGETSERVO is not set
-+# CONFIG_USB_IDMOUSE is not set
-+CONFIG_USB_SISUSBVGA=m
-+CONFIG_USB_SISUSBVGA_CON=y
-+# CONFIG_USB_LD is not set
-+# CONFIG_USB_TEST is not set
-+
-+#
-+# USB DSL modem support
-+#
-+
-+#
-+# USB Gadget Support
-+#
-+# CONFIG_USB_GADGET is not set
-+
-+#
-+# MMC/SD Card support
-+#
-+# CONFIG_MMC is not set
-+
-+#
-+# InfiniBand support
-+#
-+# CONFIG_INFINIBAND is not set
-+
-+#
-+# SN Devices
-+#
-+
-+#
-+# File systems
-+#
-+CONFIG_EXT2_FS=y
-+# CONFIG_EXT2_FS_XATTR is not set
-+# CONFIG_EXT2_FS_XIP is not set
-+CONFIG_EXT3_FS=y
-+CONFIG_EXT3_FS_XATTR=y
-+# CONFIG_EXT3_FS_POSIX_ACL is not set
-+# CONFIG_EXT3_FS_SECURITY is not set
-+CONFIG_JBD=y
-+# CONFIG_JBD_DEBUG is not set
-+CONFIG_FS_MBCACHE=y
-+CONFIG_REISERFS_FS=y
-+# CONFIG_REISERFS_CHECK is not set
-+# CONFIG_REISERFS_PROC_INFO is not set
-+# CONFIG_REISERFS_FS_XATTR is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_FS_POSIX_ACL is not set
-+# CONFIG_XFS_FS is not set
-+# CONFIG_MINIX_FS is not set
-+CONFIG_ROMFS_FS=y
-+CONFIG_INOTIFY=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
-+
-+#
-+# CD-ROM/DVD Filesystems
-+#
-+CONFIG_ISO9660_FS=m
-+# CONFIG_JOLIET is not set
-+# CONFIG_ZISOFS is not set
-+# CONFIG_UDF_FS is not set
-+
-+#
-+# DOS/FAT/NT Filesystems
-+#
-+CONFIG_FAT_FS=y
-+CONFIG_MSDOS_FS=y
-+CONFIG_VFAT_FS=y
-+CONFIG_FAT_DEFAULT_CODEPAGE=437
-+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-+CONFIG_NTFS_FS=m
-+# CONFIG_NTFS_DEBUG is not set
-+CONFIG_NTFS_RW=y
-+
-+#
-+# Pseudo filesystems
-+#
-+CONFIG_PROC_FS=y
-+# CONFIG_PROC_KCORE is not set
-+CONFIG_SYSFS=y
-+CONFIG_TMPFS=y
-+# CONFIG_HUGETLBFS is not set
-+# CONFIG_HUGETLB_PAGE is not set
-+CONFIG_RAMFS=y
-+# CONFIG_RELAYFS_FS is not set
-+
-+#
-+# Miscellaneous filesystems
-+#
-+# CONFIG_ADFS_FS is not set
-+# CONFIG_AFFS_FS is not set
-+# CONFIG_HFS_FS is not set
-+# CONFIG_HFSPLUS_FS is not set
-+# CONFIG_BEFS_FS is not set
-+# CONFIG_BFS_FS is not set
-+# CONFIG_EFS_FS is not set
-+# CONFIG_CRAMFS is not set
-+# CONFIG_VXFS_FS is not set
-+# CONFIG_HPFS_FS is not set
-+# CONFIG_QNX4FS_FS is not set
-+# CONFIG_SYSV_FS is not set
-+CONFIG_UFS_FS=m
-+CONFIG_UFS_FS_WRITE=y
-+
-+#
-+# Network File Systems
-+#
-+CONFIG_NFS_FS=m
-+CONFIG_NFS_V3=y
-+# CONFIG_NFS_V3_ACL is not set
-+# CONFIG_NFS_V4 is not set
-+# CONFIG_NFS_DIRECTIO is not set
-+CONFIG_NFSD=m
-+CONFIG_NFSD_V3=y
-+# CONFIG_NFSD_V3_ACL is not set
-+# CONFIG_NFSD_V4 is not set
-+CONFIG_NFSD_TCP=y
-+CONFIG_LOCKD=m
-+CONFIG_LOCKD_V4=y
-+CONFIG_EXPORTFS=m
-+CONFIG_NFS_COMMON=y
-+CONFIG_SUNRPC=m
-+# CONFIG_RPCSEC_GSS_KRB5 is not set
-+# CONFIG_RPCSEC_GSS_SPKM3 is not set
-+CONFIG_SMB_FS=m
-+# CONFIG_SMB_NLS_DEFAULT is not set
-+# CONFIG_CIFS is not set
-+# CONFIG_NCP_FS is not set
-+# CONFIG_CODA_FS is not set
-+# CONFIG_AFS_FS is not set
-+# CONFIG_9P_FS is not set
-+
-+#
-+# Partition Types
-+#
-+# CONFIG_PARTITION_ADVANCED is not set
-+CONFIG_MSDOS_PARTITION=y
-+
-+#
-+# Native Language Support
-+#
-+CONFIG_NLS=y
-+CONFIG_NLS_DEFAULT="iso8859-1"
-+CONFIG_NLS_CODEPAGE_437=y
-+# CONFIG_NLS_CODEPAGE_737 is not set
-+# CONFIG_NLS_CODEPAGE_775 is not set
-+# CONFIG_NLS_CODEPAGE_850 is not set
-+# CONFIG_NLS_CODEPAGE_852 is not set
-+# CONFIG_NLS_CODEPAGE_855 is not set
-+# CONFIG_NLS_CODEPAGE_857 is not set
-+# CONFIG_NLS_CODEPAGE_860 is not set
-+# CONFIG_NLS_CODEPAGE_861 is not set
-+# CONFIG_NLS_CODEPAGE_862 is not set
-+# CONFIG_NLS_CODEPAGE_863 is not set
-+# CONFIG_NLS_CODEPAGE_864 is not set
-+# CONFIG_NLS_CODEPAGE_865 is not set
-+# CONFIG_NLS_CODEPAGE_866 is not set
-+# CONFIG_NLS_CODEPAGE_869 is not set
-+# CONFIG_NLS_CODEPAGE_936 is not set
-+# CONFIG_NLS_CODEPAGE_950 is not set
-+CONFIG_NLS_CODEPAGE_932=y
-+# CONFIG_NLS_CODEPAGE_949 is not set
-+# CONFIG_NLS_CODEPAGE_874 is not set
-+# CONFIG_NLS_ISO8859_8 is not set
-+# CONFIG_NLS_CODEPAGE_1250 is not set
-+# CONFIG_NLS_CODEPAGE_1251 is not set
-+# CONFIG_NLS_ASCII is not set
-+# CONFIG_NLS_ISO8859_1 is not set
-+# CONFIG_NLS_ISO8859_2 is not set
-+# CONFIG_NLS_ISO8859_3 is not set
-+# CONFIG_NLS_ISO8859_4 is not set
-+# CONFIG_NLS_ISO8859_5 is not set
-+# CONFIG_NLS_ISO8859_6 is not set
-+# CONFIG_NLS_ISO8859_7 is not set
-+# CONFIG_NLS_ISO8859_9 is not set
-+# CONFIG_NLS_ISO8859_13 is not set
-+# CONFIG_NLS_ISO8859_14 is not set
-+# CONFIG_NLS_ISO8859_15 is not set
-+# CONFIG_NLS_KOI8_R is not set
-+# CONFIG_NLS_KOI8_U is not set
-+# CONFIG_NLS_UTF8 is not set
-+
-+#
-+# Profiling support
-+#
-+# CONFIG_PROFILING is not set
-+
-+#
-+# Kernel hacking
-+#
-+# CONFIG_PRINTK_TIME is not set
-+# CONFIG_DEBUG_KERNEL is not set
-+CONFIG_LOG_BUF_SHIFT=14
-+# CONFIG_FRAME_POINTER is not set
-+CONFIG_SH_STANDARD_BIOS=y
-+# CONFIG_EARLY_SCIF_CONSOLE is not set
-+# CONFIG_EARLY_PRINTK is not set
-+# CONFIG_KGDB is not set
-+
-+#
-+# Security options
-+#
-+# CONFIG_KEYS is not set
-+# CONFIG_SECURITY is not set
-+
-+#
-+# Cryptographic options
-+#
-+# CONFIG_CRYPTO is not set
-+
-+#
-+# Hardware crypto devices
-+#
-+
-+#
-+# Library routines
-+#
-+# CONFIG_CRC_CCITT is not set
-+# CONFIG_CRC16 is not set
-+CONFIG_CRC32=y
-+# CONFIG_LIBCRC32C is not set
-diff -ruN linux-2.6.17-vanilla/arch/sh/configs/microdev_defconfig linux-2.6.17/arch/sh/configs/microdev_defconfig
---- linux-2.6.17-vanilla/arch/sh/configs/microdev_defconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/configs/microdev_defconfig 2006-07-12 16:54:21.000000000 +0000
-@@ -1,9 +1,10 @@
- #
- # Automatically generated make config: don't edit
--# Linux kernel version: 2.6.16-rc1
--# Fri Jan 27 19:43:20 2006
-+# Linux kernel version: 2.6.15-sh
-+# Wed Jan 4 18:41:51 2006
- #
- CONFIG_SUPERH=y
-+CONFIG_UID16=y
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- CONFIG_GENERIC_HARDIRQS=y
- CONFIG_GENERIC_IRQ_PROBE=y
-@@ -30,17 +31,16 @@
- # CONFIG_BSD_PROCESS_ACCT_V3 is not set
- CONFIG_SYSCTL=y
- # CONFIG_AUDIT is not set
-+CONFIG_HOTPLUG=y
-+CONFIG_KOBJECT_UEVENT=y
- # CONFIG_IKCONFIG is not set
- CONFIG_INITRAMFS_SOURCE=""
--CONFIG_UID16=y
- # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
- CONFIG_EMBEDDED=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_BASE_FULL=y
- CONFIG_FUTEX=y
- CONFIG_EPOLL=y
-@@ -49,10 +49,8 @@
- CONFIG_CC_ALIGN_LABELS=0
- CONFIG_CC_ALIGN_LOOPS=0
- CONFIG_CC_ALIGN_JUMPS=0
--CONFIG_SLAB=y
- # CONFIG_TINY_SHMEM is not set
- CONFIG_BASE_SMALL=0
--# CONFIG_SLOB is not set
-
- #
- # Loadable module support
-@@ -102,7 +100,6 @@
- # CONFIG_SH_SECUREEDGE5410 is not set
- # CONFIG_SH_HS7751RVOIP is not set
- # CONFIG_SH_RTS7751R2D is not set
--# CONFIG_SH_R7780RP is not set
- # CONFIG_SH_EDOSK7705 is not set
- CONFIG_SH_SH4202_MICRODEV=y
- # CONFIG_SH_LANDISK is not set
-@@ -157,6 +154,8 @@
- # Memory management options
- #
- CONFIG_MMU=y
-+CONFIG_HUGETLB_PAGE_SIZE_64K=y
-+# CONFIG_HUGETLB_PAGE_SIZE_1MB is not set
- CONFIG_SELECT_MEMORY_MODEL=y
- CONFIG_FLATMEM_MANUAL=y
- # CONFIG_DISCONTIGMEM_MANUAL is not set
-@@ -170,7 +169,7 @@
- # Cache configuration
- #
- # CONFIG_SH_DIRECT_MAPPED is not set
--# CONFIG_SH_WRITETHROUGH is not set
-+CONFIG_SH_WRITETHROUGH=y
- # CONFIG_SH_OCRAM is not set
- CONFIG_MEMORY_START=0x08000000
- CONFIG_MEMORY_SIZE=0x04000000
-@@ -182,13 +181,12 @@
- CONFIG_SH_RTC=y
- CONFIG_SH_FPU=y
- # CONFIG_SH_STORE_QUEUES is not set
--CONFIG_CPU_HAS_INTEVT=y
--CONFIG_CPU_HAS_SR_RB=y
-
- #
- # Timer support
- #
- CONFIG_SH_TMU=y
-+CONFIG_SH_PCLK_FREQ_BOOL=y
- CONFIG_SH_PCLK_FREQ=66000000
-
- #
-@@ -223,12 +221,12 @@
- CONFIG_BOOT_LINK_OFFSET=0x00800000
- # CONFIG_UBC_WAKEUP is not set
- CONFIG_CMDLINE_BOOL=y
--CONFIG_CMDLINE="console=ttySC0,115200"
-+CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/hda1"
-
- #
- # Bus options
- #
--# CONFIG_SUPERHYWAY is not set
-+CONFIG_SUPERHYWAY=y
- # CONFIG_PCI is not set
-
- #
-@@ -263,7 +261,7 @@
- # CONFIG_IP_ADVANCED_ROUTER is not set
- CONFIG_IP_FIB_HASH=y
- CONFIG_IP_PNP=y
--CONFIG_IP_PNP_DHCP=y
-+# CONFIG_IP_PNP_DHCP is not set
- # CONFIG_IP_PNP_BOOTP is not set
- # CONFIG_IP_PNP_RARP is not set
- # CONFIG_NET_IPIP is not set
-@@ -290,11 +288,6 @@
- # SCTP Configuration (EXPERIMENTAL)
- #
- # CONFIG_IP_SCTP is not set
--
--#
--# TIPC Configuration (EXPERIMENTAL)
--#
--# CONFIG_TIPC is not set
- # CONFIG_ATM is not set
- # CONFIG_BRIDGE is not set
- # CONFIG_VLAN_8021Q is not set
-@@ -387,6 +380,7 @@
- # IDE chipset support/bugfixes
- #
- CONFIG_IDE_GENERIC=y
-+CONFIG_IDE_SH=y
- # CONFIG_IDE_ARM is not set
- # CONFIG_BLK_DEV_IDEDMA is not set
- # CONFIG_IDEDMA_AUTO is not set
-@@ -437,6 +431,7 @@
- CONFIG_MII=y
- # CONFIG_STNIC is not set
- CONFIG_SMC91X=y
-+# CONFIG_NE2000 is not set
-
- #
- # Ethernet (1000 Mbit)
-@@ -539,12 +534,6 @@
- # CONFIG_I2C is not set
-
- #
--# SPI support
--#
--# CONFIG_SPI is not set
--# CONFIG_SPI_MASTER is not set
--
--#
- # Dallas's 1-wire bus
- #
- # CONFIG_W1 is not set
-@@ -613,10 +602,6 @@
- #
-
- #
--# EDAC - error detection and reporting (RAS)
--#
--
--#
- # File systems
- #
- CONFIG_EXT2_FS=y
-@@ -633,7 +618,6 @@
- # CONFIG_JFS_FS is not set
- # CONFIG_FS_POSIX_ACL is not set
- # CONFIG_XFS_FS is not set
--# CONFIG_OCFS2_FS is not set
- # CONFIG_MINIX_FS is not set
- # CONFIG_ROMFS_FS is not set
- CONFIG_INOTIFY=y
-@@ -666,11 +650,10 @@
- CONFIG_PROC_KCORE=y
- CONFIG_SYSFS=y
- CONFIG_TMPFS=y
--# CONFIG_HUGETLBFS is not set
--# CONFIG_HUGETLB_PAGE is not set
-+CONFIG_HUGETLBFS=y
-+CONFIG_HUGETLB_PAGE=y
- CONFIG_RAMFS=y
- # CONFIG_RELAYFS_FS is not set
--# CONFIG_CONFIGFS_FS is not set
-
- #
- # Miscellaneous filesystems
-@@ -772,10 +755,9 @@
- # Kernel hacking
- #
- # CONFIG_PRINTK_TIME is not set
--# CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_DEBUG_KERNEL is not set
- CONFIG_LOG_BUF_SHIFT=14
--# CONFIG_FRAME_POINTER is not set
-+CONFIG_FRAME_POINTER=y
- # CONFIG_SH_STANDARD_BIOS is not set
- # CONFIG_EARLY_SCIF_CONSOLE is not set
- # CONFIG_KGDB is not set
-diff -ruN linux-2.6.17-vanilla/arch/sh/configs/r7780rp_defconfig linux-2.6.17/arch/sh/configs/r7780rp_defconfig
---- linux-2.6.17-vanilla/arch/sh/configs/r7780rp_defconfig 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/configs/r7780rp_defconfig 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,1140 @@
-+#
-+# Automatically generated make config: don't edit
-+# Linux kernel version: 2.6.17
-+# Wed Jul 5 17:40:33 2006
-+#
-+CONFIG_SUPERH=y
-+CONFIG_RWSEM_GENERIC_SPINLOCK=y
-+CONFIG_GENERIC_FIND_NEXT_BIT=y
-+CONFIG_GENERIC_HWEIGHT=y
-+CONFIG_GENERIC_HARDIRQS=y
-+CONFIG_GENERIC_IRQ_PROBE=y
-+CONFIG_GENERIC_CALIBRATE_DELAY=y
-+
-+#
-+# Code maturity level options
-+#
-+CONFIG_EXPERIMENTAL=y
-+CONFIG_BROKEN_ON_SMP=y
-+CONFIG_LOCK_KERNEL=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-+
-+#
-+# General setup
-+#
-+CONFIG_LOCALVERSION=""
-+CONFIG_LOCALVERSION_AUTO=y
-+CONFIG_SWAP=y
-+CONFIG_SYSVIPC=y
-+# CONFIG_POSIX_MQUEUE is not set
-+CONFIG_BSD_PROCESS_ACCT=y
-+# CONFIG_BSD_PROCESS_ACCT_V3 is not set
-+CONFIG_SYSCTL=y
-+# CONFIG_AUDIT is not set
-+CONFIG_IKCONFIG=y
-+CONFIG_IKCONFIG_PROC=y
-+# CONFIG_RELAY is not set
-+CONFIG_INITRAMFS_SOURCE=""
-+CONFIG_UID16=y
-+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-+CONFIG_EMBEDDED=y
-+CONFIG_KALLSYMS=y
-+# CONFIG_KALLSYMS_ALL is not set
-+# CONFIG_KALLSYMS_EXTRA_PASS is not set
-+CONFIG_HOTPLUG=y
-+CONFIG_PRINTK=y
-+CONFIG_BUG=y
-+CONFIG_ELF_CORE=y
-+CONFIG_BASE_FULL=y
-+# CONFIG_FUTEX is not set
-+# CONFIG_EPOLL is not set
-+CONFIG_SHMEM=y
-+CONFIG_SLAB=y
-+# CONFIG_TINY_SHMEM is not set
-+CONFIG_BASE_SMALL=0
-+# CONFIG_SLOB is not set
-+
-+#
-+# Loadable module support
-+#
-+CONFIG_MODULES=y
-+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=y
-+
-+#
-+# Block layer
-+#
-+# CONFIG_LBD is not set
-+# CONFIG_BLK_DEV_IO_TRACE is not set
-+# CONFIG_LSF is not set
-+
-+#
-+# IO Schedulers
-+#
-+CONFIG_IOSCHED_NOOP=y
-+# CONFIG_IOSCHED_AS is not set
-+# CONFIG_IOSCHED_DEADLINE is not set
-+# CONFIG_IOSCHED_CFQ is not set
-+# CONFIG_DEFAULT_AS is not set
-+# CONFIG_DEFAULT_DEADLINE is not set
-+# CONFIG_DEFAULT_CFQ is not set
-+CONFIG_DEFAULT_NOOP=y
-+CONFIG_DEFAULT_IOSCHED="noop"
-+
-+#
-+# System type
-+#
-+# CONFIG_SH_SOLUTION_ENGINE is not set
-+# CONFIG_SH_7751_SOLUTION_ENGINE is not set
-+# CONFIG_SH_7300_SOLUTION_ENGINE is not set
-+# CONFIG_SH_73180_SOLUTION_ENGINE is not set
-+# CONFIG_SH_7751_SYSTEMH is not set
-+# CONFIG_SH_STB1_HARP is not set
-+# CONFIG_SH_STB1_OVERDRIVE is not set
-+# CONFIG_SH_HP6XX is not set
-+# CONFIG_SH_CQREEK is not set
-+# CONFIG_SH_DMIDA is not set
-+# CONFIG_SH_EC3104 is not set
-+# CONFIG_SH_SATURN is not set
-+# CONFIG_SH_DREAMCAST is not set
-+# CONFIG_SH_CAT68701 is not set
-+# CONFIG_SH_BIGSUR is not set
-+# CONFIG_SH_SH2000 is not set
-+# CONFIG_SH_ADX is not set
-+# CONFIG_SH_MPC1211 is not set
-+# CONFIG_SH_SH03 is not set
-+# CONFIG_SH_SECUREEDGE5410 is not set
-+# CONFIG_SH_HS7751RVOIP is not set
-+# CONFIG_SH_RTS7751R2D is not set
-+CONFIG_SH_R7780RP=y
-+# CONFIG_SH_EDOSK7705 is not set
-+# CONFIG_SH_SH4202_MICRODEV is not set
-+# CONFIG_SH_LANDISK is not set
-+# CONFIG_SH_TITAN is not set
-+# CONFIG_SH_UNKNOWN is not set
-+
-+#
-+# Processor selection
-+#
-+CONFIG_CPU_SH4=y
-+CONFIG_CPU_SH4A=y
-+
-+#
-+# SH-2 Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_SH7604 is not set
-+
-+#
-+# SH-3 Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_SH7300 is not set
-+# CONFIG_CPU_SUBTYPE_SH7705 is not set
-+# CONFIG_CPU_SUBTYPE_SH7707 is not set
-+# CONFIG_CPU_SUBTYPE_SH7708 is not set
-+# CONFIG_CPU_SUBTYPE_SH7709 is not set
-+
-+#
-+# SH-4 Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_SH7750 is not set
-+# CONFIG_CPU_SUBTYPE_SH7091 is not set
-+# CONFIG_CPU_SUBTYPE_SH7750R is not set
-+# CONFIG_CPU_SUBTYPE_SH7750S is not set
-+# CONFIG_CPU_SUBTYPE_SH7751 is not set
-+# CONFIG_CPU_SUBTYPE_SH7751R is not set
-+# CONFIG_CPU_SUBTYPE_SH7760 is not set
-+# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+
-+#
-+# ST40 Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_ST40STB1 is not set
-+# CONFIG_CPU_SUBTYPE_ST40GX1 is not set
-+
-+#
-+# SH-4A Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_SH73180 is not set
-+# CONFIG_CPU_SUBTYPE_SH7770 is not set
-+CONFIG_CPU_SUBTYPE_SH7780=y
-+
-+#
-+# Memory management options
-+#
-+CONFIG_MMU=y
-+CONFIG_32BIT=y
-+CONFIG_HUGETLB_PAGE_SIZE_64K=y
-+# CONFIG_HUGETLB_PAGE_SIZE_1MB is not set
-+CONFIG_SELECT_MEMORY_MODEL=y
-+CONFIG_FLATMEM_MANUAL=y
-+# CONFIG_DISCONTIGMEM_MANUAL is not set
-+# CONFIG_SPARSEMEM_MANUAL is not set
-+CONFIG_FLATMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+# CONFIG_SPARSEMEM_STATIC is not set
-+CONFIG_SPLIT_PTLOCK_CPUS=4
-+
-+#
-+# Cache configuration
-+#
-+# CONFIG_SH_DIRECT_MAPPED is not set
-+# CONFIG_SH_WRITETHROUGH is not set
-+# CONFIG_SH_OCRAM is not set
-+CONFIG_MEMORY_START=0x08000000
-+CONFIG_MEMORY_SIZE=0x08000000
-+
-+#
-+# Processor features
-+#
-+CONFIG_CPU_LITTLE_ENDIAN=y
-+CONFIG_SH_FPU=y
-+CONFIG_SH_STORE_QUEUES=y
-+CONFIG_CPU_HAS_INTEVT=y
-+CONFIG_CPU_HAS_INTC2_IRQ=y
-+CONFIG_CPU_HAS_SR_RB=y
-+
-+#
-+# Timer support
-+#
-+CONFIG_SH_TMU=y
-+CONFIG_SH_PCLK_FREQ=32000000
-+
-+#
-+# CPU Frequency scaling
-+#
-+# CONFIG_CPU_FREQ is not set
-+
-+#
-+# DMA support
-+#
-+CONFIG_SH_DMA=y
-+CONFIG_NR_ONCHIP_DMA_CHANNELS=6
-+# CONFIG_NR_DMA_CHANNELS_BOOL is not set
-+
-+#
-+# Companion Chips
-+#
-+# CONFIG_HD6446X_SERIES is not set
-+
-+#
-+# Kernel features
-+#
-+# CONFIG_KEXEC is not set
-+CONFIG_PREEMPT=y
-+# CONFIG_SMP is not set
-+
-+#
-+# Boot options
-+#
-+CONFIG_ZERO_PAGE_OFFSET=0x00001000
-+CONFIG_BOOT_LINK_OFFSET=0x00800000
-+# CONFIG_UBC_WAKEUP is not set
-+CONFIG_CMDLINE_BOOL=y
-+CONFIG_CMDLINE="mem=128M console=ttySC0,115200 root=/dev/hda1"
-+
-+#
-+# Bus options
-+#
-+CONFIG_PCI=y
-+CONFIG_SH_PCIDMA_NONCOHERENT=y
-+CONFIG_PCI_AUTO=y
-+CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
-+# CONFIG_PCI_DEBUG is not set
-+
-+#
-+# PCCARD (PCMCIA/CardBus) support
-+#
-+# CONFIG_PCCARD is not set
-+
-+#
-+# PCI Hotplug Support
-+#
-+CONFIG_HOTPLUG_PCI=y
-+# CONFIG_HOTPLUG_PCI_FAKE is not set
-+# CONFIG_HOTPLUG_PCI_CPCI is not set
-+# CONFIG_HOTPLUG_PCI_SHPC is not set
-+
-+#
-+# Executable file formats
-+#
-+CONFIG_BINFMT_ELF=y
-+# CONFIG_BINFMT_FLAT is not set
-+# CONFIG_BINFMT_MISC is not set
-+
-+#
-+# Power management options (EXPERIMENTAL)
-+#
-+# CONFIG_PM is not set
-+
-+#
-+# Networking
-+#
-+CONFIG_NET=y
-+
-+#
-+# Networking options
-+#
-+# CONFIG_NETDEBUG is not set
-+CONFIG_PACKET=y
-+# CONFIG_PACKET_MMAP is not set
-+CONFIG_UNIX=y
-+# CONFIG_NET_KEY is not set
-+CONFIG_INET=y
-+# CONFIG_IP_MULTICAST is not set
-+CONFIG_IP_ADVANCED_ROUTER=y
-+CONFIG_ASK_IP_FIB_HASH=y
-+# CONFIG_IP_FIB_TRIE is not set
-+CONFIG_IP_FIB_HASH=y
-+# CONFIG_IP_MULTIPLE_TABLES is not set
-+# CONFIG_IP_ROUTE_MULTIPATH is not set
-+# CONFIG_IP_ROUTE_VERBOSE is not set
-+CONFIG_IP_PNP=y
-+CONFIG_IP_PNP_DHCP=y
-+# CONFIG_IP_PNP_BOOTP is not set
-+# CONFIG_IP_PNP_RARP is not set
-+# CONFIG_NET_IPIP is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_SYN_COOKIES is not set
-+# CONFIG_INET_AH is not set
-+# CONFIG_INET_ESP is not set
-+# CONFIG_INET_IPCOMP is not set
-+# CONFIG_INET_XFRM_TUNNEL is not set
-+# CONFIG_INET_TUNNEL is not set
-+CONFIG_INET_DIAG=y
-+CONFIG_INET_TCP_DIAG=y
-+# CONFIG_TCP_CONG_ADVANCED is not set
-+CONFIG_TCP_CONG_BIC=y
-+# CONFIG_IPV6 is not set
-+# CONFIG_INET6_XFRM_TUNNEL is not set
-+# CONFIG_INET6_TUNNEL is not set
-+# CONFIG_NETFILTER is not set
-+
-+#
-+# DCCP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_DCCP is not set
-+
-+#
-+# SCTP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_SCTP is not set
-+
-+#
-+# TIPC Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_TIPC is not set
-+# CONFIG_ATM is not set
-+CONFIG_BRIDGE=m
-+# CONFIG_VLAN_8021Q is not set
-+# CONFIG_DECNET is not set
-+CONFIG_LLC=m
-+# CONFIG_LLC2 is not set
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
-+# CONFIG_X25 is not set
-+# CONFIG_LAPB is not set
-+# CONFIG_NET_DIVERT 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
-+
-+#
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+# CONFIG_HAMRADIO is not set
-+# CONFIG_IRDA is not set
-+# CONFIG_BT is not set
-+# CONFIG_IEEE80211 is not set
-+CONFIG_WIRELESS_EXT=y
-+
-+#
-+# Device Drivers
-+#
-+
-+#
-+# Generic Driver Options
-+#
-+CONFIG_STANDALONE=y
-+CONFIG_PREVENT_FIRMWARE_BUILD=y
-+CONFIG_FW_LOADER=m
-+# CONFIG_DEBUG_DRIVER is not set
-+
-+#
-+# Connector - unified userspace <-> kernelspace linker
-+#
-+# CONFIG_CONNECTOR is not set
-+
-+#
-+# Memory Technology Devices (MTD)
-+#
-+# CONFIG_MTD is not set
-+
-+#
-+# Parallel port support
-+#
-+# CONFIG_PARPORT is not set
-+
-+#
-+# Plug and Play support
-+#
-+
-+#
-+# Block devices
-+#
-+# CONFIG_BLK_CPQ_DA is not set
-+# CONFIG_BLK_CPQ_CISS_DA is not set
-+# CONFIG_BLK_DEV_DAC960 is not set
-+# CONFIG_BLK_DEV_UMEM is not set
-+# CONFIG_BLK_DEV_COW_COMMON is not set
-+# CONFIG_BLK_DEV_LOOP is not set
-+# CONFIG_BLK_DEV_NBD is not set
-+# CONFIG_BLK_DEV_SX8 is not set
-+CONFIG_BLK_DEV_RAM=y
-+CONFIG_BLK_DEV_RAM_COUNT=16
-+CONFIG_BLK_DEV_RAM_SIZE=4096
-+# CONFIG_BLK_DEV_INITRD is not set
-+# CONFIG_CDROM_PKTCDVD is not set
-+# CONFIG_ATA_OVER_ETH is not set
-+
-+#
-+# ATA/ATAPI/MFM/RLL support
-+#
-+CONFIG_IDE=m
-+CONFIG_IDE_MAX_HWIFS=4
-+CONFIG_BLK_DEV_IDE=m
-+
-+#
-+# Please see Documentation/ide.txt for help/info on IDE drives
-+#
-+CONFIG_BLK_DEV_IDE_SATA=y
-+CONFIG_BLK_DEV_IDEDISK=m
-+CONFIG_IDEDISK_MULTI_MODE=y
-+# CONFIG_BLK_DEV_IDECD is not set
-+# CONFIG_BLK_DEV_IDETAPE is not set
-+# CONFIG_BLK_DEV_IDEFLOPPY is not set
-+CONFIG_BLK_DEV_IDESCSI=m
-+# CONFIG_IDE_TASK_IOCTL is not set
-+
-+#
-+# IDE chipset support/bugfixes
-+#
-+CONFIG_IDE_GENERIC=m
-+CONFIG_BLK_DEV_IDEPCI=y
-+CONFIG_IDEPCI_SHARE_IRQ=y
-+# CONFIG_BLK_DEV_OFFBOARD is not set
-+CONFIG_BLK_DEV_GENERIC=m
-+# CONFIG_BLK_DEV_OPTI621 is not set
-+CONFIG_BLK_DEV_IDEDMA_PCI=y
-+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
-+CONFIG_IDEDMA_PCI_AUTO=y
-+# CONFIG_IDEDMA_ONLYDISK is not set
-+CONFIG_BLK_DEV_AEC62XX=m
-+# CONFIG_BLK_DEV_ALI15X3 is not set
-+# CONFIG_BLK_DEV_AMD74XX is not set
-+# CONFIG_BLK_DEV_CMD64X is not set
-+# CONFIG_BLK_DEV_TRIFLEX is not set
-+# CONFIG_BLK_DEV_CY82C693 is not set
-+# CONFIG_BLK_DEV_CS5520 is not set
-+# CONFIG_BLK_DEV_CS5530 is not set
-+# CONFIG_BLK_DEV_HPT34X is not set
-+# CONFIG_BLK_DEV_HPT366 is not set
-+# CONFIG_BLK_DEV_SC1200 is not set
-+# CONFIG_BLK_DEV_PIIX is not set
-+# CONFIG_BLK_DEV_IT821X is not set
-+# CONFIG_BLK_DEV_NS87415 is not set
-+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
-+CONFIG_BLK_DEV_PDC202XX_NEW=m
-+# CONFIG_BLK_DEV_SVWKS is not set
-+CONFIG_BLK_DEV_SIIMAGE=m
-+# CONFIG_BLK_DEV_SLC90E66 is not set
-+# CONFIG_BLK_DEV_TRM290 is not set
-+# CONFIG_BLK_DEV_VIA82CXXX is not set
-+CONFIG_IDE_SH=y
-+# CONFIG_IDE_ARM is not set
-+CONFIG_BLK_DEV_IDEDMA=y
-+# CONFIG_IDEDMA_IVB is not set
-+CONFIG_IDEDMA_AUTO=y
-+# CONFIG_BLK_DEV_HD is not set
-+
-+#
-+# SCSI device support
-+#
-+# CONFIG_RAID_ATTRS is not set
-+CONFIG_SCSI=m
-+CONFIG_SCSI_PROC_FS=y
-+
-+#
-+# SCSI support type (disk, tape, CD-ROM)
-+#
-+CONFIG_BLK_DEV_SD=m
-+# CONFIG_CHR_DEV_ST is not set
-+# CONFIG_CHR_DEV_OSST is not set
-+# CONFIG_BLK_DEV_SR is not set
-+CONFIG_CHR_DEV_SG=m
-+# CONFIG_CHR_DEV_SCH is not set
-+
-+#
-+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-+#
-+# CONFIG_SCSI_MULTI_LUN is not set
-+# CONFIG_SCSI_CONSTANTS is not set
-+# CONFIG_SCSI_LOGGING is not set
-+
-+#
-+# SCSI Transport Attributes
-+#
-+# CONFIG_SCSI_SPI_ATTRS is not set
-+# CONFIG_SCSI_FC_ATTRS is not set
-+# CONFIG_SCSI_ISCSI_ATTRS is not set
-+# CONFIG_SCSI_SAS_ATTRS is not set
-+
-+#
-+# SCSI low-level drivers
-+#
-+# CONFIG_ISCSI_TCP is not set
-+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
-+# CONFIG_SCSI_3W_9XXX is not set
-+# CONFIG_SCSI_ACARD is not set
-+# CONFIG_SCSI_AACRAID is not set
-+# CONFIG_SCSI_AIC7XXX is not set
-+# CONFIG_SCSI_AIC7XXX_OLD is not set
-+# CONFIG_SCSI_AIC79XX is not set
-+# CONFIG_SCSI_DPT_I2O is not set
-+# CONFIG_MEGARAID_NEWGEN is not set
-+# CONFIG_MEGARAID_LEGACY is not set
-+# CONFIG_MEGARAID_SAS is not set
-+# CONFIG_SCSI_SATA is not set
-+# CONFIG_SCSI_DMX3191D is not set
-+# CONFIG_SCSI_FUTURE_DOMAIN is not set
-+# CONFIG_SCSI_IPS is not set
-+# CONFIG_SCSI_INITIO is not set
-+# CONFIG_SCSI_INIA100 is not set
-+# CONFIG_SCSI_SYM53C8XX_2 is not set
-+# CONFIG_SCSI_IPR is not set
-+# CONFIG_SCSI_QLOGIC_1280 is not set
-+# CONFIG_SCSI_QLA_FC is not set
-+# CONFIG_SCSI_LPFC is not set
-+# CONFIG_SCSI_DC395x is not set
-+# CONFIG_SCSI_DC390T is not set
-+# CONFIG_SCSI_NSP32 is not set
-+# CONFIG_SCSI_DEBUG is not set
-+
-+#
-+# Multi-device support (RAID and LVM)
-+#
-+# CONFIG_MD is not set
-+
-+#
-+# Fusion MPT device 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
-+#
-+# CONFIG_IEEE1394 is not set
-+
-+#
-+# I2O device support
-+#
-+# CONFIG_I2O is not set
-+
-+#
-+# Network device support
-+#
-+CONFIG_NETDEVICES=y
-+# CONFIG_DUMMY is not set
-+# CONFIG_BONDING is not set
-+# CONFIG_EQUALIZER is not set
-+# CONFIG_TUN is not set
-+
-+#
-+# ARCnet devices
-+#
-+# CONFIG_ARCNET is not set
-+
-+#
-+# PHY device support
-+#
-+# CONFIG_PHYLIB is not set
-+
-+#
-+# Ethernet (10 or 100Mbit)
-+#
-+CONFIG_NET_ETHERNET=y
-+CONFIG_MII=y
-+# CONFIG_STNIC is not set
-+# CONFIG_HAPPYMEAL is not set
-+# CONFIG_SUNGEM is not set
-+# CONFIG_CASSINI is not set
-+# CONFIG_NET_VENDOR_3COM is not set
-+# CONFIG_SMC91X is not set
-+
-+#
-+# Tulip family network device support
-+#
-+# CONFIG_NET_TULIP is not set
-+# CONFIG_HP100 is not set
-+CONFIG_NE2000=y
-+CONFIG_NET_PCI=y
-+CONFIG_PCNET32=m
-+# CONFIG_AMD8111_ETH is not set
-+# CONFIG_ADAPTEC_STARFIRE is not set
-+# CONFIG_B44 is not set
-+# CONFIG_FORCEDETH is not set
-+# CONFIG_DGRS is not set
-+# CONFIG_EEPRO100 is not set
-+# CONFIG_E100 is not set
-+# CONFIG_FEALNX is not set
-+# CONFIG_NATSEMI is not set
-+# CONFIG_NE2K_PCI is not set
-+CONFIG_8139CP=m
-+CONFIG_8139TOO=m
-+# CONFIG_8139TOO_PIO is not set
-+# CONFIG_8139TOO_TUNE_TWISTER is not set
-+CONFIG_8139TOO_8129=y
-+# CONFIG_8139_OLD_RX_RESET is not set
-+# CONFIG_SIS900 is not set
-+# CONFIG_EPIC100 is not set
-+# CONFIG_SUNDANCE is not set
-+# CONFIG_TLAN is not set
-+CONFIG_VIA_RHINE=m
-+CONFIG_VIA_RHINE_MMIO=y
-+
-+#
-+# Ethernet (1000 Mbit)
-+#
-+# CONFIG_ACENIC is not set
-+# CONFIG_DL2K is not set
-+CONFIG_E1000=m
-+# CONFIG_E1000_NAPI is not set
-+# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
-+# CONFIG_NS83820 is not set
-+# CONFIG_HAMACHI is not set
-+# CONFIG_YELLOWFIN is not set
-+CONFIG_R8169=y
-+# CONFIG_R8169_NAPI is not set
-+# CONFIG_SIS190 is not set
-+# CONFIG_SKGE is not set
-+# CONFIG_SKY2 is not set
-+# CONFIG_SK98LIN is not set
-+# CONFIG_VIA_VELOCITY is not set
-+# CONFIG_TIGON3 is not set
-+# CONFIG_BNX2 is not set
-+
-+#
-+# Ethernet (10000 Mbit)
-+#
-+# CONFIG_CHELSIO_T1 is not set
-+# CONFIG_IXGB is not set
-+# CONFIG_S2IO is not set
-+
-+#
-+# Token Ring devices
-+#
-+# CONFIG_TR is not set
-+
-+#
-+# Wireless LAN (non-hamradio)
-+#
-+CONFIG_NET_RADIO=y
-+# CONFIG_NET_WIRELESS_RTNETLINK is not set
-+
-+#
-+# Obsolete Wireless cards support (pre-802.11)
-+#
-+# CONFIG_STRIP is not set
-+
-+#
-+# Wireless 802.11b ISA/PCI cards support
-+#
-+# CONFIG_IPW2100 is not set
-+# CONFIG_IPW2200 is not set
-+CONFIG_HERMES=m
-+# CONFIG_PLX_HERMES is not set
-+# CONFIG_TMD_HERMES is not set
-+# CONFIG_NORTEL_HERMES is not set
-+# CONFIG_PCI_HERMES is not set
-+# CONFIG_ATMEL is not set
-+
-+#
-+# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
-+#
-+CONFIG_PRISM54=m
-+# CONFIG_HOSTAP is not set
-+CONFIG_NET_WIRELESS=y
-+
-+#
-+# Wan interfaces
-+#
-+# CONFIG_WAN is not set
-+# CONFIG_FDDI is not set
-+# CONFIG_HIPPI is not set
-+# 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
-+
-+#
-+# ISDN subsystem
-+#
-+# CONFIG_ISDN is not set
-+
-+#
-+# Telephony Support
-+#
-+# CONFIG_PHONE is not set
-+
-+#
-+# Input device support
-+#
-+CONFIG_INPUT=y
-+
-+#
-+# Userland interfaces
-+#
-+CONFIG_INPUT_MOUSEDEV=y
-+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-+# CONFIG_INPUT_JOYDEV is not set
-+# CONFIG_INPUT_TSDEV is not set
-+# CONFIG_INPUT_EVDEV is not set
-+# CONFIG_INPUT_EVBUG is not set
-+
-+#
-+# Input Device Drivers
-+#
-+CONFIG_INPUT_KEYBOARD=y
-+CONFIG_KEYBOARD_ATKBD=y
-+# CONFIG_KEYBOARD_SUNKBD is not set
-+# CONFIG_KEYBOARD_LKKBD is not set
-+# CONFIG_KEYBOARD_XTKBD is not set
-+# CONFIG_KEYBOARD_NEWTON is not set
-+# CONFIG_INPUT_MOUSE is not set
-+# CONFIG_INPUT_JOYSTICK is not set
-+# CONFIG_INPUT_TOUCHSCREEN is not set
-+# CONFIG_INPUT_MISC is not set
-+
-+#
-+# Hardware I/O ports
-+#
-+CONFIG_SERIO=y
-+# CONFIG_SERIO_I8042 is not set
-+# CONFIG_SERIO_SERPORT is not set
-+# CONFIG_SERIO_PCIPS2 is not set
-+CONFIG_SERIO_LIBPS2=y
-+# CONFIG_SERIO_RAW is not set
-+# CONFIG_GAMEPORT is not set
-+
-+#
-+# Character devices
-+#
-+# CONFIG_VT is not set
-+# CONFIG_SERIAL_NONSTANDARD is not set
-+
-+#
-+# Serial drivers
-+#
-+# CONFIG_SERIAL_8250 is not set
-+
-+#
-+# Non-8250 serial port support
-+#
-+CONFIG_SERIAL_SH_SCI=y
-+CONFIG_SERIAL_SH_SCI_CONSOLE=y
-+CONFIG_SERIAL_CORE=y
-+CONFIG_SERIAL_CORE_CONSOLE=y
-+# CONFIG_SERIAL_JSM is not set
-+CONFIG_UNIX98_PTYS=y
-+CONFIG_LEGACY_PTYS=y
-+CONFIG_LEGACY_PTY_COUNT=256
-+
-+#
-+# IPMI
-+#
-+# CONFIG_IPMI_HANDLER is not set
-+
-+#
-+# Watchdog Cards
-+#
-+# CONFIG_WATCHDOG is not set
-+# CONFIG_RTC is not set
-+# CONFIG_GEN_RTC is not set
-+# CONFIG_DTLK is not set
-+# CONFIG_R3964 is not set
-+# CONFIG_APPLICOM is not set
-+
-+#
-+# Ftape, the floppy tape device driver
-+#
-+# CONFIG_DRM is not set
-+# CONFIG_RAW_DRIVER is not set
-+
-+#
-+# TPM devices
-+#
-+# CONFIG_TCG_TPM is not set
-+# CONFIG_TELCLOCK is not set
-+
-+#
-+# I2C support
-+#
-+# CONFIG_I2C is not set
-+
-+#
-+# SPI support
-+#
-+# CONFIG_SPI is not set
-+# CONFIG_SPI_MASTER is not set
-+
-+#
-+# Dallas's 1-wire bus
-+#
-+# CONFIG_W1 is not set
-+
-+#
-+# Hardware Monitoring support
-+#
-+CONFIG_HWMON=y
-+# CONFIG_HWMON_VID is not set
-+# CONFIG_SENSORS_F71805F is not set
-+# CONFIG_HWMON_DEBUG_CHIP is not set
-+
-+#
-+# Misc devices
-+#
-+
-+#
-+# Multimedia devices
-+#
-+# CONFIG_VIDEO_DEV is not set
-+CONFIG_VIDEO_V4L2=y
-+
-+#
-+# Digital Video Broadcasting Devices
-+#
-+# CONFIG_DVB is not set
-+
-+#
-+# Graphics support
-+#
-+# CONFIG_FB is not set
-+
-+#
-+# Sound
-+#
-+CONFIG_SOUND=m
-+
-+#
-+# Advanced Linux Sound Architecture
-+#
-+# CONFIG_SND is not set
-+
-+#
-+# Open Sound System
-+#
-+CONFIG_SOUND_PRIME=m
-+# CONFIG_SOUND_BT878 is not set
-+# CONFIG_SOUND_EMU10K1 is not set
-+# CONFIG_SOUND_FUSION is not set
-+# CONFIG_SOUND_ES1371 is not set
-+# CONFIG_SOUND_ICH is not set
-+# CONFIG_SOUND_TRIDENT is not set
-+# CONFIG_SOUND_MSNDCLAS is not set
-+# CONFIG_SOUND_MSNDPIN is not set
-+# CONFIG_SOUND_VIA82CXXX is not set
-+
-+#
-+# USB support
-+#
-+CONFIG_USB_ARCH_HAS_HCD=y
-+CONFIG_USB_ARCH_HAS_OHCI=y
-+CONFIG_USB_ARCH_HAS_EHCI=y
-+# CONFIG_USB is not set
-+
-+#
-+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
-+#
-+
-+#
-+# USB Gadget Support
-+#
-+# CONFIG_USB_GADGET is not set
-+
-+#
-+# MMC/SD Card support
-+#
-+# CONFIG_MMC is not set
-+
-+#
-+# LED devices
-+#
-+# CONFIG_NEW_LEDS is not set
-+
-+#
-+# LED drivers
-+#
-+
-+#
-+# LED Triggers
-+#
-+
-+#
-+# InfiniBand support
-+#
-+# CONFIG_INFINIBAND is not set
-+
-+#
-+# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
-+#
-+
-+#
-+# Real Time Clock
-+#
-+# CONFIG_RTC_CLASS is not set
-+
-+#
-+# File systems
-+#
-+CONFIG_EXT2_FS=y
-+# CONFIG_EXT2_FS_XATTR is not set
-+# CONFIG_EXT2_FS_XIP is not set
-+CONFIG_EXT3_FS=y
-+CONFIG_EXT3_FS_XATTR=y
-+# CONFIG_EXT3_FS_POSIX_ACL is not set
-+# CONFIG_EXT3_FS_SECURITY is not set
-+CONFIG_JBD=y
-+# CONFIG_JBD_DEBUG is not set
-+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_OCFS2_FS is not set
-+CONFIG_MINIX_FS=y
-+# CONFIG_ROMFS_FS is not set
-+CONFIG_INOTIFY=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
-+
-+#
-+# CD-ROM/DVD Filesystems
-+#
-+# CONFIG_ISO9660_FS is not set
-+# CONFIG_UDF_FS is not set
-+
-+#
-+# DOS/FAT/NT Filesystems
-+#
-+CONFIG_FAT_FS=y
-+CONFIG_MSDOS_FS=y
-+CONFIG_VFAT_FS=y
-+CONFIG_FAT_DEFAULT_CODEPAGE=437
-+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-+CONFIG_NTFS_FS=y
-+# CONFIG_NTFS_DEBUG is not set
-+CONFIG_NTFS_RW=y
-+
-+#
-+# Pseudo filesystems
-+#
-+CONFIG_PROC_FS=y
-+CONFIG_PROC_KCORE=y
-+CONFIG_SYSFS=y
-+# CONFIG_TMPFS is not set
-+CONFIG_HUGETLBFS=y
-+CONFIG_HUGETLB_PAGE=y
-+CONFIG_RAMFS=y
-+# CONFIG_CONFIGFS_FS is not set
-+
-+#
-+# Miscellaneous filesystems
-+#
-+# CONFIG_ADFS_FS is not set
-+# CONFIG_AFFS_FS is not set
-+# CONFIG_HFS_FS is not set
-+# CONFIG_HFSPLUS_FS is not set
-+# CONFIG_BEFS_FS is not set
-+# CONFIG_BFS_FS is not set
-+# CONFIG_EFS_FS is not set
-+# CONFIG_CRAMFS is not set
-+# CONFIG_VXFS_FS is not set
-+# CONFIG_HPFS_FS is not set
-+# CONFIG_QNX4FS_FS is not set
-+# CONFIG_SYSV_FS is not set
-+# CONFIG_UFS_FS is not set
-+
-+#
-+# Network File Systems
-+#
-+CONFIG_NFS_FS=y
-+CONFIG_NFS_V3=y
-+# CONFIG_NFS_V3_ACL is not set
-+CONFIG_NFS_V4=y
-+# CONFIG_NFS_DIRECTIO is not set
-+CONFIG_NFSD=y
-+CONFIG_NFSD_V3=y
-+# CONFIG_NFSD_V3_ACL is not set
-+CONFIG_NFSD_V4=y
-+CONFIG_NFSD_TCP=y
-+CONFIG_ROOT_NFS=y
-+CONFIG_LOCKD=y
-+CONFIG_LOCKD_V4=y
-+CONFIG_EXPORTFS=y
-+CONFIG_NFS_COMMON=y
-+CONFIG_SUNRPC=y
-+CONFIG_SUNRPC_GSS=y
-+CONFIG_RPCSEC_GSS_KRB5=y
-+# CONFIG_RPCSEC_GSS_SPKM3 is not set
-+# CONFIG_SMB_FS is not set
-+# CONFIG_CIFS is not set
-+# CONFIG_NCP_FS is not set
-+# CONFIG_CODA_FS is not set
-+# CONFIG_AFS_FS is not set
-+# CONFIG_9P_FS is not set
-+
-+#
-+# Partition Types
-+#
-+# CONFIG_PARTITION_ADVANCED is not set
-+CONFIG_MSDOS_PARTITION=y
-+
-+#
-+# Native Language Support
-+#
-+CONFIG_NLS=y
-+CONFIG_NLS_DEFAULT="iso8859-1"
-+CONFIG_NLS_CODEPAGE_437=y
-+# CONFIG_NLS_CODEPAGE_737 is not set
-+# CONFIG_NLS_CODEPAGE_775 is not set
-+# CONFIG_NLS_CODEPAGE_850 is not set
-+# CONFIG_NLS_CODEPAGE_852 is not set
-+# CONFIG_NLS_CODEPAGE_855 is not set
-+# CONFIG_NLS_CODEPAGE_857 is not set
-+# CONFIG_NLS_CODEPAGE_860 is not set
-+# CONFIG_NLS_CODEPAGE_861 is not set
-+# CONFIG_NLS_CODEPAGE_862 is not set
-+# CONFIG_NLS_CODEPAGE_863 is not set
-+# CONFIG_NLS_CODEPAGE_864 is not set
-+# CONFIG_NLS_CODEPAGE_865 is not set
-+# CONFIG_NLS_CODEPAGE_866 is not set
-+# CONFIG_NLS_CODEPAGE_869 is not set
-+# CONFIG_NLS_CODEPAGE_936 is not set
-+# CONFIG_NLS_CODEPAGE_950 is not set
-+CONFIG_NLS_CODEPAGE_932=y
-+# CONFIG_NLS_CODEPAGE_949 is not set
-+# CONFIG_NLS_CODEPAGE_874 is not set
-+# CONFIG_NLS_ISO8859_8 is not set
-+# CONFIG_NLS_CODEPAGE_1250 is not set
-+# CONFIG_NLS_CODEPAGE_1251 is not set
-+# CONFIG_NLS_ASCII is not set
-+CONFIG_NLS_ISO8859_1=y
-+# CONFIG_NLS_ISO8859_2 is not set
-+# CONFIG_NLS_ISO8859_3 is not set
-+# CONFIG_NLS_ISO8859_4 is not set
-+# CONFIG_NLS_ISO8859_5 is not set
-+# CONFIG_NLS_ISO8859_6 is not set
-+# CONFIG_NLS_ISO8859_7 is not set
-+# CONFIG_NLS_ISO8859_9 is not set
-+# CONFIG_NLS_ISO8859_13 is not set
-+# CONFIG_NLS_ISO8859_14 is not set
-+# CONFIG_NLS_ISO8859_15 is not set
-+# CONFIG_NLS_KOI8_R is not set
-+# CONFIG_NLS_KOI8_U is not set
-+# CONFIG_NLS_UTF8 is not set
-+
-+#
-+# Profiling support
-+#
-+# CONFIG_PROFILING is not set
-+
-+#
-+# Kernel hacking
-+#
-+# CONFIG_PRINTK_TIME is not set
-+# CONFIG_MAGIC_SYSRQ is not set
-+CONFIG_DEBUG_KERNEL=y
-+CONFIG_LOG_BUF_SHIFT=14
-+CONFIG_DETECT_SOFTLOCKUP=y
-+# CONFIG_SCHEDSTATS is not set
-+# CONFIG_DEBUG_SLAB is not set
-+CONFIG_DEBUG_PREEMPT=y
-+# CONFIG_DEBUG_MUTEXES is not set
-+CONFIG_DEBUG_SPINLOCK=y
-+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
-+# CONFIG_DEBUG_KOBJECT is not set
-+# CONFIG_DEBUG_INFO is not set
-+CONFIG_DEBUG_FS=y
-+# CONFIG_DEBUG_VM is not set
-+CONFIG_FRAME_POINTER=y
-+CONFIG_FORCED_INLINING=y
-+# CONFIG_RCU_TORTURE_TEST is not set
-+# CONFIG_SH_STANDARD_BIOS is not set
-+# CONFIG_EARLY_SCIF_CONSOLE is not set
-+# CONFIG_KGDB is not set
-+
-+#
-+# Security options
-+#
-+# CONFIG_KEYS is not set
-+# CONFIG_SECURITY is not set
-+
-+#
-+# Cryptographic options
-+#
-+CONFIG_CRYPTO=y
-+CONFIG_CRYPTO_HMAC=y
-+# CONFIG_CRYPTO_NULL is not set
-+# CONFIG_CRYPTO_MD4 is not set
-+CONFIG_CRYPTO_MD5=y
-+# CONFIG_CRYPTO_SHA1 is not set
-+# CONFIG_CRYPTO_SHA256 is not set
-+# CONFIG_CRYPTO_SHA512 is not set
-+# CONFIG_CRYPTO_WP512 is not set
-+# CONFIG_CRYPTO_TGR192 is not set
-+CONFIG_CRYPTO_DES=y
-+# CONFIG_CRYPTO_BLOWFISH is not set
-+# CONFIG_CRYPTO_TWOFISH is not set
-+# CONFIG_CRYPTO_SERPENT is not set
-+# CONFIG_CRYPTO_AES is not set
-+# CONFIG_CRYPTO_CAST5 is not set
-+# CONFIG_CRYPTO_CAST6 is not set
-+# CONFIG_CRYPTO_TEA is not set
-+# CONFIG_CRYPTO_ARC4 is not set
-+# CONFIG_CRYPTO_KHAZAD is not set
-+# CONFIG_CRYPTO_ANUBIS is not set
-+# CONFIG_CRYPTO_DEFLATE is not set
-+# CONFIG_CRYPTO_MICHAEL_MIC is not set
-+# CONFIG_CRYPTO_CRC32C is not set
-+# CONFIG_CRYPTO_TEST is not set
-+
-+#
-+# Hardware crypto devices
-+#
-+
-+#
-+# Library routines
-+#
-+# CONFIG_CRC_CCITT is not set
-+# CONFIG_CRC16 is not set
-+CONFIG_CRC32=y
-+# CONFIG_LIBCRC32C is not set
-diff -ruN linux-2.6.17-vanilla/arch/sh/configs/rts7751r2d_defconfig linux-2.6.17/arch/sh/configs/rts7751r2d_defconfig
---- linux-2.6.17-vanilla/arch/sh/configs/rts7751r2d_defconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/configs/rts7751r2d_defconfig 2006-07-12 16:54:21.000000000 +0000
-@@ -1,7 +1,7 @@
- #
- # Automatically generated make config: don't edit
--# Linux kernel version: 2.6.11-sh
--# Wed Mar 2 15:09:42 2005
-+# Linux kernel version: 2.6.15-sh
-+# Wed Jan 4 19:00:01 2006
- #
- CONFIG_SUPERH=y
- CONFIG_UID16=y
-@@ -16,33 +16,39 @@
- CONFIG_EXPERIMENTAL=y
- CONFIG_CLEAN_COMPILE=y
- CONFIG_BROKEN_ON_SMP=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-
- #
- # General setup
- #
- CONFIG_LOCALVERSION=""
-+CONFIG_LOCALVERSION_AUTO=y
- CONFIG_SWAP=y
- CONFIG_SYSVIPC=y
- # CONFIG_POSIX_MQUEUE is not set
- # CONFIG_BSD_PROCESS_ACCT is not set
- CONFIG_SYSCTL=y
- # CONFIG_AUDIT is not set
--CONFIG_LOG_BUF_SHIFT=14
- CONFIG_HOTPLUG=y
- CONFIG_KOBJECT_UEVENT=y
- # CONFIG_IKCONFIG is not set
-+CONFIG_INITRAMFS_SOURCE=""
-+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
- CONFIG_EMBEDDED=y
- CONFIG_KALLSYMS=y
- # CONFIG_KALLSYMS_EXTRA_PASS is not set
-+CONFIG_PRINTK=y
-+CONFIG_BUG=y
-+CONFIG_BASE_FULL=y
- CONFIG_FUTEX=y
- CONFIG_EPOLL=y
--# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
- CONFIG_SHMEM=y
- CONFIG_CC_ALIGN_FUNCTIONS=0
- CONFIG_CC_ALIGN_LABELS=0
- CONFIG_CC_ALIGN_LOOPS=0
- CONFIG_CC_ALIGN_JUMPS=0
- # CONFIG_TINY_SHMEM is not set
-+CONFIG_BASE_SMALL=0
-
- #
- # Loadable module support
-@@ -55,6 +61,24 @@
- # CONFIG_KMOD is not set
-
- #
-+# Block layer
-+#
-+# CONFIG_LBD is not set
-+
-+#
-+# IO Schedulers
-+#
-+CONFIG_IOSCHED_NOOP=y
-+CONFIG_IOSCHED_AS=y
-+CONFIG_IOSCHED_DEADLINE=y
-+CONFIG_IOSCHED_CFQ=y
-+CONFIG_DEFAULT_AS=y
-+# CONFIG_DEFAULT_DEADLINE is not set
-+# CONFIG_DEFAULT_CFQ is not set
-+# CONFIG_DEFAULT_NOOP is not set
-+CONFIG_DEFAULT_IOSCHED="anticipatory"
-+
-+#
- # System type
- #
- # CONFIG_SH_SOLUTION_ENGINE is not set
-@@ -64,9 +88,7 @@
- # CONFIG_SH_7751_SYSTEMH is not set
- # CONFIG_SH_STB1_HARP is not set
- # CONFIG_SH_STB1_OVERDRIVE is not set
--# CONFIG_SH_HP620 is not set
--# CONFIG_SH_HP680 is not set
--# CONFIG_SH_HP690 is not set
-+# CONFIG_SH_HP6XX is not set
- # CONFIG_SH_CQREEK is not set
- # CONFIG_SH_DMIDA is not set
- # CONFIG_SH_EC3104 is not set
-@@ -83,44 +105,94 @@
- CONFIG_SH_RTS7751R2D=y
- # CONFIG_SH_EDOSK7705 is not set
- # CONFIG_SH_SH4202_MICRODEV is not set
-+# CONFIG_SH_LANDISK is not set
-+# CONFIG_SH_TITAN is not set
- # CONFIG_SH_UNKNOWN is not set
--# CONFIG_CPU_SH2 is not set
--# CONFIG_CPU_SH3 is not set
-+
-+#
-+# Processor selection
-+#
- CONFIG_CPU_SH4=y
-+
-+#
-+# SH-2 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7604 is not set
-+
-+#
-+# SH-3 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7300 is not set
- # CONFIG_CPU_SUBTYPE_SH7705 is not set
- # CONFIG_CPU_SUBTYPE_SH7707 is not set
- # CONFIG_CPU_SUBTYPE_SH7708 is not set
- # CONFIG_CPU_SUBTYPE_SH7709 is not set
-+
-+#
-+# SH-4 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7750 is not set
-+# CONFIG_CPU_SUBTYPE_SH7091 is not set
-+# CONFIG_CPU_SUBTYPE_SH7750R is not set
-+# CONFIG_CPU_SUBTYPE_SH7750S is not set
- CONFIG_CPU_SUBTYPE_SH7751=y
-+CONFIG_CPU_SUBTYPE_SH7751R=y
- # CONFIG_CPU_SUBTYPE_SH7760 is not set
--# CONFIG_CPU_SUBTYPE_SH73180 is not set
-+# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+
-+#
-+# ST40 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_ST40STB1 is not set
- # CONFIG_CPU_SUBTYPE_ST40GX1 is not set
--# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+
-+#
-+# SH-4A Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_SH73180 is not set
-+# CONFIG_CPU_SUBTYPE_SH7770 is not set
-+# CONFIG_CPU_SUBTYPE_SH7780 is not set
-+
-+#
-+# Memory management options
-+#
- CONFIG_MMU=y
--CONFIG_CMDLINE_BOOL=y
--CONFIG_CMDLINE="mem=64M console=ttySC0,115200 root=/dev/hda1"
-+CONFIG_SELECT_MEMORY_MODEL=y
-+CONFIG_FLATMEM_MANUAL=y
-+# CONFIG_DISCONTIGMEM_MANUAL is not set
-+# CONFIG_SPARSEMEM_MANUAL is not set
-+CONFIG_FLATMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+# CONFIG_SPARSEMEM_STATIC is not set
-+CONFIG_SPLIT_PTLOCK_CPUS=4
-+
-+#
-+# Cache configuration
-+#
-+# CONFIG_SH_DIRECT_MAPPED is not set
-+# CONFIG_SH_WRITETHROUGH is not set
-+# CONFIG_SH_OCRAM is not set
- CONFIG_MEMORY_START=0x0c000000
- CONFIG_MEMORY_SIZE=0x04000000
--CONFIG_MEMORY_SET=y
--# CONFIG_MEMORY_OVERRIDE is not set
-+
-+#
-+# Processor features
-+#
-+CONFIG_CPU_LITTLE_ENDIAN=y
- CONFIG_SH_RTC=y
- CONFIG_SH_FPU=y
--CONFIG_ZERO_PAGE_OFFSET=0x00010000
--CONFIG_BOOT_LINK_OFFSET=0x00800000
--CONFIG_CPU_LITTLE_ENDIAN=y
--# CONFIG_PREEMPT is not set
--# CONFIG_UBC_WAKEUP is not set
--# CONFIG_SH_WRITETHROUGH is not set
--# CONFIG_SH_OCRAM is not set
- # CONFIG_SH_STORE_QUEUES is not set
--# CONFIG_SMP is not set
-+
-+#
-+# Timer support
-+#
-+CONFIG_SH_TMU=y
-+
-+#
-+# RTS7751R2D options
-+#
- CONFIG_RTS7751R2D_REV11=y
--CONFIG_SH_PCLK_CALC=y
--CONFIG_SH_PCLK_FREQ=60000000
-+# CONFIG_SH_PCLK_FREQ_BOOL is not set
-
- #
- # CPU Frequency scaling
-@@ -140,17 +212,31 @@
- CONFIG_VOYAGERGX=y
- # CONFIG_HD6446X_SERIES is not set
- CONFIG_HEARTBEAT=y
--CONFIG_RTC_9701JE=y
-
- #
--# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
-+# Kernel features
-+#
-+# CONFIG_KEXEC is not set
-+# CONFIG_PREEMPT is not set
-+# CONFIG_SMP is not set
-+
-+#
-+# Boot options
-+#
-+CONFIG_ZERO_PAGE_OFFSET=0x00010000
-+CONFIG_BOOT_LINK_OFFSET=0x00800000
-+# CONFIG_UBC_WAKEUP is not set
-+CONFIG_CMDLINE_BOOL=y
-+CONFIG_CMDLINE="mem=64M console=ttySC0,115200 root=/dev/hda1"
-+
-+#
-+# Bus options
- #
- CONFIG_PCI=y
- CONFIG_SH_PCIDMA_NONCOHERENT=y
- CONFIG_PCI_AUTO=y
- CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
- # CONFIG_PCI_LEGACY_PROC is not set
--CONFIG_PCI_NAMES=y
-
- #
- # PCCARD (PCMCIA/CardBus) support
-@@ -158,10 +244,6 @@
- # CONFIG_PCCARD is not set
-
- #
--# PC-card bridges
--#
--
--#
- # PCI Hotplug Support
- #
- CONFIG_HOTPLUG_PCI=y
-@@ -177,6 +259,74 @@
- # CONFIG_BINFMT_MISC is not set
-
- #
-+# Networking
-+#
-+CONFIG_NET=y
-+
-+#
-+# Networking options
-+#
-+CONFIG_PACKET=y
-+# CONFIG_PACKET_MMAP is not set
-+CONFIG_UNIX=y
-+# CONFIG_NET_KEY is not set
-+CONFIG_INET=y
-+# CONFIG_IP_MULTICAST is not set
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+CONFIG_IP_FIB_HASH=y
-+# CONFIG_IP_PNP is not set
-+# CONFIG_NET_IPIP is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_SYN_COOKIES is not set
-+# CONFIG_INET_AH is not set
-+# CONFIG_INET_ESP is not set
-+# CONFIG_INET_IPCOMP is not set
-+# CONFIG_INET_TUNNEL is not set
-+CONFIG_INET_DIAG=y
-+CONFIG_INET_TCP_DIAG=y
-+# CONFIG_TCP_CONG_ADVANCED is not set
-+CONFIG_TCP_CONG_BIC=y
-+# CONFIG_IPV6 is not set
-+# CONFIG_NETFILTER is not set
-+
-+#
-+# DCCP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_DCCP is not set
-+
-+#
-+# SCTP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_SCTP is not set
-+# CONFIG_ATM is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_VLAN_8021Q is not set
-+# CONFIG_DECNET is not set
-+# CONFIG_LLC2 is not set
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
-+# CONFIG_X25 is not set
-+# CONFIG_LAPB is not set
-+# CONFIG_NET_DIVERT 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
-+
-+#
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+# CONFIG_HAMRADIO is not set
-+# CONFIG_IRDA is not set
-+# CONFIG_BT is not set
-+# CONFIG_IEEE80211 is not set
-+
-+#
- # Device Drivers
- #
-
-@@ -188,6 +338,11 @@
- # CONFIG_FW_LOADER is not set
-
- #
-+# Connector - unified userspace <-> kernelspace linker
-+#
-+# CONFIG_CONNECTOR is not set
-+
-+#
- # Memory Technology Devices (MTD)
- #
- # CONFIG_MTD is not set
-@@ -204,7 +359,6 @@
- #
- # Block devices
- #
--# CONFIG_BLK_DEV_FD is not set
- # CONFIG_BLK_CPQ_DA is not set
- # CONFIG_BLK_CPQ_CISS_DA is not set
- # CONFIG_BLK_DEV_DAC960 is not set
-@@ -217,17 +371,7 @@
- CONFIG_BLK_DEV_RAM_COUNT=16
- CONFIG_BLK_DEV_RAM_SIZE=4096
- # CONFIG_BLK_DEV_INITRD is not set
--CONFIG_INITRAMFS_SOURCE=""
--# CONFIG_LBD is not set
- # CONFIG_CDROM_PKTCDVD is not set
--
--#
--# IO Schedulers
--#
--CONFIG_IOSCHED_NOOP=y
--CONFIG_IOSCHED_AS=y
--CONFIG_IOSCHED_DEADLINE=y
--CONFIG_IOSCHED_CFQ=y
- # CONFIG_ATA_OVER_ETH is not set
-
- #
-@@ -262,6 +406,7 @@
- #
- # SCSI device support
- #
-+# CONFIG_RAID_ATTRS is not set
- # CONFIG_SCSI is not set
-
- #
-@@ -272,6 +417,7 @@
- #
- # Fusion MPT device support
- #
-+# CONFIG_FUSION is not set
-
- #
- # IEEE 1394 (FireWire) support
-@@ -284,67 +430,8 @@
- # CONFIG_I2O is not set
-
- #
--# Networking support
--#
--CONFIG_NET=y
--
--#
--# Networking options
--#
--CONFIG_PACKET=y
--# CONFIG_PACKET_MMAP is not set
--# CONFIG_NETLINK_DEV is not set
--CONFIG_UNIX=y
--# CONFIG_NET_KEY is not set
--CONFIG_INET=y
--# CONFIG_IP_MULTICAST is not set
--# CONFIG_IP_ADVANCED_ROUTER is not set
--# CONFIG_IP_PNP is not set
--# CONFIG_NET_IPIP is not set
--# CONFIG_NET_IPGRE is not set
--# CONFIG_ARPD is not set
--# CONFIG_SYN_COOKIES is not set
--# CONFIG_INET_AH is not set
--# CONFIG_INET_ESP is not set
--# CONFIG_INET_IPCOMP is not set
--# CONFIG_INET_TUNNEL is not set
--CONFIG_IP_TCPDIAG=y
--# CONFIG_IP_TCPDIAG_IPV6 is not set
--# CONFIG_IPV6 is not set
--# CONFIG_NETFILTER is not set
--
--#
--# SCTP Configuration (EXPERIMENTAL)
--#
--# CONFIG_IP_SCTP is not set
--# CONFIG_ATM is not set
--# CONFIG_BRIDGE is not set
--# CONFIG_VLAN_8021Q is not set
--# CONFIG_DECNET is not set
--# CONFIG_LLC2 is not set
--# CONFIG_IPX is not set
--# CONFIG_ATALK is not set
--# CONFIG_X25 is not set
--# CONFIG_LAPB is not set
--# CONFIG_NET_DIVERT is not set
--# CONFIG_ECONET is not set
--# CONFIG_WAN_ROUTER is not set
--
--#
--# QoS and/or fair queueing
-+# Network device support
- #
--# CONFIG_NET_SCHED is not set
--# CONFIG_NET_CLS_ROUTE is not set
--
--#
--# Network testing
--#
--# CONFIG_NET_PKTGEN is not set
--# CONFIG_NETPOLL is not set
--# CONFIG_NET_POLL_CONTROLLER is not set
--# CONFIG_HAMRADIO is not set
--# CONFIG_IRDA is not set
--# CONFIG_BT is not set
- CONFIG_NETDEVICES=y
- # CONFIG_DUMMY is not set
- # CONFIG_BONDING is not set
-@@ -357,6 +444,11 @@
- # CONFIG_ARCNET is not set
-
- #
-+# PHY device support
-+#
-+# CONFIG_PHYLIB is not set
-+
-+#
- # Ethernet (10 or 100Mbit)
- #
- CONFIG_NET_ETHERNET=y
-@@ -364,6 +456,7 @@
- # CONFIG_STNIC is not set
- # CONFIG_HAPPYMEAL is not set
- # CONFIG_SUNGEM is not set
-+# CONFIG_CASSINI is not set
- # CONFIG_NET_VENDOR_3COM is not set
- # CONFIG_SMC91X is not set
-
-@@ -372,6 +465,7 @@
- #
- # CONFIG_NET_TULIP is not set
- # CONFIG_HP100 is not set
-+# CONFIG_NE2000 is not set
- CONFIG_NET_PCI=y
- # CONFIG_PCNET32 is not set
- # CONFIG_AMD8111_ETH is not set
-@@ -406,13 +500,17 @@
- # CONFIG_HAMACHI is not set
- # CONFIG_YELLOWFIN is not set
- # CONFIG_R8169 is not set
-+# CONFIG_SIS190 is not set
-+# CONFIG_SKGE is not set
- # CONFIG_SK98LIN is not set
- # CONFIG_VIA_VELOCITY is not set
- # CONFIG_TIGON3 is not set
-+# CONFIG_BNX2 is not set
-
- #
- # Ethernet (10000 Mbit)
- #
-+# CONFIG_CHELSIO_T1 is not set
- # CONFIG_IXGB is not set
- # CONFIG_S2IO is not set
-
-@@ -437,6 +535,7 @@
- CONFIG_HERMES=m
- # CONFIG_PLX_HERMES is not set
- # CONFIG_TMD_HERMES is not set
-+# CONFIG_NORTEL_HERMES is not set
- # CONFIG_PCI_HERMES is not set
- # CONFIG_ATMEL is not set
-
-@@ -444,6 +543,7 @@
- # Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
- #
- # CONFIG_PRISM54 is not set
-+# CONFIG_HOSTAP is not set
- CONFIG_NET_WIRELESS=y
-
- #
-@@ -456,6 +556,8 @@
- # CONFIG_SLIP 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
-
- #
- # ISDN subsystem
-@@ -473,20 +575,10 @@
- # CONFIG_INPUT is not set
-
- #
--# Userland interfaces
--#
--
--#
--# Input I/O drivers
-+# Hardware I/O ports
- #
--# CONFIG_GAMEPORT is not set
--CONFIG_SOUND_GAMEPORT=y
- # CONFIG_SERIO is not set
--# CONFIG_SERIO_I8042 is not set
--
--#
--# Input Device Drivers
--#
-+# CONFIG_GAMEPORT is not set
-
- #
- # Character devices
-@@ -503,6 +595,7 @@
- # Non-8250 serial port support
- #
- # CONFIG_SERIAL_SH_SCI is not set
-+# CONFIG_SERIAL_JSM is not set
- # CONFIG_UNIX98_PTYS is not set
- CONFIG_LEGACY_PTYS=y
- CONFIG_LEGACY_PTY_COUNT=256
-@@ -517,6 +610,7 @@
- #
- # CONFIG_WATCHDOG is not set
- # CONFIG_RTC is not set
-+CONFIG_RTC_9701JE=y
- # CONFIG_GEN_RTC is not set
- # CONFIG_DTLK is not set
- # CONFIG_R3964 is not set
-@@ -529,6 +623,12 @@
- # CONFIG_RAW_DRIVER is not set
-
- #
-+# TPM devices
-+#
-+# CONFIG_TCG_TPM is not set
-+# CONFIG_TELCLOCK is not set
-+
-+#
- # I2C support
- #
- # CONFIG_I2C is not set
-@@ -539,10 +639,21 @@
- # CONFIG_W1 is not set
-
- #
-+# Hardware Monitoring support
-+#
-+CONFIG_HWMON=y
-+# CONFIG_HWMON_VID is not set
-+# CONFIG_HWMON_DEBUG_CHIP is not set
-+
-+#
- # Misc devices
- #
-
- #
-+# Multimedia Capabilities Port drivers
-+#
-+
-+#
- # Multimedia devices
- #
- # CONFIG_VIDEO_DEV is not set
-@@ -566,6 +677,8 @@
- # Advanced Linux Sound Architecture
- #
- CONFIG_SND=m
-+CONFIG_SND_AC97_CODEC=m
-+CONFIG_SND_AC97_BUS=m
- CONFIG_SND_TIMER=m
- CONFIG_SND_PCM=m
- CONFIG_SND_HWDEP=m
-@@ -589,7 +702,6 @@
- #
- # PCI devices
- #
--CONFIG_SND_AC97_CODEC=m
- # CONFIG_SND_ALI5451 is not set
- # CONFIG_SND_ATIIXP is not set
- # CONFIG_SND_ATIIXP_MODEM is not set
-@@ -610,9 +722,10 @@
- # CONFIG_SND_RME96 is not set
- # CONFIG_SND_RME9652 is not set
- # CONFIG_SND_HDSP is not set
-+# CONFIG_SND_HDSPM is not set
- # CONFIG_SND_TRIDENT is not set
- CONFIG_SND_YMFPCI=m
--# CONFIG_SND_ALS4000 is not set
-+# CONFIG_SND_AD1889 is not set
- # CONFIG_SND_CMIPCI is not set
- # CONFIG_SND_ENS1370 is not set
- # CONFIG_SND_ENS1371 is not set
-@@ -628,43 +741,29 @@
- # CONFIG_SND_VIA82XX is not set
- # CONFIG_SND_VIA82XX_MODEM is not set
- # CONFIG_SND_VX222 is not set
-+# CONFIG_SND_HDA_INTEL is not set
-
- #
- # Open Sound System
- #
- CONFIG_SOUND_PRIME=m
--# CONFIG_SOUND_BT878 is not set
--CONFIG_SOUND_CMPCI=m
--# CONFIG_SOUND_EMU10K1 is not set
-+# CONFIG_OBSOLETE_OSS_DRIVER is not set
- # CONFIG_SOUND_FUSION is not set
--# CONFIG_SOUND_CS4281 is not set
--# CONFIG_SOUND_ES1370 is not set
--# CONFIG_SOUND_ES1371 is not set
--# CONFIG_SOUND_ESSSOLO1 is not set
--# CONFIG_SOUND_MAESTRO is not set
--# CONFIG_SOUND_MAESTRO3 is not set
- # CONFIG_SOUND_ICH is not set
--# CONFIG_SOUND_SONICVIBES is not set
- # CONFIG_SOUND_TRIDENT is not set
- # CONFIG_SOUND_MSNDCLAS is not set
- # CONFIG_SOUND_MSNDPIN is not set
--# CONFIG_SOUND_VIA82CXXX is not set
--# CONFIG_SOUND_OSS is not set
--# CONFIG_SOUND_ALI5455 is not set
--# CONFIG_SOUND_FORTE is not set
--# CONFIG_SOUND_RME96XX is not set
--# CONFIG_SOUND_AD1980 is not set
- CONFIG_SOUND_VOYAGERGX=m
-
- #
- # USB support
- #
--# CONFIG_USB is not set
- CONFIG_USB_ARCH_HAS_HCD=y
- CONFIG_USB_ARCH_HAS_OHCI=y
-+# CONFIG_USB is not set
-
- #
--# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
-+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
- #
-
- #
-@@ -683,25 +782,29 @@
- # CONFIG_INFINIBAND is not set
-
- #
-+# SN Devices
-+#
-+
-+#
- # File systems
- #
- CONFIG_EXT2_FS=y
- # CONFIG_EXT2_FS_XATTR is not set
-+# CONFIG_EXT2_FS_XIP is not set
- # CONFIG_EXT3_FS is not set
- # CONFIG_JBD is not set
- # CONFIG_REISERFS_FS is not set
- # CONFIG_JFS_FS is not set
--
--#
--# XFS support
--#
-+# CONFIG_FS_POSIX_ACL is not set
- # CONFIG_XFS_FS is not set
- CONFIG_MINIX_FS=y
- # CONFIG_ROMFS_FS is not set
-+CONFIG_INOTIFY=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
-
- #
- # CD-ROM/DVD Filesystems
-@@ -725,11 +828,11 @@
- CONFIG_PROC_FS=y
- CONFIG_PROC_KCORE=y
- CONFIG_SYSFS=y
--# CONFIG_DEVFS_FS is not set
- # CONFIG_TMPFS is not set
- # CONFIG_HUGETLBFS is not set
- # CONFIG_HUGETLB_PAGE is not set
- CONFIG_RAMFS=y
-+# CONFIG_RELAYFS_FS is not set
-
- #
- # Miscellaneous filesystems
-@@ -758,6 +861,7 @@
- # CONFIG_NCP_FS is not set
- # CONFIG_CODA_FS is not set
- # CONFIG_AFS_FS is not set
-+# CONFIG_9P_FS is not set
-
- #
- # Partition Types
-@@ -818,7 +922,9 @@
- #
- # Kernel hacking
- #
-+# CONFIG_PRINTK_TIME is not set
- # CONFIG_DEBUG_KERNEL is not set
-+CONFIG_LOG_BUF_SHIFT=14
- # CONFIG_FRAME_POINTER is not set
- # CONFIG_SH_STANDARD_BIOS is not set
- # CONFIG_EARLY_SCIF_CONSOLE is not set
-@@ -843,5 +949,6 @@
- # Library routines
- #
- # CONFIG_CRC_CCITT is not set
-+# CONFIG_CRC16 is not set
- CONFIG_CRC32=y
- # CONFIG_LIBCRC32C is not set
-diff -ruN linux-2.6.17-vanilla/arch/sh/configs/se7300_defconfig linux-2.6.17/arch/sh/configs/se7300_defconfig
---- linux-2.6.17-vanilla/arch/sh/configs/se7300_defconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/configs/se7300_defconfig 2006-07-12 16:54:21.000000000 +0000
-@@ -1,7 +1,7 @@
- #
- # Automatically generated make config: don't edit
--# Linux kernel version: 2.6.11-sh
--# Wed Mar 2 15:09:43 2005
-+# Linux kernel version: 2.6.15-sh
-+# Wed Jan 4 19:07:24 2006
- #
- CONFIG_SUPERH=y
- CONFIG_UID16=y
-@@ -16,30 +16,35 @@
- CONFIG_EXPERIMENTAL=y
- CONFIG_CLEAN_COMPILE=y
- CONFIG_BROKEN_ON_SMP=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-
- #
- # General setup
- #
- CONFIG_LOCALVERSION=""
-+CONFIG_LOCALVERSION_AUTO=y
- # CONFIG_SWAP is not set
- # CONFIG_SYSVIPC is not set
- # CONFIG_BSD_PROCESS_ACCT is not set
- CONFIG_SYSCTL=y
--# CONFIG_AUDIT is not set
--CONFIG_LOG_BUF_SHIFT=14
- # CONFIG_HOTPLUG is not set
- # CONFIG_IKCONFIG is not set
-+CONFIG_INITRAMFS_SOURCE=""
-+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
- CONFIG_EMBEDDED=y
- # CONFIG_KALLSYMS is not set
-+CONFIG_PRINTK=y
-+CONFIG_BUG=y
-+CONFIG_BASE_FULL=y
- # CONFIG_FUTEX is not set
- # CONFIG_EPOLL is not set
--# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
- CONFIG_SHMEM=y
- CONFIG_CC_ALIGN_FUNCTIONS=0
- CONFIG_CC_ALIGN_LABELS=0
- CONFIG_CC_ALIGN_LOOPS=0
- CONFIG_CC_ALIGN_JUMPS=0
- # CONFIG_TINY_SHMEM is not set
-+CONFIG_BASE_SMALL=0
-
- #
- # Loadable module support
-@@ -47,6 +52,24 @@
- # CONFIG_MODULES is not set
-
- #
-+# Block layer
-+#
-+# CONFIG_LBD is not set
-+
-+#
-+# IO Schedulers
-+#
-+CONFIG_IOSCHED_NOOP=y
-+# CONFIG_IOSCHED_AS is not set
-+# CONFIG_IOSCHED_DEADLINE is not set
-+# CONFIG_IOSCHED_CFQ is not set
-+# CONFIG_DEFAULT_AS is not set
-+# CONFIG_DEFAULT_DEADLINE is not set
-+# CONFIG_DEFAULT_CFQ is not set
-+CONFIG_DEFAULT_NOOP=y
-+CONFIG_DEFAULT_IOSCHED="noop"
-+
-+#
- # System type
- #
- # CONFIG_SH_SOLUTION_ENGINE is not set
-@@ -56,9 +79,7 @@
- # CONFIG_SH_7751_SYSTEMH is not set
- # CONFIG_SH_STB1_HARP is not set
- # CONFIG_SH_STB1_OVERDRIVE is not set
--# CONFIG_SH_HP620 is not set
--# CONFIG_SH_HP680 is not set
--# CONFIG_SH_HP690 is not set
-+# CONFIG_SH_HP6XX is not set
- # CONFIG_SH_CQREEK is not set
- # CONFIG_SH_DMIDA is not set
- # CONFIG_SH_EC3104 is not set
-@@ -75,40 +96,88 @@
- # CONFIG_SH_RTS7751R2D is not set
- # CONFIG_SH_EDOSK7705 is not set
- # CONFIG_SH_SH4202_MICRODEV is not set
-+# CONFIG_SH_LANDISK is not set
-+# CONFIG_SH_TITAN is not set
- # CONFIG_SH_UNKNOWN is not set
--# CONFIG_CPU_SH2 is not set
-+
-+#
-+# Processor selection
-+#
- CONFIG_CPU_SH3=y
--# CONFIG_CPU_SH4 is not set
-+
-+#
-+# SH-2 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7604 is not set
-+
-+#
-+# SH-3 Processor Support
-+#
- CONFIG_CPU_SUBTYPE_SH7300=y
- # CONFIG_CPU_SUBTYPE_SH7705 is not set
- # CONFIG_CPU_SUBTYPE_SH7707 is not set
- # CONFIG_CPU_SUBTYPE_SH7708 is not set
- # CONFIG_CPU_SUBTYPE_SH7709 is not set
-+
-+#
-+# SH-4 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7750 is not set
-+# CONFIG_CPU_SUBTYPE_SH7091 is not set
-+# CONFIG_CPU_SUBTYPE_SH7750R is not set
-+# CONFIG_CPU_SUBTYPE_SH7750S is not set
- # CONFIG_CPU_SUBTYPE_SH7751 is not set
-+# CONFIG_CPU_SUBTYPE_SH7751R is not set
- # CONFIG_CPU_SUBTYPE_SH7760 is not set
--# CONFIG_CPU_SUBTYPE_SH73180 is not set
-+# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+
-+#
-+# ST40 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_ST40STB1 is not set
- # CONFIG_CPU_SUBTYPE_ST40GX1 is not set
--# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+
-+#
-+# SH-4A Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_SH73180 is not set
-+# CONFIG_CPU_SUBTYPE_SH7770 is not set
-+# CONFIG_CPU_SUBTYPE_SH7780 is not set
-+
-+#
-+# Memory management options
-+#
- CONFIG_MMU=y
--CONFIG_CMDLINE_BOOL=y
--CONFIG_CMDLINE="console=ttySC0,38400 root=/dev/ram0"
-+CONFIG_SELECT_MEMORY_MODEL=y
-+CONFIG_FLATMEM_MANUAL=y
-+# CONFIG_DISCONTIGMEM_MANUAL is not set
-+# CONFIG_SPARSEMEM_MANUAL is not set
-+CONFIG_FLATMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+# CONFIG_SPARSEMEM_STATIC is not set
-+CONFIG_SPLIT_PTLOCK_CPUS=4
-+
-+#
-+# Cache configuration
-+#
-+# CONFIG_SH_DIRECT_MAPPED is not set
-+# CONFIG_SH_WRITETHROUGH is not set
-+# CONFIG_SH_OCRAM is not set
- CONFIG_MEMORY_START=0x0c000000
- CONFIG_MEMORY_SIZE=0x04000000
--# CONFIG_MEMORY_OVERRIDE is not set
-+
-+#
-+# Processor features
-+#
-+CONFIG_CPU_LITTLE_ENDIAN=y
- CONFIG_SH_DSP=y
- # CONFIG_SH_ADC is not set
--CONFIG_ZERO_PAGE_OFFSET=0x00001000
--CONFIG_BOOT_LINK_OFFSET=0x00210000
--CONFIG_CPU_LITTLE_ENDIAN=y
--# CONFIG_PREEMPT is not set
--# CONFIG_UBC_WAKEUP is not set
--# CONFIG_SH_WRITETHROUGH is not set
--# CONFIG_SH_OCRAM is not set
--# CONFIG_SMP is not set
--# CONFIG_SH_PCLK_CALC is not set
-+
-+#
-+# Timer support
-+#
-+CONFIG_SH_TMU=y
-+CONFIG_SH_PCLK_FREQ_BOOL=y
- CONFIG_SH_PCLK_FREQ=33333333
-
- #
-@@ -128,18 +197,30 @@
- CONFIG_HEARTBEAT=y
-
- #
--# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
-+# Kernel features
- #
--# CONFIG_PCI is not set
-+# CONFIG_KEXEC is not set
-+# CONFIG_PREEMPT is not set
-+# CONFIG_SMP is not set
-
- #
--# PCCARD (PCMCIA/CardBus) support
-+# Boot options
- #
--# CONFIG_PCCARD is not set
-+CONFIG_ZERO_PAGE_OFFSET=0x00001000
-+CONFIG_BOOT_LINK_OFFSET=0x00210000
-+# CONFIG_UBC_WAKEUP is not set
-+CONFIG_CMDLINE_BOOL=y
-+CONFIG_CMDLINE="console=ttySC0,38400 root=/dev/ram0"
-+
-+#
-+# Bus options
-+#
-+# CONFIG_PCI is not set
-
- #
--# PC-card bridges
-+# PCCARD (PCMCIA/CardBus) support
- #
-+# CONFIG_PCCARD is not set
-
- #
- # PCI Hotplug Support
-@@ -153,10 +234,9 @@
- # CONFIG_BINFMT_MISC is not set
-
- #
--# SH initrd options
-+# Networking
- #
--CONFIG_EMBEDDED_RAMDISK=y
--CONFIG_EMBEDDED_RAMDISK_IMAGE="ramdisk.gz"
-+# CONFIG_NET is not set
-
- #
- # Device Drivers
-@@ -170,6 +250,10 @@
- # CONFIG_FW_LOADER is not set
-
- #
-+# Connector - unified userspace <-> kernelspace linker
-+#
-+
-+#
- # Memory Technology Devices (MTD)
- #
- # CONFIG_MTD is not set
-@@ -186,26 +270,15 @@
- #
- # Block devices
- #
--# CONFIG_BLK_DEV_FD is not set
- # CONFIG_BLK_DEV_COW_COMMON is not set
- # CONFIG_BLK_DEV_LOOP is not set
- CONFIG_BLK_DEV_RAM=y
- CONFIG_BLK_DEV_RAM_COUNT=16
- CONFIG_BLK_DEV_RAM_SIZE=4096
- CONFIG_BLK_DEV_INITRD=y
--CONFIG_INITRAMFS_SOURCE=""
--# CONFIG_LBD is not set
- # CONFIG_CDROM_PKTCDVD is not set
-
- #
--# IO Schedulers
--#
--CONFIG_IOSCHED_NOOP=y
--# CONFIG_IOSCHED_AS is not set
--# CONFIG_IOSCHED_DEADLINE is not set
--# CONFIG_IOSCHED_CFQ is not set
--
--#
- # ATA/ATAPI/MFM/RLL support
- #
- # CONFIG_IDE is not set
-@@ -213,6 +286,7 @@
- #
- # SCSI device support
- #
-+# CONFIG_RAID_ATTRS is not set
- # CONFIG_SCSI is not set
-
- #
-@@ -223,6 +297,7 @@
- #
- # Fusion MPT device support
- #
-+# CONFIG_FUSION is not set
-
- #
- # IEEE 1394 (FireWire) support
-@@ -233,9 +308,8 @@
- #
-
- #
--# Networking support
-+# Network device support
- #
--# CONFIG_NET is not set
- # CONFIG_NETPOLL is not set
- # CONFIG_NET_POLL_CONTROLLER is not set
-
-@@ -266,18 +340,6 @@
- # CONFIG_INPUT_EVBUG is not set
-
- #
--# Input I/O drivers
--#
--# CONFIG_GAMEPORT is not set
--CONFIG_SOUND_GAMEPORT=y
--CONFIG_SERIO=y
--# CONFIG_SERIO_I8042 is not set
--# CONFIG_SERIO_SERPORT is not set
--# CONFIG_SERIO_CT82C710 is not set
--# CONFIG_SERIO_LIBPS2 is not set
--# CONFIG_SERIO_RAW is not set
--
--#
- # Input Device Drivers
- #
- # CONFIG_INPUT_KEYBOARD is not set
-@@ -287,6 +349,16 @@
- # CONFIG_INPUT_MISC is not set
-
- #
-+# Hardware I/O ports
-+#
-+CONFIG_SERIO=y
-+# CONFIG_SERIO_I8042 is not set
-+# CONFIG_SERIO_SERPORT is not set
-+# CONFIG_SERIO_LIBPS2 is not set
-+# CONFIG_SERIO_RAW is not set
-+# CONFIG_GAMEPORT is not set
-+
-+#
- # Character devices
- #
- # CONFIG_VT is not set
-@@ -336,10 +408,15 @@
- #
- # Ftape, the floppy tape device driver
- #
--# CONFIG_DRM is not set
- # CONFIG_RAW_DRIVER is not set
-
- #
-+# TPM devices
-+#
-+# CONFIG_TCG_TPM is not set
-+# CONFIG_TELCLOCK is not set
-+
-+#
- # I2C support
- #
- # CONFIG_I2C is not set
-@@ -350,10 +427,21 @@
- # CONFIG_W1 is not set
-
- #
-+# Hardware Monitoring support
-+#
-+CONFIG_HWMON=y
-+# CONFIG_HWMON_VID is not set
-+# CONFIG_HWMON_DEBUG_CHIP is not set
-+
-+#
- # Misc devices
- #
-
- #
-+# Multimedia Capabilities Port drivers
-+#
-+
-+#
- # Multimedia devices
- #
- # CONFIG_VIDEO_DEV is not set
-@@ -379,7 +467,7 @@
- # CONFIG_USB_ARCH_HAS_OHCI is not set
-
- #
--# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
-+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
- #
-
- #
-@@ -395,28 +483,31 @@
- #
- # InfiniBand support
- #
--# CONFIG_INFINIBAND is not set
-+
-+#
-+# SN Devices
-+#
-
- #
- # File systems
- #
- CONFIG_EXT2_FS=y
- # CONFIG_EXT2_FS_XATTR is not set
-+# CONFIG_EXT2_FS_XIP is not set
- # CONFIG_EXT3_FS is not set
- # CONFIG_JBD is not set
- # CONFIG_REISERFS_FS is not set
- # CONFIG_JFS_FS is not set
--
--#
--# XFS support
--#
-+# CONFIG_FS_POSIX_ACL is not set
- # CONFIG_XFS_FS is not set
- # CONFIG_MINIX_FS is not set
- # CONFIG_ROMFS_FS is not set
-+CONFIG_INOTIFY=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
-
- #
- # CD-ROM/DVD Filesystems
-@@ -437,13 +528,11 @@
- CONFIG_PROC_FS=y
- CONFIG_PROC_KCORE=y
- CONFIG_SYSFS=y
--CONFIG_DEVFS_FS=y
--CONFIG_DEVFS_MOUNT=y
--# CONFIG_DEVFS_DEBUG is not set
- # CONFIG_TMPFS is not set
- # CONFIG_HUGETLBFS is not set
- # CONFIG_HUGETLB_PAGE is not set
- CONFIG_RAMFS=y
-+# CONFIG_RELAYFS_FS is not set
-
- #
- # Miscellaneous filesystems
-@@ -481,7 +570,9 @@
- #
- # Kernel hacking
- #
-+# CONFIG_PRINTK_TIME is not set
- # CONFIG_DEBUG_KERNEL is not set
-+CONFIG_LOG_BUF_SHIFT=14
- # CONFIG_FRAME_POINTER is not set
- CONFIG_SH_STANDARD_BIOS=y
- CONFIG_EARLY_PRINTK=y
-@@ -527,5 +618,6 @@
- # Library routines
- #
- # CONFIG_CRC_CCITT is not set
-+# CONFIG_CRC16 is not set
- CONFIG_CRC32=y
- # CONFIG_LIBCRC32C is not set
-diff -ruN linux-2.6.17-vanilla/arch/sh/configs/se73180_defconfig linux-2.6.17/arch/sh/configs/se73180_defconfig
---- linux-2.6.17-vanilla/arch/sh/configs/se73180_defconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/configs/se73180_defconfig 2006-07-12 16:54:21.000000000 +0000
-@@ -1,7 +1,7 @@
- #
- # Automatically generated make config: don't edit
--# Linux kernel version: 2.6.11-sh
--# Wed Mar 2 15:09:44 2005
-+# Linux kernel version: 2.6.15-sh
-+# Sun Jan 8 13:54:18 2006
- #
- CONFIG_SUPERH=y
- CONFIG_UID16=y
-@@ -16,30 +16,35 @@
- CONFIG_EXPERIMENTAL=y
- CONFIG_CLEAN_COMPILE=y
- CONFIG_BROKEN_ON_SMP=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-
- #
- # General setup
- #
- CONFIG_LOCALVERSION=""
-+CONFIG_LOCALVERSION_AUTO=y
- CONFIG_SWAP=y
- # CONFIG_SYSVIPC is not set
- # CONFIG_BSD_PROCESS_ACCT is not set
- # CONFIG_SYSCTL is not set
--# CONFIG_AUDIT is not set
--CONFIG_LOG_BUF_SHIFT=14
- # CONFIG_HOTPLUG is not set
- # CONFIG_IKCONFIG is not set
-+CONFIG_INITRAMFS_SOURCE=""
-+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
- CONFIG_EMBEDDED=y
- # CONFIG_KALLSYMS is not set
-+CONFIG_PRINTK=y
-+CONFIG_BUG=y
-+CONFIG_BASE_FULL=y
- # CONFIG_FUTEX is not set
- # CONFIG_EPOLL is not set
--# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
- CONFIG_SHMEM=y
- CONFIG_CC_ALIGN_FUNCTIONS=0
- CONFIG_CC_ALIGN_LABELS=0
- CONFIG_CC_ALIGN_LOOPS=0
- CONFIG_CC_ALIGN_JUMPS=0
- # CONFIG_TINY_SHMEM is not set
-+CONFIG_BASE_SMALL=0
-
- #
- # Loadable module support
-@@ -52,6 +57,24 @@
- # CONFIG_KMOD is not set
-
- #
-+# Block layer
-+#
-+# CONFIG_LBD is not set
-+
-+#
-+# IO Schedulers
-+#
-+CONFIG_IOSCHED_NOOP=y
-+# CONFIG_IOSCHED_AS is not set
-+# CONFIG_IOSCHED_DEADLINE is not set
-+# CONFIG_IOSCHED_CFQ is not set
-+# CONFIG_DEFAULT_AS is not set
-+# CONFIG_DEFAULT_DEADLINE is not set
-+# CONFIG_DEFAULT_CFQ is not set
-+CONFIG_DEFAULT_NOOP=y
-+CONFIG_DEFAULT_IOSCHED="noop"
-+
-+#
- # System type
- #
- # CONFIG_SH_SOLUTION_ENGINE is not set
-@@ -61,9 +84,7 @@
- # CONFIG_SH_7751_SYSTEMH is not set
- # CONFIG_SH_STB1_HARP is not set
- # CONFIG_SH_STB1_OVERDRIVE is not set
--# CONFIG_SH_HP620 is not set
--# CONFIG_SH_HP680 is not set
--# CONFIG_SH_HP690 is not set
-+# CONFIG_SH_HP6XX is not set
- # CONFIG_SH_CQREEK is not set
- # CONFIG_SH_DMIDA is not set
- # CONFIG_SH_EC3104 is not set
-@@ -78,42 +99,95 @@
- # CONFIG_SH_SECUREEDGE5410 is not set
- # CONFIG_SH_HS7751RVOIP is not set
- # CONFIG_SH_RTS7751R2D is not set
-+# CONFIG_SH_R7780RP is not set
- # CONFIG_SH_EDOSK7705 is not set
- # CONFIG_SH_SH4202_MICRODEV is not set
-+# CONFIG_SH_LANDISK is not set
-+# CONFIG_SH_TITAN is not set
- # CONFIG_SH_UNKNOWN is not set
--# CONFIG_CPU_SH2 is not set
--# CONFIG_CPU_SH3 is not set
-+
-+#
-+# Processor selection
-+#
- CONFIG_CPU_SH4=y
-+CONFIG_CPU_SH4A=y
-+
-+#
-+# SH-2 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7604 is not set
-+
-+#
-+# SH-3 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7300 is not set
- # CONFIG_CPU_SUBTYPE_SH7705 is not set
- # CONFIG_CPU_SUBTYPE_SH7707 is not set
- # CONFIG_CPU_SUBTYPE_SH7708 is not set
- # CONFIG_CPU_SUBTYPE_SH7709 is not set
-+
-+#
-+# SH-4 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7750 is not set
-+# CONFIG_CPU_SUBTYPE_SH7091 is not set
-+# CONFIG_CPU_SUBTYPE_SH7750R is not set
-+# CONFIG_CPU_SUBTYPE_SH7750S is not set
- # CONFIG_CPU_SUBTYPE_SH7751 is not set
-+# CONFIG_CPU_SUBTYPE_SH7751R is not set
- # CONFIG_CPU_SUBTYPE_SH7760 is not set
--CONFIG_CPU_SUBTYPE_SH73180=y
-+# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+
-+#
-+# ST40 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_ST40STB1 is not set
- # CONFIG_CPU_SUBTYPE_ST40GX1 is not set
--# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+
-+#
-+# SH-4A Processor Support
-+#
-+CONFIG_CPU_SUBTYPE_SH73180=y
-+# CONFIG_CPU_SUBTYPE_SH7770 is not set
-+# CONFIG_CPU_SUBTYPE_SH7780 is not set
-+
-+#
-+# Memory management options
-+#
- CONFIG_MMU=y
--CONFIG_CMDLINE_BOOL=y
--CONFIG_CMDLINE="console=ttySC0,38400 root=/dev/ram"
-+CONFIG_32BIT=y
-+CONFIG_SELECT_MEMORY_MODEL=y
-+CONFIG_FLATMEM_MANUAL=y
-+# CONFIG_DISCONTIGMEM_MANUAL is not set
-+# CONFIG_SPARSEMEM_MANUAL is not set
-+CONFIG_FLATMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+# CONFIG_SPARSEMEM_STATIC is not set
-+CONFIG_SPLIT_PTLOCK_CPUS=4
-+
-+#
-+# Cache configuration
-+#
-+# CONFIG_SH_DIRECT_MAPPED is not set
-+# CONFIG_SH_WRITETHROUGH is not set
-+# CONFIG_SH_OCRAM is not set
- CONFIG_MEMORY_START=0x0c000000
- CONFIG_MEMORY_SIZE=0x02000000
--# CONFIG_MEMORY_OVERRIDE is not set
--# CONFIG_SH_FPU is not set
--CONFIG_ZERO_PAGE_OFFSET=0x00010000
--CONFIG_BOOT_LINK_OFFSET=0x00800000
-+
-+#
-+# Processor features
-+#
- CONFIG_CPU_LITTLE_ENDIAN=y
--# CONFIG_PREEMPT is not set
--# CONFIG_UBC_WAKEUP is not set
--# CONFIG_SH_WRITETHROUGH is not set
--# CONFIG_SH_OCRAM is not set
-+# CONFIG_SH_FPU is not set
- # CONFIG_SH_STORE_QUEUES is not set
--# CONFIG_SMP is not set
--# CONFIG_SH_PCLK_CALC is not set
-+CONFIG_CPU_HAS_INTEVT=y
-+CONFIG_CPU_HAS_SR_RB=y
-+
-+#
-+# Timer support
-+#
-+CONFIG_SH_TMU=y
-+CONFIG_SH_PCLK_FREQ_BOOL=y
- CONFIG_SH_PCLK_FREQ=27000000
-
- #
-@@ -133,18 +207,30 @@
- CONFIG_HEARTBEAT=y
-
- #
--# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
-+# Kernel features
- #
--# CONFIG_PCI is not set
-+# CONFIG_KEXEC is not set
-+# CONFIG_PREEMPT is not set
-+# CONFIG_SMP is not set
-
- #
--# PCCARD (PCMCIA/CardBus) support
-+# Boot options
- #
--# CONFIG_PCCARD is not set
-+CONFIG_ZERO_PAGE_OFFSET=0x00010000
-+CONFIG_BOOT_LINK_OFFSET=0x00800000
-+# CONFIG_UBC_WAKEUP is not set
-+CONFIG_CMDLINE_BOOL=y
-+CONFIG_CMDLINE="console=ttySC0,38400 root=/dev/ram"
-+
-+#
-+# Bus options
-+#
-+# CONFIG_PCI is not set
-
- #
--# PC-card bridges
-+# PCCARD (PCMCIA/CardBus) support
- #
-+# CONFIG_PCCARD is not set
-
- #
- # PCI Hotplug Support
-@@ -158,10 +244,9 @@
- # CONFIG_BINFMT_MISC is not set
-
- #
--# SH initrd options
-+# Networking
- #
--CONFIG_EMBEDDED_RAMDISK=y
--CONFIG_EMBEDDED_RAMDISK_IMAGE="ramdisk.gz"
-+# CONFIG_NET is not set
-
- #
- # Device Drivers
-@@ -175,6 +260,10 @@
- # CONFIG_FW_LOADER is not set
-
- #
-+# Connector - unified userspace <-> kernelspace linker
-+#
-+
-+#
- # Memory Technology Devices (MTD)
- #
- # CONFIG_MTD is not set
-@@ -191,7 +280,6 @@
- #
- # Block devices
- #
--# CONFIG_BLK_DEV_FD is not set
- # CONFIG_BLK_DEV_COW_COMMON is not set
- CONFIG_BLK_DEV_LOOP=y
- # CONFIG_BLK_DEV_CRYPTOLOOP is not set
-@@ -199,19 +287,9 @@
- CONFIG_BLK_DEV_RAM_COUNT=16
- CONFIG_BLK_DEV_RAM_SIZE=4096
- CONFIG_BLK_DEV_INITRD=y
--CONFIG_INITRAMFS_SOURCE=""
--# CONFIG_LBD is not set
- # CONFIG_CDROM_PKTCDVD is not set
-
- #
--# IO Schedulers
--#
--CONFIG_IOSCHED_NOOP=y
--# CONFIG_IOSCHED_AS is not set
--# CONFIG_IOSCHED_DEADLINE is not set
--# CONFIG_IOSCHED_CFQ is not set
--
--#
- # ATA/ATAPI/MFM/RLL support
- #
- # CONFIG_IDE is not set
-@@ -219,6 +297,7 @@
- #
- # SCSI device support
- #
-+# CONFIG_RAID_ATTRS is not set
- # CONFIG_SCSI is not set
-
- #
-@@ -229,6 +308,7 @@
- #
- # Fusion MPT device support
- #
-+# CONFIG_FUSION is not set
-
- #
- # IEEE 1394 (FireWire) support
-@@ -239,9 +319,8 @@
- #
-
- #
--# Networking support
-+# Network device support
- #
--# CONFIG_NET is not set
- # CONFIG_NETPOLL is not set
- # CONFIG_NET_POLL_CONTROLLER is not set
-
-@@ -260,20 +339,10 @@
- # CONFIG_INPUT is not set
-
- #
--# Userland interfaces
--#
--
--#
--# Input I/O drivers
-+# Hardware I/O ports
- #
--# CONFIG_GAMEPORT is not set
--CONFIG_SOUND_GAMEPORT=y
- # CONFIG_SERIO is not set
--# CONFIG_SERIO_I8042 is not set
--
--#
--# Input Device Drivers
--#
-+# CONFIG_GAMEPORT is not set
-
- #
- # Character devices
-@@ -320,10 +389,15 @@
- #
- # Ftape, the floppy tape device driver
- #
--# CONFIG_DRM is not set
- # CONFIG_RAW_DRIVER is not set
-
- #
-+# TPM devices
-+#
-+# CONFIG_TCG_TPM is not set
-+# CONFIG_TELCLOCK is not set
-+
-+#
- # I2C support
- #
- # CONFIG_I2C is not set
-@@ -334,10 +408,21 @@
- # CONFIG_W1 is not set
-
- #
-+# Hardware Monitoring support
-+#
-+CONFIG_HWMON=y
-+# CONFIG_HWMON_VID is not set
-+# CONFIG_HWMON_DEBUG_CHIP is not set
-+
-+#
- # Misc devices
- #
-
- #
-+# Multimedia Capabilities Port drivers
-+#
-+
-+#
- # Multimedia devices
- #
- # CONFIG_VIDEO_DEV is not set
-@@ -363,7 +448,7 @@
- # CONFIG_USB_ARCH_HAS_OHCI is not set
-
- #
--# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
-+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
- #
-
- #
-@@ -379,28 +464,31 @@
- #
- # InfiniBand support
- #
--# CONFIG_INFINIBAND is not set
-+
-+#
-+# SN Devices
-+#
-
- #
- # File systems
- #
- CONFIG_EXT2_FS=y
- # CONFIG_EXT2_FS_XATTR is not set
-+# CONFIG_EXT2_FS_XIP is not set
- # CONFIG_EXT3_FS is not set
- # CONFIG_JBD is not set
- # CONFIG_REISERFS_FS is not set
- # CONFIG_JFS_FS is not set
--
--#
--# XFS support
--#
-+# CONFIG_FS_POSIX_ACL is not set
- # CONFIG_XFS_FS is not set
- # CONFIG_MINIX_FS is not set
- # CONFIG_ROMFS_FS is not set
-+CONFIG_INOTIFY=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
-
- #
- # CD-ROM/DVD Filesystems
-@@ -421,14 +509,11 @@
- CONFIG_PROC_FS=y
- CONFIG_PROC_KCORE=y
- # CONFIG_SYSFS is not set
--CONFIG_DEVFS_FS=y
--CONFIG_DEVFS_MOUNT=y
--# CONFIG_DEVFS_DEBUG is not set
- CONFIG_TMPFS=y
--# CONFIG_TMPFS_XATTR is not set
- # CONFIG_HUGETLBFS is not set
- # CONFIG_HUGETLB_PAGE is not set
- CONFIG_RAMFS=y
-+# CONFIG_RELAYFS_FS is not set
-
- #
- # Miscellaneous filesystems
-@@ -466,7 +551,9 @@
- #
- # Kernel hacking
- #
-+# CONFIG_PRINTK_TIME is not set
- # CONFIG_DEBUG_KERNEL is not set
-+CONFIG_LOG_BUF_SHIFT=14
- # CONFIG_FRAME_POINTER is not set
- CONFIG_SH_STANDARD_BIOS=y
- # CONFIG_EARLY_SCIF_CONSOLE is not set
-@@ -477,7 +564,6 @@
- # Security options
- #
- # CONFIG_KEYS is not set
--# CONFIG_SECURITY is not set
-
- #
- # Cryptographic options
-@@ -492,5 +578,6 @@
- # Library routines
- #
- # CONFIG_CRC_CCITT is not set
-+# CONFIG_CRC16 is not set
- CONFIG_CRC32=y
- # CONFIG_LIBCRC32C is not set
-diff -ruN linux-2.6.17-vanilla/arch/sh/configs/se7705_defconfig linux-2.6.17/arch/sh/configs/se7705_defconfig
---- linux-2.6.17-vanilla/arch/sh/configs/se7705_defconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/configs/se7705_defconfig 2006-07-12 16:54:21.000000000 +0000
-@@ -1,7 +1,7 @@
- #
- # Automatically generated make config: don't edit
--# Linux kernel version: 2.6.11-sh
--# Wed Mar 2 15:09:45 2005
-+# Linux kernel version: 2.6.15-sh
-+# Wed Jan 4 19:35:13 2006
- #
- CONFIG_SUPERH=y
- CONFIG_UID16=y
-@@ -17,32 +17,38 @@
- CONFIG_CLEAN_COMPILE=y
- CONFIG_BROKEN_ON_SMP=y
- CONFIG_LOCK_KERNEL=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-
- #
- # General setup
- #
- CONFIG_LOCALVERSION=""
-+CONFIG_LOCALVERSION_AUTO=y
- # CONFIG_SWAP is not set
- # CONFIG_SYSVIPC is not set
- # CONFIG_POSIX_MQUEUE is not set
- # CONFIG_BSD_PROCESS_ACCT is not set
- # CONFIG_SYSCTL is not set
- # CONFIG_AUDIT is not set
--CONFIG_LOG_BUF_SHIFT=14
- # CONFIG_HOTPLUG is not set
- CONFIG_KOBJECT_UEVENT=y
- # CONFIG_IKCONFIG is not set
-+CONFIG_INITRAMFS_SOURCE=""
-+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
- CONFIG_EMBEDDED=y
- # CONFIG_KALLSYMS is not set
-+CONFIG_PRINTK=y
-+CONFIG_BUG=y
-+CONFIG_BASE_FULL=y
- CONFIG_FUTEX=y
- CONFIG_EPOLL=y
--# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
- CONFIG_SHMEM=y
- CONFIG_CC_ALIGN_FUNCTIONS=0
- CONFIG_CC_ALIGN_LABELS=0
- CONFIG_CC_ALIGN_LOOPS=0
- CONFIG_CC_ALIGN_JUMPS=0
- # CONFIG_TINY_SHMEM is not set
-+CONFIG_BASE_SMALL=0
-
- #
- # Loadable module support
-@@ -55,6 +61,24 @@
- CONFIG_KMOD=y
-
- #
-+# Block layer
-+#
-+# CONFIG_LBD is not set
-+
-+#
-+# IO Schedulers
-+#
-+CONFIG_IOSCHED_NOOP=y
-+CONFIG_IOSCHED_AS=y
-+# CONFIG_IOSCHED_DEADLINE is not set
-+# CONFIG_IOSCHED_CFQ is not set
-+CONFIG_DEFAULT_AS=y
-+# CONFIG_DEFAULT_DEADLINE is not set
-+# CONFIG_DEFAULT_CFQ is not set
-+# CONFIG_DEFAULT_NOOP is not set
-+CONFIG_DEFAULT_IOSCHED="anticipatory"
-+
-+#
- # System type
- #
- CONFIG_SH_SOLUTION_ENGINE=y
-@@ -64,9 +88,7 @@
- # CONFIG_SH_7751_SYSTEMH is not set
- # CONFIG_SH_STB1_HARP is not set
- # CONFIG_SH_STB1_OVERDRIVE is not set
--# CONFIG_SH_HP620 is not set
--# CONFIG_SH_HP680 is not set
--# CONFIG_SH_HP690 is not set
-+# CONFIG_SH_HP6XX is not set
- # CONFIG_SH_CQREEK is not set
- # CONFIG_SH_DMIDA is not set
- # CONFIG_SH_EC3104 is not set
-@@ -83,44 +105,91 @@
- # CONFIG_SH_RTS7751R2D is not set
- # CONFIG_SH_EDOSK7705 is not set
- # CONFIG_SH_SH4202_MICRODEV is not set
-+# CONFIG_SH_LANDISK is not set
-+# CONFIG_SH_TITAN is not set
- # CONFIG_SH_UNKNOWN is not set
--# CONFIG_CPU_SH2 is not set
-+
-+#
-+# Processor selection
-+#
- CONFIG_CPU_SH3=y
--# CONFIG_CPU_SH4 is not set
-+
-+#
-+# SH-2 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7604 is not set
-+
-+#
-+# SH-3 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7300 is not set
- CONFIG_CPU_SUBTYPE_SH7705=y
- # CONFIG_CPU_SUBTYPE_SH7707 is not set
- # CONFIG_CPU_SUBTYPE_SH7708 is not set
- # CONFIG_CPU_SUBTYPE_SH7709 is not set
-+
-+#
-+# SH-4 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7750 is not set
-+# CONFIG_CPU_SUBTYPE_SH7091 is not set
-+# CONFIG_CPU_SUBTYPE_SH7750R is not set
-+# CONFIG_CPU_SUBTYPE_SH7750S is not set
- # CONFIG_CPU_SUBTYPE_SH7751 is not set
-+# CONFIG_CPU_SUBTYPE_SH7751R is not set
- # CONFIG_CPU_SUBTYPE_SH7760 is not set
--# CONFIG_CPU_SUBTYPE_SH73180 is not set
-+# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+
-+#
-+# ST40 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_ST40STB1 is not set
- # CONFIG_CPU_SUBTYPE_ST40GX1 is not set
--# CONFIG_CPU_SUBTYPE_SH4_202 is not set
--CONFIG_SH7705_CACHE_32KB=y
-+
-+#
-+# SH-4A Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_SH73180 is not set
-+# CONFIG_CPU_SUBTYPE_SH7770 is not set
-+# CONFIG_CPU_SUBTYPE_SH7780 is not set
-+
-+#
-+# Memory management options
-+#
- CONFIG_MMU=y
--# CONFIG_CMDLINE_BOOL is not set
-+CONFIG_SELECT_MEMORY_MODEL=y
-+CONFIG_FLATMEM_MANUAL=y
-+# CONFIG_DISCONTIGMEM_MANUAL is not set
-+# CONFIG_SPARSEMEM_MANUAL is not set
-+CONFIG_FLATMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+# CONFIG_SPARSEMEM_STATIC is not set
-+CONFIG_SPLIT_PTLOCK_CPUS=4
-+
-+#
-+# Cache configuration
-+#
-+CONFIG_SH7705_CACHE_32KB=y
-+# CONFIG_SH_DIRECT_MAPPED is not set
-+# CONFIG_SH_WRITETHROUGH is not set
-+# CONFIG_SH_OCRAM is not set
- CONFIG_MEMORY_START=0x0c000000
- CONFIG_MEMORY_SIZE=0x02000000
--CONFIG_MEMORY_SET=y
--# CONFIG_MEMORY_OVERRIDE is not set
- # CONFIG_CF_ENABLER is not set
-+
-+#
-+# Processor features
-+#
-+CONFIG_CPU_LITTLE_ENDIAN=y
- CONFIG_SH_RTC=y
- # CONFIG_SH_DSP is not set
- # CONFIG_SH_ADC is not set
--CONFIG_ZERO_PAGE_OFFSET=0x00001000
--CONFIG_BOOT_LINK_OFFSET=0x00800000
--CONFIG_CPU_LITTLE_ENDIAN=y
--CONFIG_PREEMPT=y
--# CONFIG_UBC_WAKEUP is not set
--# CONFIG_SH_WRITETHROUGH is not set
--# CONFIG_SH_OCRAM is not set
--# CONFIG_SMP is not set
--CONFIG_SH_PCLK_CALC=y
--CONFIG_SH_PCLK_FREQ=33333333
-+
-+#
-+# Timer support
-+#
-+CONFIG_SH_TMU=y
-+# CONFIG_SH_PCLK_FREQ_BOOL is not set
-
- #
- # CPU Frequency scaling
-@@ -139,18 +208,29 @@
- CONFIG_HEARTBEAT=y
-
- #
--# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
-+# Kernel features
- #
--# CONFIG_PCI is not set
-+# CONFIG_KEXEC is not set
-+CONFIG_PREEMPT=y
-+# CONFIG_SMP is not set
-
- #
--# PCCARD (PCMCIA/CardBus) support
-+# Boot options
- #
--# CONFIG_PCCARD is not set
-+CONFIG_ZERO_PAGE_OFFSET=0x00001000
-+CONFIG_BOOT_LINK_OFFSET=0x00800000
-+# CONFIG_UBC_WAKEUP is not set
-+# CONFIG_CMDLINE_BOOL is not set
-+
-+#
-+# Bus options
-+#
-+# CONFIG_PCI is not set
-
- #
--# PC-card bridges
-+# PCCARD (PCMCIA/CardBus) support
- #
-+# CONFIG_PCCARD is not set
-
- #
- # PCI Hotplug Support
-@@ -164,9 +244,75 @@
- # CONFIG_BINFMT_MISC is not set
-
- #
--# SH initrd options
-+# Networking
- #
--# CONFIG_EMBEDDED_RAMDISK is not set
-+CONFIG_NET=y
-+
-+#
-+# Networking options
-+#
-+CONFIG_PACKET=y
-+# CONFIG_PACKET_MMAP is not set
-+CONFIG_UNIX=y
-+# CONFIG_NET_KEY is not set
-+CONFIG_INET=y
-+# CONFIG_IP_MULTICAST is not set
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+CONFIG_IP_FIB_HASH=y
-+CONFIG_IP_PNP=y
-+CONFIG_IP_PNP_DHCP=y
-+CONFIG_IP_PNP_BOOTP=y
-+CONFIG_IP_PNP_RARP=y
-+# CONFIG_NET_IPIP is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_SYN_COOKIES is not set
-+# CONFIG_INET_AH is not set
-+# CONFIG_INET_ESP is not set
-+# CONFIG_INET_IPCOMP is not set
-+# CONFIG_INET_TUNNEL is not set
-+CONFIG_INET_DIAG=y
-+CONFIG_INET_TCP_DIAG=y
-+# CONFIG_TCP_CONG_ADVANCED is not set
-+CONFIG_TCP_CONG_BIC=y
-+# CONFIG_IPV6 is not set
-+# CONFIG_NETFILTER is not set
-+
-+#
-+# DCCP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_DCCP is not set
-+
-+#
-+# SCTP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_SCTP is not set
-+# CONFIG_ATM is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_VLAN_8021Q is not set
-+# CONFIG_DECNET is not set
-+# CONFIG_LLC2 is not set
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
-+# CONFIG_X25 is not set
-+# CONFIG_LAPB is not set
-+# CONFIG_NET_DIVERT 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
-+
-+#
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+# CONFIG_HAMRADIO is not set
-+# CONFIG_IRDA is not set
-+# CONFIG_BT is not set
-+# CONFIG_IEEE80211 is not set
-
- #
- # Device Drivers
-@@ -180,12 +326,17 @@
- # CONFIG_FW_LOADER is not set
-
- #
-+# Connector - unified userspace <-> kernelspace linker
-+#
-+# CONFIG_CONNECTOR is not set
-+
-+#
- # Memory Technology Devices (MTD)
- #
- CONFIG_MTD=y
- # CONFIG_MTD_DEBUG is not set
--CONFIG_MTD_PARTITIONS=y
- # CONFIG_MTD_CONCAT is not set
-+CONFIG_MTD_PARTITIONS=y
- # CONFIG_MTD_REDBOOT_PARTS is not set
- # CONFIG_MTD_CMDLINE_PARTS is not set
-
-@@ -197,6 +348,7 @@
- # CONFIG_FTL is not set
- # CONFIG_NFTL is not set
- # CONFIG_INFTL is not set
-+# CONFIG_RFD_FTL is not set
-
- #
- # RAM/ROM/Flash chip drivers
-@@ -231,8 +383,7 @@
- # CONFIG_MTD_PHYSMAP is not set
- CONFIG_MTD_SOLUTIONENGINE=y
- CONFIG_MTD_SUPERH_RESERVE=0x300000
--# CONFIG_MTD_MPC1211 is not set
--# CONFIG_MTD_RTS7751R2D is not set
-+# CONFIG_MTD_PLATRAM is not set
-
- #
- # Self-contained MTD device drivers
-@@ -256,6 +407,11 @@
- # CONFIG_MTD_NAND is not set
-
- #
-+# OneNAND Flash Device Drivers
-+#
-+# CONFIG_MTD_ONENAND is not set
-+
-+#
- # Parallel port support
- #
- # CONFIG_PARPORT is not set
-@@ -267,7 +423,6 @@
- #
- # Block devices
- #
--# CONFIG_BLK_DEV_FD is not set
- # CONFIG_BLK_DEV_COW_COMMON is not set
- # CONFIG_BLK_DEV_LOOP is not set
- # CONFIG_BLK_DEV_NBD is not set
-@@ -275,17 +430,7 @@
- CONFIG_BLK_DEV_RAM_COUNT=16
- CONFIG_BLK_DEV_RAM_SIZE=8192
- CONFIG_BLK_DEV_INITRD=y
--CONFIG_INITRAMFS_SOURCE=""
--# CONFIG_LBD is not set
- # CONFIG_CDROM_PKTCDVD is not set
--
--#
--# IO Schedulers
--#
--CONFIG_IOSCHED_NOOP=y
--CONFIG_IOSCHED_AS=y
--# CONFIG_IOSCHED_DEADLINE is not set
--# CONFIG_IOSCHED_CFQ is not set
- # CONFIG_ATA_OVER_ETH is not set
-
- #
-@@ -296,6 +441,7 @@
- #
- # SCSI device support
- #
-+# CONFIG_RAID_ATTRS is not set
- # CONFIG_SCSI is not set
-
- #
-@@ -306,6 +452,7 @@
- #
- # Fusion MPT device support
- #
-+# CONFIG_FUSION is not set
-
- #
- # IEEE 1394 (FireWire) support
-@@ -316,70 +463,8 @@
- #
-
- #
--# Networking support
--#
--CONFIG_NET=y
--
--#
--# Networking options
--#
--CONFIG_PACKET=y
--# CONFIG_PACKET_MMAP is not set
--# CONFIG_NETLINK_DEV is not set
--CONFIG_UNIX=y
--# CONFIG_NET_KEY is not set
--CONFIG_INET=y
--# CONFIG_IP_MULTICAST is not set
--# CONFIG_IP_ADVANCED_ROUTER is not set
--CONFIG_IP_PNP=y
--CONFIG_IP_PNP_DHCP=y
--CONFIG_IP_PNP_BOOTP=y
--CONFIG_IP_PNP_RARP=y
--# CONFIG_NET_IPIP is not set
--# CONFIG_NET_IPGRE is not set
--# CONFIG_ARPD is not set
--# CONFIG_SYN_COOKIES is not set
--# CONFIG_INET_AH is not set
--# CONFIG_INET_ESP is not set
--# CONFIG_INET_IPCOMP is not set
--# CONFIG_INET_TUNNEL is not set
--CONFIG_IP_TCPDIAG=y
--# CONFIG_IP_TCPDIAG_IPV6 is not set
--# CONFIG_IPV6 is not set
--# CONFIG_NETFILTER is not set
--
--#
--# SCTP Configuration (EXPERIMENTAL)
--#
--# CONFIG_IP_SCTP is not set
--# CONFIG_ATM is not set
--# CONFIG_BRIDGE is not set
--# CONFIG_VLAN_8021Q is not set
--# CONFIG_DECNET is not set
--# CONFIG_LLC2 is not set
--# CONFIG_IPX is not set
--# CONFIG_ATALK is not set
--# CONFIG_X25 is not set
--# CONFIG_LAPB is not set
--# CONFIG_NET_DIVERT 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
--# CONFIG_NET_CLS_ROUTE is not set
--
--#
--# Network testing
-+# Network device support
- #
--# CONFIG_NET_PKTGEN is not set
--# CONFIG_NETPOLL is not set
--# CONFIG_NET_POLL_CONTROLLER is not set
--# CONFIG_HAMRADIO is not set
--# CONFIG_IRDA is not set
--# CONFIG_BT is not set
- CONFIG_NETDEVICES=y
- # CONFIG_DUMMY is not set
- # CONFIG_BONDING is not set
-@@ -387,12 +472,18 @@
- # CONFIG_TUN is not set
-
- #
-+# PHY device support
-+#
-+# CONFIG_PHYLIB is not set
-+
-+#
- # Ethernet (10 or 100Mbit)
- #
- CONFIG_NET_ETHERNET=y
- # CONFIG_MII is not set
- CONFIG_STNIC=y
- # CONFIG_SMC91X is not set
-+# CONFIG_NE2000 is not set
-
- #
- # Ethernet (1000 Mbit)
-@@ -422,10 +513,13 @@
- # CONFIG_PPP_SYNC_TTY is not set
- CONFIG_PPP_DEFLATE=y
- # CONFIG_PPP_BSDCOMP is not set
-+# CONFIG_PPP_MPPE is not set
- # CONFIG_PPPOE is not set
- # CONFIG_SLIP 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
-
- #
- # ISDN subsystem
-@@ -452,18 +546,6 @@
- # CONFIG_INPUT_EVBUG is not set
-
- #
--# Input I/O drivers
--#
--# CONFIG_GAMEPORT is not set
--CONFIG_SOUND_GAMEPORT=y
--CONFIG_SERIO=y
--# CONFIG_SERIO_I8042 is not set
--# CONFIG_SERIO_SERPORT is not set
--# CONFIG_SERIO_CT82C710 is not set
--# CONFIG_SERIO_LIBPS2 is not set
--# CONFIG_SERIO_RAW is not set
--
--#
- # Input Device Drivers
- #
- # CONFIG_INPUT_KEYBOARD is not set
-@@ -473,6 +555,16 @@
- # CONFIG_INPUT_MISC is not set
-
- #
-+# Hardware I/O ports
-+#
-+CONFIG_SERIO=y
-+# CONFIG_SERIO_I8042 is not set
-+# CONFIG_SERIO_SERPORT is not set
-+# CONFIG_SERIO_LIBPS2 is not set
-+# CONFIG_SERIO_RAW is not set
-+# CONFIG_GAMEPORT is not set
-+
-+#
- # Character devices
- #
- # CONFIG_VT is not set
-@@ -510,10 +602,15 @@
- #
- # Ftape, the floppy tape device driver
- #
--# CONFIG_DRM is not set
- # CONFIG_RAW_DRIVER is not set
-
- #
-+# TPM devices
-+#
-+# CONFIG_TCG_TPM is not set
-+# CONFIG_TELCLOCK is not set
-+
-+#
- # I2C support
- #
- # CONFIG_I2C is not set
-@@ -524,10 +621,21 @@
- # CONFIG_W1 is not set
-
- #
-+# Hardware Monitoring support
-+#
-+CONFIG_HWMON=y
-+# CONFIG_HWMON_VID is not set
-+# CONFIG_HWMON_DEBUG_CHIP is not set
-+
-+#
- # Misc devices
- #
-
- #
-+# Multimedia Capabilities Port drivers
-+#
-+
-+#
- # Multimedia devices
- #
- # CONFIG_VIDEO_DEV is not set
-@@ -554,7 +662,7 @@
- # CONFIG_USB_ARCH_HAS_OHCI is not set
-
- #
--# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
-+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
- #
-
- #
-@@ -570,28 +678,31 @@
- #
- # InfiniBand support
- #
--# CONFIG_INFINIBAND is not set
-+
-+#
-+# SN Devices
-+#
-
- #
- # File systems
- #
- CONFIG_EXT2_FS=y
- # CONFIG_EXT2_FS_XATTR is not set
-+# CONFIG_EXT2_FS_XIP is not set
- # CONFIG_EXT3_FS is not set
- # CONFIG_JBD is not set
- # CONFIG_REISERFS_FS is not set
- # CONFIG_JFS_FS is not set
--
--#
--# XFS support
--#
-+# CONFIG_FS_POSIX_ACL is not set
- # CONFIG_XFS_FS is not set
- # CONFIG_MINIX_FS is not set
- # CONFIG_ROMFS_FS is not set
-+CONFIG_INOTIFY=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
-
- #
- # CD-ROM/DVD Filesystems
-@@ -612,12 +723,11 @@
- CONFIG_PROC_FS=y
- CONFIG_PROC_KCORE=y
- # CONFIG_SYSFS is not set
--# CONFIG_DEVFS_FS is not set
--# CONFIG_DEVPTS_FS_XATTR is not set
- # CONFIG_TMPFS is not set
- # CONFIG_HUGETLBFS is not set
- # CONFIG_HUGETLB_PAGE is not set
- CONFIG_RAMFS=y
-+# CONFIG_RELAYFS_FS is not set
-
- #
- # Miscellaneous filesystems
-@@ -632,8 +742,8 @@
- # CONFIG_JFFS_FS is not set
- CONFIG_JFFS2_FS=y
- CONFIG_JFFS2_FS_DEBUG=0
--# CONFIG_JFFS2_FS_NAND is not set
--# CONFIG_JFFS2_FS_NOR_ECC is not set
-+CONFIG_JFFS2_FS_WRITEBUFFER=y
-+# CONFIG_JFFS2_SUMMARY is not set
- # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
- CONFIG_JFFS2_ZLIB=y
- CONFIG_JFFS2_RTIME=y
-@@ -655,6 +765,7 @@
- # CONFIG_NFSD is not set
- CONFIG_ROOT_NFS=y
- CONFIG_LOCKD=y
-+CONFIG_NFS_COMMON=y
- CONFIG_SUNRPC=y
- # CONFIG_RPCSEC_GSS_KRB5 is not set
- # CONFIG_RPCSEC_GSS_SPKM3 is not set
-@@ -663,6 +774,7 @@
- # CONFIG_NCP_FS is not set
- # CONFIG_CODA_FS is not set
- # CONFIG_AFS_FS is not set
-+# CONFIG_9P_FS is not set
-
- #
- # Partition Types
-@@ -683,8 +795,9 @@
- #
- # Kernel hacking
- #
-+# CONFIG_PRINTK_TIME is not set
- # CONFIG_DEBUG_KERNEL is not set
--CONFIG_DEBUG_PREEMPT=y
-+CONFIG_LOG_BUF_SHIFT=14
- # CONFIG_FRAME_POINTER is not set
- # CONFIG_SH_STANDARD_BIOS is not set
- # CONFIG_KGDB is not set
-@@ -693,7 +806,6 @@
- # Security options
- #
- # CONFIG_KEYS is not set
--# CONFIG_SECURITY is not set
-
- #
- # Cryptographic options
-@@ -708,6 +820,7 @@
- # Library routines
- #
- CONFIG_CRC_CCITT=y
-+# CONFIG_CRC16 is not set
- CONFIG_CRC32=y
- # CONFIG_LIBCRC32C is not set
- CONFIG_ZLIB_INFLATE=y
-diff -ruN linux-2.6.17-vanilla/arch/sh/configs/se7750_defconfig linux-2.6.17/arch/sh/configs/se7750_defconfig
---- linux-2.6.17-vanilla/arch/sh/configs/se7750_defconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/configs/se7750_defconfig 2006-07-12 16:54:21.000000000 +0000
-@@ -1,7 +1,7 @@
- #
- # Automatically generated make config: don't edit
--# Linux kernel version: 2.6.11-sh
--# Wed Mar 2 15:09:46 2005
-+# Linux kernel version: 2.6.15-sh
-+# Wed Jan 4 19:57:15 2006
- #
- CONFIG_SUPERH=y
- CONFIG_UID16=y
-@@ -16,11 +16,13 @@
- CONFIG_EXPERIMENTAL=y
- CONFIG_CLEAN_COMPILE=y
- CONFIG_BROKEN_ON_SMP=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-
- #
- # General setup
- #
- CONFIG_LOCALVERSION=""
-+CONFIG_LOCALVERSION_AUTO=y
- # CONFIG_SWAP is not set
- CONFIG_SYSVIPC=y
- # CONFIG_POSIX_MQUEUE is not set
-@@ -28,23 +30,27 @@
- # CONFIG_BSD_PROCESS_ACCT_V3 is not set
- CONFIG_SYSCTL=y
- # CONFIG_AUDIT is not set
--CONFIG_LOG_BUF_SHIFT=14
- # CONFIG_HOTPLUG is not set
- CONFIG_KOBJECT_UEVENT=y
- CONFIG_IKCONFIG=y
- CONFIG_IKCONFIG_PROC=y
-+CONFIG_INITRAMFS_SOURCE=""
-+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
- CONFIG_EMBEDDED=y
- CONFIG_KALLSYMS=y
- # CONFIG_KALLSYMS_EXTRA_PASS is not set
-+CONFIG_PRINTK=y
-+CONFIG_BUG=y
-+CONFIG_BASE_FULL=y
- CONFIG_FUTEX=y
- CONFIG_EPOLL=y
--# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
- CONFIG_SHMEM=y
- CONFIG_CC_ALIGN_FUNCTIONS=0
- CONFIG_CC_ALIGN_LABELS=0
- CONFIG_CC_ALIGN_LOOPS=0
- CONFIG_CC_ALIGN_JUMPS=0
- # CONFIG_TINY_SHMEM is not set
-+CONFIG_BASE_SMALL=0
-
- #
- # Loadable module support
-@@ -57,6 +63,24 @@
- CONFIG_KMOD=y
-
- #
-+# Block layer
-+#
-+# CONFIG_LBD is not set
-+
-+#
-+# IO Schedulers
-+#
-+CONFIG_IOSCHED_NOOP=y
-+CONFIG_IOSCHED_AS=y
-+CONFIG_IOSCHED_DEADLINE=y
-+CONFIG_IOSCHED_CFQ=y
-+CONFIG_DEFAULT_AS=y
-+# CONFIG_DEFAULT_DEADLINE is not set
-+# CONFIG_DEFAULT_CFQ is not set
-+# CONFIG_DEFAULT_NOOP is not set
-+CONFIG_DEFAULT_IOSCHED="anticipatory"
-+
-+#
- # System type
- #
- CONFIG_SH_SOLUTION_ENGINE=y
-@@ -66,9 +90,7 @@
- # CONFIG_SH_7751_SYSTEMH is not set
- # CONFIG_SH_STB1_HARP is not set
- # CONFIG_SH_STB1_OVERDRIVE is not set
--# CONFIG_SH_HP620 is not set
--# CONFIG_SH_HP680 is not set
--# CONFIG_SH_HP690 is not set
-+# CONFIG_SH_HP6XX is not set
- # CONFIG_SH_CQREEK is not set
- # CONFIG_SH_DMIDA is not set
- # CONFIG_SH_EC3104 is not set
-@@ -85,47 +107,93 @@
- # CONFIG_SH_RTS7751R2D is not set
- # CONFIG_SH_EDOSK7705 is not set
- # CONFIG_SH_SH4202_MICRODEV is not set
-+# CONFIG_SH_LANDISK is not set
-+# CONFIG_SH_TITAN is not set
- # CONFIG_SH_UNKNOWN is not set
--# CONFIG_CPU_SH2 is not set
--# CONFIG_CPU_SH3 is not set
-+
-+#
-+# Processor selection
-+#
- CONFIG_CPU_SH4=y
-+
-+#
-+# SH-2 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7604 is not set
-+
-+#
-+# SH-3 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7300 is not set
- # CONFIG_CPU_SUBTYPE_SH7705 is not set
- # CONFIG_CPU_SUBTYPE_SH7707 is not set
- # CONFIG_CPU_SUBTYPE_SH7708 is not set
- # CONFIG_CPU_SUBTYPE_SH7709 is not set
-+
-+#
-+# SH-4 Processor Support
-+#
- CONFIG_CPU_SUBTYPE_SH7750=y
-+# CONFIG_CPU_SUBTYPE_SH7091 is not set
-+# CONFIG_CPU_SUBTYPE_SH7750R is not set
-+# CONFIG_CPU_SUBTYPE_SH7750S is not set
- # CONFIG_CPU_SUBTYPE_SH7751 is not set
-+# CONFIG_CPU_SUBTYPE_SH7751R is not set
- # CONFIG_CPU_SUBTYPE_SH7760 is not set
--# CONFIG_CPU_SUBTYPE_SH73180 is not set
-+# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+
-+#
-+# ST40 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_ST40STB1 is not set
- # CONFIG_CPU_SUBTYPE_ST40GX1 is not set
--# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+
-+#
-+# SH-4A Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_SH73180 is not set
-+# CONFIG_CPU_SUBTYPE_SH7770 is not set
-+# CONFIG_CPU_SUBTYPE_SH7780 is not set
-+
-+#
-+# Memory management options
-+#
- CONFIG_MMU=y
--CONFIG_CMDLINE_BOOL=y
--CONFIG_CMDLINE="console=ttySC1,38400 root=/dev/nfs ip=bootp"
-+CONFIG_SELECT_MEMORY_MODEL=y
-+CONFIG_FLATMEM_MANUAL=y
-+# CONFIG_DISCONTIGMEM_MANUAL is not set
-+# CONFIG_SPARSEMEM_MANUAL is not set
-+CONFIG_FLATMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+# CONFIG_SPARSEMEM_STATIC is not set
-+CONFIG_SPLIT_PTLOCK_CPUS=4
-+
-+#
-+# Cache configuration
-+#
-+# CONFIG_SH_DIRECT_MAPPED is not set
-+# CONFIG_SH_WRITETHROUGH is not set
-+# CONFIG_SH_OCRAM is not set
- CONFIG_MEMORY_START=0x0c000000
- CONFIG_MEMORY_SIZE=0x02000000
--CONFIG_MEMORY_SET=y
--# CONFIG_MEMORY_OVERRIDE is not set
- CONFIG_CF_ENABLER=y
- # CONFIG_CF_AREA5 is not set
- CONFIG_CF_AREA6=y
- CONFIG_CF_BASE_ADDR=0xb8000000
-+
-+#
-+# Processor features
-+#
-+CONFIG_CPU_LITTLE_ENDIAN=y
- CONFIG_SH_RTC=y
- CONFIG_SH_FPU=y
--CONFIG_ZERO_PAGE_OFFSET=0x00001000
--CONFIG_BOOT_LINK_OFFSET=0x00800000
--CONFIG_CPU_LITTLE_ENDIAN=y
--# CONFIG_PREEMPT is not set
--# CONFIG_UBC_WAKEUP is not set
--# CONFIG_SH_WRITETHROUGH is not set
--# CONFIG_SH_OCRAM is not set
- # CONFIG_SH_STORE_QUEUES is not set
--# CONFIG_SMP is not set
--CONFIG_SH_PCLK_CALC=y
--CONFIG_SH_PCLK_FREQ=49876504
-+
-+#
-+# Timer support
-+#
-+CONFIG_SH_TMU=y
-+# CONFIG_SH_PCLK_FREQ_BOOL is not set
-
- #
- # CPU Frequency scaling
-@@ -144,18 +212,30 @@
- CONFIG_HEARTBEAT=y
-
- #
--# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
-+# Kernel features
- #
--# CONFIG_PCI is not set
-+# CONFIG_KEXEC is not set
-+# CONFIG_PREEMPT is not set
-+# CONFIG_SMP is not set
-
- #
--# PCCARD (PCMCIA/CardBus) support
-+# Boot options
- #
--# CONFIG_PCCARD is not set
-+CONFIG_ZERO_PAGE_OFFSET=0x00001000
-+CONFIG_BOOT_LINK_OFFSET=0x00800000
-+# CONFIG_UBC_WAKEUP is not set
-+CONFIG_CMDLINE_BOOL=y
-+CONFIG_CMDLINE="console=ttySC1,38400 root=/dev/nfs ip=bootp"
-
- #
--# PC-card bridges
-+# Bus options
- #
-+# CONFIG_PCI is not set
-+
-+#
-+# PCCARD (PCMCIA/CardBus) support
-+#
-+# CONFIG_PCCARD is not set
-
- #
- # PCI Hotplug Support
-@@ -169,6 +249,78 @@
- # CONFIG_BINFMT_MISC is not set
-
- #
-+# Networking
-+#
-+CONFIG_NET=y
-+
-+#
-+# Networking options
-+#
-+CONFIG_PACKET=y
-+# CONFIG_PACKET_MMAP is not set
-+CONFIG_UNIX=y
-+# CONFIG_NET_KEY is not set
-+CONFIG_INET=y
-+CONFIG_IP_MULTICAST=y
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+CONFIG_IP_FIB_HASH=y
-+CONFIG_IP_PNP=y
-+# CONFIG_IP_PNP_DHCP is not set
-+CONFIG_IP_PNP_BOOTP=y
-+# CONFIG_IP_PNP_RARP is not set
-+# CONFIG_NET_IPIP is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_IP_MROUTE is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_SYN_COOKIES is not set
-+# CONFIG_INET_AH is not set
-+# CONFIG_INET_ESP is not set
-+# CONFIG_INET_IPCOMP is not set
-+# CONFIG_INET_TUNNEL is not set
-+CONFIG_INET_DIAG=y
-+CONFIG_INET_TCP_DIAG=y
-+# CONFIG_TCP_CONG_ADVANCED is not set
-+CONFIG_TCP_CONG_BIC=y
-+# CONFIG_IPV6 is not set
-+# CONFIG_NETFILTER is not set
-+
-+#
-+# DCCP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_DCCP is not set
-+
-+#
-+# SCTP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_SCTP is not set
-+# CONFIG_ATM is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_VLAN_8021Q is not set
-+# CONFIG_DECNET is not set
-+# CONFIG_LLC2 is not set
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
-+# CONFIG_X25 is not set
-+# CONFIG_LAPB is not set
-+# CONFIG_NET_DIVERT 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
-+
-+#
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+# CONFIG_HAMRADIO is not set
-+# CONFIG_IRDA is not set
-+# CONFIG_BT is not set
-+# CONFIG_IEEE80211 is not set
-+
-+#
- # Device Drivers
- #
-
-@@ -180,12 +332,17 @@
- # CONFIG_FW_LOADER is not set
-
- #
-+# Connector - unified userspace <-> kernelspace linker
-+#
-+# CONFIG_CONNECTOR is not set
-+
-+#
- # Memory Technology Devices (MTD)
- #
- CONFIG_MTD=y
- # CONFIG_MTD_DEBUG is not set
--CONFIG_MTD_PARTITIONS=y
- # CONFIG_MTD_CONCAT is not set
-+CONFIG_MTD_PARTITIONS=y
- # CONFIG_MTD_REDBOOT_PARTS is not set
- # CONFIG_MTD_CMDLINE_PARTS is not set
-
-@@ -197,6 +354,7 @@
- # CONFIG_FTL is not set
- # CONFIG_NFTL is not set
- # CONFIG_INFTL is not set
-+# CONFIG_RFD_FTL is not set
-
- #
- # RAM/ROM/Flash chip drivers
-@@ -231,8 +389,7 @@
- # CONFIG_MTD_PHYSMAP is not set
- CONFIG_MTD_SOLUTIONENGINE=y
- CONFIG_MTD_SUPERH_RESERVE=0x00010000
--# CONFIG_MTD_MPC1211 is not set
--# CONFIG_MTD_RTS7751R2D is not set
-+# CONFIG_MTD_PLATRAM is not set
-
- #
- # Self-contained MTD device drivers
-@@ -256,6 +413,11 @@
- # CONFIG_MTD_NAND is not set
-
- #
-+# OneNAND Flash Device Drivers
-+#
-+# CONFIG_MTD_ONENAND is not set
-+
-+#
- # Parallel port support
- #
- # CONFIG_PARPORT is not set
-@@ -267,23 +429,12 @@
- #
- # Block devices
- #
--# CONFIG_BLK_DEV_FD is not set
- # CONFIG_BLK_DEV_COW_COMMON is not set
- # CONFIG_BLK_DEV_LOOP is not set
- # CONFIG_BLK_DEV_NBD is not set
- # CONFIG_BLK_DEV_RAM is not set
- CONFIG_BLK_DEV_RAM_COUNT=16
--CONFIG_INITRAMFS_SOURCE=""
--# CONFIG_LBD is not set
- # CONFIG_CDROM_PKTCDVD is not set
--
--#
--# IO Schedulers
--#
--CONFIG_IOSCHED_NOOP=y
--CONFIG_IOSCHED_AS=y
--CONFIG_IOSCHED_DEADLINE=y
--CONFIG_IOSCHED_CFQ=y
- # CONFIG_ATA_OVER_ETH is not set
-
- #
-@@ -294,6 +445,7 @@
- #
- # SCSI device support
- #
-+# CONFIG_RAID_ATTRS is not set
- # CONFIG_SCSI is not set
-
- #
-@@ -304,6 +456,7 @@
- #
- # Fusion MPT device support
- #
-+# CONFIG_FUSION is not set
-
- #
- # IEEE 1394 (FireWire) support
-@@ -314,71 +467,8 @@
- #
-
- #
--# Networking support
--#
--CONFIG_NET=y
--
--#
--# Networking options
--#
--CONFIG_PACKET=y
--# CONFIG_PACKET_MMAP is not set
--# CONFIG_NETLINK_DEV is not set
--CONFIG_UNIX=y
--# CONFIG_NET_KEY is not set
--CONFIG_INET=y
--CONFIG_IP_MULTICAST=y
--# CONFIG_IP_ADVANCED_ROUTER is not set
--CONFIG_IP_PNP=y
--# CONFIG_IP_PNP_DHCP is not set
--CONFIG_IP_PNP_BOOTP=y
--# CONFIG_IP_PNP_RARP is not set
--# CONFIG_NET_IPIP is not set
--# CONFIG_NET_IPGRE is not set
--# CONFIG_IP_MROUTE is not set
--# CONFIG_ARPD is not set
--# CONFIG_SYN_COOKIES is not set
--# CONFIG_INET_AH is not set
--# CONFIG_INET_ESP is not set
--# CONFIG_INET_IPCOMP is not set
--# CONFIG_INET_TUNNEL is not set
--CONFIG_IP_TCPDIAG=y
--# CONFIG_IP_TCPDIAG_IPV6 is not set
--# CONFIG_IPV6 is not set
--# CONFIG_NETFILTER is not set
--
--#
--# SCTP Configuration (EXPERIMENTAL)
--#
--# CONFIG_IP_SCTP is not set
--# CONFIG_ATM is not set
--# CONFIG_BRIDGE is not set
--# CONFIG_VLAN_8021Q is not set
--# CONFIG_DECNET is not set
--# CONFIG_LLC2 is not set
--# CONFIG_IPX is not set
--# CONFIG_ATALK is not set
--# CONFIG_X25 is not set
--# CONFIG_LAPB is not set
--# CONFIG_NET_DIVERT is not set
--# CONFIG_ECONET is not set
--# CONFIG_WAN_ROUTER is not set
--
--#
--# QoS and/or fair queueing
-+# Network device support
- #
--# CONFIG_NET_SCHED is not set
--# CONFIG_NET_CLS_ROUTE is not set
--
--#
--# Network testing
--#
--# CONFIG_NET_PKTGEN is not set
--# CONFIG_NETPOLL is not set
--# CONFIG_NET_POLL_CONTROLLER is not set
--# CONFIG_HAMRADIO is not set
--# CONFIG_IRDA is not set
--# CONFIG_BT is not set
- CONFIG_NETDEVICES=y
- # CONFIG_DUMMY is not set
- # CONFIG_BONDING is not set
-@@ -386,12 +476,18 @@
- # CONFIG_TUN is not set
-
- #
-+# PHY device support
-+#
-+# CONFIG_PHYLIB is not set
-+
-+#
- # Ethernet (10 or 100Mbit)
- #
- CONFIG_NET_ETHERNET=y
- # CONFIG_MII is not set
- CONFIG_STNIC=y
- # CONFIG_SMC91X is not set
-+# CONFIG_NE2000 is not set
-
- #
- # Ethernet (1000 Mbit)
-@@ -418,6 +514,8 @@
- # CONFIG_SLIP 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
-
- #
- # ISDN subsystem
-@@ -435,20 +533,10 @@
- # CONFIG_INPUT is not set
-
- #
--# Userland interfaces
--#
--
--#
--# Input I/O drivers
-+# Hardware I/O ports
- #
--# CONFIG_GAMEPORT is not set
--CONFIG_SOUND_GAMEPORT=y
- # CONFIG_SERIO is not set
--# CONFIG_SERIO_I8042 is not set
--
--#
--# Input Device Drivers
--#
-+# CONFIG_GAMEPORT is not set
-
- #
- # Character devices
-@@ -499,10 +587,15 @@
- #
- # Ftape, the floppy tape device driver
- #
--# CONFIG_DRM is not set
- # CONFIG_RAW_DRIVER is not set
-
- #
-+# TPM devices
-+#
-+# CONFIG_TCG_TPM is not set
-+# CONFIG_TELCLOCK is not set
-+
-+#
- # I2C support
- #
- # CONFIG_I2C is not set
-@@ -513,10 +606,21 @@
- # CONFIG_W1 is not set
-
- #
-+# Hardware Monitoring support
-+#
-+CONFIG_HWMON=y
-+# CONFIG_HWMON_VID is not set
-+# CONFIG_HWMON_DEBUG_CHIP is not set
-+
-+#
- # Misc devices
- #
-
- #
-+# Multimedia Capabilities Port drivers
-+#
-+
-+#
- # Multimedia devices
- #
- # CONFIG_VIDEO_DEV is not set
-@@ -543,7 +647,7 @@
- # CONFIG_USB_ARCH_HAS_OHCI is not set
-
- #
--# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
-+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
- #
-
- #
-@@ -559,7 +663,10 @@
- #
- # InfiniBand support
- #
--# CONFIG_INFINIBAND is not set
-+
-+#
-+# SN Devices
-+#
-
- #
- # File systems
-@@ -569,17 +676,16 @@
- # CONFIG_JBD is not set
- # CONFIG_REISERFS_FS is not set
- # CONFIG_JFS_FS is not set
--
--#
--# XFS support
--#
-+# CONFIG_FS_POSIX_ACL is not set
- # CONFIG_XFS_FS is not set
- # CONFIG_MINIX_FS is not set
- # CONFIG_ROMFS_FS is not set
-+CONFIG_INOTIFY=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
-
- #
- # CD-ROM/DVD Filesystems
-@@ -600,13 +706,11 @@
- CONFIG_PROC_FS=y
- CONFIG_PROC_KCORE=y
- CONFIG_SYSFS=y
--# CONFIG_DEVFS_FS is not set
--# CONFIG_DEVPTS_FS_XATTR is not set
- CONFIG_TMPFS=y
--# CONFIG_TMPFS_XATTR is not set
- # CONFIG_HUGETLBFS is not set
- # CONFIG_HUGETLB_PAGE is not set
- CONFIG_RAMFS=y
-+# CONFIG_RELAYFS_FS is not set
-
- #
- # Miscellaneous filesystems
-@@ -621,8 +725,8 @@
- # CONFIG_JFFS_FS is not set
- CONFIG_JFFS2_FS=y
- CONFIG_JFFS2_FS_DEBUG=0
--# CONFIG_JFFS2_FS_NAND is not set
--# CONFIG_JFFS2_FS_NOR_ECC is not set
-+CONFIG_JFFS2_FS_WRITEBUFFER=y
-+# CONFIG_JFFS2_SUMMARY is not set
- # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
- CONFIG_JFFS2_ZLIB=y
- CONFIG_JFFS2_RTIME=y
-@@ -644,6 +748,7 @@
- # CONFIG_NFSD is not set
- CONFIG_ROOT_NFS=y
- CONFIG_LOCKD=y
-+CONFIG_NFS_COMMON=y
- CONFIG_SUNRPC=y
- # CONFIG_RPCSEC_GSS_KRB5 is not set
- # CONFIG_RPCSEC_GSS_SPKM3 is not set
-@@ -652,6 +757,7 @@
- # CONFIG_NCP_FS is not set
- # CONFIG_CODA_FS is not set
- # CONFIG_AFS_FS is not set
-+# CONFIG_9P_FS is not set
-
- #
- # Partition Types
-@@ -682,7 +788,9 @@
- #
- # Kernel hacking
- #
-+# CONFIG_PRINTK_TIME is not set
- # CONFIG_DEBUG_KERNEL is not set
-+CONFIG_LOG_BUF_SHIFT=14
- # CONFIG_FRAME_POINTER is not set
- # CONFIG_SH_STANDARD_BIOS is not set
- # CONFIG_EARLY_SCIF_CONSOLE is not set
-@@ -707,6 +815,7 @@
- # Library routines
- #
- # CONFIG_CRC_CCITT is not set
-+# CONFIG_CRC16 is not set
- CONFIG_CRC32=y
- # CONFIG_LIBCRC32C is not set
- CONFIG_ZLIB_INFLATE=y
-diff -ruN linux-2.6.17-vanilla/arch/sh/configs/se7751_defconfig linux-2.6.17/arch/sh/configs/se7751_defconfig
---- linux-2.6.17-vanilla/arch/sh/configs/se7751_defconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/configs/se7751_defconfig 2006-07-12 16:54:21.000000000 +0000
-@@ -1,7 +1,7 @@
- #
- # Automatically generated make config: don't edit
--# Linux kernel version: 2.6.11-sh
--# Wed Mar 2 15:09:48 2005
-+# Linux kernel version: 2.6.15-sh
-+# Wed Jan 4 20:02:38 2006
- #
- CONFIG_SUPERH=y
- CONFIG_UID16=y
-@@ -16,11 +16,13 @@
- CONFIG_EXPERIMENTAL=y
- CONFIG_CLEAN_COMPILE=y
- CONFIG_BROKEN_ON_SMP=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-
- #
- # General setup
- #
- CONFIG_LOCALVERSION=""
-+CONFIG_LOCALVERSION_AUTO=y
- CONFIG_SWAP=y
- CONFIG_SYSVIPC=y
- # CONFIG_POSIX_MQUEUE is not set
-@@ -28,22 +30,26 @@
- # CONFIG_BSD_PROCESS_ACCT_V3 is not set
- CONFIG_SYSCTL=y
- # CONFIG_AUDIT is not set
--CONFIG_LOG_BUF_SHIFT=14
- # CONFIG_HOTPLUG is not set
- CONFIG_KOBJECT_UEVENT=y
- # CONFIG_IKCONFIG is not set
-+CONFIG_INITRAMFS_SOURCE=""
-+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
- CONFIG_EMBEDDED=y
- CONFIG_KALLSYMS=y
- # CONFIG_KALLSYMS_EXTRA_PASS is not set
-+CONFIG_PRINTK=y
-+CONFIG_BUG=y
-+CONFIG_BASE_FULL=y
- CONFIG_FUTEX=y
- CONFIG_EPOLL=y
--# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
- CONFIG_SHMEM=y
- CONFIG_CC_ALIGN_FUNCTIONS=0
- CONFIG_CC_ALIGN_LABELS=0
- CONFIG_CC_ALIGN_LOOPS=0
- CONFIG_CC_ALIGN_JUMPS=0
- # CONFIG_TINY_SHMEM is not set
-+CONFIG_BASE_SMALL=0
-
- #
- # Loadable module support
-@@ -56,6 +62,24 @@
- # CONFIG_KMOD is not set
-
- #
-+# Block layer
-+#
-+# CONFIG_LBD is not set
-+
-+#
-+# IO Schedulers
-+#
-+CONFIG_IOSCHED_NOOP=y
-+CONFIG_IOSCHED_AS=y
-+CONFIG_IOSCHED_DEADLINE=y
-+CONFIG_IOSCHED_CFQ=y
-+CONFIG_DEFAULT_AS=y
-+# CONFIG_DEFAULT_DEADLINE is not set
-+# CONFIG_DEFAULT_CFQ is not set
-+# CONFIG_DEFAULT_NOOP is not set
-+CONFIG_DEFAULT_IOSCHED="anticipatory"
-+
-+#
- # System type
- #
- # CONFIG_SH_SOLUTION_ENGINE is not set
-@@ -65,9 +89,7 @@
- # CONFIG_SH_7751_SYSTEMH is not set
- # CONFIG_SH_STB1_HARP is not set
- # CONFIG_SH_STB1_OVERDRIVE is not set
--# CONFIG_SH_HP620 is not set
--# CONFIG_SH_HP680 is not set
--# CONFIG_SH_HP690 is not set
-+# CONFIG_SH_HP6XX is not set
- # CONFIG_SH_CQREEK is not set
- # CONFIG_SH_DMIDA is not set
- # CONFIG_SH_EC3104 is not set
-@@ -84,43 +106,89 @@
- # CONFIG_SH_RTS7751R2D is not set
- # CONFIG_SH_EDOSK7705 is not set
- # CONFIG_SH_SH4202_MICRODEV is not set
-+# CONFIG_SH_LANDISK is not set
-+# CONFIG_SH_TITAN is not set
- # CONFIG_SH_UNKNOWN is not set
--# CONFIG_CPU_SH2 is not set
--# CONFIG_CPU_SH3 is not set
-+
-+#
-+# Processor selection
-+#
- CONFIG_CPU_SH4=y
-+
-+#
-+# SH-2 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7604 is not set
-+
-+#
-+# SH-3 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7300 is not set
- # CONFIG_CPU_SUBTYPE_SH7705 is not set
- # CONFIG_CPU_SUBTYPE_SH7707 is not set
- # CONFIG_CPU_SUBTYPE_SH7708 is not set
- # CONFIG_CPU_SUBTYPE_SH7709 is not set
-+
-+#
-+# SH-4 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7750 is not set
-+# CONFIG_CPU_SUBTYPE_SH7091 is not set
-+# CONFIG_CPU_SUBTYPE_SH7750R is not set
-+# CONFIG_CPU_SUBTYPE_SH7750S is not set
- CONFIG_CPU_SUBTYPE_SH7751=y
-+# CONFIG_CPU_SUBTYPE_SH7751R is not set
- # CONFIG_CPU_SUBTYPE_SH7760 is not set
--# CONFIG_CPU_SUBTYPE_SH73180 is not set
-+# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+
-+#
-+# ST40 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_ST40STB1 is not set
- # CONFIG_CPU_SUBTYPE_ST40GX1 is not set
--# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+
-+#
-+# SH-4A Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_SH73180 is not set
-+# CONFIG_CPU_SUBTYPE_SH7770 is not set
-+# CONFIG_CPU_SUBTYPE_SH7780 is not set
-+
-+#
-+# Memory management options
-+#
- CONFIG_MMU=y
--CONFIG_CMDLINE_BOOL=y
--CONFIG_CMDLINE="console=ttySC1,38400"
-+CONFIG_SELECT_MEMORY_MODEL=y
-+CONFIG_FLATMEM_MANUAL=y
-+# CONFIG_DISCONTIGMEM_MANUAL is not set
-+# CONFIG_SPARSEMEM_MANUAL is not set
-+CONFIG_FLATMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+# CONFIG_SPARSEMEM_STATIC is not set
-+CONFIG_SPLIT_PTLOCK_CPUS=4
-+
-+#
-+# Cache configuration
-+#
-+# CONFIG_SH_DIRECT_MAPPED is not set
-+# CONFIG_SH_WRITETHROUGH is not set
-+# CONFIG_SH_OCRAM is not set
- CONFIG_MEMORY_START=0x0c000000
- CONFIG_MEMORY_SIZE=0x04000000
--CONFIG_MEMORY_SET=y
--# CONFIG_MEMORY_OVERRIDE is not set
-+
-+#
-+# Processor features
-+#
-+CONFIG_CPU_LITTLE_ENDIAN=y
- CONFIG_SH_RTC=y
- CONFIG_SH_FPU=y
--CONFIG_ZERO_PAGE_OFFSET=0x00010000
--CONFIG_BOOT_LINK_OFFSET=0x00800000
--CONFIG_CPU_LITTLE_ENDIAN=y
--# CONFIG_PREEMPT is not set
--# CONFIG_UBC_WAKEUP is not set
--# CONFIG_SH_WRITETHROUGH is not set
--# CONFIG_SH_OCRAM is not set
- # CONFIG_SH_STORE_QUEUES is not set
--# CONFIG_SMP is not set
--CONFIG_SH_PCLK_CALC=y
--CONFIG_SH_PCLK_FREQ=60013568
-+
-+#
-+# Timer support
-+#
-+CONFIG_SH_TMU=y
-+# CONFIG_SH_PCLK_FREQ_BOOL is not set
-
- #
- # CPU Frequency scaling
-@@ -139,14 +207,29 @@
- CONFIG_HEARTBEAT=y
-
- #
--# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
-+# Kernel features
-+#
-+# CONFIG_KEXEC is not set
-+# CONFIG_PREEMPT is not set
-+# CONFIG_SMP is not set
-+
-+#
-+# Boot options
-+#
-+CONFIG_ZERO_PAGE_OFFSET=0x00010000
-+CONFIG_BOOT_LINK_OFFSET=0x00800000
-+# CONFIG_UBC_WAKEUP is not set
-+CONFIG_CMDLINE_BOOL=y
-+CONFIG_CMDLINE="console=ttySC1,38400"
-+
-+#
-+# Bus options
- #
- CONFIG_PCI=y
- # CONFIG_SH_PCIDMA_NONCOHERENT is not set
- CONFIG_PCI_AUTO=y
- CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
- # CONFIG_PCI_LEGACY_PROC is not set
--# CONFIG_PCI_NAMES is not set
-
- #
- # PCCARD (PCMCIA/CardBus) support
-@@ -154,10 +237,6 @@
- # CONFIG_PCCARD is not set
-
- #
--# PC-card bridges
--#
--
--#
- # PCI Hotplug Support
- #
- # CONFIG_HOTPLUG_PCI is not set
-@@ -170,9 +249,96 @@
- # CONFIG_BINFMT_MISC is not set
-
- #
--# SH initrd options
-+# Networking
-+#
-+CONFIG_NET=y
-+
-+#
-+# Networking options
-+#
-+CONFIG_PACKET=y
-+# CONFIG_PACKET_MMAP is not set
-+CONFIG_UNIX=y
-+# CONFIG_NET_KEY is not set
-+CONFIG_INET=y
-+CONFIG_IP_MULTICAST=y
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+CONFIG_IP_FIB_HASH=y
-+CONFIG_IP_PNP=y
-+CONFIG_IP_PNP_DHCP=y
-+CONFIG_IP_PNP_BOOTP=y
-+CONFIG_IP_PNP_RARP=y
-+# CONFIG_NET_IPIP is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_IP_MROUTE is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_SYN_COOKIES is not set
-+# CONFIG_INET_AH is not set
-+# CONFIG_INET_ESP is not set
-+# CONFIG_INET_IPCOMP is not set
-+# CONFIG_INET_TUNNEL is not set
-+CONFIG_INET_DIAG=y
-+CONFIG_INET_TCP_DIAG=y
-+# CONFIG_TCP_CONG_ADVANCED is not set
-+CONFIG_TCP_CONG_BIC=y
-+
-+#
-+# IP: Virtual Server Configuration
-+#
-+# CONFIG_IP_VS is not set
-+# CONFIG_IPV6 is not set
-+CONFIG_NETFILTER=y
-+CONFIG_NETFILTER_DEBUG=y
-+
-+#
-+# Core Netfilter Configuration
-+#
-+# CONFIG_NETFILTER_NETLINK is not set
-+# CONFIG_NF_CONNTRACK is not set
-+
-+#
-+# IP: Netfilter Configuration
-+#
-+# CONFIG_IP_NF_CONNTRACK is not set
-+CONFIG_IP_NF_QUEUE=y
-+# CONFIG_IP_NF_IPTABLES is not set
-+# CONFIG_IP_NF_ARPTABLES is not set
-+
-+#
-+# DCCP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_DCCP is not set
-+
-+#
-+# SCTP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_SCTP is not set
-+# CONFIG_ATM is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_VLAN_8021Q is not set
-+# CONFIG_DECNET is not set
-+# CONFIG_LLC2 is not set
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
-+# CONFIG_X25 is not set
-+# CONFIG_LAPB is not set
-+# CONFIG_NET_DIVERT 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
-+
-+#
-+# Network testing
- #
--# CONFIG_EMBEDDED_RAMDISK is not set
-+# CONFIG_NET_PKTGEN is not set
-+# CONFIG_HAMRADIO is not set
-+# CONFIG_IRDA is not set
-+# CONFIG_BT is not set
-+# CONFIG_IEEE80211 is not set
-
- #
- # Device Drivers
-@@ -186,12 +352,17 @@
- # CONFIG_FW_LOADER is not set
-
- #
-+# Connector - unified userspace <-> kernelspace linker
-+#
-+# CONFIG_CONNECTOR is not set
-+
-+#
- # Memory Technology Devices (MTD)
- #
- CONFIG_MTD=y
- # CONFIG_MTD_DEBUG is not set
--CONFIG_MTD_PARTITIONS=y
- # CONFIG_MTD_CONCAT is not set
-+CONFIG_MTD_PARTITIONS=y
- # CONFIG_MTD_REDBOOT_PARTS is not set
- # CONFIG_MTD_CMDLINE_PARTS is not set
-
-@@ -203,6 +374,7 @@
- # CONFIG_FTL is not set
- # CONFIG_NFTL is not set
- # CONFIG_INFTL is not set
-+# CONFIG_RFD_FTL is not set
-
- #
- # RAM/ROM/Flash chip drivers
-@@ -236,8 +408,7 @@
- # CONFIG_MTD_COMPLEX_MAPPINGS is not set
- # CONFIG_MTD_PHYSMAP is not set
- # CONFIG_MTD_SOLUTIONENGINE is not set
--# CONFIG_MTD_MPC1211 is not set
--# CONFIG_MTD_RTS7751R2D is not set
-+# CONFIG_MTD_PLATRAM is not set
-
- #
- # Self-contained MTD device drivers
-@@ -262,6 +433,11 @@
- # CONFIG_MTD_NAND is not set
-
- #
-+# OneNAND Flash Device Drivers
-+#
-+# CONFIG_MTD_ONENAND is not set
-+
-+#
- # Parallel port support
- #
- # CONFIG_PARPORT is not set
-@@ -273,7 +449,6 @@
- #
- # Block devices
- #
--# CONFIG_BLK_DEV_FD is not set
- # CONFIG_BLK_CPQ_DA is not set
- # CONFIG_BLK_CPQ_CISS_DA is not set
- # CONFIG_BLK_DEV_DAC960 is not set
-@@ -286,17 +461,7 @@
- CONFIG_BLK_DEV_RAM_COUNT=16
- CONFIG_BLK_DEV_RAM_SIZE=4096
- CONFIG_BLK_DEV_INITRD=y
--CONFIG_INITRAMFS_SOURCE=""
--# CONFIG_LBD is not set
- # CONFIG_CDROM_PKTCDVD is not set
--
--#
--# IO Schedulers
--#
--CONFIG_IOSCHED_NOOP=y
--CONFIG_IOSCHED_AS=y
--CONFIG_IOSCHED_DEADLINE=y
--CONFIG_IOSCHED_CFQ=y
- # CONFIG_ATA_OVER_ETH is not set
-
- #
-@@ -307,6 +472,7 @@
- #
- # SCSI device support
- #
-+# CONFIG_RAID_ATTRS is not set
- # CONFIG_SCSI is not set
-
- #
-@@ -317,6 +483,7 @@
- #
- # Fusion MPT device support
- #
-+# CONFIG_FUSION is not set
-
- #
- # IEEE 1394 (FireWire) support
-@@ -329,92 +496,13 @@
- # CONFIG_I2O is not set
-
- #
--# Networking support
--#
--CONFIG_NET=y
--
--#
--# Networking options
--#
--CONFIG_PACKET=y
--# CONFIG_PACKET_MMAP is not set
--CONFIG_NETLINK_DEV=y
--CONFIG_UNIX=y
--# CONFIG_NET_KEY is not set
--CONFIG_INET=y
--CONFIG_IP_MULTICAST=y
--# CONFIG_IP_ADVANCED_ROUTER is not set
--CONFIG_IP_PNP=y
--CONFIG_IP_PNP_DHCP=y
--CONFIG_IP_PNP_BOOTP=y
--CONFIG_IP_PNP_RARP=y
--# CONFIG_NET_IPIP is not set
--# CONFIG_NET_IPGRE is not set
--# CONFIG_IP_MROUTE is not set
--# CONFIG_ARPD is not set
--# CONFIG_SYN_COOKIES is not set
--# CONFIG_INET_AH is not set
--# CONFIG_INET_ESP is not set
--# CONFIG_INET_IPCOMP is not set
--# CONFIG_INET_TUNNEL is not set
--CONFIG_IP_TCPDIAG=y
--# CONFIG_IP_TCPDIAG_IPV6 is not set
--
--#
--# IP: Virtual Server Configuration
--#
--# CONFIG_IP_VS is not set
--# CONFIG_IPV6 is not set
--CONFIG_NETFILTER=y
--CONFIG_NETFILTER_DEBUG=y
--
-+# Network device support
- #
--# IP: Netfilter Configuration
--#
--# CONFIG_IP_NF_CONNTRACK is not set
--# CONFIG_IP_NF_CONNTRACK_MARK is not set
--CONFIG_IP_NF_QUEUE=y
--# CONFIG_IP_NF_IPTABLES is not set
--# CONFIG_IP_NF_ARPTABLES is not set
--
--#
--# SCTP Configuration (EXPERIMENTAL)
--#
--# CONFIG_IP_SCTP is not set
--# CONFIG_ATM is not set
--# CONFIG_BRIDGE is not set
--# CONFIG_VLAN_8021Q is not set
--# CONFIG_DECNET is not set
--# CONFIG_LLC2 is not set
--# CONFIG_IPX is not set
--# CONFIG_ATALK is not set
--# CONFIG_X25 is not set
--# CONFIG_LAPB is not set
--# CONFIG_NET_DIVERT 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
--# CONFIG_NET_CLS_ROUTE is not set
--
--#
--# Network testing
--#
--# CONFIG_NET_PKTGEN is not set
--# CONFIG_NETPOLL is not set
--# CONFIG_NET_POLL_CONTROLLER is not set
--# CONFIG_HAMRADIO is not set
--# CONFIG_IRDA is not set
--# CONFIG_BT is not set
- CONFIG_NETDEVICES=y
- # CONFIG_DUMMY is not set
- # CONFIG_BONDING is not set
- # CONFIG_EQUALIZER is not set
- # CONFIG_TUN is not set
--# CONFIG_ETHERTAP is not set
-
- #
- # ARCnet devices
-@@ -422,6 +510,11 @@
- # CONFIG_ARCNET is not set
-
- #
-+# PHY device support
-+#
-+# CONFIG_PHYLIB is not set
-+
-+#
- # Ethernet (10 or 100Mbit)
- #
- CONFIG_NET_ETHERNET=y
-@@ -429,6 +522,7 @@
- # CONFIG_STNIC is not set
- # CONFIG_HAPPYMEAL is not set
- # CONFIG_SUNGEM is not set
-+# CONFIG_CASSINI is not set
- # CONFIG_NET_VENDOR_3COM is not set
- # CONFIG_SMC91X is not set
-
-@@ -437,6 +531,7 @@
- #
- # CONFIG_NET_TULIP is not set
- # CONFIG_HP100 is not set
-+# CONFIG_NE2000 is not set
- CONFIG_NET_PCI=y
- CONFIG_PCNET32=y
- # CONFIG_AMD8111_ETH is not set
-@@ -467,13 +562,17 @@
- # CONFIG_HAMACHI is not set
- # CONFIG_YELLOWFIN is not set
- # CONFIG_R8169 is not set
-+# CONFIG_SIS190 is not set
-+# CONFIG_SKGE is not set
- # CONFIG_SK98LIN is not set
- # CONFIG_VIA_VELOCITY is not set
- # CONFIG_TIGON3 is not set
-+# CONFIG_BNX2 is not set
-
- #
- # Ethernet (10000 Mbit)
- #
-+# CONFIG_CHELSIO_T1 is not set
- # CONFIG_IXGB is not set
- # CONFIG_S2IO is not set
-
-@@ -497,6 +596,8 @@
- # CONFIG_SLIP 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
-
- #
- # ISDN subsystem
-@@ -514,20 +615,10 @@
- # CONFIG_INPUT is not set
-
- #
--# Userland interfaces
-+# Hardware I/O ports
- #
--
--#
--# Input I/O drivers
--#
--# CONFIG_GAMEPORT is not set
--CONFIG_SOUND_GAMEPORT=y
- # CONFIG_SERIO is not set
--# CONFIG_SERIO_I8042 is not set
--
--#
--# Input Device Drivers
--#
-+# CONFIG_GAMEPORT is not set
-
- #
- # Character devices
-@@ -544,6 +635,7 @@
- # Non-8250 serial port support
- #
- # CONFIG_SERIAL_SH_SCI is not set
-+# CONFIG_SERIAL_JSM is not set
- CONFIG_UNIX98_PTYS=y
- CONFIG_LEGACY_PTYS=y
- CONFIG_LEGACY_PTY_COUNT=256
-@@ -583,6 +675,12 @@
- # CONFIG_RAW_DRIVER is not set
-
- #
-+# TPM devices
-+#
-+# CONFIG_TCG_TPM is not set
-+# CONFIG_TELCLOCK is not set
-+
-+#
- # I2C support
- #
- # CONFIG_I2C is not set
-@@ -593,10 +691,21 @@
- # CONFIG_W1 is not set
-
- #
-+# Hardware Monitoring support
-+#
-+CONFIG_HWMON=y
-+# CONFIG_HWMON_VID is not set
-+# CONFIG_HWMON_DEBUG_CHIP is not set
-+
-+#
- # Misc devices
- #
-
- #
-+# Multimedia Capabilities Port drivers
-+#
-+
-+#
- # Multimedia devices
- #
- # CONFIG_VIDEO_DEV is not set
-@@ -619,12 +728,12 @@
- #
- # USB support
- #
--# CONFIG_USB is not set
- CONFIG_USB_ARCH_HAS_HCD=y
- CONFIG_USB_ARCH_HAS_OHCI=y
-+# CONFIG_USB is not set
-
- #
--# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
-+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
- #
-
- #
-@@ -643,25 +752,29 @@
- # CONFIG_INFINIBAND is not set
-
- #
-+# SN Devices
-+#
-+
-+#
- # File systems
- #
- CONFIG_EXT2_FS=y
- # CONFIG_EXT2_FS_XATTR is not set
-+# CONFIG_EXT2_FS_XIP is not set
- # CONFIG_EXT3_FS is not set
- # CONFIG_JBD is not set
- # CONFIG_REISERFS_FS is not set
- # CONFIG_JFS_FS is not set
--
--#
--# XFS support
--#
-+# CONFIG_FS_POSIX_ACL is not set
- # CONFIG_XFS_FS is not set
- # CONFIG_MINIX_FS is not set
- # CONFIG_ROMFS_FS is not set
-+CONFIG_INOTIFY=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
-
- #
- # CD-ROM/DVD Filesystems
-@@ -682,13 +795,11 @@
- CONFIG_PROC_FS=y
- CONFIG_PROC_KCORE=y
- CONFIG_SYSFS=y
--# CONFIG_DEVFS_FS is not set
--# CONFIG_DEVPTS_FS_XATTR is not set
- CONFIG_TMPFS=y
--# CONFIG_TMPFS_XATTR is not set
- # CONFIG_HUGETLBFS is not set
- # CONFIG_HUGETLB_PAGE is not set
- CONFIG_RAMFS=y
-+# CONFIG_RELAYFS_FS is not set
-
- #
- # Miscellaneous filesystems
-@@ -703,8 +814,8 @@
- # CONFIG_JFFS_FS is not set
- CONFIG_JFFS2_FS=y
- CONFIG_JFFS2_FS_DEBUG=0
--# CONFIG_JFFS2_FS_NAND is not set
--# CONFIG_JFFS2_FS_NOR_ECC is not set
-+CONFIG_JFFS2_FS_WRITEBUFFER=y
-+# CONFIG_JFFS2_SUMMARY is not set
- # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
- CONFIG_JFFS2_ZLIB=y
- CONFIG_JFFS2_RTIME=y
-@@ -726,6 +837,7 @@
- # CONFIG_NCP_FS is not set
- # CONFIG_CODA_FS is not set
- # CONFIG_AFS_FS is not set
-+# CONFIG_9P_FS is not set
-
- #
- # Partition Types
-@@ -746,7 +858,9 @@
- #
- # Kernel hacking
- #
-+# CONFIG_PRINTK_TIME is not set
- # CONFIG_DEBUG_KERNEL is not set
-+CONFIG_LOG_BUF_SHIFT=14
- # CONFIG_FRAME_POINTER is not set
- # CONFIG_SH_STANDARD_BIOS is not set
- # CONFIG_EARLY_SCIF_CONSOLE is not set
-@@ -771,6 +885,7 @@
- # Library routines
- #
- # CONFIG_CRC_CCITT is not set
-+# CONFIG_CRC16 is not set
- CONFIG_CRC32=y
- # CONFIG_LIBCRC32C is not set
- CONFIG_ZLIB_INFLATE=y
-diff -ruN linux-2.6.17-vanilla/arch/sh/configs/sh03_defconfig linux-2.6.17/arch/sh/configs/sh03_defconfig
---- linux-2.6.17-vanilla/arch/sh/configs/sh03_defconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/configs/sh03_defconfig 2006-07-12 16:54:21.000000000 +0000
-@@ -1,7 +1,7 @@
- #
- # Automatically generated make config: don't edit
--# Linux kernel version: 2.6.11-sh
--# Wed Mar 2 15:09:49 2005
-+# Linux kernel version: 2.6.15-sh
-+# Wed Jan 4 20:14:31 2006
- #
- CONFIG_SUPERH=y
- CONFIG_UID16=y
-@@ -18,11 +18,13 @@
- CONFIG_BROKEN=y
- CONFIG_BROKEN_ON_SMP=y
- CONFIG_LOCK_KERNEL=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-
- #
- # General setup
- #
- CONFIG_LOCALVERSION=""
-+CONFIG_LOCALVERSION_AUTO=y
- CONFIG_SWAP=y
- CONFIG_SYSVIPC=y
- CONFIG_POSIX_MQUEUE=y
-@@ -30,22 +32,26 @@
- # CONFIG_BSD_PROCESS_ACCT_V3 is not set
- CONFIG_SYSCTL=y
- # CONFIG_AUDIT is not set
--CONFIG_LOG_BUF_SHIFT=14
- CONFIG_HOTPLUG=y
- CONFIG_KOBJECT_UEVENT=y
- # CONFIG_IKCONFIG is not set
-+CONFIG_INITRAMFS_SOURCE=""
-+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
- # CONFIG_EMBEDDED is not set
- CONFIG_KALLSYMS=y
- # CONFIG_KALLSYMS_EXTRA_PASS is not set
-+CONFIG_PRINTK=y
-+CONFIG_BUG=y
-+CONFIG_BASE_FULL=y
- CONFIG_FUTEX=y
- CONFIG_EPOLL=y
--# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
- CONFIG_SHMEM=y
- CONFIG_CC_ALIGN_FUNCTIONS=0
- CONFIG_CC_ALIGN_LABELS=0
- CONFIG_CC_ALIGN_LOOPS=0
- CONFIG_CC_ALIGN_JUMPS=0
- # CONFIG_TINY_SHMEM is not set
-+CONFIG_BASE_SMALL=0
-
- #
- # Loadable module support
-@@ -59,6 +65,24 @@
- CONFIG_KMOD=y
-
- #
-+# Block layer
-+#
-+# CONFIG_LBD is not set
-+
-+#
-+# IO Schedulers
-+#
-+CONFIG_IOSCHED_NOOP=y
-+CONFIG_IOSCHED_AS=y
-+CONFIG_IOSCHED_DEADLINE=y
-+CONFIG_IOSCHED_CFQ=y
-+CONFIG_DEFAULT_AS=y
-+# CONFIG_DEFAULT_DEADLINE is not set
-+# CONFIG_DEFAULT_CFQ is not set
-+# CONFIG_DEFAULT_NOOP is not set
-+CONFIG_DEFAULT_IOSCHED="anticipatory"
-+
-+#
- # System type
- #
- # CONFIG_SH_SOLUTION_ENGINE is not set
-@@ -68,9 +92,7 @@
- # CONFIG_SH_7751_SYSTEMH is not set
- # CONFIG_SH_STB1_HARP is not set
- # CONFIG_SH_STB1_OVERDRIVE is not set
--# CONFIG_SH_HP620 is not set
--# CONFIG_SH_HP680 is not set
--# CONFIG_SH_HP690 is not set
-+# CONFIG_SH_HP6XX is not set
- # CONFIG_SH_CQREEK is not set
- # CONFIG_SH_DMIDA is not set
- # CONFIG_SH_EC3104 is not set
-@@ -87,47 +109,93 @@
- # CONFIG_SH_RTS7751R2D is not set
- # CONFIG_SH_EDOSK7705 is not set
- # CONFIG_SH_SH4202_MICRODEV is not set
-+# CONFIG_SH_LANDISK is not set
-+# CONFIG_SH_TITAN is not set
- # CONFIG_SH_UNKNOWN is not set
--# CONFIG_CPU_SH2 is not set
--# CONFIG_CPU_SH3 is not set
-+
-+#
-+# Processor selection
-+#
- CONFIG_CPU_SH4=y
-+
-+#
-+# SH-2 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7604 is not set
-+
-+#
-+# SH-3 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7300 is not set
- # CONFIG_CPU_SUBTYPE_SH7705 is not set
- # CONFIG_CPU_SUBTYPE_SH7707 is not set
- # CONFIG_CPU_SUBTYPE_SH7708 is not set
- # CONFIG_CPU_SUBTYPE_SH7709 is not set
-+
-+#
-+# SH-4 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7750 is not set
-+# CONFIG_CPU_SUBTYPE_SH7091 is not set
-+# CONFIG_CPU_SUBTYPE_SH7750R is not set
-+# CONFIG_CPU_SUBTYPE_SH7750S is not set
- CONFIG_CPU_SUBTYPE_SH7751=y
-+# CONFIG_CPU_SUBTYPE_SH7751R is not set
- # CONFIG_CPU_SUBTYPE_SH7760 is not set
--# CONFIG_CPU_SUBTYPE_SH73180 is not set
-+# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+
-+#
-+# ST40 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_ST40STB1 is not set
- # CONFIG_CPU_SUBTYPE_ST40GX1 is not set
--# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+
-+#
-+# SH-4A Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_SH73180 is not set
-+# CONFIG_CPU_SUBTYPE_SH7770 is not set
-+# CONFIG_CPU_SUBTYPE_SH7780 is not set
-+
-+#
-+# Memory management options
-+#
- CONFIG_MMU=y
--CONFIG_CMDLINE_BOOL=y
--CONFIG_CMDLINE="console=ttySC1,115200 mem=64M root=/dev/nfs"
-+CONFIG_SELECT_MEMORY_MODEL=y
-+CONFIG_FLATMEM_MANUAL=y
-+# CONFIG_DISCONTIGMEM_MANUAL is not set
-+# CONFIG_SPARSEMEM_MANUAL is not set
-+CONFIG_FLATMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+# CONFIG_SPARSEMEM_STATIC is not set
-+CONFIG_SPLIT_PTLOCK_CPUS=4
-+
-+#
-+# Cache configuration
-+#
-+# CONFIG_SH_DIRECT_MAPPED is not set
-+# CONFIG_SH_WRITETHROUGH is not set
-+# CONFIG_SH_OCRAM is not set
- CONFIG_MEMORY_START=0x08000000
- CONFIG_MEMORY_SIZE=0x08000000
--CONFIG_MEMORY_SET=y
--# CONFIG_MEMORY_OVERRIDE is not set
- CONFIG_CF_ENABLER=y
- CONFIG_CF_AREA5=y
- # CONFIG_CF_AREA6 is not set
- CONFIG_CF_BASE_ADDR=0xb4000000
-+
-+#
-+# Processor features
-+#
-+CONFIG_CPU_LITTLE_ENDIAN=y
- CONFIG_SH_RTC=y
- CONFIG_SH_FPU=y
--CONFIG_ZERO_PAGE_OFFSET=0x00004000
--CONFIG_BOOT_LINK_OFFSET=0x00800000
--CONFIG_CPU_LITTLE_ENDIAN=y
--CONFIG_PREEMPT=y
--# CONFIG_UBC_WAKEUP is not set
--# CONFIG_SH_WRITETHROUGH is not set
--# CONFIG_SH_OCRAM is not set
- # CONFIG_SH_STORE_QUEUES is not set
--# CONFIG_SMP is not set
--CONFIG_SH_PCLK_CALC=y
--CONFIG_SH_PCLK_FREQ=49876504
-+
-+#
-+# Timer support
-+#
-+CONFIG_SH_TMU=y
-+# CONFIG_SH_PCLK_FREQ_BOOL is not set
-
- #
- # CPU Frequency scaling
-@@ -146,14 +214,29 @@
- CONFIG_HEARTBEAT=y
-
- #
--# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
-+# Kernel features
-+#
-+# CONFIG_KEXEC is not set
-+CONFIG_PREEMPT=y
-+# CONFIG_SMP is not set
-+
-+#
-+# Boot options
-+#
-+CONFIG_ZERO_PAGE_OFFSET=0x00004000
-+CONFIG_BOOT_LINK_OFFSET=0x00800000
-+# CONFIG_UBC_WAKEUP is not set
-+CONFIG_CMDLINE_BOOL=y
-+CONFIG_CMDLINE="console=ttySC1,115200 mem=64M root=/dev/nfs"
-+
-+#
-+# Bus options
- #
- CONFIG_PCI=y
- CONFIG_SH_PCIDMA_NONCOHERENT=y
- CONFIG_PCI_AUTO=y
- CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
- CONFIG_PCI_LEGACY_PROC=y
--CONFIG_PCI_NAMES=y
-
- #
- # PCCARD (PCMCIA/CardBus) support
-@@ -161,10 +244,6 @@
- # CONFIG_PCCARD is not set
-
- #
--# PC-card bridges
--#
--
--#
- # PCI Hotplug Support
- #
- CONFIG_HOTPLUG_PCI=m
-@@ -180,9 +259,78 @@
- CONFIG_BINFMT_MISC=y
-
- #
--# SH initrd options
-+# Networking
-+#
-+CONFIG_NET=y
-+
-+#
-+# Networking options
-+#
-+CONFIG_PACKET=y
-+# CONFIG_PACKET_MMAP is not set
-+CONFIG_UNIX=y
-+CONFIG_XFRM=y
-+# CONFIG_XFRM_USER is not set
-+CONFIG_NET_KEY=y
-+CONFIG_INET=y
-+CONFIG_IP_MULTICAST=y
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+CONFIG_IP_FIB_HASH=y
-+CONFIG_IP_PNP=y
-+CONFIG_IP_PNP_DHCP=y
-+CONFIG_IP_PNP_BOOTP=y
-+CONFIG_IP_PNP_RARP=y
-+# CONFIG_NET_IPIP is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_IP_MROUTE is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_SYN_COOKIES is not set
-+# CONFIG_INET_AH is not set
-+# CONFIG_INET_ESP is not set
-+# CONFIG_INET_IPCOMP is not set
-+# CONFIG_INET_TUNNEL is not set
-+CONFIG_INET_DIAG=y
-+CONFIG_INET_TCP_DIAG=y
-+# CONFIG_TCP_CONG_ADVANCED is not set
-+CONFIG_TCP_CONG_BIC=y
-+# CONFIG_IPV6 is not set
-+# CONFIG_NETFILTER is not set
-+
-+#
-+# DCCP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_DCCP is not set
-+
-+#
-+# SCTP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_SCTP is not set
-+# CONFIG_ATM is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_VLAN_8021Q is not set
-+# CONFIG_DECNET is not set
-+# CONFIG_LLC2 is not set
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
-+# CONFIG_X25 is not set
-+# CONFIG_LAPB is not set
-+# CONFIG_NET_DIVERT 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
-+
-+#
-+# Network testing
- #
--# CONFIG_EMBEDDED_RAMDISK is not set
-+# CONFIG_NET_PKTGEN is not set
-+# CONFIG_HAMRADIO is not set
-+# CONFIG_IRDA is not set
-+# CONFIG_BT is not set
-+# CONFIG_IEEE80211 is not set
-
- #
- # Device Drivers
-@@ -196,6 +344,11 @@
- # CONFIG_FW_LOADER is not set
-
- #
-+# Connector - unified userspace <-> kernelspace linker
-+#
-+# CONFIG_CONNECTOR is not set
-+
-+#
- # Memory Technology Devices (MTD)
- #
- # CONFIG_MTD is not set
-@@ -212,7 +365,6 @@
- #
- # Block devices
- #
--# CONFIG_BLK_DEV_FD is not set
- # CONFIG_BLK_CPQ_DA is not set
- # CONFIG_BLK_CPQ_CISS_DA is not set
- # CONFIG_BLK_DEV_DAC960 is not set
-@@ -226,17 +378,7 @@
- CONFIG_BLK_DEV_RAM_COUNT=16
- CONFIG_BLK_DEV_RAM_SIZE=4096
- CONFIG_BLK_DEV_INITRD=y
--CONFIG_INITRAMFS_SOURCE=""
--# CONFIG_LBD is not set
- # CONFIG_CDROM_PKTCDVD is not set
--
--#
--# IO Schedulers
--#
--CONFIG_IOSCHED_NOOP=y
--CONFIG_IOSCHED_AS=y
--CONFIG_IOSCHED_DEADLINE=y
--CONFIG_IOSCHED_CFQ=y
- # CONFIG_ATA_OVER_ETH is not set
-
- #
-@@ -272,6 +414,7 @@
- #
- # SCSI device support
- #
-+# CONFIG_RAID_ATTRS is not set
- CONFIG_SCSI=m
- CONFIG_SCSI_PROC_FS=y
-
-@@ -284,6 +427,7 @@
- CONFIG_BLK_DEV_SR=m
- CONFIG_BLK_DEV_SR_VENDOR=y
- CONFIG_CHR_DEV_SG=m
-+# CONFIG_CHR_DEV_SCH is not set
-
- #
- # Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-@@ -298,10 +442,12 @@
- # CONFIG_SCSI_SPI_ATTRS is not set
- # CONFIG_SCSI_FC_ATTRS is not set
- # CONFIG_SCSI_ISCSI_ATTRS is not set
-+# CONFIG_SCSI_SAS_ATTRS is not set
-
- #
- # SCSI low-level drivers
- #
-+# CONFIG_ISCSI_TCP is not set
- # CONFIG_BLK_DEV_3W_XXXX_RAID is not set
- # CONFIG_SCSI_3W_9XXX is not set
- # CONFIG_SCSI_ACARD is not set
-@@ -313,22 +459,16 @@
- # CONFIG_SCSI_ADVANSYS is not set
- # CONFIG_MEGARAID_NEWGEN is not set
- # CONFIG_MEGARAID_LEGACY is not set
-+# CONFIG_MEGARAID_SAS is not set
- # CONFIG_SCSI_SATA is not set
--# CONFIG_SCSI_BUSLOGIC is not set
--# CONFIG_SCSI_CPQFCTS is not set
- # CONFIG_SCSI_DMX3191D is not set
--# CONFIG_SCSI_EATA is not set
- # CONFIG_SCSI_EATA_PIO is not set
- # CONFIG_SCSI_FUTURE_DOMAIN is not set
--# CONFIG_SCSI_GDTH is not set
- # CONFIG_SCSI_IPS is not set
- # CONFIG_SCSI_INITIO is not set
- # CONFIG_SCSI_INIA100 is not set
- # CONFIG_SCSI_SYM53C8XX_2 is not set
- # CONFIG_SCSI_IPR is not set
--# CONFIG_SCSI_PCI2000 is not set
--# CONFIG_SCSI_PCI2220I is not set
--# CONFIG_SCSI_QLOGIC_ISP is not set
- # CONFIG_SCSI_QLOGIC_FC is not set
- # CONFIG_SCSI_QLOGIC_1280 is not set
- CONFIG_SCSI_QLA2XXX=m
-@@ -337,6 +477,8 @@
- # CONFIG_SCSI_QLA2300 is not set
- # CONFIG_SCSI_QLA2322 is not set
- # CONFIG_SCSI_QLA6312 is not set
-+# CONFIG_SCSI_QLA24XX is not set
-+# CONFIG_SCSI_LPFC is not set
- # CONFIG_SCSI_DC395x is not set
- # CONFIG_SCSI_DC390T is not set
- # CONFIG_SCSI_NSP32 is not set
-@@ -351,6 +493,9 @@
- # Fusion MPT device 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
-@@ -363,73 +508,8 @@
- # CONFIG_I2O is not set
-
- #
--# Networking support
--#
--CONFIG_NET=y
--
--#
--# Networking options
--#
--CONFIG_PACKET=y
--# CONFIG_PACKET_MMAP is not set
--# CONFIG_NETLINK_DEV is not set
--CONFIG_UNIX=y
--CONFIG_NET_KEY=y
--CONFIG_INET=y
--CONFIG_IP_MULTICAST=y
--# CONFIG_IP_ADVANCED_ROUTER is not set
--CONFIG_IP_PNP=y
--CONFIG_IP_PNP_DHCP=y
--CONFIG_IP_PNP_BOOTP=y
--CONFIG_IP_PNP_RARP=y
--# CONFIG_NET_IPIP is not set
--# CONFIG_NET_IPGRE is not set
--# CONFIG_IP_MROUTE is not set
--# CONFIG_ARPD is not set
--# CONFIG_SYN_COOKIES is not set
--# CONFIG_INET_AH is not set
--# CONFIG_INET_ESP is not set
--# CONFIG_INET_IPCOMP is not set
--# CONFIG_INET_TUNNEL is not set
--CONFIG_IP_TCPDIAG=y
--# CONFIG_IP_TCPDIAG_IPV6 is not set
--# CONFIG_IPV6 is not set
--# CONFIG_NETFILTER is not set
--CONFIG_XFRM=y
--# CONFIG_XFRM_USER is not set
--
--#
--# SCTP Configuration (EXPERIMENTAL)
-+# Network device support
- #
--# CONFIG_IP_SCTP is not set
--# CONFIG_ATM is not set
--# CONFIG_BRIDGE is not set
--# CONFIG_VLAN_8021Q is not set
--# CONFIG_DECNET is not set
--# CONFIG_LLC2 is not set
--# CONFIG_IPX is not set
--# CONFIG_ATALK is not set
--# CONFIG_X25 is not set
--# CONFIG_LAPB is not set
--# CONFIG_NET_DIVERT 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
--# CONFIG_NET_CLS_ROUTE is not set
--
--#
--# Network testing
--#
--# CONFIG_NET_PKTGEN is not set
--# CONFIG_NETPOLL is not set
--# CONFIG_NET_POLL_CONTROLLER is not set
--# CONFIG_HAMRADIO is not set
--# CONFIG_IRDA is not set
--# CONFIG_BT is not set
- CONFIG_NETDEVICES=y
- # CONFIG_DUMMY is not set
- # CONFIG_BONDING is not set
-@@ -442,6 +522,11 @@
- # CONFIG_ARCNET is not set
-
- #
-+# PHY device support
-+#
-+# CONFIG_PHYLIB is not set
-+
-+#
- # Ethernet (10 or 100Mbit)
- #
- CONFIG_NET_ETHERNET=y
-@@ -449,6 +534,7 @@
- # CONFIG_STNIC is not set
- # CONFIG_HAPPYMEAL is not set
- # CONFIG_SUNGEM is not set
-+# CONFIG_CASSINI is not set
- # CONFIG_NET_VENDOR_3COM is not set
- # CONFIG_SMC91X is not set
-
-@@ -457,6 +543,7 @@
- #
- # CONFIG_NET_TULIP is not set
- # CONFIG_HP100 is not set
-+# CONFIG_NE2000 is not set
- CONFIG_NET_PCI=y
- # CONFIG_PCNET32 is not set
- # CONFIG_AMD8111_ETH is not set
-@@ -487,13 +574,17 @@
- # CONFIG_HAMACHI is not set
- # CONFIG_YELLOWFIN is not set
- # CONFIG_R8169 is not set
-+# CONFIG_SIS190 is not set
-+# CONFIG_SKGE is not set
- # CONFIG_SK98LIN is not set
- # CONFIG_VIA_VELOCITY is not set
- # CONFIG_TIGON3 is not set
-+# CONFIG_BNX2 is not set
-
- #
- # Ethernet (10000 Mbit)
- #
-+# CONFIG_CHELSIO_T1 is not set
- # CONFIG_IXGB is not set
- # CONFIG_S2IO is not set
-
-@@ -518,6 +609,8 @@
- # 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
-
- #
- # ISDN subsystem
-@@ -547,14 +640,6 @@
- # CONFIG_INPUT_EVBUG is not set
-
- #
--# Input I/O drivers
--#
--# CONFIG_GAMEPORT is not set
--CONFIG_SOUND_GAMEPORT=y
--# CONFIG_SERIO is not set
--# CONFIG_SERIO_I8042 is not set
--
--#
- # Input Device Drivers
- #
- # CONFIG_INPUT_KEYBOARD is not set
-@@ -564,6 +649,12 @@
- # CONFIG_INPUT_MISC is not set
-
- #
-+# Hardware I/O ports
-+#
-+# CONFIG_SERIO is not set
-+# CONFIG_GAMEPORT is not set
-+
-+#
- # Character devices
- #
- CONFIG_VT=y
-@@ -585,6 +676,7 @@
- CONFIG_SERIAL_SH_SCI_CONSOLE=y
- CONFIG_SERIAL_CORE=y
- CONFIG_SERIAL_CORE_CONSOLE=y
-+# CONFIG_SERIAL_JSM is not set
- CONFIG_UNIX98_PTYS=y
- CONFIG_LEGACY_PTYS=y
- CONFIG_LEGACY_PTY_COUNT=256
-@@ -625,6 +717,12 @@
- # CONFIG_RAW_DRIVER is not set
-
- #
-+# TPM devices
-+#
-+# CONFIG_TCG_TPM is not set
-+# CONFIG_TELCLOCK is not set
-+
-+#
- # I2C support
- #
- # CONFIG_I2C is not set
-@@ -635,10 +733,21 @@
- # CONFIG_W1 is not set
-
- #
-+# Hardware Monitoring support
-+#
-+CONFIG_HWMON=y
-+# CONFIG_HWMON_VID is not set
-+# CONFIG_HWMON_DEBUG_CHIP is not set
-+
-+#
- # Misc devices
- #
-
- #
-+# Multimedia Capabilities Port drivers
-+#
-+
-+#
- # Multimedia devices
- #
- # CONFIG_VIDEO_DEV is not set
-@@ -656,7 +765,6 @@
- #
- # Console display driver support
- #
--# CONFIG_VGA_CONSOLE is not set
- CONFIG_DUMMY_CONSOLE=y
-
- #
-@@ -667,12 +775,12 @@
- #
- # USB support
- #
--# CONFIG_USB is not set
- CONFIG_USB_ARCH_HAS_HCD=y
- CONFIG_USB_ARCH_HAS_OHCI=y
-+# CONFIG_USB is not set
-
- #
--# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
-+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
- #
-
- #
-@@ -691,12 +799,17 @@
- # CONFIG_INFINIBAND is not set
-
- #
-+# SN Devices
-+#
-+
-+#
- # File systems
- #
- CONFIG_EXT2_FS=y
- CONFIG_EXT2_FS_XATTR=y
- # CONFIG_EXT2_FS_POSIX_ACL is not set
- # CONFIG_EXT2_FS_SECURITY is not set
-+# CONFIG_EXT2_FS_XIP is not set
- CONFIG_EXT3_FS=y
- CONFIG_EXT3_FS_XATTR=y
- CONFIG_EXT3_FS_POSIX_ACL=y
-@@ -707,17 +820,15 @@
- # CONFIG_REISERFS_FS is not set
- # CONFIG_JFS_FS is not set
- CONFIG_FS_POSIX_ACL=y
--
--#
--# XFS support
--#
- # CONFIG_XFS_FS is not set
- # CONFIG_MINIX_FS is not set
- # CONFIG_ROMFS_FS is not set
-+CONFIG_INOTIFY=y
- # CONFIG_QUOTA is not set
- CONFIG_DNOTIFY=y
- CONFIG_AUTOFS_FS=y
- CONFIG_AUTOFS4_FS=y
-+# CONFIG_FUSE_FS is not set
-
- #
- # CD-ROM/DVD Filesystems
-@@ -745,13 +856,11 @@
- CONFIG_PROC_FS=y
- CONFIG_PROC_KCORE=y
- CONFIG_SYSFS=y
--# CONFIG_DEVFS_FS is not set
--# CONFIG_DEVPTS_FS_XATTR is not set
- CONFIG_TMPFS=y
--# CONFIG_TMPFS_XATTR is not set
- # CONFIG_HUGETLBFS is not set
- # CONFIG_HUGETLB_PAGE is not set
- CONFIG_RAMFS=y
-+# CONFIG_RELAYFS_FS is not set
-
- #
- # Miscellaneous filesystems
-@@ -775,16 +884,19 @@
- #
- CONFIG_NFS_FS=y
- CONFIG_NFS_V3=y
-+# CONFIG_NFS_V3_ACL is not set
- CONFIG_NFS_V4=y
- # CONFIG_NFS_DIRECTIO is not set
- CONFIG_NFSD=y
- CONFIG_NFSD_V3=y
-+# CONFIG_NFSD_V3_ACL is not set
- # CONFIG_NFSD_V4 is not set
- CONFIG_NFSD_TCP=y
- CONFIG_ROOT_NFS=y
- CONFIG_LOCKD=y
- CONFIG_LOCKD_V4=y
- CONFIG_EXPORTFS=y
-+CONFIG_NFS_COMMON=y
- CONFIG_SUNRPC=y
- CONFIG_SUNRPC_GSS=y
- CONFIG_RPCSEC_GSS_KRB5=y
-@@ -794,6 +906,7 @@
- # CONFIG_NCP_FS is not set
- # CONFIG_CODA_FS is not set
- # CONFIG_AFS_FS is not set
-+# CONFIG_9P_FS is not set
-
- #
- # Partition Types
-@@ -868,8 +981,9 @@
- #
- # Kernel hacking
- #
-+# CONFIG_PRINTK_TIME is not set
- # CONFIG_DEBUG_KERNEL is not set
--CONFIG_DEBUG_PREEMPT=y
-+CONFIG_LOG_BUF_SHIFT=14
- # CONFIG_FRAME_POINTER is not set
- CONFIG_SH_STANDARD_BIOS=y
- # CONFIG_EARLY_SCIF_CONSOLE is not set
-@@ -894,6 +1008,7 @@
- # CONFIG_CRYPTO_SHA256 is not set
- # CONFIG_CRYPTO_SHA512 is not set
- # CONFIG_CRYPTO_WP512 is not set
-+# CONFIG_CRYPTO_TGR192 is not set
- CONFIG_CRYPTO_DES=y
- # CONFIG_CRYPTO_BLOWFISH is not set
- # CONFIG_CRYPTO_TWOFISH is not set
-@@ -918,6 +1033,7 @@
- # Library routines
- #
- CONFIG_CRC_CCITT=y
-+# CONFIG_CRC16 is not set
- CONFIG_CRC32=y
- # CONFIG_LIBCRC32C is not set
- CONFIG_ZLIB_INFLATE=y
-diff -ruN linux-2.6.17-vanilla/arch/sh/configs/snapgear_defconfig linux-2.6.17/arch/sh/configs/snapgear_defconfig
---- linux-2.6.17-vanilla/arch/sh/configs/snapgear_defconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/configs/snapgear_defconfig 2006-07-12 16:54:21.000000000 +0000
-@@ -1,7 +1,7 @@
- #
- # Automatically generated make config: don't edit
--# Linux kernel version: 2.6.11-sh
--# Wed Mar 2 15:09:51 2005
-+# Linux kernel version: 2.6.15-sh
-+# Wed Jan 4 20:30:46 2006
- #
- CONFIG_SUPERH=y
- CONFIG_UID16=y
-@@ -16,33 +16,39 @@
- CONFIG_EXPERIMENTAL=y
- CONFIG_CLEAN_COMPILE=y
- CONFIG_BROKEN_ON_SMP=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-
- #
- # General setup
- #
- CONFIG_LOCALVERSION=""
-+CONFIG_LOCALVERSION_AUTO=y
- CONFIG_SWAP=y
- # CONFIG_SYSVIPC is not set
- # CONFIG_POSIX_MQUEUE is not set
- # CONFIG_BSD_PROCESS_ACCT is not set
- # CONFIG_SYSCTL is not set
- # CONFIG_AUDIT is not set
--CONFIG_LOG_BUF_SHIFT=14
- # CONFIG_HOTPLUG is not set
- CONFIG_KOBJECT_UEVENT=y
- # CONFIG_IKCONFIG is not set
-+CONFIG_INITRAMFS_SOURCE=""
-+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
- # CONFIG_EMBEDDED is not set
- CONFIG_KALLSYMS=y
- # CONFIG_KALLSYMS_EXTRA_PASS is not set
-+CONFIG_PRINTK=y
-+CONFIG_BUG=y
-+CONFIG_BASE_FULL=y
- CONFIG_FUTEX=y
- CONFIG_EPOLL=y
--# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
- CONFIG_SHMEM=y
- CONFIG_CC_ALIGN_FUNCTIONS=0
- CONFIG_CC_ALIGN_LABELS=0
- CONFIG_CC_ALIGN_LOOPS=0
- CONFIG_CC_ALIGN_JUMPS=0
- # CONFIG_TINY_SHMEM is not set
-+CONFIG_BASE_SMALL=0
-
- #
- # Loadable module support
-@@ -50,6 +56,24 @@
- # CONFIG_MODULES is not set
-
- #
-+# Block layer
-+#
-+# CONFIG_LBD is not set
-+
-+#
-+# IO Schedulers
-+#
-+CONFIG_IOSCHED_NOOP=y
-+CONFIG_IOSCHED_AS=y
-+CONFIG_IOSCHED_DEADLINE=y
-+CONFIG_IOSCHED_CFQ=y
-+CONFIG_DEFAULT_AS=y
-+# CONFIG_DEFAULT_DEADLINE is not set
-+# CONFIG_DEFAULT_CFQ is not set
-+# CONFIG_DEFAULT_NOOP is not set
-+CONFIG_DEFAULT_IOSCHED="anticipatory"
-+
-+#
- # System type
- #
- # CONFIG_SH_SOLUTION_ENGINE is not set
-@@ -59,9 +83,7 @@
- # CONFIG_SH_7751_SYSTEMH is not set
- # CONFIG_SH_STB1_HARP is not set
- # CONFIG_SH_STB1_OVERDRIVE is not set
--# CONFIG_SH_HP620 is not set
--# CONFIG_SH_HP680 is not set
--# CONFIG_SH_HP690 is not set
-+# CONFIG_SH_HP6XX is not set
- # CONFIG_SH_CQREEK is not set
- # CONFIG_SH_DMIDA is not set
- # CONFIG_SH_EC3104 is not set
-@@ -78,42 +100,89 @@
- # CONFIG_SH_RTS7751R2D is not set
- # CONFIG_SH_EDOSK7705 is not set
- # CONFIG_SH_SH4202_MICRODEV is not set
-+# CONFIG_SH_LANDISK is not set
-+# CONFIG_SH_TITAN is not set
- # CONFIG_SH_UNKNOWN is not set
--# CONFIG_CPU_SH2 is not set
--# CONFIG_CPU_SH3 is not set
-+
-+#
-+# Processor selection
-+#
- CONFIG_CPU_SH4=y
-+
-+#
-+# SH-2 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7604 is not set
-+
-+#
-+# SH-3 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7300 is not set
- # CONFIG_CPU_SUBTYPE_SH7705 is not set
- # CONFIG_CPU_SUBTYPE_SH7707 is not set
- # CONFIG_CPU_SUBTYPE_SH7708 is not set
- # CONFIG_CPU_SUBTYPE_SH7709 is not set
-+
-+#
-+# SH-4 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7750 is not set
-+# CONFIG_CPU_SUBTYPE_SH7091 is not set
-+# CONFIG_CPU_SUBTYPE_SH7750R is not set
-+# CONFIG_CPU_SUBTYPE_SH7750S is not set
- CONFIG_CPU_SUBTYPE_SH7751=y
-+CONFIG_CPU_SUBTYPE_SH7751R=y
- # CONFIG_CPU_SUBTYPE_SH7760 is not set
--# CONFIG_CPU_SUBTYPE_SH73180 is not set
-+# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+
-+#
-+# ST40 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_ST40STB1 is not set
- # CONFIG_CPU_SUBTYPE_ST40GX1 is not set
--# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+
-+#
-+# SH-4A Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_SH73180 is not set
-+# CONFIG_CPU_SUBTYPE_SH7770 is not set
-+# CONFIG_CPU_SUBTYPE_SH7780 is not set
-+
-+#
-+# Memory management options
-+#
- CONFIG_MMU=y
--# CONFIG_CMDLINE_BOOL is not set
-+CONFIG_SELECT_MEMORY_MODEL=y
-+CONFIG_FLATMEM_MANUAL=y
-+# CONFIG_DISCONTIGMEM_MANUAL is not set
-+# CONFIG_SPARSEMEM_MANUAL is not set
-+CONFIG_FLATMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+# CONFIG_SPARSEMEM_STATIC is not set
-+CONFIG_SPLIT_PTLOCK_CPUS=4
-+
-+#
-+# Cache configuration
-+#
-+# CONFIG_SH_DIRECT_MAPPED is not set
-+# CONFIG_SH_WRITETHROUGH is not set
-+# CONFIG_SH_OCRAM is not set
- CONFIG_MEMORY_START=0x08000000
- CONFIG_MEMORY_SIZE=0x01000000
--CONFIG_MEMORY_SET=y
--# CONFIG_MEMORY_OVERRIDE is not set
-+
-+#
-+# Processor features
-+#
-+CONFIG_CPU_LITTLE_ENDIAN=y
- CONFIG_SH_RTC=y
- CONFIG_SH_FPU=y
--CONFIG_ZERO_PAGE_OFFSET=0x00001000
--CONFIG_BOOT_LINK_OFFSET=0x00800000
--CONFIG_CPU_LITTLE_ENDIAN=y
--# CONFIG_PREEMPT is not set
--# CONFIG_UBC_WAKEUP is not set
--# CONFIG_SH_WRITETHROUGH is not set
--# CONFIG_SH_OCRAM is not set
- # CONFIG_SH_STORE_QUEUES is not set
--# CONFIG_SMP is not set
--CONFIG_SH_PCLK_CALC=y
--CONFIG_SH_PCLK_FREQ=60013568
-+
-+#
-+# Timer support
-+#
-+CONFIG_SH_TMU=y
-+# CONFIG_SH_PCLK_FREQ_BOOL is not set
-
- #
- # CPU Frequency scaling
-@@ -133,14 +202,28 @@
- # CONFIG_HD6446X_SERIES is not set
-
- #
--# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
-+# Kernel features
-+#
-+# CONFIG_KEXEC is not set
-+# CONFIG_PREEMPT is not set
-+# CONFIG_SMP is not set
-+
-+#
-+# Boot options
-+#
-+CONFIG_ZERO_PAGE_OFFSET=0x00001000
-+CONFIG_BOOT_LINK_OFFSET=0x00800000
-+# CONFIG_UBC_WAKEUP is not set
-+# CONFIG_CMDLINE_BOOL is not set
-+
-+#
-+# Bus options
- #
- CONFIG_PCI=y
- # CONFIG_SH_PCIDMA_NONCOHERENT is not set
- CONFIG_PCI_AUTO=y
- CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
- # CONFIG_PCI_LEGACY_PROC is not set
--CONFIG_PCI_NAMES=y
-
- #
- # PCCARD (PCMCIA/CardBus) support
-@@ -148,10 +231,6 @@
- # CONFIG_PCCARD is not set
-
- #
--# PC-card bridges
--#
--
--#
- # PCI Hotplug Support
- #
- # CONFIG_HOTPLUG_PCI is not set
-@@ -164,9 +243,74 @@
- # CONFIG_BINFMT_MISC is not set
-
- #
--# SH initrd options
-+# Networking
-+#
-+CONFIG_NET=y
-+
-+#
-+# Networking options
-+#
-+# CONFIG_PACKET is not set
-+# CONFIG_UNIX is not set
-+# CONFIG_NET_KEY is not set
-+CONFIG_INET=y
-+# CONFIG_IP_MULTICAST is not set
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+CONFIG_IP_FIB_HASH=y
-+CONFIG_IP_PNP=y
-+CONFIG_IP_PNP_DHCP=y
-+# CONFIG_IP_PNP_BOOTP is not set
-+# CONFIG_IP_PNP_RARP is not set
-+# CONFIG_NET_IPIP is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_SYN_COOKIES is not set
-+# CONFIG_INET_AH is not set
-+# CONFIG_INET_ESP is not set
-+# CONFIG_INET_IPCOMP is not set
-+# CONFIG_INET_TUNNEL is not set
-+CONFIG_INET_DIAG=y
-+CONFIG_INET_TCP_DIAG=y
-+# CONFIG_TCP_CONG_ADVANCED is not set
-+CONFIG_TCP_CONG_BIC=y
-+# CONFIG_IPV6 is not set
-+# CONFIG_NETFILTER is not set
-+
-+#
-+# DCCP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_DCCP is not set
-+
-+#
-+# SCTP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_SCTP is not set
-+# CONFIG_ATM is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_VLAN_8021Q is not set
-+# CONFIG_DECNET is not set
-+# CONFIG_LLC2 is not set
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
-+# CONFIG_X25 is not set
-+# CONFIG_LAPB is not set
-+# CONFIG_NET_DIVERT 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
-+
-+#
-+# Network testing
- #
--# CONFIG_EMBEDDED_RAMDISK is not set
-+# CONFIG_NET_PKTGEN is not set
-+# CONFIG_HAMRADIO is not set
-+# CONFIG_IRDA is not set
-+# CONFIG_BT is not set
-+# CONFIG_IEEE80211 is not set
-
- #
- # Device Drivers
-@@ -180,6 +324,11 @@
- # CONFIG_FW_LOADER is not set
-
- #
-+# Connector - unified userspace <-> kernelspace linker
-+#
-+# CONFIG_CONNECTOR is not set
-+
-+#
- # Memory Technology Devices (MTD)
- #
- # CONFIG_MTD is not set
-@@ -196,7 +345,6 @@
- #
- # Block devices
- #
--# CONFIG_BLK_DEV_FD is not set
- # CONFIG_BLK_CPQ_DA is not set
- # CONFIG_BLK_CPQ_CISS_DA is not set
- # CONFIG_BLK_DEV_DAC960 is not set
-@@ -209,17 +357,7 @@
- CONFIG_BLK_DEV_RAM_COUNT=16
- CONFIG_BLK_DEV_RAM_SIZE=4096
- CONFIG_BLK_DEV_INITRD=y
--CONFIG_INITRAMFS_SOURCE=""
--# CONFIG_LBD is not set
- # CONFIG_CDROM_PKTCDVD is not set
--
--#
--# IO Schedulers
--#
--CONFIG_IOSCHED_NOOP=y
--CONFIG_IOSCHED_AS=y
--CONFIG_IOSCHED_DEADLINE=y
--CONFIG_IOSCHED_CFQ=y
- # CONFIG_ATA_OVER_ETH is not set
-
- #
-@@ -230,6 +368,7 @@
- #
- # SCSI device support
- #
-+# CONFIG_RAID_ATTRS is not set
- # CONFIG_SCSI is not set
-
- #
-@@ -240,6 +379,7 @@
- #
- # Fusion MPT device support
- #
-+# CONFIG_FUSION is not set
-
- #
- # IEEE 1394 (FireWire) support
-@@ -252,69 +392,8 @@
- # CONFIG_I2O is not set
-
- #
--# Networking support
--#
--CONFIG_NET=y
--
--#
--# Networking options
--#
--# CONFIG_PACKET is not set
--# CONFIG_NETLINK_DEV is not set
--# CONFIG_UNIX is not set
--# CONFIG_NET_KEY is not set
--CONFIG_INET=y
--# CONFIG_IP_MULTICAST is not set
--# CONFIG_IP_ADVANCED_ROUTER is not set
--CONFIG_IP_PNP=y
--CONFIG_IP_PNP_DHCP=y
--# CONFIG_IP_PNP_BOOTP is not set
--# CONFIG_IP_PNP_RARP is not set
--# CONFIG_NET_IPIP is not set
--# CONFIG_NET_IPGRE is not set
--# CONFIG_ARPD is not set
--# CONFIG_SYN_COOKIES is not set
--# CONFIG_INET_AH is not set
--# CONFIG_INET_ESP is not set
--# CONFIG_INET_IPCOMP is not set
--# CONFIG_INET_TUNNEL is not set
--CONFIG_IP_TCPDIAG=y
--# CONFIG_IP_TCPDIAG_IPV6 is not set
--# CONFIG_IPV6 is not set
--# CONFIG_NETFILTER is not set
--
--#
--# SCTP Configuration (EXPERIMENTAL)
--#
--# CONFIG_IP_SCTP is not set
--# CONFIG_ATM is not set
--# CONFIG_BRIDGE is not set
--# CONFIG_VLAN_8021Q is not set
--# CONFIG_DECNET is not set
--# CONFIG_LLC2 is not set
--# CONFIG_IPX is not set
--# CONFIG_ATALK is not set
--# CONFIG_X25 is not set
--# CONFIG_LAPB is not set
--# CONFIG_NET_DIVERT 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
--# CONFIG_NET_CLS_ROUTE is not set
--
-+# Network device support
- #
--# Network testing
--#
--# CONFIG_NET_PKTGEN is not set
--# CONFIG_NETPOLL is not set
--# CONFIG_NET_POLL_CONTROLLER is not set
--# CONFIG_HAMRADIO is not set
--# CONFIG_IRDA is not set
--# CONFIG_BT is not set
- CONFIG_NETDEVICES=y
- # CONFIG_DUMMY is not set
- # CONFIG_BONDING is not set
-@@ -327,6 +406,11 @@
- # CONFIG_ARCNET is not set
-
- #
-+# PHY device support
-+#
-+# CONFIG_PHYLIB is not set
-+
-+#
- # Ethernet (10 or 100Mbit)
- #
- CONFIG_NET_ETHERNET=y
-@@ -334,6 +418,7 @@
- # CONFIG_STNIC is not set
- # CONFIG_HAPPYMEAL is not set
- # CONFIG_SUNGEM is not set
-+# CONFIG_CASSINI is not set
- # CONFIG_NET_VENDOR_3COM is not set
- # CONFIG_SMC91X is not set
-
-@@ -342,6 +427,7 @@
- #
- # CONFIG_NET_TULIP is not set
- # CONFIG_HP100 is not set
-+# CONFIG_NE2000 is not set
- CONFIG_NET_PCI=y
- # CONFIG_PCNET32 is not set
- # CONFIG_AMD8111_ETH is not set
-@@ -376,13 +462,17 @@
- # CONFIG_HAMACHI is not set
- # CONFIG_YELLOWFIN is not set
- # CONFIG_R8169 is not set
-+# CONFIG_SIS190 is not set
-+# CONFIG_SKGE is not set
- # CONFIG_SK98LIN is not set
- # CONFIG_VIA_VELOCITY is not set
- # CONFIG_TIGON3 is not set
-+# CONFIG_BNX2 is not set
-
- #
- # Ethernet (10000 Mbit)
- #
-+# CONFIG_CHELSIO_T1 is not set
- # CONFIG_IXGB is not set
- # CONFIG_S2IO is not set
-
-@@ -406,6 +496,8 @@
- # CONFIG_SLIP 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
-
- #
- # ISDN subsystem
-@@ -435,18 +527,6 @@
- # CONFIG_INPUT_EVBUG is not set
-
- #
--# Input I/O drivers
--#
--# CONFIG_GAMEPORT is not set
--CONFIG_SOUND_GAMEPORT=y
--CONFIG_SERIO=y
--CONFIG_SERIO_I8042=y
--CONFIG_SERIO_SERPORT=y
--# CONFIG_SERIO_CT82C710 is not set
--# CONFIG_SERIO_PCIPS2 is not set
--# CONFIG_SERIO_RAW is not set
--
--#
- # Input Device Drivers
- #
- # CONFIG_INPUT_KEYBOARD is not set
-@@ -456,6 +536,16 @@
- # CONFIG_INPUT_MISC is not set
-
- #
-+# Hardware I/O ports
-+#
-+CONFIG_SERIO=y
-+CONFIG_SERIO_I8042=y
-+CONFIG_SERIO_SERPORT=y
-+# CONFIG_SERIO_PCIPS2 is not set
-+# CONFIG_SERIO_RAW is not set
-+# CONFIG_GAMEPORT is not set
-+
-+#
- # Character devices
- #
- CONFIG_VT=y
-@@ -472,6 +562,7 @@
- # Non-8250 serial port support
- #
- # CONFIG_SERIAL_SH_SCI is not set
-+# CONFIG_SERIAL_JSM is not set
- CONFIG_UNIX98_PTYS=y
- CONFIG_LEGACY_PTYS=y
- CONFIG_LEGACY_PTY_COUNT=256
-@@ -498,6 +589,12 @@
- # CONFIG_RAW_DRIVER is not set
-
- #
-+# TPM devices
-+#
-+# CONFIG_TCG_TPM is not set
-+# CONFIG_TELCLOCK is not set
-+
-+#
- # I2C support
- #
- # CONFIG_I2C is not set
-@@ -508,10 +605,21 @@
- # CONFIG_W1 is not set
-
- #
-+# Hardware Monitoring support
-+#
-+CONFIG_HWMON=y
-+# CONFIG_HWMON_VID is not set
-+# CONFIG_HWMON_DEBUG_CHIP is not set
-+
-+#
- # Misc devices
- #
-
- #
-+# Multimedia Capabilities Port drivers
-+#
-+
-+#
- # Multimedia devices
- #
- # CONFIG_VIDEO_DEV is not set
-@@ -529,7 +637,6 @@
- #
- # Console display driver support
- #
--CONFIG_VGA_CONSOLE=y
- CONFIG_DUMMY_CONSOLE=y
-
- #
-@@ -540,12 +647,12 @@
- #
- # USB support
- #
--# CONFIG_USB is not set
- CONFIG_USB_ARCH_HAS_HCD=y
- CONFIG_USB_ARCH_HAS_OHCI=y
-+# CONFIG_USB is not set
-
- #
--# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
-+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
- #
-
- #
-@@ -564,25 +671,29 @@
- # CONFIG_INFINIBAND is not set
-
- #
-+# SN Devices
-+#
-+
-+#
- # File systems
- #
- CONFIG_EXT2_FS=y
- # CONFIG_EXT2_FS_XATTR is not set
-+# CONFIG_EXT2_FS_XIP is not set
- # CONFIG_EXT3_FS is not set
- # CONFIG_JBD is not set
- # CONFIG_REISERFS_FS is not set
- # CONFIG_JFS_FS is not set
--
--#
--# XFS support
--#
-+# CONFIG_FS_POSIX_ACL is not set
- # CONFIG_XFS_FS is not set
- # CONFIG_MINIX_FS is not set
- CONFIG_ROMFS_FS=y
-+CONFIG_INOTIFY=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
-
- #
- # CD-ROM/DVD Filesystems
-@@ -603,15 +714,11 @@
- CONFIG_PROC_FS=y
- # CONFIG_PROC_KCORE is not set
- CONFIG_SYSFS=y
--CONFIG_DEVFS_FS=y
--CONFIG_DEVFS_MOUNT=y
--# CONFIG_DEVFS_DEBUG is not set
--# CONFIG_DEVPTS_FS_XATTR is not set
- CONFIG_TMPFS=y
--# CONFIG_TMPFS_XATTR is not set
- # CONFIG_HUGETLBFS is not set
- # CONFIG_HUGETLB_PAGE is not set
- CONFIG_RAMFS=y
-+# CONFIG_RELAYFS_FS is not set
-
- #
- # Miscellaneous filesystems
-@@ -635,12 +742,14 @@
- #
- CONFIG_NFS_FS=y
- CONFIG_NFS_V3=y
-+# CONFIG_NFS_V3_ACL is not set
- # CONFIG_NFS_V4 is not set
- # CONFIG_NFS_DIRECTIO is not set
- # CONFIG_NFSD is not set
- CONFIG_ROOT_NFS=y
- CONFIG_LOCKD=y
- CONFIG_LOCKD_V4=y
-+CONFIG_NFS_COMMON=y
- CONFIG_SUNRPC=y
- # CONFIG_RPCSEC_GSS_KRB5 is not set
- # CONFIG_RPCSEC_GSS_SPKM3 is not set
-@@ -649,6 +758,7 @@
- # CONFIG_NCP_FS is not set
- # CONFIG_CODA_FS is not set
- # CONFIG_AFS_FS is not set
-+# CONFIG_9P_FS is not set
-
- #
- # Partition Types
-@@ -669,7 +779,9 @@
- #
- # Kernel hacking
- #
-+# CONFIG_PRINTK_TIME is not set
- # CONFIG_DEBUG_KERNEL is not set
-+CONFIG_LOG_BUF_SHIFT=14
- # CONFIG_FRAME_POINTER is not set
- # CONFIG_SH_STANDARD_BIOS is not set
- # CONFIG_EARLY_SCIF_CONSOLE is not set
-@@ -694,6 +806,7 @@
- # Library routines
- #
- # CONFIG_CRC_CCITT is not set
-+# CONFIG_CRC16 is not set
- CONFIG_CRC32=y
- # CONFIG_LIBCRC32C is not set
- CONFIG_ZLIB_INFLATE=y
-diff -ruN linux-2.6.17-vanilla/arch/sh/configs/systemh_defconfig linux-2.6.17/arch/sh/configs/systemh_defconfig
---- linux-2.6.17-vanilla/arch/sh/configs/systemh_defconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/configs/systemh_defconfig 2006-07-12 16:54:21.000000000 +0000
-@@ -1,7 +1,7 @@
- #
- # Automatically generated make config: don't edit
--# Linux kernel version: 2.6.11-sh
--# Wed Mar 2 15:09:53 2005
-+# Linux kernel version: 2.6.15-sh
-+# Wed Jan 4 20:44:53 2006
- #
- CONFIG_SUPERH=y
- CONFIG_UID16=y
-@@ -18,31 +18,36 @@
- CONFIG_BROKEN=y
- CONFIG_BROKEN_ON_SMP=y
- CONFIG_LOCK_KERNEL=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-
- #
- # General setup
- #
- CONFIG_LOCALVERSION=""
-+CONFIG_LOCALVERSION_AUTO=y
- CONFIG_SWAP=y
- # CONFIG_SYSVIPC is not set
- # CONFIG_BSD_PROCESS_ACCT is not set
- # CONFIG_SYSCTL is not set
--# CONFIG_AUDIT is not set
--CONFIG_LOG_BUF_SHIFT=14
- # CONFIG_HOTPLUG is not set
- # CONFIG_IKCONFIG is not set
-+CONFIG_INITRAMFS_SOURCE=""
-+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
- CONFIG_EMBEDDED=y
- CONFIG_KALLSYMS=y
- # CONFIG_KALLSYMS_EXTRA_PASS is not set
-+CONFIG_PRINTK=y
-+CONFIG_BUG=y
-+CONFIG_BASE_FULL=y
- CONFIG_FUTEX=y
- CONFIG_EPOLL=y
--# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
- CONFIG_SHMEM=y
- CONFIG_CC_ALIGN_FUNCTIONS=0
- CONFIG_CC_ALIGN_LABELS=0
- CONFIG_CC_ALIGN_LOOPS=0
- CONFIG_CC_ALIGN_JUMPS=0
- # CONFIG_TINY_SHMEM is not set
-+CONFIG_BASE_SMALL=0
-
- #
- # Loadable module support
-@@ -56,6 +61,24 @@
- # CONFIG_KMOD is not set
-
- #
-+# Block layer
-+#
-+# CONFIG_LBD is not set
-+
-+#
-+# IO Schedulers
-+#
-+CONFIG_IOSCHED_NOOP=y
-+CONFIG_IOSCHED_AS=y
-+CONFIG_IOSCHED_DEADLINE=y
-+CONFIG_IOSCHED_CFQ=y
-+CONFIG_DEFAULT_AS=y
-+# CONFIG_DEFAULT_DEADLINE is not set
-+# CONFIG_DEFAULT_CFQ is not set
-+# CONFIG_DEFAULT_NOOP is not set
-+CONFIG_DEFAULT_IOSCHED="anticipatory"
-+
-+#
- # System type
- #
- # CONFIG_SH_SOLUTION_ENGINE is not set
-@@ -65,9 +88,7 @@
- CONFIG_SH_7751_SYSTEMH=y
- # CONFIG_SH_STB1_HARP is not set
- # CONFIG_SH_STB1_OVERDRIVE is not set
--# CONFIG_SH_HP620 is not set
--# CONFIG_SH_HP680 is not set
--# CONFIG_SH_HP690 is not set
-+# CONFIG_SH_HP6XX is not set
- # CONFIG_SH_CQREEK is not set
- # CONFIG_SH_DMIDA is not set
- # CONFIG_SH_EC3104 is not set
-@@ -84,41 +105,89 @@
- # CONFIG_SH_RTS7751R2D is not set
- # CONFIG_SH_EDOSK7705 is not set
- # CONFIG_SH_SH4202_MICRODEV is not set
-+# CONFIG_SH_LANDISK is not set
-+# CONFIG_SH_TITAN is not set
- # CONFIG_SH_UNKNOWN is not set
--# CONFIG_CPU_SH2 is not set
--# CONFIG_CPU_SH3 is not set
-+
-+#
-+# Processor selection
-+#
- CONFIG_CPU_SH4=y
-+
-+#
-+# SH-2 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7604 is not set
-+
-+#
-+# SH-3 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7300 is not set
- # CONFIG_CPU_SUBTYPE_SH7705 is not set
- # CONFIG_CPU_SUBTYPE_SH7707 is not set
- # CONFIG_CPU_SUBTYPE_SH7708 is not set
- # CONFIG_CPU_SUBTYPE_SH7709 is not set
-+
-+#
-+# SH-4 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_SH7750 is not set
-+# CONFIG_CPU_SUBTYPE_SH7091 is not set
-+# CONFIG_CPU_SUBTYPE_SH7750R is not set
-+# CONFIG_CPU_SUBTYPE_SH7750S is not set
- CONFIG_CPU_SUBTYPE_SH7751=y
-+CONFIG_CPU_SUBTYPE_SH7751R=y
- # CONFIG_CPU_SUBTYPE_SH7760 is not set
--# CONFIG_CPU_SUBTYPE_SH73180 is not set
-+# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+
-+#
-+# ST40 Processor Support
-+#
- # CONFIG_CPU_SUBTYPE_ST40STB1 is not set
- # CONFIG_CPU_SUBTYPE_ST40GX1 is not set
--# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+
-+#
-+# SH-4A Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_SH73180 is not set
-+# CONFIG_CPU_SUBTYPE_SH7770 is not set
-+# CONFIG_CPU_SUBTYPE_SH7780 is not set
-+
-+#
-+# Memory management options
-+#
- CONFIG_MMU=y
--# CONFIG_CMDLINE_BOOL is not set
-+CONFIG_SELECT_MEMORY_MODEL=y
-+CONFIG_FLATMEM_MANUAL=y
-+# CONFIG_DISCONTIGMEM_MANUAL is not set
-+# CONFIG_SPARSEMEM_MANUAL is not set
-+CONFIG_FLATMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+# CONFIG_SPARSEMEM_STATIC is not set
-+CONFIG_SPLIT_PTLOCK_CPUS=4
-+
-+#
-+# Cache configuration
-+#
-+# CONFIG_SH_DIRECT_MAPPED is not set
-+# CONFIG_SH_WRITETHROUGH is not set
-+# CONFIG_SH_OCRAM is not set
- CONFIG_MEMORY_START=0x0c000000
- CONFIG_MEMORY_SIZE=0x00400000
--# CONFIG_MEMORY_OVERRIDE is not set
-+
-+#
-+# Processor features
-+#
-+CONFIG_CPU_LITTLE_ENDIAN=y
- CONFIG_SH_RTC=y
- CONFIG_SH_FPU=y
--CONFIG_ZERO_PAGE_OFFSET=0x00001000
--CONFIG_BOOT_LINK_OFFSET=0x00800000
--CONFIG_CPU_LITTLE_ENDIAN=y
--CONFIG_PREEMPT=y
--# CONFIG_UBC_WAKEUP is not set
--# CONFIG_SH_WRITETHROUGH is not set
--# CONFIG_SH_OCRAM is not set
- # CONFIG_SH_STORE_QUEUES is not set
--# CONFIG_SMP is not set
--CONFIG_SH_PCLK_CALC=y
--CONFIG_SH_PCLK_FREQ=49876504
-+
-+#
-+# Timer support
-+#
-+CONFIG_SH_TMU=y
-+# CONFIG_SH_PCLK_FREQ_BOOL is not set
-
- #
- # CPU Frequency scaling
-@@ -136,14 +205,28 @@
- # CONFIG_HD6446X_SERIES is not set
-
- #
--# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
-+# Kernel features
-+#
-+# CONFIG_KEXEC is not set
-+CONFIG_PREEMPT=y
-+# CONFIG_SMP is not set
-+
-+#
-+# Boot options
-+#
-+CONFIG_ZERO_PAGE_OFFSET=0x00001000
-+CONFIG_BOOT_LINK_OFFSET=0x00800000
-+# CONFIG_UBC_WAKEUP is not set
-+# CONFIG_CMDLINE_BOOL is not set
-+
-+#
-+# Bus options
- #
- CONFIG_PCI=y
- # CONFIG_SH_PCIDMA_NONCOHERENT is not set
- CONFIG_PCI_AUTO=y
- CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
- CONFIG_PCI_LEGACY_PROC=y
--CONFIG_PCI_NAMES=y
-
- #
- # PCCARD (PCMCIA/CardBus) support
-@@ -151,10 +234,6 @@
- # CONFIG_PCCARD is not set
-
- #
--# PC-card bridges
--#
--
--#
- # PCI Hotplug Support
- #
- # CONFIG_HOTPLUG_PCI is not set
-@@ -167,9 +246,9 @@
- # CONFIG_BINFMT_MISC is not set
-
- #
--# SH initrd options
-+# Networking
- #
--# CONFIG_EMBEDDED_RAMDISK is not set
-+# CONFIG_NET is not set
-
- #
- # Device Drivers
-@@ -183,6 +262,10 @@
- # CONFIG_FW_LOADER is not set
-
- #
-+# Connector - unified userspace <-> kernelspace linker
-+#
-+
-+#
- # Memory Technology Devices (MTD)
- #
- # CONFIG_MTD is not set
-@@ -199,7 +282,6 @@
- #
- # Block devices
- #
--# CONFIG_BLK_DEV_FD is not set
- # CONFIG_BLK_CPQ_DA is not set
- # CONFIG_BLK_CPQ_CISS_DA is not set
- # CONFIG_BLK_DEV_DAC960 is not set
-@@ -211,19 +293,9 @@
- CONFIG_BLK_DEV_RAM_COUNT=16
- CONFIG_BLK_DEV_RAM_SIZE=1024
- CONFIG_BLK_DEV_INITRD=y
--CONFIG_INITRAMFS_SOURCE=""
--# CONFIG_LBD is not set
- # CONFIG_CDROM_PKTCDVD is not set
-
- #
--# IO Schedulers
--#
--CONFIG_IOSCHED_NOOP=y
--CONFIG_IOSCHED_AS=y
--CONFIG_IOSCHED_DEADLINE=y
--CONFIG_IOSCHED_CFQ=y
--
--#
- # ATA/ATAPI/MFM/RLL support
- #
- # CONFIG_IDE is not set
-@@ -231,6 +303,7 @@
- #
- # SCSI device support
- #
-+# CONFIG_RAID_ATTRS is not set
- # CONFIG_SCSI is not set
-
- #
-@@ -241,6 +314,7 @@
- #
- # Fusion MPT device support
- #
-+# CONFIG_FUSION is not set
-
- #
- # IEEE 1394 (FireWire) support
-@@ -253,9 +327,8 @@
- # CONFIG_I2O is not set
-
- #
--# Networking support
-+# Network device support
- #
--# CONFIG_NET is not set
- # CONFIG_NETPOLL is not set
- # CONFIG_NET_POLL_CONTROLLER is not set
-
-@@ -274,25 +347,15 @@
- # CONFIG_INPUT is not set
-
- #
--# Userland interfaces
--#
--
--#
--# Input I/O drivers
-+# Hardware I/O ports
- #
--# CONFIG_GAMEPORT is not set
--CONFIG_SOUND_GAMEPORT=y
- CONFIG_SERIO=y
- # CONFIG_SERIO_I8042 is not set
- # CONFIG_SERIO_SERPORT is not set
--# CONFIG_SERIO_CT82C710 is not set
- # CONFIG_SERIO_PCIPS2 is not set
- # CONFIG_SERIO_LIBPS2 is not set
- # CONFIG_SERIO_RAW is not set
--
--#
--# Input Device Drivers
--#
-+# CONFIG_GAMEPORT is not set
-
- #
- # Character devices
-@@ -309,6 +372,7 @@
- # Non-8250 serial port support
- #
- # CONFIG_SERIAL_SH_SCI is not set
-+# CONFIG_SERIAL_JSM is not set
- CONFIG_UNIX98_PTYS=y
- CONFIG_LEGACY_PTYS=y
- CONFIG_LEGACY_PTY_COUNT=256
-@@ -335,6 +399,12 @@
- # CONFIG_RAW_DRIVER is not set
-
- #
-+# TPM devices
-+#
-+# CONFIG_TCG_TPM is not set
-+# CONFIG_TELCLOCK is not set
-+
-+#
- # I2C support
- #
- # CONFIG_I2C is not set
-@@ -345,10 +415,21 @@
- # CONFIG_W1 is not set
-
- #
-+# Hardware Monitoring support
-+#
-+CONFIG_HWMON=y
-+# CONFIG_HWMON_VID is not set
-+# CONFIG_HWMON_DEBUG_CHIP is not set
-+
-+#
- # Misc devices
- #
-
- #
-+# Multimedia Capabilities Port drivers
-+#
-+
-+#
- # Multimedia devices
- #
- # CONFIG_VIDEO_DEV is not set
-@@ -370,12 +451,12 @@
- #
- # USB support
- #
--# CONFIG_USB is not set
- CONFIG_USB_ARCH_HAS_HCD=y
- CONFIG_USB_ARCH_HAS_OHCI=y
-+# CONFIG_USB is not set
-
- #
--# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
-+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
- #
-
- #
-@@ -394,6 +475,10 @@
- # CONFIG_INFINIBAND is not set
-
- #
-+# SN Devices
-+#
-+
-+#
- # File systems
- #
- # CONFIG_EXT2_FS is not set
-@@ -401,17 +486,16 @@
- # CONFIG_JBD is not set
- # CONFIG_REISERFS_FS is not set
- # CONFIG_JFS_FS is not set
--
--#
--# XFS support
--#
-+# CONFIG_FS_POSIX_ACL is not set
- # CONFIG_XFS_FS is not set
- # CONFIG_MINIX_FS is not set
- CONFIG_ROMFS_FS=y
-+CONFIG_INOTIFY=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
-
- #
- # CD-ROM/DVD Filesystems
-@@ -432,15 +516,11 @@
- CONFIG_PROC_FS=y
- CONFIG_PROC_KCORE=y
- CONFIG_SYSFS=y
--CONFIG_DEVFS_FS=y
--CONFIG_DEVFS_MOUNT=y
--# CONFIG_DEVFS_DEBUG is not set
--# CONFIG_DEVPTS_FS_XATTR is not set
- CONFIG_TMPFS=y
--# CONFIG_TMPFS_XATTR is not set
- # CONFIG_HUGETLBFS is not set
- # CONFIG_HUGETLB_PAGE is not set
- CONFIG_RAMFS=y
-+# CONFIG_RELAYFS_FS is not set
-
- #
- # Miscellaneous filesystems
-@@ -478,8 +558,9 @@
- #
- # Kernel hacking
- #
-+# CONFIG_PRINTK_TIME is not set
- # CONFIG_DEBUG_KERNEL is not set
--CONFIG_DEBUG_PREEMPT=y
-+CONFIG_LOG_BUF_SHIFT=14
- # CONFIG_FRAME_POINTER is not set
- # CONFIG_SH_STANDARD_BIOS is not set
- # CONFIG_EARLY_SCIF_CONSOLE is not set
-@@ -504,6 +585,7 @@
- # Library routines
- #
- # CONFIG_CRC_CCITT is not set
-+# CONFIG_CRC16 is not set
- CONFIG_CRC32=y
- # CONFIG_LIBCRC32C is not set
- CONFIG_ZLIB_INFLATE=y
-diff -ruN linux-2.6.17-vanilla/arch/sh/configs/titan_defconfig linux-2.6.17/arch/sh/configs/titan_defconfig
---- linux-2.6.17-vanilla/arch/sh/configs/titan_defconfig 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/configs/titan_defconfig 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,1551 @@
-+#
-+# Automatically generated make config: don't edit
-+# Linux kernel version: 2.6.17
-+# Thu Jul 6 12:42:07 2006
-+#
-+CONFIG_SUPERH=y
-+CONFIG_RWSEM_GENERIC_SPINLOCK=y
-+CONFIG_GENERIC_FIND_NEXT_BIT=y
-+CONFIG_GENERIC_HWEIGHT=y
-+CONFIG_GENERIC_HARDIRQS=y
-+CONFIG_GENERIC_IRQ_PROBE=y
-+CONFIG_GENERIC_CALIBRATE_DELAY=y
-+
-+#
-+# Code maturity level options
-+#
-+CONFIG_EXPERIMENTAL=y
-+CONFIG_BROKEN_ON_SMP=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-+
-+#
-+# General setup
-+#
-+CONFIG_LOCALVERSION=""
-+CONFIG_LOCALVERSION_AUTO=y
-+CONFIG_SWAP=y
-+CONFIG_SYSVIPC=y
-+CONFIG_POSIX_MQUEUE=y
-+# CONFIG_BSD_PROCESS_ACCT is not set
-+CONFIG_SYSCTL=y
-+# CONFIG_AUDIT is not set
-+CONFIG_IKCONFIG=y
-+CONFIG_IKCONFIG_PROC=y
-+# CONFIG_RELAY is not set
-+CONFIG_INITRAMFS_SOURCE=""
-+CONFIG_UID16=y
-+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-+# CONFIG_EMBEDDED is not set
-+CONFIG_KALLSYMS=y
-+# CONFIG_KALLSYMS_ALL is not set
-+# CONFIG_KALLSYMS_EXTRA_PASS is not set
-+CONFIG_HOTPLUG=y
-+CONFIG_PRINTK=y
-+CONFIG_BUG=y
-+CONFIG_ELF_CORE=y
-+CONFIG_BASE_FULL=y
-+CONFIG_FUTEX=y
-+CONFIG_EPOLL=y
-+CONFIG_SHMEM=y
-+CONFIG_SLAB=y
-+# CONFIG_TINY_SHMEM is not set
-+CONFIG_BASE_SMALL=0
-+# CONFIG_SLOB is not set
-+CONFIG_OBSOLETE_INTERMODULE=m
-+
-+#
-+# Loadable module support
-+#
-+CONFIG_MODULES=y
-+CONFIG_MODULE_UNLOAD=y
-+CONFIG_MODULE_FORCE_UNLOAD=y
-+# CONFIG_MODVERSIONS is not set
-+# CONFIG_MODULE_SRCVERSION_ALL is not set
-+CONFIG_KMOD=y
-+
-+#
-+# Block layer
-+#
-+# CONFIG_LBD is not set
-+# CONFIG_BLK_DEV_IO_TRACE is not set
-+# CONFIG_LSF is not set
-+
-+#
-+# IO Schedulers
-+#
-+CONFIG_IOSCHED_NOOP=y
-+CONFIG_IOSCHED_AS=y
-+CONFIG_IOSCHED_DEADLINE=y
-+CONFIG_IOSCHED_CFQ=y
-+CONFIG_DEFAULT_AS=y
-+# CONFIG_DEFAULT_DEADLINE is not set
-+# CONFIG_DEFAULT_CFQ is not set
-+# CONFIG_DEFAULT_NOOP is not set
-+CONFIG_DEFAULT_IOSCHED="anticipatory"
-+
-+#
-+# System type
-+#
-+# CONFIG_SH_SOLUTION_ENGINE is not set
-+# CONFIG_SH_7751_SOLUTION_ENGINE is not set
-+# CONFIG_SH_7300_SOLUTION_ENGINE is not set
-+# CONFIG_SH_73180_SOLUTION_ENGINE is not set
-+# CONFIG_SH_7751_SYSTEMH is not set
-+# CONFIG_SH_STB1_HARP is not set
-+# CONFIG_SH_STB1_OVERDRIVE is not set
-+# CONFIG_SH_HP6XX is not set
-+# CONFIG_SH_CQREEK is not set
-+# CONFIG_SH_DMIDA is not set
-+# CONFIG_SH_EC3104 is not set
-+# CONFIG_SH_SATURN is not set
-+# CONFIG_SH_DREAMCAST is not set
-+# CONFIG_SH_CAT68701 is not set
-+# CONFIG_SH_BIGSUR is not set
-+# CONFIG_SH_SH2000 is not set
-+# CONFIG_SH_ADX is not set
-+# CONFIG_SH_MPC1211 is not set
-+# CONFIG_SH_SH03 is not set
-+# CONFIG_SH_SECUREEDGE5410 is not set
-+# CONFIG_SH_HS7751RVOIP is not set
-+# CONFIG_SH_RTS7751R2D is not set
-+# CONFIG_SH_R7780RP is not set
-+# CONFIG_SH_EDOSK7705 is not set
-+# CONFIG_SH_SH4202_MICRODEV is not set
-+# CONFIG_SH_LANDISK is not set
-+CONFIG_SH_TITAN=y
-+# CONFIG_SH_UNKNOWN is not set
-+
-+#
-+# Processor selection
-+#
-+CONFIG_CPU_SH4=y
-+
-+#
-+# SH-2 Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_SH7604 is not set
-+
-+#
-+# SH-3 Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_SH7300 is not set
-+# CONFIG_CPU_SUBTYPE_SH7705 is not set
-+# CONFIG_CPU_SUBTYPE_SH7707 is not set
-+# CONFIG_CPU_SUBTYPE_SH7708 is not set
-+# CONFIG_CPU_SUBTYPE_SH7709 is not set
-+
-+#
-+# SH-4 Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_SH7750 is not set
-+# CONFIG_CPU_SUBTYPE_SH7091 is not set
-+# CONFIG_CPU_SUBTYPE_SH7750R is not set
-+# CONFIG_CPU_SUBTYPE_SH7750S is not set
-+CONFIG_CPU_SUBTYPE_SH7751=y
-+CONFIG_CPU_SUBTYPE_SH7751R=y
-+# CONFIG_CPU_SUBTYPE_SH7760 is not set
-+# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+
-+#
-+# ST40 Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_ST40STB1 is not set
-+# CONFIG_CPU_SUBTYPE_ST40GX1 is not set
-+
-+#
-+# SH-4A Processor Support
-+#
-+# CONFIG_CPU_SUBTYPE_SH73180 is not set
-+# CONFIG_CPU_SUBTYPE_SH7770 is not set
-+# CONFIG_CPU_SUBTYPE_SH7780 is not set
-+
-+#
-+# Memory management options
-+#
-+CONFIG_MMU=y
-+CONFIG_SELECT_MEMORY_MODEL=y
-+CONFIG_FLATMEM_MANUAL=y
-+# CONFIG_DISCONTIGMEM_MANUAL is not set
-+# CONFIG_SPARSEMEM_MANUAL is not set
-+CONFIG_FLATMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+# CONFIG_SPARSEMEM_STATIC is not set
-+CONFIG_SPLIT_PTLOCK_CPUS=4
-+
-+#
-+# Cache configuration
-+#
-+# CONFIG_SH_DIRECT_MAPPED is not set
-+# CONFIG_SH_WRITETHROUGH is not set
-+# CONFIG_SH_OCRAM is not set
-+CONFIG_MEMORY_START=0x08030000
-+CONFIG_MEMORY_SIZE=0x7fd0000
-+
-+#
-+# Processor features
-+#
-+CONFIG_CPU_LITTLE_ENDIAN=y
-+CONFIG_SH_RTC=y
-+CONFIG_SH_FPU=y
-+# CONFIG_SH_STORE_QUEUES is not set
-+CONFIG_CPU_HAS_INTEVT=y
-+CONFIG_CPU_HAS_SR_RB=y
-+
-+#
-+# Timer support
-+#
-+CONFIG_SH_TMU=y
-+CONFIG_SH_PCLK_FREQ=30000000
-+
-+#
-+# CPU Frequency scaling
-+#
-+# CONFIG_CPU_FREQ is not set
-+
-+#
-+# DMA support
-+#
-+CONFIG_SH_DMA=y
-+CONFIG_NR_ONCHIP_DMA_CHANNELS=8
-+# CONFIG_NR_DMA_CHANNELS_BOOL is not set
-+
-+#
-+# Companion Chips
-+#
-+# CONFIG_HD6446X_SERIES is not set
-+
-+#
-+# Kernel features
-+#
-+# CONFIG_KEXEC is not set
-+# CONFIG_PREEMPT is not set
-+# CONFIG_SMP is not set
-+
-+#
-+# Boot options
-+#
-+CONFIG_ZERO_PAGE_OFFSET=0x00001000
-+CONFIG_BOOT_LINK_OFFSET=0x009e0000
-+# CONFIG_UBC_WAKEUP is not set
-+CONFIG_CMDLINE_BOOL=y
-+CONFIG_CMDLINE="console=ttySC1,38400N81 root=/dev/nfs ip=:::::eth1:autoconf"
-+
-+#
-+# Bus options
-+#
-+CONFIG_PCI=y
-+CONFIG_SH_PCIDMA_NONCOHERENT=y
-+CONFIG_PCI_AUTO=y
-+CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
-+# CONFIG_PCI_DEBUG is not set
-+
-+#
-+# PCCARD (PCMCIA/CardBus) support
-+#
-+# CONFIG_PCCARD is not set
-+
-+#
-+# PCI Hotplug Support
-+#
-+CONFIG_HOTPLUG_PCI=y
-+# CONFIG_HOTPLUG_PCI_FAKE is not set
-+# CONFIG_HOTPLUG_PCI_CPCI is not set
-+# CONFIG_HOTPLUG_PCI_SHPC is not set
-+
-+#
-+# Executable file formats
-+#
-+CONFIG_BINFMT_ELF=y
-+# CONFIG_BINFMT_FLAT is not set
-+# CONFIG_BINFMT_MISC is not set
-+
-+#
-+# Power management options (EXPERIMENTAL)
-+#
-+# CONFIG_PM is not set
-+
-+#
-+# Networking
-+#
-+CONFIG_NET=y
-+
-+#
-+# Networking options
-+#
-+# CONFIG_NETDEBUG is not set
-+CONFIG_PACKET=y
-+CONFIG_PACKET_MMAP=y
-+CONFIG_UNIX=y
-+CONFIG_XFRM=y
-+# CONFIG_XFRM_USER is not set
-+CONFIG_NET_KEY=y
-+CONFIG_INET=y
-+CONFIG_IP_MULTICAST=y
-+CONFIG_IP_ADVANCED_ROUTER=y
-+CONFIG_ASK_IP_FIB_HASH=y
-+# CONFIG_IP_FIB_TRIE is not set
-+CONFIG_IP_FIB_HASH=y
-+CONFIG_IP_MULTIPLE_TABLES=y
-+# CONFIG_IP_ROUTE_FWMARK is not set
-+CONFIG_IP_ROUTE_MULTIPATH=y
-+CONFIG_IP_ROUTE_MULTIPATH_CACHED=y
-+CONFIG_IP_ROUTE_MULTIPATH_RR=m
-+CONFIG_IP_ROUTE_MULTIPATH_RANDOM=m
-+CONFIG_IP_ROUTE_MULTIPATH_WRANDOM=m
-+CONFIG_IP_ROUTE_MULTIPATH_DRR=m
-+# CONFIG_IP_ROUTE_VERBOSE is not set
-+CONFIG_IP_PNP=y
-+CONFIG_IP_PNP_DHCP=y
-+CONFIG_IP_PNP_BOOTP=y
-+CONFIG_IP_PNP_RARP=y
-+CONFIG_NET_IPIP=y
-+CONFIG_NET_IPGRE=y
-+CONFIG_NET_IPGRE_BROADCAST=y
-+CONFIG_IP_MROUTE=y
-+CONFIG_IP_PIMSM_V1=y
-+CONFIG_IP_PIMSM_V2=y
-+# CONFIG_ARPD is not set
-+CONFIG_SYN_COOKIES=y
-+CONFIG_INET_AH=y
-+CONFIG_INET_ESP=y
-+CONFIG_INET_IPCOMP=y
-+CONFIG_INET_XFRM_TUNNEL=y
-+CONFIG_INET_TUNNEL=y
-+CONFIG_INET_DIAG=m
-+CONFIG_INET_TCP_DIAG=m
-+# CONFIG_TCP_CONG_ADVANCED is not set
-+CONFIG_TCP_CONG_BIC=y
-+
-+#
-+# IP: Virtual Server Configuration
-+#
-+# CONFIG_IP_VS is not set
-+CONFIG_IPV6=y
-+CONFIG_IPV6_PRIVACY=y
-+# CONFIG_IPV6_ROUTER_PREF is not set
-+CONFIG_INET6_AH=y
-+CONFIG_INET6_ESP=y
-+CONFIG_INET6_IPCOMP=y
-+CONFIG_INET6_XFRM_TUNNEL=y
-+CONFIG_INET6_TUNNEL=y
-+CONFIG_IPV6_TUNNEL=y
-+CONFIG_NETFILTER=y
-+# CONFIG_NETFILTER_DEBUG is not set
-+CONFIG_BRIDGE_NETFILTER=y
-+
-+#
-+# Core Netfilter Configuration
-+#
-+CONFIG_NETFILTER_NETLINK=m
-+CONFIG_NETFILTER_NETLINK_QUEUE=m
-+CONFIG_NETFILTER_NETLINK_LOG=m
-+CONFIG_NETFILTER_XTABLES=m
-+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
-+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
-+CONFIG_NETFILTER_XT_TARGET_MARK=m
-+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
-+CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
-+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
-+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
-+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
-+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
-+CONFIG_NETFILTER_XT_MATCH_DCCP=m
-+CONFIG_NETFILTER_XT_MATCH_ESP=m
-+CONFIG_NETFILTER_XT_MATCH_HELPER=m
-+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
-+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
-+CONFIG_NETFILTER_XT_MATCH_MAC=m
-+CONFIG_NETFILTER_XT_MATCH_MARK=m
-+CONFIG_NETFILTER_XT_MATCH_POLICY=m
-+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
-+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
-+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
-+CONFIG_NETFILTER_XT_MATCH_REALM=m
-+CONFIG_NETFILTER_XT_MATCH_SCTP=m
-+CONFIG_NETFILTER_XT_MATCH_STATE=m
-+CONFIG_NETFILTER_XT_MATCH_STRING=m
-+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
-+
-+#
-+# IP: Netfilter Configuration
-+#
-+CONFIG_IP_NF_CONNTRACK=m
-+CONFIG_IP_NF_CT_ACCT=y
-+CONFIG_IP_NF_CONNTRACK_MARK=y
-+CONFIG_IP_NF_CONNTRACK_EVENTS=y
-+CONFIG_IP_NF_CONNTRACK_NETLINK=m
-+# CONFIG_IP_NF_CT_PROTO_SCTP is not set
-+CONFIG_IP_NF_FTP=m
-+CONFIG_IP_NF_IRC=m
-+CONFIG_IP_NF_NETBIOS_NS=m
-+CONFIG_IP_NF_TFTP=m
-+# CONFIG_IP_NF_AMANDA is not set
-+CONFIG_IP_NF_PPTP=m
-+CONFIG_IP_NF_H323=m
-+CONFIG_IP_NF_QUEUE=m
-+CONFIG_IP_NF_IPTABLES=m
-+CONFIG_IP_NF_MATCH_IPRANGE=m
-+CONFIG_IP_NF_MATCH_TOS=m
-+CONFIG_IP_NF_MATCH_RECENT=m
-+CONFIG_IP_NF_MATCH_ECN=m
-+CONFIG_IP_NF_MATCH_DSCP=m
-+CONFIG_IP_NF_MATCH_AH=m
-+CONFIG_IP_NF_MATCH_TTL=m
-+CONFIG_IP_NF_MATCH_OWNER=m
-+CONFIG_IP_NF_MATCH_ADDRTYPE=m
-+CONFIG_IP_NF_MATCH_HASHLIMIT=m
-+CONFIG_IP_NF_FILTER=m
-+CONFIG_IP_NF_TARGET_REJECT=m
-+CONFIG_IP_NF_TARGET_LOG=m
-+CONFIG_IP_NF_TARGET_ULOG=m
-+CONFIG_IP_NF_TARGET_TCPMSS=m
-+CONFIG_IP_NF_NAT=m
-+CONFIG_IP_NF_NAT_NEEDED=y
-+CONFIG_IP_NF_TARGET_MASQUERADE=m
-+CONFIG_IP_NF_TARGET_REDIRECT=m
-+CONFIG_IP_NF_TARGET_NETMAP=m
-+CONFIG_IP_NF_TARGET_SAME=m
-+CONFIG_IP_NF_NAT_SNMP_BASIC=m
-+CONFIG_IP_NF_NAT_IRC=m
-+CONFIG_IP_NF_NAT_FTP=m
-+CONFIG_IP_NF_NAT_TFTP=m
-+CONFIG_IP_NF_NAT_PPTP=m
-+CONFIG_IP_NF_NAT_H323=m
-+CONFIG_IP_NF_MANGLE=m
-+CONFIG_IP_NF_TARGET_TOS=m
-+CONFIG_IP_NF_TARGET_ECN=m
-+CONFIG_IP_NF_TARGET_DSCP=m
-+CONFIG_IP_NF_TARGET_TTL=m
-+CONFIG_IP_NF_TARGET_CLUSTERIP=m
-+CONFIG_IP_NF_RAW=m
-+CONFIG_IP_NF_ARPTABLES=m
-+CONFIG_IP_NF_ARPFILTER=m
-+CONFIG_IP_NF_ARP_MANGLE=m
-+
-+#
-+# IPv6: Netfilter Configuration (EXPERIMENTAL)
-+#
-+CONFIG_IP6_NF_QUEUE=m
-+CONFIG_IP6_NF_IPTABLES=m
-+CONFIG_IP6_NF_MATCH_RT=m
-+CONFIG_IP6_NF_MATCH_OPTS=m
-+CONFIG_IP6_NF_MATCH_FRAG=m
-+CONFIG_IP6_NF_MATCH_HL=m
-+CONFIG_IP6_NF_MATCH_OWNER=m
-+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
-+CONFIG_IP6_NF_MATCH_AH=m
-+CONFIG_IP6_NF_MATCH_EUI64=m
-+CONFIG_IP6_NF_FILTER=m
-+CONFIG_IP6_NF_TARGET_LOG=m
-+CONFIG_IP6_NF_TARGET_REJECT=m
-+CONFIG_IP6_NF_MANGLE=m
-+CONFIG_IP6_NF_TARGET_HL=m
-+CONFIG_IP6_NF_RAW=m
-+
-+#
-+# Bridge: Netfilter Configuration
-+#
-+# CONFIG_BRIDGE_NF_EBTABLES is not set
-+
-+#
-+# DCCP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_DCCP is not set
-+
-+#
-+# SCTP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_SCTP is not set
-+
-+#
-+# TIPC Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_TIPC is not set
-+# CONFIG_ATM is not set
-+CONFIG_BRIDGE=y
-+CONFIG_VLAN_8021Q=y
-+# CONFIG_DECNET is not set
-+CONFIG_LLC=y
-+# CONFIG_LLC2 is not set
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
-+# CONFIG_X25 is not set
-+# CONFIG_LAPB is not set
-+# CONFIG_NET_DIVERT is not set
-+# CONFIG_ECONET is not set
-+# CONFIG_WAN_ROUTER is not set
-+
-+#
-+# QoS and/or fair queueing
-+#
-+CONFIG_NET_SCHED=y
-+CONFIG_NET_SCH_CLK_JIFFIES=y
-+# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
-+# CONFIG_NET_SCH_CLK_CPU is not set
-+
-+#
-+# Queueing/Scheduling
-+#
-+CONFIG_NET_SCH_CBQ=m
-+CONFIG_NET_SCH_HTB=m
-+CONFIG_NET_SCH_HFSC=m
-+CONFIG_NET_SCH_PRIO=m
-+CONFIG_NET_SCH_RED=m
-+CONFIG_NET_SCH_SFQ=m
-+CONFIG_NET_SCH_TEQL=m
-+CONFIG_NET_SCH_TBF=m
-+CONFIG_NET_SCH_GRED=m
-+CONFIG_NET_SCH_DSMARK=m
-+CONFIG_NET_SCH_NETEM=m
-+CONFIG_NET_SCH_INGRESS=m
-+
-+#
-+# Classification
-+#
-+CONFIG_NET_CLS=y
-+CONFIG_NET_CLS_BASIC=m
-+CONFIG_NET_CLS_TCINDEX=m
-+CONFIG_NET_CLS_ROUTE4=m
-+CONFIG_NET_CLS_ROUTE=y
-+CONFIG_NET_CLS_FW=m
-+CONFIG_NET_CLS_U32=m
-+CONFIG_CLS_U32_PERF=y
-+CONFIG_CLS_U32_MARK=y
-+CONFIG_NET_CLS_RSVP=m
-+CONFIG_NET_CLS_RSVP6=m
-+CONFIG_NET_EMATCH=y
-+CONFIG_NET_EMATCH_STACK=32
-+CONFIG_NET_EMATCH_CMP=m
-+CONFIG_NET_EMATCH_NBYTE=m
-+CONFIG_NET_EMATCH_U32=m
-+CONFIG_NET_EMATCH_META=m
-+CONFIG_NET_EMATCH_TEXT=m
-+CONFIG_NET_CLS_ACT=y
-+CONFIG_NET_ACT_POLICE=m
-+CONFIG_NET_ACT_GACT=m
-+CONFIG_GACT_PROB=y
-+CONFIG_NET_ACT_MIRRED=m
-+CONFIG_NET_ACT_IPT=m
-+CONFIG_NET_ACT_PEDIT=m
-+# CONFIG_NET_ACT_SIMP is not set
-+CONFIG_NET_CLS_IND=y
-+CONFIG_NET_ESTIMATOR=y
-+
-+#
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+# CONFIG_HAMRADIO is not set
-+# CONFIG_IRDA is not set
-+# CONFIG_BT is not set
-+CONFIG_IEEE80211=y
-+# CONFIG_IEEE80211_DEBUG is not set
-+CONFIG_IEEE80211_CRYPT_WEP=y
-+CONFIG_IEEE80211_CRYPT_CCMP=y
-+CONFIG_IEEE80211_CRYPT_TKIP=y
-+CONFIG_IEEE80211_SOFTMAC=m
-+# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
-+CONFIG_WIRELESS_EXT=y
-+
-+#
-+# Device Drivers
-+#
-+
-+#
-+# Generic Driver Options
-+#
-+CONFIG_STANDALONE=y
-+CONFIG_PREVENT_FIRMWARE_BUILD=y
-+CONFIG_FW_LOADER=m
-+# CONFIG_DEBUG_DRIVER is not set
-+
-+#
-+# Connector - unified userspace <-> kernelspace linker
-+#
-+CONFIG_CONNECTOR=m
-+
-+#
-+# Memory Technology Devices (MTD)
-+#
-+CONFIG_MTD=m
-+CONFIG_MTD_DEBUG=y
-+CONFIG_MTD_DEBUG_VERBOSE=0
-+# CONFIG_MTD_CONCAT is not set
-+# CONFIG_MTD_PARTITIONS is not set
-+
-+#
-+# User Modules And Translation Layers
-+#
-+CONFIG_MTD_CHAR=m
-+CONFIG_MTD_BLOCK=m
-+# CONFIG_MTD_BLOCK_RO is not set
-+CONFIG_FTL=m
-+CONFIG_NFTL=m
-+# CONFIG_NFTL_RW is not set
-+CONFIG_INFTL=m
-+CONFIG_RFD_FTL=m
-+
-+#
-+# RAM/ROM/Flash chip drivers
-+#
-+CONFIG_MTD_CFI=m
-+CONFIG_MTD_JEDECPROBE=m
-+CONFIG_MTD_GEN_PROBE=m
-+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
-+CONFIG_MTD_MAP_BANK_WIDTH_1=y
-+CONFIG_MTD_MAP_BANK_WIDTH_2=y
-+CONFIG_MTD_MAP_BANK_WIDTH_4=y
-+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-+CONFIG_MTD_CFI_I1=y
-+CONFIG_MTD_CFI_I2=y
-+# CONFIG_MTD_CFI_I4 is not set
-+# CONFIG_MTD_CFI_I8 is not set
-+# CONFIG_MTD_CFI_INTELEXT is not set
-+# CONFIG_MTD_CFI_AMDSTD is not set
-+# CONFIG_MTD_CFI_STAA is not set
-+# CONFIG_MTD_RAM is not set
-+# CONFIG_MTD_ROM is not set
-+# CONFIG_MTD_ABSENT is not set
-+# CONFIG_MTD_OBSOLETE_CHIPS is not set
-+
-+#
-+# Mapping drivers for chip access
-+#
-+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-+# CONFIG_MTD_PHYSMAP is not set
-+# CONFIG_MTD_SOLUTIONENGINE is not set
-+# CONFIG_MTD_PLATRAM is not set
-+
-+#
-+# Self-contained MTD device drivers
-+#
-+# CONFIG_MTD_PMC551 is not set
-+# CONFIG_MTD_SLRAM is not set
-+# CONFIG_MTD_PHRAM is not set
-+# CONFIG_MTD_MTDRAM is not set
-+# CONFIG_MTD_BLOCK2MTD is not set
-+
-+#
-+# Disk-On-Chip Device Drivers
-+#
-+# CONFIG_MTD_DOC2000 is not set
-+# CONFIG_MTD_DOC2001 is not set
-+# CONFIG_MTD_DOC2001PLUS is not set
-+
-+#
-+# NAND Flash Device Drivers
-+#
-+CONFIG_MTD_NAND=m
-+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-+CONFIG_MTD_NAND_IDS=m
-+# CONFIG_MTD_NAND_DISKONCHIP is not set
-+
-+#
-+# OneNAND Flash Device Drivers
-+#
-+# CONFIG_MTD_ONENAND is not set
-+
-+#
-+# Parallel port support
-+#
-+# CONFIG_PARPORT is not set
-+
-+#
-+# Plug and Play support
-+#
-+
-+#
-+# Block devices
-+#
-+# CONFIG_BLK_CPQ_DA is not set
-+# CONFIG_BLK_CPQ_CISS_DA is not set
-+# CONFIG_BLK_DEV_DAC960 is not set
-+CONFIG_BLK_SSFDC=y
-+# CONFIG_BLK_DEV_UMEM is not set
-+# CONFIG_BLK_DEV_COW_COMMON is not set
-+CONFIG_BLK_DEV_LOOP=m
-+CONFIG_BLK_DEV_CRYPTOLOOP=m
-+# CONFIG_BLK_DEV_NBD is not set
-+# CONFIG_BLK_DEV_SX8 is not set
-+# CONFIG_BLK_DEV_UB is not set
-+CONFIG_BLK_DEV_RAM=y
-+CONFIG_BLK_DEV_RAM_COUNT=16
-+CONFIG_BLK_DEV_RAM_SIZE=4096
-+CONFIG_BLK_DEV_INITRD=y
-+# CONFIG_CDROM_PKTCDVD is not set
-+CONFIG_ATA_OVER_ETH=m
-+
-+#
-+# ATA/ATAPI/MFM/RLL support
-+#
-+# CONFIG_IDE is not set
-+
-+#
-+# SCSI device support
-+#
-+# CONFIG_RAID_ATTRS is not set
-+CONFIG_SCSI=y
-+CONFIG_SCSI_PROC_FS=y
-+
-+#
-+# SCSI support type (disk, tape, CD-ROM)
-+#
-+CONFIG_BLK_DEV_SD=m
-+# CONFIG_CHR_DEV_ST is not set
-+# CONFIG_CHR_DEV_OSST is not set
-+CONFIG_BLK_DEV_SR=m
-+# CONFIG_BLK_DEV_SR_VENDOR is not set
-+CONFIG_CHR_DEV_SG=m
-+# CONFIG_CHR_DEV_SCH is not set
-+
-+#
-+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-+#
-+# CONFIG_SCSI_MULTI_LUN is not set
-+# CONFIG_SCSI_CONSTANTS is not set
-+# CONFIG_SCSI_LOGGING is not set
-+
-+#
-+# SCSI Transport Attributes
-+#
-+# CONFIG_SCSI_SPI_ATTRS is not set
-+# CONFIG_SCSI_FC_ATTRS is not set
-+# CONFIG_SCSI_ISCSI_ATTRS is not set
-+# CONFIG_SCSI_SAS_ATTRS is not set
-+
-+#
-+# SCSI low-level drivers
-+#
-+# CONFIG_ISCSI_TCP is not set
-+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
-+# CONFIG_SCSI_3W_9XXX is not set
-+# CONFIG_SCSI_ACARD is not set
-+# CONFIG_SCSI_AACRAID is not set
-+# CONFIG_SCSI_AIC7XXX is not set
-+# CONFIG_SCSI_AIC7XXX_OLD is not set
-+# CONFIG_SCSI_AIC79XX is not set
-+# CONFIG_SCSI_DPT_I2O is not set
-+# CONFIG_MEGARAID_NEWGEN is not set
-+# CONFIG_MEGARAID_LEGACY is not set
-+# CONFIG_MEGARAID_SAS is not set
-+# CONFIG_SCSI_SATA is not set
-+# CONFIG_SCSI_DMX3191D is not set
-+# CONFIG_SCSI_FUTURE_DOMAIN is not set
-+# CONFIG_SCSI_IPS is not set
-+# CONFIG_SCSI_INITIO is not set
-+# CONFIG_SCSI_INIA100 is not set
-+# CONFIG_SCSI_SYM53C8XX_2 is not set
-+# CONFIG_SCSI_IPR is not set
-+# CONFIG_SCSI_QLOGIC_1280 is not set
-+# CONFIG_SCSI_QLA_FC is not set
-+# CONFIG_SCSI_LPFC is not set
-+# CONFIG_SCSI_DC395x is not set
-+# CONFIG_SCSI_DC390T is not set
-+# CONFIG_SCSI_NSP32 is not set
-+# CONFIG_SCSI_DEBUG is not set
-+
-+#
-+# Multi-device support (RAID and LVM)
-+#
-+# CONFIG_MD is not set
-+
-+#
-+# Fusion MPT device 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
-+#
-+# CONFIG_IEEE1394 is not set
-+
-+#
-+# I2O device support
-+#
-+# CONFIG_I2O is not set
-+
-+#
-+# Network device support
-+#
-+CONFIG_NETDEVICES=y
-+# CONFIG_IFB is not set
-+# CONFIG_DUMMY is not set
-+# CONFIG_BONDING is not set
-+# CONFIG_EQUALIZER is not set
-+CONFIG_TUN=m
-+
-+#
-+# ARCnet devices
-+#
-+# CONFIG_ARCNET is not set
-+
-+#
-+# PHY device support
-+#
-+CONFIG_PHYLIB=m
-+
-+#
-+# MII PHY device drivers
-+#
-+CONFIG_MARVELL_PHY=m
-+CONFIG_DAVICOM_PHY=m
-+CONFIG_QSEMI_PHY=m
-+CONFIG_LXT_PHY=m
-+CONFIG_CICADA_PHY=m
-+
-+#
-+# Ethernet (10 or 100Mbit)
-+#
-+CONFIG_NET_ETHERNET=y
-+CONFIG_MII=y
-+# CONFIG_STNIC is not set
-+# CONFIG_HAPPYMEAL is not set
-+# CONFIG_SUNGEM is not set
-+# CONFIG_CASSINI is not set
-+# CONFIG_NET_VENDOR_3COM is not set
-+# CONFIG_SMC91X is not set
-+
-+#
-+# Tulip family network device support
-+#
-+# CONFIG_NET_TULIP is not set
-+# CONFIG_HP100 is not set
-+# CONFIG_NE2000 is not set
-+CONFIG_NET_PCI=y
-+# CONFIG_PCNET32 is not set
-+# CONFIG_AMD8111_ETH is not set
-+# CONFIG_ADAPTEC_STARFIRE is not set
-+# CONFIG_B44 is not set
-+# CONFIG_FORCEDETH is not set
-+# CONFIG_DGRS is not set
-+# CONFIG_EEPRO100 is not set
-+# CONFIG_E100 is not set
-+# CONFIG_FEALNX is not set
-+# CONFIG_NATSEMI is not set
-+# CONFIG_NE2K_PCI is not set
-+# CONFIG_8139CP is not set
-+CONFIG_8139TOO=y
-+# CONFIG_8139TOO_PIO is not set
-+CONFIG_8139TOO_TUNE_TWISTER=y
-+# CONFIG_8139TOO_8129 is not set
-+CONFIG_8139_OLD_RX_RESET=y
-+# CONFIG_SIS900 is not set
-+# CONFIG_EPIC100 is not set
-+# CONFIG_SUNDANCE is not set
-+# CONFIG_TLAN is not set
-+# CONFIG_VIA_RHINE is not set
-+
-+#
-+# Ethernet (1000 Mbit)
-+#
-+# CONFIG_ACENIC is not set
-+# CONFIG_DL2K is not set
-+# CONFIG_E1000 is not set
-+# CONFIG_NS83820 is not set
-+# CONFIG_HAMACHI is not set
-+# CONFIG_YELLOWFIN is not set
-+# CONFIG_R8169 is not set
-+# CONFIG_SIS190 is not set
-+# CONFIG_SKGE is not set
-+# CONFIG_SKY2 is not set
-+# CONFIG_SK98LIN is not set
-+# CONFIG_VIA_VELOCITY is not set
-+# CONFIG_TIGON3 is not set
-+# CONFIG_BNX2 is not set
-+
-+#
-+# Ethernet (10000 Mbit)
-+#
-+# CONFIG_CHELSIO_T1 is not set
-+# CONFIG_IXGB is not set
-+# CONFIG_S2IO is not set
-+
-+#
-+# Token Ring devices
-+#
-+# CONFIG_TR is not set
-+
-+#
-+# Wireless LAN (non-hamradio)
-+#
-+CONFIG_NET_RADIO=y
-+CONFIG_NET_WIRELESS_RTNETLINK=y
-+
-+#
-+# Obsolete Wireless cards support (pre-802.11)
-+#
-+# CONFIG_STRIP is not set
-+
-+#
-+# Wireless 802.11b ISA/PCI cards support
-+#
-+# CONFIG_IPW2100 is not set
-+# CONFIG_IPW2200 is not set
-+# CONFIG_HERMES is not set
-+# CONFIG_ATMEL is not set
-+
-+#
-+# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
-+#
-+CONFIG_PRISM54=m
-+# CONFIG_HOSTAP is not set
-+CONFIG_BCM43XX=m
-+CONFIG_BCM43XX_DEBUG=y
-+CONFIG_BCM43XX_DMA=y
-+CONFIG_BCM43XX_PIO=y
-+CONFIG_BCM43XX_DMA_AND_PIO_MODE=y
-+# CONFIG_BCM43XX_DMA_MODE is not set
-+# CONFIG_BCM43XX_PIO_MODE is not set
-+CONFIG_NET_WIRELESS=y
-+
-+#
-+# Wan interfaces
-+#
-+# CONFIG_WAN is not set
-+# CONFIG_FDDI is not set
-+# CONFIG_HIPPI is not set
-+CONFIG_PPP=m
-+CONFIG_PPP_MULTILINK=y
-+CONFIG_PPP_FILTER=y
-+CONFIG_PPP_ASYNC=m
-+CONFIG_PPP_SYNC_TTY=m
-+CONFIG_PPP_DEFLATE=m
-+CONFIG_PPP_BSDCOMP=m
-+CONFIG_PPP_MPPE=m
-+CONFIG_PPPOE=m
-+CONFIG_SLIP=m
-+CONFIG_SLIP_COMPRESSED=y
-+CONFIG_SLIP_SMART=y
-+# CONFIG_SLIP_MODE_SLIP6 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
-+
-+#
-+# ISDN subsystem
-+#
-+# CONFIG_ISDN is not set
-+
-+#
-+# Telephony Support
-+#
-+# CONFIG_PHONE is not set
-+
-+#
-+# Input device support
-+#
-+CONFIG_INPUT=y
-+
-+#
-+# Userland interfaces
-+#
-+CONFIG_INPUT_MOUSEDEV=y
-+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-+# CONFIG_INPUT_JOYDEV is not set
-+# CONFIG_INPUT_TSDEV is not set
-+# CONFIG_INPUT_EVDEV is not set
-+# CONFIG_INPUT_EVBUG is not set
-+
-+#
-+# Input Device Drivers
-+#
-+# CONFIG_INPUT_KEYBOARD is not set
-+# CONFIG_INPUT_MOUSE is not set
-+# CONFIG_INPUT_JOYSTICK is not set
-+# CONFIG_INPUT_TOUCHSCREEN is not set
-+# CONFIG_INPUT_MISC is not set
-+
-+#
-+# Hardware I/O ports
-+#
-+# CONFIG_SERIO is not set
-+# CONFIG_GAMEPORT is not set
-+
-+#
-+# Character devices
-+#
-+CONFIG_VT=y
-+CONFIG_VT_CONSOLE=y
-+CONFIG_HW_CONSOLE=y
-+# CONFIG_SERIAL_NONSTANDARD is not set
-+
-+#
-+# Serial drivers
-+#
-+# CONFIG_SERIAL_8250 is not set
-+
-+#
-+# Non-8250 serial port support
-+#
-+CONFIG_SERIAL_SH_SCI=y
-+CONFIG_SERIAL_SH_SCI_CONSOLE=y
-+CONFIG_SERIAL_CORE=y
-+CONFIG_SERIAL_CORE_CONSOLE=y
-+# CONFIG_SERIAL_JSM is not set
-+CONFIG_UNIX98_PTYS=y
-+CONFIG_LEGACY_PTYS=y
-+CONFIG_LEGACY_PTY_COUNT=256
-+
-+#
-+# IPMI
-+#
-+# CONFIG_IPMI_HANDLER is not set
-+
-+#
-+# Watchdog Cards
-+#
-+CONFIG_WATCHDOG=y
-+# CONFIG_WATCHDOG_NOWAYOUT is not set
-+
-+#
-+# Watchdog Device Drivers
-+#
-+# CONFIG_SOFT_WATCHDOG is not set
-+CONFIG_SH_WDT=m
-+
-+#
-+# PCI-based Watchdog Cards
-+#
-+# CONFIG_PCIPCWATCHDOG is not set
-+# CONFIG_WDTPCI is not set
-+
-+#
-+# USB-based Watchdog Cards
-+#
-+# CONFIG_USBPCWATCHDOG is not set
-+# CONFIG_RTC is not set
-+# CONFIG_GEN_RTC is not set
-+# CONFIG_DTLK is not set
-+# CONFIG_R3964 is not set
-+# CONFIG_APPLICOM is not set
-+
-+#
-+# Ftape, the floppy tape device driver
-+#
-+# CONFIG_DRM is not set
-+# CONFIG_RAW_DRIVER is not set
-+
-+#
-+# TPM devices
-+#
-+# CONFIG_TCG_TPM is not set
-+# CONFIG_TELCLOCK is not set
-+
-+#
-+# I2C support
-+#
-+# CONFIG_I2C is not set
-+
-+#
-+# SPI support
-+#
-+# CONFIG_SPI is not set
-+# CONFIG_SPI_MASTER is not set
-+
-+#
-+# Dallas's 1-wire bus
-+#
-+# CONFIG_W1 is not set
-+
-+#
-+# Hardware Monitoring support
-+#
-+CONFIG_HWMON=y
-+# CONFIG_HWMON_VID is not set
-+# CONFIG_SENSORS_F71805F is not set
-+# CONFIG_HWMON_DEBUG_CHIP is not set
-+
-+#
-+# Misc devices
-+#
-+
-+#
-+# Multimedia devices
-+#
-+# CONFIG_VIDEO_DEV is not set
-+CONFIG_VIDEO_V4L2=y
-+
-+#
-+# Digital Video Broadcasting Devices
-+#
-+# CONFIG_DVB is not set
-+# CONFIG_USB_DABUSB is not set
-+
-+#
-+# Graphics support
-+#
-+# CONFIG_FB is not set
-+
-+#
-+# Console display driver support
-+#
-+CONFIG_DUMMY_CONSOLE=y
-+
-+#
-+# Sound
-+#
-+# CONFIG_SOUND is not set
-+
-+#
-+# USB support
-+#
-+CONFIG_USB_ARCH_HAS_HCD=y
-+CONFIG_USB_ARCH_HAS_OHCI=y
-+CONFIG_USB_ARCH_HAS_EHCI=y
-+CONFIG_USB=y
-+# CONFIG_USB_DEBUG is not set
-+
-+#
-+# Miscellaneous USB options
-+#
-+CONFIG_USB_DEVICEFS=y
-+# CONFIG_USB_BANDWIDTH is not set
-+# CONFIG_USB_DYNAMIC_MINORS is not set
-+# CONFIG_USB_OTG is not set
-+
-+#
-+# USB Host Controller Drivers
-+#
-+CONFIG_USB_EHCI_HCD=y
-+# CONFIG_USB_EHCI_SPLIT_ISO is not set
-+# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-+# CONFIG_USB_ISP116X_HCD is not set
-+CONFIG_USB_OHCI_HCD=y
-+# CONFIG_USB_OHCI_BIG_ENDIAN is not set
-+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-+# CONFIG_USB_UHCI_HCD is not set
-+# CONFIG_USB_SL811_HCD is not set
-+
-+#
-+# USB Device Class drivers
-+#
-+CONFIG_USB_ACM=m
-+CONFIG_USB_PRINTER=m
-+
-+#
-+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
-+#
-+
-+#
-+# may also be needed; see USB_STORAGE Help for more information
-+#
-+CONFIG_USB_STORAGE=y
-+# CONFIG_USB_STORAGE_DEBUG is not set
-+# CONFIG_USB_STORAGE_DATAFAB is not set
-+# CONFIG_USB_STORAGE_FREECOM is not set
-+# CONFIG_USB_STORAGE_DPCM is not set
-+# CONFIG_USB_STORAGE_USBAT is not set
-+# CONFIG_USB_STORAGE_SDDR09 is not set
-+# CONFIG_USB_STORAGE_SDDR55 is not set
-+# CONFIG_USB_STORAGE_JUMPSHOT is not set
-+# CONFIG_USB_STORAGE_ALAUDA is not set
-+# CONFIG_USB_LIBUSUAL is not set
-+
-+#
-+# USB Input Devices
-+#
-+# CONFIG_USB_HID is not set
-+
-+#
-+# USB HID Boot Protocol drivers
-+#
-+# CONFIG_USB_KBD is not set
-+# CONFIG_USB_MOUSE is not set
-+# CONFIG_USB_AIPTEK is not set
-+# CONFIG_USB_WACOM is not set
-+# CONFIG_USB_ACECAD is not set
-+# CONFIG_USB_KBTAB is not set
-+# CONFIG_USB_POWERMATE is not set
-+# CONFIG_USB_TOUCHSCREEN is not set
-+# CONFIG_USB_YEALINK is not set
-+# CONFIG_USB_XPAD is not set
-+# CONFIG_USB_ATI_REMOTE is not set
-+# CONFIG_USB_ATI_REMOTE2 is not set
-+# CONFIG_USB_KEYSPAN_REMOTE is not set
-+# CONFIG_USB_APPLETOUCH is not set
-+
-+#
-+# USB Imaging devices
-+#
-+# CONFIG_USB_MDC800 is not set
-+# CONFIG_USB_MICROTEK is not set
-+
-+#
-+# USB Network Adapters
-+#
-+# CONFIG_USB_CATC is not set
-+# CONFIG_USB_KAWETH is not set
-+# CONFIG_USB_PEGASUS is not set
-+# CONFIG_USB_RTL8150 is not set
-+# CONFIG_USB_USBNET is not set
-+# CONFIG_USB_ZD1201 is not set
-+CONFIG_USB_MON=y
-+
-+#
-+# USB port drivers
-+#
-+
-+#
-+# USB Serial Converter support
-+#
-+CONFIG_USB_SERIAL=m
-+CONFIG_USB_SERIAL_GENERIC=y
-+# CONFIG_USB_SERIAL_AIRPRIME is not set
-+# CONFIG_USB_SERIAL_ANYDATA is not set
-+CONFIG_USB_SERIAL_ARK3116=m
-+# CONFIG_USB_SERIAL_BELKIN is not set
-+# CONFIG_USB_SERIAL_WHITEHEAT is not set
-+# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
-+# CONFIG_USB_SERIAL_CP2101 is not set
-+# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
-+# CONFIG_USB_SERIAL_EMPEG is not set
-+# CONFIG_USB_SERIAL_FTDI_SIO is not set
-+# CONFIG_USB_SERIAL_FUNSOFT is not set
-+# CONFIG_USB_SERIAL_VISOR is not set
-+# CONFIG_USB_SERIAL_IPAQ is not set
-+# CONFIG_USB_SERIAL_IR is not set
-+# CONFIG_USB_SERIAL_EDGEPORT is not set
-+# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
-+# CONFIG_USB_SERIAL_GARMIN is not set
-+# CONFIG_USB_SERIAL_IPW is not set
-+# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
-+# CONFIG_USB_SERIAL_KEYSPAN is not set
-+# CONFIG_USB_SERIAL_KLSI is not set
-+# CONFIG_USB_SERIAL_KOBIL_SCT is not set
-+# CONFIG_USB_SERIAL_MCT_U232 is not set
-+# CONFIG_USB_SERIAL_NAVMAN is not set
-+CONFIG_USB_SERIAL_PL2303=m
-+# CONFIG_USB_SERIAL_HP4X is not set
-+# CONFIG_USB_SERIAL_SAFE is not set
-+# CONFIG_USB_SERIAL_TI is not set
-+# CONFIG_USB_SERIAL_CYBERJACK is not set
-+# CONFIG_USB_SERIAL_XIRCOM is not set
-+# CONFIG_USB_SERIAL_OMNINET is not set
-+
-+#
-+# USB Miscellaneous drivers
-+#
-+# CONFIG_USB_EMI62 is not set
-+# CONFIG_USB_EMI26 is not set
-+# CONFIG_USB_AUERSWALD is not set
-+# CONFIG_USB_RIO500 is not set
-+# CONFIG_USB_LEGOTOWER is not set
-+# CONFIG_USB_LCD is not set
-+# CONFIG_USB_LED is not set
-+# CONFIG_USB_CYTHERM is not set
-+# CONFIG_USB_PHIDGETKIT is not set
-+# CONFIG_USB_PHIDGETSERVO is not set
-+# CONFIG_USB_IDMOUSE is not set
-+# CONFIG_USB_SISUSBVGA is not set
-+# CONFIG_USB_LD is not set
-+# CONFIG_USB_TEST is not set
-+
-+#
-+# USB DSL modem support
-+#
-+
-+#
-+# USB Gadget Support
-+#
-+# CONFIG_USB_GADGET is not set
-+
-+#
-+# MMC/SD Card support
-+#
-+# CONFIG_MMC is not set
-+
-+#
-+# LED devices
-+#
-+# CONFIG_NEW_LEDS is not set
-+
-+#
-+# LED drivers
-+#
-+
-+#
-+# LED Triggers
-+#
-+
-+#
-+# InfiniBand support
-+#
-+# CONFIG_INFINIBAND is not set
-+
-+#
-+# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
-+#
-+
-+#
-+# Real Time Clock
-+#
-+# CONFIG_RTC_CLASS is not set
-+
-+#
-+# File systems
-+#
-+CONFIG_EXT2_FS=y
-+# CONFIG_EXT2_FS_XATTR is not set
-+# CONFIG_EXT2_FS_XIP is not set
-+CONFIG_EXT3_FS=y
-+# CONFIG_EXT3_FS_XATTR is not set
-+CONFIG_JBD=y
-+# CONFIG_JBD_DEBUG is not set
-+CONFIG_REISERFS_FS=m
-+# CONFIG_REISERFS_CHECK is not set
-+# CONFIG_REISERFS_PROC_INFO is not set
-+# CONFIG_REISERFS_FS_XATTR is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_FS_POSIX_ACL is not set
-+CONFIG_XFS_FS=m
-+CONFIG_XFS_EXPORT=y
-+# CONFIG_XFS_QUOTA is not set
-+# CONFIG_XFS_SECURITY is not set
-+# CONFIG_XFS_POSIX_ACL is not set
-+# CONFIG_XFS_RT is not set
-+# CONFIG_OCFS2_FS is not set
-+# CONFIG_MINIX_FS is not set
-+# CONFIG_ROMFS_FS is not set
-+CONFIG_INOTIFY=y
-+# CONFIG_QUOTA is not set
-+CONFIG_DNOTIFY=y
-+# CONFIG_AUTOFS_FS is not set
-+# CONFIG_AUTOFS4_FS is not set
-+CONFIG_FUSE_FS=m
-+
-+#
-+# CD-ROM/DVD Filesystems
-+#
-+CONFIG_ISO9660_FS=m
-+CONFIG_JOLIET=y
-+CONFIG_ZISOFS=y
-+CONFIG_ZISOFS_FS=m
-+CONFIG_UDF_FS=m
-+CONFIG_UDF_NLS=y
-+
-+#
-+# DOS/FAT/NT Filesystems
-+#
-+CONFIG_FAT_FS=m
-+CONFIG_MSDOS_FS=m
-+CONFIG_VFAT_FS=m
-+CONFIG_FAT_DEFAULT_CODEPAGE=437
-+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-+# CONFIG_NTFS_FS is not set
-+
-+#
-+# Pseudo filesystems
-+#
-+CONFIG_PROC_FS=y
-+CONFIG_PROC_KCORE=y
-+CONFIG_SYSFS=y
-+CONFIG_TMPFS=y
-+# CONFIG_HUGETLBFS is not set
-+# CONFIG_HUGETLB_PAGE is not set
-+CONFIG_RAMFS=y
-+CONFIG_CONFIGFS_FS=m
-+
-+#
-+# Miscellaneous filesystems
-+#
-+# CONFIG_ADFS_FS is not set
-+# CONFIG_AFFS_FS is not set
-+# CONFIG_HFS_FS is not set
-+# CONFIG_HFSPLUS_FS is not set
-+# CONFIG_BEFS_FS is not set
-+# CONFIG_BFS_FS is not set
-+# CONFIG_EFS_FS is not set
-+# CONFIG_JFFS_FS is not set
-+# CONFIG_JFFS2_FS is not set
-+# CONFIG_CRAMFS is not set
-+# CONFIG_VXFS_FS is not set
-+# CONFIG_HPFS_FS is not set
-+# CONFIG_QNX4FS_FS is not set
-+# CONFIG_SYSV_FS is not set
-+# CONFIG_UFS_FS is not set
-+
-+#
-+# Network File Systems
-+#
-+CONFIG_NFS_FS=y
-+CONFIG_NFS_V3=y
-+# CONFIG_NFS_V3_ACL is not set
-+# CONFIG_NFS_V4 is not set
-+# CONFIG_NFS_DIRECTIO is not set
-+CONFIG_NFSD=y
-+CONFIG_NFSD_V3=y
-+# CONFIG_NFSD_V3_ACL is not set
-+# CONFIG_NFSD_V4 is not set
-+CONFIG_NFSD_TCP=y
-+CONFIG_ROOT_NFS=y
-+CONFIG_LOCKD=y
-+CONFIG_LOCKD_V4=y
-+CONFIG_EXPORTFS=y
-+CONFIG_NFS_COMMON=y
-+CONFIG_SUNRPC=y
-+# CONFIG_RPCSEC_GSS_KRB5 is not set
-+# CONFIG_RPCSEC_GSS_SPKM3 is not set
-+CONFIG_SMB_FS=m
-+# CONFIG_SMB_NLS_DEFAULT is not set
-+# CONFIG_CIFS is not set
-+# CONFIG_NCP_FS is not set
-+# CONFIG_CODA_FS is not set
-+# CONFIG_AFS_FS is not set
-+CONFIG_9P_FS=m
-+
-+#
-+# Partition Types
-+#
-+CONFIG_PARTITION_ADVANCED=y
-+# CONFIG_ACORN_PARTITION is not set
-+# CONFIG_OSF_PARTITION is not set
-+# CONFIG_AMIGA_PARTITION is not set
-+# CONFIG_ATARI_PARTITION is not set
-+# CONFIG_MAC_PARTITION is not set
-+CONFIG_MSDOS_PARTITION=y
-+# CONFIG_BSD_DISKLABEL is not set
-+# CONFIG_MINIX_SUBPARTITION is not set
-+# CONFIG_SOLARIS_X86_PARTITION is not set
-+# CONFIG_UNIXWARE_DISKLABEL is not set
-+# CONFIG_LDM_PARTITION is not set
-+# CONFIG_SGI_PARTITION is not set
-+# CONFIG_ULTRIX_PARTITION is not set
-+# CONFIG_SUN_PARTITION is not set
-+# CONFIG_KARMA_PARTITION is not set
-+# CONFIG_EFI_PARTITION is not set
-+
-+#
-+# Native Language Support
-+#
-+CONFIG_NLS=m
-+CONFIG_NLS_DEFAULT="iso8859-1"
-+CONFIG_NLS_CODEPAGE_437=m
-+# CONFIG_NLS_CODEPAGE_737 is not set
-+# CONFIG_NLS_CODEPAGE_775 is not set
-+# CONFIG_NLS_CODEPAGE_850 is not set
-+# CONFIG_NLS_CODEPAGE_852 is not set
-+# CONFIG_NLS_CODEPAGE_855 is not set
-+# CONFIG_NLS_CODEPAGE_857 is not set
-+# CONFIG_NLS_CODEPAGE_860 is not set
-+# CONFIG_NLS_CODEPAGE_861 is not set
-+# CONFIG_NLS_CODEPAGE_862 is not set
-+# CONFIG_NLS_CODEPAGE_863 is not set
-+# CONFIG_NLS_CODEPAGE_864 is not set
-+# CONFIG_NLS_CODEPAGE_865 is not set
-+# CONFIG_NLS_CODEPAGE_866 is not set
-+# CONFIG_NLS_CODEPAGE_869 is not set
-+# CONFIG_NLS_CODEPAGE_936 is not set
-+# CONFIG_NLS_CODEPAGE_950 is not set
-+# CONFIG_NLS_CODEPAGE_932 is not set
-+# CONFIG_NLS_CODEPAGE_949 is not set
-+# CONFIG_NLS_CODEPAGE_874 is not set
-+# CONFIG_NLS_ISO8859_8 is not set
-+# CONFIG_NLS_CODEPAGE_1250 is not set
-+# CONFIG_NLS_CODEPAGE_1251 is not set
-+CONFIG_NLS_ASCII=m
-+CONFIG_NLS_ISO8859_1=m
-+# CONFIG_NLS_ISO8859_2 is not set
-+# CONFIG_NLS_ISO8859_3 is not set
-+# CONFIG_NLS_ISO8859_4 is not set
-+# CONFIG_NLS_ISO8859_5 is not set
-+# CONFIG_NLS_ISO8859_6 is not set
-+# CONFIG_NLS_ISO8859_7 is not set
-+# CONFIG_NLS_ISO8859_9 is not set
-+# CONFIG_NLS_ISO8859_13 is not set
-+# CONFIG_NLS_ISO8859_14 is not set
-+# CONFIG_NLS_ISO8859_15 is not set
-+# CONFIG_NLS_KOI8_R is not set
-+# CONFIG_NLS_KOI8_U is not set
-+CONFIG_NLS_UTF8=m
-+
-+#
-+# Profiling support
-+#
-+# CONFIG_PROFILING is not set
-+
-+#
-+# Kernel hacking
-+#
-+# CONFIG_PRINTK_TIME is not set
-+CONFIG_MAGIC_SYSRQ=y
-+CONFIG_DEBUG_KERNEL=y
-+CONFIG_LOG_BUF_SHIFT=16
-+# CONFIG_DETECT_SOFTLOCKUP is not set
-+# CONFIG_SCHEDSTATS is not set
-+# CONFIG_DEBUG_SLAB is not set
-+# CONFIG_DEBUG_MUTEXES is not set
-+# CONFIG_DEBUG_SPINLOCK is not set
-+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
-+# CONFIG_DEBUG_KOBJECT is not set
-+# CONFIG_DEBUG_INFO is not set
-+# CONFIG_DEBUG_FS is not set
-+# CONFIG_DEBUG_VM is not set
-+# CONFIG_FRAME_POINTER is not set
-+# CONFIG_FORCED_INLINING is not set
-+# CONFIG_RCU_TORTURE_TEST is not set
-+# CONFIG_SH_STANDARD_BIOS is not set
-+CONFIG_EARLY_SCIF_CONSOLE=y
-+# CONFIG_EARLY_PRINTK is not set
-+# CONFIG_KGDB is not set
-+
-+#
-+# Security options
-+#
-+# CONFIG_KEYS is not set
-+# CONFIG_SECURITY is not set
-+
-+#
-+# Cryptographic options
-+#
-+CONFIG_CRYPTO=y
-+CONFIG_CRYPTO_HMAC=y
-+CONFIG_CRYPTO_NULL=m
-+CONFIG_CRYPTO_MD4=m
-+CONFIG_CRYPTO_MD5=y
-+CONFIG_CRYPTO_SHA1=y
-+CONFIG_CRYPTO_SHA256=m
-+CONFIG_CRYPTO_SHA512=m
-+CONFIG_CRYPTO_WP512=m
-+CONFIG_CRYPTO_TGR192=m
-+CONFIG_CRYPTO_DES=y
-+CONFIG_CRYPTO_BLOWFISH=m
-+CONFIG_CRYPTO_TWOFISH=m
-+CONFIG_CRYPTO_SERPENT=m
-+CONFIG_CRYPTO_AES=y
-+CONFIG_CRYPTO_CAST5=m
-+CONFIG_CRYPTO_CAST6=m
-+CONFIG_CRYPTO_TEA=m
-+CONFIG_CRYPTO_ARC4=y
-+CONFIG_CRYPTO_KHAZAD=m
-+CONFIG_CRYPTO_ANUBIS=m
-+CONFIG_CRYPTO_DEFLATE=y
-+CONFIG_CRYPTO_MICHAEL_MIC=y
-+CONFIG_CRYPTO_CRC32C=m
-+# CONFIG_CRYPTO_TEST is not set
-+
-+#
-+# Hardware crypto devices
-+#
-+
-+#
-+# Library routines
-+#
-+CONFIG_CRC_CCITT=m
-+CONFIG_CRC16=m
-+CONFIG_CRC32=y
-+CONFIG_LIBCRC32C=m
-+CONFIG_ZLIB_INFLATE=y
-+CONFIG_ZLIB_DEFLATE=y
-+CONFIG_TEXTSEARCH=y
-+CONFIG_TEXTSEARCH_KMP=m
-+CONFIG_TEXTSEARCH_BM=m
-+CONFIG_TEXTSEARCH_FSM=m
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/CVS/Entries linux-2.6.17/arch/sh/drivers/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/drivers/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/CVS/Entries 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,4 @@
-+/Makefile/1.2/Thu Mar 17 07:43:07 2005//
-+D/dma////
-+D/pci////
-+D/superhyway////
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/CVS/Repository linux-2.6.17/arch/sh/drivers/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/drivers/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/CVS/Repository 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/drivers
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/CVS/Root linux-2.6.17/arch/sh/drivers/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/drivers/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/CVS/Root 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/dma/CVS/Entries linux-2.6.17/arch/sh/drivers/dma/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/drivers/dma/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/dma/CVS/Entries 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,10 @@
-+/Kconfig/1.6/Sun Feb 5 15:23:46 2006//
-+/Makefile/1.5/Sun May 16 01:53:40 2004//
-+/dma-api.c/1.15/Wed Jan 4 15:01:03 2006//
-+/dma-isa.c/1.4/Sun Oct 16 16:37:55 2005//
-+/dma-pvr2.c/1.6/Sun Feb 5 15:28:01 2006//
-+/dma-sh.c/1.15/Sun Feb 5 15:25:52 2006//
-+/dma-sh.h/1.5/Mon Oct 17 02:27:14 2005//
-+/dma-sysfs.c/1.7/Wed Jan 4 15:01:03 2006//
-+/dma-g2.c/1.6/Thu Jul 6 12:38:08 2006//
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/dma/CVS/Repository linux-2.6.17/arch/sh/drivers/dma/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/drivers/dma/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/dma/CVS/Repository 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/drivers/dma
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/dma/CVS/Root linux-2.6.17/arch/sh/drivers/dma/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/drivers/dma/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/dma/CVS/Root 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/dma/Kconfig linux-2.6.17/arch/sh/drivers/dma/Kconfig
---- linux-2.6.17-vanilla/arch/sh/drivers/dma/Kconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/dma/Kconfig 2006-07-12 16:54:21.000000000 +0000
-@@ -11,6 +11,8 @@
- config NR_ONCHIP_DMA_CHANNELS
- depends on SH_DMA
- int "Number of on-chip DMAC channels"
-+ default "8" if CPU_SUBTYPE_SH7750R || CPU_SUBTYPE_SH7751R
-+ default "12" if CPU_SUBTYPE_SH7780
- default "4"
- help
- This allows you to specify the number of channels that the on-chip
-@@ -52,4 +54,3 @@
- are dual-address capable.
-
- endmenu
--
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/dma/dma-g2.c linux-2.6.17/arch/sh/drivers/dma/dma-g2.c
---- linux-2.6.17-vanilla/arch/sh/drivers/dma/dma-g2.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/dma/dma-g2.c 2006-07-12 16:54:21.000000000 +0000
-@@ -3,7 +3,7 @@
- *
- * G2 bus DMA support
- *
-- * Copyright (C) 2003, 2004 Paul Mundt
-+ * Copyright (C) 2003 - 2006 Paul Mundt
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
-@@ -13,7 +13,7 @@
- #include <linux/kernel.h>
- #include <linux/module.h>
- #include <linux/interrupt.h>
--
-+#include <asm/cacheflush.h>
- #include <asm/mach/sysasic.h>
- #include <asm/mach/dma.h>
- #include <asm/dma.h>
-@@ -47,17 +47,31 @@
-
- static volatile struct g2_dma_info *g2_dma = (volatile struct g2_dma_info *)0xa05f7800;
-
-+#define g2_bytes_remaining(i) \
-+ ((g2_dma->channel[i].size - \
-+ g2_dma->status[i].size) & 0x0fffffff)
-+
- static irqreturn_t g2_dma_interrupt(int irq, void *dev_id, struct pt_regs *regs)
- {
-- /* FIXME: Do some meaningful completion work here.. */
-- return IRQ_HANDLED;
--}
-+ int i;
-
--static struct irqaction g2_dma_irq = {
-- .name = "g2 DMA handler",
-- .handler = g2_dma_interrupt,
-- .flags = SA_INTERRUPT,
--};
-+ for (i = 0; i < G2_NR_DMA_CHANNELS; i++) {
-+ if (g2_dma->status[i].status & 0x20000000) {
-+ unsigned int bytes = g2_bytes_remaining(i);
-+
-+ if (likely(bytes == 0)) {
-+ struct dma_info *info = dev_id;
-+ struct dma_channel *chan = info->channels + i;
-+
-+ wake_up(&chan->wait_queue);
-+
-+ return IRQ_HANDLED;
-+ }
-+ }
-+ }
-+
-+ return IRQ_NONE;
-+}
-
- static int g2_enable_dma(struct dma_channel *chan)
- {
-@@ -135,8 +149,14 @@
- return 0;
- }
-
-+static int g2_get_residue(struct dma_channel *chan)
-+{
-+ return g2_bytes_remaining(chan->chan);
-+}
-+
- static struct dma_ops g2_dma_ops = {
- .xfer = g2_xfer_dma,
-+ .get_residue = g2_get_residue,
- };
-
- static struct dma_info g2_dma_info = {
-@@ -148,13 +168,22 @@
-
- static int __init g2_dma_init(void)
- {
-- setup_irq(HW_EVENT_G2_DMA, &g2_dma_irq);
-+ int ret;
-
-+ ret = request_irq(HW_EVENT_G2_DMA, g2_dma_interrupt, SA_INTERRUPT,
-+ "g2 DMA handler", &g2_dma_info);
-+ if (unlikely(ret))
-+ return -EINVAL;
-+
- /* Magic */
- g2_dma->wait_state = 27;
- g2_dma->magic = 0x4659404f;
-
-- return register_dmac(&g2_dma_info);
-+ ret = register_dmac(&g2_dma_info);
-+ if (unlikely(ret != 0))
-+ free_irq(HW_EVENT_G2_DMA, 0);
-+
-+ return ret;
- }
-
- static void __exit g2_dma_exit(void)
-@@ -169,4 +198,3 @@
- MODULE_AUTHOR("Paul Mundt <lethal@linux-sh.org>");
- MODULE_DESCRIPTION("G2 bus DMA driver");
- MODULE_LICENSE("GPL");
--
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/dma/dma-pvr2.c linux-2.6.17/arch/sh/drivers/dma/dma-pvr2.c
---- linux-2.6.17-vanilla/arch/sh/drivers/dma/dma-pvr2.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/dma/dma-pvr2.c 2006-07-12 16:54:21.000000000 +0000
-@@ -18,8 +18,8 @@
- #include <asm/dma.h>
- #include <asm/io.h>
-
--static unsigned int xfer_complete = 0;
--static int count = 0;
-+static unsigned int xfer_complete;
-+static int count;
-
- static irqreturn_t pvr2_dma_interrupt(int irq, void *dev_id, struct pt_regs *regs)
- {
-@@ -107,4 +107,3 @@
- MODULE_AUTHOR("Paul Mundt <lethal@linux-sh.org>");
- MODULE_DESCRIPTION("NEC PowerVR 2 DMA driver");
- MODULE_LICENSE("GPL");
--
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/dma/dma-sh.c linux-2.6.17/arch/sh/drivers/dma/dma-sh.c
---- linux-2.6.17-vanilla/arch/sh/drivers/dma/dma-sh.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/dma/dma-sh.c 2006-07-12 16:54:21.000000000 +0000
-@@ -11,15 +11,11 @@
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- */
--
- #include <linux/config.h>
- #include <linux/init.h>
--#include <linux/irq.h>
- #include <linux/interrupt.h>
- #include <linux/module.h>
- #include <asm/dreamcast/dma.h>
--#include <asm/signal.h>
--#include <asm/irq.h>
- #include <asm/dma.h>
- #include <asm/io.h>
- #include "dma-sh.h"
-@@ -87,6 +83,9 @@
- {
- char name[32];
-
-+ if (unlikely(!chan->flags & DMA_TEI_CAPABLE))
-+ return 0;
-+
- snprintf(name, sizeof(name), "DMAC Transfer End (Channel %d)",
- chan->chan);
-
-@@ -260,7 +259,7 @@
- #ifdef CONFIG_CPU_SH4
- make_ipr_irq(DMAE_IRQ, DMA_IPR_ADDR, DMA_IPR_POS, DMA_PRIORITY);
- i = request_irq(DMAE_IRQ, dma_err, SA_INTERRUPT, "DMAC Address Error", 0);
-- if (i < 0)
-+ if (unlikely(i < 0))
- return i;
- #endif
-
-@@ -275,7 +274,7 @@
- * been set.
- */
- i = dmaor_reset();
-- if (i < 0)
-+ if (unlikely(i != 0))
- return i;
-
- return register_dmac(info);
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/pci/CVS/Entries linux-2.6.17/arch/sh/drivers/pci/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/drivers/pci/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/pci/CVS/Entries 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,26 @@
-+/Kconfig/1.4/Wed Mar 2 13:02:55 2005//
-+/Makefile/1.9/Wed Feb 8 21:55:09 2006//
-+/dma-dreamcast.c/1.4/Tue Jan 3 22:35:51 2006//
-+/fixups-dreamcast.c/1.6/Tue Feb 7 20:12:06 2006//
-+/fixups-r7780rp.c/1.5/Wed Feb 8 12:17:46 2006/-ko/
-+/fixups-rts7751r2d.c/1.4/Thu Feb 23 11:10:52 2006/-ko/
-+/fixups-sh03.c/1.3/Sun Feb 5 18:34:56 2006/-ko/
-+/ops-bigsur.c/1.3/Sun Feb 5 21:55:29 2006//
-+/ops-dreamcast.c/1.1/Sun Aug 24 19:15:45 2003//
-+/ops-landisk.c/1.1/Wed Feb 8 21:55:09 2006/-ko/
-+/ops-r7780rp.c/1.3/Sun Feb 5 21:55:29 2006/-ko/
-+/ops-rts7751r2d.c/1.4/Sun Feb 5 21:55:29 2006/-ko/
-+/ops-sh03.c/1.1/Thu Oct 7 11:01:14 2004/-ko/
-+/ops-sh4.c/1.1/Sun Feb 5 21:55:29 2006/-ko/
-+/ops-snapgear.c/1.4/Sun Feb 5 21:55:29 2006//
-+/ops-titan.c/1.5/Wed Feb 8 13:32:20 2006/-ko/
-+/pci-auto.c/1.6/Sun Feb 5 18:31:46 2006//
-+/pci-sh4.h/1.1/Sun Feb 5 21:55:29 2006/-ko/
-+/pci-sh7751.c/1.17/Thu Feb 23 11:10:52 2006//
-+/pci-sh7751.h/1.5/Sun Feb 5 21:55:29 2006/-ko/
-+/pci-sh7780.c/1.5/Tue Feb 7 15:28:03 2006/-ko/
-+/pci-sh7780.h/1.4/Wed Feb 8 12:09:30 2006/-ko/
-+/pci-st40.c/1.7/Sun Feb 5 18:45:40 2006//
-+/pci-st40.h/1.3/Thu Aug 19 16:10:14 2004//
-+/pci.c/1.10/Wed Feb 8 12:21:32 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/pci/CVS/Repository linux-2.6.17/arch/sh/drivers/pci/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/drivers/pci/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/pci/CVS/Repository 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/drivers/pci
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/pci/CVS/Root linux-2.6.17/arch/sh/drivers/pci/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/drivers/pci/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/pci/CVS/Root 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/pci/Makefile linux-2.6.17/arch/sh/drivers/pci/Makefile
---- linux-2.6.17-vanilla/arch/sh/drivers/pci/Makefile 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/pci/Makefile 2006-07-12 16:54:21.000000000 +0000
-@@ -6,7 +6,8 @@
- obj-$(CONFIG_PCI_AUTO) += pci-auto.o
-
- obj-$(CONFIG_CPU_SUBTYPE_ST40STB1) += pci-st40.o
--obj-$(CONFIG_CPU_SUBTYPE_SH7751) += pci-sh7751.o
-+obj-$(CONFIG_CPU_SUBTYPE_SH7751) += pci-sh7751.o ops-sh4.o
-+obj-$(CONFIG_CPU_SUBTYPE_SH7780) += pci-sh7780.o ops-sh4.o
-
- obj-$(CONFIG_SH_DREAMCAST) += ops-dreamcast.o fixups-dreamcast.o \
- dma-dreamcast.o
-@@ -14,3 +15,6 @@
- obj-$(CONFIG_SH_BIGSUR) += ops-bigsur.o
- obj-$(CONFIG_SH_RTS7751R2D) += ops-rts7751r2d.o fixups-rts7751r2d.o
- obj-$(CONFIG_SH_SH03) += ops-sh03.o fixups-sh03.o
-+obj-$(CONFIG_SH_R7780RP) += ops-r7780rp.o fixups-r7780rp.o
-+obj-$(CONFIG_SH_TITAN) += ops-titan.o
-+obj-$(CONFIG_SH_LANDISK) += ops-landisk.o
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/pci/fixups-dreamcast.c linux-2.6.17/arch/sh/drivers/pci/fixups-dreamcast.c
---- linux-2.6.17-vanilla/arch/sh/drivers/pci/fixups-dreamcast.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/pci/fixups-dreamcast.c 2006-07-12 16:54:21.000000000 +0000
-@@ -4,7 +4,7 @@
- * PCI fixups for the Sega Dreamcast
- *
- * Copyright (C) 2001, 2002 M. R. Brown
-- * Copyright (C) 2002, 2003 Paul Mundt
-+ * Copyright (C) 2002, 2003, 2006 Paul Mundt
- *
- * This file originally bore the message (with enclosed-$):
- * Id: pci.c,v 1.3 2003/05/04 19:29:46 lethal Exp
-@@ -46,36 +46,16 @@
- printk("PCI: Failed resource fixup\n");
- }
- }
--
- DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, gapspci_fixup_resources);
-
--void __init pcibios_fixup_bus(struct pci_bus *bus)
-+int __init pcibios_map_platform_irq(struct pci_dev *dev, u8 slot, u8 pin)
- {
-- /*
-- * We don't have any sub bus to fix up, and this is a rather
-- * stupid place to put general device fixups. Don't do it.
-- * Use the pcibios_fixups table or suffer the consequences.
-+ /*
-+ * The interrupt routing semantics here are quite trivial.
-+ *
-+ * We basically only support one interrupt, so we only bother
-+ * updating a device's interrupt line with this single shared
-+ * interrupt. Keeps routing quite simple, doesn't it?
- */
-+ return GAPSPCI_IRQ;
- }
--
--void __init pcibios_fixup_irqs(void)
--{
-- struct pci_dev *dev = 0;
--
-- for_each_pci_dev(dev) {
-- /*
-- * The interrupt routing semantics here are quite trivial.
-- *
-- * We basically only support one interrupt, so we only bother
-- * updating a device's interrupt line with this single shared
-- * interrupt. Keeps routing quite simple, doesn't it?
-- */
-- printk(KERN_NOTICE "PCI: Fixing up IRQ routing for device %s\n",
-- pci_name(dev));
--
-- dev->irq = GAPSPCI_IRQ;
--
-- pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq);
-- }
--}
--
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/pci/fixups-r7780rp.c linux-2.6.17/arch/sh/drivers/pci/fixups-r7780rp.c
---- linux-2.6.17-vanilla/arch/sh/drivers/pci/fixups-r7780rp.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/pci/fixups-r7780rp.c 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,45 @@
-+/*
-+ * arch/sh/drivers/pci/fixups-r7780rp.c
-+ *
-+ * Highlander R7780RP-1 PCI fixups
-+ *
-+ * Copyright (C) 2003 Lineo uSolutions, Inc.
-+ * Copyright (C) 2004 - 2006 Paul Mundt
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ */
-+#include <linux/pci.h>
-+#include "pci-sh4.h"
-+#include <asm/io.h>
-+
-+int pci_fixup_pcic(void)
-+{
-+ pci_write_reg(0x000043ff, SH4_PCIINTM);
-+ pci_write_reg(0x0000380f, SH4_PCIAINTM);
-+
-+ pci_write_reg(0xfbb00047, SH7780_PCICMD);
-+ pci_write_reg(0x00000000, SH7780_PCIIBAR);
-+
-+ pci_write_reg(0x00011912, SH7780_PCISVID);
-+ pci_write_reg(0x08000000, SH7780_PCICSCR0);
-+ pci_write_reg(0x0000001b, SH7780_PCICSAR0);
-+ pci_write_reg(0xfd000000, SH7780_PCICSCR1);
-+ pci_write_reg(0x0000000f, SH7780_PCICSAR1);
-+
-+ pci_write_reg(0xfd000000, SH7780_PCIMBR0);
-+ pci_write_reg(0x00fc0000, SH7780_PCIMBMR0);
-+
-+#ifdef CONFIG_32BIT
-+ pci_write_reg(0xc0000000, SH7780_PCIMBR2);
-+ pci_write_reg(0x20000000 - SH7780_PCI_IO_SIZE, SH7780_PCIMBMR2);
-+#endif
-+
-+ /* Set IOBR for windows containing area specified in pci.h */
-+ pci_write_reg((PCIBIOS_MIN_IO & ~(SH7780_PCI_IO_SIZE - 1)),
-+ SH7780_PCIIOBR);
-+ pci_write_reg(((SH7780_PCI_IO_SIZE-1) & (7<<18)), SH7780_PCIIOBMR);
-+
-+ return 0;
-+}
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/pci/fixups-rts7751r2d.c linux-2.6.17/arch/sh/drivers/pci/fixups-rts7751r2d.c
---- linux-2.6.17-vanilla/arch/sh/drivers/pci/fixups-rts7751r2d.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/pci/fixups-rts7751r2d.c 2006-07-12 16:54:21.000000000 +0000
-@@ -10,8 +10,7 @@
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- */
--#include "pci-sh7751.h"
--#include <asm/io.h>
-+#include "pci-sh4.h"
-
- #define PCIMCR_MRSET_OFF 0xBFFFFFFF
- #define PCIMCR_RFSH_OFF 0xFFFFFFFB
-@@ -22,22 +21,23 @@
-
- bcr1 = inl(SH7751_BCR1);
- bcr1 |= 0x40080000; /* Enable Bit 19 BREQEN, set PCIC to slave */
-- outl(bcr1, PCI_REG(SH7751_PCIBCR1));
-+ pci_write_reg(bcr1, SH4_PCIBCR1);
-
- /* Enable all interrupts, so we known what to fix */
-- outl(0x0000c3ff, PCI_REG(SH7751_PCIINTM));
-- outl(0x0000380f, PCI_REG(SH7751_PCIAINTM));
-+ pci_write_reg(0x0000c3ff, SH4_PCIINTM);
-+ pci_write_reg(0x0000380f, SH4_PCIAINTM);
-
-- outl(0xfb900047, PCI_REG(SH7751_PCICONF1));
-- outl(0xab000001, PCI_REG(SH7751_PCICONF4));
-+ pci_write_reg(0xfb900047, SH7751_PCICONF1);
-+ pci_write_reg(0xab000001, SH7751_PCICONF4);
-
- mcr = inl(SH7751_MCR);
- mcr = (mcr & PCIMCR_MRSET_OFF) & PCIMCR_RFSH_OFF;
-- outl(mcr, PCI_REG(SH7751_PCIMCR));
-+ pci_write_reg(mcr, SH4_PCIMCR);
-+
-+ pci_write_reg(0x0c000000, SH7751_PCICONF5);
-+ pci_write_reg(0xd0000000, SH7751_PCICONF6);
-+ pci_write_reg(0x0c000000, SH4_PCILAR0);
-+ pci_write_reg(0x00000000, SH4_PCILAR1);
-
-- outl(0x0c000000, PCI_REG(SH7751_PCICONF5));
-- outl(0xd0000000, PCI_REG(SH7751_PCICONF6));
-- outl(0x0c000000, PCI_REG(SH7751_PCILAR0));
-- outl(0x00000000, PCI_REG(SH7751_PCILAR1));
- return 0;
- }
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/pci/fixups-sh03.c linux-2.6.17/arch/sh/drivers/pci/fixups-sh03.c
---- linux-2.6.17-vanilla/arch/sh/drivers/pci/fixups-sh03.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/pci/fixups-sh03.c 2006-07-12 16:54:21.000000000 +0000
-@@ -3,11 +3,7 @@
- #include <linux/types.h>
- #include <linux/pci.h>
-
--/*
-- * IRQ functions
-- */
--
--int __init pcibios_map_platform_irq(u8 slot, u8 pin, struct pci_dev *dev)
-+int __init pcibios_map_platform_irq(struct pci_dev *dev, u8 slot, u8 pin)
- {
- int irq;
-
-@@ -17,8 +13,9 @@
- case 8: return 5; /* eth1 */
- case 6: return 2; /* PCI bridge */
- default:
-- printk("PCI: Bad IRQ mapping request for slot %d\n", slot);
-- return 2;
-+ printk(KERN_ERR "PCI: Bad IRQ mapping request "
-+ "for slot %d\n", slot);
-+ return 2;
- }
- } else {
- switch (pin) {
-@@ -32,30 +29,3 @@
- }
- return irq;
- }
--
--static u8 __init sh03_no_swizzle(struct pci_dev *dev, u8 *pin)
--{
-- /* no swizzling */
-- return PCI_SLOT(dev->devfn);
--}
--
--static int sh03_pci_lookup_irq(struct pci_dev *dev, u8 slot, u8 pin)
--{
-- int irq = -1;
--
-- /* now lookup the actual IRQ on a platform specific basis (pci-'platform'.c) */
-- irq = pcibios_map_platform_irq(slot, pin, dev);
-- if( irq < 0 ) {
-- pr_debug("PCI: Error mapping IRQ on device %s\n", pci_name(dev));
-- return irq;
-- }
--
-- pr_debug("Setting IRQ for slot %s to %d\n", pci_name(dev), irq);
--
-- return irq;
--}
--
--void __init pcibios_fixup_irqs(void)
--{
-- pci_fixup_irqs(sh03_no_swizzle, sh03_pci_lookup_irq);
--}
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/pci/ops-bigsur.c linux-2.6.17/arch/sh/drivers/pci/ops-bigsur.c
---- linux-2.6.17-vanilla/arch/sh/drivers/pci/ops-bigsur.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/pci/ops-bigsur.c 2006-07-12 16:54:21.000000000 +0000
-@@ -10,16 +10,13 @@
- *
- * PCI initialization for the Hitachi Big Sur Evaluation Board
- */
--
- #include <linux/config.h>
- #include <linux/kernel.h>
- #include <linux/types.h>
- #include <linux/init.h>
--#include <linux/delay.h>
- #include <linux/pci.h>
--
- #include <asm/io.h>
--#include "pci-sh7751.h"
-+#include "pci-sh4.h"
- #include <asm/bigsur/bigsur.h>
-
- #define BIGSUR_PCI_IO 0x4000
-@@ -42,11 +39,11 @@
- extern struct pci_ops sh7751_pci_ops;
-
- struct pci_channel board_pci_channels[] = {
-- { &sh7751_pci_ops, &sh7751_io_resource, &sh7751_mem_resource, 0, 0xff },
-+ { &sh4_pci_ops, &sh7751_io_resource, &sh7751_mem_resource, 0, 0xff },
- { 0, }
- };
-
--static struct sh7751_pci_address_map sh7751_pci_map = {
-+static struct sh4_pci_address_map sh7751_pci_map = {
- .window0 = {
- .base = SH7751_CS3_BASE_ADDR,
- .size = BIGSUR_LSR0_SIZE,
-@@ -59,7 +56,7 @@
- };
-
- /*
-- * Initialize the Big Sur PCI interface
-+ * Initialize the Big Sur PCI interface
- * Setup hardware to be Central Funtion
- * Copy the BSR regs to the PCI interface
- * Setup PCI windows into local RAM
-@@ -69,15 +66,15 @@
- return sh7751_pcic_init(&sh7751_pci_map);
- }
-
--int pcibios_map_platform_irq(u8 slot, u8 pin)
-+int __init pcibios_map_platform_irq(struct pci_dev *pdev, u8 slot, u8 pin)
- {
-- /*
-+ /*
- * The Big Sur can be used in a CPCI chassis, but the SH7751 PCI
- * interface is on the wrong end of the board so that it can also
- * support a V320 CPI interface chip... Therefor the IRQ mapping is
- * somewhat use dependent... I'l assume a linear map for now, i.e.
- * INTA=slot0,pin0... INTD=slot3,pin0...
-- */
-+ */
- int irq = (slot + pin-1) % 4 + BIGSUR_SH7751_PCI_IRQ_BASE;
-
- PCIDBG(2, "PCI: Mapping Big Sur IRQ for slot %d, pin %c to irq %d\n",
-@@ -85,4 +82,3 @@
-
- return irq;
- }
--
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/pci/ops-landisk.c linux-2.6.17/arch/sh/drivers/pci/ops-landisk.c
---- linux-2.6.17-vanilla/arch/sh/drivers/pci/ops-landisk.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/pci/ops-landisk.c 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,68 @@
-+/*
-+ * arch/sh/drivers/pci/ops-landisk.c
-+ *
-+ * PCI initialization for the I-O DATA Device, Inc. LANDISK board
-+ *
-+ * Copyright (C) 2006 kogiidena
-+ *
-+ * May be copied or modified under the terms of the GNU General Public
-+ * License. See linux/COPYING for more information.
-+ */
-+#include <linux/config.h>
-+#include <linux/kernel.h>
-+#include <linux/types.h>
-+#include <linux/init.h>
-+#include <linux/delay.h>
-+#include <linux/pci.h>
-+#include "pci-sh4.h"
-+
-+static struct resource sh7751_io_resource = {
-+ .name = "SH7751 IO",
-+ .start = 0x4000,
-+ .end = 0x4000 + SH7751_PCI_IO_SIZE - 1,
-+ .flags = IORESOURCE_IO
-+};
-+
-+static struct resource sh7751_mem_resource = {
-+ .name = "SH7751 mem",
-+ .start = SH7751_PCI_MEMORY_BASE,
-+ .end = SH7751_PCI_MEMORY_BASE + SH7751_PCI_MEM_SIZE - 1,
-+ .flags = IORESOURCE_MEM
-+};
-+
-+struct pci_channel board_pci_channels[] = {
-+ {&sh4_pci_ops, &sh7751_io_resource, &sh7751_mem_resource, 0, 0x3ff},
-+ {NULL, NULL, NULL, 0, 0},
-+};
-+
-+static struct sh4_pci_address_map sh7751_pci_map = {
-+ .window0 = {
-+ .base = SH7751_CS3_BASE_ADDR,
-+ .size = (64 << 20), /* 64MB */
-+ },
-+
-+ .flags = SH4_PCIC_NO_RESET,
-+};
-+
-+int __init pcibios_init_platform(void)
-+{
-+ return sh7751_pcic_init(&sh7751_pci_map);
-+}
-+
-+int pcibios_map_platform_irq(struct pci_dev *pdev, u8 slot, u8 pin)
-+{
-+ /*
-+ * slot0: pin1-4 = irq5,6,7,8
-+ * slot1: pin1-4 = irq6,7,8,5
-+ * slot2: pin1-4 = irq7,8,5,6
-+ * slot3: pin1-4 = irq8,5,6,7
-+ */
-+ int irq = ((slot + pin - 1) & 0x3) + 5;
-+
-+ if ((slot | (pin - 1)) > 0x3) {
-+ printk("PCI: Bad IRQ mapping request for slot %d pin %c\n",
-+ slot, pin - 1 + 'A');
-+ return -1;
-+ }
-+ return irq;
-+}
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/pci/ops-r7780rp.c linux-2.6.17/arch/sh/drivers/pci/ops-r7780rp.c
---- linux-2.6.17-vanilla/arch/sh/drivers/pci/ops-r7780rp.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/pci/ops-r7780rp.c 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,75 @@
-+/*
-+ * Author: Ian DaSilva (idasilva@mvista.com)
-+ *
-+ * Highly leveraged from pci-bigsur.c, written by Dustin McIntire.
-+ *
-+ * May be copied or modified under the terms of the GNU General Public
-+ * License. See linux/COPYING for more information.
-+ *
-+ * PCI initialization for the Renesas SH7780 Highlander R7780RP-1 board
-+ */
-+
-+#include <linux/config.h>
-+#include <linux/kernel.h>
-+#include <linux/types.h>
-+#include <linux/init.h>
-+#include <linux/delay.h>
-+#include <linux/pci.h>
-+#include <asm/r7780rp/r7780rp.h>
-+#include <asm/io.h>
-+#include "pci-sh4.h"
-+
-+int __init pcibios_map_platform_irq(struct pci_dev *pdev, u8 slot, u8 pin)
-+{
-+ switch (slot) {
-+ case 0: return IRQ_PCISLOT1; /* PCI Interrupt #1 */
-+ case 1: return IRQ_PCISLOT2; /* PCI Interrupt #2 */
-+ case 2: return IRQ_PCISLOT3; /* PCI Interrupt #3 */
-+ case 3: return IRQ_PCISLOT4; /* PCI Interrupt E4 */
-+ default:
-+ printk(KERN_ERR "PCI: Bad IRQ mapping "
-+ "request for slot %d, func %d\n", slot, pin-1);
-+ return -1;
-+ }
-+}
-+
-+static struct resource sh7780_io_resource = {
-+ .name = "SH7780_IO",
-+ .start = 0x2000,
-+ .end = 0x2000 + SH7780_PCI_IO_SIZE - 1,
-+ .flags = IORESOURCE_IO
-+};
-+
-+static struct resource sh7780_mem_resource = {
-+ .name = "SH7780_mem",
-+ .start = SH7780_PCI_MEMORY_BASE,
-+ .end = SH7780_PCI_MEMORY_BASE + SH7780_PCI_MEM_SIZE - 1,
-+ .flags = IORESOURCE_MEM
-+};
-+
-+extern struct pci_ops sh7780_pci_ops;
-+
-+struct pci_channel board_pci_channels[] = {
-+ { &sh4_pci_ops, &sh7780_io_resource, &sh7780_mem_resource, 0, 0xff },
-+ { NULL, NULL, NULL, 0, 0 },
-+};
-+EXPORT_SYMBOL(board_pci_channels);
-+
-+static struct sh4_pci_address_map sh7780_pci_map = {
-+ .window0 = {
-+ .base = SH7780_CS2_BASE_ADDR,
-+ .size = 0x04000000,
-+ },
-+
-+ .window1 = {
-+ .base = SH7780_CS3_BASE_ADDR,
-+ .size = 0x04000000,
-+ },
-+
-+ .flags = SH4_PCIC_NO_RESET,
-+};
-+
-+int __init pcibios_init_platform(void)
-+{
-+ return sh7780_pcic_init(&sh7780_pci_map);
-+}
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/pci/ops-rts7751r2d.c linux-2.6.17/arch/sh/drivers/pci/ops-rts7751r2d.c
---- linux-2.6.17-vanilla/arch/sh/drivers/pci/ops-rts7751r2d.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/pci/ops-rts7751r2d.c 2006-07-12 16:54:21.000000000 +0000
-@@ -18,12 +18,11 @@
- #include <linux/delay.h>
- #include <linux/pci.h>
- #include <linux/module.h>
--
--#include <asm/io.h>
--#include "pci-sh7751.h"
- #include <asm/rts7751r2d/rts7751r2d.h>
-+#include <asm/io.h>
-+#include "pci-sh4.h"
-
--int __init pcibios_map_platform_irq(u8 slot, u8 pin)
-+int __init pcibios_map_platform_irq(struct pci_dev *pdev, u8 slot, u8 pin)
- {
- switch (slot) {
- case 0: return IRQ_PCISLOT1; /* PCI Extend slot #1 */
-@@ -53,12 +52,12 @@
- extern struct pci_ops sh7751_pci_ops;
-
- struct pci_channel board_pci_channels[] = {
-- { &sh7751_pci_ops, &sh7751_io_resource, &sh7751_mem_resource, 0, 0xff },
-+ { &sh4_pci_ops, &sh7751_io_resource, &sh7751_mem_resource, 0, 0xff },
- { NULL, NULL, NULL, 0, 0 },
- };
- EXPORT_SYMBOL(board_pci_channels);
-
--static struct sh7751_pci_address_map sh7751_pci_map = {
-+static struct sh4_pci_address_map sh7751_pci_map = {
- .window0 = {
- .base = SH7751_CS3_BASE_ADDR,
- .size = 0x04000000,
-@@ -69,7 +68,7 @@
- .size = 0x00000000, /* Unused */
- },
-
-- .flags = SH7751_PCIC_NO_RESET,
-+ .flags = SH4_PCIC_NO_RESET,
- };
-
- int __init pcibios_init_platform(void)
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/pci/ops-sh4.c linux-2.6.17/arch/sh/drivers/pci/ops-sh4.c
---- linux-2.6.17-vanilla/arch/sh/drivers/pci/ops-sh4.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/pci/ops-sh4.c 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,164 @@
-+/*
-+ * Generic SH-4 / SH-4A PCIC operations (SH7751, SH7780).
-+ *
-+ * Copyright (C) 2002 - 2006 Paul Mundt
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License v2. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ */
-+#include <linux/pci.h>
-+#include <asm/addrspace.h>
-+#include <asm/io.h>
-+#include "pci-sh4.h"
-+
-+/*
-+ * Direct access to PCI hardware...
-+ */
-+#define CONFIG_CMD(bus, devfn, where) \
-+ P1SEGADDR((bus->number << 16) | (devfn << 8) | (where & ~3))
-+
-+static DEFINE_SPINLOCK(sh4_pci_lock);
-+
-+/*
-+ * Functions for accessing PCI configuration space with type 1 accesses
-+ */
-+static int sh4_pci_read(struct pci_bus *bus, unsigned int devfn,
-+ int where, int size, u32 *val)
-+{
-+ unsigned long flags;
-+ u32 data;
-+
-+ /*
-+ * PCIPDR may only be accessed as 32 bit words,
-+ * so we must do byte alignment by hand
-+ */
-+ spin_lock_irqsave(&sh4_pci_lock, flags);
-+ pci_write_reg(CONFIG_CMD(bus, devfn, where), SH4_PCIPAR);
-+ data = pci_read_reg(SH4_PCIPDR);
-+ spin_unlock_irqrestore(&sh4_pci_lock, flags);
-+
-+ switch (size) {
-+ case 1:
-+ *val = (data >> ((where & 3) << 3)) & 0xff;
-+ break;
-+ case 2:
-+ *val = (data >> ((where & 2) << 3)) & 0xffff;
-+ break;
-+ case 4:
-+ *val = data;
-+ break;
-+ default:
-+ return PCIBIOS_FUNC_NOT_SUPPORTED;
-+ }
-+
-+ return PCIBIOS_SUCCESSFUL;
-+}
-+
-+/*
-+ * Since SH4 only does 32bit access we'll have to do a read,
-+ * mask,write operation.
-+ * We'll allow an odd byte offset, though it should be illegal.
-+ */
-+static int sh4_pci_write(struct pci_bus *bus, unsigned int devfn,
-+ int where, int size, u32 val)
-+{
-+ unsigned long flags;
-+ int shift;
-+ u32 data;
-+
-+ spin_lock_irqsave(&sh4_pci_lock, flags);
-+ pci_write_reg(CONFIG_CMD(bus, devfn, where), SH4_PCIPAR);
-+ data = pci_read_reg(SH4_PCIPDR);
-+ spin_unlock_irqrestore(&sh4_pci_lock, flags);
-+
-+ switch (size) {
-+ case 1:
-+ shift = (where & 3) << 3;
-+ data &= ~(0xff << shift);
-+ data |= ((val & 0xff) << shift);
-+ break;
-+ case 2:
-+ shift = (where & 2) << 3;
-+ data &= ~(0xffff << shift);
-+ data |= ((val & 0xffff) << shift);
-+ break;
-+ case 4:
-+ data = val;
-+ break;
-+ default:
-+ return PCIBIOS_FUNC_NOT_SUPPORTED;
-+ }
-+
-+ pci_write_reg(data, SH4_PCIPDR);
-+
-+ return PCIBIOS_SUCCESSFUL;
-+}
-+
-+struct pci_ops sh4_pci_ops = {
-+ .read = sh4_pci_read,
-+ .write = sh4_pci_write,
-+};
-+
-+/*
-+ * Not really related to pci_ops, but it's common and not worth shoving
-+ * somewhere else for now..
-+ */
-+static unsigned int pci_probe = PCI_PROBE_CONF1;
-+
-+int __init sh4_pci_check_direct(void)
-+{
-+ /*
-+ * Check if configuration works.
-+ */
-+ if (pci_probe & PCI_PROBE_CONF1) {
-+ unsigned int tmp = pci_read_reg(SH4_PCIPAR);
-+
-+ pci_write_reg(P1SEG, SH4_PCIPAR);
-+
-+ if (pci_read_reg(SH4_PCIPAR) == P1SEG) {
-+ pci_write_reg(tmp, SH4_PCIPAR);
-+ printk(KERN_INFO "PCI: Using configuration type 1\n");
-+ request_region(PCI_REG(SH4_PCIPAR), 8, "PCI conf1");
-+
-+ return 0;
-+ }
-+
-+ pci_write_reg(tmp, SH4_PCIPAR);
-+ }
-+
-+ pr_debug("PCI: pci_check_direct failed\n");
-+ return -EINVAL;
-+}
-+
-+/* Handle generic fixups */
-+static void __init pci_fixup_ide_bases(struct pci_dev *d)
-+{
-+ int i;
-+
-+ /*
-+ * PCI IDE controllers use non-standard I/O port decoding, respect it.
-+ */
-+ if ((d->class >> 8) != PCI_CLASS_STORAGE_IDE)
-+ return;
-+ pr_debug("PCI: IDE base address fixup for %s\n", pci_name(d));
-+ for(i = 0; i < 4; i++) {
-+ struct resource *r = &d->resource[i];
-+
-+ if ((r->start & ~0x80) == 0x374) {
-+ r->start |= 2;
-+ r->end = r->start;
-+ }
-+ }
-+}
-+DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pci_fixup_ide_bases);
-+
-+char * __init pcibios_setup(char *str)
-+{
-+ if (!strcmp(str, "off")) {
-+ pci_probe = 0;
-+ return NULL;
-+ }
-+
-+ return str;
-+}
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/pci/ops-snapgear.c linux-2.6.17/arch/sh/drivers/pci/ops-snapgear.c
---- linux-2.6.17-vanilla/arch/sh/drivers/pci/ops-snapgear.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/pci/ops-snapgear.c 2006-07-12 16:54:21.000000000 +0000
-@@ -2,7 +2,7 @@
- * arch/sh/drivers/pci/ops-snapgear.c
- *
- * Author: David McCullough <davidm@snapgear.com>
-- *
-+ *
- * Ported to new API by Paul Mundt <lethal@linux-sh.org>
- *
- * Highly leveraged from pci-bigsur.c, written by Dustin McIntire.
-@@ -12,16 +12,12 @@
- *
- * PCI initialization for the SnapGear boards
- */
--
- #include <linux/config.h>
- #include <linux/kernel.h>
- #include <linux/types.h>
- #include <linux/init.h>
--#include <linux/delay.h>
- #include <linux/pci.h>
--
--#include <asm/io.h>
--#include "pci-sh7751.h"
-+#include "pci-sh4.h"
-
- #define SNAPGEAR_PCI_IO 0x4000
- #define SNAPGEAR_PCI_MEM 0xfd000000
-@@ -44,14 +40,12 @@
- .flags = IORESOURCE_MEM,
- };
-
--extern struct pci_ops sh7751_pci_ops;
--
- struct pci_channel board_pci_channels[] = {
-- { &sh7751_pci_ops, &sh7751_io_resource, &sh7751_mem_resource, 0, 0xff },
-+ { &sh4_pci_ops, &sh7751_io_resource, &sh7751_mem_resource, 0, 0xff },
- { 0, }
- };
-
--static struct sh7751_pci_address_map sh7751_pci_map = {
-+static struct sh4_pci_address_map sh7751_pci_map = {
- .window0 = {
- .base = SH7751_CS2_BASE_ADDR,
- .size = SNAPGEAR_LSR0_SIZE,
-@@ -62,11 +56,11 @@
- .size = SNAPGEAR_LSR1_SIZE,
- },
-
-- .flags = SH7751_PCIC_NO_RESET,
-+ .flags = SH4_PCIC_NO_RESET,
- };
-
- /*
-- * Initialize the SnapGear PCI interface
-+ * Initialize the SnapGear PCI interface
- * Setup hardware to be Central Funtion
- * Copy the BSR regs to the PCI interface
- * Setup PCI windows into local RAM
-@@ -76,7 +70,7 @@
- return sh7751_pcic_init(&sh7751_pci_map);
- }
-
--int __init pcibios_map_platform_irq(u8 slot, u8 pin)
-+int __init pcibios_map_platform_irq(struct pci_dev *pdev, u8 slot, u8 pin)
- {
- int irq = -1;
-
-@@ -99,4 +93,3 @@
- {
- /* Nothing to fixup .. */
- }
--
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/pci/ops-titan.c linux-2.6.17/arch/sh/drivers/pci/ops-titan.c
---- linux-2.6.17-vanilla/arch/sh/drivers/pci/ops-titan.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/pci/ops-titan.c 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,83 @@
-+/*
-+ * arch/sh/drivers/pci/ops-titan.c
-+ *
-+ * Ported to new API by Paul Mundt <lethal@linux-sh.org>
-+ *
-+ * Modified from ops-snapgear.c written by David McCullough
-+ * Highly leveraged from pci-bigsur.c, written by Dustin McIntire.
-+ *
-+ * May be copied or modified under the terms of the GNU General Public
-+ * License. See linux/COPYING for more information.
-+ *
-+ * PCI initialization for the Titan boards
-+ */
-+
-+#include <linux/config.h>
-+#include <linux/kernel.h>
-+#include <linux/types.h>
-+#include <linux/init.h>
-+#include <linux/pci.h>
-+#include <asm/io.h>
-+#include <asm/titan.h>
-+#include "pci-sh4.h"
-+
-+int __init pcibios_map_platform_irq(struct pci_dev *pdev, u8 slot, u8 pin)
-+{
-+ int irq = -1;
-+
-+ switch (slot) {
-+ case 0: irq = TITAN_IRQ_WAN; break; /* eth0 (WAN) */
-+ case 1: irq = TITAN_IRQ_LAN; break; /* eth1 (LAN) */
-+ case 2: irq = TITAN_IRQ_MPCIA; break; /* mPCI A */
-+ case 3: irq = TITAN_IRQ_MPCIB; break; /* mPCI B */
-+ case 4: irq = TITAN_IRQ_USB; break; /* USB */
-+ default:
-+ printk(KERN_INFO "PCI: Bad IRQ mapping "
-+ "request for slot %d\n", slot);
-+ return -1;
-+ }
-+
-+ printk("PCI: Mapping TITAN IRQ for slot %d, pin %c to irq %d\n",
-+ slot, pin - 1 + 'A', irq);
-+
-+ return irq;
-+}
-+
-+static struct resource sh7751_io_resource = {
-+ .name = "SH7751_IO",
-+ .start = SH7751_PCI_IO_BASE,
-+ .end = SH7751_PCI_IO_BASE + SH7751_PCI_IO_SIZE - 1,
-+ .flags = IORESOURCE_IO
-+};
-+
-+static struct resource sh7751_mem_resource = {
-+ .name = "SH7751_mem",
-+ .start = SH7751_PCI_MEMORY_BASE,
-+ .end = SH7751_PCI_MEMORY_BASE + SH7751_PCI_MEM_SIZE - 1,
-+ .flags = IORESOURCE_MEM
-+};
-+
-+struct pci_channel board_pci_channels[] = {
-+ { &sh4_pci_ops, &sh7751_io_resource, &sh7751_mem_resource, 0, 0xff },
-+ { NULL, NULL, NULL, 0, 0 },
-+};
-+EXPORT_SYMBOL(board_pci_channels);
-+
-+static struct sh4_pci_address_map sh7751_pci_map = {
-+ .window0 = {
-+ .base = SH7751_CS2_BASE_ADDR,
-+ .size = SH7751_MEM_REGION_SIZE*2, /* cs2 and cs3 */
-+ },
-+
-+ .window1 = {
-+ .base = SH7751_CS2_BASE_ADDR,
-+ .size = SH7751_MEM_REGION_SIZE*2,
-+ },
-+
-+ .flags = SH4_PCIC_NO_RESET,
-+};
-+
-+int __init pcibios_init_platform(void)
-+{
-+ return sh7751_pcic_init(&sh7751_pci_map);
-+}
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/pci/pci-auto.c linux-2.6.17/arch/sh/drivers/pci/pci-auto.c
---- linux-2.6.17-vanilla/arch/sh/drivers/pci/pci-auto.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/pci/pci-auto.c 2006-07-12 16:54:21.000000000 +0000
-@@ -45,11 +45,11 @@
- #include <linux/types.h>
- #include <linux/pci.h>
-
--#undef DEBUG
--#ifdef DEBUG
-+#define DEBUG
-+#ifdef DEBUG
- #define DBG(x...) printk(x)
- #else
--#define DBG(x...)
-+#define DBG(x...)
- #endif
-
- /*
-@@ -102,7 +102,7 @@
- static u32 pciauto_lower_memspc;
- static u32 pciauto_upper_memspc;
-
--static void __init
-+static void __init
- pciauto_setup_bars(struct pci_channel *hose,
- int top_bus,
- int current_bus,
-@@ -116,7 +116,6 @@
- int found_mem64 = 0;
-
- for (bar = PCI_BASE_ADDRESS_0; bar <= bar_limit; bar+=4) {
--#if !defined(CONFIG_SH_HS7751RVOIP) && !defined(CONFIG_SH_RTS7751R2D)
- u32 bar_addr;
-
- /* Read the old BAR value */
-@@ -125,7 +124,6 @@
- pci_devfn,
- bar,
- &bar_addr);
--#endif
-
- /* Tickle the BAR and get the response */
- early_write_config_dword(hose, top_bus,
-@@ -140,8 +138,7 @@
- bar,
- &bar_response);
-
--#if !defined(CONFIG_SH_HS7751RVOIP) && !defined(CONFIG_SH_RTS7751R2D)
-- /*
-+ /*
- * Write the old BAR value back out, only update the BAR
- * if we implicitly want resources to be updated, which
- * is done by the generic code further down. -- PFM.
-@@ -151,7 +148,6 @@
- pci_devfn,
- bar,
- bar_addr);
--#endif
-
- /* If BAR is not implemented go to the next BAR */
- if (!bar_response)
-@@ -177,7 +173,7 @@
- PCI_BASE_ADDRESS_MEM_TYPE_64)
- found_mem64 = 1;
-
-- addr_mask = PCI_BASE_ADDRESS_MEM_MASK;
-+ addr_mask = PCI_BASE_ADDRESS_MEM_MASK;
- upper_limit = &pciauto_upper_memspc;
- lower_limit = &pciauto_lower_memspc;
- DBG(" Mem");
-@@ -193,22 +189,22 @@
- if ((bar_value + bar_size) > *upper_limit) {
- if (bar_response & PCI_BASE_ADDRESS_SPACE) {
- if (io_resource_inuse->child) {
-- io_resource_inuse =
-+ io_resource_inuse =
- io_resource_inuse->child;
-- pciauto_lower_iospc =
-+ pciauto_lower_iospc =
- io_resource_inuse->start;
-- pciauto_upper_iospc =
-+ pciauto_upper_iospc =
- io_resource_inuse->end + 1;
- goto retry;
- }
-
- } else {
- if (mem_resource_inuse->child) {
-- mem_resource_inuse =
-+ mem_resource_inuse =
- mem_resource_inuse->child;
-- pciauto_lower_memspc =
-+ pciauto_lower_memspc =
- mem_resource_inuse->start;
-- pciauto_upper_memspc =
-+ pciauto_upper_memspc =
- mem_resource_inuse->end + 1;
- goto retry;
- }
-@@ -230,7 +226,7 @@
- * If we are a 64-bit decoder then increment to the
- * upper 32 bits of the bar and force it to locate
- * in the lower 4GB of memory.
-- */
-+ */
- if (found_mem64) {
- bar += 4;
- early_write_config_dword(hose, top_bus,
-@@ -362,7 +358,6 @@
- {
- u32 temp;
-
--#if !defined(CONFIG_SH_HS7751RVOIP) && !defined(CONFIG_SH_RTS7751R2D)
- /*
- * [jsun] we always bump up baselines a little, so that if there
- * nothing behind P2P bridge, we don't wind up overlapping IO/MEM
-@@ -370,7 +365,6 @@
- */
- pciauto_lower_memspc += 1;
- pciauto_lower_iospc += 1;
--#endif
-
- /*
- * Configure subordinate bus number. The PCI subsystem
-@@ -396,11 +390,6 @@
- * configured by this routine to happily live behind a
- * P2P bridge in a system.
- */
--#if defined(CONFIG_SH_HS7751RVOIP) || defined(CONFIG_SH_RTS7751R2D)
-- pciauto_lower_memspc += 0x00400000;
-- pciauto_lower_iospc += 0x00004000;
--#endif
--
- /* Align memory and I/O to 4KB and 4 byte boundaries. */
- pciauto_lower_memspc = (pciauto_lower_memspc + (0x1000 - 1))
- & ~(0x1000 - 1);
-@@ -433,12 +422,12 @@
- int devfn_stop = 0xff;
-
- sub_bus = current_bus;
--
-+
- if (hose->first_devfn)
- devfn_start = hose->first_devfn;
- if (hose->last_devfn)
- devfn_stop = hose->last_devfn;
--
-+
- for (pci_devfn=devfn_start; pci_devfn<devfn_stop; pci_devfn++) {
-
- if (PCI_FUNC(pci_devfn) && !found_multi)
-@@ -471,9 +460,6 @@
- if ((pci_class >> 16) == PCI_CLASS_BRIDGE_PCI) {
- DBG(" Bridge: primary=%.2x, secondary=%.2x\n",
- current_bus, sub_bus + 1);
--#if defined(CONFIG_SH_HS7751RVOIP) || defined(CONFIG_SH_RTS7751R2D)
-- pciauto_setup_bars(hose, top_bus, current_bus, pci_devfn, PCI_BASE_ADDRESS_1);
--#endif
- pciauto_prescan_setup_bridge(hose, top_bus, current_bus,
- pci_devfn, sub_bus);
- DBG("Scanning sub bus %.2x, I/O 0x%.8x, Mem 0x%.8x\n",
-@@ -490,10 +476,10 @@
- DBG("PCI Autoconfig: Found CardBus bridge, device %d function %d\n", PCI_SLOT(pci_devfn), PCI_FUNC(pci_devfn));
- /* Place CardBus Socket/ExCA registers */
- pciauto_setup_bars(hose, top_bus, current_bus, pci_devfn, PCI_BASE_ADDRESS_0);
--
-+
- pciauto_prescan_setup_cardbus_bridge(hose, top_bus,
- current_bus, pci_devfn, sub_bus);
--
-+
- DBG("Scanning sub bus %.2x, I/O 0x%.8x, Mem 0x%.8x\n",
- sub_bus + 1,
- pciauto_lower_iospc, pciauto_lower_memspc);
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/pci/pci-sh4.h linux-2.6.17/arch/sh/drivers/pci/pci-sh4.h
---- linux-2.6.17-vanilla/arch/sh/drivers/pci/pci-sh4.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/pci/pci-sh4.h 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,180 @@
-+#ifndef __PCI_SH4_H
-+#define __PCI_SH4_H
-+
-+#ifdef CONFIG_CPU_SUBTYPE_SH7780
-+#include "pci-sh7780.h"
-+#else
-+#include "pci-sh7751.h"
-+#endif
-+
-+#include <asm/io.h>
-+
-+/* startup values */
-+#define PCI_PROBE_BIOS 1
-+#define PCI_PROBE_CONF1 2
-+#define PCI_PROBE_CONF2 4
-+#define PCI_NO_SORT 0x100
-+#define PCI_BIOS_SORT 0x200
-+#define PCI_NO_CHECKS 0x400
-+#define PCI_ASSIGN_ROMS 0x1000
-+#define PCI_BIOS_IRQ_SCAN 0x2000
-+
-+#define SH4_PCICR 0x100 /* PCI Control Register */
-+ #define SH4_PCICR_PREFIX 0xA5000000 /* CR prefix for write */
-+ #define SH4_PCICR_FTO 0x00000400 /* TRDY/IRDY Enable */
-+ #define SH4_PCICR_TRSB 0x00000200 /* Target Read Single */
-+ #define SH4_PCICR_BSWP 0x00000100 /* Target Byte Swap */
-+ #define SH4_PCICR_PLUP 0x00000080 /* Enable PCI Pullup */
-+ #define SH4_PCICR_ARBM 0x00000040 /* PCI Arbitration Mode */
-+ #define SH4_PCICR_MD 0x00000030 /* MD9 and MD10 status */
-+ #define SH4_PCICR_SERR 0x00000008 /* SERR output assert */
-+ #define SH4_PCICR_INTA 0x00000004 /* INTA output assert */
-+ #define SH4_PCICR_PRST 0x00000002 /* PCI Reset Assert */
-+ #define SH4_PCICR_CFIN 0x00000001 /* Central Fun. Init Done */
-+#define SH4_PCILSR0 0x104 /* PCI Local Space Register0 */
-+#define SH4_PCILSR1 0x108 /* PCI Local Space Register1 */
-+#define SH4_PCILAR0 0x10C /* PCI Local Addr Register1 */
-+#define SH4_PCILAR1 0x110 /* PCI Local Addr Register1 */
-+#define SH4_PCIINT 0x114 /* PCI Interrupt Register */
-+ #define SH4_PCIINT_MLCK 0x00008000 /* Master Lock Error */
-+ #define SH4_PCIINT_TABT 0x00004000 /* Target Abort Error */
-+ #define SH4_PCIINT_TRET 0x00000200 /* Target Retry Error */
-+ #define SH4_PCIINT_MFDE 0x00000100 /* Master Func. Disable Error */
-+ #define SH4_PCIINT_PRTY 0x00000080 /* Address Parity Error */
-+ #define SH4_PCIINT_SERR 0x00000040 /* SERR Detection Error */
-+ #define SH4_PCIINT_TWDP 0x00000020 /* Tgt. Write Parity Error */
-+ #define SH4_PCIINT_TRDP 0x00000010 /* Tgt. Read Parity Err Det. */
-+ #define SH4_PCIINT_MTABT 0x00000008 /* Master-Tgt. Abort Error */
-+ #define SH4_PCIINT_MMABT 0x00000004 /* Master-Master Abort Error */
-+ #define SH4_PCIINT_MWPD 0x00000002 /* Master Write PERR Detect */
-+ #define SH4_PCIINT_MRPD 0x00000001 /* Master Read PERR Detect */
-+#define SH4_PCIINTM 0x118 /* PCI Interrupt Mask */
-+#define SH4_PCIALR 0x11C /* Error Address Register */
-+#define SH4_PCICLR 0x120 /* Error Command/Data */
-+ #define SH4_PCICLR_MPIO 0x80000000
-+ #define SH4_PCICLR_MDMA0 0x40000000 /* DMA0 Transfer Error */
-+ #define SH4_PCICLR_MDMA1 0x20000000 /* DMA1 Transfer Error */
-+ #define SH4_PCICLR_MDMA2 0x10000000 /* DMA2 Transfer Error */
-+ #define SH4_PCICLR_MDMA3 0x08000000 /* DMA3 Transfer Error */
-+ #define SH4_PCICLR_TGT 0x04000000 /* Target Transfer Error */
-+ #define SH4_PCICLR_CMDL 0x0000000F /* PCI Command at Error */
-+#define SH4_PCIAINT 0x130 /* Arbiter Interrupt Register */
-+ #define SH4_PCIAINT_MBKN 0x00002000 /* Master Broken Interrupt */
-+ #define SH4_PCIAINT_TBTO 0x00001000 /* Target Bus Time Out */
-+ #define SH4_PCIAINT_MBTO 0x00001000 /* Master Bus Time Out */
-+ #define SH4_PCIAINT_TABT 0x00000008 /* Target Abort */
-+ #define SH4_PCIAINT_MABT 0x00000004 /* Master Abort */
-+ #define SH4_PCIAINT_RDPE 0x00000002 /* Read Data Parity Error */
-+ #define SH4_PCIAINT_WDPE 0x00000001 /* Write Data Parity Error */
-+#define SH4_PCIAINTM 0x134 /* Arbiter Int. Mask Register */
-+#define SH4_PCIBMLR 0x138 /* Error Bus Master Register */
-+ #define SH4_PCIBMLR_REQ4 0x00000010 /* REQ4 bus master at error */
-+ #define SH4_PCIBMLR_REQ3 0x00000008 /* REQ3 bus master at error */
-+ #define SH4_PCIBMLR_REQ2 0x00000004 /* REQ2 bus master at error */
-+ #define SH4_PCIBMLR_REQ1 0x00000002 /* REQ1 bus master at error */
-+ #define SH4_PCIBMLR_REQ0 0x00000001 /* REQ0 bus master at error */
-+#define SH4_PCIDMABT 0x140 /* DMA Transfer Arb. Register */
-+ #define SH4_PCIDMABT_RRBN 0x00000001 /* DMA Arbitor Round-Robin */
-+#define SH4_PCIDPA0 0x180 /* DMA0 Transfer Addr. */
-+#define SH4_PCIDLA0 0x184 /* DMA0 Local Addr. */
-+#define SH4_PCIDTC0 0x188 /* DMA0 Transfer Cnt. */
-+#define SH4_PCIDCR0 0x18C /* DMA0 Control Register */
-+ #define SH4_PCIDCR_ALGN 0x00000600 /* DMA Alignment Mode */
-+ #define SH4_PCIDCR_MAST 0x00000100 /* DMA Termination Type */
-+ #define SH4_PCIDCR_INTM 0x00000080 /* DMA Interrupt Done Mask*/
-+ #define SH4_PCIDCR_INTS 0x00000040 /* DMA Interrupt Done Status */
-+ #define SH4_PCIDCR_LHLD 0x00000020 /* Local Address Control */
-+ #define SH4_PCIDCR_PHLD 0x00000010 /* PCI Address Control*/
-+ #define SH4_PCIDCR_IOSEL 0x00000008 /* PCI Address Space Type */
-+ #define SH4_PCIDCR_DIR 0x00000004 /* DMA Transfer Direction */
-+ #define SH4_PCIDCR_STOP 0x00000002 /* Force DMA Stop */
-+ #define SH4_PCIDCR_STRT 0x00000001 /* DMA Start */
-+#define SH4_PCIDPA1 0x190 /* DMA1 Transfer Addr. */
-+#define SH4_PCIDLA1 0x194 /* DMA1 Local Addr. */
-+#define SH4_PCIDTC1 0x198 /* DMA1 Transfer Cnt. */
-+#define SH4_PCIDCR1 0x19C /* DMA1 Control Register */
-+#define SH4_PCIDPA2 0x1A0 /* DMA2 Transfer Addr. */
-+#define SH4_PCIDLA2 0x1A4 /* DMA2 Local Addr. */
-+#define SH4_PCIDTC2 0x1A8 /* DMA2 Transfer Cnt. */
-+#define SH4_PCIDCR2 0x1AC /* DMA2 Control Register */
-+#define SH4_PCIDPA3 0x1B0 /* DMA3 Transfer Addr. */
-+#define SH4_PCIDLA3 0x1B4 /* DMA3 Local Addr. */
-+#define SH4_PCIDTC3 0x1B8 /* DMA3 Transfer Cnt. */
-+#define SH4_PCIDCR3 0x1BC /* DMA3 Control Register */
-+#define SH4_PCIPAR 0x1C0 /* PIO Address Register */
-+ #define SH4_PCIPAR_CFGEN 0x80000000 /* Configuration Enable */
-+ #define SH4_PCIPAR_BUSNO 0x00FF0000 /* Config. Bus Number */
-+ #define SH4_PCIPAR_DEVNO 0x0000FF00 /* Config. Device Number */
-+ #define SH4_PCIPAR_REGAD 0x000000FC /* Register Address Number */
-+#define SH4_PCIMBR 0x1C4 /* Memory Base Address */
-+ #define SH4_PCIMBR_MASK 0xFF000000 /* Memory Space Mask */
-+ #define SH4_PCIMBR_LOCK 0x00000001 /* Lock Memory Space */
-+#define SH4_PCIIOBR 0x1C8 /* I/O Base Address Register */
-+ #define SH4_PCIIOBR_MASK 0xFFFC0000 /* IO Space Mask */
-+ #define SH4_PCIIOBR_LOCK 0x00000001 /* Lock IO Space */
-+#define SH4_PCIPINT 0x1CC /* Power Mgmnt Int. Register */
-+ #define SH4_PCIPINT_D3 0x00000002 /* D3 Pwr Mgmt. Interrupt */
-+ #define SH4_PCIPINT_D0 0x00000001 /* D0 Pwr Mgmt. Interrupt */
-+#define SH4_PCIPINTM 0x1D0 /* Power Mgmnt Mask Register */
-+#define SH4_PCICLKR 0x1D4 /* Clock Ctrl. Register */
-+ #define SH4_PCICLKR_PCSTP 0x00000002 /* PCI Clock Stop */
-+ #define SH4_PCICLKR_BCSTP 0x00000001 /* BCLK Clock Stop */
-+/* For definitions of BCR, MCR see ... */
-+#define SH4_PCIBCR1 0x1E0 /* Memory BCR1 Register */
-+ #define SH4_PCIMBR0 SH4_PCIBCR1
-+#define SH4_PCIBCR2 0x1E4 /* Memory BCR2 Register */
-+ #define SH4_PCIMBMR0 SH4_PCIBCR2
-+#define SH4_PCIWCR1 0x1E8 /* Wait Control 1 Register */
-+#define SH4_PCIWCR2 0x1EC /* Wait Control 2 Register */
-+#define SH4_PCIWCR3 0x1F0 /* Wait Control 3 Register */
-+ #define SH4_PCIMBR2 SH4_PCIWCR3
-+#define SH4_PCIMCR 0x1F4 /* Memory Control Register */
-+#define SH4_PCIBCR3 0x1f8 /* Memory BCR3 Register */
-+#define SH4_PCIPCTR 0x200 /* Port Control Register */
-+ #define SH4_PCIPCTR_P2EN 0x000400000 /* Port 2 Enable */
-+ #define SH4_PCIPCTR_P1EN 0x000200000 /* Port 1 Enable */
-+ #define SH4_PCIPCTR_P0EN 0x000100000 /* Port 0 Enable */
-+ #define SH4_PCIPCTR_P2UP 0x000000020 /* Port2 Pull Up Enable */
-+ #define SH4_PCIPCTR_P2IO 0x000000010 /* Port2 Output Enable */
-+ #define SH4_PCIPCTR_P1UP 0x000000008 /* Port1 Pull Up Enable */
-+ #define SH4_PCIPCTR_P1IO 0x000000004 /* Port1 Output Enable */
-+ #define SH4_PCIPCTR_P0UP 0x000000002 /* Port0 Pull Up Enable */
-+ #define SH4_PCIPCTR_P0IO 0x000000001 /* Port0 Output Enable */
-+#define SH4_PCIPDTR 0x204 /* Port Data Register */
-+ #define SH4_PCIPDTR_PB5 0x000000020 /* Port 5 Enable */
-+ #define SH4_PCIPDTR_PB4 0x000000010 /* Port 4 Enable */
-+ #define SH4_PCIPDTR_PB3 0x000000008 /* Port 3 Enable */
-+ #define SH4_PCIPDTR_PB2 0x000000004 /* Port 2 Enable */
-+ #define SH4_PCIPDTR_PB1 0x000000002 /* Port 1 Enable */
-+ #define SH4_PCIPDTR_PB0 0x000000001 /* Port 0 Enable */
-+#define SH4_PCIPDR 0x220 /* Port IO Data Register */
-+
-+/* Flags */
-+#define SH4_PCIC_NO_RESET 0x0001
-+
-+/* arch/sh/kernel/drivers/pci/ops-sh4.c */
-+extern struct pci_ops sh4_pci_ops;
-+int sh4_pci_check_direct(void);
-+int pci_fixup_pcic(void);
-+
-+struct sh4_pci_address_space {
-+ unsigned long base;
-+ unsigned long size;
-+};
-+
-+struct sh4_pci_address_map {
-+ struct sh4_pci_address_space window0;
-+ struct sh4_pci_address_space window1;
-+ unsigned long flags;
-+};
-+
-+static inline void pci_write_reg(unsigned long val, unsigned long reg)
-+{
-+ outl(val, PCI_REG(reg));
-+}
-+
-+static inline unsigned long pci_read_reg(unsigned long reg)
-+{
-+ return inl(PCI_REG(reg));
-+}
-+#endif /* __PCI_SH4_H */
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/pci/pci-sh7751.c linux-2.6.17/arch/sh/drivers/pci/pci-sh7751.c
---- linux-2.6.17-vanilla/arch/sh/drivers/pci/pci-sh7751.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/pci/pci-sh7751.c 2006-07-12 16:54:21.000000000 +0000
-@@ -16,206 +16,44 @@
- #undef DEBUG
-
- #include <linux/config.h>
--#include <linux/types.h>
--#include <linux/kernel.h>
- #include <linux/init.h>
- #include <linux/pci.h>
--#include <linux/sched.h>
--#include <linux/ioport.h>
-+#include <linux/types.h>
- #include <linux/errno.h>
--#include <linux/irq.h>
- #include <linux/delay.h>
--
--#include <asm/machvec.h>
-+#include "pci-sh4.h"
-+#include <asm/addrspace.h>
- #include <asm/io.h>
--#include "pci-sh7751.h"
--
--static unsigned int pci_probe = PCI_PROBE_CONF1;
--extern int pci_fixup_pcic(void);
--
--void pcibios_fixup_irqs(void) __attribute__ ((weak));
--
--/*
-- * Direct access to PCI hardware...
-- */
--
--#define CONFIG_CMD(bus, devfn, where) (0x80000000 | (bus->number << 16) | (devfn << 8) | (where & ~3))
-
- /*
-- * Functions for accessing PCI configuration space with type 1 accesses
-+ * Initialization. Try all known PCI access methods. Note that we support
-+ * using both PCI BIOS and direct access: in such cases, we use I/O ports
-+ * to access config space.
-+ *
-+ * Note that the platform specific initialization (BSC registers, and memory
-+ * space mapping) will be called via the platform defined function
-+ * pcibios_init_platform().
- */
--static int sh7751_pci_read(struct pci_bus *bus, unsigned int devfn,
-- int where, int size, u32 *val)
--{
-- unsigned long flags;
-- u32 data;
--
-- /*
-- * PCIPDR may only be accessed as 32 bit words,
-- * so we must do byte alignment by hand
-- */
-- local_irq_save(flags);
-- outl(CONFIG_CMD(bus,devfn,where), PCI_REG(SH7751_PCIPAR));
-- data = inl(PCI_REG(SH7751_PCIPDR));
-- local_irq_restore(flags);
--
-- switch (size) {
-- case 1:
-- *val = (data >> ((where & 3) << 3)) & 0xff;
-- break;
-- case 2:
-- *val = (data >> ((where & 2) << 3)) & 0xffff;
-- break;
-- case 4:
-- *val = data;
-- break;
-- default:
-- return PCIBIOS_FUNC_NOT_SUPPORTED;
-- }
--
-- return PCIBIOS_SUCCESSFUL;
--}
--
--/*
-- * Since SH7751 only does 32bit access we'll have to do a read,
-- * mask,write operation.
-- * We'll allow an odd byte offset, though it should be illegal.
-- */
--static int sh7751_pci_write(struct pci_bus *bus, unsigned int devfn,
-- int where, int size, u32 val)
-+static int __init sh7751_pci_init(void)
- {
-- unsigned long flags;
-- int shift;
-- u32 data;
--
-- local_irq_save(flags);
-- outl(CONFIG_CMD(bus,devfn,where), PCI_REG(SH7751_PCIPAR));
-- data = inl(PCI_REG(SH7751_PCIPDR));
-- local_irq_restore(flags);
--
-- switch (size) {
-- case 1:
-- shift = (where & 3) << 3;
-- data &= ~(0xff << shift);
-- data |= ((val & 0xff) << shift);
-- break;
-- case 2:
-- shift = (where & 2) << 3;
-- data &= ~(0xffff << shift);
-- data |= ((val & 0xffff) << shift);
-- break;
-- case 4:
-- data = val;
-- break;
-- default:
-- return PCIBIOS_FUNC_NOT_SUPPORTED;
-- }
--
-- outl(data, PCI_REG(SH7751_PCIPDR));
--
-- return PCIBIOS_SUCCESSFUL;
--}
--
--#undef CONFIG_CMD
--
--struct pci_ops sh7751_pci_ops = {
-- .read = sh7751_pci_read,
-- .write = sh7751_pci_write,
--};
-+ unsigned int id;
-+ int ret;
-
--static int __init pci_check_direct(void)
--{
-- unsigned int tmp, id;
-+ pr_debug("PCI: Starting intialization.\n");
-
- /* check for SH7751/SH7751R hardware */
-- id = inl(SH7751_PCIREG_BASE+SH7751_PCICONF0);
-+ id = pci_read_reg(SH7751_PCICONF0);
- if (id != ((SH7751_DEVICE_ID << 16) | SH7751_VENDOR_ID) &&
- id != ((SH7751R_DEVICE_ID << 16) | SH7751_VENDOR_ID)) {
- pr_debug("PCI: This is not an SH7751(R) (%x)\n", id);
- return -ENODEV;
- }
-
-- /*
-- * Check if configuration works.
-- */
-- if (pci_probe & PCI_PROBE_CONF1) {
-- tmp = inl (PCI_REG(SH7751_PCIPAR));
-- outl (0x80000000, PCI_REG(SH7751_PCIPAR));
-- if (inl (PCI_REG(SH7751_PCIPAR)) == 0x80000000) {
-- outl (tmp, PCI_REG(SH7751_PCIPAR));
-- printk(KERN_INFO "PCI: Using configuration type 1\n");
-- request_region(PCI_REG(SH7751_PCIPAR), 8, "PCI conf1");
-- return 0;
-- }
-- outl (tmp, PCI_REG(SH7751_PCIPAR));
-- }
--
-- pr_debug("PCI: pci_check_direct failed\n");
-- return -EINVAL;
--}
--
--/***************************************************************************************/
--
--/*
-- * Handle bus scanning and fixups ....
-- */
--
--static void __init pci_fixup_ide_bases(struct pci_dev *d)
--{
-- int i;
--
-- /*
-- * PCI IDE controllers use non-standard I/O port decoding, respect it.
-- */
-- if ((d->class >> 8) != PCI_CLASS_STORAGE_IDE)
-- return;
-- pr_debug("PCI: IDE base address fixup for %s\n", pci_name(d));
-- for(i=0; i<4; i++) {
-- struct resource *r = &d->resource[i];
-- if ((r->start & ~0x80) == 0x374) {
-- r->start |= 2;
-- r->end = r->start;
-- }
-- }
--}
--
--DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pci_fixup_ide_bases);
--
--/*
-- * Called after each bus is probed, but before its children
-- * are examined.
-- */
--
--void __init pcibios_fixup_bus(struct pci_bus *b)
--{
-- pci_read_bridge_bases(b);
--}
--
--/*
-- * Initialization. Try all known PCI access methods. Note that we support
-- * using both PCI BIOS and direct access: in such cases, we use I/O ports
-- * to access config space.
-- *
-- * Note that the platform specific initialization (BSC registers, and memory
-- * space mapping) will be called via the machine vectors (sh_mv.mv_pci_init()) if it
-- * exitst and via the platform defined function pcibios_init_platform().
-- * See pci_bigsur.c for implementation;
-- *
-- * The BIOS version of the pci functions is not yet implemented but it is left
-- * in for completeness. Currently an error will be genereated at compile time.
-- */
--
--static int __init sh7751_pci_init(void)
--{
-- int ret;
--
-- pr_debug("PCI: Starting intialization.\n");
-- if ((ret = pci_check_direct()) != 0)
-+ if ((ret = sh4_pci_check_direct()) != 0)
- return ret;
-
- return pcibios_init_platform();
- }
--
- subsys_initcall(sh7751_pci_init);
-
- static int __init __area_sdram_check(unsigned int area)
-@@ -224,26 +62,26 @@
-
- word = inl(SH7751_BCR1);
- /* check BCR for SDRAM in area */
-- if(((word >> area) & 1) == 0) {
-+ if (((word >> area) & 1) == 0) {
- printk("PCI: Area %d is not configured for SDRAM. BCR1=0x%x\n",
- area, word);
- return 0;
- }
-- outl(word, PCI_REG(SH7751_PCIBCR1));
-+ pci_write_reg(word, SH4_PCIBCR1);
-
- word = (u16)inw(SH7751_BCR2);
- /* check BCR2 for 32bit SDRAM interface*/
-- if(((word >> (area << 1)) & 0x3) != 0x3) {
-+ if (((word >> (area << 1)) & 0x3) != 0x3) {
- printk("PCI: Area %d is not 32 bit SDRAM. BCR2=0x%x\n",
- area, word);
- return 0;
- }
-- outl(word, PCI_REG(SH7751_PCIBCR2));
-+ pci_write_reg(word, SH4_PCIBCR2);
-
- return 1;
- }
-
--int __init sh7751_pcic_init(struct sh7751_pci_address_map *map)
-+int __init sh7751_pcic_init(struct sh4_pci_address_map *map)
- {
- u32 reg;
- u32 word;
-@@ -252,86 +90,89 @@
- reg = inl(SH7751_BCR1);
- reg |= 0x80000;
- outl(reg, SH7751_BCR1);
--
-+
- /* Turn the clocks back on (not done in reset)*/
-- outl(0, PCI_REG(SH7751_PCICLKR));
-+ pci_write_reg(0, SH4_PCICLKR);
- /* Clear Powerdown IRQ's (not done in reset) */
-- word = SH7751_PCIPINT_D3 | SH7751_PCIPINT_D0;
-- outl(word, PCI_REG(SH7751_PCIPINT));
-+ word = SH4_PCIPINT_D3 | SH4_PCIPINT_D0;
-+ pci_write_reg(word, SH4_PCIPINT);
-
- /*
- * This code is unused for some boards as it is done in the
- * bootloader and doing it here means the MAC addresses loaded
- * by the bootloader get lost.
- */
-- if (!(map->flags & SH7751_PCIC_NO_RESET)) {
-+ if (!(map->flags & SH4_PCIC_NO_RESET)) {
- /* toggle PCI reset pin */
-- word = SH7751_PCICR_PREFIX | SH7751_PCICR_PRST;
-- outl(word,PCI_REG(SH7751_PCICR));
-+ word = SH4_PCICR_PREFIX | SH4_PCICR_PRST;
-+ pci_write_reg(word, SH4_PCICR);
- /* Wait for a long time... not 1 sec. but long enough */
- mdelay(100);
-- word = SH7751_PCICR_PREFIX;
-- outl(word,PCI_REG(SH7751_PCICR));
-+ word = SH4_PCICR_PREFIX;
-+ pci_write_reg(word, SH4_PCICR);
- }
--
-+
- /* set the command/status bits to:
- * Wait Cycle Control + Parity Enable + Bus Master +
- * Mem space enable
- */
-- word = SH7751_PCICONF1_WCC | SH7751_PCICONF1_PER |
-+ word = SH7751_PCICONF1_WCC | SH7751_PCICONF1_PER |
- SH7751_PCICONF1_BUM | SH7751_PCICONF1_MES;
-- outl(word, PCI_REG(SH7751_PCICONF1));
-+ pci_write_reg(word, SH7751_PCICONF1);
-
- /* define this host as the host bridge */
-- word = SH7751_PCI_HOST_BRIDGE << 24;
-- outl(word, PCI_REG(SH7751_PCICONF2));
-+ word = PCI_BASE_CLASS_BRIDGE << 24;
-+ pci_write_reg(word, SH7751_PCICONF2);
-
-- /* Set IO and Mem windows to local address
-- * Make PCI and local address the same for easy 1 to 1 mapping
-+ /* Set IO and Mem windows to local address
-+ * Make PCI and local address the same for easy 1 to 1 mapping
- * Window0 = map->window0.size @ non-cached area base = SDRAM
-- * Window1 = map->window1.size @ cached area base = SDRAM
-+ * Window1 = map->window1.size @ cached area base = SDRAM
- */
- word = map->window0.size - 1;
-- outl(word, PCI_REG(SH7751_PCILSR0));
-+ pci_write_reg(word, SH4_PCILSR0);
- word = map->window1.size - 1;
-- outl(word, PCI_REG(SH7751_PCILSR1));
-+ pci_write_reg(word, SH4_PCILSR1);
- /* Set the values on window 0 PCI config registers */
- word = P2SEGADDR(map->window0.base);
-- outl(word, PCI_REG(SH7751_PCILAR0));
-- outl(word, PCI_REG(SH7751_PCICONF5));
-+ pci_write_reg(word, SH4_PCILAR0);
-+ pci_write_reg(word, SH7751_PCICONF5);
- /* Set the values on window 1 PCI config registers */
- word = PHYSADDR(map->window1.base);
-- outl(word, PCI_REG(SH7751_PCILAR1));
-- outl(word, PCI_REG(SH7751_PCICONF6));
-+ pci_write_reg(word, SH4_PCILAR1);
-+ pci_write_reg(word, SH7751_PCICONF6);
-
-- /* Set the local 16MB PCI memory space window to
-+ /* Set the local 16MB PCI memory space window to
- * the lowest PCI mapped address
- */
-- word = PCIBIOS_MIN_MEM & SH7751_PCIMBR_MASK;
-- PCIDBG(2,"PCI: Setting upper bits of Memory window to 0x%x\n", word);
-- outl(word , PCI_REG(SH7751_PCIMBR));
-+ word = PCIBIOS_MIN_MEM & SH4_PCIMBR_MASK;
-+ pr_debug("PCI: Setting upper bits of Memory window to 0x%x\n", word);
-+ pci_write_reg(word , SH4_PCIMBR);
-
- /* Map IO space into PCI IO window
- * The IO window is 64K-PCIBIOS_MIN_IO in size
-- * IO addresses will be translated to the
-+ * IO addresses will be translated to the
- * PCI IO window base address
- */
-- PCIDBG(3,"PCI: Mapping IO address 0x%x - 0x%x to base 0x%x\n", PCIBIOS_MIN_IO,
-- (64*1024), SH7751_PCI_IO_BASE+PCIBIOS_MIN_IO);
-+ pr_debug("PCI: Mapping IO address 0x%x - 0x%x to base 0x%x\n",
-+ PCIBIOS_MIN_IO, (64 << 10),
-+ SH4_PCI_IO_BASE + PCIBIOS_MIN_IO);
-
-- /*
-+ /*
- * XXX: For now, leave this board-specific. In the event we have other
- * boards that need to do similar work, this can be wrapped.
- */
- #ifdef CONFIG_SH_BIGSUR
-- bigsur_port_map(PCIBIOS_MIN_IO, (64*1024), SH7751_PCI_IO_BASE+PCIBIOS_MIN_IO,0);
-+ bigsur_port_map(PCIBIOS_MIN_IO, (64 << 10),
-+ SH4_PCI_IO_BASE + PCIBIOS_MIN_IO, 0);
- #endif
-
-- /* Make sure the MSB's of IO window are set to access PCI space correctly */
-- word = PCIBIOS_MIN_IO & SH7751_PCIIOBR_MASK;
-- PCIDBG(2,"PCI: Setting upper bits of IO window to 0x%x\n", word);
-- outl(word, PCI_REG(SH7751_PCIIOBR));
--
-+ /* Make sure the MSB's of IO window are set to access PCI space
-+ * correctly */
-+ word = PCIBIOS_MIN_IO & SH4_PCIIOBR_MASK;
-+ pr_debug("PCI: Setting upper bits of IO window to 0x%x\n", word);
-+ pci_write_reg(word, SH4_PCIIOBR);
-+
- /* Set PCI WCRx, BCRx's, copy from BSC locations */
-
- /* check BCR for SDRAM in specified area */
-@@ -344,19 +185,19 @@
- case SH7751_CS5_BASE_ADDR: word = __area_sdram_check(5); break;
- case SH7751_CS6_BASE_ADDR: word = __area_sdram_check(6); break;
- }
--
-+
- if (!word)
- return 0;
-
- /* configure the wait control registers */
- word = inl(SH7751_WCR1);
-- outl(word, PCI_REG(SH7751_PCIWCR1));
-+ pci_write_reg(word, SH4_PCIWCR1);
- word = inl(SH7751_WCR2);
-- outl(word, PCI_REG(SH7751_PCIWCR2));
-+ pci_write_reg(word, SH4_PCIWCR2);
- word = inl(SH7751_WCR3);
-- outl(word, PCI_REG(SH7751_PCIWCR3));
-+ pci_write_reg(word, SH4_PCIWCR3);
- word = inl(SH7751_MCR);
-- outl(word, PCI_REG(SH7751_PCIMCR));
-+ pci_write_reg(word, SH4_PCIMCR);
-
- /* NOTE: I'm ignoring the PCI error IRQs for now..
- * TODO: add support for the internal error interrupts and
-@@ -369,49 +210,8 @@
-
- /* SH7751 init done, set central function init complete */
- /* use round robin mode to stop a device starving/overruning */
-- word = SH7751_PCICR_PREFIX | SH7751_PCICR_CFIN | SH7751_PCICR_ARBM;
-- outl(word,PCI_REG(SH7751_PCICR));
-+ word = SH4_PCICR_PREFIX | SH4_PCICR_CFIN | SH4_PCICR_ARBM;
-+ pci_write_reg(word, SH4_PCICR);
-
- return 1;
- }
--
--char * __init pcibios_setup(char *str)
--{
-- if (!strcmp(str, "off")) {
-- pci_probe = 0;
-- return NULL;
-- }
--
-- return str;
--}
--
--/*
-- * IRQ functions
-- */
--static u8 __init sh7751_no_swizzle(struct pci_dev *dev, u8 *pin)
--{
-- /* no swizzling */
-- return PCI_SLOT(dev->devfn);
--}
--
--static int sh7751_pci_lookup_irq(struct pci_dev *dev, u8 slot, u8 pin)
--{
-- int irq = -1;
--
-- /* now lookup the actual IRQ on a platform specific basis (pci-'platform'.c) */
-- irq = pcibios_map_platform_irq(slot,pin);
-- if( irq < 0 ) {
-- pr_debug("PCI: Error mapping IRQ on device %s\n", pci_name(dev));
-- return irq;
-- }
--
-- pr_debug("Setting IRQ for slot %s to %d\n", pci_name(dev), irq);
--
-- return irq;
--}
--
--void __init pcibios_fixup_irqs(void)
--{
-- pci_fixup_irqs(sh7751_no_swizzle, sh7751_pci_lookup_irq);
--}
--
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/pci/pci-sh7751.h linux-2.6.17/arch/sh/drivers/pci/pci-sh7751.h
---- linux-2.6.17-vanilla/arch/sh/drivers/pci/pci-sh7751.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/pci/pci-sh7751.h 2006-07-12 16:54:21.000000000 +0000
-@@ -3,7 +3,7 @@
- *
- * Dustin McIntire (dustin@sensoria.com) (c) 2001
- * Paul Mundt (lethal@linux-sh.org) (c) 2003
-- *
-+ *
- * May be copied or modified under the terms of the GNU General Public
- * License. See linux/COPYING for more information.
- *
-@@ -12,28 +12,6 @@
- #ifndef _PCI_SH7751_H_
- #define _PCI_SH7751_H_
-
--#include <linux/pci.h>
--
--/* set debug level 4=verbose...1=terse */
--//#define DEBUG_PCI 3
--#undef DEBUG_PCI
--
--#ifdef DEBUG_PCI
--#define PCIDBG(n, x...) { if(DEBUG_PCI>=n) printk(x); }
--#else
--#define PCIDBG(n, x...)
--#endif
--
--/* startup values */
--#define PCI_PROBE_BIOS 1
--#define PCI_PROBE_CONF1 2
--#define PCI_PROBE_CONF2 4
--#define PCI_NO_SORT 0x100
--#define PCI_BIOS_SORT 0x200
--#define PCI_NO_CHECKS 0x400
--#define PCI_ASSIGN_ROMS 0x1000
--#define PCI_BIOS_IRQ_SCAN 0x2000
--
- /* Platform Specific Values */
- #define SH7751_VENDOR_ID 0x1054
- #define SH7751_DEVICE_ID 0x3505
-@@ -128,131 +106,6 @@
- #define SH7751_PCICONF17_PMEN 0x00010000 /* PME Enable */
- #define SH7751_PCICONF17_PWST 0x00000003 /* Power State */
- /* SH7715 Internal PCI Registers */
--#define SH7751_PCICR 0x100 /* PCI Control Register */
-- #define SH7751_PCICR_PREFIX 0xA5000000 /* CR prefix for write */
-- #define SH7751_PCICR_TRSB 0x00000200 /* Target Read Single */
-- #define SH7751_PCICR_BSWP 0x00000100 /* Target Byte Swap */
-- #define SH7751_PCICR_PLUP 0x00000080 /* Enable PCI Pullup */
-- #define SH7751_PCICR_ARBM 0x00000040 /* PCI Arbitration Mode */
-- #define SH7751_PCICR_MD 0x00000030 /* MD9 and MD10 status */
-- #define SH7751_PCICR_SERR 0x00000008 /* SERR output assert */
-- #define SH7751_PCICR_INTA 0x00000004 /* INTA output assert */
-- #define SH7751_PCICR_PRST 0x00000002 /* PCI Reset Assert */
-- #define SH7751_PCICR_CFIN 0x00000001 /* Central Fun. Init Done */
--#define SH7751_PCILSR0 0x104 /* PCI Local Space Register0 */
--#define SH7751_PCILSR1 0x108 /* PCI Local Space Register1 */
--#define SH7751_PCILAR0 0x10C /* PCI Local Address Register1 */
--#define SH7751_PCILAR1 0x110 /* PCI Local Address Register1 */
--#define SH7751_PCIINT 0x114 /* PCI Interrupt Register */
-- #define SH7751_PCIINT_MLCK 0x00008000 /* Master Lock Error */
-- #define SH7751_PCIINT_TABT 0x00004000 /* Target Abort Error */
-- #define SH7751_PCIINT_TRET 0x00000200 /* Target Retry Error */
-- #define SH7751_PCIINT_MFDE 0x00000100 /* Master Func. Disable Error */
-- #define SH7751_PCIINT_PRTY 0x00000080 /* Address Parity Error */
-- #define SH7751_PCIINT_SERR 0x00000040 /* SERR Detection Error */
-- #define SH7751_PCIINT_TWDP 0x00000020 /* Tgt. Write Parity Error */
-- #define SH7751_PCIINT_TRDP 0x00000010 /* Tgt. Read Parity Error Det. */
-- #define SH7751_PCIINT_MTABT 0x00000008 /* Master-Tgt. Abort Error */
-- #define SH7751_PCIINT_MMABT 0x00000004 /* Master-Master Abort Error */
-- #define SH7751_PCIINT_MWPD 0x00000002 /* Master Write PERR Detect */
-- #define SH7751_PCIINT_MRPD 0x00000002 /* Master Read PERR Detect */
--#define SH7751_PCIINTM 0x118 /* PCI Interrupt Mask Register */
--#define SH7751_PCIALR 0x11C /* Error Address Register */
--#define SH7751_PCICLR 0x120 /* Error Command/Data Register */
-- #define SH7751_PCICLR_MPIO 0x80000000 /* Error Command/Data Register */
-- #define SH7751_PCICLR_MDMA0 0x40000000 /* DMA0 Transfer Error */
-- #define SH7751_PCICLR_MDMA1 0x20000000 /* DMA1 Transfer Error */
-- #define SH7751_PCICLR_MDMA2 0x10000000 /* DMA2 Transfer Error */
-- #define SH7751_PCICLR_MDMA3 0x08000000 /* DMA3 Transfer Error */
-- #define SH7751_PCICLR_TGT 0x04000000 /* Target Transfer Error */
-- #define SH7751_PCICLR_CMDL 0x0000000F /* PCI Command at Error */
--#define SH7751_PCIAINT 0x130 /* Arbiter Interrupt Register */
-- #define SH7751_PCIAINT_MBKN 0x00002000 /* Master Broken Interrupt */
-- #define SH7751_PCIAINT_TBTO 0x00001000 /* Target Bus Time Out */
-- #define SH7751_PCIAINT_MBTO 0x00001000 /* Master Bus Time Out */
-- #define SH7751_PCIAINT_TABT 0x00000008 /* Target Abort */
-- #define SH7751_PCIAINT_MABT 0x00000004 /* Master Abort */
-- #define SH7751_PCIAINT_RDPE 0x00000002 /* Read Data Parity Error */
-- #define SH7751_PCIAINT_WDPE 0x00000002 /* Write Data Parity Error */
--#define SH7751_PCIAINTM 0x134 /* Arbiter Int. Mask Register */
--#define SH7751_PCIBMLR 0x138 /* Error Bus Master Register */
-- #define SH7751_PCIBMLR_REQ4 0x00000010 /* REQ4 bus master at error */
-- #define SH7751_PCIBMLR_REQ3 0x00000008 /* REQ3 bus master at error */
-- #define SH7751_PCIBMLR_REQ2 0x00000004 /* REQ2 bus master at error */
-- #define SH7751_PCIBMLR_REQ1 0x00000002 /* REQ1 bus master at error */
-- #define SH7751_PCIBMLR_REQ0 0x00000001 /* REQ0 bus master at error */
--#define SH7751_PCIDMABT 0x140 /* DMA Transfer Arb. Register */
-- #define SH7751_PCIDMABT_RRBN 0x00000001 /* DMA Arbitor Round-Robin */
--#define SH7751_PCIDPA0 0x180 /* DMA0 Transfer Addr. Register */
--#define SH7751_PCIDLA0 0x184 /* DMA0 Local Addr. Register */
--#define SH7751_PCIDTC0 0x188 /* DMA0 Transfer Cnt. Register */
--#define SH7751_PCIDCR0 0x18C /* DMA0 Control Register */
-- #define SH7751_PCIDCR_ALGN 0x00000600 /* DMA Alignment Mode */
-- #define SH7751_PCIDCR_MAST 0x00000100 /* DMA Termination Type */
-- #define SH7751_PCIDCR_INTM 0x00000080 /* DMA Interrupt Done Mask*/
-- #define SH7751_PCIDCR_INTS 0x00000040 /* DMA Interrupt Done Status */
-- #define SH7751_PCIDCR_LHLD 0x00000020 /* Local Address Control */
-- #define SH7751_PCIDCR_PHLD 0x00000010 /* PCI Address Control*/
-- #define SH7751_PCIDCR_IOSEL 0x00000008 /* PCI Address Space Type */
-- #define SH7751_PCIDCR_DIR 0x00000004 /* DMA Transfer Direction */
-- #define SH7751_PCIDCR_STOP 0x00000002 /* Force DMA Stop */
-- #define SH7751_PCIDCR_STRT 0x00000001 /* DMA Start */
--#define SH7751_PCIDPA1 0x190 /* DMA1 Transfer Addr. Register */
--#define SH7751_PCIDLA1 0x194 /* DMA1 Local Addr. Register */
--#define SH7751_PCIDTC1 0x198 /* DMA1 Transfer Cnt. Register */
--#define SH7751_PCIDCR1 0x19C /* DMA1 Control Register */
--#define SH7751_PCIDPA2 0x1A0 /* DMA2 Transfer Addr. Register */
--#define SH7751_PCIDLA2 0x1A4 /* DMA2 Local Addr. Register */
--#define SH7751_PCIDTC2 0x1A8 /* DMA2 Transfer Cnt. Register */
--#define SH7751_PCIDCR2 0x1AC /* DMA2 Control Register */
--#define SH7751_PCIDPA3 0x1B0 /* DMA3 Transfer Addr. Register */
--#define SH7751_PCIDLA3 0x1B4 /* DMA3 Local Addr. Register */
--#define SH7751_PCIDTC3 0x1B8 /* DMA3 Transfer Cnt. Register */
--#define SH7751_PCIDCR3 0x1BC /* DMA3 Control Register */
--#define SH7751_PCIPAR 0x1C0 /* PIO Address Register */
-- #define SH7751_PCIPAR_CFGEN 0x80000000 /* Configuration Enable */
-- #define SH7751_PCIPAR_BUSNO 0x00FF0000 /* Config. Bus Number */
-- #define SH7751_PCIPAR_DEVNO 0x0000FF00 /* Config. Device Number */
-- #define SH7751_PCIPAR_REGAD 0x000000FC /* Register Address Number */
--#define SH7751_PCIMBR 0x1C4 /* Memory Base Address Register */
-- #define SH7751_PCIMBR_MASK 0xFF000000 /* Memory Space Mask */
-- #define SH7751_PCIMBR_LOCK 0x00000001 /* Lock Memory Space */
--#define SH7751_PCIIOBR 0x1C8 /* I/O Base Address Register */
-- #define SH7751_PCIIOBR_MASK 0xFFFC0000 /* IO Space Mask */
-- #define SH7751_PCIIOBR_LOCK 0x00000001 /* Lock IO Space */
--#define SH7751_PCIPINT 0x1CC /* Power Mgmnt Int. Register */
-- #define SH7751_PCIPINT_D3 0x00000002 /* D3 Pwr Mgmt. Interrupt */
-- #define SH7751_PCIPINT_D0 0x00000001 /* D0 Pwr Mgmt. Interrupt */
--#define SH7751_PCIPINTM 0x1D0 /* Power Mgmnt Mask Register */
--#define SH7751_PCICLKR 0x1D4 /* Clock Ctrl. Register */
-- #define SH7751_PCICLKR_PCSTP 0x00000002 /* PCI Clock Stop */
-- #define SH7751_PCICLKR_BCSTP 0x00000002 /* BCLK Clock Stop */
--/* For definitions of BCR, MCR see ... */
--#define SH7751_PCIBCR1 0x1E0 /* Memory BCR1 Register */
--#define SH7751_PCIBCR2 0x1E4 /* Memory BCR2 Register */
--#define SH7751_PCIWCR1 0x1E8 /* Wait Control 1 Register */
--#define SH7751_PCIWCR2 0x1EC /* Wait Control 2 Register */
--#define SH7751_PCIWCR3 0x1F0 /* Wait Control 3 Register */
--#define SH7751_PCIMCR 0x1F4 /* Memory Control Register */
--#define SH7751_PCIBCR3 0x1f8 /* Memory BCR3 Register */
--#define SH7751_PCIPCTR 0x200 /* Port Control Register */
-- #define SH7751_PCIPCTR_P2EN 0x000400000 /* Port 2 Enable */
-- #define SH7751_PCIPCTR_P1EN 0x000200000 /* Port 1 Enable */
-- #define SH7751_PCIPCTR_P0EN 0x000100000 /* Port 0 Enable */
-- #define SH7751_PCIPCTR_P2UP 0x000000020 /* Port2 Pull Up Enable */
-- #define SH7751_PCIPCTR_P2IO 0x000000010 /* Port2 Output Enable */
-- #define SH7751_PCIPCTR_P1UP 0x000000008 /* Port1 Pull Up Enable */
-- #define SH7751_PCIPCTR_P1IO 0x000000004 /* Port1 Output Enable */
-- #define SH7751_PCIPCTR_P0UP 0x000000002 /* Port0 Pull Up Enable */
-- #define SH7751_PCIPCTR_P0IO 0x000000001 /* Port0 Output Enable */
--#define SH7751_PCIPDTR 0x204 /* Port Data Register */
-- #define SH7751_PCIPDTR_PB5 0x000000020 /* Port 5 Enable */
-- #define SH7751_PCIPDTR_PB4 0x000000010 /* Port 4 Enable */
-- #define SH7751_PCIPDTR_PB3 0x000000008 /* Port 3 Enable */
-- #define SH7751_PCIPDTR_PB2 0x000000004 /* Port 2 Enable */
-- #define SH7751_PCIPDTR_PB1 0x000000002 /* Port 1 Enable */
-- #define SH7751_PCIPDTR_PB0 0x000000001 /* Port 0 Enable */
--#define SH7751_PCIPDR 0x220 /* Port IO Data Register */
-
- /* Memory Control Registers */
- #define SH7751_BCR1 0xFF800000 /* Memory BCR1 Register */
-@@ -274,30 +127,9 @@
- #define SH7751_CS5_BASE_ADDR (SH7751_CS4_BASE_ADDR + SH7751_MEM_REGION_SIZE)
- #define SH7751_CS6_BASE_ADDR (SH7751_CS5_BASE_ADDR + SH7751_MEM_REGION_SIZE)
-
--/* General PCI values */
--#define SH7751_PCI_HOST_BRIDGE 0x6
--
--/* Flags */
--#define SH7751_PCIC_NO_RESET 0x0001
--
--/* External functions defined per platform i.e. Big Sur, SE... (these could be routed
-- * through the machine vectors... */
--extern int pcibios_init_platform(void);
--extern int pcibios_map_platform_irq(u8 slot, u8 pin);
--
--struct sh7751_pci_address_space {
-- unsigned long base;
-- unsigned long size;
--};
--
--struct sh7751_pci_address_map {
-- struct sh7751_pci_address_space window0;
-- struct sh7751_pci_address_space window1;
-- unsigned long flags;
--};
-+struct sh4_pci_address_map;
-
- /* arch/sh/drivers/pci/pci-sh7751.c */
--extern int sh7751_pcic_init(struct sh7751_pci_address_map *map);
-+int sh7751_pcic_init(struct sh4_pci_address_map *map);
-
- #endif /* _PCI_SH7751_H_ */
--
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/pci/pci-sh7780.c linux-2.6.17/arch/sh/drivers/pci/pci-sh7780.c
---- linux-2.6.17-vanilla/arch/sh/drivers/pci/pci-sh7780.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/pci/pci-sh7780.c 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,139 @@
-+/*
-+ * Low-Level PCI Support for the SH7780
-+ *
-+ * Dustin McIntire (dustin@sensoria.com)
-+ * Derived from arch/i386/kernel/pci-*.c which bore the message:
-+ * (c) 1999--2000 Martin Mares <mj@ucw.cz>
-+ *
-+ * Ported to the new API by Paul Mundt <lethal@linux-sh.org>
-+ * With cleanup by Paul van Gool <pvangool@mimotech.com>
-+ *
-+ * May be copied or modified under the terms of the GNU General Public
-+ * License. See linux/COPYING for more information.
-+ *
-+ */
-+
-+#undef DEBUG
-+
-+#include <linux/config.h>
-+#include <linux/types.h>
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/pci.h>
-+#include <linux/errno.h>
-+#include <linux/delay.h>
-+#include "pci-sh4.h"
-+
-+/*
-+ * Initialization. Try all known PCI access methods. Note that we support
-+ * using both PCI BIOS and direct access: in such cases, we use I/O ports
-+ * to access config space.
-+ *
-+ * Note that the platform specific initialization (BSC registers, and memory
-+ * space mapping) will be called via the platform defined function
-+ * pcibios_init_platform().
-+ */
-+static int __init sh7780_pci_init(void)
-+{
-+ unsigned int id;
-+ int ret;
-+
-+ pr_debug("PCI: Starting intialization.\n");
-+
-+ outl(0x00000001, SH7780_PCI_VCR2); /* Enable PCIC */
-+
-+ /* check for SH7780/SH7780R hardware */
-+ id = pci_read_reg(SH7780_PCIVID);
-+ if ((id != ((SH7780_DEVICE_ID << 16) | SH7780_VENDOR_ID)) &&
-+ (id != ((SH7781_DEVICE_ID << 16) | SH7780_VENDOR_ID))) {
-+ printk(KERN_ERR "PCI: This is not an SH7780 (%x)\n", id);
-+ return -ENODEV;
-+ }
-+
-+ /* Setup the INTC */
-+ ctrl_outl(0x00200000, INTC_ICR0); /* INTC SH-4 Mode */
-+ ctrl_outl(0x00078000, INTC_INT2MSKCR); /* enable PCIINTA - PCIINTD */
-+ ctrl_outl(0x40000000, INTC_INTMSK1); /* disable IRL4-7 Interrupt */
-+ ctrl_outl(0x0000fffe, INTC_INTMSK2); /* disable IRL4-7 Interrupt */
-+ ctrl_outl(0x80000000, INTC_INTMSKCLR1); /* enable IRL0-3 Interrupt */
-+ ctrl_outl(0xfffe0000, INTC_INTMSKCLR2); /* enable IRL0-3 Interrupt */
-+
-+ if ((ret = sh4_pci_check_direct()) != 0)
-+ return ret;
-+
-+ return pcibios_init_platform();
-+}
-+core_initcall(sh7780_pci_init);
-+
-+int __init sh7780_pcic_init(struct sh4_pci_address_map *map)
-+{
-+ u32 word;
-+
-+ /*
-+ * This code is unused for some boards as it is done in the
-+ * bootloader and doing it here means the MAC addresses loaded
-+ * by the bootloader get lost.
-+ */
-+ if (!(map->flags & SH4_PCIC_NO_RESET)) {
-+ /* toggle PCI reset pin */
-+ word = SH4_PCICR_PREFIX | SH4_PCICR_PRST;
-+ pci_write_reg(word, SH4_PCICR);
-+ /* Wait for a long time... not 1 sec. but long enough */
-+ mdelay(100);
-+ word = SH4_PCICR_PREFIX;
-+ pci_write_reg(word, SH4_PCICR);
-+ }
-+
-+ /* set the command/status bits to:
-+ * Wait Cycle Control + Parity Enable + Bus Master +
-+ * Mem space enable
-+ */
-+ pci_write_reg(0x00000046, SH7780_PCICMD);
-+
-+ /* define this host as the host bridge */
-+ word = PCI_BASE_CLASS_BRIDGE << 24;
-+ pci_write_reg(word, SH7780_PCIRID);
-+
-+ /* Set IO and Mem windows to local address
-+ * Make PCI and local address the same for easy 1 to 1 mapping
-+ * Window0 = map->window0.size @ non-cached area base = SDRAM
-+ * Window1 = map->window1.size @ cached area base = SDRAM
-+ */
-+ word = ((map->window0.size - 1) & 0x1ff00001) | 0x01;
-+ pci_write_reg(0x07f00001, SH4_PCILSR0);
-+ word = ((map->window1.size - 1) & 0x1ff00001) | 0x01;
-+ pci_write_reg(0x00000001, SH4_PCILSR1);
-+ /* Set the values on window 0 PCI config registers */
-+ word = P2SEGADDR(map->window0.base);
-+ pci_write_reg(0xa8000000, SH4_PCILAR0);
-+ pci_write_reg(0x08000000, SH7780_PCIMBAR0);
-+ /* Set the values on window 1 PCI config registers */
-+ word = P2SEGADDR(map->window1.base);
-+ pci_write_reg(0x00000000, SH4_PCILAR1);
-+ pci_write_reg(0x00000000, SH7780_PCIMBAR1);
-+
-+ /* Map IO space into PCI IO window
-+ * The IO window is 64K-PCIBIOS_MIN_IO in size
-+ * IO addresses will be translated to the
-+ * PCI IO window base address
-+ */
-+ pr_debug("PCI: Mapping IO address 0x%x - 0x%x to base 0x%x\n",
-+ PCIBIOS_MIN_IO, (64 << 10),
-+ SH7780_PCI_IO_BASE + PCIBIOS_MIN_IO);
-+
-+ /* NOTE: I'm ignoring the PCI error IRQs for now..
-+ * TODO: add support for the internal error interrupts and
-+ * DMA interrupts...
-+ */
-+
-+#ifdef CONFIG_SH_R7780RP
-+ pci_fixup_pcic();
-+#endif
-+
-+ /* SH7780 init done, set central function init complete */
-+ /* use round robin mode to stop a device starving/overruning */
-+ word = SH4_PCICR_PREFIX | SH4_PCICR_CFIN | SH4_PCICR_FTO;
-+ pci_write_reg(word, SH4_PCICR);
-+
-+ return 1;
-+}
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/pci/pci-sh7780.h linux-2.6.17/arch/sh/drivers/pci/pci-sh7780.h
---- linux-2.6.17-vanilla/arch/sh/drivers/pci/pci-sh7780.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/pci/pci-sh7780.h 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,94 @@
-+/*
-+ * Low-Level PCI Support for SH7780 targets
-+ *
-+ * Dustin McIntire (dustin@sensoria.com) (c) 2001
-+ * Paul Mundt (lethal@linux-sh.org) (c) 2003
-+ *
-+ * May be copied or modified under the terms of the GNU General Public
-+ * License. See linux/COPYING for more information.
-+ *
-+ */
-+
-+#ifndef _PCI_SH7780_H_
-+#define _PCI_SH7780_H_
-+
-+/* Platform Specific Values */
-+#define SH7780_VENDOR_ID 0x1912
-+#define SH7780_DEVICE_ID 0x0002
-+#define SH7781_DEVICE_ID 0x0001
-+
-+/* SH7780 Control Registers */
-+#define SH7780_PCI_VCR0 0xFE000000
-+#define SH7780_PCI_VCR1 0xFE000004
-+#define SH7780_PCI_VCR2 0xFE000008
-+
-+/* SH7780 Specific Values */
-+#define SH7780_PCI_CONFIG_BASE 0xFD000000 /* Config space base addr */
-+#define SH7780_PCI_CONFIG_SIZE 0x01000000 /* Config space size */
-+
-+#define SH7780_PCI_MEMORY_BASE 0xFD000000 /* Memory space base addr */
-+#define SH7780_PCI_MEM_SIZE 0x01000000 /* Size of Memory window */
-+
-+#define SH7780_PCI_IO_BASE 0xFE400000 /* IO space base address */
-+#define SH7780_PCI_IO_SIZE 0x00400000 /* Size of IO window */
-+
-+#define SH7780_PCIREG_BASE 0xFE040000 /* PCI regs base address */
-+#define PCI_REG(n) (SH7780_PCIREG_BASE+n)
-+
-+/* SH7780 PCI Config Registers */
-+#define SH7780_PCIVID 0x000 /* Vendor ID */
-+#define SH7780_PCIDID 0x002 /* Device ID */
-+#define SH7780_PCICMD 0x004 /* Command */
-+#define SH7780_PCISTATUS 0x006 /* Status */
-+#define SH7780_PCIRID 0x008 /* Revision ID */
-+#define SH7780_PCIPIF 0x009 /* Program Interface */
-+#define SH7780_PCISUB 0x00a /* Sub class code */
-+#define SH7780_PCIBCC 0x00b /* Base class code */
-+#define SH7780_PCICLS 0x00c /* Cache line size */
-+#define SH7780_PCILTM 0x00d /* latency timer */
-+#define SH7780_PCIHDR 0x00e /* Header type */
-+#define SH7780_PCIBIST 0x00f /* BIST */
-+#define SH7780_PCIIBAR 0x010 /* IO Base address */
-+#define SH7780_PCIMBAR0 0x014 /* Memory base address0 */
-+#define SH7780_PCIMBAR1 0x018 /* Memory base address1 */
-+#define SH7780_PCISVID 0x02c /* Sub system vendor ID */
-+#define SH7780_PCISID 0x02e /* Sub system ID */
-+#define SH7780_PCICP 0x034
-+#define SH7780_PCIINTLINE 0x03c /* Interrupt line */
-+#define SH7780_PCIINTPIN 0x03d /* Interrupt pin */
-+#define SH7780_PCIMINGNT 0x03e /* Minumum grand */
-+#define SH7780_PCIMAXLAT 0x03f /* Maxmum latency */
-+#define SH7780_PCICID 0x040
-+#define SH7780_PCINIP 0x041
-+#define SH7780_PCIPMC 0x042
-+#define SH7780_PCIPMCSR 0x044
-+#define SH7780_PCIPMCSR_BSE 0x046
-+#define SH7780_PCICDD 0x047
-+
-+#define SH7780_PCIMBR0 0x1E0
-+#define SH7780_PCIMBMR0 0x1E4
-+#define SH7780_PCIMBR2 0x1F0
-+#define SH7780_PCIMBMR2 0x1F4
-+#define SH7780_PCIIOBR 0x1F8
-+#define SH7780_PCIIOBMR 0x1FC
-+#define SH7780_PCICSCR0 0x210 /* Cache Snoop1 Cnt. Register */
-+#define SH7780_PCICSCR1 0x214 /* Cache Snoop2 Cnt. Register */
-+#define SH7780_PCICSAR0 0x218 /* Cache Snoop1 Addr. Register */
-+#define SH7780_PCICSAR1 0x21C /* Cache Snoop2 Addr. Register */
-+
-+/* General Memory Config Addresses */
-+#define SH7780_CS0_BASE_ADDR 0x0
-+#define SH7780_MEM_REGION_SIZE 0x04000000
-+#define SH7780_CS1_BASE_ADDR (SH7780_CS0_BASE_ADDR + SH7780_MEM_REGION_SIZE)
-+#define SH7780_CS2_BASE_ADDR (SH7780_CS1_BASE_ADDR + SH7780_MEM_REGION_SIZE)
-+#define SH7780_CS3_BASE_ADDR (SH7780_CS2_BASE_ADDR + SH7780_MEM_REGION_SIZE)
-+#define SH7780_CS4_BASE_ADDR (SH7780_CS3_BASE_ADDR + SH7780_MEM_REGION_SIZE)
-+#define SH7780_CS5_BASE_ADDR (SH7780_CS4_BASE_ADDR + SH7780_MEM_REGION_SIZE)
-+#define SH7780_CS6_BASE_ADDR (SH7780_CS5_BASE_ADDR + SH7780_MEM_REGION_SIZE)
-+
-+struct sh4_pci_address_map;
-+
-+/* arch/sh/drivers/pci/pci-sh7780.c */
-+int sh7780_pcic_init(struct sh4_pci_address_map *map);
-+
-+#endif /* _PCI_SH7780_H_ */
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/pci/pci-st40.c linux-2.6.17/arch/sh/drivers/pci/pci-st40.c
---- linux-2.6.17-vanilla/arch/sh/drivers/pci/pci-st40.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/pci/pci-st40.c 2006-07-12 16:54:21.000000000 +0000
-@@ -71,12 +71,6 @@
- static void pci_set_rbar_region(unsigned int region, unsigned long localAddr,
- unsigned long pciOffset, unsigned long regionSize);
-
--/*
-- * The pcibios_map_platform_irq function is defined in the appropriate
-- * board specific code and referenced here
-- */
--extern int __init pcibios_map_platform_irq(struct pci_dev *dev, u8 slot, u8 pin);
--
- static __init void SetPCIPLL(void)
- {
- {
-@@ -110,12 +104,12 @@
-
- static struct pci_err int_error[]={
- { INT_MNLTDIM,"MNLTDIM: Master non-lock transfer"},
-- { INT_TTADI, "TTADI: Illegal byte enable in I/O transfer"},
-- { INT_TMTO, "TMTO: Target memory read/write timeout"},
-+ { INT_TTADI, "TTADI: Illegal byte enable in I/O transfer"},
-+ { INT_TMTO, "TMTO: Target memory read/write timeout"},
- { INT_MDEI, "MDEI: Master function disable error"},
- { INT_APEDI, "APEDI: Address parity error"},
- { INT_SDI, "SDI: SERR detected"},
-- { INT_DPEITW, "DPEITW: Data parity error target write"},
-+ { INT_DPEITW, "DPEITW: Data parity error target write"},
- { INT_PEDITR, "PEDITR: PERR detected"},
- { INT_TADIM, "TADIM: Target abort detected"},
- { INT_MADIM, "MADIM: Master abort detected"},
-@@ -178,7 +172,7 @@
- pci_cir = ST40PCI_READ(CIR);pci_air = ST40PCI_READ(AIR);
-
- /* Reset state to stop multiple interrupts */
-- ST40PCI_WRITE(INT, ~0); ST40PCI_WRITE(AINT, ~0);
-+ ST40PCI_WRITE(INT, ~0); ST40PCI_WRITE(AINT, ~0);
-
-
- if(++count>1) return IRQ_HANDLED;
-@@ -193,8 +187,8 @@
- if(pci_aint) {
- printk("** AINT register status\n");
- print_pci_errors(pci_aint,aint_error,NUM_PCI_AINT_ERRS);
-- }
--
-+ }
-+
- printk("** Address and command info\n");
-
- printk("** Command %s : Address 0x%x\n",
-@@ -246,7 +240,7 @@
- */
- if ((d->class >> 8) != PCI_CLASS_STORAGE_IDE)
- return;
-- printk("PCI: IDE base address fixup for %s\n", pci_name(d));
-+ printk("PCI: IDE base address fixup for %s\n", d->slot_name);
- for(i=0; i<4; i++) {
- struct resource *r = &d->resource[i];
- if ((r->start & ~0x80) == 0x374) {
-@@ -255,11 +249,13 @@
- }
- }
- }
-+
- DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pci_fixup_ide_bases);
-
- int __init st40pci_init(unsigned memStart, unsigned memSize)
- {
-- u32 lsr0;
-+
-+ printk("PCI version register reads 0x%x\n",ST40PCI_READ(VCR_VERSION));
-
- SetPCIPLL();
-
-@@ -423,19 +419,12 @@
- /* Everything hangs off this */
- static struct pci_bus *pci_root_bus;
-
--
--static u8 __init no_swizzle(struct pci_dev *dev, u8 * pin)
--{
-- return PCI_SLOT(dev->devfn);
--}
--
--
- static int __init pcibios_init(void)
- {
- extern unsigned long memory_start, memory_end;
-
- printk(KERN_ALERT "pci-st40.c: pcibios_init\n");
--
-+
- if (sh_mv.mv_init_pci != NULL) {
- sh_mv.mv_init_pci();
- }
-@@ -466,17 +455,11 @@
- /* ok, do the scan man */
- pci_root_bus = pci_scan_bus(0, &st40pci_config_ops, NULL);
- pci_assign_unassigned_resources();
-- pci_fixup_irqs(no_swizzle, pcibios_map_platform_irq);
-
- return 0;
- }
--
- subsys_initcall(pcibios_init);
-
--void __init pcibios_fixup_bus(struct pci_bus *bus)
--{
--}
--
- /*
- * Publish a region of local address space over the PCI bus
- * to other devices.
-@@ -505,5 +488,5 @@
-
- /* Size of region */
- ST40PCI_WRITE_INDEXED(RSR, region, mask | 1);
--}
-+}
-
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/pci/pci.c linux-2.6.17/arch/sh/drivers/pci/pci.c
---- linux-2.6.17-vanilla/arch/sh/drivers/pci/pci.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/pci/pci.c 2006-07-12 16:54:21.000000000 +0000
-@@ -1,21 +1,45 @@
--/* arch/sh/kernel/pci.c
-- * $Id: pci.c,v 1.1 2003/08/24 19:15:45 lethal Exp $
-+/*
-+ * arch/sh/drivers/pci/pci.c
- *
- * Copyright (c) 2002 M. R. Brown <mrbrown@linux-sh.org>
-- *
-- *
-+ * Copyright (c) 2004 - 2006 Paul Mundt <lethal@linux-sh.org>
-+ *
- * These functions are collected here to reduce duplication of common
- * code amongst the many platform-specific PCI support code files.
-- *
-+ *
- * These routines require the following board-specific routines:
- * void pcibios_fixup_irqs();
- *
- * See include/asm-sh/pci.h for more information.
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
- */
--
- #include <linux/kernel.h>
- #include <linux/pci.h>
- #include <linux/init.h>
-+#include <asm/io.h>
-+
-+static inline u8 bridge_swizzle(u8 pin, u8 slot)
-+{
-+ return (((pin - 1) + slot) % 4) + 1;
-+}
-+
-+static u8 __init simple_swizzle(struct pci_dev *dev, u8 *pinp)
-+{
-+ u8 pin = *pinp;
-+
-+ while (dev->bus->parent) {
-+ pin = bridge_swizzle(pin, PCI_SLOT(dev->devfn));
-+ /* Move up the chain of bridges. */
-+ dev = dev->bus->self;
-+ }
-+ *pinp = pin;
-+
-+ /* The slot is the slot of the last bridge. */
-+ return PCI_SLOT(dev->devfn);
-+}
-
- static int __init pcibios_init(void)
- {
-@@ -26,26 +50,32 @@
- #ifdef CONFIG_PCI_AUTO
- /* assign resources */
- busno = 0;
-- for (p = board_pci_channels; p->pci_ops != NULL; p++) {
-+ for (p = board_pci_channels; p->pci_ops != NULL; p++)
- busno = pciauto_assign_resources(busno, p) + 1;
-- }
- #endif
-
- /* scan the buses */
- busno = 0;
-- for (p= board_pci_channels; p->pci_ops != NULL; p++) {
-+ for (p = board_pci_channels; p->pci_ops != NULL; p++) {
- bus = pci_scan_bus(busno, p->pci_ops, p);
-- busno = bus->subordinate+1;
-+ busno = bus->subordinate + 1;
- }
-
-- /* board-specific fixups */
-- pcibios_fixup_irqs();
-+ pci_fixup_irqs(simple_swizzle, pcibios_map_platform_irq);
-
- return 0;
- }
--
- subsys_initcall(pcibios_init);
-
-+/*
-+ * Called after each bus is probed, but before its children
-+ * are examined.
-+ */
-+void __init pcibios_fixup_bus(struct pci_bus *bus)
-+{
-+ pci_read_bridge_bases(bus);
-+}
-+
- void
- pcibios_update_resource(struct pci_dev *dev, struct resource *root,
- struct resource *res, int resource)
-@@ -61,13 +91,17 @@
- new |= PCI_ROM_ADDRESS_ENABLE;
- reg = dev->rom_base_reg;
- } else {
-- /* Somebody might have asked allocation of a non-standard resource */
-+ /*
-+ * Somebody might have asked allocation of a non-standard
-+ * resource
-+ */
- return;
- }
--
-+
- pci_write_config_dword(dev, reg, new);
- pci_read_config_dword(dev, reg, &check);
-- if ((new ^ check) & ((new & PCI_BASE_ADDRESS_SPACE_IO) ? PCI_BASE_ADDRESS_IO_MASK : PCI_BASE_ADDRESS_MEM_MASK)) {
-+ if ((new ^ check) & ((new & PCI_BASE_ADDRESS_SPACE_IO) ?
-+ PCI_BASE_ADDRESS_IO_MASK : PCI_BASE_ADDRESS_MEM_MASK)) {
- printk(KERN_ERR "PCI: Error while updating region "
- "%s/%d (%08x != %08x)\n", pci_name(dev), resource,
- new, check);
-@@ -145,7 +179,8 @@
- lat = pcibios_max_latency;
- else
- return;
-- printk(KERN_INFO "PCI: Setting latency timer of device %s to %d\n", pci_name(dev), lat);
-+ printk(KERN_INFO "PCI: Setting latency timer of device %s to %d\n",
-+ pci_name(dev), lat);
- pci_write_config_byte(dev, PCI_LATENCY_TIMER, lat);
- }
-
-@@ -153,3 +188,39 @@
- {
- pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq);
- }
-+
-+void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen)
-+{
-+ unsigned long start = pci_resource_start(dev, bar);
-+ unsigned long len = pci_resource_len(dev, bar);
-+ unsigned long flags = pci_resource_flags(dev, bar);
-+
-+ if (unlikely(!len || !start))
-+ return NULL;
-+ if (maxlen && len > maxlen)
-+ len = maxlen;
-+
-+ /*
-+ * Presently the IORESOURCE_MEM case is a bit special, most
-+ * SH7751 style PCI controllers have PCI memory at a fixed
-+ * location in the address space where no remapping is desired
-+ * (typically at 0xfd000000, but is_pci_memaddr() will know
-+ * best). With the IORESOURCE_MEM case more care has to be taken
-+ * to inhibit page table mapping for legacy cores, but this is
-+ * punted off to __ioremap().
-+ * -- PFM.
-+ */
-+ if (flags & IORESOURCE_IO)
-+ return ioport_map(start, len);
-+ if (flags & IORESOURCE_MEM)
-+ return ioremap(start, len);
-+
-+ return NULL;
-+}
-+EXPORT_SYMBOL(pci_iomap);
-+
-+void pci_iounmap(struct pci_dev *dev, void __iomem *addr)
-+{
-+ iounmap(addr);
-+}
-+EXPORT_SYMBOL(pci_iounmap);
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/superhyway/CVS/Entries linux-2.6.17/arch/sh/drivers/superhyway/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/drivers/superhyway/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/superhyway/CVS/Entries 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,3 @@
-+/Makefile/1.1/Thu Mar 17 07:43:07 2005//
-+/ops-sh4-202.c/1.3/Tue Jan 3 22:35:52 2006//
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/superhyway/CVS/Repository linux-2.6.17/arch/sh/drivers/superhyway/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/drivers/superhyway/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/superhyway/CVS/Repository 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/drivers/superhyway
-diff -ruN linux-2.6.17-vanilla/arch/sh/drivers/superhyway/CVS/Root linux-2.6.17/arch/sh/drivers/superhyway/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/drivers/superhyway/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/drivers/superhyway/CVS/Root 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/.cvsignore linux-2.6.17/arch/sh/kernel/.cvsignore
---- linux-2.6.17-vanilla/arch/sh/kernel/.cvsignore 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/.cvsignore 2006-07-12 16:54:22.000000000 +0000
-@@ -0,0 +1 @@
-+vmlinux.lds.s
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/CVS/Entries linux-2.6.17/arch/sh/kernel/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/kernel/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/CVS/Entries 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,34 @@
-+/.cvsignore/1.1/Wed May 12 13:51:13 2004/-ko/
-+/Makefile/1.19/Sun Jan 29 17:46:23 2006//
-+/apm.c/1.2/Mon Jan 30 15:57:20 2006//
-+/asm-offsets.c/1.1/Mon Jun 28 22:03:37 2004/-ko/
-+/cf-enabler.c/1.6/Wed Jan 4 18:03:38 2006/-ko/
-+/cpufreq.c/1.7/Tue Jan 3 22:35:53 2006/-ko/
-+/early_printk.c/1.4/Sat Aug 13 15:49:28 2005//
-+/entry.S/1.46/Sun Jan 29 17:46:23 2006/-ko/
-+/head.S/1.9/Thu Oct 20 22:51:38 2005/-ko/
-+/init_task.c/1.7/Sun Aug 15 16:59:26 2004//
-+/io.c/1.7/Wed Nov 23 15:47:38 2005/-ko/
-+/io_generic.c/1.6/Tue Jan 3 22:51:47 2006/-ko/
-+/kgdb_jmp.S/1.2/Fri Nov 1 17:19:24 2002//
-+/kgdb_stub.c/1.5/Sun Feb 5 12:27:59 2006//
-+/machine_kexec.c/1.1/Mon Sep 19 19:20:56 2005/-ko/
-+/module.c/1.5/Sun Feb 22 23:08:43 2004/-ko/
-+/pm.c/1.2/Mon Jan 30 15:57:20 2006//
-+/ptrace.c/1.22/Mon Mar 27 21:06:13 2006//
-+/relocate_kernel.S/1.1/Mon Sep 19 19:20:56 2005/-ko/
-+/semaphore.c/1.4/Thu Mar 17 07:40:18 2005/-ko/
-+/sh_bios.c/1.3/Tue Jun 15 18:40:42 2004/-ko/
-+/signal.c/1.30/Fri Oct 28 13:12:48 2005/-ko/
-+/smp.c/1.10/Mon Mar 27 21:06:14 2006/-ko/
-+/sys_sh.c/1.11/Sat Dec 31 11:30:47 2005//
-+/vmlinux.lds.S/1.6/Thu Mar 17 07:49:06 2005/-ko/
-+D/cpu////
-+D/timers////
-+/irq.c/1.28/Wed Jul 5 14:50:39 2006/-ko/
-+/process.c/1.42/Fri Jul 7 10:15:14 2006/-ko/
-+/syscalls.S/1.4/Fri Jul 7 10:15:14 2006/-ko/
-+/setup.c/1.53/Sat Jul 8 20:16:09 2006/-ko/
-+/time.c/1.38/Sat Jul 8 20:16:09 2006/-ko/
-+/sh_ksyms.c/1.26/Wed Jul 12 16:51:54 2006//
-+/traps.c/1.21/Wed Jul 12 16:51:54 2006/-ko/
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/CVS/Repository linux-2.6.17/arch/sh/kernel/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/kernel/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/CVS/Repository 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/kernel
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/CVS/Root linux-2.6.17/arch/sh/kernel/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/kernel/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/CVS/Root 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/Makefile linux-2.6.17/arch/sh/kernel/Makefile
---- linux-2.6.17-vanilla/arch/sh/kernel/Makefile 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/Makefile 2006-07-12 16:54:22.000000000 +0000
-@@ -6,7 +6,7 @@
-
- obj-y := process.o signal.o entry.o traps.o irq.o \
- ptrace.o setup.o time.o sys_sh.o semaphore.o \
-- io.o io_generic.o sh_ksyms.o
-+ io.o io_generic.o sh_ksyms.o syscalls.o
-
- obj-y += cpu/ timers/
-
-@@ -18,3 +18,5 @@
- obj-$(CONFIG_MODULES) += module.o
- obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
- obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o
-+obj-$(CONFIG_APM) += apm.o
-+obj-$(CONFIG_PM) += pm.o
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/apm.c linux-2.6.17/arch/sh/kernel/apm.c
---- linux-2.6.17-vanilla/arch/sh/kernel/apm.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/apm.c 2006-07-12 16:54:22.000000000 +0000
-@@ -0,0 +1,539 @@
-+/*
-+ * bios-less APM driver for hp680
-+ *
-+ * Copyright 2005 (c) Andriy Skulysh <askulysh@gmail.com>
-+ *
-+ * based on ARM APM driver by
-+ * Jamey Hicks <jamey@crl.dec.com>
-+ *
-+ * adapted from the APM BIOS driver for Linux by
-+ * Stephen Rothwell (sfr@linuxcare.com)
-+ *
-+ * APM 1.2 Reference:
-+ * Intel Corporation, Microsoft Corporation. Advanced Power Management
-+ * (APM) BIOS Interface Specification, Revision 1.2, February 1996.
-+ *
-+ * [This document is available from Microsoft at:
-+ * http://www.microsoft.com/hwdev/busbios/amp_12.htm]
-+ */
-+#include <linux/config.h>
-+#include <linux/module.h>
-+#include <linux/poll.h>
-+#include <linux/timer.h>
-+#include <linux/slab.h>
-+#include <linux/proc_fs.h>
-+#include <linux/miscdevice.h>
-+#include <linux/apm_bios.h>
-+#include <linux/pm.h>
-+#include <linux/pm_legacy.h>
-+#include <asm/apm.h>
-+
-+#define MODNAME "apm"
-+
-+/*
-+ * The apm_bios device is one of the misc char devices.
-+ * This is its minor number.
-+ */
-+#define APM_MINOR_DEV 134
-+
-+/*
-+ * Maximum number of events stored
-+ */
-+#define APM_MAX_EVENTS 16
-+
-+struct apm_queue {
-+ unsigned int event_head;
-+ unsigned int event_tail;
-+ apm_event_t events[APM_MAX_EVENTS];
-+};
-+
-+/*
-+ * The per-file APM data
-+ */
-+struct apm_user {
-+ struct list_head list;
-+
-+ unsigned int suser: 1;
-+ unsigned int writer: 1;
-+ unsigned int reader: 1;
-+
-+ int suspend_result;
-+ unsigned int suspend_state;
-+#define SUSPEND_NONE 0 /* no suspend pending */
-+#define SUSPEND_PENDING 1 /* suspend pending read */
-+#define SUSPEND_READ 2 /* suspend read, pending ack */
-+#define SUSPEND_ACKED 3 /* suspend acked */
-+#define SUSPEND_DONE 4 /* suspend completed */
-+
-+ struct apm_queue queue;
-+};
-+
-+/*
-+ * Local variables
-+ */
-+static int suspends_pending;
-+
-+static DECLARE_WAIT_QUEUE_HEAD(apm_waitqueue);
-+static DECLARE_WAIT_QUEUE_HEAD(apm_suspend_waitqueue);
-+
-+/*
-+ * This is a list of everyone who has opened /dev/apm_bios
-+ */
-+static DECLARE_RWSEM(user_list_lock);
-+static LIST_HEAD(apm_user_list);
-+
-+/*
-+ * kapmd info. kapmd provides us a process context to handle
-+ * "APM" events within - specifically necessary if we're going
-+ * to be suspending the system.
-+ */
-+static DECLARE_WAIT_QUEUE_HEAD(kapmd_wait);
-+static DECLARE_COMPLETION(kapmd_exit);
-+static DEFINE_SPINLOCK(kapmd_queue_lock);
-+static struct apm_queue kapmd_queue;
-+
-+int apm_suspended;
-+EXPORT_SYMBOL(apm_suspended);
-+
-+/* Platform-specific apm_read_proc(). */
-+int (*apm_get_info)(char *buf, char **start, off_t fpos, int length);
-+EXPORT_SYMBOL(apm_get_info);
-+
-+/*
-+ * APM event queue management.
-+ */
-+static inline int queue_empty(struct apm_queue *q)
-+{
-+ return q->event_head == q->event_tail;
-+}
-+
-+static inline apm_event_t queue_get_event(struct apm_queue *q)
-+{
-+ q->event_tail = (q->event_tail + 1) % APM_MAX_EVENTS;
-+ return q->events[q->event_tail];
-+}
-+
-+static void queue_add_event(struct apm_queue *q, apm_event_t event)
-+{
-+ q->event_head = (q->event_head + 1) % APM_MAX_EVENTS;
-+ if (q->event_head == q->event_tail) {
-+ static int notified;
-+
-+ if (notified++ == 0)
-+ printk(KERN_ERR "apm: an event queue overflowed\n");
-+
-+ q->event_tail = (q->event_tail + 1) % APM_MAX_EVENTS;
-+ }
-+ q->events[q->event_head] = event;
-+}
-+
-+static void queue_event_one_user(struct apm_user *as, apm_event_t event)
-+{
-+ if (as->suser && as->writer) {
-+ switch (event) {
-+ case APM_SYS_SUSPEND:
-+ case APM_USER_SUSPEND:
-+ /*
-+ * If this user already has a suspend pending,
-+ * don't queue another one.
-+ */
-+ if (as->suspend_state != SUSPEND_NONE)
-+ return;
-+
-+ as->suspend_state = SUSPEND_PENDING;
-+ suspends_pending++;
-+ break;
-+ }
-+ }
-+ queue_add_event(&as->queue, event);
-+}
-+
-+static void queue_event(apm_event_t event, struct apm_user *sender)
-+{
-+ struct apm_user *as;
-+
-+ down_read(&user_list_lock);
-+
-+ list_for_each_entry(as, &apm_user_list, list)
-+ if (as != sender && as->reader)
-+ queue_event_one_user(as, event);
-+
-+ up_read(&user_list_lock);
-+ wake_up_interruptible(&apm_waitqueue);
-+}
-+
-+/**
-+ * apm_queue_event - queue an APM event for kapmd
-+ * @event: APM event
-+ *
-+ * Queue an APM event for kapmd to process and ultimately take the
-+ * appropriate action. Only a subset of events are handled:
-+ * %APM_LOW_BATTERY
-+ * %APM_POWER_STATUS_CHANGE
-+ * %APM_USER_SUSPEND
-+ * %APM_SYS_SUSPEND
-+ * %APM_CRITICAL_SUSPEND
-+ */
-+void apm_queue_event(apm_event_t event)
-+{
-+ spin_lock_irq(&kapmd_queue_lock);
-+ queue_add_event(&kapmd_queue, event);
-+ spin_unlock_irq(&kapmd_queue_lock);
-+
-+ wake_up_interruptible(&kapmd_wait);
-+}
-+EXPORT_SYMBOL(apm_queue_event);
-+
-+static void apm_suspend(void)
-+{
-+ struct apm_user *as;
-+ int err;
-+
-+ apm_suspended = 1;
-+ err = pm_suspend(PM_SUSPEND_MEM);
-+
-+ /*
-+ * Anyone on the APM queues will think we're still suspended.
-+ * Send a message so everyone knows we're now awake again.
-+ */
-+ queue_event(APM_NORMAL_RESUME, NULL);
-+
-+ /*
-+ * Finally, wake up anyone who is sleeping on the suspend.
-+ */
-+ down_read(&user_list_lock);
-+ list_for_each_entry(as, &apm_user_list, list) {
-+ as->suspend_result = err;
-+ as->suspend_state = SUSPEND_DONE;
-+ }
-+ up_read(&user_list_lock);
-+
-+ wake_up(&apm_suspend_waitqueue);
-+ apm_suspended = 0;
-+}
-+
-+static ssize_t apm_read(struct file *fp, char __user *buf,
-+ size_t count, loff_t *ppos)
-+{
-+ struct apm_user *as = fp->private_data;
-+ apm_event_t event;
-+ int i = count, ret = 0;
-+
-+ if (count < sizeof(apm_event_t))
-+ return -EINVAL;
-+
-+ if (queue_empty(&as->queue) && fp->f_flags & O_NONBLOCK)
-+ return -EAGAIN;
-+
-+ wait_event_interruptible(apm_waitqueue, !queue_empty(&as->queue));
-+
-+ while ((i >= sizeof(event)) && !queue_empty(&as->queue)) {
-+ event = queue_get_event(&as->queue);
-+
-+ ret = -EFAULT;
-+ if (copy_to_user(buf, &event, sizeof(event)))
-+ break;
-+
-+ if (event == APM_SYS_SUSPEND || event == APM_USER_SUSPEND)
-+ as->suspend_state = SUSPEND_READ;
-+
-+ buf += sizeof(event);
-+ i -= sizeof(event);
-+ }
-+
-+ if (i < count)
-+ ret = count - i;
-+
-+ return ret;
-+}
-+
-+static unsigned int apm_poll(struct file *fp, poll_table * wait)
-+{
-+ struct apm_user *as = fp->private_data;
-+
-+ poll_wait(fp, &apm_waitqueue, wait);
-+ return queue_empty(&as->queue) ? 0 : POLLIN | POLLRDNORM;
-+}
-+
-+/*
-+ * apm_ioctl - handle APM ioctl
-+ *
-+ * APM_IOC_SUSPEND
-+ * This IOCTL is overloaded, and performs two functions. It is used to:
-+ * - initiate a suspend
-+ * - acknowledge a suspend read from /dev/apm_bios.
-+ * Only when everyone who has opened /dev/apm_bios with write permission
-+ * has acknowledge does the actual suspend happen.
-+ */
-+static int
-+apm_ioctl(struct inode * inode, struct file *filp, u_int cmd, u_long arg)
-+{
-+ struct apm_user *as = filp->private_data;
-+ unsigned long flags;
-+ int err = -EINVAL;
-+
-+ if (!as->suser || !as->writer)
-+ return -EPERM;
-+
-+ switch (cmd) {
-+ case APM_IOC_SUSPEND:
-+ as->suspend_result = -EINTR;
-+
-+ if (as->suspend_state == SUSPEND_READ) {
-+ /*
-+ * If we read a suspend command from /dev/apm_bios,
-+ * then the corresponding APM_IOC_SUSPEND ioctl is
-+ * interpreted as an acknowledge.
-+ */
-+ as->suspend_state = SUSPEND_ACKED;
-+ suspends_pending--;
-+ } else {
-+ /*
-+ * Otherwise it is a request to suspend the system.
-+ * Queue an event for all readers, and expect an
-+ * acknowledge from all writers who haven't already
-+ * acknowledged.
-+ */
-+ queue_event(APM_USER_SUSPEND, as);
-+ }
-+
-+ /*
-+ * If there are no further acknowledges required, suspend
-+ * the system.
-+ */
-+ if (suspends_pending == 0)
-+ apm_suspend();
-+
-+ /*
-+ * Wait for the suspend/resume to complete. If there are
-+ * pending acknowledges, we wait here for them.
-+ *
-+ * Note that we need to ensure that the PM subsystem does
-+ * not kick us out of the wait when it suspends the threads.
-+ */
-+ flags = current->flags;
-+ current->flags |= PF_NOFREEZE;
-+
-+ /*
-+ * Note: do not allow a thread which is acking the suspend
-+ * to escape until the resume is complete.
-+ */
-+ if (as->suspend_state == SUSPEND_ACKED)
-+ wait_event(apm_suspend_waitqueue,
-+ as->suspend_state == SUSPEND_DONE);
-+ else
-+ wait_event_interruptible(apm_suspend_waitqueue,
-+ as->suspend_state == SUSPEND_DONE);
-+
-+ current->flags = flags;
-+ err = as->suspend_result;
-+ as->suspend_state = SUSPEND_NONE;
-+ break;
-+ }
-+
-+ return err;
-+}
-+
-+static int apm_release(struct inode * inode, struct file * filp)
-+{
-+ struct apm_user *as = filp->private_data;
-+ filp->private_data = NULL;
-+
-+ down_write(&user_list_lock);
-+ list_del(&as->list);
-+ up_write(&user_list_lock);
-+
-+ /*
-+ * We are now unhooked from the chain. As far as new
-+ * events are concerned, we no longer exist. However, we
-+ * need to balance suspends_pending, which means the
-+ * possibility of sleeping.
-+ */
-+ if (as->suspend_state != SUSPEND_NONE) {
-+ suspends_pending -= 1;
-+ if (suspends_pending == 0)
-+ apm_suspend();
-+ }
-+
-+ kfree(as);
-+ return 0;
-+}
-+
-+static int apm_open(struct inode * inode, struct file * filp)
-+{
-+ struct apm_user *as;
-+
-+ as = kzalloc(sizeof(*as), GFP_KERNEL);
-+ if (as) {
-+ /*
-+ * XXX - this is a tiny bit broken, when we consider BSD
-+ * process accounting. If the device is opened by root, we
-+ * instantly flag that we used superuser privs. Who knows,
-+ * we might close the device immediately without doing a
-+ * privileged operation -- cevans
-+ */
-+ as->suser = capable(CAP_SYS_ADMIN);
-+ as->writer = (filp->f_mode & FMODE_WRITE) == FMODE_WRITE;
-+ as->reader = (filp->f_mode & FMODE_READ) == FMODE_READ;
-+
-+ down_write(&user_list_lock);
-+ list_add(&as->list, &apm_user_list);
-+ up_write(&user_list_lock);
-+
-+ filp->private_data = as;
-+ }
-+
-+ return as ? 0 : -ENOMEM;
-+}
-+
-+static struct file_operations apm_bios_fops = {
-+ .owner = THIS_MODULE,
-+ .read = apm_read,
-+ .poll = apm_poll,
-+ .ioctl = apm_ioctl,
-+ .open = apm_open,
-+ .release = apm_release,
-+};
-+
-+static struct miscdevice apm_device = {
-+ .minor = APM_MINOR_DEV,
-+ .name = "apm_bios",
-+ .fops = &apm_bios_fops
-+};
-+
-+
-+#ifdef CONFIG_PROC_FS
-+/*
-+ * Arguments, with symbols from linux/apm_bios.h.
-+ *
-+ * 0) Linux driver version (this will change if format changes)
-+ * 1) APM BIOS Version. Usually 1.0, 1.1 or 1.2.
-+ * 2) APM flags from APM Installation Check (0x00):
-+ * bit 0: APM_16_BIT_SUPPORT
-+ * bit 1: APM_32_BIT_SUPPORT
-+ * bit 2: APM_IDLE_SLOWS_CLOCK
-+ * bit 3: APM_BIOS_DISABLED
-+ * bit 4: APM_BIOS_DISENGAGED
-+ * 3) AC line status
-+ * 0x00: Off-line
-+ * 0x01: On-line
-+ * 0x02: On backup power (BIOS >= 1.1 only)
-+ * 0xff: Unknown
-+ * 4) Battery status
-+ * 0x00: High
-+ * 0x01: Low
-+ * 0x02: Critical
-+ * 0x03: Charging
-+ * 0x04: Selected battery not present (BIOS >= 1.2 only)
-+ * 0xff: Unknown
-+ * 5) Battery flag
-+ * bit 0: High
-+ * bit 1: Low
-+ * bit 2: Critical
-+ * bit 3: Charging
-+ * bit 7: No system battery
-+ * 0xff: Unknown
-+ * 6) Remaining battery life (percentage of charge):
-+ * 0-100: valid
-+ * -1: Unknown
-+ * 7) Remaining battery life (time units):
-+ * Number of remaining minutes or seconds
-+ * -1: Unknown
-+ * 8) min = minutes; sec = seconds
-+ */
-+static int apm_read_proc(char *buf, char **start, off_t fpos, int length)
-+{
-+ if (likely(apm_get_info))
-+ return apm_get_info(buf, start, fpos, length);
-+
-+ return -EINVAL;
-+}
-+#endif
-+
-+static int kapmd(void *arg)
-+{
-+ daemonize("kapmd");
-+ current->flags |= PF_NOFREEZE;
-+
-+ do {
-+ apm_event_t event;
-+
-+ wait_event_interruptible(kapmd_wait,
-+ !queue_empty(&kapmd_queue) || !pm_active);
-+
-+ if (!pm_active)
-+ break;
-+
-+ spin_lock_irq(&kapmd_queue_lock);
-+ event = 0;
-+ if (!queue_empty(&kapmd_queue))
-+ event = queue_get_event(&kapmd_queue);
-+ spin_unlock_irq(&kapmd_queue_lock);
-+
-+ switch (event) {
-+ case 0:
-+ break;
-+
-+ case APM_LOW_BATTERY:
-+ case APM_POWER_STATUS_CHANGE:
-+ queue_event(event, NULL);
-+ break;
-+
-+ case APM_USER_SUSPEND:
-+ case APM_SYS_SUSPEND:
-+ queue_event(event, NULL);
-+ if (suspends_pending == 0)
-+ apm_suspend();
-+ break;
-+
-+ case APM_CRITICAL_SUSPEND:
-+ apm_suspend();
-+ break;
-+ }
-+ } while (1);
-+
-+ complete_and_exit(&kapmd_exit, 0);
-+}
-+
-+static int __init apm_init(void)
-+{
-+ int ret;
-+
-+ pm_active = 1;
-+
-+ ret = kernel_thread(kapmd, NULL, CLONE_KERNEL);
-+ if (unlikely(ret < 0)) {
-+ pm_active = 0;
-+ return ret;
-+ }
-+
-+ create_proc_info_entry("apm", 0, NULL, apm_read_proc);
-+
-+ ret = misc_register(&apm_device);
-+ if (unlikely(ret != 0)) {
-+ remove_proc_entry("apm", NULL);
-+
-+ pm_active = 0;
-+ wake_up(&kapmd_wait);
-+ wait_for_completion(&kapmd_exit);
-+ }
-+
-+ return ret;
-+}
-+
-+static void __exit apm_exit(void)
-+{
-+ misc_deregister(&apm_device);
-+ remove_proc_entry("apm", NULL);
-+
-+ pm_active = 0;
-+ wake_up(&kapmd_wait);
-+ wait_for_completion(&kapmd_exit);
-+}
-+
-+module_init(apm_init);
-+module_exit(apm_exit);
-+
-+MODULE_AUTHOR("Stephen Rothwell, Andriy Skulysh");
-+MODULE_DESCRIPTION("Advanced Power Management");
-+MODULE_LICENSE("GPL");
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/cf-enabler.c linux-2.6.17/arch/sh/kernel/cf-enabler.c
---- linux-2.6.17-vanilla/arch/sh/kernel/cf-enabler.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/cf-enabler.c 2006-07-12 16:54:22.000000000 +0000
-@@ -11,7 +11,8 @@
-
- #include <linux/config.h>
- #include <linux/init.h>
--
-+#include <linux/mm.h>
-+#include <linux/vmalloc.h>
- #include <asm/io.h>
- #include <asm/irq.h>
-
-@@ -33,8 +34,6 @@
- /* SH4 can't access PCMCIA interface through P2 area.
- * we must remap it with appropreate attribute bit of the page set.
- * this part is based on Greg Banks' hd64465_ss.c implementation - Masahiro Abe */
--#include <linux/mm.h>
--#include <linux/vmalloc.h>
-
- #if defined(CONFIG_CF_AREA6)
- #define slot_no 0
-@@ -42,9 +41,6 @@
- #define slot_no 1
- #endif
-
--/* defined in mm/ioremap.c */
--extern void * p3_ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags);
--
- /* use this pointer to access to directly connected compact flash io area*/
- void *cf_io_base;
-
-@@ -63,7 +59,7 @@
- return -ENOMEM;
- }
- /* printk("p3_ioremap(paddr=0x%08lx, psize=0x%08lx, prot=0x%08lx)=0x%08lx\n",
-- paddrbase, psize, prot.pgprot, cf_io_base);*/
-+ paddrbase, psize, prot.pgprot, cf_io_base);*/
-
- /* XXX : do we need attribute and common-memory area also? */
-
-@@ -88,7 +84,7 @@
- }
-
- #if defined(CONFIG_SH_SOLUTION_ENGINE)
--#include <asm/se/se.h>
-+#include <asm/se.h>
-
- /*
- * SolutionEngine
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/cpu/CVS/Entries linux-2.6.17/arch/sh/kernel/cpu/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/kernel/cpu/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/cpu/CVS/Entries 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,10 @@
-+/Makefile/1.10/Sat Jan 28 01:22:16 2006/-ko/
-+/adc.c/1.2/Sun Aug 15 16:59:26 2004/-ko/
-+/clock.c/1.6/Sat Jan 28 01:27:00 2006/-ko/
-+/ubc.S/1.2/Sun May 4 19:29:53 2003/-ko/
-+D/irq////
-+D/sh2////
-+D/sh3////
-+D/sh4////
-+/init.c/1.11/Wed Jul 5 14:50:40 2006/-ko/
-+/rtc.c/1.5/Wed Jul 5 14:50:40 2006/-ko/
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/cpu/CVS/Repository linux-2.6.17/arch/sh/kernel/cpu/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/kernel/cpu/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/cpu/CVS/Repository 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/kernel/cpu
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/cpu/CVS/Root linux-2.6.17/arch/sh/kernel/cpu/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/kernel/cpu/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/cpu/CVS/Root 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/cpu/clock.c linux-2.6.17/arch/sh/kernel/cpu/clock.c
---- linux-2.6.17-vanilla/arch/sh/kernel/cpu/clock.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/cpu/clock.c 2006-07-12 16:54:22.000000000 +0000
-@@ -225,7 +225,7 @@
- {
- int i, ret = 0;
-
-- BUG_ON(unlikely(!master_clk.rate));
-+ BUG_ON(!master_clk.rate);
-
- for (i = 0; i < ARRAY_SIZE(onchip_clocks); i++) {
- struct clk *clk = onchip_clocks[i];
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/cpu/init.c linux-2.6.17/arch/sh/kernel/cpu/init.c
---- linux-2.6.17-vanilla/arch/sh/kernel/cpu/init.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/cpu/init.c 2006-07-12 16:54:22.000000000 +0000
-@@ -4,6 +4,7 @@
- * CPU init code
- *
- * Copyright (C) 2002, 2003 Paul Mundt
-+ * Copyright (C) 2003 Richard Curnow
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
-@@ -51,7 +52,15 @@
- ccr = ctrl_inl(CCR);
-
- /*
-- * If the cache is already enabled .. flush it.
-+ * At this point we don't know whether the cache is enabled or not - a
-+ * bootloader may have enabled it. There are at least 2 things that
-+ * could be dirty in the cache at this point:
-+ * 1. kernel command line set up by boot loader
-+ * 2. spilled registers from the prolog of this function
-+ * => before re-initialising the cache, we must do a purge of the whole
-+ * cache out to memory for safety. As long as nothing is spilled
-+ * during the loop to lines that have already been done, this is safe.
-+ * - RPC
- */
- if (ccr & CCR_CACHE_ENABLE) {
- unsigned long ways, waysize, addrstart;
-@@ -98,6 +107,8 @@
- /* Force EMODE if possible */
- if (cpu_data->dcache.ways > 1)
- flags |= CCR_CACHE_EMODE;
-+ else
-+ flags &= ~CCR_CACHE_EMODE;
- #endif
-
- #ifdef CONFIG_SH_WRITETHROUGH
-@@ -112,6 +123,9 @@
- /* Turn on OCRAM -- halve the OC */
- flags |= CCR_CACHE_ORA;
- cpu_data->dcache.sets >>= 1;
-+
-+ cpu_data->dcache.way_size = cpu_data->dcache.sets *
-+ cpu_data->dcache.linesz;
- #endif
-
- ctrl_outl(flags, CCR);
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/cpu/irq/CVS/Entries linux-2.6.17/arch/sh/kernel/cpu/irq/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/kernel/cpu/irq/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/cpu/irq/CVS/Entries 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1,6 @@
-+/Makefile/1.1/Sat Jan 7 20:16:39 2006/-ko/
-+/imask.c/1.1/Sat Jan 7 20:16:39 2006/-ko/
-+/ipr.c/1.2/Sun Jan 8 12:21:42 2006/-ko/
-+/pint.c/1.1/Sat Jan 7 20:16:39 2006/-ko/
-+/intc2.c/1.2/Wed Jul 12 16:51:54 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/cpu/irq/CVS/Repository linux-2.6.17/arch/sh/kernel/cpu/irq/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/kernel/cpu/irq/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/cpu/irq/CVS/Repository 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/kernel/cpu/irq
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/cpu/irq/CVS/Root linux-2.6.17/arch/sh/kernel/cpu/irq/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/kernel/cpu/irq/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/cpu/irq/CVS/Root 2006-07-12 16:54:21.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/cpu/irq/intc2.c linux-2.6.17/arch/sh/kernel/cpu/irq/intc2.c
---- linux-2.6.17-vanilla/arch/sh/kernel/cpu/irq/intc2.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/cpu/irq/intc2.c 2006-07-12 16:54:21.000000000 +0000
-@@ -241,9 +241,9 @@
- /* 110-111 reserved/unused */
- #elif defined(CONFIG_CPU_SUBTYPE_SH7780)
- { TIMER_IRQ, 0, 24, 0, INTC_TMU0_MSK, 2},
--#ifdef CONFIG_SH_RTC
-- { RTC_IRQ, 4, 0, 0, INTC_RTC_MSK, TIMER_PRIORITY },
--#endif
-+ { 21, 1, 0, 0, INTC_RTC_MSK, TIMER_PRIORITY },
-+ { 22, 1, 1, 0, INTC_RTC_MSK, TIMER_PRIORITY },
-+ { 23, 1, 2, 0, INTC_RTC_MSK, TIMER_PRIORITY },
- { SCIF0_ERI_IRQ, 8, 24, 0, INTC_SCIF0_MSK, SCIF0_PRIORITY },
- { SCIF0_RXI_IRQ, 8, 24, 0, INTC_SCIF0_MSK, SCIF0_PRIORITY },
- { SCIF0_BRI_IRQ, 8, 24, 0, INTC_SCIF0_MSK, SCIF0_PRIORITY },
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh2/CVS/Entries linux-2.6.17/arch/sh/kernel/cpu/sh2/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh2/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/cpu/sh2/CVS/Entries 2006-07-12 16:54:22.000000000 +0000
-@@ -0,0 +1,3 @@
-+/Makefile/1.3/Thu Jul 8 13:52:22 2004/-ko/
-+/probe.c/1.1/Thu Jul 8 13:52:22 2004/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh2/CVS/Repository linux-2.6.17/arch/sh/kernel/cpu/sh2/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh2/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/cpu/sh2/CVS/Repository 2006-07-12 16:54:22.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/kernel/cpu/sh2
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh2/CVS/Root linux-2.6.17/arch/sh/kernel/cpu/sh2/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh2/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/cpu/sh2/CVS/Root 2006-07-12 16:54:22.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh3/CVS/Entries linux-2.6.17/arch/sh/kernel/cpu/sh3/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh3/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/cpu/sh3/CVS/Entries 2006-07-12 16:54:22.000000000 +0000
-@@ -0,0 +1,8 @@
-+/Makefile/1.6/Fri Jun 10 15:51:47 2005/-ko/
-+/clock-sh3.c/1.1/Sat Mar 26 20:25:36 2005/-ko/
-+/clock-sh7300.c/1.2/Tue May 31 14:06:34 2005/-ko/
-+/clock-sh7705.c/1.1/Sat Mar 26 20:25:36 2005/-ko/
-+/clock-sh7709.c/1.2/Wed Sep 28 11:32:44 2005//
-+/ex.S/1.4/Sun Jun 20 20:27:22 2004/-ko/
-+/probe.c/1.2/Mon Aug 30 12:55:31 2004/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh3/CVS/Repository linux-2.6.17/arch/sh/kernel/cpu/sh3/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh3/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/cpu/sh3/CVS/Repository 2006-07-12 16:54:22.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/kernel/cpu/sh3
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh3/CVS/Root linux-2.6.17/arch/sh/kernel/cpu/sh3/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh3/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/cpu/sh3/CVS/Root 2006-07-12 16:54:22.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh3/clock-sh7709.c linux-2.6.17/arch/sh/kernel/cpu/sh3/clock-sh7709.c
---- linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh3/clock-sh7709.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/cpu/sh3/clock-sh7709.c 2006-07-12 16:54:22.000000000 +0000
-@@ -4,7 +4,7 @@
- * SH7709 support for the clock framework
- *
- * Copyright (C) 2005 Andriy Skulysh
-- *
-+ *
- * Based on arch/sh/kernel/cpu/sh3/clock-sh7705.c
- * Copyright (C) 2005 Paul Mundt
- *
-@@ -59,7 +59,7 @@
- static void bus_clk_recalc(struct clk *clk)
- {
- int frqcr = ctrl_inw(FRQCR);
-- int idx = (frqcr & 0x0080) ?
-+ int idx = (frqcr & 0x0080) ?
- ((frqcr & 0x8000) >> 13) | ((frqcr & 0x0030) >> 4) : 1;
-
- clk->rate = clk->parent->rate * stc_multipliers[idx];
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh4/CVS/Entries linux-2.6.17/arch/sh/kernel/cpu/sh4/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh4/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/cpu/sh4/CVS/Entries 2006-07-12 16:54:22.000000000 +0000
-@@ -0,0 +1,12 @@
-+/clock-sh4-202.c/1.1/Sat Mar 26 20:25:36 2005/-ko/
-+/clock-sh4.c/1.1/Sat Mar 26 20:25:36 2005/-ko/
-+/clock-sh73180.c/1.1/Sat Mar 26 20:25:36 2005/-ko/
-+/clock-sh7770.c/1.1/Sun Aug 21 23:47:31 2005/-ko/
-+/clock-sh7780.c/1.1/Sun Aug 21 23:47:31 2005/-ko/
-+/ex.S/1.3/Sun Aug 21 23:47:31 2005//
-+/fpu.c/1.5/Wed Mar 2 13:02:56 2005/-ko/
-+/probe.c/1.6/Sat Oct 8 22:08:40 2005/-ko/
-+/sq.c/1.15/Sat Jan 7 17:33:56 2006//
-+/Makefile/1.13/Wed Jul 12 16:51:55 2006/-ko/
-+/setup-sh7780.c/1.1/Tue Jul 11 07:57:40 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh4/CVS/Repository linux-2.6.17/arch/sh/kernel/cpu/sh4/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh4/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/cpu/sh4/CVS/Repository 2006-07-12 16:54:22.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/kernel/cpu/sh4
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh4/CVS/Root linux-2.6.17/arch/sh/kernel/cpu/sh4/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh4/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/cpu/sh4/CVS/Root 2006-07-12 16:54:22.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh4/Makefile linux-2.6.17/arch/sh/kernel/cpu/sh4/Makefile
---- linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh4/Makefile 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/cpu/sh4/Makefile 2006-07-12 16:54:22.000000000 +0000
-@@ -4,9 +4,12 @@
-
- obj-y := ex.o probe.o
-
--obj-$(CONFIG_SH_FPU) += fpu.o
-+obj-$(CONFIG_SH_FPU) += fpu.o
- obj-$(CONFIG_SH_STORE_QUEUES) += sq.o
-
-+# CPU subtype setup
-+obj-$(CONFIG_CPU_SUBTYPE_SH7780) += setup-sh7780.o
-+
- # Primary on-chip clocks (common)
- clock-$(CONFIG_CPU_SH4) := clock-sh4.o
- clock-$(CONFIG_CPU_SUBTYPE_SH73180) := clock-sh73180.o
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh4/ex.S linux-2.6.17/arch/sh/kernel/cpu/sh4/ex.S
---- linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh4/ex.S 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/cpu/sh4/ex.S 2006-07-12 16:54:22.000000000 +0000
-@@ -39,9 +39,9 @@
- #endif
- #if defined(CONFIG_SH_FPU)
- .long do_fpu_error /* 120 */
--#else
-+#else
- .long exception_error /* 120 */
--#endif
-+#endif
- .long exception_error /* 140 */
- .long system_call ! Unconditional Trap /* 160 */
- .long exception_error ! reserved_instruction (filled by trap_init) /* 180 */
-@@ -73,6 +73,7 @@
- .long do_IRQ ! 1110
- .long exception_error
- ! Internal hardware
-+#ifndef CONFIG_CPU_SUBTYPE_SH7780
- .long do_IRQ ! TMU0 tuni0 /* 400 */
- .long do_IRQ ! TMU1 tuni1
- .long do_IRQ ! TMU2 tuni2
-@@ -129,13 +130,13 @@
- .long exception_error ! 46
- .long exception_error ! 47
- #endif
--#if defined(CONFIG_SH_FPU)
-+#if defined(CONFIG_SH_FPU)
- .long do_fpu_state_restore ! 48 /* 800 */
- .long do_fpu_state_restore ! 49 /* 820 */
--#else
-+#else
- .long exception_error
- .long exception_error
--#endif
-+#endif
- #if defined(CONFIG_CPU_SUBTYPE_SH7751)
- .long exception_error /* 840 */
- .long exception_error
-@@ -380,5 +381,168 @@
- .long exception_error ! 141 0x13a0
- .long exception_error ! 142 0x13c0
- .long exception_error ! 143 0x13e0
-+#elif defined(CONFIG_CPU_SUBTYPE_SH7770)
-+ .long do_IRQ ! 50 0x840
-+ .long do_IRQ ! 51 0x860
-+ .long do_IRQ ! 52 0x880
-+ .long do_IRQ ! 53 0x8a0
-+ .long do_IRQ ! 54 0x8c0
-+ .long do_IRQ ! 55 0x8e0
-+ .long do_IRQ ! 56 0x900
-+ .long do_IRQ ! 57 0x920
-+ .long do_IRQ ! 58 0x940
-+ .long do_IRQ ! 59 0x960
-+ .long do_IRQ ! 60 0x980
-+ .long do_IRQ ! 61 0x9a0
-+ .long do_IRQ ! 62 0x9c0
-+ .long do_IRQ ! 63 0x9e0
-+ .long do_IRQ ! 64 0xa00
-+ .long do_IRQ ! 65 0xa20
-+ .long do_IRQ ! 66 0xa4d
-+ .long do_IRQ ! 67 0xa60
-+ .long do_IRQ ! 68 0xa80
-+ .long do_IRQ ! 69 0xaa0
-+ .long do_IRQ ! 70 0xac0
-+ .long do_IRQ ! 71 0xae0
-+ .long do_IRQ ! 72 0xb00
-+ .long do_IRQ ! 73 0xb20
-+ .long do_IRQ ! 74 0xb40
-+ .long do_IRQ ! 75 0xb60
-+ .long do_IRQ ! 76 0xb80
-+ .long do_IRQ ! 77 0xba0
-+ .long do_IRQ ! 78 0xbc0
-+ .long do_IRQ ! 79 0xbe0
-+ .long do_IRQ ! 80 0xc00
-+ .long do_IRQ ! 81 0xc20
-+ .long do_IRQ ! 82 0xc40
-+ .long do_IRQ ! 83 0xc60
-+ .long do_IRQ ! 84 0xc80
-+ .long do_IRQ ! 85 0xca0
-+ .long do_IRQ ! 86 0xcc0
-+ .long do_IRQ ! 87 0xce0
-+ .long do_IRQ ! 88 0xd00
-+ .long do_IRQ ! 89 0xd20
-+ .long do_IRQ ! 90 0xd40
-+ .long do_IRQ ! 91 0xd60
-+ .long do_IRQ ! 92 0xd80
-+ .long do_IRQ ! 93 0xda0
-+ .long do_IRQ ! 94 0xdc0
-+ .long do_IRQ ! 95 0xde0
-+ .long do_IRQ ! 96 0xe00
-+ .long do_IRQ ! 97 0xe20
-+ .long do_IRQ ! 98 0xe40
-+ .long do_IRQ ! 99 0xe60
-+ .long do_IRQ ! 100 0xe80
-+ .long do_IRQ ! 101 0xea0
-+ .long do_IRQ ! 102 0xec0
-+ .long do_IRQ ! 103 0xee0
-+ .long do_IRQ ! 104 0xf00
-+ .long do_IRQ ! 105 0xf20
-+ .long do_IRQ ! 106 0xf40
-+ .long do_IRQ ! 107 0xf60
-+ .long do_IRQ ! 108 0xf80
-+#endif
-+#else
-+ .long exception_error /* 400 */
-+ .long exception_error
-+ .long exception_error
-+ .long exception_error
-+ .long do_IRQ ! RTC ati
-+ .long do_IRQ ! pri
-+ .long do_IRQ ! cui
-+ .long exception_error
-+ .long exception_error /* 500 */
-+ .long exception_error
-+ .long exception_error
-+ .long do_IRQ ! WDT iti /* 560 */
-+ .long do_IRQ ! TMU-ch0
-+ .long do_IRQ ! TMU-ch1
-+ .long do_IRQ ! TMU-ch2
-+ .long do_IRQ ! ticpi2 /* 5E0 */
-+ .long do_IRQ ! 32 Hitachi UDI /* 600 */
-+ .long exception_error
-+ .long do_IRQ ! 34 DMAC dmte0
-+ .long do_IRQ ! 35 dmte1
-+ .long do_IRQ ! 36 dmte2
-+ .long do_IRQ ! 37 dmte3
-+ .long do_IRQ ! 38 dmae
-+ .long exception_error ! 39 /* 6E0 */
-+ .long do_IRQ ! 40 SCIF-ch0 eri /* 700 */
-+ .long do_IRQ ! 41 rxi
-+ .long do_IRQ ! 42 bri
-+ .long do_IRQ ! 43 txi
-+ .long do_IRQ ! 44 DMAC dmte4 /* 780 */
-+ .long do_IRQ ! 45 dmte5
-+ .long do_IRQ ! 46 dmte6
-+ .long do_IRQ ! 47 dmte7 /* 7E0 */
-+#if defined(CONFIG_SH_FPU)
-+ .long do_fpu_state_restore ! 48 /* 800 */
-+ .long do_fpu_state_restore ! 49 /* 820 */
-+#else
-+ .long exception_error
-+ .long exception_error
-+#endif
-+ .long exception_error /* 840 */
-+ .long exception_error
-+ .long exception_error
-+ .long exception_error
-+ .long exception_error
-+ .long exception_error
-+ .long do_IRQ ! 56 CMT /* 900 */
-+ .long exception_error
-+ .long exception_error
-+ .long exception_error
-+ .long do_IRQ ! 60 HAC
-+ .long exception_error
-+ .long exception_error
-+ .long exception_error
-+ .long do_IRQ ! PCI serr /* A00 */
-+ .long do_IRQ ! INTA
-+ .long do_IRQ ! INTB
-+ .long do_IRQ ! INTC
-+ .long do_IRQ ! INTD
-+ .long do_IRQ ! err
-+ .long do_IRQ ! pwd3
-+ .long do_IRQ ! pwd2
-+ .long do_IRQ ! pwd1 /* B00 */
-+ .long do_IRQ ! pwd0
-+ .long exception_error
-+ .long exception_error
-+ .long do_IRQ ! SCIF-ch1 eri /* B80 */
-+ .long do_IRQ ! rxi
-+ .long do_IRQ ! bri
-+ .long do_IRQ ! txi
-+ .long do_IRQ ! SIOF /* C00 */
-+ .long exception_error
-+ .long exception_error
-+ .long exception_error
-+ .long do_IRQ ! HSPI /* C80 */
-+ .long exception_error
-+ .long exception_error
-+ .long exception_error
-+ .long do_IRQ ! MMCIF fatat /* D00 */
-+ .long do_IRQ ! tran
-+ .long do_IRQ ! err
-+ .long do_IRQ ! frdy
-+ .long do_IRQ ! DMAC dmint8 /* D80 */
-+ .long do_IRQ ! dmint9
-+ .long do_IRQ ! dmint10
-+ .long do_IRQ ! dmint11
-+ .long do_IRQ ! TMU-ch3 /* E00 */
-+ .long do_IRQ ! TMU-ch4
-+ .long do_IRQ ! TMU-ch5
-+ .long exception_error
-+ .long do_IRQ ! SSI
-+ .long exception_error
-+ .long exception_error
-+ .long exception_error
-+ .long do_IRQ ! FLCTL flste /* F00 */
-+ .long do_IRQ ! fltend
-+ .long do_IRQ ! fltrq0
-+ .long do_IRQ ! fltrq1
-+ .long do_IRQ ! GPIO gpioi0 /* F80 */
-+ .long do_IRQ ! gpioi1
-+ .long do_IRQ ! gpioi2
-+ .long do_IRQ ! gpioi3
- #endif
-
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh4/probe.c linux-2.6.17/arch/sh/kernel/cpu/sh4/probe.c
---- linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh4/probe.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/cpu/sh4/probe.c 2006-07-12 16:54:22.000000000 +0000
-@@ -3,7 +3,7 @@
- *
- * CPU Subtype Probing for SH-4.
- *
-- * Copyright (C) 2001, 2002, 2003, 2004 Paul Mundt
-+ * Copyright (C) 2001 - 2005 Paul Mundt
- * Copyright (C) 2003 Richard Curnow
- *
- * This file is subject to the terms and conditions of the GNU General Public
-@@ -53,9 +53,6 @@
- cpu_data->dcache.ways = 1;
- cpu_data->dcache.linesz = L1_CACHE_BYTES;
-
-- /* Set the FPU flag, virtually all SH-4's have one */
-- cpu_data->flags |= CPU_HAS_FPU;
--
- /*
- * Probe the underlying processor version/revision and
- * adjust cpu_data setup accordingly.
-@@ -63,56 +60,99 @@
- switch (pvr) {
- case 0x205:
- cpu_data->type = CPU_SH7750;
-- cpu_data->flags |= CPU_HAS_P2_FLUSH_BUG | CPU_HAS_PERF_COUNTER;
-+ cpu_data->flags |= CPU_HAS_P2_FLUSH_BUG | CPU_HAS_FPU |
-+ CPU_HAS_PERF_COUNTER | CPU_HAS_PTEA;
- break;
- case 0x206:
- cpu_data->type = CPU_SH7750S;
-- cpu_data->flags |= CPU_HAS_P2_FLUSH_BUG | CPU_HAS_PERF_COUNTER;
-+ cpu_data->flags |= CPU_HAS_P2_FLUSH_BUG | CPU_HAS_FPU |
-+ CPU_HAS_PERF_COUNTER | CPU_HAS_PTEA;
- break;
- case 0x1100:
- cpu_data->type = CPU_SH7751;
-+ cpu_data->flags |= CPU_HAS_FPU | CPU_HAS_PTEA;
- break;
- case 0x2000:
- cpu_data->type = CPU_SH73180;
- cpu_data->icache.ways = 4;
- cpu_data->dcache.ways = 4;
-- cpu_data->flags &= ~CPU_HAS_FPU;
-+
-+ /*
-+ * XXX: Double check this, none of the SH-4A/SH-4AL processors
-+ * should have this, as it's essentially a legacy thing.
-+ */
-+ cpu_data->flags |= CPU_HAS_PTEA;
-+ break;
-+ case 0x2001:
-+ case 0x2004:
-+ cpu_data->type = CPU_SH7770;
-+ cpu_data->icache.ways = 4;
-+ cpu_data->dcache.ways = 4;
-+
-+ /* Same note as above applies here for PTEA */
-+ cpu_data->flags |= CPU_HAS_FPU | CPU_HAS_PTEA;
-+ break;
-+ case 0x2006:
-+ case 0x200A:
-+ if (prr == 0x61)
-+ cpu_data->type = CPU_SH7781;
-+ else
-+ cpu_data->type = CPU_SH7780;
-+
-+ cpu_data->icache.ways = 4;
-+ cpu_data->dcache.ways = 4;
-+
-+ cpu_data->flags |= CPU_HAS_FPU | CPU_HAS_PERF_COUNTER;
- break;
- case 0x8000:
- cpu_data->type = CPU_ST40RA;
-+ cpu_data->flags |= CPU_HAS_FPU | CPU_HAS_PTEA;
- break;
- case 0x8100:
- cpu_data->type = CPU_ST40GX1;
-+ cpu_data->flags |= CPU_HAS_FPU | CPU_HAS_PTEA;
- break;
- case 0x700:
- cpu_data->type = CPU_SH4_501;
- cpu_data->icache.ways = 2;
- cpu_data->dcache.ways = 2;
--
-- /* No FPU on the SH4-500 series.. */
-- cpu_data->flags &= ~CPU_HAS_FPU;
-+ cpu_data->flags |= CPU_HAS_PTEA;
- break;
- case 0x600:
- cpu_data->type = CPU_SH4_202;
- cpu_data->icache.ways = 2;
- cpu_data->dcache.ways = 2;
-+ cpu_data->flags |= CPU_HAS_FPU | CPU_HAS_PTEA;
- break;
- case 0x500 ... 0x501:
- switch (prr) {
-- case 0x10: cpu_data->type = CPU_SH7750R; break;
-- case 0x11: cpu_data->type = CPU_SH7751R; break;
-- case 0x50: cpu_data->type = CPU_SH7760; break;
-+ case 0x10:
-+ cpu_data->type = CPU_SH7750R;
-+ break;
-+ case 0x11:
-+ cpu_data->type = CPU_SH7751R;
-+ break;
-+ case 0x50 ... 0x5f:
-+ cpu_data->type = CPU_SH7760;
-+ break;
- }
-
- cpu_data->icache.ways = 2;
- cpu_data->dcache.ways = 2;
-
-+ cpu_data->flags |= CPU_HAS_FPU | CPU_HAS_PTEA;
-+
- break;
- default:
- cpu_data->type = CPU_SH_NONE;
- break;
- }
-
-+#ifdef CONFIG_SH_DIRECT_MAPPED
-+ cpu_data->icache.ways = 1;
-+ cpu_data->dcache.ways = 1;
-+#endif
-+
- /*
- * On anything that's not a direct-mapped cache, look to the CVR
- * for I/D-cache specifics.
-@@ -125,6 +165,9 @@
- (cpu_data->icache.way_incr - (1 << 5));
- }
-
-+ cpu_data->icache.way_size = cpu_data->icache.sets *
-+ cpu_data->icache.linesz;
-+
- if (cpu_data->dcache.ways > 1) {
- size = sizes[(cvr >> 16) & 0xf];
- cpu_data->dcache.way_incr = (size >> 1);
-@@ -133,6 +176,9 @@
- (cpu_data->dcache.way_incr - (1 << 5));
- }
-
-+ cpu_data->dcache.way_size = cpu_data->dcache.sets *
-+ cpu_data->dcache.linesz;
-+
- return 0;
- }
-
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh4/setup-sh7780.c linux-2.6.17/arch/sh/kernel/cpu/sh4/setup-sh7780.c
---- linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh4/setup-sh7780.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/cpu/sh4/setup-sh7780.c 2006-07-12 16:54:22.000000000 +0000
-@@ -0,0 +1,52 @@
-+/*
-+ * SH7780 Setup
-+ *
-+ * Copyright (C) 2006 Paul Mundt
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ */
-+#include <linux/platform_device.h>
-+#include <linux/init.h>
-+
-+static struct resource rtc_resources[] = {
-+ [0] = {
-+ .start = 0xffe80000,
-+ .end = 0xffe80000 + 0x58 - 1,
-+ .flags = IORESOURCE_IO,
-+ },
-+ [1] = {
-+ /* Period IRQ */
-+ .start = 21,
-+ .flags = IORESOURCE_IRQ,
-+ },
-+ [2] = {
-+ /* Carry IRQ */
-+ .start = 22,
-+ .flags = IORESOURCE_IRQ,
-+ },
-+ [3] = {
-+ /* Alarm IRQ */
-+ .start = 23,
-+ .flags = IORESOURCE_IRQ,
-+ },
-+};
-+
-+static struct platform_device rtc_device = {
-+ .name = "sh-rtc",
-+ .id = -1,
-+ .num_resources = ARRAY_SIZE(rtc_resources),
-+ .resource = rtc_resources,
-+};
-+
-+static struct platform_device *sh7780_devices[] __initdata = {
-+ &rtc_device,
-+};
-+
-+static int __init sh7780_devices_setup(void)
-+{
-+ return platform_add_devices(sh7780_devices,
-+ ARRAY_SIZE(sh7780_devices));
-+}
-+__initcall(sh7780_devices_setup);
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh4/sq.c linux-2.6.17/arch/sh/kernel/cpu/sh4/sq.c
---- linux-2.6.17-vanilla/arch/sh/kernel/cpu/sh4/sq.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/cpu/sh4/sq.c 2006-07-12 16:54:22.000000000 +0000
-@@ -1,50 +1,53 @@
- /*
-- * arch/sh/kernel/cpu/sq.c
-+ * arch/sh/kernel/cpu/sh4/sq.c
- *
- * General management API for SH-4 integrated Store Queues
- *
-- * Copyright (C) 2001, 2002, 2003, 2004 Paul Mundt
-+ * Copyright (C) 2001 - 2006 Paul Mundt
- * Copyright (C) 2001, 2002 M. R. Brown
- *
-- * Some of this code has been adopted directly from the old arch/sh/mm/sq.c
-- * hack that was part of the LinuxDC project. For all intents and purposes,
-- * this is a completely new interface that really doesn't have much in common
-- * with the old zone-based approach at all. In fact, it's only listed here for
-- * general completeness.
-- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- */
- #include <linux/init.h>
-+#include <linux/cpu.h>
-+#include <linux/bitmap.h>
-+#include <linux/sysdev.h>
- #include <linux/kernel.h>
- #include <linux/module.h>
- #include <linux/config.h>
- #include <linux/slab.h>
--#include <linux/list.h>
--#include <linux/proc_fs.h>
--#include <linux/miscdevice.h>
- #include <linux/vmalloc.h>
--
-+#include <linux/mm.h>
- #include <asm/io.h>
- #include <asm/page.h>
--#include <asm/mmu_context.h>
-+#include <asm/cacheflush.h>
- #include <asm/cpu/sq.h>
-
--static LIST_HEAD(sq_mapping_list);
-+struct sq_mapping;
-+
-+struct sq_mapping {
-+ const char *name;
-+
-+ unsigned long sq_addr;
-+ unsigned long addr;
-+ unsigned int size;
-+
-+ struct sq_mapping *next;
-+};
-+
-+static struct sq_mapping *sq_mapping_list;
- static DEFINE_SPINLOCK(sq_mapping_lock);
-+static kmem_cache_t *sq_cache;
-+static unsigned long *sq_bitmap;
-
--/**
-- * sq_flush - Flush (prefetch) the store queue cache
-- * @addr: the store queue address to flush
-- *
-- * Executes a prefetch instruction on the specified store queue cache,
-- * so that the cached data is written to physical memory.
-- */
--inline void sq_flush(void *addr)
--{
-- __asm__ __volatile__ ("pref @%0" : : "r" (addr) : "memory");
--}
-+#define store_queue_barrier() \
-+do { \
-+ (void)ctrl_inl(P4SEG_STORE_QUE); \
-+ ctrl_outl(0, P4SEG_STORE_QUE + 0); \
-+ ctrl_outl(0, P4SEG_STORE_QUE + 8); \
-+} while (0);
-
- /**
- * sq_flush_range - Flush (prefetch) a specific SQ range
-@@ -57,152 +60,73 @@
- void sq_flush_range(unsigned long start, unsigned int len)
- {
- volatile unsigned long *sq = (unsigned long *)start;
-- unsigned long dummy;
-
- /* Flush the queues */
- for (len >>= 5; len--; sq += 8)
-- sq_flush((void *)sq);
-+ prefetchw((void *)sq);
-
- /* Wait for completion */
-- dummy = ctrl_inl(P4SEG_STORE_QUE);
--
-- ctrl_outl(0, P4SEG_STORE_QUE + 0);
-- ctrl_outl(0, P4SEG_STORE_QUE + 8);
-+ store_queue_barrier();
- }
-
--static struct sq_mapping *__sq_alloc_mapping(unsigned long virt, unsigned long phys, unsigned long size, const char *name)
-+static inline void sq_mapping_list_add(struct sq_mapping *map)
- {
-- struct sq_mapping *map;
--
-- if (virt + size > SQ_ADDRMAX)
-- return ERR_PTR(-ENOSPC);
-+ struct sq_mapping **p, *tmp;
-
-- map = kmalloc(sizeof(struct sq_mapping), GFP_KERNEL);
-- if (!map)
-- return ERR_PTR(-ENOMEM);
-+ spin_lock_irq(&sq_mapping_lock);
-
-- INIT_LIST_HEAD(&map->list);
-+ p = &sq_mapping_list;
-+ while ((tmp = *p) != NULL)
-+ p = &tmp->next;
-
-- map->sq_addr = virt;
-- map->addr = phys;
-- map->size = size + 1;
-- map->name = name;
-+ map->next = tmp;
-+ *p = map;
-
-- list_add(&map->list, &sq_mapping_list);
--
-- return map;
-+ spin_unlock_irq(&sq_mapping_lock);
- }
-
--static unsigned long __sq_get_next_addr(void)
-+static inline void sq_mapping_list_del(struct sq_mapping *map)
- {
-- if (!list_empty(&sq_mapping_list)) {
-- struct list_head *pos, *tmp;
--
-- /*
-- * Read one off the list head, as it will have the highest
-- * mapped allocation. Set the next one up right above it.
-- *
-- * This is somewhat sub-optimal, as we don't look at
-- * gaps between allocations or anything lower then the
-- * highest-level allocation.
-- *
-- * However, in the interest of performance and the general
-- * lack of desire to do constant list rebalancing, we don't
-- * worry about it.
-- */
-- list_for_each_safe(pos, tmp, &sq_mapping_list) {
-- struct sq_mapping *entry;
-+ struct sq_mapping **p, *tmp;
-
-- entry = list_entry(pos, typeof(*entry), list);
-+ spin_lock_irq(&sq_mapping_lock);
-
-- return entry->sq_addr + entry->size;
-+ for (p = &sq_mapping_list; (tmp = *p); p = &tmp->next)
-+ if (tmp == map) {
-+ *p = tmp->next;
-+ break;
- }
-- }
-
-- return P4SEG_STORE_QUE;
-+ spin_unlock_irq(&sq_mapping_lock);
- }
-
--/**
-- * __sq_remap - Perform a translation from the SQ to a phys addr
-- * @map: sq mapping containing phys and store queue addresses.
-- *
-- * Maps the store queue address specified in the mapping to the physical
-- * address specified in the mapping.
-- */
--static struct sq_mapping *__sq_remap(struct sq_mapping *map)
-+static int __sq_remap(struct sq_mapping *map, unsigned long flags)
- {
-- unsigned long flags, pteh, ptel;
-+#if defined(CONFIG_MMU)
- struct vm_struct *vma;
-- pgprot_t pgprot;
--
-- /*
-- * Without an MMU (or with it turned off), this is much more
-- * straightforward, as we can just load up each queue's QACR with
-- * the physical address appropriately masked.
-- */
--
-- ctrl_outl(((map->addr >> 26) << 2) & 0x1c, SQ_QACR0);
-- ctrl_outl(((map->addr >> 26) << 2) & 0x1c, SQ_QACR1);
--
--#ifdef CONFIG_MMU
-- /*
-- * With an MMU on the other hand, things are slightly more involved.
-- * Namely, we have to have a direct mapping between the SQ addr and
-- * the associated physical address in the UTLB by way of setting up
-- * a virt<->phys translation by hand. We do this by simply specifying
-- * the SQ addr in UTLB.VPN and the associated physical address in
-- * UTLB.PPN.
-- *
-- * Notably, even though this is a special case translation, and some
-- * of the configuration bits are meaningless, we're still required
-- * to have a valid ASID context in PTEH.
-- *
-- * We could also probably get by without explicitly setting PTEA, but
-- * we do it here just for good measure.
-- */
-- spin_lock_irqsave(&sq_mapping_lock, flags);
--
-- pteh = map->sq_addr;
-- ctrl_outl((pteh & MMU_VPN_MASK) | get_asid(), MMU_PTEH);
--
-- ptel = map->addr & PAGE_MASK;
-- ctrl_outl(((ptel >> 28) & 0xe) | (ptel & 0x1), MMU_PTEA);
--
-- pgprot = pgprot_noncached(PAGE_KERNEL);
--
-- ptel &= _PAGE_FLAGS_HARDWARE_MASK;
-- ptel |= pgprot_val(pgprot);
-- ctrl_outl(ptel, MMU_PTEL);
-
-- __asm__ __volatile__ ("ldtlb" : : : "memory");
--
-- spin_unlock_irqrestore(&sq_mapping_lock, flags);
--
-- /*
-- * Next, we need to map ourselves in the kernel page table, so that
-- * future accesses after a TLB flush will be handled when we take a
-- * page fault.
-- *
-- * Theoretically we could just do this directly and not worry about
-- * setting up the translation by hand ahead of time, but for the
-- * cases where we want a one-shot SQ mapping followed by a quick
-- * writeout before we hit the TLB flush, we do it anyways. This way
-- * we at least save ourselves the initial page fault overhead.
-- */
- vma = __get_vm_area(map->size, VM_ALLOC, map->sq_addr, SQ_ADDRMAX);
- if (!vma)
-- return ERR_PTR(-ENOMEM);
-+ return -ENOMEM;
-
- vma->phys_addr = map->addr;
-
- if (remap_area_pages((unsigned long)vma->addr, vma->phys_addr,
-- map->size, pgprot_val(pgprot))) {
-+ map->size, flags)) {
- vunmap(vma->addr);
-- return NULL;
-+ return -EAGAIN;
- }
--#endif /* CONFIG_MMU */
-+#else
-+ /*
-+ * Without an MMU (or with it turned off), this is much more
-+ * straightforward, as we can just load up each queue's QACR with
-+ * the physical address appropriately masked.
-+ */
-+ ctrl_outl(((map->addr >> 26) << 2) & 0x1c, SQ_QACR0);
-+ ctrl_outl(((map->addr >> 26) << 2) & 0x1c, SQ_QACR1);
-+#endif
-
-- return map;
-+ return 0;
- }
-
- /**
-@@ -210,42 +134,65 @@
- * @phys: Physical address of mapping.
- * @size: Length of mapping.
- * @name: User invoking mapping.
-+ * @flags: Protection flags.
- *
- * Remaps the physical address @phys through the next available store queue
- * address of @size length. @name is logged at boot time as well as through
-- * the procfs interface.
-- *
-- * A pre-allocated and filled sq_mapping pointer is returned, and must be
-- * cleaned up with a call to sq_unmap() when the user is done with the
-- * mapping.
-+ * the sysfs interface.
- */
--struct sq_mapping *sq_remap(unsigned long phys, unsigned int size, const char *name)
-+unsigned long sq_remap(unsigned long phys, unsigned int size,
-+ const char *name, unsigned long flags)
- {
- struct sq_mapping *map;
-- unsigned long virt, end;
-+ unsigned long end;
- unsigned int psz;
-+ int ret, page;
-
- /* Don't allow wraparound or zero size */
- end = phys + size - 1;
-- if (!size || end < phys)
-- return NULL;
-+ if (unlikely(!size || end < phys))
-+ return -EINVAL;
- /* Don't allow anyone to remap normal memory.. */
-- if (phys < virt_to_phys(high_memory))
-- return NULL;
-+ if (unlikely(phys < virt_to_phys(high_memory)))
-+ return -EINVAL;
-
- phys &= PAGE_MASK;
-+ size = PAGE_ALIGN(end + 1) - phys;
-+
-+ map = kmem_cache_alloc(sq_cache, GFP_KERNEL);
-+ if (unlikely(!map))
-+ return -ENOMEM;
-+
-+ map->addr = phys;
-+ map->size = size;
-+ map->name = name;
-+
-+ page = bitmap_find_free_region(sq_bitmap, 0x04000000,
-+ get_order(map->size));
-+ if (unlikely(page < 0)) {
-+ ret = -ENOSPC;
-+ goto out;
-+ }
-+
-+ map->sq_addr = P4SEG_STORE_QUE + (page << PAGE_SHIFT);
-+
-+ ret = __sq_remap(map, flags);
-+ if (unlikely(ret != 0))
-+ goto out;
-+
-+ psz = (size + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
-+ pr_info("sqremap: %15s [%4d page%s] va 0x%08lx pa 0x%08lx\n",
-+ likely(map->name) ? map->name : "???",
-+ psz, psz == 1 ? " " : "s",
-+ map->sq_addr, map->addr);
-+
-+ sq_mapping_list_add(map);
-
-- size = PAGE_ALIGN(end + 1) - phys;
-- virt = __sq_get_next_addr();
-- psz = (size + (PAGE_SIZE - 1)) / PAGE_SIZE;
-- map = __sq_alloc_mapping(virt, phys, size, name);
--
-- printk("sqremap: %15s [%4d page%s] va 0x%08lx pa 0x%08lx\n",
-- map->name ? map->name : "???",
-- psz, psz == 1 ? " " : "s",
-- map->sq_addr, map->addr);
-+ return map->sq_addr;
-
-- return __sq_remap(map);
-+out:
-+ kmem_cache_free(sq_cache, map);
-+ return ret;
- }
-
- /**
-@@ -256,185 +203,196 @@
- * sq_remap(). Also frees up the pte that was previously inserted into
- * the kernel page table and discards the UTLB translation.
- */
--void sq_unmap(struct sq_mapping *map)
-+void sq_unmap(unsigned long vaddr)
- {
-- if (map->sq_addr > (unsigned long)high_memory)
-- vfree((void *)(map->sq_addr & PAGE_MASK));
-+ struct sq_mapping **p, *map;
-+ struct vm_struct *vma;
-+ int page;
-
-- list_del(&map->list);
-- kfree(map);
--}
-+ for (p = &sq_mapping_list; (map = *p); p = &map->next)
-+ if (map->sq_addr == vaddr)
-+ break;
-+
-+ if (unlikely(!map)) {
-+ printk("%s: bad store queue address 0x%08lx\n",
-+ __FUNCTION__, vaddr);
-+ return;
-+ }
-
--/**
-- * sq_clear - Clear a store queue range
-- * @addr: Address to start clearing from.
-- * @len: Length to clear.
-- *
-- * A quick zero-fill implementation for clearing out memory that has been
-- * remapped through the store queues.
-- */
--void sq_clear(unsigned long addr, unsigned int len)
--{
-- int i;
-+ page = (map->sq_addr - P4SEG_STORE_QUE) >> PAGE_SHIFT;
-+ bitmap_release_region(sq_bitmap, page, get_order(map->size));
-
-- /* Clear out both queues linearly */
-- for (i = 0; i < 8; i++) {
-- ctrl_outl(0, addr + i + 0);
-- ctrl_outl(0, addr + i + 8);
-+ vma = remove_vm_area((void *)(map->sq_addr & PAGE_MASK));
-+ if (!vma) {
-+ printk(KERN_ERR "%s: bad address 0x%08lx\n",
-+ __FUNCTION__, map->sq_addr);
-+ return;
- }
-
-- sq_flush_range(addr, len);
-+ sq_mapping_list_del(map);
-+
-+ kmem_cache_free(sq_cache, map);
- }
-
--/**
-- * sq_vma_unmap - Unmap a VMA range
-- * @area: VMA containing range.
-- * @addr: Start of range.
-- * @len: Length of range.
-- *
-- * Searches the sq_mapping_list for a mapping matching the sq addr @addr,
-- * and subsequently frees up the entry. Further cleanup is done by generic
-- * code.
-+/*
-+ * Needlessly complex sysfs interface. Unfortunately it doesn't seem like
-+ * there is any other easy way to add things on a per-cpu basis without
-+ * putting the directory entries somewhere stupid and having to create
-+ * links in sysfs by hand back in to the per-cpu directories.
-+ *
-+ * Some day we may want to have an additional abstraction per store
-+ * queue, but considering the kobject hell we already have to deal with,
-+ * it's simply not worth the trouble.
- */
--static void sq_vma_unmap(struct vm_area_struct *area,
-- unsigned long addr, size_t len)
--{
-- struct list_head *pos, *tmp;
-+static struct kobject *sq_kobject[NR_CPUS];
-
-- list_for_each_safe(pos, tmp, &sq_mapping_list) {
-- struct sq_mapping *entry;
-+struct sq_sysfs_attr {
-+ struct attribute attr;
-+ ssize_t (*show)(char *buf);
-+ ssize_t (*store)(const char *buf, size_t count);
-+};
-
-- entry = list_entry(pos, typeof(*entry), list);
-+#define to_sq_sysfs_attr(attr) container_of(attr, struct sq_sysfs_attr, attr)
-
-- if (entry->sq_addr == addr) {
-- /*
-- * We could probably get away without doing the tlb flush
-- * here, as generic code should take care of most of this
-- * when unmapping the rest of the VMA range for us. Leave
-- * it in for added sanity for the time being..
-- */
-- __flush_tlb_page(get_asid(), entry->sq_addr & PAGE_MASK);
-+static ssize_t sq_sysfs_show(struct kobject *kobj, struct attribute *attr,
-+ char *buf)
-+{
-+ struct sq_sysfs_attr *sattr = to_sq_sysfs_attr(attr);
-
-- list_del(&entry->list);
-- kfree(entry);
-+ if (likely(sattr->show))
-+ return sattr->show(buf);
-
-- return;
-- }
-- }
-+ return -EIO;
- }
-
--/**
-- * sq_vma_sync - Sync a VMA range
-- * @area: VMA containing range.
-- * @start: Start of range.
-- * @len: Length of range.
-- * @flags: Additional flags.
-- *
-- * Synchronizes an sq mapped range by flushing the store queue cache for
-- * the duration of the mapping.
-- *
-- * Used internally for user mappings, which must use msync() to prefetch
-- * the store queue cache.
-- */
--static int sq_vma_sync(struct vm_area_struct *area,
-- unsigned long start, size_t len, unsigned int flags)
-+static ssize_t sq_sysfs_store(struct kobject *kobj, struct attribute *attr,
-+ const char *buf, size_t count)
- {
-- sq_flush_range(start, len);
-+ struct sq_sysfs_attr *sattr = to_sq_sysfs_attr(attr);
-
-- return 0;
-+ if (likely(sattr->store))
-+ return sattr->store(buf, count);
-+
-+ return -EIO;
- }
-
--static struct vm_operations_struct sq_vma_ops = {
-- .unmap = sq_vma_unmap,
-- .sync = sq_vma_sync,
--};
-+static ssize_t mapping_show(char *buf)
-+{
-+ struct sq_mapping **list, *entry;
-+ char *p = buf;
-
--/**
-- * sq_mmap - mmap() for /dev/cpu/sq
-- * @file: unused.
-- * @vma: VMA to remap.
-- *
-- * Remap the specified vma @vma through the store queues, and setup associated
-- * information for the new mapping. Also build up the page tables for the new
-- * area.
-- */
--static int sq_mmap(struct file *file, struct vm_area_struct *vma)
-+ for (list = &sq_mapping_list; (entry = *list); list = &entry->next)
-+ p += sprintf(p, "%08lx-%08lx [%08lx]: %s\n",
-+ entry->sq_addr, entry->sq_addr + entry->size,
-+ entry->addr, entry->name);
-+
-+ return p - buf;
-+}
-+
-+static ssize_t mapping_store(const char *buf, size_t count)
- {
-- unsigned long offset = vma->vm_pgoff << PAGE_SHIFT;
-- unsigned long size = vma->vm_end - vma->vm_start;
-- struct sq_mapping *map;
-+ unsigned long base = 0, len = 0;
-
-- /*
-- * We're not interested in any arbitrary virtual address that has
-- * been stuck in the VMA, as we already know what addresses we
-- * want. Save off the size, and reposition the VMA to begin at
-- * the next available sq address.
-- */
-- vma->vm_start = __sq_get_next_addr();
-- vma->vm_end = vma->vm_start + size;
-+ sscanf(buf, "%lx %lx", &base, &len);
-+ if (!base)
-+ return -EIO;
-
-- vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
-+ if (likely(len)) {
-+ int ret = sq_remap(base, len, "Userspace",
-+ pgprot_val(PAGE_SHARED));
-+ if (ret < 0)
-+ return ret;
-+ } else
-+ sq_unmap(base);
-
-- vma->vm_flags |= VM_IO | VM_RESERVED;
-+ return count;
-+}
-
-- map = __sq_alloc_mapping(vma->vm_start, offset, size, "Userspace");
-+static struct sq_sysfs_attr mapping_attr =
-+ __ATTR(mapping, 0644, mapping_show, mapping_store);
-
-- if (io_remap_pfn_range(vma, map->sq_addr, map->addr >> PAGE_SHIFT,
-- size, vma->vm_page_prot))
-- return -EAGAIN;
-+static struct attribute *sq_sysfs_attrs[] = {
-+ &mapping_attr.attr,
-+ NULL,
-+};
-
-- vma->vm_ops = &sq_vma_ops;
-+static struct sysfs_ops sq_sysfs_ops = {
-+ .show = sq_sysfs_show,
-+ .store = sq_sysfs_store,
-+};
-
-- return 0;
--}
-+static struct kobj_type ktype_percpu_entry = {
-+ .sysfs_ops = &sq_sysfs_ops,
-+ .default_attrs = sq_sysfs_attrs,
-+};
-
--#ifdef CONFIG_PROC_FS
--static int sq_mapping_read_proc(char *buf, char **start, off_t off,
-- int len, int *eof, void *data)
-+static int __devinit sq_sysdev_add(struct sys_device *sysdev)
- {
-- struct list_head *pos;
-- char *p = buf;
-+ unsigned int cpu = sysdev->id;
-+ struct kobject *kobj;
-
-- list_for_each_prev(pos, &sq_mapping_list) {
-- struct sq_mapping *entry;
-+ sq_kobject[cpu] = kzalloc(sizeof(struct kobject), GFP_KERNEL);
-+ if (unlikely(!sq_kobject[cpu]))
-+ return -ENOMEM;
-
-- entry = list_entry(pos, typeof(*entry), list);
-+ kobj = sq_kobject[cpu];
-+ kobj->parent = &sysdev->kobj;
-+ kobject_set_name(kobj, "%s", "sq");
-+ kobj->ktype = &ktype_percpu_entry;
-
-- p += sprintf(p, "%08lx-%08lx [%08lx]: %s\n", entry->sq_addr,
-- entry->sq_addr + entry->size - 1, entry->addr,
-- entry->name);
-- }
--
-- return p - buf;
-+ return kobject_register(kobj);
- }
--#endif
-
--static struct file_operations sq_fops = {
-- .owner = THIS_MODULE,
-- .mmap = sq_mmap,
--};
-+static int __devexit sq_sysdev_remove(struct sys_device *sysdev)
-+{
-+ unsigned int cpu = sysdev->id;
-+ struct kobject *kobj = sq_kobject[cpu];
-+
-+ kobject_unregister(kobj);
-+ return 0;
-+}
-
--static struct miscdevice sq_dev = {
-- .minor = STORE_QUEUE_MINOR,
-- .name = "sq",
-- .devfs_name = "cpu/sq",
-- .fops = &sq_fops,
-+static struct sysdev_driver sq_sysdev_driver = {
-+ .add = sq_sysdev_add,
-+ .remove = __devexit_p(sq_sysdev_remove),
- };
-
- static int __init sq_api_init(void)
- {
-+ unsigned int nr_pages = 0x04000000 >> PAGE_SHIFT;
-+ unsigned int size = (nr_pages + (BITS_PER_LONG - 1)) / BITS_PER_LONG;
-+ int ret = -ENOMEM;
-+
- printk(KERN_NOTICE "sq: Registering store queue API.\n");
-
--#ifdef CONFIG_PROC_FS
-- create_proc_read_entry("sq_mapping", 0, 0, sq_mapping_read_proc, 0);
--#endif
-+ sq_cache = kmem_cache_create("store_queue_cache",
-+ sizeof(struct sq_mapping), 0, 0,
-+ NULL, NULL);
-+ if (unlikely(!sq_cache))
-+ return ret;
-+
-+ sq_bitmap = kzalloc(size, GFP_KERNEL);
-+ if (unlikely(!sq_bitmap))
-+ goto out;
-+
-+ ret = sysdev_driver_register(&cpu_sysdev_class, &sq_sysdev_driver);
-+ if (unlikely(ret != 0))
-+ goto out;
-
-- return misc_register(&sq_dev);
-+ return 0;
-+
-+out:
-+ kfree(sq_bitmap);
-+ kmem_cache_destroy(sq_cache);
-+
-+ return ret;
- }
-
- static void __exit sq_api_exit(void)
- {
-- misc_deregister(&sq_dev);
-+ sysdev_driver_unregister(&cpu_sysdev_class, &sq_sysdev_driver);
-+ kfree(sq_bitmap);
-+ kmem_cache_destroy(sq_cache);
- }
-
- module_init(sq_api_init);
-@@ -443,11 +401,7 @@
- MODULE_AUTHOR("Paul Mundt <lethal@linux-sh.org>, M. R. Brown <mrbrown@0xd6.org>");
- MODULE_DESCRIPTION("Simple API for SH-4 integrated Store Queues");
- MODULE_LICENSE("GPL");
--MODULE_ALIAS_MISCDEV(STORE_QUEUE_MINOR);
-
- EXPORT_SYMBOL(sq_remap);
- EXPORT_SYMBOL(sq_unmap);
--EXPORT_SYMBOL(sq_clear);
--EXPORT_SYMBOL(sq_flush);
- EXPORT_SYMBOL(sq_flush_range);
--
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/early_printk.c linux-2.6.17/arch/sh/kernel/early_printk.c
---- linux-2.6.17-vanilla/arch/sh/kernel/early_printk.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/early_printk.c 2006-07-12 16:54:22.000000000 +0000
-@@ -59,34 +59,42 @@
- #endif
-
- #ifdef CONFIG_EARLY_SCIF_CONSOLE
-+#include <linux/serial_core.h>
-+#include "../../../drivers/serial/sh-sci.h"
-+
-+#ifdef CONFIG_CPU_SH4
- #define SCIF_REG 0xffe80000
-+#elif defined(CONFIG_CPU_SUBTYPE_SH72060)
-+#define SCIF_REG 0xfffe9800
-+#else
-+#error "Undefined SCIF for this subtype"
-+#endif
-+
-+static struct uart_port scif_port = {
-+ .mapbase = SCIF_REG,
-+ .membase = (char *)SCIF_REG,
-+};
-
- static void scif_sercon_putc(int c)
- {
-- while (!(ctrl_inw(SCIF_REG + 0x10) & 0x20)) ;
-+ while (((sci_in(&scif_port, SCFDR) & 0x1f00 >> 8) == 16))
-+ ;
-+
-+ sci_out(&scif_port, SCxTDR, c);
-+ sci_in(&scif_port, SCxSR);
-+ sci_out(&scif_port, SCxSR, 0xf3 & ~(0x20 | 0x40));
-
-- ctrl_outb(c, SCIF_REG + 12);
-- ctrl_outw((ctrl_inw(SCIF_REG + 0x10) & 0x9f), SCIF_REG + 0x10);
-+ while ((sci_in(&scif_port, SCxSR) & 0x40) == 0);
-+ ;
-
- if (c == '\n')
- scif_sercon_putc('\r');
- }
-
--static void scif_sercon_flush(void)
--{
-- ctrl_outw((ctrl_inw(SCIF_REG + 0x10) & 0xbf), SCIF_REG + 0x10);
--
-- while (!(ctrl_inw(SCIF_REG + 0x10) & 0x40)) ;
--
-- ctrl_outw((ctrl_inw(SCIF_REG + 0x10) & 0xbf), SCIF_REG + 0x10);
--}
--
- static void scif_sercon_write(struct console *con, const char *s, unsigned count)
- {
- while (count-- > 0)
- scif_sercon_putc(*s++);
--
-- scif_sercon_flush();
- }
-
- static int __init scif_sercon_setup(struct console *con, char *options)
-@@ -124,7 +132,7 @@
-
- void __init enable_early_printk(void)
- {
--#ifdef CONFIG_EARLY_SCIF_CONSOLE
-+#if defined(CONFIG_EARLY_SCIF_CONSOLE) && defined(CONFIG_CPU_SH4)
- scif_sercon_init(115200);
- #endif
- register_console(&early_console);
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/entry.S linux-2.6.17/arch/sh/kernel/entry.S
---- linux-2.6.17-vanilla/arch/sh/kernel/entry.S 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/entry.S 2006-07-12 16:54:22.000000000 +0000
-@@ -19,24 +19,6 @@
- #include <asm/cpu/mmu_context.h>
- #include <asm/unistd.h>
-
--#if !defined(CONFIG_NFSD) && !defined(CONFIG_NFSD_MODULE)
--#define sys_nfsservctl sys_ni_syscall
--#endif
--
--#if !defined(CONFIG_MMU)
--#define sys_madvise sys_ni_syscall
--#define sys_readahead sys_ni_syscall
--#define sys_mprotect sys_ni_syscall
--#define sys_msync sys_ni_syscall
--#define sys_mlock sys_ni_syscall
--#define sys_munlock sys_ni_syscall
--#define sys_mlockall sys_ni_syscall
--#define sys_munlockall sys_ni_syscall
--#define sys_mremap sys_ni_syscall
--#define sys_mincore sys_ni_syscall
--#define sys_remap_file_pages sys_ni_syscall
--#endif
--
- ! NOTE:
- ! GNU as (as of 2.9.1) changes bf/s into bt/s and bra, when the address
- ! to be jumped is too far, but it causes illegal slot exception.
-@@ -327,7 +309,7 @@
- .align 2
- ret_from_exception:
- preempt_stop()
--ret_from_irq:
-+ENTRY(ret_from_irq)
- !
- mov #OFF_SR, r0
- mov.l @(r0,r15), r0 ! get status register
-@@ -645,7 +627,7 @@
- !
- #if defined(CONFIG_KGDB_NMI)
- ! Clear in_nmi
-- mov.l 4f, k0
-+ mov.l 6f, k0
- mov #0, k1
- mov.b k1, @k0
- #endif
-@@ -723,7 +705,7 @@
- !
- !
- .align 2
--handle_exception:
-+ENTRY(handle_exception)
- ! Using k0, k1 for scratch registers (r0_bank1, r1_bank),
- ! save all registers onto stack.
- !
-@@ -839,300 +821,3 @@
- rts
- nop
-
-- .data
--ENTRY(sys_call_table)
-- .long sys_ni_syscall /* 0 - old "setup()" system call*/
-- .long sys_exit
-- .long sys_fork
-- .long sys_read
-- .long sys_write
-- .long sys_open /* 5 */
-- .long sys_close
-- .long sys_waitpid
-- .long sys_creat
-- .long sys_link
-- .long sys_unlink /* 10 */
-- .long sys_execve
-- .long sys_chdir
-- .long sys_time
-- .long sys_mknod
-- .long sys_chmod /* 15 */
-- .long sys_lchown16
-- .long sys_ni_syscall /* old break syscall holder */
-- .long sys_stat
-- .long sys_lseek
-- .long sys_getpid /* 20 */
-- .long sys_mount
-- .long sys_oldumount
-- .long sys_setuid16
-- .long sys_getuid16
-- .long sys_stime /* 25 */
-- .long sys_ptrace
-- .long sys_alarm
-- .long sys_fstat
-- .long sys_pause
-- .long sys_utime /* 30 */
-- .long sys_ni_syscall /* old stty syscall holder */
-- .long sys_ni_syscall /* old gtty syscall holder */
-- .long sys_access
-- .long sys_nice
-- .long sys_ni_syscall /* 35 */ /* old ftime syscall holder */
-- .long sys_sync
-- .long sys_kill
-- .long sys_rename
-- .long sys_mkdir
-- .long sys_rmdir /* 40 */
-- .long sys_dup
-- .long sys_pipe
-- .long sys_times
-- .long sys_ni_syscall /* old prof syscall holder */
-- .long sys_brk /* 45 */
-- .long sys_setgid16
-- .long sys_getgid16
-- .long sys_signal
-- .long sys_geteuid16
-- .long sys_getegid16 /* 50 */
-- .long sys_acct
-- .long sys_umount /* recycled never used phys() */
-- .long sys_ni_syscall /* old lock syscall holder */
-- .long sys_ioctl
-- .long sys_fcntl /* 55 */
-- .long sys_ni_syscall /* old mpx syscall holder */
-- .long sys_setpgid
-- .long sys_ni_syscall /* old ulimit syscall holder */
-- .long sys_ni_syscall /* sys_olduname */
-- .long sys_umask /* 60 */
-- .long sys_chroot
-- .long sys_ustat
-- .long sys_dup2
-- .long sys_getppid
-- .long sys_getpgrp /* 65 */
-- .long sys_setsid
-- .long sys_sigaction
-- .long sys_sgetmask
-- .long sys_ssetmask
-- .long sys_setreuid16 /* 70 */
-- .long sys_setregid16
-- .long sys_sigsuspend
-- .long sys_sigpending
-- .long sys_sethostname
-- .long sys_setrlimit /* 75 */
-- .long sys_old_getrlimit
-- .long sys_getrusage
-- .long sys_gettimeofday
-- .long sys_settimeofday
-- .long sys_getgroups16 /* 80 */
-- .long sys_setgroups16
-- .long sys_ni_syscall /* sys_oldselect */
-- .long sys_symlink
-- .long sys_lstat
-- .long sys_readlink /* 85 */
-- .long sys_uselib
-- .long sys_swapon
-- .long sys_reboot
-- .long old_readdir
-- .long old_mmap /* 90 */
-- .long sys_munmap
-- .long sys_truncate
-- .long sys_ftruncate
-- .long sys_fchmod
-- .long sys_fchown16 /* 95 */
-- .long sys_getpriority
-- .long sys_setpriority
-- .long sys_ni_syscall /* old profil syscall holder */
-- .long sys_statfs
-- .long sys_fstatfs /* 100 */
-- .long sys_ni_syscall /* ioperm */
-- .long sys_socketcall
-- .long sys_syslog
-- .long sys_setitimer
-- .long sys_getitimer /* 105 */
-- .long sys_newstat
-- .long sys_newlstat
-- .long sys_newfstat
-- .long sys_uname
-- .long sys_ni_syscall /* 110 */ /* iopl */
-- .long sys_vhangup
-- .long sys_ni_syscall /* idle */
-- .long sys_ni_syscall /* vm86old */
-- .long sys_wait4
-- .long sys_swapoff /* 115 */
-- .long sys_sysinfo
-- .long sys_ipc
-- .long sys_fsync
-- .long sys_sigreturn
-- .long sys_clone /* 120 */
-- .long sys_setdomainname
-- .long sys_newuname
-- .long sys_ni_syscall /* sys_modify_ldt */
-- .long sys_adjtimex
-- .long sys_mprotect /* 125 */
-- .long sys_sigprocmask
-- .long sys_ni_syscall /* old "create_module" */
-- .long sys_init_module
-- .long sys_delete_module
-- .long sys_ni_syscall /* 130: old "get_kernel_syms" */
-- .long sys_quotactl
-- .long sys_getpgid
-- .long sys_fchdir
-- .long sys_bdflush
-- .long sys_sysfs /* 135 */
-- .long sys_personality
-- .long sys_ni_syscall /* for afs_syscall */
-- .long sys_setfsuid16
-- .long sys_setfsgid16
-- .long sys_llseek /* 140 */
-- .long sys_getdents
-- .long sys_select
-- .long sys_flock
-- .long sys_msync
-- .long sys_readv /* 145 */
-- .long sys_writev
-- .long sys_getsid
-- .long sys_fdatasync
-- .long sys_sysctl
-- .long sys_mlock /* 150 */
-- .long sys_munlock
-- .long sys_mlockall
-- .long sys_munlockall
-- .long sys_sched_setparam
-- .long sys_sched_getparam /* 155 */
-- .long sys_sched_setscheduler
-- .long sys_sched_getscheduler
-- .long sys_sched_yield
-- .long sys_sched_get_priority_max
-- .long sys_sched_get_priority_min /* 160 */
-- .long sys_sched_rr_get_interval
-- .long sys_nanosleep
-- .long sys_mremap
-- .long sys_setresuid16
-- .long sys_getresuid16 /* 165 */
-- .long sys_ni_syscall /* vm86 */
-- .long sys_ni_syscall /* old "query_module" */
-- .long sys_poll
-- .long sys_nfsservctl
-- .long sys_setresgid16 /* 170 */
-- .long sys_getresgid16
-- .long sys_prctl
-- .long sys_rt_sigreturn
-- .long sys_rt_sigaction
-- .long sys_rt_sigprocmask /* 175 */
-- .long sys_rt_sigpending
-- .long sys_rt_sigtimedwait
-- .long sys_rt_sigqueueinfo
-- .long sys_rt_sigsuspend
-- .long sys_pread_wrapper /* 180 */
-- .long sys_pwrite_wrapper
-- .long sys_chown16
-- .long sys_getcwd
-- .long sys_capget
-- .long sys_capset /* 185 */
-- .long sys_sigaltstack
-- .long sys_sendfile
-- .long sys_ni_syscall /* streams1 */
-- .long sys_ni_syscall /* streams2 */
-- .long sys_vfork /* 190 */
-- .long sys_getrlimit
-- .long sys_mmap2
-- .long sys_truncate64
-- .long sys_ftruncate64
-- .long sys_stat64 /* 195 */
-- .long sys_lstat64
-- .long sys_fstat64
-- .long sys_lchown
-- .long sys_getuid
-- .long sys_getgid /* 200 */
-- .long sys_geteuid
-- .long sys_getegid
-- .long sys_setreuid
-- .long sys_setregid
-- .long sys_getgroups /* 205 */
-- .long sys_setgroups
-- .long sys_fchown
-- .long sys_setresuid
-- .long sys_getresuid
-- .long sys_setresgid /* 210 */
-- .long sys_getresgid
-- .long sys_chown
-- .long sys_setuid
-- .long sys_setgid
-- .long sys_setfsuid /* 215 */
-- .long sys_setfsgid
-- .long sys_pivot_root
-- .long sys_mincore
-- .long sys_madvise
-- .long sys_getdents64 /* 220 */
-- .long sys_fcntl64
-- .long sys_ni_syscall /* reserved for TUX */
-- .long sys_ni_syscall /* Reserved for Security */
-- .long sys_gettid
-- .long sys_readahead /* 225 */
-- .long sys_setxattr
-- .long sys_lsetxattr
-- .long sys_fsetxattr
-- .long sys_getxattr
-- .long sys_lgetxattr /* 230 */
-- .long sys_fgetxattr
-- .long sys_listxattr
-- .long sys_llistxattr
-- .long sys_flistxattr
-- .long sys_removexattr /* 235 */
-- .long sys_lremovexattr
-- .long sys_fremovexattr
-- .long sys_tkill
-- .long sys_sendfile64
-- .long sys_futex /* 240 */
-- .long sys_sched_setaffinity
-- .long sys_sched_getaffinity
-- .long sys_ni_syscall
-- .long sys_ni_syscall
-- .long sys_io_setup /* 245 */
-- .long sys_io_destroy
-- .long sys_io_getevents
-- .long sys_io_submit
-- .long sys_io_cancel
-- .long sys_fadvise64 /* 250 */
-- .long sys_ni_syscall
-- .long sys_exit_group
-- .long sys_lookup_dcookie
-- .long sys_epoll_create
-- .long sys_epoll_ctl /* 255 */
-- .long sys_epoll_wait
-- .long sys_remap_file_pages
-- .long sys_set_tid_address
-- .long sys_timer_create
-- .long sys_timer_settime /* 260 */
-- .long sys_timer_gettime
-- .long sys_timer_getoverrun
-- .long sys_timer_delete
-- .long sys_clock_settime
-- .long sys_clock_gettime /* 265 */
-- .long sys_clock_getres
-- .long sys_clock_nanosleep
-- .long sys_statfs64
-- .long sys_fstatfs64
-- .long sys_tgkill /* 270 */
-- .long sys_utimes
-- .long sys_fadvise64_64_wrapper
-- .long sys_ni_syscall /* Reserved for vserver */
-- .long sys_ni_syscall /* Reserved for mbind */
-- .long sys_ni_syscall /* 275 - get_mempolicy */
-- .long sys_ni_syscall /* set_mempolicy */
-- .long sys_mq_open
-- .long sys_mq_unlink
-- .long sys_mq_timedsend
-- .long sys_mq_timedreceive /* 280 */
-- .long sys_mq_notify
-- .long sys_mq_getsetattr
-- .long sys_ni_syscall /* Reserved for kexec */
-- .long sys_waitid
-- .long sys_add_key /* 285 */
-- .long sys_request_key
-- .long sys_keyctl
-- .long sys_ioprio_set
-- .long sys_ioprio_get
-- .long sys_inotify_init /* 290 */
-- .long sys_inotify_add_watch
-- .long sys_inotify_rm_watch
--
--/* End of entry.S */
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/head.S linux-2.6.17/arch/sh/kernel/head.S
---- linux-2.6.17-vanilla/arch/sh/kernel/head.S 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/head.S 2006-07-12 16:54:22.000000000 +0000
-@@ -12,6 +12,17 @@
- */
- #include <linux/linkage.h>
-
-+#ifdef CONFIG_CPU_SH4A
-+#define SYNCO() synco
-+
-+#define PREFI(label, reg) \
-+ mov.l label, reg; \
-+ prefi @reg
-+#else
-+#define SYNCO()
-+#define PREFI(label, reg)
-+#endif
-+
- .section .empty_zero_page, "aw"
- ENTRY(empty_zero_page)
- .long 1 /* MOUNT_ROOT_RDONLY */
-@@ -42,6 +53,17 @@
- ! Initialize global interrupt mask
- mov #0, r0
- ldc r0, r6_bank
-+
-+ /*
-+ * Prefetch if possible to reduce cache miss penalty.
-+ *
-+ * We do this early on for SH-4A as a micro-optimization,
-+ * as later on we will have speculative execution enabled
-+ * and this will become less of an issue.
-+ */
-+ PREFI(5f, r0)
-+ PREFI(6f, r0)
-+
- !
- mov.l 2f, r0
- mov r0, r15 ! Set initial r15 (stack pointer)
-@@ -49,11 +71,7 @@
- shll8 r1 ! r1 = 8192
- sub r1, r0 !
- ldc r0, r7_bank ! ... and initial thread_info
-- !
-- ! Additional CPU initialization
-- mov.l 6f, r0
-- jsr @r0
-- nop
-+
- ! Clear BSS area
- mov.l 3f, r1
- add #4, r1
-@@ -62,6 +80,14 @@
- 9: cmp/hs r2, r1
- bf/s 9b ! while (r1 < r2)
- mov.l r0,@-r2
-+
-+ ! Additional CPU initialization
-+ mov.l 6f, r0
-+ jsr @r0
-+ nop
-+
-+ SYNCO() ! Wait for pending instructions..
-+
- ! Start kernel
- mov.l 5f, r0
- jmp @r0
-@@ -69,7 +95,7 @@
-
- .balign 4
- 1: .long 0x400080F0 ! MD=1, RB=0, BL=0, FD=1, IMASK=0xF
--2: .long stack
-+2: .long init_thread_union+8192
- 3: .long __bss_start
- 4: .long _end
- 5: .long start_kernel
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/kgdb_stub.c linux-2.6.17/arch/sh/kernel/kgdb_stub.c
---- linux-2.6.17-vanilla/arch/sh/kernel/kgdb_stub.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/kgdb_stub.c 2006-07-12 16:54:22.000000000 +0000
-@@ -101,16 +101,17 @@
- #include <linux/linkage.h>
- #include <linux/init.h>
-
-+#ifdef CONFIG_SH_KGDB_CONSOLE
-+#include <linux/console.h>
-+#endif
-+
- #include <asm/system.h>
- #include <asm/current.h>
- #include <asm/signal.h>
- #include <asm/pgtable.h>
- #include <asm/ptrace.h>
- #include <asm/kgdb.h>
--
--#ifdef CONFIG_SH_KGDB_CONSOLE
--#include <linux/console.h>
--#endif
-+#include <asm/io.h>
-
- /* Function pointers for linkage */
- kgdb_debug_hook_t *kgdb_debug_hook;
-@@ -240,7 +241,6 @@
- /* Misc static */
- static int stepped_address;
- static short stepped_opcode;
--static const char hexchars[] = "0123456789abcdef";
- static char in_buffer[BUFMAX];
- static char out_buffer[OUTBUFMAX];
-
-@@ -253,29 +253,6 @@
- #define BUF_THREAD_ID_SIZE 16
- #endif
-
--/* Return addr as a real volatile address */
--static inline unsigned int ctrl_inl(const unsigned long addr)
--{
-- return *(volatile unsigned long *) addr;
--}
--
--/* Correctly set *addr using volatile */
--static inline void ctrl_outl(const unsigned int b, unsigned long addr)
--{
-- *(volatile unsigned long *) addr = b;
--}
--
--/* Get high hex bits */
--static char highhex(const int x)
--{
-- return hexchars[(x >> 4) & 0xf];
--}
--
--/* Get low hex bits */
--static char lowhex(const int x)
--{
-- return hexchars[x & 0xf];
--}
-
- /* Convert ch to hex */
- static int hex(const char ch)
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/machine_kexec.c linux-2.6.17/arch/sh/kernel/machine_kexec.c
---- linux-2.6.17-vanilla/arch/sh/kernel/machine_kexec.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/machine_kexec.c 2006-07-12 16:54:22.000000000 +0000
-@@ -27,7 +27,7 @@
-
- const extern unsigned char relocate_new_kernel[];
- const extern unsigned int relocate_new_kernel_size;
--extern void *gdb_vbr_vector;
-+extern void *gdb_vbr_vector;
-
- /*
- * Provide a dummy crash_notes definition while crash dump arrives to ppc.
-@@ -78,7 +78,7 @@
- */
- NORET_TYPE void machine_kexec(struct kimage *image)
- {
--
-+
- unsigned long page_list;
- unsigned long reboot_code_buffer;
- unsigned long vbr_reg;
-@@ -87,7 +87,7 @@
- #if defined(CONFIG_SH_STANDARD_BIOS)
- vbr_reg = ((unsigned long )gdb_vbr_vector) - 0x100;
- #else
-- vbr_reg = 0x80000000; // dummy
-+ vbr_reg = 0x80000000; // dummy
- #endif
- /* Interrupts aren't acceptable while we reboot */
- local_irq_disable();
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/pm.c linux-2.6.17/arch/sh/kernel/pm.c
---- linux-2.6.17-vanilla/arch/sh/kernel/pm.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/pm.c 2006-07-12 16:54:22.000000000 +0000
-@@ -0,0 +1,88 @@
-+/*
-+ * Generic Power Management Routine
-+ *
-+ * Copyright (c) 2006 Andriy Skulysh <askulsyh@gmail.com>
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License.
-+ */
-+#include <linux/suspend.h>
-+#include <linux/delay.h>
-+#include <linux/gfp.h>
-+#include <asm/freq.h>
-+#include <asm/io.h>
-+#include <asm/watchdog.h>
-+#include <asm/pm.h>
-+
-+#define INTR_OFFSET 0x600
-+
-+#define STBCR 0xffffff82
-+#define STBCR2 0xffffff88
-+
-+#define STBCR_STBY 0x80
-+#define STBCR_MSTP2 0x04
-+
-+#define MCR 0xffffff68
-+#define RTCNT 0xffffff70
-+
-+#define MCR_RMODE 2
-+#define MCR_RFSH 4
-+
-+void pm_enter(void)
-+{
-+ u8 stbcr, csr;
-+ u16 frqcr, mcr;
-+ u32 vbr_new, vbr_old;
-+
-+ set_bl_bit();
-+
-+ /* set wdt */
-+ csr = sh_wdt_read_csr();
-+ csr &= ~WTCSR_TME;
-+ csr |= WTCSR_CKS_4096;
-+ sh_wdt_write_csr(csr);
-+ csr = sh_wdt_read_csr();
-+ sh_wdt_write_cnt(0);
-+
-+ /* disable PLL1 */
-+ frqcr = ctrl_inw(FRQCR);
-+ frqcr &= ~(FRQCR_PLLEN | FRQCR_PSTBY);
-+ ctrl_outw(frqcr, FRQCR);
-+
-+ /* enable standby */
-+ stbcr = ctrl_inb(STBCR);
-+ ctrl_outb(stbcr | STBCR_STBY | STBCR_MSTP2, STBCR);
-+
-+ /* set self-refresh */
-+ mcr = ctrl_inw(MCR);
-+ ctrl_outw(mcr & ~MCR_RFSH, MCR);
-+
-+ /* set interrupt handler */
-+ asm volatile("stc vbr, %0" : "=r" (vbr_old));
-+ vbr_new = get_zeroed_page(GFP_ATOMIC);
-+ udelay(50);
-+ memcpy((void*)(vbr_new + INTR_OFFSET),
-+ &wakeup_start, &wakeup_end - &wakeup_start);
-+ asm volatile("ldc %0, vbr" : : "r" (vbr_new));
-+
-+ ctrl_outw(0, RTCNT);
-+ ctrl_outw(mcr | MCR_RFSH | MCR_RMODE, MCR);
-+
-+ cpu_sleep();
-+
-+ asm volatile("ldc %0, vbr" : : "r" (vbr_old));
-+
-+ free_page(vbr_new);
-+
-+ /* enable PLL1 */
-+ frqcr = ctrl_inw(FRQCR);
-+ frqcr |= FRQCR_PSTBY;
-+ ctrl_outw(frqcr, FRQCR);
-+ udelay(50);
-+ frqcr |= FRQCR_PLLEN;
-+ ctrl_outw(frqcr, FRQCR);
-+
-+ ctrl_outb(stbcr, STBCR);
-+
-+ clear_bl_bit();
-+}
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/process.c linux-2.6.17/arch/sh/kernel/process.c
---- linux-2.6.17-vanilla/arch/sh/kernel/process.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/process.c 2006-07-12 16:54:22.000000000 +0000
-@@ -227,13 +227,13 @@
- return fpvalid;
- }
-
--/*
-+/*
- * Capture the user space registers if the task is not running (in user space)
- */
- int dump_task_regs(struct task_struct *tsk, elf_gregset_t *regs)
- {
- struct pt_regs ptregs;
--
-+
- ptregs = *task_pt_regs(tsk);
- elf_core_copy_regs(regs, &ptregs);
-
-@@ -262,6 +262,7 @@
- unsigned long unused,
- struct task_struct *p, struct pt_regs *regs)
- {
-+ struct thread_info *ti = task_thread_info(p);
- struct pt_regs *childregs;
- #if defined(CONFIG_SH_FPU)
- struct task_struct *tsk = current;
-@@ -276,8 +277,10 @@
-
- if (user_mode(regs)) {
- childregs->regs[15] = usp;
-+ ti->addr_limit = USER_DS;
- } else {
- childregs->regs[15] = (unsigned long)task_stack_page(p) + THREAD_SIZE;
-+ ti->addr_limit = KERNEL_DS;
- }
- if (clone_flags & CLONE_SETTLS) {
- childregs->gbr = childregs->regs[0];
-@@ -345,7 +348,7 @@
-
- /*
- * Restore the kernel mode register
-- * k7 (r7_bank1)
-+ * k7 (r7_bank1)
- */
- asm volatile("ldc %0, r7_bank"
- : /* no output */
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/ptrace.c linux-2.6.17/arch/sh/kernel/ptrace.c
---- linux-2.6.17-vanilla/arch/sh/kernel/ptrace.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/ptrace.c 2006-07-12 16:54:22.000000000 +0000
-@@ -225,7 +225,6 @@
-
- case PTRACE_SETDSPREGS: {
- unsigned long dp;
-- int i;
-
- ret = -EIO;
- dp = ((unsigned long) child) + THREAD_SIZE -
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/relocate_kernel.S linux-2.6.17/arch/sh/kernel/relocate_kernel.S
---- linux-2.6.17-vanilla/arch/sh/kernel/relocate_kernel.S 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/relocate_kernel.S 2006-07-12 16:54:22.000000000 +0000
-@@ -12,8 +12,8 @@
- #include <linux/linkage.h>
-
- #define PAGE_SIZE 4096 /* must be same value as in <asm/page.h> */
--
--
-+
-+
- .globl relocate_new_kernel
- relocate_new_kernel:
- /* r4 = indirection_page */
-@@ -30,43 +30,43 @@
-
- bra 1f
- mov r4,r0 /* cmd = indirection_page */
--0:
-- mov.l @r4+,r0 /* cmd = *ind++ */
-+0:
-+ mov.l @r4+,r0 /* cmd = *ind++ */
-
- 1: /* addr = (cmd | 0xa0000000) & 0xfffffff0 */
- mov r0,r2
- or r9,r2
- mov #-16,r1
-- and r1,r2
-+ and r1,r2
-
- /* if(cmd & IND_DESTINATION) dst = addr */
-- tst #1,r0
-+ tst #1,r0
- bt 2f
-- bra 0b
-- mov r2,r5
-+ bra 0b
-+ mov r2,r5
-
- 2: /* else if(cmd & IND_INDIRECTION) ind = addr */
-- tst #2,r0
-+ tst #2,r0
- bt 3f
-- bra 0b
-- mov r2,r4
-+ bra 0b
-+ mov r2,r4
-
- 3: /* else if(cmd & IND_DONE) goto 6 */
-- tst #4,r0
-+ tst #4,r0
- bt 4f
- bra 6f
- nop
-
- 4: /* else if(cmd & IND_SOURCE) memcpy(dst,addr,PAGE_SIZE) */
-- tst #8,r0
-+ tst #8,r0
- bt 0b
-
-- mov r8,r3
-- shlr2 r3
-- shlr2 r3
--5:
-+ mov r8,r3
-+ shlr2 r3
-+ shlr2 r3
-+5:
- dt r3
-- mov.l @r2+,r1 /* 16n+0 */
-+ mov.l @r2+,r1 /* 16n+0 */
- mov.l r1,@r5
- add #4,r5
- mov.l @r2+,r1 /* 16n+4 */
-@@ -79,7 +79,7 @@
- mov.l r1,@r5
- add #4,r5
- bf 5b
--
-+
- bra 0b
- nop
- 6:
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/semaphore.c linux-2.6.17/arch/sh/kernel/semaphore.c
---- linux-2.6.17-vanilla/arch/sh/kernel/semaphore.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/semaphore.c 2006-07-12 16:54:22.000000000 +0000
-@@ -14,7 +14,7 @@
- #include <asm/semaphore.h>
- #include <asm/semaphore-helper.h>
-
--spinlock_t semaphore_wake_lock;
-+DEFINE_SPINLOCK(semaphore_wake_lock);
-
- /*
- * Semaphores are implemented using a two-way counter:
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/setup.c linux-2.6.17/arch/sh/kernel/setup.c
---- linux-2.6.17-vanilla/arch/sh/kernel/setup.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/setup.c 2006-07-12 16:54:22.000000000 +0000
-@@ -493,7 +493,7 @@
- * unified cache on the SH-2 and SH-3, as well as the harvard
- * style cache on the SH-4.
- */
-- if (test_bit(SH_CACHE_COMBINED, &(boot_cpu_data.icache.flags))) {
-+ if (boot_cpu_data.icache.flags & SH_CACHE_COMBINED) {
- seq_printf(m, "unified\n");
- show_cacheinfo(m, "cache", boot_cpu_data.icache);
- } else {
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/sh_ksyms.c linux-2.6.17/arch/sh/kernel/sh_ksyms.c
---- linux-2.6.17-vanilla/arch/sh/kernel/sh_ksyms.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/sh_ksyms.c 2006-07-12 16:54:22.000000000 +0000
-@@ -28,21 +28,11 @@
-
- /* platform dependent support */
- EXPORT_SYMBOL(dump_fpu);
--EXPORT_SYMBOL(iounmap);
--EXPORT_SYMBOL(enable_irq);
--EXPORT_SYMBOL(disable_irq);
--EXPORT_SYMBOL(probe_irq_mask);
- EXPORT_SYMBOL(kernel_thread);
--EXPORT_SYMBOL(disable_irq_nosync);
- EXPORT_SYMBOL(irq_desc);
- EXPORT_SYMBOL(no_irq_type);
-
--EXPORT_SYMBOL(strstr);
- EXPORT_SYMBOL(strlen);
--EXPORT_SYMBOL(strnlen);
--EXPORT_SYMBOL(strchr);
--EXPORT_SYMBOL(strcat);
--EXPORT_SYMBOL(strncat);
-
- /* PCI exports */
- #ifdef CONFIG_PCI
-@@ -53,13 +43,8 @@
- /* mem exports */
- EXPORT_SYMBOL(memchr);
- EXPORT_SYMBOL(memcpy);
--EXPORT_SYMBOL(memcpy_fromio);
--EXPORT_SYMBOL(memcpy_toio);
- EXPORT_SYMBOL(memset);
--EXPORT_SYMBOL(memset_io);
- EXPORT_SYMBOL(memmove);
--EXPORT_SYMBOL(memcmp);
--EXPORT_SYMBOL(memscan);
- EXPORT_SYMBOL(__copy_user);
- EXPORT_SYMBOL(boot_cpu_data);
-
-@@ -101,6 +86,7 @@
- EXPORT_SYMBOL(flush_cache_range);
- EXPORT_SYMBOL(flush_dcache_page);
- EXPORT_SYMBOL(__flush_purge_region);
-+EXPORT_SYMBOL(clear_user_page);
- #endif
-
- #if defined(CONFIG_SH7705_CACHE_32KB)
-@@ -117,7 +103,12 @@
- EXPORT_SYMBOL(synchronize_irq);
- #endif
-
-+#ifdef CONFIG_PM
-+EXPORT_SYMBOL(pm_suspend);
-+#endif
-+
- EXPORT_SYMBOL(csum_partial);
-+#ifdef CONFIG_IPV6
- EXPORT_SYMBOL(csum_ipv6_magic);
--EXPORT_SYMBOL(consistent_sync);
-+#endif
- EXPORT_SYMBOL(clear_page);
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/sys_sh.c linux-2.6.17/arch/sh/kernel/sys_sh.c
---- linux-2.6.17-vanilla/arch/sh/kernel/sys_sh.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/sys_sh.c 2006-07-12 16:54:22.000000000 +0000
-@@ -21,7 +21,7 @@
- #include <linux/mman.h>
- #include <linux/file.h>
- #include <linux/utsname.h>
--
-+#include <asm/cacheflush.h>
- #include <asm/uaccess.h>
- #include <asm/ipc.h>
-
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/syscalls.S linux-2.6.17/arch/sh/kernel/syscalls.S
---- linux-2.6.17-vanilla/arch/sh/kernel/syscalls.S 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/syscalls.S 2006-07-12 16:54:22.000000000 +0000
-@@ -0,0 +1,354 @@
-+/*
-+ * arch/sh/kernel/syscalls.S
-+ *
-+ * System call table for SuperH
-+ *
-+ * Copyright (C) 1999, 2000, 2002 Niibe Yutaka
-+ * Copyright (C) 2003 Paul Mundt
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ */
-+
-+#include <linux/sys.h>
-+#include <linux/linkage.h>
-+#include <linux/config.h>
-+
-+#if !defined(CONFIG_NFSD) && !defined(CONFIG_NFSD_MODULE)
-+#define sys_nfsservctl sys_ni_syscall
-+#endif
-+
-+#if !defined(CONFIG_MMU)
-+#define sys_madvise sys_ni_syscall
-+#define sys_readahead sys_ni_syscall
-+#define sys_mprotect sys_ni_syscall
-+#define sys_msync sys_ni_syscall
-+#define sys_mlock sys_ni_syscall
-+#define sys_munlock sys_ni_syscall
-+#define sys_mlockall sys_ni_syscall
-+#define sys_munlockall sys_ni_syscall
-+#define sys_mremap sys_ni_syscall
-+#define sys_mincore sys_ni_syscall
-+#define sys_remap_file_pages sys_ni_syscall
-+#endif
-+
-+ .data
-+ENTRY(sys_call_table)
-+ .long sys_ni_syscall /* 0 - old "setup()" system call*/
-+ .long sys_exit
-+ .long sys_fork
-+ .long sys_read
-+ .long sys_write
-+ .long sys_open /* 5 */
-+ .long sys_close
-+ .long sys_waitpid
-+ .long sys_creat
-+ .long sys_link
-+ .long sys_unlink /* 10 */
-+ .long sys_execve
-+ .long sys_chdir
-+ .long sys_time
-+ .long sys_mknod
-+ .long sys_chmod /* 15 */
-+ .long sys_lchown16
-+ .long sys_ni_syscall /* old break syscall holder */
-+ .long sys_stat
-+ .long sys_lseek
-+ .long sys_getpid /* 20 */
-+ .long sys_mount
-+ .long sys_oldumount
-+ .long sys_setuid16
-+ .long sys_getuid16
-+ .long sys_stime /* 25 */
-+ .long sys_ptrace
-+ .long sys_alarm
-+ .long sys_fstat
-+ .long sys_pause
-+ .long sys_utime /* 30 */
-+ .long sys_ni_syscall /* old stty syscall holder */
-+ .long sys_ni_syscall /* old gtty syscall holder */
-+ .long sys_access
-+ .long sys_nice
-+ .long sys_ni_syscall /* 35 */ /* old ftime syscall holder */
-+ .long sys_sync
-+ .long sys_kill
-+ .long sys_rename
-+ .long sys_mkdir
-+ .long sys_rmdir /* 40 */
-+ .long sys_dup
-+ .long sys_pipe
-+ .long sys_times
-+ .long sys_ni_syscall /* old prof syscall holder */
-+ .long sys_brk /* 45 */
-+ .long sys_setgid16
-+ .long sys_getgid16
-+ .long sys_signal
-+ .long sys_geteuid16
-+ .long sys_getegid16 /* 50 */
-+ .long sys_acct
-+ .long sys_umount /* recycled never used phys() */
-+ .long sys_ni_syscall /* old lock syscall holder */
-+ .long sys_ioctl
-+ .long sys_fcntl /* 55 */
-+ .long sys_ni_syscall /* old mpx syscall holder */
-+ .long sys_setpgid
-+ .long sys_ni_syscall /* old ulimit syscall holder */
-+ .long sys_ni_syscall /* sys_olduname */
-+ .long sys_umask /* 60 */
-+ .long sys_chroot
-+ .long sys_ustat
-+ .long sys_dup2
-+ .long sys_getppid
-+ .long sys_getpgrp /* 65 */
-+ .long sys_setsid
-+ .long sys_sigaction
-+ .long sys_sgetmask
-+ .long sys_ssetmask
-+ .long sys_setreuid16 /* 70 */
-+ .long sys_setregid16
-+ .long sys_sigsuspend
-+ .long sys_sigpending
-+ .long sys_sethostname
-+ .long sys_setrlimit /* 75 */
-+ .long sys_old_getrlimit
-+ .long sys_getrusage
-+ .long sys_gettimeofday
-+ .long sys_settimeofday
-+ .long sys_getgroups16 /* 80 */
-+ .long sys_setgroups16
-+ .long sys_ni_syscall /* sys_oldselect */
-+ .long sys_symlink
-+ .long sys_lstat
-+ .long sys_readlink /* 85 */
-+ .long sys_uselib
-+ .long sys_swapon
-+ .long sys_reboot
-+ .long old_readdir
-+ .long old_mmap /* 90 */
-+ .long sys_munmap
-+ .long sys_truncate
-+ .long sys_ftruncate
-+ .long sys_fchmod
-+ .long sys_fchown16 /* 95 */
-+ .long sys_getpriority
-+ .long sys_setpriority
-+ .long sys_ni_syscall /* old profil syscall holder */
-+ .long sys_statfs
-+ .long sys_fstatfs /* 100 */
-+ .long sys_ni_syscall /* ioperm */
-+ .long sys_socketcall
-+ .long sys_syslog
-+ .long sys_setitimer
-+ .long sys_getitimer /* 105 */
-+ .long sys_newstat
-+ .long sys_newlstat
-+ .long sys_newfstat
-+ .long sys_uname
-+ .long sys_ni_syscall /* 110 */ /* iopl */
-+ .long sys_vhangup
-+ .long sys_ni_syscall /* idle */
-+ .long sys_ni_syscall /* vm86old */
-+ .long sys_wait4
-+ .long sys_swapoff /* 115 */
-+ .long sys_sysinfo
-+ .long sys_ipc
-+ .long sys_fsync
-+ .long sys_sigreturn
-+ .long sys_clone /* 120 */
-+ .long sys_setdomainname
-+ .long sys_newuname
-+ .long sys_ni_syscall /* sys_modify_ldt */
-+ .long sys_adjtimex
-+ .long sys_mprotect /* 125 */
-+ .long sys_sigprocmask
-+ .long sys_ni_syscall /* old "create_module" */
-+ .long sys_init_module
-+ .long sys_delete_module
-+ .long sys_ni_syscall /* 130: old "get_kernel_syms" */
-+ .long sys_quotactl
-+ .long sys_getpgid
-+ .long sys_fchdir
-+ .long sys_bdflush
-+ .long sys_sysfs /* 135 */
-+ .long sys_personality
-+ .long sys_ni_syscall /* for afs_syscall */
-+ .long sys_setfsuid16
-+ .long sys_setfsgid16
-+ .long sys_llseek /* 140 */
-+ .long sys_getdents
-+ .long sys_select
-+ .long sys_flock
-+ .long sys_msync
-+ .long sys_readv /* 145 */
-+ .long sys_writev
-+ .long sys_getsid
-+ .long sys_fdatasync
-+ .long sys_sysctl
-+ .long sys_mlock /* 150 */
-+ .long sys_munlock
-+ .long sys_mlockall
-+ .long sys_munlockall
-+ .long sys_sched_setparam
-+ .long sys_sched_getparam /* 155 */
-+ .long sys_sched_setscheduler
-+ .long sys_sched_getscheduler
-+ .long sys_sched_yield
-+ .long sys_sched_get_priority_max
-+ .long sys_sched_get_priority_min /* 160 */
-+ .long sys_sched_rr_get_interval
-+ .long sys_nanosleep
-+ .long sys_mremap
-+ .long sys_setresuid16
-+ .long sys_getresuid16 /* 165 */
-+ .long sys_ni_syscall /* vm86 */
-+ .long sys_ni_syscall /* old "query_module" */
-+ .long sys_poll
-+ .long sys_nfsservctl
-+ .long sys_setresgid16 /* 170 */
-+ .long sys_getresgid16
-+ .long sys_prctl
-+ .long sys_rt_sigreturn
-+ .long sys_rt_sigaction
-+ .long sys_rt_sigprocmask /* 175 */
-+ .long sys_rt_sigpending
-+ .long sys_rt_sigtimedwait
-+ .long sys_rt_sigqueueinfo
-+ .long sys_rt_sigsuspend
-+ .long sys_pread_wrapper /* 180 */
-+ .long sys_pwrite_wrapper
-+ .long sys_chown16
-+ .long sys_getcwd
-+ .long sys_capget
-+ .long sys_capset /* 185 */
-+ .long sys_sigaltstack
-+ .long sys_sendfile
-+ .long sys_ni_syscall /* streams1 */
-+ .long sys_ni_syscall /* streams2 */
-+ .long sys_vfork /* 190 */
-+ .long sys_getrlimit
-+ .long sys_mmap2
-+ .long sys_truncate64
-+ .long sys_ftruncate64
-+ .long sys_stat64 /* 195 */
-+ .long sys_lstat64
-+ .long sys_fstat64
-+ .long sys_lchown
-+ .long sys_getuid
-+ .long sys_getgid /* 200 */
-+ .long sys_geteuid
-+ .long sys_getegid
-+ .long sys_setreuid
-+ .long sys_setregid
-+ .long sys_getgroups /* 205 */
-+ .long sys_setgroups
-+ .long sys_fchown
-+ .long sys_setresuid
-+ .long sys_getresuid
-+ .long sys_setresgid /* 210 */
-+ .long sys_getresgid
-+ .long sys_chown
-+ .long sys_setuid
-+ .long sys_setgid
-+ .long sys_setfsuid /* 215 */
-+ .long sys_setfsgid
-+ .long sys_pivot_root
-+ .long sys_mincore
-+ .long sys_madvise
-+ .long sys_getdents64 /* 220 */
-+ .long sys_fcntl64
-+ .long sys_ni_syscall /* reserved for TUX */
-+ .long sys_ni_syscall /* Reserved for Security */
-+ .long sys_gettid
-+ .long sys_readahead /* 225 */
-+ .long sys_setxattr
-+ .long sys_lsetxattr
-+ .long sys_fsetxattr
-+ .long sys_getxattr
-+ .long sys_lgetxattr /* 230 */
-+ .long sys_fgetxattr
-+ .long sys_listxattr
-+ .long sys_llistxattr
-+ .long sys_flistxattr
-+ .long sys_removexattr /* 235 */
-+ .long sys_lremovexattr
-+ .long sys_fremovexattr
-+ .long sys_tkill
-+ .long sys_sendfile64
-+ .long sys_futex /* 240 */
-+ .long sys_sched_setaffinity
-+ .long sys_sched_getaffinity
-+ .long sys_ni_syscall
-+ .long sys_ni_syscall
-+ .long sys_io_setup /* 245 */
-+ .long sys_io_destroy
-+ .long sys_io_getevents
-+ .long sys_io_submit
-+ .long sys_io_cancel
-+ .long sys_fadvise64 /* 250 */
-+ .long sys_ni_syscall
-+ .long sys_exit_group
-+ .long sys_lookup_dcookie
-+ .long sys_epoll_create
-+ .long sys_epoll_ctl /* 255 */
-+ .long sys_epoll_wait
-+ .long sys_remap_file_pages
-+ .long sys_set_tid_address
-+ .long sys_timer_create
-+ .long sys_timer_settime /* 260 */
-+ .long sys_timer_gettime
-+ .long sys_timer_getoverrun
-+ .long sys_timer_delete
-+ .long sys_clock_settime
-+ .long sys_clock_gettime /* 265 */
-+ .long sys_clock_getres
-+ .long sys_clock_nanosleep
-+ .long sys_statfs64
-+ .long sys_fstatfs64
-+ .long sys_tgkill /* 270 */
-+ .long sys_utimes
-+ .long sys_fadvise64_64_wrapper
-+ .long sys_ni_syscall /* Reserved for vserver */
-+ .long sys_ni_syscall /* Reserved for mbind */
-+ .long sys_ni_syscall /* 275 - get_mempolicy */
-+ .long sys_ni_syscall /* set_mempolicy */
-+ .long sys_mq_open
-+ .long sys_mq_unlink
-+ .long sys_mq_timedsend
-+ .long sys_mq_timedreceive /* 280 */
-+ .long sys_mq_notify
-+ .long sys_mq_getsetattr
-+ .long sys_kexec_load
-+ .long sys_waitid
-+ .long sys_add_key /* 285 */
-+ .long sys_request_key
-+ .long sys_keyctl
-+ .long sys_ioprio_set
-+ .long sys_ioprio_get
-+ .long sys_inotify_init /* 290 */
-+ .long sys_inotify_add_watch
-+ .long sys_inotify_rm_watch
-+ .long sys_migrate_pages
-+ .long sys_openat
-+ .long sys_mkdirat /* 295 */
-+ .long sys_mknodat
-+ .long sys_fchownat
-+ .long sys_futimesat
-+ .long sys_fstatat64
-+ .long sys_unlinkat /* 300 */
-+ .long sys_renameat
-+ .long sys_linkat
-+ .long sys_symlinkat
-+ .long sys_readlinkat
-+ .long sys_fchmodat /* 305 */
-+ .long sys_faccessat
-+ .long sys_ni_syscall /* Reserved for pselect6 */
-+ .long sys_ni_syscall /* Reserved for ppoll */
-+ .long sys_unshare
-+ .long sys_set_robust_list /* 310 */
-+ .long sys_get_robust_list
-+ .long sys_splice
-+ .long sys_sync_file_range
-+ .long sys_tee
-+ .long sys_vmsplice /* 315 */
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/time.c linux-2.6.17/arch/sh/kernel/time.c
---- linux-2.6.17-vanilla/arch/sh/kernel/time.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/time.c 2006-07-12 16:54:22.000000000 +0000
-@@ -30,11 +30,11 @@
- /* XXX: Can we initialize this in a routine somewhere? Dreamcast doesn't want
- * these routines anywhere... */
- #ifdef CONFIG_SH_RTC
--void (*rtc_get_time)(struct timespec *) = sh_rtc_gettimeofday;
--int (*rtc_set_time)(const time_t) = sh_rtc_settimeofday;
-+void (*rtc_sh_get_time)(struct timespec *) = sh_rtc_gettimeofday;
-+int (*rtc_sh_set_time)(const time_t) = sh_rtc_settimeofday;
- #else
--void (*rtc_get_time)(struct timespec *);
--int (*rtc_set_time)(const time_t);
-+void (*rtc_sh_get_time)(struct timespec *);
-+int (*rtc_sh_set_time)(const time_t);
- #endif
-
- /*
-@@ -136,7 +136,7 @@
- xtime.tv_sec > last_rtc_update + 660 &&
- (xtime.tv_nsec / 1000) >= 500000 - ((unsigned) TICK_SIZE) / 2 &&
- (xtime.tv_nsec / 1000) <= 500000 + ((unsigned) TICK_SIZE) / 2) {
-- if (rtc_set_time(xtime.tv_sec) == 0)
-+ if (rtc_sh_set_time(xtime.tv_sec) == 0)
- last_rtc_update = xtime.tv_sec;
- else
- /* do it again in 60s */
-@@ -144,8 +144,33 @@
- }
- }
-
-+#ifdef CONFIG_PM
-+int timer_suspend(struct sys_device *dev, pm_message_t state)
-+{
-+ struct sys_timer *sys_timer = container_of(dev, struct sys_timer, dev);
-+
-+ sys_timer->ops->stop();
-+
-+ return 0;
-+}
-+
-+int timer_resume(struct sys_device *dev)
-+{
-+ struct sys_timer *sys_timer = container_of(dev, struct sys_timer, dev);
-+
-+ sys_timer->ops->start();
-+
-+ return 0;
-+}
-+#else
-+#define timer_suspend NULL
-+#define timer_resume NULL
-+#endif
-+
- static struct sysdev_class timer_sysclass = {
- set_kset_name("timer"),
-+ .suspend = timer_suspend,
-+ .resume = timer_resume,
- };
-
- static int __init timer_init_sysfs(void)
-@@ -169,8 +194,8 @@
-
- clk_init();
-
-- if (rtc_get_time) {
-- rtc_get_time(&xtime);
-+ if (rtc_sh_get_time) {
-+ rtc_sh_get_time(&xtime);
- } else {
- xtime.tv_sec = mktime(2000, 1, 1, 0, 0, 0);
- xtime.tv_nsec = 0;
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/timers/CVS/Entries linux-2.6.17/arch/sh/kernel/timers/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/kernel/timers/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/timers/CVS/Entries 2006-07-12 16:54:22.000000000 +0000
-@@ -0,0 +1,4 @@
-+/Makefile/1.1/Sat Mar 26 20:25:36 2005/-ko/
-+/timer.c/1.1/Sat Mar 26 20:25:36 2005/-ko/
-+/timer-tmu.c/1.4/Sat Jul 8 20:16:10 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/timers/CVS/Repository linux-2.6.17/arch/sh/kernel/timers/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/kernel/timers/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/timers/CVS/Repository 2006-07-12 16:54:22.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/kernel/timers
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/timers/CVS/Root linux-2.6.17/arch/sh/kernel/timers/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/kernel/timers/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/timers/CVS/Root 2006-07-12 16:54:22.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/timers/timer-tmu.c linux-2.6.17/arch/sh/kernel/timers/timer-tmu.c
---- linux-2.6.17-vanilla/arch/sh/kernel/timers/timer-tmu.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/timers/timer-tmu.c 2006-07-12 16:54:22.000000000 +0000
-@@ -132,17 +132,17 @@
- ctrl_outl(0xffffffff, TMU0_TCOR);
- ctrl_outl(0xffffffff, TMU0_TCNT);
-
-- rtc_get_time(&ts2);
-+ rtc_sh_get_time(&ts2);
-
- do {
-- rtc_get_time(&ts1);
-+ rtc_sh_get_time(&ts1);
- } while (ts1.tv_nsec == ts2.tv_nsec && ts1.tv_sec == ts2.tv_sec);
-
- /* actually start the timer */
- ctrl_outb(TMU_TSTR_INIT, TMU_TSTR);
-
- do {
-- rtc_get_time(&ts2);
-+ rtc_sh_get_time(&ts2);
- } while (ts1.tv_nsec == ts2.tv_nsec && ts1.tv_sec == ts2.tv_sec);
-
- freq = 0xffffffff - ctrl_inl(TMU0_TCNT);
-@@ -188,6 +188,18 @@
- .ops = &tmu_clk_ops,
- };
-
-+static int tmu_timer_start(void)
-+{
-+ ctrl_outb(TMU_TSTR_INIT, TMU_TSTR);
-+ return 0;
-+}
-+
-+static int tmu_timer_stop(void)
-+{
-+ ctrl_outb(0, TMU_TSTR);
-+ return 0;
-+}
-+
- static int tmu_timer_init(void)
- {
- unsigned long interval;
-@@ -197,7 +209,7 @@
- tmu0_clk.parent = clk_get("module_clk");
-
- /* Start TMU0 */
-- ctrl_outb(0, TMU_TSTR);
-+ tmu_timer_stop();
- #if !defined(CONFIG_CPU_SUBTYPE_SH7300) && !defined(CONFIG_CPU_SUBTYPE_SH7760)
- ctrl_outb(TMU_TOCR_INIT, TMU_TOCR);
- #endif
-@@ -211,13 +223,15 @@
- ctrl_outl(interval, TMU0_TCOR);
- ctrl_outl(interval, TMU0_TCNT);
-
-- ctrl_outb(TMU_TSTR_INIT, TMU_TSTR);
-+ tmu_timer_start();
-
- return 0;
- }
-
- struct sys_timer_ops tmu_timer_ops = {
- .init = tmu_timer_init,
-+ .start = tmu_timer_start,
-+ .stop = tmu_timer_stop,
- .get_frequency = tmu_timer_get_frequency,
- .get_offset = tmu_timer_get_offset,
- };
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/traps.c linux-2.6.17/arch/sh/kernel/traps.c
---- linux-2.6.17-vanilla/arch/sh/kernel/traps.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/traps.c 2006-07-12 16:54:22.000000000 +0000
-@@ -37,40 +37,15 @@
-
- #ifdef CONFIG_SH_KGDB
- #include <asm/kgdb.h>
--#define CHK_REMOTE_DEBUG(regs) \
--{ \
-- if ((kgdb_debug_hook != (kgdb_debug_hook_t *) NULL) && (!user_mode(regs))) \
-- { \
-- (*kgdb_debug_hook)(regs); \
-- } \
-+#define CHK_REMOTE_DEBUG(regs) \
-+{ \
-+ if (kgdb_debug_hook && !user_mode(regs))\
-+ (*kgdb_debug_hook)(regs); \
- }
- #else
- #define CHK_REMOTE_DEBUG(regs)
- #endif
-
--#define DO_ERROR(trapnr, signr, str, name, tsk) \
--asmlinkage void do_##name(unsigned long r4, unsigned long r5, \
-- unsigned long r6, unsigned long r7, \
-- struct pt_regs regs) \
--{ \
-- unsigned long error_code; \
-- \
-- /* Check if it's a DSP instruction */ \
-- if (is_dsp_inst(&regs)) { \
-- /* Enable DSP mode, and restart instruction. */ \
-- regs.sr |= SR_DSP; \
-- return; \
-- } \
-- \
-- asm volatile("stc r2_bank, %0": "=r" (error_code)); \
-- local_irq_enable(); \
-- tsk->thread.error_code = error_code; \
-- tsk->thread.trap_no = trapnr; \
-- CHK_REMOTE_DEBUG(&regs); \
-- force_sig(signr, tsk); \
-- die_if_no_fixup(str,&regs,error_code); \
--}
--
- #ifdef CONFIG_CPU_SH2
- #define TRAP_RESERVED_INST 4
- #define TRAP_ILLEGAL_SLOT_INST 6
-@@ -87,7 +62,7 @@
- #define VMALLOC_OFFSET (8*1024*1024)
- #define MODULE_RANGE (8*1024*1024)
-
--spinlock_t die_lock;
-+DEFINE_SPINLOCK(die_lock);
-
- void die(const char * str, struct pt_regs * regs, long err)
- {
-@@ -576,8 +551,117 @@
- #define is_dsp_inst(regs) (0)
- #endif /* CONFIG_SH_DSP */
-
--DO_ERROR(TRAP_RESERVED_INST, SIGILL, "reserved instruction", reserved_inst, current)
--DO_ERROR(TRAP_ILLEGAL_SLOT_INST, SIGILL, "illegal slot instruction", illegal_slot_inst, current)
-+extern int do_fpu_inst(unsigned short, struct pt_regs*);
-+
-+asmlinkage void do_reserved_inst(unsigned long r4, unsigned long r5,
-+ unsigned long r6, unsigned long r7,
-+ struct pt_regs regs)
-+{
-+ unsigned long error_code;
-+ struct task_struct *tsk = current;
-+
-+#ifdef CONFIG_SH_FPU_EMU
-+ unsigned short inst;
-+ int err;
-+
-+ get_user(inst, (unsigned short*)regs.pc);
-+
-+ err = do_fpu_inst(inst, &regs);
-+ if (!err) {
-+ regs.pc += 2;
-+ return;
-+ }
-+ /* not a FPU inst. */
-+#endif
-+
-+#ifdef CONFIG_SH_DSP
-+ /* Check if it's a DSP instruction */
-+ if (is_dsp_inst(&regs)) {
-+ /* Enable DSP mode, and restart instruction. */
-+ regs.sr |= SR_DSP;
-+ return;
-+ }
-+#endif
-+
-+ asm volatile("stc r2_bank, %0": "=r" (error_code));
-+ local_irq_enable();
-+ tsk->thread.error_code = error_code;
-+ tsk->thread.trap_no = TRAP_RESERVED_INST;
-+ CHK_REMOTE_DEBUG(&regs);
-+ force_sig(SIGILL, tsk);
-+ die_if_no_fixup("reserved instruction", &regs, error_code);
-+}
-+
-+#ifdef CONFIG_SH_FPU_EMU
-+static int emulate_branch(unsigned short inst, struct pt_regs* regs)
-+{
-+ /*
-+ * bfs: 8fxx: PC+=d*2+4;
-+ * bts: 8dxx: PC+=d*2+4;
-+ * bra: axxx: PC+=D*2+4;
-+ * bsr: bxxx: PC+=D*2+4 after PR=PC+4;
-+ * braf:0x23: PC+=Rn*2+4;
-+ * bsrf:0x03: PC+=Rn*2+4 after PR=PC+4;
-+ * jmp: 4x2b: PC=Rn;
-+ * jsr: 4x0b: PC=Rn after PR=PC+4;
-+ * rts: 000b: PC=PR;
-+ */
-+ if ((inst & 0xfd00) == 0x8d00) {
-+ regs->pc += SH_PC_8BIT_OFFSET(inst);
-+ return 0;
-+ }
-+
-+ if ((inst & 0xe000) == 0xa000) {
-+ regs->pc += SH_PC_12BIT_OFFSET(inst);
-+ return 0;
-+ }
-+
-+ if ((inst & 0xf0df) == 0x0003) {
-+ regs->pc += regs->regs[(inst & 0x0f00) >> 8] + 4;
-+ return 0;
-+ }
-+
-+ if ((inst & 0xf0df) == 0x400b) {
-+ regs->pc = regs->regs[(inst & 0x0f00) >> 8];
-+ return 0;
-+ }
-+
-+ if ((inst & 0xffff) == 0x000b) {
-+ regs->pc = regs->pr;
-+ return 0;
-+ }
-+
-+ return 1;
-+}
-+#endif
-+
-+asmlinkage void do_illegal_slot_inst(unsigned long r4, unsigned long r5,
-+ unsigned long r6, unsigned long r7,
-+ struct pt_regs regs)
-+{
-+ unsigned long error_code;
-+ struct task_struct *tsk = current;
-+#ifdef CONFIG_SH_FPU_EMU
-+ unsigned short inst;
-+
-+ get_user(inst, (unsigned short *)regs.pc + 1);
-+ if (!do_fpu_inst(inst, &regs)) {
-+ get_user(inst, (unsigned short *)regs.pc);
-+ if (!emulate_branch(inst, &regs))
-+ return;
-+ /* fault in branch.*/
-+ }
-+ /* not a FPU inst. */
-+#endif
-+
-+ asm volatile("stc r2_bank, %0": "=r" (error_code));
-+ local_irq_enable();
-+ tsk->thread.error_code = error_code;
-+ tsk->thread.trap_no = TRAP_RESERVED_INST;
-+ CHK_REMOTE_DEBUG(&regs);
-+ force_sig(SIGILL, tsk);
-+ die_if_no_fixup("illegal slot instruction", &regs, error_code);
-+}
-
- asmlinkage void do_exception_error(unsigned long r4, unsigned long r5,
- unsigned long r6, unsigned long r7,
-@@ -635,14 +719,16 @@
- exception_handling_table[TRAP_ILLEGAL_SLOT_INST]
- = (void *)do_illegal_slot_inst;
-
--#ifdef CONFIG_CPU_SH4
-- if (!(cpu_data->flags & CPU_HAS_FPU)) {
-- /* For SH-4 lacking an FPU, treat floating point instructions
-- as reserved. */
-- /* entry 64 corresponds to EXPEVT=0x800 */
-- exception_handling_table[64] = (void *)do_reserved_inst;
-- exception_handling_table[65] = (void *)do_illegal_slot_inst;
-- }
-+#if defined(CONFIG_CPU_SH4) && !defined(CONFIG_SH_FPU) || \
-+ defined(CONFIG_SH_FPU_EMU)
-+ /*
-+ * For SH-4 lacking an FPU, treat floating point instructions as
-+ * reserved. They'll be handled in the math-emu case, or faulted on
-+ * otherwise.
-+ */
-+ /* entry 64 corresponds to EXPEVT=0x800 */
-+ exception_handling_table[64] = (void *)do_reserved_inst;
-+ exception_handling_table[65] = (void *)do_illegal_slot_inst;
- #endif
-
- /* Setup VBR for boot cpu */
-diff -ruN linux-2.6.17-vanilla/arch/sh/kernel/vmlinux.lds.S linux-2.6.17/arch/sh/kernel/vmlinux.lds.S
---- linux-2.6.17-vanilla/arch/sh/kernel/vmlinux.lds.S 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/kernel/vmlinux.lds.S 2006-07-12 16:54:22.000000000 +0000
-@@ -63,8 +63,6 @@
-
- . = ALIGN(8192); /* init_task */
- .data.init_task : { *(.data.init_task) }
-- /* stack */
-- .stack : { stack = .; _stack = .; }
-
- . = ALIGN(4096); /* Init code and data */
- __init_begin = .;
-diff -ruN linux-2.6.17-vanilla/arch/sh/lib/CVS/Entries linux-2.6.17/arch/sh/lib/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/lib/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/lib/CVS/Entries 2006-07-12 16:54:22.000000000 +0000
-@@ -0,0 +1,13 @@
-+/Makefile/1.9/Tue Jun 29 01:59:02 2004/-ko/
-+/checksum.S/1.3/Fri Sep 2 23:02:18 2005/-ko/
-+/delay.c/1.5/Mon Aug 29 21:01:18 2005/-ko/
-+/div64-generic.c/1.2/Sat Sep 6 00:27:16 2003//
-+/div64.S/1.2/Sat Jul 19 22:56:20 2003//
-+/memchr.S/1.2/Wed Apr 7 20:18:39 2004/-ko/
-+/memcpy-sh4.S/1.1/Tue Jun 29 01:59:02 2004/-ko/
-+/memcpy.S/1.2/Wed Apr 7 20:18:39 2004/-ko/
-+/memmove.S/1.4/Tue Apr 20 13:06:06 2004/-ko/
-+/memset.S/1.3/Mon Jul 25 00:55:36 2005/-ko/
-+/strlen.S/1.2/Wed Apr 7 20:18:39 2004/-ko/
-+/udivdi3.c/1.2/Sat Jul 19 22:56:20 2003//
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/lib/CVS/Repository linux-2.6.17/arch/sh/lib/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/lib/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/lib/CVS/Repository 2006-07-12 16:54:22.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/lib
-diff -ruN linux-2.6.17-vanilla/arch/sh/lib/CVS/Root linux-2.6.17/arch/sh/lib/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/lib/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/lib/CVS/Root 2006-07-12 16:54:22.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/lib/checksum.S linux-2.6.17/arch/sh/lib/checksum.S
---- linux-2.6.17-vanilla/arch/sh/lib/checksum.S 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/lib/checksum.S 2006-07-12 16:54:22.000000000 +0000
-@@ -202,8 +202,9 @@
- cmp/pz r6 ! Jump if we had at least two bytes.
- bt/s 1f
- clrt
-+ add #2,r6 ! r6 was < 2. Deal with it.
- bra 4f
-- add #2,r6 ! r6 was < 2. Deal with it.
-+ mov r6,r2
-
- 3: ! Handle different src and dest alignments.
- ! This is not common, so simple byte by byte copy will do.
-diff -ruN linux-2.6.17-vanilla/arch/sh/lib/memcpy-sh4.S linux-2.6.17/arch/sh/lib/memcpy-sh4.S
---- linux-2.6.17-vanilla/arch/sh/lib/memcpy-sh4.S 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/lib/memcpy-sh4.S 2006-07-12 16:54:22.000000000 +0000
-@@ -20,7 +20,7 @@
- !
- ! GHIJ KLMN OPQR --> ...G HIJK LMNO PQR.
- !
--
-+
- ! Size is 16 or greater, and may have trailing bytes
-
- .balign 32
-@@ -39,7 +39,7 @@
- ! 6 cycles, 4 bytes per iteration
- 3: mov.l @(r0,r5),r1 ! 21 LS (latency=2) ! NMLK
- mov r7, r3 ! 5 MT (latency=0) ! RQPO
--
-+
- cmp/hi r2,r0 ! 57 MT
- shll16 r3 ! 103 EX
-
-@@ -48,7 +48,7 @@
-
- shlr8 r6 ! 106 EX ! xNML
- mov r1, r7 ! 5 MT (latency=0)
--
-+
- or r6,r3 ! 82 EX ! ONML
- bt/s 3b ! 109 BR
-
-@@ -81,7 +81,7 @@
-
- 8: cmp/hi r2,r0 ! 57 MT
- mov.b @(r0,r5),r1 ! 20 LS (latency=2)
--
-+
- bt/s 8b ! 109 BR
-
- mov.b r1,@-r0 ! 29 LS
-@@ -89,11 +89,11 @@
- 9: rts
- nop
-
--
-+
- !
- ! GHIJ KLMN OPQR --> .GHI JKLM NOPQ R...
- !
--
-+
- ! Size is 16 or greater, and may have trailing bytes
-
- .balign 32
-@@ -112,7 +112,7 @@
- ! 6 cycles, 4 bytes per iteration
- 3: mov.l @(r0,r5),r1 ! 21 LS (latency=2) ! NMLK
- mov r7, r3 ! 5 MT (latency=0) ! RQPO
--
-+
- cmp/hi r2,r0 ! 57 MT
- shll8 r3 ! 102 EX ! QPOx
-
-@@ -121,7 +121,7 @@
-
- shlr8 r6 ! 106 EX ! xxxN
- mov r1, r7 ! 5 MT (latency=0)
--
-+
- or r6,r3 ! 82 EX ! QPON
- bt/s 3b ! 109 BR
-
-@@ -149,14 +149,14 @@
-
- 8: cmp/hi r2,r0 ! 57 MT
- mov.b @(r0,r5),r1 ! 20 LS (latency=2)
--
-+
- bt/s 8b ! 109 BR
-
- mov.b r1,@-r0 ! 29 LS
-
- 9: rts
- nop
--
-+
- ENTRY(memcpy)
-
- ! Calculate the invariants which will be used in the remainder
-@@ -168,7 +168,7 @@
- ! r0 --> [ ... ] r0+r5 --> [ ... ]
- !
- !
--
-+
- ! Short circuit the common case of src, dst and len being 32 bit aligned
- ! and test for zero length move
-
-@@ -201,7 +201,7 @@
- ! 36 82 49-50 66-70 80-85
- ! However the penalty for getting it 'wrong' is much higher for long word
- ! aligned data (and this is more common), so use a value of 16.
--
-+
- cmp/gt r6,r1 ! 56 MT
-
- add #-1,r5 ! 50 EX
-@@ -212,7 +212,7 @@
-
- mov.b @(r0,r5),r1 ! 20 LS (latency=2)
- bf/s 4f ! 111 BR
--
-+
- add #-1,r3 ! 50 EX
- tst r6, r6 ! 86 MT
-
-@@ -247,7 +247,7 @@
- bt/s 2f ! 111 BR
- and r0,r3 ! 78 EX
-
-- ! 3 cycles, 1 byte per iteration
-+ ! 3 cycles, 1 byte per iteration
- 1: dt r3 ! 67 EX
- mov.b @(r0,r5),r1 ! 19 LS (latency=2)
-
-@@ -257,10 +257,10 @@
- mov.b r1,@-r0 ! 28 LS
-
- 2: add #1, r5 ! 79 EX
--
-+
- ! Now select the appropriate bulk transfer code based on relative
- ! alignment of src and dst.
--
-+
- mov r0, r3 ! 5 MT (latency=0)
-
- mov r5, r0 ! 5 MT (latency=0)
-@@ -270,7 +270,7 @@
- mov #64, r7 ! 6 EX
-
- ! bit 0 clear
--
-+
- cmp/ge r7, r6 ! 55 MT
-
- bt/s 2f ! 111 BR
-@@ -289,7 +289,7 @@
-
- bra .Lcase2b
- nop
--
-+
- ! bit 0 set
- 1: tst #2, r0 ! 87 MT
-
-@@ -298,7 +298,7 @@
-
- bra .Lcase3
- nop
--
-+
-
- !
- ! GHIJ KLMN OPQR --> GHIJ KLMN OPQR
-@@ -306,7 +306,7 @@
-
- ! src, dst and size are all long word aligned
- ! size is non-zero
--
-+
- .balign 32
- .Lcase00:
- mov #64, r1 ! 6 EX
-@@ -319,7 +319,7 @@
- shlr2 r6 ! 105 EX
-
- shlr r6 ! 104 EX
-- mov.l @(r0, r5), r1 ! 21 LS (latency=2)
-+ mov.l @(r0, r5), r1 ! 21 LS (latency=2)
-
- bf/s 4f ! 111 BR
- add #-8, r3 ! 50 EX
-@@ -343,7 +343,7 @@
- 5: rts
- nop
-
--
-+
- ! Size is 16 or greater and less than 64, but may have trailing bytes
-
- .balign 32
-@@ -351,7 +351,7 @@
- add #-4, r5 ! 50 EX
- mov r4, r7 ! 5 MT (latency=0)
-
-- mov.l @(r0, r5), r1 ! 21 LS (latency=2)
-+ mov.l @(r0, r5), r1 ! 21 LS (latency=2)
- mov #4, r2 ! 6 EX
-
- add #11, r7 ! 50 EX
-@@ -377,7 +377,7 @@
- ! Copy the final 0-3 bytes
-
- add #3,r5 ! 50 EX
--
-+
- cmp/eq r0, r4 ! 54 MT
- add #-10, r7 ! 50 EX
-
-@@ -386,7 +386,7 @@
- ! 3 cycles, 1 byte per iteration
- 1: mov.b @(r0,r5),r1 ! 19 LS
- cmp/hi r7,r0 ! 57 MT
--
-+
- bt/s 1b ! 111 BR
- mov.b r1,@-r0 ! 28 LS
-
-@@ -427,10 +427,10 @@
- add #8, r3 ! 50 EX
-
- tst #0x18, r0 ! 87 MT
--
-+
- bt/s 1f ! 109 BR
- mov.l r1,@-r0 ! 30 LS
--
-+
- ! 4 cycles, 2 long words per iteration
- 3: mov.l @(r0, r5), r1 ! 21 LS (latency=2)
-
-@@ -450,7 +450,7 @@
- ! We could do this with the four scratch registers, but if src
- ! and dest hit the same cache line, this will thrash, so make
- ! use of additional registers.
-- !
-+ !
- ! We also need r0 as a temporary (for movca), so 'undo' the invariant:
- ! r5: src (was r0+r5)
- ! r1: dest (was r0)
-@@ -459,14 +459,14 @@
- !
- 1: mov.l r8, @-r15 ! 30 LS
- add r0, r5 ! 49 EX
--
-+
- mov.l r9, @-r15 ! 30 LS
- mov r0, r1 ! 5 MT (latency=0)
--
-+
- mov.l r10, @-r15 ! 30 LS
- add #-0x1c, r5 ! 50 EX
--
-- mov.l r11, @-r15 ! 30 LS
-+
-+ mov.l r11, @-r15 ! 30 LS
-
- ! 16 cycles, 32 bytes per iteration
- 2: mov.l @(0x00,r5),r0 ! 18 LS (latency=2)
-@@ -510,10 +510,10 @@
- sub r4, r1 ! 75 EX (len remaining)
-
- ! number of trailing bytes is non-zero
-- !
-+ !
- ! invariants restored (r5 already decremented by 4)
- ! also r1=num bytes remaining
--
-+
- mov #4, r2 ! 6 EX
- mov r4, r7 ! 5 MT (latency=0)
-
-@@ -523,7 +523,7 @@
- bf/s 5f ! 108 BR
- add #11, r7 ! 50 EX
-
-- mov.l @(r0, r5), r6 ! 21 LS (latency=2)
-+ mov.l @(r0, r5), r6 ! 21 LS (latency=2)
- tst r2, r1 ! 86 MT
-
- mov r5, r3 ! 5 MT (latency=0)
-@@ -553,11 +553,11 @@
-
- bt 9f ! 110 BR
- add #3,r5 ! 50 EX
--
-+
- ! 3 cycles, 1 byte per iteration
- 1: mov.b @(r0,r5),r1 ! 19 LS
- cmp/hi r7,r0 ! 57 MT
--
-+
- bt/s 1b ! 111 BR
- mov.b r1,@-r0 ! 28 LS
-
-@@ -567,7 +567,7 @@
- !
- ! GHIJ KLMN OPQR --> ..GH IJKL MNOP QR..
- !
--
-+
- .balign 32
- .Lcase2:
- ! Size is 16 or greater and less then 64, but may have trailing bytes
-@@ -608,21 +608,21 @@
-
- cmp/eq r3, r0 ! 54 MT
- add #0x1f, r2 ! 50 EX
--
-+
- add #-2, r5 ! 50 EX
- bt/s 1f ! 110 BR
- and r1, r2 ! 78 EX
--
-+
- ! Copy a short word one at a time until we are cache line aligned
- ! Normal values: r0, r2, r3, r4
- ! Unused: r1, r6, r7
- ! Mod: r5 (=r5-2)
- !
- add #2, r3 ! 50 EX
--
-+
- 2: mov.w @(r0,r5),r1 ! 20 LS (latency=2)
- cmp/eq r3,r0 ! 54 MT
--
-+
- bf/s 2b ! 111 BR
-
- mov.w r1,@-r0 ! 29 LS
-@@ -635,7 +635,7 @@
- ! We could do this with the four scratch registers, but if src
- ! and dest hit the same cache line, this will thrash, so make
- ! use of additional registers.
-- !
-+ !
- ! We also need r0 as a temporary (for movca), so 'undo' the invariant:
- ! r5: src (was r0+r5)
- ! r1: dest (was r0)
-@@ -644,16 +644,16 @@
- !
- 1: mov.l r8, @-r15 ! 30 LS
- add r0, r5 ! 49 EX
--
-+
- mov.l r9, @-r15 ! 30 LS
- mov r0, r1 ! 5 MT (latency=0)
--
-+
- mov.l r10, @-r15 ! 30 LS
- add #-0x1e, r5 ! 50 EX
--
-- mov.l r11, @-r15 ! 30 LS
--
-- mov.l r12, @-r15 ! 30 LS
-+
-+ mov.l r11, @-r15 ! 30 LS
-+
-+ mov.l r12, @-r15 ! 30 LS
-
- ! 17 cycles, 32 bytes per iteration
- #ifdef CONFIG_CPU_LITTLE_ENDIAN
-@@ -690,7 +690,7 @@
- xtrct r12, r11 ! 48 EX
-
- mov.l r6, @(0x08,r1) ! 33 LS
--
-+
- mov.l r7, @(0x0c,r1) ! 33 LS
-
- mov.l r8, @(0x10,r1) ! 33 LS
-@@ -739,7 +739,7 @@
-
- mov.l r6, @(0x18,r1) ! 33 LS
- xtrct r12, r11 ! 48 EX
--
-+
- mov.l r7, @(0x14,r1) ! 33 LS
-
- mov.l r8, @(0x10,r1) ! 33 LS
-@@ -770,7 +770,7 @@
- 1: mov.l @r15+, r8 ! 15 LS
-
- add #0x1e, r5 ! 50 EX
--
-+
- ! Finish off a short word at a time
- ! r5 must be invariant - 2
- 10: mov r4,r2 ! 5 MT (latency=0)
-@@ -780,7 +780,7 @@
- bf/s 1f ! 109 BR
-
- add #2, r2 ! 50 EX
--
-+
- 3: mov.w @(r0,r5),r1 ! 20 LS
- cmp/hi r2,r0 ! 57 MT
-
-@@ -788,7 +788,7 @@
-
- mov.w r1,@-r0 ! 29 LS
- 1:
--
-+
- !
- ! Finally, copy the last byte if necessary
- cmp/eq r4,r0 ! 54 MT
-diff -ruN linux-2.6.17-vanilla/arch/sh/lib/memmove.S linux-2.6.17/arch/sh/lib/memmove.S
---- linux-2.6.17-vanilla/arch/sh/lib/memmove.S 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/lib/memmove.S 2006-07-12 16:54:22.000000000 +0000
-@@ -1,4 +1,4 @@
--/* $Id: memmove.S,v 1.2 2001/07/27 11:51:09 gniibe Exp $
-+/* $Id: memmove.S,v 1.3 2003/05/04 19:29:54 lethal Exp $
- *
- * "memmove" implementation of SuperH
- *
-diff -ruN linux-2.6.17-vanilla/arch/sh/lib/memset.S linux-2.6.17/arch/sh/lib/memset.S
---- linux-2.6.17-vanilla/arch/sh/lib/memset.S 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/lib/memset.S 2006-07-12 16:54:23.000000000 +0000
-@@ -29,6 +29,7 @@
- bf/s 1b
- mov.b r5,@-r4
- 2: ! make VVVV
-+ extu.b r5,r5
- swap.b r5,r0 ! V0
- or r0,r5 ! VV
- swap.w r5,r0 ! VV00
-diff -ruN linux-2.6.17-vanilla/arch/sh/math-emu/CVS/Entries linux-2.6.17/arch/sh/math-emu/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/math-emu/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/math-emu/CVS/Entries 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1,4 @@
-+/Makefile/1.1/Wed Jul 12 10:35:55 2006/-ko/
-+/math.c/1.1/Wed Jul 12 10:35:55 2006/-ko/
-+/sfp-util.h/1.1/Wed Jul 12 10:35:55 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/math-emu/CVS/Repository linux-2.6.17/arch/sh/math-emu/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/math-emu/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/math-emu/CVS/Repository 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/math-emu
-diff -ruN linux-2.6.17-vanilla/arch/sh/math-emu/CVS/Root linux-2.6.17/arch/sh/math-emu/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/math-emu/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/math-emu/CVS/Root 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/math-emu/Makefile linux-2.6.17/arch/sh/math-emu/Makefile
---- linux-2.6.17-vanilla/arch/sh/math-emu/Makefile 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/math-emu/Makefile 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1 @@
-+obj-y := math.o
-diff -ruN linux-2.6.17-vanilla/arch/sh/math-emu/math.c linux-2.6.17/arch/sh/math-emu/math.c
---- linux-2.6.17-vanilla/arch/sh/math-emu/math.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/math-emu/math.c 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1,624 @@
-+/*
-+ * arch/sh/math-emu/math.c
-+ *
-+ * Copyright (C) 2006 Takashi YOSHII <takasi-y@ops.dti.ne.jp>
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ */
-+#include <linux/config.h>
-+#include <linux/kernel.h>
-+#include <linux/errno.h>
-+#include <linux/types.h>
-+#include <linux/sched.h>
-+#include <linux/signal.h>
-+
-+#include <asm/system.h>
-+#include <asm/uaccess.h>
-+#include <asm/processor.h>
-+#include <asm/io.h>
-+
-+#include "sfp-util.h"
-+#include <math-emu/soft-fp.h>
-+#include <math-emu/single.h>
-+#include <math-emu/double.h>
-+
-+#define FPUL (fregs->fpul)
-+#define FPSCR (fregs->fpscr)
-+#define FPSCR_RM (FPSCR&3)
-+#define FPSCR_DN ((FPSCR>>18)&1)
-+#define FPSCR_PR ((FPSCR>>19)&1)
-+#define FPSCR_SZ ((FPSCR>>20)&1)
-+#define FPSCR_FR ((FPSCR>>21)&1)
-+#define FPSCR_MASK 0x003fffffUL
-+
-+#define BANK(n) (n^(FPSCR_FR?16:0))
-+#define FR ((unsigned long*)(fregs->fp_regs))
-+#define FR0 (FR[BANK(0)])
-+#define FRn (FR[BANK(n)])
-+#define FRm (FR[BANK(m)])
-+#define DR ((unsigned long long*)(fregs->fp_regs))
-+#define DRn (DR[BANK(n)/2])
-+#define DRm (DR[BANK(m)/2])
-+
-+#define XREG(n) (n^16)
-+#define XFn (FR[BANK(XREG(n))])
-+#define XFm (FR[BANK(XREG(m))])
-+#define XDn (DR[BANK(XREG(n))/2])
-+#define XDm (DR[BANK(XREG(m))/2])
-+
-+#define R0 (regs->regs[0])
-+#define Rn (regs->regs[n])
-+#define Rm (regs->regs[m])
-+
-+#define WRITE(d,a) ({if(put_user(d, (typeof (d)*)a)) return -EFAULT;})
-+#define READ(d,a) ({if(get_user(d, (typeof (d)*)a)) return -EFAULT;})
-+
-+#define PACK_S(r,f) FP_PACK_SP(&r,f)
-+#define UNPACK_S(f,r) FP_UNPACK_SP(f,&r)
-+#define PACK_D(r,f) \
-+ {u32 t[2]; FP_PACK_DP(t,f); ((u32*)&r)[0]=t[1]; ((u32*)&r)[1]=t[0];}
-+#define UNPACK_D(f,r) \
-+ {u32 t[2]; t[0]=((u32*)&r)[1]; t[1]=((u32*)&r)[0]; FP_UNPACK_DP(f,t);}
-+
-+// 2 args instructions.
-+#define BOTH_PRmn(op,x) \
-+ FP_DECL_EX; if(FPSCR_PR) op(D,x,DRm,DRn); else op(S,x,FRm,FRn);
-+
-+#define CMP_X(SZ,R,M,N) do{ \
-+ FP_DECL_##SZ(Fm); FP_DECL_##SZ(Fn); \
-+ UNPACK_##SZ(Fm, M); UNPACK_##SZ(Fn, N); \
-+ FP_CMP_##SZ(R, Fn, Fm, 2); }while(0)
-+#define EQ_X(SZ,R,M,N) do{ \
-+ FP_DECL_##SZ(Fm); FP_DECL_##SZ(Fn); \
-+ UNPACK_##SZ(Fm, M); UNPACK_##SZ(Fn, N); \
-+ FP_CMP_EQ_##SZ(R, Fn, Fm); }while(0)
-+#define CMP(OP) ({ int r; BOTH_PRmn(OP##_X,r); r; })
-+
-+static int
-+fcmp_gt(struct sh_fpu_soft_struct *fregs, struct pt_regs *regs, int m, int n)
-+{
-+ if (CMP(CMP) > 0)
-+ regs->sr |= 1;
-+ else
-+ regs->sr &= ~1;
-+
-+ return 0;
-+}
-+
-+static int
-+fcmp_eq(struct sh_fpu_soft_struct *fregs, struct pt_regs *regs, int m, int n)
-+{
-+ if (CMP(CMP /*EQ*/) == 0)
-+ regs->sr |= 1;
-+ else
-+ regs->sr &= ~1;
-+ return 0;
-+}
-+
-+#define ARITH_X(SZ,OP,M,N) do{ \
-+ FP_DECL_##SZ(Fm); FP_DECL_##SZ(Fn); FP_DECL_##SZ(Fr); \
-+ UNPACK_##SZ(Fm, M); UNPACK_##SZ(Fn, N); \
-+ FP_##OP##_##SZ(Fr, Fn, Fm); \
-+ PACK_##SZ(N, Fr); }while(0)
-+
-+static int
-+fadd(struct sh_fpu_soft_struct *fregs, struct pt_regs *regs, int m, int n)
-+{
-+ BOTH_PRmn(ARITH_X, ADD);
-+ return 0;
-+}
-+
-+static int
-+fsub(struct sh_fpu_soft_struct *fregs, struct pt_regs *regs, int m, int n)
-+{
-+ BOTH_PRmn(ARITH_X, SUB);
-+ return 0;
-+}
-+
-+static int
-+fmul(struct sh_fpu_soft_struct *fregs, struct pt_regs *regs, int m, int n)
-+{
-+ BOTH_PRmn(ARITH_X, MUL);
-+ return 0;
-+}
-+
-+static int
-+fdiv(struct sh_fpu_soft_struct *fregs, struct pt_regs *regs, int m, int n)
-+{
-+ BOTH_PRmn(ARITH_X, DIV);
-+ return 0;
-+}
-+
-+static int
-+fmac(struct sh_fpu_soft_struct *fregs, struct pt_regs *regs, int m, int n)
-+{
-+ FP_DECL_EX;
-+ FP_DECL_S(Fr);
-+ FP_DECL_S(Ft);
-+ FP_DECL_S(F0);
-+ FP_DECL_S(Fm);
-+ FP_DECL_S(Fn);
-+ UNPACK_S(F0, FR0);
-+ UNPACK_S(Fm, FRm);
-+ UNPACK_S(Fn, FRn);
-+ FP_MUL_S(Ft, Fm, F0);
-+ FP_ADD_S(Fr, Fn, Ft);
-+ PACK_S(FRn, Fr);
-+ return 0;
-+}
-+
-+// to process fmov's extention (odd n for DR access XD).
-+#define FMOV_EXT(x) if(x&1) x+=16-1
-+
-+static int
-+fmov_idx_reg(struct sh_fpu_soft_struct *fregs, struct pt_regs *regs, int m,
-+ int n)
-+{
-+ if (FPSCR_SZ) {
-+ FMOV_EXT(n);
-+ READ(FRn, Rm + R0 + 4);
-+ n++;
-+ READ(FRn, Rm + R0);
-+ } else {
-+ READ(FRn, Rm + R0);
-+ }
-+
-+ return 0;
-+}
-+
-+static int
-+fmov_mem_reg(struct sh_fpu_soft_struct *fregs, struct pt_regs *regs, int m,
-+ int n)
-+{
-+ if (FPSCR_SZ) {
-+ FMOV_EXT(n);
-+ READ(FRn, Rm + 4);
-+ n++;
-+ READ(FRn, Rm);
-+ } else {
-+ READ(FRn, Rm);
-+ }
-+
-+ return 0;
-+}
-+
-+static int
-+fmov_inc_reg(struct sh_fpu_soft_struct *fregs, struct pt_regs *regs, int m,
-+ int n)
-+{
-+ if (FPSCR_SZ) {
-+ FMOV_EXT(n);
-+ READ(FRn, Rm + 4);
-+ n++;
-+ READ(FRn, Rm);
-+ Rm += 8;
-+ } else {
-+ READ(FRn, Rm);
-+ Rm += 4;
-+ }
-+
-+ return 0;
-+}
-+
-+static int
-+fmov_reg_idx(struct sh_fpu_soft_struct *fregs, struct pt_regs *regs, int m,
-+ int n)
-+{
-+ if (FPSCR_SZ) {
-+ FMOV_EXT(m);
-+ WRITE(FRm, Rn + R0 + 4);
-+ m++;
-+ WRITE(FRm, Rn + R0);
-+ } else {
-+ WRITE(FRm, Rn + R0);
-+ }
-+
-+ return 0;
-+}
-+
-+static int
-+fmov_reg_mem(struct sh_fpu_soft_struct *fregs, struct pt_regs *regs, int m,
-+ int n)
-+{
-+ if (FPSCR_SZ) {
-+ FMOV_EXT(m);
-+ WRITE(FRm, Rn + 4);
-+ m++;
-+ WRITE(FRm, Rn);
-+ } else {
-+ WRITE(FRm, Rn);
-+ }
-+
-+ return 0;
-+}
-+
-+static int
-+fmov_reg_dec(struct sh_fpu_soft_struct *fregs, struct pt_regs *regs, int m,
-+ int n)
-+{
-+ if (FPSCR_SZ) {
-+ FMOV_EXT(m);
-+ Rn -= 8;
-+ WRITE(FRm, Rn + 4);
-+ m++;
-+ WRITE(FRm, Rn);
-+ } else {
-+ Rn -= 4;
-+ WRITE(FRm, Rn);
-+ }
-+
-+ return 0;
-+}
-+
-+static int
-+fmov_reg_reg(struct sh_fpu_soft_struct *fregs, struct pt_regs *regs, int m,
-+ int n)
-+{
-+ if (FPSCR_SZ) {
-+ FMOV_EXT(m);
-+ FMOV_EXT(n);
-+ DRn = DRm;
-+ } else {
-+ FRn = FRm;
-+ }
-+
-+ return 0;
-+}
-+
-+static int
-+fnop_mn(struct sh_fpu_soft_struct *fregs, struct pt_regs *regs, int m, int n)
-+{
-+ return -EINVAL;
-+}
-+
-+// 1 arg instructions.
-+#define NOTYETn(i) static int i(struct sh_fpu_soft_struct *fregs, int n) \
-+ { printk( #i " not yet done.\n"); return 0; }
-+
-+NOTYETn(ftrv)
-+NOTYETn(fsqrt)
-+NOTYETn(fipr)
-+NOTYETn(fsca)
-+NOTYETn(fsrra)
-+
-+#define EMU_FLOAT_X(SZ,N) do { \
-+ FP_DECL_##SZ(Fn); \
-+ FP_FROM_INT_##SZ(Fn, FPUL, 32, int); \
-+ PACK_##SZ(N, Fn); }while(0)
-+static int ffloat(struct sh_fpu_soft_struct *fregs, int n)
-+{
-+ FP_DECL_EX;
-+
-+ if (FPSCR_PR)
-+ EMU_FLOAT_X(D, DRn);
-+ else
-+ EMU_FLOAT_X(S, FRn);
-+
-+ return 0;
-+}
-+
-+#define EMU_FTRC_X(SZ,N) do { \
-+ FP_DECL_##SZ(Fn); \
-+ UNPACK_##SZ(Fn, N); \
-+ FP_TO_INT_##SZ(FPUL, Fn, 32, 1); }while(0)
-+static int ftrc(struct sh_fpu_soft_struct *fregs, int n)
-+{
-+ FP_DECL_EX;
-+
-+ if (FPSCR_PR)
-+ EMU_FTRC_X(D, DRn);
-+ else
-+ EMU_FTRC_X(S, FRn);
-+
-+ return 0;
-+}
-+
-+static int fcnvsd(struct sh_fpu_soft_struct *fregs, int n)
-+{
-+ FP_DECL_EX;
-+ FP_DECL_S(Fn);
-+ FP_DECL_D(Fr);
-+ UNPACK_S(Fn, FPUL);
-+ FP_CONV(D, S, 2, 1, Fr, Fn);
-+ PACK_D(DRn, Fr);
-+ return 0;
-+}
-+
-+static int fcnvds(struct sh_fpu_soft_struct *fregs, int n)
-+{
-+ FP_DECL_EX;
-+ FP_DECL_D(Fn);
-+ FP_DECL_S(Fr);
-+ UNPACK_D(Fn, DRn);
-+ FP_CONV(S, D, 1, 2, Fr, Fn);
-+ PACK_S(FPUL, Fr);
-+ return 0;
-+}
-+
-+static int fxchg(struct sh_fpu_soft_struct *fregs, int flag)
-+{
-+ FPSCR ^= flag;
-+ return 0;
-+}
-+
-+static int fsts(struct sh_fpu_soft_struct *fregs, int n)
-+{
-+ FRn = FPUL;
-+ return 0;
-+}
-+
-+static int flds(struct sh_fpu_soft_struct *fregs, int n)
-+{
-+ FPUL = FRn;
-+ return 0;
-+}
-+
-+static int fneg(struct sh_fpu_soft_struct *fregs, int n)
-+{
-+ FRn ^= (1 << (_FP_W_TYPE_SIZE - 1));
-+ return 0;
-+}
-+
-+static int fabs(struct sh_fpu_soft_struct *fregs, int n)
-+{
-+ FRn &= ~(1 << (_FP_W_TYPE_SIZE - 1));
-+ return 0;
-+}
-+
-+static int fld0(struct sh_fpu_soft_struct *fregs, int n)
-+{
-+ FRn = 0;
-+ return 0;
-+}
-+
-+static int fld1(struct sh_fpu_soft_struct *fregs, int n)
-+{
-+ FRn = (_FP_EXPBIAS_S << (_FP_FRACBITS_S - 1));
-+ return 0;
-+}
-+
-+static int fnop_n(struct sh_fpu_soft_struct *fregs, int n)
-+{
-+ return -EINVAL;
-+}
-+
-+/// Instruction decoders.
-+
-+static int id_fxfd(struct sh_fpu_soft_struct *, int);
-+static int id_fnxd(struct sh_fpu_soft_struct *, struct pt_regs *, int, int);
-+
-+static int (*fnxd[])(struct sh_fpu_soft_struct *, int) = {
-+ fsts, flds, ffloat, ftrc, fneg, fabs, fsqrt, fsrra,
-+ fld0, fld1, fcnvsd, fcnvds, fnop_n, fnop_n, fipr, id_fxfd
-+};
-+
-+static int (*fnmx[])(struct sh_fpu_soft_struct *, struct pt_regs *, int, int) = {
-+ fadd, fsub, fmul, fdiv, fcmp_eq, fcmp_gt, fmov_idx_reg, fmov_reg_idx,
-+ fmov_mem_reg, fmov_inc_reg, fmov_reg_mem, fmov_reg_dec,
-+ fmov_reg_reg, id_fnxd, fmac, fnop_mn};
-+
-+static int id_fxfd(struct sh_fpu_soft_struct *fregs, int x)
-+{
-+ const int flag[] = { FPSCR_SZ, FPSCR_PR, FPSCR_FR, 0 };
-+ switch (x & 3) {
-+ case 3:
-+ fxchg(fregs, flag[x >> 2]);
-+ break;
-+ case 1:
-+ ftrv(fregs, x - 1);
-+ break;
-+ default:
-+ fsca(fregs, x);
-+ }
-+ return 0;
-+}
-+
-+static int
-+id_fnxd(struct sh_fpu_soft_struct *fregs, struct pt_regs *regs, int x, int n)
-+{
-+ return (fnxd[x])(fregs, n);
-+}
-+
-+static int
-+id_fnmx(struct sh_fpu_soft_struct *fregs, struct pt_regs *regs, u16 code)
-+{
-+ int n = (code >> 8) & 0xf, m = (code >> 4) & 0xf, x = code & 0xf;
-+ return (fnmx[x])(fregs, regs, m, n);
-+}
-+
-+static int
-+id_sys(struct sh_fpu_soft_struct *fregs, struct pt_regs *regs, u16 code)
-+{
-+ int n = ((code >> 8) & 0xf);
-+ unsigned long *reg = (code & 0x0010) ? &FPUL : &FPSCR;
-+
-+ switch (code & 0xf0ff) {
-+ case 0x005a:
-+ case 0x006a:
-+ Rn = *reg;
-+ break;
-+ case 0x405a:
-+ case 0x406a:
-+ *reg = Rn;
-+ break;
-+ case 0x4052:
-+ case 0x4062:
-+ Rn -= 4;
-+ WRITE(*reg, Rn);
-+ break;
-+ case 0x4056:
-+ case 0x4066:
-+ READ(*reg, Rn);
-+ Rn += 4;
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-+
-+ return 0;
-+}
-+
-+static int fpu_emulate(u16 code, struct sh_fpu_soft_struct *fregs, struct pt_regs *regs)
-+{
-+ if ((code & 0xf000) == 0xf000)
-+ return id_fnmx(fregs, regs, code);
-+ else
-+ return id_sys(fregs, regs, code);
-+}
-+
-+/**
-+ * denormal_to_double - Given denormalized float number,
-+ * store double float
-+ *
-+ * @fpu: Pointer to sh_fpu_hard structure
-+ * @n: Index to FP register
-+ */
-+static void denormal_to_double(struct sh_fpu_hard_struct *fpu, int n)
-+{
-+ unsigned long du, dl;
-+ unsigned long x = fpu->fpul;
-+ int exp = 1023 - 126;
-+
-+ if (x != 0 && (x & 0x7f800000) == 0) {
-+ du = (x & 0x80000000);
-+ while ((x & 0x00800000) == 0) {
-+ x <<= 1;
-+ exp--;
-+ }
-+ x &= 0x007fffff;
-+ du |= (exp << 20) | (x >> 3);
-+ dl = x << 29;
-+
-+ fpu->fp_regs[n] = du;
-+ fpu->fp_regs[n+1] = dl;
-+ }
-+}
-+
-+/**
-+ * ieee_fpe_handler - Handle denormalized number exception
-+ *
-+ * @regs: Pointer to register structure
-+ *
-+ * Returns 1 when it's handled (should not cause exception).
-+ */
-+static int ieee_fpe_handler(struct pt_regs *regs)
-+{
-+ unsigned short insn = *(unsigned short *)regs->pc;
-+ unsigned short finsn;
-+ unsigned long nextpc;
-+ int nib[4] = {
-+ (insn >> 12) & 0xf,
-+ (insn >> 8) & 0xf,
-+ (insn >> 4) & 0xf,
-+ insn & 0xf};
-+
-+ if (nib[0] == 0xb ||
-+ (nib[0] == 0x4 && nib[2] == 0x0 && nib[3] == 0xb)) /* bsr & jsr */
-+ regs->pr = regs->pc + 4;
-+
-+ if (nib[0] == 0xa || nib[0] == 0xb) { /* bra & bsr */
-+ nextpc = regs->pc + 4 + ((short) ((insn & 0xfff) << 4) >> 3);
-+ finsn = *(unsigned short *) (regs->pc + 2);
-+ } else if (nib[0] == 0x8 && nib[1] == 0xd) { /* bt/s */
-+ if (regs->sr & 1)
-+ nextpc = regs->pc + 4 + ((char) (insn & 0xff) << 1);
-+ else
-+ nextpc = regs->pc + 4;
-+ finsn = *(unsigned short *) (regs->pc + 2);
-+ } else if (nib[0] == 0x8 && nib[1] == 0xf) { /* bf/s */
-+ if (regs->sr & 1)
-+ nextpc = regs->pc + 4;
-+ else
-+ nextpc = regs->pc + 4 + ((char) (insn & 0xff) << 1);
-+ finsn = *(unsigned short *) (regs->pc + 2);
-+ } else if (nib[0] == 0x4 && nib[3] == 0xb &&
-+ (nib[2] == 0x0 || nib[2] == 0x2)) { /* jmp & jsr */
-+ nextpc = regs->regs[nib[1]];
-+ finsn = *(unsigned short *) (regs->pc + 2);
-+ } else if (nib[0] == 0x0 && nib[3] == 0x3 &&
-+ (nib[2] == 0x0 || nib[2] == 0x2)) { /* braf & bsrf */
-+ nextpc = regs->pc + 4 + regs->regs[nib[1]];
-+ finsn = *(unsigned short *) (regs->pc + 2);
-+ } else if (insn == 0x000b) { /* rts */
-+ nextpc = regs->pr;
-+ finsn = *(unsigned short *) (regs->pc + 2);
-+ } else {
-+ nextpc = regs->pc + 2;
-+ finsn = insn;
-+ }
-+
-+ if ((finsn & 0xf1ff) == 0xf0ad) { /* fcnvsd */
-+ struct task_struct *tsk = current;
-+
-+ if ((tsk->thread.fpu.hard.fpscr & (1 << 17))) {
-+ /* FPU error */
-+ denormal_to_double (&tsk->thread.fpu.hard,
-+ (finsn >> 8) & 0xf);
-+ tsk->thread.fpu.hard.fpscr &=
-+ ~(FPSCR_CAUSE_MASK | FPSCR_FLAG_MASK);
-+ set_tsk_thread_flag(tsk, TIF_USEDFPU);
-+ } else {
-+ tsk->thread.trap_no = 11;
-+ tsk->thread.error_code = 0;
-+ force_sig(SIGFPE, tsk);
-+ }
-+
-+ regs->pc = nextpc;
-+ return 1;
-+ }
-+
-+ return 0;
-+}
-+
-+asmlinkage void do_fpu_error(unsigned long r4, unsigned long r5,
-+ unsigned long r6, unsigned long r7,
-+ struct pt_regs regs)
-+{
-+ struct task_struct *tsk = current;
-+
-+ if (ieee_fpe_handler (&regs))
-+ return;
-+
-+ regs.pc += 2;
-+ tsk->thread.trap_no = 11;
-+ tsk->thread.error_code = 0;
-+ force_sig(SIGFPE, tsk);
-+}
-+
-+/**
-+ * fpu_init - Initialize FPU registers
-+ * @fpu: Pointer to software emulated FPU registers.
-+ */
-+static void fpu_init(struct sh_fpu_soft_struct *fpu)
-+{
-+ int i;
-+
-+ fpu->fpscr = FPSCR_INIT;
-+ fpu->fpul = 0;
-+
-+ for (i = 0; i < 16; i++) {
-+ fpu->fp_regs[i] = 0;
-+ fpu->xfp_regs[i]= 0;
-+ }
-+}
-+
-+/**
-+ * do_fpu_inst - Handle reserved instructions for FPU emulation
-+ * @inst: instruction code.
-+ * @regs: registers on stack.
-+ */
-+int do_fpu_inst(unsigned short inst, struct pt_regs *regs)
-+{
-+ struct task_struct *tsk = current;
-+ struct sh_fpu_soft_struct *fpu = &(tsk->thread.fpu.soft);
-+
-+ if (!test_tsk_thread_flag(tsk, TIF_USEDFPU)) {
-+ /* initialize once. */
-+ fpu_init(fpu);
-+ set_tsk_thread_flag(tsk, TIF_USEDFPU);
-+ }
-+
-+ return fpu_emulate(inst, fpu, regs);
-+}
-diff -ruN linux-2.6.17-vanilla/arch/sh/math-emu/sfp-util.h linux-2.6.17/arch/sh/math-emu/sfp-util.h
---- linux-2.6.17-vanilla/arch/sh/math-emu/sfp-util.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/math-emu/sfp-util.h 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1,72 @@
-+/*
-+ * These are copied from glibc/stdlib/longlong.h
-+ */
-+
-+#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
-+ do { \
-+ UWtype __x; \
-+ __x = (al) + (bl); \
-+ (sh) = (ah) + (bh) + (__x < (al)); \
-+ (sl) = __x; \
-+ } while (0)
-+
-+#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
-+ do { \
-+ UWtype __x; \
-+ __x = (al) - (bl); \
-+ (sh) = (ah) - (bh) - (__x > (al)); \
-+ (sl) = __x; \
-+ } while (0)
-+
-+#define umul_ppmm(w1, w0, u, v) \
-+ __asm__ ("dmulu.l %2,%3\n\tsts macl,%1\n\tsts mach,%0" \
-+ : "=r" ((u32)(w1)), "=r" ((u32)(w0)) \
-+ : "r" ((u32)(u)), "r" ((u32)(v)) \
-+ : "macl", "mach")
-+
-+#define __ll_B ((UWtype) 1 << (W_TYPE_SIZE / 2))
-+#define __ll_lowpart(t) ((UWtype) (t) & (__ll_B - 1))
-+#define __ll_highpart(t) ((UWtype) (t) >> (W_TYPE_SIZE / 2))
-+
-+#define udiv_qrnnd(q, r, n1, n0, d) \
-+ do { \
-+ UWtype __d1, __d0, __q1, __q0; \
-+ UWtype __r1, __r0, __m; \
-+ __d1 = __ll_highpart (d); \
-+ __d0 = __ll_lowpart (d); \
-+ \
-+ __r1 = (n1) % __d1; \
-+ __q1 = (n1) / __d1; \
-+ __m = (UWtype) __q1 * __d0; \
-+ __r1 = __r1 * __ll_B | __ll_highpart (n0); \
-+ if (__r1 < __m) \
-+ { \
-+ __q1--, __r1 += (d); \
-+ if (__r1 >= (d)) /* i.e. we didn't get carry when adding to __r1 */\
-+ if (__r1 < __m) \
-+ __q1--, __r1 += (d); \
-+ } \
-+ __r1 -= __m; \
-+ \
-+ __r0 = __r1 % __d1; \
-+ __q0 = __r1 / __d1; \
-+ __m = (UWtype) __q0 * __d0; \
-+ __r0 = __r0 * __ll_B | __ll_lowpart (n0); \
-+ if (__r0 < __m) \
-+ { \
-+ __q0--, __r0 += (d); \
-+ if (__r0 >= (d)) \
-+ if (__r0 < __m) \
-+ __q0--, __r0 += (d); \
-+ } \
-+ __r0 -= __m; \
-+ \
-+ (q) = (UWtype) __q1 * __ll_B | __q0; \
-+ (r) = __r0; \
-+ } while (0)
-+
-+#define abort() return 0
-+
-+#define __BYTE_ORDER __LITTLE_ENDIAN
-+
-+
-diff -ruN linux-2.6.17-vanilla/arch/sh/mm/CVS/Entries linux-2.6.17/arch/sh/mm/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/mm/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/mm/CVS/Entries 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1,25 @@
-+/Kconfig/1.10/Sun Jan 8 12:22:58 2006/-ko/
-+/Makefile/1.14/Wed Jan 4 14:49:04 2006//
-+/cache-sh2.c/1.5/Thu Jul 8 13:52:22 2004/-ko/
-+/cache-sh3.c/1.11/Thu Jul 8 13:52:22 2004/-ko/
-+/cache-sh4.c/1.38/Thu Oct 20 22:48:04 2005/-ko/
-+/cache-sh7705.c/1.2/Tue Jun 21 04:15:48 2005/-ko/
-+/clear_page.S/1.14/Sat Jul 2 13:00:24 2005/-ko/
-+/copy_page.S/1.8/Mon Aug 25 17:03:10 2003//
-+/extable.c/1.5/Tue Jun 15 18:40:43 2004/-ko/
-+/fault-nommu.c/1.3/Mon Oct 25 10:41:02 2004/-ko/
-+/fault.c/1.21/Mon Mar 27 21:06:14 2006/-ko/
-+/ioremap.c/1.16/Wed Feb 8 13:21:41 2006/-ko/
-+/pg-dma.c/1.4/Sat Mar 6 22:26:37 2004//
-+/pg-nommu.c/1.1/Sat Oct 25 21:45:29 2003//
-+/pg-sh4.c/1.5/Thu Sep 1 18:59:11 2005/-ko/
-+/pg-sh7705.c/1.2/Tue Jun 21 04:15:48 2005/-ko/
-+/pmb.c/1.2/Tue Jan 3 22:51:47 2006/-ko/
-+/tlb-flush.c/1.1/Sat Dec 31 11:30:47 2005/-ko/
-+/tlb-nommu.c/1.2/Sun May 4 19:29:55 2003/-ko/
-+/tlb-sh3.c/1.7/Sat Aug 13 14:30:27 2005/-ko/
-+/tlb-sh4.c/1.7/Sat Oct 8 22:08:39 2005/-ko/
-+/consistent.c/1.10/Wed Jul 5 14:50:50 2006//
-+/hugetlbpage.c/1.12/Wed Jul 5 14:50:50 2006/-ko/
-+/init.c/1.28/Wed Jul 5 14:50:50 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/mm/CVS/Repository linux-2.6.17/arch/sh/mm/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/mm/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/mm/CVS/Repository 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/mm
-diff -ruN linux-2.6.17-vanilla/arch/sh/mm/CVS/Root linux-2.6.17/arch/sh/mm/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/mm/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/mm/CVS/Root 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/mm/Kconfig linux-2.6.17/arch/sh/mm/Kconfig
---- linux-2.6.17-vanilla/arch/sh/mm/Kconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/mm/Kconfig 2006-07-12 16:54:23.000000000 +0000
-@@ -20,7 +20,6 @@
- config CPU_SH4A
- bool
- select CPU_SH4
-- select CPU_HAS_INTC2_IRQ
-
- config CPU_SUBTYPE_ST40
- bool
-@@ -144,6 +143,7 @@
- config CPU_SUBTYPE_SH7780
- bool "Support SH7780 processor"
- select CPU_SH4A
-+ select CPU_HAS_INTC2_IRQ
-
- endmenu
-
-diff -ruN linux-2.6.17-vanilla/arch/sh/mm/Makefile linux-2.6.17/arch/sh/mm/Makefile
---- linux-2.6.17-vanilla/arch/sh/mm/Makefile 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/mm/Makefile 2006-07-12 16:54:23.000000000 +0000
-@@ -12,14 +12,16 @@
- obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o
-
- mmu-y := fault-nommu.o tlb-nommu.o pg-nommu.o
--mmu-$(CONFIG_MMU) := fault.o clear_page.o copy_page.o
-+mmu-$(CONFIG_MMU) := fault.o clear_page.o copy_page.o tlb-flush.o \
-+ ioremap.o
-
- obj-y += $(mmu-y)
-
- ifdef CONFIG_MMU
--obj-$(CONFIG_CPU_SH3) += tlb-sh3.o
--obj-$(CONFIG_CPU_SH4) += tlb-sh4.o ioremap.o
-+obj-$(CONFIG_CPU_SH3) += tlb-sh3.o
-+obj-$(CONFIG_CPU_SH4) += tlb-sh4.o
- obj-$(CONFIG_SH7705_CACHE_32KB) += pg-sh7705.o
- endif
-
--obj-$(CONFIG_SH7705_CACHE_32KB) += cache-sh7705.o
-+obj-$(CONFIG_SH7705_CACHE_32KB) += cache-sh7705.o
-+obj-$(CONFIG_32BIT) += pmb.o
-diff -ruN linux-2.6.17-vanilla/arch/sh/mm/cache-sh4.c linux-2.6.17/arch/sh/mm/cache-sh4.c
---- linux-2.6.17-vanilla/arch/sh/mm/cache-sh4.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/mm/cache-sh4.c 2006-07-12 16:54:23.000000000 +0000
-@@ -2,7 +2,7 @@
- * arch/sh/mm/cache-sh4.c
- *
- * Copyright (C) 1999, 2000, 2002 Niibe Yutaka
-- * Copyright (C) 2001, 2002, 2003, 2004 Paul Mundt
-+ * Copyright (C) 2001, 2002, 2003, 2004, 2005 Paul Mundt
- * Copyright (C) 2003 Richard Curnow
- *
- * This file is subject to the terms and conditions of the GNU General Public
-@@ -26,26 +26,95 @@
- #include <asm/mmu_context.h>
- #include <asm/cacheflush.h>
-
--extern void __flush_cache_4096_all(unsigned long start);
--static void __flush_cache_4096_all_ex(unsigned long start);
--extern void __flush_dcache_all(void);
--static void __flush_dcache_all_ex(void);
-+static void __flush_dcache_segment_1way(unsigned long start,
-+ unsigned long extent);
-+static void __flush_dcache_segment_2way(unsigned long start,
-+ unsigned long extent);
-+static void __flush_dcache_segment_4way(unsigned long start,
-+ unsigned long extent);
-+
-+static void __flush_cache_4096(unsigned long addr, unsigned long phys,
-+ unsigned long exec_offset);
-+
-+/*
-+ * This is initialised here to ensure that it is not placed in the BSS. If
-+ * that were to happen, note that cache_init gets called before the BSS is
-+ * cleared, so this would get nulled out which would be hopeless.
-+ */
-+static void (*__flush_dcache_segment_fn)(unsigned long, unsigned long) =
-+ (void (*)(unsigned long, unsigned long))0xdeadbeef;
-+
-+static void compute_alias(struct cache_info *c)
-+{
-+ c->alias_mask = ((c->sets - 1) << c->entry_shift) & ~(PAGE_SIZE - 1);
-+ c->n_aliases = (c->alias_mask >> PAGE_SHIFT) + 1;
-+}
-+
-+static void __init emit_cache_params(void)
-+{
-+ printk("PVR=%08x CVR=%08x PRR=%08x\n",
-+ ctrl_inl(CCN_PVR),
-+ ctrl_inl(CCN_CVR),
-+ ctrl_inl(CCN_PRR));
-+ printk("I-cache : n_ways=%d n_sets=%d way_incr=%d\n",
-+ cpu_data->icache.ways,
-+ cpu_data->icache.sets,
-+ cpu_data->icache.way_incr);
-+ printk("I-cache : entry_mask=0x%08x alias_mask=0x%08x n_aliases=%d\n",
-+ cpu_data->icache.entry_mask,
-+ cpu_data->icache.alias_mask,
-+ cpu_data->icache.n_aliases);
-+ printk("D-cache : n_ways=%d n_sets=%d way_incr=%d\n",
-+ cpu_data->dcache.ways,
-+ cpu_data->dcache.sets,
-+ cpu_data->dcache.way_incr);
-+ printk("D-cache : entry_mask=0x%08x alias_mask=0x%08x n_aliases=%d\n",
-+ cpu_data->dcache.entry_mask,
-+ cpu_data->dcache.alias_mask,
-+ cpu_data->dcache.n_aliases);
-+
-+ if (!__flush_dcache_segment_fn)
-+ panic("unknown number of cache ways\n");
-+}
-
- /*
- * SH-4 has virtually indexed and physically tagged cache.
- */
-
--struct semaphore p3map_sem[4];
-+/* Worst case assumed to be 64k cache, direct-mapped i.e. 4 synonym bits. */
-+#define MAX_P3_SEMAPHORES 16
-+
-+struct semaphore p3map_sem[MAX_P3_SEMAPHORES];
-
- void __init p3_cache_init(void)
- {
-- if (remap_area_pages(P3SEG, 0, PAGE_SIZE*4, _PAGE_CACHABLE))
-+ int i;
-+
-+ compute_alias(&cpu_data->icache);
-+ compute_alias(&cpu_data->dcache);
-+
-+ switch (cpu_data->dcache.ways) {
-+ case 1:
-+ __flush_dcache_segment_fn = __flush_dcache_segment_1way;
-+ break;
-+ case 2:
-+ __flush_dcache_segment_fn = __flush_dcache_segment_2way;
-+ break;
-+ case 4:
-+ __flush_dcache_segment_fn = __flush_dcache_segment_4way;
-+ break;
-+ default:
-+ __flush_dcache_segment_fn = NULL;
-+ break;
-+ }
-+
-+ emit_cache_params();
-+
-+ if (remap_area_pages(P3SEG, 0, PAGE_SIZE * 4, _PAGE_CACHABLE))
- panic("%s failed.", __FUNCTION__);
-
-- sema_init (&p3map_sem[0], 1);
-- sema_init (&p3map_sem[1], 1);
-- sema_init (&p3map_sem[2], 1);
-- sema_init (&p3map_sem[3], 1);
-+ for (i = 0; i < cpu_data->dcache.n_aliases; i++)
-+ sema_init(&p3map_sem[i], 1);
- }
-
- /*
-@@ -90,7 +159,6 @@
- }
- }
-
--
- /*
- * No write back please
- */
-@@ -109,40 +177,6 @@
- }
- }
-
--static void __flush_dcache_all_ex(void)
--{
-- unsigned long addr, end_addr, entry_offset;
--
-- end_addr = CACHE_OC_ADDRESS_ARRAY + (cpu_data->dcache.sets << cpu_data->dcache.entry_shift) * cpu_data->dcache.ways;
-- entry_offset = 1 << cpu_data->dcache.entry_shift;
-- for (addr = CACHE_OC_ADDRESS_ARRAY; addr < end_addr; addr += entry_offset) {
-- ctrl_outl(0, addr);
-- }
--}
--
--static void __flush_cache_4096_all_ex(unsigned long start)
--{
-- unsigned long addr, entry_offset;
-- int i;
--
-- entry_offset = 1 << cpu_data->dcache.entry_shift;
-- for (i = 0; i < cpu_data->dcache.ways; i++, start += cpu_data->dcache.way_incr) {
-- for (addr = CACHE_OC_ADDRESS_ARRAY + start;
-- addr < CACHE_OC_ADDRESS_ARRAY + 4096 + start;
-- addr += entry_offset) {
-- ctrl_outl(0, addr);
-- }
-- }
--}
--
--void flush_cache_4096_all(unsigned long start)
--{
-- if (cpu_data->dcache.ways == 1)
-- __flush_cache_4096_all(start);
-- else
-- __flush_cache_4096_all_ex(start);
--}
--
- /*
- * Write back the range of D-cache, and purge the I-cache.
- *
-@@ -154,14 +188,14 @@
- }
-
- /*
-- * Write back the D-cache and purge the I-cache for signal trampoline.
-+ * Write back the D-cache and purge the I-cache for signal trampoline.
- * .. which happens to be the same behavior as flush_icache_range().
- * So, we simply flush out a line.
- */
- void flush_cache_sigtramp(unsigned long addr)
- {
- unsigned long v, index;
-- unsigned long flags;
-+ unsigned long flags;
- int i;
-
- v = addr & ~(L1_CACHE_BYTES-1);
-@@ -173,29 +207,34 @@
-
- local_irq_save(flags);
- jump_to_P2();
-- for(i = 0; i < cpu_data->icache.ways; i++, index += cpu_data->icache.way_incr)
-+
-+ for (i = 0; i < cpu_data->icache.ways;
-+ i++, index += cpu_data->icache.way_incr)
- ctrl_outl(0, index); /* Clear out Valid-bit */
-+
- back_to_P1();
-+ wmb();
- local_irq_restore(flags);
- }
-
- static inline void flush_cache_4096(unsigned long start,
- unsigned long phys)
- {
-- unsigned long flags;
-- extern void __flush_cache_4096(unsigned long addr, unsigned long phys, unsigned long exec_offset);
-+ unsigned long flags;
-
- /*
-- * SH7751, SH7751R, and ST40 have no restriction to handle cache.
-- * (While SH7750 must do that at P2 area.)
-+ * All types of SH-4 require PC to be in P2 to operate on the I-cache.
-+ * Some types of SH-4 require PC to be in P2 to operate on the D-cache.
- */
- if ((cpu_data->flags & CPU_HAS_P2_FLUSH_BUG)
- || start < CACHE_OC_ADDRESS_ARRAY) {
- local_irq_save(flags);
-- __flush_cache_4096(start | SH_CACHE_ASSOC, P1SEGADDR(phys), 0x20000000);
-+ __flush_cache_4096(start | SH_CACHE_ASSOC,
-+ P1SEGADDR(phys), 0x20000000);
- local_irq_restore(flags);
- } else {
-- __flush_cache_4096(start | SH_CACHE_ASSOC, P1SEGADDR(phys), 0);
-+ __flush_cache_4096(start | SH_CACHE_ASSOC,
-+ P1SEGADDR(phys), 0);
- }
- }
-
-@@ -207,13 +246,16 @@
- {
- if (test_bit(PG_mapped, &page->flags)) {
- unsigned long phys = PHYSADDR(page_address(page));
-+ unsigned long addr = CACHE_OC_ADDRESS_ARRAY;
-+ int i, n;
-
- /* Loop all the D-cache */
-- flush_cache_4096(CACHE_OC_ADDRESS_ARRAY, phys);
-- flush_cache_4096(CACHE_OC_ADDRESS_ARRAY | 0x1000, phys);
-- flush_cache_4096(CACHE_OC_ADDRESS_ARRAY | 0x2000, phys);
-- flush_cache_4096(CACHE_OC_ADDRESS_ARRAY | 0x3000, phys);
-+ n = cpu_data->dcache.n_aliases;
-+ for (i = 0; i < n; i++, addr += PAGE_SIZE)
-+ flush_cache_4096(addr, phys);
- }
-+
-+ wmb();
- }
-
- static inline void flush_icache_all(void)
-@@ -228,32 +270,38 @@
- ccr |= CCR_CACHE_ICI;
- ctrl_outl(ccr, CCR);
-
-+ /*
-+ * back_to_P1() will take care of the barrier for us, don't add
-+ * another one!
-+ */
-+
- back_to_P1();
- local_irq_restore(flags);
- }
-
-+void flush_dcache_all(void)
-+{
-+ (*__flush_dcache_segment_fn)(0UL, cpu_data->dcache.way_size);
-+ wmb();
-+}
-+
- void flush_cache_all(void)
- {
-- if (cpu_data->dcache.ways == 1)
-- __flush_dcache_all();
-- else
-- __flush_dcache_all_ex();
-+ flush_dcache_all();
- flush_icache_all();
- }
-
- void flush_cache_mm(struct mm_struct *mm)
- {
-- /* Is there any good way? */
-- /* XXX: possibly call flush_cache_range for each vm area */
-- /*
-- * FIXME: Really, the optimal solution here would be able to flush out
-- * individual lines created by the specified context, but this isn't
-- * feasible for a number of architectures (such as MIPS, and some
-- * SPARC) .. is this possible for SuperH?
-- *
-- * In the meantime, we'll just flush all of the caches.. this
-- * seems to be the simplest way to avoid at least a few wasted
-- * cache flushes. -Lethal
-+ /*
-+ * Note : (RPC) since the caches are physically tagged, the only point
-+ * of flush_cache_mm for SH-4 is to get rid of aliases from the
-+ * D-cache. The assumption elsewhere, e.g. flush_cache_range, is that
-+ * lines can stay resident so long as the virtual address they were
-+ * accessed with (hence cache set) is in accord with the physical
-+ * address (i.e. tag). It's no different here. So I reckon we don't
-+ * need to flush the I-cache, since aliases don't matter for that. We
-+ * should try that.
- */
- flush_cache_all();
- }
-@@ -267,24 +315,36 @@
- void flush_cache_page(struct vm_area_struct *vma, unsigned long address, unsigned long pfn)
- {
- unsigned long phys = pfn << PAGE_SHIFT;
-+ unsigned int alias_mask;
-+
-+ alias_mask = cpu_data->dcache.alias_mask;
-
- /* We only need to flush D-cache when we have alias */
-- if ((address^phys) & CACHE_ALIAS) {
-+ if ((address^phys) & alias_mask) {
- /* Loop 4K of the D-cache */
- flush_cache_4096(
-- CACHE_OC_ADDRESS_ARRAY | (address & CACHE_ALIAS),
-+ CACHE_OC_ADDRESS_ARRAY | (address & alias_mask),
- phys);
- /* Loop another 4K of the D-cache */
- flush_cache_4096(
-- CACHE_OC_ADDRESS_ARRAY | (phys & CACHE_ALIAS),
-+ CACHE_OC_ADDRESS_ARRAY | (phys & alias_mask),
- phys);
- }
-
-- if (vma->vm_flags & VM_EXEC)
-- /* Loop 4K (half) of the I-cache */
-+ alias_mask = cpu_data->icache.alias_mask;
-+ if (vma->vm_flags & VM_EXEC) {
-+ /*
-+ * Evict entries from the portion of the cache from which code
-+ * may have been executed at this address (virtual). There's
-+ * no need to evict from the portion corresponding to the
-+ * physical address as for the D-cache, because we know the
-+ * kernel has never executed the code through its identity
-+ * translation.
-+ */
- flush_cache_4096(
-- CACHE_IC_ADDRESS_ARRAY | (address & 0x1000),
-+ CACHE_IC_ADDRESS_ARRAY | (address & alias_mask),
- phys);
-+ }
- }
-
- /*
-@@ -299,52 +359,96 @@
- void flush_cache_range(struct vm_area_struct *vma, unsigned long start,
- unsigned long end)
- {
-- unsigned long p = start & PAGE_MASK;
-+ unsigned long d = 0, p = start & PAGE_MASK;
-+ unsigned long alias_mask = cpu_data->dcache.alias_mask;
-+ unsigned long n_aliases = cpu_data->dcache.n_aliases;
-+ unsigned long select_bit;
-+ unsigned long all_aliases_mask;
-+ unsigned long addr_offset;
-+ unsigned long phys;
- pgd_t *dir;
- pmd_t *pmd;
-+ pud_t *pud;
- pte_t *pte;
- pte_t entry;
-- unsigned long phys;
-- unsigned long d = 0;
-+ int i;
-+
-+ /*
-+ * If cache is only 4k-per-way, there are never any 'aliases'. Since
-+ * the cache is physically tagged, the data can just be left in there.
-+ */
-+ if (n_aliases == 0)
-+ return;
-+
-+ all_aliases_mask = (1 << n_aliases) - 1;
-+
-+ /*
-+ * Don't bother with the lookup and alias check if we have a
-+ * wide range to cover, just blow away the dcache in its
-+ * entirety instead. -- PFM.
-+ */
-+ if (((end - start) >> PAGE_SHIFT) >= 64) {
-+ flush_dcache_all();
-+
-+ if (vma->vm_flags & VM_EXEC)
-+ flush_icache_all();
-+
-+ return;
-+ }
-
- dir = pgd_offset(vma->vm_mm, p);
-- pmd = pmd_offset(dir, p);
-+ pud = pud_offset(dir, p);
-+ pmd = pmd_offset(pud, p);
-+ end = PAGE_ALIGN(end);
-
- do {
- if (pmd_none(*pmd) || pmd_bad(*pmd)) {
-- p &= ~((1 << PMD_SHIFT) -1);
-+ p &= ~((1 << PMD_SHIFT) - 1);
- p += (1 << PMD_SHIFT);
- pmd++;
-+
- continue;
- }
-+
- pte = pte_offset_kernel(pmd, p);
-+
- do {
- entry = *pte;
-+
- if ((pte_val(entry) & _PAGE_PRESENT)) {
-- phys = pte_val(entry)&PTE_PHYS_MASK;
-- if ((p^phys) & CACHE_ALIAS) {
-- d |= 1 << ((p & CACHE_ALIAS)>>12);
-- d |= 1 << ((phys & CACHE_ALIAS)>>12);
-- if (d == 0x0f)
-+ phys = pte_val(entry) & PTE_PHYS_MASK;
-+
-+ if ((p ^ phys) & alias_mask) {
-+ d |= 1 << ((p & alias_mask) >> PAGE_SHIFT);
-+ d |= 1 << ((phys & alias_mask) >> PAGE_SHIFT);
-+
-+ if (d == all_aliases_mask)
- goto loop_exit;
- }
- }
-+
- pte++;
- p += PAGE_SIZE;
- } while (p < end && ((unsigned long)pte & ~PAGE_MASK));
- pmd++;
- } while (p < end);
-- loop_exit:
-- if (d & 1)
-- flush_cache_4096_all(0);
-- if (d & 2)
-- flush_cache_4096_all(0x1000);
-- if (d & 4)
-- flush_cache_4096_all(0x2000);
-- if (d & 8)
-- flush_cache_4096_all(0x3000);
-- if (vma->vm_flags & VM_EXEC)
-+
-+loop_exit:
-+ for (i = 0, select_bit = 0x1, addr_offset = 0x0; i < n_aliases;
-+ i++, select_bit <<= 1, addr_offset += PAGE_SIZE)
-+ if (d & select_bit) {
-+ (*__flush_dcache_segment_fn)(addr_offset, PAGE_SIZE);
-+ wmb();
-+ }
-+
-+ if (vma->vm_flags & VM_EXEC) {
-+ /*
-+ * TODO: Is this required??? Need to look at how I-cache
-+ * coherency is assured when new programs are loaded to see if
-+ * this matters.
-+ */
- flush_icache_all();
-+ }
- }
-
- /*
-@@ -358,5 +462,274 @@
- struct page *page, unsigned long addr, int len)
- {
- flush_cache_page(vma, addr, page_to_pfn(page));
-+ mb();
-+}
-+
-+/**
-+ * __flush_cache_4096
-+ *
-+ * @addr: address in memory mapped cache array
-+ * @phys: P1 address to flush (has to match tags if addr has 'A' bit
-+ * set i.e. associative write)
-+ * @exec_offset: set to 0x20000000 if flush has to be executed from P2
-+ * region else 0x0
-+ *
-+ * The offset into the cache array implied by 'addr' selects the
-+ * 'colour' of the virtual address range that will be flushed. The
-+ * operation (purge/write-back) is selected by the lower 2 bits of
-+ * 'phys'.
-+ */
-+static void __flush_cache_4096(unsigned long addr, unsigned long phys,
-+ unsigned long exec_offset)
-+{
-+ int way_count;
-+ unsigned long base_addr = addr;
-+ struct cache_info *dcache;
-+ unsigned long way_incr;
-+ unsigned long a, ea, p;
-+ unsigned long temp_pc;
-+
-+ dcache = &cpu_data->dcache;
-+ /* Write this way for better assembly. */
-+ way_count = dcache->ways;
-+ way_incr = dcache->way_incr;
-+
-+ /*
-+ * Apply exec_offset (i.e. branch to P2 if required.).
-+ *
-+ * FIXME:
-+ *
-+ * If I write "=r" for the (temp_pc), it puts this in r6 hence
-+ * trashing exec_offset before it's been added on - why? Hence
-+ * "=&r" as a 'workaround'
-+ */
-+ asm volatile("mov.l 1f, %0\n\t"
-+ "add %1, %0\n\t"
-+ "jmp @%0\n\t"
-+ "nop\n\t"
-+ ".balign 4\n\t"
-+ "1: .long 2f\n\t"
-+ "2:\n" : "=&r" (temp_pc) : "r" (exec_offset));
-+
-+ /*
-+ * We know there will be >=1 iteration, so write as do-while to avoid
-+ * pointless nead-of-loop check for 0 iterations.
-+ */
-+ do {
-+ ea = base_addr + PAGE_SIZE;
-+ a = base_addr;
-+ p = phys;
-+
-+ do {
-+ *(volatile unsigned long *)a = p;
-+ /*
-+ * Next line: intentionally not p+32, saves an add, p
-+ * will do since only the cache tag bits need to
-+ * match.
-+ */
-+ *(volatile unsigned long *)(a+32) = p;
-+ a += 64;
-+ p += 64;
-+ } while (a < ea);
-+
-+ base_addr += way_incr;
-+ } while (--way_count != 0);
-+}
-+
-+/*
-+ * Break the 1, 2 and 4 way variants of this out into separate functions to
-+ * avoid nearly all the overhead of having the conditional stuff in the function
-+ * bodies (+ the 1 and 2 way cases avoid saving any registers too).
-+ */
-+static void __flush_dcache_segment_1way(unsigned long start,
-+ unsigned long extent_per_way)
-+{
-+ unsigned long orig_sr, sr_with_bl;
-+ unsigned long base_addr;
-+ unsigned long way_incr, linesz, way_size;
-+ struct cache_info *dcache;
-+ register unsigned long a0, a0e;
-+
-+ asm volatile("stc sr, %0" : "=r" (orig_sr));
-+ sr_with_bl = orig_sr | (1<<28);
-+ base_addr = ((unsigned long)&empty_zero_page[0]);
-+
-+ /*
-+ * The previous code aligned base_addr to 16k, i.e. the way_size of all
-+ * existing SH-4 D-caches. Whilst I don't see a need to have this
-+ * aligned to any better than the cache line size (which it will be
-+ * anyway by construction), let's align it to at least the way_size of
-+ * any existing or conceivable SH-4 D-cache. -- RPC
-+ */
-+ base_addr = ((base_addr >> 16) << 16);
-+ base_addr |= start;
-+
-+ dcache = &cpu_data->dcache;
-+ linesz = dcache->linesz;
-+ way_incr = dcache->way_incr;
-+ way_size = dcache->way_size;
-+
-+ a0 = base_addr;
-+ a0e = base_addr + extent_per_way;
-+ do {
-+ asm volatile("ldc %0, sr" : : "r" (sr_with_bl));
-+ asm volatile("movca.l r0, @%0\n\t"
-+ "ocbi @%0" : : "r" (a0));
-+ a0 += linesz;
-+ asm volatile("movca.l r0, @%0\n\t"
-+ "ocbi @%0" : : "r" (a0));
-+ a0 += linesz;
-+ asm volatile("movca.l r0, @%0\n\t"
-+ "ocbi @%0" : : "r" (a0));
-+ a0 += linesz;
-+ asm volatile("movca.l r0, @%0\n\t"
-+ "ocbi @%0" : : "r" (a0));
-+ asm volatile("ldc %0, sr" : : "r" (orig_sr));
-+ a0 += linesz;
-+ } while (a0 < a0e);
-+}
-+
-+static void __flush_dcache_segment_2way(unsigned long start,
-+ unsigned long extent_per_way)
-+{
-+ unsigned long orig_sr, sr_with_bl;
-+ unsigned long base_addr;
-+ unsigned long way_incr, linesz, way_size;
-+ struct cache_info *dcache;
-+ register unsigned long a0, a1, a0e;
-+
-+ asm volatile("stc sr, %0" : "=r" (orig_sr));
-+ sr_with_bl = orig_sr | (1<<28);
-+ base_addr = ((unsigned long)&empty_zero_page[0]);
-+
-+ /* See comment under 1-way above */
-+ base_addr = ((base_addr >> 16) << 16);
-+ base_addr |= start;
-+
-+ dcache = &cpu_data->dcache;
-+ linesz = dcache->linesz;
-+ way_incr = dcache->way_incr;
-+ way_size = dcache->way_size;
-+
-+ a0 = base_addr;
-+ a1 = a0 + way_incr;
-+ a0e = base_addr + extent_per_way;
-+ do {
-+ asm volatile("ldc %0, sr" : : "r" (sr_with_bl));
-+ asm volatile("movca.l r0, @%0\n\t"
-+ "movca.l r0, @%1\n\t"
-+ "ocbi @%0\n\t"
-+ "ocbi @%1" : :
-+ "r" (a0), "r" (a1));
-+ a0 += linesz;
-+ a1 += linesz;
-+ asm volatile("movca.l r0, @%0\n\t"
-+ "movca.l r0, @%1\n\t"
-+ "ocbi @%0\n\t"
-+ "ocbi @%1" : :
-+ "r" (a0), "r" (a1));
-+ a0 += linesz;
-+ a1 += linesz;
-+ asm volatile("movca.l r0, @%0\n\t"
-+ "movca.l r0, @%1\n\t"
-+ "ocbi @%0\n\t"
-+ "ocbi @%1" : :
-+ "r" (a0), "r" (a1));
-+ a0 += linesz;
-+ a1 += linesz;
-+ asm volatile("movca.l r0, @%0\n\t"
-+ "movca.l r0, @%1\n\t"
-+ "ocbi @%0\n\t"
-+ "ocbi @%1" : :
-+ "r" (a0), "r" (a1));
-+ asm volatile("ldc %0, sr" : : "r" (orig_sr));
-+ a0 += linesz;
-+ a1 += linesz;
-+ } while (a0 < a0e);
-+}
-+
-+static void __flush_dcache_segment_4way(unsigned long start,
-+ unsigned long extent_per_way)
-+{
-+ unsigned long orig_sr, sr_with_bl;
-+ unsigned long base_addr;
-+ unsigned long way_incr, linesz, way_size;
-+ struct cache_info *dcache;
-+ register unsigned long a0, a1, a2, a3, a0e;
-+
-+ asm volatile("stc sr, %0" : "=r" (orig_sr));
-+ sr_with_bl = orig_sr | (1<<28);
-+ base_addr = ((unsigned long)&empty_zero_page[0]);
-+
-+ /* See comment under 1-way above */
-+ base_addr = ((base_addr >> 16) << 16);
-+ base_addr |= start;
-+
-+ dcache = &cpu_data->dcache;
-+ linesz = dcache->linesz;
-+ way_incr = dcache->way_incr;
-+ way_size = dcache->way_size;
-+
-+ a0 = base_addr;
-+ a1 = a0 + way_incr;
-+ a2 = a1 + way_incr;
-+ a3 = a2 + way_incr;
-+ a0e = base_addr + extent_per_way;
-+ do {
-+ asm volatile("ldc %0, sr" : : "r" (sr_with_bl));
-+ asm volatile("movca.l r0, @%0\n\t"
-+ "movca.l r0, @%1\n\t"
-+ "movca.l r0, @%2\n\t"
-+ "movca.l r0, @%3\n\t"
-+ "ocbi @%0\n\t"
-+ "ocbi @%1\n\t"
-+ "ocbi @%2\n\t"
-+ "ocbi @%3\n\t" : :
-+ "r" (a0), "r" (a1), "r" (a2), "r" (a3));
-+ a0 += linesz;
-+ a1 += linesz;
-+ a2 += linesz;
-+ a3 += linesz;
-+ asm volatile("movca.l r0, @%0\n\t"
-+ "movca.l r0, @%1\n\t"
-+ "movca.l r0, @%2\n\t"
-+ "movca.l r0, @%3\n\t"
-+ "ocbi @%0\n\t"
-+ "ocbi @%1\n\t"
-+ "ocbi @%2\n\t"
-+ "ocbi @%3\n\t" : :
-+ "r" (a0), "r" (a1), "r" (a2), "r" (a3));
-+ a0 += linesz;
-+ a1 += linesz;
-+ a2 += linesz;
-+ a3 += linesz;
-+ asm volatile("movca.l r0, @%0\n\t"
-+ "movca.l r0, @%1\n\t"
-+ "movca.l r0, @%2\n\t"
-+ "movca.l r0, @%3\n\t"
-+ "ocbi @%0\n\t"
-+ "ocbi @%1\n\t"
-+ "ocbi @%2\n\t"
-+ "ocbi @%3\n\t" : :
-+ "r" (a0), "r" (a1), "r" (a2), "r" (a3));
-+ a0 += linesz;
-+ a1 += linesz;
-+ a2 += linesz;
-+ a3 += linesz;
-+ asm volatile("movca.l r0, @%0\n\t"
-+ "movca.l r0, @%1\n\t"
-+ "movca.l r0, @%2\n\t"
-+ "movca.l r0, @%3\n\t"
-+ "ocbi @%0\n\t"
-+ "ocbi @%1\n\t"
-+ "ocbi @%2\n\t"
-+ "ocbi @%3\n\t" : :
-+ "r" (a0), "r" (a1), "r" (a2), "r" (a3));
-+ asm volatile("ldc %0, sr" : : "r" (orig_sr));
-+ a0 += linesz;
-+ a1 += linesz;
-+ a2 += linesz;
-+ a3 += linesz;
-+ } while (a0 < a0e);
- }
-
-diff -ruN linux-2.6.17-vanilla/arch/sh/mm/clear_page.S linux-2.6.17/arch/sh/mm/clear_page.S
---- linux-2.6.17-vanilla/arch/sh/mm/clear_page.S 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/mm/clear_page.S 2006-07-12 16:54:23.000000000 +0000
-@@ -194,102 +194,5 @@
- nop
- .L4096: .word 4096
-
--ENTRY(__flush_cache_4096)
-- mov.l 1f,r3
-- add r6,r3
-- mov r4,r0
-- mov #64,r2
-- shll r2
-- mov #64,r6
-- jmp @r3
-- mov #96,r7
-- .align 2
--1: .long 2f
--2:
-- .rept 32
-- mov.l r5,@r0
-- mov.l r5,@(32,r0)
-- mov.l r5,@(r0,r6)
-- mov.l r5,@(r0,r7)
-- add r2,r5
-- add r2,r0
-- .endr
-- nop
-- nop
-- nop
-- nop
-- nop
-- nop
-- nop
-- rts
-- nop
--
--ENTRY(__flush_dcache_all)
-- mov.l 2f,r0
-- mov.l 3f,r4
-- and r0,r4 ! r4 = (unsigned long)&empty_zero_page[0] & ~0xffffc000
-- stc sr,r1 ! save SR
-- mov.l 4f,r2
-- or r1,r2
-- mov #32,r3
-- shll2 r3
--1:
-- ldc r2,sr ! set BL bit
-- movca.l r0,@r4
-- ocbi @r4
-- add #32,r4
-- movca.l r0,@r4
-- ocbi @r4
-- add #32,r4
-- movca.l r0,@r4
-- ocbi @r4
-- add #32,r4
-- movca.l r0,@r4
-- ocbi @r4
-- ldc r1,sr ! restore SR
-- dt r3
-- bf/s 1b
-- add #32,r4
--
-- rts
-- nop
-- .align 2
--2: .long 0xffffc000
--3: .long empty_zero_page
--4: .long 0x10000000 ! BL bit
--
--/* __flush_cache_4096_all(unsigned long addr) */
--ENTRY(__flush_cache_4096_all)
-- mov.l 2f,r0
-- mov.l 3f,r2
-- and r0,r2
-- or r2,r4 ! r4 = addr | (unsigned long)&empty_zero_page[0] & ~0x3fff
-- stc sr,r1 ! save SR
-- mov.l 4f,r2
-- or r1,r2
-- mov #32,r3
--1:
-- ldc r2,sr ! set BL bit
-- movca.l r0,@r4
-- ocbi @r4
-- add #32,r4
-- movca.l r0,@r4
-- ocbi @r4
-- add #32,r4
-- movca.l r0,@r4
-- ocbi @r4
-- add #32,r4
-- movca.l r0,@r4
-- ocbi @r4
-- ldc r1,sr ! restore SR
-- dt r3
-- bf/s 1b
-- add #32,r4
--
-- rts
-- nop
-- .align 2
--2: .long 0xffffc000
--3: .long empty_zero_page
--4: .long 0x10000000 ! BL bit
- #endif
-+
-diff -ruN linux-2.6.17-vanilla/arch/sh/mm/consistent.c linux-2.6.17/arch/sh/mm/consistent.c
---- linux-2.6.17-vanilla/arch/sh/mm/consistent.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/mm/consistent.c 2006-07-12 16:54:23.000000000 +0000
-@@ -9,6 +9,8 @@
- */
- #include <linux/mm.h>
- #include <linux/dma-mapping.h>
-+#include <asm/cacheflush.h>
-+#include <asm/addrspace.h>
- #include <asm/io.h>
-
- void *consistent_alloc(gfp_t gfp, size_t size, dma_addr_t *handle)
-diff -ruN linux-2.6.17-vanilla/arch/sh/mm/fault.c linux-2.6.17/arch/sh/mm/fault.c
---- linux-2.6.17-vanilla/arch/sh/mm/fault.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/mm/fault.c 2006-07-12 16:54:23.000000000 +0000
-@@ -1,33 +1,21 @@
--/* $Id: fault.c,v 1.14 2004/01/13 05:52:11 kkojima Exp $
-+/*
-+ * Page fault handler for SH with an MMU.
- *
-- * linux/arch/sh/mm/fault.c
- * Copyright (C) 1999 Niibe Yutaka
- * Copyright (C) 2003 Paul Mundt
- *
- * Based on linux/arch/i386/mm/fault.c:
- * Copyright (C) 1995 Linus Torvalds
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
- */
--
--#include <linux/signal.h>
--#include <linux/sched.h>
- #include <linux/kernel.h>
--#include <linux/errno.h>
--#include <linux/string.h>
--#include <linux/types.h>
--#include <linux/ptrace.h>
--#include <linux/mman.h>
- #include <linux/mm.h>
--#include <linux/smp.h>
--#include <linux/smp_lock.h>
--#include <linux/interrupt.h>
--#include <linux/module.h>
--
-+#include <linux/hardirq.h>
- #include <asm/system.h>
--#include <asm/io.h>
--#include <asm/uaccess.h>
--#include <asm/pgalloc.h>
- #include <asm/mmu_context.h>
--#include <asm/cacheflush.h>
- #include <asm/kgdb.h>
-
- extern void die(const char *,struct pt_regs *,long);
-@@ -187,14 +175,25 @@
- goto no_context;
- }
-
-+#ifdef CONFIG_SH_STORE_QUEUES
-+/*
-+ * This is a special case for the SH-4 store queues, as pages for this
-+ * space still need to be faulted in before it's possible to flush the
-+ * store queue cache for writeout to the remapped region.
-+ */
-+#define P3_ADDR_MAX (P4SEG_STORE_QUE + 0x04000000)
-+#else
-+#define P3_ADDR_MAX P4SEG
-+#endif
-+
- /*
-- * Called with interrupt disabled.
-+ * Called with interrupts disabled.
- */
- asmlinkage int __do_page_fault(struct pt_regs *regs, unsigned long writeaccess,
- unsigned long address)
- {
-- unsigned long addrmax = P4SEG;
- pgd_t *pgd;
-+ pud_t *pud;
- pmd_t *pmd;
- pte_t *pte;
- pte_t entry;
-@@ -207,31 +206,37 @@
- kgdb_bus_err_hook();
- #endif
-
--#ifdef CONFIG_SH_STORE_QUEUES
-- addrmax = P4SEG_STORE_QUE + 0x04000000;
--#endif
--
-- if (address >= P3SEG && address < addrmax) {
-+ /*
-+ * We don't take page faults for P1, P2, and parts of P4, these
-+ * are always mapped, whether it be due to legacy behaviour in
-+ * 29-bit mode, or due to PMB configuration in 32-bit mode.
-+ */
-+ if (address >= P3SEG && address < P3_ADDR_MAX) {
- pgd = pgd_offset_k(address);
- mm = NULL;
-- } else if (address >= TASK_SIZE)
-- return 1;
-- else if (!(mm = current->mm))
-- return 1;
-- else
-- pgd = pgd_offset(mm, address);
-+ } else {
-+ if (unlikely(address >= TASK_SIZE || !(mm = current->mm)))
-+ return 1;
-
-- pmd = pmd_offset(pgd, address);
-+ pgd = pgd_offset(current->mm, address);
-+ }
-+
-+ pud = pud_offset(pgd, address);
-+ if (pud_none_or_clear_bad(pud))
-+ return 1;
-+ pmd = pmd_offset(pud, address);
- if (pmd_none_or_clear_bad(pmd))
- return 1;
-+
- if (mm)
- pte = pte_offset_map_lock(mm, pmd, address, &ptl);
- else
- pte = pte_offset_kernel(pmd, address);
-
- entry = *pte;
-- if (pte_none(entry) || pte_not_present(entry)
-- || (writeaccess && !pte_write(entry)))
-+ if (unlikely(pte_none(entry) || pte_not_present(entry)))
-+ goto unlock;
-+ if (unlikely(writeaccess && !pte_write(entry)))
- goto unlock;
-
- if (writeaccess)
-@@ -243,13 +248,7 @@
- * ITLB is not affected by "ldtlb" instruction.
- * So, we need to flush the entry by ourselves.
- */
--
-- {
-- unsigned long flags;
-- local_irq_save(flags);
-- __flush_tlb_page(get_asid(), address&PAGE_MASK);
-- local_irq_restore(flags);
-- }
-+ __flush_tlb_page(get_asid(), address & PAGE_MASK);
- #endif
-
- set_pte(pte, entry);
-@@ -260,121 +259,3 @@
- pte_unmap_unlock(pte, ptl);
- return ret;
- }
--
--void flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
--{
-- if (vma->vm_mm && vma->vm_mm->context != NO_CONTEXT) {
-- unsigned long flags;
-- unsigned long asid;
-- unsigned long saved_asid = MMU_NO_ASID;
--
-- asid = vma->vm_mm->context & MMU_CONTEXT_ASID_MASK;
-- page &= PAGE_MASK;
--
-- local_irq_save(flags);
-- if (vma->vm_mm != current->mm) {
-- saved_asid = get_asid();
-- set_asid(asid);
-- }
-- __flush_tlb_page(asid, page);
-- if (saved_asid != MMU_NO_ASID)
-- set_asid(saved_asid);
-- local_irq_restore(flags);
-- }
--}
--
--void flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
-- unsigned long end)
--{
-- struct mm_struct *mm = vma->vm_mm;
--
-- if (mm->context != NO_CONTEXT) {
-- unsigned long flags;
-- int size;
--
-- local_irq_save(flags);
-- size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
-- if (size > (MMU_NTLB_ENTRIES/4)) { /* Too many TLB to flush */
-- mm->context = NO_CONTEXT;
-- if (mm == current->mm)
-- activate_context(mm);
-- } else {
-- unsigned long asid = mm->context&MMU_CONTEXT_ASID_MASK;
-- unsigned long saved_asid = MMU_NO_ASID;
--
-- start &= PAGE_MASK;
-- end += (PAGE_SIZE - 1);
-- end &= PAGE_MASK;
-- if (mm != current->mm) {
-- saved_asid = get_asid();
-- set_asid(asid);
-- }
-- while (start < end) {
-- __flush_tlb_page(asid, start);
-- start += PAGE_SIZE;
-- }
-- if (saved_asid != MMU_NO_ASID)
-- set_asid(saved_asid);
-- }
-- local_irq_restore(flags);
-- }
--}
--
--void flush_tlb_kernel_range(unsigned long start, unsigned long end)
--{
-- unsigned long flags;
-- int size;
--
-- local_irq_save(flags);
-- size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
-- if (size > (MMU_NTLB_ENTRIES/4)) { /* Too many TLB to flush */
-- flush_tlb_all();
-- } else {
-- unsigned long asid = init_mm.context&MMU_CONTEXT_ASID_MASK;
-- unsigned long saved_asid = get_asid();
--
-- start &= PAGE_MASK;
-- end += (PAGE_SIZE - 1);
-- end &= PAGE_MASK;
-- set_asid(asid);
-- while (start < end) {
-- __flush_tlb_page(asid, start);
-- start += PAGE_SIZE;
-- }
-- set_asid(saved_asid);
-- }
-- local_irq_restore(flags);
--}
--
--void flush_tlb_mm(struct mm_struct *mm)
--{
-- /* Invalidate all TLB of this process. */
-- /* Instead of invalidating each TLB, we get new MMU context. */
-- if (mm->context != NO_CONTEXT) {
-- unsigned long flags;
--
-- local_irq_save(flags);
-- mm->context = NO_CONTEXT;
-- if (mm == current->mm)
-- activate_context(mm);
-- local_irq_restore(flags);
-- }
--}
--
--void flush_tlb_all(void)
--{
-- unsigned long flags, status;
--
-- /*
-- * Flush all the TLB.
-- *
-- * Write to the MMU control register's bit:
-- * TF-bit for SH-3, TI-bit for SH-4.
-- * It's same position, bit #2.
-- */
-- local_irq_save(flags);
-- status = ctrl_inl(MMUCR);
-- status |= 0x04;
-- ctrl_outl(status, MMUCR);
-- local_irq_restore(flags);
--}
-diff -ruN linux-2.6.17-vanilla/arch/sh/mm/hugetlbpage.c linux-2.6.17/arch/sh/mm/hugetlbpage.c
---- linux-2.6.17-vanilla/arch/sh/mm/hugetlbpage.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/mm/hugetlbpage.c 2006-07-12 16:54:23.000000000 +0000
-@@ -27,61 +27,41 @@
- pte_t *huge_pte_alloc(struct mm_struct *mm, unsigned long addr)
- {
- pgd_t *pgd;
-+ pud_t *pud;
- pmd_t *pmd;
- pte_t *pte = NULL;
-
- pgd = pgd_offset(mm, addr);
- if (pgd) {
-- pmd = pmd_alloc(mm, pgd, addr);
-- if (pmd)
-- pte = pte_alloc_map(mm, pmd, addr);
-+ pud = pud_alloc(mm, pgd, addr);
-+ if (pud) {
-+ pmd = pmd_alloc(mm, pud, addr);
-+ if (pmd)
-+ pte = pte_alloc_map(mm, pmd, addr);
-+ }
- }
-+
- return pte;
- }
-
- pte_t *huge_pte_offset(struct mm_struct *mm, unsigned long addr)
- {
- pgd_t *pgd;
-+ pud_t *pud;
- pmd_t *pmd;
- pte_t *pte = NULL;
-
- pgd = pgd_offset(mm, addr);
- if (pgd) {
-- pmd = pmd_offset(pgd, addr);
-- if (pmd)
-- pte = pte_offset_map(pmd, addr);
-- }
-- return pte;
--}
--
--void set_huge_pte_at(struct mm_struct *mm, unsigned long addr,
-- pte_t *ptep, pte_t entry)
--{
-- int i;
--
-- for (i = 0; i < (1 << HUGETLB_PAGE_ORDER); i++) {
-- set_pte_at(mm, addr, ptep, entry);
-- ptep++;
-- addr += PAGE_SIZE;
-- pte_val(entry) += PAGE_SIZE;
-+ pud = pud_offset(pgd, addr);
-+ if (pud) {
-+ pmd = pmd_offset(pud, addr);
-+ if (pmd)
-+ pte = pte_offset_map(pmd, addr);
-+ }
- }
--}
--
--pte_t huge_ptep_get_and_clear(struct mm_struct *mm, unsigned long addr,
-- pte_t *ptep)
--{
-- pte_t entry;
-- int i;
--
-- entry = *ptep;
-
-- for (i = 0; i < (1 << HUGETLB_PAGE_ORDER); i++) {
-- pte_clear(mm, addr, ptep);
-- addr += PAGE_SIZE;
-- ptep++;
-- }
--
-- return entry;
-+ return pte;
- }
-
- struct page *follow_huge_addr(struct mm_struct *mm,
-diff -ruN linux-2.6.17-vanilla/arch/sh/mm/init.c linux-2.6.17/arch/sh/mm/init.c
---- linux-2.6.17-vanilla/arch/sh/mm/init.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/mm/init.c 2006-07-12 16:54:23.000000000 +0000
-@@ -61,7 +61,7 @@
-
- printk("Mem-info:\n");
- show_free_areas();
-- printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10));
-+ printk("Free swap: %6ldkB\n",nr_swap_pages<<(PAGE_SHIFT-10));
- i = max_mapnr;
- while (i-- > 0) {
- total++;
-@@ -81,6 +81,7 @@
- static void set_pte_phys(unsigned long addr, unsigned long phys, pgprot_t prot)
- {
- pgd_t *pgd;
-+ pud_t *pud;
- pmd_t *pmd;
- pte_t *pte;
-
-@@ -90,7 +91,17 @@
- return;
- }
-
-- pmd = pmd_offset(pgd, addr);
-+ pud = pud_offset(pgd, addr);
-+ if (pud_none(*pud)) {
-+ pmd = (pmd_t *)get_zeroed_page(GFP_ATOMIC);
-+ set_pud(pud, __pud(__pa(pmd) | _KERNPG_TABLE | _PAGE_USER));
-+ if (pmd != pmd_offset(pud, 0)) {
-+ pud_ERROR(*pud);
-+ return;
-+ }
-+ }
-+
-+ pmd = pmd_offset(pud, addr);
- if (pmd_none(*pmd)) {
- pte = (pte_t *)get_zeroed_page(GFP_ATOMIC);
- set_pmd(pmd, __pmd(__pa(pte) | _KERNPG_TABLE | _PAGE_USER));
-diff -ruN linux-2.6.17-vanilla/arch/sh/mm/ioremap.c linux-2.6.17/arch/sh/mm/ioremap.c
---- linux-2.6.17-vanilla/arch/sh/mm/ioremap.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/mm/ioremap.c 2006-07-12 16:54:23.000000000 +0000
-@@ -15,6 +15,7 @@
- #include <linux/vmalloc.h>
- #include <linux/module.h>
- #include <linux/mm.h>
-+#include <linux/pci.h>
- #include <asm/io.h>
- #include <asm/page.h>
- #include <asm/pgalloc.h>
-@@ -135,6 +136,20 @@
- return (void __iomem *)phys_to_virt(phys_addr);
-
- /*
-+ * If we're on an SH7751 or SH7780 PCI controller, PCI memory is
-+ * mapped at the end of the address space (typically 0xfd000000)
-+ * in a non-translatable area, so mapping through page tables for
-+ * this area is not only pointless, but also fundamentally
-+ * broken. Just return the physical address instead.
-+ *
-+ * For boards that map a small PCI memory aperture somewhere in
-+ * P1/P2 space, ioremap() will already do the right thing,
-+ * and we'll never get this far.
-+ */
-+ if (is_pci_memaddr(phys_addr) && is_pci_memaddr(last_addr))
-+ return (void __iomem *)phys_addr;
-+
-+ /*
- * Don't allow anybody to remap normal RAM that we're using..
- */
- if (phys_addr < virt_to_phys(high_memory))
-@@ -192,7 +207,7 @@
- unsigned long vaddr = (unsigned long __force)addr;
- struct vm_struct *p;
-
-- if (PXSEG(vaddr) < P3SEG)
-+ if (PXSEG(vaddr) < P3SEG || is_pci_memaddr(vaddr))
- return;
-
- #ifdef CONFIG_32BIT
-diff -ruN linux-2.6.17-vanilla/arch/sh/mm/pg-sh4.c linux-2.6.17/arch/sh/mm/pg-sh4.c
---- linux-2.6.17-vanilla/arch/sh/mm/pg-sh4.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/mm/pg-sh4.c 2006-07-12 16:54:23.000000000 +0000
-@@ -2,7 +2,7 @@
- * arch/sh/mm/pg-sh4.c
- *
- * Copyright (C) 1999, 2000, 2002 Niibe Yutaka
-- * Copyright (C) 2002 Paul Mundt
-+ * Copyright (C) 2002 - 2005 Paul Mundt
- *
- * Released under the terms of the GNU GPL v2.0.
- */
-@@ -24,6 +24,8 @@
-
- extern struct semaphore p3map_sem[];
-
-+#define CACHE_ALIAS (cpu_data->dcache.alias_mask)
-+
- /*
- * clear_user_page
- * @to: P1 address
-@@ -36,14 +38,15 @@
- if (((address ^ (unsigned long)to) & CACHE_ALIAS) == 0)
- clear_page(to);
- else {
-- pgprot_t pgprot = __pgprot(_PAGE_PRESENT |
-+ pgprot_t pgprot = __pgprot(_PAGE_PRESENT |
- _PAGE_RW | _PAGE_CACHABLE |
-- _PAGE_DIRTY | _PAGE_ACCESSED |
-+ _PAGE_DIRTY | _PAGE_ACCESSED |
- _PAGE_HW_SHARED | _PAGE_FLAGS_HARD);
- unsigned long phys_addr = PHYSADDR(to);
- unsigned long p3_addr = P3SEG + (address & CACHE_ALIAS);
-- pgd_t *dir = pgd_offset_k(p3_addr);
-- pmd_t *pmd = pmd_offset(dir, p3_addr);
-+ pgd_t *pgd = pgd_offset_k(p3_addr);
-+ pud_t *pud = pud_offset(pgd, p3_addr);
-+ pmd_t *pmd = pmd_offset(pud, p3_addr);
- pte_t *pte = pte_offset_kernel(pmd, p3_addr);
- pte_t entry;
- unsigned long flags;
-@@ -68,21 +71,22 @@
- * @address: U0 address to be mapped
- * @page: page (virt_to_page(to))
- */
--void copy_user_page(void *to, void *from, unsigned long address,
-+void copy_user_page(void *to, void *from, unsigned long address,
- struct page *page)
- {
- __set_bit(PG_mapped, &page->flags);
- if (((address ^ (unsigned long)to) & CACHE_ALIAS) == 0)
- copy_page(to, from);
- else {
-- pgprot_t pgprot = __pgprot(_PAGE_PRESENT |
-+ pgprot_t pgprot = __pgprot(_PAGE_PRESENT |
- _PAGE_RW | _PAGE_CACHABLE |
-- _PAGE_DIRTY | _PAGE_ACCESSED |
-+ _PAGE_DIRTY | _PAGE_ACCESSED |
- _PAGE_HW_SHARED | _PAGE_FLAGS_HARD);
- unsigned long phys_addr = PHYSADDR(to);
- unsigned long p3_addr = P3SEG + (address & CACHE_ALIAS);
-- pgd_t *dir = pgd_offset_k(p3_addr);
-- pmd_t *pmd = pmd_offset(dir, p3_addr);
-+ pgd_t *pgd = pgd_offset_k(p3_addr);
-+ pud_t *pud = pud_offset(pgd, p3_addr);
-+ pmd_t *pmd = pmd_offset(pud, p3_addr);
- pte_t *pte = pte_offset_kernel(pmd, p3_addr);
- pte_t entry;
- unsigned long flags;
-diff -ruN linux-2.6.17-vanilla/arch/sh/mm/pmb.c linux-2.6.17/arch/sh/mm/pmb.c
---- linux-2.6.17-vanilla/arch/sh/mm/pmb.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/mm/pmb.c 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1,404 @@
-+/*
-+ * arch/sh/mm/pmb.c
-+ *
-+ * Privileged Space Mapping Buffer (PMB) Support.
-+ *
-+ * Copyright (C) 2005, 2006 Paul Mundt
-+ *
-+ * P1/P2 Section mapping definitions from map32.h, which was:
-+ *
-+ * Copyright 2003 (c) Lineo Solutions,Inc.
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ */
-+#include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <linux/module.h>
-+#include <linux/slab.h>
-+#include <linux/bitops.h>
-+#include <linux/debugfs.h>
-+#include <linux/fs.h>
-+#include <linux/seq_file.h>
-+#include <linux/err.h>
-+#include <asm/system.h>
-+#include <asm/uaccess.h>
-+#include <asm/pgtable.h>
-+#include <asm/mmu.h>
-+#include <asm/io.h>
-+
-+#define NR_PMB_ENTRIES 16
-+
-+static kmem_cache_t *pmb_cache;
-+static unsigned long pmb_map;
-+
-+static struct pmb_entry pmb_init_map[] = {
-+ /* vpn ppn flags (ub/sz/c/wt) */
-+
-+ /* P1 Section Mappings */
-+ { 0x80000000, 0x00000000, PMB_SZ_64M | PMB_C, },
-+ { 0x84000000, 0x04000000, PMB_SZ_64M | PMB_C, },
-+ { 0x88000000, 0x08000000, PMB_SZ_128M | PMB_C, },
-+ { 0x90000000, 0x10000000, PMB_SZ_64M | PMB_C, },
-+ { 0x94000000, 0x14000000, PMB_SZ_64M | PMB_C, },
-+ { 0x98000000, 0x18000000, PMB_SZ_64M | PMB_C, },
-+
-+ /* P2 Section Mappings */
-+ { 0xa0000000, 0x00000000, PMB_UB | PMB_SZ_64M | PMB_WT, },
-+ { 0xa4000000, 0x04000000, PMB_UB | PMB_SZ_64M | PMB_WT, },
-+ { 0xa8000000, 0x08000000, PMB_UB | PMB_SZ_128M | PMB_WT, },
-+ { 0xb0000000, 0x10000000, PMB_UB | PMB_SZ_64M | PMB_WT, },
-+ { 0xb4000000, 0x14000000, PMB_UB | PMB_SZ_64M | PMB_WT, },
-+ { 0xb8000000, 0x18000000, PMB_UB | PMB_SZ_64M | PMB_WT, },
-+};
-+
-+static inline unsigned long mk_pmb_entry(unsigned int entry)
-+{
-+ return (entry & PMB_E_MASK) << PMB_E_SHIFT;
-+}
-+
-+static inline unsigned long mk_pmb_addr(unsigned int entry)
-+{
-+ return mk_pmb_entry(entry) | PMB_ADDR;
-+}
-+
-+static inline unsigned long mk_pmb_data(unsigned int entry)
-+{
-+ return mk_pmb_entry(entry) | PMB_DATA;
-+}
-+
-+struct pmb_entry *pmb_alloc(unsigned long vpn, unsigned long ppn,
-+ unsigned long flags)
-+{
-+ struct pmb_entry *pmbe;
-+
-+ pmbe = kmem_cache_alloc(pmb_cache, GFP_KERNEL);
-+ if (!pmbe)
-+ return ERR_PTR(-ENOMEM);
-+
-+ pmbe->vpn = vpn;
-+ pmbe->ppn = ppn;
-+ pmbe->flags = flags;
-+
-+ return pmbe;
-+}
-+
-+void pmb_free(struct pmb_entry *pmbe)
-+{
-+ kmem_cache_free(pmb_cache, pmbe);
-+}
-+
-+/*
-+ * Must be in P2 for __set_pmb_entry()
-+ */
-+int __set_pmb_entry(unsigned long vpn, unsigned long ppn,
-+ unsigned long flags, int *entry)
-+{
-+ unsigned int pos = *entry;
-+
-+ if (unlikely(pos == PMB_NO_ENTRY))
-+ pos = find_first_zero_bit(&pmb_map, NR_PMB_ENTRIES);
-+
-+repeat:
-+ if (unlikely(pos > NR_PMB_ENTRIES))
-+ return -ENOSPC;
-+
-+ if (test_and_set_bit(pos, &pmb_map)) {
-+ pos = find_first_zero_bit(&pmb_map, NR_PMB_ENTRIES);
-+ goto repeat;
-+ }
-+
-+ ctrl_outl(vpn | PMB_V, mk_pmb_addr(pos));
-+
-+#ifdef CONFIG_SH_WRITETHROUGH
-+ /*
-+ * When we are in 32-bit address extended mode, CCR.CB becomes
-+ * invalid, so care must be taken to manually adjust cacheable
-+ * translations.
-+ */
-+ if (likely(flags & PMB_C))
-+ flags |= PMB_WT;
-+#endif
-+
-+ ctrl_outl(ppn | flags | PMB_V, mk_pmb_data(pos));
-+
-+ *entry = pos;
-+
-+ return 0;
-+}
-+
-+int set_pmb_entry(struct pmb_entry *pmbe)
-+{
-+ int ret;
-+
-+ jump_to_P2();
-+ ret = __set_pmb_entry(pmbe->vpn, pmbe->ppn, pmbe->flags, &pmbe->entry);
-+ back_to_P1();
-+
-+ return ret;
-+}
-+
-+void clear_pmb_entry(struct pmb_entry *pmbe)
-+{
-+ unsigned int entry = pmbe->entry;
-+ unsigned long addr;
-+
-+ /*
-+ * Don't allow clearing of wired init entries, P1 or P2 access
-+ * without a corresponding mapping in the PMB will lead to reset
-+ * by the TLB.
-+ */
-+ if (unlikely(entry < ARRAY_SIZE(pmb_init_map) ||
-+ entry >= NR_PMB_ENTRIES))
-+ return;
-+
-+ jump_to_P2();
-+
-+ /* Clear V-bit */
-+ addr = mk_pmb_addr(entry);
-+ ctrl_outl(ctrl_inl(addr) & ~PMB_V, addr);
-+
-+ addr = mk_pmb_data(entry);
-+ ctrl_outl(ctrl_inl(addr) & ~PMB_V, addr);
-+
-+ back_to_P1();
-+
-+ clear_bit(entry, &pmb_map);
-+}
-+
-+static DEFINE_SPINLOCK(pmb_list_lock);
-+static struct pmb_entry *pmb_list;
-+
-+static inline void pmb_list_add(struct pmb_entry *pmbe)
-+{
-+ struct pmb_entry **p, *tmp;
-+
-+ p = &pmb_list;
-+ while ((tmp = *p) != NULL)
-+ p = &tmp->next;
-+
-+ pmbe->next = tmp;
-+ *p = pmbe;
-+}
-+
-+static inline void pmb_list_del(struct pmb_entry *pmbe)
-+{
-+ struct pmb_entry **p, *tmp;
-+
-+ for (p = &pmb_list; (tmp = *p); p = &tmp->next)
-+ if (tmp == pmbe) {
-+ *p = tmp->next;
-+ return;
-+ }
-+}
-+
-+static struct {
-+ unsigned long size;
-+ int flag;
-+} pmb_sizes[] = {
-+ { .size = 0x20000000, .flag = PMB_SZ_512M, },
-+ { .size = 0x08000000, .flag = PMB_SZ_128M, },
-+ { .size = 0x04000000, .flag = PMB_SZ_64M, },
-+ { .size = 0x01000000, .flag = PMB_SZ_16M, },
-+};
-+
-+long pmb_remap(unsigned long vaddr, unsigned long phys,
-+ unsigned long size, unsigned long flags)
-+{
-+ struct pmb_entry *pmbp;
-+ unsigned long wanted;
-+ int pmb_flags, i;
-+
-+ /* Convert typical pgprot value to the PMB equivalent */
-+ if (flags & _PAGE_CACHABLE) {
-+ if (flags & _PAGE_WT)
-+ pmb_flags = PMB_WT;
-+ else
-+ pmb_flags = PMB_C;
-+ } else
-+ pmb_flags = PMB_WT | PMB_UB;
-+
-+ pmbp = NULL;
-+ wanted = size;
-+
-+again:
-+ for (i = 0; i < ARRAY_SIZE(pmb_sizes); i++) {
-+ struct pmb_entry *pmbe;
-+ int ret;
-+
-+ if (size < pmb_sizes[i].size)
-+ continue;
-+
-+ pmbe = pmb_alloc(vaddr, phys, pmb_flags | pmb_sizes[i].flag);
-+ if (IS_ERR(pmbe))
-+ return PTR_ERR(pmbe);
-+
-+ ret = set_pmb_entry(pmbe);
-+ if (ret != 0) {
-+ pmb_free(pmbe);
-+ return -EBUSY;
-+ }
-+
-+ phys += pmb_sizes[i].size;
-+ vaddr += pmb_sizes[i].size;
-+ size -= pmb_sizes[i].size;
-+
-+ /*
-+ * Link adjacent entries that span multiple PMB entries
-+ * for easier tear-down.
-+ */
-+ if (likely(pmbp))
-+ pmbp->link = pmbe;
-+
-+ pmbp = pmbe;
-+ }
-+
-+ if (size >= 0x1000000)
-+ goto again;
-+
-+ return wanted - size;
-+}
-+
-+void pmb_unmap(unsigned long addr)
-+{
-+ struct pmb_entry **p, *pmbe;
-+
-+ for (p = &pmb_list; (pmbe = *p); p = &pmbe->next)
-+ if (pmbe->vpn == addr)
-+ break;
-+
-+ if (unlikely(!pmbe))
-+ return;
-+
-+ WARN_ON(!test_bit(pmbe->entry, &pmb_map));
-+
-+ do {
-+ struct pmb_entry *pmblink = pmbe;
-+
-+ clear_pmb_entry(pmbe);
-+ pmbe = pmblink->link;
-+
-+ pmb_free(pmblink);
-+ } while (pmbe);
-+}
-+
-+static void pmb_cache_ctor(void *pmb, kmem_cache_t *cachep, unsigned long flags)
-+{
-+ struct pmb_entry *pmbe = pmb;
-+
-+ memset(pmb, 0, sizeof(struct pmb_entry));
-+
-+ spin_lock_irq(&pmb_list_lock);
-+
-+ pmbe->entry = PMB_NO_ENTRY;
-+ pmb_list_add(pmbe);
-+
-+ spin_unlock_irq(&pmb_list_lock);
-+}
-+
-+static void pmb_cache_dtor(void *pmb, kmem_cache_t *cachep, unsigned long flags)
-+{
-+ spin_lock_irq(&pmb_list_lock);
-+ pmb_list_del(pmb);
-+ spin_unlock_irq(&pmb_list_lock);
-+}
-+
-+static int __init pmb_init(void)
-+{
-+ unsigned int nr_entries = ARRAY_SIZE(pmb_init_map);
-+ unsigned int entry;
-+
-+ BUG_ON(unlikely(nr_entries >= NR_PMB_ENTRIES));
-+
-+ pmb_cache = kmem_cache_create("pmb", sizeof(struct pmb_entry),
-+ 0, 0, pmb_cache_ctor, pmb_cache_dtor);
-+ BUG_ON(!pmb_cache);
-+
-+ jump_to_P2();
-+
-+ /*
-+ * Ordering is important, P2 must be mapped in the PMB before we
-+ * can set PMB.SE, and P1 must be mapped before we jump back to
-+ * P1 space.
-+ */
-+ for (entry = 0; entry < nr_entries; entry++) {
-+ struct pmb_entry *pmbe = pmb_init_map + entry;
-+
-+ __set_pmb_entry(pmbe->vpn, pmbe->ppn, pmbe->flags, &entry);
-+ }
-+
-+ ctrl_outl(0, PMB_IRMCR);
-+
-+ /* PMB.SE and UB[7] */
-+ ctrl_outl((1 << 31) | (1 << 7), PMB_PASCR);
-+
-+ back_to_P1();
-+
-+ return 0;
-+}
-+
-+arch_initcall(pmb_init);
-+
-+#ifdef CONFIG_DEBUG_FS
-+static int pmb_seq_show(struct seq_file *file, void *iter)
-+{
-+ int i;
-+
-+ seq_printf(file, "V: Valid, C: Cacheable, WT: Write-Through\n"
-+ "CB: Copy-Back, B: Buffered, UB: Unbuffered\n");
-+ seq_printf(file, "ety vpn ppn size flags\n");
-+
-+ for (i = 0; i < NR_PMB_ENTRIES; i++) {
-+ unsigned long addr, data;
-+ unsigned int size;
-+ char *sz_str = NULL;
-+
-+ addr = ctrl_inl(mk_pmb_addr(i));
-+ data = ctrl_inl(mk_pmb_data(i));
-+
-+ size = data & PMB_SZ_MASK;
-+ sz_str = (size == PMB_SZ_16M) ? " 16MB":
-+ (size == PMB_SZ_64M) ? " 64MB":
-+ (size == PMB_SZ_128M) ? "128MB":
-+ "512MB";
-+
-+ /* 02: V 0x88 0x08 128MB C CB B */
-+ seq_printf(file, "%02d: %c 0x%02lx 0x%02lx %s %c %s %s\n",
-+ i, ((addr & PMB_V) && (data & PMB_V)) ? 'V' : ' ',
-+ (addr >> 24) & 0xff, (data >> 24) & 0xff,
-+ sz_str, (data & PMB_C) ? 'C' : ' ',
-+ (data & PMB_WT) ? "WT" : "CB",
-+ (data & PMB_UB) ? "UB" : " B");
-+ }
-+
-+ return 0;
-+}
-+
-+static int pmb_debugfs_open(struct inode *inode, struct file *file)
-+{
-+ return single_open(file, pmb_seq_show, NULL);
-+}
-+
-+static struct file_operations pmb_debugfs_fops = {
-+ .owner = THIS_MODULE,
-+ .open = pmb_debugfs_open,
-+ .read = seq_read,
-+ .llseek = seq_lseek,
-+ .release = seq_release,
-+};
-+
-+static int __init pmb_debugfs_init(void)
-+{
-+ struct dentry *dentry;
-+
-+ dentry = debugfs_create_file("pmb", S_IFREG | S_IRUGO,
-+ NULL, NULL, &pmb_debugfs_fops);
-+ if (IS_ERR(dentry))
-+ return PTR_ERR(dentry);
-+
-+ return 0;
-+}
-+
-+postcore_initcall(pmb_debugfs_init);
-+#endif
-diff -ruN linux-2.6.17-vanilla/arch/sh/mm/tlb-flush.c linux-2.6.17/arch/sh/mm/tlb-flush.c
---- linux-2.6.17-vanilla/arch/sh/mm/tlb-flush.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/mm/tlb-flush.c 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1,132 @@
-+/*
-+ * TLB flushing operations for SH with an MMU.
-+ *
-+ * Copyright (C) 1999 Niibe Yutaka
-+ * Copyright (C) 2003 Paul Mundt
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ */
-+#include <linux/mm.h>
-+#include <asm/mmu_context.h>
-+#include <asm/tlbflush.h>
-+
-+void flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
-+{
-+ if (vma->vm_mm && vma->vm_mm->context != NO_CONTEXT) {
-+ unsigned long flags;
-+ unsigned long asid;
-+ unsigned long saved_asid = MMU_NO_ASID;
-+
-+ asid = vma->vm_mm->context & MMU_CONTEXT_ASID_MASK;
-+ page &= PAGE_MASK;
-+
-+ local_irq_save(flags);
-+ if (vma->vm_mm != current->mm) {
-+ saved_asid = get_asid();
-+ set_asid(asid);
-+ }
-+ __flush_tlb_page(asid, page);
-+ if (saved_asid != MMU_NO_ASID)
-+ set_asid(saved_asid);
-+ local_irq_restore(flags);
-+ }
-+}
-+
-+void flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
-+ unsigned long end)
-+{
-+ struct mm_struct *mm = vma->vm_mm;
-+
-+ if (mm->context != NO_CONTEXT) {
-+ unsigned long flags;
-+ int size;
-+
-+ local_irq_save(flags);
-+ size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
-+ if (size > (MMU_NTLB_ENTRIES/4)) { /* Too many TLB to flush */
-+ mm->context = NO_CONTEXT;
-+ if (mm == current->mm)
-+ activate_context(mm);
-+ } else {
-+ unsigned long asid = mm->context&MMU_CONTEXT_ASID_MASK;
-+ unsigned long saved_asid = MMU_NO_ASID;
-+
-+ start &= PAGE_MASK;
-+ end += (PAGE_SIZE - 1);
-+ end &= PAGE_MASK;
-+ if (mm != current->mm) {
-+ saved_asid = get_asid();
-+ set_asid(asid);
-+ }
-+ while (start < end) {
-+ __flush_tlb_page(asid, start);
-+ start += PAGE_SIZE;
-+ }
-+ if (saved_asid != MMU_NO_ASID)
-+ set_asid(saved_asid);
-+ }
-+ local_irq_restore(flags);
-+ }
-+}
-+
-+void flush_tlb_kernel_range(unsigned long start, unsigned long end)
-+{
-+ unsigned long flags;
-+ int size;
-+
-+ local_irq_save(flags);
-+ size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
-+ if (size > (MMU_NTLB_ENTRIES/4)) { /* Too many TLB to flush */
-+ flush_tlb_all();
-+ } else {
-+ unsigned long asid = init_mm.context&MMU_CONTEXT_ASID_MASK;
-+ unsigned long saved_asid = get_asid();
-+
-+ start &= PAGE_MASK;
-+ end += (PAGE_SIZE - 1);
-+ end &= PAGE_MASK;
-+ set_asid(asid);
-+ while (start < end) {
-+ __flush_tlb_page(asid, start);
-+ start += PAGE_SIZE;
-+ }
-+ set_asid(saved_asid);
-+ }
-+ local_irq_restore(flags);
-+}
-+
-+void flush_tlb_mm(struct mm_struct *mm)
-+{
-+ /* Invalidate all TLB of this process. */
-+ /* Instead of invalidating each TLB, we get new MMU context. */
-+ if (mm->context != NO_CONTEXT) {
-+ unsigned long flags;
-+
-+ local_irq_save(flags);
-+ mm->context = NO_CONTEXT;
-+ if (mm == current->mm)
-+ activate_context(mm);
-+ local_irq_restore(flags);
-+ }
-+}
-+
-+void flush_tlb_all(void)
-+{
-+ unsigned long flags, status;
-+
-+ /*
-+ * Flush all the TLB.
-+ *
-+ * Write to the MMU control register's bit:
-+ * TF-bit for SH-3, TI-bit for SH-4.
-+ * It's same position, bit #2.
-+ */
-+ local_irq_save(flags);
-+ status = ctrl_inl(MMUCR);
-+ status |= 0x04;
-+ ctrl_outl(status, MMUCR);
-+ ctrl_barrier();
-+ local_irq_restore(flags);
-+}
-diff -ruN linux-2.6.17-vanilla/arch/sh/mm/tlb-sh4.c linux-2.6.17/arch/sh/mm/tlb-sh4.c
---- linux-2.6.17-vanilla/arch/sh/mm/tlb-sh4.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/mm/tlb-sh4.c 2006-07-12 16:54:23.000000000 +0000
-@@ -36,7 +36,6 @@
- unsigned long vpn;
- struct page *page;
- unsigned long pfn;
-- unsigned long ptea;
-
- /* Ptrace may call this routine. */
- if (vma && current->active_mm != vma->vm_mm)
-@@ -59,10 +58,11 @@
- ctrl_outl(vpn, MMU_PTEH);
-
- pteval = pte_val(pte);
-+
- /* Set PTEA register */
-- /* TODO: make this look less hacky */
-- ptea = ((pteval >> 28) & 0xe) | (pteval & 0x1);
-- ctrl_outl(ptea, MMU_PTEA);
-+ if (cpu_data->flags & CPU_HAS_PTEA)
-+ /* TODO: make this look less hacky */
-+ ctrl_outl(((pteval >> 28) & 0xe) | (pteval & 0x1), MMU_PTEA);
-
- /* Set PTEL register */
- pteval &= _PAGE_FLAGS_HARDWARE_MASK; /* drop software flags */
-diff -ruN linux-2.6.17-vanilla/arch/sh/oprofile/CVS/Entries linux-2.6.17/arch/sh/oprofile/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/oprofile/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/oprofile/CVS/Entries 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1,5 @@
-+/Kconfig/1.1/Sun Oct 12 21:34:48 2003//
-+/Makefile/1.4/Sun Aug 21 23:08:54 2005//
-+/op_model_null.c/1.2/Wed Mar 2 13:02:56 2005//
-+/op_model_sh7750.c/1.2/Wed Mar 2 13:02:57 2005/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/oprofile/CVS/Repository linux-2.6.17/arch/sh/oprofile/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/oprofile/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/oprofile/CVS/Repository 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/oprofile
-diff -ruN linux-2.6.17-vanilla/arch/sh/oprofile/CVS/Root linux-2.6.17/arch/sh/oprofile/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/oprofile/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/oprofile/CVS/Root 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/oprofile/Makefile linux-2.6.17/arch/sh/oprofile/Makefile
---- linux-2.6.17-vanilla/arch/sh/oprofile/Makefile 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/oprofile/Makefile 2006-07-12 16:54:23.000000000 +0000
-@@ -7,7 +7,11 @@
- timer_int.o )
-
- profdrvr-y := op_model_null.o
-+
-+# SH7750-style performance counters exist across 7750/7750S and 7091.
-+profdrvr-$(CONFIG_CPU_SUBTYPE_SH7750S) := op_model_sh7750.o
- profdrvr-$(CONFIG_CPU_SUBTYPE_SH7750) := op_model_sh7750.o
-+profdrvr-$(CONFIG_CPU_SUBTYPE_SH7091) := op_model_sh7750.o
-
- oprofile-y := $(DRIVER_OBJS) $(profdrvr-y)
-
-diff -ruN linux-2.6.17-vanilla/arch/sh/tools/CVS/Entries linux-2.6.17/arch/sh/tools/CVS/Entries
---- linux-2.6.17-vanilla/arch/sh/tools/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/tools/CVS/Entries 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1,4 @@
-+/Makefile/1.2/Fri Sep 24 15:12:43 2004//
-+/gen-mach-types/1.1/Fri Sep 24 15:12:45 2004/-ko/
-+/mach-types/1.15/Thu Jul 6 12:38:12 2006//
-+D
-diff -ruN linux-2.6.17-vanilla/arch/sh/tools/CVS/Repository linux-2.6.17/arch/sh/tools/CVS/Repository
---- linux-2.6.17-vanilla/arch/sh/tools/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/tools/CVS/Repository 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1 @@
-+linux/arch/sh/tools
-diff -ruN linux-2.6.17-vanilla/arch/sh/tools/CVS/Root linux-2.6.17/arch/sh/tools/CVS/Root
---- linux-2.6.17-vanilla/arch/sh/tools/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/arch/sh/tools/CVS/Root 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/arch/sh/tools/mach-types linux-2.6.17/arch/sh/tools/mach-types
---- linux-2.6.17-vanilla/arch/sh/tools/mach-types 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/arch/sh/tools/mach-types 2006-07-12 16:54:23.000000000 +0000
-@@ -7,7 +7,7 @@
- #
- SE SH_SOLUTION_ENGINE
- 7751SE SH_7751_SOLUTION_ENGINE
--7300SE SH_7300_SOLUTION_ENGINE
-+7300SE SH_7300_SOLUTION_ENGINE
- 73180SE SH_73180_SOLUTION_ENGINE
- 7751SYSTEMH SH_7751_SYSTEMH
- HP6XX SH_HP6XX
-@@ -25,4 +25,7 @@
- EDOSK7705 SH_EDOSK7705
- SH4202_MICRODEV SH_SH4202_MICRODEV
- SH03 SH_SH03
--
-+LANDISK SH_LANDISK
-+R7780RP SH_R7780RP
-+R7780MP SH_R7780MP
-+TITAN SH_TITAN
-diff -ruN linux-2.6.17-vanilla/drivers/CVS/Entries linux-2.6.17/drivers/CVS/Entries
---- linux-2.6.17-vanilla/drivers/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/CVS/Entries 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1,12 @@
-+D/char////
-+D/i2c////
-+D/ide////
-+D/input////
-+D/mtd////
-+D/net////
-+D/pcmcia////
-+D/serial////
-+D/sh////
-+D/usb////
-+D/video////
-+D/rtc////
-diff -ruN linux-2.6.17-vanilla/drivers/CVS/Repository linux-2.6.17/drivers/CVS/Repository
---- linux-2.6.17-vanilla/drivers/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/CVS/Repository 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1 @@
-+linux/drivers
-diff -ruN linux-2.6.17-vanilla/drivers/CVS/Root linux-2.6.17/drivers/CVS/Root
---- linux-2.6.17-vanilla/drivers/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/CVS/Root 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/drivers/char/CVS/Entries linux-2.6.17/drivers/char/CVS/Entries
---- linux-2.6.17-vanilla/drivers/char/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/char/CVS/Entries 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1,8 @@
-+/rs5c313_rtc.c/1.1/Thu Sep 29 07:19:20 2005/-ko/
-+/rtc.c/1.8/Mon Mar 27 21:06:14 2006/-ko/
-+/rtc9701_rtc.c/1.2/Mon May 30 06:24:28 2005/-ko/
-+/sh03rtc.c/1.3/Wed Jan 18 05:37:19 2006/-ko/
-+D/watchdog////
-+/Kconfig/1.15/Wed Jul 5 14:50:58 2006/-ko/
-+/Makefile/1.50/Wed Jul 5 14:50:59 2006/-ko/
-+/sysrq.c/1.17/Wed Jul 5 14:50:59 2006/-ko/
-diff -ruN linux-2.6.17-vanilla/drivers/char/CVS/Repository linux-2.6.17/drivers/char/CVS/Repository
---- linux-2.6.17-vanilla/drivers/char/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/char/CVS/Repository 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1 @@
-+linux/drivers/char
-diff -ruN linux-2.6.17-vanilla/drivers/char/CVS/Root linux-2.6.17/drivers/char/CVS/Root
---- linux-2.6.17-vanilla/drivers/char/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/char/CVS/Root 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/drivers/char/Kconfig linux-2.6.17/drivers/char/Kconfig
---- linux-2.6.17-vanilla/drivers/char/Kconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/char/Kconfig 2006-07-12 16:54:23.000000000 +0000
-@@ -737,6 +737,22 @@
- To compile this driver as a module, choose M here: the
- module will be called rtc.
-
-+config SH03_RTC
-+ tristate "Enhanced Real Time Clock (SH03) Support"
-+ depends on SH_SH03
-+
-+config RS5C313_RTC
-+ tristate "RICHO RS5C313 RTC Support for LANDISK"
-+ depends on SH_LANDISK
-+ help
-+ Selecting this option will support RICHO RS5C313 RTC for LANDISK.
-+
-+config RTC_9701JE
-+ tristate "EPSON RTC-9701JE support"
-+ depends on SH_RTS7751R2D
-+ help
-+ Selecting this option will support EPSON RTC-9701JE.
-+
- config SGI_DS1286
- tristate "SGI DS1286 RTC support"
- depends on SGI_IP22
-diff -ruN linux-2.6.17-vanilla/drivers/char/Makefile linux-2.6.17/drivers/char/Makefile
---- linux-2.6.17-vanilla/drivers/char/Makefile 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/char/Makefile 2006-07-12 16:54:23.000000000 +0000
-@@ -67,6 +67,9 @@
- obj-$(CONFIG_SGI_IP27_RTC) += ip27-rtc.o
- obj-$(CONFIG_DS1302) += ds1302.o
- obj-$(CONFIG_S3C2410_RTC) += s3c2410-rtc.o
-+obj-$(CONFIG_RTC_9701JE) += rtc9701_rtc.o
-+obj-$(CONFIG_RS5C313_RTC) += rs5c313_rtc.o
-+obj-$(CONFIG_SH03_RTC) += sh03rtc.o
- ifeq ($(CONFIG_GENERIC_NVRAM),y)
- obj-$(CONFIG_NVRAM) += generic_nvram.o
- else
-diff -ruN linux-2.6.17-vanilla/drivers/char/rs5c313_rtc.c linux-2.6.17/drivers/char/rs5c313_rtc.c
---- linux-2.6.17-vanilla/drivers/char/rs5c313_rtc.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/char/rs5c313_rtc.c 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1,855 @@
-+/*
-+ * RICHO RS5C313 Real Time Clock interface for Linux
-+ *
-+ * 2005-09-19 modifed by kogiidena
-+ *
-+ * Copyright (C) 2000 Philipp Rumpf <prumpf@tux.org>
-+ * Copyright (C) 1999 Tetsuya Okada & Niibe Yutaka
-+ *
-+ * Based on code written by Paul Gortmaker.
-+ * Copyright (C) 1996 Paul Gortmaker
-+ *
-+ * This driver allows use of the real time clock (built into
-+ * nearly all computers) from user space. It exports the /dev/rtc
-+ * interface supporting various ioctl() and also the
-+ * /proc/driver/rtc pseudo-file for status information.
-+ *
-+ * The ioctls can be used to set the interrupt behaviour and
-+ * generation rate from the RTC via IRQ 8. Then the /dev/rtc
-+ * interface can be used to make use of these timer interrupts,
-+ * be they interval or alarm based.
-+ *
-+ * The /dev/rtc interface will block on reads until an interrupt
-+ * has been received. If a RTC interrupt has already happened,
-+ * it will output an unsigned long and then block. The output value
-+ * contains the interrupt status in the low byte and the number of
-+ * interrupts since the last read in the remaining high bytes. The
-+ * /dev/rtc interface can also be used with the select(2) call.
-+ *
-+ * 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.
-+ *
-+ * Based on other minimal char device drivers, like Alan's
-+ * watchdog, Ted's random, etc. etc.
-+ *
-+ * 1.07 Paul Gortmaker.
-+ * 1.08 Miquel van Smoorenburg: disallow certain things on the
-+ * DEC Alpha as the CMOS clock is also used for other things.
-+ * 1.09 Nikita Schmidt: epoch support and some Alpha cleanup.
-+ * 1.09a Pete Zaitcev: Sun SPARC
-+ * 1.09b Jeff Garzik: Modularize, init cleanup
-+ * 1.09c Jeff Garzik: SMP cleanup
-+ * 1.10 Paul Barton-Davis: add support for async I/O
-+ * 1.10a Andrea Arcangeli: Alpha updates
-+ * 1.10b Andrew Morton: SMP lock fix
-+ * 1.10c Cesar Barros: SMP locking fixes and cleanup
-+ * 1.10d Paul Gortmaker: delete paranoia check in rtc_exit
-+ * 1.10e Maciej W. Rozycki: Handle DECstation's year weirdness.
-+ * 1.11 Takashi Iwai: Kernel access functions
-+ * rtc_register/rtc_unregister/rtc_control
-+ * 1.11a Daniele Bellucci: Audit create_proc_read_entry in rtc_init
-+ * 1.12 Venkatesh Pallipadi: Hooks for emulating rtc on HPET base-timer
-+ * CONFIG_HPET_EMULATE_RTC
-+ *
-+ */
-+
-+#define RTC_VERSION "1.12"
-+
-+#include <linux/config.h>
-+#include <linux/delay.h>
-+#include <linux/bcd.h>
-+#include <linux/interrupt.h>
-+#include <linux/module.h>
-+#include <linux/kernel.h>
-+#include <linux/types.h>
-+#include <linux/miscdevice.h>
-+#include <linux/ioport.h>
-+#include <linux/fcntl.h>
-+#include <linux/mc146818rtc.h>
-+#include <linux/init.h>
-+#include <linux/poll.h>
-+#include <linux/proc_fs.h>
-+#include <linux/seq_file.h>
-+#include <linux/spinlock.h>
-+#include <linux/sysctl.h>
-+#include <linux/wait.h>
-+#include <asm/current.h>
-+#include <asm/uaccess.h>
-+#include <asm/system.h>
-+#include <asm/io.h>
-+
-+
-+#ifndef CONFIG_SH_LANDISK
-+#error rs5c313 read and write function not defined
-+#endif
-+
-+#ifdef CONFIG_SH_LANDISK
-+/*****************************************************/
-+/* LANDISK dependence part of RS5C313 */
-+/*****************************************************/
-+
-+#define SCSMR1 0xFFE00000
-+#define SCSCR1 0xFFE00008
-+#define SCSMR1_CA 0x80
-+#define SCSCR1_CKE 0x03
-+#define SCSPTR1 0xFFE0001C
-+#define SCSPTR1_EIO 0x80
-+#define SCSPTR1_SPB1IO 0x08
-+#define SCSPTR1_SPB1DT 0x04
-+#define SCSPTR1_SPB0IO 0x02
-+#define SCSPTR1_SPB0DT 0x01
-+
-+#define SDA_OEN SCSPTR1_SPB1IO
-+#define SDA SCSPTR1_SPB1DT
-+#define SCL_OEN SCSPTR1_SPB0IO
-+#define SCL SCSPTR1_SPB0DT
-+
-+/* RICOH RS5C313 CE port */
-+#define RS5C313_CE 0xB0000003
-+
-+/* RICOH RS5C313 CE port bit */
-+#define RS5C313_CE_RTCCE 0x02
-+
-+/* SCSPTR1 data */
-+unsigned char scsptr1_data;
-+
-+#define RS5C313_CEENABLE ctrl_outb(RS5C313_CE_RTCCE, RS5C313_CE);
-+#define RS5C313_CEDISABLE ctrl_outb(0x00, RS5C313_CE)
-+#define RS5C313_MISCOP ctrl_outb(0x02, 0xB0000008)
-+
-+static void rs5c313_initialize(void)
-+{
-+ /* Set SCK as I/O port and Initialize SCSPTR1 data & I/O port. */
-+ ctrl_outb(ctrl_inb(SCSMR1) & ~SCSMR1_CA, SCSMR1);
-+ ctrl_outb(ctrl_inb(SCSCR1) & ~SCSCR1_CKE, SCSCR1);
-+
-+ /* And Initialize SCL for RS5C313 clock */
-+ scsptr1_data = ctrl_inb(SCSPTR1) | SCL; /* SCL:H */
-+ ctrl_outb(scsptr1_data, SCSPTR1);
-+ scsptr1_data = ctrl_inb(SCSPTR1) | SCL_OEN; /* SCL output enable */
-+ ctrl_outb(scsptr1_data, SCSPTR1);
-+ RS5C313_CEDISABLE; /* CE:L */
-+}
-+
-+static void rs5c313_write(unsigned char data)
-+{
-+ int i;
-+
-+ for (i = 0; i < 8; i++) {
-+ /* SDA:Write Data */
-+ scsptr1_data = (scsptr1_data & ~SDA)
-+ | ((((0x80 >> i) & data) >> (7 - i)) << 2);
-+ ctrl_outb(scsptr1_data, SCSPTR1);
-+ if (i == 0) {
-+ scsptr1_data |= SDA_OEN; /* SDA:output enable */
-+ ctrl_outb(scsptr1_data, SCSPTR1);
-+ }
-+ ndelay(700);
-+ scsptr1_data &= ~SCL; /* SCL:L */
-+ ctrl_outb(scsptr1_data, SCSPTR1);
-+ ndelay(700);
-+ scsptr1_data |= SCL; /* SCL:H */
-+ ctrl_outb(scsptr1_data, SCSPTR1);
-+ }
-+
-+ scsptr1_data &= ~SDA_OEN; /* SDA:output disable */
-+ ctrl_outb(scsptr1_data, SCSPTR1);
-+
-+}
-+
-+static unsigned char rs5c313_read_data(void)
-+{
-+ int i;
-+ unsigned char data = 0;
-+
-+ for (i = 0; i < 8; i++) {
-+ ndelay(700);
-+ /* SDA:Read Data */
-+ data |= ((ctrl_inb(SCSPTR1) & SDA) >> 2) << (7 - i);
-+ scsptr1_data &= ~SCL; /* SCL:L */
-+ ctrl_outb(scsptr1_data, SCSPTR1);
-+ ndelay(700);
-+ scsptr1_data |= SCL; /* SCL:H */
-+ ctrl_outb(scsptr1_data, SCSPTR1);
-+ }
-+ return data & 0x0F;
-+}
-+
-+#endif /* CONFIG_SH_LANDISK */
-+
-+
-+/*****************************************************/
-+/* machine independence part of RS5C313 */
-+/*****************************************************/
-+
-+/* RICOH RS5C313 address */
-+#define RS5C313_ADDR_SEC 0x00
-+#define RS5C313_ADDR_SEC10 0x01
-+#define RS5C313_ADDR_MIN 0x02
-+#define RS5C313_ADDR_MIN10 0x03
-+#define RS5C313_ADDR_HOUR 0x04
-+#define RS5C313_ADDR_HOUR10 0x05
-+#define RS5C313_ADDR_WEEK 0x06
-+#define RS5C313_ADDR_INTINTVREG 0x07
-+#define RS5C313_ADDR_DAY 0x08
-+#define RS5C313_ADDR_DAY10 0x09
-+#define RS5C313_ADDR_MON 0x0A
-+#define RS5C313_ADDR_MON10 0x0B
-+#define RS5C313_ADDR_YEAR 0x0C
-+#define RS5C313_ADDR_YEAR10 0x0D
-+#define RS5C313_ADDR_CNTREG 0x0E
-+#define RS5C313_ADDR_TESTREG 0x0F
-+
-+/* RICOH RS5C313 control register */
-+#define RS5C313_CNTREG_ADJ_BSY 0x01
-+#define RS5C313_CNTREG_WTEN_XSTP 0x02
-+#define RS5C313_CNTREG_12_24 0x04
-+#define RS5C313_CNTREG_CTFG 0x08
-+
-+/* RICOH RS5C313 test register */
-+#define RS5C313_TESTREG_TEST 0x01
-+
-+/* RICOH RS5C313 control bit */
-+#define RS5C313_CNTBIT_READ 0x40
-+#define RS5C313_CNTBIT_AD 0x20
-+#define RS5C313_CNTBIT_DT 0x10
-+
-+static unsigned char rs5c313_read_reg(unsigned char addr)
-+{
-+
-+ rs5c313_write(addr | RS5C313_CNTBIT_READ | RS5C313_CNTBIT_AD);
-+ return rs5c313_read_data();
-+
-+}
-+
-+static void rs5c313_write_reg(unsigned char addr, unsigned char data)
-+{
-+ data &= 0x0f;
-+ rs5c313_write(addr | RS5C313_CNTBIT_AD);
-+ rs5c313_write(data | RS5C313_CNTBIT_DT);
-+ return;
-+}
-+
-+#define rs5c313_read_cntreg() rs5c313_read_reg(RS5C313_ADDR_CNTREG)
-+#define rs5c313_write_cntreg(data) rs5c313_write_reg(RS5C313_ADDR_CNTREG,data)
-+#define rs5c313_write_intintvreg(data) rs5c313_write_reg(RS5C313_ADDR_INTINTVREG,data)
-+
-+
-+static void rs5c313_get_cur_time(unsigned char *sec, unsigned char *min,
-+ unsigned char *hr,
-+ unsigned char *day, unsigned char *mon,
-+ unsigned char *yr)
-+{
-+
-+ while (1) {
-+ RS5C313_CEENABLE; /* CE:H */
-+
-+ /* Initialize control reg. 24 hour */
-+ rs5c313_write_cntreg(0x04);
-+
-+ if (!(rs5c313_read_cntreg() & RS5C313_CNTREG_ADJ_BSY))
-+ break;
-+ RS5C313_MISCOP;
-+ RS5C313_CEDISABLE;
-+ ndelay(700); /* CE:L */
-+ }
-+
-+ *sec = rs5c313_read_reg(RS5C313_ADDR_SEC);
-+ *sec |= (rs5c313_read_reg(RS5C313_ADDR_SEC10) << 4);
-+
-+ *min = rs5c313_read_reg(RS5C313_ADDR_MIN);
-+ *min |= (rs5c313_read_reg(RS5C313_ADDR_MIN10) << 4);
-+
-+ *hr = rs5c313_read_reg(RS5C313_ADDR_HOUR);
-+ *hr |= (rs5c313_read_reg(RS5C313_ADDR_HOUR10) << 4);
-+
-+ *day = rs5c313_read_reg(RS5C313_ADDR_DAY);
-+ *day |= (rs5c313_read_reg(RS5C313_ADDR_DAY10) << 4);
-+
-+ *mon = rs5c313_read_reg(RS5C313_ADDR_MON);
-+ *mon |= (rs5c313_read_reg(RS5C313_ADDR_MON10) << 4);
-+
-+ *yr = rs5c313_read_reg(RS5C313_ADDR_YEAR);
-+ *yr |= (rs5c313_read_reg(RS5C313_ADDR_YEAR10) << 4);
-+
-+ RS5C313_CEDISABLE;
-+ ndelay(700); /* CE:L */
-+
-+}
-+
-+static void rs5c313_set_cur_time(unsigned char sec, unsigned char min,
-+ unsigned char hr,
-+ unsigned char day, unsigned char mon,
-+ unsigned char yr)
-+{
-+
-+ /* bysy check. */
-+ while (1) {
-+ RS5C313_CEENABLE; /* CE:H */
-+
-+ /* Initialize control reg. 24 hour */
-+ rs5c313_write_cntreg(0x04);
-+
-+ if (!(rs5c313_read_cntreg() & RS5C313_CNTREG_ADJ_BSY))
-+ break;
-+ RS5C313_MISCOP;
-+ RS5C313_CEDISABLE;
-+ ndelay(700); /* CE:L */
-+ }
-+
-+ rs5c313_write_reg(RS5C313_ADDR_SEC, sec);
-+ rs5c313_write_reg(RS5C313_ADDR_SEC10, (sec >> 4));
-+
-+ rs5c313_write_reg(RS5C313_ADDR_MIN, min);
-+ rs5c313_write_reg(RS5C313_ADDR_MIN10, (min >> 4));
-+
-+ rs5c313_write_reg(RS5C313_ADDR_HOUR, hr);
-+ rs5c313_write_reg(RS5C313_ADDR_HOUR10, (hr >> 4));
-+
-+ rs5c313_write_reg(RS5C313_ADDR_DAY, day);
-+ rs5c313_write_reg(RS5C313_ADDR_DAY10,(day >> 4));
-+
-+ rs5c313_write_reg(RS5C313_ADDR_MON, mon);
-+ rs5c313_write_reg(RS5C313_ADDR_MON10, (mon >> 4));
-+
-+ rs5c313_write_reg(RS5C313_ADDR_YEAR, yr);
-+ rs5c313_write_reg(RS5C313_ADDR_YEAR10, (yr >> 4));
-+
-+ RS5C313_CEDISABLE;
-+ ndelay(700); /* CE:H */
-+
-+}
-+
-+unsigned long rs5c313_get_cmos_time(
-+ unsigned int *BCD_yr, unsigned int *BCD_mon,
-+ unsigned int *BCD_day, unsigned int *BCD_hr,
-+ unsigned int *BCD_min, unsigned int *BCD_sec)
-+{
-+
-+ unsigned int sec128, sec, min, hr, day, mon, yr, yr100;
-+ int clkstop = 0;
-+
-+ /* Set SCK as I/O port and Initialize SCSPTR1 data & I/O port. */
-+ /* And Initialize SCL for RS5C313 clock */
-+ rs5c313_initialize();
-+
-+ again:
-+ /* check XSTP bit for clock stoped */
-+ RS5C313_CEENABLE; /* CE:H */
-+ if (rs5c313_read_cntreg() & RS5C313_CNTREG_WTEN_XSTP) {
-+ /* INT interval reg. OFF */
-+ rs5c313_write_intintvreg(0x00);
-+ /* Initialize control reg. 24 hour & adjust */
-+ rs5c313_write_cntreg(0x07);
-+ /* bysy check. */
-+ while (rs5c313_read_cntreg() & RS5C313_CNTREG_ADJ_BSY)
-+ RS5C313_MISCOP;
-+ /* Initialize control reg. 24 hour */
-+ rs5c313_write_cntreg(0x04);
-+ clkstop = 1;
-+ } else {
-+ clkstop = 0;
-+ }
-+ RS5C313_CEDISABLE;
-+ ndelay(700); /* CE:L */
-+
-+ /* Get current time. */
-+ sec = 0;
-+ min = 0;
-+ hr = 0;
-+ day = 0;
-+ mon = 0;
-+ yr = 0;
-+ rs5c313_get_cur_time((unsigned char *)&sec,
-+ (unsigned char *)&min, (unsigned char *)&hr,
-+ (unsigned char *)&day,
-+ (unsigned char *)&mon, (unsigned char *)&yr);
-+
-+ /* S-3531A count year from 2000 to 2099. */
-+ yr100 = 0x20;
-+ /* S-3531A can't get sec128. */
-+ sec128 = 0;
-+
-+ *BCD_yr = yr;
-+ *BCD_mon = mon;
-+ *BCD_day = day;
-+ *BCD_hr = hr;
-+ *BCD_min = min;
-+ *BCD_sec = sec;
-+
-+ yr100 = BCD2BIN(yr100);
-+ yr = BCD2BIN(yr);
-+ mon = BCD2BIN(mon);
-+ day = BCD2BIN(day);
-+ hr = BCD2BIN(hr);
-+ min = BCD2BIN(min);
-+ sec = BCD2BIN(sec);
-+
-+ if (yr > 99 || mon < 1 || mon > 12 || day > 31 || day < 1 ||
-+ hr > 23 || min > 59 || sec > 59 || clkstop) {
-+ printk(KERN_ERR
-+ "RICHO RS5C313: invalid value, resetting to 1 Jan 2000\n");
-+ /* Reset S-3531A set (20)00year/01month/01day */
-+ /* 00hour 00minute 00second */
-+ sec = 0;
-+ min = 0;
-+ hr = 0;
-+ day = 1;
-+ mon = 1;
-+ yr = 00;
-+ rs5c313_set_cur_time((unsigned char)sec,
-+ (unsigned char)min, (unsigned char)hr,
-+ (unsigned char)day,
-+ (unsigned char)mon, (unsigned char)yr);
-+
-+ goto again;
-+ }
-+
-+ return mktime(yr100 * 100 + yr, mon, day, hr, min, sec);
-+}
-+
-+void rs5c313_set_cmos_time(unsigned int BCD_yr, unsigned int BCD_mon,
-+ unsigned int BCD_day, unsigned int BCD_hr,
-+ unsigned int BCD_min, unsigned int BCD_sec)
-+{
-+
-+ rs5c313_set_cur_time((unsigned char)BCD_sec,
-+ (unsigned char)BCD_min,
-+ (unsigned char)BCD_hr,
-+ (unsigned char)BCD_day,
-+ (unsigned char)BCD_mon, (unsigned char)BCD_yr);
-+
-+}
-+
-+/*****************************************************/
-+/* machine independence part of RTC driver */
-+/*****************************************************/
-+
-+#define RTC_IO_EXTENT 0x8
-+
-+static struct fasync_struct *rtc_async_queue;
-+static DECLARE_WAIT_QUEUE_HEAD(rtc_wait);
-+static ssize_t rtc_read(struct file *file, char __user *buf,
-+ size_t count, loff_t *ppos);
-+static int rtc_ioctl(struct inode *inode, struct file *file,
-+ unsigned int cmd, unsigned long arg);
-+static int rtc_proc_open(struct inode *inode, struct file *file);
-+
-+/*
-+ * Bits in rtc_status. (6 bits of room for future expansion)
-+ */
-+
-+#define RTC_IS_OPEN 0x01 /* means /dev/rtc is in use */
-+#define RTC_TIMER_ON 0x02 /* missed irq timer active */
-+
-+/*
-+ * rtc_status is never changed by rtc_interrupt, and ioctl/open/close is
-+ * protected by the big kernel lock. However, ioctl can still disable the timer
-+ * in rtc_status and then with del_timer after the interrupt has read
-+ * rtc_status but before mod_timer is called, which would then reenable the
-+ * timer (but you would need to have an awful timing before you'd trip on it)
-+ */
-+static unsigned long rtc_status = 0; /* bitmapped status byte. */
-+static unsigned long rtc_freq = 0; /* Current periodic IRQ rate */
-+static unsigned long rtc_irq_data = 0; /* our output to the world */
-+static unsigned long rtc_max_user_freq = 64; /* > this, need CAP_SYS_RESOURCE */
-+
-+/*
-+ * If this driver ever becomes modularised, it will be really nice
-+ * to make the epoch retain its value across module reload...
-+ */
-+
-+static unsigned long epoch = 1900; /* year corresponding to 0x00 */
-+
-+static const unsigned char days_in_mo[] =
-+{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
-+
-+/*
-+ * sysctl-tuning infrastructure.
-+ */
-+static ctl_table rtc_table[] = {
-+ {
-+ .ctl_name = 1,
-+ .procname = "max-user-freq",
-+ .data = &rtc_max_user_freq,
-+ .maxlen = sizeof(int),
-+ .mode = 0644,
-+ .proc_handler = &proc_dointvec,
-+ },
-+ { .ctl_name = 0 }
-+};
-+
-+static ctl_table rtc_root[] = {
-+ {
-+ .ctl_name = 1,
-+ .procname = "rtc",
-+ .maxlen = 0,
-+ .mode = 0555,
-+ .child = rtc_table,
-+ },
-+ { .ctl_name = 0 }
-+};
-+
-+static ctl_table dev_root[] = {
-+ {
-+ .ctl_name = CTL_DEV,
-+ .procname = "dev",
-+ .maxlen = 0,
-+ .mode = 0555,
-+ .child = rtc_root,
-+ },
-+ { .ctl_name = 0 }
-+};
-+
-+static struct ctl_table_header *sysctl_header;
-+
-+static int __init init_sysctl(void)
-+{
-+ sysctl_header = register_sysctl_table(dev_root, 0);
-+ return 0;
-+}
-+
-+static void __exit cleanup_sysctl(void)
-+{
-+ unregister_sysctl_table(sysctl_header);
-+}
-+
-+/*
-+ * Now all the various file operations that we export.
-+ */
-+
-+static ssize_t rtc_read(struct file *file, char __user *buf,
-+ size_t count, loff_t *ppos)
-+{
-+ return -EIO;
-+}
-+
-+static int rtc_do_ioctl(unsigned int cmd, unsigned long arg, int kernel)
-+{
-+ struct rtc_time wtime;
-+
-+ switch (cmd) {
-+ case RTC_RD_TIME: /* Read the time/date from RTC */
-+ {
-+ memset(&wtime, 0, sizeof(struct rtc_time));
-+ rtc_get_rtc_time(&wtime);
-+ break;
-+ }
-+ case RTC_SET_TIME: /* Set the RTC */
-+ {
-+ struct rtc_time rtc_tm;
-+ unsigned char mon, day, hrs, min, sec, leap_yr;
-+ unsigned int yrs;
-+
-+ if (!capable(CAP_SYS_TIME))
-+ return -EACCES;
-+
-+ if (copy_from_user(&rtc_tm, (struct rtc_time __user *)arg,
-+ sizeof(struct rtc_time)))
-+ return -EFAULT;
-+
-+ yrs = rtc_tm.tm_year + 1900;
-+ mon = rtc_tm.tm_mon + 1; /* tm_mon starts at zero */
-+ day = rtc_tm.tm_mday;
-+ hrs = rtc_tm.tm_hour;
-+ min = rtc_tm.tm_min;
-+ sec = rtc_tm.tm_sec;
-+
-+ if (yrs < 1970)
-+ return -EINVAL;
-+
-+ leap_yr = ((!(yrs % 4) && (yrs % 100)) || !(yrs % 400));
-+
-+ if ((mon > 12) || (day == 0))
-+ return -EINVAL;
-+
-+ if (day > (days_in_mo[mon] + ((mon == 2) && leap_yr)))
-+ return -EINVAL;
-+
-+ if ((hrs >= 24) || (min >= 60) || (sec >= 60))
-+ return -EINVAL;
-+
-+ if ((yrs -= epoch) > 255) /* They are unsigned */
-+ return -EINVAL;
-+
-+ /* These limits and adjustments are independent of
-+ * whether the chip is in binary mode or not.
-+ */
-+ if (yrs > 169) {
-+ return -EINVAL;
-+ }
-+ if (yrs >= 100)
-+ yrs -= 100;
-+
-+ sec = BIN2BCD(sec);
-+ min = BIN2BCD(min);
-+ hrs = BIN2BCD(hrs);
-+ day = BIN2BCD(day);
-+ mon = BIN2BCD(mon);
-+ yrs = BIN2BCD(yrs);
-+
-+ spin_lock_irq(&rtc_lock);
-+ rs5c313_set_cmos_time(yrs, mon, day, hrs, min, sec);
-+ spin_unlock_irq(&rtc_lock);
-+
-+ return 0;
-+ }
-+ case RTC_EPOCH_READ: /* Read the epoch. */
-+ {
-+ return put_user (epoch, (unsigned long __user *)arg);
-+ }
-+ case RTC_EPOCH_SET: /* Set the epoch. */
-+ {
-+ /*
-+ * There were no RTC clocks before 1900.
-+ */
-+ if (arg < 1900)
-+ return -EINVAL;
-+
-+ if (!capable(CAP_SYS_TIME))
-+ return -EACCES;
-+
-+ epoch = arg;
-+ return 0;
-+ }
-+ default:
-+ return -ENOTTY;
-+ }
-+ return copy_to_user((void __user *)arg, &wtime, sizeof wtime) ? -EFAULT : 0;
-+}
-+
-+static int rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
-+ unsigned long arg)
-+{
-+ return rtc_do_ioctl(cmd, arg, 0);
-+}
-+
-+/*
-+ * We enforce only one user at a time here with the open/close.
-+ * Also clear the previous interrupt data on an open, and clean
-+ * up things on a close.
-+ */
-+
-+/* We use rtc_lock to protect against concurrent opens. So the BKL is not
-+ * needed here. Or anywhere else in this driver. */
-+static int rtc_open(struct inode *inode, struct file *file)
-+{
-+ spin_lock_irq (&rtc_lock);
-+
-+ if(rtc_status & RTC_IS_OPEN)
-+ goto out_busy;
-+
-+ rtc_status |= RTC_IS_OPEN;
-+
-+ rtc_irq_data = 0;
-+ spin_unlock_irq (&rtc_lock);
-+ return 0;
-+
-+out_busy:
-+ spin_unlock_irq (&rtc_lock);
-+ return -EBUSY;
-+}
-+
-+static int rtc_fasync (int fd, struct file *filp, int on)
-+
-+{
-+ return fasync_helper (fd, filp, on, &rtc_async_queue);
-+}
-+
-+static int rtc_release(struct inode *inode, struct file *file)
-+{
-+ spin_lock_irq (&rtc_lock);
-+ rtc_irq_data = 0;
-+ rtc_status &= ~RTC_IS_OPEN;
-+ spin_unlock_irq (&rtc_lock);
-+ return 0;
-+}
-+
-+
-+/*
-+ * exported stuffs
-+ */
-+
-+EXPORT_SYMBOL(rtc_register);
-+EXPORT_SYMBOL(rtc_unregister);
-+EXPORT_SYMBOL(rtc_control);
-+
-+int rtc_register(rtc_task_t *task)
-+{
-+ return -EIO;
-+}
-+
-+int rtc_unregister(rtc_task_t *task)
-+{
-+ return -EIO;
-+}
-+
-+int rtc_control(rtc_task_t *task, unsigned int cmd, unsigned long arg)
-+{
-+ return -EIO;
-+}
-+
-+
-+/*
-+ * The various file operations we support.
-+ */
-+
-+static struct file_operations rtc_fops = {
-+ .owner = THIS_MODULE,
-+ .llseek = no_llseek,
-+ .read = rtc_read,
-+ .ioctl = rtc_ioctl,
-+ .open = rtc_open,
-+ .release = rtc_release,
-+ .fasync = rtc_fasync,
-+};
-+
-+static struct miscdevice rtc_dev = {
-+ .minor = RTC_MINOR,
-+ .name = "rtc",
-+ .fops = &rtc_fops,
-+};
-+
-+static struct file_operations rtc_proc_fops = {
-+ .owner = THIS_MODULE,
-+ .open = rtc_proc_open,
-+ .read = seq_read,
-+ .llseek = seq_lseek,
-+ .release = single_release,
-+};
-+
-+
-+static int __init rtc_init(void)
-+{
-+ struct proc_dir_entry *ent;
-+
-+ if (!request_region(RTC_PORT(0), RTC_IO_EXTENT, "rtc")) {
-+ printk(KERN_ERR "rtc: I/O port %d is not free.\n", RTC_PORT (0));
-+ return -EIO;
-+ }
-+
-+ if (misc_register(&rtc_dev)) {
-+ release_region(RTC_PORT(0), RTC_IO_EXTENT);
-+ return -ENODEV;
-+ }
-+
-+ ent = create_proc_entry("driver/rtc", 0, NULL);
-+ if (!ent) {
-+ release_region(RTC_PORT(0), RTC_IO_EXTENT);
-+ misc_deregister(&rtc_dev);
-+ return -ENOMEM;
-+ }
-+ ent->proc_fops = &rtc_proc_fops;
-+ (void) init_sysctl();
-+
-+ printk(KERN_INFO "RICHO RS5C313 Real Time Clock Driver v" RTC_VERSION "\n");
-+
-+ return 0;
-+}
-+
-+static void __exit rtc_exit (void)
-+{
-+ cleanup_sysctl();
-+ remove_proc_entry ("driver/rtc", NULL);
-+ misc_deregister(&rtc_dev);
-+ release_region (RTC_PORT (0), RTC_IO_EXTENT);
-+}
-+
-+module_init(rtc_init);
-+module_exit(rtc_exit);
-+
-+
-+/*
-+ * Info exported via "/proc/driver/rtc".
-+ */
-+
-+static int rtc_proc_show(struct seq_file *seq, void *v)
-+{
-+#define YN(bit) ((ctrl & bit) ? "yes" : "no")
-+#define NY(bit) ((ctrl & bit) ? "no" : "yes")
-+ struct rtc_time tm;
-+ unsigned char batt, ctrl;
-+ unsigned long freq;
-+
-+ batt = 1;
-+ freq = rtc_freq;
-+ ctrl = RTC_24H;
-+
-+ rtc_get_rtc_time(&tm);
-+
-+ /*
-+ * There is no way to tell if the luser has the RTC set for local
-+ * time or for Universal Standard Time (GMT). Probably local though.
-+ */
-+ seq_printf(seq,
-+ "rtc_time\t: %02d:%02d:%02d\n"
-+ "rtc_date\t: %04d-%02d-%02d\n"
-+ "rtc_epoch\t: %04lu\n",
-+ tm.tm_hour, tm.tm_min, tm.tm_sec,
-+ tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, epoch);
-+
-+ seq_puts(seq, "alarm\t\t: **:**:**\n");
-+
-+ seq_printf(seq,
-+ "DST_enable\t: %s\n"
-+ "BCD\t\t: %s\n"
-+ "24hr\t\t: %s\n"
-+ "square_wave\t: %s\n"
-+ "alarm_IRQ\t: %s\n"
-+ "update_IRQ\t: %s\n"
-+ "periodic_IRQ\t: %s\n"
-+ "periodic_freq\t: %ld\n"
-+ "batt_status\t: %s\n",
-+ YN(RTC_DST_EN),
-+ NY(RTC_DM_BINARY),
-+ YN(RTC_24H),
-+ YN(RTC_SQWE),
-+ YN(RTC_AIE),
-+ YN(RTC_UIE),
-+ YN(RTC_PIE),
-+ freq,
-+ batt ? "okay" : "dead");
-+
-+ return 0;
-+#undef YN
-+#undef NY
-+}
-+
-+static int rtc_proc_open(struct inode *inode, struct file *file)
-+{
-+ return single_open(file, rtc_proc_show, NULL);
-+}
-+
-+void rtc_get_rtc_time(struct rtc_time *rtc_tm)
-+{
-+ unsigned int BCD_yr, BCD_mon, BCD_day, BCD_hr, BCD_min, BCD_sec;
-+
-+ spin_lock_irq(&rtc_lock);
-+ rs5c313_get_cmos_time(&BCD_yr, &BCD_mon, &BCD_day,
-+ &BCD_hr, &BCD_min, &BCD_sec);
-+ spin_unlock_irq(&rtc_lock);
-+
-+ rtc_tm->tm_sec = BCD2BIN(BCD_sec);
-+ rtc_tm->tm_min = BCD2BIN(BCD_min);
-+ rtc_tm->tm_hour = BCD2BIN(BCD_hr);
-+ rtc_tm->tm_mday = BCD2BIN(BCD_day);
-+ rtc_tm->tm_mon = BCD2BIN(BCD_mon);
-+ rtc_tm->tm_year = BCD2BIN(BCD_yr);
-+
-+ /*
-+ * Account for differences between how the RTC uses the values
-+ * and how they are defined in a struct rtc_time;
-+ */
-+ if ((rtc_tm->tm_year += (epoch - 1900)) <= 69)
-+ rtc_tm->tm_year += 100;
-+
-+ rtc_tm->tm_mon--;
-+}
-+
-+
-+MODULE_AUTHOR("kogiidena");
-+MODULE_LICENSE("GPL");
-+MODULE_ALIAS_MISCDEV(RTC_MINOR);
-+
-diff -ruN linux-2.6.17-vanilla/drivers/char/rtc.c linux-2.6.17/drivers/char/rtc.c
---- linux-2.6.17-vanilla/drivers/char/rtc.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/char/rtc.c 2006-07-12 16:54:23.000000000 +0000
-@@ -104,7 +104,7 @@
- #endif
-
- #ifdef RTC_IRQ
--static int rtc_has_irq = 1;
-+static int rtc_has_irq = RTC_IRQ;
- #endif
-
- #ifndef CONFIG_HPET_EMULATE_RTC
-diff -ruN linux-2.6.17-vanilla/drivers/char/rtc9701_rtc.c linux-2.6.17/drivers/char/rtc9701_rtc.c
---- linux-2.6.17-vanilla/drivers/char/rtc9701_rtc.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/char/rtc9701_rtc.c 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1,888 @@
-+/*
-+ * linux/drivers/char/rtc9701_rtc.c
-+ *
-+ * Real Time Clock interface for Linux
-+ * EPSON RTC-9701JE support
-+ *
-+ */
-+#include <linux/config.h>
-+#include <linux/module.h>
-+#include <linux/fs.h>
-+#include <linux/miscdevice.h>
-+#include <linux/delay.h>
-+#include <asm/delay.h>
-+#include <linux/string.h>
-+#include <linux/interrupt.h>
-+#include <linux/init.h>
-+#include <linux/poll.h>
-+#ifdef CONFIG_PROC_FS
-+#include <linux/proc_fs.h>
-+#endif
-+
-+#include <asm/io.h>
-+#include <asm/rts7751r2d/rts7751r2d.h>
-+
-+#include <linux/rtc.h>
-+
-+/* define to 1 enable copious debugging info */
-+#undef RTC9701_DEBUG
-+#undef RTC9701_DEBUG_IO
-+#undef RTC9701_DEBUG_INTR
-+
-+#ifndef BCD_TO_BIN
-+#define BCD_TO_BIN(val) ((val)=((val)&15) + ((val)>>4)*10)
-+#endif
-+
-+#ifndef BIN_TO_BCD
-+#define BIN_TO_BCD(val) ((val)=(((val)/10)<<4) + (val)%10)
-+#endif
-+
-+#define DRIVER_VERSION "0.02"
-+
-+#define RSECCNT 0x00 /* Second Counter */
-+#define RMINCNT 0x01 /* Minute Counter */
-+#define RHRCNT 0x02 /* Hour Counter */
-+#define RWKCNT 0x03 /* Week Counter */
-+#define RDAYCNT 0x04 /* Day Counter */
-+#define RMONCNT 0x05 /* Month Counter */
-+#define RYRCNT 0x06 /* Year Counter */
-+#define R100CNT 0x07 /* Y100 Counter */
-+#define RMINAR 0x08 /* Minute Alarm */
-+#define RHRAR 0x09 /* Hour Alarm */
-+#define RWKAR 0x0a /* Week/Day Alarm */
-+#define RTIMCNT 0x0c /* Interval Timer */
-+#define REXT 0x0d /* Extension Register */
-+#define RFLAG 0x0e /* RTC Flag Register */
-+#define RCR 0x0f /* RTC Control Register */
-+
-+#define WRITE_CMD 0x00 /* Write Command */
-+#define READ_CMD 0x08 /* Read Command */
-+
-+#define SCSMR1 0xffe00000 /* Serial Mode Register(SCI) */
-+#define SCSCR1 0xffe00008 /* Serial Control Register(SCI) */
-+#define SCSPTR1 0xffe0001c /* Serial Port Register(SCI) */
-+
-+static int rtc_usage;
-+static int rtc_irq_data;
-+
-+static struct fasync_struct* rtc_async_queue;
-+
-+static DECLARE_WAIT_QUEUE_HEAD(rtc_wait);
-+extern spinlock_t rtc_lock;
-+static unsigned int epoch = 1900; /* year corresponding to 0x00 */
-+
-+static const unsigned char days_in_mo[] =
-+{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
-+
-+static __inline__ unsigned char rtc9701_inb(unsigned long addr)
-+{
-+ unsigned char data, retval;
-+ int i;
-+
-+ ctrl_outw(0x0001, PA_RTCCE); /* CE=1 */
-+ ndelay(170); /* 170ns delay (tZR) */
-+ ctrl_outb(0x8c, SCSPTR1);
-+ for (i=0 ; i<18 ; i++)
-+ if (ctrl_inb(SCSPTR1) & 0x01) /* Check ready */
-+ break;
-+ else
-+ mdelay(1); /* 1ms delay */
-+//#ifdef RTC9701_DEBUG_IO
-+ if (i >= 18)
-+ printk("RTC-9701JE Read Time out ready wait\n");
-+//#endif
-+ ndelay(65); /* 65ns delay (tRDY) */
-+
-+ for (i=0 ; i<4 ; i++) { /* Command Set */
-+ if ((READ_CMD << i) & 0x08)
-+ data = 0x8b; /* DATA=1 */
-+ else
-+ data = 0x8a; /* DATA=0 */
-+ ctrl_outb(data, SCSPTR1); /* CLK=0, DATA */
-+ ndelay(250); /* 250ns delay (tWL) */
-+ data |= 0x04;
-+ ctrl_outb(data, SCSPTR1); /* CLK=1 */
-+ ndelay(250); /* 250ns delay (tWH) */
-+ }
-+
-+ for (i=0 ; i<4 ; i++) { /* Address Set */
-+ if ((addr << i) & 0x08)
-+ data = 0x8b; /* DATA=1 */
-+ else
-+ data = 0x8a; /* DATA=0 */
-+ ctrl_outb(data, SCSPTR1); /* CLK=0, DATA */
-+ ndelay(250); /* 250ns delay (tWL) */
-+ data |= 0x04;
-+ ctrl_outb(data, SCSPTR1); /* CLK=1 */
-+ ndelay(250); /* 250ns delay (tWH) */
-+ }
-+
-+#if 0
-+ /* Dummy clock */
-+ ctrl_outb(0x88, SCSPTR1); /* CLK=0 */
-+ ndelay(250); /* 250ns delay (tWL) */
-+ ctrl_inb(SCSPTR1); /* Dummy read */
-+ ctrl_outb(0x8c, SCSPTR1); /* CLK=1 */
-+ ndelay(250); /* 250ns delay (tWH) */
-+#endif
-+
-+ retval = 0;
-+ for (i=0 ; i<8 ; i++) { /* DATA Read */
-+ ctrl_outb(0x88, SCSPTR1); /* CLK=0 */
-+#if 0
-+ if (i == 0)
-+ ndelay(200); /* 200ns delay (tZR) */
-+#endif
-+ ndelay(250); /* 250ns delay (tWL) */
-+ retval <<= 1;
-+ retval &= 0xfe;
-+ if (ctrl_inb(SCSPTR1) & 0x01)
-+ retval |= 0x01;
-+ ctrl_outb(0x8c, SCSPTR1); /* CLK=1 */
-+ ndelay(250); /* 250ns delay (tWH) */
-+ }
-+
-+ ctrl_outw(0x0000, PA_RTCCE); /* CE=0 */
-+#if 0
-+ mdelay(1); /* 1ms delay (tCR) */
-+#endif
-+
-+#ifdef RTC9701_DEBUG_IO
-+ printk("rtc9701_inb addr=%x value=%x\n", (unsigned int)addr, retval);
-+#endif
-+ return retval;
-+}
-+
-+static __inline__ void rtc9701_outb(unsigned char b, unsigned long addr)
-+{
-+ int i;
-+ unsigned char data;
-+
-+#ifdef RTC9701_DEBUG_IO
-+ printk("rtc9701_outb addr=%x value=%x\n", (unsigned int)addr, b);
-+#endif
-+ ctrl_outw(0x0001, PA_RTCCE); /* CE=1 */
-+ ndelay(170); /* 170ns delay (tZR) */
-+ ctrl_outb(0x8c, SCSPTR1);
-+ for (i=0 ; i<18 ; i++)
-+ if (ctrl_inb(SCSPTR1) & 0x01) /* Check ready */
-+ break;
-+ else
-+ mdelay(1); /* 1ms delay */
-+//#ifdef RTC9701_DEBUG_IO
-+ if (i >= 18)
-+ printk("RTC-9701JE Write Time out ready wait\n");
-+//#endif
-+ ndelay(65); /* 65ns delay (tRDY) */
-+
-+ for (i=0 ; i<4 ; i++) { /* Command Set */
-+ if ((WRITE_CMD << i) & 0x08)
-+ data = 0x8b; /* DATA=1 */
-+ else
-+ data = 0x8a; /* DATA=0 */
-+ ctrl_outb(data, SCSPTR1); /* CLK=0, DATA */
-+ ndelay(250); /* 250ns delay (tWL) */
-+ data |= 0x04;
-+ ctrl_outb(data, SCSPTR1); /* CLK=1 */
-+ ndelay(250); /* 250ns delay (tWH) */
-+ }
-+
-+ for (i=0 ; i<4 ; i++) { /* Address Set */
-+ if ((addr << i) & 0x08)
-+ data = 0x8b; /* DATA=1 */
-+ else
-+ data = 0x8a; /* DATA=0 */
-+ ctrl_outb(data, SCSPTR1); /* CLK=0, DATA */
-+ ndelay(250); /* 250ns delay (tWL) */
-+ data |= 0x04;
-+ ctrl_outb(data, SCSPTR1); /* CLK=1 */
-+ ndelay(250); /* 250ns delay (tWH) */
-+ }
-+
-+ for (i=0 ; i<8 ; i++) { /* DATA Write */
-+ if ((b << i ) & 0x80)
-+ data = 0x8b; /* DATA=1 */
-+ else
-+ data = 0x8a; /* DATA=0 */
-+ ctrl_outb(data, SCSPTR1); /* CLK=0, DATA */
-+ ndelay(250); /* 250ns delay (tWL) */
-+ data |= 0x04;
-+ ctrl_outb(data, SCSPTR1); /* CLK=1 */
-+ ndelay(250); /* 250ns delay (tWH) */
-+ }
-+
-+ ctrl_outw(0x0000, PA_RTCCE); /* CE=0 */
-+#if 0
-+ mdelay(1); /* 1ms delay (tCR) */
-+#endif
-+}
-+
-+static irqreturn_t rtc9701_rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs)
-+{
-+ unsigned char wk;
-+
-+#ifdef RTC9701_DEBUG
-+ printk("RTC-9701JE Interrupt irq=%d\n", irq);
-+#endif
-+ spin_lock(&rtc_lock);
-+
-+ if (irq == IRQ_RTCALM) {
-+ wk = rtc9701_inb(RFLAG);
-+#ifdef RTC9701_DEBUG_INTR
-+ printk("RTC-9701JE Interrupt alarm flag=%02x\n", wk);
-+#endif
-+ if (wk & 0x08) {
-+ wk &= 0xb6;
-+ rtc9701_outb(wk, RFLAG);
-+ rtc_irq_data = 1;
-+ }
-+ } else if (irq == IRQ_RTCTIME) {
-+ wk = rtc9701_inb(RFLAG);
-+#ifdef RTC9701_DEBUG_INTR
-+ printk("RTC-9701JE Interrupt timer flag=%02x\n", wk);
-+#endif
-+ if (wk & 0x10) { /* Interval timer */
-+ wk &= 0xae;
-+ rtc9701_outb(wk, RFLAG);
-+ rtc_irq_data = 2;
-+ }
-+ if (wk & 0x20) { /* Update time */
-+ wk &= 0x9e;
-+ rtc9701_outb(wk, RFLAG);
-+ rtc_irq_data = 2;
-+ }
-+ }
-+
-+ spin_unlock(&rtc_lock);
-+#if 0
-+ mdelay(20);
-+#endif
-+ wake_up_interruptible(&rtc_wait);
-+
-+ kill_fasync(&rtc_async_queue, SIGIO, POLL_IN);
-+
-+ return IRQ_HANDLED;
-+}
-+
-+static int rtc9701_rtc_open(struct inode *minode, struct file *mfile)
-+{
-+ if (rtc_usage != 0)
-+ return -EBUSY;
-+
-+ rtc_usage = 1;
-+
-+ return 0;
-+}
-+
-+static int rtc9701_rtc_release(struct inode *minode, struct file *mfile)
-+{
-+ rtc_usage = 0;
-+
-+ return 0;
-+}
-+
-+static int rtc9701_rtc_fasync(int fd, struct file *filp, int on)
-+{
-+ return fasync_helper(fd, filp, on, &rtc_async_queue);
-+}
-+
-+static loff_t rtc9701_rtc_llseek(struct file *file, loff_t offset, int origin)
-+{
-+ return -ESPIPE;
-+}
-+
-+static ssize_t rtc9701_rtc_read(struct file* file,
-+ char* buf,
-+ size_t count,
-+ loff_t* ppos)
-+{
-+ DECLARE_WAITQUEUE(wait, current);
-+ unsigned long data = 1;
-+ ssize_t retval;
-+
-+ if (count < sizeof(unsigned long))
-+ return -EINVAL;
-+
-+ add_wait_queue(&rtc_wait, &wait);
-+
-+ current->state = TASK_INTERRUPTIBLE;
-+
-+ do {
-+ spin_lock_irq (&rtc_lock);
-+ data = rtc_irq_data;
-+ spin_unlock_irq (&rtc_lock);
-+
-+ if (data != 0) {
-+ rtc_irq_data = 0;
-+ break;
-+ }
-+
-+ if (file->f_flags & O_NONBLOCK) {
-+ retval = -EAGAIN;
-+ goto out;
-+ }
-+ if (signal_pending(current)) {
-+ retval = -ERESTARTSYS;
-+ goto out;
-+ }
-+ schedule();
-+ } while (1);
-+
-+ retval = put_user(data, (unsigned long *)buf);
-+ if (!retval)
-+ retval = sizeof(unsigned long);
-+out:
-+ current->state = TASK_RUNNING;
-+ remove_wait_queue(&rtc_wait, &wait);
-+
-+ return retval;
-+}
-+
-+static void rtc_set_timer(unsigned long value)
-+{
-+ unsigned char time;
-+
-+ time = (unsigned char)value | 0x80;
-+ rtc9701_outb(time, RTIMCNT);
-+#ifdef RTC9701_DEBUG
-+ time = rtc9701_inb(RTIMCNT);
-+ printk("RTC-9701JE Set timer value=%x\n", time);
-+#endif
-+}
-+
-+static unsigned long rtc_read_timer(void)
-+{
-+ unsigned char time;
-+
-+ time = rtc9701_inb(RTIMCNT);
-+#ifdef RTC9701_DEBUG
-+ printk("RTC-9701JE Read timer value=%x\n", time);
-+#endif
-+ return (unsigned long)time;
-+}
-+
-+static void control_periodic_irq(int mode)
-+{
-+ unsigned char wk;
-+ unsigned char rcr;
-+
-+ if (mode == 0) { /* OFF */
-+ rcr = rtc9701_inb(RCR);
-+ wk = rcr & 0x2e;
-+ rtc9701_outb(wk, RCR);
-+ } else { /* ON */
-+ rcr = rtc9701_inb(RCR);
-+ wk = rcr | 0x10;
-+ rtc9701_outb(wk, RCR);
-+ }
-+
-+ rtc_irq_data = 0;
-+}
-+
-+static void control_alarm_irq(int mode)
-+{
-+ unsigned char rcr;
-+
-+ if (mode == 0) { /* AIE = OFF */
-+ rcr = rtc9701_inb(RCR);
-+ rcr &= 0x36;
-+ rtc9701_outb(rcr, RCR);
-+ } else { /* AIE = ON */
-+ rcr = rtc9701_inb(RCR);
-+ rcr |= 0x08;
-+ rtc9701_outb(rcr, RCR);
-+ }
-+
-+ rtc_irq_data = 0;
-+}
-+
-+static void get_rtc_data(struct rtc_time *tm)
-+{
-+ unsigned char wk;
-+
-+ tm->tm_sec = 0;
-+ tm->tm_min = 0;
-+ tm->tm_hour = 0;
-+ tm->tm_mday = 0;
-+ tm->tm_mon = 0;
-+ tm->tm_year = 0;
-+ tm->tm_wday = 0;
-+ tm->tm_yday = 0;
-+ tm->tm_isdst = 0;
-+
-+ wk = rtc9701_inb(RSECCNT);
-+ wk &= 0x7f;
-+ BCD_TO_BIN(wk);
-+ tm->tm_sec = wk;
-+
-+ wk = rtc9701_inb(RMINCNT);
-+ wk &= 0x7f;
-+ BCD_TO_BIN(wk);
-+ tm->tm_min = wk;
-+
-+ wk = rtc9701_inb(RHRCNT);
-+ wk &= 0x7f;
-+ BCD_TO_BIN(wk);
-+ tm->tm_hour = wk;
-+
-+ wk = rtc9701_inb(RWKCNT);
-+ wk &= 0x7f;
-+ tm->tm_wday = wk - 1;
-+
-+ wk = rtc9701_inb(RDAYCNT);
-+ wk &= 0x7f;
-+ BCD_TO_BIN(wk);
-+ tm->tm_mday = wk;
-+
-+ wk = rtc9701_inb(RMONCNT);
-+ wk &= 0x7f;
-+ BCD_TO_BIN(wk);
-+ tm->tm_mon = wk - 1;
-+
-+ wk = rtc9701_inb(RYRCNT);
-+ BCD_TO_BIN(wk);
-+ tm->tm_year = wk + 100;
-+}
-+
-+static void get_rtc_alarm_data(struct rtc_time *tm)
-+{
-+ unsigned char wk;
-+ unsigned char rflag, rcr;
-+
-+ tm->tm_sec = 0;
-+ tm->tm_min = 0;
-+ tm->tm_hour = 0;
-+ tm->tm_mday = 0;
-+ tm->tm_mon = 0;
-+ tm->tm_year = 0;
-+ tm->tm_wday = 0;
-+ tm->tm_yday = 0;
-+ tm->tm_isdst = 0;
-+
-+ rflag = rtc9701_inb(RFLAG);
-+ wk = rflag & 0xf7;
-+ rtc9701_outb(wk, RFLAG); /* AF=0 */
-+ rcr = rtc9701_inb(RCR);
-+ wk = rcr & 0xf7;
-+ rtc9701_outb(wk, RCR); /* AIE=0 */
-+
-+ wk = rtc9701_inb(RMINAR);
-+ wk &= 0x7f;
-+ BCD_TO_BIN(wk);
-+ tm->tm_min = wk;
-+
-+ wk = rtc9701_inb(RHRAR);
-+ wk &= 0x7f;
-+ BCD_TO_BIN(wk);
-+ tm->tm_hour = wk;
-+
-+ rtc9701_outb(rflag, RFLAG);
-+ rtc9701_outb(rcr, RCR);
-+#ifdef RTC9701_DEBUG
-+ printk("get_rtc_alarm_data: hour:%x min:%x\n", tm->tm_hour, tm->tm_min);
-+#endif
-+}
-+
-+static void set_rtc_data(struct rtc_time *tm)
-+{
-+ unsigned char sec, min, hour, mday, wday, mon, year;
-+
-+#ifdef RTC9701_DEBUG
-+ printk("set_rtc_data:%d/%d/%d %d:%d:%d\n", tm->tm_year, tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec);
-+#endif
-+ sec = tm->tm_sec;
-+ min = tm->tm_min;
-+ hour = tm->tm_hour;
-+ mday = tm->tm_mday;
-+ wday = tm->tm_wday;
-+ mon = tm->tm_mon;
-+
-+ BIN_TO_BCD(sec);
-+ rtc9701_outb(sec, RSECCNT);
-+
-+ BIN_TO_BCD(min);
-+ rtc9701_outb(min, RMINCNT);
-+
-+ BIN_TO_BCD(hour);
-+ rtc9701_outb(hour, RHRCNT);
-+
-+ rtc9701_outb(wday, RWKCNT);
-+
-+ BIN_TO_BCD(mday);
-+ rtc9701_outb(mday, RDAYCNT);
-+
-+ BIN_TO_BCD(mon);
-+ rtc9701_outb(mon, RMONCNT);
-+
-+ if (tm->tm_year > 100)
-+ tm->tm_year -= 100;
-+ year = tm->tm_year;
-+ BIN_TO_BCD(year);
-+ rtc9701_outb(year, RYRCNT);
-+}
-+
-+static void set_rtc_alarm_data(struct rtc_time *tm)
-+{
-+ unsigned char wk;
-+ unsigned char min, hour;
-+
-+#ifdef RTC9701_DEBUG
-+ printk("set_rtc_alarm_data: hour:%x min:%x\n", tm->tm_hour, tm->tm_min);
-+#endif
-+ wk = rtc9701_inb(RFLAG);
-+ wk &= 0xf7;
-+ rtc9701_outb(wk, RFLAG); /* AF=0 */
-+ wk = rtc9701_inb(RCR);
-+ wk &= 0xf7;
-+ rtc9701_outb(wk, RCR); /* AIE=0 */
-+
-+ min = tm->tm_min;
-+ BIN_TO_BCD(min);
-+ rtc9701_outb(min, RMINAR);
-+
-+ hour = tm->tm_hour;
-+ BIN_TO_BCD(hour);
-+ rtc9701_outb(hour, RHRAR);
-+
-+ wk = rtc9701_inb(RFLAG);
-+ wk &= 0xf7;
-+ rtc9701_outb(wk, RFLAG); /* AF=0 */
-+}
-+
-+static int rtc9701_rtc_ioctl(struct inode* inode,
-+ struct file* file,
-+ unsigned int cmd,
-+ unsigned long arg)
-+{
-+ struct rtc_time wtime, rtc_tm;
-+ unsigned char mon, day, hrs, min, sec, week, leap_yr;
-+ unsigned int yrs;
-+ unsigned long value;
-+
-+ wtime.tm_sec = 0;
-+ wtime.tm_min = 0;
-+ wtime.tm_hour = 0;
-+ wtime.tm_mday = 0;
-+ wtime.tm_mon = 0;
-+ wtime.tm_year = 0;
-+ wtime.tm_wday = 0;
-+ wtime.tm_yday = 0;
-+ wtime.tm_isdst = 0;
-+
-+ switch (cmd) {
-+ case RTC_AIE_OFF: /* =2:Alarm int. disable */
-+ spin_lock_irq(&rtc_lock);
-+ control_alarm_irq(0);
-+ spin_unlock_irq(&rtc_lock);
-+ mdelay(20);
-+ return 0;
-+
-+ case RTC_AIE_ON: /* =1:Alarm int. enable */
-+ spin_lock_irq(&rtc_lock);
-+ control_alarm_irq(1);
-+ spin_unlock_irq(&rtc_lock);
-+ mdelay(20);
-+ return 0;
-+
-+ case RTC_PIE_OFF: /* =6:Periodic int. disable */
-+ spin_lock_irq(&rtc_lock);
-+ control_periodic_irq(0);
-+ spin_unlock_irq(&rtc_lock);
-+ mdelay(20);
-+ return 0;
-+
-+ case RTC_PIE_ON: /* =5:Periodic int. enable */
-+ spin_lock_irq(&rtc_lock);
-+ control_periodic_irq(1);
-+ spin_unlock_irq(&rtc_lock);
-+ mdelay(20);
-+ return 0;
-+
-+ case RTC_IRQP_SET:
-+ if (copy_from_user(&value, (unsigned long *)arg, sizeof(value)))
-+ return -EFAULT;
-+ rtc_set_timer(value);
-+ mdelay(20);
-+ return 0;
-+
-+ case RTC_IRQP_READ:
-+ value = rtc_read_timer();
-+ mdelay(20);
-+ return put_user(value, (unsigned long *)arg);
-+
-+ case RTC_ALM_READ: /* =8:Read alarm time */
-+ get_rtc_alarm_data(&wtime);
-+ mdelay(20);
-+ break;
-+
-+ case RTC_ALM_SET: /* =7:Set alarm time */
-+ if (copy_from_user(&rtc_tm, (struct rtc_time*)arg,
-+ sizeof(struct rtc_time)))
-+ return -EFAULT;
-+
-+ hrs = rtc_tm.tm_hour;
-+ min = rtc_tm.tm_min;
-+
-+ if ((hrs >= 24) || (min >= 60)) {
-+ return -EINVAL;
-+ }
-+
-+ /* update the alarm register */
-+ spin_lock_irq(&rtc_lock);
-+ wtime.tm_min = min;
-+ wtime.tm_hour = hrs;
-+ set_rtc_alarm_data(&wtime);
-+ spin_unlock_irq(&rtc_lock);
-+ mdelay(20);
-+ return 0;
-+
-+ case RTC_RD_TIME: /* =9:Read RTC time */
-+ spin_lock_irq(&rtc_lock);
-+ get_rtc_data(&wtime);
-+ spin_unlock_irq(&rtc_lock);
-+ mdelay(20);
-+ break;
-+
-+ case RTC_SET_TIME: /* =10:Set RTC time */
-+ if (copy_from_user(&rtc_tm, (struct rtc_time*)arg,
-+ sizeof(struct rtc_time)))
-+ return -EFAULT;
-+
-+ yrs = rtc_tm.tm_year + epoch;
-+ mon = rtc_tm.tm_mon+1;
-+ day = rtc_tm.tm_mday;
-+ hrs = rtc_tm.tm_hour;
-+ min = rtc_tm.tm_min;
-+ sec = rtc_tm.tm_sec;
-+ week = rtc_tm.tm_wday+1;
-+
-+ if (yrs < epoch){
-+ return -EINVAL;
-+ }
-+ leap_yr = ((!(yrs % 4) && (yrs % 100)) || !(yrs % 400));
-+ if ((mon > 12) || (day == 0)){
-+ return -EINVAL;
-+ }
-+ if (day > (days_in_mo[mon] + ((mon == 2) && leap_yr))){
-+ return -EINVAL;
-+ }
-+ if ((hrs >= 24) || (min >= 60) || (sec >= 60) || (week > 64)){
-+ return -EINVAL;
-+ }
-+ if ((yrs - epoch) > 255){
-+ return -EINVAL;
-+ }
-+
-+ spin_lock_irq(&rtc_lock);
-+ wtime.tm_sec = sec;
-+ wtime.tm_min = min;
-+ wtime.tm_hour = hrs;
-+ wtime.tm_mday = day;
-+ wtime.tm_mon = mon;
-+ wtime.tm_wday = week;
-+ wtime.tm_year = yrs - epoch;
-+ set_rtc_data(&wtime);
-+ spin_unlock_irq(&rtc_lock);
-+ mdelay(20);
-+ return 0;
-+
-+ default:
-+ return -EINVAL;
-+ }
-+
-+ return copy_to_user((void*)arg, &wtime, sizeof(wtime)) ? -EFAULT : 0;
-+}
-+
-+static unsigned int rtc9701_rtc_poll(struct file* file, poll_table* wait)
-+{
-+ unsigned long l;
-+
-+ poll_wait(file, &rtc_wait, wait);
-+
-+ spin_lock_irq(&rtc_lock);
-+ l = rtc_irq_data;
-+ spin_unlock_irq(&rtc_lock);
-+
-+ if (l != 0)
-+ return POLLIN | POLLRDNORM;
-+ else
-+ return 0;
-+}
-+
-+#ifdef CONFIG_PROC_FS
-+
-+static int rtc9701_rtc_proc_output(char *buf)
-+{
-+ char *p;
-+ struct rtc_time tm;
-+
-+ get_rtc_data(&tm);
-+ mdelay(20);
-+
-+ p = buf;
-+ p += sprintf(p,
-+ "rtc_time\t: %02d:%02d:%02d\n"
-+ "rtc_date\t: %04d-%02d-%02d\n"
-+ "rtc_epoch\t: %04lu\n",
-+ tm.tm_hour, tm.tm_min, tm.tm_sec,
-+ tm.tm_year + epoch, tm.tm_mon+1, tm.tm_mday,
-+ (unsigned long)epoch);
-+
-+ get_rtc_alarm_data(&tm);
-+ mdelay(20);
-+
-+ p += sprintf(p,
-+ "alrm_time\t: %02d:%02d\n",
-+ tm.tm_hour, tm.tm_min);
-+
-+ p += sprintf(p,"alarm_IRQ\t: %s\n",
-+ (rtc9701_inb(RCR) & 0x08) ? "yes" : "no" );
-+ mdelay(20);
-+ p += sprintf(p,"periodic_IRQ\t: %s\n",
-+ (rtc9701_inb(RCR) & 0x10) ? "yes" : "no" );
-+ mdelay(20);
-+
-+ p += sprintf(p,"periodic_freq\t: 1\n");
-+ p += sprintf(p,"batt_status\t: unsupported\n");
-+
-+ return (p - buf);
-+}
-+
-+static int rtc9701_rtc_read_proc(char* page,
-+ char** start,
-+ off_t off,
-+ int count,
-+ int* eof,
-+ void* data)
-+{
-+ int len = rtc9701_rtc_proc_output(page);
-+
-+ if (len <= off + count) { *eof = 1; }
-+ *start = page + off;
-+ len -= off;
-+ if (len > count) { len = count; }
-+ if (len < 0) { len = 0; }
-+
-+ return len;
-+}
-+
-+#endif
-+
-+static void rtc9701_initial_check(void)
-+{
-+ unsigned int sec, min, hr, day, mon, yr;
-+
-+ sec = rtc9701_inb(RSECCNT) & 0x7f;
-+ min = rtc9701_inb(RMINCNT) & 0x7f;
-+ hr = rtc9701_inb(RHRCNT) & 0x7f;
-+ day = rtc9701_inb(RDAYCNT) & 0x7f;
-+ mon = rtc9701_inb(RMONCNT) & 0x7f;
-+ yr = rtc9701_inb(RYRCNT) & 0x7f;
-+
-+ BCD_TO_BIN(sec);
-+ BCD_TO_BIN(min);
-+ BCD_TO_BIN(hr);
-+ BCD_TO_BIN(day);
-+ BCD_TO_BIN(mon);
-+ BCD_TO_BIN(yr);
-+
-+ if (yr > 99 || mon < 1 || mon > 12 || day > 31 || day < 1 ||
-+ hr > 23 || min > 59 || sec > 59) {
-+ printk("Current RTC Time:%d-%d-%d %d:%d:%d\n", yr, mon, day, hr, min, sec);
-+ printk(KERN_ERR "RTC-9701: invalid value, resetting to 1 Jan 2000\n");
-+ rtc9701_outb(0, RSECCNT);
-+ rtc9701_outb(0, RMINCNT);
-+ rtc9701_outb(0, RHRCNT);
-+ rtc9701_outb(0x40, RWKCNT);
-+ rtc9701_outb(1, RDAYCNT);
-+ rtc9701_outb(1, RMONCNT);
-+ rtc9701_outb(0, RYRCNT);
-+ }
-+}
-+
-+static struct file_operations rtc_fops = {
-+ .owner = THIS_MODULE,
-+ .llseek = rtc9701_rtc_llseek,
-+ .read = rtc9701_rtc_read,
-+ .poll = rtc9701_rtc_poll,
-+ .ioctl = rtc9701_rtc_ioctl,
-+ .open = rtc9701_rtc_open,
-+ .release = rtc9701_rtc_release,
-+ .fasync = rtc9701_rtc_fasync,
-+};
-+
-+
-+static struct miscdevice rts7751r2drtc_miscdev = {
-+ RTC_MINOR,
-+ "rtc",
-+ &rtc_fops
-+};
-+
-+static void rtc9701_rtc_exit(void)
-+{
-+ spin_lock_irq(&rtc_lock);
-+ rtc9701_outb(0x00, RCR);
-+ spin_unlock_irq(&rtc_lock);
-+ mdelay(20);
-+
-+ free_irq(IRQ_RTCALM, NULL);
-+ free_irq(IRQ_RTCTIME, NULL);
-+#ifdef CONFIG_PROC_FS
-+ remove_proc_entry("driver/rtc", NULL);
-+#endif
-+
-+ misc_deregister(&rts7751r2drtc_miscdev);
-+}
-+
-+static int __init rtc9701_rtc_init(void)
-+{
-+ unsigned char val;
-+
-+ misc_register(&rts7751r2drtc_miscdev);
-+
-+#ifdef CONFIG_PROC_FS
-+ create_proc_read_entry("driver/rtc", 0, 0, rtc9701_rtc_read_proc, NULL);
-+#endif
-+ ctrl_outb((ctrl_inb(SCSMR1) & 0x7f), SCSMR1);
-+ ctrl_outb((ctrl_inb(SCSCR1) & 0x9c), SCSCR1);
-+ ctrl_outw(0x0000, PA_RTCCE); /* CE=0 */
-+ ctrl_outb(0x8c, SCSPTR1); /* EIO=1, SPB1IO=1, SPB1DT=1, SPB0IO=0 */
-+
-+ rtc9701_initial_check(); /* RTC Data Initial check */
-+ mdelay(20);
-+
-+ rtc9701_outb(0x02, REXT); /* WADA=0, UDUTY=0, USEL=0, TSEL1=1, TSEL0=0 */
-+ mdelay(20);
-+ rtc9701_outb(0x00, RCR); /* UIE=0, TIE=0, AIE=0, EXIE=0, VLIE=0 */
-+ mdelay(20);
-+ rtc9701_outb(0x00, RFLAG);
-+ mdelay(20);
-+#if 0
-+ val = rtc9701_inb(REXT);
-+ val &= 0x33;
-+ rtc9701_outb(val, REXT); /* WADA=0 */
-+#endif
-+ val = 0xff;
-+ rtc9701_outb(val, RWKAR);
-+ mdelay(20);
-+
-+ rtc9701_outb(0x00, RTIMCNT);
-+ mdelay(20);
-+
-+ if (request_irq(IRQ_RTCALM, rtc9701_rtc_interrupt, SA_INTERRUPT, "rtc_alarm", NULL)) {
-+ printk(KERN_ERR "rtc: IRQ %d already in use.\n", IRQ_RTCALM);
-+ return -EIO;
-+ }
-+
-+ if (request_irq(IRQ_RTCTIME, rtc9701_rtc_interrupt, SA_INTERRUPT, "rtc_timer", NULL)) {
-+ printk(KERN_ERR "rtc: IRQ %d already in use.\n", IRQ_RTCTIME);
-+ return -EIO;
-+ }
-+
-+ printk(KERN_INFO "RTC-9701JE Real Time Clock Driver v" DRIVER_VERSION "\n");
-+
-+ return 0;
-+}
-+
-+module_init(rtc9701_rtc_init);
-+module_exit(rtc9701_rtc_exit);
-diff -ruN linux-2.6.17-vanilla/drivers/char/sh03rtc.c linux-2.6.17/drivers/char/sh03rtc.c
---- linux-2.6.17-vanilla/drivers/char/sh03rtc.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/char/sh03rtc.c 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1,1185 @@
-+/*
-+ * Real Time Clock interface for Linux
-+ *
-+ * Copyright (C) 2004 Interface Corporation Saito.K
-+ *
-+ * Based on skelrton from the drivers/char/rtc.c
-+ *
-+ * This driver allows use of the real time clock (built into
-+ * nearly all computers) from user space. It exports the /dev/rtc
-+ * interface supporting various ioctl() and also the
-+ * /proc/driver/rtc pseudo-file for status information.
-+ *
-+ * The ioctls can be used to set the interrupt behaviour and
-+ * generation rate from the RTC via IRQ 8. Then the /dev/rtc
-+ * interface can be used to make use of these timer interrupts,
-+ * be they interval or alarm based.
-+ *
-+ * The /dev/rtc interface will block on reads until an interrupt
-+ * has been received. If a RTC interrupt has already happened,
-+ * it will output an unsigned long and then block. The output value
-+ * contains the interrupt status in the low byte and the number of
-+ * interrupts since the last read in the remaining high bytes. The
-+ * /dev/rtc interface can also be used with the select(2) call.
-+ *
-+ * 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.
-+ *
-+ * Based on other minimal char device drivers, like Alan's
-+ * watchdog, Ted's random, etc. etc.
-+ *
-+ * 1.07 Paul Gortmaker.
-+ * 1.08 Miquel van Smoorenburg: disallow certain things on the
-+ * DEC Alpha as the CMOS clock is also used for other things.
-+ * 1.09 Nikita Schmidt: epoch support and some Alpha cleanup.
-+ * 1.09a Pete Zaitcev: Sun SPARC
-+ * 1.09b Jeff Garzik: Modularize, init cleanup
-+ * 1.09c Jeff Garzik: SMP cleanup
-+ * 1.10 Paul Barton-Davis: add support for async I/O
-+ * 1.10a Andrea Arcangeli: Alpha updates
-+ * 1.10b Andrew Morton: SMP lock fix
-+ * 1.10c Cesar Barros: SMP locking fixes and cleanup
-+ * 1.10d Paul Gortmaker: delete paranoia check in rtc_exit
-+ * 1.10e Maciej W. Rozycki: Handle DECstation's year weirdness.
-+ * 1.11 Takashi Iwai: Kernel access functions
-+ * rtc_register/rtc_unregister/rtc_control
-+ * 1.11a Daniele Bellucci: Audit create_proc_read_entry in rtc_init
-+ * 1.12 Venkatesh Pallipadi: Hooks for emulating rtc on HPET base-timer
-+ * CONFIG_HPET_EMULATE_RTC
-+ *
-+ */
-+
-+#define SH03_RTC_VERSION "0.09"
-+
-+#define RTC_IO_EXTENT 0x8
-+
-+/*
-+ * Note that *all* calls to CMOS_READ and CMOS_WRITE are done with
-+ * interrupts disabled. Due to the index-port/data-port (0x70/0x71)
-+ * design of the RTC, we don't want two different things trying to
-+ * get to it at once. (e.g. the periodic 11 min sync from time.c vs.
-+ * this driver.)
-+ */
-+
-+#include <linux/config.h>
-+#include <linux/interrupt.h>
-+#include <linux/module.h>
-+#include <linux/kernel.h>
-+#include <linux/types.h>
-+#include <linux/miscdevice.h>
-+#include <linux/ioport.h>
-+#include <linux/fcntl.h>
-+
-+// @@@@@ 16.09.29 #include <linux/mc146818rtc.h>
-+#include <linux/rtc.h>
-+
-+#include <linux/init.h>
-+#include <linux/poll.h>
-+#include <linux/proc_fs.h>
-+#include <linux/spinlock.h>
-+#include <linux/sysctl.h>
-+#include <linux/wait.h>
-+#include <linux/bcd.h>
-+
-+#include <asm/current.h>
-+#include <asm/uaccess.h>
-+#include <asm/system.h>
-+#include <asm/io.h>
-+
-+extern spinlock_t rtc_lock;
-+
-+/*
-+TODO: Timer
-+*/
-+#define SH03_RTC_IRQ 11
-+
-+#define RTC_BASE 0xb0000000
-+#define RTC_SEC1 (RTC_BASE + 0)
-+#define RTC_SEC10 (RTC_BASE + 1)
-+#define RTC_MIN1 (RTC_BASE + 2)
-+#define RTC_MIN10 (RTC_BASE + 3)
-+#define RTC_HOU1 (RTC_BASE + 4)
-+#define RTC_HOU10 (RTC_BASE + 5)
-+#define RTC_WEE1 (RTC_BASE + 6)
-+#define RTC_DAY1 (RTC_BASE + 7)
-+#define RTC_DAY10 (RTC_BASE + 8)
-+#define RTC_MON1 (RTC_BASE + 9)
-+#define RTC_MON10 (RTC_BASE + 10)
-+#define RTC_YEA1 (RTC_BASE + 11)
-+#define RTC_YEA10 (RTC_BASE + 12)
-+#define RTC_YEA100 (RTC_BASE + 13)
-+#define RTC_YEA1000 (RTC_BASE + 14)
-+#define RTC_CTL (RTC_BASE + 15)
-+#define RTC_BUSY 1
-+#define RTC_STOP 2
-+#define RTC_BANK0 (0 << 2)
-+#define RTC_BANK1 (1 << 2)
-+#define RTC_BANK2 (2 << 2)
-+
-+#define RTC_ATCTL (RTC_BASE + 14)
-+#define RTC_AIE 1
-+#define RTC_AF 2
-+
-+#define RTC_TE_CLOCK (RTC_BASE + 8)
-+#define RTC_TMCTL (RTC_BASE + 14)
-+#define RTC_TIE 1
-+#define RTC_TF 2
-+
-+#define SH03_RTC_PORT(n) ((RTC_BASE) + n)
-+#define SH03_RTC_IO_EXTENT 0x10
-+
-+#ifndef BIN_TO_BCD
-+#define BIN_TO_BCD(val) ((val)=(((val)/10)<<4) + (val)%10)
-+#endif
-+
-+#define SELECT_BANK(n) ctrl_outb((n), RTC_CTL)
-+
-+#define READ_SECONDS ((ctrl_inb(RTC_SEC1) & 15) + (ctrl_inb(RTC_SEC10) & 7) * 10)
-+#define READ_MINUTES ((ctrl_inb(RTC_MIN1) & 15) + (ctrl_inb(RTC_MIN10) & 7) * 10)
-+#define READ_HOURS ((ctrl_inb(RTC_HOU1) & 15) + (ctrl_inb(RTC_HOU10) & 3) * 10)
-+#define READ_WEEK (ctrl_inb(RTC_WEE1) & 7)
-+#define READ_DAY ((ctrl_inb(RTC_DAY1) & 15) + (ctrl_inb(RTC_DAY10) & 3) * 10)
-+#define READ_MONTH ((ctrl_inb(RTC_MON1) & 15) + (ctrl_inb(RTC_MON10) & 1) * 10)
-+#define READ_YEAR ((ctrl_inb(RTC_YEA1) & 15) + (ctrl_inb(RTC_YEA10) & 15) * 10 \
-+ + (ctrl_inb(RTC_YEA100) & 15) * 100 + (ctrl_inb(RTC_YEA1000) & 3) * 1000)
-+
-+#define WRITE_SECONDS(d) ctrl_outb((d) & 15, RTC_SEC1); ctrl_outb((d) >> 4, RTC_SEC10)
-+#define WRITE_MINUTES(d) ctrl_outb((d) & 15, RTC_MIN1); ctrl_outb((d) >> 4, RTC_MIN10)
-+#define WRITE_HOURS(d) ctrl_outb((d) & 15, RTC_HOU1); ctrl_outb((d) >> 4, RTC_HOU10)
-+#define WRITE_WEEK(d) ctrl_outb((d) & 15, RTC_WEE1)
-+#define WRITE_DAY(d) ctrl_outb((d) & 15, RTC_DAY1); ctrl_outb((d) >> 4, RTC_DAY10)
-+#define WRITE_MONTH(d) ctrl_outb((d) & 15, RTC_MON1); ctrl_outb((d) >> 4, RTC_MON10)
-+#define WRITE_YEAR_LOW(d) ctrl_outb((d) & 15, RTC_YEA1); ctrl_outb((d) >> 4, RTC_YEA10)
-+#define WRITE_YEAR_HIGH(d) ctrl_outb((d) & 15, RTC_YEA100); ctrl_outb((d) >> 4, RTC_YEA1000)
-+
-+#define READ_ATCTL (ctrl_inb(RTC_ATCTL))
-+#define WRITE_ATCTL(d) ctrl_outb((d), RTC_ATCTL)
-+
-+#define READ_TMCTL (ctrl_inb(RTC_TMCTL))
-+#define WRITE_TMCTL(d) ctrl_outb((d), RTC_TMCTL)
-+
-+#define READ_CLOCK (ctrl_inb(RTC_TE_CLOCK))
-+#define WRITE_CLOCK(d) ctrl_outb((d) & 15, RTC_TE_CLOCK)
-+
-+
-+
-+#ifdef SH03_RTC_IRQ
-+static int sh03_rtc_has_irq = SH03_RTC_IRQ;
-+#endif
-+
-+/*
-+ * We sponge a minor off of the misc major. No need slurping
-+ * up another valuable major dev number for this. If you add
-+ * an ioctl, make sure you don't conflict with SPARC's RTC
-+ * ioctls.
-+ */
-+
-+static struct fasync_struct *sh03_rtc_async_queue;
-+
-+static DECLARE_WAIT_QUEUE_HEAD(sh03_rtc_wait);
-+
-+#ifdef SH03_RTC_IRQ
-+static struct timer_list sh03_rtc_irq_timer;
-+#endif
-+
-+static ssize_t sh03_rtc_read(struct file *file, char __user *buf,
-+ size_t count, loff_t *ppos);
-+
-+static int sh03_rtc_ioctl(struct inode *inode, struct file *file,
-+ unsigned int cmd, unsigned long arg);
-+
-+#ifdef SH03_RTC_IRQ
-+static unsigned int sh03_rtc_poll(struct file *file, poll_table *wait);
-+#endif
-+
-+void sh03_rtc_get_rtc_time(struct rtc_time *rtc_tm);
-+static void sh03_get_rtc_alm_time (struct rtc_time *alm_tm);
-+#ifdef SH03_RTC_IRQ
-+static void sh03_rtc_dropped_irq(unsigned long data);
-+
-+static void sh03_set_rtc_irq_bit(unsigned int bit);
-+static void sh03_mask_rtc_irq_bit(unsigned int bit);
-+#endif
-+
-+static int sh03_rtc_read_proc(char *page, char **start, off_t off,
-+ int count, int *eof, void *data);
-+
-+/*
-+ * Bits in rtc_status. (6 bits of room for future expansion)
-+ */
-+
-+#define RTC_IS_OPEN 0x01 /* means /dev/rtc is in use */
-+#define RTC_TIMER_ON 0x02 /* missed irq timer active */
-+
-+/*
-+ * rtc_status is never changed by rtc_interrupt, and ioctl/open/close is
-+ * protected by the big kernel lock. However, ioctl can still disable the timer
-+ * in rtc_status and then with del_timer after the interrupt has read
-+ * rtc_status but before mod_timer is called, which would then reenable the
-+ * timer (but you would need to have an awful timing before you'd trip on it)
-+ */
-+static unsigned long rtc_status = 0; /* bitmapped status byte. */
-+static unsigned long rtc_freq = 0; /* Current periodic IRQ rate */
-+static unsigned long rtc_irq_data = 0; /* our output to the world */
-+static unsigned long rtc_max_user_freq = 64; /* > this, need CAP_SYS_RESOURCE */
-+
-+#ifdef SH03_RTC_IRQ
-+/*
-+ * rtc_task_lock nests inside rtc_lock.
-+ */
-+static spinlock_t rtc_task_lock = SPIN_LOCK_UNLOCKED;
-+static rtc_task_t *rtc_callback = NULL;
-+#endif
-+
-+/*
-+ * If this driver ever becomes modularised, it will be really nice
-+ * to make the epoch retain its value across module reload...
-+ */
-+
-+static unsigned long epoch = 1900; /* year corresponding to 0x00 */
-+
-+static const unsigned char days_in_mo[] =
-+{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
-+
-+#if 0 /* @@@@@ 16.09.29 TODO */
-+/*
-+ * Returns true if a clock update is in progress
-+ */
-+static inline unsigned char rtc_is_updating(void)
-+{
-+ unsigned char uip;
-+
-+ spin_lock_irq(&rtc_lock);
-+ uip = (CMOS_READ(RTC_FREQ_SELECT) & RTC_UIP);
-+ spin_unlock_irq(&rtc_lock);
-+ return uip;
-+}
-+#endif
-+
-+#ifdef SH03_RTC_IRQ
-+/*
-+ * A very tiny interrupt handler. It runs with SA_INTERRUPT set,
-+ * but there is possibility of conflicting with the set_rtc_mmss()
-+ * call (the rtc irq and the timer irq can easily run at the same
-+ * time in two different CPUs). So we need to serialize
-+ * accesses to the chip with the rtc_lock spinlock that each
-+ * architecture should implement in the timer code.
-+ * (See ./arch/XXXX/kernel/time.c for the set_rtc_mmss() function.)
-+ */
-+
-+irqreturn_t sh03_rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs)
-+{
-+ /*
-+ * Can be an alarm interrupt, update complete interrupt,
-+ * or a periodic interrupt. We store the status in the
-+ * low byte and the number of interrupts received since
-+ * the last read in the remainder of rtc_irq_data.
-+ */
-+
-+ spin_lock (&rtc_lock);
-+ rtc_irq_data += 0x100;
-+ rtc_irq_data &= ~0xff;
-+ SELECT_BANK(RTC_BANK1);
-+ rtc_irq_data |= (READ_ATCTL & RTC_AF) >> 1;
-+ WRITE_ATCTL(READ_ATCTL & ~ RTC_AF);
-+ SELECT_BANK(RTC_BANK2);
-+ rtc_irq_data |= (READ_TMCTL & RTC_TF);
-+ WRITE_TMCTL(READ_TMCTL & ~ RTC_TF);
-+ SELECT_BANK(RTC_BANK0);
-+
-+ if (rtc_status & RTC_TIMER_ON)
-+ mod_timer(&sh03_rtc_irq_timer, jiffies + HZ/rtc_freq + 2*HZ/100);
-+
-+ spin_unlock (&rtc_lock);
-+
-+ /* Now do the rest of the actions */
-+ spin_lock(&rtc_task_lock);
-+ if (rtc_callback)
-+ rtc_callback->func(rtc_callback->private_data);
-+ spin_unlock(&rtc_task_lock);
-+ wake_up_interruptible(&sh03_rtc_wait);
-+
-+ kill_fasync (&sh03_rtc_async_queue, SIGIO, POLL_IN);
-+
-+ return IRQ_HANDLED;
-+}
-+#endif
-+
-+/*
-+ * sysctl-tuning infrastructure.
-+ */
-+static ctl_table rtc_table[] = {
-+ {
-+ .ctl_name = 1,
-+ .procname = "max-user-freq",
-+ .data = &rtc_max_user_freq,
-+ .maxlen = sizeof(int),
-+ .mode = 0644,
-+ .proc_handler = &proc_dointvec,
-+ },
-+ { .ctl_name = 0 }
-+};
-+
-+static ctl_table rtc_root[] = {
-+ {
-+ .ctl_name = 1,
-+ .procname = "rtc",
-+ .maxlen = 0,
-+ .mode = 0555,
-+ .child = rtc_table,
-+ },
-+ { .ctl_name = 0 }
-+};
-+
-+static ctl_table dev_root[] = {
-+ {
-+ .ctl_name = CTL_DEV,
-+ .procname = "dev",
-+ .maxlen = 0,
-+ .mode = 0555,
-+ .child = rtc_root,
-+ },
-+ { .ctl_name = 0 }
-+};
-+
-+static struct ctl_table_header *sysctl_header;
-+
-+static int __init init_sysctl(void)
-+{
-+ sysctl_header = register_sysctl_table(dev_root, 0);
-+ return 0;
-+}
-+
-+static void __exit cleanup_sysctl(void)
-+{
-+ unregister_sysctl_table(sysctl_header);
-+}
-+
-+/*
-+ * Now all the various file operations that we export.
-+ */
-+
-+static ssize_t sh03_rtc_read(struct file *file, char __user *buf,
-+ size_t count, loff_t *ppos)
-+{
-+#ifndef SH03_RTC_IRQ
-+ return -EIO;
-+#else
-+ DECLARE_WAITQUEUE(wait, current);
-+ unsigned long data;
-+ ssize_t retval;
-+
-+ if (sh03_rtc_has_irq == 0)
-+ return -EIO;
-+
-+ if (count < sizeof(unsigned))
-+ return -EINVAL;
-+
-+ add_wait_queue(&sh03_rtc_wait, &wait);
-+
-+ do {
-+ /* First make it right. Then make it fast. Putting this whole
-+ * block within the parentheses of a while would be too
-+ * confusing. And no, xchg() is not the answer. */
-+
-+ __set_current_state(TASK_INTERRUPTIBLE);
-+
-+ spin_lock_irq (&rtc_lock);
-+ data = rtc_irq_data;
-+ rtc_irq_data = 0;
-+ spin_unlock_irq (&rtc_lock);
-+
-+ if (data != 0)
-+ break;
-+
-+ if (file->f_flags & O_NONBLOCK) {
-+ retval = -EAGAIN;
-+ goto out;
-+ }
-+ if (signal_pending(current)) {
-+ retval = -ERESTARTSYS;
-+ goto out;
-+ }
-+ schedule();
-+ } while (1);
-+
-+ if (count < sizeof(unsigned long))
-+ retval = put_user(data, (unsigned int __user *)buf) ?: sizeof(int);
-+ else
-+ retval = put_user(data, (unsigned long __user *)buf) ?: sizeof(long);
-+ out:
-+ current->state = TASK_RUNNING;
-+ remove_wait_queue(&sh03_rtc_wait, &wait);
-+
-+ return retval;
-+#endif
-+}
-+
-+static int sh03_rtc_do_ioctl(unsigned int cmd, unsigned long arg, int kernel)
-+{
-+ struct rtc_time wtime;
-+
-+#ifdef SH03_RTC_IRQ
-+ if (sh03_rtc_has_irq == 0) {
-+ switch (cmd) {
-+ case RTC_AIE_OFF:
-+ case RTC_AIE_ON:
-+ case RTC_PIE_OFF:
-+ case RTC_PIE_ON:
-+ case RTC_UIE_OFF:
-+ case RTC_UIE_ON:
-+ case RTC_IRQP_READ:
-+ case RTC_IRQP_SET:
-+ return -EINVAL;
-+ };
-+ }
-+#endif
-+
-+ switch (cmd) {
-+#ifdef SH03_RTC_IRQ
-+ case RTC_AIE_OFF: /* Mask alarm int. enab. bit */
-+ {
-+ sh03_mask_rtc_irq_bit(RTC_AIE);
-+ return 0;
-+ }
-+ case RTC_AIE_ON: /* Allow alarm interrupts. */
-+ {
-+ sh03_set_rtc_irq_bit(RTC_AIE);
-+ return 0;
-+ }
-+ case RTC_PIE_OFF: /* Mask periodic int. enab. bit */
-+ {
-+ sh03_mask_rtc_irq_bit(RTC_PIE_OFF);
-+ if (rtc_status & RTC_TIMER_ON) {
-+ spin_lock_irq (&rtc_lock);
-+ rtc_status &= ~RTC_TIMER_ON;
-+ del_timer(&sh03_rtc_irq_timer);
-+ spin_unlock_irq (&rtc_lock);
-+ }
-+ return 0;
-+ }
-+ case RTC_PIE_ON: /* Allow periodic ints */
-+ {
-+
-+ /*
-+ * We don't really want Joe User enabling more
-+ * than 64Hz of interrupts on a multi-user machine.
-+ */
-+ if (!kernel && (rtc_freq > rtc_max_user_freq) &&
-+ (!capable(CAP_SYS_RESOURCE)))
-+ return -EACCES;
-+
-+ if (!(rtc_status & RTC_TIMER_ON)) {
-+ spin_lock_irq (&rtc_lock);
-+ sh03_rtc_irq_timer.expires = jiffies + HZ/rtc_freq + 2*HZ/100;
-+ add_timer(&sh03_rtc_irq_timer);
-+ rtc_status |= RTC_TIMER_ON;
-+ spin_unlock_irq (&rtc_lock);
-+ }
-+ sh03_set_rtc_irq_bit(RTC_PIE_ON);
-+ return 0;
-+ }
-+#if 1 /* @@@@@ 16.09.29 TODO */
-+ case RTC_UIE_OFF: /* Mask ints from RTC updates. */
-+ case RTC_UIE_ON: /* Allow ints for RTC updates. */
-+ return -EINVAL;
-+#else
-+ case RTC_UIE_OFF: /* Mask ints from RTC updates. */
-+ {
-+ sh03_mask_rtc_irq_bit(RTC_UIE);
-+ return 0;
-+ }
-+ case RTC_UIE_ON: /* Allow ints for RTC updates. */
-+ {
-+ sh03_set_rtc_irq_bit(RTC_UIE);
-+ return 0;
-+ }
-+#endif
-+#endif
-+ case RTC_ALM_READ: /* Read the present alarm time */
-+ {
-+ /*
-+ * This returns a struct rtc_time. Reading >= 0xc0
-+ * means "don't care" or "match all". Only the tm_hour,
-+ * tm_min, and tm_sec values are filled in.
-+ */
-+ memset(&wtime, 0, sizeof(struct rtc_time));
-+ sh03_get_rtc_alm_time(&wtime);
-+ break;
-+ }
-+ case RTC_ALM_SET: /* Store a time into the alarm */
-+ {
-+ /*
-+ * This expects a struct rtc_time. Writing 0xff means
-+ * "don't care" or "match all". Only the tm_hour,
-+ * tm_min and tm_sec are used.
-+ */
-+ unsigned char day, week, hrs, min, sec;
-+ struct rtc_time alm_tm;
-+
-+ if (copy_from_user(&alm_tm, (struct rtc_time __user *)arg,
-+ sizeof(struct rtc_time)))
-+ return -EFAULT;
-+
-+ day = alm_tm.tm_mday;
-+ week = alm_tm.tm_wday;
-+ hrs = alm_tm.tm_hour;
-+ min = alm_tm.tm_min;
-+ sec = alm_tm.tm_sec;
-+ if (day >= 31)
-+ day = 99;
-+
-+ if (week >= 7)
-+ week = 9;
-+
-+ if (hrs >= 24)
-+ hrs = 99;
-+
-+ if (min >= 60)
-+ min = 99;
-+
-+ if (sec >= 60)
-+ sec = 99;
-+
-+ spin_lock_irq(&rtc_lock);
-+ BIN_TO_BCD(sec);
-+ BIN_TO_BCD(min);
-+ BIN_TO_BCD(hrs);
-+ BIN_TO_BCD(day);
-+ SELECT_BANK(RTC_BANK1);
-+ WRITE_DAY(day);
-+ WRITE_WEEK(week);
-+ WRITE_HOURS(hrs);
-+ WRITE_MINUTES(min);
-+ WRITE_SECONDS(sec);
-+ SELECT_BANK(RTC_BANK0);
-+ spin_unlock_irq(&rtc_lock);
-+
-+ return 0;
-+ }
-+ case RTC_RD_TIME: /* Read the time/date from RTC */
-+ {
-+ memset(&wtime, 0, sizeof(struct rtc_time));
-+ sh03_rtc_get_rtc_time(&wtime);
-+ break;
-+ }
-+ case RTC_SET_TIME: /* Set the RTC */
-+ {
-+ struct rtc_time rtc_tm;
-+ unsigned char mon, day, hrs, min, sec, leap_yr;
-+ unsigned int yrs, yrs_low, yrs_high;
-+
-+ if (!capable(CAP_SYS_TIME))
-+ return -EACCES;
-+
-+ if (copy_from_user(&rtc_tm, (struct rtc_time __user *)arg,
-+ sizeof(struct rtc_time)))
-+ return -EFAULT;
-+
-+ yrs = rtc_tm.tm_year + 1900;
-+ mon = rtc_tm.tm_mon + 1; /* tm_mon starts at zero */
-+ day = rtc_tm.tm_mday;
-+ hrs = rtc_tm.tm_hour;
-+ min = rtc_tm.tm_min;
-+ sec = rtc_tm.tm_sec;
-+
-+ if (yrs < 1970)
-+ return -EINVAL;
-+
-+ leap_yr = ((!(yrs % 4) && (yrs % 100)) || !(yrs % 400));
-+
-+ if ((mon > 12) || (day == 0))
-+ return -EINVAL;
-+
-+ if (day > (days_in_mo[mon] + ((mon == 2) && leap_yr)))
-+ return -EINVAL;
-+
-+ if ((hrs >= 24) || (min >= 60) || (sec >= 60))
-+ return -EINVAL;
-+
-+ if ((yrs -= epoch) > 255) /* They are unsigned */
-+ return -EINVAL;
-+
-+ spin_lock_irq(&rtc_lock);
-+
-+ /* These limits and adjustments are independent of
-+ * whether the chip is in binary mode or not.
-+ */
-+ if (yrs > 169) {
-+ spin_unlock_irq(&rtc_lock);
-+ return -EINVAL;
-+ }
-+ if (yrs >= 100)
-+ yrs -= 100;
-+
-+ yrs += epoch;
-+ BIN_TO_BCD(sec);
-+ BIN_TO_BCD(min);
-+ BIN_TO_BCD(hrs);
-+ BIN_TO_BCD(day);
-+ BIN_TO_BCD(mon);
-+ yrs_low = yrs % 100;
-+ yrs_high = yrs / 100;
-+ BIN_TO_BCD(yrs_low);
-+ BIN_TO_BCD(yrs_high);
-+
-+ WRITE_YEAR_HIGH(yrs_high);
-+ WRITE_YEAR_LOW(yrs_low);
-+ WRITE_MONTH(mon);
-+ WRITE_DAY(day);
-+ WRITE_HOURS(hrs);
-+ WRITE_MINUTES(min);
-+ WRITE_SECONDS(sec);
-+
-+ spin_unlock_irq(&rtc_lock);
-+ return 0;
-+ }
-+#ifdef SH03_RTC_IRQ
-+ case RTC_IRQP_READ: /* Read the periodic IRQ rate. */
-+ {
-+ return put_user(rtc_freq, (unsigned long __user *)arg);
-+ }
-+ case RTC_IRQP_SET: /* Set periodic IRQ rate. */
-+ {
-+ int tmp = 0;
-+
-+ /*
-+ * We don't really want Joe User generating more
-+ * than 64Hz of interrupts on a multi-user machine.
-+ */
-+ if (!kernel && (arg > rtc_max_user_freq) && (!capable(CAP_SYS_RESOURCE)))
-+ return -EACCES;
-+
-+ switch (arg) {
-+ case 1: tmp = 2; break;
-+ case 64: tmp = 1; break;
-+ case 4096: tmp = 0; break;
-+ default: return -EINVAL;
-+ }
-+
-+ spin_lock_irq(&rtc_lock);
-+ rtc_freq = arg;
-+ SELECT_BANK(RTC_BANK2);
-+ WRITE_CLOCK((READ_CLOCK & ~3) | tmp);
-+ SELECT_BANK(RTC_BANK0);
-+ spin_unlock_irq(&rtc_lock);
-+ return 0;
-+ }
-+#endif
-+ case RTC_EPOCH_READ: /* Read the epoch. */
-+ {
-+ return put_user (epoch, (unsigned long __user *)arg);
-+ }
-+ case RTC_EPOCH_SET: /* Set the epoch. */
-+ {
-+ /*
-+ * There were no RTC clocks before 1900.
-+ */
-+ if (arg < 1900)
-+ return -EINVAL;
-+
-+ if (!capable(CAP_SYS_TIME))
-+ return -EACCES;
-+
-+ epoch = arg;
-+ return 0;
-+ }
-+ default:
-+ return -ENOTTY;
-+ }
-+ return copy_to_user((void __user *)arg, &wtime, sizeof wtime) ? -EFAULT : 0;
-+}
-+
-+static int sh03_rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
-+ unsigned long arg)
-+{
-+ return sh03_rtc_do_ioctl(cmd, arg, 0);
-+}
-+
-+/*
-+ * We enforce only one user at a time here with the open/close.
-+ * Also clear the previous interrupt data on an open, and clean
-+ * up things on a close.
-+ */
-+
-+/* We use rtc_lock to protect against concurrent opens. So the BKL is not
-+ * needed here. Or anywhere else in this driver. */
-+static int sh03_rtc_open(struct inode *inode, struct file *file)
-+{
-+ spin_lock_irq (&rtc_lock);
-+
-+ if(rtc_status & RTC_IS_OPEN)
-+ goto out_busy;
-+
-+ rtc_status |= RTC_IS_OPEN;
-+
-+ rtc_irq_data = 0;
-+ spin_unlock_irq (&rtc_lock);
-+ return 0;
-+
-+out_busy:
-+ spin_unlock_irq (&rtc_lock);
-+ return -EBUSY;
-+}
-+
-+static int sh03_rtc_fasync (int fd, struct file *filp, int on)
-+
-+{
-+ return fasync_helper (fd, filp, on, &sh03_rtc_async_queue);
-+}
-+
-+static int sh03_rtc_release(struct inode *inode, struct file *file)
-+{
-+#ifdef SH03_RTC_IRQ
-+ if (sh03_rtc_has_irq == 0)
-+ goto no_irq;
-+
-+ /*
-+ * Turn off all interrupts once the device is no longer
-+ * in use, and clear the data.
-+ */
-+
-+ spin_lock_irq(&rtc_lock);
-+ SELECT_BANK(RTC_BANK1);
-+ ctrl_outb(0, RTC_ATCTL);
-+ SELECT_BANK(RTC_BANK2);
-+ ctrl_outb(0, RTC_TMCTL);
-+ SELECT_BANK(RTC_BANK0);
-+
-+ if (rtc_status & RTC_TIMER_ON) {
-+ rtc_status &= ~RTC_TIMER_ON;
-+ del_timer(&sh03_rtc_irq_timer);
-+ }
-+ spin_unlock_irq(&rtc_lock);
-+
-+ if (file->f_flags & FASYNC) {
-+ sh03_rtc_fasync (-1, file, 0);
-+ }
-+no_irq:
-+#endif
-+
-+ spin_lock_irq (&rtc_lock);
-+ rtc_irq_data = 0;
-+ rtc_status &= ~RTC_IS_OPEN;
-+ spin_unlock_irq (&rtc_lock);
-+ return 0;
-+}
-+
-+#ifdef SH03_RTC_IRQ
-+/* Called without the kernel lock - fine */
-+static unsigned int sh03_rtc_poll(struct file *file, poll_table *wait)
-+{
-+ unsigned long l;
-+
-+ if (sh03_rtc_has_irq == 0)
-+ return 0;
-+
-+ poll_wait(file, &sh03_rtc_wait, wait);
-+
-+ spin_lock_irq (&rtc_lock);
-+ l = rtc_irq_data;
-+ spin_unlock_irq (&rtc_lock);
-+
-+ if (l != 0)
-+ return POLLIN | POLLRDNORM;
-+ return 0;
-+}
-+#endif
-+
-+int rtc_control(rtc_task_t *task, unsigned int cmd, unsigned long arg)
-+{
-+#ifndef SH03_RTC_IRQ
-+ return -EIO;
-+#else
-+ spin_lock_irq(&rtc_task_lock);
-+ if (rtc_callback != task) {
-+ spin_unlock_irq(&rtc_task_lock);
-+ return -ENXIO;
-+ }
-+ spin_unlock_irq(&rtc_task_lock);
-+ return sh03_rtc_do_ioctl(cmd, arg, 1);
-+#endif
-+}
-+
-+
-+/*
-+ * The various file operations we support.
-+ */
-+
-+static struct file_operations sh03_rtc_fops = {
-+ .owner = THIS_MODULE,
-+ .llseek = no_llseek,
-+ .read = sh03_rtc_read,
-+#ifdef SH03_RTC_IRQ
-+ .poll = sh03_rtc_poll,
-+#endif
-+ .ioctl = sh03_rtc_ioctl,
-+ .open = sh03_rtc_open,
-+ .release = sh03_rtc_release,
-+ .fasync = sh03_rtc_fasync,
-+};
-+
-+static struct miscdevice sh03_rtc_dev=
-+{
-+ RTC_MINOR,
-+ "sh03-rtc",
-+ &sh03_rtc_fops
-+};
-+
-+#ifdef SH03_RTC_IRQ
-+static irqreturn_t (*rtc_int_handler_ptr)(int irq, void *dev_id, struct pt_regs *regs);
-+#endif
-+
-+static int __init sh03_rtc_init(void)
-+{
-+ if (!request_region(SH03_RTC_PORT(0), SH03_RTC_IO_EXTENT, "sh03-rtc")) {
-+ printk(KERN_ERR "sh03-rtc: I/O port %d is not free.\n", SH03_RTC_PORT (0));
-+ return -EIO;
-+ }
-+
-+#ifdef SH03_RTC_IRQ
-+ rtc_int_handler_ptr = sh03_rtc_interrupt;
-+ if(request_irq(SH03_RTC_IRQ, rtc_int_handler_ptr, SA_INTERRUPT, "sh03-rtc", NULL)) {
-+ /* Yeah right, seeing as irq 8 doesn't even hit the bus. */
-+ printk(KERN_ERR "sh03-rtc: IRQ %d is not free.\n", RTC_IRQ);
-+ release_region(SH03_RTC_PORT(0), SH03_RTC_IO_EXTENT);
-+ return -EIO;
-+ }
-+#endif
-+
-+ if (misc_register(&sh03_rtc_dev)) {
-+#ifdef SH03_RTC_IRQ
-+ free_irq(SH03_RTC_IRQ, NULL);
-+#endif
-+ release_region(SH03_RTC_PORT(0), SH03_RTC_IO_EXTENT);
-+ return -ENODEV;
-+ }
-+ if (!create_proc_read_entry ("driver/sh03-rtc", 0, NULL, sh03_rtc_read_proc, NULL)) {
-+#ifdef SH03_RTC_IRQ
-+ free_irq(SH03_RTC_IRQ, NULL);
-+#endif
-+ release_region(SH03_RTC_PORT(0), SH03_RTC_IO_EXTENT);
-+ misc_deregister(&sh03_rtc_dev);
-+ return -ENOMEM;
-+ }
-+
-+#ifdef SH03_RTC_IRQ
-+ if (sh03_rtc_has_irq == 0)
-+ goto no_irq2;
-+
-+ init_timer(&sh03_rtc_irq_timer);
-+ sh03_rtc_irq_timer.function = sh03_rtc_dropped_irq;
-+ spin_lock_irq(&rtc_lock);
-+ SELECT_BANK(RTC_BANK2);
-+ WRITE_CLOCK(2);
-+ SELECT_BANK(RTC_BANK0);
-+ rtc_freq = 1;
-+ spin_unlock_irq(&rtc_lock);
-+no_irq2:
-+#endif
-+
-+ (void) init_sysctl();
-+
-+ printk(KERN_INFO "CTP/PCI-SH03 Real Time Clock Driver v" SH03_RTC_VERSION "\n");
-+
-+ return 0;
-+}
-+
-+static void __exit sh03_rtc_exit (void)
-+{
-+ cleanup_sysctl();
-+ remove_proc_entry ("driver/sh03-rtc", NULL);
-+ misc_deregister(&sh03_rtc_dev);
-+ release_region (SH03_RTC_PORT (0), SH03_RTC_IO_EXTENT);
-+#ifdef SH03_RTC_IRQ
-+ if (sh03_rtc_has_irq)
-+ free_irq (SH03_RTC_IRQ, NULL);
-+#endif
-+}
-+
-+module_init(sh03_rtc_init);
-+module_exit(sh03_rtc_exit);
-+
-+#ifdef SH03_RTC_IRQ
-+/*
-+ * At IRQ rates >= 4096Hz, an interrupt may get lost altogether.
-+ * (usually during an IDE disk interrupt, with IRQ unmasking off)
-+ * Since the interrupt handler doesn't get called, the IRQ status
-+ * byte doesn't get read, and the RTC stops generating interrupts.
-+ * A timer is set, and will call this function if/when that happens.
-+ * To get it out of this stalled state, we just read the status.
-+ * At least a jiffy of interrupts (rtc_freq/HZ) will have been lost.
-+ * (You *really* shouldn't be trying to use a non-realtime system
-+ * for something that requires a steady > 1KHz signal anyways.)
-+ */
-+
-+static void sh03_rtc_dropped_irq(unsigned long data)
-+{
-+ unsigned long freq;
-+
-+ spin_lock_irq (&rtc_lock);
-+
-+ /* Just in case someone disabled the timer from behind our back... */
-+ if (rtc_status & RTC_TIMER_ON)
-+ mod_timer(&sh03_rtc_irq_timer, jiffies + HZ/rtc_freq + 2*HZ/100);
-+
-+ rtc_irq_data += ((rtc_freq/HZ)<<8);
-+ rtc_irq_data &= ~0xff;
-+ SELECT_BANK(RTC_BANK1);
-+ rtc_irq_data |= (READ_ATCTL & RTC_AF) >> 1;
-+ SELECT_BANK(RTC_BANK2);
-+ rtc_irq_data |= (READ_TMCTL & RTC_TF);
-+ SELECT_BANK(RTC_BANK0);
-+
-+ freq = rtc_freq;
-+
-+ spin_unlock_irq(&rtc_lock);
-+
-+ printk(KERN_WARNING "sh03-rtc: lost some interrupts at %ldHz.\n", freq);
-+
-+ /* Now we have new data */
-+ wake_up_interruptible(&sh03_rtc_wait);
-+
-+ kill_fasync (&sh03_rtc_async_queue, SIGIO, POLL_IN);
-+}
-+#endif
-+
-+/*
-+ * Info exported via "/proc/driver/sh03-rtc".
-+ */
-+
-+static int sh03_rtc_proc_output (char *buf)
-+{
-+#define YN(bit) ((bit) ? "yes" : "no")
-+#define NY(bit) ((bit) ? "no" : "yes")
-+ char *p;
-+ struct rtc_time tm;
-+ unsigned char aie, tie, af, tf;
-+ unsigned long freq;
-+ int sec_ae, min_ae, hour_ae, week_ae, day_ae;
-+
-+ spin_lock_irq(&rtc_lock);
-+ SELECT_BANK(RTC_BANK1);
-+ aie = READ_ATCTL & RTC_AIE;
-+ af = READ_ATCTL & 2;
-+ sec_ae = ctrl_inb(RTC_SEC10) & 8;
-+ min_ae = ctrl_inb(RTC_MIN10) & 8;
-+ hour_ae = ctrl_inb(RTC_HOU10) & 8;
-+ week_ae = ctrl_inb(RTC_WEE1 ) & 8;
-+ day_ae = ctrl_inb(RTC_DAY10) & 8;
-+ SELECT_BANK(RTC_BANK2);
-+ tie = READ_TMCTL & RTC_TIE;
-+ tf = READ_TMCTL & 2;
-+ SELECT_BANK(RTC_BANK0);
-+ freq = rtc_freq;
-+ spin_unlock_irq(&rtc_lock);
-+
-+ p = buf;
-+
-+ sh03_rtc_get_rtc_time(&tm);
-+
-+ /*
-+ * There is no way to tell if the luser has the RTC set for local
-+ * time or for Universal Standard Time (GMT). Probably local though.
-+ */
-+ p += sprintf(p,
-+ "rtc_time\t: %02d:%02d:%02d\n"
-+ "rtc_date\t: %04d-%02d-%02d\n"
-+ "rtc_epoch\t: %04lu\n",
-+ tm.tm_hour, tm.tm_min, tm.tm_sec,
-+ tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, epoch);
-+
-+ sh03_get_rtc_alm_time(&tm);
-+
-+ /*
-+ * We implicitly assume 24hr mode here. Alarm values >= 0xc0 will
-+ * match any value for that particular field. Values that are
-+ * greater than a valid time, but less than 0xc0 shouldn't appear.
-+ */
-+ p += sprintf(p, "alarm\t\t: ");
-+ if (!day_ae)
-+ p += sprintf(p, "%02d ", tm.tm_mday);
-+ else
-+ p += sprintf(p, "** ");
-+ if (!week_ae)
-+ p += sprintf(p, "%01d ", tm.tm_wday);
-+ else
-+ p += sprintf(p, "* ");
-+ if (!hour_ae)
-+ p += sprintf(p, "%02d:", tm.tm_hour);
-+ else
-+ p += sprintf(p, "**:");
-+
-+ if (!min_ae)
-+ p += sprintf(p, "%02d:", tm.tm_min);
-+ else
-+ p += sprintf(p, "**:");
-+
-+ if (!sec_ae)
-+ p += sprintf(p, "%02d\n", tm.tm_sec);
-+ else
-+ p += sprintf(p, "**\n");
-+
-+ p += sprintf(p,
-+ "alarm_IRQ\t: %s-%s\n"
-+ "periodic_IRQ\t: %s-%s\n"
-+ "periodic_freq\t: %ld\n"
-+ "FOS\t\t: %s\n"
-+ "Control Reg\t: %x\n",
-+ YN(aie),YN(af),
-+ YN(tie),YN(tf),
-+ freq,
-+ ctrl_inb(RTC_SEC10) & 8 ? "on" : "off",
-+ ctrl_inb(RTC_CTL) & 15);
-+
-+ return p - buf;
-+#undef YN
-+#undef NY
-+}
-+
-+static int sh03_rtc_read_proc(char *page, char **start, off_t off,
-+ int count, int *eof, void *data)
-+{
-+ int len = sh03_rtc_proc_output (page);
-+ if (len <= off+count) *eof = 1;
-+ *start = page + off;
-+ len -= off;
-+ if (len>count) len = count;
-+ if (len<0) len = 0;
-+ return len;
-+}
-+
-+void sh03_rtc_get_rtc_time(struct rtc_time *rtc_tm)
-+{
-+// @@@@@ 16.09.29 TODO unsigned long uip_watchdog = jiffies;
-+
-+ /*
-+ * read RTC once any update in progress is done. The update
-+ * can take just over 2ms. We wait 10 to 20ms. There is no need to
-+ * to poll-wait (up to 1s - eeccch) for the falling edge of RTC_UIP.
-+ * If you need to know *exactly* when a second has started, enable
-+ * periodic update complete interrupts, (via ioctl) and then
-+ * immediately read /dev/rtc which will block until you get the IRQ.
-+ * Once the read clears, read the RTC time (again via ioctl). Easy.
-+ */
-+
-+#if 0 /* @@@@@ 16.09.29 TODO */
-+ if (rtc_is_updating() != 0)
-+ while (jiffies - uip_watchdog < 2*HZ/100) {
-+ barrier();
-+ cpu_relax();
-+ }
-+#endif
-+ /*
-+ * Only the values that we read from the RTC are set. We leave
-+ * tm_wday, tm_yday and tm_isdst untouched. Even though the
-+ * RTC has RTC_DAY_OF_WEEK, we ignore it, as it is only updated
-+ * by the RTC when initially set to a non-zero value.
-+ */
-+ spin_lock_irq(&rtc_lock);
-+ rtc_tm->tm_sec = READ_SECONDS;
-+ rtc_tm->tm_min = READ_MINUTES;
-+ rtc_tm->tm_hour = READ_HOURS;
-+ rtc_tm->tm_wday = READ_WEEK;
-+ rtc_tm->tm_mday = READ_DAY;
-+ rtc_tm->tm_mon = READ_MONTH;
-+ rtc_tm->tm_year = READ_YEAR - epoch;
-+ spin_unlock_irq(&rtc_lock);
-+
-+ /*
-+ * Account for differences between how the RTC uses the values
-+ * and how they are defined in a struct rtc_time;
-+ */
-+ if ((rtc_tm->tm_year += (epoch - 1900)) <= 69)
-+ rtc_tm->tm_year += 100;
-+
-+ rtc_tm->tm_mon--;
-+}
-+
-+static void sh03_get_rtc_alm_time(struct rtc_time *alm_tm)
-+{
-+ /*
-+ * Only the values that we read from the RTC are set. That
-+ * means only tm_hour, tm_min, and tm_sec.
-+ */
-+ spin_lock_irq(&rtc_lock);
-+ SELECT_BANK(RTC_BANK1);
-+ alm_tm->tm_sec = READ_SECONDS;
-+ alm_tm->tm_min = READ_MINUTES;
-+ alm_tm->tm_hour = READ_HOURS;
-+ alm_tm->tm_wday = READ_WEEK;
-+ alm_tm->tm_mday = READ_DAY;
-+ SELECT_BANK(RTC_BANK0);
-+ spin_unlock_irq(&rtc_lock);
-+}
-+
-+#ifdef SH03_RTC_IRQ
-+/*
-+ * Used to disable/enable interrupts for any one of UIE, AIE, PIE.
-+ * Rumour has it that if you frob the interrupt enable/disable
-+ * bits in RTC_CONTROL, you should read RTC_INTR_FLAGS, to
-+ * ensure you actually start getting interrupts. Probably for
-+ * compatibility with older/broken chipset RTC implementations.
-+ * We also clear out any old irq data after an ioctl() that
-+ * meddles with the interrupt enable/disable bits.
-+ */
-+
-+static void sh03_mask_rtc_irq_bit(unsigned int bit)
-+{
-+ unsigned char val;
-+
-+ spin_lock_irq(&rtc_lock);
-+ switch(bit) {
-+ case RTC_AIE_OFF:
-+ SELECT_BANK(RTC_BANK1);
-+ val = READ_ATCTL;
-+ val &= ~RTC_AIE;
-+ WRITE_ATCTL(val);
-+ SELECT_BANK(RTC_BANK0);
-+ break;
-+ case RTC_PIE_OFF:
-+ SELECT_BANK(RTC_BANK2);
-+ val = READ_TMCTL;
-+ val &= ~RTC_TIE;
-+ WRITE_TMCTL(val);
-+ SELECT_BANK(RTC_BANK0);
-+ break;
-+ }
-+
-+ rtc_irq_data = 0;
-+ spin_unlock_irq(&rtc_lock);
-+}
-+
-+static void sh03_set_rtc_irq_bit(unsigned int bit)
-+{
-+ unsigned char val;
-+
-+ spin_lock_irq(&rtc_lock);
-+ switch(bit) {
-+ case RTC_AIE_ON:
-+ SELECT_BANK(RTC_BANK1);
-+ val = READ_ATCTL;
-+ val |= RTC_AIE;
-+ WRITE_ATCTL(val);
-+ SELECT_BANK(RTC_BANK0);
-+ break;
-+ case RTC_PIE_ON:
-+ SELECT_BANK(RTC_BANK2);
-+ val = READ_TMCTL;
-+ val |= RTC_TIE;
-+ WRITE_TMCTL(val);
-+ SELECT_BANK(RTC_BANK0);
-+ break;
-+ }
-+
-+ rtc_irq_data = 0;
-+ spin_unlock_irq(&rtc_lock);
-+}
-+#endif
-+
-+MODULE_AUTHOR("Saito.K Interface Corporation");
-+MODULE_LICENSE("GPL");
-+MODULE_ALIAS_MISCDEV(RTC_MINOR);
-+
-diff -ruN linux-2.6.17-vanilla/drivers/char/sysrq.c linux-2.6.17/drivers/char/sysrq.c
---- linux-2.6.17-vanilla/drivers/char/sysrq.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/char/sysrq.c 2006-07-12 16:54:23.000000000 +0000
-@@ -38,6 +38,18 @@
- #include <linux/kexec.h>
-
- #include <asm/ptrace.h>
-+#ifdef CONFIG_KGDB_SYSRQ
-+#include <asm/kgdb.h>
-+#define GDB_OP &kgdb_op
-+static struct sysrq_key_op kgdb_op={
-+ .handler = (void *)breakpoint,
-+ .help_msg = "kGdb ",
-+ .action_msg = "Debug breakpoint\n",
-+};
-+
-+#else
-+#define GDB_OP NULL
-+#endif
-
- /* Whether we react on sysrq keys or just ignore them */
- int sysrq_enabled = 1;
-@@ -296,7 +308,7 @@
- &sysrq_showlocks_op, /* d */
- &sysrq_term_op, /* e */
- &sysrq_moom_op, /* f */
-- NULL, /* g */
-+ GDB_OP, /* g */
- NULL, /* h */
- &sysrq_kill_op, /* i */
- NULL, /* j */
-diff -ruN linux-2.6.17-vanilla/drivers/char/watchdog/CVS/Entries linux-2.6.17/drivers/char/watchdog/CVS/Entries
---- linux-2.6.17-vanilla/drivers/char/watchdog/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/char/watchdog/CVS/Entries 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1,2 @@
-+/shwdt.c/1.12/Mon Aug 29 21:01:18 2005/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/drivers/char/watchdog/CVS/Repository linux-2.6.17/drivers/char/watchdog/CVS/Repository
---- linux-2.6.17-vanilla/drivers/char/watchdog/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/char/watchdog/CVS/Repository 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1 @@
-+linux/drivers/char/watchdog
-diff -ruN linux-2.6.17-vanilla/drivers/char/watchdog/CVS/Root linux-2.6.17/drivers/char/watchdog/CVS/Root
---- linux-2.6.17-vanilla/drivers/char/watchdog/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/char/watchdog/CVS/Root 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/drivers/i2c/CVS/Entries linux-2.6.17/drivers/i2c/CVS/Entries
---- linux-2.6.17-vanilla/drivers/i2c/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/i2c/CVS/Entries 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1,2 @@
-+D/algos////
-+D/busses////
-diff -ruN linux-2.6.17-vanilla/drivers/i2c/CVS/Repository linux-2.6.17/drivers/i2c/CVS/Repository
---- linux-2.6.17-vanilla/drivers/i2c/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/i2c/CVS/Repository 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1 @@
-+linux/drivers/i2c
-diff -ruN linux-2.6.17-vanilla/drivers/i2c/CVS/Root linux-2.6.17/drivers/i2c/CVS/Root
---- linux-2.6.17-vanilla/drivers/i2c/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/i2c/CVS/Root 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/drivers/i2c/algos/CVS/Entries linux-2.6.17/drivers/i2c/algos/CVS/Entries
---- linux-2.6.17-vanilla/drivers/i2c/algos/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/i2c/algos/CVS/Entries 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1,5 @@
-+/Kconfig/1.3/Wed Mar 2 13:02:57 2005/-ko/
-+/Makefile/1.3/Wed Mar 2 13:02:57 2005/-ko/
-+/i2c-algo-voyager.c/1.1/Wed Apr 21 00:09:16 2004/-ko/
-+/i2c-algo-voyager.h/1.2/Wed Feb 8 22:08:10 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/drivers/i2c/algos/CVS/Repository linux-2.6.17/drivers/i2c/algos/CVS/Repository
---- linux-2.6.17-vanilla/drivers/i2c/algos/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/i2c/algos/CVS/Repository 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1 @@
-+linux/drivers/i2c/algos
-diff -ruN linux-2.6.17-vanilla/drivers/i2c/algos/CVS/Root linux-2.6.17/drivers/i2c/algos/CVS/Root
---- linux-2.6.17-vanilla/drivers/i2c/algos/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/i2c/algos/CVS/Root 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/drivers/i2c/algos/Kconfig linux-2.6.17/drivers/i2c/algos/Kconfig
---- linux-2.6.17-vanilla/drivers/i2c/algos/Kconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/i2c/algos/Kconfig 2006-07-12 16:54:23.000000000 +0000
-@@ -53,6 +53,10 @@
- tristate "MPC8xx CPM I2C interface"
- depends on 8xx && I2C
-
-+config I2C_ALGOVOYAGER
-+ tristate "Silicon Motion Voyager GX Algorithm"
-+ depends on SH_RTS7751R2D && I2C
-+
- config I2C_ALGO_SIBYTE
- tristate "SiByte SMBus interface"
- depends on SIBYTE_SB1xxx_SOC && I2C
-diff -ruN linux-2.6.17-vanilla/drivers/i2c/algos/Makefile linux-2.6.17/drivers/i2c/algos/Makefile
---- linux-2.6.17-vanilla/drivers/i2c/algos/Makefile 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/i2c/algos/Makefile 2006-07-12 16:54:23.000000000 +0000
-@@ -6,6 +6,7 @@
- obj-$(CONFIG_I2C_ALGOPCF) += i2c-algo-pcf.o
- obj-$(CONFIG_I2C_ALGOPCA) += i2c-algo-pca.o
- obj-$(CONFIG_I2C_ALGOITE) += i2c-algo-ite.o
-+obj-$(CONFIG_I2C_ALGOVOYAGER) += i2c-algo-voyager.o
- obj-$(CONFIG_I2C_ALGO_SIBYTE) += i2c-algo-sibyte.o
- obj-$(CONFIG_I2C_ALGO_SGI) += i2c-algo-sgi.o
-
-diff -ruN linux-2.6.17-vanilla/drivers/i2c/algos/i2c-algo-voyager.c linux-2.6.17/drivers/i2c/algos/i2c-algo-voyager.c
---- linux-2.6.17-vanilla/drivers/i2c/algos/i2c-algo-voyager.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/i2c/algos/i2c-algo-voyager.c 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1,415 @@
-+/* -------------------------------------------------------------------- */
-+/* i2c-algo-voyagergx.c: */
-+/* -------------------------------------------------------------------- */
-+/*
-+ 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-+
-+ Copyright 2003 (c) Lineo uSolutions,Inc.
-+ Copyright 2004 (c) Paul Mundt
-+*/
-+/* -------------------------------------------------------------------- */
-+
-+
-+#include <linux/kernel.h>
-+#include <linux/module.h>
-+#include <linux/delay.h>
-+#include <linux/slab.h>
-+#include <linux/version.h>
-+#include <linux/init.h>
-+#include <asm/uaccess.h>
-+#include <linux/ioport.h>
-+#include <linux/errno.h>
-+#include <linux/sched.h>
-+
-+#include <linux/i2c.h>
-+#include "i2c-algo-voyager.h"
-+
-+/* ----- global defines ----------------------------------------------- */
-+#define DEB(x) if (i2c_debug>=1) x
-+#define DEB2(x) if (i2c_debug>=2) x
-+#define DEB3(x) if (i2c_debug>=3) x /* print several statistical values*/
-+#define DEBPROTO(x) if (i2c_debug>=9) x;
-+ /* debug the protocol by showing transferred bits */
-+#define DEF_TIMEOUT 16
-+
-+/* debugging - slow down transfer to have a look at the data .. */
-+/* I use this with two leds&resistors, each one connected to sda,scl */
-+/* respectively. This makes sure that the algorithm works. Some chips */
-+/* might not like this, as they have an internal timeout of some mils */
-+
-+
-+/* ----- global variables --------------------------------------------- */
-+
-+/* module parameters:
-+ */
-+static int i2c_debug=0;
-+
-+/* --- setting states on the bus with the right timing: --------------- */
-+
-+#define iic_outb(adap, reg, val) adap->setiic(adap->data, reg, val)
-+#define iic_inb(adap, reg) adap->getiic(adap->data, reg)
-+
-+/* --- other auxiliary functions -------------------------------------- */
-+
-+static void iic_start(struct i2c_algo_iic_data *adap)
-+{
-+ unsigned char ctl;
-+ ctl = iic_inb(adap, I2C_CONTROL);
-+ ctl = (ctl | I2C_CONTROL_STATUS);
-+ DEB(printk("iic_start I2C_CONTROL = 0x%x\n", ctl));
-+ iic_outb(adap,I2C_CONTROL,ctl);
-+}
-+
-+static void iic_stop(struct i2c_algo_iic_data *adap)
-+{
-+ unsigned char ctl;
-+ ctl = iic_inb(adap, I2C_CONTROL);
-+ ctl = (ctl & ~I2C_CONTROL_STATUS);
-+ DEB(printk("iic_stop I2C_CONTROL = 0x%x\n", ctl));
-+ iic_outb(adap,I2C_CONTROL,ctl);
-+}
-+
-+static void iic_reset(struct i2c_algo_iic_data *adap)
-+{
-+ unsigned char ctl;
-+ ctl = iic_inb(adap, I2C_RESET);
-+ ctl = (ctl & ~I2C_RESET_ERROR);
-+ DEB(printk("iic_reset I2C_CONTROL = 0x%x\n", ctl));
-+ iic_outb(adap,I2C_RESET,ctl);
-+}
-+
-+
-+static int wait_for_bb(struct i2c_algo_iic_data *adap)
-+{
-+ int timeout = DEF_TIMEOUT;
-+ char status;
-+
-+ status = iic_inb(adap, I2C_STATUS);
-+#ifndef STUB_I2C
-+ while (timeout-- && (status & I2C_STATUS_BUSY)) {
-+ udelay(1000); /* How much is this? */
-+ status = iic_inb(adap, I2C_STATUS);
-+ }
-+#endif
-+ if (timeout<=0) {
-+ printk(KERN_ERR "Timeout, host is busy (%d)\n",timeout);
-+ iic_reset(adap);
-+ }
-+ return(timeout<=0);
-+}
-+
-+/*
-+ * Puts this process to sleep for a period equal to timeout
-+ */
-+static inline void iic_sleep(unsigned long timeout)
-+{
-+ schedule_timeout( timeout * HZ);
-+}
-+
-+static int wait_for_pin(struct i2c_algo_iic_data *adap, char *status)
-+{
-+ int timeout = DEF_TIMEOUT;
-+
-+ timeout = wait_for_bb(adap);
-+ if (timeout) {
-+ DEB2(printk("Timeout waiting for host not busy\n");)
-+ return -EIO;
-+ }
-+
-+ timeout = DEF_TIMEOUT;
-+
-+ *status = iic_inb(adap, I2C_STATUS);
-+ while (timeout-- && !(*status & I2C_STATUS_ACK)) {
-+ adap->waitforpin();
-+ *status = iic_inb(adap, I2C_STATUS);
-+ }
-+ if (timeout <= 0)
-+ return(-1);
-+ else
-+ return(0);
-+}
-+
-+/* Verify the device we want to talk to on the IIC bus really exists. */
-+static inline int try_address(struct i2c_algo_iic_data *adap,
-+ unsigned int addr, int retries)
-+{
-+ int i, ret = -1;
-+ unsigned char status;
-+
-+ for (i=0;i<retries;i++) {
-+ iic_outb(adap, I2C_SADDRESS, addr);
-+ iic_start(adap);
-+ if (wait_for_pin(adap, &status) == 0) {
-+ ret=1;
-+ break; /* success! */
-+ }
-+ iic_stop(adap);
-+ udelay(adap->udelay);
-+ }
-+ DEB2(if (i) printk("try_address: needed %d retries for 0x%x\n",i,
-+ addr));
-+ return ret;
-+}
-+
-+int iic_sendbytes(struct i2c_adapter *i2c_adap,const char *buf,
-+ int count)
-+{
-+ struct i2c_algo_iic_data *adap = i2c_adap->algo_data;
-+ int wrcount,timeout,i;
-+ unsigned char *addr,status;
-+
-+ if (count != PACKET_SIZE)
-+ return -EPROTO;
-+
-+ iic_outb(adap,I2C_BYTECOUNT,(unsigned char)(count - 1));
-+ iic_outb(adap,I2C_SADDRESS,(unsigned char)SERIAL_WRITE_ADDR);
-+
-+ timeout = wait_for_bb(adap);
-+ if (timeout)
-+ return -ETIMEDOUT;
-+
-+ wrcount = 0;
-+ addr = (unsigned char *)I2C_DATA;
-+
-+ for (i = 0;i < count;i++){
-+ iic_outb(adap,(int)addr++,buf[wrcount++]);
-+ }
-+
-+ iic_start(adap);
-+
-+ /* Wait for transmission to complete */
-+ timeout = wait_for_pin(adap,&status);
-+ if (timeout){
-+ iic_stop(adap);
-+ printk("iic_sendbytes: %s write timeout.\n", i2c_adap->name);
-+ return -EREMOTEIO; /* got a better one ?? */
-+ }
-+
-+ iic_stop(adap);
-+
-+ return wrcount;
-+}
-+
-+static int iic_readbytes(struct i2c_adapter *i2c_adap, char *buf, int count,
-+ int sread)
-+{
-+ struct i2c_algo_iic_data *adap = i2c_adap->algo_data;
-+ int rdcount,timeout,i;
-+ unsigned char *addr,wk,status;
-+
-+ iic_outb(adap,I2C_BYTECOUNT,(unsigned char)(PACKET_SIZE - 1));
-+ iic_outb(adap,I2C_SADDRESS,(unsigned char)SERIAL_READ_ADDR);
-+
-+ rdcount = 0;
-+ addr = (unsigned char *)I2C_DATA;
-+
-+ iic_start(adap);
-+
-+ timeout = wait_for_pin(adap,&status);
-+ if (timeout){
-+ iic_stop(adap);
-+ printk("iic_readbytes: %s read timeout.\n", i2c_adap->name);
-+ return -EREMOTEIO; /* got a better one ?? */
-+ }
-+
-+ for (i = 0;i < PACKET_SIZE;i++){
-+ wk = iic_inb(adap,(int)addr++);
-+ buf[rdcount++] = wk;
-+ }
-+
-+ iic_stop(adap);
-+
-+ return rdcount;
-+}
-+
-+/* Whenever we initiate a transaction, the first byte clocked
-+ * onto the bus after the start condition is the address (7 bit) of the
-+ * device we want to talk to. This function manipulates the address specified
-+ * so that it makes sense to the hardware when written to the IIC peripheral.
-+ *
-+ * Note: 10 bit addresses are not supported in this driver, although they are
-+ * supported by the hardware. This functionality needs to be implemented.
-+ */
-+static inline int iic_doAddress(struct i2c_algo_iic_data *adap,
-+ struct i2c_msg *msg, int retries)
-+{
-+ unsigned int addr;
-+ int ret;
-+
-+ addr = ( msg->addr << 1 );
-+
-+ if (iic_inb(adap, I2C_SADDRESS) != addr) {
-+ iic_outb(adap, I2C_SADDRESS, addr);
-+ ret = try_address(adap, addr, retries);
-+ if (ret!=1) {
-+ printk("iic_doAddress: died at address code.\n");
-+ return -EREMOTEIO;
-+ }
-+ }
-+
-+ return 0;
-+}
-+
-+
-+/* Description: Prepares the controller for a transaction (clearing status
-+ * registers, data buffers, etc), and then calls either iic_readbytes or
-+ * iic_sendbytes to do the actual transaction.
-+ *
-+ * still to be done: Before we issue a transaction, we should
-+ * verify that the bus is not busy or in some unknown state.
-+ */
-+static int iic_xfer(struct i2c_adapter *i2c_adap,
-+ struct i2c_msg msgs[],
-+ int num)
-+{
-+ struct i2c_algo_iic_data *adap = i2c_adap->algo_data;
-+ struct i2c_msg *pmsg;
-+ int i = 0;
-+ int ret, timeout;
-+
-+ pmsg = &msgs[i];
-+
-+ if(!pmsg->len) {
-+ DEB2(printk("iic_xfer: read/write length is 0\n");)
-+ return -EIO;
-+ }
-+
-+ /* Wait for any pending transfers to complete */
-+ timeout = wait_for_bb(adap);
-+ if (timeout) {
-+ DEB2(printk("iic_xfer: Timeout waiting for host not busy\n");)
-+ return -EIO;
-+ }
-+
-+ /* Load address */
-+ ret = iic_doAddress(adap, pmsg, i2c_adap->retries);
-+ if (ret)
-+ return -EIO;
-+
-+ DEB3(printk("iic_xfer: Msg %d, addr=0x%x, flags=0x%x, len=%d\n",
-+ i, msgs[i].addr, msgs[i].flags, msgs[i].len);)
-+
-+ if (pmsg->flags & I2C_M_RD) { /* Read */
-+ ret = iic_readbytes(i2c_adap, pmsg->buf, pmsg->len, 0);
-+ } else { /* Write */
-+ udelay(1000);
-+ ret = iic_sendbytes(i2c_adap, pmsg->buf, pmsg->len);
-+ }
-+
-+ if (ret != pmsg->len) {
-+ DEB3(printk("iic_xfer: error or fail on read/write %d bytes.\n",ret));
-+ } else {
-+ DEB3(printk("iic_xfer: read/write %d bytes.\n",ret));
-+ }
-+
-+ return ret;
-+}
-+
-+
-+/* Implements device specific ioctls. Higher level ioctls can
-+ * be found in i2c-core.c and are typical of any i2c controller (specifying
-+ * slave address, timeouts, etc). These ioctls take advantage of any hardware
-+ * features built into the controller for which this algorithm-adapter set
-+ * was written. These ioctls allow you to take control of the data and clock
-+ * lines and set the either high or low,
-+ * similar to a GPIO pin.
-+ */
-+static int algo_control(struct i2c_adapter *adapter,
-+ unsigned int cmd, unsigned long arg)
-+{
-+ struct i2c_iic_msg s_msg;
-+ char *buf;
-+ int ret;
-+
-+ if (cmd == I2C_SREAD) {
-+ if(copy_from_user(&s_msg, (struct i2c_iic_msg *)arg,
-+ sizeof(struct i2c_iic_msg)))
-+ return -EFAULT;
-+ buf = kmalloc(s_msg.len, GFP_KERNEL);
-+ if (buf== NULL)
-+ return -ENOMEM;
-+
-+ ret = iic_readbytes(adapter, buf, s_msg.len, 1);
-+ if (ret>=0) {
-+ if(copy_to_user( s_msg.buf, buf, s_msg.len) )
-+ ret = -EFAULT;
-+ }
-+ kfree(buf);
-+ }
-+ return 0;
-+}
-+
-+
-+static u32 iic_func(struct i2c_adapter *adap)
-+{
-+ return I2C_FUNC_SMBUS_EMUL | I2C_FUNC_10BIT_ADDR |
-+ I2C_FUNC_PROTOCOL_MANGLING;
-+}
-+
-+/* -----exported algorithm data: ------------------------------------- */
-+
-+static struct i2c_algorithm iic_algo = {
-+ .name = "VoyagerGX I2C algorithm",
-+ .id = I2C_ALGO_VOYAGER,
-+ .master_xfer = iic_xfer,
-+ .algo_control = algo_control,
-+ .functionality = iic_func,
-+};
-+
-+
-+/*
-+ * registering functions to load algorithms at runtime
-+ */
-+int i2c_voyager_add_bus(struct i2c_adapter *adap)
-+{
-+ DEB2(printk("i2c-algo-voyagergx: hw routines for %s registered.\n",
-+ adap->name));
-+
-+ adap->id |= iic_algo.id;
-+ adap->algo = &iic_algo;
-+
-+ adap->timeout = 100; /* default values, should */
-+ adap->retries = 3; /* be replaced by defines */
-+ adap->flags = 0;
-+
-+ return i2c_add_adapter(adap);
-+}
-+
-+
-+int i2c_voyager_del_bus(struct i2c_adapter *adap)
-+{
-+ return i2c_del_adapter(adap);
-+}
-+
-+int __init i2c_algo_iic_init (void)
-+{
-+ printk(KERN_INFO "VoyagerGX iic (i2c) algorithm module\n");
-+ return 0;
-+}
-+
-+void i2c_algo_iic_exit(void)
-+{
-+}
-+
-+MODULE_AUTHOR("Lineo uSolutions,Inc. <www.lineo.co.jp>");
-+MODULE_DESCRIPTION("VoyagerGX I2C algorithm");
-+MODULE_LICENSE("GPL");
-+
-+MODULE_PARM(i2c_debug,"i");
-+MODULE_PARM_DESC(i2c_debug,
-+ "debug level - 0 off; 1 normal; 2,3 more verbose; 9 iic-protocol");
-+
-+module_init(i2c_algo_iic_init);
-+module_exit(i2c_algo_iic_exit);
-diff -ruN linux-2.6.17-vanilla/drivers/i2c/algos/i2c-algo-voyager.h linux-2.6.17/drivers/i2c/algos/i2c-algo-voyager.h
---- linux-2.6.17-vanilla/drivers/i2c/algos/i2c-algo-voyager.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/i2c/algos/i2c-algo-voyager.h 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1,99 @@
-+/* ------------------------------------------------------------------------- */
-+/* i2c-algo-ite.h i2c driver algorithms for ITE IIC adapters */
-+/* ------------------------------------------------------------------------- */
-+/* Copyright (C) 1995-97 Simon G. Vogl
-+ 1998-99 Hans Berglund
-+
-+ 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., 675 Mass Ave, Cambridge, MA 02139, USA. */
-+/* ------------------------------------------------------------------------- */
-+
-+/* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi> and even
-+ Frodo Looijaard <frodol@dds.nl> */
-+
-+/* Modifications by MontaVista Software, 2001
-+ Changes made to support the ITE IIC peripheral */
-+
-+
-+#ifndef I2C_ALGO_ITE_H
-+#define I2C_ALGO_ITE_H 1
-+
-+#include <linux/i2c.h>
-+#include <asm/mach/voyagergx_reg.h>
-+
-+/* Example of a sequential read request:
-+ struct i2c_iic_msg s_msg;
-+
-+ s_msg.addr=device_address;
-+ s_msg.len=length;
-+ s_msg.buf=buffer;
-+ s_msg.waddr=word_address;
-+ ioctl(file,I2C_SREAD, &s_msg);
-+ */
-+#define I2C_SREAD 0x780 /* SREAD ioctl command */
-+
-+struct i2c_iic_msg {
-+ __u16 addr; /* device address */
-+ __u16 waddr; /* word address */
-+ short len; /* msg length */
-+ char *buf; /* pointer to msg data */
-+};
-+
-+struct i2c_algo_iic_data {
-+ void *data; /* private data for lolevel routines */
-+ void (*setiic) (void *data, int ctl, int val);
-+ int (*getiic) (void *data, int ctl);
-+ int (*getown) (void *data);
-+ int (*getclock) (void *data);
-+ void (*waitforpin) (void);
-+
-+ /* local settings */
-+ int udelay;
-+ int mdelay;
-+ int timeout;
-+};
-+
-+int i2c_voyager_add_bus(struct i2c_adapter *);
-+int i2c_voyager_del_bus(struct i2c_adapter *);
-+
-+//#define TC56XX
-+#define OV7640
-+//#define OV7141
-+
-+#if defined(TC56XX)
-+#define PACKET_SIZE 4
-+#define SERIAL_WRITE_ADDR ((0x56 << 1) + 0) //0xAC
-+#define SERIAL_READ_ADDR ((0x56 << 1) + 1) //0xAD
-+//#define SERIAL_WRITE_ADDR ((0x57 << 1) + 0) //0xAE
-+//#define SERIAL_READ_ADDR ((0x57 << 1) + 0) //0xAF
-+
-+#elif defined(OV7640)
-+#define PACKET_SIZE 2
-+//#define SERIAL_WRITE_ADDR ((0x42 << 1) + 0)
-+//#define SERIAL_READ_ADDR ((0x42 << 1) + 1)
-+#define SERIAL_WRITE_ADDR (0x42)
-+#define SERIAL_READ_ADDR (0x43)
-+
-+#elif defined(OV7141)
-+#define PACKET_SIZE 2
-+#define SERIAL_WRITE_ADDR ((0x42 << 1) + 0)
-+#define SERIAL_READ_ADDR ((0x42 << 1) + 1)
-+//#define SERIAL_WRITE_ADDR ((0x43 << 1) + 0)
-+//#define SERIAL_READ_ADDR ((0x43 << 1) + 1)
-+
-+#else
-+#define PACKET_SIZE 16
-+#endif
-+
-+#endif /* I2C_ALGO_ITE_H */
-diff -ruN linux-2.6.17-vanilla/drivers/i2c/busses/CVS/Entries linux-2.6.17/drivers/i2c/busses/CVS/Entries
---- linux-2.6.17-vanilla/drivers/i2c/busses/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/i2c/busses/CVS/Entries 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1,4 @@
-+/Makefile/1.9/Mon Mar 27 21:06:14 2006/-ko/
-+/i2c-voyager.c/1.1/Wed Apr 21 00:09:16 2004/-ko/
-+/Kconfig/1.12/Wed Jul 5 14:51:03 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/drivers/i2c/busses/CVS/Repository linux-2.6.17/drivers/i2c/busses/CVS/Repository
---- linux-2.6.17-vanilla/drivers/i2c/busses/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/i2c/busses/CVS/Repository 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1 @@
-+linux/drivers/i2c/busses
-diff -ruN linux-2.6.17-vanilla/drivers/i2c/busses/CVS/Root linux-2.6.17/drivers/i2c/busses/CVS/Root
---- linux-2.6.17-vanilla/drivers/i2c/busses/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/i2c/busses/CVS/Root 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/drivers/i2c/busses/Kconfig linux-2.6.17/drivers/i2c/busses/Kconfig
---- linux-2.6.17-vanilla/drivers/i2c/busses/Kconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/i2c/busses/Kconfig 2006-07-12 16:54:23.000000000 +0000
-@@ -496,6 +496,16 @@
- This driver can also be built as a module. If so, the module
- will be called i2c-voodoo3.
-
-+config I2C_VOYAGER
-+ tristate "Silicon Motion Voyager GX"
-+ depends on I2C && SH_RTS7751R2D
-+ help
-+ If you say yes to this option, support will be included for the
-+ Silicon Motion SM501 of mainboard I2C interfaces.
-+
-+ This driver can also be built as a module. If so, the module
-+ will be called i2c-voyager.
-+
- config I2C_PCA_ISA
- tristate "PCA9564 on an ISA bus"
- depends on I2C
-diff -ruN linux-2.6.17-vanilla/drivers/i2c/busses/Makefile linux-2.6.17/drivers/i2c/busses/Makefile
---- linux-2.6.17-vanilla/drivers/i2c/busses/Makefile 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/i2c/busses/Makefile 2006-07-12 16:54:23.000000000 +0000
-@@ -40,6 +40,7 @@
- obj-$(CONFIG_I2C_VIA) += i2c-via.o
- obj-$(CONFIG_I2C_VIAPRO) += i2c-viapro.o
- obj-$(CONFIG_I2C_VOODOO3) += i2c-voodoo3.o
-+obj-$(CONFIG_I2C_VOYAGER) += i2c-voyager.o
- obj-$(CONFIG_SCx200_ACB) += scx200_acb.o
- obj-$(CONFIG_SCx200_I2C) += scx200_i2c.o
-
-diff -ruN linux-2.6.17-vanilla/drivers/i2c/busses/i2c-voyager.c linux-2.6.17/drivers/i2c/busses/i2c-voyager.c
---- linux-2.6.17-vanilla/drivers/i2c/busses/i2c-voyager.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/i2c/busses/i2c-voyager.c 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1,216 @@
-+/* -------------------------------------------------------------------- */
-+/* i2c-voyagergx.c: */
-+/* -------------------------------------------------------------------- */
-+/* 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-+
-+ Copyright 2003 (c) Lineo uSolutions,Inc.
-+ Copyright 2004 (c) Paul Mundt
-+*/
-+/* -------------------------------------------------------------------- */
-+
-+#include <linux/kernel.h>
-+#include <linux/ioport.h>
-+#include <linux/module.h>
-+#include <linux/delay.h>
-+#include <linux/slab.h>
-+#include <linux/version.h>
-+#include <linux/init.h>
-+#include <linux/interrupt.h>
-+#include <asm/irq.h>
-+#include <asm/io.h>
-+
-+#include <linux/i2c.h>
-+#include "../algos/i2c-algo-voyager.h"
-+
-+//#define I2C_USE_INTR
-+
-+#if defined(I2C_USE_INTR)
-+#define DEFAULT_IRQ 10
-+#else
-+#define DEFAULT_IRQ 0
-+#endif
-+
-+struct iic_voyagergx {
-+ unsigned long iic_base;
-+ int iic_irq;
-+};
-+static struct iic_voyagergx gpi;
-+
-+static wait_queue_head_t iic_wait;
-+static int iic_pending;
-+
-+static void iic_voyagergx_setiic(void *data, int ctl, int val)
-+{
-+ outw(val,ctl);
-+}
-+
-+static int iic_voyagergx_getiic(void *data, int ctl)
-+{
-+ return inw(ctl);
-+}
-+
-+/* Put this process to sleep. We will wake up when the
-+ * IIC controller interrupts.
-+ */
-+static void iic_voyagergx_waitforpin(void)
-+{
-+ int timeout = 2;
-+
-+ /* If interrupts are enabled (which they are), then put the process to
-+ * sleep. This process will be awakened by two events -- either the
-+ * the IIC peripheral interrupts or the timeout expires.
-+ * If interrupts are not enabled then delay for a reasonable amount
-+ * of time and return.
-+ */
-+ if (gpi.iic_irq > 0) {
-+ local_irq_disable();
-+
-+ if (iic_pending == 0) {
-+ interruptible_sleep_on_timeout(&iic_wait, timeout*HZ);
-+ } else {
-+ iic_pending = 0;
-+ }
-+
-+ local_irq_enable();
-+ } else {
-+ udelay(100);
-+ }
-+}
-+
-+#if defined(I2C_USE_INTR)
-+static irqreturn_t iic_voyagergx_handler(int this_irq, void *dev_id,
-+ struct pt_regs *regs)
-+{
-+ iic_pending = 1;
-+
-+ pr_debug("iic_voyagergx_handler: in interrupt handler\n");
-+ wake_up_interruptible(&iic_wait);
-+
-+ return IRQ_HANDLED;
-+}
-+#endif
-+
-+/* Lock the region of memory where I/O registers exist. Request our
-+ * interrupt line and register its associated handler.
-+ */
-+static int iic_hw_resrc_init(void)
-+{
-+ unsigned char ctl;
-+ unsigned long val;
-+
-+ // Power Mode Gate
-+ val = inl(POWER_MODE0_GATE);
-+ val |= 0x00000040;
-+ outl(val, POWER_MODE0_GATE);
-+ val = inl(POWER_MODE1_GATE);
-+ val |= 0x00000040;
-+ outl(val, POWER_MODE1_GATE);
-+
-+ // GPIO Control
-+ val = inl( GPIO_MUX_HIGH);
-+ val |= 0x0000c000;
-+ outl(val, GPIO_MUX_HIGH);
-+
-+#if defined(I2C_USE_INTR)
-+ // Interrupt Mask
-+ val = inl(VOYAGER_INT_MASK);
-+ val |= 0x00800000;
-+ outl(val, VOYAGER_INT_MASK);
-+#endif
-+
-+ // Enable I2c controller and select mode to high
-+ ctl = inb(I2C_CONTROL);
-+ outb((ctl | I2C_CONTROL_E | I2C_CONTROL_MODE), I2C_CONTROL);
-+
-+#if defined(I2C_USE_INTR)
-+ if (gpi.iic_irq > 0) {
-+ if (request_irq(gpi.iic_irq, iic_voyagergx_handler, 0,
-+ "VoyagerGX IIC", 0) < 0) {
-+ gpi.iic_irq = 0;
-+ } else {
-+ pr_debug("Enabled IIC IRQ %d\n", gpi.iic_irq);
-+ }
-+
-+ enable_irq(gpi.iic_irq);
-+ }
-+#endif
-+
-+ return 0;
-+}
-+
-+static struct i2c_algo_iic_data iic_voyagergx_data = {
-+ .setiic = iic_voyagergx_setiic,
-+ .getiic = iic_voyagergx_getiic,
-+ .waitforpin = iic_voyagergx_waitforpin,
-+ .udelay = 80,
-+ .mdelay = 80,
-+ .timeout = 100,
-+};
-+
-+static struct i2c_adapter iic_voyagergx_ops = {
-+ .owner = THIS_MODULE,
-+ .name = "VoyagerGX I2C",
-+ .id = I2C_HW_SMBUS_VOYAGER,
-+ .class = I2C_ADAP_CLASS_SMBUS,
-+ .algo_data = &iic_voyagergx_data,
-+};
-+
-+static int __init iic_voyagergx_init(void)
-+{
-+ struct iic_voyagergx *piic = &gpi;
-+
-+ printk(KERN_INFO "Initialize VoyagerGX I2C module\n");
-+
-+ piic->iic_base = VOYAGER_BASE;
-+ piic->iic_irq = DEFAULT_IRQ;
-+
-+ iic_voyagergx_data.data = (void *)piic;
-+ init_waitqueue_head(&iic_wait);
-+
-+ if (iic_hw_resrc_init() == 0) {
-+ if (i2c_voyager_add_bus(&iic_voyagergx_ops) < 0)
-+ return -ENODEV;
-+ } else {
-+ return -ENODEV;
-+ }
-+
-+#if defined(I2C_USE_INTR)
-+ printk(KERN_INFO " found device at %#lx irq %d.\n",
-+ piic->iic_base, piic->iic_irq);
-+#else
-+ printk(KERN_INFO " found device at %#lx\n", piic->iic_base);
-+#endif
-+
-+ return 0;
-+}
-+
-+
-+static void iic_voyagergx_exit(void)
-+{
-+ if (gpi.iic_irq > 0) {
-+ disable_irq(gpi.iic_irq);
-+ free_irq(gpi.iic_irq, 0);
-+ }
-+
-+ release_region(gpi.iic_base, 2);
-+}
-+
-+MODULE_AUTHOR("Lineo uSolutions,Inc. <www.lineo.co.jp>");
-+MODULE_DESCRIPTION("I2C-Bus adapter for VoyagerGX Silicon Motion, Inc.");
-+MODULE_LICENSE("GPL");
-+
-+module_init(iic_voyagergx_init);
-+module_exit(iic_voyagergx_exit);
-+
-diff -ruN linux-2.6.17-vanilla/drivers/ide/CVS/Entries linux-2.6.17/drivers/ide/CVS/Entries
---- linux-2.6.17-vanilla/drivers/ide/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/ide/CVS/Entries 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1,6 @@
-+/Kconfig/1.28/Mon Mar 27 21:06:14 2006/-ko/
-+/Makefile/1.7/Tue Jan 3 22:35:55 2006/-ko/
-+D/legacy////
-+D/pci////
-+D/sh////
-+/ide.c/1.11/Wed Jul 5 14:51:04 2006/-ko/
-diff -ruN linux-2.6.17-vanilla/drivers/ide/CVS/Repository linux-2.6.17/drivers/ide/CVS/Repository
---- linux-2.6.17-vanilla/drivers/ide/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/ide/CVS/Repository 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1 @@
-+linux/drivers/ide
-diff -ruN linux-2.6.17-vanilla/drivers/ide/CVS/Root linux-2.6.17/drivers/ide/CVS/Root
---- linux-2.6.17-vanilla/drivers/ide/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/ide/CVS/Root 2006-07-12 16:54:23.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/drivers/ide/Kconfig linux-2.6.17/drivers/ide/Kconfig
---- linux-2.6.17-vanilla/drivers/ide/Kconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/ide/Kconfig 2006-07-12 16:54:24.000000000 +0000
-@@ -780,6 +780,9 @@
- This option enables the use of the sleep LED as a hard drive
- activity LED.
-
-+config IDE_SH
-+ def_bool SUPERH
-+
- config BLK_DEV_IDE_SWARM
- tristate "IDE for Sibyte evaluation boards"
- depends on SIBYTE_SB1xxx_SOC
-diff -ruN linux-2.6.17-vanilla/drivers/ide/Makefile linux-2.6.17/drivers/ide/Makefile
---- linux-2.6.17-vanilla/drivers/ide/Makefile 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/ide/Makefile 2006-07-12 16:54:24.000000000 +0000
-@@ -37,6 +37,8 @@
- ide-core-$(CONFIG_BLK_DEV_MPC8xx_IDE) += ppc/mpc8xx.o
- ide-core-$(CONFIG_BLK_DEV_IDE_PMAC) += ppc/pmac.o
-
-+# built-in only drivers from sh/
-+ide-core-$(CONFIG_IDE_SH) += sh/ide-sh.o
- # built-in only drivers from h8300/
- ide-core-$(CONFIG_H8300) += h8300/ide-h8300.o
-
-diff -ruN linux-2.6.17-vanilla/drivers/ide/ide.c linux-2.6.17/drivers/ide/ide.c
---- linux-2.6.17-vanilla/drivers/ide/ide.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/ide/ide.c 2006-07-12 16:54:24.000000000 +0000
-@@ -1776,6 +1776,7 @@
-
- extern void pnpide_init(void);
- extern void h8300_ide_init(void);
-+extern void ide_sh_init(void);
-
- /*
- * probe_for_hwifs() finds/initializes "known" IDE interfaces
-@@ -1840,6 +1841,9 @@
- #ifdef CONFIG_H8300
- h8300_ide_init();
- #endif
-+#ifdef CONFIG_IDE_SH
-+ ide_sh_init();
-+#endif
- }
-
- void ide_register_subdriver(ide_drive_t *drive, ide_driver_t *driver)
-diff -ruN linux-2.6.17-vanilla/drivers/ide/legacy/CVS/Entries linux-2.6.17/drivers/ide/legacy/CVS/Entries
---- linux-2.6.17-vanilla/drivers/ide/legacy/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/ide/legacy/CVS/Entries 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1,2 @@
-+/ide-cs.c/1.13/Thu Jul 6 12:38:14 2006//
-+D
-diff -ruN linux-2.6.17-vanilla/drivers/ide/legacy/CVS/Repository linux-2.6.17/drivers/ide/legacy/CVS/Repository
---- linux-2.6.17-vanilla/drivers/ide/legacy/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/ide/legacy/CVS/Repository 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1 @@
-+linux/drivers/ide/legacy
-diff -ruN linux-2.6.17-vanilla/drivers/ide/legacy/CVS/Root linux-2.6.17/drivers/ide/legacy/CVS/Root
---- linux-2.6.17-vanilla/drivers/ide/legacy/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/ide/legacy/CVS/Root 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/drivers/ide/legacy/ide-cs.c linux-2.6.17/drivers/ide/legacy/ide-cs.c
---- linux-2.6.17-vanilla/drivers/ide/legacy/ide-cs.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/ide/legacy/ide-cs.c 2006-07-12 16:54:24.000000000 +0000
-@@ -73,6 +73,11 @@
- #define DEBUG(n, args...)
- #endif
-
-+
-+#if defined(CONFIG_HD64461_PCMCIA) || defined(CONFIG_HD64461_PCMCIA_MODULE)
-+#define USE_MEM 1
-+#endif
-+
- /*====================================================================*/
-
- static const char ide_major[] = {
-@@ -117,13 +122,19 @@
- info->p_dev = link;
- link->priv = info;
-
-+#ifndef USE_MEM
- link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
- link->io.Attributes2 = IO_DATA_PATH_WIDTH_8;
- link->io.IOAddrLines = 3;
-+#endif
- link->irq.Attributes = IRQ_TYPE_EXCLUSIVE;
- link->irq.IRQInfo1 = IRQ_LEVEL_ID;
- link->conf.Attributes = CONF_ENABLE_IRQ;
-+#ifdef USE_MEM
-+ link->conf.IntType = INT_MEMORY;
-+#else
- link->conf.IntType = INT_MEMORY_AND_IO;
-+#endif
-
- return ide_config(link);
- } /* ide_attach */
-@@ -229,6 +240,22 @@
- }
- }
-
-+#ifdef USE_MEM
-+ if ((cfg->mem.nwin > 0) || (stk->dflt.mem.nwin > 0)) {
-+ win_req_t wr;
-+ wr.Attributes = WIN_ENABLE|WIN_MEMORY_TYPE_CM;
-+ wr.Base = 0;
-+ wr.Size = 0;
-+ wr.AccessSpeed = 0;
-+ link->win = (window_handle_t)link;
-+ link->conf.ConfigIndex = cfg->index;
-+ if (pcmcia_request_window(&link, &wr, &link->win) != 0)
-+ goto next_entry;
-+ io_base = wr.Base;
-+ ctl_base = io_base + 0x0e;
-+ break;
-+ }
-+#else
- if (cfg->vpp1.present & (1 << CISTPL_POWER_VNOM))
- link->conf.Vpp =
- cfg->vpp1.param[CISTPL_POWER_VNOM] / 10000;
-@@ -262,6 +289,7 @@
- /* If we've got this far, we're done */
- break;
- }
-+#endif
-
- next_entry:
- if (cfg->flags & CISTPL_CFTABLE_DEFAULT)
-@@ -278,12 +306,19 @@
- CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq));
- CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link, &link->conf));
-
-+#ifndef USE_MEM
-+ /* deal with brain dead IDE resource management */
-+ release_region(link->io.BasePort1, link->io.NumPorts1);
-+ if (link->io.NumPorts2)
-+ release_region(link->io.BasePort2, link->io.NumPorts2);
-+
- /* disable drive interrupts during IDE probe */
- outb(0x02, ctl_base);
-
- /* special setup for KXLC005 card */
- if (is_kme)
- outb(0x81, ctl_base+1);
-+#endif
-
- /* retry registration in case device is still spinning up */
- for (hd = -1, i = 0; i < 10; i++) {
-@@ -352,6 +387,13 @@
- -- need to investigate the required PCMCIA magic */
- ide_unregister(info->hd);
- }
-+
-+#ifndef USE_MEM
-+ request_region(link->io.BasePort1, link->io.NumPorts1,"ide-cs");
-+ if (link->io.NumPorts2)
-+ request_region(link->io.BasePort2, link->io.NumPorts2,"ide-cs");
-+#endif
-+
- info->ndev = 0;
-
- pcmcia_disable_device(link);
-diff -ruN linux-2.6.17-vanilla/drivers/ide/pci/CVS/Entries linux-2.6.17/drivers/ide/pci/CVS/Entries
---- linux-2.6.17-vanilla/drivers/ide/pci/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/ide/pci/CVS/Entries 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1,2 @@
-+/alim15x3.c/1.16/Wed Jul 5 14:51:05 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/drivers/ide/pci/CVS/Repository linux-2.6.17/drivers/ide/pci/CVS/Repository
---- linux-2.6.17-vanilla/drivers/ide/pci/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/ide/pci/CVS/Repository 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1 @@
-+linux/drivers/ide/pci
-diff -ruN linux-2.6.17-vanilla/drivers/ide/pci/CVS/Root linux-2.6.17/drivers/ide/pci/CVS/Root
---- linux-2.6.17-vanilla/drivers/ide/pci/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/ide/pci/CVS/Root 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/drivers/ide/pci/alim15x3.c linux-2.6.17/drivers/ide/pci/alim15x3.c
---- linux-2.6.17-vanilla/drivers/ide/pci/alim15x3.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/ide/pci/alim15x3.c 2006-07-12 16:54:24.000000000 +0000
-@@ -65,6 +65,16 @@
- "PIO mode" };
-
- static char *udmaT[8] = {
-+#if defined(CONFIG_SH_MPC1211)
-+ " 1T",
-+ "1.5T",
-+ " 2T",
-+ " 3T",
-+ " 4T",
-+ "2.5T",
-+ " 6T",
-+ "3.5T"
-+#else
- "1.5T",
- " 2T",
- "2.5T",
-@@ -73,6 +83,7 @@
- " 4T",
- " 6T",
- " 8T"
-+#endif
- };
-
- static char *channel_status[8] = {
-@@ -303,7 +314,11 @@
- u8 cd_dma_fifo = 0;
- int unit = drive->select.b.unit & 1;
-
-+#if defined(CONFIG_SH_MPC1211)
-+ pio = ide_get_best_pio_mode(drive, pio, 0, &d);
-+#else
- pio = ide_get_best_pio_mode(drive, pio, 5, &d);
-+#endif
- s_time = ide_pio_timings[pio].setup_time;
- a_time = ide_pio_timings[pio].active_time;
- if ((s_clc = (s_time * bus_speed + 999) / 1000) >= 8)
-@@ -420,6 +435,10 @@
- return 0;
- }
-
-+#ifdef CONFIG_SH_MPC1211
-+ mode = 1;
-+#endif
-+
- /*
- * If the drive sees no suitable cable then UDMA 33
- * is the highest permitted mode
-diff -ruN linux-2.6.17-vanilla/drivers/ide/sh/CVS/Entries linux-2.6.17/drivers/ide/sh/CVS/Entries
---- linux-2.6.17-vanilla/drivers/ide/sh/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/ide/sh/CVS/Entries 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1,2 @@
-+/ide-sh.c/1.2/Thu Mar 17 10:26:58 2005/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/drivers/ide/sh/CVS/Repository linux-2.6.17/drivers/ide/sh/CVS/Repository
---- linux-2.6.17-vanilla/drivers/ide/sh/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/ide/sh/CVS/Repository 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1 @@
-+linux/drivers/ide/sh
-diff -ruN linux-2.6.17-vanilla/drivers/ide/sh/CVS/Root linux-2.6.17/drivers/ide/sh/CVS/Root
---- linux-2.6.17-vanilla/drivers/ide/sh/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/ide/sh/CVS/Root 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/drivers/ide/sh/ide-sh.c linux-2.6.17/drivers/ide/sh/ide-sh.c
---- linux-2.6.17-vanilla/drivers/ide/sh/ide-sh.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/ide/sh/ide-sh.c 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1,95 @@
-+/*
-+ * SuperH default IDE host driver
-+ *
-+ * Copyright (C) 2004, 2005 Paul Mundt
-+ *
-+ * Based on the old include/asm-sh/ide.h
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ */
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/ide.h>
-+
-+#include <asm/irq.h>
-+
-+enum {
-+ IDE_SH_CFCARD_IO = 0x1f0,
-+ IDE_SH_PCMCIA_IO = 0x170,
-+};
-+
-+static struct sh_ide_hwif {
-+ unsigned long base;
-+ int irq;
-+} sh_ide_hwifs[] __initdata = {
-+ { IDE_SH_CFCARD_IO, IRQ_CFCARD },
-+ { IDE_SH_PCMCIA_IO, IRQ_PCMCIA },
-+ { 0, },
-+};
-+
-+static inline int __init hw_setup(hw_regs_t *hw, int idx)
-+{
-+ unsigned long base = sh_ide_hwifs[idx].base;
-+
-+ if (!request_region(base, 8, "ide-sh"))
-+ return -EBUSY;
-+ if (!request_region(base + 0x206, 1, "ide-sh")) {
-+ release_region(base, 8);
-+ return -EBUSY;
-+ }
-+
-+ memset(hw, 0, sizeof(hw_regs_t));
-+ ide_std_init_ports(hw, base, base + 0x206);
-+
-+ hw->irq = sh_ide_hwifs[idx].irq;
-+ hw->chipset = ide_generic;
-+
-+ return 0;
-+}
-+
-+static inline void __init hwif_setup(ide_hwif_t *hwif)
-+{
-+ hwif->mmio = 2;
-+}
-+
-+void __init ide_sh_init(void)
-+{
-+ int i, idx;
-+
-+ printk(KERN_INFO "ide: SuperH generic IDE interface\n");
-+
-+ for (i = 0; i < MAX_HWIFS; i++) {
-+ ide_hwif_t *hwif;
-+ hw_regs_t hw;
-+
-+ if (!sh_ide_hwifs[i].base) {
-+ printk(KERN_ERR "ide-sh: Attempting to register ide%d "
-+ "when only %d interfaces are available.\n",
-+ i, i - 1);
-+ break;
-+ }
-+
-+ if (hw_setup(&hw, i) < 0)
-+ goto region_cleanup;
-+
-+ idx = ide_register_hw(&hw, &hwif);
-+ if (idx == -1) {
-+ printk(KERN_ERR "ide-sh: IDE interface registration failed\n");
-+ i++; /* release this interface too */
-+ goto region_cleanup;
-+ }
-+
-+ hwif_setup(hwif);
-+ }
-+
-+region_cleanup:
-+ for (idx = 0; idx < i; idx++) {
-+ unsigned long base = sh_ide_hwifs[idx].base;
-+
-+ release_region(base + 0x206, 1);
-+ release_region(base, 8);
-+ }
-+}
-+
-diff -ruN linux-2.6.17-vanilla/drivers/input/CVS/Entries linux-2.6.17/drivers/input/CVS/Entries
---- linux-2.6.17-vanilla/drivers/input/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/input/CVS/Entries 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1,2 @@
-+D/keyboard////
-+D/touchscreen////
-diff -ruN linux-2.6.17-vanilla/drivers/input/CVS/Repository linux-2.6.17/drivers/input/CVS/Repository
---- linux-2.6.17-vanilla/drivers/input/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/input/CVS/Repository 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1 @@
-+linux/drivers/input
-diff -ruN linux-2.6.17-vanilla/drivers/input/CVS/Root linux-2.6.17/drivers/input/CVS/Root
---- linux-2.6.17-vanilla/drivers/input/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/input/CVS/Root 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/drivers/input/keyboard/CVS/Entries linux-2.6.17/drivers/input/keyboard/CVS/Entries
---- linux-2.6.17-vanilla/drivers/input/keyboard/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/input/keyboard/CVS/Entries 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1,7 @@
-+/Makefile/1.6/Thu Nov 10 14:20:52 2005/-ko/
-+/hp620_keyb.c/1.2/Mon Jan 30 11:14:01 2006//
-+/hp680_keyb.c/1.2/Mon Jan 30 11:14:01 2006//
-+/scan_keyb.c/1.3/Mon Jan 30 11:14:01 2006/-ko/
-+/scan_keyb.h/1.2/Mon Jan 30 11:14:01 2006/-ko/
-+/Kconfig/1.14/Wed Jul 5 14:51:11 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/drivers/input/keyboard/CVS/Repository linux-2.6.17/drivers/input/keyboard/CVS/Repository
---- linux-2.6.17-vanilla/drivers/input/keyboard/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/input/keyboard/CVS/Repository 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1 @@
-+linux/drivers/input/keyboard
-diff -ruN linux-2.6.17-vanilla/drivers/input/keyboard/CVS/Root linux-2.6.17/drivers/input/keyboard/CVS/Root
---- linux-2.6.17-vanilla/drivers/input/keyboard/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/input/keyboard/CVS/Root 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/drivers/input/keyboard/Kconfig linux-2.6.17/drivers/input/keyboard/Kconfig
---- linux-2.6.17-vanilla/drivers/input/keyboard/Kconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/input/keyboard/Kconfig 2006-07-12 16:54:24.000000000 +0000
-@@ -183,4 +183,21 @@
- This driver implements support for HIL-keyboards attached
- to your machine, so normally you should say Y here.
-
-+choice
-+ prompt "HP6XX keyboard"
-+ depends on SH_HP6XX
-+ default KEYBOARD_HP680
-+
-+config KEYBOARD_HP620
-+ tristate "HP620 keyboard"
-+ help
-+ Say Y here if you are running Linux on HP Jornada 620.
-+
-+config KEYBOARD_HP680
-+ tristate "HP680 keyboard"
-+ help
-+ Say Y here if you are running Linux on HP Jornada 680.
-+
-+endchoice
-+
- endif
-diff -ruN linux-2.6.17-vanilla/drivers/input/keyboard/Makefile linux-2.6.17/drivers/input/keyboard/Makefile
---- linux-2.6.17-vanilla/drivers/input/keyboard/Makefile 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/input/keyboard/Makefile 2006-07-12 16:54:24.000000000 +0000
-@@ -11,8 +11,11 @@
- obj-$(CONFIG_KEYBOARD_AMIGA) += amikbd.o
- obj-$(CONFIG_KEYBOARD_LOCOMO) += locomokbd.o
- obj-$(CONFIG_KEYBOARD_NEWTON) += newtonkbd.o
-+obj-$(CONFIG_KEYBOARD_98KBD) += 98kbd.o
- obj-$(CONFIG_KEYBOARD_CORGI) += corgikbd.o
- obj-$(CONFIG_KEYBOARD_SPITZ) += spitzkbd.o
- obj-$(CONFIG_KEYBOARD_HIL) += hil_kbd.o
- obj-$(CONFIG_KEYBOARD_HIL_OLD) += hilkbd.o
-+obj-$(CONFIG_KEYBOARD_HP620) += scan_keyb.o hp620_keyb.o
-+obj-$(CONFIG_KEYBOARD_HP680) += scan_keyb.o hp680_keyb.o
-
-diff -ruN linux-2.6.17-vanilla/drivers/input/keyboard/hp620_keyb.c linux-2.6.17/drivers/input/keyboard/hp620_keyb.c
---- linux-2.6.17-vanilla/drivers/input/keyboard/hp620_keyb.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/input/keyboard/hp620_keyb.c 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1,169 @@
-+/*
-+ * drivers/input/keyboard/hp680_keyb.c
-+ *
-+ * HP Jornada 620 scan keyboard
-+ *
-+ * Copyright (C) 2005 Andriy Skulysh
-+ * Copyright (C) 2006 Paul Mundt
-+ *
-+ * Splited from drivers/input/keyboard/hp600_keyb.c
-+ *
-+ * Copyright (C) 2000 YAEGASHI Takeshi
-+ * HP600 keyboard scan routine and translation table
-+ * Copyright (C) 2000 Niibe Yutaka
-+ * HP620 keyboard translation table
-+ */
-+#include <linux/kernel.h>
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <asm/delay.h>
-+#include <asm/io.h>
-+#include "scan_keyb.h"
-+
-+#define PCDR 0xa4000124
-+#define PDDR 0xa4000126
-+#define PEDR 0xa4000128
-+#define PFDR 0xa400012a
-+#define PGDR 0xa400012c
-+#define PHDR 0xa400012e
-+#define PJDR 0xa4000130
-+#define PKDR 0xa4000132
-+#define PLDR 0xa4000134
-+
-+/****************************************************************
-+HP Jornada 620(Japanese version) keyboard scan matrix
-+
-+ PTC7 PTC6 PTC5 PTC4 PTC3 PTC2 PTC1 PTC0
-+PTD1 EREC BS Ctrl on/off - 0 9
-+PTD5 EREC BS Ctrl on/off ^ P O
-+PTD7 EREC BS Ctrl on/off ] @ L
-+PTE0 EREC BS Ctrl on/off Han/Zen [ ;
-+PTE1 EREC BS Ctrl on/off Enter : /
-+PTE3 EREC BS Ctrl on/off Right Up
-+PTE6 EREC BS Ctrl on/off Down Left
-+PTE7 EREC BS Ctrl on/off F8 F7
-+
-+ PTF7 PTF6 PTF5 PTF4 PTF3 PTF2 PTF1 PTF0
-+PTD1 8 7 6 5 4 3 2 1
-+PTD5 I U Y T R E W Q
-+PTD7 K J H G F D S A
-+PTE0 ESC Tab Shift
-+PTE1 . V Caps Hira
-+PTE3 , M N B Muhen C X
-+PTE6 _ \ Henkan Space Alt Z
-+PTE7 F6 F5 F4 F3 F2 F1 REC
-+
-+ PTH0
-+* on/off
-+
-+ 7 6 5 4 3 2 1 0
-+C: 0xffff 0xff IP IP IP IP IP IP IP IP
-+D: 0x4404 0xaf O F O F F F O F
-+E: 0x5045 0xff O O F F O F O O
-+F: 0xffff 0xff IP IP IP IP IP IP IP IP
-+G: 0xd5ff 0x00 IP O O O IP IP IP IP
-+H: 0x63ff 0xd1 O I F IP IP IP IP IP
-+J: 0x0004 0x02 F F F F F F O F
-+K: 0x0401 0xff F F O F F F F O
-+L: 0x0c00 0x20 F F IP F F F F F
-+
-+ADCSR: 0x08
-+ADCR: 0x3f
-+
-+ ****************************************************************/
-+
-+/****************************************************************
-+Japanese 109 keyboard scan code layout
-+
-+ E02A- E1-
-+01 3B 3C 3D 3E 3F 40 41 42 43 44 57 58 E037 46 1045
-+
-+29 02 03 04 05 06 07 08 09 0A 0B 0C 0D 7D 0E E052 E047 E049 45 E035 37 4A
-+0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C E053 E04F E051 47 48 49 4E
-+3A 1E 1F 20 21 22 23 24 25 26 27 28 2B 4B 4C 4D
-+2A 2C 2D 2E 2F 30 31 32 33 34 35 73 36 E048 4F 50 51 E0-
-+1D DB 38 7B 39 79 70 E038 DC DD E01D E04B E050 E04D 52 53 1C
-+
-+****************************************************************/
-+
-+static const unsigned char hp620_japanese_table[] = {
-+ /* PTD1 */
-+ 0x0a, 0x0b, 0x0c, 0x00, 0x00, 0x0e, 0x00, 0x00,
-+ 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
-+ /* PTD5 */
-+ 0x18, 0x19, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
-+ /* PTD7 */
-+ 0x26, 0x1a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25,
-+ /* PTE0 */
-+ 0x27, 0x1b, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ 0x2a, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ /* PTE1 */
-+ 0x35, 0x28, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ 0x70, 0x3a, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x34,
-+ /* PTE3 */
-+ 0x48, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ 0x00, 0x2d, 0x2e, 0x7b, 0x30, 0x31, 0x32, 0x33,
-+ /* PTE6 */
-+ 0x4b, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ 0x00, 0x2c, 0x38, 0x00, 0x39, 0x79, 0x7d, 0x73,
-+ /* PTE7 */
-+ 0x41, 0x42, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00,
-+ 0x00, 0x00, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40,
-+ /* **** */
-+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-+};
-+
-+static int hp620_japanese_scan_kbd(unsigned char *s)
-+{
-+ int i;
-+ unsigned char matrix_switch[] = {
-+ 0xfd, 0xff, /* PTD1 */
-+ 0xdf, 0xff, /* PTD5 */
-+ 0x7f, 0xff, /* PTD7 */
-+ 0xff, 0xfe, /* PTE0 */
-+ 0xff, 0xfd, /* PTE1 */
-+ 0xff, 0xf7, /* PTE3 */
-+ 0xff, 0xbf, /* PTE6 */
-+ 0xff, 0x7f, /* PTE7 */
-+ }, *t=matrix_switch;
-+
-+ for(i=0; i<8; i++) {
-+ ctrl_outb(*t++, PDDR);
-+ ctrl_outb(*t++, PEDR);
-+ udelay(50);
-+ *s++=ctrl_inb(PCDR);
-+ *s++=ctrl_inb(PFDR);
-+ }
-+
-+ ctrl_outb(0xff, PDDR);
-+ ctrl_outb(0xff, PEDR);
-+
-+ *s++=ctrl_inb(PGDR);
-+ *s++=ctrl_inb(PHDR);
-+
-+ return 0;
-+}
-+
-+static struct scan_keyboard hp620_kbd = {
-+ .scan = hp620_japanese_scan_kbd,
-+ .table = hp620_japanese_table,
-+ .length = 18,
-+};
-+
-+static int __init hp620_kbd_init_hw(void)
-+{
-+ printk(KERN_INFO "HP620 matrix scan keyboard registered\n");
-+ return register_scan_keyboard(&hp620_kbd);
-+}
-+
-+static void __exit hp620_kbd_exit_hw(void)
-+{
-+ unregister_scan_keyboard(&hp620_kbd);
-+}
-+
-+module_init(hp620_kbd_init_hw);
-+module_exit(hp620_kbd_exit_hw);
-+MODULE_LICENSE("GPL");
-diff -ruN linux-2.6.17-vanilla/drivers/input/keyboard/hp680_keyb.c linux-2.6.17/drivers/input/keyboard/hp680_keyb.c
---- linux-2.6.17-vanilla/drivers/input/keyboard/hp680_keyb.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/input/keyboard/hp680_keyb.c 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1,152 @@
-+/*
-+ * drivers/input/keyboard/hp680_keyb.c
-+ *
-+ * HP Jornada 680/690 scan keyboard
-+ *
-+ * Copyright (C) 2005 Andriy Skulysh
-+ * Copyright (C) 2006 Paul Mundt
-+ *
-+ * Splited from drivers/input/keyboard/hp600_keyb.c
-+ *
-+ * Copyright (C) 2000 YAEGASHI Takeshi
-+ * HP600 keyboard scan routine and translation table
-+ * Copyright (C) 2000 Niibe Yutaka
-+ * HP620 keyboard translation table
-+ */
-+#include <linux/kernel.h>
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <asm/delay.h>
-+#include <asm/io.h>
-+#include "scan_keyb.h"
-+
-+#define PCDR 0xa4000124
-+#define PDDR 0xa4000126
-+#define PEDR 0xa4000128
-+#define PFDR 0xa400012a
-+#define PGDR 0xa400012c
-+#define PHDR 0xa400012e
-+#define PJDR 0xa4000130
-+#define PKDR 0xa4000132
-+#define PLDR 0xa4000134
-+
-+/****************************************************************
-+HP Jornada 690(Japanese version) keyboard scan matrix
-+
-+ PTC7 PTC6 PTC5 PTC4 PTC3 PTC2 PTC1 PTC0
-+PTD1 REC Escape on/off Han/Zen Hira Eisu
-+PTD5 REC Z on/off Enter : /
-+PTD7 REC Right Down
-+PTE0 REC Windows on/off
-+PTE1 REC A on/off ] [ ;
-+PTE3 REC Tab on/off ShirtR \ Up
-+PTE6 REC Q on/off BS @ P
-+PTE7 REC 1 on/off ^ - 0
-+
-+ PTF7 PTF6 PTF5 PTF4 PTF3 PTF2 PTF1 PTF0
-+PTD1 F5 F4 F6 F7 F8 F3 F2 F1
-+PTD5 N B M , . V C X
-+PTD7 Muhen Alt Left
-+PTE0 Henkan _ Del Space Ctrl
-+PTE1 H G J K L F D S
-+PTE3 ShiftL
-+PTE6 Y T U I O R E W
-+PTE7 6 5 7 8 9 4 3 2
-+
-+ PTG5 PTG4 PTG3 PTG0 PTH0
-+* REC REW FWW Cover on/off
-+
-+
-+ 7 6 5 4 3 2 1 0
-+C: 0xffff 0xdf IP IP IP IP IP IP IP IP
-+D: 0x6786 0x59 O I O IP I F O I
-+E: 0x5045 0x00 O O F F O F O O
-+F: 0xffff 0xff IP IP IP IP IP IP IP IP
-+G: 0xaffe 0xfd I I IP IP IP IP IP I
-+H: 0x70f2 0x49 O IP F F IP IP F I
-+J: 0x0704 0x22 F F O IP F F O F
-+K: 0x0100 0x10 F F F O F F F F
-+L: 0x0c3c 0x26 F F IP F F IP IP F
-+
-+****************************************************************/
-+
-+static const unsigned char hp680_japanese_table[] = {
-+ /* PTD1 */
-+ 0x3a, 0x70, 0x29, 0x00, 0x01, 0x00, 0x00, 0x00,
-+ 0x3b, 0x3c, 0x3d, 0x42, 0x41, 0x40, 0x3e, 0x3f,
-+ /* PTD5 */
-+ 0x35, 0x28, 0x1c, 0x00, 0x2c, 0x00, 0x00, 0x00,
-+ 0x2d, 0x2e, 0x2f, 0x34, 0x33, 0x32, 0x30, 0x31,
-+ /* PTD7 */
-+ 0x50, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x38, 0x7b,
-+ /* PTE0 */
-+ 0x00, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00,
-+ 0x1d, 0x00, 0x39, 0x53, 0x73, 0xf9, 0x00, 0x00,
-+ /* PTE1 */
-+ 0x27, 0x1b, 0x2b, 0x00, 0x1e, 0x00, 0x00, 0x00,
-+ 0x1f, 0x20, 0x21, 0x26, 0x25, 0x24, 0x22, 0x23,
-+ /* PTE3 */
-+ 0x48, 0x7d, 0x36, 0x00, 0x0f, 0x00, 0x00, 0x00,
-+ 0x00, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ /* PTE6 */
-+ 0x19, 0x1a, 0x0e, 0x00, 0x10, 0x00, 0x00, 0x00,
-+ 0x11, 0x12, 0x13, 0x18, 0x17, 0x16, 0x14, 0x15,
-+ /* PTE7 */
-+ 0x0b, 0x0c, 0x0d, 0x00, 0x02, 0x00, 0x00, 0x00,
-+ 0x03, 0x04, 0x05, 0x0a, 0x09, 0x08, 0x06, 0x07,
-+ /* **** */
-+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-+};
-+
-+static int hp680_japanese_scan_kbd(unsigned char *s)
-+{
-+ int i;
-+ unsigned char matrix_switch[] = {
-+ 0xfd, 0xff, /* PTD1 */
-+ 0xdf, 0xff, /* PTD5 */
-+ 0x7f, 0xff, /* PTD7 */
-+ 0xff, 0xfe, /* PTE0 */
-+ 0xff, 0xfd, /* PTE1 */
-+ 0xff, 0xf7, /* PTE3 */
-+ 0xff, 0xbf, /* PTE6 */
-+ 0xff, 0x7f, /* PTE7 */
-+ }, *t=matrix_switch;
-+
-+ for(i=0; i<8; i++) {
-+ ctrl_outb(*t++, PDDR);
-+ ctrl_outb(*t++, PEDR);
-+ *s++=ctrl_inb(PCDR);
-+ *s++=ctrl_inb(PFDR);
-+ }
-+
-+ ctrl_outb(0xff, PDDR);
-+ ctrl_outb(0xff, PEDR);
-+
-+ *s++=ctrl_inb(PGDR);
-+ *s++=ctrl_inb(PHDR);
-+
-+ return 0;
-+}
-+
-+static struct scan_keyboard hp680_kbd = {
-+ .scan = hp680_japanese_scan_kbd,
-+ .table = hp680_japanese_table,
-+ .length = 18,
-+};
-+
-+static int __init hp680_kbd_init_hw(void)
-+{
-+ printk(KERN_INFO "HP680 matrix scan keyboard registered\n");
-+ return register_scan_keyboard(&hp680_kbd);
-+}
-+
-+static void __exit hp680_kbd_exit_hw(void)
-+{
-+ unregister_scan_keyboard(&hp680_kbd);
-+}
-+
-+module_init(hp680_kbd_init_hw);
-+module_exit(hp680_kbd_exit_hw);
-+MODULE_LICENSE("GPL");
-diff -ruN linux-2.6.17-vanilla/drivers/input/keyboard/scan_keyb.c linux-2.6.17/drivers/input/keyboard/scan_keyb.c
---- linux-2.6.17-vanilla/drivers/input/keyboard/scan_keyb.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/input/keyboard/scan_keyb.c 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1,148 @@
-+/*
-+ * Generic scan keyboard driver
-+ *
-+ * Copyright (C) 2000 YAEGASHI Takeshi
-+ * Copyright (C) 2003 Andriy Skulysh
-+ * Copyright (C) 2006 Paul Mundt
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/module.h>
-+#include <linux/sched.h>
-+#include <linux/init.h>
-+#include <linux/slab.h>
-+#include <linux/interrupt.h>
-+#include <linux/kbd_kern.h>
-+#include <linux/input.h>
-+#include <linux/timer.h>
-+#include "scan_keyb.h"
-+
-+#define SCANHZ (HZ/20)
-+
-+static int scan_jiffies;
-+static struct scan_keyboard *keyboards;
-+struct timer_list scan_timer;
-+static char *hpkbd_name = "Hitachi scankeyboard";
-+static char *hpkbd_phys = "input0";
-+
-+static void check_kbd(struct scan_keyboard *kbd,
-+ unsigned char *new, unsigned char *old)
-+{
-+ const unsigned char *table = kbd->table;
-+ int length = kbd->length;
-+ int need_tasklet_schedule = 0;
-+ unsigned int xor, bit;
-+
-+ while (length-- > 0) {
-+ if ((xor = *new ^ *old) == 0)
-+ table += 8;
-+ else {
-+ for (bit = 0x01; bit < 0x100; bit <<= 1) {
-+ if (xor & bit) {
-+ input_report_key(kbd->dev, *table,
-+ !(*new & bit));
-+ need_tasklet_schedule = 1;
-+ }
-+
-+ table++;
-+ }
-+ }
-+
-+ new++;
-+ old++;
-+ }
-+
-+ if (need_tasklet_schedule) {
-+ input_sync(kbd->dev);
-+ tasklet_schedule(&keyboard_tasklet);
-+ }
-+}
-+
-+static void scan_kbd(unsigned long dummy)
-+{
-+ struct scan_keyboard *kbd;
-+
-+ scan_jiffies++;
-+
-+ for (kbd = keyboards; kbd != NULL; kbd = kbd->next) {
-+ if (scan_jiffies & 1) {
-+ if (!kbd->scan(kbd->s0))
-+ check_kbd(kbd, kbd->s0, kbd->s1);
-+ else
-+ memcpy(kbd->s0, kbd->s1, kbd->length);
-+ } else {
-+ if (!kbd->scan(kbd->s1))
-+ check_kbd(kbd, kbd->s1, kbd->s0);
-+ else
-+ memcpy(kbd->s1, kbd->s0, kbd->length);
-+ }
-+ }
-+
-+ mod_timer(&scan_timer, jiffies + SCANHZ);
-+}
-+
-+int register_scan_keyboard(struct scan_keyboard *kbd)
-+{
-+ int i;
-+
-+ kbd->s0 = kmalloc(kbd->length, GFP_KERNEL);
-+ if (kbd->s0 == NULL)
-+ goto error;
-+
-+ kbd->s1 = kmalloc(kbd->length, GFP_KERNEL);
-+ if (kbd->s1 == NULL)
-+ goto error;
-+
-+ memset(kbd->s0, -1, kbd->length);
-+ memset(kbd->s1, -1, kbd->length);
-+
-+ kbd->dev = input_allocate_device();
-+ if (!kbd->dev)
-+ goto error;
-+
-+ kbd->dev->name = hpkbd_name;
-+ kbd->dev->phys = hpkbd_phys;
-+ kbd->dev->evbit[0] = BIT(EV_KEY) | BIT(EV_REP);
-+ init_input_dev(kbd->dev);
-+ kbd->dev->keycode = (unsigned char *)kbd->table;
-+ kbd->dev->keycodesize = sizeof(unsigned char);
-+ kbd->dev->keycodemax = ARRAY_SIZE(kbd->table);
-+
-+ for (i = 0; i < 128; i++)
-+ if (kbd->table[i])
-+ set_bit(kbd->table[i], kbd->dev->keybit);
-+
-+ clear_bit(0, kbd->dev->keybit);
-+ input_register_device(kbd->dev);
-+
-+ kbd->next = keyboards;
-+ keyboards = kbd;
-+
-+ init_timer(&scan_timer);
-+ scan_timer.expires = jiffies + SCANHZ;
-+ scan_timer.data = 0;
-+ scan_timer.function = scan_kbd;
-+ add_timer(&scan_timer);
-+
-+ return 0;
-+
-+error:
-+ kfree(kbd->s1);
-+ kfree(kbd->s0);
-+
-+ return -ENOMEM;
-+}
-+EXPORT_SYMBOL_GPL(register_scan_keyboard);
-+
-+void unregister_scan_keyboard(struct scan_keyboard *kbd)
-+{
-+ del_timer_sync(&scan_timer);
-+ keyboards = kbd->next;
-+ input_unregister_device(kbd->dev);
-+ input_free_device(kbd->dev);
-+}
-+EXPORT_SYMBOL_GPL(unregister_scan_keyboard);
-diff -ruN linux-2.6.17-vanilla/drivers/input/keyboard/scan_keyb.h linux-2.6.17/drivers/input/keyboard/scan_keyb.h
---- linux-2.6.17-vanilla/drivers/input/keyboard/scan_keyb.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/input/keyboard/scan_keyb.h 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1,16 @@
-+#ifndef __DRIVER_CHAR_SCAN_KEYB_H
-+#define __DRIVER_CHAR_SCAN_KEYB_H
-+
-+struct scan_keyboard {
-+ struct scan_keyboard *next;
-+ int (*scan)(unsigned char *buffer);
-+ const unsigned char *table;
-+ unsigned char *s0, *s1;
-+ int length;
-+ struct input_dev *dev;
-+};
-+
-+int register_scan_keyboard(struct scan_keyboard *);
-+void unregister_scan_keyboard(struct scan_keyboard *);
-+
-+#endif
-diff -ruN linux-2.6.17-vanilla/drivers/input/touchscreen/CVS/Entries linux-2.6.17/drivers/input/touchscreen/CVS/Entries
---- linux-2.6.17-vanilla/drivers/input/touchscreen/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/input/touchscreen/CVS/Entries 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1,2 @@
-+/hp680_ts_input.c/1.3/Sun Jan 29 22:13:39 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/drivers/input/touchscreen/CVS/Repository linux-2.6.17/drivers/input/touchscreen/CVS/Repository
---- linux-2.6.17-vanilla/drivers/input/touchscreen/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/input/touchscreen/CVS/Repository 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1 @@
-+linux/drivers/input/touchscreen
-diff -ruN linux-2.6.17-vanilla/drivers/input/touchscreen/CVS/Root linux-2.6.17/drivers/input/touchscreen/CVS/Root
---- linux-2.6.17-vanilla/drivers/input/touchscreen/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/input/touchscreen/CVS/Root 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/drivers/input/touchscreen/hp680_ts_input.c linux-2.6.17/drivers/input/touchscreen/hp680_ts_input.c
---- linux-2.6.17-vanilla/drivers/input/touchscreen/hp680_ts_input.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/input/touchscreen/hp680_ts_input.c 2006-07-12 16:54:24.000000000 +0000
-@@ -15,7 +15,6 @@
- #define HP680_TS_ABS_Y_MIN 80
- #define HP680_TS_ABS_Y_MAX 910
-
--#define SCPCR 0xa4000116
- #define PHDR 0xa400012e
- #define SCPDR 0xa4000136
-
-@@ -77,19 +76,6 @@
-
- static int __init hp680_ts_init(void)
- {
-- u8 scpdr;
-- u16 scpcr;
--
-- scpdr = ctrl_inb(SCPDR);
-- scpdr |= SCPDR_TS_SCAN_X | SCPDR_TS_SCAN_Y;
-- scpdr &= ~SCPDR_TS_SCAN_ENABLE;
-- ctrl_outb(scpdr, SCPDR);
--
-- scpcr = ctrl_inw(SCPCR);
-- scpcr &= ~SCPCR_TS_MASK;
-- scpcr |= SCPCR_TS_ENABLE;
-- ctrl_outw(scpcr, SCPCR);
--
- hp680_ts_dev = input_allocate_device();
- if (!hp680_ts_dev)
- return -ENOMEM;
-diff -ruN linux-2.6.17-vanilla/drivers/mtd/CVS/Entries linux-2.6.17/drivers/mtd/CVS/Entries
---- linux-2.6.17-vanilla/drivers/mtd/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/mtd/CVS/Entries 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1,2 @@
-+/mtdpart.c/1.11/Tue Jan 3 22:35:56 2006/-ko/
-+D/maps////
-diff -ruN linux-2.6.17-vanilla/drivers/mtd/CVS/Repository linux-2.6.17/drivers/mtd/CVS/Repository
---- linux-2.6.17-vanilla/drivers/mtd/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/mtd/CVS/Repository 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1 @@
-+linux/drivers/mtd
-diff -ruN linux-2.6.17-vanilla/drivers/mtd/CVS/Root linux-2.6.17/drivers/mtd/CVS/Root
---- linux-2.6.17-vanilla/drivers/mtd/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/mtd/CVS/Root 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/drivers/mtd/maps/CVS/Entries linux-2.6.17/drivers/mtd/maps/CVS/Entries
---- linux-2.6.17-vanilla/drivers/mtd/maps/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/mtd/maps/CVS/Entries 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1,5 @@
-+/Kconfig/1.18/Mon Mar 27 21:06:14 2006/-ko/
-+/Makefile/1.16/Mon Mar 27 21:06:14 2006/-ko/
-+/microdev-flash.c/1.1/Thu Mar 17 11:42:48 2005/-ko/
-+/rts7751r2d-flash.c/1.2/Thu Mar 17 11:42:48 2005/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/drivers/mtd/maps/CVS/Repository linux-2.6.17/drivers/mtd/maps/CVS/Repository
---- linux-2.6.17-vanilla/drivers/mtd/maps/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/mtd/maps/CVS/Repository 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1 @@
-+linux/drivers/mtd/maps
-diff -ruN linux-2.6.17-vanilla/drivers/mtd/maps/CVS/Root linux-2.6.17/drivers/mtd/maps/CVS/Root
---- linux-2.6.17-vanilla/drivers/mtd/maps/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/mtd/maps/CVS/Root 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/drivers/mtd/maps/Kconfig linux-2.6.17/drivers/mtd/maps/Kconfig
---- linux-2.6.17-vanilla/drivers/mtd/maps/Kconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/mtd/maps/Kconfig 2006-07-12 16:54:24.000000000 +0000
-@@ -409,11 +409,37 @@
-
- config MTD_SOLUTIONENGINE
- tristate "CFI Flash device mapped on Hitachi SolutionEngine"
-- depends on SUPERH && MTD_CFI && MTD_REDBOOT_PARTS
-+ depends on SUPERH && MTD_CFI
- help
- This enables access to the flash chips on the Hitachi SolutionEngine and
- similar boards. Say 'Y' if you are building a kernel for such a board.
-
-+config MTD_SUPERH_RESERVE
-+ hex "Default reserved Flash size"
-+ depends on MTD_SOLUTIONENGINE
-+ default 300000
-+ help
-+ The reserved memory is used by kernel and ram disk themselves. It's
-+ starting from 0.
-+
-+config MTD_MPC1211
-+ tristate "CFI Flash device mapped on Interface MPC-1211"
-+ depends on SUPERH && SH_MPC1211 && MTD_CFI
-+ help
-+ This enables access to the flash chips on the Interface MPC-1211(CTP/PCI/MPC-SH02).
-+ Say 'Y' if you are building a kernel for such a board.
-+
-+config MTD_RTS7751R2D
-+ tristate "CFI Flash device mapped on Renesas RTS7751R2D"
-+ depends on SUPERH && SH_RTS7751R2D && MTD_CFI && MTD_PARTITIONS
-+ help
-+ This enables access to the flash chips on the Renesas Technology Sales RTS7751R2D.
-+ Say 'Y' if you are building a kernel for such a board.
-+
-+config MTD_MICRODEV
-+ tristate "CFI Flash device mapped on SuperH SH4-202 MicroDev"
-+ depends on SUPERH && SH_SH4202_MICRODEV && MTD_CFI && MTD_PARTITIONS
-+
- config MTD_ARM_INTEGRATOR
- tristate "CFI Flash device mapped on ARM Integrator/P720T"
- depends on ARM && MTD_CFI
-diff -ruN linux-2.6.17-vanilla/drivers/mtd/maps/Makefile linux-2.6.17/drivers/mtd/maps/Makefile
---- linux-2.6.17-vanilla/drivers/mtd/maps/Makefile 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/mtd/maps/Makefile 2006-07-12 16:54:24.000000000 +0000
-@@ -62,6 +62,7 @@
- obj-$(CONFIG_MTD_SBC8240) += sbc8240.o
- obj-$(CONFIG_MTD_NOR_TOTO) += omap-toto-flash.o
- obj-$(CONFIG_MTD_MPC1211) += mpc1211.o
-+obj-$(CONFIG_MTD_RTS7751R2D) += rts7751r2d-flash.o
- obj-$(CONFIG_MTD_IXP4XX) += ixp4xx.o
- obj-$(CONFIG_MTD_IXP2000) += ixp2000.o
- obj-$(CONFIG_MTD_WRSBC8260) += wr_sbc82xx_flash.o
-@@ -69,5 +70,6 @@
- obj-$(CONFIG_MTD_SHARP_SL) += sharpsl-flash.o
- obj-$(CONFIG_MTD_PLATRAM) += plat-ram.o
- obj-$(CONFIG_MTD_OMAP_NOR) += omap_nor.o
-+obj-$(CONFIG_MTD_MICRODEV) += microdev-flash.o
- obj-$(CONFIG_MTD_MTX1) += mtx-1_flash.o
- obj-$(CONFIG_MTD_TQM834x) += tqm834x.o
-diff -ruN linux-2.6.17-vanilla/drivers/mtd/maps/microdev-flash.c linux-2.6.17/drivers/mtd/maps/microdev-flash.c
---- linux-2.6.17-vanilla/drivers/mtd/maps/microdev-flash.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/mtd/maps/microdev-flash.c 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1,165 @@
-+/*
-+ * drivers/mtd/maps/microdev-flash.c
-+ *
-+ * Flash Mapping for the SuperH SH4-202 MicroDev.
-+ *
-+ * Copyright (C) 2004 SuperH, Inc.
-+ * Copyright (C) 2004 Paul Mundt
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ */
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <linux/types.h>
-+#include <linux/mtd/mtd.h>
-+#include <linux/mtd/map.h>
-+#include <linux/mtd/partitions.h>
-+#include <asm/io.h>
-+
-+/*
-+ * The SH4-202 MicroDev has 32M of Intel StrataFlash mapped into the
-+ * beginning of the FEMI address space (mapped to P0). MicroDev flash
-+ * consists of 2x16M chips, mapped contiguously, and accessed with a
-+ * 32-bit buswidth.
-+ *
-+ * Additionally, the MicroDev also supports booting from an EEPROM.
-+ * In the event that the EEPROM is configured, it is mapped in the
-+ * same address space window as the StrataFlash. As such, we can only
-+ * use one at a time.
-+ *
-+ * Since the EEPROM is only accessible with an 8-bit buswidth, flash
-+ * is preferrable as far as performance is concerned.
-+ */
-+struct map_info microdev_flash_map = {
-+ .name = "MicroDev Flash",
-+ .size = 0x02000000,
-+ .bankwidth = 4,
-+};
-+
-+struct map_info microdev_eeprom_map = {
-+ .name = "MicroDev EEPROM",
-+ .size = 0x00100000,
-+ .bankwidth = 1,
-+};
-+
-+static const char *probes[] = { "RedBoot", "cmdlinepart", NULL };
-+static struct mtd_partition *parsed_parts;
-+
-+/*
-+ * Default partition map.
-+ */
-+static struct mtd_partition microdev_partitions[] = {
-+#ifdef CONFIG_MTD_PARTITIONS
-+ {
-+ .name = "bootloader",
-+ .size = 0x00080000,
-+ .mask_flags = MTD_WRITEABLE, /* force read-only */
-+ }, {
-+ .name = "User FS",
-+ .offset = MTDPART_OFS_APPEND,
-+ .size = MTDPART_SIZ_FULL,
-+ },
-+#endif
-+};
-+
-+static struct mtd_info *microdev_flash;
-+static struct mtd_info *microdev_eeprom;
-+static struct mtd_info *microdev_mtd;
-+
-+static void show_map_info(struct map_info *info)
-+{
-+ unsigned long addr;
-+
-+ if (!info)
-+ return;
-+
-+ addr = info->phys & 0x1fffffff;
-+
-+ printk(KERN_NOTICE "%s at 0x%08lx:0x%08lx, using a %d-bit bankwidth.\n",
-+ info->name, addr, addr + info->size, info->bankwidth << 3);
-+}
-+
-+static int __init microdev_map_init(void)
-+{
-+ struct mtd_partition *parts;
-+ int nr_parts, parsed_nr_parts;
-+
-+ /* Flash mapped at FEMI area 0 */
-+ microdev_flash_map.phys = 0;
-+ microdev_flash_map.virt = (void __iomem *)P2SEGADDR(0);
-+
-+ /* EEPROM mapped in the same place */
-+ microdev_eeprom_map.phys = 0;
-+ microdev_eeprom_map.virt = (void __iomem *)P2SEGADDR(0);
-+
-+ simple_map_init(&microdev_flash_map);
-+ simple_map_init(&microdev_eeprom_map);
-+
-+ /* Try the flash first */
-+ printk(KERN_NOTICE "MicroDev flash: probing for flash chips at 0x00000000:\n");
-+ microdev_flash = do_map_probe("cfi_probe", &microdev_flash_map);
-+ if (!microdev_flash) {
-+ printk(KERN_NOTICE "Flash chips not detected, probing for EEPROM\n");
-+
-+ /* No luck, try EEPROM */
-+ microdev_eeprom = do_map_probe("map_rom", &microdev_eeprom_map);
-+ if (!microdev_eeprom) {
-+ /* Nope.. */
-+ printk(KERN_ERR "nothing found\n");
-+ return -ENXIO;
-+ }
-+ }
-+
-+ if (microdev_flash) {
-+ microdev_mtd = microdev_flash;
-+ show_map_info(&microdev_flash_map);
-+ } else {
-+ microdev_mtd = microdev_eeprom;
-+ show_map_info(&microdev_eeprom_map);
-+ }
-+
-+ microdev_mtd->owner = THIS_MODULE;
-+
-+ /* Start out with a static map.. */
-+ parts = microdev_partitions;
-+ nr_parts = ARRAY_SIZE(microdev_partitions);
-+
-+#ifdef CONFIG_MTD_PARTITIONS
-+ /* Try to parse the partitions */
-+ parsed_nr_parts = parse_mtd_partitions(microdev_mtd, probes, &parsed_parts, 0);
-+ if (parsed_nr_parts > 0) {
-+ parts = parsed_parts;
-+ nr_parts = parsed_nr_parts;
-+ }
-+#endif
-+
-+ if (nr_parts > 0) {
-+ add_mtd_partitions(microdev_mtd, parts, nr_parts);
-+ } else {
-+ add_mtd_device(microdev_mtd);
-+ }
-+
-+ return 0;
-+}
-+
-+static void __exit microdev_map_exit(void)
-+{
-+ if (parsed_parts) {
-+ del_mtd_partitions(microdev_mtd);
-+ } else {
-+ del_mtd_device(microdev_mtd);
-+ }
-+
-+ map_destroy(microdev_mtd);
-+}
-+
-+module_init(microdev_map_init);
-+module_exit(microdev_map_exit);
-+
-+MODULE_AUTHOR("Paul Mundt <lethal@linux-sh.org>");
-+MODULE_DESCRIPTION("MTD map driver for SuperH SH4-202 MicroDev");
-+MODULE_LICENSE("GPL");
-+
-diff -ruN linux-2.6.17-vanilla/drivers/mtd/maps/rts7751r2d-flash.c linux-2.6.17/drivers/mtd/maps/rts7751r2d-flash.c
---- linux-2.6.17-vanilla/drivers/mtd/maps/rts7751r2d-flash.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/mtd/maps/rts7751r2d-flash.c 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1,167 @@
-+/* -------------------------------------------------------------------- */
-+/* rts7751r2d-flash.c: */
-+/* -------------------------------------------------------------------- */
-+/* 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-+
-+ Copyright 2003 (c) Lineo uSolutions,Inc.
-+*/
-+/* -------------------------------------------------------------------- */
-+
-+#include <linux/config.h>
-+#include <linux/module.h>
-+#include <linux/types.h>
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+
-+#include <linux/mtd/mtd.h>
-+#include <linux/mtd/map.h>
-+#include <linux/mtd/partitions.h>
-+
-+#include <asm/io.h>
-+
-+#undef FLASH4M_16BIT
-+#define FLASH16M_16BIT
-+
-+#if defined(FLASH4M_16BIT)
-+#define RTS7751R2D_FLASH_SIZE 0x00100000
-+#else
-+#define RTS7751R2D_FLASH_SIZE 0x01000000
-+#endif
-+
-+static struct map_info rts7751r2d_map = {
-+ .name = "SH-Graphic flash",
-+ .bankwidth = 2,
-+ .size = RTS7751R2D_FLASH_SIZE,
-+};
-+
-+/*
-+ * Here are partition information for all known SH-Graphic based devices.
-+ * See include/linux/mtd/partitions.h for definition of the mtd_partition
-+ * structure.
-+ *
-+ * The *_max_flash_size is the maximum possible mapped flash size which
-+ * is not necessarily the actual flash size. It must correspond to the
-+ * value specified in the mapping definition defined by the
-+ * "struct map_desc *_io_desc" for the corresponding machine.
-+ */
-+
-+#if defined(FLASH4M_16BIT)
-+static struct mtd_partition rts7751r2d_partitions[] = {
-+ {
-+ .name = "bootloader",
-+ .size = 0x00080000,
-+ .offset = 0xa0000000,
-+ .mask_flags = MTD_WRITEABLE, /* force read-only */
-+ },{
-+ .name = "SH-Graphic jffs",
-+ .size = 0x00080000,
-+ .offset = 0xa0080000,
-+ }
-+};
-+#else
-+static struct mtd_partition rts7751r2d_partitions[] = {
-+ {
-+ .name = "bootloader",
-+ .size = 0x00020000,
-+ .offset = 0x00000000,
-+ .mask_flags = MTD_WRITEABLE, /* force read-only */
-+ },{
-+ .name = "mtdblock1",
-+ .size = 0x00300000,
-+ .offset = 0x00020000,
-+ },{
-+ .name = "mtdblock2",
-+ .size = 0x004e0000,
-+ .offset = 0x00320000,
-+ },{
-+ .name = "mtdblock3",
-+ .size = 0x00800000,
-+ .offset = 0x00800000,
-+ }
-+};
-+#endif
-+
-+static struct mtd_partition *parsed_parts;
-+static struct mtd_info *mymtd;
-+
-+int __init rts7751r2d_mtd_init(void)
-+{
-+ struct mtd_partition *parts;
-+ int nb_parts = 0;
-+ int parsed_nr_parts = 0;
-+ char *part_type;
-+
-+ /* Default flash buswidth */
-+
-+ /*
-+ * Static partition definition selection
-+ */
-+ part_type = "static";
-+ parts = rts7751r2d_partitions;
-+
-+ nb_parts = ARRAY_SIZE(rts7751r2d_partitions);
-+ rts7751r2d_map.phys = 0;
-+ rts7751r2d_map.virt = P2SEGADDR(0);
-+
-+ /*
-+ * Now let's probe for the actual flash. Do it here since
-+ * specific machine settings might have been set above.
-+ */
-+ printk(KERN_NOTICE "RTS7751R2D flash: probing %d-bit flash bus\n",
-+ rts7751r2d_map.bankwidth*8);
-+ simple_map_init(&rts7751r2d_map);
-+
-+ mymtd = do_map_probe("cfi_probe", &rts7751r2d_map);
-+ if (!mymtd)
-+ return -ENXIO;
-+
-+ mymtd->owner = THIS_MODULE;
-+ mymtd->erasesize = 0x10000;
-+
-+ /*
-+ * Dynamic partition selection stuff (might override the static ones)
-+ */
-+
-+ if (parsed_nr_parts > 0) {
-+ parts = parsed_parts;
-+ nb_parts = parsed_nr_parts;
-+ }
-+
-+ if (nb_parts == 0) {
-+ printk(KERN_NOTICE "RTS7751R2D partition info available, registering whole flash at once\n");
-+ add_mtd_device(mymtd);
-+ } else {
-+ printk(KERN_NOTICE "Using %s partition definition\n", part_type);
-+ add_mtd_partitions(mymtd, parts, nb_parts);
-+ }
-+ return 0;
-+}
-+
-+static void __exit rts7751r2d_mtd_cleanup(void)
-+{
-+ if (mymtd) {
-+ del_mtd_partitions(mymtd);
-+ map_destroy(mymtd);
-+ if (parsed_parts)
-+ kfree(parsed_parts);
-+ }
-+}
-+
-+module_init(rts7751r2d_mtd_init);
-+module_exit(rts7751r2d_mtd_cleanup);
-+
-+MODULE_LICENSE("GPL");
-+MODULE_AUTHOR("Lineo uSolutions,Inc.");
-+MODULE_DESCRIPTION("MTD map driver for RTS7751R2D base board");
-diff -ruN linux-2.6.17-vanilla/drivers/mtd/mtdpart.c linux-2.6.17/drivers/mtd/mtdpart.c
---- linux-2.6.17-vanilla/drivers/mtd/mtdpart.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/mtd/mtdpart.c 2006-07-12 16:54:24.000000000 +0000
-@@ -481,6 +481,14 @@
- printk (KERN_NOTICE "0x%08x-0x%08x : \"%s\"\n", slave->offset,
- slave->offset + slave->mtd.size, slave->mtd.name);
-
-+#ifdef CONFIG_SUPERH
-+ /*
-+ * slave->offset contains a P2 address, this confuses the rest
-+ * of the sanity checks, so kick it back down to P0.
-+ */
-+ slave->offset &= 0x1fffffff;
-+#endif
-+
- /* let's do some sanity checks */
- if (slave->offset >= master->size) {
- /* let's register it anyway to preserve ordering */
-diff -ruN linux-2.6.17-vanilla/drivers/net/8139too.c linux-2.6.17/drivers/net/8139too.c
---- linux-2.6.17-vanilla/drivers/net/8139too.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/net/8139too.c 2006-07-12 16:54:24.000000000 +0000
-@@ -257,7 +257,7 @@
- {0x018a, 0x0106, PCI_ANY_ID, PCI_ANY_ID, 0, 0, RTL8139 },
- {0x126c, 0x1211, PCI_ANY_ID, PCI_ANY_ID, 0, 0, RTL8139 },
- {0x1743, 0x8139, PCI_ANY_ID, PCI_ANY_ID, 0, 0, RTL8139 },
-- {0x021b, 0x8139, PCI_ANY_ID, PCI_ANY_ID, 0, 0, RTL8139 },
-+ {0x021b, 0x8139, PCI_ANY_ID, PCI_ANY_ID, 0, 0, RTL8139 },
-
- #ifdef CONFIG_SH_SECUREEDGE5410
- /* Bogus 8139 silicon reports 8129 without external PROM :-( */
-@@ -970,11 +970,17 @@
- ioaddr = tp->mmio_addr;
- assert (ioaddr != NULL);
-
-+#ifdef CONFIG_SH_SECUREEDGE5410
-+ /* Don't rely on the eeprom, get MAC from chip. */
-+ for (i = 0; i < 6; i++)
-+ dev->dev_addr[i] = readb(ioaddr + MAC0 + i);
-+#else
- addr_len = read_eeprom (ioaddr, 0, 8) == 0x8129 ? 8 : 6;
- for (i = 0; i < 3; i++)
- ((u16 *) (dev->dev_addr))[i] =
- le16_to_cpu (read_eeprom (ioaddr, i + 7, addr_len));
- memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len);
-+#endif
-
- /* The Rtl8139-specific entries in the device structure. */
- dev->open = rtl8139_open;
-diff -ruN linux-2.6.17-vanilla/drivers/net/8390.c linux-2.6.17/drivers/net/8390.c
---- linux-2.6.17-vanilla/drivers/net/8390.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/net/8390.c 2006-07-12 16:54:24.000000000 +0000
-@@ -108,6 +108,13 @@
- int ei_debug = 1;
- #endif
-
-+#if defined(CONFIG_SH_RTS7751R2D) || defined(CONFIG_SH_R77703DRP) || defined(CONFIG_SH_R7780RP)
-+#ifdef ETH_ZLEN
-+#undef ETH_ZLEN
-+#define ETH_ZLEN 64
-+#endif
-+#endif
-+
- /* Index to functions. */
- static void ei_tx_intr(struct net_device *dev);
- static void ei_tx_err(struct net_device *dev);
-@@ -938,7 +945,11 @@
- */
-
- if (netif_running(dev))
-+#if defined(CONFIG_SH_RTS7751R2D) || defined(CONFIG_SH_R77703DRP) || defined(CONFIG_SH_R7780RP)
-+ outb_p(E8390_RXCONFIG | 0x40, e8390_base + EN0_RXCR);
-+#else
- outb_p(E8390_RXCONFIG, e8390_base + EN0_RXCR);
-+#endif
- outb_p(E8390_NODMA + E8390_PAGE1, e8390_base + E8390_CMD);
- for(i = 0; i < 8; i++)
- {
-@@ -951,11 +962,23 @@
- outb_p(E8390_NODMA + E8390_PAGE0, e8390_base + E8390_CMD);
-
- if(dev->flags&IFF_PROMISC)
-+#if defined(CONFIG_SH_RTS7751R2D) || defined(CONFIG_SH_R77703DRP) || defined(CONFIG_SH_R7780RP)
-+ outb_p(E8390_RXCONFIG | 0x40 | 0x18, e8390_base + EN0_RXCR);
-+#else
- outb_p(E8390_RXCONFIG | 0x18, e8390_base + EN0_RXCR);
-+#endif
- else if(dev->flags&IFF_ALLMULTI || dev->mc_list)
-+#if defined(CONFIG_SH_RTS7751R2D) || defined(CONFIG_SH_R77703DRP) || defined(CONFIG_SH_R7780RP)
-+ outb_p(E8390_RXCONFIG | 0x40 | 0x08, e8390_base + EN0_RXCR);
-+#else
- outb_p(E8390_RXCONFIG | 0x08, e8390_base + EN0_RXCR);
-+#endif
- else
-+#if defined(CONFIG_SH_RTS7751R2D) || defined(CONFIG_SH_R77703DRP) || defined(CONFIG_SH_R7780RP)
-+ outb_p(E8390_RXCONFIG | 0x40, e8390_base + EN0_RXCR);
-+#else
- outb_p(E8390_RXCONFIG, e8390_base + EN0_RXCR);
-+#endif
- }
-
- /*
-@@ -1029,8 +1052,13 @@
- struct ei_device *ei_local = (struct ei_device *) netdev_priv(dev);
- int i;
- int endcfg = ei_local->word16
-+#if defined(CONFIG_SH_RTS7751R2D) || defined(CONFIG_SH_R77703DRP) || defined(CONFIG_SH_R7780RP)
-+ ? (0x00 | ENDCFG_WTS | (ei_local->bigendian ? ENDCFG_BOS : 0))
-+ : 0x00;
-+#else
- ? (0x48 | ENDCFG_WTS | (ei_local->bigendian ? ENDCFG_BOS : 0))
- : 0x48;
-+#endif
-
- if(sizeof(struct e8390_pkt_hdr)!=4)
- panic("8390.c: header struct mispacked\n");
-@@ -1041,7 +1069,11 @@
- outb_p(0x00, e8390_base + EN0_RCNTLO);
- outb_p(0x00, e8390_base + EN0_RCNTHI);
- /* Set to monitor and loopback mode -- this is vital!. */
-+#if defined(CONFIG_SH_RTS7751R2D) || defined(CONFIG_SH_R77703DRP) || defined(CONFIG_SH_R7780RP)
-+ outb_p(E8390_RXOFF | 0x40, e8390_base + EN0_RXCR); /* 0x20 */
-+#else
- outb_p(E8390_RXOFF, e8390_base + EN0_RXCR); /* 0x20 */
-+#endif
- outb_p(E8390_TXOFF, e8390_base + EN0_TXCR); /* 0x02 */
- /* Set the transmit page and receive ring. */
- outb_p(ei_local->tx_start_page, e8390_base + EN0_TPSR);
-@@ -1078,7 +1110,11 @@
- outb_p(E8390_NODMA+E8390_PAGE0+E8390_START, e8390_base+E8390_CMD);
- outb_p(E8390_TXCONFIG, e8390_base + EN0_TXCR); /* xmit on. */
- /* 3c503 TechMan says rxconfig only after the NIC is started. */
-+#if defined(CONFIG_SH_RTS7751R2D) || defined(CONFIG_SH_R77703DRP) || defined(CONFIG_SH_R7780RP)
-+ outb_p(E8390_RXCONFIG | 0x40, e8390_base + EN0_RXCR); /* rx on, */
-+#else
- outb_p(E8390_RXCONFIG, e8390_base + EN0_RXCR); /* rx on, */
-+#endif
- do_set_multicast_list(dev); /* (re)load the mcast table */
- }
- }
-diff -ruN linux-2.6.17-vanilla/drivers/net/88796l.c linux-2.6.17/drivers/net/88796l.c
---- linux-2.6.17-vanilla/drivers/net/88796l.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/net/88796l.c 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1,95 @@
-+#define NE_EEPROM 0x14
-+
-+static inline void delay(void);
-+static unsigned char asix88796_eeprom_getbit(int ioaddr);
-+static void asix88796_eeprom_send(int ioaddr, int value);
-+static unsigned short asix88796_eeprom_get(int ioaddr);
-+static void asix88796_eeprom_setaddr(int ioaddr, int addr);
-+static void asix88796_eeprom_command(int ioaddr);
-+static void asix88796_eeprom_read(int ioaddr, unsigned char *buff);
-+
-+static inline void delay(void)
-+{
-+ ctrl_inw(0xa0000000);
-+}
-+
-+static unsigned char asix88796_eeprom_getbit(int ioaddr)
-+{
-+ unsigned char value;
-+
-+ outb(inb(ioaddr + NE_EEPROM) & 0x7f, ioaddr + NE_EEPROM);
-+ delay();
-+ value = (inb(ioaddr + NE_EEPROM) & 0x40) >> 6;
-+ outb(inb(ioaddr + NE_EEPROM) | 0x80, ioaddr + NE_EEPROM);
-+ delay();
-+
-+ return value;
-+}
-+
-+static void asix88796_eeprom_send(int ioaddr, int value)
-+{
-+ if (value)
-+ outb(inb(ioaddr + NE_EEPROM) | 0x20, ioaddr + NE_EEPROM);
-+ else
-+ outb(inb(ioaddr + NE_EEPROM) & 0xdf, ioaddr + NE_EEPROM);
-+ outb(inb(ioaddr + NE_EEPROM) & 0x7f, ioaddr + NE_EEPROM);
-+ delay();
-+ outb(inb(ioaddr + NE_EEPROM) | 0x80, ioaddr + NE_EEPROM);
-+ delay();
-+ outb(inb(ioaddr + NE_EEPROM) & 0xdf, ioaddr + NE_EEPROM);
-+}
-+
-+static unsigned short asix88796_eeprom_get(int ioaddr)
-+{
-+ unsigned short value = 0;
-+ int i;
-+
-+ asix88796_eeprom_getbit(ioaddr);
-+ for (i=0; i<16; i++) {
-+ value <<= 1;
-+ value |= asix88796_eeprom_getbit(ioaddr);
-+ }
-+
-+ return value;
-+}
-+
-+static void asix88796_eeprom_setaddr(int ioaddr, int addr)
-+{
-+ asix88796_eeprom_send(ioaddr, addr & 0x0080);
-+ asix88796_eeprom_send(ioaddr, addr & 0x0040);
-+ asix88796_eeprom_send(ioaddr, addr & 0x0020);
-+ asix88796_eeprom_send(ioaddr, addr & 0x0010);
-+ asix88796_eeprom_send(ioaddr, addr & 0x0008);
-+ asix88796_eeprom_send(ioaddr, addr & 0x0004);
-+ asix88796_eeprom_send(ioaddr, addr & 0x0002);
-+ asix88796_eeprom_send(ioaddr, addr & 0x0001);
-+}
-+
-+static void asix88796_eeprom_command(int ioaddr)
-+{
-+ asix88796_eeprom_send(ioaddr, 0);
-+ asix88796_eeprom_send(ioaddr, 1);
-+ asix88796_eeprom_send(ioaddr, 1);
-+ asix88796_eeprom_send(ioaddr, 0);
-+}
-+
-+static void asix88796_eeprom_read(int ioaddr, unsigned char *buff)
-+{
-+ int i;
-+ int addr = 0;
-+ unsigned short value;
-+
-+ for (i=0; i<3; i++) {
-+ outb(inb(ioaddr + NE_EEPROM) | 0x10, ioaddr + NE_EEPROM);
-+ outb(inb(ioaddr + NE_EEPROM) & 0xdf, ioaddr + NE_EEPROM);
-+ delay();
-+ asix88796_eeprom_command(ioaddr);
-+ asix88796_eeprom_setaddr(ioaddr, addr++);
-+ value = asix88796_eeprom_get(ioaddr);
-+ *buff++ = (unsigned char)(value & 0xff);
-+ *buff++ = (unsigned char)((value >> 8) & 0xff);
-+ outb(inb(ioaddr + NE_EEPROM) & 0x7f, ioaddr + NE_EEPROM);
-+ outb(inb(ioaddr + NE_EEPROM) & 0xdf, ioaddr + NE_EEPROM);
-+ outb(inb(ioaddr + NE_EEPROM) & 0xef, ioaddr + NE_EEPROM);
-+ }
-+}
-diff -ruN linux-2.6.17-vanilla/drivers/net/CVS/Entries linux-2.6.17/drivers/net/CVS/Entries
---- linux-2.6.17-vanilla/drivers/net/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/net/CVS/Entries 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1,7 @@
-+/8390.c/1.9/Sat Jan 7 20:02:47 2006/-ko/
-+/88796l.c/1.1/Sat Jan 7 20:02:47 2006/-ko/
-+/stnic.c/1.7/Wed Jan 4 17:53:54 2006/-ko/
-+/8139too.c/1.51/Wed Jul 5 14:51:19 2006/-ko/
-+/Kconfig/1.27/Wed Jul 5 14:51:19 2006/-ko/
-+/ne.c/1.10/Wed Jul 5 14:51:19 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/drivers/net/CVS/Repository linux-2.6.17/drivers/net/CVS/Repository
---- linux-2.6.17-vanilla/drivers/net/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/net/CVS/Repository 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1 @@
-+linux/drivers/net
-diff -ruN linux-2.6.17-vanilla/drivers/net/CVS/Root linux-2.6.17/drivers/net/CVS/Root
---- linux-2.6.17-vanilla/drivers/net/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/net/CVS/Root 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/drivers/net/Kconfig linux-2.6.17/drivers/net/Kconfig
---- linux-2.6.17-vanilla/drivers/net/Kconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/net/Kconfig 2006-07-12 16:54:24.000000000 +0000
-@@ -1078,7 +1078,7 @@
-
- config NE2000
- tristate "NE2000/NE1000 support"
-- depends on NET_ISA || (Q40 && m) || M32R
-+ depends on NET_ISA || (Q40 && m) || M32R || SUPERH
- select CRC32
- ---help---
- If you have a network (Ethernet) card of this type, say Y and read
-diff -ruN linux-2.6.17-vanilla/drivers/net/ne.c linux-2.6.17/drivers/net/ne.c
---- linux-2.6.17-vanilla/drivers/net/ne.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/net/ne.c 2006-07-12 16:54:24.000000000 +0000
-@@ -142,6 +142,10 @@
- #elif defined(CONFIG_PLAT_OAKS32R) || \
- defined(CONFIG_TOSHIBA_RBTX4927) || defined(CONFIG_TOSHIBA_RBTX4938)
- # define DCR_VAL 0x48 /* 8-bit mode */
-+#elif defined(CONFIG_SH_RTS7751R2D) || defined(CONFIG_SH_R77703DRP) || \
-+ defined(CONFIG_SH_R7780RP)
-+# include "88796l.c"
-+# define DCR_VAL 0x01
- #else
- # define DCR_VAL 0x49
- #endif
-@@ -191,6 +195,11 @@
-
- SET_MODULE_OWNER(dev);
-
-+#if defined(CONFIG_SH_RTS7751R2D) || defined(CONFIG_SH_R77703DRP) || defined(CONFIG_SH_R7780RP)
-+ base_addr = AX88796L_IO_BASE;
-+ dev->irq = IRQ_ONETH;
-+#endif
-+
- /* First check any supplied i/o locations. User knows best. <cough> */
- if (base_addr > 0x1ff) /* Check a single specified location. */
- return ne_probe1(dev, base_addr);
-@@ -324,7 +333,11 @@
- if (ei_debug && version_printed++ == 0)
- printk(KERN_INFO "%s" KERN_INFO "%s", version1, version2);
-
-+#if defined(CONFIG_SH_RTS7751R2D) || defined(CONFIG_SH_R77703DRP) || defined(CONFIG_SH_R7780RP)
-+ printk(KERN_INFO "ASIX AX88796L ethercard probe at %#3x:", ioaddr);
-+#else
- printk(KERN_INFO "NE*000 ethercard probe at %#3x:", ioaddr);
-+#endif
-
- /* A user with a poor card that fails to ack the reset, or that
- does not have a valid 0x57,0x57 signature can still use this
-@@ -365,12 +378,20 @@
- struct {unsigned char value, offset; } program_seq[] =
- {
- {E8390_NODMA+E8390_PAGE0+E8390_STOP, E8390_CMD}, /* Select page 0*/
-+#if defined(CONFIG_SH_RTS7751R2D) || defined(CONFIG_SH_R77703DRP) || defined(CONFIG_SH_R7780RP)
-+ {0x00, EN0_DCFG}, /* Set byte-wide (0x00) access. */
-+#else
- {0x48, EN0_DCFG}, /* Set byte-wide (0x48) access. */
-+#endif
- {0x00, EN0_RCNTLO}, /* Clear the count regs. */
- {0x00, EN0_RCNTHI},
- {0x00, EN0_IMR}, /* Mask completion irq. */
- {0xFF, EN0_ISR},
-+#if defined(CONFIG_SH_RTS7751R2D) || defined(CONFIG_SH_R77703DRP) || defined(CONFIG_SH_R7780RP)
-+ {E8390_RXOFF|0x40, EN0_RXCR}, /* 0x60 Set to monitor */
-+#else
- {E8390_RXOFF, EN0_RXCR}, /* 0x20 Set to monitor */
-+#endif
- {E8390_TXOFF, EN0_TXCR}, /* 0x02 and loopback mode. */
- {32, EN0_RCNTLO},
- {0x00, EN0_RCNTHI},
-@@ -395,6 +416,9 @@
- for (i = 0; i < 16; i++)
- SA_prom[i] = SA_prom[i+i];
- /* We must set the 8390 for word mode. */
-+#if defined(CONFIG_SH_RTS7751R2D) || defined(CONFIG_SH_R77703DRP) || defined(CONFIG_SH_R7780RP)
-+ asix88796_eeprom_read(ioaddr, SA_prom);
-+#endif
- outb_p(DCR_VAL, ioaddr + EN0_DCFG);
- start_page = NESM_START_PG;
-
-@@ -426,7 +450,11 @@
-
- /* Set up the rest of the parameters. */
- if (neX000 || bad_card || copam) {
-+#if defined(CONFIG_SH_RTS7751R2D) || defined(CONFIG_SH_R77703DRP) || defined(CONFIG_SH_R7780RP)
-+ name = (wordlength == 2) ? "AX88796L" : "NE1000";
-+#else
- name = (wordlength == 2) ? "NE2000" : "NE1000";
-+#endif
- }
- else if (ctron)
- {
-diff -ruN linux-2.6.17-vanilla/drivers/net/stnic.c linux-2.6.17/drivers/net/stnic.c
---- linux-2.6.17-vanilla/drivers/net/stnic.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/net/stnic.c 2006-07-12 16:54:24.000000000 +0000
-@@ -20,7 +20,7 @@
-
- #include <asm/system.h>
- #include <asm/io.h>
--#include <asm/se/se.h>
-+#include <asm/se.h>
- #include <asm/machvec.h>
- #ifdef CONFIG_SH_STANDARD_BIOS
- #include <asm/sh_bios.h>
-diff -ruN linux-2.6.17-vanilla/drivers/pcmcia/CVS/Entries linux-2.6.17/drivers/pcmcia/CVS/Entries
---- linux-2.6.17-vanilla/drivers/pcmcia/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/pcmcia/CVS/Entries 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1,5 @@
-+/hd64461_ss.c/1.16/Mon Mar 27 23:59:10 2006/-ko/
-+/yenta_socket.c/1.13/Mon Mar 27 21:06:14 2006/-ko/
-+/Kconfig/1.12/Wed Jul 5 14:51:21 2006/-ko/
-+/Makefile/1.11/Wed Jul 5 14:51:21 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/drivers/pcmcia/CVS/Repository linux-2.6.17/drivers/pcmcia/CVS/Repository
---- linux-2.6.17-vanilla/drivers/pcmcia/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/pcmcia/CVS/Repository 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1 @@
-+linux/drivers/pcmcia
-diff -ruN linux-2.6.17-vanilla/drivers/pcmcia/CVS/Root linux-2.6.17/drivers/pcmcia/CVS/Root
---- linux-2.6.17-vanilla/drivers/pcmcia/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/pcmcia/CVS/Root 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/drivers/pcmcia/Kconfig linux-2.6.17/drivers/pcmcia/Kconfig
---- linux-2.6.17-vanilla/drivers/pcmcia/Kconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/pcmcia/Kconfig 2006-07-12 16:54:24.000000000 +0000
-@@ -179,6 +179,19 @@
- "Bridge" is the name used for the hardware inside your computer that
- PCMCIA cards are plugged into. If unsure, say N.
-
-+config HD64461_PCMCIA
-+ tristate "HD64461 host bridge support"
-+ depends on HD64461 && PCMCIA
-+
-+config HD64461_PCMCIA_SOCKETS
-+ int ' HD64461 PCMCIA sockets'
-+ default 1
-+ depends on HD64461_PCMCIA
-+
-+config HD64465_PCMCIA
-+ tristate "HD64465 host bridge support"
-+ depends on HD64465 && PCMCIA
-+
- config PCMCIA_M8XX
- tristate "MPC8xx PCMCIA support"
- depends on PCMCIA && PPC && 8xx
-@@ -189,10 +202,6 @@
-
- This driver is also available as a module called m8xx_pcmcia.
-
--config HD64465_PCMCIA
-- tristate "HD64465 host bridge support"
-- depends on HD64465 && PCMCIA
--
- config PCMCIA_AU1X00
- tristate "Au1x00 pcmcia support"
- depends on SOC_AU1X00 && PCMCIA
-diff -ruN linux-2.6.17-vanilla/drivers/pcmcia/Makefile linux-2.6.17/drivers/pcmcia/Makefile
---- linux-2.6.17-vanilla/drivers/pcmcia/Makefile 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/pcmcia/Makefile 2006-07-12 16:54:24.000000000 +0000
-@@ -25,8 +25,9 @@
- obj-$(CONFIG_I82365) += i82365.o
- obj-$(CONFIG_I82092) += i82092.o
- obj-$(CONFIG_TCIC) += tcic.o
--obj-$(CONFIG_PCMCIA_M8XX) += m8xx_pcmcia.o
-+obj-$(CONFIG_HD64461_PCMCIA) += hd64461_ss.o
- obj-$(CONFIG_HD64465_PCMCIA) += hd64465_ss.o
-+obj-$(CONFIG_PCMCIA_M8XX) += m8xx_pcmcia.o
- obj-$(CONFIG_PCMCIA_SA1100) += sa11xx_core.o sa1100_cs.o
- obj-$(CONFIG_PCMCIA_SA1111) += sa11xx_core.o sa1111_cs.o
- obj-$(CONFIG_PCMCIA_PXA2XX) += pxa2xx_core.o pxa2xx_cs.o
-diff -ruN linux-2.6.17-vanilla/drivers/pcmcia/hd64461_ss.c linux-2.6.17/drivers/pcmcia/hd64461_ss.c
---- linux-2.6.17-vanilla/drivers/pcmcia/hd64461_ss.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/pcmcia/hd64461_ss.c 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1,679 @@
-+/*
-+ * drivers/pcmcia/hd64461_ss.c
-+ *
-+ * PCMCIA support for Hitachi HD64461 companion chip
-+ * by Andriy Skulysh <askulysh@image.kiev.ua> 2002, 2003, 2004
-+ *
-+ * based on hd64461_ss.c by Greg Banks <gbanks@pocketpenguins.com>
-+ *
-+ */
-+#include <linux/config.h>
-+#include <linux/types.h>
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/string.h>
-+#include <linux/kernel.h>
-+#include <linux/ioport.h>
-+#include <linux/mm.h>
-+#include <linux/vmalloc.h>
-+#include <linux/irq.h>
-+#include <linux/interrupt.h>
-+#include <linux/platform_device.h>
-+#include <pcmcia/cs_types.h>
-+#include <pcmcia/cs.h>
-+#include <pcmcia/ss.h>
-+#include <pcmcia/bulkmem.h>
-+#include <pcmcia/cistpl.h>
-+#include "cs_internal.h"
-+#include <asm/io.h>
-+#include <asm/hd64461.h>
-+#include <asm/hp6xx/hp6xx.h>
-+
-+#define MODNAME "HD64461_ss"
-+
-+#ifdef DEBUG
-+static int hd64461_pc_debug = 2;
-+
-+module_param_named(pc_debug, hd64461_pc_debug, int, 0644);
-+
-+#define DPRINTK(n, args...) \
-+do { \
-+ if (hd64461_pc_debug >= (n)) \
-+ printk(args); \
-+} while (0)
-+#else
-+#define DPRINTK(n, args...) do { } while (0)
-+#endif
-+
-+#define HD64461_PCC(s,reg) \
-+ ( CONFIG_HD64461_IOBASE-HD64461_STBCR+ ( (s) ? HD64461_PCC1##reg : \
-+ HD64461_PCC0##reg ) )
-+
-+typedef struct hd64461_socket_t {
-+ unsigned int irq;
-+ unsigned long mem_base;
-+ socket_state_t state;
-+ pccard_mem_map mem_maps[MAX_WIN];
-+ unsigned char IC_memory;
-+ struct pcmcia_socket socket;
-+ u8 cscier;
-+} hd64461_socket_t;
-+
-+static hd64461_socket_t hd64461_sockets[CONFIG_HD64461_PCMCIA_SOCKETS];
-+
-+#define hd64461_sockno(sp) (sp - hd64461_sockets)
-+
-+static void hd64461_enable_int(unsigned int irq)
-+{
-+ u8 cscier;
-+ u32 cscier_reg = HD64461_PCC(0, CSCIER);
-+
-+ cscier = ctrl_inb(cscier_reg);
-+ cscier &= ~HD64461_PCCCSCIER_IREQE_MASK;
-+ cscier |= HD64461_PCCCSCIER_IREQE_LEVEL;
-+ ctrl_outb(cscier, cscier_reg);
-+}
-+
-+static void hd64461_disable_int(unsigned int irq)
-+{
-+ u8 cscier;
-+ u32 cscier_reg = HD64461_PCC(0, CSCIER);
-+
-+ cscier = ctrl_inb(cscier_reg);
-+ cscier &= ~HD64461_PCCCSCIER_IREQE_MASK;
-+ ctrl_outb(cscier, cscier_reg);
-+}
-+
-+static void hd64461_enable_irq(unsigned int irq)
-+{
-+ DPRINTK(3, "hd64461_enable_irq(irq=%d)\n", irq);
-+ hd64461_enable_int(irq);
-+}
-+
-+static void hd64461_disable_irq(unsigned int irq)
-+{
-+ DPRINTK(3, "hd64461_disable_irq(irq=%d)\n", irq);
-+ hd64461_disable_int(irq);
-+}
-+
-+static unsigned int hd64461_startup_irq(unsigned int irq)
-+{
-+ DPRINTK(3, "hd64461_startup_irq(irq=%d)\n", irq);
-+ hd64461_enable_irq(irq);
-+ return 0;
-+}
-+
-+static void hd64461_shutdown_irq(unsigned int irq)
-+{
-+ DPRINTK(3, "hd64461_shutdown_irq(irq=%d)\n", irq);
-+ hd64461_disable_irq(irq);
-+}
-+
-+static void hd64461_mask_and_ack_irq(unsigned int irq)
-+{
-+ DPRINTK(3, "hd64461_mask_and_ack_irq(irq=%d)\n", irq);
-+ hd64461_disable_irq(irq);
-+}
-+
-+static void hd64461_end_irq(unsigned int irq)
-+{
-+ DPRINTK(3, "hd64461_end_irq(irq=%d)\n", irq);
-+ hd64461_enable_irq(irq);
-+}
-+
-+static struct hw_interrupt_type hd64461_ss_irq_type = {
-+ .typename = "HD64461_SS-IRQ",
-+ .startup = hd64461_startup_irq,
-+ .shutdown = hd64461_shutdown_irq,
-+ .enable = hd64461_enable_irq,
-+ .disable = hd64461_disable_irq,
-+ .ack = hd64461_mask_and_ack_irq,
-+ .end = hd64461_end_irq
-+};
-+
-+static int hd64461_set_voltage(int sock, int Vcc, int Vpp)
-+{
-+ u8 gcr, scr;
-+ u16 stbcr;
-+ u32 gcr_reg = HD64461_PCC(sock, GCR);
-+ u32 scr_reg = HD64461_PCC(sock, SCR);
-+ DPRINTK(2, "hd64461_set_voltage(%d, %d, %d)\n", sock, Vcc, Vpp);
-+
-+ gcr = ctrl_inb(gcr_reg);
-+ scr = ctrl_inb(scr_reg);
-+
-+ switch (Vcc) {
-+ case 0:
-+ gcr |= HD64461_PCCGCR_VCC0;
-+ scr |= HD64461_PCCSCR_VCC1;
-+ break;
-+ case 33:
-+ if (sock == 1) {
-+ gcr &= ~HD64461_PCCGCR_VCC0;
-+ scr &= ~HD64461_PCCSCR_VCC1;
-+ } else {
-+ gcr |= HD64461_PCCGCR_VCC0;
-+ scr &= ~HD64461_PCCSCR_VCC1;
-+ }
-+ break;
-+ case 50:
-+ gcr &= ~HD64461_PCCGCR_VCC0;
-+ scr &= ~HD64461_PCCSCR_VCC1;
-+ break;
-+ }
-+
-+ ctrl_outb(gcr, gcr_reg);
-+ ctrl_outb(scr, scr_reg);
-+
-+ stbcr = inw(HD64461_STBCR);
-+
-+ if (Vcc > 0) {
-+ stbcr &= ~(sock == 0 ? HD64461_STBCR_SPC0ST :
-+ HD64461_STBCR_SPC1ST);
-+ } else {
-+ stbcr |= (sock == 0 ? HD64461_STBCR_SPC0ST :
-+ HD64461_STBCR_SPC1ST);
-+ }
-+
-+ outw(stbcr, HD64461_STBCR);
-+
-+ return 1;
-+}
-+
-+static int hd64461_init(struct pcmcia_socket *s)
-+{
-+ u16 gpadr;
-+ hd64461_socket_t *sp = container_of(s, struct hd64461_socket_t, socket);
-+
-+ DPRINTK(0, "hd64461_init(%d)\n", s->sock);
-+
-+ sp->state.Vcc = 0;
-+ sp->state.Vpp = 0;
-+ hd64461_set_voltage(s->sock, 0, 0);
-+
-+ if (mach_is_hp6xx() && s->sock == 0) {
-+ gpadr = inw(HD64461_GPADR);
-+ gpadr &= ~HD64461_GPADR_PCMCIA0;
-+ outw(gpadr, HD64461_GPADR);
-+ }
-+
-+ return 0;
-+}
-+
-+static int hd64461_suspend(struct pcmcia_socket *s)
-+{
-+ u16 gpadr;
-+ u8 gcr;
-+ u32 gcr_reg = HD64461_PCC(s->sock, GCR);
-+
-+ DPRINTK(0, "hd64461_suspend(%d)\n", s->sock);
-+
-+ gcr = ctrl_inb(gcr_reg);
-+ gcr &= ~HD64461_PCCGCR_DRVE;
-+ ctrl_outb(gcr, gcr_reg);
-+ hd64461_set_voltage(s->sock, 0, 0);
-+
-+ if ((mach_is_hp6xx())&&(s->sock == 0)) {
-+ gpadr = inw(HD64461_GPADR);
-+ gpadr |= HD64461_GPADR_PCMCIA0;
-+ outw(gpadr, HD64461_GPADR);
-+ }
-+
-+ return 0;
-+}
-+
-+static int hd64461_get_status(struct pcmcia_socket *s, u32 * value)
-+{
-+ u8 isr;
-+ u32 status = 0;
-+ hd64461_socket_t *sp = container_of(s, struct hd64461_socket_t, socket);
-+
-+ isr = ctrl_inb(HD64461_PCC(s->sock, ISR));
-+
-+ if ((isr & HD64461_PCCISR_PCD_MASK) == 0) {
-+ status |= SS_DETECT;
-+
-+ if (sp->IC_memory) {
-+ switch (isr & HD64461_PCCISR_BVD_MASK) {
-+ case HD64461_PCCISR_BVD_BATGOOD:
-+ break;
-+ case HD64461_PCCISR_BVD_BATWARN:
-+ status |= SS_BATWARN;
-+ break;
-+ default:
-+ status |= SS_BATDEAD;
-+ break;
-+ }
-+
-+ if (isr & HD64461_PCCISR_READY)
-+ status |= SS_READY;
-+ if (isr & HD64461_PCCISR_MWP)
-+ status |= SS_WRPROT;
-+ } else {
-+ if (isr & HD64461_PCCISR_BVD1)
-+ status |= SS_STSCHG;
-+ }
-+
-+ switch (isr & (HD64461_PCCISR_VS2 | HD64461_PCCISR_VS1)) {
-+ case HD64461_PCCISR_VS1:
-+ printk(KERN_NOTICE MODNAME
-+ ": cannot handle X.XV card, ignored\n");
-+ status = 0;
-+ break;
-+ case 0:
-+ case HD64461_PCCISR_VS2:
-+ status |= SS_3VCARD;
-+ break;
-+ case HD64461_PCCISR_VS2 | HD64461_PCCISR_VS1:
-+ break;
-+ }
-+
-+ if ((sp->state.Vcc != 0) || (sp->state.Vpp != 0))
-+ status |= SS_POWERON;
-+ }
-+ DPRINTK(0, "hd64461_get_status(%d) = %x\n", s->sock, status);
-+
-+ *value = status;
-+ return 0;
-+}
-+
-+static int hd64461_set_socket(struct pcmcia_socket *s, socket_state_t * state)
-+{
-+ u32 flags;
-+ u32 changed;
-+ u8 gcr, cscier;
-+ hd64461_socket_t *sp = container_of(s, struct hd64461_socket_t, socket);
-+ u32 gcr_reg = HD64461_PCC(s->sock, GCR);
-+ u32 cscier_reg = HD64461_PCC(s->sock, CSCIER);
-+
-+ DPRINTK(0, "%s(sock=%d, flags=%x, csc_mask=%x, Vcc=%d, Vpp=%d, io_irq=%d)\n",
-+ __FUNCTION__, s->sock, state->flags, state->csc_mask, state->Vcc,
-+ state->Vpp, state->io_irq);
-+
-+ local_irq_save(flags);
-+
-+ if (state->Vpp != sp->state.Vpp || state->Vcc != sp->state.Vcc) {
-+ if (!hd64461_set_voltage(s->sock, state->Vcc, state->Vpp)) {
-+ local_irq_restore(flags);
-+ return -EINVAL;
-+ }
-+ }
-+
-+ changed = sp->state.csc_mask ^ state->csc_mask;
-+ cscier = ctrl_inb(cscier_reg);
-+
-+ if (changed & SS_DETECT) {
-+ if (state->csc_mask & SS_DETECT)
-+ cscier |= HD64461_PCCCSCIER_CDE;
-+ else
-+ cscier &= ~HD64461_PCCCSCIER_CDE;
-+ }
-+
-+ if (changed & SS_READY) {
-+ if (state->csc_mask & SS_READY)
-+ cscier |= HD64461_PCCCSCIER_RE;
-+ else
-+ cscier &= ~HD64461_PCCCSCIER_RE;
-+ }
-+
-+ if (changed & SS_BATDEAD) {
-+ if (state->csc_mask & SS_BATDEAD)
-+ cscier |= HD64461_PCCCSCIER_BDE;
-+ else
-+ cscier &= ~HD64461_PCCCSCIER_BDE;
-+ }
-+
-+ if (changed & SS_BATWARN) {
-+ if (state->csc_mask & SS_BATWARN)
-+ cscier |= HD64461_PCCCSCIER_BWE;
-+ else
-+ cscier &= ~HD64461_PCCCSCIER_BWE;
-+ }
-+
-+ if (changed & SS_STSCHG) {
-+ if (state->csc_mask & SS_STSCHG)
-+ cscier |= HD64461_PCCCSCIER_SCE;
-+ else
-+ cscier &= ~HD64461_PCCCSCIER_SCE;
-+ }
-+
-+ ctrl_outb(cscier, cscier_reg);
-+
-+ changed = sp->state.flags ^ state->flags;
-+
-+ gcr = ctrl_inb(gcr_reg);
-+
-+ if (changed & SS_IOCARD) {
-+ DPRINTK(0, "card type: %s\n",
-+ (state->flags & SS_IOCARD ? "i/o" : "memory"));
-+ if (state->flags & SS_IOCARD) {
-+ if (s->sock == 1) {
-+ printk(KERN_ERR
-+ "socket 1 can be only IC Memory card\n");
-+ } else {
-+ gcr |= HD64461_PCCGCR_PCCT;
-+ sp->IC_memory = 0;
-+ }
-+ } else {
-+ gcr &= ~HD64461_PCCGCR_PCCT;
-+ sp->IC_memory = 1;
-+ }
-+ }
-+
-+ if (changed & SS_RESET) {
-+ DPRINTK(0, "%s reset card\n",
-+ (state->flags & SS_RESET ? "start" : "stop"));
-+ if (state->flags & SS_RESET)
-+ gcr |= HD64461_PCCGCR_PCCR;
-+ else
-+ gcr &= ~HD64461_PCCGCR_PCCR;
-+ }
-+
-+ if (changed & SS_OUTPUT_ENA) {
-+ DPRINTK(0, "%sabling card output\n",
-+ (state->flags & SS_OUTPUT_ENA ? "en" : "dis"));
-+ if (state->flags & SS_OUTPUT_ENA)
-+ gcr |= HD64461_PCCGCR_DRVE;
-+ else
-+ gcr &= ~HD64461_PCCGCR_DRVE;
-+ }
-+
-+ DPRINTK(2, "cscier=%02x ", cscier);
-+ DPRINTK(2, "gcr=%02x\n", gcr);
-+ ctrl_outb(gcr, gcr_reg);
-+
-+ sp->state = *state;
-+
-+ local_irq_restore(flags);
-+
-+ return 0;
-+}
-+
-+static int hd64461_set_io_map(struct pcmcia_socket *s, struct pccard_io_map *io)
-+{
-+ /* this is not needed due to static mappings */
-+ DPRINTK(0, "hd64461_set_io_map(%d)\n", s->sock);
-+
-+ return 0;
-+}
-+
-+static int hd64461_set_mem_map(struct pcmcia_socket *s,
-+ struct pccard_mem_map *mem)
-+{
-+ hd64461_socket_t *sp = container_of(s, struct hd64461_socket_t, socket);
-+ struct pccard_mem_map *smem;
-+ int map = mem->map;
-+ unsigned long saddr;
-+
-+ DPRINTK(0, "%s(sock=%d, map=%d, flags=0x%x,static_start=0x%08lx, card_start=0x%08x)\n",
-+ __FUNCTION__, s->sock, map, mem->flags, mem->static_start, mem->card_start);
-+
-+ if (map >= MAX_WIN)
-+ return -EINVAL;
-+
-+ smem = &sp->mem_maps[map];
-+ saddr = sp->mem_base + mem->card_start;
-+
-+ if (!(mem->flags & MAP_ATTRIB))
-+ saddr += HD64461_PCC_WINDOW;
-+
-+ mem->static_start = saddr;
-+ *smem = *mem;
-+
-+ return 0;
-+}
-+
-+static int hd64461_pcmcia_irq_demux(int irq, void *dev)
-+{
-+ hd64461_socket_t *sp = (hd64461_socket_t *) dev;
-+ unsigned char cscr;
-+ unsigned cscr_reg = HD64461_PCC(0, CSCR);
-+
-+ DPRINTK(3, "hd64461_pcmcia_irq_demux(irq= %d - ", irq);
-+
-+ cscr = ctrl_inb(cscr_reg);
-+ if (cscr & HD64461_PCCCSCR_IREQ) {
-+ cscr &= ~HD64461_PCCCSCR_IREQ;
-+ ctrl_outb(cscr, cscr_reg);
-+ irq = sp->socket.pci_irq;
-+ }
-+
-+ DPRINTK(3, "%d)\n", irq);
-+
-+ return irq;
-+}
-+
-+static irqreturn_t hd64461_interrupt(int irq, void *dev, struct pt_regs *regs)
-+{
-+ hd64461_socket_t *sp = (hd64461_socket_t *) dev;
-+ unsigned events = 0;
-+ unsigned char cscr;
-+ unsigned cscr_reg = HD64461_PCC(hd64461_sockno(sp), CSCR);
-+
-+ cscr = ctrl_inb(cscr_reg);
-+
-+ DPRINTK(3, "hd64461_interrupt: cscr=%04x irq=%d\n", cscr, irq);
-+
-+ if (cscr & HD64461_PCCCSCR_CDC) {
-+ cscr &= ~HD64461_PCCCSCR_CDC;
-+ events |= SS_DETECT;
-+
-+ if ((ctrl_inb(HD64461_PCC(hd64461_sockno(sp), ISR)) &
-+ HD64461_PCCISR_PCD_MASK) != 0) {
-+ cscr &= ~(HD64461_PCCCSCR_RC | HD64461_PCCCSCR_BW |
-+ HD64461_PCCCSCR_BD | HD64461_PCCCSCR_SC);
-+ }
-+ }
-+
-+ if (sp->IC_memory) {
-+ if (cscr & HD64461_PCCCSCR_RC) {
-+ cscr &= ~HD64461_PCCCSCR_RC;
-+ events |= SS_READY;
-+ }
-+
-+ if (cscr & HD64461_PCCCSCR_BW) {
-+ cscr &= ~HD64461_PCCCSCR_BW;
-+ events |= SS_BATWARN;
-+ }
-+
-+ if (cscr & HD64461_PCCCSCR_BD) {
-+ cscr &= ~HD64461_PCCCSCR_BD;
-+ events |= SS_BATDEAD;
-+ }
-+ } else {
-+ if (cscr & HD64461_PCCCSCR_SC) {
-+ cscr &= ~HD64461_PCCCSCR_SC;
-+ events |= SS_STSCHG;
-+ }
-+ }
-+
-+ ctrl_outb(cscr, cscr_reg);
-+
-+ if (events)
-+ pcmcia_parse_events(&sp->socket, events);
-+
-+ return IRQ_HANDLED;
-+}
-+
-+static struct pccard_operations hd64461_operations = {
-+ .init = hd64461_init,
-+ .suspend = hd64461_suspend,
-+ .get_status = hd64461_get_status,
-+ .set_socket = hd64461_set_socket,
-+ .set_io_map = hd64461_set_io_map,
-+ .set_mem_map = hd64461_set_mem_map,
-+};
-+
-+int hd64461_init_socket(int sock, int irq, int io_irq, unsigned long mem_base,
-+ unsigned short io_offset)
-+{
-+ hd64461_socket_t *sp = &hd64461_sockets[sock];
-+ unsigned gcr_reg = HD64461_PCC(sock, GCR);
-+ int irq_flags = (sock == 0) ? SA_INTERRUPT : SA_SHIRQ;
-+ u8 gcr;
-+ int i, err;
-+
-+ ctrl_outb(0, HD64461_PCC(sock, CSCIER));
-+
-+ memset(sp, 0, sizeof(*sp));
-+ sp->IC_memory = 1;
-+ sp->irq = irq;
-+ sp->mem_base = mem_base;
-+ sp->socket.features =
-+ SS_CAP_PCCARD | SS_CAP_STATIC_MAP | SS_CAP_PAGE_REGS;
-+ sp->socket.resource_ops = &pccard_static_ops;
-+ sp->socket.map_size = HD64461_PCC_WINDOW; /* 16MB fixed window size */
-+ sp->socket.pci_irq = io_irq;
-+ sp->socket.io_offset = io_offset;
-+ sp->socket.owner = THIS_MODULE;
-+ sp->socket.ops = &hd64461_operations;
-+
-+ for (i = 0; i != MAX_WIN; i++)
-+ sp->mem_maps[i].map = i;
-+
-+ if ((err =
-+ request_irq(irq, hd64461_interrupt, irq_flags, MODNAME, sp)) < 0) {
-+ printk(KERN_ERR
-+ "HD64461 PCMCIA socket %d: can't request irq %d\n", sock,
-+ sp->irq);
-+ return err;
-+ }
-+
-+ if (sock == 0) {
-+ irq_desc[io_irq].handler = &hd64461_ss_irq_type;
-+ hd64461_register_irq_demux(sp->irq, hd64461_pcmcia_irq_demux,
-+ sp);
-+ }
-+
-+ gcr = ctrl_inb(gcr_reg);
-+ gcr |= HD64461_PCCGCR_PMMOD; /* 16MB mapping mode */
-+ gcr &= ~(HD64461_PCCGCR_PA25 | HD64461_PCCGCR_PA24); /* lowest 16MB of Common */
-+ ctrl_outb(gcr, gcr_reg);
-+
-+ return 0;
-+}
-+
-+void hd64461_exit_socket(int sock)
-+{
-+ hd64461_socket_t *sp = &hd64461_sockets[sock];
-+ unsigned cscier_reg = HD64461_PCC(sock, CSCIER);
-+
-+ ctrl_outb(0, cscier_reg);
-+ hd64461_suspend(&sp->socket);
-+
-+ if (sp->irq) {
-+ if (sock == 0)
-+ hd64461_unregister_irq_demux(sp->irq);
-+ free_irq(sp->irq, sp);
-+ if (sock == 0)
-+ irq_desc[sp->socket.pci_irq].handler = &no_irq_type;
-+ }
-+}
-+
-+static int __devexit hd64461_pcmcia_drv_remove(struct platform_device *dev)
-+{
-+ int i;
-+
-+ for (i = 0; i != CONFIG_HD64461_PCMCIA_SOCKETS; i++) {
-+ pcmcia_unregister_socket(&hd64461_sockets[i].socket);
-+ hd64461_exit_socket(i);
-+ }
-+
-+ return 0;
-+}
-+
-+#ifdef CONFIG_PM
-+static int hd64461_pcmcia_drv_suspend(struct platform_device *dev, pm_message_t state)
-+{
-+ int ret = 0;
-+ int i;
-+
-+ for (i = 0; i != CONFIG_HD64461_PCMCIA_SOCKETS; i++) {
-+ u32 cscier_reg = HD64461_PCC(i, CSCIER);
-+ hd64461_sockets[i].cscier = ctrl_inb(cscier_reg);
-+ ctrl_outb(0, cscier_reg);
-+ ret = pcmcia_socket_dev_suspend(&dev->dev, state);
-+ }
-+ return ret;
-+ }
-+
-+static int hd64461_pcmcia_drv_resume(struct platform_device *dev)
-+{
-+ int ret = 0;
-+ int i;
-+
-+ for (i = 0; i != CONFIG_HD64461_PCMCIA_SOCKETS; i++) {
-+ u32 cscier_reg = HD64461_PCC(i, CSCIER);
-+ ctrl_outb(hd64461_sockets[i].cscier, cscier_reg);
-+ ret = pcmcia_socket_dev_resume(&dev->dev);
-+ }
-+
-+ return ret;
-+}
-+#endif
-+
-+static struct platform_driver hd64461_pcmcia_driver = {
-+ .remove = __devexit_p(hd64461_pcmcia_drv_remove),
-+#ifdef CONFIG_PM
-+ .suspend = hd64461_pcmcia_drv_suspend,
-+ .resume = hd64461_pcmcia_drv_resume,
-+#endif
-+ .driver = {
-+ .name = "hd64461-pcmcia",
-+ },
-+};
-+
-+static struct platform_device *hd64461_pcmcia_device;
-+
-+static int __init init_hd64461_ss(void)
-+{
-+ int i;
-+
-+ printk(KERN_INFO "HD64461 PCMCIA bridge.\n");
-+ if (platform_driver_register(&hd64461_pcmcia_driver))
-+ return -EINVAL;
-+
-+ i = hd64461_init_socket(0, HD64461_IRQ_PCC0, HD64461_IRQ_PCC0 + 1,
-+ HD64461_PCC0_BASE, 0xf000);
-+ if (i < 0) {
-+ platform_driver_unregister(&hd64461_pcmcia_driver);
-+ return i;
-+ }
-+#if CONFIG_HD64461_PCMCIA_SOCKETS==2
-+ i = hd64461_init_socket(1, HD64461_IRQ_PCC1, HD64461_IRQ_PCC1,
-+ HD64461_PCC1_BASE, 0);
-+ if (i < 0) {
-+ platform_driver_unregister(&hd64461_pcmcia_driver);
-+ return i;
-+ }
-+#endif
-+
-+ hd64461_pcmcia_device = platform_device_register_simple("hd64461-pcmcia", -1, NULL, 0);
-+ if (IS_ERR(hd64461_pcmcia_device)) {
-+ platform_driver_unregister(&hd64461_pcmcia_driver);
-+ return PTR_ERR(hd64461_pcmcia_device);
-+ }
-+
-+ for (i = 0; i != CONFIG_HD64461_PCMCIA_SOCKETS; i++) {
-+ unsigned int ret;
-+ hd64461_sockets[i].socket.dev.dev = &hd64461_pcmcia_device->dev;
-+ ret = pcmcia_register_socket(&hd64461_sockets[i].socket);
-+ if (ret && i)
-+ pcmcia_unregister_socket(&hd64461_sockets[0].socket);
-+ }
-+
-+ return 0;
-+}
-+
-+static void __exit exit_hd64461_ss(void)
-+{
-+ platform_device_unregister(hd64461_pcmcia_device);
-+ platform_driver_unregister(&hd64461_pcmcia_driver);
-+}
-+
-+module_init(init_hd64461_ss);
-+module_exit(exit_hd64461_ss);
-+
-+MODULE_AUTHOR("Andriy Skulysh <askulysh@gmail.com>");
-+MODULE_DESCRIPTION("PCMCIA driver for Hitachi HD64461 companion chip");
-+MODULE_LICENSE("GPL");
-diff -ruN linux-2.6.17-vanilla/drivers/pcmcia/yenta_socket.c linux-2.6.17/drivers/pcmcia/yenta_socket.c
---- linux-2.6.17-vanilla/drivers/pcmcia/yenta_socket.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/pcmcia/yenta_socket.c 2006-07-12 16:54:24.000000000 +0000
-@@ -49,6 +49,15 @@
- #define to_cycles(ns) ((ns)/120)
- #define to_ns(cycles) ((cycles)*120)
-
-+#if defined(CONFIG_SH_HS7751RVOIP) || defined(CONFIG_SH_RTS7751R2D) || defined(CONFIG_SH_R7780RP)
-+#define PCI_CB_SYSTEM_CONTROL 0x80 /* System Control Register */
-+#define PCI_CB_MULTIFUNCTION 0x8c /* Multifunction Routing Register */
-+#define PCI_CB_RETRY_STATUS 0x90 /* Retry Status Register */
-+#define PCI_CB_CARD_CONTROL 0x91 /* Card Control Register */
-+#define PCI_CB_DEVICE_CONTROL 0x92 /* Device Control Register */
-+#define PCI_CB_DIAGNOSTIC 0x93 /* Diagnostic Register */
-+#endif
-+
- /**
- * yenta PCI irq probing.
- * currently only used in the TI/EnE initialization code
-@@ -511,7 +520,12 @@
- {
- struct yenta_socket *socket = container_of(sock, struct yenta_socket, socket);
-
-+#if defined(CONFIG_SH_HS7751RVOIP) || defined(CONFIG_SH_RTS7751R2D) || defined(CONFIG_SH_R7780RP)
-+ exca_writeb(socket, I365_GBLCTL, I365_GBL_CSC_LEV | I365_GBL_IRQ_0_LEV);
-+ exca_writeb(socket, I365_INTCTL, I365_INTR_ENA);
-+#else
- exca_writeb(socket, I365_GBLCTL, 0x00);
-+#endif
- exca_writeb(socket, I365_GENCTL, 0x00);
-
- /* Redo card voltage interrogation */
-@@ -996,6 +1010,38 @@
- bridge &= ~(CB_BRIDGE_CRST | CB_BRIDGE_PREFETCH1 | CB_BRIDGE_ISAEN | CB_BRIDGE_VGAEN);
- bridge |= CB_BRIDGE_PREFETCH0 | CB_BRIDGE_POSTEN;
- config_writew(socket, CB_BRIDGE_CONTROL, bridge);
-+#if defined(CONFIG_SH_HS7751RVOIP) || defined(CONFIG_SH_RTS7751R2D) || defined(CONFIG_SH_R7780RP)
-+ /* System Contro Register
-+ * SER_STEP=00, INTRTIE=1, RSVD=0, P2CCLK=1,
-+ * SMIROUTE=0, SMISTATUS=0, SMIENB=0, RSVD=0,
-+ * CBRSVD=0, VCCPROT=0, REDUCEZV=0, RSVD=0100,
-+ * MRBURSTD=1, MRBURSTU=1, SOCACTIV=0, RSVD=1,
-+ * PWRSTREAM=0, DELAYUP=0, DELAYCOWN=0, INTERROGATE=0,
-+ * RSVD=0, PWRSAVINGS=1, SUBSYSRW=1, CB_DPAR=0,
-+ * RSVD=0, EXCAPOWER=0, KEEPCLK=0, RIMUX=0
-+ */
-+ config_writel(socket, PCI_CB_SYSTEM_CONTROL, 0x28449060);
-+ /* Retry Status Register
-+ * PCIRETRY=0, CBRETRY=0, TEXP_CBB=0, RSVD=0,
-+ * TEXP_CBA=0, RSVD=0, TEXP_PCI=0, RSVD=0
-+ */
-+ config_writeb(socket, PCI_CB_RETRY_STATUS, 0x00);
-+ /* Device Control Register
-+ * SKTPWR_LOCK=0, 3VCAPABLE=1, IO16V2=1, RSVD=0,
-+ * TEST=0, INTMODE=01, RSVD=0
-+ */
-+ config_writeb(socket, PCI_CB_DEVICE_CONTROL, 0x62);
-+ /* Siagnostic Register
-+ * TRUE_VAL=0, RSVD=1, CSC=0, DIAG4=0,
-+ * DIAG3=0, DIAG2=0, DIAG1=0, STDZVEN=0
-+ */
-+ config_writeb(socket, PCI_CB_DIAGNOSTIC, 0x40);
-+ /* Multifucntion Routing Register
-+ * RSVD=0000, MFUNC6=0000, MFUNC5=0000, MFUNC4=0000,
-+ * MFUNC3=0001, MFUNC2=0000, MFUNC1=0000, MFUNC0=0010
-+ */
-+ config_writel(socket, PCI_CB_MULTIFUNCTION, 0x00001002);
-+#endif
- }
-
- /*
-diff -ruN linux-2.6.17-vanilla/drivers/rtc/CVS/Entries linux-2.6.17/drivers/rtc/CVS/Entries
---- linux-2.6.17-vanilla/drivers/rtc/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/rtc/CVS/Entries 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1,4 @@
-+/Kconfig/1.1/Tue Jul 11 07:54:45 2006/-ko/
-+/Makefile/1.1/Tue Jul 11 07:54:45 2006/-ko/
-+/rtc-sh.c/1.1/Tue Jul 11 07:54:45 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/drivers/rtc/CVS/Repository linux-2.6.17/drivers/rtc/CVS/Repository
---- linux-2.6.17-vanilla/drivers/rtc/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/rtc/CVS/Repository 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1 @@
-+linux/drivers/rtc
-diff -ruN linux-2.6.17-vanilla/drivers/rtc/CVS/Root linux-2.6.17/drivers/rtc/CVS/Root
---- linux-2.6.17-vanilla/drivers/rtc/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/rtc/CVS/Root 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/drivers/rtc/Kconfig linux-2.6.17/drivers/rtc/Kconfig
---- linux-2.6.17-vanilla/drivers/rtc/Kconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/rtc/Kconfig 2006-07-12 16:54:25.000000000 +0000
-@@ -147,6 +147,16 @@
- To compile this driver as a module, choose M here: the
- module will be called rtc-sa1100.
-
-+config RTC_DRV_SH
-+ tristate "SuperH On-Chip RTC"
-+ depends on RTC_CLASS && SUPERH
-+ help
-+ Say Y here to enable support for the on-chip RTC found in
-+ most SuperH processors.
-+
-+ To compile this driver as a module, choose M here: the
-+ module will be called rtc-sh.
-+
- config RTC_DRV_VR41XX
- tristate "NEC VR41XX"
- depends on RTC_CLASS && CPU_VR41XX
-diff -ruN linux-2.6.17-vanilla/drivers/rtc/Makefile linux-2.6.17/drivers/rtc/Makefile
---- linux-2.6.17-vanilla/drivers/rtc/Makefile 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/rtc/Makefile 2006-07-12 16:54:25.000000000 +0000
-@@ -20,3 +20,4 @@
- obj-$(CONFIG_RTC_DRV_EP93XX) += rtc-ep93xx.o
- obj-$(CONFIG_RTC_DRV_SA1100) += rtc-sa1100.o
- obj-$(CONFIG_RTC_DRV_VR41XX) += rtc-vr41xx.o
-+obj-$(CONFIG_RTC_DRV_SH) += rtc-sh.o
-diff -ruN linux-2.6.17-vanilla/drivers/rtc/rtc-sh.c linux-2.6.17/drivers/rtc/rtc-sh.c
---- linux-2.6.17-vanilla/drivers/rtc/rtc-sh.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/rtc/rtc-sh.c 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1,467 @@
-+/*
-+ * SuperH On-Chip RTC Support
-+ *
-+ * Copyright (C) 2006 Paul Mundt
-+ *
-+ * Based on the old arch/sh/kernel/cpu/rtc.c by:
-+ *
-+ * Copyright (C) 2000 Philipp Rumpf <prumpf@tux.org>
-+ * Copyright (C) 1999 Tetsuya Okada & Niibe Yutaka
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ */
-+#include <linux/module.h>
-+#include <linux/kernel.h>
-+#include <linux/bcd.h>
-+#include <linux/rtc.h>
-+#include <linux/init.h>
-+#include <linux/platform_device.h>
-+#include <linux/seq_file.h>
-+#include <linux/interrupt.h>
-+#include <linux/spinlock.h>
-+#include <asm/io.h>
-+
-+#ifdef CONFIG_CPU_SH3
-+#define rtc_reg_size sizeof(u16)
-+#define RTC_BIT_INVERTED 0 /* No bug on SH7708, SH7709A */
-+#elif defined(CONFIG_CPU_SH4)
-+#define rtc_reg_size sizeof(u32)
-+#define RTC_BIT_INVERTED 0x40 /* bug on SH7750, SH7750S */
-+#endif
-+
-+#define RTC_REG(r) ((r) * rtc_reg_size)
-+
-+#define R64CNT RTC_REG(0)
-+#define RSECCNT RTC_REG(1)
-+#define RMINCNT RTC_REG(2)
-+#define RHRCNT RTC_REG(3)
-+#define RWKCNT RTC_REG(4)
-+#define RDAYCNT RTC_REG(5)
-+#define RMONCNT RTC_REG(6)
-+#define RYRCNT RTC_REG(7)
-+#define RSECAR RTC_REG(8)
-+#define RMINAR RTC_REG(9)
-+#define RHRAR RTC_REG(10)
-+#define RWKAR RTC_REG(11)
-+#define RDAYAR RTC_REG(12)
-+#define RMONAR RTC_REG(13)
-+#define RCR1 RTC_REG(14)
-+#define RCR2 RTC_REG(15)
-+
-+/* RCR1 Bits */
-+#define RCR1_CF 0x80 /* Carry Flag */
-+#define RCR1_CIE 0x10 /* Carry Interrupt Enable */
-+#define RCR1_AIE 0x08 /* Alarm Interrupt Enable */
-+#define RCR1_AF 0x01 /* Alarm Flag */
-+
-+/* RCR2 Bits */
-+#define RCR2_PEF 0x80 /* PEriodic interrupt Flag */
-+#define RCR2_PESMASK 0x70 /* Periodic interrupt Set */
-+#define RCR2_RTCEN 0x08 /* ENable RTC */
-+#define RCR2_ADJ 0x04 /* ADJustment (30-second) */
-+#define RCR2_RESET 0x02 /* Reset bit */
-+#define RCR2_START 0x01 /* Start bit */
-+
-+struct sh_rtc {
-+ void __iomem *regbase;
-+ unsigned long regsize;
-+ struct resource *res;
-+ unsigned int alarm_irq, periodic_irq, carry_irq;
-+ struct rtc_device *rtc_dev;
-+ spinlock_t lock;
-+};
-+
-+static irqreturn_t sh_rtc_interrupt(int irq, void *id, struct pt_regs *regs)
-+{
-+ struct platform_device *pdev = id;
-+ struct sh_rtc *rtc = platform_get_drvdata(pdev);
-+ unsigned int tmp, events = 0;
-+
-+ spin_lock(&rtc->lock);
-+
-+ tmp = readb(rtc->regbase + RCR1);
-+
-+ if (tmp & RCR1_AF)
-+ events |= RTC_AF | RTC_IRQF;
-+
-+ tmp &= ~(RCR1_CF | RCR1_AF);
-+
-+ writeb(tmp, rtc->regbase + RCR1);
-+
-+ rtc_update_irq(&rtc->rtc_dev->class_dev, 1, events);
-+
-+ spin_unlock(&rtc->lock);
-+
-+ return IRQ_HANDLED;
-+}
-+
-+static irqreturn_t sh_rtc_periodic(int irq, void *id, struct pt_regs *regs)
-+{
-+ struct sh_rtc *rtc = dev_get_drvdata(id);
-+
-+ spin_lock(&rtc->lock);
-+
-+ rtc_update_irq(&rtc->rtc_dev->class_dev, 1, RTC_PF | RTC_IRQF);
-+
-+ spin_unlock(&rtc->lock);
-+
-+ return IRQ_HANDLED;
-+}
-+
-+static inline void sh_rtc_setpie(struct device *dev, unsigned int enable)
-+{
-+ struct sh_rtc *rtc = dev_get_drvdata(dev);
-+ unsigned int tmp;
-+
-+ spin_lock_irq(&rtc->lock);
-+
-+ tmp = readb(rtc->regbase + RCR2);
-+
-+ if (enable) {
-+ tmp &= ~RCR2_PESMASK;
-+ tmp |= RCR2_PEF | (2 << 4);
-+ } else
-+ tmp &= ~(RCR2_PESMASK | RCR2_PEF);
-+
-+ writeb(tmp, rtc->regbase + RCR2);
-+
-+ spin_unlock_irq(&rtc->lock);
-+}
-+
-+static inline void sh_rtc_setaie(struct device *dev, unsigned int enable)
-+{
-+ struct sh_rtc *rtc = dev_get_drvdata(dev);
-+ unsigned int tmp;
-+
-+ spin_lock_irq(&rtc->lock);
-+
-+ tmp = readb(rtc->regbase + RCR1);
-+
-+ if (enable)
-+ tmp |= RCR1_AIE;
-+ else
-+ tmp &= ~RCR1_AIE;
-+
-+ writeb(tmp, rtc->regbase + RCR1);
-+
-+ spin_unlock_irq(&rtc->lock);
-+}
-+
-+static int sh_rtc_open(struct device *dev)
-+{
-+ struct sh_rtc *rtc = dev_get_drvdata(dev);
-+ unsigned int tmp;
-+ int ret;
-+
-+ tmp = readb(rtc->regbase + RCR1);
-+ tmp &= ~RCR1_CF;
-+ tmp |= RCR1_CIE;
-+ writeb(tmp, rtc->regbase + RCR1);
-+
-+ ret = request_irq(rtc->periodic_irq, sh_rtc_periodic, SA_INTERRUPT,
-+ "sh-rtc period", dev);
-+ if (unlikely(ret)) {
-+ dev_err(dev, "request period IRQ failed with %d, IRQ %d\n",
-+ ret, rtc->periodic_irq);
-+ return ret;
-+ }
-+
-+ ret = request_irq(rtc->carry_irq, sh_rtc_interrupt, SA_INTERRUPT,
-+ "sh-rtc carry", dev);
-+ if (unlikely(ret)) {
-+ dev_err(dev, "request carry IRQ failed with %d, IRQ %d\n",
-+ ret, rtc->carry_irq);
-+ free_irq(rtc->periodic_irq, dev);
-+ goto err_bad_carry;
-+ }
-+
-+ ret = request_irq(rtc->alarm_irq, sh_rtc_interrupt, SA_INTERRUPT,
-+ "sh-rtc alarm", dev);
-+ if (unlikely(ret)) {
-+ dev_err(dev, "request alarm IRQ failed with %d, IRQ %d\n",
-+ ret, rtc->alarm_irq);
-+ goto err_bad_alarm;
-+ }
-+
-+ return 0;
-+
-+err_bad_alarm:
-+ free_irq(rtc->carry_irq, dev);
-+err_bad_carry:
-+ free_irq(rtc->periodic_irq, dev);
-+
-+ return ret;
-+}
-+
-+static void sh_rtc_release(struct device *dev)
-+{
-+ struct sh_rtc *rtc = dev_get_drvdata(dev);
-+
-+ sh_rtc_setpie(dev, 0);
-+
-+ free_irq(rtc->periodic_irq, dev);
-+ free_irq(rtc->carry_irq, dev);
-+ free_irq(rtc->alarm_irq, dev);
-+}
-+
-+static int sh_rtc_proc(struct device *dev, struct seq_file *seq)
-+{
-+ struct sh_rtc *rtc = dev_get_drvdata(dev);
-+ unsigned int tmp;
-+
-+ tmp = readb(rtc->regbase + RCR1);
-+ seq_printf(seq, "alarm_IRQ\t: %s\n",
-+ (tmp & RCR1_AIE) ? "yes" : "no");
-+ seq_printf(seq, "carry_IRQ\t: %s\n",
-+ (tmp & RCR1_CIE) ? "yes" : "no");
-+
-+ tmp = readb(rtc->regbase + RCR2);
-+ seq_printf(seq, "periodic_IRQ\t: %s\n",
-+ (tmp & RCR2_PEF) ? "yes" : "no");
-+
-+ return 0;
-+}
-+
-+static int sh_rtc_ioctl(struct device *dev, unsigned int cmd, unsigned long arg)
-+{
-+ unsigned int ret = -ENOIOCTLCMD;
-+
-+ switch (cmd) {
-+ case RTC_PIE_OFF:
-+ case RTC_PIE_ON:
-+ sh_rtc_setpie(dev, cmd == RTC_PIE_ON);
-+ ret = 0;
-+ break;
-+ case RTC_AIE_OFF:
-+ case RTC_AIE_ON:
-+ sh_rtc_setaie(dev, cmd == RTC_AIE_ON);
-+ ret = 0;
-+ break;
-+ }
-+
-+ return ret;
-+}
-+
-+static int sh_rtc_read_time(struct device *dev, struct rtc_time *tm)
-+{
-+ struct platform_device *pdev = to_platform_device(dev);
-+ struct sh_rtc *rtc = platform_get_drvdata(pdev);
-+ unsigned int sec128, sec2, yr, yr100, cf_bit;
-+
-+ do {
-+ unsigned int tmp;
-+
-+ spin_lock_irq(&rtc->lock);
-+
-+ tmp = readb(rtc->regbase + RCR1);
-+ tmp &= ~RCR1_CF; /* Clear CF-bit */
-+ tmp |= RCR1_CIE;
-+ writeb(tmp, rtc->regbase + RCR1);
-+
-+ sec128 = readb(rtc->regbase + R64CNT);
-+
-+ tm->tm_sec = BCD2BIN(readb(rtc->regbase + RSECCNT));
-+ tm->tm_min = BCD2BIN(readb(rtc->regbase + RMINCNT));
-+ tm->tm_hour = BCD2BIN(readb(rtc->regbase + RHRCNT));
-+ tm->tm_wday = BCD2BIN(readb(rtc->regbase + RWKCNT));
-+ tm->tm_mday = BCD2BIN(readb(rtc->regbase + RDAYCNT));
-+ tm->tm_mon = BCD2BIN(readb(rtc->regbase + RMONCNT));
-+
-+#if defined(CONFIG_CPU_SH4)
-+ yr = readw(rtc->regbase + RYRCNT);
-+ yr100 = BCD2BIN(yr >> 8);
-+ yr &= 0xff;
-+#else
-+ yr = readb(rtc->regbase + RYRCNT);
-+ yr100 = BCD2BIN((yr == 0x99) ? 0x19 : 0x20);
-+#endif
-+
-+ tm->tm_year = (yr100 * 100 + BCD2BIN(yr)) - 1900;
-+
-+ sec2 = readb(rtc->regbase + R64CNT);
-+ cf_bit = readb(rtc->regbase + RCR1) & RCR1_CF;
-+
-+ spin_unlock_irq(&rtc->lock);
-+ } while (cf_bit != 0 || ((sec128 ^ sec2) & RTC_BIT_INVERTED) != 0);
-+
-+#if RTC_BIT_INVERTED != 0
-+ if ((sec128 & RTC_BIT_INVERTED))
-+ tm->tm_sec--;
-+#endif
-+
-+ dev_dbg(&dev, "%s: tm is secs=%d, mins=%d, hours=%d, "
-+ "mday=%d, mon=%d, year=%d, wday=%d\n",
-+ __FUNCTION__,
-+ tm->tm_sec, tm->tm_min, tm->tm_hour,
-+ tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday);
-+
-+ if (rtc_valid_tm(tm) < 0)
-+ dev_err(dev, "invalid date\n");
-+
-+ return 0;
-+}
-+
-+static int sh_rtc_set_time(struct device *dev, struct rtc_time *tm)
-+{
-+ struct platform_device *pdev = to_platform_device(dev);
-+ struct sh_rtc *rtc = platform_get_drvdata(pdev);
-+ unsigned int tmp;
-+ int year;
-+
-+ spin_lock_irq(&rtc->lock);
-+
-+ /* Reset pre-scaler & stop RTC */
-+ tmp = readb(rtc->regbase + RCR2);
-+ tmp |= RCR2_RESET;
-+ writeb(tmp, rtc->regbase + RCR2);
-+
-+ writeb(BIN2BCD(tm->tm_sec), rtc->regbase + RSECCNT);
-+ writeb(BIN2BCD(tm->tm_min), rtc->regbase + RMINCNT);
-+ writeb(BIN2BCD(tm->tm_hour), rtc->regbase + RHRCNT);
-+ writeb(BIN2BCD(tm->tm_wday), rtc->regbase + RWKCNT);
-+ writeb(BIN2BCD(tm->tm_mday), rtc->regbase + RDAYCNT);
-+ writeb(BIN2BCD(tm->tm_mon), rtc->regbase + RMONCNT);
-+
-+#ifdef CONFIG_CPU_SH3
-+ year = tm->tm_year % 100;
-+ writeb(BIN2BCD(year), rtc->regbase + RYRCNT);
-+#else
-+ year = (BIN2BCD((tm->tm_year + 1900) / 100) << 8) |
-+ BIN2BCD(tm->tm_year % 100);
-+ writew(year, rtc->regbase + RYRCNT);
-+#endif
-+
-+ /* Start RTC */
-+ tmp = readb(rtc->regbase + RCR2);
-+ tmp &= ~RCR2_RESET;
-+ tmp |= RCR2_RTCEN | RCR2_START;
-+ writeb(tmp, rtc->regbase + RCR2);
-+
-+ spin_unlock_irq(&rtc->lock);
-+
-+ return 0;
-+}
-+
-+static struct rtc_class_ops sh_rtc_ops = {
-+ .open = sh_rtc_open,
-+ .release = sh_rtc_release,
-+ .ioctl = sh_rtc_ioctl,
-+ .read_time = sh_rtc_read_time,
-+ .set_time = sh_rtc_set_time,
-+ .proc = sh_rtc_proc,
-+};
-+
-+static int __devinit sh_rtc_probe(struct platform_device *pdev)
-+{
-+ struct sh_rtc *rtc;
-+ struct resource *res;
-+ int ret = -ENOENT;
-+
-+ rtc = kzalloc(sizeof(struct sh_rtc), GFP_KERNEL);
-+ if (unlikely(!rtc))
-+ return -ENOMEM;
-+
-+ spin_lock_init(&rtc->lock);
-+
-+ rtc->periodic_irq = platform_get_irq(pdev, 0);
-+ if (unlikely(rtc->periodic_irq < 0)) {
-+ dev_err(&pdev->dev, "No IRQ for period\n");
-+ goto err_badres;
-+ }
-+
-+ rtc->carry_irq = platform_get_irq(pdev, 1);
-+ if (unlikely(rtc->carry_irq < 0)) {
-+ dev_err(&pdev->dev, "No IRQ for carry\n");
-+ goto err_badres;
-+ }
-+
-+ rtc->alarm_irq = platform_get_irq(pdev, 2);
-+ if (unlikely(rtc->alarm_irq < 0)) {
-+ dev_err(&pdev->dev, "No IRQ for alarm\n");
-+ goto err_badres;
-+ }
-+
-+ res = platform_get_resource(pdev, IORESOURCE_IO, 0);
-+ if (unlikely(res == NULL)) {
-+ dev_err(&pdev->dev, "No IO resource\n");
-+ goto err_badres;
-+ }
-+
-+ rtc->regsize = res->end - res->start + 1;
-+
-+ rtc->res = request_mem_region(res->start, rtc->regsize, pdev->name);
-+ if (unlikely(!rtc->res)) {
-+ ret = -EBUSY;
-+ goto err_badres;
-+ }
-+
-+ rtc->regbase = (void __iomem *)rtc->res->start;
-+ if (unlikely(!rtc->regbase)) {
-+ ret = -EINVAL;
-+ goto err_badmap;
-+ }
-+
-+ rtc->rtc_dev = rtc_device_register("sh", &pdev->dev,
-+ &sh_rtc_ops, THIS_MODULE);
-+ if (IS_ERR(rtc)) {
-+ ret = PTR_ERR(rtc->rtc_dev);
-+ goto err_badmap;
-+ }
-+
-+ platform_set_drvdata(pdev, rtc);
-+
-+ return 0;
-+
-+err_badmap:
-+ release_resource(rtc->res);
-+err_badres:
-+ kfree(rtc);
-+
-+ return ret;
-+}
-+
-+static int __devexit sh_rtc_remove(struct platform_device *pdev)
-+{
-+ struct sh_rtc *rtc = platform_get_drvdata(pdev);
-+
-+ if (likely(rtc->rtc_dev))
-+ rtc_device_unregister(rtc->rtc_dev);
-+
-+ sh_rtc_setpie(&pdev->dev, 0);
-+ sh_rtc_setaie(&pdev->dev, 0);
-+
-+ release_resource(rtc->res);
-+
-+ platform_set_drvdata(pdev, NULL);
-+
-+ kfree(rtc);
-+
-+ return 0;
-+}
-+static struct platform_driver sh_rtc_platform_driver = {
-+ .driver = {
-+ .name = "sh-rtc",
-+ .owner = THIS_MODULE,
-+ },
-+ .probe = sh_rtc_probe,
-+ .remove = __devexit_p(sh_rtc_remove),
-+};
-+
-+static int __init sh_rtc_init(void)
-+{
-+ return platform_driver_register(&sh_rtc_platform_driver);
-+}
-+
-+static void __exit sh_rtc_exit(void)
-+{
-+ platform_driver_unregister(&sh_rtc_platform_driver);
-+}
-+
-+module_init(sh_rtc_init);
-+module_exit(sh_rtc_exit);
-+
-+MODULE_DESCRIPTION("SuperH on-chip RTC driver");
-+MODULE_AUTHOR("Paul Mundt <lethal@linux-sh.org>");
-+MODULE_LICENSE("GPL");
-diff -ruN linux-2.6.17-vanilla/drivers/serial/8250.c linux-2.6.17/drivers/serial/8250.c
---- linux-2.6.17-vanilla/drivers/serial/8250.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/serial/8250.c 2006-07-12 16:54:24.000000000 +0000
-@@ -193,6 +193,9 @@
- .fifo_size = 32,
- .tx_loadsz = 16,
- .fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_01 |
-+#ifdef CONFIG_SH_RTS7751R2D
-+ UART_FCR_TRIGGER_14 |
-+#endif
- UART_FCR_T_TRIG_00,
- .flags = UART_CAP_FIFO | UART_CAP_EFR | UART_CAP_SLEEP,
- },
-@@ -440,8 +443,13 @@
- {
- if (p->capabilities & UART_CAP_SLEEP) {
- if (p->capabilities & UART_CAP_EFR) {
-+ int efr = UART_EFR_ECB;
-+
- serial_outp(p, UART_LCR, 0xBF);
-- serial_outp(p, UART_EFR, UART_EFR_ECB);
-+#ifdef CONFIG_SH_RTS7751R2D
-+ efr |= UART_EFR_CTS | UART_EFR_RTS;
-+#endif
-+ serial_outp(p, UART_EFR, efr);
- serial_outp(p, UART_LCR, 0);
- }
- serial_outp(p, UART_IER, sleep ? UART_IERX_SLEEP : 0);
-@@ -672,10 +680,16 @@
- * since that's the technique that was sent to me in the
- * serial driver update, but I'm not convinced this works.
- * I've had problems doing this in the past. -TYT
-+ *
-+ * No, this won't work for everyone. At least in the RTS7751R2D
-+ * case we have a '650 with a 64 byte FIFO, so this ends up breaking
-+ * there. -PFM
- */
-+#ifndef CONFIG_SH_RTS7751R2D
- if (size_fifo(up) == 64)
- up->port.type = PORT_16654;
- else
-+#endif
- up->port.type = PORT_16650V2;
- }
-
-diff -ruN linux-2.6.17-vanilla/drivers/serial/CVS/Entries linux-2.6.17/drivers/serial/CVS/Entries
---- linux-2.6.17-vanilla/drivers/serial/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/serial/CVS/Entries 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1,4 @@
-+/sh-sci.c/1.43/Mon Mar 27 21:06:14 2006/-ko/
-+/sh-sci.h/1.21/Wed Feb 8 12:24:41 2006/-ko/
-+/8250.c/1.14/Wed Jul 5 14:51:22 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/drivers/serial/CVS/Repository linux-2.6.17/drivers/serial/CVS/Repository
---- linux-2.6.17-vanilla/drivers/serial/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/serial/CVS/Repository 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1 @@
-+linux/drivers/serial
-diff -ruN linux-2.6.17-vanilla/drivers/serial/CVS/Root linux-2.6.17/drivers/serial/CVS/Root
---- linux-2.6.17-vanilla/drivers/serial/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/serial/CVS/Root 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/drivers/serial/sh-sci.c linux-2.6.17/drivers/serial/sh-sci.c
---- linux-2.6.17-vanilla/drivers/serial/sh-sci.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/serial/sh-sci.c 2006-07-12 16:54:24.000000000 +0000
-@@ -3,7 +3,7 @@
- *
- * SuperH on-chip serial module support. (SCI with no FIFO / with FIFO)
- *
-- * Copyright (C) 2002, 2003, 2004 Paul Mundt
-+ * Copyright (C) 2002 - 2006 Paul Mundt
- *
- * based off of the old drivers/char/sh-sci.c by:
- *
-@@ -56,10 +56,8 @@
-
- #if defined(CONFIG_SUPERH) && !defined(CONFIG_SUPERH64)
- #include <asm/clock.h>
--#endif
--
--#ifdef CONFIG_SH_STANDARD_BIOS
- #include <asm/sh_bios.h>
-+#include <asm/kgdb.h>
- #endif
-
- #if defined(CONFIG_SERIAL_SH_SCI_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
-@@ -69,25 +67,15 @@
- #include "sh-sci.h"
-
- #ifdef CONFIG_SH_KGDB
--#include <asm/kgdb.h>
--
--static int kgdb_get_char(struct sci_port *port);
--static void kgdb_put_char(struct sci_port *port, char c);
--static void kgdb_handle_error(struct sci_port *port);
- static struct sci_port *kgdb_sci_port;
--#endif /* CONFIG_SH_KGDB */
-+#endif
-
- #ifdef CONFIG_SERIAL_SH_SCI_CONSOLE
--static struct sci_port *serial_console_port = 0;
--#endif /* CONFIG_SERIAL_SH_SCI_CONSOLE */
-+static struct sci_port *serial_console_port;
-+#endif
-
- /* Function prototypes */
- static void sci_stop_tx(struct uart_port *port);
--static void sci_start_tx(struct uart_port *port);
--static void sci_start_rx(struct uart_port *port, unsigned int tty_start);
--static void sci_stop_rx(struct uart_port *port);
--static int sci_request_irq(struct sci_port *port);
--static void sci_free_irq(struct sci_port *port);
-
- static struct sci_port sci_ports[];
- static struct uart_driver sci_uart_driver;
-@@ -95,9 +83,9 @@
- #define SCI_NPORTS sci_uart_driver.nr
-
- #if defined(CONFIG_SH_STANDARD_BIOS) || defined(CONFIG_SH_KGDB)
--
--static void handle_error(struct uart_port *port)
--{ /* Clear error flags */
-+static inline void handle_error(struct uart_port *port)
-+{
-+ /* Clear error flags */
- sci_out(port, SCxSR, SCxSR_ERROR_CLEAR(port));
- }
-
-@@ -122,28 +110,9 @@
-
- return c;
- }
--
--/* Taken from sh-stub.c of GDB 4.18 */
--static const char hexchars[] = "0123456789abcdef";
--
--static __inline__ char highhex(int x)
--{
-- return hexchars[(x >> 4) & 0xf];
--}
--
--static __inline__ char lowhex(int x)
--{
-- return hexchars[x & 0xf];
--}
--
- #endif /* CONFIG_SH_STANDARD_BIOS || CONFIG_SH_KGDB */
-
--/*
-- * Send the packet in buffer. The host gets one chance to read it.
-- * This routine does not wait for a positive acknowledge.
-- */
--
--#ifdef CONFIG_SERIAL_SH_SCI_CONSOLE
-+#if defined(CONFIG_SERIAL_SH_SCI_CONSOLE) || defined(CONFIG_SH_KGDB)
- static void put_char(struct uart_port *port, char c)
- {
- unsigned long flags;
-@@ -161,7 +130,9 @@
-
- local_irq_restore(flags);
- }
-+#endif
-
-+#ifdef CONFIG_SERIAL_SH_SCI_CONSOLE
- static void put_string(struct sci_port *sci_port, const char *buffer, int count)
- {
- struct uart_port *port = &sci_port->port;
-@@ -214,96 +185,28 @@
- }
- #endif /* CONFIG_SERIAL_SH_SCI_CONSOLE */
-
--
- #ifdef CONFIG_SH_KGDB
--
--/* Is the SCI ready, ie is there a char waiting? */
--static int kgdb_is_char_ready(struct sci_port *port)
--{
-- unsigned short status = sci_in(port, SCxSR);
--
-- if (status & (SCxSR_ERRORS(port) | SCxSR_BRK(port)))
-- kgdb_handle_error(port);
--
-- return (status & SCxSR_RDxF(port));
--}
--
--/* Write a char */
--static void kgdb_put_char(struct sci_port *port, char c)
--{
-- unsigned short status;
--
-- do
-- status = sci_in(port, SCxSR);
-- while (!(status & SCxSR_TDxE(port)));
--
-- sci_out(port, SCxTDR, c);
-- sci_in(port, SCxSR); /* Dummy read */
-- sci_out(port, SCxSR, SCxSR_TDxE_CLEAR(port));
--}
--
--/* Get a char if there is one, else ret -1 */
--static int kgdb_get_char(struct sci_port *port)
--{
-- int c;
--
-- if (kgdb_is_char_ready(port) == 0)
-- c = -1;
-- else {
-- c = sci_in(port, SCxRDR);
-- sci_in(port, SCxSR); /* Dummy read */
-- sci_out(port, SCxSR, SCxSR_RDxF_CLEAR(port));
-- }
--
-- return c;
--}
--
--/* Called from kgdbstub.c to get a character, i.e. is blocking */
- static int kgdb_sci_getchar(void)
- {
-- volatile int c;
-+ int c;
-
- /* Keep trying to read a character, this could be neater */
-- while ((c = kgdb_get_char(kgdb_sci_port)) < 0);
-+ while ((c = get_char(kgdb_sci_port)) < 0)
-+ cpu_relax();
-
- return c;
- }
-
--/* Called from kgdbstub.c to put a character, just a wrapper */
--static void kgdb_sci_putchar(int c)
-+static inline void kgdb_sci_putchar(int c)
- {
--
-- kgdb_put_char(kgdb_sci_port, c);
-+ put_char(kgdb_sci_port, c);
- }
--
--/* Clear any errors on the SCI */
--static void kgdb_handle_error(struct sci_port *port)
--{
-- sci_out(port, SCxSR, SCxSR_ERROR_CLEAR(port)); /* Clear error flags */
--}
--
--/* Breakpoint if there's a break sent on the serial port */
--static void kgdb_break_interrupt(int irq, void *ptr, struct pt_regs *regs)
--{
-- struct sci_port *port = ptr;
-- unsigned short status = sci_in(port, SCxSR);
--
-- if (status & SCxSR_BRK(port)) {
--
-- /* Break into the debugger if a break is detected */
-- BREAKPOINT();
--
-- /* Clear */
-- sci_out(port, SCxSR, SCxSR_BREAK_CLEAR(port));
-- }
--}
--
- #endif /* CONFIG_SH_KGDB */
-
- #if defined(__H8300S__)
- enum { sci_disable, sci_enable };
-
--static void h8300_sci_enable(struct uart_port* port, unsigned int ctrl)
-+static void h8300_sci_config(struct uart_port* port, unsigned int ctrl)
- {
- volatile unsigned char *mstpcrl=(volatile unsigned char *)MSTPCRL;
- int ch = (port->mapbase - SMR0) >> 3;
-@@ -315,6 +218,16 @@
- *mstpcrl &= ~mask;
- }
- }
-+
-+static inline void h8300_sci_enable(struct uart_port *port)
-+{
-+ h8300_sci_config(port, sci_enable);
-+}
-+
-+static inline void h8300_sci_disable(struct uart_port *port)
-+{
-+ h8300_sci_config(port, sci_disable);
-+}
- #endif
-
- #if defined(SCI_ONLY) || defined(SCI_AND_SCIF)
-@@ -324,8 +237,13 @@
- int ch = (port->mapbase - SMR0) >> 3;
-
- /* set DDR regs */
-- H8300_GPIO_DDR(h8300_sci_pins[ch].port,h8300_sci_pins[ch].rx,H8300_GPIO_INPUT);
-- H8300_GPIO_DDR(h8300_sci_pins[ch].port,h8300_sci_pins[ch].tx,H8300_GPIO_OUTPUT);
-+ H8300_GPIO_DDR(h8300_sci_pins[ch].port,
-+ h8300_sci_pins[ch].rx,
-+ H8300_GPIO_INPUT);
-+ H8300_GPIO_DDR(h8300_sci_pins[ch].port,
-+ h8300_sci_pins[ch].tx,
-+ H8300_GPIO_OUTPUT);
-+
- /* tx mark output*/
- H8300_SCI_DR(ch) |= h8300_sci_pins[ch].tx;
- }
-@@ -380,7 +298,6 @@
- }
- #endif
- #else
--
- /* For SH7750 */
- static void sci_init_pins_scif(struct uart_port *port, unsigned int cflag)
- {
-@@ -397,10 +314,41 @@
- }
- sci_out(port, SCFCR, fcr_val);
- }
-+#endif
-+
-+#if defined(CONFIG_CPU_SUBTYPE_SH7760) || defined(CONFIG_CPU_SUBTYPE_SH7780)
-+static inline int scif_txroom(struct uart_port *port)
-+{
-+ return SCIF_TXROOM_MAX - (sci_in(port, SCTFDR) & 0x7f);
-+}
-+
-+static inline int scif_rxroom(struct uart_port *port)
-+{
-+ return sci_in(port, SCRFDR) & 0x7f;
-+}
-+#else
-+static inline int scif_txroom(struct uart_port *port)
-+{
-+ return SCIF_TXROOM_MAX - (sci_in(port, SCFDR) >> 8);
-+}
-
-+static inline int scif_rxroom(struct uart_port *port)
-+{
-+ return sci_in(port, SCFDR) & SCIF_RFDC_MASK;
-+}
- #endif
- #endif /* SCIF_ONLY || SCI_AND_SCIF */
-
-+static inline int sci_txroom(struct uart_port *port)
-+{
-+ return ((sci_in(port, SCxSR) & SCI_TDRE) != 0);
-+}
-+
-+static inline int sci_rxroom(struct uart_port *port)
-+{
-+ return ((sci_in(port, SCxSR) & SCxSR_RDxF(port)) != 0);
-+}
-+
- /* ********************************************************************** *
- * the interrupt related routines *
- * ********************************************************************** */
-@@ -412,7 +360,7 @@
- unsigned long flags;
- unsigned short status;
- unsigned short ctrl;
-- int count, txroom;
-+ int count;
-
- status = sci_in(port, SCxSR);
- if (!(status & SCxSR_TDxE(port))) {
-@@ -428,21 +376,12 @@
- return;
- }
-
--#if !defined(SCI_ONLY)
-- if (port->type == PORT_SCIF) {
--#if defined(CONFIG_CPU_SUBTYPE_SH7760) || defined(CONFIG_CPU_SUBTYPE_SH7780)
-- txroom = SCIF_TXROOM_MAX - (sci_in(port, SCTFDR) & 0x7f);
--#else
-- txroom = SCIF_TXROOM_MAX - (sci_in(port, SCFDR)>>8);
--#endif
-- } else {
-- txroom = (sci_in(port, SCxSR) & SCI_TDRE)?1:0;
-- }
--#else
-- txroom = (sci_in(port, SCxSR) & SCI_TDRE)?1:0;
-+#ifndef SCI_ONLY
-+ if (port->type == PORT_SCIF)
-+ count = scif_txroom(port);
-+ else
- #endif
--
-- count = txroom;
-+ count = sci_txroom(port);
-
- do {
- unsigned char c;
-@@ -491,6 +430,7 @@
- static inline void sci_receive_chars(struct uart_port *port,
- struct pt_regs *regs)
- {
-+ struct sci_port *sci_port = (struct sci_port *)port;
- struct tty_struct *tty = port->info->tty;
- int i, count, copied = 0;
- unsigned short status;
-@@ -502,18 +442,11 @@
-
- while (1) {
- #if !defined(SCI_ONLY)
-- if (port->type == PORT_SCIF) {
--#if defined(CONFIG_CPU_SUBTYPE_SH7760) || defined(CONFIG_CPU_SUBTYPE_SH7780)
-- count = sci_in(port, SCRFDR) & 0x7f;
--#else
-- count = sci_in(port, SCFDR)&SCIF_RFDC_MASK ;
--#endif
-- } else {
-- count = (sci_in(port, SCxSR)&SCxSR_RDxF(port))?1:0;
-- }
--#else
-- count = (sci_in(port, SCxSR)&SCxSR_RDxF(port))?1:0;
-+ if (port->type == PORT_SCIF)
-+ count = scif_rxroom(port);
-+ else
- #endif
-+ count = sci_rxroom(port);
-
- /* Don't copy more bytes than there is room for in the buffer */
- count = tty_buffer_request_room(tty, count);
-@@ -524,11 +457,10 @@
-
- if (port->type == PORT_SCI) {
- char c = sci_in(port, SCxRDR);
-- if(((struct sci_port *)port)->break_flag
-- || uart_handle_sysrq_char(port, c, regs)) {
-+ if (uart_handle_sysrq_char(port, c, regs) || sci_port->break_flag)
- count = 0;
-- } else {
-- tty_insert_flip_char(tty, c, TTY_NORMAL);
-+ else {
-+ tty_insert_flip_char(tty, c, TTY_NORMAL);
- }
- } else {
- for (i=0; i<count; i++) {
-@@ -536,15 +468,17 @@
- status = sci_in(port, SCxSR);
- #if defined(CONFIG_CPU_SH3)
- /* Skip "chars" during break */
-- if (((struct sci_port *)port)->break_flag) {
-+ if (sci_port->break_flag) {
- if ((c == 0) &&
- (status & SCxSR_FER(port))) {
- count--; i--;
- continue;
- }
-+
- /* Nonzero => end-of-break */
- pr_debug("scif: debounce<%02x>\n", c);
-- ((struct sci_port *)port)->break_flag = 0;
-+ sci_port->break_flag = 0;
-+
- if (STEPFN(c)) {
- count--; i--;
- continue;
-@@ -601,15 +535,17 @@
- /* Ensure that two consecutive samples find the break over. */
- static void sci_break_timer(unsigned long data)
- {
-- struct sci_port * port = (struct sci_port *)data;
-- if(sci_rxd_in(&port->port) == 0) {
-+ struct sci_port *port = (struct sci_port *)data;
-+
-+ if (sci_rxd_in(&port->port) == 0) {
- port->break_flag = 1;
-- sci_schedule_break_timer(port);
-- } else if(port->break_flag == 1){
-+ sci_schedule_break_timer(port);
-+ } else if (port->break_flag == 1) {
- /* break is over. */
- port->break_flag = 2;
-- sci_schedule_break_timer(port);
-- } else port->break_flag = 0;
-+ sci_schedule_break_timer(port);
-+ } else
-+ port->break_flag = 0;
- }
-
- static inline int sci_handle_errors(struct uart_port *port)
-@@ -618,40 +554,41 @@
- unsigned short status = sci_in(port, SCxSR);
- struct tty_struct *tty = port->info->tty;
-
-- if (status&SCxSR_ORER(port)) {
-+ if (status & SCxSR_ORER(port)) {
- /* overrun error */
-- if(tty_insert_flip_char(tty, 0, TTY_OVERRUN))
-+ if (tty_insert_flip_char(tty, 0, TTY_OVERRUN))
- copied++;
- pr_debug("sci: overrun error\n");
- }
-
-- if (status&SCxSR_FER(port)) {
-+ if (status & SCxSR_FER(port)) {
- if (sci_rxd_in(port) == 0) {
- /* Notify of BREAK */
-- struct sci_port * sci_port = (struct sci_port *)port;
-- if(!sci_port->break_flag) {
-- sci_port->break_flag = 1;
-- sci_schedule_break_timer((struct sci_port *)port);
-+ struct sci_port *sci_port = (struct sci_port *)port;
-+
-+ if (!sci_port->break_flag) {
-+ sci_port->break_flag = 1;
-+ sci_schedule_break_timer(sci_port);
-+
- /* Do sysrq handling. */
-- if(uart_handle_break(port))
-+ if (uart_handle_break(port))
- return 0;
- pr_debug("sci: BREAK detected\n");
-- if(tty_insert_flip_char(tty, 0, TTY_BREAK))
-+ if (tty_insert_flip_char(tty, 0, TTY_BREAK))
- copied++;
- }
-- }
-- else {
-+ } else {
- /* frame error */
-- if(tty_insert_flip_char(tty, 0, TTY_FRAME))
-+ if (tty_insert_flip_char(tty, 0, TTY_FRAME))
- copied++;
- pr_debug("sci: frame error\n");
- }
- }
-
-- if (status&SCxSR_PER(port)) {
-- if(tty_insert_flip_char(tty, 0, TTY_PARITY))
-- copied++;
-+ if (status & SCxSR_PER(port)) {
- /* parity error */
-+ if (tty_insert_flip_char(tty, 0, TTY_PARITY))
-+ copied++;
- pr_debug("sci: parity error\n");
- }
-
-@@ -756,6 +693,12 @@
-
- /* Handle BREAKs */
- sci_handle_breaks(port);
-+
-+#ifdef CONFIG_SH_KGDB
-+ /* Break into the debugger if a break is detected */
-+ BREAKPOINT();
-+#endif
-+
- sci_out(port, SCxSR, SCxSR_BREAK_CLEAR(port));
-
- return IRQ_HANDLED;
-@@ -964,9 +907,8 @@
- {
- struct sci_port *s = &sci_ports[port->line];
-
--#if defined(__H8300S__)
-- h8300_sci_enable(port, sci_enable);
--#endif
-+ if (s->enable)
-+ s->enable(port);
-
- sci_request_irq(s);
- sci_start_tx(port);
-@@ -983,9 +925,8 @@
- sci_stop_tx(port);
- sci_free_irq(s);
-
--#if defined(__H8300S__)
-- h8300_sci_enable(port, sci_disable);
--#endif
-+ if (s->disable)
-+ s->disable(port);
- }
-
- static void sci_set_termios(struct uart_port *port, struct termios *termios,
-@@ -1434,6 +1375,8 @@
- .type = PORT_SCI,
- .irqs = H8S_SCI_IRQS0,
- .init_pins = sci_init_pins_sci,
-+ .enable = h8300_sci_enable,
-+ .disable = h8300_sci_disable,
- },
- {
- .port = {
-@@ -1448,6 +1391,8 @@
- .type = PORT_SCI,
- .irqs = H8S_SCI_IRQS1,
- .init_pins = sci_init_pins_sci,
-+ .enable = h8300_sci_enable,
-+ .disable = h8300_sci_disable,
- },
- {
- .port = {
-@@ -1462,6 +1407,8 @@
- .type = PORT_SCI,
- .irqs = H8S_SCI_IRQS2,
- .init_pins = sci_init_pins_sci,
-+ .enable = h8300_sci_enable,
-+ .disable = h8300_sci_disable,
- },
- #elif defined(CONFIG_CPU_SUBTYPE_SH7770)
- {
-@@ -1569,19 +1516,21 @@
- sci_config_port(port, 0);
- #endif
-
-+ if (serial_console_port->enable)
-+ serial_console_port->enable(port);
-+
- /*
- * We need to set the initial uartclk here, since otherwise it will
- * only ever be setup at sci_init() time.
- */
- #if defined(__H8300H__) || defined(__H8300S__)
- port->uartclk = CONFIG_CPU_CLOCK;
--
--#if defined(__H8300S__)
-- h8300_sci_enable(port, sci_enable);
--#endif
- #elif defined(CONFIG_SUPERH64)
- port->uartclk = current_cpu_info.module_clock * 16;
- #else
-+ /*
-+ * XXX: Use a proper clock for SCI/SCIF
-+ */
- {
- struct clk *clk = clk_get("module_clk");
- port->uartclk = clk_get_rate(clk) * 16;
-@@ -1726,6 +1675,7 @@
- #elif defined(CONFIG_SUPERH64)
- sciport->port.uartclk = current_cpu_info.module_clock * 16;
- #else
-+ /* XXX: We should use a proper SCI/SCIF clock */
- struct clk *clk = clk_get("module_clk");
- sciport->port.uartclk = clk_get_rate(clk) * 16;
- clk_put(clk);
-@@ -1762,3 +1712,4 @@
- module_init(sci_init);
- module_exit(sci_exit);
-
-+MODULE_LICENSE("GPL");
-diff -ruN linux-2.6.17-vanilla/drivers/serial/sh-sci.h linux-2.6.17/drivers/serial/sh-sci.h
---- linux-2.6.17-vanilla/drivers/serial/sh-sci.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/serial/sh-sci.h 2006-07-12 16:54:24.000000000 +0000
-@@ -279,6 +279,8 @@
- int type;
- unsigned char irqs[4]; /* ERI, RXI, TXI, BRI */
- void (*init_pins)(struct uart_port *port, unsigned int cflag);
-+ void (*enable)(struct uart_port *port);
-+ void (*disable)(struct uart_port *port);
- int break_flag;
- struct timer_list break_timer;
- };
-diff -ruN linux-2.6.17-vanilla/drivers/sh/CVS/Entries linux-2.6.17/drivers/sh/CVS/Entries
---- linux-2.6.17-vanilla/drivers/sh/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/sh/CVS/Entries 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1,2 @@
-+/Makefile/1.3/Thu Nov 10 14:20:52 2005/-ko/
-+D/superhyway////
-diff -ruN linux-2.6.17-vanilla/drivers/sh/CVS/Repository linux-2.6.17/drivers/sh/CVS/Repository
---- linux-2.6.17-vanilla/drivers/sh/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/sh/CVS/Repository 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1 @@
-+linux/drivers/sh
-diff -ruN linux-2.6.17-vanilla/drivers/sh/CVS/Root linux-2.6.17/drivers/sh/CVS/Root
---- linux-2.6.17-vanilla/drivers/sh/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/sh/CVS/Root 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/drivers/sh/Makefile linux-2.6.17/drivers/sh/Makefile
---- linux-2.6.17-vanilla/drivers/sh/Makefile 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/sh/Makefile 2006-07-12 16:54:24.000000000 +0000
-@@ -2,5 +2,5 @@
- # Makefile for the SuperH specific drivers.
- #
-
--obj-$(CONFIG_SUPERHYWAY) += superhyway/
-+obj-$(CONFIG_SUPERHYWAY) += superhyway/
-
-diff -ruN linux-2.6.17-vanilla/drivers/sh/superhyway/CVS/Entries linux-2.6.17/drivers/sh/superhyway/CVS/Entries
---- linux-2.6.17-vanilla/drivers/sh/superhyway/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/sh/superhyway/CVS/Entries 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1,4 @@
-+/Makefile/1.1/Fri Mar 4 18:56:52 2005/-ko/
-+/superhyway-sysfs.c/1.3/Mon Aug 29 21:01:19 2005/-ko/
-+/superhyway.c/1.4/Mon Mar 27 21:06:14 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/drivers/sh/superhyway/CVS/Repository linux-2.6.17/drivers/sh/superhyway/CVS/Repository
---- linux-2.6.17-vanilla/drivers/sh/superhyway/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/sh/superhyway/CVS/Repository 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1 @@
-+linux/drivers/sh/superhyway
-diff -ruN linux-2.6.17-vanilla/drivers/sh/superhyway/CVS/Root linux-2.6.17/drivers/sh/superhyway/CVS/Root
---- linux-2.6.17-vanilla/drivers/sh/superhyway/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/sh/superhyway/CVS/Root 2006-07-12 16:54:24.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/drivers/usb/CVS/Entries linux-2.6.17/drivers/usb/CVS/Entries
---- linux-2.6.17-vanilla/drivers/usb/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/usb/CVS/Entries 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1,2 @@
-+D/host////
-+/Kconfig/1.3/Wed Jul 5 14:51:25 2006/-ko/
-diff -ruN linux-2.6.17-vanilla/drivers/usb/CVS/Repository linux-2.6.17/drivers/usb/CVS/Repository
---- linux-2.6.17-vanilla/drivers/usb/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/usb/CVS/Repository 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1 @@
-+linux/drivers/usb
-diff -ruN linux-2.6.17-vanilla/drivers/usb/CVS/Root linux-2.6.17/drivers/usb/CVS/Root
---- linux-2.6.17-vanilla/drivers/usb/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/usb/CVS/Root 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/drivers/usb/Kconfig linux-2.6.17/drivers/usb/Kconfig
---- linux-2.6.17-vanilla/drivers/usb/Kconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/usb/Kconfig 2006-07-12 16:54:25.000000000 +0000
-@@ -29,6 +29,8 @@
- default y if PPC_MPC52xx
- # MIPS:
- default y if SOC_AU1X00
-+ # SH:
-+ default y if VOYAGERGX
- # more:
- default PCI
-
-diff -ruN linux-2.6.17-vanilla/drivers/usb/host/CVS/Entries linux-2.6.17/drivers/usb/host/CVS/Entries
---- linux-2.6.17-vanilla/drivers/usb/host/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/usb/host/CVS/Entries 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1,4 @@
-+/ohci-voyagergx.c/1.4/Fri Jan 27 16:11:52 2006/-ko/
-+/Kconfig/1.12/Wed Jul 5 14:51:27 2006/-ko/
-+/ohci-hcd.c/1.14/Wed Jul 5 14:51:27 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/drivers/usb/host/CVS/Repository linux-2.6.17/drivers/usb/host/CVS/Repository
---- linux-2.6.17-vanilla/drivers/usb/host/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/usb/host/CVS/Repository 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1 @@
-+linux/drivers/usb/host
-diff -ruN linux-2.6.17-vanilla/drivers/usb/host/CVS/Root linux-2.6.17/drivers/usb/host/CVS/Root
---- linux-2.6.17-vanilla/drivers/usb/host/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/usb/host/CVS/Root 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/drivers/usb/host/Kconfig linux-2.6.17/drivers/usb/host/Kconfig
---- linux-2.6.17-vanilla/drivers/usb/host/Kconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/usb/host/Kconfig 2006-07-12 16:54:25.000000000 +0000
-@@ -148,3 +148,13 @@
- To compile this driver as a module, choose M here: the
- module will be called "sl811_cs".
-
-+config USB_SM501
-+ tristate "USB Host Controller in SM501 support"
-+ depends on USB && VOYAGERGX
-+ help
-+ Say Y here if you have SM501 USB host controller your system.
-+
-+ if you do not know what this is, please say N.
-+
-+ To compile this driver as a module, choose M here: the
-+ module will be called SM501.
-diff -ruN linux-2.6.17-vanilla/drivers/usb/host/ohci-hcd.c linux-2.6.17/drivers/usb/host/ohci-hcd.c
---- linux-2.6.17-vanilla/drivers/usb/host/ohci-hcd.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/usb/host/ohci-hcd.c 2006-07-12 16:54:25.000000000 +0000
-@@ -878,7 +878,9 @@
- MODULE_DESCRIPTION (DRIVER_INFO);
- MODULE_LICENSE ("GPL");
-
--#ifdef CONFIG_PCI
-+#ifdef CONFIG_USB_SM501
-+#include "ohci-voyagergx.c"
-+#elif defined(CONFIG_PCI)
- #include "ohci-pci.c"
- #endif
-
-@@ -923,6 +925,7 @@
- || defined (CONFIG_SOC_AU1X00) \
- || defined (CONFIG_USB_OHCI_HCD_PPC_SOC) \
- || defined (CONFIG_ARCH_AT91RM9200) \
-+ || defined (CONFIG_USB_SM501) \
- )
- #error "missing bus glue for ohci-hcd"
- #endif
-diff -ruN linux-2.6.17-vanilla/drivers/usb/host/ohci-voyagergx.c linux-2.6.17/drivers/usb/host/ohci-voyagergx.c
---- linux-2.6.17-vanilla/drivers/usb/host/ohci-voyagergx.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/usb/host/ohci-voyagergx.c 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1,259 @@
-+/*
-+ * SM501 USB HCD for Linux Version.
-+ *
-+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ * Copyright 2003 (c) Lineo uSolutions,Inc.
-+ * Copyright 2004 (c) Paul Mundt
-+ */
-+
-+#include <linux/dma-mapping.h>
-+#include <linux/init.h>
-+#include <linux/module.h>
-+#include <linux/platform_device.h>
-+#include <asm/mach/voyagergx_reg.h>
-+
-+extern int usb_disabled(void);
-+
-+static void usb_hcd_voyager_remove(struct usb_hcd *hcd, struct platform_device *pdev);
-+static int __devinit ohci_voyager_start(struct usb_hcd *hcd);
-+static int __init voyagergx_ohci_init(void);
-+static void __exit voyagergx_ohci_exit(void);
-+
-+/*
-+ * VoyagerGX USB, when not used as a PCI device.
-+ */
-+#define VOYAGER_OHCI_NAME "voyager-ohci"
-+
-+static void __init voyagergx_ohci_configure(void)
-+{
-+ unsigned long val;
-+
-+ // Power Mode 0 Gate
-+ val = inl(POWER_MODE0_GATE);
-+ outl((val | POWER_MODE0_GATE_UH), POWER_MODE0_GATE);
-+
-+ val = inl(POWER_MODE1_GATE);
-+ outl((val | POWER_MODE1_GATE_UH), POWER_MODE1_GATE);
-+
-+ //Miscellaneous USB Clock Selsct
-+ val = inl(MISC_CTRL);
-+ val &= ~MISC_CTRL_USBCLK_48;
-+ outl(val, MISC_CTRL);
-+
-+ // Interrupt Mask
-+ val = inl(VOYAGER_INT_MASK);
-+ val |= 0x00000040;
-+ outl(val, VOYAGER_INT_MASK);
-+}
-+
-+static int usb_hcd_voyager_probe(const struct hc_driver *driver,
-+ struct platform_device *dev)
-+{
-+ struct usb_hcd *hcd;
-+ struct ohci_hcd *ohci;
-+ struct resource *res;
-+ int retval, irq;
-+
-+ res = platform_get_resource(dev, IORESOURCE_MEM, 0);
-+ if (!res) {
-+ err("no IO resources defined");
-+ return -ENODEV;
-+ }
-+ irq = platform_get_irq(dev, 0);
-+
-+ hcd = usb_create_hcd(driver, &dev->dev, "sm501");
-+ if (PTR_ERR(hcd) == 0) {
-+ err("usb_create_hcd failed");
-+ return -ENOMEM;
-+ }
-+
-+ hcd->rsrc_start = res->start;
-+ hcd->rsrc_len = res->end - res->start + 1;
-+ hcd->regs = ioremap(hcd->rsrc_start, hcd->rsrc_len);
-+ if (PTR_ERR(hcd->regs) == 0) {
-+ err("ioremap failed");
-+ retval = -ENOMEM;
-+ goto err1;
-+ }
-+
-+ ohci = hcd_to_ohci(hcd);
-+ ohci_hcd_init(ohci);
-+
-+ retval = hcd_buffer_create(hcd);
-+ if (retval != 0) {
-+ err("hcd_buffer_create failed, %d", retval);
-+ goto err2;
-+ }
-+
-+ retval = usb_add_hcd(hcd, irq, SA_INTERRUPT);
-+ if (!retval)
-+ return retval; /* all done */
-+
-+ /* error path */
-+ hcd_buffer_destroy(hcd);
-+err2:
-+ iounmap(hcd->regs);
-+err1:
-+ usb_put_hcd(hcd);
-+
-+ return retval;
-+}
-+
-+static void usb_hcd_voyager_remove(struct usb_hcd *hcd, struct platform_device *dev)
-+{
-+ hcd_buffer_destroy(hcd);
-+ usb_remove_hcd(hcd);
-+ iounmap(hcd->regs);
-+ usb_put_hcd(hcd);
-+}
-+
-+static int __devinit ohci_voyager_start(struct usb_hcd *hcd)
-+{
-+ struct ohci_hcd *ohci = hcd_to_ohci(hcd);
-+ int ret;
-+
-+ if ((ret = ohci_init(ohci)) < 0)
-+ return ret;
-+
-+ if ((ret = ohci_run(ohci)) < 0) {
-+ err("can't start %s", hcd->self.bus_name);
-+ ohci_stop(hcd);
-+ return ret;
-+ }
-+
-+ return 0;
-+}
-+
-+static const struct hc_driver voyager_hc_driver = {
-+ .description = hcd_name,
-+ .product_desc = "SM501 OHCI",
-+ .hcd_priv_size = sizeof(struct ohci_hcd),
-+
-+ /*
-+ * generic hardware linkage
-+ */
-+ .irq = ohci_irq,
-+ .flags = HCD_USB11,
-+
-+ /*
-+ * basic lifecycle operations
-+ */
-+ .start = ohci_voyager_start,
-+ .stop = ohci_stop,
-+
-+ /*
-+ * managing i/o requests and associated device resources
-+ */
-+ .urb_enqueue = ohci_urb_enqueue,
-+ .urb_dequeue = ohci_urb_dequeue,
-+ .endpoint_disable = ohci_endpoint_disable,
-+
-+ /*
-+ * scheduling support
-+ */
-+ .get_frame_number = ohci_get_frame,
-+
-+ /*
-+ * root hub support
-+ */
-+ .hub_status_data = ohci_hub_status_data,
-+ .hub_control = ohci_hub_control,
-+#ifdef CONFIG_PM
-+ .bus_suspend = ohci_bus_suspend,
-+ .bus_resume = ohci_bus_resume,
-+#endif
-+ .start_port_reset = ohci_start_port_reset,
-+};
-+
-+static int usb_hcd_voyager_drv_probe(struct platform_device *pdev)
-+{
-+ if (usb_disabled())
-+ return -ENODEV;
-+
-+ return usb_hcd_voyager_probe(&voyager_hc_driver, pdev);
-+}
-+
-+static int usb_hcd_voyager_drv_remove(struct platform_device *pdev)
-+{
-+ struct usb_hcd *hcd = platform_get_drvdata(pdev);
-+
-+ usb_hcd_voyager_remove(hcd, pdev);
-+
-+ return 0;
-+}
-+
-+/*
-+ * Driver definitions to register with SH Bus
-+ */
-+static struct platform_driver usb_hcd_voyager_driver = {
-+ .driver = {
-+ .owner = THIS_MODULE,
-+ .name = VOYAGER_OHCI_NAME,
-+ },
-+ .probe = usb_hcd_voyager_drv_probe,
-+ .remove = usb_hcd_voyager_drv_remove,
-+};
-+
-+static struct resource voyager_hcd_res[] = {
-+ [0] = {
-+ .start = VOYAGER_USBH_BASE,
-+ .end = VOYAGER_USBH_BASE + 0xfff,
-+ .flags = IORESOURCE_MEM,
-+ },
-+ [1] = {
-+ .start = VOYAGER_USBH_IRQ,
-+ .end = VOYAGER_USBH_IRQ,
-+ .flags = IORESOURCE_IRQ,
-+ },
-+};
-+
-+static struct platform_device usb_hcd_voyager_dev = {
-+ .name = VOYAGER_OHCI_NAME,
-+ .id = 0,
-+ .resource = voyager_hcd_res,
-+ .num_resources = ARRAY_SIZE(voyager_hcd_res),
-+};
-+
-+static int __init voyagergx_ohci_init(void)
-+{
-+ int ret;
-+
-+ if (usb_disabled())
-+ return -ENODEV;
-+
-+ voyagergx_ohci_configure();
-+
-+ ret = platform_driver_register(&usb_hcd_voyager_driver);
-+ if (ret)
-+ return -ENODEV;
-+
-+ ret = platform_device_register(&usb_hcd_voyager_dev);
-+ if (ret) {
-+ platform_driver_unregister(&usb_hcd_voyager_driver);
-+ return -ENODEV;
-+ }
-+
-+ return ret;
-+}
-+
-+static void __exit voyagergx_ohci_exit(void)
-+{
-+ platform_device_unregister(&usb_hcd_voyager_dev);
-+ platform_driver_unregister(&usb_hcd_voyager_driver);
-+}
-+
-+module_init(voyagergx_ohci_init);
-+module_exit(voyagergx_ohci_exit);
-diff -ruN linux-2.6.17-vanilla/drivers/video/CVS/Entries linux-2.6.17/drivers/video/CVS/Entries
---- linux-2.6.17-vanilla/drivers/video/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/video/CVS/Entries 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1,7 @@
-+/hitfb.c/1.22/Sun Jan 29 17:46:24 2006/-ko/
-+/pvr2fb.c/1.27/Sun Jan 8 13:56:39 2006//
-+D/backlight////
-+D/console////
-+D/voyager////
-+/Kconfig/1.27/Wed Jul 5 14:51:28 2006/-ko/
-+/Makefile/1.22/Wed Jul 5 14:51:28 2006/-ko/
-diff -ruN linux-2.6.17-vanilla/drivers/video/CVS/Repository linux-2.6.17/drivers/video/CVS/Repository
---- linux-2.6.17-vanilla/drivers/video/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/video/CVS/Repository 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1 @@
-+linux/drivers/video
-diff -ruN linux-2.6.17-vanilla/drivers/video/CVS/Root linux-2.6.17/drivers/video/CVS/Root
---- linux-2.6.17-vanilla/drivers/video/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/video/CVS/Root 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/drivers/video/Kconfig linux-2.6.17/drivers/video/Kconfig
---- linux-2.6.17-vanilla/drivers/video/Kconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/video/Kconfig 2006-07-12 16:54:25.000000000 +0000
-@@ -151,6 +151,21 @@
- help
- Support the Permedia2 FIFO disconnect feature (see CONFIG_FB_PM2).
-
-+config FB_VOYAGER_GX
-+ bool "Silicon Motion Voyager GX support"
-+ depends on FB && VOYAGERGX
-+ select FB_CFB_FILLRECT
-+ select FB_CFB_COPYAREA
-+ select FB_CFB_IMAGEBLIT
-+ help
-+ Say Y to enable support for the Silicon Motion VoyagerGX framebuffer.
-+
-+config FB_VOYAGER_GX_MP
-+ bool "Voyager multi plane support"
-+ depends on FB_VOYAGER_GX
-+ help
-+ Say Y to enable support VoyagerGX multi plane.
-+
- config FB_ARMCLCD
- tristate "ARM PrimeCell PL110 support"
- depends on FB && ARM && ARM_AMBA
-diff -ruN linux-2.6.17-vanilla/drivers/video/Makefile linux-2.6.17/drivers/video/Makefile
---- linux-2.6.17-vanilla/drivers/video/Makefile 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/video/Makefile 2006-07-12 16:54:25.000000000 +0000
-@@ -38,6 +38,8 @@
- obj-$(CONFIG_FB_KYRO) += kyro/
- obj-$(CONFIG_FB_SAVAGE) += savage/
- obj-$(CONFIG_FB_GEODE) += geode/
-+obj-$(CONFIG_FB_VOYAGER_GX) += voyager/
-+
- obj-$(CONFIG_FB_I810) += vgastate.o
- obj-$(CONFIG_FB_NEOMAGIC) += neofb.o vgastate.o
- obj-$(CONFIG_FB_VIRGE) += virgefb.o
-diff -ruN linux-2.6.17-vanilla/drivers/video/backlight/CVS/Entries linux-2.6.17/drivers/video/backlight/CVS/Entries
---- linux-2.6.17-vanilla/drivers/video/backlight/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/video/backlight/CVS/Entries 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1,3 @@
-+/Kconfig/1.2/Wed Jul 5 14:51:29 2006//
-+/hp680_bl.c/1.6/Wed Jul 12 16:51:58 2006//
-+D
-diff -ruN linux-2.6.17-vanilla/drivers/video/backlight/CVS/Repository linux-2.6.17/drivers/video/backlight/CVS/Repository
---- linux-2.6.17-vanilla/drivers/video/backlight/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/video/backlight/CVS/Repository 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1 @@
-+linux/drivers/video/backlight
-diff -ruN linux-2.6.17-vanilla/drivers/video/backlight/CVS/Root linux-2.6.17/drivers/video/backlight/CVS/Root
---- linux-2.6.17-vanilla/drivers/video/backlight/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/video/backlight/CVS/Root 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/drivers/video/backlight/Kconfig linux-2.6.17/drivers/video/backlight/Kconfig
---- linux-2.6.17-vanilla/drivers/video/backlight/Kconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/video/backlight/Kconfig 2006-07-12 16:54:25.000000000 +0000
-@@ -51,7 +51,7 @@
- backlight driver.
-
- config BACKLIGHT_HP680
-- tristate "HP Jornada 680 Backlight Driver"
-+ tristate "HP Jornada 680 Backlight Driver "
- depends on BACKLIGHT_DEVICE && SH_HP6XX
- default y
- help
-diff -ruN linux-2.6.17-vanilla/drivers/video/backlight/hp680_bl.c linux-2.6.17/drivers/video/backlight/hp680_bl.c
---- linux-2.6.17-vanilla/drivers/video/backlight/hp680_bl.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/video/backlight/hp680_bl.c 2006-07-12 16:54:25.000000000 +0000
-@@ -1,7 +1,7 @@
- /*
- * Backlight Driver for HP Jornada 680
- *
-- * Copyright (c) 2005 Andriy Skulysh
-+ * Copyright (c) 2005 Andriy Skulysh
- *
- * Based on Sharp's Corgi Backlight Driver
- *
-@@ -20,7 +20,7 @@
-
- #include <asm/cpu/dac.h>
- #include <asm/hp6xx/hp6xx.h>
--#include <asm/hd64461/hd64461.h>
-+#include <asm/hd64461.h>
-
- #define HP680_MAX_INTENSITY 255
- #define HP680_DEFAULT_INTENSITY 10
-@@ -64,7 +64,6 @@
- current_intensity = intensity;
- }
-
--
- #ifdef CONFIG_PM
- static int hp680bl_suspend(struct platform_device *dev, pm_message_t state)
- {
-@@ -102,6 +101,8 @@
- .update_status = hp680bl_set_intensity,
- };
-
-+static struct backlight_device *hp680_backlight_device;
-+
- static int __init hp680bl_probe(struct platform_device *dev)
- {
- hp680_backlight_device = backlight_device_register ("hp680-bl",
-@@ -163,6 +164,6 @@
- module_init(hp680bl_init);
- module_exit(hp680bl_exit);
-
--MODULE_AUTHOR("Andriy Skulysh <askulysh@image.kiev.ua>");
-+MODULE_AUTHOR("Andriy Skulysh <askulysh@gmail.com>");
- MODULE_DESCRIPTION("HP Jornada 680 Backlight Driver");
- MODULE_LICENSE("GPL");
-diff -ruN linux-2.6.17-vanilla/drivers/video/console/CVS/Entries linux-2.6.17/drivers/video/console/CVS/Entries
---- linux-2.6.17-vanilla/drivers/video/console/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/video/console/CVS/Entries 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1,2 @@
-+/Kconfig/1.7/Wed Jul 5 14:51:30 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/drivers/video/console/CVS/Repository linux-2.6.17/drivers/video/console/CVS/Repository
---- linux-2.6.17-vanilla/drivers/video/console/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/video/console/CVS/Repository 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1 @@
-+linux/drivers/video/console
-diff -ruN linux-2.6.17-vanilla/drivers/video/console/CVS/Root linux-2.6.17/drivers/video/console/CVS/Root
---- linux-2.6.17-vanilla/drivers/video/console/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/video/console/CVS/Root 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/drivers/video/console/Kconfig linux-2.6.17/drivers/video/console/Kconfig
---- linux-2.6.17-vanilla/drivers/video/console/Kconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/video/console/Kconfig 2006-07-12 16:54:25.000000000 +0000
-@@ -6,7 +6,7 @@
-
- config VGA_CONSOLE
- bool "VGA text console" if EMBEDDED || !X86
-- depends on !ARCH_ACORN && !ARCH_EBSA110 && !4xx && !8xx && !SPARC && !M68K && !PARISC && !FRV && !ARCH_VERSATILE
-+ depends on !ARCH_ACORN && !ARCH_EBSA110 && !4xx && !8xx && !SPARC && !M68K && !PARISC && !FRV && !ARCH_VERSATILE && !SUPERH
- default y
- help
- Saying Y here will allow you to use Linux in text mode through a
-diff -ruN linux-2.6.17-vanilla/drivers/video/hitfb.c linux-2.6.17/drivers/video/hitfb.c
---- linux-2.6.17-vanilla/drivers/video/hitfb.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/video/hitfb.c 2006-07-12 16:54:25.000000000 +0000
-@@ -4,7 +4,7 @@
- * (C) 1999 Mihai Spatar
- * (C) 2000 YAEGASHI Takeshi
- * (C) 2003, 2004 Paul Mundt
-- * (C) 2003, 2004 Andriy Skulysh
-+ * (C) 2003, 2004, 2006 Andriy Skulysh
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file COPYING in the main directory of this archive for
-@@ -22,18 +22,16 @@
- #include <linux/slab.h>
- #include <linux/delay.h>
- #include <linux/init.h>
-+#include <linux/platform_device.h>
- #include <linux/fb.h>
-
- #include <asm/machvec.h>
- #include <asm/uaccess.h>
- #include <asm/pgtable.h>
- #include <asm/io.h>
--#include <asm/hd64461/hd64461.h>
--
--#ifdef MACH_HP600
-+#include <asm/hd64461.h>
- #include <asm/cpu/dac.h>
- #include <asm/hp6xx/hp6xx.h>
--#endif
-
- #define WIDTH 640
-
-@@ -47,7 +45,6 @@
- static struct fb_fix_screeninfo hitfb_fix __initdata = {
- .id = "Hitachi HD64461",
- .type = FB_TYPE_PACKED_PIXELS,
-- .ypanstep = 8,
- .accel = FB_ACCEL_NONE,
- };
-
-@@ -75,26 +72,14 @@
- if (truecolor)
- saddr <<= 1;
-
-- fb_writew(width, HD64461_BBTDWR);
-- fb_writew(height, HD64461_BBTDHR);
-+ fb_writew(width-1, HD64461_BBTDWR);
-+ fb_writew(height-1, HD64461_BBTDHR);
-
- fb_writew(saddr & 0xffff, HD64461_BBTDSARL);
- fb_writew(saddr >> 16, HD64461_BBTDSARH);
-
- }
-
--static inline void hitfb_accel_solidfill(int truecolor, u16 dx, u16 dy,
-- u16 width, u16 height, u16 color)
--{
-- hitfb_accel_set_dest(truecolor, dx, dy, width, height);
--
-- fb_writew(0x00f0, HD64461_BBTROPR);
-- fb_writew(16, HD64461_BBTMDR);
-- fb_writew(color, HD64461_GRSCR);
--
-- hitfb_accel_start(truecolor);
--}
--
- static inline void hitfb_accel_bitblt(int truecolor, u16 sx, u16 sy, u16 dx,
- u16 dy, u16 width, u16 height, u16 rop,
- u32 mask_addr)
-@@ -102,6 +87,8 @@
- u32 saddr, daddr;
- u32 maddr = 0;
-
-+ height--;
-+ width--;
- fb_writew(rop, HD64461_BBTROPR);
- if ((sy < dy) || ((sy == dy) && (sx <= dx))) {
- saddr = WIDTH * (sy + height) + sx + width;
-@@ -148,6 +135,7 @@
- if (rect->rop != ROP_COPY)
- cfb_fillrect(p, rect);
- else {
-+ hitfb_accel_wait();
- fb_writew(0x00f0, HD64461_BBTROPR);
- fb_writew(16, HD64461_BBTMDR);
-
-@@ -163,16 +151,15 @@
- rect->height);
- hitfb_accel_start(0);
- }
-- hitfb_accel_wait();
- }
- }
-
- static void hitfb_copyarea(struct fb_info *p, const struct fb_copyarea *area)
- {
-+ hitfb_accel_wait();
- hitfb_accel_bitblt(p->var.bits_per_pixel == 16, area->sx, area->sy,
- area->dx, area->dy, area->width, area->height,
- 0x00cc, 0);
-- hitfb_accel_wait();
- }
-
- static int hitfb_pan_display(struct fb_var_screeninfo *var,
-@@ -184,7 +171,7 @@
- if (xoffset != 0)
- return -EINVAL;
-
-- fb_writew(yoffset, HD64461_LCDCBAR);
-+ fb_writew((yoffset*info->fix.line_length)>>10, HD64461_LCDCBAR);
-
- return 0;
- }
-@@ -194,12 +181,6 @@
- unsigned short v;
-
- if (blank_mode) {
--#ifdef MACH_HP600
-- sh_dac_disable(DAC_LCD_BRIGHTNESS);
-- v = fb_readw(HD64461_GPBDR);
-- v |= HD64461_GPBDR_LCDOFF;
-- fb_writew(v, HD64461_GPBDR);
--#endif
- v = fb_readw(HD64461_LDR1);
- v &= ~HD64461_LDR1_DON;
- fb_writew(v, HD64461_LDR1);
-@@ -215,19 +196,18 @@
- v = fb_readw(HD64461_STBCR);
- v &= ~HD64461_STBCR_SLCDST;
- fb_writew(v, HD64461_STBCR);
--#ifdef MACH_HP600
-- sh_dac_enable(DAC_LCD_BRIGHTNESS);
-- v = fb_readw(HD64461_GPBDR);
-- v &= ~HD64461_GPBDR_LCDOFF;
-- fb_writew(v, HD64461_GPBDR);
--#endif
-- v = fb_readw(HD64461_LDR1);
-- v |= HD64461_LDR1_DON;
-- fb_writew(v, HD64461_LDR1);
-
- v = fb_readw(HD64461_LCDCCR);
-- v &= ~HD64461_LCDCCR_MOFF;
-+ v &= ~(HD64461_LCDCCR_MOFF | HD64461_LCDCCR_STREQ);
- fb_writew(v, HD64461_LCDCCR);
-+
-+ do {
-+ v = fb_readw(HD64461_LCDCCR);
-+ } while(v&HD64461_LCDCCR_STBACK);
-+
-+ v = fb_readw(HD64461_LDR1);
-+ v |= HD64461_LDR1_DON;
-+ fb_writew(v, HD64461_LDR1);
- }
- return 0;
- }
-@@ -235,7 +215,7 @@
- static int hitfb_setcolreg(unsigned regno, unsigned red, unsigned green,
- unsigned blue, unsigned transp, struct fb_info *info)
- {
-- if (regno >= info->cmap.len)
-+ if (regno >= 256)
- return 1;
-
- switch (info->var.bits_per_pixel) {
-@@ -246,6 +226,8 @@
- fb_writew(blue >> 10, HD64461_CPTWDR);
- break;
- case 16:
-+ if (regno >= 16)
-+ return 1;
- ((u32 *) (info->pseudo_palette))[regno] =
- ((red & 0xf800)) |
- ((green & 0xfc00) >> 5) | ((blue & 0xf800) >> 11);
-@@ -254,26 +236,113 @@
- return 0;
- }
-
-+static int hitfb_sync(struct fb_info *info)
-+{
-+ hitfb_accel_wait();
-+
-+ return 0;
-+}
-+
-+static int hitfb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
-+{
-+ int maxy;
-+
-+ var->xres = info->var.xres;
-+ var->xres_virtual = info->var.xres;
-+ var->yres = info->var.yres;
-+
-+ if ((var->bits_per_pixel != 8) && (var->bits_per_pixel != 16))
-+ var->bits_per_pixel = info->var.bits_per_pixel;
-+
-+ if (var->yres_virtual < var->yres)
-+ var->yres_virtual = var->yres;
-+
-+ maxy = info->fix.smem_len / var->xres;
-+
-+ if (var->bits_per_pixel == 16)
-+ maxy /= 2;
-+
-+ if (var->yres_virtual > maxy)
-+ var->yres_virtual = maxy;
-+
-+ var->xoffset = 0;
-+ var->yoffset = 0;
-+
-+ switch (var->bits_per_pixel) {
-+ case 8:
-+ var->red.offset = 0;
-+ var->red.length = 8;
-+ var->green.offset = 0;
-+ var->green.length = 8;
-+ var->blue.offset = 0;
-+ var->blue.length = 8;
-+ var->transp.offset = 0;
-+ var->transp.length = 0;
-+ break;
-+ case 16: /* RGB 565 */
-+ var->red.offset = 11;
-+ var->red.length = 5;
-+ var->green.offset = 5;
-+ var->green.length = 6;
-+ var->blue.offset = 0;
-+ var->blue.length = 5;
-+ var->transp.offset = 0;
-+ var->transp.length = 0;
-+ break;
-+ }
-+
-+ return 0;
-+}
-+
-+static int hitfb_set_par(struct fb_info *info)
-+{
-+ unsigned short ldr3;
-+
-+ switch (info->var.bits_per_pixel) {
-+ case 8:
-+ info->fix.line_length = info->var.xres;
-+ info->fix.visual = FB_VISUAL_PSEUDOCOLOR;
-+ info->fix.ypanstep = 16;
-+ break;
-+ case 16:
-+ info->fix.line_length = info->var.xres*2;
-+ info->fix.visual = FB_VISUAL_TRUECOLOR;
-+ info->fix.ypanstep = 8;
-+ break;
-+ }
-+
-+ fb_writew(info->fix.line_length, HD64461_LCDCLOR);
-+ ldr3 = fb_readw(HD64461_LDR3);
-+ ldr3 &= ~15;
-+ ldr3 |= (info->var.bits_per_pixel == 8) ? 4 : 8;
-+ fb_writew(ldr3, HD64461_LDR3);
-+ return 0;
-+}
-+
- static struct fb_ops hitfb_ops = {
- .owner = THIS_MODULE,
-+ .fb_check_var = hitfb_check_var,
-+ .fb_set_par = hitfb_set_par,
- .fb_setcolreg = hitfb_setcolreg,
- .fb_blank = hitfb_blank,
-+ .fb_sync = hitfb_sync,
- .fb_pan_display = hitfb_pan_display,
- .fb_fillrect = hitfb_fillrect,
- .fb_copyarea = hitfb_copyarea,
- .fb_imageblit = cfb_imageblit,
- };
-
--int __init hitfb_init(void)
-+static int __init hitfb_probe(struct platform_device *dev)
- {
- unsigned short lcdclor, ldr3, ldvndr;
-- int size;
-
- if (fb_get_options("hitfb", NULL))
- return -ENODEV;
-
-+ hitfb_fix.mmio_start = CONFIG_HD64461_IOBASE+0x1000;
-+ hitfb_fix.mmio_len = 0x1000;
- hitfb_fix.smem_start = CONFIG_HD64461_IOBASE + 0x02000000;
-- hitfb_fix.smem_len = (MACH_HP690) ? 1024 * 1024 : 512 * 1024;
-+ hitfb_fix.smem_len = 512 * 1024;
-
- lcdclor = fb_readw(HD64461_LCDCLOR);
- ldvndr = fb_readw(HD64461_LDVNDR);
-@@ -323,12 +392,12 @@
- fb_info.var = hitfb_var;
- fb_info.fix = hitfb_fix;
- fb_info.pseudo_palette = pseudo_palette;
-- fb_info.flags = FBINFO_DEFAULT;
-+ fb_info.flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN |
-+ FBINFO_HWACCEL_FILLRECT | FBINFO_HWACCEL_COPYAREA;
-
- fb_info.screen_base = (void *)hitfb_fix.smem_start;
-
-- size = (fb_info.var.bits_per_pixel == 8) ? 256 : 16;
-- fb_alloc_cmap(&fb_info.cmap, size, 0);
-+ fb_alloc_cmap(&fb_info.cmap, 256, 0);
-
- if (register_framebuffer(&fb_info) < 0)
- return -EINVAL;
-@@ -338,9 +407,75 @@
- return 0;
- }
-
-+static int __devexit hitfb_remove(struct platform_device *dev)
-+{
-+ return unregister_framebuffer(&fb_info);
-+}
-+
-+#ifdef CONFIG_PM
-+static int hitfb_suspend(struct platform_device *dev, pm_message_t state)
-+{
-+ u16 v;
-+
-+ hitfb_blank(1,0);
-+ v = fb_readw(HD64461_STBCR);
-+ v |= HD64461_STBCR_SLCKE_IST;
-+ fb_writew(v, HD64461_STBCR);
-+
-+ return 0;
-+}
-+
-+static int hitfb_resume(struct platform_device *dev)
-+{
-+ u16 v;
-+
-+ v = fb_readw(HD64461_STBCR);
-+ v &= ~HD64461_STBCR_SLCKE_OST;
-+ msleep(100);
-+ v = fb_readw(HD64461_STBCR);
-+ v &= ~HD64461_STBCR_SLCKE_IST;
-+ fb_writew(v, HD64461_STBCR);
-+ hitfb_blank(0,0);
-+
-+ return 0;
-+}
-+#endif
-+
-+static struct platform_driver hitfb_driver = {
-+ .probe = hitfb_probe,
-+ .remove = __devexit_p(hitfb_remove),
-+#ifdef CONFIG_PM
-+ .suspend = hitfb_suspend,
-+ .resume = hitfb_resume,
-+#endif
-+ .driver = {
-+ .name = "hitfb",
-+ },
-+};
-+
-+static struct platform_device hitfb_device = {
-+ .name = "hitfb",
-+ .id = -1,
-+};
-+
-+static int __init hitfb_init(void)
-+{
-+ int ret;
-+
-+ ret = platform_driver_register(&hitfb_driver);
-+ if (!ret) {
-+ ret = platform_device_register(&hitfb_device);
-+ if (ret)
-+ platform_driver_unregister(&hitfb_driver);
-+ }
-+ return ret;
-+}
-+
-+
- static void __exit hitfb_exit(void)
- {
-- unregister_framebuffer(&fb_info);
-+ platform_device_unregister(&hitfb_device);
-+ platform_driver_unregister(&hitfb_driver);
- }
-
- module_init(hitfb_init);
-diff -ruN linux-2.6.17-vanilla/drivers/video/pvr2fb.c linux-2.6.17/drivers/video/pvr2fb.c
---- linux-2.6.17-vanilla/drivers/video/pvr2fb.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/video/pvr2fb.c 2006-07-12 16:54:25.000000000 +0000
-@@ -189,7 +189,7 @@
- static unsigned int is_blanked = 0; /* Is the screen blanked? */
-
- #ifdef CONFIG_SH_STORE_QUEUES
--static struct sq_mapping *pvr2fb_map;
-+static unsigned long pvr2fb_map;
- #endif
-
- #ifdef CONFIG_SH_DMA
-@@ -215,15 +215,17 @@
- static int pvr2_init_cable(void);
- static int pvr2_get_param(const struct pvr2_params *p, const char *s,
- int val, int size);
-+#ifdef CONFIG_SH_DMA
- static ssize_t pvr2fb_write(struct file *file, const char *buf,
- size_t count, loff_t *ppos);
-+#endif
-
- static struct fb_ops pvr2fb_ops = {
-- .owner = THIS_MODULE,
-- .fb_setcolreg = pvr2fb_setcolreg,
-- .fb_blank = pvr2fb_blank,
-- .fb_check_var = pvr2fb_check_var,
-- .fb_set_par = pvr2fb_set_par,
-+ .owner = THIS_MODULE,
-+ .fb_setcolreg = pvr2fb_setcolreg,
-+ .fb_blank = pvr2fb_blank,
-+ .fb_check_var = pvr2fb_check_var,
-+ .fb_set_par = pvr2fb_set_par,
- #ifdef CONFIG_SH_DMA
- .fb_write = pvr2fb_write,
- #endif
-@@ -785,7 +787,7 @@
- goto out_err;
- }
-
-- fb_memset((unsigned long)fb_info->screen_base, 0, pvr2_fix.smem_len);
-+ fb_memset(fb_info->screen_base, 0, pvr2_fix.smem_len);
-
- pvr2_fix.ypanstep = nopan ? 0 : 1;
- pvr2_fix.ywrapstep = nowrap ? 0 : 1;
-@@ -822,7 +824,7 @@
- modememused >> 10, (unsigned long)(fb_info->fix.smem_len >> 10));
- printk("fb%d: Mode %dx%d-%d pitch = %ld cable: %s video output: %s\n",
- fb_info->node, fb_info->var.xres, fb_info->var.yres,
-- fb_info->var.bits_per_pixel,
-+ fb_info->var.bits_per_pixel,
- get_line_length(fb_info->var.xres, fb_info->var.bits_per_pixel),
- (char *)pvr2_get_param(cables, NULL, cable_type, 3),
- (char *)pvr2_get_param(outputs, NULL, video_output, 3));
-@@ -831,10 +833,10 @@
- printk(KERN_NOTICE "fb%d: registering with SQ API\n", fb_info->node);
-
- pvr2fb_map = sq_remap(fb_info->fix.smem_start, fb_info->fix.smem_len,
-- fb_info->fix.id);
-+ fb_info->fix.id, pgprot_val(PAGE_SHARED));
-
- printk(KERN_NOTICE "fb%d: Mapped video memory to SQ addr 0x%lx\n",
-- fb_info->node, pvr2fb_map->sq_addr);
-+ fb_info->node, pvr2fb_map);
- #endif
-
- return 0;
-diff -ruN linux-2.6.17-vanilla/drivers/video/voyager/CVS/Entries linux-2.6.17/drivers/video/voyager/CVS/Entries
---- linux-2.6.17-vanilla/drivers/video/voyager/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/video/voyager/CVS/Entries 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1,9 @@
-+/Makefile/1.2/Tue May 31 14:19:09 2005/-ko/
-+/voyager_alphafb.c/1.2/Wed Feb 8 22:08:10 2006/-ko/
-+/voyager_crtcsrfb.c/1.2/Wed Feb 8 22:08:10 2006/-ko/
-+/voyager_crtfb.c/1.2/Wed Feb 8 22:08:10 2006/-ko/
-+/voyager_gxfb.c/1.4/Wed Feb 8 22:08:10 2006/-ko/
-+/voyager_panelcsrfb.c/1.2/Wed Feb 8 22:08:10 2006/-ko/
-+/voyager_valphafb.c/1.2/Wed Feb 8 22:08:10 2006/-ko/
-+/voyager_videofb.c/1.2/Wed Feb 8 22:08:10 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/drivers/video/voyager/CVS/Repository linux-2.6.17/drivers/video/voyager/CVS/Repository
---- linux-2.6.17-vanilla/drivers/video/voyager/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/video/voyager/CVS/Repository 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1 @@
-+linux/drivers/video/voyager
-diff -ruN linux-2.6.17-vanilla/drivers/video/voyager/CVS/Root linux-2.6.17/drivers/video/voyager/CVS/Root
---- linux-2.6.17-vanilla/drivers/video/voyager/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/video/voyager/CVS/Root 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/drivers/video/voyager/Makefile linux-2.6.17/drivers/video/voyager/Makefile
---- linux-2.6.17-vanilla/drivers/video/voyager/Makefile 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/video/voyager/Makefile 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1,13 @@
-+#
-+# Makefile for the VoyagerGX framebuffer driver
-+#
-+
-+my-obj-$(CONFIG_FB_VOYAGER_GX_MP) += voyager_alphafb.o \
-+ voyager_crtcsrfb.o \
-+ voyager_crtfb.o \
-+ voyager_panelcsrfb.o \
-+ voyager_valphafb.o \
-+ voyager_videofb.o
-+
-+obj-$(CONFIG_FB_VOYAGER_GX) += voyager_gxfb.o $(my-obj-y)
-+
-diff -ruN linux-2.6.17-vanilla/drivers/video/voyager/voyager_alphafb.c linux-2.6.17/drivers/video/voyager/voyager_alphafb.c
---- linux-2.6.17-vanilla/drivers/video/voyager/voyager_alphafb.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/video/voyager/voyager_alphafb.c 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1,282 @@
-+/*
-+ * linux/drivers/video/voyager_alphafb.c -- voyager alpha frame buffer driver
-+ *
-+ * Copyright (C) 2003 Renesas Technology Sales Co.,Ltd.
-+ * Copyright (C) 2003 Atom Create Engineering Co.,Ltd.
-+ * Anthor : Atom Create Engineering Co.,Ltd.
-+ * Kenichi Sakuma
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file COPYING in the main directory of this archive for
-+ * more details.
-+ *
-+ * 1.00
-+ * - initial version (ks)
-+ * 1.01
-+ * - Kernel 2.6 correspondence
-+ */
-+#include <linux/config.h>
-+#include <linux/module.h>
-+#include <linux/kernel.h>
-+#include <linux/errno.h>
-+#include <linux/string.h>
-+#include <linux/mm.h>
-+#include <linux/tty.h>
-+#include <linux/slab.h>
-+#include <linux/vmalloc.h>
-+#include <linux/delay.h>
-+#include <linux/interrupt.h>
-+#include <linux/fb.h>
-+#include <linux/init.h>
-+#include <asm/io.h>
-+#include <asm/irq.h>
-+#include <asm/mach/voyagergx_reg.h>
-+#include <video/voyager.h>
-+
-+static struct fb_info voyafb_info;
-+
-+int voyafb_init4(void);
-+static int voyafb_check_var(struct fb_var_screeninfo *var,
-+ struct fb_info *info);
-+static int voyafb_set_par(struct fb_info *info);
-+static int voyafb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
-+ u_int transp, struct fb_info *info);
-+static int voyafb_blank(int blank, struct fb_info *info);
-+static int voyafb_ioctl(struct inode*, struct file*,
-+ unsigned int, unsigned long, struct fb_info*);
-+static int change_mode(struct fb_var_screeninfo *var);
-+
-+static unsigned int pseudo_palette[16];
-+
-+static struct fb_ops voyafb_ops = {
-+ .owner = THIS_MODULE,
-+ .fb_check_var = voyafb_check_var,
-+ .fb_set_par = voyafb_set_par,
-+ .fb_setcolreg = voyafb_setcolreg,
-+ .fb_blank = voyafb_blank,
-+ .fb_fillrect = cfb_fillrect,
-+ .fb_copyarea = cfb_copyarea,
-+ .fb_imageblit = cfb_imageblit,
-+ .fb_ioctl = voyafb_ioctl,
-+};
-+
-+static struct fb_var_screeninfo voyafb_var __initdata = {
-+ .xres = XRES,
-+ .yres = YRES,
-+ .xres_virtual = XRES,
-+ .yres_virtual = YRES,
-+ .bits_per_pixel = BPP,
-+ .red = { 11,5,0 },
-+ .green = { 5,6,0 },
-+ .blue = { 0,5,0 },
-+ .height = -1,
-+ .width = -1,
-+ .vmode = FB_VMODE_NONINTERLACED,
-+ .pixclock = 10000,
-+ .left_margin = 16,
-+ .right_margin = 16,
-+ .upper_margin = 16,
-+ .lower_margin = 16,
-+ .hsync_len = 8,
-+ .vsync_len = 8,
-+};
-+
-+static int voyafb_check_var(struct fb_var_screeninfo *var,
-+ struct fb_info *info)
-+{
-+ if (var->xres > XRES || var->yres > YRES
-+ || var->xres_virtual > XRES || var->yres_virtual > YRES
-+ || var->bits_per_pixel != BPP
-+ || var->nonstd
-+ || (var->vmode & FB_VMODE_MASK) != FB_VMODE_NONINTERLACED)
-+ return -EINVAL;
-+
-+ var->xres_virtual = XRES;
-+ var->yres_virtual = YRES;
-+
-+ if(change_mode(var) != 0) {
-+ return -EINVAL;
-+ }
-+
-+ return 0;
-+}
-+
-+static int voyafb_set_par(struct fb_info *info)
-+{
-+ info->fix.line_length = XRES*2;
-+ info->fix.visual = FB_VISUAL_TRUECOLOR;
-+
-+ info->var.red.offset = 11;
-+ info->var.green.offset = 5;
-+ info->var.blue.offset = 0;
-+ info->var.red.length = info->var.blue.length = 5;
-+ info->var.green.length = 6;
-+ return 0;
-+}
-+
-+static int voyafb_blank(int blank, struct fb_info *info)
-+{
-+ return 1;
-+}
-+
-+static int voyafb_setcolreg(unsigned regno, unsigned red, unsigned green,
-+ unsigned blue, unsigned transp,
-+ struct fb_info* info)
-+{
-+ red >>= 11;
-+ green >>= 11;
-+ blue >>= 10;
-+
-+ if (regno < 16)
-+ ((u32 *)(info->pseudo_palette))[regno] = ((red & 31) << 6) |
-+ ((green & 31) << 11) |
-+ ((blue & 63));
-+ return 0;
-+}
-+
-+static int voyafb_ioctl(struct inode* inode, struct file* file,
-+ unsigned int cmd, unsigned long arg,
-+ struct fb_info* info)
-+{
-+ if(cmd == VOYAGER_IOCTL_ENABLE) {
-+ if(arg == 0) {
-+ *(volatile unsigned long *)(ALPHA_DISPLAY_CTRL) &= 0xfffffffb;
-+ }
-+ else {
-+ *(volatile unsigned long *)(ALPHA_DISPLAY_CTRL) |= 0x04;
-+ }
-+ return 0;
-+ }
-+ else if(cmd == VOYAGER_IOCTL_ENABLE_CK) {
-+ if(arg == 0) {
-+ *(volatile unsigned long *)(ALPHA_DISPLAY_CTRL) &= 0xfffffff7;
-+ }
-+ else {
-+ *(volatile unsigned long *)(ALPHA_DISPLAY_CTRL) |= 0x00000008;
-+ }
-+ return 0;
-+ }
-+ else if(cmd == VOYAGER_IOCTL_ENABLE_AL) {
-+ if(arg == 0) {
-+ *(volatile unsigned long *)(ALPHA_DISPLAY_CTRL) &= 0xefffffff;
-+ }
-+ else {
-+ *(volatile unsigned long *)(ALPHA_DISPLAY_CTRL) |= 0x10000000;
-+ }
-+ return 0;
-+ }
-+ else if(cmd == VOYAGER_IOCTL_CHKEY) {
-+ *(volatile unsigned long *)(ALPHA_CHROMA_KEY) = arg;
-+ return 0;
-+ }
-+ else if(cmd == VOYAGER_IOCTL_TYPE) {
-+ *(volatile unsigned long *)(ALPHA_DISPLAY_CTRL) &= 0xfffffffc;
-+ *(volatile unsigned long *)(ALPHA_DISPLAY_CTRL) |= (arg & 0x03);
-+ return 0;
-+ }
-+ else if(cmd == VOYAGER_IOCTL_ALPHA) {
-+ *(volatile unsigned long *)(ALPHA_DISPLAY_CTRL) &= 0xf0ffffff;
-+ *(volatile unsigned long *)(ALPHA_DISPLAY_CTRL) |= (arg & 0x0f) << 24;
-+ return 0;
-+ }
-+ return -EINVAL;
-+}
-+
-+
-+static void __init voya_hw_init(void)
-+{
-+ *(volatile unsigned long *)(ALPHA_FB_ADDRESS) = 0x80000000 + (VOY_VRAM_TOP4 & 0x00ffffff);
-+ change_mode(&voyafb_var);
-+ *(volatile unsigned long *)(ALPHA_CHROMA_KEY) = 0;
-+
-+ *(volatile unsigned long *)(ALPHA_DISPLAY_CTRL) &= 0xfffffff0;
-+ *(volatile unsigned long *)(ALPHA_DISPLAY_CTRL) |= 0x01;
-+
-+}
-+
-+
-+
-+static struct fb_fix_screeninfo voyafb_fix __initdata = {
-+ .id = "VOYAGER ALPHA",
-+ .type = FB_TYPE_PACKED_PIXELS,
-+ .visual = FB_VISUAL_TRUECOLOR,
-+ .accel = FB_ACCEL_NONE,
-+ .line_length = XRES*2,
-+ .smem_len = MAX_FRAMEBUFFER_MEM_SIZE,
-+};
-+
-+
-+static void __init init_voya(struct fb_info *p, unsigned long addr)
-+{
-+ p->fix = voyafb_fix;
-+ p->fix.smem_start = addr;
-+
-+ p->var = voyafb_var;
-+
-+ p->fbops = &voyafb_ops;
-+ p->flags = FBINFO_FLAG_DEFAULT;
-+ p->pseudo_palette = pseudo_palette;
-+
-+ fb_alloc_cmap(&p->cmap, 16, 0);
-+
-+ if (register_framebuffer(p) < 0) {
-+ printk(KERN_ERR "VOYAGER GX ALPHA framebuffer failed to register\n");
-+ return;
-+ }
-+
-+ printk(KERN_INFO "fb%d: VOYAGER GX_ALPHA frame buffer (%dK RAM detected)\n",
-+ p->node, p->fix.smem_len / 1024);
-+
-+ voya_hw_init();
-+}
-+
-+int __init voyafb_init4(void)
-+{
-+ struct fb_info *p = &voyafb_info;
-+ unsigned long addr, size;
-+
-+ addr = VOY_VRAM_TOP4;
-+ size = MAX_FRAMEBUFFER_MEM_SIZE;
-+ p->screen_base = ioremap((u_long)addr,
-+ ALLOCATED_FB_MEM_SIZE);
-+ if (p->screen_base == NULL) {
-+ return -ENOMEM;
-+ }
-+ init_voya(p, addr);
-+ memset(p->screen_base, 0, MAX_FRAMEBUFFER_MEM_SIZE);
-+
-+ return 0;
-+}
-+
-+static void __exit voyafb_exit(void)
-+{
-+ *(volatile unsigned long *)(ALPHA_DISPLAY_CTRL) &= 0xfffffffb;
-+}
-+
-+
-+//------------------------------------------------------------------------------------
-+static int change_mode(struct fb_var_screeninfo *var)
-+{
-+int x,ali;
-+
-+ if((var->xres < 0)||(var->xres > XRES)||
-+ (var->yres < 0)||(var->yres > YRES)||
-+ (var->xres_virtual < 0)||(var->xres_virtual > XRES)||
-+ (var->yres_virtual < 0)||(var->yres_virtual > YRES)||
-+ (var->xoffset < 0)||(var->xoffset > XRES)||
-+ (var->yoffset < 0)||(var->yoffset > YRES))
-+ {
-+ return(-1);
-+ }
-+ x = var->xres_virtual * 2;
-+ ali = x + (x % 16);
-+ *(volatile unsigned long *)(ALPHA_FB_WIDTH) = (ali << 16) | ali;
-+ *(volatile unsigned long *)(ALPHA_PLANE_TL) = (var->yoffset << 16) |
-+ var->xoffset;
-+ *(volatile unsigned long *)(ALPHA_PLANE_BR) =
-+ ((var->yoffset + var->yres - 1) << 16) |
-+ (var->xoffset + var->xres - 1);
-+ return(0);
-+}
-+
-+MODULE_LICENSE("GPL");
-diff -ruN linux-2.6.17-vanilla/drivers/video/voyager/voyager_crtcsrfb.c linux-2.6.17/drivers/video/voyager/voyager_crtcsrfb.c
---- linux-2.6.17-vanilla/drivers/video/voyager/voyager_crtcsrfb.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/video/voyager/voyager_crtcsrfb.c 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1,240 @@
-+/*
-+ * linux/drivers/video/voyager_crtcsrfb.c -- voyager crt HWC frame buffer driver
-+ *
-+ * Copyright (C) 2003 Renesas Technology Sales Co.,Ltd.
-+ * Copyright (C) 2003 Atom Create Engineering Co.,Ltd.
-+ * Anthor : Atom Create Engineering Co.,Ltd.
-+ * Kenichi Sakuma
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file COPYING in the main directory of this archive for
-+ * more details.
-+ *
-+ * 1.00
-+ * - initial version (ks)
-+ * 1.01
-+ * - Kernel 2.6 correspondence
-+ */
-+#include <linux/config.h>
-+#include <linux/module.h>
-+#include <linux/kernel.h>
-+#include <linux/errno.h>
-+#include <linux/string.h>
-+#include <linux/mm.h>
-+#include <linux/tty.h>
-+#include <linux/slab.h>
-+#include <linux/vmalloc.h>
-+#include <linux/delay.h>
-+#include <linux/interrupt.h>
-+#include <linux/fb.h>
-+#include <linux/init.h>
-+#include <asm/io.h>
-+#include <asm/irq.h>
-+#include <asm/mach/voyagergx_reg.h>
-+#include <video/voyager.h>
-+
-+static struct fb_info voyafb_info;
-+
-+int voyafb_init7(void);
-+static int voyafb_check_var(struct fb_var_screeninfo *var,
-+ struct fb_info *info);
-+static int voyafb_set_par(struct fb_info *info);
-+static int voyafb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
-+ u_int transp, struct fb_info *info);
-+static int voyafb_blank(int blank, struct fb_info *info);
-+static int voyafb_ioctl(struct inode*, struct file*,
-+ unsigned int, unsigned long, struct fb_info*);
-+static int change_mode(struct fb_var_screeninfo *var);
-+
-+static unsigned int pseudo_palette[16];
-+
-+static struct fb_ops voyafb_ops = {
-+ .owner = THIS_MODULE,
-+ .fb_check_var = voyafb_check_var,
-+ .fb_set_par = voyafb_set_par,
-+ .fb_setcolreg = voyafb_setcolreg,
-+ .fb_blank = voyafb_blank,
-+ .fb_fillrect = cfb_fillrect,
-+ .fb_copyarea = cfb_copyarea,
-+ .fb_imageblit = cfb_imageblit,
-+ .fb_ioctl = voyafb_ioctl,
-+};
-+
-+static struct fb_var_screeninfo voyafb_var __initdata = {
-+ .xres = CSR_XRES,
-+ .yres = CSR_YRES,
-+ .xres_virtual = CSR_XRES,
-+ .yres_virtual = CSR_YRES,
-+ .bits_per_pixel = CSR_BPP,
-+ .red = { 11,5,0 },
-+ .green = { 5,6,0 },
-+ .blue = { 0,5,0 },
-+ .height = -1,
-+ .width = -1,
-+ .vmode = FB_VMODE_NONINTERLACED,
-+ .pixclock = 10000,
-+ .left_margin = 16,
-+ .right_margin = 16,
-+ .upper_margin = 16,
-+ .lower_margin = 16,
-+ .hsync_len = 8,
-+ .vsync_len = 8,
-+};
-+
-+static int voyafb_check_var(struct fb_var_screeninfo *var,
-+ struct fb_info *info)
-+{
-+ if (var->xres > CSR_XRES || var->yres > CSR_YRES
-+ || var->xres_virtual > CSR_XRES || var->yres_virtual > CSR_YRES
-+ || var->bits_per_pixel != CSR_BPP
-+ || var->nonstd
-+ || (var->vmode & FB_VMODE_MASK) != FB_VMODE_NONINTERLACED)
-+ return -EINVAL;
-+
-+ var->xres = var->xres_virtual = CSR_XRES;
-+ var->yres = var->yres_virtual = CSR_YRES;
-+ if(change_mode(var) != 0) {
-+ return -EINVAL;
-+ }
-+
-+ return 0;
-+}
-+
-+static int voyafb_set_par(struct fb_info *info)
-+{
-+ info->fix.line_length = CSR_XRES/2;
-+ info->fix.visual = FB_VISUAL_TRUECOLOR;
-+
-+ info->var.red.offset = 11;
-+ info->var.green.offset = 5;
-+ info->var.blue.offset = 0;
-+ info->var.red.length = info->var.blue.length = 5;
-+ info->var.green.length = 6;
-+ return 0;
-+}
-+
-+static int voyafb_blank(int blank, struct fb_info *info)
-+{
-+ return 1;
-+}
-+
-+static int voyafb_setcolreg(unsigned regno, unsigned red, unsigned green,
-+ unsigned blue, unsigned transp,
-+ struct fb_info* info)
-+{
-+ red >>= 11;
-+ green >>= 11;
-+ blue >>= 10;
-+
-+ if (regno < 16)
-+ ((u32 *)(info->pseudo_palette))[regno] = ((red & 31) << 6) |
-+ ((green & 31) << 11) |
-+ ((blue & 63));
-+ return 0;
-+}
-+
-+static int voyafb_ioctl(struct inode* inode, struct file* file,
-+ unsigned int cmd, unsigned long arg,
-+ struct fb_info* info)
-+{
-+ if(cmd == VOYAGER_IOCTL_ENABLE) {
-+ if(arg == 0) {
-+ *(volatile unsigned long *)(CRT_HWC_ADDRESS) &= 0x7fffffff;
-+ }
-+ else {
-+ *(volatile unsigned long *)(CRT_HWC_ADDRESS) |= 0x80000000;
-+ }
-+ return 0;
-+ }
-+ else if(cmd == VOYAGER_IOCTL_COLOR_1) {
-+ *(volatile unsigned long *)(CRT_HWC_COLOR_12) = arg;
-+ return 0;
-+ }
-+ else if(cmd == VOYAGER_IOCTL_COLOR_2) {
-+ *(volatile unsigned long *)(CRT_HWC_COLOR_3) = arg;
-+ return 0;
-+ }
-+ return -EINVAL;
-+}
-+
-+
-+static void __init voya_hw_init(void)
-+{
-+ *(volatile unsigned long *)(CRT_HWC_ADDRESS) = (VOY_VRAM_TOP5 & 0x00ffffff);
-+ *(volatile unsigned long *)(CRT_HWC_COLOR_12) = 0x5555aaaa;
-+ *(volatile unsigned long *)(CRT_HWC_COLOR_3) = 0x0000ffff;
-+ change_mode(&voyafb_var);
-+}
-+
-+
-+
-+static struct fb_fix_screeninfo voyafb_fix __initdata = {
-+ .id = "VOYAGER C_CSR",
-+ .type = FB_TYPE_PACKED_PIXELS,
-+ .visual = FB_VISUAL_TRUECOLOR,
-+ .accel = FB_ACCEL_NONE,
-+ .line_length = CSR_XRES/2,
-+ .smem_len = MAX_HWC_MEM_SIZE,
-+};
-+
-+
-+static void __init init_voya(struct fb_info *p, unsigned long addr)
-+{
-+ p->fix = voyafb_fix;
-+ p->fix.smem_start = addr;
-+
-+ p->var = voyafb_var;
-+
-+ p->fbops = &voyafb_ops;
-+ p->flags = FBINFO_FLAG_DEFAULT;
-+ p->pseudo_palette = pseudo_palette;
-+
-+ fb_alloc_cmap(&p->cmap, 16, 0);
-+
-+ if (register_framebuffer(p) < 0) {
-+ printk(KERN_ERR "VOYAGER GX CRT CSR framebuffer failed to register\n");
-+ return;
-+ }
-+
-+ printk(KERN_INFO "fb%d: VOYAGER GX_CRT CSR frame buffer (%dK RAM detected)\n",
-+ p->node, p->fix.smem_len / 1024);
-+
-+ voya_hw_init();
-+}
-+
-+int __init voyafb_init7(void)
-+{
-+ struct fb_info *p = &voyafb_info;
-+ unsigned long addr, size;
-+
-+ addr = VOY_VRAM_TOP6;
-+ size = MAX_HWC_MEM_SIZE;
-+ p->screen_base = ioremap((u_long)addr,
-+ ALLOCATED_FB_MEM_SIZE);
-+ if (p->screen_base == NULL) {
-+ return -ENOMEM;
-+ }
-+ init_voya(p, addr);
-+ memset(p->screen_base, 0, MAX_HWC_MEM_SIZE);
-+
-+ return 0;
-+}
-+
-+static void __exit voyafb_exit(void)
-+{
-+ *(volatile unsigned long *)(CRT_HWC_ADDRESS) &= 0x7fffffff;
-+}
-+
-+static int change_mode(struct fb_var_screeninfo *var)
-+{
-+ if((var->xoffset < 0)||(var->xoffset > XRES)||
-+ (var->yoffset < 0)||(var->yoffset > YRES))
-+ {
-+ return(-1);
-+ }
-+ *(volatile unsigned long *)(CRT_HWC_LOCATION) = (var->yoffset << 16) |
-+ var->xoffset;
-+ return(0);
-+}
-+
-+MODULE_LICENSE("GPL");
-diff -ruN linux-2.6.17-vanilla/drivers/video/voyager/voyager_crtfb.c linux-2.6.17/drivers/video/voyager/voyager_crtfb.c
---- linux-2.6.17-vanilla/drivers/video/voyager/voyager_crtfb.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/video/voyager/voyager_crtfb.c 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1,240 @@
-+/*
-+ * linux/drivers/video/voyager_crtfb.c -- voyager crt frame buffer driver
-+ *
-+ * Copyright (C) 2003 Renesas Technology Sales Co.,Ltd.
-+ * Copyright (C) 2003 Atom Create Engineering Co.,Ltd.
-+ * Anthor : Atom Create Engineering Co.,Ltd.
-+ * Kenichi Sakuma
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file COPYING in the main directory of this archive for
-+ * more details.
-+ *
-+ * 1.00
-+ * - initial version (ks)
-+ * 1.01
-+ * - Kernel 2.6 correspondence
-+ */
-+#include <linux/config.h>
-+#include <linux/module.h>
-+#include <linux/kernel.h>
-+#include <linux/errno.h>
-+#include <linux/string.h>
-+#include <linux/mm.h>
-+#include <linux/tty.h>
-+#include <linux/slab.h>
-+#include <linux/vmalloc.h>
-+#include <linux/delay.h>
-+#include <linux/interrupt.h>
-+#include <linux/fb.h>
-+#include <linux/init.h>
-+#include <asm/io.h>
-+#include <asm/irq.h>
-+#include <asm/mach/voyagergx_reg.h>
-+#include <video/voyager.h>
-+
-+static struct fb_info voyafb_info;
-+
-+int voyafb_init6(void);
-+static int voyafb_check_var(struct fb_var_screeninfo *var,
-+ struct fb_info *info);
-+static int voyafb_set_par(struct fb_info *info);
-+static int voyafb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
-+ u_int transp, struct fb_info *info);
-+static int voyafb_blank(int blank, struct fb_info *info);
-+static int voyafb_ioctl(struct inode*, struct file*,
-+ unsigned int, unsigned long, struct fb_info*);
-+
-+static unsigned int pseudo_palette[16];
-+
-+static struct fb_ops voyafb_ops = {
-+ .owner = THIS_MODULE,
-+ .fb_check_var = voyafb_check_var,
-+ .fb_set_par = voyafb_set_par,
-+ .fb_setcolreg = voyafb_setcolreg,
-+ .fb_blank = voyafb_blank,
-+ .fb_fillrect = cfb_fillrect,
-+ .fb_copyarea = cfb_copyarea,
-+ .fb_imageblit = cfb_imageblit,
-+ .fb_ioctl = voyafb_ioctl,
-+};
-+
-+static struct fb_var_screeninfo voyafb_var __initdata = {
-+ .xres = XRES,
-+ .yres = YRES,
-+ .xres_virtual = XRES,
-+ .yres_virtual = YRES,
-+ .bits_per_pixel = BPP,
-+ .red = { 11,5,0 },
-+ .green = { 5,6,0 },
-+ .blue = { 0,5,0 },
-+ .height = -1,
-+ .width = -1,
-+ .vmode = FB_VMODE_NONINTERLACED,
-+ .pixclock = 10000,
-+ .left_margin = 16,
-+ .right_margin = 16,
-+ .upper_margin = 16,
-+ .lower_margin = 16,
-+ .hsync_len = 8,
-+ .vsync_len = 8,
-+};
-+
-+static int voyafb_check_var(struct fb_var_screeninfo *var,
-+ struct fb_info *info)
-+{
-+ if (var->xres > XRES || var->yres > YRES
-+ || var->xres_virtual > XRES || var->yres_virtual > YRES
-+ || var->bits_per_pixel != BPP
-+ || var->nonstd
-+ || (var->vmode & FB_VMODE_MASK) != FB_VMODE_NONINTERLACED)
-+ return -EINVAL;
-+
-+ var->xres = var->xres_virtual = XRES;
-+ var->yres = var->yres_virtual = YRES;
-+
-+ return 0;
-+}
-+
-+static int voyafb_set_par(struct fb_info *info)
-+{
-+ info->fix.line_length = XRES*2;
-+ info->fix.visual = FB_VISUAL_TRUECOLOR;
-+
-+ info->var.red.offset = 11;
-+ info->var.green.offset = 5;
-+ info->var.blue.offset = 0;
-+ info->var.red.length = info->var.blue.length = 5;
-+ info->var.green.length = 6;
-+ return 0;
-+}
-+
-+static int voyafb_blank(int blank, struct fb_info *info)
-+{
-+ return 1;
-+}
-+
-+static int voyafb_setcolreg(unsigned regno, unsigned red, unsigned green,
-+ unsigned blue, unsigned transp,
-+ struct fb_info* info)
-+{
-+ red >>= 11;
-+ green >>= 11;
-+ blue >>= 10;
-+
-+ if (regno < 16)
-+ ((u32 *)(info->pseudo_palette))[regno] = ((red & 31) << 6) |
-+ ((green & 31) << 11) |
-+ ((blue & 63));
-+ return 0;
-+}
-+
-+static int voyafb_ioctl(struct inode* inode, struct file* file,
-+ unsigned int cmd, unsigned long arg,
-+ struct fb_info* info)
-+{
-+ if(cmd == VOYAGER_IOCTL_ENABLE) {
-+ if(arg == 0) {
-+ *(volatile unsigned long *)(CRT_DISPLAY_CTRL) &= 0xfffffffb;
-+ }
-+ else {
-+ *(volatile unsigned long *)(CRT_DISPLAY_CTRL) |= 0x04;
-+ }
-+ return 0;
-+ }
-+ else if(cmd == VOYAGER_IOCTL_TYPE) {
-+ *(volatile unsigned long *)(CRT_DISPLAY_CTRL) &= 0xfffffffc;
-+ *(volatile unsigned long *)(CRT_DISPLAY_CTRL) |= (arg & 0x03);
-+ return 0;
-+ }
-+ else if(cmd == VOYAGER_IOCTL_SELECT) {
-+ if(arg == 0) {
-+ *(volatile unsigned long *)(CRT_DISPLAY_CTRL) &= 0xfffffdff;
-+ }
-+ else {
-+ *(volatile unsigned long *)(CRT_DISPLAY_CTRL) |= 0x00000200;
-+ }
-+ return 0;
-+ }
-+ return -EINVAL;
-+}
-+
-+
-+static void __init voya_hw_init(void)
-+{
-+int i;
-+
-+ *(volatile unsigned long *)(CRT_DISPLAY_CTRL) &= 0xfffffcf0;
-+ *(volatile unsigned long *)(CRT_FB_ADDRESS) = 0x80000000 + (VOY_VRAM_TOP6 & 0x00ffffff);
-+ *(volatile unsigned long *)(CRT_FB_WIDTH) = 0x5000500;
-+ *(volatile unsigned long *)(CRT_HORIZONTAL_TOTAL) = 0x033f027f;
-+ *(volatile unsigned long *)(CRT_HORIZONTAL_SYNC) = 0x4a028b;
-+ *(volatile unsigned long *)(CRT_VERTICAL_TOTAL) = 0x20c01df;
-+ *(volatile unsigned long *)(CRT_VERTICAL_SYNC) = 0x201e9;
-+ *(volatile unsigned long *)(CRT_DISPLAY_CTRL) |= 0x70000105;
-+ //palet initialize
-+ for(i=0;i<256;i++) {
-+ *(volatile unsigned long *)(CRT_PALETTE_RAM+(i*4)) = (i << 16)+(i << 8)+i;
-+ }
-+}
-+
-+
-+
-+static struct fb_fix_screeninfo voyafb_fix __initdata = {
-+ .id = "VOYAGER CRT",
-+ .type = FB_TYPE_PACKED_PIXELS,
-+ .visual = FB_VISUAL_TRUECOLOR,
-+ .accel = FB_ACCEL_NONE,
-+ .line_length = XRES*2,
-+ .smem_len = MAX_FRAMEBUFFER_MEM_SIZE,
-+};
-+
-+
-+static void __init init_voya(struct fb_info *p, unsigned long addr)
-+{
-+ p->fix = voyafb_fix;
-+ p->fix.smem_start = addr;
-+
-+ p->var = voyafb_var;
-+
-+ p->fbops = &voyafb_ops;
-+ p->flags = FBINFO_FLAG_DEFAULT;
-+ p->pseudo_palette = pseudo_palette;
-+
-+ fb_alloc_cmap(&p->cmap, 16, 0);
-+
-+ if (register_framebuffer(p) < 0) {
-+ printk(KERN_ERR "VOYAGER GX CRT framebuffer failed to register\n");
-+ return;
-+ }
-+
-+ printk(KERN_INFO "fb%d: VOYAGER GX_CRT frame buffer (%dK RAM detected)\n",
-+ p->node, p->fix.smem_len / 1024);
-+
-+ voya_hw_init();
-+}
-+
-+int __init voyafb_init6(void)
-+{
-+ struct fb_info *p = &voyafb_info;
-+ unsigned long addr, size;
-+
-+ addr = VOY_VRAM_TOP6;
-+ size = MAX_FRAMEBUFFER_MEM_SIZE;
-+ p->screen_base = ioremap((u_long)addr,
-+ ALLOCATED_FB_MEM_SIZE);
-+ if (p->screen_base == NULL) {
-+ return -ENOMEM;
-+ }
-+ init_voya(p, addr);
-+ memset(p->screen_base, 0, MAX_FRAMEBUFFER_MEM_SIZE);
-+
-+ return 0;
-+}
-+
-+static void __exit voyafb_exit(void)
-+{
-+ *(volatile unsigned long *)(CRT_DISPLAY_CTRL) &= 0xfffffffb;
-+}
-+
-+MODULE_LICENSE("GPL");
-diff -ruN linux-2.6.17-vanilla/drivers/video/voyager/voyager_gxfb.c linux-2.6.17/drivers/video/voyager/voyager_gxfb.c
---- linux-2.6.17-vanilla/drivers/video/voyager/voyager_gxfb.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/video/voyager/voyager_gxfb.c 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1,441 @@
-+/*
-+ * linux/drivers/video/voyager_gxfb.c -- voyager panel frame buffer driver
-+ *
-+ * Copyright (C) 2003 Renesas Technology Sales Co.,Ltd.
-+ * Copyright (C) 2003 Atom Create Engineering Co.,Ltd.
-+ * Anthor : Atom Create Engineering Co.,Ltd.
-+ * Kenichi Sakuma
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file COPYING in the main directory of this archive for
-+ * more details.
-+ *
-+ * 1.00
-+ * - initial version (ks)
-+ * 1.01
-+ * - Kernel 2.6 correspondence
-+ */
-+#include <linux/config.h>
-+#include <linux/module.h>
-+#include <linux/kernel.h>
-+#include <linux/errno.h>
-+#include <linux/string.h>
-+#include <linux/mm.h>
-+#include <linux/tty.h>
-+#include <linux/slab.h>
-+#include <linux/vmalloc.h>
-+#include <linux/delay.h>
-+#include <linux/interrupt.h>
-+#include <linux/fb.h>
-+#include <linux/init.h>
-+#include <asm/io.h>
-+#include <asm/irq.h>
-+#include <asm/mach/voyagergx_reg.h>
-+#include <video/voyager.h>
-+
-+#ifdef CONFIG_FB_VOYAGER_GX_MP
-+#define MAX_VRAM MAX_FRAMEBUFFER_MEM_SIZE
-+#else
-+#define MAX_VRAM 1024*768*4
-+#endif
-+
-+#ifdef CONFIG_FB_VOYAGER_GX_MP
-+extern int voyafb_init2(void);
-+extern int voyafb_init3(void);
-+extern int voyafb_init4(void);
-+extern int voyafb_init5(void);
-+extern int voyafb_init6(void);
-+extern int voyafb_init7(void);
-+#endif
-+
-+static struct fb_info voyafb_info;
-+
-+static int voyafb_init(void);
-+static int voyafbmem_init(void);
-+static int voyafb_check_var(struct fb_var_screeninfo *var,
-+ struct fb_info *info);
-+static int voyafb_set_par(struct fb_info *info);
-+static int voyafb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
-+ u_int transp, struct fb_info *info);
-+static int voyafb_blank(int blank, struct fb_info *info);
-+static int voyafb_ioctl(struct inode*, struct file*,
-+ unsigned int, unsigned long, struct fb_info*);
-+static int voyafb_pan_display(struct fb_var_screeninfo *var,
-+ struct fb_info *info);
-+static void vsyncwait(int delay);
-+static int change_mode(void);
-+
-+typedef struct {
-+ __u32 xres;
-+ __u32 yres;
-+ __u32 clock;
-+ __u32 h_total;
-+ __u32 h_sync;
-+ __u32 v_total;
-+ __u32 v_sync;
-+} VOYA_CRT_DATA;
-+
-+static VOYA_CRT_DATA clock_data[] = {
-+ { 640, 480, 0x10021801, 0x33f027f, 0x4a028b, 0x20c01df, 0x201e9, },
-+ { 800, 600, 0x023a1801, 0x454031f, 0x9b0350, 0x2730257, 0x40258, },
-+ {1024, 768, 0x283a1801, 0x5460400, 0x800438, 0x3340300, 0x3031b, },
-+ {-1, -1, -1, -1, -1, -1, -1, },
-+};
-+static int clock_data_index = 0;
-+static int clock_data_bpp = BPP;
-+
-+static unsigned int pseudo_palette[17];
-+
-+static struct fb_ops voyafb_ops = {
-+ .owner = THIS_MODULE,
-+ .fb_check_var = voyafb_check_var,
-+ .fb_set_par = voyafb_set_par,
-+ .fb_setcolreg = voyafb_setcolreg,
-+ .fb_blank = voyafb_blank,
-+ .fb_fillrect = cfb_fillrect,
-+ .fb_copyarea = cfb_copyarea,
-+ .fb_imageblit = cfb_imageblit,
-+ .fb_ioctl = voyafb_ioctl,
-+ .fb_pan_display = voyafb_pan_display,
-+};
-+
-+static struct fb_var_screeninfo voyafb_var __initdata = {
-+ .xres = XRES,
-+ .yres = YRES,
-+ .xres_virtual = XRES,
-+ .yres_virtual = YRES,
-+ .bits_per_pixel = BPP,
-+ .red = { 11,5,0 },
-+ .green = { 5,6,0 },
-+ .blue = { 0,5,0 },
-+ .height = -1,
-+ .width = -1,
-+ .vmode = FB_VMODE_NONINTERLACED,
-+ .pixclock = 10000,
-+ .left_margin = 0,
-+ .right_margin = 0,
-+ .upper_margin = 0,
-+ .lower_margin = 0,
-+ .hsync_len = 0,
-+ .vsync_len = 0,
-+};
-+
-+static int voyafb_pan_display(struct fb_var_screeninfo *var,
-+ struct fb_info *info)
-+{
-+ info->var.xoffset = 0;
-+ info->var.yoffset = 0;
-+ info->var.vmode &= ~FB_VMODE_YWRAP;
-+
-+ return 0;
-+}
-+
-+static int voyafb_check_var(struct fb_var_screeninfo *var,
-+ struct fb_info *info)
-+{
-+#ifndef CONFIG_FB_VOYAGER_GX_MP
-+ int i;
-+#endif
-+
-+#ifdef CONFIG_FB_VOYAGER_GX_MP
-+ if (var->xres > XRES || var->yres > YRES
-+ || var->xres_virtual > XRES || var->yres_virtual > YRES
-+ || var->bits_per_pixel != BPP
-+ || var->nonstd
-+ || (var->vmode & FB_VMODE_MASK) != FB_VMODE_NONINTERLACED)
-+ return -EINVAL;
-+
-+ var->xres = var->xres_virtual = XRES;
-+ var->yres = var->yres_virtual = YRES;
-+#else
-+ if ((var->bits_per_pixel != 8) &&
-+ (var->bits_per_pixel != 16) &&
-+ (var->bits_per_pixel != 32))
-+ return -EINVAL;
-+
-+ for (i=0; clock_data[i].xres != -1; i++)
-+ if ((clock_data[i].xres == var->xres) &&
-+ (clock_data[i].yres == var->yres))
-+ break;
-+
-+ if (clock_data[i].xres == -1)
-+ return -EINVAL;
-+
-+ clock_data_index = i;
-+ clock_data_bpp = var->bits_per_pixel;
-+#endif
-+
-+ return 0;
-+}
-+
-+static int voyafb_set_par(struct fb_info *info)
-+{
-+#ifdef CONFIG_FB_VOYAGER_GX_MP
-+ info->fix.line_length = XRES * 2;
-+ info->fix.visual = FB_VISUAL_TRUECOLOR;
-+
-+ info->var.bits_per_pixel = 16;
-+ info->var.red.offset = 11;
-+ info->var.green.offset = 5;
-+ info->var.blue.offset = 0;
-+ info->var.red.length = info->var.blue.length = 5;
-+ info->var.green.length = 6;
-+#else
-+ if (clock_data_bpp == 8) {
-+ info->fix.line_length = clock_data[clock_data_index].xres;
-+ info->var.transp.offset = 0;
-+ info->var.transp.length = 0;
-+ info->var.red.length = info->var.blue.length = info->var.green.length = 8;
-+ info->var.red.offset = info->var.blue.offset = info->var.green.offset = 0;
-+ info->var.bits_per_pixel = 8;
-+ info->fix.visual = FB_VISUAL_PSEUDOCOLOR;
-+ } else if (clock_data_bpp == 16) {
-+ info->fix.line_length = clock_data[clock_data_index].xres * 2;
-+ info->var.transp.offset = 0;
-+ info->var.transp.length = 0;
-+ info->var.red.length = 5;
-+ info->var.blue.length = 5;
-+ info->var.green.length = 6;
-+ info->var.red.offset = 11;
-+ info->var.green.offset = 5;
-+ info->var.blue.offset = 0;
-+ info->var.bits_per_pixel = 16;
-+ info->fix.visual = FB_VISUAL_TRUECOLOR;
-+ } else {
-+ info->fix.line_length = clock_data[clock_data_index].xres * 4;
-+ info->var.transp.offset = 24;
-+ info->var.transp.length = 8;
-+ info->var.red.length = 8;
-+ info->var.blue.length = 8;
-+ info->var.green.length = 8;
-+ info->var.red.offset = 16;
-+ info->var.green.offset = 8;
-+ info->var.blue.offset = 0;
-+ info->var.bits_per_pixel = 32;
-+ info->fix.visual = FB_VISUAL_TRUECOLOR;
-+ }
-+ change_mode();
-+#endif
-+
-+ return 0;
-+}
-+
-+static int voyafb_blank(int blank, struct fb_info *info)
-+{
-+ return 0;
-+}
-+
-+static int voyafb_setcolreg(unsigned regno, unsigned red, unsigned green,
-+ unsigned blue, unsigned transp,
-+ struct fb_info* info)
-+{
-+ int *palette;
-+
-+ if (regno > 256)
-+ return 1;
-+
-+ palette = (int *)PANEL_PALETTE_RAM;
-+ palette[regno] = (red & 0xff) << 16 | (green & 0xff) << 8 | (blue & 0xff);
-+ ((u32 *)(info->pseudo_palette))[regno] = (red & 0xff) << 16 | (green & 0xff) << 8 | (blue & 0xff);
-+
-+ return 0;
-+}
-+
-+static int voyafb_ioctl(struct inode* inode, struct file* file,
-+ unsigned int cmd, unsigned long arg,
-+ struct fb_info* info)
-+{
-+ static long *po;
-+ int *wk;
-+
-+ if (cmd == VOYAGER_IOCTL_DEBUG_ADD) {
-+ po = (long *)arg;
-+ return 0;
-+ } else if (cmd == VOYAGER_IOCTL_DEBUG_GET) {
-+ wk = (int *)arg;
-+ *wk = *po;
-+ return 0;
-+ } else if (cmd == VOYAGER_IOCTL_DEBUG_PUT) {
-+ *po = arg;
-+ return 0;
-+ } else if (cmd == VOYAGER_IOCTL_ENABLE) {
-+ if (arg == 0)
-+ *(volatile unsigned long *)(PANEL_DISPLAY_CTRL) &= 0xfffffffb;
-+ else
-+ *(volatile unsigned long *)(PANEL_DISPLAY_CTRL) |= 0x04;
-+ return 0;
-+ } else if (cmd == VOYAGER_IOCTL_TYPE) {
-+ *(volatile unsigned long *)(PANEL_DISPLAY_CTRL) &= 0xfffffffc;
-+ *(volatile unsigned long *)(PANEL_DISPLAY_CTRL) |= (arg & 0x03);
-+ return 0;
-+ }
-+
-+ return -EINVAL;
-+}
-+
-+static void __init voya_hw_init(void)
-+{
-+ int i;
-+
-+ //DAC enable
-+ *(volatile unsigned long *)(MISC_CTRL) &= 0xffffefff;
-+
-+ //Power Gate
-+ *(volatile unsigned long *)(POWER_MODE0_GATE) |= 0x7f;
-+ *(volatile unsigned long *)(POWER_MODE1_GATE) |= 0x7f;
-+
-+ //Power Clock
-+ *(volatile unsigned long *)(POWER_MODE0_CLOCK) = 0x10021801;
-+ *(volatile unsigned long *)(POWER_MODE1_CLOCK) = 0x10021801;
-+
-+ //Power Mode Control
-+ *(volatile unsigned long *)(POWER_MODE_CTRL) = 0;
-+
-+ //Miscellaneous Timing
-+ *(volatile unsigned long *)(PANEL_DISPLAY_CTRL) &= 0xfffffffb;
-+ *(volatile unsigned long *)(VIDEO_DISPLAY_CTRL) &= 0xfffffffb;
-+ *(volatile unsigned long *)(VIDEO_ALPHA_DISPLAY_CTRL) &= 0xfffffffb;
-+ *(volatile unsigned long *)(ALPHA_DISPLAY_CTRL) &= 0xfffffffb;
-+ *(volatile unsigned long *)(PANEL_HWC_ADDRESS) &= 0x7fffffff;
-+ *(volatile unsigned long *)(CRT_DISPLAY_CTRL) &= 0xfffffffb;
-+ *(volatile unsigned long *)(CRT_HWC_ADDRESS) &= 0x7fffffff;
-+
-+ change_mode();
-+
-+ vsyncwait(4);
-+ *(volatile unsigned long *)(PANEL_DISPLAY_CTRL) |= 0x1000000;
-+ vsyncwait(4);
-+ *(volatile unsigned long *)(PANEL_DISPLAY_CTRL) |= 0x3000000;
-+ vsyncwait(4);
-+ *(volatile unsigned long *)(PANEL_DISPLAY_CTRL) |= 0x7000000;
-+
-+ //palet initialize
-+ for (i=0; i<256; i++) {
-+ *(volatile unsigned long *)(PANEL_PALETTE_RAM+(i*4)) = (i << 16)+(i << 8)+i;
-+ }
-+}
-+
-+static struct fb_fix_screeninfo voyafb_fix __initdata = {
-+ .id = "VOYAGER PANEL",
-+ .type = FB_TYPE_PACKED_PIXELS,
-+ .visual = FB_VISUAL_TRUECOLOR,
-+ .accel = FB_ACCEL_NONE,
-+ .line_length = XRES * (BPP / 8),
-+ .smem_len = MAX_VRAM,
-+};
-+
-+
-+static void __init init_voya(struct fb_info *p, unsigned long addr)
-+{
-+ p->fix = voyafb_fix;
-+ p->fix.smem_start = addr;
-+
-+ p->var = voyafb_var;
-+
-+ p->fbops = &voyafb_ops;
-+ p->flags = FBINFO_DEFAULT;
-+ p->pseudo_palette = pseudo_palette;
-+
-+ fb_alloc_cmap(&p->cmap, 16, 0);
-+
-+ if (register_framebuffer(p) < 0) {
-+ printk(KERN_ERR "VOYAGER GX PANEL framebuffer failed to register\n");
-+ return;
-+ }
-+
-+ printk(KERN_INFO "fb%d: VOYAGER GX_PANEL frame buffer (%dK RAM detected)\n",
-+ p->node, p->fix.smem_len / 1024);
-+
-+ voya_hw_init();
-+}
-+
-+static int __init voyafb_init(void)
-+{
-+ struct fb_info *p = &voyafb_info;
-+ unsigned long addr;
-+
-+ if (fb_get_options("voyager_panel_fb", NULL))
-+ return -ENODEV;
-+
-+ addr = VOY_VRAM_TOP0;
-+ p->screen_base = ioremap((u_long)addr, ALLOCATED_FB_MEM_SIZE);
-+ if (p->screen_base == NULL)
-+ return -ENOMEM;
-+
-+ init_voya(p, addr);
-+
-+ return 0;
-+}
-+
-+static void __exit voyafb_exit(void)
-+{
-+ *(volatile unsigned long *)(PANEL_DISPLAY_CTRL) &= 0xfffffffb;
-+}
-+
-+static int __init voyafbmem_init(void)
-+{
-+ voyafb_init();
-+#ifdef CONFIG_FB_VOYAGER_GX_MP
-+ voyafb_init2();
-+ voyafb_init3();
-+ voyafb_init4();
-+ voyafb_init5();
-+ voyafb_init6();
-+ voyafb_init7();
-+#endif
-+
-+ return 0;
-+}
-+
-+module_init(voyafbmem_init);
-+
-+static void vsyncwait(int delay)
-+{
-+ int reg;
-+
-+ while(delay-- > 0) {
-+ do {
-+ reg = *(volatile unsigned long *)(CMD_INTPR_STATUS);
-+ } while(reg & 0x1000);
-+ do {
-+ reg = *(volatile unsigned long *)(CMD_INTPR_STATUS);
-+ } while(!reg & 0x1000);
-+ }
-+}
-+
-+static int change_mode()
-+{
-+ int size,xres,yres;
-+
-+ xres = clock_data[clock_data_index].xres;
-+ yres = clock_data[clock_data_index].yres;
-+ size = clock_data_bpp / 8;
-+
-+ //Power Clock
-+ *(volatile unsigned long *)(POWER_MODE0_CLOCK) = clock_data[clock_data_index].clock;
-+ *(volatile unsigned long *)(POWER_MODE1_CLOCK) = clock_data[clock_data_index].clock;
-+ //PANEL register SET
-+ *(volatile unsigned long *)(PANEL_FB_ADDRESS) = 0x80000000 + (VOY_VRAM_TOP0 & 0x00ffffff);
-+ *(volatile unsigned long *)(PANEL_FB_WIDTH) = (xres * size) << 16 | (xres * size);
-+ *(volatile unsigned long *)(PANEL_WINDOW_WIDTH) = (xres << 16);
-+ *(volatile unsigned long *)(PANEL_WINDOW_HEIGHT) = (yres << 16);
-+ *(volatile unsigned long *)(PANEL_PLANE_TL) = 0;
-+ *(volatile unsigned long *)(PANEL_PLANE_BR) = ((yres-1) << 16) | (xres-1);
-+ *(volatile unsigned long *)(PANEL_HORIZONTAL_TOTAL) = clock_data[clock_data_index].h_total;
-+ *(volatile unsigned long *)(PANEL_HORIZONTAL_SYNC) = clock_data[clock_data_index].h_sync;
-+ *(volatile unsigned long *)(PANEL_VERTICAL_TOTAL) = clock_data[clock_data_index].v_total;
-+ *(volatile unsigned long *)(PANEL_VERTICAL_SYNC) = clock_data[clock_data_index].v_sync;
-+
-+ *(volatile unsigned long *)(PANEL_DISPLAY_CTRL) &= 0xffffcea8;
-+ if (size == 1)
-+ *(volatile unsigned long *)(PANEL_DISPLAY_CTRL) |= 0x3104;
-+ else if (size == 2)
-+ *(volatile unsigned long *)(PANEL_DISPLAY_CTRL) |= 0x3105;
-+ else
-+ *(volatile unsigned long *)(PANEL_DISPLAY_CTRL) |= 0x3106;
-+
-+ return(0);
-+}
-+
-+MODULE_LICENSE("GPL");
-+
-diff -ruN linux-2.6.17-vanilla/drivers/video/voyager/voyager_panelcsrfb.c linux-2.6.17/drivers/video/voyager/voyager_panelcsrfb.c
---- linux-2.6.17-vanilla/drivers/video/voyager/voyager_panelcsrfb.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/video/voyager/voyager_panelcsrfb.c 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1,240 @@
-+/*
-+ * linux/drivers/video/voyager_panelcsrfb.c -- voyager panel HWC frame buffer driver
-+ *
-+ * Copyright (C) 2003 Renesas Technology Sales Co.,Ltd.
-+ * Copyright (C) 2003 Atom Create Engineering Co.,Ltd.
-+ * Anthor : Atom Create Engineering Co.,Ltd.
-+ * Kenichi Sakuma
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file COPYING in the main directory of this archive for
-+ * more details.
-+ *
-+ * 1.00
-+ * - initial version (ks)
-+ * 1.01
-+ * - Kernel 2.6 correspondence
-+ */
-+#include <linux/config.h>
-+#include <linux/module.h>
-+#include <linux/kernel.h>
-+#include <linux/errno.h>
-+#include <linux/string.h>
-+#include <linux/mm.h>
-+#include <linux/tty.h>
-+#include <linux/slab.h>
-+#include <linux/vmalloc.h>
-+#include <linux/delay.h>
-+#include <linux/interrupt.h>
-+#include <linux/fb.h>
-+#include <linux/init.h>
-+#include <asm/io.h>
-+#include <asm/irq.h>
-+#include <asm/mach/voyagergx_reg.h>
-+#include <video/voyager.h>
-+
-+static struct fb_info voyafb_info;
-+
-+int voyafb_init5(void);
-+static int voyafb_check_var(struct fb_var_screeninfo *var,
-+ struct fb_info *info);
-+static int voyafb_set_par(struct fb_info *info);
-+static int voyafb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
-+ u_int transp, struct fb_info *info);
-+static int voyafb_blank(int blank, struct fb_info *info);
-+static int voyafb_ioctl(struct inode*, struct file*,
-+ unsigned int, unsigned long, struct fb_info*);
-+static int change_mode(struct fb_var_screeninfo *var);
-+
-+static unsigned int pseudo_palette[16];
-+
-+static struct fb_ops voyafb_ops = {
-+ .owner = THIS_MODULE,
-+ .fb_check_var = voyafb_check_var,
-+ .fb_set_par = voyafb_set_par,
-+ .fb_setcolreg = voyafb_setcolreg,
-+ .fb_blank = voyafb_blank,
-+ .fb_fillrect = cfb_fillrect,
-+ .fb_copyarea = cfb_copyarea,
-+ .fb_imageblit = cfb_imageblit,
-+ .fb_ioctl = voyafb_ioctl,
-+};
-+
-+static struct fb_var_screeninfo voyafb_var __initdata = {
-+ .xres = CSR_XRES,
-+ .yres = CSR_YRES,
-+ .xres_virtual = CSR_XRES,
-+ .yres_virtual = CSR_YRES,
-+ .bits_per_pixel = CSR_BPP,
-+ .red = { 11,5,0 },
-+ .green = { 5,6,0 },
-+ .blue = { 0,5,0 },
-+ .height = -1,
-+ .width = -1,
-+ .vmode = FB_VMODE_NONINTERLACED,
-+ .pixclock = 10000,
-+ .left_margin = 16,
-+ .right_margin = 16,
-+ .upper_margin = 16,
-+ .lower_margin = 16,
-+ .hsync_len = 8,
-+ .vsync_len = 8,
-+};
-+
-+static int voyafb_check_var(struct fb_var_screeninfo *var,
-+ struct fb_info *info)
-+{
-+ if (var->xres > CSR_XRES || var->yres > CSR_YRES
-+ || var->xres_virtual > CSR_XRES || var->yres_virtual > CSR_YRES
-+ || var->bits_per_pixel != CSR_BPP
-+ || var->nonstd
-+ || (var->vmode & FB_VMODE_MASK) != FB_VMODE_NONINTERLACED)
-+ return -EINVAL;
-+
-+ var->xres = var->xres_virtual = CSR_XRES;
-+ var->yres = var->yres_virtual = CSR_YRES;
-+ if(change_mode(var) != 0) {
-+ return -EINVAL;
-+ }
-+
-+ return 0;
-+}
-+
-+static int voyafb_set_par(struct fb_info *info)
-+{
-+ info->fix.line_length = CSR_XRES/2;
-+ info->fix.visual = FB_VISUAL_TRUECOLOR;
-+
-+ info->var.red.offset = 11;
-+ info->var.green.offset = 5;
-+ info->var.blue.offset = 0;
-+ info->var.red.length = info->var.blue.length = 5;
-+ info->var.green.length = 6;
-+ return 0;
-+}
-+
-+static int voyafb_blank(int blank, struct fb_info *info)
-+{
-+ return 1;
-+}
-+
-+static int voyafb_setcolreg(unsigned regno, unsigned red, unsigned green,
-+ unsigned blue, unsigned transp,
-+ struct fb_info* info)
-+{
-+ red >>= 11;
-+ green >>= 11;
-+ blue >>= 10;
-+
-+ if (regno < 16)
-+ ((u32 *)(info->pseudo_palette))[regno] = ((red & 31) << 6) |
-+ ((green & 31) << 11) |
-+ ((blue & 63));
-+ return 0;
-+}
-+
-+static int voyafb_ioctl(struct inode* inode, struct file* file,
-+ unsigned int cmd, unsigned long arg,
-+ struct fb_info* info)
-+{
-+ if(cmd == VOYAGER_IOCTL_ENABLE) {
-+ if(arg == 0) {
-+ *(volatile unsigned long *)(PANEL_HWC_ADDRESS) &= 0x7fffffff;
-+ }
-+ else {
-+ *(volatile unsigned long *)(PANEL_HWC_ADDRESS) |= 0x80000000;
-+ }
-+ return 0;
-+ }
-+ else if(cmd == VOYAGER_IOCTL_COLOR_1) {
-+ *(volatile unsigned long *)(PANEL_HWC_COLOR_12) = arg;
-+ return 0;
-+ }
-+ else if(cmd == VOYAGER_IOCTL_COLOR_2) {
-+ *(volatile unsigned long *)(PANEL_HWC_COLOR_3) = arg;
-+ return 0;
-+ }
-+ return -EINVAL;
-+}
-+
-+
-+static void __init voya_hw_init(void)
-+{
-+ *(volatile unsigned long *)(PANEL_HWC_ADDRESS) = (VOY_VRAM_TOP5 & 0x00ffffff);
-+ *(volatile unsigned long *)(PANEL_HWC_COLOR_12) = 0x5555aaaa;
-+ *(volatile unsigned long *)(PANEL_HWC_COLOR_3) = 0x0000ffff;
-+ change_mode(&voyafb_var);
-+}
-+
-+
-+
-+static struct fb_fix_screeninfo voyafb_fix __initdata = {
-+ .id = "VOYAGER P_CSR",
-+ .type = FB_TYPE_PACKED_PIXELS,
-+ .visual = FB_VISUAL_TRUECOLOR,
-+ .accel = FB_ACCEL_NONE,
-+ .line_length = CSR_XRES/2,
-+ .smem_len = MAX_HWC_MEM_SIZE,
-+};
-+
-+
-+static void __init init_voya(struct fb_info *p, unsigned long addr)
-+{
-+ p->fix = voyafb_fix;
-+ p->fix.smem_start = addr;
-+
-+ p->var = voyafb_var;
-+
-+ p->fbops = &voyafb_ops;
-+ p->flags = FBINFO_FLAG_DEFAULT;
-+ p->pseudo_palette = pseudo_palette;
-+
-+ fb_alloc_cmap(&p->cmap, 16, 0);
-+
-+ if (register_framebuffer(p) < 0) {
-+ printk(KERN_ERR "VOYAGER GX PANEL CSR framebuffer failed to register\n");
-+ return;
-+ }
-+
-+ printk(KERN_INFO "fb%d: VOYAGER GX_PANEL CSR frame buffer (%dK RAM detected)\n",
-+ p->node, p->fix.smem_len / 1024);
-+
-+ voya_hw_init();
-+}
-+
-+int __init voyafb_init5(void)
-+{
-+ struct fb_info *p = &voyafb_info;
-+ unsigned long addr, size;
-+
-+ addr = VOY_VRAM_TOP6;
-+ size = MAX_HWC_MEM_SIZE;
-+ p->screen_base = ioremap((u_long)addr,
-+ ALLOCATED_FB_MEM_SIZE);
-+ if (p->screen_base == NULL) {
-+ return -ENOMEM;
-+ }
-+ init_voya(p, addr);
-+ memset(p->screen_base, 0, MAX_HWC_MEM_SIZE);
-+
-+ return 0;
-+}
-+
-+static void __exit voyafb_exit(void)
-+{
-+ *(volatile unsigned long *)(PANEL_HWC_ADDRESS) &= 0x7fffffff;
-+}
-+
-+static int change_mode(struct fb_var_screeninfo *var)
-+{
-+ if((var->xoffset < 0)||(var->xoffset > XRES)||
-+ (var->yoffset < 0)||(var->yoffset > YRES))
-+ {
-+ return(-1);
-+ }
-+ *(volatile unsigned long *)(PANEL_HWC_LOCATION) = (var->yoffset << 16) |
-+ var->xoffset;
-+ return(0);
-+}
-+
-+MODULE_LICENSE("GPL");
-diff -ruN linux-2.6.17-vanilla/drivers/video/voyager/voyager_valphafb.c linux-2.6.17/drivers/video/voyager/voyager_valphafb.c
---- linux-2.6.17-vanilla/drivers/video/voyager/voyager_valphafb.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/video/voyager/voyager_valphafb.c 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1,286 @@
-+/*
-+ * linux/drivers/video/voyager_valphafb.c -- voyager video alpha frame buffer driver
-+ *
-+ * Copyright (C) 2003 Renesas Technology Sales Co.,Ltd.
-+ * Copyright (C) 2003 Atom Create Engineering Co.,Ltd.
-+ * Anthor : Atom Create Engineering Co.,Ltd.
-+ * Kenichi Sakuma
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file COPYING in the main directory of this archive for
-+ * more details.
-+ *
-+ * 1.00
-+ * - initial version (ks)
-+ * 1.01
-+ * - Kernel 2.6 correspondence
-+ */
-+#include <linux/config.h>
-+#include <linux/module.h>
-+#include <linux/kernel.h>
-+#include <linux/errno.h>
-+#include <linux/string.h>
-+#include <linux/mm.h>
-+#include <linux/tty.h>
-+#include <linux/slab.h>
-+#include <linux/vmalloc.h>
-+#include <linux/delay.h>
-+#include <linux/interrupt.h>
-+#include <linux/fb.h>
-+#include <linux/init.h>
-+#include <asm/io.h>
-+#include <asm/irq.h>
-+#include <asm/mach/voyagergx_reg.h>
-+#include <video/voyager.h>
-+
-+static struct fb_info voyafb_info;
-+
-+int voyafb_init3(void);
-+static int voyafb_check_var(struct fb_var_screeninfo *var,
-+ struct fb_info *info);
-+static int voyafb_set_par(struct fb_info *info);
-+static int voyafb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
-+ u_int transp, struct fb_info *info);
-+static int voyafb_blank(int blank, struct fb_info *info);
-+static int voyafb_ioctl(struct inode*, struct file*,
-+ unsigned int, unsigned long, struct fb_info*);
-+static int change_mode(struct fb_var_screeninfo *var);
-+
-+static unsigned int pseudo_palette[16];
-+
-+static struct fb_ops voyafb_ops = {
-+ .owner = THIS_MODULE,
-+ .fb_check_var = voyafb_check_var,
-+ .fb_set_par = voyafb_set_par,
-+ .fb_setcolreg = voyafb_setcolreg,
-+ .fb_blank = voyafb_blank,
-+ .fb_fillrect = cfb_fillrect,
-+ .fb_copyarea = cfb_copyarea,
-+ .fb_imageblit = cfb_imageblit,
-+ .fb_ioctl = voyafb_ioctl,
-+};
-+
-+static struct fb_var_screeninfo voyafb_var __initdata = {
-+ .xres = XRES,
-+ .yres = YRES,
-+ .xres_virtual = XRES,
-+ .yres_virtual = YRES,
-+ .bits_per_pixel = BPP,
-+ .red = { 11,5,0 },
-+ .green = { 5,6,0 },
-+ .blue = { 0,5,0 },
-+ .height = -1,
-+ .width = -1,
-+ .vmode = FB_VMODE_NONINTERLACED,
-+ .pixclock = 10000,
-+ .left_margin = 16,
-+ .right_margin = 16,
-+ .upper_margin = 16,
-+ .lower_margin = 16,
-+ .hsync_len = 8,
-+ .vsync_len = 8,
-+};
-+
-+static int voyafb_check_var(struct fb_var_screeninfo *var,
-+ struct fb_info *info)
-+{
-+ if (var->xres > XRES || var->yres > YRES
-+ || var->xres_virtual > XRES || var->yres_virtual > YRES
-+ || var->bits_per_pixel != BPP
-+ || var->nonstd
-+ || (var->vmode & FB_VMODE_MASK) != FB_VMODE_NONINTERLACED)
-+ return -EINVAL;
-+
-+ var->xres_virtual = XRES;
-+ var->yres_virtual = YRES;
-+
-+ if(change_mode(var) != 0) {
-+ return -EINVAL;
-+ }
-+
-+ return 0;
-+}
-+
-+static int voyafb_set_par(struct fb_info *info)
-+{
-+ info->fix.line_length = XRES*2;
-+ info->fix.visual = FB_VISUAL_TRUECOLOR;
-+
-+ info->var.red.offset = 11;
-+ info->var.green.offset = 5;
-+ info->var.blue.offset = 0;
-+ info->var.red.length = info->var.blue.length = 5;
-+ info->var.green.length = 6;
-+ return 0;
-+}
-+
-+static int voyafb_blank(int blank, struct fb_info *info)
-+{
-+ return 1;
-+}
-+
-+static int voyafb_setcolreg(unsigned regno, unsigned red, unsigned green,
-+ unsigned blue, unsigned transp,
-+ struct fb_info* info)
-+{
-+ red >>= 11;
-+ green >>= 11;
-+ blue >>= 10;
-+
-+ if (regno < 16)
-+ ((u32 *)(info->pseudo_palette))[regno] = ((red & 31) << 6) |
-+ ((green & 31) << 11) |
-+ ((blue & 63));
-+ return 0;
-+}
-+
-+static int voyafb_ioctl(struct inode* inode, struct file* file,
-+ unsigned int cmd, unsigned long arg,
-+ struct fb_info* info)
-+{
-+ if(cmd == VOYAGER_IOCTL_ENABLE) {
-+ if(arg == 0) {
-+ *(volatile unsigned long *)(VIDEO_ALPHA_DISPLAY_CTRL) &= 0xfffffffb;
-+ }
-+ else {
-+ *(volatile unsigned long *)(VIDEO_ALPHA_DISPLAY_CTRL) |= 0x04;
-+ }
-+ return 0;
-+ }
-+ else if(cmd == VOYAGER_IOCTL_ENABLE_CK) {
-+ if(arg == 0) {
-+ *(volatile unsigned long *)(VIDEO_ALPHA_DISPLAY_CTRL) &= 0xfffffff7;
-+ }
-+ else {
-+ *(volatile unsigned long *)(VIDEO_ALPHA_DISPLAY_CTRL) |= 0x08;
-+ }
-+ return 0;
-+ }
-+ else if(cmd == VOYAGER_IOCTL_ENABLE_AL) {
-+ if(arg == 0) {
-+ *(volatile unsigned long *)(VIDEO_ALPHA_DISPLAY_CTRL) &= 0xefffffff;
-+ }
-+ else {
-+ *(volatile unsigned long *)(VIDEO_ALPHA_DISPLAY_CTRL) |= 0x10000000;
-+ }
-+ return 0;
-+ }
-+ else if(cmd == VOYAGER_IOCTL_SCALE) {
-+ *(volatile unsigned long *)(VIDEO_ALPHA_SCALE) = arg;
-+ return 0;
-+ }
-+ else if(cmd == VOYAGER_IOCTL_CHKEY) {
-+ *(volatile unsigned long *)(VIDEO_ALPHA_CHROMA_KEY) = arg;
-+ return 0;
-+ }
-+ else if(cmd == VOYAGER_IOCTL_TYPE) {
-+ *(volatile unsigned long *)(VIDEO_ALPHA_DISPLAY_CTRL) &= 0xfffffffc;
-+ *(volatile unsigned long *)(VIDEO_ALPHA_DISPLAY_CTRL) |= (arg & 0x03);
-+ return 0;
-+ }
-+ else if(cmd == VOYAGER_IOCTL_ALPHA) {
-+ *(volatile unsigned long *)(VIDEO_ALPHA_DISPLAY_CTRL) &= 0xf0ffffff;
-+ *(volatile unsigned long *)(VIDEO_ALPHA_DISPLAY_CTRL) |= (arg & 0x0f) << 24;
-+ return 0;
-+ }
-+ return -EINVAL;
-+}
-+
-+static void __init voya_hw_init(void)
-+{
-+ *(volatile unsigned long *)(VIDEO_ALPHA_FB_ADDRESS) = 0x80000000 + (VOY_VRAM_TOP3 & 0x00ffffff);
-+ change_mode(&voyafb_var);
-+ *(volatile unsigned long *)(VIDEO_ALPHA_SCALE) = 0;
-+ *(volatile unsigned long *)(VIDEO_ALPHA_CHROMA_KEY) = 0;
-+
-+ *(volatile unsigned long *)(VIDEO_ALPHA_DISPLAY_CTRL) &= 0xfffffff0;
-+// *(volatile unsigned long *)(VIDEO_ALPHA_DISPLAY_CTRL) |= 0x05;
-+ *(volatile unsigned long *)(VIDEO_ALPHA_DISPLAY_CTRL) |= 0x01;
-+}
-+
-+static struct fb_fix_screeninfo voyafb_fix __initdata = {
-+ .id = "VOYAGER VALPHA",
-+ .type = FB_TYPE_PACKED_PIXELS,
-+ .visual = FB_VISUAL_TRUECOLOR,
-+ .accel = FB_ACCEL_NONE,
-+ .line_length = XRES*2,
-+ .smem_len = MAX_FRAMEBUFFER_MEM_SIZE,
-+};
-+
-+
-+static void __init init_voya(struct fb_info *p, unsigned long addr)
-+{
-+ p->fix = voyafb_fix;
-+ p->fix.smem_start = addr;
-+
-+ p->var = voyafb_var;
-+
-+ p->fbops = &voyafb_ops;
-+ p->flags = FBINFO_FLAG_DEFAULT;
-+ p->pseudo_palette = pseudo_palette;
-+
-+ fb_alloc_cmap(&p->cmap, 16, 0);
-+
-+ if (register_framebuffer(p) < 0) {
-+ printk(KERN_ERR "VOYAGER GX VIDEO ALPHA framebuffer failed to register\n");
-+ return;
-+ }
-+
-+ printk(KERN_INFO "fb%d: VOYAGER GX_VIDEO_ALPHA frame buffer (%dK RAM detected)\n",
-+ p->node, p->fix.smem_len / 1024);
-+
-+ voya_hw_init();
-+}
-+
-+int __init voyafb_init3(void)
-+{
-+ struct fb_info *p = &voyafb_info;
-+ unsigned long addr, size;
-+
-+ addr = VOY_VRAM_TOP3;
-+ size = MAX_FRAMEBUFFER_MEM_SIZE;
-+ p->screen_base = ioremap((u_long)addr,
-+ ALLOCATED_FB_MEM_SIZE);
-+ if (p->screen_base == NULL) {
-+ return -ENOMEM;
-+ }
-+ init_voya(p, addr);
-+ memset(p->screen_base, 0, MAX_FRAMEBUFFER_MEM_SIZE);
-+
-+ return 0;
-+}
-+
-+static void __exit voyafb_exit(void)
-+{
-+ *(volatile unsigned long *)(VIDEO_ALPHA_DISPLAY_CTRL) &= 0xfffffffb;
-+}
-+
-+
-+//------------------------------------------------------------------------------------
-+static int change_mode(struct fb_var_screeninfo *var)
-+{
-+int x,ali,size;
-+
-+ if((var->xres < 0)||(var->xres > XRES)||
-+ (var->yres < 0)||(var->yres > YRES)||
-+ (var->xres_virtual < 0)||(var->xres_virtual > XRES)||
-+ (var->yres_virtual < 0)||(var->yres_virtual > YRES)||
-+ (var->xoffset < 0)||(var->xoffset > XRES)||
-+ (var->yoffset < 0)||(var->yoffset > YRES))
-+ {
-+ return(-1);
-+ }
-+ x = var->xres_virtual * 2;
-+ ali = x + (x % 16);
-+ *(volatile unsigned long *)(VIDEO_ALPHA_FB_WIDTH) = (ali << 16) | ali;
-+ *(volatile unsigned long *)(VIDEO_ALPHA_PLANE_TL) = (var->yoffset << 16) |
-+ var->xoffset;
-+ *(volatile unsigned long *)(VIDEO_ALPHA_PLANE_BR) =
-+ ((var->yoffset + var->yres - 1) << 16) |
-+ (var->xoffset + var->xres - 1);
-+ size = var->xres_virtual * var->yres_virtual * var->bits_per_pixel / 8;
-+ *(volatile unsigned long *)(VIDEO_ALPHA_FB_LAST_ADDRESS) = 0x80000000 + (VOY_VRAM_TOP3 & 0x00ffffff) + size;
-+ return(0);
-+}
-+
-+MODULE_LICENSE("GPL");
-diff -ruN linux-2.6.17-vanilla/drivers/video/voyager/voyager_videofb.c linux-2.6.17/drivers/video/voyager/voyager_videofb.c
---- linux-2.6.17-vanilla/drivers/video/voyager/voyager_videofb.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/video/voyager/voyager_videofb.c 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1,273 @@
-+/*
-+ * linux/drivers/video/voyager_videofb.c -- voyager video frame buffer driver
-+ *
-+ * Copyright (C) 2003 Renesas Technology Sales Co.,Ltd.
-+ * Copyright (C) 2003 Atom Create Engineering Co.,Ltd.
-+ * Anthor : Atom Create Engineering Co.,Ltd.
-+ * Kenichi Sakuma
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file COPYING in the main directory of this archive for
-+ * more details.
-+ *
-+ * 1.00
-+ * - initial version (ks)
-+ * 1.01
-+ * - Kernel 2.6 correspondence
-+ */
-+#include <linux/config.h>
-+#include <linux/module.h>
-+#include <linux/kernel.h>
-+#include <linux/errno.h>
-+#include <linux/string.h>
-+#include <linux/mm.h>
-+#include <linux/tty.h>
-+#include <linux/slab.h>
-+#include <linux/vmalloc.h>
-+#include <linux/delay.h>
-+#include <linux/interrupt.h>
-+#include <linux/fb.h>
-+#include <linux/init.h>
-+#include <asm/io.h>
-+#include <asm/irq.h>
-+#include <asm/mach/voyagergx_reg.h>
-+#include <video/voyager.h>
-+
-+static struct fb_info voyafb_info;
-+
-+int voyafb_init2(void);
-+static int voyafb_check_var(struct fb_var_screeninfo *var,
-+ struct fb_info *info);
-+static int voyafb_set_par(struct fb_info *info);
-+static int voyafb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
-+ u_int transp, struct fb_info *info);
-+static int voyafb_blank(int blank, struct fb_info *info);
-+static int voyafb_ioctl(struct inode*, struct file*,
-+ unsigned int, unsigned long, struct fb_info*);
-+static int change_mode(struct fb_var_screeninfo *var);
-+
-+static unsigned int pseudo_palette[16];
-+
-+static struct fb_ops voyafb_ops = {
-+ .owner = THIS_MODULE,
-+ .fb_check_var = voyafb_check_var,
-+ .fb_set_par = voyafb_set_par,
-+ .fb_setcolreg = voyafb_setcolreg,
-+ .fb_blank = voyafb_blank,
-+ .fb_fillrect = cfb_fillrect,
-+ .fb_copyarea = cfb_copyarea,
-+ .fb_imageblit = cfb_imageblit,
-+ .fb_ioctl = voyafb_ioctl,
-+};
-+
-+static struct fb_var_screeninfo voyafb_var __initdata = {
-+ .xres = XRES,
-+ .yres = YRES,
-+ .xres_virtual = XRES,
-+ .yres_virtual = YRES,
-+ .bits_per_pixel = BPP,
-+ .red = { 11,5,0 },
-+ .green = { 5,6,0 },
-+ .blue = { 0,5,0 },
-+ .height = -1,
-+ .width = -1,
-+ .vmode = FB_VMODE_NONINTERLACED,
-+ .pixclock = 10000,
-+ .left_margin = 16,
-+ .right_margin = 16,
-+ .upper_margin = 16,
-+ .lower_margin = 16,
-+ .hsync_len = 8,
-+ .vsync_len = 8,
-+};
-+
-+static int voyafb_check_var(struct fb_var_screeninfo *var,
-+ struct fb_info *info)
-+{
-+ if (var->xres > XRES || var->yres > YRES
-+ || var->xres_virtual > XRES || var->yres_virtual > YRES
-+ || var->bits_per_pixel != BPP
-+ || var->nonstd
-+ || (var->vmode & FB_VMODE_MASK) != FB_VMODE_NONINTERLACED)
-+ return -EINVAL;
-+
-+ var->xres_virtual = XRES;
-+ var->yres_virtual = YRES;
-+
-+ if(change_mode(var) != 0) {
-+ return -EINVAL;
-+ }
-+
-+ return 0;
-+}
-+
-+static int voyafb_set_par(struct fb_info *info)
-+{
-+ info->fix.line_length = XRES*2;
-+ info->fix.visual = FB_VISUAL_TRUECOLOR;
-+
-+ info->var.red.offset = 11;
-+ info->var.green.offset = 5;
-+ info->var.blue.offset = 0;
-+ info->var.red.length = info->var.blue.length = 5;
-+ info->var.green.length = 6;
-+ return 0;
-+}
-+
-+static int voyafb_blank(int blank, struct fb_info *info)
-+{
-+ return 1;
-+}
-+
-+static int voyafb_setcolreg(unsigned regno, unsigned red, unsigned green,
-+ unsigned blue, unsigned transp,
-+ struct fb_info* info)
-+{
-+ red >>= 11;
-+ green >>= 11;
-+ blue >>= 10;
-+
-+ if (regno < 16)
-+ ((u32 *)(info->pseudo_palette))[regno] = ((red & 31) << 6) |
-+ ((green & 31) << 11) |
-+ ((blue & 63));
-+ return 0;
-+}
-+
-+static int voyafb_ioctl(struct inode* inode, struct file* file,
-+ unsigned int cmd, unsigned long arg,
-+ struct fb_info* info)
-+{
-+ if(cmd == VOYAGER_IOCTL_ENABLE) {
-+ if(arg == 0) {
-+ *(volatile unsigned long *)(VIDEO_DISPLAY_CTRL) &= 0xfffffffb;
-+ }
-+ else {
-+ *(volatile unsigned long *)(VIDEO_DISPLAY_CTRL) |= 0x04;
-+ }
-+ return 0;
-+ }
-+ else if(cmd == VOYAGER_IOCTL_ENABLE_CP) {
-+ if(arg == 0) {
-+ *(volatile unsigned long *)(VIDEO_DISPLAY_CTRL) &= 0xffffbfff;
-+ }
-+ else {
-+ *(volatile unsigned long *)(VIDEO_DISPLAY_CTRL) |= 0x00004000;
-+ }
-+ return 0;
-+ }
-+ else if(cmd == VOYAGER_IOCTL_SCALE) {
-+ *(volatile unsigned long *)(VIDEO_SCALE) = arg;
-+ return 0;
-+ }
-+ else if(cmd == VOYAGER_IOCTL_TYPE) {
-+ *(volatile unsigned long *)(VIDEO_DISPLAY_CTRL) &= 0xfffffffc;
-+ *(volatile unsigned long *)(VIDEO_DISPLAY_CTRL) |= (arg & 0x03);
-+ return 0;
-+ }
-+ return -EINVAL;
-+}
-+
-+static void __init voya_hw_init(void)
-+{
-+int i;
-+
-+ *(volatile unsigned long *)(VIDEO_FB_0_ADDRESS) = 0x80000000 + (VOY_VRAM_TOP1 & 0x00ffffff);
-+ *(volatile unsigned long *)(VIDEO_FB_1_ADDRESS) = 0x80000000 + (VOY_VRAM_TOP2 & 0x00ffffff);
-+ change_mode(&voyafb_var);
-+ *(volatile unsigned long *)(VIDEO_SCALE) = 0;
-+
-+ *(volatile unsigned long *)(VIDEO_DISPLAY_CTRL) &= 0xffffcea8;
-+ *(volatile unsigned long *)(VIDEO_DISPLAY_CTRL) |= 0x10003;
-+ //palet initialize
-+ for(i=0;i<256;i++) {
-+ *(volatile unsigned long *)(VIDEO_PALETTE_RAM+(i*4)) = (i << 16)+(i << 8)+i;
-+ }
-+}
-+
-+static struct fb_fix_screeninfo voyafb_fix __initdata = {
-+ .id = "VOYAGER VIDEO",
-+ .type = FB_TYPE_PACKED_PIXELS,
-+ .visual = FB_VISUAL_TRUECOLOR,
-+ .accel = FB_ACCEL_NONE,
-+ .line_length = XRES*2,
-+ .smem_len = MAX_FRAMEBUFFER_MEM_SIZE,
-+};
-+
-+
-+static void __init init_voya(struct fb_info *p, unsigned long addr)
-+{
-+ p->fix = voyafb_fix;
-+ p->fix.smem_start = addr;
-+
-+ p->var = voyafb_var;
-+
-+ p->fbops = &voyafb_ops;
-+ p->flags = FBINFO_FLAG_DEFAULT;
-+ p->pseudo_palette = pseudo_palette;
-+
-+ fb_alloc_cmap(&p->cmap, 16, 0);
-+
-+ if (register_framebuffer(p) < 0) {
-+ printk(KERN_ERR "VOYAGER GX VIDEO framebuffer failed to register\n");
-+ return;
-+ }
-+
-+ printk(KERN_INFO "fb%d: VOYAGER GX_VIDEO frame buffer (%dK RAM detected)\n",
-+ p->node, p->fix.smem_len / 1024);
-+
-+ voya_hw_init();
-+}
-+
-+int __init voyafb_init2(void)
-+{
-+ struct fb_info *p = &voyafb_info;
-+ unsigned long addr, size;
-+
-+ addr = VOY_VRAM_TOP1;
-+ size = MAX_FRAMEBUFFER_MEM_SIZE;
-+ p->screen_base = ioremap((u_long)addr,
-+ ALLOCATED_FB_MEM_SIZE);
-+ if (p->screen_base == NULL) {
-+ return -ENOMEM;
-+ }
-+ init_voya(p, addr);
-+ memset(p->screen_base, 0, MAX_FRAMEBUFFER_MEM_SIZE);
-+
-+ return 0;
-+}
-+
-+static void __exit voyafb_exit(void)
-+{
-+ *(volatile unsigned long *)(VIDEO_DISPLAY_CTRL) &= 0xfffffffb;
-+}
-+
-+
-+//------------------------------------------------------------------------------------
-+static int change_mode(struct fb_var_screeninfo *var)
-+{
-+int x,ali,size;
-+
-+ if((var->xres < 0)||(var->xres > XRES)||
-+ (var->yres < 0)||(var->yres > YRES)||
-+ (var->xres_virtual < 0)||(var->xres_virtual > XRES)||
-+ (var->yres_virtual < 0)||(var->yres_virtual > YRES)||
-+ (var->xoffset < 0)||(var->xoffset > XRES)||
-+ (var->yoffset < 0)||(var->yoffset > YRES))
-+ {
-+ return(-1);
-+ }
-+ x = var->xres_virtual * 2;
-+ ali = x + (x % 16);
-+ *(volatile unsigned long *)(VIDEO_FB_WIDTH) = (ali << 16) | ali;
-+ *(volatile unsigned long *)(VIDEO_PLANE_TL) = (var->yoffset << 16) | var->xoffset;
-+ *(volatile unsigned long *)(VIDEO_PLANE_BR) =
-+ ((var->yoffset + var->yres - 1) << 16) |
-+ (var->xoffset + var->xres - 1);
-+ size = var->xres_virtual * var->yres_virtual * var->bits_per_pixel / 8;
-+ *(volatile unsigned long *)(VIDEO_FB_0_LAST_ADDRESS) = 0x80000000 + (VOY_VRAM_TOP1 & 0x00ffffff) + size;
-+ *(volatile unsigned long *)(VIDEO_FB_1_LAST_ADDRESS) = 0x80000000 + (VOY_VRAM_TOP2 & 0x00ffffff) + size;
-+ return(0);
-+}
-+
-+MODULE_LICENSE("GPL");
-diff -ruN linux-2.6.17-vanilla/include/CVS/Entries linux-2.6.17/include/CVS/Entries
---- linux-2.6.17-vanilla/include/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/CVS/Entries 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1,3 @@
-+D/asm-sh////
-+D/linux////
-+D/video////
-diff -ruN linux-2.6.17-vanilla/include/CVS/Repository linux-2.6.17/include/CVS/Repository
---- linux-2.6.17-vanilla/include/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/CVS/Repository 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1 @@
-+linux/include
-diff -ruN linux-2.6.17-vanilla/include/CVS/Root linux-2.6.17/include/CVS/Root
---- linux-2.6.17-vanilla/include/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/CVS/Root 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/CVS/Entries linux-2.6.17/include/asm-sh/CVS/Entries
---- linux-2.6.17-vanilla/include/asm-sh/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/CVS/Entries 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1,114 @@
-+/adc.h/1.2/Fri Sep 24 14:58:00 2004/-ko/
-+/apm.h/1.1/Sun Jan 29 17:46:24 2006//
-+/atomic.h/1.6/Mon Mar 27 21:06:15 2006/-ko/
-+/bug.h/1.5/Tue Jun 21 04:15:52 2005//
-+/bugs.h/1.8/Sun Aug 21 23:47:31 2005//
-+/byteorder.h/1.4/Wed Feb 4 16:16:29 2004/-ko/
-+/cache.h/1.11/Mon Mar 27 21:06:15 2006/-ko/
-+/cacheflush.h/1.7/Sat Dec 31 11:30:47 2005//
-+/checksum.h/1.9/Sat Jan 7 20:08:29 2006//
-+/clock.h/1.2/Sun Nov 13 16:57:33 2005/-ko/
-+/current.h/1.3/Sun May 4 19:30:00 2003/-ko/
-+/delay.h/1.3/Tue May 6 23:33:19 2003/-ko/
-+/div64.h/1.5/Mon Jul 21 13:36:14 2003/-ko/
-+/dma-mapping.h/1.12/Wed Jan 4 13:24:06 2006//
-+/dma.h/1.18/Sun Oct 16 18:27:54 2005//
-+/elf.h/1.5/Tue Jan 3 22:35:58 2006/-ko/
-+/fixmap.h/1.1/Tue Mar 30 01:02:55 2004//
-+/flat.h/1.2/Wed Jun 16 15:21:48 2004/-ko/
-+/floppy.h/1.3/Tue Jun 21 04:15:52 2005/-ko/
-+/freq.h/1.4/Sat Mar 26 20:25:36 2005/-ko/
-+/hardirq.h/1.10/Mon Jan 31 20:45:09 2005/-ko/
-+/hd64461.h/1.4/Sun Jan 29 17:46:24 2006/-ko/
-+/hw_irq.h/1.4/Sun May 4 19:30:01 2003//
-+/ide.h/1.15/Tue Jan 3 22:35:58 2006/-ko/
-+/io_generic.h/1.4/Wed Nov 23 15:47:38 2005/-ko/
-+/ioctl.h/1.3/Mon Mar 27 21:06:15 2006/-ko/
-+/ioctls.h/1.5/Sun Jan 22 17:35:31 2006/-ko/
-+/ipc.h/1.5/Tue Jun 21 04:15:52 2005/-ko/
-+/irq-sh73180.h/1.2/Sun Jan 8 12:22:58 2006//
-+/keyboard.h/1.3/Fri May 16 17:19:08 2003/-ko/
-+/kgdb.h/1.6/Sun Feb 5 12:27:59 2006//
-+/kmap_types.h/1.3/Thu Mar 11 18:08:05 2004//
-+/local.h/1.1/Sun Jul 27 20:21:41 2003//
-+/machvec.h/1.13/Wed Jan 4 13:20:32 2006//
-+/mc146818rtc.h/1.5/Wed Jan 4 18:42:42 2006//
-+/microdev.h/1.1/Sat Dec 17 23:34:08 2005/-ko/
-+/mman.h/1.5/Mon Mar 27 21:06:15 2006//
-+/mmu.h/1.4/Tue Jan 3 22:51:48 2006//
-+/mmu_context.h/1.12/Thu Oct 20 22:48:05 2005//
-+/module.h/1.4/Sun Oct 26 23:34:34 2003//
-+/namei.h/1.2/Wed Apr 7 20:19:00 2004/-ko/
-+/param.h/1.4/Thu Mar 11 18:08:05 2004//
-+/pci.h/1.19/Sun Feb 5 21:55:30 2006//
-+/percpu.h/1.1/Sat Oct 19 07:31:03 2002//
-+/pgalloc.h/1.20/Sat Dec 31 11:30:47 2005/-ko/
-+/pgtable.h/1.33/Sun Jan 22 17:26:20 2006//
-+/pm.h/1.1/Sun Jan 29 17:46:24 2006//
-+/posix_types.h/1.3/Thu Oct 9 14:59:21 2003//
-+/ptrace.h/1.13/Mon Mar 27 21:06:15 2006//
-+/rwsem.h/1.2/Tue Jan 3 22:35:58 2006/-ko/
-+/scatterlist.h/1.6/Sat Sep 3 20:05:39 2005/-ko/
-+/se.h/1.1/Wed Jan 4 17:53:54 2006/-ko/
-+/se7300.h/1.1/Wed Jan 4 17:25:52 2006/-ko/
-+/se73180.h/1.1/Wed Jan 4 17:33:14 2006/-ko/
-+/se7751.h/1.1/Wed Jan 4 18:13:24 2006/-ko/
-+/sections.h/1.1/Sun Jul 27 21:05:50 2003//
-+/segment.h/1.4/Wed Jul 16 03:58:49 2003//
-+/semaphore.h/1.7/Tue Jan 3 22:35:58 2006//
-+/serial.h/1.4/Mon Aug 29 21:01:19 2005/-ko/
-+/shmparam.h/1.3/Fri Sep 24 14:58:00 2004//
-+/sigcontext.h/1.4/Wed Apr 28 08:53:25 2004/-ko/
-+/signal.h/1.7/Tue Jun 21 04:15:52 2005//
-+/smc37c93x.h/1.3/Tue May 31 14:08:54 2005/-ko/
-+/smp.h/1.6/Mon Aug 29 21:01:19 2005//
-+/snapgear.h/1.1/Wed Jan 4 18:42:42 2006/-ko/
-+/spinlock.h/1.8/Fri Oct 28 13:12:50 2005/-ko/
-+/statfs.h/1.3/Sat Jun 28 15:44:06 2003//
-+/system.h/1.24/Mon Mar 27 21:06:15 2006//
-+/systemh7751.h/1.1/Wed Jan 4 18:52:50 2006/-ko/
-+/timer.h/1.2/Sun Jan 29 17:46:24 2006/-ko/
-+/timex.h/1.6/Tue Jun 21 04:15:52 2005//
-+/titan.h/1.1/Tue Nov 29 04:01:49 2005//
-+/tlb.h/1.5/Tue May 6 23:28:51 2003//
-+/tlbflush.h/1.1/Fri Apr 12 04:26:29 2002//
-+/ubc.h/1.4/Fri Sep 24 14:58:00 2004//
-+/user.h/1.5/Fri Sep 24 14:58:00 2004/-ko/
-+/watchdog.h/1.4/Fri Sep 24 14:58:00 2004/-ko/
-+D/bigsur////
-+D/cat68701////
-+D/cpu-sh2////
-+D/cpu-sh3////
-+D/cpu-sh4////
-+D/cqreek////
-+D/dmida////
-+D/dreamcast////
-+D/ec3104////
-+D/edosk7705////
-+D/harp////
-+D/hd64465////
-+D/hp6xx////
-+D/hs7751rvoip////
-+D/landisk////
-+D/mpc1211////
-+D/overdrive////
-+D/r7780rp////
-+D/rts7751r2d////
-+D/saturn////
-+D/sh03////
-+D/sh2000////
-+/addrspace.h/1.4/Wed Jul 5 14:51:36 2006//
-+/bitops.h/1.11/Wed Jul 5 14:51:36 2006/-ko/
-+/io.h/1.20/Wed Jul 5 14:51:36 2006//
-+/kexec.h/1.2/Wed Jul 5 14:51:36 2006/-ko/
-+/page.h/1.15/Wed Jul 5 14:51:36 2006//
-+/poll.h/1.3/Wed Jul 5 14:51:37 2006//
-+/types.h/1.7/Wed Jul 5 14:51:37 2006/-ko/
-+/processor.h/1.36/Fri Jul 7 10:15:20 2006/-ko/
-+/thread_info.h/1.18/Fri Jul 7 10:15:20 2006/-ko/
-+/uaccess.h/1.17/Fri Jul 7 10:15:20 2006/-ko/
-+/unistd.h/1.29/Fri Jul 7 10:15:20 2006/-ko/
-+/rtc.h/1.6/Sat Jul 8 20:16:14 2006/-ko/
-+/irq-sh7780.h/1.3/Wed Jul 12 16:51:59 2006/-ko/
-+/irq.h/1.31/Wed Jul 12 16:51:59 2006/-ko/
-+/sfp-machine.h/1.1/Wed Jul 12 10:35:55 2006/-ko/
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/CVS/Repository linux-2.6.17/include/asm-sh/CVS/Repository
---- linux-2.6.17-vanilla/include/asm-sh/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/CVS/Repository 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1 @@
-+linux/include/asm-sh
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/CVS/Root linux-2.6.17/include/asm-sh/CVS/Root
---- linux-2.6.17-vanilla/include/asm-sh/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/CVS/Root 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/apm.h linux-2.6.17/include/asm-sh/apm.h
---- linux-2.6.17-vanilla/include/asm-sh/apm.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/apm.h 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1,46 @@
-+/*
-+ * Copyright 2006 (c) Andriy Skulysh <askulysh@gmail.com>
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ */
-+
-+#ifndef __ASM_SH_APM_H
-+#define __ASM_SH_APM_H
-+
-+#define APM_AC_OFFLINE 0
-+#define APM_AC_ONLINE 1
-+#define APM_AC_BACKUP 2
-+#define APM_AC_UNKNOWN 0xff
-+
-+#define APM_BATTERY_STATUS_HIGH 0
-+#define APM_BATTERY_STATUS_LOW 1
-+#define APM_BATTERY_STATUS_CRITICAL 2
-+#define APM_BATTERY_STATUS_CHARGING 3
-+#define APM_BATTERY_STATUS_NOT_PRESENT 4
-+#define APM_BATTERY_STATUS_UNKNOWN 0xff
-+
-+#define APM_BATTERY_LIFE_UNKNOWN 0xFFFF
-+#define APM_BATTERY_LIFE_MINUTES 0x8000
-+#define APM_BATTERY_LIFE_VALUE_MASK 0x7FFF
-+
-+#define APM_BATTERY_FLAG_HIGH (1 << 0)
-+#define APM_BATTERY_FLAG_LOW (1 << 1)
-+#define APM_BATTERY_FLAG_CRITICAL (1 << 2)
-+#define APM_BATTERY_FLAG_CHARGING (1 << 3)
-+#define APM_BATTERY_FLAG_NOT_PRESENT (1 << 7)
-+#define APM_BATTERY_FLAG_UNKNOWN 0xff
-+
-+#define APM_UNITS_MINS 0
-+#define APM_UNITS_SECS 1
-+#define APM_UNITS_UNKNOWN -1
-+
-+
-+extern int (*apm_get_info)(char *buf, char **start, off_t fpos, int length);
-+extern int apm_suspended;
-+
-+void apm_queue_event(apm_event_t event);
-+
-+#endif
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/atomic.h linux-2.6.17/include/asm-sh/atomic.h
---- linux-2.6.17-vanilla/include/asm-sh/atomic.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/atomic.h 2006-07-12 16:54:25.000000000 +0000
-@@ -14,6 +14,7 @@
- #define atomic_read(v) ((v)->counter)
- #define atomic_set(v,i) ((v)->counter = (i))
-
-+#include <linux/compiler.h>
- #include <asm/system.h>
-
- /*
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/bigsur/CVS/Entries linux-2.6.17/include/asm-sh/bigsur/CVS/Entries
---- linux-2.6.17-vanilla/include/asm-sh/bigsur/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/bigsur/CVS/Entries 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,4 @@
-+/bigsur.h/1.2/Fri Nov 1 17:19:28 2002//
-+/io.h/1.4/Mon Aug 4 01:38:06 2003//
-+/serial.h/1.4/Mon Aug 29 21:01:19 2005//
-+D
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/bigsur/CVS/Repository linux-2.6.17/include/asm-sh/bigsur/CVS/Repository
---- linux-2.6.17-vanilla/include/asm-sh/bigsur/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/bigsur/CVS/Repository 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+linux/include/asm-sh/bigsur
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/bigsur/CVS/Root linux-2.6.17/include/asm-sh/bigsur/CVS/Root
---- linux-2.6.17-vanilla/include/asm-sh/bigsur/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/bigsur/CVS/Root 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/bitops.h linux-2.6.17/include/asm-sh/bitops.h
---- linux-2.6.17-vanilla/include/asm-sh/bitops.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/bitops.h 2006-07-12 16:54:25.000000000 +0000
-@@ -6,7 +6,7 @@
- /* For __swab32 */
- #include <asm/byteorder.h>
-
--static __inline__ void set_bit(int nr, volatile void * addr)
-+static inline void set_bit(int nr, volatile void * addr)
- {
- int mask;
- volatile unsigned int *a = addr;
-@@ -24,7 +24,7 @@
- */
- #define smp_mb__before_clear_bit() barrier()
- #define smp_mb__after_clear_bit() barrier()
--static __inline__ void clear_bit(int nr, volatile void * addr)
-+static inline void clear_bit(int nr, volatile void * addr)
- {
- int mask;
- volatile unsigned int *a = addr;
-@@ -37,7 +37,7 @@
- local_irq_restore(flags);
- }
-
--static __inline__ void change_bit(int nr, volatile void * addr)
-+static inline void change_bit(int nr, volatile void * addr)
- {
- int mask;
- volatile unsigned int *a = addr;
-@@ -50,7 +50,7 @@
- local_irq_restore(flags);
- }
-
--static __inline__ int test_and_set_bit(int nr, volatile void * addr)
-+static inline int test_and_set_bit(int nr, volatile void * addr)
- {
- int mask, retval;
- volatile unsigned int *a = addr;
-@@ -66,7 +66,7 @@
- return retval;
- }
-
--static __inline__ int test_and_clear_bit(int nr, volatile void * addr)
-+static inline int test_and_clear_bit(int nr, volatile void * addr)
- {
- int mask, retval;
- volatile unsigned int *a = addr;
-@@ -82,7 +82,7 @@
- return retval;
- }
-
--static __inline__ int test_and_change_bit(int nr, volatile void * addr)
-+static inline int test_and_change_bit(int nr, volatile void * addr)
- {
- int mask, retval;
- volatile unsigned int *a = addr;
-@@ -100,7 +100,7 @@
-
- #include <asm-generic/bitops/non-atomic.h>
-
--static __inline__ unsigned long ffz(unsigned long word)
-+static inline unsigned long ffz(unsigned long word)
- {
- unsigned long result;
-
-@@ -120,7 +120,7 @@
- *
- * Undefined if no bit exists, so code should check against 0 first.
- */
--static __inline__ unsigned long __ffs(unsigned long word)
-+static inline unsigned long __ffs(unsigned long word)
- {
- unsigned long result;
-
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/bugs.h linux-2.6.17/include/asm-sh/bugs.h
---- linux-2.6.17-vanilla/include/asm-sh/bugs.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/bugs.h 2006-07-12 16:54:25.000000000 +0000
-@@ -32,6 +32,10 @@
- case CPU_SH7750 ... CPU_SH4_501:
- *p++ = '4';
- break;
-+ case CPU_SH7770 ... CPU_SH7781:
-+ *p++ = '4';
-+ *p++ = 'a';
-+ break;
- default:
- *p++ = '?';
- *p++ = '!';
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/cache.h linux-2.6.17/include/asm-sh/cache.h
---- linux-2.6.17-vanilla/include/asm-sh/cache.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/cache.h 2006-07-12 16:54:25.000000000 +0000
-@@ -10,7 +10,6 @@
- #ifdef __KERNEL__
-
- #include <asm/cpu/cache.h>
--#include <asm/cpu/cacheflush.h>
-
- #define SH_CACHE_VALID 1
- #define SH_CACHE_UPDATED 2
-@@ -23,24 +22,31 @@
- #define L1_CACHE_ALIGN(x) (((x)+(L1_CACHE_BYTES-1))&~(L1_CACHE_BYTES-1))
-
- struct cache_info {
-- unsigned int ways;
-- unsigned int sets;
-- unsigned int linesz;
--
-+ unsigned int ways; /* Number of cache ways */
-+ unsigned int sets; /* Number of cache sets */
-+ unsigned int linesz; /* Cache line size (bytes) */
-+
-+ unsigned int way_size; /* sets * line size */
-+
-+ /*
-+ * way_incr is the address offset for accessing the next way
-+ * in memory mapped cache array ops.
-+ */
- unsigned int way_incr;
--
- unsigned int entry_shift;
- unsigned int entry_mask;
-
-+ /*
-+ * Compute a mask which selects the address bits which overlap between
-+ * 1. those used to select the cache set during indexing
-+ * 2. those in the physical page number.
-+ */
-+ unsigned int alias_mask;
-+
-+ unsigned int n_aliases; /* Number of aliases */
-+
- unsigned long flags;
- };
-
--/* Flush (write-back only) a region (smaller than a page) */
--extern void __flush_wback_region(void *start, int size);
--/* Flush (write-back & invalidate) a region (smaller than a page) */
--extern void __flush_purge_region(void *start, int size);
--/* Flush (invalidate only) a region (smaller than a page) */
--extern void __flush_invalidate_region(void *start, int size);
--
- #endif /* __KERNEL__ */
- #endif /* __ASM_SH_CACHE_H */
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/cacheflush.h linux-2.6.17/include/asm-sh/cacheflush.h
---- linux-2.6.17-vanilla/include/asm-sh/cacheflush.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/cacheflush.h 2006-07-12 16:54:25.000000000 +0000
-@@ -2,6 +2,7 @@
- #define __ASM_SH_CACHEFLUSH_H
- #ifdef __KERNEL__
-
-+#include <linux/mm.h>
- #include <asm/cpu/cacheflush.h>
-
- /* Flush (write-back only) a region (smaller than a page) */
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/cat68701/CVS/Entries linux-2.6.17/include/asm-sh/cat68701/CVS/Entries
---- linux-2.6.17-vanilla/include/asm-sh/cat68701/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/cat68701/CVS/Entries 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,2 @@
-+/io.h/1.4/Mon Aug 4 01:44:40 2003//
-+D
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/cat68701/CVS/Repository linux-2.6.17/include/asm-sh/cat68701/CVS/Repository
---- linux-2.6.17-vanilla/include/asm-sh/cat68701/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/cat68701/CVS/Repository 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+linux/include/asm-sh/cat68701
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/cat68701/CVS/Root linux-2.6.17/include/asm-sh/cat68701/CVS/Root
---- linux-2.6.17-vanilla/include/asm-sh/cat68701/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/cat68701/CVS/Root 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/checksum.h linux-2.6.17/include/asm-sh/checksum.h
---- linux-2.6.17-vanilla/include/asm-sh/checksum.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/checksum.h 2006-07-12 16:54:25.000000000 +0000
-@@ -160,6 +160,7 @@
- }
-
- #define _HAVE_ARCH_IPV6_CSUM
-+#ifdef CONFIG_IPV6
- static __inline__ unsigned short int csum_ipv6_magic(struct in6_addr *saddr,
- struct in6_addr *daddr,
- __u32 len,
-@@ -195,6 +196,7 @@
-
- return csum_fold(sum);
- }
-+#endif
-
- /*
- * Copy and checksum to user
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/cpu-sh2/CVS/Entries linux-2.6.17/include/asm-sh/cpu-sh2/CVS/Entries
---- linux-2.6.17-vanilla/include/asm-sh/cpu-sh2/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/cpu-sh2/CVS/Entries 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,8 @@
-+/addrspace.h/1.1/Fri Jul 4 13:01:46 2003//
-+/cache.h/1.3/Wed Jul 16 04:08:29 2003/-ko/
-+/cacheflush.h/1.4/Tue Jun 21 04:15:52 2005/-ko/
-+/dma.h/1.1/Fri Jul 4 13:01:46 2003//
-+/shmparam.h/1.1/Fri Jul 4 13:01:46 2003//
-+/ubc.h/1.1/Fri Jul 4 13:01:46 2003//
-+/watchdog.h/1.1/Sat May 24 19:12:09 2003//
-+D
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/cpu-sh2/CVS/Repository linux-2.6.17/include/asm-sh/cpu-sh2/CVS/Repository
---- linux-2.6.17-vanilla/include/asm-sh/cpu-sh2/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/cpu-sh2/CVS/Repository 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+linux/include/asm-sh/cpu-sh2
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/cpu-sh2/CVS/Root linux-2.6.17/include/asm-sh/cpu-sh2/CVS/Root
---- linux-2.6.17-vanilla/include/asm-sh/cpu-sh2/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/cpu-sh2/CVS/Root 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/cpu-sh3/CVS/Entries linux-2.6.17/include/asm-sh/cpu-sh3/CVS/Entries
---- linux-2.6.17-vanilla/include/asm-sh/cpu-sh3/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/cpu-sh3/CVS/Entries 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,14 @@
-+/adc.h/1.2/Sun Aug 15 16:59:32 2004/-ko/
-+/addrspace.h/1.2/Sun May 4 19:30:07 2003/-ko/
-+/cache.h/1.4/Mon Aug 30 12:55:32 2004/-ko/
-+/cacheflush.h/1.8/Tue Jan 3 23:01:25 2006/-ko/
-+/dac.h/1.2/Sat Jun 5 17:17:34 2004/-ko/
-+/dma.h/1.7/Wed Jan 4 14:59:08 2006/-ko/
-+/freq.h/1.4/Sun Jan 29 17:46:24 2006/-ko/
-+/mmu_context.h/1.4/Sat Jan 7 20:05:01 2006/-ko/
-+/rtc.h/1.2/Sun May 4 19:30:08 2003/-ko/
-+/shmparam.h/1.2/Sun May 4 19:30:08 2003/-ko/
-+/timer.h/1.3/Tue May 31 14:07:35 2005/-ko/
-+/ubc.h/1.2/Sun May 4 19:30:08 2003/-ko/
-+/watchdog.h/1.1/Sat May 24 19:12:09 2003//
-+D
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/cpu-sh3/CVS/Repository linux-2.6.17/include/asm-sh/cpu-sh3/CVS/Repository
---- linux-2.6.17-vanilla/include/asm-sh/cpu-sh3/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/cpu-sh3/CVS/Repository 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+linux/include/asm-sh/cpu-sh3
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/cpu-sh3/CVS/Root linux-2.6.17/include/asm-sh/cpu-sh3/CVS/Root
---- linux-2.6.17-vanilla/include/asm-sh/cpu-sh3/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/cpu-sh3/CVS/Root 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/cpu-sh3/cache.h linux-2.6.17/include/asm-sh/cpu-sh3/cache.h
---- linux-2.6.17-vanilla/include/asm-sh/cpu-sh3/cache.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/cpu-sh3/cache.h 2006-07-12 16:54:26.000000000 +0000
-@@ -26,7 +26,7 @@
- #define CCR_CACHE_ENABLE CCR_CACHE_CE
- #define CCR_CACHE_INVALIDATE CCR_CACHE_CF
-
--#if defined(CONFIG_CPU_SUBTYPE_SH7705)
-+#if defined(CONFIG_CPU_SUBTYPE_SH7705)
- #define CCR3 0xa40000b4
- #define CCR_CACHE_16KB 0x00010000
- #define CCR_CACHE_32KB 0x00020000
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/cpu-sh3/cacheflush.h linux-2.6.17/include/asm-sh/cpu-sh3/cacheflush.h
---- linux-2.6.17-vanilla/include/asm-sh/cpu-sh3/cacheflush.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/cpu-sh3/cacheflush.h 2006-07-12 16:54:26.000000000 +0000
-@@ -10,7 +10,7 @@
- #ifndef __ASM_CPU_SH3_CACHEFLUSH_H
- #define __ASM_CPU_SH3_CACHEFLUSH_H
-
--/*
-+/*
- * Cache flushing:
- *
- * - flush_cache_all() flushes entire cache
-@@ -35,53 +35,41 @@
- /* 32KB cache, 4kb PAGE sizes need to check bit 12 */
- #define CACHE_ALIAS 0x00001000
-
--struct page;
--struct mm_struct;
--struct vm_area_struct;
--
--extern void flush_cache_all(void);
--extern void flush_cache_mm(struct mm_struct *mm);
--extern void flush_cache_range(struct vm_area_struct *vma, unsigned long start,
-- unsigned long end);
--extern void flush_cache_page(struct vm_area_struct *vma, unsigned long addr, unsigned long pfn);
--extern void flush_dcache_page(struct page *pg);
--extern void flush_icache_range(unsigned long start, unsigned long end);
--extern void flush_icache_page(struct vm_area_struct *vma, struct page *page);
--
--#define flush_dcache_mmap_lock(mapping) do { } while (0)
--#define flush_dcache_mmap_unlock(mapping) do { } while (0)
--
--/* SH3 has unified cache so no special action needed here */
--#define flush_cache_sigtramp(vaddr) do { } while (0)
--#define flush_page_to_ram(page) do { } while (0)
--#define flush_icache_user_range(vma,pg,adr,len) do { } while (0)
--
--#define p3_cache_init() do { } while (0)
--
- #define PG_mapped PG_arch_1
-
--/* We provide our own get_unmapped_area to avoid cache alias issue */
--#define HAVE_ARCH_UNMAPPED_AREA
--
-+void flush_cache_all(void);
-+void flush_cache_mm(struct mm_struct *mm);
-+void flush_cache_range(struct vm_area_struct *vma, unsigned long start,
-+ unsigned long end);
-+void flush_cache_page(struct vm_area_struct *vma, unsigned long addr, unsigned long pfn);
-+void flush_dcache_page(struct page *pg);
-+void flush_icache_range(unsigned long start, unsigned long end);
-+void flush_icache_page(struct vm_area_struct *vma, struct page *page);
- #else
--
- #define flush_cache_all() do { } while (0)
- #define flush_cache_mm(mm) do { } while (0)
- #define flush_cache_range(vma, start, end) do { } while (0)
- #define flush_cache_page(vma, vmaddr, pfn) do { } while (0)
- #define flush_dcache_page(page) do { } while (0)
--#define flush_dcache_mmap_lock(mapping) do { } while (0)
--#define flush_dcache_mmap_unlock(mapping) do { } while (0)
- #define flush_icache_range(start, end) do { } while (0)
- #define flush_icache_page(vma,pg) do { } while (0)
--#define flush_icache_user_range(vma,pg,adr,len) do { } while (0)
-+#endif
-+
-+#define flush_dcache_mmap_lock(mapping) do { } while (0)
-+#define flush_dcache_mmap_unlock(mapping) do { } while (0)
-+
-+/* SH3 has unified cache so no special action needed here */
- #define flush_cache_sigtramp(vaddr) do { } while (0)
-+#define flush_icache_user_range(vma,pg,adr,len) do { } while (0)
-
- #define p3_cache_init() do { } while (0)
-
-+/*
-+ * We provide our own get_unmapped_area to avoid cache aliasing issues
-+ * on SH7705 with a 32KB cache, and to page align addresses in the
-+ * non-aliasing case.
-+ */
- #define HAVE_ARCH_UNMAPPED_AREA
-
--#endif
--
- #endif /* __ASM_CPU_SH3_CACHEFLUSH_H */
-
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/cpu-sh3/freq.h linux-2.6.17/include/asm-sh/cpu-sh3/freq.h
---- linux-2.6.17-vanilla/include/asm-sh/cpu-sh3/freq.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/cpu-sh3/freq.h 2006-07-12 16:54:26.000000000 +0000
-@@ -18,5 +18,9 @@
- #define MIN_DIVISOR_NR 0
- #define MAX_DIVISOR_NR 4
-
-+#define FRQCR_CKOEN 0x0100
-+#define FRQCR_PLLEN 0x0080
-+#define FRQCR_PSTBY 0x0040
-+
- #endif /* __ASM_CPU_SH3_FREQ_H */
-
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/cpu-sh3/timer.h linux-2.6.17/include/asm-sh/cpu-sh3/timer.h
---- linux-2.6.17-vanilla/include/asm-sh/cpu-sh3/timer.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/cpu-sh3/timer.h 2006-07-12 16:54:26.000000000 +0000
-@@ -23,6 +23,10 @@
- * ---------------------------------------------------------------------------
- */
-
-+#if !defined(CONFIG_CPU_SUBTYPE_SH7727)
-+#define TMU_TOCR 0xfffffe90 /* Byte access */
-+#endif
-+
- #if defined(CONFIG_CPU_SUBTYPE_SH7300) || defined(CONFIG_CPU_SUBTYPE_SH7710)
- #define TMU_TSTR 0xa412fe92 /* Byte access */
-
-@@ -39,9 +43,6 @@
- #define TMU2_TCR 0xa412feb4 /* Word access */
-
- #else
--#if !defined(CONFIG_CPU_SUBTYPE_SH7727)
--#define TMU_TOCR 0xfffffe90 /* Byte access */
--#endif
- #define TMU_TSTR 0xfffffe92 /* Byte access */
-
- #define TMU0_TCOR 0xfffffe94 /* Long access */
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/cpu-sh4/CVS/Entries linux-2.6.17/include/asm-sh/cpu-sh4/CVS/Entries
---- linux-2.6.17-vanilla/include/asm-sh/cpu-sh4/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/cpu-sh4/CVS/Entries 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,14 @@
-+/addrspace.h/1.3/Wed Jan 18 05:43:01 2006/-ko/
-+/cache.h/1.5/Sun Aug 21 23:47:31 2005/-ko/
-+/cacheflush.h/1.6/Sat Dec 31 11:30:49 2005/-ko/
-+/dma-sh7780.h/1.2/Sun Feb 5 15:29:22 2006/-ko/
-+/dma.h/1.10/Sun Feb 5 15:29:22 2006/-ko/
-+/freq.h/1.4/Sun Aug 21 23:47:31 2005/-ko/
-+/mmu_context.h/1.5/Sat Jan 7 20:05:01 2006/-ko/
-+/rtc.h/1.2/Sun May 4 19:30:12 2003/-ko/
-+/shmparam.h/1.2/Sun May 4 19:30:13 2003/-ko/
-+/sq.h/1.2/Sat Jan 7 13:14:44 2006//
-+/timer.h/1.1/Thu Oct 14 12:22:25 2004/-ko/
-+/ubc.h/1.2/Sun May 4 19:30:13 2003/-ko/
-+/watchdog.h/1.1/Sat May 24 19:12:09 2003//
-+D
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/cpu-sh4/CVS/Repository linux-2.6.17/include/asm-sh/cpu-sh4/CVS/Repository
---- linux-2.6.17-vanilla/include/asm-sh/cpu-sh4/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/cpu-sh4/CVS/Repository 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+linux/include/asm-sh/cpu-sh4
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/cpu-sh4/CVS/Root linux-2.6.17/include/asm-sh/cpu-sh4/CVS/Root
---- linux-2.6.17-vanilla/include/asm-sh/cpu-sh4/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/cpu-sh4/CVS/Root 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/cpu-sh4/addrspace.h linux-2.6.17/include/asm-sh/cpu-sh4/addrspace.h
---- linux-2.6.17-vanilla/include/asm-sh/cpu-sh4/addrspace.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/cpu-sh4/addrspace.h 2006-07-12 16:54:26.000000000 +0000
-@@ -22,5 +22,8 @@
- #define P4SEG_TLB_DATA 0xf7000000
- #define P4SEG_REG_BASE 0xff000000
-
-+#define PA_AREA5_IO 0xb4000000 /* Area 5 IO Memory */
-+#define PA_AREA6_IO 0xb8000000 /* Area 6 IO Memory */
-+
- #endif /* __ASM_CPU_SH4_ADDRSPACE_H */
-
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/cpu-sh4/cache.h linux-2.6.17/include/asm-sh/cpu-sh4/cache.h
---- linux-2.6.17-vanilla/include/asm-sh/cpu-sh4/cache.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/cpu-sh4/cache.h 2006-07-12 16:54:26.000000000 +0000
-@@ -22,7 +22,9 @@
- #define CCR_CACHE_ICE 0x0100 /* Instruction Cache Enable */
- #define CCR_CACHE_ICI 0x0800 /* IC Invalidate */
- #define CCR_CACHE_IIX 0x8000 /* IC Index Enable */
-+#ifndef CONFIG_CPU_SUBTYPE_SH7780
- #define CCR_CACHE_EMODE 0x80000000 /* EMODE Enable */
-+#endif
-
- /* Default CCR setup: 8k+16k-byte cache,P1-wb,enable */
- #define CCR_CACHE_ENABLE (CCR_CACHE_OCE|CCR_CACHE_ICE)
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/cpu-sh4/cacheflush.h linux-2.6.17/include/asm-sh/cpu-sh4/cacheflush.h
---- linux-2.6.17-vanilla/include/asm-sh/cpu-sh4/cacheflush.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/cpu-sh4/cacheflush.h 2006-07-12 16:54:26.000000000 +0000
-@@ -16,34 +16,26 @@
- * caching; in which case they're only semi-broken),
- * so we need them.
- */
--
--/* Page is 4K, OC size is 16K, there are four lines. */
--#define CACHE_ALIAS 0x00003000
--
--struct page;
--struct mm_struct;
--struct vm_area_struct;
--
--extern void flush_cache_all(void);
--extern void flush_cache_mm(struct mm_struct *mm);
--extern void flush_cache_range(struct vm_area_struct *vma, unsigned long start,
-- unsigned long end);
--extern void flush_cache_page(struct vm_area_struct *vma, unsigned long addr, unsigned long pfn);
--extern void flush_dcache_page(struct page *pg);
-+void flush_cache_all(void);
-+void flush_cache_mm(struct mm_struct *mm);
-+void flush_cache_range(struct vm_area_struct *vma, unsigned long start,
-+ unsigned long end);
-+void flush_cache_page(struct vm_area_struct *vma, unsigned long addr,
-+ unsigned long pfn);
-+void flush_dcache_page(struct page *pg);
-
- #define flush_dcache_mmap_lock(mapping) do { } while (0)
- #define flush_dcache_mmap_unlock(mapping) do { } while (0)
-
--extern void flush_icache_range(unsigned long start, unsigned long end);
--extern void flush_cache_sigtramp(unsigned long addr);
--extern void flush_icache_user_range(struct vm_area_struct *vma,
-- struct page *page, unsigned long addr,
-- int len);
-+void flush_icache_range(unsigned long start, unsigned long end);
-+void flush_cache_sigtramp(unsigned long addr);
-+void flush_icache_user_range(struct vm_area_struct *vma, struct page *page,
-+ unsigned long addr, int len);
-
- #define flush_icache_page(vma,pg) do { } while (0)
-
- /* Initialization of P3 area for copy_user_page */
--extern void p3_cache_init(void);
-+void p3_cache_init(void);
-
- #define PG_mapped PG_arch_1
-
-@@ -61,4 +53,3 @@
- }
- #endif /* CONFIG_MMU */
- #endif /* __ASM_CPU_SH4_CACHEFLUSH_H */
--
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/cpu-sh4/dma-sh7780.h linux-2.6.17/include/asm-sh/cpu-sh4/dma-sh7780.h
---- linux-2.6.17-vanilla/include/asm-sh/cpu-sh4/dma-sh7780.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/cpu-sh4/dma-sh7780.h 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,39 @@
-+#ifndef __ASM_SH_CPU_SH4_DMA_SH7780_H
-+#define __ASM_SH_CPU_SH4_DMA_SH7780_H
-+
-+#define REQ_HE 0x000000C0
-+#define REQ_H 0x00000080
-+#define REQ_LE 0x00000040
-+#define TM_BURST 0x0000020
-+#define TS_8 0x00000000
-+#define TS_16 0x00000008
-+#define TS_32 0x00000010
-+#define TS_16BLK 0x00000018
-+#define TS_32BLK 0x00100000
-+
-+/*
-+ * The SuperH DMAC supports a number of transmit sizes, we list them here,
-+ * with their respective values as they appear in the CHCR registers.
-+ *
-+ * Defaults to a 64-bit transfer size.
-+ */
-+enum {
-+ XMIT_SZ_8BIT,
-+ XMIT_SZ_16BIT,
-+ XMIT_SZ_32BIT,
-+ XMIT_SZ_128BIT,
-+ XMIT_SZ_256BIT,
-+};
-+
-+/*
-+ * The DMA count is defined as the number of bytes to transfer.
-+ */
-+static unsigned int __attribute__ ((used)) ts_shift[] = {
-+ [XMIT_SZ_8BIT] = 0,
-+ [XMIT_SZ_16BIT] = 1,
-+ [XMIT_SZ_32BIT] = 2,
-+ [XMIT_SZ_128BIT] = 4,
-+ [XMIT_SZ_256BIT] = 5,
-+};
-+
-+#endif /* __ASM_SH_CPU_SH4_DMA_SH7780_H */
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/cpu-sh4/dma.h linux-2.6.17/include/asm-sh/cpu-sh4/dma.h
---- linux-2.6.17-vanilla/include/asm-sh/cpu-sh4/dma.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/cpu-sh4/dma.h 2006-07-12 16:54:26.000000000 +0000
-@@ -1,11 +1,17 @@
- #ifndef __ASM_CPU_SH4_DMA_H
- #define __ASM_CPU_SH4_DMA_H
-
-+#define DMAOR_INIT ( 0x8000 | DMAOR_DME )
-+
- #ifdef CONFIG_CPU_SH4A
- #define SH_DMAC_BASE 0xfc808020
-+
-+#define CHCR_TS_MASK 0x18
-+#define CHCR_TS_SHIFT 3
-+
-+#include <asm/cpu/dma-sh7780.h>
- #else
- #define SH_DMAC_BASE 0xffa00000
--#endif
-
- /* Definitions for the SuperH DMAC */
- #define TM_BURST 0x0000080
-@@ -19,8 +25,6 @@
-
- #define DMAOR_COD 0x00000008
-
--#define DMAOR_INIT ( 0x8000 | DMAOR_DME )
--
- /*
- * The SuperH DMAC supports a number of transmit sizes, we list them here,
- * with their respective values as they appear in the CHCR registers.
-@@ -45,5 +49,6 @@
- [XMIT_SZ_32BIT] = 2,
- [XMIT_SZ_256BIT] = 5,
- };
-+#endif
-
- #endif /* __ASM_CPU_SH4_DMA_H */
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/cpu-sh4/sq.h linux-2.6.17/include/asm-sh/cpu-sh4/sq.h
---- linux-2.6.17-vanilla/include/asm-sh/cpu-sh4/sq.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/cpu-sh4/sq.h 2006-07-12 16:54:26.000000000 +0000
-@@ -17,7 +17,7 @@
- * Store queues range from e0000000-e3fffffc, allowing approx. 64MB to be
- * mapped to any physical address space. Since data is written (and aligned)
- * to 32-byte boundaries, we need to be sure that all allocations are aligned.
-- */
-+ */
- #define SQ_SIZE 32
- #define SQ_ALIGN_MASK (~(SQ_SIZE - 1))
- #define SQ_ALIGN(addr) (((addr)+SQ_SIZE-1) & SQ_ALIGN_MASK)
-@@ -26,23 +26,10 @@
- #define SQ_QACR1 (P4SEG_REG_BASE + 0x3c)
- #define SQ_ADDRMAX (P4SEG_STORE_QUE + 0x04000000)
-
--struct sq_mapping {
-- const char *name;
--
-- unsigned long sq_addr;
-- unsigned long addr;
-- unsigned int size;
--
-- struct list_head list;
--};
--
- /* arch/sh/kernel/cpu/sh4/sq.c */
--extern struct sq_mapping *sq_remap(unsigned long phys, unsigned int size, const char *name);
--extern void sq_unmap(struct sq_mapping *map);
--
--extern void sq_clear(unsigned long addr, unsigned int len);
--extern void sq_flush(void *addr);
--extern void sq_flush_range(unsigned long start, unsigned int len);
-+unsigned long sq_remap(unsigned long phys, unsigned int size,
-+ const char *name, unsigned long flags);
-+void sq_unmap(unsigned long vaddr);
-+void sq_flush_range(unsigned long start, unsigned int len);
-
- #endif /* __ASM_CPU_SH4_SQ_H */
--
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/cqreek/CVS/Entries linux-2.6.17/include/asm-sh/cqreek/CVS/Entries
---- linux-2.6.17-vanilla/include/asm-sh/cqreek/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/cqreek/CVS/Entries 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,2 @@
-+/cqreek.h/1.2/Fri Nov 1 17:19:28 2002//
-+D
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/cqreek/CVS/Repository linux-2.6.17/include/asm-sh/cqreek/CVS/Repository
---- linux-2.6.17-vanilla/include/asm-sh/cqreek/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/cqreek/CVS/Repository 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+linux/include/asm-sh/cqreek
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/cqreek/CVS/Root linux-2.6.17/include/asm-sh/cqreek/CVS/Root
---- linux-2.6.17-vanilla/include/asm-sh/cqreek/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/cqreek/CVS/Root 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/dmida/CVS/Entries linux-2.6.17/include/asm-sh/dmida/CVS/Entries
---- linux-2.6.17-vanilla/include/asm-sh/dmida/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/dmida/CVS/Entries 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,2 @@
-+/io.h/1.2/Sun May 4 19:30:13 2003/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/dmida/CVS/Repository linux-2.6.17/include/asm-sh/dmida/CVS/Repository
---- linux-2.6.17-vanilla/include/asm-sh/dmida/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/dmida/CVS/Repository 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+linux/include/asm-sh/dmida
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/dmida/CVS/Root linux-2.6.17/include/asm-sh/dmida/CVS/Root
---- linux-2.6.17-vanilla/include/asm-sh/dmida/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/dmida/CVS/Root 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/dreamcast/CVS/Entries linux-2.6.17/include/asm-sh/dreamcast/CVS/Entries
---- linux-2.6.17-vanilla/include/asm-sh/dreamcast/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/dreamcast/CVS/Entries 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,4 @@
-+/dma.h/1.2/Wed Aug 27 12:35:06 2003//
-+/pci.h/1.1/Sun Aug 17 16:27:11 2003//
-+/sysasic.h/1.4/Sat Aug 23 00:46:39 2003//
-+D
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/dreamcast/CVS/Repository linux-2.6.17/include/asm-sh/dreamcast/CVS/Repository
---- linux-2.6.17-vanilla/include/asm-sh/dreamcast/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/dreamcast/CVS/Repository 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+linux/include/asm-sh/dreamcast
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/dreamcast/CVS/Root linux-2.6.17/include/asm-sh/dreamcast/CVS/Root
---- linux-2.6.17-vanilla/include/asm-sh/dreamcast/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/dreamcast/CVS/Root 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/ec3104/CVS/Entries linux-2.6.17/include/asm-sh/ec3104/CVS/Entries
---- linux-2.6.17-vanilla/include/asm-sh/ec3104/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/ec3104/CVS/Entries 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,5 @@
-+/ec3104.h/1.2/Fri Nov 1 17:19:29 2002//
-+/io.h/1.3/Tue Jul 29 14:27:12 2003//
-+/keyboard.h/1.2/Fri Nov 1 17:19:29 2002//
-+/serial.h/1.4/Mon Aug 29 21:01:19 2005//
-+D
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/ec3104/CVS/Repository linux-2.6.17/include/asm-sh/ec3104/CVS/Repository
---- linux-2.6.17-vanilla/include/asm-sh/ec3104/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/ec3104/CVS/Repository 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+linux/include/asm-sh/ec3104
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/ec3104/CVS/Root linux-2.6.17/include/asm-sh/ec3104/CVS/Root
---- linux-2.6.17-vanilla/include/asm-sh/ec3104/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/ec3104/CVS/Root 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/edosk7705/CVS/Entries linux-2.6.17/include/asm-sh/edosk7705/CVS/Entries
---- linux-2.6.17-vanilla/include/asm-sh/edosk7705/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/edosk7705/CVS/Entries 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,2 @@
-+/io.h/1.1/Mon Aug 30 12:55:33 2004/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/edosk7705/CVS/Repository linux-2.6.17/include/asm-sh/edosk7705/CVS/Repository
---- linux-2.6.17-vanilla/include/asm-sh/edosk7705/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/edosk7705/CVS/Repository 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+linux/include/asm-sh/edosk7705
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/edosk7705/CVS/Root linux-2.6.17/include/asm-sh/edosk7705/CVS/Root
---- linux-2.6.17-vanilla/include/asm-sh/edosk7705/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/edosk7705/CVS/Root 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/harp/CVS/Entries linux-2.6.17/include/asm-sh/harp/CVS/Entries
---- linux-2.6.17-vanilla/include/asm-sh/harp/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/harp/CVS/Entries 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1,3 @@
-+/harp.h/1.2/Fri Nov 1 17:19:29 2002//
-+/io.h/1.2/Sun May 4 19:30:14 2003/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/harp/CVS/Repository linux-2.6.17/include/asm-sh/harp/CVS/Repository
---- linux-2.6.17-vanilla/include/asm-sh/harp/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/harp/CVS/Repository 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1 @@
-+linux/include/asm-sh/harp
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/harp/CVS/Root linux-2.6.17/include/asm-sh/harp/CVS/Root
---- linux-2.6.17-vanilla/include/asm-sh/harp/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/harp/CVS/Root 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/hd64461.h linux-2.6.17/include/asm-sh/hd64461.h
---- linux-2.6.17-vanilla/include/asm-sh/hd64461.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/hd64461.h 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1,208 @@
-+#ifndef __ASM_SH_HD64461
-+#define __ASM_SH_HD64461
-+/*
-+ * $Id: hd64461.h,v 1.5 2004/03/16 00:07:51 lethal Exp $
-+ * Copyright (C) 2000 YAEGASHI Takeshi
-+ * Hitachi HD64461 companion chip support
-+ */
-+
-+/* Constants for PCMCIA mappings */
-+#define HD64461_PCC_WINDOW 0x01000000
-+
-+#define HD64461_PCC0_BASE 0xb8000000 /* area 6 */
-+#define HD64461_PCC0_ATTR (HD64461_PCC0_BASE)
-+#define HD64461_PCC0_COMM (HD64461_PCC0_BASE+HD64461_PCC_WINDOW)
-+#define HD64461_PCC0_IO (HD64461_PCC0_BASE+2*HD64461_PCC_WINDOW)
-+
-+#define HD64461_PCC1_BASE 0xb4000000 /* area 5 */
-+#define HD64461_PCC1_ATTR (HD64461_PCC1_BASE)
-+#define HD64461_PCC1_COMM (HD64461_PCC1_BASE+HD64461_PCC_WINDOW)
-+
-+#define HD64461_STBCR 0x10000
-+#define HD64461_STBCR_CKIO_STBY 0x2000
-+#define HD64461_STBCR_SAFECKE_IST 0x1000
-+#define HD64461_STBCR_SLCKE_IST 0x0800
-+#define HD64461_STBCR_SAFECKE_OST 0x0400
-+#define HD64461_STBCR_SLCKE_OST 0x0200
-+#define HD64461_STBCR_SMIAST 0x0100
-+#define HD64461_STBCR_SLCDST 0x0080
-+#define HD64461_STBCR_SPC0ST 0x0040
-+#define HD64461_STBCR_SPC1ST 0x0020
-+#define HD64461_STBCR_SAFEST 0x0010
-+#define HD64461_STBCR_STM0ST 0x0008
-+#define HD64461_STBCR_STM1ST 0x0004
-+#define HD64461_STBCR_SIRST 0x0002
-+#define HD64461_STBCR_SURTST 0x0001
-+
-+#define HD64461_SYSCR 0x10002
-+#define HD64461_SCPUCR 0x10004
-+
-+#define HD64461_LCDCBAR 0x11000
-+#define HD64461_LCDCLOR 0x11002
-+#define HD64461_LCDCCR 0x11004
-+#define HD64461_LCDCCR_STBACK 0x0400
-+#define HD64461_LCDCCR_STREQ 0x0100
-+#define HD64461_LCDCCR_MOFF 0x0080
-+#define HD64461_LCDCCR_REFSEL 0x0040
-+#define HD64461_LCDCCR_EPON 0x0020
-+#define HD64461_LCDCCR_SPON 0x0010
-+
-+#define HD64461_LDR1 0x11010
-+#define HD64461_LDR1_DON 0x01
-+#define HD64461_LDR1_DINV 0x80
-+
-+#define HD64461_LDR2 0x11012
-+#define HD64461_LDHNCR 0x11014
-+#define HD64461_LDHNSR 0x11016
-+#define HD64461_LDVNTR 0x11018
-+#define HD64461_LDVNDR 0x1101a
-+#define HD64461_LDVSPR 0x1101c
-+#define HD64461_LDR3 0x1101e
-+
-+#define HD64461_CPTWAR 0x11030
-+#define HD64461_CPTWDR 0x11032
-+#define HD64461_CPTRAR 0x11034
-+#define HD64461_CPTRDR 0x11036
-+
-+#define HD64461_GRDOR 0x11040
-+#define HD64461_GRSCR 0x11042
-+#define HD64461_GRCFGR 0x11044
-+#define HD64461_GRCFGR_ACCSTATUS 0x10
-+#define HD64461_GRCFGR_ACCRESET 0x08
-+#define HD64461_GRCFGR_ACCSTART_BITBLT 0x06
-+#define HD64461_GRCFGR_ACCSTART_LINE 0x04
-+#define HD64461_GRCFGR_COLORDEPTH16 0x01
-+
-+#define HD64461_LNSARH 0x11046
-+#define HD64461_LNSARL 0x11048
-+#define HD64461_LNAXLR 0x1104a
-+#define HD64461_LNDGR 0x1104c
-+#define HD64461_LNAXR 0x1104e
-+#define HD64461_LNERTR 0x11050
-+#define HD64461_LNMDR 0x11052
-+#define HD64461_BBTSSARH 0x11054
-+#define HD64461_BBTSSARL 0x11056
-+#define HD64461_BBTDSARH 0x11058
-+#define HD64461_BBTDSARL 0x1105a
-+#define HD64461_BBTDWR 0x1105c
-+#define HD64461_BBTDHR 0x1105e
-+#define HD64461_BBTPARH 0x11060
-+#define HD64461_BBTPARL 0x11062
-+#define HD64461_BBTMARH 0x11064
-+#define HD64461_BBTMARL 0x11066
-+#define HD64461_BBTROPR 0x11068
-+#define HD64461_BBTMDR 0x1106a
-+
-+/* PC Card Controller Registers */
-+#define HD64461_PCC0ISR 0x12000 /* socket 0 interface status */
-+#define HD64461_PCC0GCR 0x12002 /* socket 0 general control */
-+#define HD64461_PCC0CSCR 0x12004 /* socket 0 card status change */
-+#define HD64461_PCC0CSCIER 0x12006 /* socket 0 card status change interrupt enable */
-+#define HD64461_PCC0SCR 0x12008 /* socket 0 software control */
-+#define HD64461_PCC1ISR 0x12010 /* socket 1 interface status */
-+#define HD64461_PCC1GCR 0x12012 /* socket 1 general control */
-+#define HD64461_PCC1CSCR 0x12014 /* socket 1 card status change */
-+#define HD64461_PCC1CSCIER 0x12016 /* socket 1 card status change interrupt enable */
-+#define HD64461_PCC1SCR 0x12018 /* socket 1 software control */
-+
-+/* PCC Interface Status Register */
-+#define HD64461_PCCISR_READY 0x80 /* card ready */
-+#define HD64461_PCCISR_MWP 0x40 /* card write-protected */
-+#define HD64461_PCCISR_VS2 0x20 /* voltage select pin 2 */
-+#define HD64461_PCCISR_VS1 0x10 /* voltage select pin 1 */
-+#define HD64461_PCCISR_CD2 0x08 /* card detect 2 */
-+#define HD64461_PCCISR_CD1 0x04 /* card detect 1 */
-+#define HD64461_PCCISR_BVD2 0x02 /* battery 1 */
-+#define HD64461_PCCISR_BVD1 0x01 /* battery 1 */
-+
-+#define HD64461_PCCISR_PCD_MASK 0x0c /* card detect */
-+#define HD64461_PCCISR_BVD_MASK 0x03 /* battery voltage */
-+#define HD64461_PCCISR_BVD_BATGOOD 0x03 /* battery good */
-+#define HD64461_PCCISR_BVD_BATWARN 0x01 /* battery low warning */
-+#define HD64461_PCCISR_BVD_BATDEAD1 0x02 /* battery dead */
-+#define HD64461_PCCISR_BVD_BATDEAD2 0x00 /* battery dead */
-+
-+/* PCC General Control Register */
-+#define HD64461_PCCGCR_DRVE 0x80 /* output drive */
-+#define HD64461_PCCGCR_PCCR 0x40 /* PC card reset */
-+#define HD64461_PCCGCR_PCCT 0x20 /* PC card type, 1=IO&mem, 0=mem */
-+#define HD64461_PCCGCR_VCC0 0x10 /* voltage control pin VCC0SEL0 */
-+#define HD64461_PCCGCR_PMMOD 0x08 /* memory mode */
-+#define HD64461_PCCGCR_PA25 0x04 /* pin A25 */
-+#define HD64461_PCCGCR_PA24 0x02 /* pin A24 */
-+#define HD64461_PCCGCR_REG 0x01 /* pin PCC0REG# */
-+
-+/* PCC Card Status Change Register */
-+#define HD64461_PCCCSCR_SCDI 0x80 /* sw card detect intr */
-+#define HD64461_PCCCSCR_SRV1 0x40 /* reserved */
-+#define HD64461_PCCCSCR_IREQ 0x20 /* IREQ intr req */
-+#define HD64461_PCCCSCR_SC 0x10 /* STSCHG (status change) pin */
-+#define HD64461_PCCCSCR_CDC 0x08 /* CD (card detect) change */
-+#define HD64461_PCCCSCR_RC 0x04 /* READY change */
-+#define HD64461_PCCCSCR_BW 0x02 /* battery warning change */
-+#define HD64461_PCCCSCR_BD 0x01 /* battery dead change */
-+
-+/* PCC Card Status Change Interrupt Enable Register */
-+#define HD64461_PCCCSCIER_CRE 0x80 /* change reset enable */
-+#define HD64461_PCCCSCIER_IREQE_MASK 0x60 /* IREQ enable */
-+#define HD64461_PCCCSCIER_IREQE_DISABLED 0x00 /* IREQ disabled */
-+#define HD64461_PCCCSCIER_IREQE_LEVEL 0x20 /* IREQ level-triggered */
-+#define HD64461_PCCCSCIER_IREQE_FALLING 0x40 /* IREQ falling-edge-trig */
-+#define HD64461_PCCCSCIER_IREQE_RISING 0x60 /* IREQ rising-edge-trig */
-+
-+#define HD64461_PCCCSCIER_SCE 0x10 /* status change enable */
-+#define HD64461_PCCCSCIER_CDE 0x08 /* card detect change enable */
-+#define HD64461_PCCCSCIER_RE 0x04 /* ready change enable */
-+#define HD64461_PCCCSCIER_BWE 0x02 /* battery warn change enable */
-+#define HD64461_PCCCSCIER_BDE 0x01 /* battery dead change enable*/
-+
-+/* PCC Software Control Register */
-+#define HD64461_PCCSCR_VCC1 0x02 /* voltage control pin 1 */
-+#define HD64461_PCCSCR_SWP 0x01 /* write protect */
-+
-+#define HD64461_P0OCR 0x1202a
-+#define HD64461_P1OCR 0x1202c
-+#define HD64461_PGCR 0x1202e
-+
-+#define HD64461_GPACR 0x14000
-+#define HD64461_GPBCR 0x14002
-+#define HD64461_GPCCR 0x14004
-+#define HD64461_GPDCR 0x14006
-+#define HD64461_GPADR 0x14010
-+#define HD64461_GPBDR 0x14012
-+#define HD64461_GPCDR 0x14014
-+#define HD64461_GPDDR 0x14016
-+#define HD64461_GPAICR 0x14020
-+#define HD64461_GPBICR 0x14022
-+#define HD64461_GPCICR 0x14024
-+#define HD64461_GPDICR 0x14026
-+#define HD64461_GPAISR 0x14040
-+#define HD64461_GPBISR 0x14042
-+#define HD64461_GPCISR 0x14044
-+#define HD64461_GPDISR 0x14046
-+
-+#define HD64461_NIRR 0x15000
-+#define HD64461_NIMR 0x15002
-+
-+#define HD64461_IRQBASE OFFCHIP_IRQ_BASE
-+#define HD64461_IRQ_NUM 16
-+
-+#define HD64461_IRQ_UART (HD64461_IRQBASE+5)
-+#define HD64461_IRQ_IRDA (HD64461_IRQBASE+6)
-+#define HD64461_IRQ_TMU1 (HD64461_IRQBASE+9)
-+#define HD64461_IRQ_TMU0 (HD64461_IRQBASE+10)
-+#define HD64461_IRQ_GPIO (HD64461_IRQBASE+11)
-+#define HD64461_IRQ_AFE (HD64461_IRQBASE+12)
-+#define HD64461_IRQ_PCC1 (HD64461_IRQBASE+13)
-+#define HD64461_IRQ_PCC0 (HD64461_IRQBASE+14)
-+
-+#define __IO_PREFIX hd64461
-+#include <asm/io_generic.h>
-+
-+/* arch/sh/cchips/hd6446x/hd64461/setup.c */
-+int hd64461_irq_demux(int irq);
-+void hd64461_register_irq_demux(int irq,
-+ int (*demux) (int irq, void *dev), void *dev);
-+void hd64461_unregister_irq_demux(int irq);
-+
-+#endif
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/hd64465/CVS/Entries linux-2.6.17/include/asm-sh/hd64465/CVS/Entries
---- linux-2.6.17-vanilla/include/asm-sh/hd64465/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/hd64465/CVS/Entries 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,4 @@
-+/gpio.h/1.3/Sun May 4 19:30:14 2003//
-+/hd64465.h/1.3/Sun May 4 19:30:15 2003//
-+/io.h/1.4/Sun Aug 3 03:05:11 2003//
-+D
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/hd64465/CVS/Repository linux-2.6.17/include/asm-sh/hd64465/CVS/Repository
---- linux-2.6.17-vanilla/include/asm-sh/hd64465/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/hd64465/CVS/Repository 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+linux/include/asm-sh/hd64465
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/hd64465/CVS/Root linux-2.6.17/include/asm-sh/hd64465/CVS/Root
---- linux-2.6.17-vanilla/include/asm-sh/hd64465/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/hd64465/CVS/Root 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/hp6xx/CVS/Entries linux-2.6.17/include/asm-sh/hp6xx/CVS/Entries
---- linux-2.6.17-vanilla/include/asm-sh/hp6xx/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/hp6xx/CVS/Entries 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,4 @@
-+/hp6xx.h/1.3/Sun Jan 29 17:46:24 2006/-ko/
-+/ide.h/1.2/Sat Jun 5 17:17:34 2004/-ko/
-+/io.h/1.3/Wed Jan 4 14:53:17 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/hp6xx/CVS/Repository linux-2.6.17/include/asm-sh/hp6xx/CVS/Repository
---- linux-2.6.17-vanilla/include/asm-sh/hp6xx/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/hp6xx/CVS/Repository 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+linux/include/asm-sh/hp6xx
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/hp6xx/CVS/Root linux-2.6.17/include/asm-sh/hp6xx/CVS/Root
---- linux-2.6.17-vanilla/include/asm-sh/hp6xx/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/hp6xx/CVS/Root 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/hp6xx/hp6xx.h linux-2.6.17/include/asm-sh/hp6xx/hp6xx.h
---- linux-2.6.17-vanilla/include/asm-sh/hp6xx/hp6xx.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/hp6xx/hp6xx.h 2006-07-12 16:54:26.000000000 +0000
-@@ -2,16 +2,33 @@
- #define __ASM_SH_HP6XX_H
-
- /*
-- * Copyright (C) 2003 Andriy Skulysh
-+ * Copyright (C) 2003, 2004, 2005 Andriy Skulysh
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
- */
-
--#define HP680_TS_IRQ IRQ3_IRQ
-+#define HP680_BTN_IRQ IRQ0_IRQ
-+#define HP680_TS_IRQ IRQ3_IRQ
-+#define HP680_HD64461_IRQ IRQ4_IRQ
-
- #define DAC_LCD_BRIGHTNESS 0
- #define DAC_SPEAKER_VOLUME 1
-
-+#define PGDR_OPENED 0x01
-+#define PGDR_MAIN_BATTERY_OUT 0x04
-+#define PGDR_PLAY_BUTTON 0x08
-+#define PGDR_REWIND_BUTTON 0x10
-+#define PGDR_RECORD_BUTTON 0x20
-+
- #define PHDR_TS_PEN_DOWN 0x08
-
-+#define PJDR_LED_BLINK 0x02
-+
-+#define PKDR_LED_GREEN 0x10
-+
- #define SCPDR_TS_SCAN_ENABLE 0x20
- #define SCPDR_TS_SCAN_Y 0x02
- #define SCPDR_TS_SCAN_X 0x01
-@@ -21,11 +38,43 @@
-
- #define ADC_CHANNEL_TS_Y 1
- #define ADC_CHANNEL_TS_X 2
-+#define ADC_CHANNEL_BATTERY 3
-+#define ADC_CHANNEL_BACKUP 4
-+#define ADC_CHANNEL_CHARGE 5
-
- #define HD64461_GPADR_SPEAKER 0x01
- #define HD64461_GPADR_PCMCIA0 (0x02|0x08)
-+
- #define HD64461_GPBDR_LCDOFF 0x01
-+#define HD64461_GPBDR_LCD_CONTRAST_MASK 0x78
- #define HD64461_GPBDR_LED_RED 0x80
-
-+#include <asm/hd64461.h>
-+#include <asm/io.h>
-+
-+#define PJDR 0xa4000130
-+#define PKDR 0xa4000132
-+
-+static inline void hp6xx_led_red(int on)
-+{
-+ u16 v16;
-+ v16 = ctrl_inw(CONFIG_HD64461_IOBASE + HD64461_GPBDR - 0x10000);
-+ if (on)
-+ ctrl_outw(v16 & (~HD64461_GPBDR_LED_RED), CONFIG_HD64461_IOBASE + HD64461_GPBDR - 0x10000);
-+ else
-+ ctrl_outw(v16 | HD64461_GPBDR_LED_RED, CONFIG_HD64461_IOBASE + HD64461_GPBDR - 0x10000);
-+}
-+
-+static inline void hp6xx_led_green(int on)
-+{
-+ u8 v8;
-+
-+ v8 = ctrl_inb(PKDR);
-+ if (on)
-+ ctrl_outb(v8 & (~PKDR_LED_GREEN), PKDR);
-+ else
-+ ctrl_outb(v8 | PKDR_LED_GREEN, PKDR);
-+}
-+
-
- #endif /* __ASM_SH_HP6XX_H */
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/hp6xx/io.h linux-2.6.17/include/asm-sh/hp6xx/io.h
---- linux-2.6.17-vanilla/include/asm-sh/hp6xx/io.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/hp6xx/io.h 2006-07-12 16:54:26.000000000 +0000
-@@ -4,7 +4,7 @@
- /*
- * Nothing special here.. just use the generic cchip io routines.
- */
--#include <asm/hd64461/io.h>
-+#include <asm/hd64461.h>
-
- #endif /* __ASM_SH_HP6XX_IO_H */
-
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/hs7751rvoip/CVS/Entries linux-2.6.17/include/asm-sh/hs7751rvoip/CVS/Entries
---- linux-2.6.17-vanilla/include/asm-sh/hs7751rvoip/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/hs7751rvoip/CVS/Entries 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,3 @@
-+/hs7751rvoip.h/1.4/Wed Jan 18 05:43:01 2006/-ko/
-+/ide.h/1.1/Wed Apr 21 00:09:19 2004/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/hs7751rvoip/CVS/Repository linux-2.6.17/include/asm-sh/hs7751rvoip/CVS/Repository
---- linux-2.6.17-vanilla/include/asm-sh/hs7751rvoip/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/hs7751rvoip/CVS/Repository 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+linux/include/asm-sh/hs7751rvoip
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/hs7751rvoip/CVS/Root linux-2.6.17/include/asm-sh/hs7751rvoip/CVS/Root
---- linux-2.6.17-vanilla/include/asm-sh/hs7751rvoip/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/hs7751rvoip/CVS/Root 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/hs7751rvoip/hs7751rvoip.h linux-2.6.17/include/asm-sh/hs7751rvoip/hs7751rvoip.h
---- linux-2.6.17-vanilla/include/asm-sh/hs7751rvoip/hs7751rvoip.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/hs7751rvoip/hs7751rvoip.h 2006-07-12 16:54:26.000000000 +0000
-@@ -19,8 +19,6 @@
- #define PA_OUTPORTR 0xa400000e /* Output Port Reguster */
- #define PA_VERREG 0xa4000014 /* FPGA Version Register */
-
--#define PA_AREA5_IO 0xb4000000 /* Area 5 IO Memory */
--#define PA_AREA6_IO 0xb8000000 /* Area 6 IO Memory */
- #define PA_IDE_OFFSET 0x1f0 /* CF IDE Offset */
-
- #define IRLCNTR1 (PA_BCR + 0) /* Interrupt Control Register1 */
-@@ -44,4 +42,13 @@
- #define IRQ_RINGING 4 /* Ringing IRQ */
- #define IRQ_CODEC 5 /* CODEC IRQ */
-
-+#define __IO_PREFIX hs7751rvoip
-+#include <asm/io_generic.h>
-+
-+/* arch/sh/boards/renesas/hs7751rvoip/irq.c */
-+void init_hs7751rvoip_IRQ(void);
-+
-+/* arch/sh/boards/renesas/hs7751rvoip/io.c */
-+void *hs7751rvoip_ioremap(unsigned long, unsigned long);
-+
- #endif /* __ASM_SH_RENESAS_HS7751RVOIP */
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/io.h linux-2.6.17/include/asm-sh/io.h
---- linux-2.6.17-vanilla/include/asm-sh/io.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/io.h 2006-07-12 16:54:25.000000000 +0000
-@@ -210,6 +210,11 @@
- *(volatile unsigned long*)addr = b;
- }
-
-+static inline void ctrl_delay(void)
-+{
-+ ctrl_inw(P2SEG);
-+}
-+
- #define IO_SPACE_LIMIT 0xffffffff
-
- /*
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/irq-sh73180.h linux-2.6.17/include/asm-sh/irq-sh73180.h
---- linux-2.6.17-vanilla/include/asm-sh/irq-sh73180.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/irq-sh73180.h 2006-07-12 16:54:25.000000000 +0000
-@@ -12,14 +12,14 @@
- #undef INTC_IPRC
- #undef INTC_IPRD
-
--#undef DMTE0_IRQ
--#undef DMTE1_IRQ
--#undef DMTE2_IRQ
--#undef DMTE3_IRQ
--#undef DMTE4_IRQ
--#undef DMTE5_IRQ
--#undef DMTE6_IRQ
--#undef DMTE7_IRQ
-+#undef DMTE0_IRQ
-+#undef DMTE1_IRQ
-+#undef DMTE2_IRQ
-+#undef DMTE3_IRQ
-+#undef DMTE4_IRQ
-+#undef DMTE5_IRQ
-+#undef DMTE6_IRQ
-+#undef DMTE7_IRQ
- #undef DMAE_IRQ
- #undef DMA_IPR_ADDR
- #undef DMA_IPR_POS
-@@ -180,7 +180,7 @@
- #define FLSTE_IRQ 92
- #define FLTEND_IRQ 93
- #define FLTRQ0_IRQ 94
--#define FLTRQ1_IRQ 95
-+#define FLTRQ1_IRQ 95
- #define FLCTL_IPR_ADDR INTC_IPRH
- #define FLCTL_IPR_POS 1
- #define FLCTL_PRIORITY 3
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/irq-sh7780.h linux-2.6.17/include/asm-sh/irq-sh7780.h
---- linux-2.6.17-vanilla/include/asm-sh/irq-sh7780.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/irq-sh7780.h 2006-07-12 16:54:25.000000000 +0000
-@@ -145,11 +145,6 @@
- #define TMU_CH5_IPR_POS 1
- #define TMU_CH5_PRIORITY 2
-
--#define RTC_IRQ 22
--#define RTC_IPR_ADDR INTC_INT2PRI1
--#define RTC_IPR_POS 0
--#define RTC_PRIORITY TIMER_PRIORITY
--
- /* SCIF0 */
- #define SCIF0_ERI_IRQ 40
- #define SCIF0_RXI_IRQ 41
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/irq.h linux-2.6.17/include/asm-sh/irq.h
---- linux-2.6.17-vanilla/include/asm-sh/irq.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/irq.h 2006-07-12 16:54:25.000000000 +0000
-@@ -336,6 +336,11 @@
- extern unsigned short *irq_mask_register;
-
- /*
-+ * PINT IRQs
-+ */
-+void init_IRQ_pint(void);
-+
-+/*
- * Function for "on chip support modules".
- */
- extern void make_ipr_irq(unsigned int irq, unsigned int addr,
-@@ -578,7 +583,7 @@
- #define NR_INTC2_IRQS 64
- #elif defined(CONFIG_CPU_SUBTYPE_SH7780)
- #define INTC2_BASE 0xffd40000
--#define INTC2_FIRST_IRQ 22
-+#define INTC2_FIRST_IRQ 21
- #define INTC2_INTMSK_OFFSET (0x38)
- #define INTC2_INTMSKCLR_OFFSET (0x3c)
- #define NR_INTC2_IRQS 60
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/kexec.h linux-2.6.17/include/asm-sh/kexec.h
---- linux-2.6.17-vanilla/include/asm-sh/kexec.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/kexec.h 2006-07-12 16:54:25.000000000 +0000
-@@ -23,6 +23,8 @@
- /* The native architecture */
- #define KEXEC_ARCH KEXEC_ARCH_SH
-
-+#define MAX_NOTE_BYTES 1024
-+
- #ifndef __ASSEMBLY__
-
- extern void machine_shutdown(void);
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/kgdb.h linux-2.6.17/include/asm-sh/kgdb.h
---- linux-2.6.17-vanilla/include/asm-sh/kgdb.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/kgdb.h 2006-07-12 16:54:25.000000000 +0000
-@@ -128,4 +128,19 @@
- #define KGDB_ASSERT(condition, message)
- #endif
-
-+/* Taken from sh-stub.c of GDB 4.18 */
-+static const char hexchars[] = "0123456789abcdef";
-+
-+/* Get high hex bits */
-+static inline char highhex(const int x)
-+{
-+ return hexchars[(x >> 4) & 0xf];
-+}
-+
-+/* Get low hex bits */
-+static inline char lowhex(const int x)
-+{
-+ return hexchars[x & 0xf];
-+}
-+
- #endif
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/landisk/CVS/Entries linux-2.6.17/include/asm-sh/landisk/CVS/Entries
---- linux-2.6.17-vanilla/include/asm-sh/landisk/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/landisk/CVS/Entries 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,4 @@
-+/gio.h/1.1/Thu Sep 29 07:23:18 2005/-ko/
-+/ide.h/1.1/Thu Sep 29 07:23:18 2005/-ko/
-+/iodata_landisk.h/1.3/Wed Jan 18 05:43:01 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/landisk/CVS/Repository linux-2.6.17/include/asm-sh/landisk/CVS/Repository
---- linux-2.6.17-vanilla/include/asm-sh/landisk/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/landisk/CVS/Repository 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+linux/include/asm-sh/landisk
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/landisk/CVS/Root linux-2.6.17/include/asm-sh/landisk/CVS/Root
---- linux-2.6.17-vanilla/include/asm-sh/landisk/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/landisk/CVS/Root 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/landisk/gio.h linux-2.6.17/include/asm-sh/landisk/gio.h
---- linux-2.6.17-vanilla/include/asm-sh/landisk/gio.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/landisk/gio.h 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,45 @@
-+#ifndef __ASM_SH_LANDISK_GIO_H
-+#define __ASM_SH_LANDISK_GIO_H
-+
-+#include <linux/ioctl.h>
-+
-+/* version */
-+#define VERSION_STR "1.00"
-+
-+/* Driver name */
-+#define GIO_DRIVER_NAME "/dev/giodrv"
-+
-+/* Use 'k' as magic number */
-+#define GIODRV_IOC_MAGIC 'k'
-+
-+#define GIODRV_IOCRESET _IO(GIODRV_IOC_MAGIC, 0)
-+/*
-+ * S means "Set" through a ptr,
-+ * T means "Tell" directly
-+ * G means "Get" (to a pointed var)
-+ * Q means "Query", response is on the return value
-+ * X means "eXchange": G and S atomically
-+ * H means "sHift": T and Q atomically
-+ */
-+#define GIODRV_IOCSGIODATA1 _IOW(GIODRV_IOC_MAGIC, 1, unsigned char *)
-+#define GIODRV_IOCGGIODATA1 _IOR(GIODRV_IOC_MAGIC, 2, unsigned char *)
-+#define GIODRV_IOCSGIODATA2 _IOW(GIODRV_IOC_MAGIC, 3, unsigned short *)
-+#define GIODRV_IOCGGIODATA2 _IOR(GIODRV_IOC_MAGIC, 4, unsigned short *)
-+#define GIODRV_IOCSGIODATA4 _IOW(GIODRV_IOC_MAGIC, 5, unsigned long *)
-+#define GIODRV_IOCGGIODATA4 _IOR(GIODRV_IOC_MAGIC, 6, unsigned long *)
-+#define GIODRV_IOCSGIOSETADDR _IOW(GIODRV_IOC_MAGIC, 7, unsigned long *)
-+#define GIODRV_IOCHARDRESET _IO(GIODRV_IOC_MAGIC, 8) /* debugging tool */
-+
-+#define GIODRV_IOCSGIO_LED _IOW(GIODRV_IOC_MAGIC, 9, unsigned long *)
-+#define GIODRV_IOCGGIO_LED _IOR(GIODRV_IOC_MAGIC, 10, unsigned long *)
-+#define GIODRV_IOCSGIO_BUZZER _IOW(GIODRV_IOC_MAGIC, 11, unsigned long *)
-+#define GIODRV_IOCGGIO_LANDISK _IOR(GIODRV_IOC_MAGIC, 14, unsigned long *)
-+#define GIODRV_IOCGGIO_BTN _IOR(GIODRV_IOC_MAGIC, 22, unsigned long *)
-+#define GIODRV_IOCSGIO_BTNPID _IOW(GIODRV_IOC_MAGIC, 23, unsigned long *)
-+#define GIODRV_IOCGGIO_BTNPID _IOR(GIODRV_IOC_MAGIC, 24, unsigned long *)
-+
-+#define GIODRV_IOC_MAXNR 8
-+#define GIO_READ 0x00000000
-+#define GIO_WRITE 0x00000001
-+
-+#endif /* __ASM_SH_LANDISK_GIO_H */
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/landisk/ide.h linux-2.6.17/include/asm-sh/landisk/ide.h
---- linux-2.6.17-vanilla/include/asm-sh/landisk/ide.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/landisk/ide.h 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,14 @@
-+/*
-+ * modifed by kogiidena
-+ * 2005.03.03
-+ */
-+
-+#ifndef __ASM_SH_LANDISK_IDE_H
-+#define __ASM_SH_LANDISK_IDE_H
-+
-+/* Nothing to see here.. */
-+#include <asm/landisk/iodata_landisk.h>
-+#define IRQ_CFCARD IRQ_FATA /* CF Card IRQ */
-+#define IRQ_PCMCIA IRQ_ATA /* PCMCIA IRQ */
-+
-+#endif /* __ASM_SH_LANDISK_IDE_H */
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/landisk/iodata_landisk.h linux-2.6.17/include/asm-sh/landisk/iodata_landisk.h
---- linux-2.6.17-vanilla/include/asm-sh/landisk/iodata_landisk.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/landisk/iodata_landisk.h 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,79 @@
-+#ifndef __ASM_SH_IODATA_LANDISK_H
-+#define __ASM_SH_IODATA_LANDISK_H
-+
-+/*
-+ * linux/include/asm-sh/landisk/iodata_landisk.h
-+ *
-+ * Copyright (C) 2000 Atom Create Engineering Co., Ltd.
-+ *
-+ * IO-DATA LANDISK support
-+ */
-+
-+/* Box specific addresses. */
-+
-+#define PA_USB 0xa4000000 /* USB Controller M66590 */
-+
-+#define PA_ATARST 0xb0000000 /* ATA/FATA Access Control Register */
-+#define PA_LED 0xb0000001 /* LED Control Register */
-+#define PA_STATUS 0xb0000002 /* Switch Status Register */
-+#define PA_SHUTDOWN 0xb0000003 /* Shutdown Control Register */
-+#define PA_PCIPME 0xb0000004 /* PCI PME Status Register */
-+#define PA_IMASK 0xb0000005 /* Interrupt Mask Register */
-+/* 2003.10.31 I-O DATA NSD NWG add. for shutdown port clear */
-+#define PA_PWRINT_CLR 0xb0000006 /* Shutdown Interrupt clear Register */
-+
-+#define PA_LCD_CLRDSP 0x00 /* LCD Clear Display Offset */
-+#define PA_LCD_RTNHOME 0x00 /* LCD Return Home Offset */
-+#define PA_LCD_ENTMODE 0x00 /* LCD Entry Mode Offset */
-+#define PA_LCD_DSPCTL 0x00 /* LCD Display ON/OFF Control Offset */
-+#define PA_LCD_FUNC 0x00 /* LCD Function Set Offset */
-+#define PA_LCD_CGRAM 0x00 /* LCD Set CGRAM Address Offset */
-+#define PA_LCD_DDRAM 0x00 /* LCD Set DDRAM Address Offset */
-+#define PA_LCD_RDFLAG 0x01 /* LCD Read Busy Flag Offset */
-+#define PA_LCD_WTDATA 0x02 /* LCD Write Datat to RAM Offset */
-+#define PA_LCD_RDDATA 0x03 /* LCD Read Data from RAM Offset */
-+#define PA_PIDE_OFFSET 0x40 /* CF IDE Offset */
-+#define PA_SIDE_OFFSET 0x40 /* HDD IDE Offset */
-+
-+#define IRQ_PCIINTA 5 /* PCI INTA IRQ */
-+#define IRQ_PCIINTB 6 /* PCI INTB IRQ */
-+#define IRQ_PCIINDC 7 /* PCI INTC IRQ */
-+#define IRQ_PCIINTD 8 /* PCI INTD IRQ */
-+#define IRQ_ATA 9 /* ATA IRQ */
-+#define IRQ_FATA 10 /* FATA IRQ */
-+#define IRQ_POWER 11 /* Power Switch IRQ */
-+#define IRQ_BUTTON 12 /* USL-5P Button IRQ */
-+#define IRQ_FAULT 13 /* USL-5P Fault IRQ */
-+
-+#define SHUTDOWN_BTN_MAJOR 99 /* Shutdown button device major no. */
-+
-+#define SHUTDOWN_LOOP_CNT 5 /* Shutdown button Detection loop */
-+#define SHUTDOWN_DELAY 200 /* Shutdown button delay value(ms) */
-+
-+
-+/* added by kogiidena */
-+/*
-+ * landisk_ledparam
-+ *
-+ * led ------10 -6543210 -6543210 -6543210
-+ * |000000..|0.......|0.......|U.......|
-+ * | HARD |fastblik| blink | on |
-+ *
-+ * led0: power U:update flag
-+ * led1: error
-+ * led2: usb1
-+ * led3: usb2
-+ * led4: usb3
-+ * led5: usb4
-+ * led6: usb5
-+ *
-+ */
-+extern int landisk_ledparam; /* from setup.c */
-+extern int landisk_buzzerparam; /* from setup.c */
-+extern int landisk_arch; /* from setup.c */
-+
-+#define __IO_PREFIX landisk
-+#include <asm/io_generic.h>
-+
-+#endif /* __ASM_SH_IODATA_LANDISK_H */
-+
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/mc146818rtc.h linux-2.6.17/include/asm-sh/mc146818rtc.h
---- linux-2.6.17-vanilla/include/asm-sh/mc146818rtc.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/mc146818rtc.h 2006-07-12 16:54:25.000000000 +0000
-@@ -24,7 +24,7 @@
- #define CMOS_WRITE(val,addr) __CMOS_WRITE(val,addr,b)
-
- #elif defined(CONFIG_SH_SECUREEDGE5410)
--#include <asm/snapgear/io.h>
-+#include <asm/snapgear.h>
-
- #define RTC_PORT(n) SECUREEDGE_IOPORT_ADDR
- #define CMOS_READ(addr) secureedge5410_cmos_read(addr)
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/mmu.h linux-2.6.17/include/asm-sh/mmu.h
---- linux-2.6.17-vanilla/include/asm-sh/mmu.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/mmu.h 2006-07-12 16:54:25.000000000 +0000
-@@ -25,5 +25,60 @@
- typedef unsigned long mm_context_t;
-
- #endif /* CONFIG_MMU */
--#endif /* __MMH_H */
-+
-+/*
-+ * Privileged Space Mapping Buffer (PMB) definitions
-+ */
-+#define PMB_PASCR 0xff000070
-+#define PMB_IRMCR 0xff000078
-+
-+#define PMB_ADDR 0xf6100000
-+#define PMB_DATA 0xf7100000
-+#define PMB_ENTRY_MAX 16
-+#define PMB_E_MASK 0x0000000f
-+#define PMB_E_SHIFT 8
-+
-+#define PMB_SZ_16M 0x00000000
-+#define PMB_SZ_64M 0x00000010
-+#define PMB_SZ_128M 0x00000080
-+#define PMB_SZ_512M 0x00000090
-+#define PMB_SZ_MASK PMB_SZ_512M
-+#define PMB_C 0x00000008
-+#define PMB_WT 0x00000001
-+#define PMB_UB 0x00000200
-+#define PMB_V 0x00000100
-+
-+#define PMB_NO_ENTRY (-1)
-+
-+struct pmb_entry;
-+
-+struct pmb_entry {
-+ unsigned long vpn;
-+ unsigned long ppn;
-+ unsigned long flags;
-+
-+ /*
-+ * 0 .. NR_PMB_ENTRIES for specific entry selection, or
-+ * PMB_NO_ENTRY to search for a free one
-+ */
-+ int entry;
-+
-+ struct pmb_entry *next;
-+ /* Adjacent entry link for contiguous multi-entry mappings */
-+ struct pmb_entry *link;
-+};
-+
-+/* arch/sh/mm/pmb.c */
-+int __set_pmb_entry(unsigned long vpn, unsigned long ppn,
-+ unsigned long flags, int *entry);
-+int set_pmb_entry(struct pmb_entry *pmbe);
-+void clear_pmb_entry(struct pmb_entry *pmbe);
-+struct pmb_entry *pmb_alloc(unsigned long vpn, unsigned long ppn,
-+ unsigned long flags);
-+void pmb_free(struct pmb_entry *pmbe);
-+long pmb_remap(unsigned long virt, unsigned long phys,
-+ unsigned long size, unsigned long flags);
-+void pmb_unmap(unsigned long addr);
-+
-+#endif /* __MMU_H */
-
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/mmu_context.h linux-2.6.17/include/asm-sh/mmu_context.h
---- linux-2.6.17-vanilla/include/asm-sh/mmu_context.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/mmu_context.h 2006-07-12 16:54:25.000000000 +0000
-@@ -174,9 +174,7 @@
- {
- /* Enable MMU */
- ctrl_outl(MMU_CONTROL_INIT, MMUCR);
--
-- /* The manual suggests doing some nops after turning on the MMU */
-- __asm__ __volatile__ ("nop;nop;nop;nop;nop;nop;nop;nop\n\t");
-+ ctrl_barrier();
-
- if (mmu_context_cache == NO_CONTEXT)
- mmu_context_cache = MMU_CONTEXT_FIRST_VERSION;
-@@ -191,7 +189,8 @@
- cr = ctrl_inl(MMUCR);
- cr &= ~MMU_CONTROL_INIT;
- ctrl_outl(cr, MMUCR);
-- __asm__ __volatile__ ("nop;nop;nop;nop;nop;nop;nop;nop\n\t");
-+
-+ ctrl_barrier();
- }
- #else
- /*
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/mpc1211/CVS/Entries linux-2.6.17/include/asm-sh/mpc1211/CVS/Entries
---- linux-2.6.17-vanilla/include/asm-sh/mpc1211/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/mpc1211/CVS/Entries 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,8 @@
-+/dma.h/1.1/Fri May 16 17:19:08 2003/-ko/
-+/io.h/1.3/Mon Aug 4 01:51:58 2003/-ko/
-+/keyboard.h/1.2/Wed Mar 2 13:03:01 2005/-ko/
-+/m1543c.h/1.1/Fri May 16 17:19:08 2003/-ko/
-+/mc146818rtc.h/1.1/Fri May 16 17:19:08 2003/-ko/
-+/mpc1211.h/1.1/Fri May 16 17:19:08 2003/-ko/
-+/pci.h/1.1/Fri May 16 17:19:08 2003/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/mpc1211/CVS/Repository linux-2.6.17/include/asm-sh/mpc1211/CVS/Repository
---- linux-2.6.17-vanilla/include/asm-sh/mpc1211/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/mpc1211/CVS/Repository 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+linux/include/asm-sh/mpc1211
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/mpc1211/CVS/Root linux-2.6.17/include/asm-sh/mpc1211/CVS/Root
---- linux-2.6.17-vanilla/include/asm-sh/mpc1211/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/mpc1211/CVS/Root 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/namei.h linux-2.6.17/include/asm-sh/namei.h
---- linux-2.6.17-vanilla/include/asm-sh/namei.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/namei.h 2006-07-12 16:54:25.000000000 +0000
-@@ -1,4 +1,4 @@
--/* $Id: namei.h,v 1.3 2000/07/04 06:24:49 gniibe Exp $
-+/* $Id: namei.h,v 1.2 2000/04/14 19:14:01 mjd Exp $
- * linux/include/asm-sh/namei.h
- *
- * Included from linux/fs/namei.c
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/overdrive/CVS/Entries linux-2.6.17/include/asm-sh/overdrive/CVS/Entries
---- linux-2.6.17-vanilla/include/asm-sh/overdrive/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/overdrive/CVS/Entries 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,5 @@
-+/fpga.h/1.2/Fri Nov 1 17:19:31 2002//
-+/gt64111.h/1.2/Fri Nov 1 17:19:31 2002//
-+/io.h/1.3/Tue Jul 29 14:27:12 2003//
-+/overdrive.h/1.2/Fri Nov 1 17:19:31 2002//
-+D
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/overdrive/CVS/Repository linux-2.6.17/include/asm-sh/overdrive/CVS/Repository
---- linux-2.6.17-vanilla/include/asm-sh/overdrive/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/overdrive/CVS/Repository 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+linux/include/asm-sh/overdrive
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/overdrive/CVS/Root linux-2.6.17/include/asm-sh/overdrive/CVS/Root
---- linux-2.6.17-vanilla/include/asm-sh/overdrive/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/overdrive/CVS/Root 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/page.h linux-2.6.17/include/asm-sh/page.h
---- linux-2.6.17-vanilla/include/asm-sh/page.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/page.h 2006-07-12 16:54:25.000000000 +0000
-@@ -31,7 +31,6 @@
- #define HPAGE_SIZE (1UL << HPAGE_SHIFT)
- #define HPAGE_MASK (~(HPAGE_SIZE-1))
- #define HUGETLB_PAGE_ORDER (HPAGE_SHIFT-PAGE_SHIFT)
--#define ARCH_HAS_SETCLEAR_HUGE_PTE
- #endif
-
- #ifdef __KERNEL__
-@@ -43,38 +42,30 @@
- extern void clear_page_slow(void *to);
- extern void copy_page_slow(void *to, void *from);
-
--#if defined(CONFIG_SH7705_CACHE_32KB) && defined(CONFIG_MMU)
-+#if defined(CONFIG_MMU) && (defined(CONFIG_CPU_SH4) || \
-+ defined(CONFIG_SH7705_CACHE_32KB))
- struct page;
- extern void clear_user_page(void *to, unsigned long address, struct page *pg);
- extern void copy_user_page(void *to, void *from, unsigned long address, struct page *pg);
- extern void __clear_user_page(void *to, void *orig_to);
- extern void __copy_user_page(void *to, void *from, void *orig_to);
--#elif defined(CONFIG_CPU_SH2) || defined(CONFIG_CPU_SH3) || !defined(CONFIG_MMU)
-+#elif defined(CONFIG_CPU_SH3) || !defined(CONFIG_MMU)
- #define clear_user_page(page, vaddr, pg) clear_page(page)
- #define copy_user_page(to, from, vaddr, pg) copy_page(to, from)
--#elif defined(CONFIG_CPU_SH4)
--struct page;
--extern void clear_user_page(void *to, unsigned long address, struct page *pg);
--extern void copy_user_page(void *to, void *from, unsigned long address, struct page *pg);
--extern void __clear_user_page(void *to, void *orig_to);
--extern void __copy_user_page(void *to, void *from, void *orig_to);
- #endif
-
- /*
- * These are used to make use of C type-checking..
- */
- typedef struct { unsigned long pte; } pte_t;
--typedef struct { unsigned long pmd; } pmd_t;
- typedef struct { unsigned long pgd; } pgd_t;
- typedef struct { unsigned long pgprot; } pgprot_t;
-
- #define pte_val(x) ((x).pte)
--#define pmd_val(x) ((x).pmd)
- #define pgd_val(x) ((x).pgd)
- #define pgprot_val(x) ((x).pgprot)
-
- #define __pte(x) ((pte_t) { (x) } )
--#define __pmd(x) ((pmd_t) { (x) } )
- #define __pgd(x) ((pgd_t) { (x) } )
- #define __pgprot(x) ((pgprot_t) { (x) } )
-
-@@ -105,7 +96,7 @@
-
- /* PFN start number, because of __MEMORY_START */
- #define PFN_START (__MEMORY_START >> PAGE_SHIFT)
--#define ARCH_PFN_OFFSET (FPN_START)
-+#define ARCH_PFN_OFFSET (PFN_START)
- #define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
- #define pfn_valid(pfn) (((pfn) - PFN_START) < max_mapnr)
- #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT)
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/pci.h linux-2.6.17/include/asm-sh/pci.h
---- linux-2.6.17-vanilla/include/asm-sh/pci.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/pci.h 2006-07-12 16:54:25.000000000 +0000
-@@ -32,6 +32,34 @@
- #define PCIBIOS_MIN_IO board_pci_channels->io_resource->start
- #define PCIBIOS_MIN_MEM board_pci_channels->mem_resource->start
-
-+/*
-+ * I/O routine helpers
-+ */
-+#ifdef CONFIG_CPU_SUBTYPE_SH7780
-+#define PCI_IO_AREA 0xFE400000
-+#define PCI_IO_SIZE 0x00400000
-+#else
-+#define PCI_IO_AREA 0xFE240000
-+#define PCI_IO_SIZE 0X00040000
-+#endif
-+
-+#define PCI_MEM_SIZE 0x01000000
-+
-+#define SH4_PCIIOBR_MASK 0xFFFC0000
-+#define pci_ioaddr(addr) (PCI_IO_AREA + (addr & ~SH4_PCIIOBR_MASK))
-+
-+#if defined(CONFIG_PCI)
-+#define is_pci_ioaddr(port) \
-+ (((port) >= PCIBIOS_MIN_IO) && \
-+ ((port) < (PCIBIOS_MIN_IO + PCI_IO_SIZE)))
-+#define is_pci_memaddr(port) \
-+ (((port) >= PCIBIOS_MIN_MEM) && \
-+ ((port) < (PCIBIOS_MIN_MEM + PCI_MEM_SIZE)))
-+#else
-+#define is_pci_ioaddr(port) (0)
-+#define is_pci_memaddr(port) (0)
-+#endif
-+
- struct pci_dev;
-
- extern void pcibios_set_master(struct pci_dev *dev);
-@@ -87,15 +115,6 @@
- */
- #define pci_dac_dma_supported(pci_dev, mask) (0)
-
--/* These macros should be used after a pci_map_sg call has been done
-- * to get bus addresses of each of the SG entries and their lengths.
-- * You should only work with the number of sg entries pci_map_sg
-- * returns, or alternatively stop on the first sg_dma_len(sg) which
-- * is 0.
-- */
--#define sg_dma_address(sg) (virt_to_bus((sg)->dma_address))
--#define sg_dma_len(sg) ((sg)->length)
--
- #ifdef CONFIG_PCI
- static inline void pci_dma_burst_advice(struct pci_dev *pdev,
- enum pci_dma_burst_strategy *strat,
-@@ -107,11 +126,12 @@
- #endif
-
- /* Board-specific fixup routines. */
--extern void pcibios_fixup(void);
--extern void pcibios_fixup_irqs(void);
-+void pcibios_fixup(void);
-+int pcibios_init_platform(void);
-+int pcibios_map_platform_irq(struct pci_dev *dev, u8 slot, u8 pin);
-
- #ifdef CONFIG_PCI_AUTO
--extern int pciauto_assign_resources(int busno, struct pci_channel *hose);
-+int pciauto_assign_resources(int busno, struct pci_channel *hose);
- #endif
-
- static inline void pcibios_add_platform_entries(struct pci_dev *dev)
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/pgalloc.h linux-2.6.17/include/asm-sh/pgalloc.h
---- linux-2.6.17-vanilla/include/asm-sh/pgalloc.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/pgalloc.h 2006-07-12 16:54:25.000000000 +0000
-@@ -1,15 +1,6 @@
- #ifndef __ASM_SH_PGALLOC_H
- #define __ASM_SH_PGALLOC_H
-
--#include <linux/threads.h>
--#include <linux/slab.h>
--#include <linux/mm.h>
--
--#define pgd_quicklist ((unsigned long *)0)
--#define pmd_quicklist ((unsigned long *)0)
--#define pte_quicklist ((unsigned long *)0)
--#define pgtable_cache_size 0L
--
- #define pmd_populate_kernel(mm, pmd, pte) \
- set_pmd(pmd, __pmd(_PAGE_TABLE + __pa(pte)))
-
-@@ -24,38 +15,24 @@
- */
- static inline pgd_t *pgd_alloc(struct mm_struct *mm)
- {
-- unsigned int pgd_size = (USER_PTRS_PER_PGD * sizeof(pgd_t));
-- pgd_t *pgd = (pgd_t *)kmalloc(pgd_size, GFP_KERNEL);
--
-- if (pgd)
-- memset(pgd, 0, pgd_size);
--
-- return pgd;
-+ return (pgd_t *)__get_free_page(GFP_KERNEL | __GFP_REPEAT | __GFP_ZERO);
- }
-
- static inline void pgd_free(pgd_t *pgd)
- {
-- kfree(pgd);
-+ free_page((unsigned long)pgd);
- }
-
- static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm,
- unsigned long address)
- {
-- pte_t *pte;
--
-- pte = (pte_t *) __get_free_page(GFP_KERNEL | __GFP_REPEAT | __GFP_ZERO);
--
-- return pte;
-+ return (pte_t *)__get_free_page(GFP_KERNEL | __GFP_REPEAT | __GFP_ZERO);
- }
-
- static inline struct page *pte_alloc_one(struct mm_struct *mm,
- unsigned long address)
- {
-- struct page *pte;
--
-- pte = alloc_pages(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO, 0);
--
-- return pte;
-+ return alloc_page(GFP_KERNEL | __GFP_REPEAT | __GFP_ZERO);
- }
-
- static inline void pte_free_kernel(pte_t *pte)
-@@ -75,14 +52,8 @@
- * inside the pgd, so has no extra memory associated with it.
- */
-
--#define pmd_alloc_one(mm, addr) ({ BUG(); ((pmd_t *)2); })
- #define pmd_free(x) do { } while (0)
- #define __pmd_free_tlb(tlb,x) do { } while (0)
--#define pgd_populate(mm, pmd, pte) BUG()
- #define check_pgt_cache() do { } while (0)
-
--#ifdef CONFIG_CPU_SH4
--#define PG_mapped PG_arch_1
--#endif
--
- #endif /* __ASM_SH_PGALLOC_H */
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/pgtable.h linux-2.6.17/include/asm-sh/pgtable.h
---- linux-2.6.17-vanilla/include/asm-sh/pgtable.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/pgtable.h 2006-07-12 16:54:25.000000000 +0000
-@@ -1,43 +1,43 @@
--#ifndef __ASM_SH_PGTABLE_H
--#define __ASM_SH_PGTABLE_H
--
--#include <asm-generic/4level-fixup.h>
--
- /*
-+ * This file contains the functions and defines necessary to modify and
-+ * use the SuperH page table tree.
-+ *
- * Copyright (C) 1999 Niibe Yutaka
-- * Copyright (C) 2002, 2003, 2004 Paul Mundt
-+ * Copyright (C) 2002 - 2005 Paul Mundt
-+ *
-+ * This file is subject to the terms and conditions of the GNU General
-+ * Public License. See the file "COPYING" in the main directory of this
-+ * archive for more details.
- */
-+#ifndef __ASM_SH_PGTABLE_H
-+#define __ASM_SH_PGTABLE_H
-
- #include <linux/config.h>
--#include <asm/pgtable-2level.h>
-+#include <asm-generic/pgtable-nopmd.h>
-+#include <asm/page.h>
-+
-+#define PTRS_PER_PGD 1024
-
--/*
-- * This file contains the functions and defines necessary to modify and use
-- * the SuperH page table tree.
-- */
- #ifndef __ASSEMBLY__
--#include <asm/processor.h>
- #include <asm/addrspace.h>
- #include <asm/fixmap.h>
--#include <linux/threads.h>
-
- extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
- extern void paging_init(void);
-
- /*
-- * Basically we have the same two-level (which is the logical three level
-- * Linux page table layout folded) page tables as the i386.
-- */
--
--/*
- * ZERO_PAGE is a global shared page that is always zero: used
- * for zero-mapped memory areas etc..
- */
--extern unsigned long empty_zero_page[1024];
-+extern unsigned long empty_zero_page[PAGE_SIZE / sizeof(unsigned long)];
- #define ZERO_PAGE(vaddr) (virt_to_page(empty_zero_page))
-
- #endif /* !__ASSEMBLY__ */
-
-+/* traditional two-level paging structure */
-+#define PGDIR_SHIFT 22
-+#define PTRS_PER_PMD 1
-+#define PTRS_PER_PTE 1024
- #define PMD_SIZE (1UL << PMD_SHIFT)
- #define PMD_MASK (~(PMD_SIZE-1))
- #define PGDIR_SIZE (1UL << PGDIR_SHIFT)
-@@ -48,7 +48,6 @@
-
- #define PTE_PHYS_MASK 0x1ffff000
-
--#ifndef __ASSEMBLY__
- /*
- * First 1MB map is used by fixed purpose.
- * Currently only 4-enty (16kB) is used (see arch/sh/mm/cache.c)
-@@ -56,20 +55,41 @@
- #define VMALLOC_START (P3SEG+0x00100000)
- #define VMALLOC_END (FIXADDR_START-2*PAGE_SIZE)
-
--#define _PAGE_WT 0x001 /* WT-bit on SH-4, 0 on SH-3 */
--#define _PAGE_HW_SHARED 0x002 /* SH-bit : page is shared among processes */
--#define _PAGE_DIRTY 0x004 /* D-bit : page changed */
--#define _PAGE_CACHABLE 0x008 /* C-bit : cachable */
--#define _PAGE_SZ0 0x010 /* SZ0-bit : Size of page */
--#define _PAGE_RW 0x020 /* PR0-bit : write access allowed */
--#define _PAGE_USER 0x040 /* PR1-bit : user space access allowed */
--#define _PAGE_SZ1 0x080 /* SZ1-bit : Size of page (on SH-4) */
--#define _PAGE_PRESENT 0x100 /* V-bit : page is valid */
--#define _PAGE_PROTNONE 0x200 /* software: if not present */
--#define _PAGE_ACCESSED 0x400 /* software: page referenced */
--#define _PAGE_U0_SHARED 0x800 /* software: page is shared in user space */
--
--#define _PAGE_FILE _PAGE_WT /* software: pagecache or swap? */
-+/*
-+ * Linux PTEL encoding.
-+ *
-+ * Hardware and software bit definitions for the PTEL value:
-+ *
-+ * - Bits 0 and 7 are reserved on SH-3 (_PAGE_WT and _PAGE_SZ1 on SH-4).
-+ *
-+ * - Bit 1 is the SH-bit, but is unused on SH-3 due to an MMU bug (the
-+ * hardware PTEL value can't have the SH-bit set when MMUCR.IX is set,
-+ * which is the default in cpu-sh3/mmu_context.h:MMU_CONTROL_INIT).
-+ *
-+ * In order to keep this relatively clean, do not use these for defining
-+ * SH-3 specific flags until all of the other unused bits have been
-+ * exhausted.
-+ *
-+ * - Bit 9 is reserved by everyone and used by _PAGE_PROTNONE.
-+ *
-+ * - Bits 10 and 11 are low bits of the PPN that are reserved on >= 4K pages.
-+ * Bit 10 is used for _PAGE_ACCESSED, bit 11 remains unused.
-+ *
-+ * - Bits 31, 30, and 29 remain unused by everyone and can be used for future
-+ * software flags, although care must be taken to update _PAGE_CLEAR_FLAGS.
-+ */
-+#define _PAGE_WT 0x001 /* WT-bit on SH-4, 0 on SH-3 */
-+#define _PAGE_HW_SHARED 0x002 /* SH-bit : shared among processes */
-+#define _PAGE_DIRTY 0x004 /* D-bit : page changed */
-+#define _PAGE_CACHABLE 0x008 /* C-bit : cachable */
-+#define _PAGE_SZ0 0x010 /* SZ0-bit : Size of page */
-+#define _PAGE_RW 0x020 /* PR0-bit : write access allowed */
-+#define _PAGE_USER 0x040 /* PR1-bit : user space access allowed */
-+#define _PAGE_SZ1 0x080 /* SZ1-bit : Size of page (on SH-4) */
-+#define _PAGE_PRESENT 0x100 /* V-bit : page is valid */
-+#define _PAGE_PROTNONE 0x200 /* software: if not present */
-+#define _PAGE_ACCESSED 0x400 /* software: page referenced */
-+#define _PAGE_FILE _PAGE_WT /* software: pagecache or swap? */
-
- /* software: moves to PTEA.TC (Timing Control) */
- #define _PAGE_PCC_AREA5 0x00000000 /* use BSC registers for area5 */
-@@ -84,23 +104,17 @@
- #define _PAGE_PCC_ATR8 0x60000000 /* Attribute Memory space, 8 bit bus */
- #define _PAGE_PCC_ATR16 0x60000001 /* Attribute Memory space, 6 bit bus */
-
--
--/* Mask which drop software flags
-- * We also drop WT bit since it is used for _PAGE_FILE
-- * bit in this implementation.
-- */
--#define _PAGE_CLEAR_FLAGS (_PAGE_WT | _PAGE_PROTNONE | _PAGE_ACCESSED | _PAGE_U0_SHARED)
--
--#if defined(CONFIG_CPU_SH3)
--/*
-- * MMU on SH-3 has bug on SH-bit: We can't use it if MMUCR.IX=1.
-- * Work around: Just drop SH-bit.
-- */
--#define _PAGE_FLAGS_HARDWARE_MASK (0x1fffffff & ~(_PAGE_CLEAR_FLAGS | _PAGE_HW_SHARED))
-+/* Mask which drops unused bits from the PTEL value */
-+#ifdef CONFIG_CPU_SH3
-+#define _PAGE_CLEAR_FLAGS (_PAGE_PROTNONE | _PAGE_ACCESSED| \
-+ _PAGE_FILE | _PAGE_SZ1 | \
-+ _PAGE_HW_SHARED)
- #else
--#define _PAGE_FLAGS_HARDWARE_MASK (0x1fffffff & ~(_PAGE_CLEAR_FLAGS))
-+#define _PAGE_CLEAR_FLAGS (_PAGE_PROTNONE | _PAGE_ACCESSED | _PAGE_FILE)
- #endif
-
-+#define _PAGE_FLAGS_HARDWARE_MASK (0x1fffffff & ~(_PAGE_CLEAR_FLAGS))
-+
- /* Hardware flags: SZ0=1 (4k-byte) */
- #define _PAGE_FLAGS_HARD _PAGE_SZ0
-
-@@ -110,15 +124,15 @@
- #define _PAGE_SZHUGE (_PAGE_SZ0 | _PAGE_SZ1)
- #endif
-
--#define _PAGE_SHARED _PAGE_U0_SHARED
--
- #define _PAGE_TABLE (_PAGE_PRESENT | _PAGE_RW | _PAGE_USER | _PAGE_ACCESSED | _PAGE_DIRTY)
- #define _KERNPG_TABLE (_PAGE_PRESENT | _PAGE_RW | _PAGE_ACCESSED | _PAGE_DIRTY)
--#define _PAGE_CHG_MASK (PTE_MASK | _PAGE_ACCESSED | _PAGE_CACHABLE | _PAGE_DIRTY | _PAGE_SHARED)
-+#define _PAGE_CHG_MASK (PTE_MASK | _PAGE_ACCESSED | _PAGE_CACHABLE | _PAGE_DIRTY)
-+
-+#ifndef __ASSEMBLY__
-
- #ifdef CONFIG_MMU
- #define PAGE_NONE __pgprot(_PAGE_PROTNONE | _PAGE_CACHABLE |_PAGE_ACCESSED | _PAGE_FLAGS_HARD)
--#define PAGE_SHARED __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_USER | _PAGE_CACHABLE |_PAGE_ACCESSED | _PAGE_SHARED | _PAGE_FLAGS_HARD)
-+#define PAGE_SHARED __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_USER | _PAGE_CACHABLE |_PAGE_ACCESSED | _PAGE_FLAGS_HARD)
- #define PAGE_COPY __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_CACHABLE | _PAGE_ACCESSED | _PAGE_FLAGS_HARD)
- #define PAGE_READONLY __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_CACHABLE | _PAGE_ACCESSED | _PAGE_FLAGS_HARD)
- #define PAGE_KERNEL __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_CACHABLE | _PAGE_DIRTY | _PAGE_ACCESSED | _PAGE_HW_SHARED | _PAGE_FLAGS_HARD)
-@@ -138,12 +152,13 @@
- #define PAGE_KERNEL_PCC __pgprot(0)
- #endif
-
-+#endif /* __ASSEMBLY__ */
-+
- /*
- * As i386 and MIPS, SuperH can't do page protection for execute, and
- * considers that the same as a read. Also, write permissions imply
-- * read permissions. This is the closest we can get..
-+ * read permissions. This is the closest we can get..
- */
--
- #define __P000 PAGE_NONE
- #define __P001 PAGE_READONLY
- #define __P010 PAGE_COPY
-@@ -162,6 +177,26 @@
- #define __S110 PAGE_SHARED
- #define __S111 PAGE_SHARED
-
-+#ifndef __ASSEMBLY__
-+
-+/*
-+ * Certain architectures need to do special things when PTEs
-+ * within a page table are directly modified. Thus, the following
-+ * hook is made available.
-+ */
-+#define set_pte(pteptr, pteval) (*(pteptr) = pteval)
-+#define set_pte_at(mm,addr,ptep,pteval) set_pte(ptep,pteval)
-+
-+/*
-+ * (pmds are folded into pgds so this doesn't get actually called,
-+ * but the define is needed for a generic inline function.)
-+ */
-+#define set_pmd(pmdptr, pmdval) (*(pmdptr) = pmdval)
-+
-+#define pte_pfn(x) ((unsigned long)(((x).pte >> PAGE_SHIFT)))
-+#define pfn_pte(pfn, prot) __pte(((pfn) << PAGE_SHIFT) | pgprot_val(prot))
-+#define pfn_pmd(pfn, prot) __pmd(((pfn) << PAGE_SHIFT) | pgprot_val(prot))
-+
- #define pte_none(x) (!pte_val(x))
- #define pte_present(x) (pte_val(x) & (_PAGE_PRESENT | _PAGE_PROTNONE))
- #define pte_clear(mm,addr,xp) do { set_pte_at(mm, addr, xp, __pte(0)); } while (0)
-@@ -172,7 +207,7 @@
- #define pmd_bad(x) ((pmd_val(x) & (~PAGE_MASK & ~_PAGE_USER)) != _KERNPG_TABLE)
-
- #define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT))
--#define pte_page(x) phys_to_page(pte_val(x)&PTE_PHYS_MASK)
-+#define pte_page(x) phys_to_page(pte_val(x)&PTE_PHYS_MASK)
-
- /*
- * The following only work if pte_present() is true.
-@@ -249,6 +284,11 @@
- #define pte_unmap(pte) do { } while (0)
- #define pte_unmap_nested(pte) do { } while (0)
-
-+#define pte_ERROR(e) \
-+ printk("%s:%d: bad pte %08lx.\n", __FILE__, __LINE__, pte_val(e))
-+#define pgd_ERROR(e) \
-+ printk("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, pgd_val(e))
-+
- struct vm_area_struct;
- extern void update_mmu_cache(struct vm_area_struct * vma,
- unsigned long address, pte_t pte);
-@@ -273,8 +313,6 @@
-
- typedef pte_t *pte_addr_t;
-
--#endif /* !__ASSEMBLY__ */
--
- #define kern_addr_valid(addr) (1)
-
- #define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
-@@ -302,5 +340,7 @@
-
- #include <asm-generic/pgtable.h>
-
-+#endif /* !__ASSEMBLY__ */
-+
- #endif /* __ASM_SH_PAGE_H */
-
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/pm.h linux-2.6.17/include/asm-sh/pm.h
---- linux-2.6.17-vanilla/include/asm-sh/pm.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/pm.h 2006-07-12 16:54:25.000000000 +0000
-@@ -0,0 +1,17 @@
-+/*
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * Copyright 2006 (c) Andriy Skulysh <askulysh@gmail.com>
-+ *
-+ */
-+#ifndef __ASM_SH_PM_H
-+#define __ASM_SH_PM_H
-+
-+extern u8 wakeup_start;
-+extern u8 wakeup_end;
-+
-+void pm_enter(void);
-+
-+#endif
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/processor.h linux-2.6.17/include/asm-sh/processor.h
---- linux-2.6.17-vanilla/include/asm-sh/processor.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/processor.h 2006-07-12 16:54:26.000000000 +0000
-@@ -148,6 +148,10 @@
- union sh_fpu_union fpu;
- };
-
-+typedef struct {
-+ unsigned long seg;
-+} mm_segment_t;
-+
- /* Count of active tasks with UBC settings */
- extern int ubc_usercnt;
-
-@@ -265,5 +269,18 @@
- #define cpu_sleep() __asm__ __volatile__ ("sleep" : : : "memory")
- #define cpu_relax() do { } while (0)
-
-+#if defined(CONFIG_CPU_SH2A) || defined(CONFIG_CPU_SH3) || \
-+ defined(CONFIG_CPU_SH4)
-+#define PREFETCH_STRIDE L1_CACHE_BYTES
-+#define ARCH_HAS_PREFETCH
-+#define ARCH_HAS_PREFETCHW
-+static inline void prefetch(void *x)
-+{
-+ __asm__ __volatile__ ("pref @%0\n\t" : : "r" (x) : "memory");
-+}
-+
-+#define prefetchw(x) prefetch(x)
-+#endif
-+
- #endif /* __KERNEL__ */
- #endif /* __ASM_SH_PROCESSOR_H */
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/r7780rp/CVS/Entries linux-2.6.17/include/asm-sh/r7780rp/CVS/Entries
---- linux-2.6.17-vanilla/include/asm-sh/r7780rp/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/r7780rp/CVS/Entries 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,3 @@
-+/ide.h/1.1/Sat Jan 7 19:55:57 2006/-ko/
-+/r7780rp.h/1.3/Thu Jul 6 12:38:31 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/r7780rp/CVS/Repository linux-2.6.17/include/asm-sh/r7780rp/CVS/Repository
---- linux-2.6.17-vanilla/include/asm-sh/r7780rp/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/r7780rp/CVS/Repository 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+linux/include/asm-sh/r7780rp
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/r7780rp/CVS/Root linux-2.6.17/include/asm-sh/r7780rp/CVS/Root
---- linux-2.6.17-vanilla/include/asm-sh/r7780rp/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/r7780rp/CVS/Root 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/r7780rp/ide.h linux-2.6.17/include/asm-sh/r7780rp/ide.h
---- linux-2.6.17-vanilla/include/asm-sh/r7780rp/ide.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/r7780rp/ide.h 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,8 @@
-+#ifndef __ASM_SH_R7780RP_IDE_H
-+#define __ASM_SH_R7780RP_IDE_H
-+
-+/* Nothing to see here.. */
-+#include <asm/mach/r7780rp.h>
-+
-+#endif /* __ASM_SH_R7780RP_IDE_H */
-+
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/r7780rp/r7780rp.h linux-2.6.17/include/asm-sh/r7780rp/r7780rp.h
---- linux-2.6.17-vanilla/include/asm-sh/r7780rp/r7780rp.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/r7780rp/r7780rp.h 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,177 @@
-+#ifndef __ASM_SH_RENESAS_R7780RP_H
-+#define __ASM_SH_RENESAS_R7780RP_H
-+
-+/*
-+ * linux/include/asm-sh/r7780rp.h
-+ *
-+ * Copyright (C) 2000 Atom Create Engineering Co., Ltd.
-+ *
-+ * Renesas Solutions Highlander R7780RP support
-+ */
-+
-+/* Box specific addresses. */
-+#if defined(CONFIG_SH_R7780MP)
-+#define PA_BCR 0xa4000000 /* FPGA */
-+#define PA_IRLMSK (PA_BCR+0x0000) /* Interrupt Mask control */
-+#define PA_IRLMON (PA_BCR+0x0002) /* Interrupt Status control */
-+#define PA_IRLPRI1 (PA_BCR+0x0004) /* Interrupt Priorty 1 */
-+#define PA_IRLPRI2 (PA_BCR+0x0006) /* Interrupt Priorty 2 */
-+#define PA_IRLPRI3 (PA_BCR+0x0008) /* Interrupt Priorty 3 */
-+#define PA_IRLPRI4 (PA_BCR+0x000a) /* Interrupt Priorty 4 */
-+#define PA_RSTCTL (PA_BCR+0x000c) /* Reset Control */
-+#define PA_PCIBD (PA_BCR+0x000e) /* PCI Board detect control */
-+#define PA_PCICD (PA_BCR+0x0010) /* PCI Conector detect control */
-+#define PA_EXTGIO (PA_BCR+0x0016) /* Extension GPIO Control */
-+#define PA_IVDRMON (PA_BCR+0x0018) /* iVDR Moniter control */
-+#define PA_IVDRCTL (PA_BCR+0x001a) /* iVDR control */
-+#define PA_OBLED (PA_BCR+0x001c) /* On Board LED control */
-+#define PA_OBSW (PA_BCR+0x001e) /* On Board Switch control */
-+#define PA_AUDIOSEL (PA_BCR+0x0020) /* Sound Interface Select control */
-+#define PA_EXTPLR (PA_BCR+0x001e) /* Extention Pin Polarity control */
-+#define PA_TPCTL (PA_BCR+0x0100) /* Touch Panel Access control */
-+#define PA_TPDCKCTL (PA_BCR+0x0102) /* Touch Panel Access data control */
-+#define PA_TPCTLCLR (PA_BCR+0x0104) /* Touch Panel Access control */
-+#define PA_TPXPOS (PA_BCR+0x0106) /* Touch Panel X position control */
-+#define PA_TPYPOS (PA_BCR+0x0108) /* Touch Panel Y position control */
-+#define PA_DBSW (PA_BCR+0x0200) /* Debug Board Switch control */
-+#define PA_CFCTL (PA_BCR+0x0300) /* CF Timing control */
-+#define PA_CFPOW (PA_BCR+0x0302) /* CF Power control */
-+#define PA_CFCDINTCLR (PA_BCR+0x0304) /* CF Insert Interrupt clear */
-+#define PA_SCSMR0 (PA_BCR+0x0400) /* SCIF0 Serial mode control */
-+#define PA_SCBRR0 (PA_BCR+0x0404) /* SCIF0 Bit rate control */
-+#define PA_SCSCR0 (PA_BCR+0x0408) /* SCIF0 Serial control */
-+#define PA_SCFTDR0 (PA_BCR+0x040c) /* SCIF0 Send FIFO control */
-+#define PA_SCFSR0 (PA_BCR+0x0410) /* SCIF0 Serial status control */
-+#define PA_SCFRDR0 (PA_BCR+0x0414) /* SCIF0 Receive FIFO control */
-+#define PA_SCFCR0 (PA_BCR+0x0418) /* SCIF0 FIFO control */
-+#define PA_SCTFDR0 (PA_BCR+0x041c) /* SCIF0 Send FIFO data control */
-+#define PA_SCRFDR0 (PA_BCR+0x0420) /* SCIF0 Receive FIFO data control */
-+#define PA_SCSPTR0 (PA_BCR+0x0424) /* SCIF0 Serial Port control */
-+#define PA_SCLSR0 (PA_BCR+0x0428) /* SCIF0 Line Status control */
-+#define PA_SCRER0 (PA_BCR+0x042c) /* SCIF0 Serial Error control */
-+#define PA_SCSMR1 (PA_BCR+0x0500) /* SCIF1 Serial mode control */
-+#define PA_SCBRR1 (PA_BCR+0x0504) /* SCIF1 Bit rate control */
-+#define PA_SCSCR1 (PA_BCR+0x0508) /* SCIF1 Serial control */
-+#define PA_SCFTDR1 (PA_BCR+0x050c) /* SCIF1 Send FIFO control */
-+#define PA_SCFSR1 (PA_BCR+0x0510) /* SCIF1 Serial status control */
-+#define PA_SCFRDR1 (PA_BCR+0x0514) /* SCIF1 Receive FIFO control */
-+#define PA_SCFCR1 (PA_BCR+0x0518) /* SCIF1 FIFO control */
-+#define PA_SCTFDR1 (PA_BCR+0x051c) /* SCIF1 Send FIFO data control */
-+#define PA_SCRFDR1 (PA_BCR+0x0520) /* SCIF1 Receive FIFO data control */
-+#define PA_SCSPTR1 (PA_BCR+0x0524) /* SCIF1 Serial Port control */
-+#define PA_SCLSR1 (PA_BCR+0x0528) /* SCIF1 Line Status control */
-+#define PA_SCRER1 (PA_BCR+0x052c) /* SCIF1 Serial Error control */
-+#define PA_ICCR (PA_BCR+0x0600) /* Serial control */
-+#define PA_SAR (PA_BCR+0x0602) /* Serial Slave control */
-+#define PA_MDR (PA_BCR+0x0604) /* Serial Mode control */
-+#define PA_ADR1 (PA_BCR+0x0606) /* Serial Address1 control */
-+#define PA_DAR1 (PA_BCR+0x0646) /* Serial Data1 control */
-+#define PA_VERREG (PA_BCR+0x0700) /* FPGA Version Register */
-+#define PA_POFF (PA_BCR+0x0800) /* System Power Off control */
-+#define PA_PMR (PA_BCR+0x0900) /* */
-+
-+#define PA_AX88796L 0xa4100400 /* AX88796L Area */
-+#define PA_SC1602BSLB 0xa6000000 /* SC1602BSLB Area */
-+#define PA_AREA5_IO 0xb4000000 /* Area 5 IO Memory */
-+#define PA_AREA6_IO 0xb8000000 /* Area 6 IO Memory */
-+#define PA_IDE_OFFSET 0x1f0 /* CF IDE Offset */
-+#define AX88796L_IO_BASE 0x1000 /* AX88796L IO Base Address */
-+
-+#define IRLCNTR1 (PA_BCR + 0) /* Interrupt Control Register1 */
-+
-+#define IRQ_PCISLOT1 65 /* PCI Slot #1 IRQ */
-+#define IRQ_PCISLOT2 66 /* PCI Slot #2 IRQ */
-+#define IRQ_PCISLOT3 67 /* PCI Slot #3 IRQ */
-+#define IRQ_PCISLOT4 68 /* PCI Slot #4 IRQ */
-+#define IRQ_CFCARD 1 /* CF Card IRQ */
-+// #define IRQ_CFINST 0 /* CF Card Insert IRQ */
-+#define IRQ_TP 2 /* Touch Panel IRQ */
-+#define IRQ_SCI1 3 /* SCI1 IRQ */
-+#define IRQ_SCI0 4 /* SCI0 IRQ */
-+#define IRQ_2SERIAL 5 /* Serial IRQ */
-+#define IRQ_RTC 6 /* RTC A / B IRQ */
-+#define IRQ_EXTENTION6 7 /* EXT6n IRQ */
-+#define IRQ_EXTENTION5 8 /* EXT5n IRQ */
-+#define IRQ_EXTENTION4 9 /* EXT4n IRQ */
-+#define IRQ_EXTENTION2 10 /* EXT2n IRQ */
-+#define IRQ_EXTENTION1 11 /* EXT1n IRQ */
-+#define IRQ_ONETH 13 /* On board Ethernet IRQ */
-+#define IRQ_PSW 14 /* Push Switch IRQ */
-+
-+#else /* R7780RP */
-+
-+#define PA_BCR 0xa5000000 /* FPGA */
-+#define PA_IRLMSK (PA_BCR+0x0000) /* Interrupt Mask control */
-+#define PA_IRLMON (PA_BCR+0x0002) /* Interrupt Status control */
-+#define PA_SDPOW (PA_BCR+0x0004) /* SD Power control */
-+#define PA_RSTCTL (PA_BCR+0x0006) /* Device Reset control */
-+#define PA_PCIBD (PA_BCR+0x0008) /* PCI Board detect control */
-+#define PA_PCICD (PA_BCR+0x000a) /* PCI Conector detect control */
-+#define PA_ZIGIO1 (PA_BCR+0x000c) /* Zigbee IO control 1 */
-+#define PA_ZIGIO2 (PA_BCR+0x000e) /* Zigbee IO control 2 */
-+#define PA_ZIGIO3 (PA_BCR+0x0010) /* Zigbee IO control 3 */
-+#define PA_ZIGIO4 (PA_BCR+0x0012) /* Zigbee IO control 4 */
-+#define PA_IVDRMON (PA_BCR+0x0014) /* iVDR Moniter control */
-+#define PA_IVDRCTL (PA_BCR+0x0016) /* iVDR control */
-+#define PA_OBLED (PA_BCR+0x0018) /* On Board LED control */
-+#define PA_OBSW (PA_BCR+0x001a) /* On Board Switch control */
-+#define PA_AUDIOSEL (PA_BCR+0x001c) /* Sound Interface Select control */
-+#define PA_EXTPLR (PA_BCR+0x001e) /* Extention Pin Polarity control */
-+#define PA_TPCTL (PA_BCR+0x0100) /* Touch Panel Access control */
-+#define PA_TPDCKCTL (PA_BCR+0x0102) /* Touch Panel Access data control */
-+#define PA_TPCTLCLR (PA_BCR+0x0104) /* Touch Panel Access control */
-+#define PA_TPXPOS (PA_BCR+0x0106) /* Touch Panel X position control */
-+#define PA_TPYPOS (PA_BCR+0x0108) /* Touch Panel Y position control */
-+#define PA_DBDET (PA_BCR+0x0200) /* Debug Board detect control */
-+#define PA_DBDISPCTL (PA_BCR+0x0202) /* Debug Board Dot timing control */
-+#define PA_DBSW (PA_BCR+0x0204) /* Debug Board Switch control */
-+#define PA_CFCTL (PA_BCR+0x0300) /* CF Timing control */
-+#define PA_CFPOW (PA_BCR+0x0302) /* CF Power control */
-+#define PA_CFCDINTCLR (PA_BCR+0x0304) /* CF Insert Interrupt clear */
-+#define PA_SCSMR (PA_BCR+0x0400) /* SCIF Serial mode control */
-+#define PA_SCBRR (PA_BCR+0x0402) /* SCIF Bit rate control */
-+#define PA_SCSCR (PA_BCR+0x0404) /* SCIF Serial control */
-+#define PA_SCFDTR (PA_BCR+0x0406) /* SCIF Send FIFO control */
-+#define PA_SCFSR (PA_BCR+0x0408) /* SCIF Serial status control */
-+#define PA_SCFRDR (PA_BCR+0x040a) /* SCIF Receive FIFO control */
-+#define PA_SCFCR (PA_BCR+0x040c) /* SCIF FIFO control */
-+#define PA_SCFDR (PA_BCR+0x040e) /* SCIF FIFO data control */
-+#define PA_SCLSR (PA_BCR+0x0412) /* SCIF Line Status control */
-+#define PA_ICCR (PA_BCR+0x0500) /* Serial control */
-+#define PA_SAR (PA_BCR+0x0502) /* Serial Slave control */
-+#define PA_MDR (PA_BCR+0x0504) /* Serial Mode control */
-+#define PA_ADR1 (PA_BCR+0x0506) /* Serial Address1 control */
-+#define PA_DAR1 (PA_BCR+0x0546) /* Serial Data1 control */
-+#define PA_VERREG (PA_BCR+0x0600) /* FPGA Version Register */
-+
-+#define PA_AX88796L 0xa5800400 /* AX88796L Area */
-+#define PA_SC1602BSLB 0xa6000000 /* SC1602BSLB Area */
-+#define PA_AREA5_IO 0xb4000000 /* Area 5 IO Memory */
-+#define PA_AREA6_IO 0xb8000000 /* Area 6 IO Memory */
-+#define PA_IDE_OFFSET 0x1f0 /* CF IDE Offset */
-+#define AX88796L_IO_BASE 0x1000 /* AX88796L IO Base Address */
-+
-+#define IRLCNTR1 (PA_BCR + 0) /* Interrupt Control Register1 */
-+
-+#define IRQ_PCISLOT1 0 /* PCI Slot #1 IRQ */
-+#define IRQ_PCISLOT2 1 /* PCI Slot #2 IRQ */
-+#define IRQ_PCISLOT3 2 /* PCI Slot #3 IRQ */
-+#define IRQ_PCISLOT4 3 /* PCI Slot #4 IRQ */
-+#define IRQ_CFCARD 4 /* CF Card IRQ */
-+#define IRQ_CFINST 5 /* CF Card Insert IRQ */
-+#define IRQ_M66596 6 /* M66596 IRQ */
-+#define IRQ_SDCARD 7 /* SD Card IRQ */
-+#define IRQ_TUCHPANEL 8 /* Touch Panel IRQ */
-+#define IRQ_SCI 9 /* SCI IRQ */
-+#define IRQ_2SERIAL 10 /* Serial IRQ */
-+#define IRQ_EXTENTION 11 /* EXTn IRQ */
-+#define IRQ_ONETH 12 /* On board Ethernet IRQ */
-+#define IRQ_PSW 13 /* Push Switch IRQ */
-+#define IRQ_ZIGBEE 14 /* Ziggbee IO IRQ */
-+
-+#endif /* CONFIG_SH_R7780MP */
-+
-+#define __IO_PREFIX r7780rp
-+#include <asm/io_generic.h>
-+
-+#endif /* __ASM_SH_RENESAS_R7780RP */
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/rtc.h linux-2.6.17/include/asm-sh/rtc.h
---- linux-2.6.17-vanilla/include/asm-sh/rtc.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/rtc.h 2006-07-12 16:54:26.000000000 +0000
-@@ -8,8 +8,8 @@
- extern void sh_rtc_gettimeofday(struct timespec *ts);
- extern int sh_rtc_settimeofday(const time_t secs);
- extern void (*board_time_init)(void);
--extern void (*rtc_get_time)(struct timespec *);
--extern int (*rtc_set_time)(const time_t);
-+extern void (*rtc_sh_get_time)(struct timespec *);
-+extern int (*rtc_sh_set_time)(const time_t);
-
- /* RCR1 Bits */
- #define RCR1_CF 0x80 /* Carry Flag */
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/rts7751r2d/CVS/Entries linux-2.6.17/include/asm-sh/rts7751r2d/CVS/Entries
---- linux-2.6.17-vanilla/include/asm-sh/rts7751r2d/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/rts7751r2d/CVS/Entries 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,4 @@
-+/ide.h/1.1/Wed Apr 21 00:09:19 2004/-ko/
-+/rts7751r2d.h/1.3/Wed Jan 18 05:43:02 2006/-ko/
-+/voyagergx_reg.h/1.2/Sun Aug 15 16:59:32 2004/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/rts7751r2d/CVS/Repository linux-2.6.17/include/asm-sh/rts7751r2d/CVS/Repository
---- linux-2.6.17-vanilla/include/asm-sh/rts7751r2d/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/rts7751r2d/CVS/Repository 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+linux/include/asm-sh/rts7751r2d
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/rts7751r2d/CVS/Root linux-2.6.17/include/asm-sh/rts7751r2d/CVS/Root
---- linux-2.6.17-vanilla/include/asm-sh/rts7751r2d/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/rts7751r2d/CVS/Root 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/rts7751r2d/rts7751r2d.h linux-2.6.17/include/asm-sh/rts7751r2d/rts7751r2d.h
---- linux-2.6.17-vanilla/include/asm-sh/rts7751r2d/rts7751r2d.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/rts7751r2d/rts7751r2d.h 2006-07-12 16:54:26.000000000 +0000
-@@ -41,8 +41,6 @@
-
- #define PA_AX88796L 0xaa000400 /* AX88796L Area */
- #define PA_VOYAGER 0xab000000 /* VOYAGER GX Area */
--#define PA_AREA5_IO 0xb4000000 /* Area 5 IO Memory */
--#define PA_AREA6_IO 0xb8000000 /* Area 6 IO Memory */
- #define PA_IDE_OFFSET 0x1f0 /* CF IDE Offset */
- #define AX88796L_IO_BASE 0x1000 /* AX88796L IO Base Address */
-
-@@ -70,4 +68,7 @@
- #define IRQ_PCISLOT2 10 /* PCI Slot #2 IRQ */
- #define IRQ_EXTENTION 11 /* EXTn IRQ */
-
-+#define __IO_PREFIX rts7751r2d
-+#include <asm/io_generic.h>
-+
- #endif /* __ASM_SH_RENESAS_RTS7751R2D */
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/saturn/CVS/Entries linux-2.6.17/include/asm-sh/saturn/CVS/Entries
---- linux-2.6.17-vanilla/include/asm-sh/saturn/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/saturn/CVS/Entries 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,3 @@
-+/io.h/1.3/Tue Jul 29 14:27:12 2003/-ko/
-+/smpc.h/1.2/Sun May 4 19:30:16 2003/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/saturn/CVS/Repository linux-2.6.17/include/asm-sh/saturn/CVS/Repository
---- linux-2.6.17-vanilla/include/asm-sh/saturn/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/saturn/CVS/Repository 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+linux/include/asm-sh/saturn
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/saturn/CVS/Root linux-2.6.17/include/asm-sh/saturn/CVS/Root
---- linux-2.6.17-vanilla/include/asm-sh/saturn/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/saturn/CVS/Root 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/scatterlist.h linux-2.6.17/include/asm-sh/scatterlist.h
---- linux-2.6.17-vanilla/include/asm-sh/scatterlist.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/scatterlist.h 2006-07-12 16:54:26.000000000 +0000
-@@ -10,4 +10,13 @@
-
- #define ISA_DMA_THRESHOLD (0x1fffffff)
-
-+/* These macros should be used after a pci_map_sg call has been done
-+ * to get bus addresses of each of the SG entries and their lengths.
-+ * You should only work with the number of sg entries pci_map_sg
-+ * returns, or alternatively stop on the first sg_dma_len(sg) which
-+ * is 0.
-+ */
-+#define sg_dma_address(sg) ((sg)->dma_address)
-+#define sg_dma_len(sg) ((sg)->length)
-+
- #endif /* !(__ASM_SH_SCATTERLIST_H) */
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/se.h linux-2.6.17/include/asm-sh/se.h
---- linux-2.6.17-vanilla/include/asm-sh/se.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/se.h 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,80 @@
-+#ifndef __ASM_SH_HITACHI_SE_H
-+#define __ASM_SH_HITACHI_SE_H
-+
-+/*
-+ * linux/include/asm-sh/hitachi_se.h
-+ *
-+ * Copyright (C) 2000 Kazumoto Kojima
-+ *
-+ * Hitachi SolutionEngine support
-+ */
-+
-+/* Box specific addresses. */
-+
-+#define PA_ROM 0x00000000 /* EPROM */
-+#define PA_ROM_SIZE 0x00400000 /* EPROM size 4M byte */
-+#define PA_FROM 0x01000000 /* EPROM */
-+#define PA_FROM_SIZE 0x00400000 /* EPROM size 4M byte */
-+#define PA_EXT1 0x04000000
-+#define PA_EXT1_SIZE 0x04000000
-+#define PA_EXT2 0x08000000
-+#define PA_EXT2_SIZE 0x04000000
-+#define PA_SDRAM 0x0c000000
-+#define PA_SDRAM_SIZE 0x04000000
-+
-+#define PA_EXT4 0x12000000
-+#define PA_EXT4_SIZE 0x02000000
-+#define PA_EXT5 0x14000000
-+#define PA_EXT5_SIZE 0x04000000
-+#define PA_PCIC 0x18000000 /* MR-SHPC-01 PCMCIA */
-+
-+#define PA_83902 0xb0000000 /* DP83902A */
-+#define PA_83902_IF 0xb0040000 /* DP83902A remote io port */
-+#define PA_83902_RST 0xb0080000 /* DP83902A reset port */
-+
-+#define PA_SUPERIO 0xb0400000 /* SMC37C935A super io chip */
-+#define PA_DIPSW0 0xb0800000 /* Dip switch 5,6 */
-+#define PA_DIPSW1 0xb0800002 /* Dip switch 7,8 */
-+#define PA_LED 0xb0c00000 /* LED */
-+#if defined(CONFIG_CPU_SUBTYPE_SH7705)
-+#define PA_BCR 0xb0e00000
-+#else
-+#define PA_BCR 0xb1400000 /* FPGA */
-+#endif
-+
-+#define PA_MRSHPC 0xb83fffe0 /* MR-SHPC-01 PCMCIA controller */
-+#define PA_MRSHPC_MW1 0xb8400000 /* MR-SHPC-01 memory window base */
-+#define PA_MRSHPC_MW2 0xb8500000 /* MR-SHPC-01 attribute window base */
-+#define PA_MRSHPC_IO 0xb8600000 /* MR-SHPC-01 I/O window base */
-+#define MRSHPC_OPTION (PA_MRSHPC + 6)
-+#define MRSHPC_CSR (PA_MRSHPC + 8)
-+#define MRSHPC_ISR (PA_MRSHPC + 10)
-+#define MRSHPC_ICR (PA_MRSHPC + 12)
-+#define MRSHPC_CPWCR (PA_MRSHPC + 14)
-+#define MRSHPC_MW0CR1 (PA_MRSHPC + 16)
-+#define MRSHPC_MW1CR1 (PA_MRSHPC + 18)
-+#define MRSHPC_IOWCR1 (PA_MRSHPC + 20)
-+#define MRSHPC_MW0CR2 (PA_MRSHPC + 22)
-+#define MRSHPC_MW1CR2 (PA_MRSHPC + 24)
-+#define MRSHPC_IOWCR2 (PA_MRSHPC + 26)
-+#define MRSHPC_CDCR (PA_MRSHPC + 28)
-+#define MRSHPC_PCIC_INFO (PA_MRSHPC + 30)
-+
-+#define BCR_ILCRA (PA_BCR + 0)
-+#define BCR_ILCRB (PA_BCR + 2)
-+#define BCR_ILCRC (PA_BCR + 4)
-+#define BCR_ILCRD (PA_BCR + 6)
-+#define BCR_ILCRE (PA_BCR + 8)
-+#define BCR_ILCRF (PA_BCR + 10)
-+#define BCR_ILCRG (PA_BCR + 12)
-+
-+#if defined(CONFIG_CPU_SUBTYPE_SH7705)
-+#define IRQ_STNIC 12
-+#else
-+#define IRQ_STNIC 10
-+#endif
-+
-+#define __IO_PREFIX se
-+#include <asm/io_generic.h>
-+
-+#endif /* __ASM_SH_HITACHI_SE_H */
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/se7300.h linux-2.6.17/include/asm-sh/se7300.h
---- linux-2.6.17-vanilla/include/asm-sh/se7300.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/se7300.h 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,64 @@
-+#ifndef __ASM_SH_HITACHI_SE7300_H
-+#define __ASM_SH_HITACHI_SE7300_H
-+
-+/*
-+ * linux/include/asm-sh/se/se7300.h
-+ *
-+ * Copyright (C) 2003 Takashi Kusuda <kusuda-takashi@hitachi-ul.co.jp>
-+ *
-+ * SH-Mobile SolutionEngine 7300 support
-+ */
-+
-+/* Box specific addresses. */
-+
-+/* Area 0 */
-+#define PA_ROM 0x00000000 /* EPROM */
-+#define PA_ROM_SIZE 0x00400000 /* EPROM size 4M byte(Actually 2MB) */
-+#define PA_FROM 0x00400000 /* Flash ROM */
-+#define PA_FROM_SIZE 0x00400000 /* Flash size 4M byte */
-+#define PA_SRAM 0x00800000 /* SRAM */
-+#define PA_FROM_SIZE 0x00400000 /* SRAM size 4M byte */
-+/* Area 1 */
-+#define PA_EXT1 0x04000000
-+#define PA_EXT1_SIZE 0x04000000
-+/* Area 2 */
-+#define PA_EXT2 0x08000000
-+#define PA_EXT2_SIZE 0x04000000
-+/* Area 3 */
-+#define PA_SDRAM 0x0c000000
-+#define PA_SDRAM_SIZE 0x04000000
-+/* Area 4 */
-+#define PA_PCIC 0x10000000 /* MR-SHPC-01 PCMCIA */
-+#define PA_MRSHPC 0xb03fffe0 /* MR-SHPC-01 PCMCIA controller */
-+#define PA_MRSHPC_MW1 0xb0400000 /* MR-SHPC-01 memory window base */
-+#define PA_MRSHPC_MW2 0xb0500000 /* MR-SHPC-01 attribute window base */
-+#define PA_MRSHPC_IO 0xb0600000 /* MR-SHPC-01 I/O window base */
-+#define MRSHPC_OPTION (PA_MRSHPC + 6)
-+#define MRSHPC_CSR (PA_MRSHPC + 8)
-+#define MRSHPC_ISR (PA_MRSHPC + 10)
-+#define MRSHPC_ICR (PA_MRSHPC + 12)
-+#define MRSHPC_CPWCR (PA_MRSHPC + 14)
-+#define MRSHPC_MW0CR1 (PA_MRSHPC + 16)
-+#define MRSHPC_MW1CR1 (PA_MRSHPC + 18)
-+#define MRSHPC_IOWCR1 (PA_MRSHPC + 20)
-+#define MRSHPC_MW0CR2 (PA_MRSHPC + 22)
-+#define MRSHPC_MW1CR2 (PA_MRSHPC + 24)
-+#define MRSHPC_IOWCR2 (PA_MRSHPC + 26)
-+#define MRSHPC_CDCR (PA_MRSHPC + 28)
-+#define MRSHPC_PCIC_INFO (PA_MRSHPC + 30)
-+#define PA_LED 0xb0800000 /* LED */
-+#define PA_DIPSW 0xb0900000 /* Dip switch 31 */
-+#define PA_EPLD_MODESET 0xb0a00000 /* FPGA Mode set register */
-+#define PA_EPLD_ST1 0xb0a80000 /* FPGA Interrupt status register1 */
-+#define PA_EPLD_ST2 0xb0ac0000 /* FPGA Interrupt status register2 */
-+/* Area 5 */
-+#define PA_EXT5 0x14000000
-+#define PA_EXT5_SIZE 0x04000000
-+/* Area 6 */
-+#define PA_LCD1 0xb8000000
-+#define PA_LCD2 0xb8800000
-+
-+#define __IO_PREFIX sh7300se
-+#include <asm/io_generic.h>
-+
-+#endif /* __ASM_SH_HITACHI_SE7300_H */
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/se73180.h linux-2.6.17/include/asm-sh/se73180.h
---- linux-2.6.17-vanilla/include/asm-sh/se73180.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/se73180.h 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,65 @@
-+#ifndef __ASM_SH_HITACHI_SE73180_H
-+#define __ASM_SH_HITACHI_SE73180_H
-+
-+/*
-+ * include/asm-sh/se/se73180.h
-+ *
-+ * Copyright (C) 2003 Takashi Kusuda <kusuda-takashi@hitachi-ul.co.jp>
-+ *
-+ * SH-Mobile SolutionEngine 73180 support
-+ */
-+
-+/* Box specific addresses. */
-+
-+/* Area 0 */
-+#define PA_ROM 0x00000000 /* EPROM */
-+#define PA_ROM_SIZE 0x00400000 /* EPROM size 4M byte(Actually 2MB) */
-+#define PA_FROM 0x00400000 /* Flash ROM */
-+#define PA_FROM_SIZE 0x00400000 /* Flash size 4M byte */
-+#define PA_SRAM 0x00800000 /* SRAM */
-+#define PA_FROM_SIZE 0x00400000 /* SRAM size 4M byte */
-+/* Area 1 */
-+#define PA_EXT1 0x04000000
-+#define PA_EXT1_SIZE 0x04000000
-+/* Area 2 */
-+#define PA_EXT2 0x08000000
-+#define PA_EXT2_SIZE 0x04000000
-+/* Area 3 */
-+#define PA_SDRAM 0x0c000000
-+#define PA_SDRAM_SIZE 0x04000000
-+/* Area 4 */
-+#define PA_PCIC 0x10000000 /* MR-SHPC-01 PCMCIA */
-+#define PA_MRSHPC 0xb03fffe0 /* MR-SHPC-01 PCMCIA controller */
-+#define PA_MRSHPC_MW1 0xb0400000 /* MR-SHPC-01 memory window base */
-+#define PA_MRSHPC_MW2 0xb0500000 /* MR-SHPC-01 attribute window base */
-+#define PA_MRSHPC_IO 0xb0600000 /* MR-SHPC-01 I/O window base */
-+#define MRSHPC_OPTION (PA_MRSHPC + 6)
-+#define MRSHPC_CSR (PA_MRSHPC + 8)
-+#define MRSHPC_ISR (PA_MRSHPC + 10)
-+#define MRSHPC_ICR (PA_MRSHPC + 12)
-+#define MRSHPC_CPWCR (PA_MRSHPC + 14)
-+#define MRSHPC_MW0CR1 (PA_MRSHPC + 16)
-+#define MRSHPC_MW1CR1 (PA_MRSHPC + 18)
-+#define MRSHPC_IOWCR1 (PA_MRSHPC + 20)
-+#define MRSHPC_MW0CR2 (PA_MRSHPC + 22)
-+#define MRSHPC_MW1CR2 (PA_MRSHPC + 24)
-+#define MRSHPC_IOWCR2 (PA_MRSHPC + 26)
-+#define MRSHPC_CDCR (PA_MRSHPC + 28)
-+#define MRSHPC_PCIC_INFO (PA_MRSHPC + 30)
-+#define PA_LED 0xb0C00000 /* LED */
-+#define LED_SHIFT 0
-+#define PA_DIPSW 0xb0900000 /* Dip switch 31 */
-+#define PA_EPLD_MODESET 0xb0a00000 /* FPGA Mode set register */
-+#define PA_EPLD_ST1 0xb0a80000 /* FPGA Interrupt status register1 */
-+#define PA_EPLD_ST2 0xb0ac0000 /* FPGA Interrupt status register2 */
-+/* Area 5 */
-+#define PA_EXT5 0x14000000
-+#define PA_EXT5_SIZE 0x04000000
-+/* Area 6 */
-+#define PA_LCD1 0xb8000000
-+#define PA_LCD2 0xb8800000
-+
-+#define __IO_PREFIX sh73180se
-+#include <asm/io_generic.h>
-+
-+#endif /* __ASM_SH_HITACHI_SE73180_H */
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/se7751.h linux-2.6.17/include/asm-sh/se7751.h
---- linux-2.6.17-vanilla/include/asm-sh/se7751.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/se7751.h 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,71 @@
-+#ifndef __ASM_SH_HITACHI_7751SE_H
-+#define __ASM_SH_HITACHI_7751SE_H
-+
-+/*
-+ * linux/include/asm-sh/hitachi_7751se.h
-+ *
-+ * Copyright (C) 2000 Kazumoto Kojima
-+ *
-+ * Hitachi SolutionEngine support
-+
-+ * Modified for 7751 Solution Engine by
-+ * Ian da Silva and Jeremy Siegel, 2001.
-+ */
-+
-+/* Box specific addresses. */
-+
-+#define PA_ROM 0x00000000 /* EPROM */
-+#define PA_ROM_SIZE 0x00400000 /* EPROM size 4M byte */
-+#define PA_FROM 0x01000000 /* EPROM */
-+#define PA_FROM_SIZE 0x00400000 /* EPROM size 4M byte */
-+#define PA_EXT1 0x04000000
-+#define PA_EXT1_SIZE 0x04000000
-+#define PA_EXT2 0x08000000
-+#define PA_EXT2_SIZE 0x04000000
-+#define PA_SDRAM 0x0c000000
-+#define PA_SDRAM_SIZE 0x04000000
-+
-+#define PA_EXT4 0x12000000
-+#define PA_EXT4_SIZE 0x02000000
-+#define PA_EXT5 0x14000000
-+#define PA_EXT5_SIZE 0x04000000
-+#define PA_PCIC 0x18000000 /* MR-SHPC-01 PCMCIA */
-+
-+#define PA_DIPSW0 0xb9000000 /* Dip switch 5,6 */
-+#define PA_DIPSW1 0xb9000002 /* Dip switch 7,8 */
-+#define PA_LED 0xba000000 /* LED */
-+#define PA_BCR 0xbb000000 /* FPGA on the MS7751SE01 */
-+
-+#define PA_MRSHPC 0xb83fffe0 /* MR-SHPC-01 PCMCIA controler */
-+#define PA_MRSHPC_MW1 0xb8400000 /* MR-SHPC-01 memory window base */
-+#define PA_MRSHPC_MW2 0xb8500000 /* MR-SHPC-01 attribute window base */
-+#define PA_MRSHPC_IO 0xb8600000 /* MR-SHPC-01 I/O window base */
-+#define MRSHPC_MODE (PA_MRSHPC + 4)
-+#define MRSHPC_OPTION (PA_MRSHPC + 6)
-+#define MRSHPC_CSR (PA_MRSHPC + 8)
-+#define MRSHPC_ISR (PA_MRSHPC + 10)
-+#define MRSHPC_ICR (PA_MRSHPC + 12)
-+#define MRSHPC_CPWCR (PA_MRSHPC + 14)
-+#define MRSHPC_MW0CR1 (PA_MRSHPC + 16)
-+#define MRSHPC_MW1CR1 (PA_MRSHPC + 18)
-+#define MRSHPC_IOWCR1 (PA_MRSHPC + 20)
-+#define MRSHPC_MW0CR2 (PA_MRSHPC + 22)
-+#define MRSHPC_MW1CR2 (PA_MRSHPC + 24)
-+#define MRSHPC_IOWCR2 (PA_MRSHPC + 26)
-+#define MRSHPC_CDCR (PA_MRSHPC + 28)
-+#define MRSHPC_PCIC_INFO (PA_MRSHPC + 30)
-+
-+#define BCR_ILCRA (PA_BCR + 0)
-+#define BCR_ILCRB (PA_BCR + 2)
-+#define BCR_ILCRC (PA_BCR + 4)
-+#define BCR_ILCRD (PA_BCR + 6)
-+#define BCR_ILCRE (PA_BCR + 8)
-+#define BCR_ILCRF (PA_BCR + 10)
-+#define BCR_ILCRG (PA_BCR + 12)
-+
-+#define IRQ_79C973 13
-+
-+#define __IO_PREFIX sh7751se
-+#include <asm/io_generic.h>
-+
-+#endif /* __ASM_SH_HITACHI_7751SE_H */
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/sfp-machine.h linux-2.6.17/include/asm-sh/sfp-machine.h
---- linux-2.6.17-vanilla/include/asm-sh/sfp-machine.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/sfp-machine.h 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,86 @@
-+/* Machine-dependent software floating-point definitions.
-+ SuperH kernel version.
-+ Copyright (C) 1997,1998,1999 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+ Contributed by Richard Henderson (rth@cygnus.com),
-+ Jakub Jelinek (jj@ultra.linux.cz),
-+ David S. Miller (davem@redhat.com) and
-+ Peter Maydell (pmaydell@chiark.greenend.org.uk).
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Library General Public License as
-+ published by the Free Software Foundation; either version 2 of the
-+ License, or (at your option) any later version.
-+
-+ The GNU C Library 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library General Public
-+ License along with the GNU C Library; see the file COPYING.LIB. If
-+ not, write to the Free Software Foundation, Inc.,
-+ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-+
-+#ifndef _SFP_MACHINE_H
-+#define _SFP_MACHINE_H
-+
-+#include <linux/config.h>
-+
-+#define _FP_W_TYPE_SIZE 32
-+#define _FP_W_TYPE unsigned long
-+#define _FP_WS_TYPE signed long
-+#define _FP_I_TYPE long
-+
-+#define _FP_MUL_MEAT_S(R,X,Y) \
-+ _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
-+#define _FP_MUL_MEAT_D(R,X,Y) \
-+ _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
-+#define _FP_MUL_MEAT_Q(R,X,Y) \
-+ _FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
-+
-+#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_udiv(S,R,X,Y)
-+#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_2_udiv(D,R,X,Y)
-+#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_4_udiv(Q,R,X,Y)
-+
-+#define _FP_NANFRAC_S ((_FP_QNANBIT_S << 1) - 1)
-+#define _FP_NANFRAC_D ((_FP_QNANBIT_D << 1) - 1), -1
-+#define _FP_NANFRAC_Q ((_FP_QNANBIT_Q << 1) - 1), -1, -1, -1
-+#define _FP_NANSIGN_S 0
-+#define _FP_NANSIGN_D 0
-+#define _FP_NANSIGN_Q 0
-+
-+#define _FP_KEEPNANFRACP 1
-+
-+/*
-+ * If one NaN is signaling and the other is not,
-+ * we choose that one, otherwise we choose X.
-+ */
-+#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
-+ do { \
-+ if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \
-+ && !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)) \
-+ { \
-+ R##_s = Y##_s; \
-+ _FP_FRAC_COPY_##wc(R,Y); \
-+ } \
-+ else \
-+ { \
-+ R##_s = X##_s; \
-+ _FP_FRAC_COPY_##wc(R,X); \
-+ } \
-+ R##_c = FP_CLS_NAN; \
-+ } while (0)
-+
-+//#define FP_ROUNDMODE FPSCR_RM
-+#define FP_DENORM_ZERO 1/*FPSCR_DN*/
-+
-+/* Exception flags. */
-+#define FP_EX_INVALID (1<<4)
-+#define FP_EX_DIVZERO (1<<3)
-+#define FP_EX_OVERFLOW (1<<2)
-+#define FP_EX_UNDERFLOW (1<<1)
-+#define FP_EX_INEXACT (1<<0)
-+
-+#endif
-+
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/sh03/CVS/Entries linux-2.6.17/include/asm-sh/sh03/CVS/Entries
---- linux-2.6.17-vanilla/include/asm-sh/sh03/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/sh03/CVS/Entries 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,4 @@
-+/ide.h/1.1/Fri Dec 3 01:43:33 2004/-ko/
-+/io.h/1.2/Wed Jan 4 18:27:49 2006/-ko/
-+/sh03.h/1.2/Sat Aug 13 14:34:12 2005/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/sh03/CVS/Repository linux-2.6.17/include/asm-sh/sh03/CVS/Repository
---- linux-2.6.17-vanilla/include/asm-sh/sh03/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/sh03/CVS/Repository 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+linux/include/asm-sh/sh03
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/sh03/CVS/Root linux-2.6.17/include/asm-sh/sh03/CVS/Root
---- linux-2.6.17-vanilla/include/asm-sh/sh03/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/sh03/CVS/Root 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/sh03/io.h linux-2.6.17/include/asm-sh/sh03/io.h
---- linux-2.6.17-vanilla/include/asm-sh/sh03/io.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/sh03/io.h 2006-07-12 16:54:26.000000000 +0000
-@@ -33,14 +33,6 @@
- #define IRL3_IPR_POS 0
- #define IRL3_PRIORITY 4
-
--
--extern unsigned long sh03_isa_port2addr(unsigned long offset);
--
--extern void setup_sh03(void);
--extern void init_sh03_IRQ(void);
--extern void heartbeat_sh03(void);
--
--extern void sh03_rtc_gettimeofday(struct timeval *tv);
--extern int sh03_rtc_settimeofday(const struct timeval *tv);
-+void heartbeat_sh03(void);
-
- #endif /* _ASM_SH_IO_SH03_H */
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/sh2000/CVS/Entries linux-2.6.17/include/asm-sh/sh2000/CVS/Entries
---- linux-2.6.17-vanilla/include/asm-sh/sh2000/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/sh2000/CVS/Entries 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,2 @@
-+/sh2000.h/1.2/Fri Nov 1 17:19:31 2002//
-+D
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/sh2000/CVS/Repository linux-2.6.17/include/asm-sh/sh2000/CVS/Repository
---- linux-2.6.17-vanilla/include/asm-sh/sh2000/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/sh2000/CVS/Repository 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+linux/include/asm-sh/sh2000
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/sh2000/CVS/Root linux-2.6.17/include/asm-sh/sh2000/CVS/Root
---- linux-2.6.17-vanilla/include/asm-sh/sh2000/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/sh2000/CVS/Root 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/smc37c93x.h linux-2.6.17/include/asm-sh/smc37c93x.h
---- linux-2.6.17-vanilla/include/asm-sh/smc37c93x.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/smc37c93x.h 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,190 @@
-+#ifndef __ASM_SH_SMC37C93X_H
-+#define __ASM_SH_SMC37C93X_H
-+
-+/*
-+ * linux/include/asm-sh/smc37c93x.h
-+ *
-+ * Copyright (C) 2000 Kazumoto Kojima
-+ *
-+ * SMSC 37C93x Super IO Chip support
-+ */
-+
-+/* Default base I/O address */
-+#define FDC_PRIMARY_BASE 0x3f0
-+#define IDE1_PRIMARY_BASE 0x1f0
-+#define IDE1_SECONDARY_BASE 0x170
-+#define PARPORT_PRIMARY_BASE 0x378
-+#define COM1_PRIMARY_BASE 0x2f8
-+#define COM2_PRIMARY_BASE 0x3f8
-+#define RTC_PRIMARY_BASE 0x070
-+#define KBC_PRIMARY_BASE 0x060
-+#define AUXIO_PRIMARY_BASE 0x000 /* XXX */
-+
-+/* Logical device number */
-+#define LDN_FDC 0
-+#define LDN_IDE1 1
-+#define LDN_IDE2 2
-+#define LDN_PARPORT 3
-+#define LDN_COM1 4
-+#define LDN_COM2 5
-+#define LDN_RTC 6
-+#define LDN_KBC 7
-+#define LDN_AUXIO 8
-+
-+/* Configuration port and key */
-+#define CONFIG_PORT 0x3f0
-+#define INDEX_PORT CONFIG_PORT
-+#define DATA_PORT 0x3f1
-+#define CONFIG_ENTER 0x55
-+#define CONFIG_EXIT 0xaa
-+
-+/* Configuration index */
-+#define CURRENT_LDN_INDEX 0x07
-+#define POWER_CONTROL_INDEX 0x22
-+#define ACTIVATE_INDEX 0x30
-+#define IO_BASE_HI_INDEX 0x60
-+#define IO_BASE_LO_INDEX 0x61
-+#define IRQ_SELECT_INDEX 0x70
-+#define DMA_SELECT_INDEX 0x74
-+
-+#define GPIO46_INDEX 0xc6
-+#define GPIO47_INDEX 0xc7
-+
-+/* UART stuff. Only for debugging. */
-+/* UART Register */
-+
-+#define UART_RBR 0x0 /* Receiver Buffer Register (Read Only) */
-+#define UART_THR 0x0 /* Transmitter Holding Register (Write Only) */
-+#define UART_IER 0x2 /* Interrupt Enable Register */
-+#define UART_IIR 0x4 /* Interrupt Ident Register (Read Only) */
-+#define UART_FCR 0x4 /* FIFO Control Register (Write Only) */
-+#define UART_LCR 0x6 /* Line Control Register */
-+#define UART_MCR 0x8 /* MODEM Control Register */
-+#define UART_LSR 0xa /* Line Status Register */
-+#define UART_MSR 0xc /* MODEM Status Register */
-+#define UART_SCR 0xe /* Scratch Register */
-+#define UART_DLL 0x0 /* Divisor Latch (LS) */
-+#define UART_DLM 0x2 /* Divisor Latch (MS) */
-+
-+#ifndef __ASSEMBLY__
-+typedef struct uart_reg {
-+ volatile __u16 rbr;
-+ volatile __u16 ier;
-+ volatile __u16 iir;
-+ volatile __u16 lcr;
-+ volatile __u16 mcr;
-+ volatile __u16 lsr;
-+ volatile __u16 msr;
-+ volatile __u16 scr;
-+} uart_reg;
-+#endif /* ! __ASSEMBLY__ */
-+
-+/* Alias for Write Only Register */
-+
-+#define thr rbr
-+#define tcr iir
-+
-+/* Alias for Divisor Latch Register */
-+
-+#define dll rbr
-+#define dlm ier
-+#define fcr iir
-+
-+/* Interrupt Enable Register */
-+
-+#define IER_ERDAI 0x0100 /* Enable Received Data Available Interrupt */
-+#define IER_ETHREI 0x0200 /* Enable Transmitter Holding Register Empty Interrupt */
-+#define IER_ELSI 0x0400 /* Enable Receiver Line Status Interrupt */
-+#define IER_EMSI 0x0800 /* Enable MODEM Status Interrupt */
-+
-+/* Interrupt Ident Register */
-+
-+#define IIR_IP 0x0100 /* "0" if Interrupt Pending */
-+#define IIR_IIB0 0x0200 /* Interrupt ID Bit 0 */
-+#define IIR_IIB1 0x0400 /* Interrupt ID Bit 1 */
-+#define IIR_IIB2 0x0800 /* Interrupt ID Bit 2 */
-+#define IIR_FIFO 0xc000 /* FIFOs enabled */
-+
-+/* FIFO Control Register */
-+
-+#define FCR_FEN 0x0100 /* FIFO enable */
-+#define FCR_RFRES 0x0200 /* Receiver FIFO reset */
-+#define FCR_TFRES 0x0400 /* Transmitter FIFO reset */
-+#define FCR_DMA 0x0800 /* DMA mode select */
-+#define FCR_RTL 0x4000 /* Receiver triger (LSB) */
-+#define FCR_RTM 0x8000 /* Receiver triger (MSB) */
-+
-+/* Line Control Register */
-+
-+#define LCR_WLS0 0x0100 /* Word Length Select Bit 0 */
-+#define LCR_WLS1 0x0200 /* Word Length Select Bit 1 */
-+#define LCR_STB 0x0400 /* Number of Stop Bits */
-+#define LCR_PEN 0x0800 /* Parity Enable */
-+#define LCR_EPS 0x1000 /* Even Parity Select */
-+#define LCR_SP 0x2000 /* Stick Parity */
-+#define LCR_SB 0x4000 /* Set Break */
-+#define LCR_DLAB 0x8000 /* Divisor Latch Access Bit */
-+
-+/* MODEM Control Register */
-+
-+#define MCR_DTR 0x0100 /* Data Terminal Ready */
-+#define MCR_RTS 0x0200 /* Request to Send */
-+#define MCR_OUT1 0x0400 /* Out 1 */
-+#define MCR_IRQEN 0x0800 /* IRQ Enable */
-+#define MCR_LOOP 0x1000 /* Loop */
-+
-+/* Line Status Register */
-+
-+#define LSR_DR 0x0100 /* Data Ready */
-+#define LSR_OE 0x0200 /* Overrun Error */
-+#define LSR_PE 0x0400 /* Parity Error */
-+#define LSR_FE 0x0800 /* Framing Error */
-+#define LSR_BI 0x1000 /* Break Interrupt */
-+#define LSR_THRE 0x2000 /* Transmitter Holding Register Empty */
-+#define LSR_TEMT 0x4000 /* Transmitter Empty */
-+#define LSR_FIFOE 0x8000 /* Receiver FIFO error */
-+
-+/* MODEM Status Register */
-+
-+#define MSR_DCTS 0x0100 /* Delta Clear to Send */
-+#define MSR_DDSR 0x0200 /* Delta Data Set Ready */
-+#define MSR_TERI 0x0400 /* Trailing Edge Ring Indicator */
-+#define MSR_DDCD 0x0800 /* Delta Data Carrier Detect */
-+#define MSR_CTS 0x1000 /* Clear to Send */
-+#define MSR_DSR 0x2000 /* Data Set Ready */
-+#define MSR_RI 0x4000 /* Ring Indicator */
-+#define MSR_DCD 0x8000 /* Data Carrier Detect */
-+
-+/* Baud Rate Divisor */
-+
-+#define UART_CLK (1843200) /* 1.8432 MHz */
-+#define UART_BAUD(x) (UART_CLK / (16 * (x)))
-+
-+/* RTC register definition */
-+#define RTC_SECONDS 0
-+#define RTC_SECONDS_ALARM 1
-+#define RTC_MINUTES 2
-+#define RTC_MINUTES_ALARM 3
-+#define RTC_HOURS 4
-+#define RTC_HOURS_ALARM 5
-+#define RTC_DAY_OF_WEEK 6
-+#define RTC_DAY_OF_MONTH 7
-+#define RTC_MONTH 8
-+#define RTC_YEAR 9
-+#define RTC_FREQ_SELECT 10
-+# define RTC_UIP 0x80
-+# define RTC_DIV_CTL 0x70
-+/* This RTC can work under 32.768KHz clock only. */
-+# define RTC_OSC_ENABLE 0x20
-+# define RTC_OSC_DISABLE 0x00
-+#define RTC_CONTROL 11
-+# define RTC_SET 0x80
-+# define RTC_PIE 0x40
-+# define RTC_AIE 0x20
-+# define RTC_UIE 0x10
-+# define RTC_SQWE 0x08
-+# define RTC_DM_BINARY 0x04
-+# define RTC_24H 0x02
-+# define RTC_DST_EN 0x01
-+
-+#endif /* __ASM_SH_SMC37C93X_H */
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/smp.h linux-2.6.17/include/asm-sh/smp.h
---- linux-2.6.17-vanilla/include/asm-sh/smp.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/smp.h 2006-07-12 16:54:26.000000000 +0000
-@@ -20,11 +20,6 @@
- #include <asm/atomic.h>
- #include <asm/current.h>
-
--extern cpumask_t cpu_online_map;
--extern cpumask_t cpu_possible_map;
--
--#define cpu_online(cpu) cpu_isset(cpu, cpu_online_map)
--
- #define raw_smp_processor_id() (current_thread_info()->cpu)
-
- /* I've no idea what the real meaning of this is */
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/snapgear.h linux-2.6.17/include/asm-sh/snapgear.h
---- linux-2.6.17-vanilla/include/asm-sh/snapgear.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/snapgear.h 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,79 @@
-+/*
-+ * include/asm-sh/snapgear/io.h
-+ *
-+ * Modified version of io_se.h for the snapgear-specific functions.
-+ *
-+ * May be copied or modified under the terms of the GNU General Public
-+ * License. See linux/COPYING for more information.
-+ *
-+ * IO functions for a SnapGear
-+ */
-+
-+#ifndef _ASM_SH_IO_SNAPGEAR_H
-+#define _ASM_SH_IO_SNAPGEAR_H
-+
-+#if defined(CONFIG_CPU_SH4)
-+/*
-+ * The external interrupt lines, these take up ints 0 - 15 inclusive
-+ * depending on the priority for the interrupt. In fact the priority
-+ * is the interrupt :-)
-+ */
-+
-+#define IRL0_IRQ 2
-+#define IRL0_IPR_ADDR INTC_IPRD
-+#define IRL0_IPR_POS 3
-+#define IRL0_PRIORITY 13
-+
-+#define IRL1_IRQ 5
-+#define IRL1_IPR_ADDR INTC_IPRD
-+#define IRL1_IPR_POS 2
-+#define IRL1_PRIORITY 10
-+
-+#define IRL2_IRQ 8
-+#define IRL2_IPR_ADDR INTC_IPRD
-+#define IRL2_IPR_POS 1
-+#define IRL2_PRIORITY 7
-+
-+#define IRL3_IRQ 11
-+#define IRL3_IPR_ADDR INTC_IPRD
-+#define IRL3_IPR_POS 0
-+#define IRL3_PRIORITY 4
-+#endif
-+
-+#define __IO_PREFIX snapgear
-+#include <asm/io_generic.h>
-+
-+#ifdef CONFIG_SH_SECUREEDGE5410
-+/*
-+ * We need to remember what was written to the ioport as some bits
-+ * are shared with other functions and you cannot read back what was
-+ * written :-|
-+ *
-+ * Bit Read Write
-+ * -----------------------------------------------
-+ * D0 DCD on ttySC1 power
-+ * D1 Reset Switch heatbeat
-+ * D2 ttySC0 CTS (7100) LAN
-+ * D3 - WAN
-+ * D4 ttySC0 DCD (7100) CONSOLE
-+ * D5 - ONLINE
-+ * D6 - VPN
-+ * D7 - DTR on ttySC1
-+ * D8 - ttySC0 RTS (7100)
-+ * D9 - ttySC0 DTR (7100)
-+ * D10 - RTC SCLK
-+ * D11 RTC DATA RTC DATA
-+ * D12 - RTS RESET
-+ */
-+
-+#define SECUREEDGE_IOPORT_ADDR ((volatile short *) 0xb0000000)
-+extern unsigned short secureedge5410_ioport;
-+
-+#define SECUREEDGE_WRITE_IOPORT(val, mask) (*SECUREEDGE_IOPORT_ADDR = \
-+ (secureedge5410_ioport = \
-+ ((secureedge5410_ioport & ~(mask)) | ((val) & (mask)))))
-+#define SECUREEDGE_READ_IOPORT() \
-+ ((*SECUREEDGE_IOPORT_ADDR&0x0817) | (secureedge5410_ioport&~0x0817))
-+#endif
-+
-+#endif /* _ASM_SH_IO_SNAPGEAR_H */
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/system.h linux-2.6.17/include/asm-sh/system.h
---- linux-2.6.17-vanilla/include/asm-sh/system.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/system.h 2006-07-12 16:54:26.000000000 +0000
-@@ -7,6 +7,7 @@
- */
-
- #include <linux/config.h>
-+#include <asm/types.h>
-
- /*
- * switch_to() should switch tasks to task nr n, first
-@@ -67,13 +68,20 @@
- {
- }
-
--#define nop() __asm__ __volatile__ ("nop")
--
--
--#define xchg(ptr,x) ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr))))
-+#ifdef CONFIG_CPU_SH4A
-+#define __icbi() \
-+{ \
-+ unsigned long __addr; \
-+ __addr = 0xa8000000; \
-+ __asm__ __volatile__( \
-+ "icbi %0\n\t" \
-+ : /* no output */ \
-+ : "m" (__m(__addr))); \
-+}
-+#endif
-
- static __inline__ unsigned long tas(volatile int *m)
--{ /* #define tas(ptr) (xchg((ptr),1)) */
-+{
- unsigned long retval;
-
- __asm__ __volatile__ ("tas.b @%1\n\t"
-@@ -82,12 +90,33 @@
- return retval;
- }
-
--extern void __xchg_called_with_bad_pointer(void);
--
--#define mb() __asm__ __volatile__ ("": : :"memory")
--#define rmb() mb()
--#define wmb() __asm__ __volatile__ ("": : :"memory")
-+/*
-+ * A brief note on ctrl_barrier(), the control register write barrier.
-+ *
-+ * Legacy SH cores typically require a sequence of 8 nops after
-+ * modification of a control register in order for the changes to take
-+ * effect. On newer cores (like the sh4a and sh5) this is accomplished
-+ * with icbi.
-+ *
-+ * Also note that on sh4a in the icbi case we can forego a synco for the
-+ * write barrier, as it's not necessary for control registers.
-+ *
-+ * Historically we have only done this type of barrier for the MMUCR, but
-+ * it's also necessary for the CCR, so we make it generic here instead.
-+ */
-+#ifdef CONFIG_CPU_SH4A
-+#define mb() __asm__ __volatile__ ("synco": : :"memory")
-+#define rmb() mb()
-+#define wmb() __asm__ __volatile__ ("synco": : :"memory")
-+#define ctrl_barrier() __icbi()
- #define read_barrier_depends() do { } while(0)
-+#else
-+#define mb() __asm__ __volatile__ ("": : :"memory")
-+#define rmb() mb()
-+#define wmb() __asm__ __volatile__ ("": : :"memory")
-+#define ctrl_barrier() __asm__ __volatile__ ("nop;nop;nop;nop;nop;nop;nop;nop")
-+#define read_barrier_depends() do { } while(0)
-+#endif
-
- #ifdef CONFIG_SMP
- #define smp_mb() mb()
-@@ -105,7 +134,8 @@
- #define set_wmb(var, value) do { var = value; wmb(); } while (0)
-
- /* Interrupt Control */
--static __inline__ void local_irq_enable(void)
-+#ifdef CONFIG_CPU_HAS_SR_RB
-+static inline void local_irq_enable(void)
- {
- unsigned long __dummy0, __dummy1;
-
-@@ -118,6 +148,20 @@
- : "1" (~0x000000f0)
- : "memory");
- }
-+#else
-+static inline void local_irq_enable(void)
-+{
-+ unsigned long __dummy0, __dummy1;
-+
-+ __asm__ __volatile__ (
-+ "stc sr, %0\n\t"
-+ "and %1, %0\n\t"
-+ "ldc %0, sr\n\t"
-+ : "=&r" (__dummy0), "=r" (__dummy1)
-+ : "1" (~0x000000f0)
-+ : "memory");
-+}
-+#endif
-
- static __inline__ void local_irq_disable(void)
- {
-@@ -130,6 +174,31 @@
- : "memory");
- }
-
-+static __inline__ void set_bl_bit(void)
-+{
-+ unsigned long __dummy0, __dummy1;
-+
-+ __asm__ __volatile__ ("stc sr, %0\n\t"
-+ "or %2, %0\n\t"
-+ "and %3, %0\n\t"
-+ "ldc %0, sr"
-+ : "=&r" (__dummy0), "=r" (__dummy1)
-+ : "r" (0x10000000), "r" (0xffffff0f)
-+ : "memory");
-+}
-+
-+static __inline__ void clear_bl_bit(void)
-+{
-+ unsigned long __dummy0, __dummy1;
-+
-+ __asm__ __volatile__ ("stc sr, %0\n\t"
-+ "and %2, %0\n\t"
-+ "ldc %0, sr"
-+ : "=&r" (__dummy0), "=r" (__dummy1)
-+ : "1" (~0x10000000)
-+ : "memory");
-+}
-+
- #define local_save_flags(x) \
- __asm__("stc sr, %0; and #0xf0, %0" : "=&z" (x) :/**/: "memory" )
-
-@@ -174,17 +243,17 @@
- }
- }
- #else
--#define local_irq_restore(x) do { \
-+#define local_irq_restore(x) do { \
- if ((x & 0x000000f0) != 0x000000f0) \
-- local_irq_enable(); \
-+ local_irq_enable(); \
- } while (0)
- #endif
-
--#define really_restore_flags(x) do { \
-+#define really_restore_flags(x) do { \
- if ((x & 0x000000f0) != 0x000000f0) \
-- local_irq_enable(); \
-+ local_irq_enable(); \
- else \
-- local_irq_disable(); \
-+ local_irq_disable(); \
- } while (0)
-
- /*
-@@ -212,8 +281,8 @@
- #define back_to_P1() \
- do { \
- unsigned long __dummy; \
-+ ctrl_barrier(); \
- __asm__ __volatile__( \
-- "nop;nop;nop;nop;nop;nop;nop\n\t" \
- "mov.l 1f, %0\n\t" \
- "jmp @%0\n\t" \
- " nop\n\t" \
-@@ -226,7 +295,7 @@
- /* For spinlocks etc */
- #define local_irq_save(x) x = local_irq_save()
-
--static __inline__ unsigned long xchg_u32(volatile int * m, unsigned long val)
-+static inline unsigned long xchg_u32(volatile u32 *m, unsigned long val)
- {
- unsigned long flags, retval;
-
-@@ -237,7 +306,7 @@
- return retval;
- }
-
--static __inline__ unsigned long xchg_u8(volatile unsigned char * m, unsigned long val)
-+static inline unsigned long xchg_u8(volatile u8 *m, unsigned long val)
- {
- unsigned long flags, retval;
-
-@@ -248,20 +317,70 @@
- return retval;
- }
-
--static __inline__ unsigned long __xchg(unsigned long x, volatile void * ptr, int size)
-+extern void __xchg_called_with_bad_pointer(void);
-+
-+#define __xchg(ptr, x, size) \
-+({ \
-+ unsigned long __xchg__res; \
-+ volatile void *__xchg_ptr = (ptr); \
-+ switch (size) { \
-+ case 4: \
-+ __xchg__res = xchg_u32(__xchg_ptr, x); \
-+ break; \
-+ case 1: \
-+ __xchg__res = xchg_u8(__xchg_ptr, x); \
-+ break; \
-+ default: \
-+ __xchg_called_with_bad_pointer(); \
-+ __xchg__res = x; \
-+ break; \
-+ } \
-+ \
-+ __xchg__res; \
-+})
-+
-+#define xchg(ptr,x) \
-+ ((__typeof__(*(ptr)))__xchg((ptr),(unsigned long)(x), sizeof(*(ptr))))
-+
-+static inline unsigned long __cmpxchg_u32(volatile int * m, unsigned long old,
-+ unsigned long new)
-+{
-+ __u32 retval;
-+ unsigned long flags;
-+
-+ local_irq_save(flags);
-+ retval = *m;
-+ if (retval == old)
-+ *m = new;
-+ local_irq_restore(flags); /* implies memory barrier */
-+ return retval;
-+}
-+
-+/* This function doesn't exist, so you'll get a linker error
-+ * if something tries to do an invalid cmpxchg(). */
-+extern void __cmpxchg_called_with_bad_pointer(void);
-+
-+#define __HAVE_ARCH_CMPXCHG 1
-+
-+static inline unsigned long __cmpxchg(volatile void * ptr, unsigned long old,
-+ unsigned long new, int size)
- {
- switch (size) {
- case 4:
-- return xchg_u32(ptr, x);
-- break;
-- case 1:
-- return xchg_u8(ptr, x);
-- break;
-+ return __cmpxchg_u32(ptr, old, new);
- }
-- __xchg_called_with_bad_pointer();
-- return x;
-+ __cmpxchg_called_with_bad_pointer();
-+ return old;
- }
-
-+#define cmpxchg(ptr,o,n) \
-+ ({ \
-+ __typeof__(*(ptr)) _o_ = (o); \
-+ __typeof__(*(ptr)) _n_ = (n); \
-+ (__typeof__(*(ptr))) __cmpxchg((ptr), (unsigned long)_o_, \
-+ (unsigned long)_n_, sizeof(*(ptr))); \
-+ })
-+
- /* XXX
- * disable hlt during certain critical i/o operations
- */
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/systemh7751.h linux-2.6.17/include/asm-sh/systemh7751.h
---- linux-2.6.17-vanilla/include/asm-sh/systemh7751.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/systemh7751.h 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,71 @@
-+#ifndef __ASM_SH_SYSTEMH_7751SYSTEMH_H
-+#define __ASM_SH_SYSTEMH_7751SYSTEMH_H
-+
-+/*
-+ * linux/include/asm-sh/systemh/7751systemh.h
-+ *
-+ * Copyright (C) 2000 Kazumoto Kojima
-+ *
-+ * Hitachi SystemH support
-+
-+ * Modified for 7751 SystemH by
-+ * Jonathan Short, 2002.
-+ */
-+
-+/* Box specific addresses. */
-+
-+#define PA_ROM 0x00000000 /* EPROM */
-+#define PA_ROM_SIZE 0x00400000 /* EPROM size 4M byte */
-+#define PA_FROM 0x01000000 /* EPROM */
-+#define PA_FROM_SIZE 0x00400000 /* EPROM size 4M byte */
-+#define PA_EXT1 0x04000000
-+#define PA_EXT1_SIZE 0x04000000
-+#define PA_EXT2 0x08000000
-+#define PA_EXT2_SIZE 0x04000000
-+#define PA_SDRAM 0x0c000000
-+#define PA_SDRAM_SIZE 0x04000000
-+
-+#define PA_EXT4 0x12000000
-+#define PA_EXT4_SIZE 0x02000000
-+#define PA_EXT5 0x14000000
-+#define PA_EXT5_SIZE 0x04000000
-+#define PA_PCIC 0x18000000 /* MR-SHPC-01 PCMCIA */
-+
-+#define PA_DIPSW0 0xb9000000 /* Dip switch 5,6 */
-+#define PA_DIPSW1 0xb9000002 /* Dip switch 7,8 */
-+#define PA_LED 0xba000000 /* LED */
-+#define PA_BCR 0xbb000000 /* FPGA on the MS7751SE01 */
-+
-+#define PA_MRSHPC 0xb83fffe0 /* MR-SHPC-01 PCMCIA controler */
-+#define PA_MRSHPC_MW1 0xb8400000 /* MR-SHPC-01 memory window base */
-+#define PA_MRSHPC_MW2 0xb8500000 /* MR-SHPC-01 attribute window base */
-+#define PA_MRSHPC_IO 0xb8600000 /* MR-SHPC-01 I/O window base */
-+#define MRSHPC_MODE (PA_MRSHPC + 4)
-+#define MRSHPC_OPTION (PA_MRSHPC + 6)
-+#define MRSHPC_CSR (PA_MRSHPC + 8)
-+#define MRSHPC_ISR (PA_MRSHPC + 10)
-+#define MRSHPC_ICR (PA_MRSHPC + 12)
-+#define MRSHPC_CPWCR (PA_MRSHPC + 14)
-+#define MRSHPC_MW0CR1 (PA_MRSHPC + 16)
-+#define MRSHPC_MW1CR1 (PA_MRSHPC + 18)
-+#define MRSHPC_IOWCR1 (PA_MRSHPC + 20)
-+#define MRSHPC_MW0CR2 (PA_MRSHPC + 22)
-+#define MRSHPC_MW1CR2 (PA_MRSHPC + 24)
-+#define MRSHPC_IOWCR2 (PA_MRSHPC + 26)
-+#define MRSHPC_CDCR (PA_MRSHPC + 28)
-+#define MRSHPC_PCIC_INFO (PA_MRSHPC + 30)
-+
-+#define BCR_ILCRA (PA_BCR + 0)
-+#define BCR_ILCRB (PA_BCR + 2)
-+#define BCR_ILCRC (PA_BCR + 4)
-+#define BCR_ILCRD (PA_BCR + 6)
-+#define BCR_ILCRE (PA_BCR + 8)
-+#define BCR_ILCRF (PA_BCR + 10)
-+#define BCR_ILCRG (PA_BCR + 12)
-+
-+#define IRQ_79C973 13
-+
-+#define __IO_PREFIX sh7751systemh
-+#include <asm/io_generic.h>
-+
-+#endif /* __ASM_SH_SYSTEMH_7751SYSTEMH_H */
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/thread_info.h linux-2.6.17/include/asm-sh/thread_info.h
---- linux-2.6.17-vanilla/include/asm-sh/thread_info.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/thread_info.h 2006-07-12 16:54:26.000000000 +0000
-@@ -20,7 +20,8 @@
- struct exec_domain *exec_domain; /* execution domain */
- unsigned long flags; /* low level flags */
- __u32 cpu;
-- int preempt_count; /* 0 => preemptable, <0 => BUG */
-+ int preempt_count; /* 0 => preemptable, <0 => BUG */
-+ mm_segment_t addr_limit; /* thread address space */
- struct restart_block restart_block;
- __u8 supervisor_stack[0];
- };
-@@ -40,6 +41,7 @@
- .flags = 0, \
- .cpu = 0, \
- .preempt_count = 1, \
-+ .addr_limit = KERNEL_DS, \
- .restart_block = { \
- .fn = do_no_restart_syscall, \
- }, \
-@@ -48,16 +50,29 @@
- #define init_thread_info (init_thread_union.thread_info)
- #define init_stack (init_thread_union.stack)
-
-+#define THREAD_SIZE (2*PAGE_SIZE)
-+
- /* how to get the thread information struct from C */
- static inline struct thread_info *current_thread_info(void)
- {
- struct thread_info *ti;
-+#ifdef CONFIG_CPU_HAS_SR_RB
- __asm__("stc r7_bank, %0" : "=r" (ti));
-+#else
-+ unsigned long __dummy;
-+
-+ __asm__ __volatile__ (
-+ "mov r15, %0\n\t"
-+ "and %1, %0\n\t"
-+ : "=&r" (ti), "=r" (__dummy)
-+ : "1" (~(THREAD_SIZE - 1))
-+ : "memory");
-+#endif
-+
- return ti;
- }
-
- /* thread information allocation */
--#define THREAD_SIZE (2*PAGE_SIZE)
- #define alloc_thread_info(ti) ((struct thread_info *) __get_free_pages(GFP_KERNEL,1))
- #define free_thread_info(ti) free_pages((unsigned long) (ti), 1)
-
-@@ -65,7 +80,7 @@
-
- /* how to get the thread information struct from ASM */
- #define GET_THREAD_INFO(reg) \
-- stc r7_bank, reg
-+ stc r7_bank, reg
-
- #endif
-
-@@ -82,7 +97,6 @@
- #define TIF_USEDFPU 16 /* FPU was used by this task this quantum (SMP) */
- #define TIF_POLLING_NRFLAG 17 /* true if poll_idle() is polling TIF_NEED_RESCHED */
- #define TIF_MEMDIE 18
--#define TIF_USERSPACE 31 /* true if FS sets userspace */
-
- #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
- #define _TIF_NOTIFY_RESUME (1<<TIF_NOTIFY_RESUME)
-@@ -90,7 +104,6 @@
- #define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED)
- #define _TIF_USEDFPU (1<<TIF_USEDFPU)
- #define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG)
--#define _TIF_USERSPACE (1<<TIF_USERSPACE)
-
- #define _TIF_WORK_MASK 0x000000FE /* work to do on interrupt/exception return */
- #define _TIF_ALLWORK_MASK 0x000000FF /* work to do on any return to u-space */
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/timer.h linux-2.6.17/include/asm-sh/timer.h
---- linux-2.6.17-vanilla/include/asm-sh/timer.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/timer.h 2006-07-12 16:54:26.000000000 +0000
-@@ -6,6 +6,8 @@
-
- struct sys_timer_ops {
- int (*init)(void);
-+ int (*start)(void);
-+ int (*stop)(void);
- unsigned long (*get_offset)(void);
- unsigned long (*get_frequency)(void);
- };
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/timex.h linux-2.6.17/include/asm-sh/timex.h
---- linux-2.6.17-vanilla/include/asm-sh/timex.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/timex.h 2006-07-12 16:54:26.000000000 +0000
-@@ -6,7 +6,7 @@
- #ifndef __ASM_SH_TIMEX_H
- #define __ASM_SH_TIMEX_H
-
--#define CLOCK_TICK_RATE (CONFIG_SH_PCLK_FREQ / 4) /* Underlying HZ */
-+#define CLOCK_TICK_RATE (HZ * 100000UL)
-
- typedef unsigned long long cycles_t;
-
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/titan.h linux-2.6.17/include/asm-sh/titan.h
---- linux-2.6.17-vanilla/include/asm-sh/titan.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/titan.h 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1,43 @@
-+/*
-+ * Platform defintions for Titan
-+ */
-+
-+#ifndef _ASM_SH_TITAN_TITAN_H
-+#define _ASM_SH_TITAN_TITAN_H
-+
-+#define __IO_PREFIX titan
-+#include <asm/io_generic.h>
-+
-+/* IRQ assignments */
-+#define TITAN_IRQ_WAN 2 /* eth0 (WAN) */
-+#define TITAN_IRQ_LAN 5 /* eth1 (LAN) */
-+#define TITAN_IRQ_MPCIA 8 /* mPCI A */
-+#define TITAN_IRQ_MPCIB 11 /* mPCI B */
-+#define TITAN_IRQ_USB 11 /* USB */
-+
-+/*
-+ * The external interrupt lines, these take up ints 0 - 15 inclusive
-+ * depending on the priority for the interrupt. In fact the priority
-+ * is the interrupt :-)
-+ */
-+#define IRL0_IRQ 0
-+#define IRL0_IPR_ADDR INTC_IPRD
-+#define IRL0_IPR_POS 3
-+#define IRL0_PRIORITY 8
-+
-+#define IRL1_IRQ 1
-+#define IRL1_IPR_ADDR INTC_IPRD
-+#define IRL1_IPR_POS 2
-+#define IRL1_PRIORITY 8
-+
-+#define IRL2_IRQ 2
-+#define IRL2_IPR_ADDR INTC_IPRD
-+#define IRL2_IPR_POS 1
-+#define IRL2_PRIORITY 8
-+
-+#define IRL3_IRQ 3
-+#define IRL3_IPR_ADDR INTC_IPRD
-+#define IRL3_IPR_POS 0
-+#define IRL3_PRIORITY 8
-+
-+#endif
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/uaccess.h linux-2.6.17/include/asm-sh/uaccess.h
---- linux-2.6.17-vanilla/include/asm-sh/uaccess.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/uaccess.h 2006-07-12 16:54:26.000000000 +0000
-@@ -1,5 +1,4 @@
--/* $Id: uaccess.h,v 1.11 2003/10/13 07:21:20 lethal Exp $
-- *
-+/*
- * User space memory access functions
- *
- * Copyright (C) 1999, 2002 Niibe Yutaka
-@@ -16,21 +15,9 @@
- #include <linux/errno.h>
- #include <linux/sched.h>
-
--/*
-- * NOTE: Macro/functions in this file depends on threads_info.h implementation.
-- * Assumes:
-- * TI_FLAGS == 8
-- * TIF_USERSPACE == 31
-- * USER_ADDR_LIMIT == 0x80000000
-- */
--
- #define VERIFY_READ 0
- #define VERIFY_WRITE 1
-
--typedef struct {
-- unsigned int is_user_space;
--} mm_segment_t;
--
- /*
- * The fs value determines whether argument validity checking should be
- * performed or not. If get_fs() == USER_DS, checking is performed, with
-@@ -40,12 +27,14 @@
- */
-
- #define MAKE_MM_SEG(s) ((mm_segment_t) { (s) })
--#define segment_eq(a,b) ((a).is_user_space == (b).is_user_space)
-
--#define USER_ADDR_LIMIT 0x80000000
-+#define KERNEL_DS MAKE_MM_SEG(0xFFFFFFFFUL)
-+#define USER_DS MAKE_MM_SEG(PAGE_OFFSET)
-
--#define KERNEL_DS MAKE_MM_SEG(0)
--#define USER_DS MAKE_MM_SEG(1)
-+#define segment_eq(a,b) ((a).seg == (b).seg)
-+
-+#define __addr_ok(addr) \
-+ ((unsigned long)(addr) < (current_thread_info()->addr_limit.seg))
-
- #define get_ds() (KERNEL_DS)
-
-@@ -76,31 +65,8 @@
- return ((addr >= memory_start) && ((addr + size) < memory_end));
- }
- #else /* CONFIG_MMU */
--static inline mm_segment_t get_fs(void)
--{
-- return MAKE_MM_SEG(test_thread_flag(TIF_USERSPACE));
--}
--
--static inline void set_fs(mm_segment_t s)
--{
-- unsigned long ti, flag;
-- __asm__ __volatile__(
-- "stc r7_bank, %0\n\t"
-- "mov.l @(8,%0), %1\n\t"
-- "shal %1\n\t"
-- "cmp/pl %2\n\t"
-- "rotcr %1\n\t"
-- "mov.l %1, @(8,%0)"
-- : "=&r" (ti), "=&r" (flag)
-- : "r" (s.is_user_space)
-- : "t");
--/****
-- if (s.is_user_space)
-- set_thread_flag(TIF_USERSPACE);
-- else
-- clear_thread_flag(TIF_USERSPACE);
--****/
--}
-+#define get_fs() (current_thread_info()->addr_limit)
-+#define set_fs(x) (current_thread_info()->addr_limit = (x))
-
- /*
- * __access_ok: Check if address with size is OK or not.
-@@ -108,7 +74,7 @@
- * We do three checks:
- * (1) is it user space?
- * (2) addr + size --> carry?
-- * (3) addr + size >= 0x80000000 (USER_ADDR_LIMIT)
-+ * (3) addr + size >= 0x80000000 (PAGE_OFFSET)
- *
- * (1) (2) (3) | RESULT
- * 0 0 0 | ok
-@@ -541,7 +507,7 @@
- "3:\n\t"
- "mov.l 4f, %1\n\t"
- "jmp @%1\n\t"
-- " mov %5, %0\n"
-+ " mov #0, %0\n"
- ".balign 4\n"
- "4: .long 2b\n"
- ".previous\n"
-@@ -550,26 +516,20 @@
- " .long 1b,3b\n"
- ".previous"
- : "=z" (res), "=&r" (__dummy)
-- : "0" (0), "r" (__s), "r" (__n), "i" (-EFAULT)
-+ : "0" (0), "r" (__s), "r" (__n)
- : "t");
- return res;
- }
-
- static __inline__ long strnlen_user(const char __user *s, long n)
- {
-- if (!access_ok(VERIFY_READ, s, n))
-+ if (!__addr_ok(s))
- return 0;
- else
- return __strnlen_user(s, n);
- }
-
--static __inline__ long strlen_user(const char __user *s)
--{
-- if (!access_ok(VERIFY_READ, s, 0))
-- return 0;
-- else
-- return __strnlen_user(s, ~0UL >> 1);
--}
-+#define strlen_user(str) strnlen_user(str, ~0UL >> 1)
-
- /*
- * The exception table consists of pairs of addresses: the first is the
-diff -ruN linux-2.6.17-vanilla/include/asm-sh/unistd.h linux-2.6.17/include/asm-sh/unistd.h
---- linux-2.6.17-vanilla/include/asm-sh/unistd.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/unistd.h 2006-07-12 16:54:26.000000000 +0000
-@@ -300,9 +300,31 @@
- #define __NR_inotify_init 290
- #define __NR_inotify_add_watch 291
- #define __NR_inotify_rm_watch 292
-+#define __NR_migrate_pages 293
-+#define __NR_openat 294
-+#define __NR_mkdirat 295
-+#define __NR_mknodat 296
-+#define __NR_fchownat 297
-+#define __NR_futimesat 298
-+#define __NR_fstatat64 299
-+#define __NR_unlinkat 300
-+#define __NR_renameat 301
-+#define __NR_linkat 302
-+#define __NR_symlinkat 303
-+#define __NR_readlinkat 304
-+#define __NR_fchmodat 305
-+#define __NR_faccessat 305
-+#define __NR_pselect6 307
-+#define __NR_ppoll 308
-+#define __NR_unshare 309
-+#define __NR_set_robust_list 310
-+#define __NR_get_robust_list 311
-+#define __NR_splice 312
-+#define __NR_sync_file_range 313
-+#define __NR_tee 314
-+#define __NR_vmsplice 315
-
--
--#define NR_syscalls 293
-+#define NR_syscalls 316
-
- /* user-visible error numbers are in the range -1 - -124: see <asm-sh/errno.h> */
-
-diff -ruN linux-2.6.17-vanilla/include/linux/CVS/Entries linux-2.6.17/include/linux/CVS/Entries
---- linux-2.6.17-vanilla/include/linux/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/linux/CVS/Entries 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1,3 @@
-+/superhyway.h/1.2/Thu Mar 17 07:43:07 2005/-ko/
-+/i2c-id.h/1.11/Wed Jul 5 14:51:55 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/include/linux/CVS/Repository linux-2.6.17/include/linux/CVS/Repository
---- linux-2.6.17-vanilla/include/linux/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/linux/CVS/Repository 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+linux/include/linux
-diff -ruN linux-2.6.17-vanilla/include/linux/CVS/Root linux-2.6.17/include/linux/CVS/Root
---- linux-2.6.17-vanilla/include/linux/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/linux/CVS/Root 2006-07-12 16:54:26.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/include/linux/i2c-id.h linux-2.6.17/include/linux/i2c-id.h
---- linux-2.6.17-vanilla/include/linux/i2c-id.h 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/include/linux/i2c-id.h 2006-07-12 16:54:27.000000000 +0000
-@@ -245,6 +245,7 @@
- #define I2C_HW_SMBUS_OV518 0x04000f /* OV518(+) USB 1.1 webcam ICs */
- #define I2C_HW_SMBUS_OV519 0x040010 /* OV519 USB 1.1 webcam IC */
- #define I2C_HW_SMBUS_OVFX2 0x040011 /* Cypress/OmniVision FX2 webcam */
-+#define I2C_HW_SMBUS_VOYAGER 0x040012
-
- /* --- ISA pseudo-adapter */
- #define I2C_HW_ISA 0x050000
-diff -ruN linux-2.6.17-vanilla/include/video/CVS/Entries linux-2.6.17/include/video/CVS/Entries
---- linux-2.6.17-vanilla/include/video/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/video/CVS/Entries 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1,2 @@
-+/voyager.h/1.1/Wed Apr 21 00:09:20 2004/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/include/video/CVS/Repository linux-2.6.17/include/video/CVS/Repository
---- linux-2.6.17-vanilla/include/video/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/video/CVS/Repository 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1 @@
-+linux/include/video
-diff -ruN linux-2.6.17-vanilla/include/video/CVS/Root linux-2.6.17/include/video/CVS/Root
---- linux-2.6.17-vanilla/include/video/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/video/CVS/Root 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/include/video/voyager.h linux-2.6.17/include/video/voyager.h
---- linux-2.6.17-vanilla/include/video/voyager.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/include/video/voyager.h 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1,39 @@
-+#define VOY_REG_TOP 0xb3e00000 //voyager register
-+#define VOY_VRAM_TOP0 0xb0400000 //PANEL PLANE
-+#define VOY_VRAM_TOP1 0xb04a0000 //VIDEO PLANE 0
-+#define VOY_VRAM_TOP2 0xb0540000 //VIDEO PLANE 1
-+#define VOY_VRAM_TOP3 0xb05e0000 //VIDEO ALPHA PLANE
-+#define VOY_VRAM_TOP4 0xb0680000 //ALPHA PLANE
-+#define VOY_VRAM_TOP5 0xb0720000 //PANEL CURSOR PLANE
-+#define VOY_VRAM_TOP6 0xb0730000 //CRT PLANE
-+#define VOY_VRAM_TOP7 0xb07d0000 //CRT CURSOR PLANE
-+
-+#define XRES 640
-+#define YRES 480
-+#define BPP 16
-+
-+#define CSR_XRES 64
-+#define CSR_YRES 64
-+#define CSR_BPP 2
-+
-+#define MAX_PIXEL_MEM_SIZE ((XRES * YRES * BPP) / 8)
-+#define LINE_LENGTH ((XRES * BPP) / 8)
-+#define MAX_FRAMEBUFFER_MEM_SIZE (MAX_PIXEL_MEM_SIZE)
-+#define MAX_HWC_MEM_SIZE ((CSR_XRES * CSR_YRES * CSR_BPP) / 8)
-+#define ALLOCATED_FB_MEM_SIZE \
-+ (PAGE_ALIGN(MAX_FRAMEBUFFER_MEM_SIZE + PAGE_SIZE))
-+
-+#define VOYAGER_IOCTL_DEBUG_ADD 0x00
-+#define VOYAGER_IOCTL_DEBUG_GET 0x01
-+#define VOYAGER_IOCTL_DEBUG_PUT 0x02
-+#define VOYAGER_IOCTL_ENABLE 0x10
-+#define VOYAGER_IOCTL_ENABLE_CK 0x11
-+#define VOYAGER_IOCTL_ENABLE_CP 0x12
-+#define VOYAGER_IOCTL_ENABLE_AL 0x13
-+#define VOYAGER_IOCTL_SCALE 0x20
-+#define VOYAGER_IOCTL_CHKEY 0x30
-+#define VOYAGER_IOCTL_COLOR_1 0x40
-+#define VOYAGER_IOCTL_COLOR_2 0x41
-+#define VOYAGER_IOCTL_TYPE 0x50
-+#define VOYAGER_IOCTL_SELECT 0x51
-+#define VOYAGER_IOCTL_ALPHA 0x60
-diff -ruN linux-2.6.17-vanilla/lib/CVS/Entries linux-2.6.17/lib/CVS/Entries
---- linux-2.6.17-vanilla/lib/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/lib/CVS/Entries 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1,3 @@
-+/Kconfig.debug/1.4/Wed Jul 5 14:51:56 2006/-ko/
-+/bitmap.c/1.5/Wed Jul 5 14:51:56 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/lib/CVS/Repository linux-2.6.17/lib/CVS/Repository
---- linux-2.6.17-vanilla/lib/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/lib/CVS/Repository 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1 @@
-+linux/lib
-diff -ruN linux-2.6.17-vanilla/lib/CVS/Root linux-2.6.17/lib/CVS/Root
---- linux-2.6.17-vanilla/lib/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/lib/CVS/Root 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/lib/Kconfig.debug linux-2.6.17/lib/Kconfig.debug
---- linux-2.6.17-vanilla/lib/Kconfig.debug 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/lib/Kconfig.debug 2006-07-12 16:54:27.000000000 +0000
-@@ -178,7 +178,7 @@
-
- config FRAME_POINTER
- bool "Compile the kernel with frame pointers"
-- depends on DEBUG_KERNEL && (X86 || CRIS || M68K || M68KNOMMU || FRV || UML)
-+ depends on DEBUG_KERNEL && (X86 || CRIS || M68K || M68KNOMMU || FRV || UML || SUPERH)
- default y if DEBUG_INFO && UML
- help
- If you say Y here the resulting kernel image will be slightly larger
-diff -ruN linux-2.6.17-vanilla/lib/bitmap.c linux-2.6.17/lib/bitmap.c
---- linux-2.6.17-vanilla/lib/bitmap.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/lib/bitmap.c 2006-07-12 16:54:27.000000000 +0000
-@@ -525,7 +525,7 @@
- ord = 0;
- while (i < pos) {
- i = find_next_bit(buf, bits, i + 1);
-- ord++;
-+ ord++;
- }
- BUG_ON(i != pos);
-
-@@ -748,6 +748,11 @@
- * a power (@order) of two, aligned to that power of two, which
- * makes the search algorithm much faster.
- *
-+ * Find a region of free (zero) bits in a @bitmap of @bits bits and
-+ * allocate them (set them to one). Only consider regions of length
-+ * a power (@order) of two, aligned to that power of two, which
-+ * makes the search algorithm much faster.
-+ *
- * Return the bit offset in bitmap of the allocated region,
- * or -errno on failure.
- */
-diff -ruN linux-2.6.17-vanilla/mm/CVS/Entries linux-2.6.17/mm/CVS/Entries
---- linux-2.6.17-vanilla/mm/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/mm/CVS/Entries 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1,2 @@
-+/memory.c/1.66/Wed Jul 5 14:51:57 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/mm/CVS/Repository linux-2.6.17/mm/CVS/Repository
---- linux-2.6.17-vanilla/mm/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/mm/CVS/Repository 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1 @@
-+linux/mm
-diff -ruN linux-2.6.17-vanilla/mm/CVS/Root linux-2.6.17/mm/CVS/Root
---- linux-2.6.17-vanilla/mm/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/mm/CVS/Root 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/mm/memory.c linux-2.6.17/mm/memory.c
---- linux-2.6.17-vanilla/mm/memory.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/mm/memory.c 2006-07-12 16:54:27.000000000 +0000
-@@ -1455,7 +1455,9 @@
- int reuse = can_share_swap_page(old_page);
- unlock_page(old_page);
- if (reuse) {
-+#ifdef CONFIG_ARM
- flush_cache_page(vma, address, pte_pfn(orig_pte));
-+#endif
- entry = pte_mkyoung(orig_pte);
- entry = maybe_mkwrite(pte_mkdirty(entry), vma);
- ptep_set_access_flags(vma, address, page_table, entry, 1);
-diff -ruN linux-2.6.17-vanilla/net/CVS/Entries linux-2.6.17/net/CVS/Entries
---- linux-2.6.17-vanilla/net/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/net/CVS/Entries 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1 @@
-+D/ipv4////
-diff -ruN linux-2.6.17-vanilla/net/CVS/Repository linux-2.6.17/net/CVS/Repository
---- linux-2.6.17-vanilla/net/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/net/CVS/Repository 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1 @@
-+linux/net
-diff -ruN linux-2.6.17-vanilla/net/CVS/Root linux-2.6.17/net/CVS/Root
---- linux-2.6.17-vanilla/net/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/net/CVS/Root 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/net/ipv4/CVS/Entries linux-2.6.17/net/ipv4/CVS/Entries
---- linux-2.6.17-vanilla/net/ipv4/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/net/ipv4/CVS/Entries 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1,2 @@
-+/ipconfig.c/1.12/Wed Jul 5 14:51:59 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/net/ipv4/CVS/Repository linux-2.6.17/net/ipv4/CVS/Repository
---- linux-2.6.17-vanilla/net/ipv4/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/net/ipv4/CVS/Repository 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1 @@
-+linux/net/ipv4
-diff -ruN linux-2.6.17-vanilla/net/ipv4/CVS/Root linux-2.6.17/net/ipv4/CVS/Root
---- linux-2.6.17-vanilla/net/ipv4/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/net/ipv4/CVS/Root 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/net/ipv4/ipconfig.c linux-2.6.17/net/ipv4/ipconfig.c
---- linux-2.6.17-vanilla/net/ipv4/ipconfig.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/net/ipv4/ipconfig.c 2006-07-12 16:54:27.000000000 +0000
-@@ -113,7 +113,7 @@
- */
- int ic_set_manually __initdata = 0; /* IPconfig parameters set manually */
-
--static int ic_enable __initdata = 0; /* IP config enabled? */
-+static int ic_enable __initdata = 1; /* IP config enabled? */
-
- /* Protocol choice */
- int ic_proto_enabled __initdata = 0
-diff -ruN linux-2.6.17-vanilla/scripts/CVS/Entries linux-2.6.17/scripts/CVS/Entries
---- linux-2.6.17-vanilla/scripts/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/scripts/CVS/Entries 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1,3 @@
-+/treelink.sh/1.3/Sun Jan 4 18:30:15 2004//
-+/treeunlink.sh/1.3/Sun Jan 4 18:30:15 2004//
-+D
-diff -ruN linux-2.6.17-vanilla/scripts/CVS/Repository linux-2.6.17/scripts/CVS/Repository
---- linux-2.6.17-vanilla/scripts/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/scripts/CVS/Repository 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1 @@
-+linux/scripts
-diff -ruN linux-2.6.17-vanilla/scripts/CVS/Root linux-2.6.17/scripts/CVS/Root
---- linux-2.6.17-vanilla/scripts/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/scripts/CVS/Root 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/scripts/treelink.sh linux-2.6.17/scripts/treelink.sh
---- linux-2.6.17-vanilla/scripts/treelink.sh 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/scripts/treelink.sh 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1,49 @@
-+#!/bin/sh
-+#
-+# treelink.sh - Tree Linking Script
-+#
-+# Copyright (C) 2001, 2004 Paul Mundt <lethal@linux-sh.org>
-+#
-+# Modified by M. R. Brown <mrbrown@0xd6.org>
-+#
-+# A simple shell script for linking a drop in tree into a stock
-+# kernel tree. Usable for drop in trees such as the linux-mips
-+# and linuxconsole trees.
-+#
-+# Released under the terms of the GNU GPL v2
-+#
-+[ "$#" -ne "2" ] && echo "Usage: $0 <drop in tree> <kernel tree>" && exit 1
-+
-+ODIR=${PWD}
-+cd $1 || exit 1
-+LDIR=${PWD}
-+echo -n "Building file list ... "
-+LIST=`find * \( -type d -name CVS -prune \) -o \
-+ \( -type d -name {arch} -prune \) -o \
-+ \( -type d -name .arch-ids -prune \) -o \
-+ \( -type d -name SCCS -prune \) -o \
-+ \( -type d -name BitKeeper -prune \) -o -type f -print`
-+echo -e "done."
-+cd ${ODIR}
-+
-+cd $2 || exit 1
-+
-+# Make this a seperate step so that the user can cancel the operation
-+echo -n "Saving originals ..... "
-+for file in $LIST; do
-+ if [ -e $file -a ! -h $file ]; then
-+ DIR=`dirname $file`
-+ ofile=`basename $file`
-+ [ ! -d ${DIR}/.orig ] && mkdir -p ${DIR}/.orig
-+ cp $file ${DIR}/.orig/$ofile
-+ fi
-+done
-+echo -e "done."
-+
-+echo -n "Linking files ........ "
-+for file in $LIST; do
-+ DIR=`dirname $file`
-+ [ ! -d $DIR ] && mkdir -p $DIR
-+ ln -sf $LDIR/$file $file
-+done
-+echo -e "done."
-diff -ruN linux-2.6.17-vanilla/scripts/treeunlink.sh linux-2.6.17/scripts/treeunlink.sh
---- linux-2.6.17-vanilla/scripts/treeunlink.sh 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/scripts/treeunlink.sh 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1,37 @@
-+#!/bin/sh
-+#
-+# treeunlink.sh - Tree Unlinking Script
-+#
-+# Copyright (c) 2001 M. R. Brown <mrbrown@0xd6.org>
-+#
-+# Modified by Paul Mundt <lethal@linux-sh.org>
-+#
-+# This script attempts to restore a previously tree-linked tree.
-+# It's the anti-thesis of (and based on) treelink.sh by Paul Mundt.
-+#
-+# Released under the terms of the GNU GPL v2
-+
-+[ "$#" -ne "1" ] && echo "Usage: $0 <kernel tree>" && exit 1
-+
-+cd $1 || exit 1
-+echo -n "Building file list ... "
-+LIST=`find * \( -type d -name CVS -prune \) -o \
-+ \( -type d -name {arch} -prune \) -o \
-+ \( -type d -name .arch-ids -prune \) -o \
-+ \( -type d -name SCCS -prune \) -o \
-+ \( -type d -name BitKeeper -prune \) -o -type l -print`
-+echo -e "done."
-+
-+[ -z "$LIST" ] && echo "No linked files to unlink." && exit 1
-+
-+echo -n "Restoring originals .. "
-+for file in $LIST; do
-+ DIR=`dirname $file`
-+ ofile=`basename $file`
-+ rm -f $file
-+ if [ -d ${DIR}/.orig -a -e ${DIR}/.orig/$ofile ]; then
-+ mv ${DIR}/.orig/$ofile $file
-+ [ -z "`ls ${DIR}/.orig`" ] && rmdir ${DIR}/.orig
-+ fi
-+done
-+echo -e "done."
-diff -ruN linux-2.6.17-vanilla/sound/CVS/Entries linux-2.6.17/sound/CVS/Entries
---- linux-2.6.17-vanilla/sound/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/sound/CVS/Entries 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1,4 @@
-+/Kconfig/1.1/Sun Jun 4 12:13:04 2006//
-+/Makefile/1.1/Sun Jun 4 12:13:04 2006//
-+D/oss////
-+D/sh////
-diff -ruN linux-2.6.17-vanilla/sound/CVS/Repository linux-2.6.17/sound/CVS/Repository
---- linux-2.6.17-vanilla/sound/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/sound/CVS/Repository 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1 @@
-+linux/sound
-diff -ruN linux-2.6.17-vanilla/sound/CVS/Root linux-2.6.17/sound/CVS/Root
---- linux-2.6.17-vanilla/sound/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/sound/CVS/Root 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/sound/Kconfig linux-2.6.17/sound/Kconfig
---- linux-2.6.17-vanilla/sound/Kconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/sound/Kconfig 2006-07-12 16:54:27.000000000 +0000
-@@ -62,6 +62,8 @@
-
- source "sound/mips/Kconfig"
-
-+source "sound/sh/Kconfig"
-+
- # the following will depenend on the order of config.
- # here assuming USB is defined before ALSA
- source "sound/usb/Kconfig"
-diff -ruN linux-2.6.17-vanilla/sound/Makefile linux-2.6.17/sound/Makefile
---- linux-2.6.17-vanilla/sound/Makefile 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/sound/Makefile 2006-07-12 16:54:27.000000000 +0000
-@@ -4,7 +4,7 @@
- obj-$(CONFIG_SOUND) += soundcore.o
- obj-$(CONFIG_SOUND_PRIME) += oss/
- obj-$(CONFIG_DMASOUND) += oss/
--obj-$(CONFIG_SND) += core/ i2c/ drivers/ isa/ pci/ ppc/ arm/ synth/ usb/ sparc/ parisc/ pcmcia/ mips/
-+obj-$(CONFIG_SND) += core/ i2c/ drivers/ isa/ pci/ ppc/ arm/ synth/ usb/ sparc/ parisc/ pcmcia/ mips/ sh/
-
- ifeq ($(CONFIG_SND),y)
- obj-y += last.o
-diff -ruN linux-2.6.17-vanilla/sound/oss/CVS/Entries linux-2.6.17/sound/oss/CVS/Entries
---- linux-2.6.17-vanilla/sound/oss/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/sound/oss/CVS/Entries 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1,7 @@
-+/Makefile/1.7/Mon Aug 29 21:01:20 2005/-ko/
-+/voyagergx_8051.c/1.2/Sat Jun 26 15:29:38 2004/-ko/
-+/voyagergx_sound.c/1.4/Fri Dec 23 08:25:06 2005/-ko/
-+/voyagergx_sound.h/1.1/Wed Apr 21 00:09:21 2004/-ko/
-+/Kconfig/1.11/Wed Jul 5 14:52:00 2006/-ko/
-+/sh_dac_audio.c/1.7/Wed Jul 5 14:52:00 2006/-ko/
-+D
-diff -ruN linux-2.6.17-vanilla/sound/oss/CVS/Repository linux-2.6.17/sound/oss/CVS/Repository
---- linux-2.6.17-vanilla/sound/oss/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/sound/oss/CVS/Repository 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1 @@
-+linux/sound/oss
-diff -ruN linux-2.6.17-vanilla/sound/oss/CVS/Root linux-2.6.17/sound/oss/CVS/Root
---- linux-2.6.17-vanilla/sound/oss/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/sound/oss/CVS/Root 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/sound/oss/Kconfig linux-2.6.17/sound/oss/Kconfig
---- linux-2.6.17-vanilla/sound/oss/Kconfig 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/sound/oss/Kconfig 2006-07-12 16:54:27.000000000 +0000
-@@ -833,6 +833,12 @@
- tristate "XpressAudio Sound Blaster emulation"
- depends on SOUND_SB
-
-+config SOUND_VOYAGERGX
-+ tristate "VoyagerGX/SH4 AC97 support"
-+ depends on SOUND_PRIME!=n && SOUND && SH_RTS7751R2D
-+ help
-+ Say Y or M if you have a VoyagerGX sound audio.
-+
- config SOUND_SH_DAC_AUDIO
- tristate "SuperH DAC audio support"
- depends on SOUND_PRIME && CPU_SH3
-diff -ruN linux-2.6.17-vanilla/sound/oss/Makefile linux-2.6.17/sound/oss/Makefile
---- linux-2.6.17-vanilla/sound/oss/Makefile 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/sound/oss/Makefile 2006-07-12 16:54:27.000000000 +0000
-@@ -82,6 +82,7 @@
-
- obj-$(CONFIG_SOUND_AD1980) += ac97_plugin_ad1980.o ac97_codec.o
- obj-$(CONFIG_SOUND_WM97XX) += ac97_plugin_wm97xx.o
-+obj-$(CONFIG_SOUND_VOYAGERGX) += voyagergx_sound.o voyagergx_8051.o ac97_codec.o
-
- ifeq ($(CONFIG_MIDI_EMU10K1),y)
- obj-$(CONFIG_SOUND_EMU10K1) += sound.o
-diff -ruN linux-2.6.17-vanilla/sound/oss/sh_dac_audio.c linux-2.6.17/sound/oss/sh_dac_audio.c
---- linux-2.6.17-vanilla/sound/oss/sh_dac_audio.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/sound/oss/sh_dac_audio.c 2006-07-12 16:54:27.000000000 +0000
-@@ -1,3 +1,14 @@
-+/*
-+ * sound/oss/sh_dac_audio.c
-+ *
-+ * SH DAC based sound :(
-+ *
-+ * Copyright (C) 2004,2005 Andriy Skulysh
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ */
- #include <linux/config.h>
- #include <linux/module.h>
- #include <linux/init.h>
-@@ -7,18 +18,17 @@
- #include <linux/fs.h>
- #include <linux/sound.h>
- #include <linux/soundcard.h>
-+#include <linux/interrupt.h>
- #include <asm/io.h>
- #include <asm/uaccess.h>
- #include <asm/irq.h>
- #include <asm/delay.h>
--#include <linux/interrupt.h>
--
-+#include <asm/clock.h>
- #include <asm/cpu/dac.h>
--
--#ifdef MACH_HP600
-+#include <asm/cpu/timer.h>
-+#include <asm/machvec.h>
- #include <asm/hp6xx/hp6xx.h>
--#include <asm/hd64461/hd64461.h>
--#endif
-+#include <asm/hd64461.h>
-
- #define MODNAME "sh_dac_audio"
-
-@@ -27,11 +37,6 @@
- #define TMU1_TCR_INIT 0x0020 /* Clock/4, rising edge; interrupt on */
- #define TMU1_TSTR_INIT 0x02 /* Bit to turn on TMU1 */
-
--#define TMU_TSTR 0xfffffe92
--#define TMU1_TCOR 0xfffffea0
--#define TMU1_TCNT 0xfffffea4
--#define TMU1_TCR 0xfffffea8
--
- #define BUFFER_SIZE 48000
-
- static int rate;
-@@ -72,34 +77,37 @@
-
- static void dac_audio_start(void)
- {
--#ifdef MACH_HP600
-- u16 v;
-- v = inw(HD64461_GPADR);
-- v &= ~HD64461_GPADR_SPEAKER;
-- outw(v, HD64461_GPADR);
--#endif
-+ if (mach_is_hp6xx()) {
-+ u16 v = inw(HD64461_GPADR);
-+ v &= ~HD64461_GPADR_SPEAKER;
-+ outw(v, HD64461_GPADR);
-+ }
-+
- sh_dac_enable(CONFIG_SOUND_SH_DAC_AUDIO_CHANNEL);
- ctrl_outw(TMU1_TCR_INIT, TMU1_TCR);
- }
- static void dac_audio_stop(void)
- {
--#ifdef MACH_HP600
-- u16 v;
--#endif
- dac_audio_stop_timer();
--#ifdef MACH_HP600
-- v = inw(HD64461_GPADR);
-- v |= HD64461_GPADR_SPEAKER;
-- outw(v, HD64461_GPADR);
--#endif
-+
-+ if (mach_is_hp6xx()) {
-+ u16 v = inw(HD64461_GPADR);
-+ v |= HD64461_GPADR_SPEAKER;
-+ outw(v, HD64461_GPADR);
-+ }
-+
-+ sh_dac_output(0, CONFIG_SOUND_SH_DAC_AUDIO_CHANNEL);
- sh_dac_disable(CONFIG_SOUND_SH_DAC_AUDIO_CHANNEL);
- }
-
- static void dac_audio_set_rate(void)
- {
- unsigned long interval;
-+ struct clk *clk;
-
-- interval = (current_cpu_data.module_clock / 4) / rate;
-+ clk = clk_get("module_clk");
-+ interval = (clk_get_rate(clk) / 4) / rate;
-+ clk_put(clk);
- ctrl_outl(interval, TMU1_TCOR);
- ctrl_outl(interval, TMU1_TCNT);
- }
-diff -ruN linux-2.6.17-vanilla/sound/oss/voyagergx_8051.c linux-2.6.17/sound/oss/voyagergx_8051.c
---- linux-2.6.17-vanilla/sound/oss/voyagergx_8051.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/sound/oss/voyagergx_8051.c 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1,204 @@
-+#include <linux/module.h>
-+#include <linux/delay.h>
-+#include <asm/rts7751r2d/voyagergx_reg.h>
-+#include "voyagergx_sound.h"
-+
-+#define DELAY_8051 300000
-+
-+
-+static unsigned char code_8051[] = {
-+ 0x02,0x01,0x00,0x02,0x07,0x73,0x90,0x08,0xae,0xe0,0xfa,0xa3,0xe0,0x8a,0x82,0xf5,
-+ 0x83,0xe0,0x60,0x13,0x90,0x08,0xa2,0xe4,0xf0,0xa3,0x74,0x30,0xf0,0x78,0x19,0x76,
-+ 0x01,0x78,0x1e,0x76,0x01,0x80,0x04,0x78,0x19,0x76,0x00,0x90,0x3f,0xf2,0x74,0x01,
-+ 0xf0,0xa3,0xe4,0xf0,0x22,0xff,0xff,0xff,0xff,0xff,0xff,0x02,0x06,0x83,0xff,0xff,
-+ 0xff,0xff,0xff,0x02,0x04,0xe3,0x90,0x3f,0xf2,0xe4,0xf0,0xa3,0xf0,0x90,0x3f,0xf0,
-+ 0xe0,0x70,0x02,0xa3,0xe0,0x70,0x06,0x12,0x08,0x8d,0x02,0x00,0xd4,0x90,0x3f,0xf0,
-+ 0xc3,0xe0,0x94,0x01,0x70,0x04,0xa3,0xe0,0x94,0x00,0x70,0x06,0x12,0x00,0xd9,0x02,
-+ 0x00,0xd4,0x90,0x3f,0xf0,0xc3,0xe0,0x94,0x02,0x70,0x04,0xa3,0xe0,0x94,0x00,0x70,
-+ 0x05,0x12,0x07,0xf3,0x80,0x4e,0x90,0x3f,0xf0,0xc3,0xe0,0x94,0x03,0x70,0x04,0xa3,
-+ 0xe0,0x94,0x00,0x70,0x05,0x12,0x08,0x1a,0x80,0x3a,0x90,0x3f,0xf0,0xc3,0xe0,0x94,
-+ 0x04,0x70,0x04,0xa3,0xe0,0x94,0x00,0x70,0x05,0x12,0x08,0x41,0x80,0x26,0x90,0x3f,
-+ 0xf0,0xc3,0xe0,0x94,0x05,0x70,0x04,0xa3,0xe0,0x94,0x00,0x70,0x05,0x12,0x08,0x7c,
-+ 0x80,0x12,0x90,0x3f,0xf0,0xc3,0xe0,0x94,0x07,0x70,0x04,0xa3,0xe0,0x94,0x00,0x70,
-+ 0x03,0x12,0x00,0x06,0x78,0x1b,0x76,0x00,0x22,0x90,0x3f,0xf4,0x7a,0x04,0x78,0x08,
-+ 0xe0,0xf6,0xa3,0x08,0xda,0xfa,0x90,0x91,0x04,0x7a,0x04,0x78,0x08,0xe6,0xf0,0xa3,
-+ 0x08,0xda,0xfa,0x12,0x06,0xd6,0x90,0x3f,0xf2,0x74,0x01,0xf0,0xa3,0xe4,0xf0,0x22,
-+ 0x75,0x81,0x2b,0x75,0x0c,0xc0,0x75,0x0d,0x08,0x75,0x0e,0xff,0x75,0x0f,0x2f,0xc2,
-+ 0xd3,0xc2,0xd4,0x12,0x03,0x4a,0x12,0x03,0xb6,0x12,0x03,0x2c,0x12,0x03,0x0e,0x12,
-+ 0x02,0xac,0x12,0x07,0xcb,0x12,0x01,0x2a,0x01,0x00,0x90,0x08,0xc1,0x85,0x82,0x0a,
-+ 0x85,0x83,0x0b,0x74,0x98,0xf5,0x82,0xf5,0x08,0x74,0x02,0xf5,0x83,0xf5,0x09,0x7a,
-+ 0x14,0xe4,0x93,0xa3,0x85,0x82,0x08,0x85,0x83,0x09,0x85,0x0a,0x82,0x85,0x0b,0x83,
-+ 0xf0,0xa3,0x85,0x83,0x0b,0x85,0x82,0x0a,0x85,0x09,0x83,0x85,0x08,0x82,0xda,0xe1,
-+ 0x90,0x08,0xd5,0xe4,0xf0,0xa3,0xf0,0x90,0x08,0xd7,0xe4,0xf0,0xa3,0xf0,0x90,0x08,
-+ 0xd9,0xe4,0xf0,0xa3,0xf0,0x90,0x08,0xdb,0xe4,0xf0,0xa3,0xf0,0x78,0x18,0x76,0x00,
-+ 0x78,0x1f,0x76,0x00,0x90,0x91,0x80,0x74,0x03,0xf0,0x90,0x08,0xc1,0x7a,0x04,0x78,
-+ 0x08,0xe0,0xf6,0xa3,0x08,0xda,0xfa,0x90,0x91,0x00,0x7a,0x04,0x78,0x08,0xe6,0xf0,
-+ 0xa3,0x08,0xda,0xfa,0x90,0x08,0xc5,0x7a,0x04,0x78,0x08,0xe0,0xf6,0xa3,0x08,0xda,
-+ 0xfa,0x90,0x91,0x04,0x7a,0x04,0x78,0x08,0xe6,0xf0,0xa3,0x08,0xda,0xfa,0x90,0x08,
-+ 0xc9,0x7a,0x04,0x78,0x08,0xe0,0xf6,0xa3,0x08,0xda,0xfa,0x90,0x91,0x08,0x7a,0x04,
-+ 0x78,0x08,0xe6,0xf0,0xa3,0x08,0xda,0xfa,0x90,0x08,0xcd,0x7a,0x04,0x78,0x08,0xe0,
-+ 0xf6,0xa3,0x08,0xda,0xfa,0x90,0x91,0x0c,0x7a,0x04,0x78,0x08,0xe6,0xf0,0xa3,0x08,
-+ 0xda,0xfa,0x90,0x08,0xd1,0x7a,0x04,0x78,0x08,0xe0,0xf6,0xa3,0x08,0xda,0xfa,0x90,
-+ 0x91,0x10,0x7a,0x04,0x78,0x08,0xe6,0xf0,0xa3,0x08,0xda,0xfa,0x90,0x91,0x40,0xe4,
-+ 0xf0,0xa3,0xf0,0xa3,0xf0,0xa3,0xf0,0x90,0x91,0x44,0xe4,0xf0,0xa3,0xf0,0xa3,0xf0,
-+ 0xa3,0xf0,0x90,0x91,0x48,0xe4,0xf0,0xa3,0xf0,0xa3,0xf0,0xa3,0xf0,0x43,0xa0,0x01,
-+ 0x90,0x08,0xdd,0xe4,0xf0,0xa3,0xf0,0x12,0x06,0x2f,0x90,0x08,0xdd,0x74,0xc8,0xf0,
-+ 0xa3,0xe4,0xf0,0x12,0x05,0xd0,0x90,0x91,0x80,0x74,0x01,0xf0,0x90,0x08,0xdd,0x74,
-+ 0xff,0xf0,0xa3,0xe4,0xf0,0x12,0x06,0x2f,0x90,0x08,0xdd,0x74,0x64,0xf0,0xa3,0xe4,
-+ 0xf0,0x12,0x05,0xd0,0x12,0x07,0xa1,0x90,0x08,0xdd,0x74,0xff,0xf0,0xa3,0xe4,0xf0,
-+ 0x12,0x06,0x2f,0x12,0x07,0xa1,0x12,0x07,0x28,0x12,0x07,0x28,0x78,0x1b,0xe6,0x60,
-+ 0x03,0x12,0x00,0x46,0x78,0x1e,0xe6,0x60,0x07,0x78,0x1e,0x76,0x00,0x12,0x08,0x9b,
-+ 0x80,0xea,0x90,0x91,0x80,0xe4,0xf0,0x22,0x00,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,
-+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x74,0x14,0x70,0x04,
-+ 0x74,0x00,0x60,0x1e,0x90,0x08,0x68,0xa8,0x83,0xa9,0x82,0x90,0x08,0xa2,0xaa,0x83,
-+ 0xab,0x82,0x90,0x08,0xb6,0xac,0x83,0xad,0x82,0xc3,0xed,0x9b,0x70,0x28,0xec,0x9a,
-+ 0x70,0x24,0x74,0x0a,0x70,0x04,0x74,0x00,0x60,0x1b,0x90,0x08,0xc0,0xac,0x83,0xad,
-+ 0x82,0x90,0x08,0xb6,0xc3,0xed,0x95,0x82,0x70,0x05,0xec,0x95,0x83,0x60,0x06,0xe4,
-+ 0xf0,0xa3,0x02,0x02,0xe4,0x22,0x88,0x83,0x89,0x82,0xe4,0x93,0xa3,0xa8,0x83,0xa9,
-+ 0x82,0x8a,0x83,0x8b,0x82,0xf0,0xa3,0xaa,0x83,0xab,0x82,0x02,0x02,0xc9,0x74,0x00,
-+ 0x60,0x0d,0x90,0x00,0x00,0x79,0x00,0xfa,0xe4,0x93,0xf7,0xa3,0x09,0xda,0xf9,0x74,
-+ 0x13,0x60,0x08,0x78,0x18,0xfa,0xe4,0xf6,0x08,0xda,0xfc,0x22,0x74,0x00,0x60,0x0d,
-+ 0x90,0x00,0x00,0x79,0x00,0xfa,0xe4,0x93,0xf7,0xa3,0x09,0xda,0xf9,0x74,0x00,0x60,
-+ 0x08,0x78,0x00,0xfa,0xe4,0xf6,0x08,0xda,0xfc,0x22,0x74,0x00,0x60,0x35,0xfb,0x90,
-+ 0x00,0x00,0x74,0x00,0x75,0xf0,0x08,0x84,0x24,0x20,0xf8,0x7a,0x08,0xe5,0xf0,0x60,
-+ 0x07,0xe6,0x03,0x1a,0xd5,0xf0,0xfb,0xf6,0xeb,0x60,0x0d,0x1b,0xe4,0x93,0xa3,0xa2,
-+ 0xe0,0xe6,0x13,0xf6,0xda,0xf2,0x80,0x05,0xe6,0x03,0xda,0xfd,0xf6,0x08,0x7a,0x08,
-+ 0xeb,0x70,0xe5,0x74,0x00,0x60,0x2e,0xfb,0x74,0x00,0x75,0xf0,0x08,0x84,0x24,0x20,
-+ 0xf8,0x7a,0x08,0xe5,0xf0,0x60,0x07,0xe6,0x03,0x1a,0xd5,0xf0,0xfb,0xf6,0xeb,0x60,
-+ 0x09,0x1b,0xc3,0xe6,0x13,0xf6,0xda,0xf6,0x80,0x05,0xe6,0x03,0xda,0xfd,0xf6,0x08,
-+ 0x7a,0x08,0xeb,0x70,0xe9,0x22,0x74,0x00,0x60,0x0d,0x90,0x00,0x00,0x79,0x00,0xfa,
-+ 0xe4,0x93,0xf7,0xa3,0x09,0xda,0xf9,0x74,0x00,0x60,0x08,0x78,0x00,0xfa,0xe4,0xf6,
-+ 0x08,0xda,0xfc,0x22,0x90,0x08,0xdd,0xe4,0xf0,0xa3,0xf0,0x90,0x08,0xdd,0xc3,0xe0,
-+ 0x94,0x40,0xa3,0xe0,0x94,0x00,0x30,0xd2,0x04,0xb2,0xe7,0xd2,0xe0,0x20,0xe7,0x03,
-+ 0x02,0x04,0xdf,0x90,0x08,0xdd,0xe0,0xf5,0x08,0xa3,0xe0,0xf5,0x09,0x7a,0x0c,0xe5,
-+ 0x08,0xc3,0x33,0xf5,0x08,0xe5,0x09,0x33,0xf5,0x09,0xda,0xf3,0xe5,0x09,0x33,0xe4,
-+ 0x50,0x01,0x14,0xf5,0x0a,0xf5,0x0b,0xe5,0x08,0x44,0x00,0xf5,0x08,0xe5,0x09,0x44,
-+ 0x00,0xf5,0x09,0xe5,0x0a,0x44,0x08,0xf5,0x0a,0xe5,0x0b,0x44,0x00,0xf5,0x0b,0x90,
-+ 0x08,0xe1,0xe5,0x08,0xf0,0xa3,0xe5,0x09,0xf0,0x90,0x08,0xe1,0xe0,0xf5,0x08,0xa3,
-+ 0xe0,0xf5,0x09,0x33,0xe4,0x50,0x01,0x14,0xf5,0x0a,0xf5,0x0b,0x90,0x91,0x04,0x7a,
-+ 0x04,0x78,0x08,0xe6,0xf0,0xa3,0x08,0xda,0xfa,0x90,0x08,0xdf,0xe4,0xf0,0xa3,0xf0,
-+ 0x90,0x08,0xdf,0xc3,0xe0,0x94,0x80,0xa3,0xe0,0x94,0x38,0x30,0xd2,0x04,0xb2,0xe7,
-+ 0xd2,0xe0,0x30,0xe7,0x5b,0x90,0x91,0x40,0xe0,0x54,0x00,0xf5,0x08,0xa3,0xe0,0x54,
-+ 0xa0,0xf5,0x09,0xa3,0xe0,0x54,0x00,0xf5,0x0a,0xa3,0xe0,0x54,0x00,0xf5,0x0b,0x78,
-+ 0x08,0xc3,0xe6,0x94,0x00,0x70,0x10,0x08,0xe6,0x94,0xa0,0x70,0x0a,0x08,0xe6,0x94,
-+ 0x00,0x70,0x04,0x08,0xe6,0x94,0x00,0x70,0x19,0x90,0x91,0x48,0x7a,0x04,0x78,0x08,
-+ 0xe0,0xf6,0xa3,0x08,0xda,0xfa,0x90,0x08,0xe1,0xe5,0x08,0xf0,0xa3,0xe5,0x09,0xf0,
-+ 0x80,0x0e,0x90,0x08,0xdf,0xe0,0x24,0x01,0xf0,0xa3,0xe0,0x34,0x00,0xf0,0x80,0x90,
-+ 0x90,0x08,0xdd,0xe0,0x24,0x01,0xf0,0xa3,0xe0,0x34,0x00,0xf0,0x02,0x03,0xdb,0x12,
-+ 0x06,0xd6,0x22,0xc0,0xe0,0xc0,0x82,0xc0,0x83,0xc0,0xd0,0xc0,0x08,0xc0,0x09,0xc0,
-+ 0x0a,0xc0,0x0b,0xc2,0xd3,0xd2,0xd4,0xc2,0xaf,0x53,0xa8,0xfe,0x53,0xe8,0xf9,0x78,
-+ 0x19,0xe6,0x70,0x03,0x02,0x05,0xac,0x90,0x08,0xbe,0xc3,0xe0,0x94,0x01,0x70,0x04,
-+ 0xa3,0xe0,0x94,0x00,0x60,0x03,0x02,0x05,0xac,0x78,0x1f,0xe6,0x70,0x37,0x90,0x08,
-+ 0xa4,0xe0,0xfa,0xa3,0xe0,0x8a,0x82,0xf5,0x83,0xe0,0xf5,0x08,0xa3,0xe0,0xf5,0x09,
-+ 0x33,0xe4,0x50,0x01,0x14,0xf5,0x0a,0xf5,0x0b,0x90,0x91,0x10,0x7a,0x04,0x78,0x08,
-+ 0xe6,0xf0,0xa3,0x08,0xda,0xfa,0x90,0x91,0x0c,0x7a,0x04,0x78,0x08,0xe6,0xf0,0xa3,
-+ 0x08,0xda,0xfa,0x80,0x54,0x90,0x08,0xa4,0xe0,0xfa,0xa3,0xe0,0x8a,0x82,0xf5,0x83,
-+ 0xe0,0xf5,0x08,0xa3,0xe0,0xf5,0x09,0x33,0xe4,0x50,0x01,0x14,0xf5,0x0a,0xf5,0x0b,
-+ 0x90,0x91,0x0c,0x7a,0x04,0x78,0x08,0xe6,0xf0,0xa3,0x08,0xda,0xfa,0x90,0x08,0xa4,
-+ 0xe0,0x24,0x02,0xfa,0xa3,0xe0,0x34,0x00,0xf5,0x83,0x8a,0x82,0xe0,0xf5,0x08,0xa3,
-+ 0xe0,0xf5,0x09,0x33,0xe4,0x50,0x01,0x14,0xf5,0x0a,0xf5,0x0b,0x90,0x91,0x10,0x7a,
-+ 0x04,0x78,0x08,0xe6,0xf0,0xa3,0x08,0xda,0xfa,0x12,0x08,0x9b,0x90,0x91,0x81,0xe0,
-+ 0x90,0x00,0x39,0xf0,0x43,0xe8,0x06,0x43,0xf8,0x04,0x43,0xa8,0x01,0xd2,0xaf,0xd0,
-+ 0x0b,0xd0,0x0a,0xd0,0x09,0xd0,0x08,0xd0,0xd0,0xd0,0x83,0xd0,0x82,0xd0,0xe0,0x32,
-+ 0x90,0x08,0xdf,0xe4,0xf0,0xa3,0xf0,0x90,0x08,0xdf,0xc3,0xe0,0x94,0xe8,0xa3,0xe0,
-+ 0x94,0x03,0x30,0xd2,0x04,0xb2,0xe7,0xd2,0xe0,0x30,0xe7,0x42,0x90,0x08,0xe1,0xe4,
-+ 0xf0,0xa3,0xf0,0x90,0x08,0xdd,0xe0,0xf5,0x08,0xa3,0xe0,0xf5,0x09,0x90,0x08,0xe1,
-+ 0xc3,0xe0,0x95,0x08,0xa3,0xe0,0x95,0x09,0x30,0xd2,0x04,0xb2,0xe7,0xd2,0xe0,0x30,
-+ 0xe7,0x0e,0x90,0x08,0xe1,0xe0,0x24,0x01,0xf0,0xa3,0xe0,0x34,0x00,0xf0,0x80,0xd3,
-+ 0x90,0x08,0xdf,0xe0,0x24,0x01,0xf0,0xa3,0xe0,0x34,0x00,0xf0,0x80,0xa9,0x22,0x90,
-+ 0x08,0xe1,0xe4,0xf0,0xa3,0x74,0x30,0xf0,0x90,0x08,0xdf,0xe4,0xf0,0xa3,0xf0,0x90,
-+ 0x08,0xdf,0xc3,0xe0,0x94,0x00,0xa3,0xe0,0x94,0x06,0x30,0xd2,0x04,0xb2,0xe7,0xd2,
-+ 0xe0,0x30,0xe7,0x2e,0x90,0x08,0xdd,0xe0,0x90,0x08,0xe1,0xc0,0xe0,0xe0,0xfa,0xa3,
-+ 0xe0,0x8a,0x82,0xf5,0x83,0xd0,0xe0,0xf0,0x90,0x08,0xe1,0xe0,0x24,0x01,0xf0,0xa3,
-+ 0xe0,0x34,0x00,0xf0,0x90,0x08,0xdf,0xe0,0x24,0x01,0xf0,0xa3,0xe0,0x34,0x00,0xf0,
-+ 0x80,0xbd,0x22,0xc0,0xe0,0xc0,0x82,0xc0,0x83,0xc0,0xd0,0xc0,0x08,0xc0,0x09,0xc0,
-+ 0x0a,0xc0,0x0b,0xc2,0xd3,0xd2,0xd4,0xc2,0xaf,0x53,0xa8,0xfe,0x53,0xe8,0xf9,0x78,
-+ 0x1b,0x76,0x01,0x90,0x90,0x0c,0x7a,0x04,0x78,0x08,0xe0,0xf6,0xa3,0x08,0xda,0xfa,
-+ 0x90,0x00,0x35,0x7a,0x04,0x78,0x08,0xe6,0xf0,0xa3,0x08,0xda,0xfa,0x43,0xe8,0x06,
-+ 0x43,0xa8,0x01,0xd2,0xaf,0xd0,0x0b,0xd0,0x0a,0xd0,0x09,0xd0,0x08,0xd0,0xd0,0xd0,
-+ 0x83,0xd0,0x82,0xd0,0xe0,0x32,0x90,0x00,0x3e,0xe4,0xf0,0xa3,0xf0,0x90,0x00,0x3e,
-+ 0xc3,0xe0,0x94,0x80,0xa3,0xe0,0x94,0x38,0x30,0xd2,0x04,0xb2,0xe7,0xd2,0xe0,0x30,
-+ 0xe7,0x35,0x90,0x91,0x40,0xe0,0x54,0x00,0xf5,0x08,0xa3,0xe0,0x54,0x60,0xf5,0x09,
-+ 0xa3,0xe0,0x54,0x00,0xf5,0x0a,0xa3,0xe0,0x54,0x00,0xf5,0x0b,0x78,0x08,0x7a,0x04,
-+ 0xe6,0x70,0x03,0x08,0xda,0xfa,0x70,0x01,0x22,0x90,0x00,0x3e,0xe0,0x24,0x01,0xf0,
-+ 0xa3,0xe0,0x34,0x00,0xf0,0x80,0xb6,0x22,0x90,0x3f,0xf0,0x74,0x0f,0xf0,0xa3,0xe4,
-+ 0xf0,0x90,0x3f,0xf4,0xe4,0xf0,0xa3,0x74,0x60,0xf0,0xa3,0x74,0x0a,0xf0,0xa3,0xe4,
-+ 0xf0,0x90,0x3f,0xf8,0xe4,0xf0,0xa3,0xf0,0xa3,0xf0,0xa3,0xf0,0x12,0x00,0x46,0x90,
-+ 0x3f,0xf8,0xe0,0x54,0xf0,0xf5,0x08,0x7a,0x03,0x78,0x08,0xa3,0x08,0xe0,0x54,0x00,
-+ 0xf6,0xda,0xf8,0x78,0x08,0x7a,0x04,0xe6,0x70,0x03,0x08,0xda,0xfa,0x60,0x01,0x22,
-+ 0x80,0xb6,0x22,0xc0,0xe0,0xc0,0x82,0xc0,0x83,0xc0,0xd0,0xc2,0xd3,0xd2,0xd4,0xc2,
-+ 0xaf,0x53,0xa8,0xfe,0x53,0xe8,0xf9,0x90,0x08,0xbe,0x74,0x01,0xf0,0xa3,0xe4,0xf0,
-+ 0x43,0xe8,0x06,0x43,0xa8,0x01,0xd2,0xaf,0xd0,0xd0,0xd0,0x83,0xd0,0x82,0xd0,0xe0,
-+ 0x32,0x90,0x91,0x40,0xe0,0x54,0x00,0xf5,0x08,0xa3,0xe0,0x54,0x80,0xf5,0x09,0xa3,
-+ 0xe0,0x54,0x00,0xf5,0x0a,0xa3,0xe0,0x54,0x00,0xf5,0x0b,0x78,0x08,0x7a,0x04,0xe6,
-+ 0x70,0x03,0x08,0xda,0xfa,0x60,0x01,0x22,0x80,0xd7,0x22,0x90,0x08,0xbe,0xe4,0xf0,
-+ 0xa3,0xf0,0x90,0x08,0xb8,0xe4,0xf0,0xa3,0xf0,0x90,0x08,0xb6,0xe4,0xf0,0xa3,0xf0,
-+ 0x78,0x1e,0x76,0x00,0x75,0xa8,0x81,0x75,0xb8,0x01,0x75,0xe8,0x06,0x75,0xf8,0x04,
-+ 0xd2,0xaf,0x22,0x90,0x91,0x44,0x7a,0x04,0x78,0x08,0xe0,0xf6,0xa3,0x08,0xda,0xfa,
-+ 0x90,0x3f,0xf4,0x7a,0x04,0x78,0x08,0xe6,0xf0,0xa3,0x08,0xda,0xfa,0x12,0x06,0xd6,
-+ 0x90,0x3f,0xf2,0x74,0x01,0xf0,0xa3,0xe4,0xf0,0x22,0x90,0x3f,0xf4,0x7a,0x04,0x78,
-+ 0x08,0xe0,0xf6,0xa3,0x08,0xda,0xfa,0x90,0x91,0x08,0x7a,0x04,0x78,0x08,0xe6,0xf0,
-+ 0xa3,0x08,0xda,0xfa,0x12,0x06,0xd6,0x90,0x3f,0xf2,0x74,0x01,0xf0,0xa3,0xe4,0xf0,
-+ 0x22,0x90,0x91,0x48,0x7a,0x04,0x78,0x08,0xe0,0xf6,0xa3,0x08,0xda,0xfa,0x90,0x3f,
-+ 0xf4,0x7a,0x04,0x78,0x08,0xe6,0xf0,0xa3,0x08,0xda,0xfa,0x12,0x06,0xd6,0x90,0x3f,
-+ 0xf2,0x74,0x01,0xf0,0xa3,0xe4,0xf0,0x22,0x00,0x30,0x00,0x36,0x41,0x91,0x45,0x91,
-+ 0xf4,0x3f,0xf6,0x3f,0xf4,0x3f,0xf5,0x3f,0xf6,0x3f,0xf7,0x3f,0x90,0x3f,0xf4,0x78,
-+ 0x1f,0xe0,0xf6,0x90,0x3f,0xf2,0x74,0x01,0xf0,0xa3,0xe4,0xf0,0x22,0x78,0x1e,0x76,
-+ 0x01,0x90,0x3f,0xf2,0x74,0x01,0xf0,0xa3,0xe4,0xf0,0x22,0x53,0xa0,0xfe,0x43,0xa0,
-+ 0x01,0x22,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
-+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
-+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
-+};
-+
-+
-+void init_8051(void)
-+{
-+ int i,j;
-+
-+ *(volatile unsigned long *)(VOYAGER_8051_RESET) = 0x0000;
-+ *(volatile unsigned long *)(VOYAGER_8051_SELECT) = 0x0011;
-+ //8051 program write
-+ for(i=0;i<sizeof(code_8051);i++) {
-+ *(volatile unsigned char *)(VOYAGER_8051_BASE+i) = code_8051[i];
-+ }
-+ *(volatile unsigned long *)(VOYAGER_8051_RESET) = 0x0001;
-+ for(i=0;i<DELAY_8051;i++) {
-+ for(j=0;j<200;j++);
-+ }
-+}
-+
-+
-+int command_8051(int com,int *data,int *data2)
-+{
-+ int ret,i,j;
-+
-+ j = 0;
-+ do {
-+ *(volatile unsigned short *)(VOYAGER_8051_COMMAND) = com;
-+ *(volatile unsigned short *)(VOYAGER_8051_STATUS) = 0;
-+ *(volatile unsigned long *)(VOYAGER_8051_DATA) = *data;
-+ *(volatile unsigned long *)(VOYAGER_8051_DATA+4) = *data2;
-+ *(volatile unsigned long *)(VOYAGER_8051_CPU_INT) = 0xff;
-+ for(i=0;i<DELAY_8051;i++) {
-+ ret = *(volatile unsigned short *)(VOYAGER_8051_STATUS);
-+ if(ret != 0) {
-+ break;
-+ }
-+ }
-+ j++;
-+ if(j > 100) {
-+ *data = 0;
-+ *data2 = 0;
-+ printk("8051 command process error\n");
-+ return(-1);
-+ }
-+ } while(ret == 0);
-+ *data = *(volatile unsigned long *)(VOYAGER_8051_DATA);
-+ *data2 = *(volatile unsigned long *)(VOYAGER_8051_DATA+4);
-+
-+ return(ret);
-+}
-+
-+EXPORT_SYMBOL(init_8051);
-+EXPORT_SYMBOL(command_8051);
-+
-diff -ruN linux-2.6.17-vanilla/sound/oss/voyagergx_sound.c linux-2.6.17/sound/oss/voyagergx_sound.c
---- linux-2.6.17-vanilla/sound/oss/voyagergx_sound.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/sound/oss/voyagergx_sound.c 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1,1122 @@
-+/*
-+ * linux/drivers/sound/voyagergx_sound.c -- voyager sound driver
-+ *
-+ * Copyright (C) 2003 Renesas Technology Sales Co.,Ltd.
-+ * Copyright (C) 2003 Atom Create Engineering Co.,Ltd.
-+ * Anthor : Atom Create Engineering Co.,Ltd.
-+ * Kenichi Sakuma
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file COPYING in the main directory of this archive for
-+ * more details.
-+ *
-+ * 1.00
-+ * - initial version (ks)
-+ * 1.01
-+ * - Kernel 2.6 correspondence
-+ */
-+#include <linux/version.h>
-+#include <linux/module.h>
-+#include <linux/string.h>
-+#include <linux/ioport.h>
-+#include <linux/sched.h>
-+#include <linux/delay.h>
-+#include <linux/sound.h>
-+#include <linux/slab.h>
-+#include <linux/soundcard.h>
-+#include <linux/init.h>
-+#include <linux/poll.h>
-+#include <linux/pci.h>
-+#include <linux/bitops.h>
-+#include <linux/proc_fs.h>
-+#include <linux/spinlock.h>
-+#include <linux/smp_lock.h>
-+#include <linux/ac97_codec.h>
-+#include <linux/interrupt.h>
-+#include <asm/io.h>
-+#include <asm/uaccess.h>
-+#include <asm/hardirq.h>
-+#include <asm/rts7751r2d/voyagergx_reg.h>
-+#include <asm/irq.h>
-+#include "voyagergx_sound.h"
-+
-+static DEFINE_SPINLOCK(voyagergx_sound_lock);
-+
-+/* --------------------------------------------------------------------- */
-+#undef OSS_DOCUMENTED_MIXER_SEMANTICS
-+
-+#define VOYAGERGX_MODULE_NAME "Voyagergx audio"
-+#define PFX VOYAGERGX_MODULE_NAME
-+
-+#define err(format, arg...) printk(KERN_ERR PFX ": " format "\n" , ## arg)
-+#define info(format, arg...) printk(KERN_INFO PFX ": " format "\n" , ## arg)
-+//#define info(format, arg...) printk(": " format "\n" , ## arg)
-+//#define warn(format, arg...) printk(KERN_WARNING PFX ": " format "\n" , ## arg)
-+
-+// buffer size
-+#define VOYAGER_SOUND_SIZE 0x100000
-+// data buffer 1 - vram upper
-+#define VOYAGER_SOUND_BUF1 0xb0200000
-+// data buffer 2 - vram upper
-+#define VOYAGER_SOUND_BUF2 VOYAGER_SOUND_BUF1+VOYAGER_SOUND_SIZE
-+//WAIT TIME OUT
-+//#define WAIT_TIMEOUT ((VOYAGER_SOUND_SIZE / 48000) * HZ + 10)
-+#define WAIT_TIMEOUT 1100
-+
-+DECLARE_WAIT_QUEUE_HEAD(int_wq);
-+
-+/* Boot options */
-+static int vra = 0; // 0 = no VRA, 1 = use VRA if codec supports it
-+MODULE_PARM(vra, "i");
-+MODULE_PARM_DESC(vra, "if 1 use VRA if codec supports it");
-+
-+struct voyager_setting {
-+ int ch;
-+ int fmt;
-+ int rate;
-+} setting;
-+
-+int init_8051(void);
-+int command_8051(int com,int *data,int *data2);
-+
-+// DMA used channel - set DMA used channel(fixed at 0)
-+static int sh7751_dmasound_play_irq = 0;
-+// buffer 1 used flag - transfersize is set when used
-+static int buff_flg1 = 0;
-+// buffer 2 used flag - transfersize is set when used
-+static int buff_flg2 = 0;
-+// buffer judgement flag - which buffer is used by DMA
-+static int proc_flg = 0;
-+// first judgement flag - data transfer is first time?
-+static int first_flg = 0;
-+// last judgement flag - data transfer is last?
-+static int last_flg = 0;
-+// interrupt flag - 0 cleard if interrupt occured
-+static int wari_flg;
-+// break flag - to cancel or done of sound play
-+static int break_flg;
-+// play cancel flag - performance problem or end of play
-+static int abnml_flg;
-+// number of write buffer - which buffer will be used
-+static int next_write;
-+// remained buffer size
-+static int next_size;
-+// DMA transfer size
-+static int dma_req[2];
-+// DMA address table - address per channel
-+static int dma_tbl[] = {
-+ 0xffa00000, 0xffa00010, 0xffa00020, 0xffa00030,
-+ 0xffa00040, 0xffa00050, 0xffa00060, 0xffa00070
-+};
-+
-+/* --------------------------------------------------------------------- */
-+// DMA start
-+// enable selected dma channel
-+void dma2_start(int irq)
-+{
-+int base;
-+
-+ base = dma_tbl[irq];
-+ *(volatile unsigned long *)(base + 0xc) |= 0x00000001;
-+}
-+
-+
-+// DMA stop
-+// disable selected dma channel
-+void dma2_stop(int irq)
-+{
-+int base;
-+
-+ base = dma_tbl[irq];
-+ *(volatile unsigned long *)(base + 0xc) &= 0xfffffffc;
-+}
-+
-+
-+// prepare DMA transfer
-+// set transfer src address and transfer size
-+void dma2_queue_buffer(int irq,int src, int cnt)
-+{
-+int base;
-+
-+ base = dma_tbl[irq];
-+ *(volatile unsigned long *)(base + 0x0) = src & 0x1fffffff;
-+ // change transfer unit for mono or stereo
-+ if(setting.ch == 1) {
-+ // 4 byte for stereo
-+ *(volatile unsigned long *)(base + 0x8) = cnt;
-+ }
-+ else {
-+ // 2 byte for mono
-+ *(volatile unsigned long *)(base + 0x8) = cnt * 2;
-+ }
-+}
-+
-+
-+// DMA registration
-+// register DMA interrupt
-+int request_dma2(int irq,char *str,irqreturn_t (*callback)(int, void *, struct pt_regs *))
-+{
-+int ret;
-+
-+ make_ipr_irq(DMTE0_IRQ+irq, DMA_IPR_ADDR, DMA_IPR_POS,DMA_PRIORITY);
-+ ret = request_irq(DMTE0_IRQ+irq,callback,SA_INTERRUPT,str,0);
-+ return(ret);
-+}
-+
-+
-+// preparation for DMA use
-+// set transfer dst address and transfer unit, transfer condition, etc
-+void dma2_set_device(int irq)
-+{
-+int base;
-+
-+ //DMA initialize
-+ base = dma_tbl[irq];
-+ *(volatile unsigned long *)(base + 0x0) = 0;
-+ *(volatile unsigned long *)(base + 0x4) = VOYAGER_8051_FIFO & 0x1fffffff;
-+ *(volatile unsigned long *)(base + 0x8) = 0;
-+ // change transfer unit for mono or stereo
-+ if(setting.ch == 1) {
-+ // 4 byte for stereo
-+ *(volatile unsigned long *)(base + 0xc) = 0xb1034;
-+ }
-+ else {
-+ // 2 byte for mono
-+ *(volatile unsigned long *)(base + 0xc) = 0xb1024;
-+ }
-+ *(volatile unsigned long *)(base + 0x40) = 0x01;
-+}
-+
-+/* --------------------------------------------------------------------- */
-+
-+
-+// cancel sound play(done)
-+//
-+static void voy_break(void)
-+{
-+int data,data2;
-+
-+ // cancel for 8051
-+ data = 0x00;
-+ command_8051(0x07,&data,&data2);
-+ // stop DMA
-+ dma2_stop(sh7751_dmasound_play_irq);
-+ break_flg = 1;
-+}
-+/* --------------------------------------------------------------------- */
-+// ISR for DMA
-+// called after DMA transfer is done
-+// next request is issued here in the case of sequential transfer
-+static irqreturn_t do_irq(int irq, void *dev_id, struct pt_regs *regs)
-+{
-+ spin_lock_irq(&voyagergx_sound_lock);
-+
-+ // stop DMA
-+ dma2_stop(sh7751_dmasound_play_irq);
-+ // clear interrupt flag
-+ wari_flg = 0;
-+ // play of buffer 1 is done?
-+ if((proc_flg == 1)&&(buff_flg1 == 1)) {
-+ // buffer 1 is free
-+ buff_flg1 = 0;
-+ // buffer 2 is being played
-+ proc_flg = 2;
-+ // next data is ready?
-+ if(buff_flg2 == 1) {
-+ // request DMA
-+ dma2_queue_buffer(sh7751_dmasound_play_irq,VOYAGER_SOUND_BUF2,dma_req[1]);
-+ dma2_start(sh7751_dmasound_play_irq);
-+ }
-+ else {
-+ // set stop flag if no data
-+ abnml_flg = 1;
-+ }
-+ }
-+ // play of buffer 2 is done?
-+ else if((proc_flg == 2)&&(buff_flg2 == 1)) {
-+ // buffer 2 is free
-+ buff_flg2 = 0;
-+ // buffer 1 is being played
-+ proc_flg = 1;
-+ // next data is ready?
-+ if(buff_flg1 == 1) {
-+ // request DMA
-+ dma2_queue_buffer(sh7751_dmasound_play_irq,VOYAGER_SOUND_BUF1,dma_req[0]);
-+ dma2_start(sh7751_dmasound_play_irq);
-+ }
-+ else {
-+ // set stop flag if no data
-+ abnml_flg = 1;
-+ }
-+ }
-+ // play remained data(last data or small one)
-+ else {
-+ //last transfer is done
-+ last_flg = 0;
-+ }
-+ //wake up sleeping write routine
-+ wake_up_interruptible(&int_wq);
-+ spin_unlock_irq(&voyagergx_sound_lock);
-+
-+ return IRQ_HANDLED;
-+}
-+
-+/* --------------------------------------------------------------------- */
-+// 32 bit memory read
-+static inline u32 voyager_readl(u32 addr)
-+{
-+ return *(volatile unsigned long *)(addr);
-+}
-+
-+// 32 bit memory write
-+static inline void voyager_writel(u32 val,u32 addr)
-+{
-+ *(volatile unsigned long *)(addr) = val;
-+}
-+
-+/* --------------------------------------------------------------------- */
-+
-+struct voyagergx_state {
-+ /* soundcore stuff */
-+ int dev_audio;
-+
-+ struct ac97_codec codec;
-+ unsigned codec_base_caps; // AC'97 reg 00h, "Reset Register"
-+ unsigned codec_ext_caps; // AC'97 reg 28h, "Extended Audio ID"
-+ int no_vra; // do not use VRA
-+
-+ spinlock_t lock;
-+ struct semaphore open_sem;
-+ mode_t open_mode;
-+
-+} voyagergx_state;
-+
-+
-+/* --------------------------------------------------------------------- */
-+// read codec
-+static u16 rdcodec(struct ac97_codec *codec, u8 addr)
-+{
-+ u32 cmd,ret;
-+ u16 data;
-+
-+
-+ // set register address for reading
-+ cmd = (u32) (addr & AC97C_INDEX_MASK) << 12;
-+ cmd |= AC97C_READ; // read command
-+ command_8051(1,&cmd,&ret);
-+ mdelay(1);
-+ // read register
-+ command_8051(4,&cmd,&ret);
-+ mdelay(1);
-+ // convert it as it was shifted
-+ data = (cmd >> 4) & 0xffff;
-+ return data;
-+}
-+
-+
-+// write codec
-+static void wrcodec(struct ac97_codec *codec, u8 addr, u16 data)
-+{
-+ u32 cmd,ret;
-+ int i;
-+
-+ // reset?
-+ if(addr == 0) {
-+ // try again if failed
-+ for(i=0;i<10;i++) {
-+ // set write data
-+ cmd = (u32) data << AC97C_WD_BIT; // OR in the data word
-+ command_8051(3,&cmd,&ret);
-+ // set write address
-+ cmd = (u32) (addr & AC97C_INDEX_MASK) << 12;
-+ cmd &= ~AC97C_READ; // write command
-+ command_8051(1,&cmd,&ret);
-+ // check whether reset succeed
-+ ret = rdcodec(codec,0);
-+ if((ret & 0x8000) == 0) {
-+ break;
-+ }
-+ }
-+ }
-+ // instead of reset
-+ else {
-+ // set write data
-+ cmd = (u32) data << AC97C_WD_BIT; // OR in the data word
-+ command_8051(3,&cmd,&ret);
-+ // set write address
-+ cmd = (u32) (addr & AC97C_INDEX_MASK) << 12;
-+ cmd &= ~AC97C_READ; // write command
-+ command_8051(1,&cmd,&ret);
-+ mdelay(1);
-+ // read variables of volume for preservation
-+ rdcodec(codec,2);
-+ rdcodec(codec,24);
-+ rdcodec(codec,22);
-+ rdcodec(codec,0x2c);
-+ }
-+}
-+
-+/* --------------------------------------------------------------------- */
-+
-+static loff_t voyagergx_llseek(struct file *file, loff_t offset, int origin)
-+{
-+ return -ESPIPE;
-+}
-+
-+
-+static int voyagergx_open_mixdev(struct inode *inode, struct file *file)
-+{
-+ file->private_data = &voyagergx_state;
-+ return 0;
-+}
-+
-+static int voyagergx_release_mixdev(struct inode *inode, struct file *file)
-+{
-+ return 0;
-+}
-+
-+static int mixdev_ioctl(struct ac97_codec *codec, unsigned int cmd,
-+ unsigned long arg)
-+{
-+ return codec->mixer_ioctl(codec, cmd, arg);
-+}
-+
-+static int voyagergx_ioctl_mixdev(struct inode *inode, struct file *file,
-+ unsigned int cmd, unsigned long arg)
-+{
-+ struct voyagergx_state *s = (struct voyagergx_state *)file->private_data;
-+ struct ac97_codec *codec = &s->codec;
-+
-+ return mixdev_ioctl(codec, cmd, arg);
-+}
-+
-+static /*const */ struct file_operations voyagergx_mixer_fops = {
-+ owner:THIS_MODULE,
-+ llseek:voyagergx_llseek,
-+ ioctl:voyagergx_ioctl_mixdev,
-+ open:voyagergx_open_mixdev,
-+ release:voyagergx_release_mixdev,
-+};
-+
-+/* --------------------------------------------------------------------- */
-+// read routine
-+// record(sampling) should be used originally
-+// do nothing without record(sampling) now
-+static ssize_t voyagergx_read(struct file *file, char *buffer,
-+ size_t count, loff_t *ppos)
-+{
-+ if (ppos != &file->f_pos)
-+ return -ESPIPE;
-+ if (!access_ok(VERIFY_WRITE, buffer, count))
-+ return -EFAULT;
-+ return 0;
-+}
-+
-+// write routine
-+// used for sound play
-+// sound play is being done by 8051 and data itsself is transfered by DMA
-+// the preparation for the above is done here
-+static ssize_t voyagergx_write(struct file *file, const char *buffer,
-+ size_t count, loff_t * ppos)
-+{
-+int i,data,data2,data_size;
-+int ret;
-+
-+
-+ if (ppos != &file->f_pos)
-+ return -ESPIPE;
-+ if (!access_ok(VERIFY_READ, buffer, count))
-+ return -EFAULT;
-+ // exit if break flag is set
-+ if(break_flg) {
-+ return count;
-+ }
-+ // wait until buffers are not free
-+ if((buff_flg1 == 1)&&(buff_flg2 == 1)) {
-+ wari_flg = 1;
-+ i = 0;
-+ while(wari_flg) {
-+ // sound play already done?
-+ if(abnml_flg) {
-+ break;
-+ }
-+ // sleep until buffer is not full
-+ ret = interruptible_sleep_on_timeout(&int_wq,WAIT_TIMEOUT);
-+ if(ret == 0) {
-+ break;
-+ }
-+ // check Ctrl-C
-+ if (signal_pending(current)) {
-+ voy_break();
-+ return -ERESTARTSYS;
-+ }
-+ i++;
-+ if(i > 10000000) {
-+ printk("DMA endcheck-1 error\n");
-+ voy_break();
-+ return -EFAULT;
-+ }
-+ }
-+ }
-+ data_size = count;
-+ // multiple transfer
-+ if(data_size >= next_size) {
-+ // until play data is larger than buffer
-+ while(data_size >= next_size) {
-+ // buffer 1 is free
-+ if((next_write == 1)&&(buff_flg1 == 0)) {
-+ // copy data to VRAM
-+ copy_from_user((long *)(VOYAGER_SOUND_BUF1+VOYAGER_SOUND_SIZE-next_size),
-+ (long *)buffer,next_size);
-+ // buffer1 used
-+ buff_flg1 = 1;
-+ next_write = 2;
-+ // update pointer
-+ buffer += next_size;
-+ // decrease remained play data
-+ data_size -= next_size;
-+ // set remained buffer size
-+ next_size = VOYAGER_SOUND_SIZE;
-+ // kick DMA again when data is not enough
-+ if(abnml_flg == 1) {
-+ dma2_queue_buffer(sh7751_dmasound_play_irq,
-+ VOYAGER_SOUND_BUF1,dma_req[0]);
-+ dma2_start(sh7751_dmasound_play_irq);
-+ abnml_flg = 0;
-+ }
-+ }
-+ // buffer 2 is free
-+ else if((next_write == 2)&&(buff_flg2 == 0)) {
-+ // copy data to VRAM
-+ copy_from_user((long *)(VOYAGER_SOUND_BUF2+VOYAGER_SOUND_SIZE-next_size),
-+ (long *)buffer,next_size);
-+ //buffer 2 used
-+ buff_flg2 = 1;
-+ next_write = 1;
-+ // update pointer
-+ buffer += next_size;
-+ // decrease remained play data
-+ data_size -= next_size;
-+ // set remained buffer size
-+ next_size = VOYAGER_SOUND_SIZE;
-+ // kick DMA again when data is not enough
-+ if(abnml_flg == 1) {
-+ dma2_queue_buffer(sh7751_dmasound_play_irq,
-+ VOYAGER_SOUND_BUF2,dma_req[1]);
-+ dma2_start(sh7751_dmasound_play_irq);
-+ abnml_flg = 0;
-+ }
-+ }
-+ // first time?
-+ if(first_flg == 0) {
-+ //buffer 1 is full?(buffer 1 is used at first)
-+ if(buff_flg1 == 1) {
-+ // request DMA
-+ dma2_queue_buffer(sh7751_dmasound_play_irq,
-+ VOYAGER_SOUND_BUF1,
-+ VOYAGER_SOUND_SIZE/4);
-+ // start play on 8051
-+ data = 0x01;
-+ command_8051(0x07,&data,&data2);
-+ // start DMA transfer
-+ dma2_start(sh7751_dmasound_play_irq);
-+ // set first flag
-+ first_flg = 1;
-+ }
-+ }
-+ // wait until 2 buffer are full
-+ if((buff_flg1 == 1)&&(buff_flg2 == 1)) {
-+ wari_flg = 1;
-+ i = 0;
-+ while(wari_flg) {
-+ // sound play already done?
-+ if(abnml_flg) {
-+ break;
-+ }
-+ // sleep until buffer is not full
-+ ret = interruptible_sleep_on_timeout(&int_wq,WAIT_TIMEOUT);
-+ if(ret == 0) {
-+ break;
-+ }
-+ // check Ctrl-C
-+ if (signal_pending(current)) {
-+ voy_break();
-+ return -ERESTARTSYS;
-+ }
-+ i++;
-+ if(i > 10000000) {
-+ printk("DMA endcheck-2 error\n");
-+ voy_break();
-+ return -EFAULT;
-+ }
-+ }
-+ }
-+ }
-+ }
-+ // play data size is less than remained buffer size
-+ if((data_size != 0)&&(data_size < next_size)) {
-+ // buffer 1 is free
-+ if((next_write == 1)&&(buff_flg1 == 0)) {
-+ // copy data to VRAM
-+ copy_from_user((long *)(VOYAGER_SOUND_BUF1+VOYAGER_SOUND_SIZE-next_size),
-+ (void *)buffer,data_size);
-+ // reset buffer remain size
-+ next_size -= data_size;
-+ // buffer is full?
-+ if(next_size == 0) {
-+ //buffer1 used
-+ buff_flg1 = 1;
-+ next_write = 2;
-+ // reset buffer remain size
-+ next_size = VOYAGER_SOUND_SIZE;
-+ // kick DMA again when data is not enough
-+ if(abnml_flg == 1) {
-+ dma2_queue_buffer(sh7751_dmasound_play_irq,
-+ VOYAGER_SOUND_BUF1,dma_req[0]);
-+ dma2_start(sh7751_dmasound_play_irq);
-+ abnml_flg = 0;
-+ }
-+ }
-+ }
-+ //buffer 2 is free
-+ else if((next_write == 2)&&(buff_flg2 == 0)) {
-+ // copy data to VRAM
-+ copy_from_user((long *)(VOYAGER_SOUND_BUF2+VOYAGER_SOUND_SIZE-next_size),
-+ (void *)buffer,data_size);
-+ // reset buffer remained size
-+ next_size -= data_size;
-+ // buffer is full?
-+ if(next_size == 0) {
-+ //buffer2 used
-+ buff_flg2 = 1;
-+ next_write = 1;
-+ // reset buffer remained size
-+ next_size = VOYAGER_SOUND_SIZE;
-+ // kick DMA again when data is not enough
-+ if(abnml_flg == 1) {
-+ dma2_queue_buffer(sh7751_dmasound_play_irq,
-+ VOYAGER_SOUND_BUF2,dma_req[1]);
-+ dma2_start(sh7751_dmasound_play_irq);
-+ abnml_flg = 0;
-+ }
-+ }
-+ }
-+ }
-+ // is it first time?
-+ if(first_flg == 0) {
-+ // buffer 1 is full(buffer1 is used first at first time)
-+ if(buff_flg1 == 1) {
-+ // DMA request
-+ dma2_queue_buffer(sh7751_dmasound_play_irq,
-+ VOYAGER_SOUND_BUF1,
-+ VOYAGER_SOUND_SIZE/4);
-+ // start play on 8051
-+ data = 0x01;
-+ command_8051(0x07,&data,&data2);
-+ dma2_start(sh7751_dmasound_play_irq);
-+ // set first flag
-+ first_flg = 1;
-+ }
-+ }
-+ return(count);
-+}
-+
-+// polling - not used
-+static unsigned int voyagergx_poll(struct file *file,
-+ struct poll_table_struct *wait)
-+{
-+ return 0;
-+}
-+
-+// mmap - not used
-+static int voyagergx_mmap(struct file *file, struct vm_area_struct *vma)
-+{
-+ return 0;
-+}
-+
-+// I/O control
-+// operation for change data type and volume
-+static int voyagergx_ioctl(struct inode *inode, struct file *file,
-+ unsigned int cmd, unsigned long arg)
-+{
-+ struct voyagergx_state *s = (struct voyagergx_state *)file->private_data;
-+ int data,data2,rate;
-+
-+
-+ switch (cmd) {
-+//Sound Stop control
-+ case -1:
-+ voy_break();
-+ return 0;
-+ case OSS_GETVERSION:
-+ return put_user(SOUND_VERSION, (int *) arg);
-+
-+ case SNDCTL_DSP_SYNC:
-+ return 0;
-+
-+ case SNDCTL_DSP_SETDUPLEX:
-+ return 0;
-+
-+ case SNDCTL_DSP_GETCAPS:
-+ return put_user(DSP_CAP_DUPLEX | DSP_CAP_REALTIME |
-+ DSP_CAP_TRIGGER | DSP_CAP_MMAP, (int *)arg);
-+
-+ case SNDCTL_DSP_RESET:
-+ return 0;
-+
-+ case SNDCTL_DSP_SPEED: // set sampling rate
-+ if((*(int *)arg <= 0xbb80)&&(*(int *)arg >= 0x1b80)) {
-+ setting.rate = *(int *)arg;
-+ }
-+ if(setting.ch == 0) {
-+ rate = setting.rate / 2;
-+ }
-+ else {
-+ rate = setting.rate;
-+ }
-+ return setting.rate;
-+
-+ case SNDCTL_DSP_STEREO: //set # of play channel(stereo or mono)
-+ setting.ch = *(int *)arg;
-+ // set # of channel for 8051
-+ data = setting.ch;
-+ command_8051(0x05,&data,&data2);
-+ dma2_set_device(sh7751_dmasound_play_irq);
-+ return(setting.ch);
-+
-+ case SNDCTL_DSP_CHANNELS:
-+ return 0;
-+
-+ case SNDCTL_DSP_GETFMTS: // set play data format(8bit or 16bit)
-+ if(setting.fmt == 16) {
-+ arg = (unsigned long)AFMT_S16_LE;
-+ }
-+ else {
-+ arg = (unsigned long)AFMT_U8;
-+ }
-+ return 0;
-+
-+ case SNDCTL_DSP_SETFMT: // set play data format(8bit or 16bit)
-+ if(*(int *)arg == AFMT_S16_LE) {
-+ setting.fmt = 16;
-+ }
-+ else {
-+ setting.fmt = 8;
-+ }
-+ return 0;
-+
-+ case SNDCTL_DSP_POST:
-+ return 0;
-+
-+ case SNDCTL_DSP_GETTRIGGER:
-+ return 0;
-+
-+ case SNDCTL_DSP_SETTRIGGER:
-+ return 0;
-+
-+ case SNDCTL_DSP_GETOSPACE:
-+ return 0;
-+
-+ case SNDCTL_DSP_GETISPACE:
-+ return 0;
-+
-+ case SNDCTL_DSP_NONBLOCK:
-+ return 0;
-+
-+ case SNDCTL_DSP_GETODELAY:
-+ return 0;
-+
-+ case SNDCTL_DSP_GETIPTR:
-+ return 0;
-+
-+ case SNDCTL_DSP_GETOPTR:
-+ return 0;
-+
-+ case SNDCTL_DSP_GETBLKSIZE:
-+ return 0;
-+
-+ case SNDCTL_DSP_SETFRAGMENT:
-+ return 0;
-+
-+ case SNDCTL_DSP_SUBDIVIDE:
-+ return 0;
-+
-+ case SOUND_PCM_READ_RATE:
-+ return 0;
-+
-+ case SOUND_PCM_READ_CHANNELS:
-+ return 0;
-+
-+ case SOUND_PCM_READ_BITS:
-+ return 0;
-+
-+ case SOUND_PCM_WRITE_FILTER:
-+ case SNDCTL_DSP_SETSYNCRO:
-+ case SOUND_PCM_READ_FILTER:
-+ return -EINVAL;
-+ }
-+
-+ return mixdev_ioctl(&s->codec, cmd, arg);
-+}
-+
-+// open
-+// flag initialization
-+// stop 8051 to play(it will be started by first write)
-+static int voyagergx_open(struct inode *inode, struct file *file)
-+{
-+struct voyagergx_state *s = &voyagergx_state;
-+int data,data2;
-+
-+ file->private_data = s;
-+
-+ s->open_mode |= file->f_mode & (FMODE_READ | FMODE_WRITE);
-+ //head transferflag clear
-+ first_flg = 0;
-+ //last transfer flag clear
-+ last_flg = 0;
-+ //buffer flag clear
-+ buff_flg1 = buff_flg2 = 0;
-+ // buffer 1 is first
-+ proc_flg = 1;
-+ // reset buffer remained size
-+ next_size = VOYAGER_SOUND_SIZE;
-+ // initialize DMA transfer size
-+ dma_req[0] = VOYAGER_SOUND_SIZE/4;
-+ dma_req[1] = VOYAGER_SOUND_SIZE/4;
-+ // clear break flag
-+ break_flg = 0;
-+ // clear cancel play flag
-+ abnml_flg = 0;
-+ // initialize # of write buffer
-+ next_write = 1;
-+ // start play on 8051
-+ data = 0x00;
-+ command_8051(0x07,&data,&data2);
-+
-+ return 0;
-+}
-+
-+// release(close)
-+// play again if data remains in buffer
-+// stop DMA
-+// stop 8051
-+static int voyagergx_release(struct inode *inode, struct file *file)
-+{
-+int data,data2,i;
-+int ret;
-+
-+ // stop if break flag is set
-+ if(break_flg) {
-+ return 0;
-+ }
-+ // wait until buffer is not full
-+ if((buff_flg1 == 1)&&(buff_flg2 == 1)) {
-+ wari_flg = 1;
-+ i = 0;
-+ while(wari_flg) {
-+ // sound play already done?
-+ if(abnml_flg) {
-+ break;
-+ }
-+ // sleep until buffer is not full
-+ ret = interruptible_sleep_on_timeout(&int_wq,WAIT_TIMEOUT);
-+ if(ret == 0) {
-+ break;
-+ }
-+ // check Ctrl-C
-+ if (signal_pending(current)) {
-+ voy_break();
-+ return -ERESTARTSYS;
-+ }
-+ i++;
-+ if(i > 10000000) {
-+ printk("DMA endcheck-3 error\n");
-+ voy_break();
-+ return -EFAULT;
-+ }
-+ }
-+ }
-+ // exit if size is less than 4
-+ if((VOYAGER_SOUND_SIZE - next_size) < 4) {
-+ voy_break();
-+ return 0;
-+ }
-+ // buffer is not full?
-+ if(next_size != 0) {
-+
-+ // first time?
-+ if(first_flg == 0) {
-+ // no data
-+ if(next_size == VOYAGER_SOUND_SIZE) {
-+ // exit
-+ voy_break();
-+ return 0;
-+ }
-+ // buffer 1 used?
-+ if(proc_flg == 1) {
-+ dma2_queue_buffer(sh7751_dmasound_play_irq,
-+ VOYAGER_SOUND_BUF1,
-+ (VOYAGER_SOUND_SIZE-next_size)/4);
-+ // set last judgement flag
-+ last_flg = 1;
-+ }
-+ // start play on 8051
-+ data = 0x01;
-+ command_8051(0x07,&data,&data2);
-+ dma2_start(sh7751_dmasound_play_irq);
-+ }
-+ // sound play in case that data is less than a buffer
-+ else {
-+ if(proc_flg == 2) {
-+ dma_req[0] = (VOYAGER_SOUND_SIZE-next_size)/4;
-+ buff_flg1 = 1;
-+ // set last judgement flag
-+ last_flg = 1;
-+ // kick dma again if data is not enough
-+ if(abnml_flg == 1) {
-+ dma2_queue_buffer(sh7751_dmasound_play_irq,
-+ VOYAGER_SOUND_BUF1,dma_req[0]);
-+ dma2_start(sh7751_dmasound_play_irq);
-+ abnml_flg = 0;
-+ }
-+ }
-+ else {
-+ // DMA request
-+ dma_req[1] = (VOYAGER_SOUND_SIZE-next_size)/4;
-+ buff_flg2 = 1;
-+ // set last judgement flag
-+ last_flg = 1;
-+ // kick dma again if data is not enough
-+ if(abnml_flg == 1) {
-+ dma2_queue_buffer(sh7751_dmasound_play_irq,
-+ VOYAGER_SOUND_BUF2,dma_req[1]);
-+ dma2_start(sh7751_dmasound_play_irq);
-+ abnml_flg = 0;
-+ }
-+ }
-+ }
-+ }
-+ // wait for all sound play(transfer)
-+ while(1) {
-+ if(abnml_flg) {
-+ break;
-+ }
-+ // exit if last judgement flag is 0
-+ if(last_flg == 0) {
-+ break;
-+ }
-+ wari_flg = 1;
-+ i = 0;
-+ while(wari_flg) {
-+ // sound play already done?
-+ if(abnml_flg) {
-+ break;
-+ }
-+ // exit if last judgement flag is 0
-+ if(last_flg == 0) {
-+ break;
-+ }
-+ // sleep until buffer is not full
-+ ret = interruptible_sleep_on_timeout(&int_wq,WAIT_TIMEOUT);
-+ if(ret == 0) {
-+ voy_break();
-+ return -EFAULT;
-+ }
-+ // check Ctrl-C
-+ if (signal_pending(current)) {
-+ voy_break();
-+ return -ERESTARTSYS;
-+ }
-+ i++;
-+ if(i > 10000000) {
-+ printk("DMA endcheck-last error\n");
-+ voy_break();
-+ return -EFAULT;
-+ }
-+ }
-+ }
-+ // end
-+ voy_break();
-+
-+ return 0;
-+}
-+
-+static /*const */ struct file_operations voyagergx_audio_fops = {
-+ owner: THIS_MODULE,
-+ llseek: voyagergx_llseek,
-+ read: voyagergx_read,
-+ write: voyagergx_write,
-+ poll: voyagergx_poll,
-+ ioctl: voyagergx_ioctl,
-+ mmap: voyagergx_mmap,
-+ open: voyagergx_open,
-+ release: voyagergx_release,
-+};
-+
-+
-+/* --------------------------------------------------------------------- */
-+MODULE_AUTHOR("Atom Create Engineering Co.,Ltd.");
-+MODULE_DESCRIPTION("DSP audio and mixer driver for Silicon Motion VoyagerGX audio device");
-+
-+/* --------------------------------------------------------------------- */
-+
-+// probe
-+// driver initialization
-+// codec initialization
-+// check ac97 chip#
-+static int __devinit voyagergx_probe(void)
-+{
-+struct voyagergx_state *s = &voyagergx_state;
-+int val;
-+
-+ memset(s, 0, sizeof(struct voyagergx_state));
-+
-+ init_MUTEX(&s->open_sem);
-+ s->codec.private_data = s;
-+ s->codec.id = 0;
-+ s->codec.codec_read = rdcodec;
-+ s->codec.codec_write = wrcodec;
-+ s->codec.codec_wait = NULL;
-+
-+ /* register devices */
-+
-+ if ((s->dev_audio = register_sound_dsp(&voyagergx_audio_fops, -1)) < 0)
-+ goto err_dev1;
-+ if ((s->codec.dev_mixer =
-+ register_sound_mixer(&voyagergx_mixer_fops, -1)) < 0)
-+ goto err_dev2;
-+
-+
-+ /* codec init */
-+ if (!ac97_probe_codec(&s->codec))
-+ goto err_dev3;
-+
-+ s->codec_base_caps = rdcodec(&s->codec, AC97_RESET);
-+ s->codec_ext_caps = rdcodec(&s->codec, AC97_EXTENDED_ID);
-+ info("AC'97 Base/Extended ID = %04x/%04x",
-+ s->codec_base_caps, s->codec_ext_caps);
-+
-+ s->codec.supported_mixers |= SOUND_MASK_ALTPCM;
-+ val = 0x4343;
-+ mixdev_ioctl(&s->codec, SOUND_MIXER_WRITE_ALTPCM,
-+ (unsigned long) &val);
-+
-+ if (!(s->codec_ext_caps & AC97_EXTID_VRA)) {
-+ // codec does not support VRA
-+ s->no_vra = 1;
-+ } else if (!vra) {
-+ // Boot option says disable VRA
-+ u16 ac97_extstat = rdcodec(&s->codec, AC97_EXTENDED_STATUS);
-+ wrcodec(&s->codec, AC97_EXTENDED_STATUS,
-+ ac97_extstat & ~AC97_EXTSTAT_VRA);
-+ s->no_vra = 1;
-+ }
-+ if (s->no_vra)
-+ info("no VRA, interpolating and decimating");
-+
-+ // set 48k for sampling rate
-+ setting.rate = 48000;
-+ wrcodec(&s->codec, 0x2a, 1);
-+ wrcodec(&s->codec, 0x2c, setting.rate);
-+ //volume set
-+ wrcodec(&s->codec, 2, 0);
-+ wrcodec(&s->codec, 24, 0);
-+ wrcodec(&s->codec, 22, 0);
-+
-+ return 0;
-+
-+ err_dev3:
-+ unregister_sound_mixer(s->codec.dev_mixer);
-+ err_dev2:
-+ unregister_sound_dsp(s->dev_audio);
-+ err_dev1:
-+ return -1;
-+}
-+
-+// remove procedure
-+static void __devinit voyagergx_remove(void)
-+{
-+ struct voyagergx_state *s = &voyagergx_state;
-+
-+ if (!s)
-+ return;
-+ unregister_sound_dsp(s->dev_audio);
-+ unregister_sound_mixer(s->codec.dev_mixer);
-+}
-+
-+// initilization
-+static int __init init_voyagergx(void)
-+{
-+unsigned long value;
-+int err;
-+
-+ info("sakuma@ace-jp.com, built " __TIME__ " on " __DATE__);
-+
-+ // set GPIO for ac97 & 8051
-+ value = *(volatile unsigned long *)(GPIO_MUX_LOW);
-+ value |= GPIO_MUX_LOW_AC97 | GPIO_MUX_LOW_8051;
-+ *(volatile unsigned long *)(GPIO_MUX_LOW) = value;
-+
-+ // stop DMA
-+ dma2_stop(sh7751_dmasound_play_irq);
-+
-+ //DMA interrupt request
-+ err = request_dma2(sh7751_dmasound_play_irq, "voyager DMA",do_irq);
-+ if (err) {
-+ return 0;
-+ }
-+
-+ // enalbe ac97 interrupt
-+ value = *(volatile unsigned long *)(VOYAGER_INT_MASK);
-+ value |= VOYAGER_INT_MASK_AC;
-+ *(volatile unsigned long *)(VOYAGER_INT_MASK) = value;
-+
-+ // power on ac97
-+ value = *(volatile unsigned long *)(POWER_MODE0_GATE);
-+ value |= POWER_MODE0_GATE_AC;
-+ *(volatile unsigned long *)(POWER_MODE0_GATE) = value;
-+
-+ // power on ac97
-+ value = *(volatile unsigned long *)(POWER_MODE1_GATE);
-+ value |= POWER_MODE1_GATE_AC;
-+ *(volatile unsigned long *)(POWER_MODE1_GATE) = value;
-+
-+ // enable ac97
-+ value = *(volatile unsigned long *)(AC97_CONTROL_STATUS);
-+ value |= 0x0000000F;
-+ *(volatile unsigned long *)(AC97_CONTROL_STATUS) = value;
-+ // wait for a while
-+ mdelay(2);
-+ // exit reset
-+ value &= 0xFFFFFFF9;
-+ *(volatile unsigned long *)(AC97_CONTROL_STATUS) = value;
-+
-+ // tag initialization(enable stot1-4)
-+ value = *(volatile unsigned long *)(AC97_TX_SLOT0);
-+ value |= 0x0000F800;
-+ *(volatile unsigned long *)(AC97_TX_SLOT0) = value;
-+
-+ // mono 16bit 48k
-+ setting.ch = 0;
-+ setting.fmt = 16;
-+ setting.rate = 48000;
-+
-+ // DMA initialization
-+ dma2_set_device(sh7751_dmasound_play_irq);
-+
-+ // 8051 initialization
-+ init_8051();
-+
-+ return voyagergx_probe();
-+}
-+
-+// unload
-+static void __exit cleanup_voyagergx(void)
-+{
-+ info("unloading");
-+ voyagergx_remove();
-+}
-+
-+module_init(init_voyagergx);
-+module_exit(cleanup_voyagergx);
-+MODULE_LICENSE("GPL");
-diff -ruN linux-2.6.17-vanilla/sound/oss/voyagergx_sound.h linux-2.6.17/sound/oss/voyagergx_sound.h
---- linux-2.6.17-vanilla/sound/oss/voyagergx_sound.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/sound/oss/voyagergx_sound.h 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1,4 @@
-+#define VOYAGER_8051_COMMAND (VOYAGER_BASE + 0x000c3ff0)
-+#define VOYAGER_8051_STATUS (VOYAGER_BASE + 0x000c3ff2)
-+#define VOYAGER_8051_DATA (VOYAGER_BASE + 0x000c3ff4)
-+#define VOYAGER_8051_FIFO (VOYAGER_BASE + 0x000c3600)
-diff -ruN linux-2.6.17-vanilla/sound/sh/CVS/Entries linux-2.6.17/sound/sh/CVS/Entries
---- linux-2.6.17-vanilla/sound/sh/CVS/Entries 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/sound/sh/CVS/Entries 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1,5 @@
-+/Kconfig/1.2/Mon Jun 5 15:29:08 2006//
-+/Makefile/1.1/Sun Jun 4 12:13:05 2006//
-+/aica.c/1.5/Wed Jul 12 16:52:06 2006//
-+/aica.h/1.4/Wed Jul 12 16:52:06 2006//
-+D
-diff -ruN linux-2.6.17-vanilla/sound/sh/CVS/Repository linux-2.6.17/sound/sh/CVS/Repository
---- linux-2.6.17-vanilla/sound/sh/CVS/Repository 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/sound/sh/CVS/Repository 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1 @@
-+linux/sound/sh
-diff -ruN linux-2.6.17-vanilla/sound/sh/CVS/Root linux-2.6.17/sound/sh/CVS/Root
---- linux-2.6.17-vanilla/sound/sh/CVS/Root 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/sound/sh/CVS/Root 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1 @@
-+:pserver:anonymous@linuxsh.cvs.sourceforge.net:/cvsroot/linuxsh
-diff -ruN linux-2.6.17-vanilla/sound/sh/Kconfig linux-2.6.17/sound/sh/Kconfig
---- linux-2.6.17-vanilla/sound/sh/Kconfig 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/sound/sh/Kconfig 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1,15 @@
-+menu "SuperH devices"
-+ depends on SND!=n && SUPERH
-+
-+config SND_AICA
-+ tristate "Yamaha AICA sound for SEGA Dreamcast"
-+ depends on SND
-+ depends on SH_DREAMCAST
-+ select SND_PCM
-+ help
-+ Say Y here to include support for sound on your SEGA Dreamcast
-+
-+ To compile this driver as a module, choose M here: the module
-+ will be called snd-aica.
-+
-+endmenu
-diff -ruN linux-2.6.17-vanilla/sound/sh/Makefile linux-2.6.17/sound/sh/Makefile
---- linux-2.6.17-vanilla/sound/sh/Makefile 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/sound/sh/Makefile 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1,4 @@
-+
-+snd-aica-objs := aica.o
-+obj-$(CONFIG_SND_AICA) += snd-aica.o
-+
-diff -ruN linux-2.6.17-vanilla/sound/sh/aica.c linux-2.6.17/sound/sh/aica.c
---- linux-2.6.17-vanilla/sound/sh/aica.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/sound/sh/aica.c 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1,711 @@
-+/*
-+* This code is licenced under
-+* the General Public Licence
-+* version 2
-+*
-+* Copyright Adrian McMenamin 2005, 2006
-+* <adrian@mcmen.demon.co.uk>
-+* See also http://newgolddream.dyndns.info/cgi-bin/cvsweb
-+*
-+*
-+* This program is free software; you can redistribute it and/or modify
-+* it under the terms of version 2 of the GNU General Public License as published by
-+* the Free Software Foundation.
-+*
-+* 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/init.h>
-+#include <linux/jiffies.h>
-+#include <linux/slab.h>
-+#include <linux/time.h>
-+#include <linux/wait.h>
-+#include <linux/moduleparam.h>
-+#include <linux/platform_device.h>
-+#include <linux/firmware.h>
-+#include <linux/timer.h>
-+#include <linux/delay.h>
-+#include <linux/workqueue.h>
-+#include <sound/driver.h>
-+#include <sound/core.h>
-+#include <sound/control.h>
-+#include <sound/pcm.h>
-+#include <sound/initval.h>
-+#include <sound/info.h>
-+#include <asm/io.h>
-+#include <asm/dma.h>
-+#include "aica.h"
-+
-+MODULE_AUTHOR("Adrian McMenamin <adrian@mcmen.demon.co.uk>");
-+MODULE_DESCRIPTION("Dreamcast AICA sound (pcm) driver");
-+MODULE_LICENSE("GPL");
-+MODULE_SUPPORTED_DEVICE("{{Yamaha/SEGA, AICA}}");
-+
-+/* Command values */
-+#define AICA_CMD_KICK 0x80000000
-+#define AICA_CMD_NONE 0
-+#define AICA_CMD_START 1
-+#define AICA_CMD_STOP 2
-+#define AICA_CMD_VOL 3
-+
-+/* Sound modes */
-+#define SM_8BIT 1
-+#define SM_16BIT 0
-+#define SM_ADPCM 2
-+
-+/* Buffer and period size */
-+#define AICA_BUFFER_SIZE 0x8000
-+#define AICA_PERIOD_SIZE 0x800
-+#define AICA_PERIOD_NUMBER 16
-+
-+#define AICA_CHANNEL0_OFFSET 0x11000
-+#define AICA_CHANNEL1_OFFSET 0x21000
-+#define CHANNEL_OFFSET 0x10000
-+
-+#define AICA_DMA_CHANNEL 0
-+#define AICA_DMA_MODE 5
-+
-+#define SND_AICA_DRIVER "AICA"
-+
-+struct aica_channel {
-+ uint32_t cmd; /* Command ID */
-+ uint32_t pos; /* Sample position */
-+ uint32_t length; /* Sample length */
-+ uint32_t freq; /* Frequency */
-+ uint32_t vol; /* Volume 0-255 */
-+ uint32_t pan; /* Pan 0-255 */
-+ uint32_t sfmt; /* Sound format */
-+ uint32_t flags; /* Bit flags */
-+};
-+
-+struct snd_card_aica {
-+ struct snd_card *card;
-+ struct aica_channel *channel;
-+ snd_pcm_substream_t *substream;
-+ int clicks;
-+ int current_period;
-+ struct timer_list timer;
-+ int master_volume;
-+ int dma_started;
-+};
-+
-+/* module parameters */
-+#define CARD_NAME "AICA"
-+static int index = -1;
-+static char *id;
-+static int enable = 1;
-+module_param(index, int, 0444);
-+MODULE_PARM_DESC(index, "Index value for " CARD_NAME " soundcard.");
-+module_param(id, charp, 0444);
-+MODULE_PARM_DESC(id, "ID string for " CARD_NAME " soundcard.");
-+module_param(enable, bool, 0644);
-+MODULE_PARM_DESC(enable, "Enable " CARD_NAME " soundcard.");
-+
-+/* Use workqueue */
-+static struct work_struct spu_dma_work;
-+static struct workqueue_struct *aica_queue;
-+
-+/* Simple platform device */
-+static struct platform_device *pd;
-+static struct resource aica_memory_space[2] = {
-+ {
-+ .name = "AICA ARM CONTROL",
-+ .start = ARM_RESET_REGISTER,
-+ .flags = IORESOURCE_MEM,
-+ .end = ARM_RESET_REGISTER + 3,
-+ },
-+ {
-+ .name = "AICA Sound RAM",
-+ .start = AICA_MEMORY_BASE,
-+ .flags = IORESOURCE_MEM,
-+ .end = AICA_MEMORY_BASE + AICA_MEMORY_SIZE - 1,
-+ },
-+};
-+
-+/* SPU specific functions */
-+/* spu_write_wait - wait for G2-SH FIFO to clear */
-+static inline void spu_write_wait(void)
-+{
-+ int time_count;
-+ time_count = 0;
-+ while (1) {
-+ if (!(readl(G2_FIFO) & 0x11))
-+ break;
-+ /* To ensure hardware failure doesn't wedge kernel */
-+ time_count++;
-+ if (time_count > 0x10000)
-+ break;
-+ }
-+}
-+
-+/* spu_memset - write to memory in SPU address space */
-+static void spu_memset(uint32_t toi, uint32_t what, int length)
-+{
-+ int i;
-+ snd_assert(length % 4 == 0, return);
-+ spu_write_wait();
-+ for (i = 0; i < length; i++) {
-+ writel(what, toi + AICA_MEMORY_BASE);
-+ toi++;
-+ if (i && !(i % 8))
-+ spu_write_wait();
-+ }
-+}
-+
-+/* spu_memload - write to SPU address space */
-+static void spu_memload(uint32_t toi, void __iomem * from, int length)
-+{
-+ uint32_t __iomem *froml = from;
-+ uint32_t __iomem *to = (uint32_t __iomem *) (AICA_MEMORY_BASE + toi);
-+ int i, val;
-+ if (length % 4)
-+ length = (length / 4) + 1;
-+ else
-+ length = length / 4;
-+ spu_write_wait();
-+ for (i = 0; i < length; i++) {
-+ val = *froml;
-+ writel(val, to);
-+ froml++;
-+ to++;
-+ if (i && !(i % 8))
-+ spu_write_wait();
-+ }
-+}
-+
-+/* spu_disable - set spu registers to stop sound output */
-+static void spu_disable(void)
-+{
-+ int i;
-+ uint32_t regval;
-+ spu_write_wait();
-+ regval = readl(ARM_RESET_REGISTER);
-+ regval |= 1;
-+ spu_write_wait();
-+ writel(regval, ARM_RESET_REGISTER);
-+ for (i = 0; i < 64; i++) {
-+ spu_write_wait();
-+ regval = readl(AICA_REGISTER_BASE + (i * 0x80));
-+ regval = (regval & ~0x4000) | 0x8000;
-+ spu_write_wait();
-+ writel(regval, AICA_REGISTER_BASE + (i * 0x80));
-+ }
-+}
-+
-+/* spu_enable - set spu registers to enable sound output */
-+static void spu_enable(void)
-+{
-+ uint32_t regval = readl(ARM_RESET_REGISTER);
-+ regval &= ~1;
-+ spu_write_wait();
-+ writel(regval, ARM_RESET_REGISTER);
-+}
-+
-+/*
-+ * Halt the sound processor, clear the memory,
-+ * load some default ARM7 code, and then restart ARM7
-+*/
-+static void spu_reset(void)
-+{
-+ spu_disable();
-+ spu_memset(0, 0, 0x200000 / 4);
-+ /* Put ARM7 in endless loop */
-+ ctrl_outl(0xea000002, AICA_MEMORY_BASE);
-+ spu_enable();
-+}
-+
-+/* aica_chn_start - write to spu to start playback */
-+static void aica_chn_start(void)
-+{
-+ spu_write_wait();
-+ writel(AICA_CMD_KICK | AICA_CMD_START, (uint32_t *) AICA_CONTROL_POINT);
-+}
-+
-+/* aica_chn_halt - write to spu to halt playback */
-+static void aica_chn_halt(void)
-+{
-+ spu_write_wait();
-+ writel(AICA_CMD_KICK | AICA_CMD_STOP, (uint32_t *) AICA_CONTROL_POINT);
-+}
-+
-+/* ALSA code below */
-+static struct snd_pcm_hardware snd_pcm_aica_playback_hw = {
-+ .info = (SNDRV_PCM_INFO_NONINTERLEAVED),
-+ .formats =
-+ (SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_S16_LE |
-+ SNDRV_PCM_FMTBIT_IMA_ADPCM),
-+ .rates = SNDRV_PCM_RATE_8000_48000,
-+ .rate_min = 8000,
-+ .rate_max = 48000,
-+ .channels_min = 1,
-+ .channels_max = 2,
-+ .buffer_bytes_max = AICA_BUFFER_SIZE,
-+ .period_bytes_min = AICA_PERIOD_SIZE,
-+ .period_bytes_max = AICA_PERIOD_SIZE,
-+ .periods_min = AICA_PERIOD_NUMBER,
-+ .periods_max = AICA_PERIOD_NUMBER,
-+};
-+
-+static int aica_dma_transfer(int channels, int buffer_size,
-+ struct snd_pcm_substream *substream)
-+{
-+ int q, err, period_offset;
-+ struct snd_card_aica *dreamcastcard;
-+ struct snd_pcm_runtime *runtime;
-+ err = 0;
-+ dreamcastcard = substream->pcm->private_data;
-+ period_offset = dreamcastcard->clicks;
-+ period_offset %= (AICA_PERIOD_NUMBER / channels);
-+ runtime = substream->runtime;
-+ for (q = 0; q < channels; q++) {
-+ err = dma_xfer(AICA_DMA_CHANNEL,
-+ (unsigned long)(runtime->dma_area +
-+ (AICA_BUFFER_SIZE * q) /
-+ channels +
-+ AICA_PERIOD_SIZE *
-+ period_offset),
-+ AICA_CHANNEL0_OFFSET + q * CHANNEL_OFFSET +
-+ AICA_PERIOD_SIZE * period_offset,
-+ buffer_size / channels, AICA_DMA_MODE);
-+ if (unlikely(err < 0))
-+ break;
-+ dma_wait_for_completion(AICA_DMA_CHANNEL);
-+ }
-+ return err;
-+}
-+
-+static void startup_aica(struct snd_card_aica *dreamcastcard)
-+{
-+ spu_memload(AICA_CHANNEL0_CONTROL_OFFSET,
-+ (uint8_t *) dreamcastcard->channel,
-+ sizeof(struct aica_channel));
-+ aica_chn_start();
-+}
-+
-+
-+static void execute_spu_dma(void *sstream)
-+{
-+ int buffer_size;
-+ struct snd_pcm_substream *substream;
-+ struct snd_pcm_runtime *runtime;
-+ struct snd_card_aica *dreamcastcard;
-+ substream = sstream;
-+ dreamcastcard = substream->pcm->private_data;
-+ runtime = substream->runtime;
-+ if (unlikely(dreamcastcard->dma_started == 0))
-+ {
-+ buffer_size = frames_to_bytes(runtime, runtime->buffer_size);
-+ if (runtime->channels > 1)
-+ dreamcastcard->channel->flags |= 0x01;
-+ aica_dma_transfer(runtime->channels, buffer_size, substream);
-+ startup_aica(dreamcastcard);
-+ dreamcastcard->clicks =
-+ buffer_size / (AICA_PERIOD_SIZE * runtime->channels);
-+ dreamcastcard->dma_started = 1;
-+ }
-+ else
-+ {
-+ aica_dma_transfer(runtime->channels,
-+ AICA_PERIOD_SIZE * runtime->channels, substream);
-+ snd_pcm_period_elapsed(dreamcastcard->substream);
-+ dreamcastcard->clicks++;
-+ dreamcastcard->clicks %= AICA_PERIOD_NUMBER;
-+ mod_timer(&dreamcastcard->timer, jiffies+1);
-+ }
-+
-+}
-+
-+static void aica_period_elapsed(unsigned long timer_var)
-+{
-+ /*timer fuction - so cannot sleep */
-+ int play_period;
-+ struct snd_pcm_runtime *runtime;
-+ struct snd_pcm_substream *substream;
-+ struct snd_card_aica *dreamcastcard;
-+ substream = (struct snd_pcm_substream *)timer_var;
-+ runtime = substream->runtime;
-+ dreamcastcard = substream->pcm->private_data;
-+ /* Have we played out an additional period? */
-+ play_period =
-+ frames_to_bytes(runtime,
-+ readl
-+ (AICA_CONTROL_CHANNEL_SAMPLE_NUMBER)) /
-+ AICA_PERIOD_SIZE;
-+ if (play_period == dreamcastcard->current_period) {
-+ /* reschedule the timer */
-+ mod_timer(&dreamcastcard->timer, jiffies+1);
-+ return;
-+ }
-+ if (runtime->channels > 1)
-+ dreamcastcard->current_period = play_period;
-+ queue_work(aica_queue, &spu_dma_work);
-+}
-+
-+static int snd_aicapcm_pcm_open(struct snd_pcm_substream
-+ *substream)
-+{
-+ struct snd_pcm_runtime *runtime;
-+ struct aica_channel *channel;
-+ struct snd_card_aica *dreamcastcard;
-+ if (!enable)
-+ return -ENOENT;
-+ dreamcastcard = substream->pcm->private_data;
-+ channel = kmalloc(sizeof(struct aica_channel), GFP_KERNEL);
-+ if (!channel)
-+ return -ENOMEM;
-+ /* set defaults for channel */
-+ channel->sfmt = SM_8BIT;
-+ channel->cmd = AICA_CMD_START;
-+ channel->vol = dreamcastcard->master_volume;
-+ channel->pan = 0x80;
-+ channel->pos = 0;
-+ channel->flags = 0; /* default to mono */
-+ dreamcastcard->channel = channel;
-+ runtime = substream->runtime;
-+ runtime->hw = snd_pcm_aica_playback_hw;
-+ spu_enable();
-+ dreamcastcard->clicks = 0;
-+ dreamcastcard->current_period = 0;
-+ dreamcastcard->dma_started = 0;
-+ return 0;
-+}
-+
-+static int snd_aicapcm_pcm_close(struct snd_pcm_substream
-+ *substream)
-+{
-+ struct snd_card_aica *dreamcastcard = substream->pcm->private_data;
-+ del_timer(&dreamcastcard->timer);
-+ kfree(dreamcastcard->channel);
-+ spu_disable();
-+ return 0;
-+}
-+
-+static int snd_aicapcm_pcm_hw_free(struct snd_pcm_substream
-+ *substream)
-+{
-+ /* Free the DMA buffer */
-+ return snd_pcm_lib_free_pages(substream);
-+}
-+
-+static int snd_aicapcm_pcm_hw_params(struct snd_pcm_substream
-+ *substream, struct snd_pcm_hw_params
-+ *hw_params)
-+{
-+ /* Allocate a DMA buffer using ALSA built-ins */
-+ return
-+ snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params));
-+}
-+
-+static int snd_aicapcm_pcm_prepare(struct snd_pcm_substream
-+ *substream)
-+{
-+ struct snd_card_aica *dreamcastcard = substream->pcm->private_data;
-+ if ((substream->runtime)->format == SNDRV_PCM_FORMAT_S16_LE)
-+ dreamcastcard->channel->sfmt = SM_16BIT;
-+ dreamcastcard->channel->freq = substream->runtime->rate;
-+ dreamcastcard->substream = substream;
-+ return 0;
-+}
-+
-+
-+
-+static void spu_begin_dma(struct snd_pcm_substream *substream)
-+{
-+ /* Must be atomic */
-+ struct snd_card_aica *dreamcastcard;
-+ struct snd_pcm_runtime *runtime;
-+ runtime = substream->runtime;
-+ dreamcastcard = substream->pcm->private_data;
-+ /* Use queue to do the heavy lifting */
-+ INIT_WORK(&spu_dma_work, execute_spu_dma, substream);
-+ queue_work(aica_queue, &spu_dma_work);
-+ init_timer(&(dreamcastcard->timer));
-+ dreamcastcard->timer.data = (unsigned long)substream;
-+ dreamcastcard->timer.function = aica_period_elapsed;
-+ dreamcastcard->timer.expires = jiffies + 4;
-+ add_timer(&(dreamcastcard->timer));
-+}
-+
-+static int snd_aicapcm_pcm_trigger(struct snd_pcm_substream
-+ *substream, int cmd)
-+{
-+ struct snd_card_aica *dreamcastcard;
-+ switch (cmd) {
-+ case SNDRV_PCM_TRIGGER_START:
-+ spu_begin_dma(substream);
-+ break;
-+ case SNDRV_PCM_TRIGGER_STOP:
-+ dreamcastcard = substream->pcm->private_data;
-+ if (dreamcastcard->timer.data)
-+ del_timer(&dreamcastcard->timer);
-+ aica_chn_halt();
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-+ return 0;
-+}
-+
-+static unsigned long snd_aicapcm_pcm_pointer(struct snd_pcm_substream
-+ *substream)
-+{
-+ return readl(AICA_CONTROL_CHANNEL_SAMPLE_NUMBER);
-+}
-+
-+static struct snd_pcm_ops snd_aicapcm_playback_ops = {
-+ .open = snd_aicapcm_pcm_open,
-+ .close = snd_aicapcm_pcm_close,
-+ .ioctl = snd_pcm_lib_ioctl,
-+ .hw_params = snd_aicapcm_pcm_hw_params,
-+ .hw_free = snd_aicapcm_pcm_hw_free,
-+ .prepare = snd_aicapcm_pcm_prepare,
-+ .trigger = snd_aicapcm_pcm_trigger,
-+ .pointer = snd_aicapcm_pcm_pointer,
-+};
-+
-+/* TO DO: set up to handle more than one pcm instance */
-+static int __init snd_aicapcmchip(struct snd_card_aica
-+ *dreamcastcard, int pcm_index)
-+{
-+ struct snd_pcm *pcm;
-+ int err;
-+ /* AICA has no capture ability */
-+ err =
-+ snd_pcm_new(dreamcastcard->card, "AICA PCM", pcm_index, 1, 0, &pcm);
-+ if (unlikely(err < 0))
-+ return err;
-+ pcm->private_data = dreamcastcard;
-+ strcpy(pcm->name, "AICA PCM");
-+ snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK,
-+ &snd_aicapcm_playback_ops);
-+ /* Allocate the DMA buffers */
-+ err =
-+ snd_pcm_lib_preallocate_pages_for_all(pcm,
-+ SNDRV_DMA_TYPE_CONTINUOUS,
-+ snd_dma_continuous_data
-+ (GFP_KERNEL),
-+ AICA_BUFFER_SIZE,
-+ AICA_BUFFER_SIZE);
-+ return err;
-+}
-+
-+/* Mixer controls */
-+static int aica_pcmswitch_info(struct snd_kcontrol *kcontrol,
-+ struct snd_ctl_elem_info *uinfo)
-+{
-+ uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
-+ uinfo->count = 1;
-+ uinfo->value.integer.min = 0;
-+ uinfo->value.integer.max = 1;
-+ return 0;
-+}
-+
-+static int aica_pcmswitch_get(struct snd_kcontrol *kcontrol,
-+ struct snd_ctl_elem_value *ucontrol)
-+{
-+ ucontrol->value.integer.value[0] = 1; /* TO DO: Fix me */
-+ return 0;
-+}
-+
-+static int aica_pcmswitch_put(struct snd_kcontrol *kcontrol,
-+ struct snd_ctl_elem_value *ucontrol)
-+{
-+ if (ucontrol->value.integer.value[0] == 1)
-+ return 0; /* TO DO: Fix me */
-+ else
-+ aica_chn_halt();
-+ return 0;
-+}
-+
-+static int aica_pcmvolume_info(struct snd_kcontrol *kcontrol,
-+ struct snd_ctl_elem_info *uinfo)
-+{
-+ uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
-+ uinfo->count = 1;
-+ uinfo->value.integer.min = 0;
-+ uinfo->value.integer.max = 0xFF;
-+ return 0;
-+}
-+
-+static int aica_pcmvolume_get(struct snd_kcontrol *kcontrol,
-+ struct snd_ctl_elem_value *ucontrol)
-+{
-+ struct snd_card_aica *dreamcastcard;
-+ dreamcastcard = kcontrol->private_data;
-+ if (unlikely(!dreamcastcard->channel))
-+ return -ETXTBSY; /* we've not yet been set up */
-+ ucontrol->value.integer.value[0] = dreamcastcard->channel->vol;
-+ return 0;
-+}
-+
-+static int aica_pcmvolume_put(struct snd_kcontrol *kcontrol,
-+ struct snd_ctl_elem_value *ucontrol)
-+{
-+ struct snd_card_aica *dreamcastcard;
-+ dreamcastcard = kcontrol->private_data;
-+ if (unlikely(!dreamcastcard->channel))
-+ return -ETXTBSY;
-+ if (unlikely(dreamcastcard->channel->vol ==
-+ ucontrol->value.integer.value[0]))
-+ return 0;
-+ dreamcastcard->channel->vol = ucontrol->value.integer.value[0];
-+ dreamcastcard->master_volume = ucontrol->value.integer.value[0];
-+ spu_memload(AICA_CHANNEL0_CONTROL_OFFSET,
-+ (uint8_t *) dreamcastcard->channel,
-+ sizeof(struct aica_channel));
-+
-+ return 1;
-+}
-+
-+static struct snd_kcontrol_new snd_aica_pcmswitch_control __devinitdata = {
-+ .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
-+ .name = "PCM Playback Switch",
-+ .index = 0,
-+ .info = aica_pcmswitch_info,
-+ .get = aica_pcmswitch_get,
-+ .put = aica_pcmswitch_put
-+};
-+
-+static struct snd_kcontrol_new snd_aica_pcmvolume_control __devinitdata = {
-+ .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
-+ .name = "PCM Playback Volume",
-+ .index = 0,
-+ .info = aica_pcmvolume_info,
-+ .get = aica_pcmvolume_get,
-+ .put = aica_pcmvolume_put
-+};
-+
-+static int load_aica_firmware(void)
-+{
-+ int err;
-+ const struct firmware *fw_entry;
-+ err = 0;
-+ spu_reset();
-+ err = request_firmware(&fw_entry, "aica_firmware.bin", &pd->dev);
-+ if (unlikely(err))
-+ return err;
-+ /* write firware into memory */
-+ spu_disable();
-+ spu_memload(0, fw_entry->data, fw_entry->size);
-+ spu_enable();
-+ release_firmware(fw_entry);
-+ return err;
-+}
-+
-+static int __devinit add_aicamixer_controls(struct snd_card_aica
-+ *dreamcastcard)
-+{
-+ int err;
-+ err = snd_ctl_add
-+ (dreamcastcard->card,
-+ snd_ctl_new1(&snd_aica_pcmvolume_control, dreamcastcard));
-+ if (unlikely(err < 0))
-+ return err;
-+ err = snd_ctl_add
-+ (dreamcastcard->card,
-+ snd_ctl_new1(&snd_aica_pcmswitch_control, dreamcastcard));
-+ if (unlikely(err < 0))
-+ return err;
-+ return 0;
-+}
-+
-+static int snd_aica_remove(struct platform_device *devptr)
-+{
-+ snd_card_free(platform_get_drvdata(devptr));
-+ platform_set_drvdata(devptr, NULL);
-+ return 0;
-+}
-+
-+static int __init snd_aica_probe(struct platform_device *devptr)
-+{
-+ int err;
-+ struct snd_card_aica *dreamcastcard;
-+
-+ dreamcastcard = kmalloc(sizeof(struct snd_card_aica), GFP_KERNEL);
-+ if (unlikely(!dreamcastcard))
-+ return -ENOMEM;
-+ dreamcastcard->card =
-+ snd_card_new(index, SND_AICA_DRIVER, THIS_MODULE, 0);
-+ if (unlikely(!dreamcastcard->card)) {
-+ kfree(dreamcastcard);
-+ return -ENODEV;
-+ }
-+ strcpy(dreamcastcard->card->driver, "snd_aica");
-+ strcpy(dreamcastcard->card->shortname, SND_AICA_DRIVER);
-+ strcpy(dreamcastcard->card->longname,
-+ "Yamaha AICA Super Intelligent Sound Processor for SEGA Dreamcast");
-+ /* Load the PCM 'chip' */
-+ err = snd_aicapcmchip(dreamcastcard, 0);
-+ if (unlikely(err < 0))
-+ goto freedreamcast;
-+ snd_card_set_dev(dreamcastcard->card, &devptr->dev);
-+ dreamcastcard->channel = NULL;
-+ /* Add basic controls */
-+ err = add_aicamixer_controls(dreamcastcard);
-+ if (unlikely(err < 0))
-+ goto freedreamcast;
-+ /* Register the card with ALSA subsystem */
-+ err = snd_card_register(dreamcastcard->card);
-+ if (unlikely(err < 0))
-+ goto freedreamcast;
-+ platform_set_drvdata(devptr, dreamcastcard->card);
-+ aica_queue = create_workqueue("aica");
-+ if (unlikely(!aica_queue))
-+ goto freedreamcast;
-+ snd_printk
-+ ("ALSA Driver for Yamaha AICA Super Intelligent Sound Processor\n");
-+ return 0;
-+ freedreamcast:
-+ snd_card_free(dreamcastcard->card);
-+ kfree(dreamcastcard);
-+ return err;
-+}
-+
-+static struct platform_driver snd_aica_driver = {
-+ .probe = snd_aica_probe,
-+ .remove = snd_aica_remove,
-+ .driver = {
-+ .name = SND_AICA_DRIVER
-+ },
-+};
-+
-+static int __init aica_init(void) {
-+ int err;
-+ err = platform_driver_register(&snd_aica_driver);
-+ if (unlikely(err < 0)) return err;
-+ pd = platform_device_register_simple(SND_AICA_DRIVER, -1,
-+ aica_memory_space, 2);
-+ if (unlikely(IS_ERR(pd))) {
-+ platform_driver_unregister(&snd_aica_driver);
-+ return PTR_ERR(pd);
-+ }
-+ err = load_aica_firmware();
-+ if (unlikely(err < 0)) {
-+ platform_driver_unregister(&snd_aica_driver);
-+ platform_device_unregister(pd);
-+ return err;
-+ }
-+ return 0;
-+}
-+
-+static void __exit aica_exit(void)
-+{
-+ /* Flush and destroy the aica kernel thread */
-+ destroy_workqueue(aica_queue);
-+ platform_device_unregister(pd);
-+ platform_driver_unregister(&snd_aica_driver);
-+ /* Kill any sound still playing and reset ARM7 to safe state */
-+ spu_reset();
-+}
-+
-+module_init(aica_init);
-+module_exit(aica_exit);
-+
-diff -ruN linux-2.6.17-vanilla/sound/sh/aica.h linux-2.6.17/sound/sh/aica.h
---- linux-2.6.17-vanilla/sound/sh/aica.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/sound/sh/aica.h 2006-07-12 16:54:27.000000000 +0000
-@@ -0,0 +1,44 @@
-+/*
-+* This code is licenced under
-+* the General Public Licence
-+* version 2
-+*
-+* Copyright Adrian McMenamin 2006
-+* <adrian@mcmen.demon.co.uk>
-+* See also http://newgolddream.dyndns.info/cgi-bin/cvsweb
-+*
-+*
-+* This program is free software; you can redistribute it and/or modify
-+* it under the terms of version 2 of the GNU General Public License as published by
-+* the Free Software Foundation.
-+*
-+* 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
-+*
-+*/
-+
-+#ifndef _ASM_DREAMCAST_AICA
-+#define _ASM_DREAMCAST_AICA
-+
-+#ifdef MACH_DREAMCAST
-+/* SPU memory and register constants etc */
-+#define G2_FIFO 0xa05f688c
-+#define AICA_MEMORY_BASE 0xA0800000
-+#define ARM_RESET_REGISTER 0xA0702C00
-+#define AICA_REGISTER_BASE 0xA0700000
-+
-+/* AICA channels stuff */
-+#define AICA_CONTROL_POINT 0xA0810000
-+#define AICA_CONTROL_CHANNEL_SAMPLE_NUMBER 0xA0810008
-+#define AICA_MEMORY_SIZE 0x200000
-+#define AICA_CHANNEL0_CONTROL_OFFSET 0x10004
-+#endif
-+
-+#endif
-+
---- linux-2.6.17-vanilla/scripts/mod/sumversion.c 2006-06-18 04:49:35.000000000 +0300
-+++ linux-2.6.17/scripts/mod/sumversion.c 2009-12-21 14:43:12.396274319 +0200
-@@ -36,6 +36,8 @@
- #define MD4_BLOCK_WORDS 16
- #define MD4_HASH_WORDS 4
-
-+#define PATH_MAX 4096 /* # chars in a path name including nul */
-+
- struct md4_ctx {
- uint32_t hash[MD4_HASH_WORDS];
- uint32_t block[MD4_BLOCK_WORDS];
diff --git a/recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/alsa_hp6xx_2.6.17.patch b/recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/alsa_hp6xx_2.6.17.patch
deleted file mode 100644
index bca97bc..0000000
--- a/recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/alsa_hp6xx_2.6.17.patch
+++ /dev/null
@@ -1,636 +0,0 @@
-diff -up linux-2.6.17/sound/sh/Kconfig linux-2.6.17.alsa/sound/sh/Kconfig
---- linux-2.6.17/sound/sh/Kconfig 2009-04-05 12:58:14.000000000 -0300
-+++ linux-2.6.17.alsa/sound/sh/Kconfig 2009-04-05 11:41:34.000000000 -0300
-@@ -12,4 +12,13 @@ config SND_AICA
- To compile this driver as a module, choose M here: the module
- will be called snd-aica.
-
-+config SND_SH_DAC_AUDIO
-+ tristate "SuperH DAC audio support"
-+ depends on SND
-+ depends on CPU_SH3
-+ select SND_PCM
-+ help
-+ Alsa Sound driver for the HP Jornada 680/690 and
-+ HP Palmtop 620lx/660lx.
-+
- endmenu
-diff -up linux-2.6.17/sound/sh/Makefile linux-2.6.17.alsa/sound/sh/Makefile
---- linux-2.6.17/sound/sh/Makefile 2009-04-05 12:58:14.000000000 -0300
-+++ linux-2.6.17.alsa/sound/sh/Makefile 2009-04-05 11:41:34.000000000 -0300
-@@ -1,4 +1,4 @@
-
- snd-aica-objs := aica.o
- obj-$(CONFIG_SND_AICA) += snd-aica.o
--
-+obj-$(CONFIG_SND_SH_DAC_AUDIO) += snd_sh_dac_audio.o
-diff -up linux-2.6.17/sound/sh/snd_sh_dac_audio.c linux-2.6.17.alsa/sound/sh/snd_sh_dac_audio.c
---- linux-2.6.17/sound/sh/snd_sh_dac_audio.c 2009-04-05 13:00:51.000000000 -0300
-+++ linux-2.6.17.alsa/sound/sh/snd_sh_dac_audio.c 2009-04-05 12:24:23.000000000 -0300
-@@ -0,0 +1,606 @@
-+/*
-+ * snd_sh_dac_audio.c - SuperH DAC audio driver for ALSA
-+ *
-+ * Copyright (c) 2007 by Rafael Ignacio Zurita <rizurita@yahoo.com>
-+ *
-+ *
-+ * Based completely on sh_dac_audio.c (Copyright (C) 2004,2005 by Andriy
-+ * Skulysh) and "Writing an ALSA driver" (Copyright (c) 2002-2005 by Takashi
-+ * Iwai <tiwai@suse.de>).
-+ *
-+ * 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/interrupt.h>
-+#include <linux/platform_device.h>
-+#include <sound/driver.h>
-+#include <sound/core.h>
-+#include <sound/pcm.h>
-+#include <sound/initval.h>
-+#include <asm/io.h>
-+#include <asm/clock.h>
-+#include <asm/cpu-sh3/dac.h>
-+#include <asm/hp6xx/hp6xx.h>
-+#include <asm/irq.h>
-+#include <asm/hd64461.h>
-+
-+MODULE_AUTHOR("Rafael Ignacio Zurita <rizurita@yahoo.com>");
-+MODULE_DESCRIPTION("SuperH DAC audio driver");
-+MODULE_LICENSE("GPL");
-+MODULE_SUPPORTED_DEVICE("{{SuperH DAC audio support}}");
-+
-+/* Module Parameters */
-+static int index = SNDRV_DEFAULT_IDX1;
-+static char *id = SNDRV_DEFAULT_STR1;
-+module_param(index, int, 0444);
-+MODULE_PARM_DESC(index, "Index value for SuperH DAC audio.");
-+module_param(id, charp, 0444);
-+MODULE_PARM_DESC(id, "ID string for SuperH DAC audio.");
-+
-+/* Simple platform device */
-+static struct platform_device *pd;
-+
-+#define SND_SH_DAC_DRIVER "SH_DAC"
-+#define BUFFER_SIZE 64000
-+#define SH_DAC_AUDIO_CHANNEL 1
-+
-+#define HD64461_TMU_TIMR_TMU0 0x01
-+#define HD64461_TMU_TIDR (CONFIG_HD64461_IOBASE + 0x600e)
-+#define HD64461_TMU_TIRR_TMU0 0x01
-+#define HD64461_TMU_TIRR (CONFIG_HD64461_IOBASE + 0x600c)
-+#define HD64461_TMU_TCVR0 (CONFIG_HD64461_IOBASE + 0x6002)
-+#define PKDR_SPEAKER 0x20
-+#define PKDR 0xa4000132
-+#define HD64461_GPADR_SPEAKER 0x01
-+#define HD64461_TMU_TCR0 (CONFIG_HD64461_IOBASE + 0x600a)
-+#define HD64461_TMU_TCR_STRT 0x01 /* Start Counting */
-+
-+
-+/* main struct */
-+struct snd_sh_dac {
-+ struct snd_card *card;
-+ struct snd_pcm_substream *substream;
-+ int irq;
-+
-+ int rate;
-+ int empty;
-+ char *data_buffer, *buffer_begin, *buffer_end;
-+ int processed; /* bytes proccesed, to compare with period_size */
-+ int buffer_size;
-+};
-+
-+
-+/*
-+ * Hardware functions (timer, DAC, speaker)
-+ * Note: The driver uses a hd64461 timer
-+ */
-+
-+static void dac_audio_start_timer(void)
-+{
-+ u16 tmu_tcr;
-+
-+ /*printk("dac_audio_start_timer\n"); */
-+ /* Start HD64461 timer 0 countdown */
-+ tmu_tcr = inb(HD64461_TMU_TCR0);
-+ tmu_tcr |= HD64461_TMU_TCR_STRT;
-+ outb(tmu_tcr, HD64461_TMU_TCR0);
-+}
-+
-+static void dac_audio_stop_timer(void)
-+{
-+ u16 tmu_tcr;
-+
-+ /*printk("dac_audio_stop_timer\n"); */
-+ /* Stop HD64461 timer 0 countdown */
-+ tmu_tcr = inb(HD64461_TMU_TCR0);
-+ tmu_tcr &= ~HD64461_TMU_TCR_STRT;
-+ outb(tmu_tcr, HD64461_TMU_TCR0);
-+}
-+
-+static void dac_audio_reset(struct snd_sh_dac *chip)
-+{
-+ /*printk("dac_audio_reset\n"); */
-+ dac_audio_stop_timer();
-+
-+ chip->buffer_begin = chip->buffer_end = chip->data_buffer;
-+ chip->processed = 0;
-+ chip->empty = 1;
-+}
-+
-+static void dac_audio_sync(struct snd_sh_dac *chip)
-+{
-+ /*printk("dac_audio_sync\n"); */
-+ while (!chip->empty)
-+ schedule();
-+}
-+
-+static void dac_audio_start(void)
-+{
-+ u16 v;
-+ u8 v8;
-+
-+ /*printk("dac_audio_start\n"); */
-+ if (mach_is_hp6xx()) {
-+ /* HP Jornada 680/690 speaker on */
-+ v = inw(HD64461_GPADR);
-+ v &= ~HD64461_GPADR_SPEAKER;
-+ outw(v, HD64461_GPADR);
-+
-+ /* HP Palmtop 620lx/660lx speaker on */
-+ v8 = inb(PKDR);
-+ v8 &= ~PKDR_SPEAKER;
-+ outb(v8, PKDR);
-+ }
-+
-+ sh_dac_enable(SH_DAC_AUDIO_CHANNEL);
-+}
-+
-+static void dac_audio_stop(void)
-+{
-+ u16 v;
-+ u8 v8;
-+
-+ /*printk("dac_audio_stop\n"); */
-+ dac_audio_stop_timer();
-+
-+ if (mach_is_hp6xx()) {
-+ /* HP Jornada 680/690 speaker off */
-+ v = inw(HD64461_GPADR);
-+ v |= HD64461_GPADR_SPEAKER;
-+ outw(v, HD64461_GPADR);
-+
-+ /* HP Palmtop 620lx/660lx speaker off */
-+ v8 = inb(PKDR);
-+ v8 |= PKDR_SPEAKER;
-+ outb(v8, PKDR);
-+ }
-+
-+ sh_dac_output(0, SH_DAC_AUDIO_CHANNEL);
-+ sh_dac_disable(SH_DAC_AUDIO_CHANNEL);
-+}
-+
-+static void dac_audio_set_rate(int rate)
-+{
-+ unsigned long interval;
-+ struct clk *clk;
-+
-+ /*printk("dac_audio_set_rate\n"); */
-+ /*
-+ * Constant is autoloaded once zero is reached
-+ * We need 8K interrupts per second
-+ */
-+ /* clk = clk_get(NULL, "module_clk"); */
-+ clk = clk_get("module_clk");
-+ interval = (clk_get_rate(clk) / 16) / rate;
-+ ctrl_outl(interval, HD64461_TMU_TCVR0);
-+}
-+
-+/* end of the hardware functions */
-+
-+
-+/* PCM INTERFACE */
-+
-+static struct snd_pcm_hardware snd_sh_dac_pcm_hw = {
-+ .info = (SNDRV_PCM_INFO_MMAP |
-+ SNDRV_PCM_INFO_MMAP_VALID |
-+ SNDRV_PCM_INFO_INTERLEAVED |
-+ SNDRV_PCM_INFO_HALF_DUPLEX),
-+ .formats = SNDRV_PCM_FMTBIT_U8,
-+ .rates = SNDRV_PCM_RATE_8000,
-+ .rate_min = 8000,
-+ .rate_max = 8000,
-+ .channels_min = 1,
-+ .channels_max = 1,
-+ .buffer_bytes_max = (48*1024),
-+ .period_bytes_min = 1,
-+ .period_bytes_max = (48*1024),
-+ .periods_min = 1,
-+ .periods_max = 1024,
-+};
-+
-+static int snd_sh_dac_pcm_open(struct snd_pcm_substream *substream)
-+{
-+ struct snd_sh_dac *chip = snd_pcm_substream_chip(substream);
-+ struct snd_pcm_runtime *runtime = substream->runtime;
-+
-+ /*printk("snd_sh_dac_pcm_open\n"); */
-+ runtime->hw = snd_sh_dac_pcm_hw;
-+
-+ chip->substream = substream;
-+ chip->buffer_begin = chip->buffer_end = chip->data_buffer;
-+ chip->processed = 0;
-+ chip->empty = 1;
-+
-+ dac_audio_start();
-+
-+ return 0;
-+}
-+
-+static int snd_sh_dac_pcm_close(struct snd_pcm_substream *substream)
-+{
-+ struct snd_sh_dac *chip = snd_pcm_substream_chip(substream);
-+
-+ /*printk("snd_sh_dac_pcm_close\n"); */
-+ dac_audio_sync(chip);
-+ dac_audio_stop();
-+
-+ return 0;
-+}
-+
-+static int snd_sh_dac_pcm_hw_params(struct snd_pcm_substream *substream,
-+ struct snd_pcm_hw_params *hw_params)
-+{
-+ /*printk("snd_sh_dac_pcm_hw_params\n"); */
-+ return
-+ snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params));
-+}
-+
-+static int snd_sh_dac_pcm_hw_free(struct snd_pcm_substream *substream)
-+{
-+ /*printk("snd_sh_dac_pcm_hw_free\n"); */
-+ /* Free the buffer */
-+ return snd_pcm_lib_free_pages(substream);
-+}
-+
-+static int snd_sh_dac_pcm_prepare(struct snd_pcm_substream *substream)
-+{
-+ struct snd_sh_dac *chip = snd_pcm_substream_chip(substream);
-+ struct snd_pcm_runtime *runtime = chip->substream->runtime;
-+ /*printk("snd_sh_dac_pcm_prepare\n"); */
-+ chip->buffer_size = runtime->buffer_size;
-+ memset(chip->data_buffer, 0, BUFFER_SIZE);
-+ return 0;
-+}
-+
-+static int snd_sh_dac_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
-+{
-+ struct snd_sh_dac *chip = snd_pcm_substream_chip(substream);
-+ /*printk("snd_sh_dac_pcm_trigger\n"); */
-+ switch (cmd) {
-+ case SNDRV_PCM_TRIGGER_START:
-+ dac_audio_start_timer();
-+ break;
-+ case SNDRV_PCM_TRIGGER_STOP:
-+ chip->buffer_begin = chip->buffer_end = chip->data_buffer;
-+ chip->processed = 0;
-+ chip->empty = 1;
-+ dac_audio_stop_timer();
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-+ return 0;
-+}
-+
-+static int snd_sh_dac_pcm_copy(struct snd_pcm_substream *substream, int channel,
-+ snd_pcm_uframes_t pos, void __user *src, snd_pcm_uframes_t count)
-+{
-+ /* channel is not used (interleaved data) */
-+ struct snd_sh_dac *chip = snd_pcm_substream_chip(substream);
-+ struct snd_pcm_runtime *runtime = substream->runtime;
-+ ssize_t b_count = frames_to_bytes(runtime , count);
-+ ssize_t b_pos = frames_to_bytes(runtime , pos);
-+
-+ /*printk("snd_sh_dac_pcm_copy\n"); */
-+ if (count < 0)
-+ return -EINVAL;
-+
-+ if (!count) {
-+ dac_audio_sync(chip);
-+ return 0;
-+ }
-+
-+ memcpy_toio(chip->data_buffer + b_pos, src, b_count);
-+ chip->buffer_end = chip->data_buffer + b_pos + b_count;
-+
-+ if (chip->empty) {
-+ chip->empty = 0;
-+ dac_audio_start_timer();
-+ }
-+
-+ return 0;
-+}
-+
-+static int snd_sh_dac_pcm_silence(struct snd_pcm_substream *substream,
-+ int channel, snd_pcm_uframes_t pos,
-+ snd_pcm_uframes_t count)
-+{
-+ /* channel is not used (interleaved data) */
-+ struct snd_sh_dac *chip = snd_pcm_substream_chip(substream);
-+ struct snd_pcm_runtime *runtime = substream->runtime;
-+ ssize_t b_count = frames_to_bytes(runtime , count);
-+ ssize_t b_pos = frames_to_bytes(runtime , pos);
-+
-+ /*printk("snd_sh_dac_pcm_silence\n"); */
-+ if (count < 0)
-+ return -EINVAL;
-+
-+ if (!count) {
-+ dac_audio_sync(chip);
-+ return 0;
-+ }
-+
-+ memset_io(chip->data_buffer + b_pos, 0, b_count);
-+ chip->buffer_end = chip->data_buffer + b_pos + b_count;
-+
-+ if (chip->empty) {
-+ chip->empty = 0;
-+ dac_audio_start_timer();
-+ }
-+ return 0;
-+}
-+
-+static snd_pcm_uframes_t snd_sh_dac_pcm_pointer(struct snd_pcm_substream *substream)
-+{
-+ struct snd_sh_dac *chip = snd_pcm_substream_chip(substream);
-+ int pointer = chip->buffer_begin - chip->data_buffer;
-+
-+ /*printk("snd_pcm_uframes_t \n"); */
-+ return pointer;
-+}
-+
-+/* pcm ops */
-+static struct snd_pcm_ops snd_sh_dac_pcm_ops = {
-+ .open = snd_sh_dac_pcm_open,
-+ .close = snd_sh_dac_pcm_close,
-+ .ioctl = snd_pcm_lib_ioctl,
-+ .hw_params = snd_sh_dac_pcm_hw_params,
-+ .hw_free = snd_sh_dac_pcm_hw_free,
-+ .prepare = snd_sh_dac_pcm_prepare,
-+ .trigger = snd_sh_dac_pcm_trigger,
-+ .pointer = snd_sh_dac_pcm_pointer,
-+ .copy = snd_sh_dac_pcm_copy,
-+ .silence = snd_sh_dac_pcm_silence,
-+ .mmap = snd_pcm_lib_mmap_iomem,
-+};
-+
-+static int __devinit snd_sh_dac_pcm(struct snd_sh_dac *chip, int device)
-+{
-+ int err;
-+ struct snd_pcm *pcm;
-+ /*printk("snd_sh_dac_pcm\n"); */
-+ /* device should be always 0 for us */
-+ err = snd_pcm_new(chip->card, "SH_DAC PCM", device, 1, 0, &pcm);
-+ if (err < 0)
-+ return err;
-+ pcm->private_data = chip;
-+ strcpy(pcm->name, "SH_DAC PCM");
-+ snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_sh_dac_pcm_ops);
-+
-+ /* buffer size=48K */
-+ snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_CONTINUOUS,
-+ snd_dma_continuous_data(GFP_KERNEL),
-+ 48 * 1024,
-+ 48 * 1024);
-+ return 0;
-+}
-+/* END OF PCM INTERFACE */
-+
-+
-+/* driver .remove -- destructor */
-+static int snd_sh_dac_remove(struct platform_device *devptr)
-+{
-+ /*printk("snd_sh_dac_remove\n"); */
-+ snd_card_free(platform_get_drvdata(devptr));
-+ platform_set_drvdata(devptr, NULL);
-+ return 0;
-+}
-+
-+/* free -- it has been defined by create */
-+static int snd_sh_dac_free(struct snd_sh_dac *chip)
-+{
-+ /*printk("snd_sh_dac_free\n"); */
-+ /* release the irq */
-+ free_irq(chip->irq, (void *)chip);
-+
-+ /* release the data */
-+ kfree(chip->data_buffer);
-+ kfree(chip);
-+
-+ return 0;
-+}
-+
-+static int snd_sh_dac_dev_free(struct snd_device *device)
-+{
-+ struct snd_sh_dac *chip = device->device_data;
-+ /*printk("snd_sh_dac_dev_free\n"); */
-+ return snd_sh_dac_free(chip);
-+}
-+
-+static irqreturn_t snd_sh_dac_interrupt(int irq, void *pdev, struct pt_regs *regs)
-+{
-+ u16 timer_status;
-+ struct snd_sh_dac *chip = (struct snd_sh_dac *) pdev;
-+ struct snd_pcm_runtime *runtime = chip->substream->runtime;
-+ ssize_t b_ps = frames_to_bytes(runtime, runtime->period_size);
-+
-+/* printk("snd_sh_dac_interrupt\n"); */
-+ /* HD64461_TMU0 mask interrupt */
-+ timer_status = inw(HD64461_TMU_TIRR);
-+ timer_status &= ~HD64461_TMU_TIRR_TMU0;
-+ outw(timer_status, HD64461_TMU_TIRR);
-+
-+ if (!chip->empty) {
-+ sh_dac_output(*chip->buffer_begin, SH_DAC_AUDIO_CHANNEL);
-+ chip->buffer_begin++;
-+ chip->processed++;
-+
-+ if (chip->processed >= b_ps) {
-+ chip->processed -= b_ps;
-+ snd_pcm_period_elapsed(chip->substream);
-+ }
-+
-+ if (chip->buffer_begin == (chip->data_buffer +
-+ chip->buffer_size - 1))
-+ chip->buffer_begin = chip->data_buffer;
-+
-+ if (chip->buffer_begin == chip->buffer_end) {
-+ chip->empty = 1;
-+ dac_audio_stop_timer();
-+ }
-+
-+ }
-+ return IRQ_HANDLED;
-+}
-+
-+/* create -- chip-specific constructor for the cards components */
-+static int __devinit snd_sh_dac_create(struct snd_card *card,
-+ struct platform_device *devptr,
-+ struct snd_sh_dac **rchip)
-+{
-+ struct snd_sh_dac *chip;
-+ int err;
-+ u16 timer_status;
-+ u16 hd64461_stbcr;
-+
-+ static struct snd_device_ops ops = {
-+ .dev_free = snd_sh_dac_dev_free,
-+ };
-+
-+ /*printk("snd_sh_dac_create\n"); */
-+ *rchip = NULL;
-+
-+ chip = kzalloc(sizeof(*chip), GFP_KERNEL);
-+ if (chip == NULL)
-+ return -ENOMEM;
-+
-+ /* initialize the stuff */
-+ chip->card = card;
-+ chip->irq = -1;
-+
-+ /* Hardware Initialization */
-+ /* get standby status of all devices */
-+ hd64461_stbcr = inw(HD64461_STBCR);
-+ /* remove standby mode for timer 0 */
-+ hd64461_stbcr &= ~HD64461_STBCR_STM0ST;
-+ outw(hd64461_stbcr, HD64461_STBCR);
-+
-+ dac_audio_reset(chip);
-+ chip->rate = 8000;
-+ dac_audio_set_rate(chip->rate);
-+
-+ /* set bit interrupt service request */
-+ timer_status = inw(HD64461_TMU_TIRR);
-+ timer_status &= ~HD64461_TMU_TIRR_TMU0;
-+ outw(timer_status, HD64461_TMU_TIRR);
-+
-+ /* set interrupt service request mask bit */
-+ timer_status = inw(HD64461_TMU_TIDR);
-+ timer_status &= ~HD64461_TMU_TIMR_TMU0;
-+ outw(timer_status, HD64461_TMU_TIDR);
-+
-+ chip->data_buffer = kmalloc(BUFFER_SIZE, GFP_KERNEL);
-+ if (chip->data_buffer == NULL)
-+ return -ENOMEM;
-+
-+ /* if (request_irq(HD64461_IRQ_TMU0, snd_sh_dac_interrupt, IRQF_DISABLED, */
-+ if (request_irq(HD64461_IRQ_TMU0, snd_sh_dac_interrupt, SA_INTERRUPT,
-+ "snd_sh_dac", (void *)chip)) {
-+ snd_sh_dac_free(chip);
-+ printk(KERN_ERR "cannot grab irq\n");
-+ return -EBUSY;
-+ }
-+ chip->irq = HD64461_IRQ_TMU0;
-+
-+ if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) {
-+ snd_sh_dac_free(chip);
-+ return err;
-+ }
-+ *rchip = chip;
-+
-+ return 0;
-+}
-+
-+/* driver .probe -- constructor */
-+static int __devinit snd_sh_dac_probe(struct platform_device *devptr)
-+{
-+ struct snd_sh_dac *chip;
-+ struct snd_card *card;
-+ int err;
-+
-+ card = snd_card_new(index, id, THIS_MODULE, 0);
-+ if (card == NULL)
-+ return -ENOMEM;
-+
-+ err = snd_sh_dac_create(card, devptr, &chip);
-+ if (err < 0)
-+ goto probe_error;
-+
-+ err = snd_sh_dac_pcm(chip, 0);
-+ if (err < 0)
-+ goto probe_error;
-+
-+ strcpy(card->driver, "snd_sh_dac");
-+ strcpy(card->shortname, "SuperH DAC audio driver");
-+ /* sprintk(card->longname, "%s at HD64461 irq %i", card->shortname, */
-+ printk("%s %s at HD64461 irq %i", card->longname, card->shortname,
-+ chip->irq);
-+
-+ err = snd_card_register(card);
-+ if (err < 0)
-+ goto probe_error;
-+
-+ snd_printk("ALSA driver for SuperH DAC audio");
-+
-+ platform_set_drvdata(devptr, card);
-+ return 0;
-+
-+probe_error:
-+ snd_card_free(card);
-+ return err;
-+}
-+
-+/*
-+ * "driver" definition
-+ */
-+static struct platform_driver driver = {
-+ .probe = snd_sh_dac_probe,
-+ .remove = snd_sh_dac_remove,
-+ .driver = {
-+ .name = SND_SH_DAC_DRIVER,
-+ },
-+};
-+
-+/* clean up the module */
-+static void __exit sh_dac_exit(void)
-+{
-+ /*printk("sh_dac_exit\n"); */
-+ platform_device_unregister(pd);
-+ platform_driver_unregister(&driver);
-+
-+ free_irq(HD64461_IRQ_TMU0, 0);
-+}
-+
-+
-+static int __init sh_dac_init(void)
-+{
-+ int err;
-+ /*printk("sh_dac_init\n"); */
-+ err = platform_driver_register(&driver);
-+ if (unlikely(err < 0))
-+ return err;
-+
-+ pd = platform_device_register_simple(SND_SH_DAC_DRIVER, -1, NULL, 0);
-+ if (unlikely(IS_ERR(pd))) {
-+ platform_driver_unregister(&driver);
-+ return PTR_ERR(pd);
-+ }
-+
-+ return 0;
-+}
-+
-+module_init(sh_dac_init);
-+module_exit(sh_dac_exit);
diff --git a/recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/defconfig_jlime b/recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/defconfig_jlime
deleted file mode 100644
index 0db41d8..0000000
--- a/recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/defconfig_jlime
+++ /dev/null
@@ -1,1187 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.17
-# Sat Oct 21 22:36:16 2006
-#
-CONFIG_SUPERH=y
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-CONFIG_GENERIC_FIND_NEXT_BIT=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-
-#
-# Code maturity level options
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-
-#
-# General setup
-#
-CONFIG_LOCALVERSION=""
-CONFIG_LOCALVERSION_AUTO=y
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_BSD_PROCESS_ACCT=y
-# CONFIG_BSD_PROCESS_ACCT_V3 is not set
-CONFIG_SYSCTL=y
-# CONFIG_AUDIT is not set
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_RELAY=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_UID16=y
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-CONFIG_EMBEDDED=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_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_SHMEM=y
-CONFIG_SLAB=y
-# CONFIG_TINY_SHMEM is not set
-CONFIG_BASE_SMALL=0
-# CONFIG_SLOB is not set
-
-#
-# Loadable module support
-#
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_KMOD=y
-
-#
-# Block layer
-#
-# CONFIG_LBD is not set
-# CONFIG_BLK_DEV_IO_TRACE is not set
-# CONFIG_LSF is not set
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
-CONFIG_DEFAULT_AS=y
-# CONFIG_DEFAULT_DEADLINE is not set
-# CONFIG_DEFAULT_CFQ is not set
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="anticipatory"
-
-#
-# System type
-#
-# CONFIG_SH_SOLUTION_ENGINE is not set
-# CONFIG_SH_7751_SOLUTION_ENGINE is not set
-# CONFIG_SH_7300_SOLUTION_ENGINE is not set
-# CONFIG_SH_73180_SOLUTION_ENGINE is not set
-# CONFIG_SH_7751_SYSTEMH is not set
-# CONFIG_SH_STB1_HARP is not set
-# CONFIG_SH_STB1_OVERDRIVE is not set
-CONFIG_SH_HP6XX=y
-# CONFIG_SH_CQREEK is not set
-# CONFIG_SH_DMIDA is not set
-# CONFIG_SH_EC3104 is not set
-# CONFIG_SH_SATURN is not set
-# CONFIG_SH_DREAMCAST is not set
-# CONFIG_SH_CAT68701 is not set
-# CONFIG_SH_BIGSUR is not set
-# CONFIG_SH_SH2000 is not set
-# CONFIG_SH_ADX is not set
-# CONFIG_SH_MPC1211 is not set
-# CONFIG_SH_SH03 is not set
-# CONFIG_SH_SECUREEDGE5410 is not set
-# CONFIG_SH_HS7751RVOIP is not set
-# CONFIG_SH_RTS7751R2D is not set
-# CONFIG_SH_R7780RP is not set
-# CONFIG_SH_EDOSK7705 is not set
-# CONFIG_SH_SH4202_MICRODEV is not set
-# CONFIG_SH_LANDISK is not set
-# CONFIG_SH_TITAN is not set
-# CONFIG_SH_UNKNOWN is not set
-
-#
-# Processor selection
-#
-CONFIG_CPU_SH3=y
-
-#
-# SH-2 Processor Support
-#
-# CONFIG_CPU_SUBTYPE_SH7604 is not set
-
-#
-# SH-3 Processor Support
-#
-# CONFIG_CPU_SUBTYPE_SH7300 is not set
-# CONFIG_CPU_SUBTYPE_SH7705 is not set
-# CONFIG_CPU_SUBTYPE_SH7707 is not set
-# CONFIG_CPU_SUBTYPE_SH7708 is not set
-CONFIG_CPU_SUBTYPE_SH7709=y
-
-#
-# SH-4 Processor Support
-#
-# CONFIG_CPU_SUBTYPE_SH7750 is not set
-# CONFIG_CPU_SUBTYPE_SH7091 is not set
-# CONFIG_CPU_SUBTYPE_SH7750R is not set
-# CONFIG_CPU_SUBTYPE_SH7750S is not set
-# CONFIG_CPU_SUBTYPE_SH7751 is not set
-# CONFIG_CPU_SUBTYPE_SH7751R is not set
-# CONFIG_CPU_SUBTYPE_SH7760 is not set
-# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-
-#
-# ST40 Processor Support
-#
-# CONFIG_CPU_SUBTYPE_ST40STB1 is not set
-# CONFIG_CPU_SUBTYPE_ST40GX1 is not set
-
-#
-# SH-4A Processor Support
-#
-# CONFIG_CPU_SUBTYPE_SH73180 is not set
-# CONFIG_CPU_SUBTYPE_SH7770 is not set
-# CONFIG_CPU_SUBTYPE_SH7780 is not set
-
-#
-# Memory management options
-#
-CONFIG_MMU=y
-CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
-# CONFIG_DISCONTIGMEM_MANUAL is not set
-# CONFIG_SPARSEMEM_MANUAL is not set
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-# CONFIG_SPARSEMEM_STATIC is not set
-CONFIG_SPLIT_PTLOCK_CPUS=4
-
-#
-# Cache configuration
-#
-# CONFIG_SH_DIRECT_MAPPED is not set
-# CONFIG_SH_WRITETHROUGH is not set
-# CONFIG_SH_OCRAM is not set
-CONFIG_MEMORY_START=0x0d000000
-CONFIG_MEMORY_SIZE=0x00400000
-
-#
-# Processor features
-#
-CONFIG_CPU_LITTLE_ENDIAN=y
-CONFIG_SH_RTC=y
-CONFIG_SH_FPU_EMU=y
-# CONFIG_SH_DSP is not set
-CONFIG_SH_ADC=y
-CONFIG_CPU_HAS_INTEVT=y
-CONFIG_CPU_HAS_PINT_IRQ=y
-CONFIG_CPU_HAS_SR_RB=y
-
-#
-# Timer support
-#
-CONFIG_SH_TMU=y
-CONFIG_SH_PCLK_FREQ=22110000
-
-#
-# CPU Frequency scaling
-#
-# CONFIG_CPU_FREQ is not set
-
-#
-# DMA support
-#
-CONFIG_SH_DMA=y
-CONFIG_NR_ONCHIP_DMA_CHANNELS=4
-# CONFIG_NR_DMA_CHANNELS_BOOL is not set
-
-#
-# Companion Chips
-#
-CONFIG_HD6446X_SERIES=y
-CONFIG_HD64461=y
-# CONFIG_HD64465 is not set
-CONFIG_HD64461_IRQ=36
-CONFIG_HD64461_IOBASE=0xb0000000
-CONFIG_HD64461_ENABLER=y
-
-#
-# Kernel features
-#
-# CONFIG_KEXEC is not set
-# CONFIG_PREEMPT is not set
-# CONFIG_SMP is not set
-
-#
-# Boot options
-#
-CONFIG_ZERO_PAGE_OFFSET=0x00001000
-CONFIG_BOOT_LINK_OFFSET=0x00800000
-# CONFIG_UBC_WAKEUP is not set
-# CONFIG_CMDLINE_BOOL is not set
-
-#
-# Bus options
-#
-CONFIG_ISA=y
-# CONFIG_PCI is not set
-
-#
-# PCCARD (PCMCIA/CardBus) support
-#
-CONFIG_PCCARD=y
-# CONFIG_PCMCIA_DEBUG is not set
-CONFIG_PCMCIA=y
-CONFIG_PCMCIA_LOAD_CIS=y
-# CONFIG_PCMCIA_IOCTL is not set
-
-#
-# PC-card bridges
-#
-# CONFIG_I82365 is not set
-# CONFIG_TCIC is not set
-CONFIG_HD64461_PCMCIA=y
-CONFIG_HD64461_PCMCIA_SOCKETS=1
-CONFIG_PCMCIA_PROBE=y
-
-#
-# PCI Hotplug Support
-#
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_FLAT is not set
-# CONFIG_BINFMT_MISC is not set
-
-#
-# Power management options (EXPERIMENTAL)
-#
-CONFIG_PM=y
-CONFIG_PM_LEGACY=y
-# CONFIG_PM_DEBUG is not set
-CONFIG_APM=y
-
-#
-# Networking
-#
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_NETDEBUG=y
-CONFIG_PACKET=y
-CONFIG_PACKET_MMAP=y
-CONFIG_UNIX=y
-CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
-CONFIG_NET_KEY=y
-CONFIG_INET=y
-# CONFIG_IP_MULTICAST is not set
-# CONFIG_IP_ADVANCED_ROUTER is not set
-CONFIG_IP_FIB_HASH=y
-# CONFIG_IP_PNP is not set
-# CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE is not set
-# CONFIG_ARPD is not set
-# CONFIG_SYN_COOKIES is not set
-# CONFIG_INET_AH is not set
-# CONFIG_INET_ESP is not set
-# CONFIG_INET_IPCOMP is not set
-# CONFIG_INET_XFRM_TUNNEL is not set
-# CONFIG_INET_TUNNEL is not set
-CONFIG_INET_DIAG=y
-CONFIG_INET_TCP_DIAG=y
-# CONFIG_TCP_CONG_ADVANCED is not set
-CONFIG_TCP_CONG_BIC=y
-# CONFIG_IPV6 is not set
-# CONFIG_INET6_XFRM_TUNNEL is not set
-# CONFIG_INET6_TUNNEL is not set
-# CONFIG_NETFILTER is not set
-
-#
-# DCCP Configuration (EXPERIMENTAL)
-#
-# CONFIG_IP_DCCP is not set
-
-#
-# SCTP Configuration (EXPERIMENTAL)
-#
-# CONFIG_IP_SCTP is not set
-
-#
-# TIPC Configuration (EXPERIMENTAL)
-#
-# CONFIG_TIPC is not set
-# CONFIG_ATM is not set
-# CONFIG_BRIDGE is not set
-# CONFIG_VLAN_8021Q is not set
-# CONFIG_DECNET is not set
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_NET_DIVERT 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
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_HAMRADIO is not set
-CONFIG_IRDA=m
-
-#
-# IrDA protocols
-#
-CONFIG_IRLAN=m
-CONFIG_IRNET=m
-# CONFIG_IRCOMM is not set
-# CONFIG_IRDA_ULTRA is not set
-
-#
-# IrDA options
-#
-# CONFIG_IRDA_CACHE_LAST_LSAP is not set
-# CONFIG_IRDA_FAST_RR is not set
-# CONFIG_IRDA_DEBUG is not set
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-# CONFIG_IRTTY_SIR is not set
-
-#
-# Dongle support
-#
-
-#
-# Old SIR device drivers
-#
-# CONFIG_IRPORT_SIR is not set
-
-#
-# Old Serial dongle support
-#
-
-#
-# FIR device drivers
-#
-CONFIG_BT=m
-# CONFIG_BT_L2CAP is not set
-# CONFIG_BT_SCO is not set
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_HCIUART=m
-# CONFIG_BT_HCIUART_H4 is not set
-# CONFIG_BT_HCIUART_BCSP is not set
-CONFIG_BT_HCIDTL1=m
-CONFIG_BT_HCIBT3C=m
-CONFIG_BT_HCIBLUECARD=m
-CONFIG_BT_HCIBTUART=m
-# CONFIG_BT_HCIVHCI is not set
-CONFIG_IEEE80211=y
-# CONFIG_IEEE80211_DEBUG is not set
-CONFIG_IEEE80211_CRYPT_WEP=m
-CONFIG_IEEE80211_CRYPT_CCMP=m
-CONFIG_IEEE80211_CRYPT_TKIP=m
-CONFIG_IEEE80211_SOFTMAC=m
-# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
-CONFIG_WIRELESS_EXT=y
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-CONFIG_FW_LOADER=y
-
-#
-# Connector - unified userspace <-> kernelspace linker
-#
-# CONFIG_CONNECTOR is not set
-
-#
-# Memory Technology Devices (MTD)
-#
-# CONFIG_MTD is not set
-
-#
-# Parallel port support
-#
-# CONFIG_PARPORT is not set
-
-#
-# Plug and Play support
-#
-CONFIG_PNP=y
-# CONFIG_PNP_DEBUG is not set
-
-#
-# Protocols
-#
-# CONFIG_ISAPNP is not set
-
-#
-# Block devices
-#
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=y
-# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
-# CONFIG_CDROM_PKTCDVD is not set
-# CONFIG_ATA_OVER_ETH is not set
-
-#
-# ATA/ATAPI/MFM/RLL support
-#
-CONFIG_IDE=y
-CONFIG_IDE_MAX_HWIFS=4
-CONFIG_BLK_DEV_IDE=y
-
-#
-# Please see Documentation/ide.txt for help/info on IDE drives
-#
-# CONFIG_BLK_DEV_IDE_SATA is not set
-CONFIG_BLK_DEV_IDEDISK=y
-# CONFIG_IDEDISK_MULTI_MODE is not set
-CONFIG_BLK_DEV_IDECS=y
-# CONFIG_BLK_DEV_IDECD is not set
-# CONFIG_BLK_DEV_IDETAPE is not set
-# CONFIG_BLK_DEV_IDEFLOPPY is not set
-# CONFIG_IDE_TASK_IOCTL is not set
-
-#
-# IDE chipset support/bugfixes
-#
-CONFIG_IDE_GENERIC=y
-# CONFIG_BLK_DEV_IDEPNP is not set
-CONFIG_IDE_SH=y
-# CONFIG_IDE_ARM is not set
-# CONFIG_IDE_CHIPSETS is not set
-# CONFIG_BLK_DEV_IDEDMA is not set
-# CONFIG_IDEDMA_AUTO is not set
-# CONFIG_BLK_DEV_HD is not set
-
-#
-# SCSI device support
-#
-# CONFIG_RAID_ATTRS is not set
-# CONFIG_SCSI is not set
-
-#
-# Old CD-ROM drivers (not SCSI, not IDE)
-#
-# CONFIG_CD_NO_IDESCSI is not set
-
-#
-# Multi-device support (RAID and LVM)
-#
-# CONFIG_MD is not set
-
-#
-# Fusion MPT device support
-#
-# CONFIG_FUSION is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-
-#
-# I2O device support
-#
-
-#
-# Network device support
-#
-CONFIG_NETDEVICES=y
-CONFIG_DUMMY=y
-# CONFIG_BONDING is not set
-# CONFIG_EQUALIZER is not set
-# CONFIG_TUN is not set
-# CONFIG_NET_SB1000 is not set
-
-#
-# ARCnet devices
-#
-# CONFIG_ARCNET is not set
-
-#
-# PHY device support
-#
-# CONFIG_PHYLIB is not set
-
-#
-# Ethernet (10 or 100Mbit)
-#
-CONFIG_NET_ETHERNET=y
-CONFIG_MII=y
-# CONFIG_STNIC is not set
-# CONFIG_NET_VENDOR_3COM is not set
-# CONFIG_NET_VENDOR_SMC is not set
-# CONFIG_SMC91X is not set
-# CONFIG_NET_VENDOR_RACAL is not set
-# CONFIG_AT1700 is not set
-# CONFIG_DEPCA is not set
-# CONFIG_HP100 is not set
-# CONFIG_NET_ISA is not set
-# CONFIG_NE2000 is not set
-# CONFIG_NET_PCI is not set
-
-#
-# Ethernet (1000 Mbit)
-#
-
-#
-# Ethernet (10000 Mbit)
-#
-
-#
-# Token Ring devices
-#
-# CONFIG_TR is not set
-
-#
-# Wireless LAN (non-hamradio)
-#
-CONFIG_NET_RADIO=y
-CONFIG_NET_WIRELESS_RTNETLINK=y
-
-#
-# Obsolete Wireless cards support (pre-802.11)
-#
-# CONFIG_STRIP is not set
-CONFIG_ARLAN=m
-CONFIG_WAVELAN=m
-CONFIG_PCMCIA_WAVELAN=m
-CONFIG_PCMCIA_NETWAVE=m
-
-#
-# Wireless 802.11 Frequency Hopping cards support
-#
-CONFIG_PCMCIA_RAYCS=m
-
-#
-# Wireless 802.11b ISA/PCI cards support
-#
-CONFIG_HERMES=m
-CONFIG_ATMEL=m
-
-#
-# Wireless 802.11b Pcmcia/Cardbus cards support
-#
-CONFIG_PCMCIA_HERMES=m
-CONFIG_PCMCIA_SPECTRUM=m
-CONFIG_AIRO_CS=m
-CONFIG_PCMCIA_ATMEL=m
-CONFIG_PCMCIA_WL3501=m
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-CONFIG_HOSTAP_FIRMWARE_NVRAM=y
-CONFIG_HOSTAP_CS=m
-CONFIG_NET_WIRELESS=y
-
-#
-# PCMCIA network device support
-#
-CONFIG_NET_PCMCIA=y
-CONFIG_PCMCIA_3C589=m
-CONFIG_PCMCIA_3C574=m
-CONFIG_PCMCIA_FMVJ18X=m
-CONFIG_PCMCIA_PCNET=m
-CONFIG_PCMCIA_NMCLAN=m
-CONFIG_PCMCIA_SMC91C92=m
-CONFIG_PCMCIA_XIRC2PS=m
-CONFIG_PCMCIA_AXNET=m
-
-#
-# Wan interfaces
-#
-# CONFIG_WAN is not set
-CONFIG_PPP=m
-# CONFIG_PPP_MULTILINK is not set
-# CONFIG_PPP_FILTER is not set
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_MPPE=m
-CONFIG_PPPOE=m
-CONFIG_SLIP=m
-# CONFIG_SLIP_COMPRESSED is not set
-CONFIG_SLIP_SMART=y
-# CONFIG_SLIP_MODE_SLIP6 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
-
-#
-# ISDN subsystem
-#
-# CONFIG_ISDN is not set
-
-#
-# Telephony Support
-#
-# CONFIG_PHONE is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=640
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240
-# CONFIG_INPUT_JOYDEV is not set
-CONFIG_INPUT_TSDEV=y
-CONFIG_INPUT_TSDEV_SCREEN_X=640
-CONFIG_INPUT_TSDEV_SCREEN_Y=240
-CONFIG_INPUT_EVDEV=y
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-# CONFIG_KEYBOARD_ATKBD is not set
-# CONFIG_KEYBOARD_SUNKBD is not set
-# CONFIG_KEYBOARD_LKKBD is not set
-# CONFIG_KEYBOARD_XTKBD is not set
-# CONFIG_KEYBOARD_NEWTON is not set
-# CONFIG_KEYBOARD_HP620 is not set
-CONFIG_KEYBOARD_HP680=y
-# CONFIG_INPUT_MOUSE is not set
-# CONFIG_INPUT_JOYSTICK is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-# CONFIG_TOUCHSCREEN_GUNZE is not set
-# CONFIG_TOUCHSCREEN_ELO is not set
-# CONFIG_TOUCHSCREEN_MTOUCH is not set
-# CONFIG_TOUCHSCREEN_MK712 is not set
-CONFIG_TOUCHSCREEN_HP600=y
-# CONFIG_INPUT_MISC is not set
-
-#
-# Hardware I/O ports
-#
-# CONFIG_SERIO is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-CONFIG_VT=y
-CONFIG_VT_CONSOLE=y
-CONFIG_HW_CONSOLE=y
-# CONFIG_SERIAL_NONSTANDARD is not set
-
-#
-# Serial drivers
-#
-# CONFIG_SERIAL_8250 is not set
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_SH_SCI=y
-CONFIG_SERIAL_SH_SCI_CONSOLE=y
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-CONFIG_UNIX98_PTYS=y
-CONFIG_LEGACY_PTYS=y
-CONFIG_LEGACY_PTY_COUNT=5
-
-#
-# IPMI
-#
-# CONFIG_IPMI_HANDLER is not set
-
-#
-# Watchdog Cards
-#
-# CONFIG_WATCHDOG is not set
-# CONFIG_RTC is not set
-# CONFIG_GEN_RTC is not set
-# CONFIG_DTLK is not set
-# CONFIG_R3964 is not set
-
-#
-# Ftape, the floppy tape device driver
-#
-
-#
-# PCMCIA character devices
-#
-# CONFIG_SYNCLINK_CS is not set
-# CONFIG_CARDMAN_4000 is not set
-# CONFIG_CARDMAN_4040 is not set
-# CONFIG_RAW_DRIVER is not set
-
-#
-# TPM devices
-#
-# CONFIG_TCG_TPM is not set
-# CONFIG_TELCLOCK is not set
-
-#
-# I2C support
-#
-# CONFIG_I2C is not set
-
-#
-# SPI support
-#
-# CONFIG_SPI is not set
-# CONFIG_SPI_MASTER is not set
-
-#
-# Dallas's 1-wire bus
-#
-# CONFIG_W1 is not set
-
-#
-# Hardware Monitoring support
-#
-CONFIG_HWMON=y
-# CONFIG_HWMON_VID is not set
-# CONFIG_SENSORS_F71805F is not set
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Misc devices
-#
-
-#
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-CONFIG_VIDEO_V4L2=y
-
-#
-# Digital Video Broadcasting Devices
-#
-# CONFIG_DVB is not set
-
-#
-# Graphics support
-#
-CONFIG_FB=y
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-# CONFIG_FB_MACMODES is not set
-CONFIG_FB_FIRMWARE_EDID=y
-# CONFIG_FB_MODE_HELPERS is not set
-# CONFIG_FB_TILEBLITTING is not set
-# CONFIG_FB_EPSON1355 is not set
-# CONFIG_FB_S1D13XXX is not set
-CONFIG_FB_HIT=y
-# CONFIG_FB_VIRTUAL is not set
-
-#
-# Console display driver support
-#
-# CONFIG_MDA_CONSOLE is not set
-CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
-CONFIG_FONTS=y
-# CONFIG_FONT_8x8 is not set
-# CONFIG_FONT_8x16 is not set
-# CONFIG_FONT_6x11 is not set
-# CONFIG_FONT_7x14 is not set
-CONFIG_FONT_PEARL_8x8=y
-# CONFIG_FONT_ACORN_8x8 is not set
-# CONFIG_FONT_MINI_4x6 is not set
-# CONFIG_FONT_SUN8x16 is not set
-# CONFIG_FONT_SUN12x22 is not set
-# CONFIG_FONT_10x18 is not set
-
-#
-# Logo configuration
-#
-# CONFIG_LOGO is not set
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_DEVICE=y
-CONFIG_LCD_CLASS_DEVICE=y
-CONFIG_LCD_DEVICE=y
-CONFIG_BACKLIGHT_HP680=y
-
-#
-# Sound
-#
-CONFIG_SOUND=y
-
-#
-# Advanced Linux Sound Architecture
-#
-CONFIG_SND=y
-CONFIG_SND_TIMER=y
-CONFIG_SND_PCM=y
-# CONFIG_SND_SEQUENCER is not set
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=y
-CONFIG_SND_PCM_OSS=y
-CONFIG_SND_PCM_OSS_PLUGINS=y
-# CONFIG_SND_DYNAMIC_MINORS is not set
-CONFIG_SND_SUPPORT_OLD_API=y
-CONFIG_SND_VERBOSE_PROCFS=y
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-
-#
-# Generic devices
-#
-# CONFIG_SND_DUMMY is not set
-# CONFIG_SND_MTPAV is not set
-# CONFIG_SND_SERIAL_U16550 is not set
-# CONFIG_SND_MPU401 is not set
-
-#
-# SuperH devices
-#
-CONFIG_SND_SH_DAC_AUDIO=y
-
-#
-# PCMCIA devices
-#
-# CONFIG_SND_VXPOCKET is not set
-# CONFIG_SND_PDAUDIOCF is not set
-
-#
-# Open Sound System
-#
-# CONFIG_SOUND_PRIME is not set
-
-#
-# USB support
-#
-# CONFIG_USB_ARCH_HAS_HCD is not set
-# CONFIG_USB_ARCH_HAS_OHCI is not set
-# CONFIG_USB_ARCH_HAS_EHCI is not set
-
-#
-# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
-#
-
-#
-# USB Gadget Support
-#
-# CONFIG_USB_GADGET is not set
-
-#
-# MMC/SD Card support
-#
-# CONFIG_MMC is not set
-
-#
-# LED devices
-#
-# CONFIG_NEW_LEDS is not set
-
-#
-# LED drivers
-#
-
-#
-# LED Triggers
-#
-
-#
-# InfiniBand support
-#
-
-#
-# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
-#
-
-#
-# Real Time Clock
-#
-CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_HCTOSYS=y
-CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-
-#
-# RTC drivers
-#
-# CONFIG_RTC_DRV_M48T86 is not set
-CONFIG_RTC_DRV_SH=y
-# CONFIG_RTC_DRV_TEST is not set
-
-#
-# File systems
-#
-CONFIG_EXT2_FS=y
-# CONFIG_EXT2_FS_XATTR is not set
-# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=y
-CONFIG_EXT3_FS_XATTR=y
-# CONFIG_EXT3_FS_POSIX_ACL is not set
-# CONFIG_EXT3_FS_SECURITY is not set
-CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
-CONFIG_FS_MBCACHE=y
-# CONFIG_REISERFS_FS is not set
-# CONFIG_JFS_FS is not set
-# CONFIG_FS_POSIX_ACL is not set
-# CONFIG_XFS_FS is not set
-# CONFIG_OCFS2_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_ROMFS_FS is not set
-CONFIG_INOTIFY=y
-# CONFIG_QUOTA is not set
-CONFIG_DNOTIFY=y
-CONFIG_AUTOFS_FS=y
-# CONFIG_AUTOFS4_FS is not set
-# CONFIG_FUSE_FS is not set
-
-#
-# CD-ROM/DVD Filesystems
-#
-# CONFIG_ISO9660_FS is not set
-# CONFIG_UDF_FS is not set
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=y
-# CONFIG_MSDOS_FS is not set
-CONFIG_VFAT_FS=y
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-# CONFIG_NTFS_FS is not set
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_KCORE=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-# CONFIG_HUGETLBFS is not set
-# CONFIG_HUGETLB_PAGE is not set
-CONFIG_RAMFS=y
-# CONFIG_CONFIGFS_FS is not set
-
-#
-# Miscellaneous filesystems
-#
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EFS_FS is not set
-# CONFIG_CRAMFS is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-
-#
-# Network File Systems
-#
-CONFIG_NFS_FS=m
-# CONFIG_NFS_V3 is not set
-# CONFIG_NFS_V4 is not set
-# CONFIG_NFS_DIRECTIO is not set
-CONFIG_NFSD=m
-# CONFIG_NFSD_V3 is not set
-CONFIG_NFSD_TCP=y
-CONFIG_LOCKD=m
-CONFIG_EXPORTFS=m
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=m
-# CONFIG_RPCSEC_GSS_KRB5 is not set
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
-CONFIG_SMB_FS=m
-# CONFIG_SMB_NLS_DEFAULT is not set
-# CONFIG_CIFS is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_CODA_FS is not set
-# CONFIG_AFS_FS is not set
-# CONFIG_9P_FS is not set
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-# CONFIG_MAC_PARTITION is not set
-CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
-# CONFIG_MINIX_SUBPARTITION is not set
-# CONFIG_SOLARIS_X86_PARTITION is not set
-# CONFIG_UNIXWARE_DISKLABEL is not set
-# CONFIG_LDM_PARTITION is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-# CONFIG_KARMA_PARTITION is not set
-# CONFIG_EFI_PARTITION is not set
-
-#
-# Native Language Support
-#
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="iso8859-1"
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_UTF8=m
-
-#
-# Profiling support
-#
-# CONFIG_PROFILING is not set
-
-#
-# Kernel hacking
-#
-# CONFIG_PRINTK_TIME is not set
-# CONFIG_MAGIC_SYSRQ is not set
-# CONFIG_DEBUG_KERNEL is not set
-CONFIG_LOG_BUF_SHIFT=14
-# CONFIG_DEBUG_FS is not set
-# CONFIG_SH_STANDARD_BIOS is not set
-# CONFIG_KGDB is not set
-
-#
-# Security options
-#
-# CONFIG_KEYS is not set
-# CONFIG_SECURITY is not set
-
-#
-# Cryptographic options
-#
-CONFIG_CRYPTO=y
-# CONFIG_CRYPTO_HMAC is not set
-# CONFIG_CRYPTO_NULL is not set
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=m
-CONFIG_CRYPTO_SHA1=m
-# CONFIG_CRYPTO_SHA256 is not set
-# CONFIG_CRYPTO_SHA512 is not set
-# CONFIG_CRYPTO_WP512 is not set
-# CONFIG_CRYPTO_TGR192 is not set
-# CONFIG_CRYPTO_DES is not set
-# CONFIG_CRYPTO_BLOWFISH is not set
-# CONFIG_CRYPTO_TWOFISH is not set
-# CONFIG_CRYPTO_SERPENT is not set
-CONFIG_CRYPTO_AES=m
-# CONFIG_CRYPTO_CAST5 is not set
-# CONFIG_CRYPTO_CAST6 is not set
-# CONFIG_CRYPTO_TEA is not set
-CONFIG_CRYPTO_ARC4=y
-# CONFIG_CRYPTO_KHAZAD is not set
-# CONFIG_CRYPTO_ANUBIS is not set
-# CONFIG_CRYPTO_DEFLATE is not set
-CONFIG_CRYPTO_MICHAEL_MIC=m
-# CONFIG_CRYPTO_CRC32C is not set
-# CONFIG_CRYPTO_TEST is not set
-
-#
-# Hardware crypto devices
-#
-
-#
-# Library routines
-#
-CONFIG_CRC_CCITT=m
-CONFIG_CRC16=m
-CONFIG_CRC32=y
-CONFIG_LIBCRC32C=m
-CONFIG_ZLIB_INFLATE=m
-CONFIG_ZLIB_DEFLATE=m
diff --git a/recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/io.h-fix.patch b/recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/io.h-fix.patch
deleted file mode 100644
index 0ae39a8..0000000
--- a/recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/io.h-fix.patch
+++ /dev/null
@@ -1,31 +0,0 @@
---- linux-2.6.17/include/asm-sh/io.h_orig 2006-09-17 22:52:10.000000000 +0000
-+++ linux-2.6.17/include/asm-sh/io.h 2006-09-17 22:54:01.000000000 +0000
-@@ -138,17 +138,17 @@
- #define readl_relaxed(a) readl(a)
-
- /* Simple MMIO */
--#define ioread8(a) readb(a)
--#define ioread16(a) readw(a)
--#define ioread16be(a) be16_to_cpu(__raw_readw((a)))
--#define ioread32(a) readl(a)
--#define ioread32be(a) be32_to_cpu(__raw_readl((a)))
--
--#define iowrite8(v,a) writeb((v),(a))
--#define iowrite16(v,a) writew((v),(a))
--#define iowrite16be(v,a) __raw_writew(cpu_to_be16((v)),(a))
--#define iowrite32(v,a) writel((v),(a))
--#define iowrite32be(v,a) __raw_writel(cpu_to_be32((v)),(a))
-+#define ioread8(a) inb(a)
-+#define ioread16(a) inw(a)
-+#define ioread16be(a) be16_to_cpu(inw((a)))
-+#define ioread32(a) inl(a)
-+#define ioread32be(a) be32_to_cpu(inl((a)))
-+
-+#define iowrite8(v,a) outb((v),(a))
-+#define iowrite16(v,a) outw((v),(a))
-+#define iowrite16be(v,a) outw(cpu_to_be16((v)),(a))
-+#define iowrite32(v,a) outl((v),(a))
-+#define iowrite32be(v,a) outl(cpu_to_be32((v)),(a))
-
- #define ioread8_rep(a,d,c) insb((a),(d),(c))
- #define ioread16_rep(a,d,c) insw((a),(d),(c))
diff --git a/recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/keyboard-fix-deadkeys.patch b/recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/keyboard-fix-deadkeys.patch
deleted file mode 100644
index 7392355..0000000
--- a/recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/keyboard-fix-deadkeys.patch
+++ /dev/null
@@ -1,204 +0,0 @@
---- linux-2.6.17-linuxsh/drivers/input/keyboard/hp680_keyb.c 2006-12-06 21:56:06.000000000 +0000
-+++ linux-2.6.17/drivers/input/keyboard/hp680_keyb.c 2007-01-10 21:00:34.000000000 +0000
-@@ -5,6 +5,7 @@
- *
- * Copyright (C) 2005 Andriy Skulysh
- * Copyright (C) 2006 Paul Mundt
-+ * Copyright (C) 2007 Kristoffer Ericson
- *
- * Splited from drivers/input/keyboard/hp600_keyb.c
- *
-@@ -20,6 +21,10 @@
- #include <asm/io.h>
- #include "scan_keyb.h"
-
-+#define PCCR 0xa4000104
-+#define PDCR 0xa4000106
-+#define PECR 0xa4000108
-+#define PFCR 0xa400010a
- #define PCDR 0xa4000124
- #define PDDR 0xa4000126
- #define PEDR 0xa4000128
-@@ -30,6 +35,24 @@
- #define PKDR 0xa4000132
- #define PLDR 0xa4000134
-
-+/***************************************************************
-+HP Jornada 680(SWEDISH version) keyboard
-+[!] indicates Special Characters
-+
-+_______________________________________________________________________
-+| ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 POWER|
-+| 1 2 3 4 5 6 7 8 9 0 + ` BKPSPACE|
-+|* Q W E R T Y U I O P ! ^ ENTER|
-+| TAB A S D F G H J K L ! ! ' ENTER|
-+| SHIFT Z X C V B N M , . - UP SHIFT|
-+| CTRL WIN ALT ? =======SPACE======== ALTG DEL LEF DO RI ]
-+-----------------------------------------------------------------------
-+
-+
-+****************************************************************/
-+
-+
-+
- /****************************************************************
- HP Jornada 690(Japanese version) keyboard scan matrix
-
-@@ -71,31 +94,56 @@
- ****************************************************************/
-
- static const unsigned char hp680_japanese_table[] = {
-- /* PTD1 */
-+/*
-+ /* PTD1 */
-+ /* ? ? ? ? Esc ? ? ? */
- 0x3a, 0x70, 0x29, 0x00, 0x01, 0x00, 0x00, 0x00,
-+ /* F1 F2 F3 F8 F7 F6 F4 F5 */
- 0x3b, 0x3c, 0x3d, 0x42, 0x41, 0x40, 0x3e, 0x3f,
-- /* PTD5 */
-+
-+ /* PTD5 */
-+ /* / : Enter ? Z ? ? ? */
- 0x35, 0x28, 0x1c, 0x00, 0x2c, 0x00, 0x00, 0x00,
-+ /* X C V . , M B N */
- 0x2d, 0x2e, 0x2f, 0x34, 0x33, 0x32, 0x30, 0x31,
-- /* PTD7 */
-- 0x50, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-- 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x38, 0x7b,
-- /* PTE0 */
-+
-+ /* PTD7 */
-+ /* Down Right ? ? ? ? ? ? */
-+ 0x50, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ /* ? ? ? Left ? ? Alt ? */
-+ 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x38, 0x7b,
-+
-+ /* PTE0 */
-+ /* ? ? ? ? Win ? ? ? */
- 0x00, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00,
-+ /* Ctrl ? Space Del _ ? ? ? */
- 0x1d, 0x00, 0x39, 0x53, 0x73, 0xf9, 0x00, 0x00,
-- /* PTE1 */
-+
-+ /* PTE1 */
-+ /* ; [ ] ? A ? ? ? */
- 0x27, 0x1b, 0x2b, 0x00, 0x1e, 0x00, 0x00, 0x00,
-+ /* S D F L K J G H */
- 0x1f, 0x20, 0x21, 0x26, 0x25, 0x24, 0x22, 0x23,
-- /* PTE3 */
-- 0x48, 0x7d, 0x36, 0x00, 0x0f, 0x00, 0x00, 0x00,
-- 0x00, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-- /* PTE6 */
-+
-+ /* PTE3 */
-+ /* Up \ ShiftR ? Q ? ? ? */
-+ 0x48, 0x7d, 0x36, 0x00, 0x0f, 0x00, 0x00, 0x00,
-+ /* ? ShiftL ? ? ? ? ? ? */
-+ 0x00, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-+
-+ /* PTE6 */
-+ /* P @ BS ? Q ? ? ? */
- 0x19, 0x1a, 0x0e, 0x00, 0x10, 0x00, 0x00, 0x00,
-+ /* W E R O I U T Y */
- 0x11, 0x12, 0x13, 0x18, 0x17, 0x16, 0x14, 0x15,
-- /* PTE7 */
-- 0x0b, 0x0c, 0x0d, 0x00, 0x02, 0x00, 0x00, 0x00,
-- 0x03, 0x04, 0x05, 0x0a, 0x09, 0x08, 0x06, 0x07,
-- /* **** */
-+
-+ /* PTE7 */
-+ /* 0 + = ? 1 ? ? ? */
-+ 0x0b, 0x0c, 0x0d, 0x00, 0x02, 0x00, 0x00, 0x00,
-+ /* 2 3 4 9 8 7 5 6 */
-+ 0x03, 0x04, 0x05, 0x0a, 0x09, 0x08, 0x06, 0x07,
-+
-+ /* **** */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- };
-@@ -103,37 +151,72 @@
- static int hp680_japanese_scan_kbd(unsigned char *s)
- {
- int i;
-- unsigned char matrix_switch[] = {
-- 0xfd, 0xff, /* PTD1 */
-- 0xdf, 0xff, /* PTD5 */
-- 0x7f, 0xff, /* PTD7 */
-- 0xff, 0xfe, /* PTE0 */
-- 0xff, 0xfd, /* PTE1 */
-- 0xff, 0xf7, /* PTE3 */
-- 0xff, 0xbf, /* PTE6 */
-- 0xff, 0x7f, /* PTE7 */
-+ unsigned short ec_static,dc_static; /* = UINT16_t */
-+ unsigned char matrix_switch[] = {
-+ 0xfd, 0xff, /* PTD1 PD(1) */
-+ 0xdf, 0xff, /* PTD5 PD(5) */
-+ 0x7f, 0xff, /* PTD7 PD(7) */
-+ 0xff, 0xfe, /* PTE0 PE(0) */
-+ 0xff, 0xfd, /* PTE1 PE(1) */
-+ 0xff, 0xf7, /* PTE3 PE(3) */
-+ 0xff, 0xbf, /* PTE6 PE(6) */
-+ 0xff, 0x7f, /* PTE7 PE(7) */
- }, *t=matrix_switch;
-+ /* PD(x) :
-+ 1. 0xcc0c & (1~(1 << (2*(x)+1)))))
-+ 2. (0xf0cf & 0xfffff) */
-+ /* PE(x) :
-+ 1. 0xcc0c & 0xffff
-+ 2. 0xf0cf & (1~(1 << (2*(x)+1))))) */
-+ unsigned short matrix_PDE[] = {
-+ 0xcc04, 0xf0cf, /* PD(1) */
-+ 0xc40c, 0xf0cf, /* PD(5) */
-+ 0x4c0c, 0xf0cf, /* PD(7) */
-+ 0xcc0c, 0xf0cd, /* PE(0) */
-+ 0xcc0c, 0xf0c7, /* PE(1) */
-+ 0xcc0c, 0xf04f, /* PE(3) */
-+ 0xcc0c, 0xd0cf, /* PE(6) */
-+ 0xcc0c, 0x70cf, /* PE(7) */
-+ }
-+ , *y=matrix_PDE;
-+ /* Save these control reg bits */
-+ dc_static = (ctrl_inw(PDCR) & (~0xcc0c));
-+ ec_static = (ctrl_inw(PECR) & (~0xf0cf));
-
- for(i=0; i<8; i++) {
-- ctrl_outb(*t++, PDDR);
-+ /* disable output for all but the one we want to scan */
-+ ctrl_outw((dc_static | *y++), PDCR);
-+ ctrl_outw((ec_static | *y++), PECR);
-+ udelay(5);
-+
-+ /* Get scanline row */
-+ ctrl_outb(*t++, PDDR);
- ctrl_outb(*t++, PEDR);
-+ udelay(50);
-+
-+ /* Read data */
- *s++=ctrl_inb(PCDR);
- *s++=ctrl_inb(PFDR);
- }
--
-+ /* Scan no lines */
- ctrl_outb(0xff, PDDR);
- ctrl_outb(0xff, PEDR);
-+
-+ /* Enable all scanlines */
-+ ctrl_outw((dc_static | (0x5555 & 0xcc0c)),PDCR);
-+ ctrl_outw((ec_static | (0x5555 & 0xf0cf)),PECR);
-+ /* Ignore extra keys and events */
-
- *s++=ctrl_inb(PGDR);
- *s++=ctrl_inb(PHDR);
--
-+
- return 0;
- }
-
- static struct scan_keyboard hp680_kbd = {
- .scan = hp680_japanese_scan_kbd,
- .table = hp680_japanese_table,
-- .length = 18,
-+ .length = 16,
- };
-
- static int __init hp680_kbd_init_hw(void)
diff --git a/recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/keymap-fix.patch b/recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/keymap-fix.patch
deleted file mode 100644
index b62d2d8..0000000
--- a/recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/keymap-fix.patch
+++ /dev/null
@@ -1,408 +0,0 @@
---- linux-2.6.17-vanilla/drivers/char/defkeymap.map 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/char/defkeymap.map 2006-07-13 16:43:20.000000000 +0000
-@@ -1,264 +1,185 @@
--# Default kernel keymap. This uses 7 modifier combinations.
--keymaps 0-2,4-5,8,12
--# Change the above line into
--# keymaps 0-2,4-6,8,12
--# in case you want the entries
--# altgr control keycode 83 = Boot
--# altgr control keycode 111 = Boot
--# below.
--#
--# In fact AltGr is used very little, and one more keymap can
--# be saved by mapping AltGr to Alt (and adapting a few entries):
--# keycode 100 = Alt
-+# English keymap for Jornada 6xx devices.
- #
-+# Created by Tibor Zenis ( zenis <at> fmph.uniba.sk )
-+# (Lightly) Modified by Alex Palestras ( B_Linuz <at> yahoo.com )
-+# plain, shift, altgr, ctrl, shift + ctrl, alt, ctrl + alt
-+
-+keymaps 0-2,4-5,8,12
- keycode 1 = Escape Escape
-- alt keycode 1 = Meta_Escape
--keycode 2 = one exclam
-- alt keycode 2 = Meta_one
--keycode 3 = two at at
-- control keycode 3 = nul
-- shift control keycode 3 = nul
-- alt keycode 3 = Meta_two
-+ alt keycode 1 = Meta_Escape
-+keycode 2 = one exclam asciitilde
-+ alt keycode 2 = Meta_one
-+keycode 3 = two at grave
-+ alt keycode 3 = Meta_two
- keycode 4 = three numbersign
-- control keycode 4 = Escape
-- alt keycode 4 = Meta_three
--keycode 5 = four dollar dollar
-- control keycode 5 = Control_backslash
-- alt keycode 5 = Meta_four
-+ alt keycode 4 = Meta_three
-+ altgr keycode 4 = pound
-+keycode 5 = four dollar
-+ control keycode 5 = Control_backslash
-+ alt keycode 5 = Meta_four
-+ altgr keycode 5 = currency
- keycode 6 = five percent
-- control keycode 6 = Control_bracketright
-- alt keycode 6 = Meta_five
-+ control keycode 6 = Control_bracketright
-+ alt keycode 6 = Meta_five
- keycode 7 = six asciicircum
-- control keycode 7 = Control_asciicircum
-- alt keycode 7 = Meta_six
--keycode 8 = seven ampersand braceleft
-- control keycode 8 = Control_underscore
-- alt keycode 8 = Meta_seven
--keycode 9 = eight asterisk bracketleft
-- control keycode 9 = Delete
-- alt keycode 9 = Meta_eight
-+ control keycode 7 = Control_asciicircum
-+ alt keycode 7 = Meta_six
-+keycode 8 = seven ampersand braceleft
-+ control keycode 8 = Control_underscore
-+ alt keycode 8 = KP_7
-+keycode 9 = eight asterisk bracketleft
-+ control keycode 9 = Delete
-+ alt keycode 9 = KP_8
- keycode 10 = nine parenleft bracketright
-- alt keycode 10 = Meta_nine
-+ alt keycode 10 = KP_9
- keycode 11 = zero parenright braceright
-- alt keycode 11 = Meta_zero
--keycode 12 = minus underscore backslash
-- control keycode 12 = Control_underscore
-- shift control keycode 12 = Control_underscore
-- alt keycode 12 = Meta_minus
-+ alt keycode 11 = KP_Divide
-+keycode 12 = minus underscore backslash
-+ control keycode 11 = Control_underscore
-+ shift control keycode 11 = Control_underscore
-+ alt keycode 11 = Meta_minus
- keycode 13 = equal plus
-- alt keycode 13 = Meta_equal
-+ alt keycode 13 = Meta_equal
- keycode 14 = Delete Delete
-- control keycode 14 = BackSpace
-- alt keycode 14 = Meta_Delete
-+ control keycode 14 = BackSpace
-+ alt keycode 14 = Meta_Delete
- keycode 15 = Tab Tab
-- alt keycode 15 = Meta_Tab
-+ alt keycode 15 = Meta_Tab
- keycode 16 = q
- keycode 17 = w
- keycode 18 = e
-- altgr keycode 18 = Hex_E
-+ Shift keycode 18 = E
- keycode 19 = r
- keycode 20 = t
- keycode 21 = y
-+ alt keycode 21 = KP_4
- keycode 22 = u
-+ alt keycode 22 = KP_5
- keycode 23 = i
--keycode 24 = o
--keycode 25 = p
--keycode 26 = bracketleft braceleft
-- control keycode 26 = Escape
-- alt keycode 26 = Meta_bracketleft
--keycode 27 = bracketright braceright asciitilde
-- control keycode 27 = Control_bracketright
-- alt keycode 27 = Meta_bracketright
-+ alt keycode 23 = KP_6
-+keycode 24 = o
-+ alt keycode 24 = KP_Multiply
-+keycode 25 = p
-+ AltGr keycode 25 = braceleft
-+keycode 26 = backslash bar
-+ AltGr keycode 26 = braceright
- keycode 28 = Return
-- alt keycode 28 = Meta_Control_m
-+ alt keycode 28 = Meta_Control_m
- keycode 29 = Control
-+ altgr keycode 29 = Num_Lock
- keycode 30 = a
-- altgr keycode 30 = Hex_A
- keycode 31 = s
- keycode 32 = d
-- altgr keycode 32 = Hex_D
- keycode 33 = f
-- altgr keycode 33 = Hex_F
- keycode 34 = g
- keycode 35 = h
-+ alt keycode 35 = KP_1
- keycode 36 = j
-+ alt keycode 36 = KP_2
- keycode 37 = k
-+ alt keycode 37 = KP_3
- keycode 38 = l
--keycode 39 = semicolon colon
-- alt keycode 39 = Meta_semicolon
--keycode 40 = apostrophe quotedbl
-- control keycode 40 = Control_g
-- alt keycode 40 = Meta_apostrophe
--keycode 41 = grave asciitilde
-- control keycode 41 = nul
-- alt keycode 41 = Meta_grave
-+ alt keycode 38 = KP_Subtract
-+keycode 39 = semicolon colon bracketleft
-+ alt keycode 39 = Meta_semicolon
-+keycode 40 = apostrophe quotedbl bracketright
-+ control keycode 40 = Control_g
-+ alt keycode 40 = Meta_apostrophe
-+keycode 41 = F11
-+ shift keycode 41 = F21
-+ altgr keycode 41 = Console_23
-+ alt keycode 41 = Console_11
-+ control alt keycode 41 = Console_11
- keycode 42 = Shift
--keycode 43 = backslash bar
-- control keycode 43 = Control_backslash
-- alt keycode 43 = Meta_backslash
-+ altgr keycode 42 = Caps_Lock
- keycode 44 = z
- keycode 45 = x
- keycode 46 = c
-- altgr keycode 46 = Hex_C
- keycode 47 = v
- keycode 48 = b
-- altgr keycode 48 = Hex_B
- keycode 49 = n
-+ alt keycode 49 = KP_0
- keycode 50 = m
-+ alt keycode 50 = KP_Comma
- keycode 51 = comma less
-- alt keycode 51 = Meta_comma
-+ alt keycode 51 = KP_Period
- keycode 52 = period greater
-- control keycode 52 = Compose
-- alt keycode 52 = Meta_period
--keycode 53 = slash question
-- control keycode 53 = Delete
-- alt keycode 53 = Meta_slash
--keycode 54 = Shift
--keycode 55 = KP_Multiply
-+ control keycode 52 = Compose
-+ alt keycode 52 = KP_Add
-+keycode 54 = Shift
- keycode 56 = Alt
- keycode 57 = space space
-- control keycode 57 = nul
-- alt keycode 57 = Meta_space
--keycode 58 = Caps_Lock
--keycode 59 = F1 F11 Console_13
-- control keycode 59 = F1
-- alt keycode 59 = Console_1
-- control alt keycode 59 = Console_1
--keycode 60 = F2 F12 Console_14
-- control keycode 60 = F2
-- alt keycode 60 = Console_2
-- control alt keycode 60 = Console_2
--keycode 61 = F3 F13 Console_15
-- control keycode 61 = F3
-- alt keycode 61 = Console_3
-- control alt keycode 61 = Console_3
--keycode 62 = F4 F14 Console_16
-- control keycode 62 = F4
-- alt keycode 62 = Console_4
-- control alt keycode 62 = Console_4
--keycode 63 = F5 F15 Console_17
-- control keycode 63 = F5
-- alt keycode 63 = Console_5
-- control alt keycode 63 = Console_5
--keycode 64 = F6 F16 Console_18
-- control keycode 64 = F6
-- alt keycode 64 = Console_6
-- control alt keycode 64 = Console_6
--keycode 65 = F7 F17 Console_19
-- control keycode 65 = F7
-- alt keycode 65 = Console_7
-- control alt keycode 65 = Console_7
--keycode 66 = F8 F18 Console_20
-- control keycode 66 = F8
-- alt keycode 66 = Console_8
-- control alt keycode 66 = Console_8
--keycode 67 = F9 F19 Console_21
-- control keycode 67 = F9
-- alt keycode 67 = Console_9
-- control alt keycode 67 = Console_9
--keycode 68 = F10 F20 Console_22
-- control keycode 68 = F10
-- alt keycode 68 = Console_10
-- control alt keycode 68 = Console_10
--keycode 69 = Num_Lock
-- shift keycode 69 = Bare_Num_Lock
--keycode 70 = Scroll_Lock Show_Memory Show_Registers
-- control keycode 70 = Show_State
-- alt keycode 70 = Scroll_Lock
--keycode 71 = KP_7
-- alt keycode 71 = Ascii_7
-- altgr keycode 71 = Hex_7
--keycode 72 = KP_8
-- alt keycode 72 = Ascii_8
-- altgr keycode 72 = Hex_8
--keycode 73 = KP_9
-- alt keycode 73 = Ascii_9
-- altgr keycode 73 = Hex_9
--keycode 74 = KP_Subtract
--keycode 75 = KP_4
-- alt keycode 75 = Ascii_4
-- altgr keycode 75 = Hex_4
--keycode 76 = KP_5
-- alt keycode 76 = Ascii_5
-- altgr keycode 76 = Hex_5
--keycode 77 = KP_6
-- alt keycode 77 = Ascii_6
-- altgr keycode 77 = Hex_6
--keycode 78 = KP_Add
--keycode 79 = KP_1
-- alt keycode 79 = Ascii_1
-- altgr keycode 79 = Hex_1
--keycode 80 = KP_2
-- alt keycode 80 = Ascii_2
-- altgr keycode 80 = Hex_2
--keycode 81 = KP_3
-- alt keycode 81 = Ascii_3
-- altgr keycode 81 = Hex_3
--keycode 82 = KP_0
-- alt keycode 82 = Ascii_0
-- altgr keycode 82 = Hex_0
--keycode 83 = KP_Period
--# altgr control keycode 83 = Boot
-- control alt keycode 83 = Boot
--keycode 84 = Last_Console
--keycode 85 =
--keycode 86 = less greater bar
-- alt keycode 86 = Meta_less
--keycode 87 = F11 F11 Console_23
-- control keycode 87 = F11
-- alt keycode 87 = Console_11
-- control alt keycode 87 = Console_11
--keycode 88 = F12 F12 Console_24
-- control keycode 88 = F12
-- alt keycode 88 = Console_12
-- control alt keycode 88 = Console_12
--keycode 89 =
--keycode 90 =
--keycode 91 =
--keycode 92 =
--keycode 93 =
--keycode 94 =
--keycode 95 =
--keycode 96 = KP_Enter
--keycode 97 = Control
--keycode 98 = KP_Divide
--keycode 99 = Control_backslash
-- control keycode 99 = Control_backslash
-- alt keycode 99 = Control_backslash
--keycode 100 = AltGr
--keycode 101 = Break
--keycode 102 = Find
--keycode 103 = Up
--keycode 104 = Prior
-- shift keycode 104 = Scroll_Backward
--keycode 105 = Left
-- alt keycode 105 = Decr_Console
--keycode 106 = Right
-- alt keycode 106 = Incr_Console
--keycode 107 = Select
--keycode 108 = Down
--keycode 109 = Next
-- shift keycode 109 = Scroll_Forward
--keycode 110 = Insert
--keycode 111 = Remove
--# altgr control keycode 111 = Boot
-- control alt keycode 111 = Boot
--keycode 112 = Macro
--keycode 113 = F13
--keycode 114 = F14
--keycode 115 = Help
--keycode 116 = Do
--keycode 117 = F17
--keycode 118 = KP_MinPlus
--keycode 119 = Pause
--keycode 120 =
--keycode 121 =
--keycode 122 =
--keycode 123 =
--keycode 124 =
--keycode 125 =
--keycode 126 =
--keycode 127 =
-+ alt keycode 57 = Meta_space
-+keycode 58 = F9
-+ shift keycode 58 = F19
-+ altgr keycode 58 = Console_21
-+ alt keycode 58 = Console_9
-+ control alt keycode 58 = Console_9
-+keycode 59 = F1
-+ altgr keycode 59 = Console_13
-+ alt keycode 59 = Console_1
-+ control alt keycode 59 = Console_1
-+keycode 60 = F2
-+ shift keycode 60 = F12
-+ altgr keycode 60 = Console_14
-+ alt keycode 60 = Console_2
-+ control alt keycode 60 = Console_2
-+keycode 61 = F3
-+ shift keycode 61 = F13
-+ altgr keycode 61 = Console_15
-+ alt keycode 61 = Console_3
-+ control alt keycode 61 = Console_3
-+keycode 62 = F4
-+ shift keycode 62 = F14
-+ altgr keycode 62 = Console_16
-+ alt keycode 62 = Console_4
-+ control alt keycode 62 = Console_4
-+keycode 63 = F5
-+ shift keycode 63 = F15
-+ altgr keycode 63 = Console_17
-+ alt keycode 63 = Console_5
-+ control alt keycode 63 = Console_5
-+keycode 64 = F6
-+ shift keycode 64 = F16
-+ altgr keycode 64 = Console_18
-+ alt keycode 64 = Console_6
-+ control alt keycode 64 = Console_6
-+keycode 65 = F7
-+ shift keycode 65 = F17
-+ altgr keycode 65 = Console_19
-+ alt keycode 65 = Console_7
-+ control alt keycode 65 = Console_7
-+keycode 66 = F8
-+ shift keycode 66 = F18
-+ altgr keycode 66 = Console_20
-+ alt keycode 66 = Console_8
-+ control alt keycode 66 = Console_8
-+keycode 72 = Up
-+ shift keycode 72 = Scroll_Backward
-+ altgr keycode 72 = Scroll_Backward
-+ alt keycode 72 = Prior
-+keycode 75 = Left
-+ altgr keycode 75 = Decr_Console
-+ alt keycode 75 = Find
-+keycode 77 = Right
-+ altgr keycode 77 = Incr_Console
-+ alt keycode 77 = Select
-+keycode 80 = Down
-+ shift keycode 80 = Scroll_Forward
-+ altgr keycode 80 = Scroll_Forward
-+ alt keycode 80 = Next
-+keycode 83 = Remove Remove Meta_Delete
-+ alt keycode 83 = Meta_Delete
-+keycode 112 = F10
-+ shift keycode 112 = F20
-+ altgr keycode 112 = Console_22
-+ alt keycode 112 = Console_10
-+ control alt keycode 112 = Console_10
-+keycode 115 = slash question
-+ control keycode 115 = Delete
-+ alt keycode 115 = Meta_slash
-+keycode 123 = AltGr
-+keycode 219 = Insert
- string F1 = "\033[[A"
- string F2 = "\033[[B"
- string F3 = "\033[[C"
diff --git a/recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/rtc-2.6.17.patch b/recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/rtc-2.6.17.patch
deleted file mode 100644
index a744c26..0000000
--- a/recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/rtc-2.6.17.patch
+++ /dev/null
@@ -1,987 +0,0 @@
-diff -ru linux-2.6.17.old/arch/sh/boards/hp6xx/pm.c linux-2.6.17/arch/sh/boards/hp6xx/pm.c
---- linux-2.6.17.old/arch/sh/boards/hp6xx/pm.c 2009-12-21 10:27:22.776442805 +0200
-+++ linux-2.6.17/arch/sh/boards/hp6xx/pm.c 2009-12-21 10:30:09.366428509 +0200
-@@ -17,6 +17,10 @@
- #include <asm/cpu/dac.h>
- #include <asm/pm.h>
-
-+#include <asm-sh/rtc.h>
-+#include <linux/time.h>
-+#include <asm-sh/rtc.h>
-+
- #define STBCR 0xffffff82
- #define STBCR2 0xffffff88
-
-@@ -68,6 +72,8 @@
- outb(0x00, HD64461_PCC1CSCR);
- #endif
-
-+ rtc_sh_get_time(&xtime);
-+
- return 0;
- }
-
-diff -ru linux-2.6.17.old/arch/sh/kernel/cpu/irq/ipr.c linux-2.6.17/arch/sh/kernel/cpu/irq/ipr.c
---- linux-2.6.17.old/arch/sh/kernel/cpu/irq/ipr.c 2006-06-18 04:49:35.000000000 +0300
-+++ linux-2.6.17/arch/sh/kernel/cpu/irq/ipr.c 2009-12-21 10:29:58.713508059 +0200
-@@ -125,7 +125,12 @@
- make_ipr_irq(TIMER_IRQ, TIMER_IPR_ADDR, TIMER_IPR_POS, TIMER_PRIORITY);
- make_ipr_irq(TIMER1_IRQ, TIMER1_IPR_ADDR, TIMER1_IPR_POS, TIMER1_PRIORITY);
- #if defined(CONFIG_SH_RTC)
-+ make_ipr_irq(20, RTC_IPR_ADDR, RTC_IPR_POS, RTC_PRIORITY);
-+ printk("kernel IRQ RTC =%i\n",20);
-+ make_ipr_irq(21, RTC_IPR_ADDR, RTC_IPR_POS, RTC_PRIORITY);
-+ printk("kernel IRQ RTC =%i\n",21);
- make_ipr_irq(RTC_IRQ, RTC_IPR_ADDR, RTC_IPR_POS, RTC_PRIORITY);
-+ printk("kernel IRQ RTC =%i\n",RTC_IRQ);
- #endif
-
- #ifdef SCI_ERI_IRQ
-diff -ru linux-2.6.17.old/arch/sh/kernel/cpu/sh3/Makefile linux-2.6.17/arch/sh/kernel/cpu/sh3/Makefile
---- linux-2.6.17.old/arch/sh/kernel/cpu/sh3/Makefile 2006-06-18 04:49:35.000000000 +0300
-+++ linux-2.6.17/arch/sh/kernel/cpu/sh3/Makefile 2009-12-21 10:29:58.713508059 +0200
-@@ -4,10 +4,13 @@
-
- obj-y := ex.o probe.o
-
-+obj-$(CONFIG_CPU_SUBTYPE_SH7709) += setup-sh770x.o
-+
- clock-$(CONFIG_CPU_SH3) := clock-sh3.o
- clock-$(CONFIG_CPU_SUBTYPE_SH7300) := clock-sh7300.o
- clock-$(CONFIG_CPU_SUBTYPE_SH7705) := clock-sh7705.o
--clock-$(CONFIG_CPU_SUBTYPE_SH7709) := clock-sh7709.o
-+# clock-$(CONFIG_CPU_SUBTYPE_SH7709) := clock-sh7709.o
-+clock-$(CONFIG_CPU_SUBTYPE_SH7709) := clock-sh7709.o
-
- obj-y += $(clock-y)
-
-diff -ru linux-2.6.17.old/arch/sh/kernel/cpu/sh3/setup-sh770x.c linux-2.6.17/arch/sh/kernel/cpu/sh3/setup-sh770x.c
---- linux-2.6.17.old/arch/sh/kernel/cpu/sh3/setup-sh770x.c 2009-12-21 10:32:06.699746910 +0200
-+++ linux-2.6.17/arch/sh/kernel/cpu/sh3/setup-sh770x.c 2009-12-21 10:29:58.713508059 +0200
-@@ -0,0 +1,217 @@
-+/*
-+ * SH3 Setup code for SH7706, SH7707, SH7708, SH7709
-+ *
-+ * Copyright (C) 2007 Magnus Damm
-+ *
-+ * Based on setup-sh7709.c
-+ *
-+ * Copyright (C) 2006 Paul Mundt
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ */
-+#include <linux/init.h>
-+#include <linux/io.h>
-+#include <linux/irq.h>
-+#include <linux/platform_device.h>
-+#include <linux/serial.h>
-+#include <linux/serial_sci.h>
-+
-+enum {
-+ UNUSED = 0,
-+
-+ /* interrupt sources */
-+ IRQ0, IRQ1, IRQ2, IRQ3, IRQ4, IRQ5,
-+ PINT07, PINT815,
-+ DMAC_DEI0, DMAC_DEI1, DMAC_DEI2, DMAC_DEI3,
-+ SCIF0_ERI, SCIF0_RXI, SCIF0_BRI, SCIF0_TXI,
-+ SCIF2_ERI, SCIF2_RXI, SCIF2_BRI, SCIF2_TXI,
-+ SCI_ERI, SCI_RXI, SCI_TXI, SCI_TEI,
-+ ADC_ADI,
-+ LCDC, PCC0, PCC1,
-+ TMU0, TMU1, TMU2_TUNI, TMU2_TICPI,
-+ RTC_ATI, RTC_PRI, RTC_CUI,
-+ WDT,
-+ REF_RCMI, REF_ROVI,
-+
-+ /* interrupt groups */
-+ RTC, REF, TMU2, DMAC, SCI, SCIF2, SCIF0,
-+};
-+
-+static struct intc_vect vectors[] __initdata = {
-+ INTC_VECT(TMU0, 0x400), INTC_VECT(TMU1, 0x420),
-+ INTC_VECT(TMU2_TUNI, 0x440), INTC_VECT(TMU2_TICPI, 0x460),
-+ INTC_VECT(RTC_ATI, 0x480), INTC_VECT(RTC_PRI, 0x4a0),
-+ INTC_VECT(RTC_CUI, 0x4c0),
-+ INTC_VECT(SCI_ERI, 0x4e0), INTC_VECT(SCI_RXI, 0x500),
-+ INTC_VECT(SCI_TXI, 0x520), INTC_VECT(SCI_TEI, 0x540),
-+ INTC_VECT(WDT, 0x560),
-+ INTC_VECT(REF_RCMI, 0x580),
-+ INTC_VECT(REF_ROVI, 0x5a0),
-+#if defined(CONFIG_CPU_SUBTYPE_SH7706) || \
-+ defined(CONFIG_CPU_SUBTYPE_SH7707) || \
-+ defined(CONFIG_CPU_SUBTYPE_SH7709)
-+ INTC_VECT(IRQ4, 0x680), INTC_VECT(IRQ5, 0x6a0),
-+ INTC_VECT(DMAC_DEI0, 0x800), INTC_VECT(DMAC_DEI1, 0x820),
-+ INTC_VECT(DMAC_DEI2, 0x840), INTC_VECT(DMAC_DEI3, 0x860),
-+ INTC_VECT(ADC_ADI, 0x980),
-+ INTC_VECT(SCIF2_ERI, 0x900), INTC_VECT(SCIF2_RXI, 0x920),
-+ INTC_VECT(SCIF2_BRI, 0x940), INTC_VECT(SCIF2_TXI, 0x960),
-+#endif
-+#if defined(CONFIG_CPU_SUBTYPE_SH7707) || \
-+ defined(CONFIG_CPU_SUBTYPE_SH7709)
-+ INTC_VECT(PINT07, 0x700), INTC_VECT(PINT815, 0x720),
-+ INTC_VECT(SCIF0_ERI, 0x880), INTC_VECT(SCIF0_RXI, 0x8a0),
-+ INTC_VECT(SCIF0_BRI, 0x8c0), INTC_VECT(SCIF0_TXI, 0x8e0),
-+#endif
-+#if defined(CONFIG_CPU_SUBTYPE_SH7707)
-+ INTC_VECT(LCDC, 0x9a0),
-+ INTC_VECT(PCC0, 0x9c0), INTC_VECT(PCC1, 0x9e0),
-+#endif
-+};
-+
-+static struct intc_group groups[] __initdata = {
-+ INTC_GROUP(RTC, RTC_ATI, RTC_PRI, RTC_CUI),
-+ INTC_GROUP(TMU2, TMU2_TUNI, TMU2_TICPI),
-+ INTC_GROUP(REF, REF_RCMI, REF_ROVI),
-+ INTC_GROUP(DMAC, DMAC_DEI0, DMAC_DEI1, DMAC_DEI2, DMAC_DEI3),
-+ INTC_GROUP(SCI, SCI_ERI, SCI_RXI, SCI_TXI, SCI_TEI),
-+ INTC_GROUP(SCIF0, SCIF0_ERI, SCIF0_RXI, SCIF0_BRI, SCIF0_TXI),
-+ INTC_GROUP(SCIF2, SCIF2_ERI, SCIF2_RXI, SCIF2_BRI, SCIF2_TXI),
-+};
-+
-+static struct intc_prio_reg prio_registers[] __initdata = {
-+ { 0xfffffee2, 0, 16, 4, /* IPRA */ { TMU0, TMU1, TMU2, RTC } },
-+ { 0xfffffee4, 0, 16, 4, /* IPRB */ { WDT, REF, SCI, 0 } },
-+#if defined(CONFIG_CPU_SUBTYPE_SH7706) || \
-+ defined(CONFIG_CPU_SUBTYPE_SH7707) || \
-+ defined(CONFIG_CPU_SUBTYPE_SH7709)
-+ { 0xa4000016, 0, 16, 4, /* IPRC */ { IRQ3, IRQ2, IRQ1, IRQ0 } },
-+ { 0xa4000018, 0, 16, 4, /* IPRD */ { 0, 0, IRQ5, IRQ4 } },
-+ { 0xa400001a, 0, 16, 4, /* IPRE */ { DMAC, 0, SCIF2, ADC_ADI } },
-+#endif
-+#if defined(CONFIG_CPU_SUBTYPE_SH7707) || \
-+ defined(CONFIG_CPU_SUBTYPE_SH7709)
-+ { 0xa4000018, 0, 16, 4, /* IPRD */ { PINT07, PINT815, } },
-+ { 0xa400001a, 0, 16, 4, /* IPRE */ { 0, SCIF0 } },
-+#endif
-+#if defined(CONFIG_CPU_SUBTYPE_SH7707)
-+ { 0xa400001c, 0, 16, 4, /* IPRF */ { 0, LCDC, PCC0, PCC1, } },
-+#endif
-+};
-+
-+static DECLARE_INTC_DESC(intc_desc, "sh770x", vectors, groups,
-+ NULL, prio_registers, NULL);
-+
-+#if defined(CONFIG_CPU_SUBTYPE_SH7706) || \
-+ defined(CONFIG_CPU_SUBTYPE_SH7707) || \
-+ defined(CONFIG_CPU_SUBTYPE_SH7709)
-+static struct intc_vect vectors_irq[] __initdata = {
-+ INTC_VECT(IRQ0, 0x600), INTC_VECT(IRQ1, 0x620),
-+ INTC_VECT(IRQ2, 0x640), INTC_VECT(IRQ3, 0x660),
-+};
-+
-+static DECLARE_INTC_DESC(intc_desc_irq, "sh770x-irq", vectors_irq, NULL,
-+ NULL, prio_registers, NULL);
-+#endif
-+
-+static struct resource rtc_resources[] = {
-+ [0] = {
-+ .start = 0xfffffec0,
-+ .end = 0xfffffec0 + 0x1e,
-+ .flags = IORESOURCE_IO,
-+ },
-+ [1] = {
-+ .start = 21,
-+ .flags = IORESOURCE_IRQ,
-+ },
-+ [2] = {
-+ .start = 22,
-+ .flags = IORESOURCE_IRQ,
-+ },
-+ [3] = {
-+ .start = 20,
-+ .flags = IORESOURCE_IRQ,
-+ },
-+};
-+
-+static struct platform_device rtc_device = {
-+ .name = "sh-rtc",
-+ .id = -1,
-+ .num_resources = ARRAY_SIZE(rtc_resources),
-+ .resource = rtc_resources,
-+};
-+
-+static struct plat_sci_port sci_platform_data[] = {
-+ {
-+ .mapbase = 0xfffffe80,
-+ .flags = UPF_BOOT_AUTOCONF,
-+ .type = PORT_SCI,
-+ .irqs = { 23, 24, 25, 0 },
-+ },
-+#if defined(CONFIG_CPU_SUBTYPE_SH7706) || \
-+ defined(CONFIG_CPU_SUBTYPE_SH7707) || \
-+ defined(CONFIG_CPU_SUBTYPE_SH7709)
-+ {
-+ .mapbase = 0xa4000150,
-+ .flags = UPF_BOOT_AUTOCONF,
-+ .type = PORT_SCIF,
-+ .irqs = { 56, 57, 59, 58 },
-+ },
-+#endif
-+#if defined(CONFIG_CPU_SUBTYPE_SH7707) || \
-+ defined(CONFIG_CPU_SUBTYPE_SH7709)
-+ {
-+ .mapbase = 0xa4000140,
-+ .flags = UPF_BOOT_AUTOCONF,
-+ .type = PORT_IRDA,
-+ .irqs = { 52, 53, 55, 54 },
-+ },
-+#endif
-+ {
-+ .flags = 0,
-+ }
-+};
-+
-+static struct platform_device sci_device = {
-+ .name = "sh-sci",
-+ .id = -1,
-+ .dev = {
-+ .platform_data = sci_platform_data,
-+ },
-+};
-+
-+static struct platform_device *sh770x_devices[] __initdata = {
-+ &sci_device,
-+ &rtc_device,
-+};
-+
-+static int __init sh770x_devices_setup(void)
-+{
-+ return platform_add_devices(sh770x_devices,
-+ ARRAY_SIZE(sh770x_devices));
-+}
-+__initcall(sh770x_devices_setup);
-+
-+#define INTC_ICR1 0xa4000010UL
-+#define INTC_ICR1_IRQLVL (1<<14)
-+
-+void __init plat_irq_setup_pins(int mode)
-+{
-+ if (mode == IRQ_MODE_IRQ) {
-+#if defined(CONFIG_CPU_SUBTYPE_SH7706) || \
-+ defined(CONFIG_CPU_SUBTYPE_SH7707) || \
-+ defined(CONFIG_CPU_SUBTYPE_SH7709)
-+ ctrl_outw(ctrl_inw(INTC_ICR1) & ~INTC_ICR1_IRQLVL, INTC_ICR1);
-+/* register_intc_controller(&intc_desc_irq); */
-+ return;
-+#endif
-+ }
-+ BUG();
-+}
-+
-+void __init plat_irq_setup(void)
-+{
-+/* register_intc_controller(&intc_desc); */
-+}
-diff -ru linux-2.6.17.old/drivers/rtc/interface.c linux-2.6.17/drivers/rtc/interface.c
---- linux-2.6.17.old/drivers/rtc/interface.c 2006-06-18 04:49:35.000000000 +0300
-+++ linux-2.6.17/drivers/rtc/interface.c 2009-12-21 10:29:58.713508059 +0200
-@@ -145,11 +145,16 @@
- }
- EXPORT_SYMBOL_GPL(rtc_set_alarm);
-
--void rtc_update_irq(struct class_device *class_dev,
-+/**
-+ * rtc_update_irq - report RTC periodic, alarm, and/or update irqs
-+ * @rtc: the rtc device
-+ * @num: how many irqs are being reported (usually one)
-+ * @events: mask of RTC_IRQF with one or more of RTC_PF, RTC_AF, RTC_UF
-+ * Context: in_interrupt(), irqs blocked
-+ */
-+void rtc_update_irq(struct rtc_device *rtc,
- unsigned long num, unsigned long events)
- {
-- struct rtc_device *rtc = to_rtc_device(class_dev);
--
- spin_lock(&rtc->irq_lock);
- rtc->irq_data = (rtc->irq_data + (num << 8)) | events;
- spin_unlock(&rtc->irq_lock);
-diff -ru linux-2.6.17.old/drivers/rtc/rtc-sh.c linux-2.6.17/drivers/rtc/rtc-sh.c
---- linux-2.6.17.old/drivers/rtc/rtc-sh.c 2009-12-21 10:27:23.403110577 +0200
-+++ linux-2.6.17/drivers/rtc/rtc-sh.c 2009-12-21 10:29:58.716840103 +0200
-@@ -1,7 +1,8 @@
- /*
- * SuperH On-Chip RTC Support
- *
-- * Copyright (C) 2006 Paul Mundt
-+ * Copyright (C) 2006, 2007 Paul Mundt
-+ * Copyright (C) 2006 Jamie Lenehan
- *
- * Based on the old arch/sh/kernel/cpu/rtc.c by:
- *
-@@ -21,34 +22,46 @@
- #include <linux/seq_file.h>
- #include <linux/interrupt.h>
- #include <linux/spinlock.h>
--#include <asm/io.h>
-+#include <linux/io.h>
-+#include <asm/rtc.h>
-
--#ifdef CONFIG_CPU_SH3
--#define rtc_reg_size sizeof(u16)
--#define RTC_BIT_INVERTED 0 /* No bug on SH7708, SH7709A */
--#elif defined(CONFIG_CPU_SH4)
--#define rtc_reg_size sizeof(u32)
--#define RTC_BIT_INVERTED 0x40 /* bug on SH7750, SH7750S */
--#endif
-+#define DRV_NAME "sh-rtc"
-+#define DRV_VERSION "0.1.6"
-
- #define RTC_REG(r) ((r) * rtc_reg_size)
-
--#define R64CNT RTC_REG(0)
--#define RSECCNT RTC_REG(1)
--#define RMINCNT RTC_REG(2)
--#define RHRCNT RTC_REG(3)
--#define RWKCNT RTC_REG(4)
--#define RDAYCNT RTC_REG(5)
--#define RMONCNT RTC_REG(6)
--#define RYRCNT RTC_REG(7)
--#define RSECAR RTC_REG(8)
--#define RMINAR RTC_REG(9)
--#define RHRAR RTC_REG(10)
--#define RWKAR RTC_REG(11)
--#define RDAYAR RTC_REG(12)
--#define RMONAR RTC_REG(13)
--#define RCR1 RTC_REG(14)
--#define RCR2 RTC_REG(15)
-+#define R64CNT RTC_REG(0)
-+
-+#define RSECCNT RTC_REG(1) /* RTC sec */
-+#define RMINCNT RTC_REG(2) /* RTC min */
-+#define RHRCNT RTC_REG(3) /* RTC hour */
-+#define RWKCNT RTC_REG(4) /* RTC week */
-+#define RDAYCNT RTC_REG(5) /* RTC day */
-+#define RMONCNT RTC_REG(6) /* RTC month */
-+#define RYRCNT RTC_REG(7) /* RTC year */
-+#define RSECAR RTC_REG(8) /* ALARM sec */
-+#define RMINAR RTC_REG(9) /* ALARM min */
-+#define RHRAR RTC_REG(10) /* ALARM hour */
-+#define RWKAR RTC_REG(11) /* ALARM week */
-+#define RDAYAR RTC_REG(12) /* ALARM day */
-+#define RMONAR RTC_REG(13) /* ALARM month */
-+#define RCR1 RTC_REG(14) /* Control */
-+#define RCR2 RTC_REG(15) /* Control */
-+
-+/*
-+ * Note on RYRAR and RCR3: Up until this point most of the register
-+ * definitions are consistent across all of the available parts. However,
-+ * the placement of the optional RYRAR and RCR3 (the RYRAR control
-+ * register used to control RYRCNT/RYRAR compare) varies considerably
-+ * across various parts, occasionally being mapped in to a completely
-+ * unrelated address space. For proper RYRAR support a separate resource
-+ * would have to be handed off, but as this is purely optional in
-+ * practice, we simply opt not to support it, thereby keeping the code
-+ * quite a bit more simplified.
-+ */
-+
-+/* ALARM Bits - or with BCD encoded value */
-+#define AR_ENB 0x80 /* Enable for alarm cmp */
-
- /* RCR1 Bits */
- #define RCR1_CF 0x80 /* Carry Flag */
-@@ -71,39 +84,82 @@
- unsigned int alarm_irq, periodic_irq, carry_irq;
- struct rtc_device *rtc_dev;
- spinlock_t lock;
-+ int rearm_aie;
-+ unsigned long capabilities; /* See asm-sh/rtc.h for cap bits */
- };
-
--static irqreturn_t sh_rtc_interrupt(int irq, void *id, struct pt_regs *regs)
-+static irqreturn_t sh_rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs)
- {
-- struct platform_device *pdev = id;
-+ struct platform_device *pdev = to_platform_device(dev_id);
- struct sh_rtc *rtc = platform_get_drvdata(pdev);
- unsigned int tmp, events = 0;
-
- spin_lock(&rtc->lock);
-
- tmp = readb(rtc->regbase + RCR1);
-+ tmp &= ~RCR1_CF;
-
-- if (tmp & RCR1_AF)
-- events |= RTC_AF | RTC_IRQF;
--
-- tmp &= ~(RCR1_CF | RCR1_AF);
-+ if (rtc->rearm_aie) {
-+ if (tmp & RCR1_AF)
-+ tmp &= ~RCR1_AF; /* try to clear AF again */
-+ else {
-+ tmp |= RCR1_AIE; /* AF has cleared, rearm IRQ */
-+ rtc->rearm_aie = 0;
-+ }
-+ }
-
- writeb(tmp, rtc->regbase + RCR1);
--
-- rtc_update_irq(&rtc->rtc_dev->class_dev, 1, events);
-+
-+ rtc_update_irq(rtc->rtc_dev, 1, events);
-
- spin_unlock(&rtc->lock);
-
- return IRQ_HANDLED;
- }
-
--static irqreturn_t sh_rtc_periodic(int irq, void *id, struct pt_regs *regs)
-+static irqreturn_t sh_rtc_alarm(int irq, void *dev_id, struct pt_regs *regs)
-+{
-+ struct platform_device *pdev = to_platform_device(dev_id);
-+ struct sh_rtc *rtc = platform_get_drvdata(pdev);
-+ unsigned int tmp, events = 0;
-+
-+ spin_lock(&rtc->lock);
-+
-+ tmp = readb(rtc->regbase + RCR1);
-+
-+ /*
-+ * If AF is set then the alarm has triggered. If we clear AF while
-+ * the alarm time still matches the RTC time then AF will
-+ * immediately be set again, and if AIE is enabled then the alarm
-+ * interrupt will immediately be retrigger. So we clear AIE here
-+ * and use rtc->rearm_aie so that the carry interrupt will keep
-+ * trying to clear AF and once it stays cleared it'll re-enable
-+ * AIE.
-+ */
-+ if (tmp & RCR1_AF) {
-+ events |= RTC_AF | RTC_IRQF;
-+
-+ tmp &= ~(RCR1_AF|RCR1_AIE);
-+
-+ writeb(tmp, rtc->regbase + RCR1);
-+
-+ rtc->rearm_aie = 1;
-+
-+ rtc_update_irq(rtc->rtc_dev, 1, events);
-+ }
-+
-+ spin_unlock(&rtc->lock);
-+ return IRQ_HANDLED;
-+}
-+
-+static irqreturn_t sh_rtc_periodic(int irq, void *dev_id, struct pt_regs *regs)
- {
-- struct sh_rtc *rtc = dev_get_drvdata(id);
-+ struct platform_device *pdev = to_platform_device(dev_id);
-+ struct sh_rtc *rtc = platform_get_drvdata(pdev);
-
- spin_lock(&rtc->lock);
-
-- rtc_update_irq(&rtc->rtc_dev->class_dev, 1, RTC_PF | RTC_IRQF);
-+ rtc_update_irq(rtc->rtc_dev, 1, RTC_PF | RTC_IRQF);
-
- spin_unlock(&rtc->lock);
-
-@@ -139,10 +195,11 @@
-
- tmp = readb(rtc->regbase + RCR1);
-
-- if (enable)
-- tmp |= RCR1_AIE;
-- else
-+ if (!enable) {
- tmp &= ~RCR1_AIE;
-+ rtc->rearm_aie = 0;
-+ } else if (rtc->rearm_aie == 0)
-+ tmp |= RCR1_AIE;
-
- writeb(tmp, rtc->regbase + RCR1);
-
-@@ -177,14 +234,14 @@
- goto err_bad_carry;
- }
-
-- ret = request_irq(rtc->alarm_irq, sh_rtc_interrupt, SA_INTERRUPT,
-+ ret = request_irq(rtc->alarm_irq, sh_rtc_alarm, SA_INTERRUPT,
- "sh-rtc alarm", dev);
- if (unlikely(ret)) {
- dev_err(dev, "request alarm IRQ failed with %d, IRQ %d\n",
- ret, rtc->alarm_irq);
- goto err_bad_alarm;
- }
--
-+
- return 0;
-
- err_bad_alarm:
-@@ -200,6 +257,7 @@
- struct sh_rtc *rtc = dev_get_drvdata(dev);
-
- sh_rtc_setpie(dev, 0);
-+ sh_rtc_setaie(dev, 0);
-
- free_irq(rtc->periodic_irq, dev);
- free_irq(rtc->carry_irq, dev);
-@@ -212,8 +270,6 @@
- unsigned int tmp;
-
- tmp = readb(rtc->regbase + RCR1);
-- seq_printf(seq, "alarm_IRQ\t: %s\n",
-- (tmp & RCR1_AIE) ? "yes" : "no");
- seq_printf(seq, "carry_IRQ\t: %s\n",
- (tmp & RCR1_CIE) ? "yes" : "no");
-
-@@ -267,16 +323,16 @@
- tm->tm_hour = BCD2BIN(readb(rtc->regbase + RHRCNT));
- tm->tm_wday = BCD2BIN(readb(rtc->regbase + RWKCNT));
- tm->tm_mday = BCD2BIN(readb(rtc->regbase + RDAYCNT));
-- tm->tm_mon = BCD2BIN(readb(rtc->regbase + RMONCNT));
-+ tm->tm_mon = BCD2BIN(readb(rtc->regbase + RMONCNT)) - 1;
-
--#if defined(CONFIG_CPU_SH4)
-- yr = readw(rtc->regbase + RYRCNT);
-- yr100 = BCD2BIN(yr >> 8);
-- yr &= 0xff;
--#else
-- yr = readb(rtc->regbase + RYRCNT);
-- yr100 = BCD2BIN((yr == 0x99) ? 0x19 : 0x20);
--#endif
-+ if (rtc->capabilities & RTC_CAP_4_DIGIT_YEAR) {
-+ yr = readw(rtc->regbase + RYRCNT);
-+ yr100 = BCD2BIN(yr >> 8);
-+ yr &= 0xff;
-+ } else {
-+ yr = readb(rtc->regbase + RYRCNT);
-+ yr100 = BCD2BIN((yr == 0x99) ? 0x19 : 0x20);
-+ }
-
- tm->tm_year = (yr100 * 100 + BCD2BIN(yr)) - 1900;
-
-@@ -291,14 +347,16 @@
- tm->tm_sec--;
- #endif
-
-- dev_dbg(&dev, "%s: tm is secs=%d, mins=%d, hours=%d, "
-+ dev_dbg(dev, "%s: tm is secs=%d, mins=%d, hours=%d, "
- "mday=%d, mon=%d, year=%d, wday=%d\n",
- __FUNCTION__,
- tm->tm_sec, tm->tm_min, tm->tm_hour,
-- tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday);
-+ tm->tm_mday, tm->tm_mon + 1, tm->tm_year, tm->tm_wday);
-
-- if (rtc_valid_tm(tm) < 0)
-+ if (rtc_valid_tm(tm) < 0) {
- dev_err(dev, "invalid date\n");
-+ rtc_time_to_tm(0, tm);
-+ }
-
- return 0;
- }
-@@ -315,6 +373,7 @@
- /* Reset pre-scaler & stop RTC */
- tmp = readb(rtc->regbase + RCR2);
- tmp |= RCR2_RESET;
-+ tmp &= ~RCR2_START;
- writeb(tmp, rtc->regbase + RCR2);
-
- writeb(BIN2BCD(tm->tm_sec), rtc->regbase + RSECCNT);
-@@ -322,16 +381,16 @@
- writeb(BIN2BCD(tm->tm_hour), rtc->regbase + RHRCNT);
- writeb(BIN2BCD(tm->tm_wday), rtc->regbase + RWKCNT);
- writeb(BIN2BCD(tm->tm_mday), rtc->regbase + RDAYCNT);
-- writeb(BIN2BCD(tm->tm_mon), rtc->regbase + RMONCNT);
-+ writeb(BIN2BCD(tm->tm_mon + 1), rtc->regbase + RMONCNT);
-
--#ifdef CONFIG_CPU_SH3
-- year = tm->tm_year % 100;
-- writeb(BIN2BCD(year), rtc->regbase + RYRCNT);
--#else
-- year = (BIN2BCD((tm->tm_year + 1900) / 100) << 8) |
-- BIN2BCD(tm->tm_year % 100);
-- writew(year, rtc->regbase + RYRCNT);
--#endif
-+ if (rtc->capabilities & RTC_CAP_4_DIGIT_YEAR) {
-+ year = (BIN2BCD((tm->tm_year + 1900) / 100) << 8) |
-+ BIN2BCD(tm->tm_year % 100);
-+ writew(year, rtc->regbase + RYRCNT);
-+ } else {
-+ year = tm->tm_year % 100;
-+ writeb(BIN2BCD(year), rtc->regbase + RYRCNT);
-+ }
-
- /* Start RTC */
- tmp = readb(rtc->regbase + RCR2);
-@@ -344,12 +403,140 @@
- return 0;
- }
-
-+static inline int sh_rtc_read_alarm_value(struct sh_rtc *rtc, int reg_off)
-+{
-+ unsigned int byte;
-+ int value = 0xff; /* return 0xff for ignored values */
-+
-+ byte = readb(rtc->regbase + reg_off);
-+ if (byte & AR_ENB) {
-+ byte &= ~AR_ENB; /* strip the enable bit */
-+ value = BCD2BIN(byte);
-+ }
-+
-+ return value;
-+}
-+
-+static int sh_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *wkalrm)
-+{
-+ struct platform_device *pdev = to_platform_device(dev);
-+ struct sh_rtc *rtc = platform_get_drvdata(pdev);
-+ struct rtc_time* tm = &wkalrm->time;
-+
-+ spin_lock_irq(&rtc->lock);
-+
-+ tm->tm_sec = sh_rtc_read_alarm_value(rtc, RSECAR);
-+ tm->tm_min = sh_rtc_read_alarm_value(rtc, RMINAR);
-+ tm->tm_hour = sh_rtc_read_alarm_value(rtc, RHRAR);
-+ tm->tm_wday = sh_rtc_read_alarm_value(rtc, RWKAR);
-+ tm->tm_mday = sh_rtc_read_alarm_value(rtc, RDAYAR);
-+ tm->tm_mon = sh_rtc_read_alarm_value(rtc, RMONAR);
-+ if (tm->tm_mon > 0)
-+ tm->tm_mon -= 1; /* RTC is 1-12, tm_mon is 0-11 */
-+ tm->tm_year = 0xffff;
-+
-+ wkalrm->enabled = (readb(rtc->regbase + RCR1) & RCR1_AIE) ? 1 : 0;
-+
-+ spin_unlock_irq(&rtc->lock);
-+
-+ return 0;
-+}
-+
-+static inline void sh_rtc_write_alarm_value(struct sh_rtc *rtc,
-+ int value, int reg_off)
-+{
-+ /* < 0 for a value that is ignored */
-+ if (value < 0)
-+ writeb(0, rtc->regbase + reg_off);
-+ else
-+ writeb(BIN2BCD(value) | AR_ENB, rtc->regbase + reg_off);
-+}
-+
-+static int sh_rtc_check_alarm(struct rtc_time* tm)
-+{
-+ /*
-+ * The original rtc says anything > 0xc0 is "don't care" or "match
-+ * all" - most users use 0xff but rtc-dev uses -1 for the same thing.
-+ * The original rtc doesn't support years - some things use -1 and
-+ * some 0xffff. We use -1 to make out tests easier.
-+ */
-+ if (tm->tm_year == 0xffff)
-+ tm->tm_year = -1;
-+ if (tm->tm_mon >= 0xff)
-+ tm->tm_mon = -1;
-+ if (tm->tm_mday >= 0xff)
-+ tm->tm_mday = -1;
-+ if (tm->tm_wday >= 0xff)
-+ tm->tm_wday = -1;
-+ if (tm->tm_hour >= 0xff)
-+ tm->tm_hour = -1;
-+ if (tm->tm_min >= 0xff)
-+ tm->tm_min = -1;
-+ if (tm->tm_sec >= 0xff)
-+ tm->tm_sec = -1;
-+
-+ if (tm->tm_year > 9999 ||
-+ tm->tm_mon >= 12 ||
-+ tm->tm_mday == 0 || tm->tm_mday >= 32 ||
-+ tm->tm_wday >= 7 ||
-+ tm->tm_hour >= 24 ||
-+ tm->tm_min >= 60 ||
-+ tm->tm_sec >= 60)
-+ return -EINVAL;
-+
-+ return 0;
-+}
-+
-+static int sh_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *wkalrm)
-+{
-+ struct platform_device *pdev = to_platform_device(dev);
-+ struct sh_rtc *rtc = platform_get_drvdata(pdev);
-+ unsigned int rcr1;
-+ struct rtc_time *tm = &wkalrm->time;
-+ int mon, err;
-+
-+ err = sh_rtc_check_alarm(tm);
-+ if (unlikely(err < 0))
-+ return err;
-+
-+ spin_lock_irq(&rtc->lock);
-+
-+ /* disable alarm interrupt and clear the alarm flag */
-+ rcr1 = readb(rtc->regbase + RCR1);
-+ rcr1 &= ~(RCR1_AF|RCR1_AIE);
-+ writeb(rcr1, rtc->regbase + RCR1);
-+
-+ rtc->rearm_aie = 0;
-+
-+ /* set alarm time */
-+ sh_rtc_write_alarm_value(rtc, tm->tm_sec, RSECAR);
-+ sh_rtc_write_alarm_value(rtc, tm->tm_min, RMINAR);
-+ sh_rtc_write_alarm_value(rtc, tm->tm_hour, RHRAR);
-+ sh_rtc_write_alarm_value(rtc, tm->tm_wday, RWKAR);
-+ sh_rtc_write_alarm_value(rtc, tm->tm_mday, RDAYAR);
-+ mon = tm->tm_mon;
-+ if (mon >= 0)
-+ mon += 1;
-+ sh_rtc_write_alarm_value(rtc, mon, RMONAR);
-+
-+ if (wkalrm->enabled) {
-+ rcr1 |= RCR1_AIE;
-+ writeb(rcr1, rtc->regbase + RCR1);
-+ }
-+
-+ spin_unlock_irq(&rtc->lock);
-+
-+ return 0;
-+}
-+
- static struct rtc_class_ops sh_rtc_ops = {
- .open = sh_rtc_open,
- .release = sh_rtc_release,
- .ioctl = sh_rtc_ioctl,
- .read_time = sh_rtc_read_time,
- .set_time = sh_rtc_set_time,
-+ .read_alarm = sh_rtc_read_alarm,
-+ .set_alarm = sh_rtc_set_alarm,
- .proc = sh_rtc_proc,
- };
-
-@@ -405,11 +592,22 @@
-
- rtc->rtc_dev = rtc_device_register("sh", &pdev->dev,
- &sh_rtc_ops, THIS_MODULE);
-- if (IS_ERR(rtc)) {
-+ if (IS_ERR(rtc->rtc_dev)) {
- ret = PTR_ERR(rtc->rtc_dev);
- goto err_badmap;
- }
-
-+ rtc->capabilities = RTC_DEF_CAPABILITIES;
-+ if (pdev->dev.platform_data) {
-+ struct sh_rtc_platform_info *pinfo = pdev->dev.platform_data;
-+
-+ /*
-+ * Some CPUs have special capabilities in addition to the
-+ * default set. Add those in here.
-+ */
-+/* rtc->capabilities |= pinfo->capabilities; */
-+ }
-+
- platform_set_drvdata(pdev, rtc);
-
- return 0;
-@@ -425,7 +623,7 @@
- static int __devexit sh_rtc_remove(struct platform_device *pdev)
- {
- struct sh_rtc *rtc = platform_get_drvdata(pdev);
--
-+
- if (likely(rtc->rtc_dev))
- rtc_device_unregister(rtc->rtc_dev);
-
-@@ -442,7 +640,7 @@
- }
- static struct platform_driver sh_rtc_platform_driver = {
- .driver = {
-- .name = "sh-rtc",
-+ .name = DRV_NAME,
- .owner = THIS_MODULE,
- },
- .probe = sh_rtc_probe,
-@@ -463,5 +661,7 @@
- module_exit(sh_rtc_exit);
-
- MODULE_DESCRIPTION("SuperH on-chip RTC driver");
--MODULE_AUTHOR("Paul Mundt <lethal@linux-sh.org>");
-+MODULE_VERSION(DRV_VERSION);
-+MODULE_AUTHOR("Paul Mundt <lethal@linux-sh.org>, Jamie Lenehan <lenehan@twibble.org>");
- MODULE_LICENSE("GPL");
-+MODULE_ALIAS("platform:" DRV_NAME);
-diff -ru linux-2.6.17.old/include/asm-sh/cpu-sh3/rtc.h linux-2.6.17/include/asm-sh/cpu-sh3/rtc.h
---- linux-2.6.17.old/include/asm-sh/cpu-sh3/rtc.h 2006-06-18 04:49:35.000000000 +0300
-+++ linux-2.6.17/include/asm-sh/cpu-sh3/rtc.h 2009-12-21 10:30:05.923092336 +0200
-@@ -20,6 +20,8 @@
- #define RCR2 0xfffffede
-
- #define RTC_BIT_INVERTED 0 /* No bug on SH7708, SH7709A */
-+#define RTC_DEF_CAPABILITIES 0UL
-+#define rtc_reg_size sizeof(u16)
-
- #endif /* __ASM_CPU_SH3_RTC_H */
-
-diff -ru linux-2.6.17.old/include/asm-sh/hw_irq.h linux-2.6.17/include/asm-sh/hw_irq.h
---- linux-2.6.17.old/include/asm-sh/hw_irq.h 2006-06-18 04:49:35.000000000 +0300
-+++ linux-2.6.17/include/asm-sh/hw_irq.h 2009-12-21 10:29:58.716840103 +0200
-@@ -1,6 +1,111 @@
- #ifndef __ASM_SH_HW_IRQ_H
- #define __ASM_SH_HW_IRQ_H
-
-+#include <linux/init.h>
-+#include <asm/atomic.h>
-+
-+extern atomic_t irq_err_count;
-+
-+/*
-+struct ipr_data {
-+ unsigned char irq;
-+ unsigned char ipr_idx;*/ /* Index for the IPR registered */
-+/*
-+ unsigned char shift; */ /* Number of bits to shift the data */
-+/*
-+ unsigned char priority; *//* The priority */
-+/* };*/
-+
-+/*
-+struct ipr_desc {
-+ unsigned long *ipr_offsets;
-+ unsigned int nr_offsets;
-+ struct ipr_data *ipr_data;
-+ unsigned int nr_irqs;
-+ struct irq_chip chip;
-+};
-+
-+void register_ipr_controller(struct ipr_desc *);
-+*/
-+
-+typedef unsigned char intc_enum;
-+
-+struct intc_vect {
-+ intc_enum enum_id;
-+ unsigned short vect;
-+};
-+
-+#define INTC_VECT(enum_id, vect) { enum_id, vect }
-+#define INTC_IRQ(enum_id, irq) INTC_VECT(enum_id, irq2evt(irq))
-+
-+struct intc_group {
-+ intc_enum enum_id;
-+ intc_enum enum_ids[32];
-+};
-+
-+#define INTC_GROUP(enum_id, ids...) { enum_id, { ids } }
-+
-+struct intc_mask_reg {
-+ unsigned long set_reg, clr_reg, reg_width;
-+ intc_enum enum_ids[32];
-+#ifdef CONFIG_SMP
-+ unsigned long smp;
-+#endif
-+};
-+
-+struct intc_prio_reg {
-+ unsigned long set_reg, clr_reg, reg_width, field_width;
-+ intc_enum enum_ids[16];
-+#ifdef CONFIG_SMP
-+ unsigned long smp;
-+#endif
-+};
-+
-+struct intc_sense_reg {
-+ unsigned long reg, reg_width, field_width;
-+ intc_enum enum_ids[16];
-+};
-+
-+#ifdef CONFIG_SMP
-+#define INTC_SMP(stride, nr) .smp = (stride) | ((nr) << 8)
-+#else
-+#define INTC_SMP(stride, nr)
-+#endif
-+
-+struct intc_desc {
-+ struct intc_vect *vectors;
-+ unsigned int nr_vectors;
-+ struct intc_group *groups;
-+ unsigned int nr_groups;
-+ struct intc_mask_reg *mask_regs;
-+ unsigned int nr_mask_regs;
-+ struct intc_prio_reg *prio_regs;
-+ unsigned int nr_prio_regs;
-+ struct intc_sense_reg *sense_regs;
-+ unsigned int nr_sense_regs;
-+ char *name;
-+};
-+
-+#define _INTC_ARRAY(a) a, sizeof(a)/sizeof(*a)
-+#define DECLARE_INTC_DESC(symbol, chipname, vectors, groups, \
-+ mask_regs, prio_regs, sense_regs) \
-+struct intc_desc symbol __initdata = { \
-+ _INTC_ARRAY(vectors), _INTC_ARRAY(groups), \
-+ _INTC_ARRAY(mask_regs), _INTC_ARRAY(prio_regs), \
-+ _INTC_ARRAY(sense_regs), \
-+ chipname, \
-+}
-+
-+void __init register_intc_controller(struct intc_desc *desc);
-+int intc_set_priority(unsigned int irq, unsigned int prio);
-+
-+void __init plat_irq_setup(void);
-+
-+enum { IRQ_MODE_IRQ, IRQ_MODE_IRQ7654, IRQ_MODE_IRQ3210,
-+ IRQ_MODE_IRL7654_MASK, IRQ_MODE_IRL3210_MASK,
-+ IRQ_MODE_IRL7654, IRQ_MODE_IRL3210 };
-+void __init plat_irq_setup_pins(int mode);
-+
- static inline void hw_resend_irq(struct hw_interrupt_type *h, unsigned int i)
- {
- /* Nothing to do */
-diff -ru linux-2.6.17.old/include/asm-sh/rtc.h linux-2.6.17/include/asm-sh/rtc.h
---- linux-2.6.17.old/include/asm-sh/rtc.h 2009-12-21 10:27:23.566444610 +0200
-+++ linux-2.6.17/include/asm-sh/rtc.h 2009-12-21 10:29:58.716840103 +0200
-@@ -25,5 +25,7 @@
- #define RCR2_RESET 0x02 /* Reset bit */
- #define RCR2_START 0x01 /* Start bit */
-
-+#define RTC_CAP_4_DIGIT_YEAR (1 << 0)
-+
- #endif /* __KERNEL__ */
- #endif /* _ASM_RTC_H */
-diff -ru linux-2.6.17.old/include/linux/rtc.h linux-2.6.17/include/linux/rtc.h
---- linux-2.6.17.old/include/linux/rtc.h 2006-06-18 04:49:35.000000000 +0300
-+++ linux-2.6.17/include/linux/rtc.h 2009-12-21 10:29:58.716840103 +0200
-@@ -172,7 +172,8 @@
- struct rtc_wkalrm *alrm);
- extern int rtc_set_alarm(struct class_device *class_dev,
- struct rtc_wkalrm *alrm);
--extern void rtc_update_irq(struct class_device *class_dev,
-+
-+extern void rtc_update_irq(struct rtc_device *rtc,
- unsigned long num, unsigned long events);
-
- extern struct class_device *rtc_class_open(char *name);
-diff -ru linux-2.6.17.old/include/linux/serial_sci.h linux-2.6.17/include/linux/serial_sci.h
---- linux-2.6.17.old/include/linux/serial_sci.h 2009-12-21 10:33:00.536412963 +0200
-+++ linux-2.6.17/include/linux/serial_sci.h 2009-12-21 10:29:58.716840103 +0200
-@@ -0,0 +1,32 @@
-+#ifndef __LINUX_SERIAL_SCI_H
-+#define __LINUX_SERIAL_SCI_H
-+
-+#include <linux/serial_core.h>
-+
-+/*
-+ * Generic header for SuperH SCI(F) (used by sh/sh64/h8300 and related parts)
-+ */
-+
-+/* Offsets into the sci_port->irqs array */
-+enum {
-+ SCIx_ERI_IRQ,
-+ SCIx_RXI_IRQ,
-+ SCIx_TXI_IRQ,
-+ SCIx_BRI_IRQ,
-+ SCIx_NR_IRQS,
-+};
-+
-+/*
-+ * Platform device specific platform_data struct
-+ */
-+struct plat_sci_port {
-+ void __iomem *membase; /* io cookie */
-+ unsigned long mapbase; /* resource base */
-+ unsigned int irqs[SCIx_NR_IRQS]; /* ERI, RXI, TXI, BRI */
-+ unsigned int type; /* SCI / SCIF / IRDA */
-+ upf_t flags; /* UPF_* flags */
-+};
-+
-+int early_sci_setup(struct uart_port *port);
-+
-+#endif /* __LINUX_SERIAL_SCI_H */
diff --git a/recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/unexpected-int-fix.patch b/recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/unexpected-int-fix.patch
deleted file mode 100644
index bf2d2a5..0000000
--- a/recipes-kernel/linux/linux-jlime-jornada6xx-2.6.17/unexpected-int-fix.patch
+++ /dev/null
@@ -1,17 +0,0 @@
---- linux-2.6.17-vanilla/drivers/ide/ide-io.c 2006-06-18 01:49:35.000000000 +0000
-+++ linux-2.6.17/drivers/ide/ide-io.c 2006-07-06 14:18:13.000000000 +0000
-@@ -1442,10 +1442,10 @@
- ++count;
- if (time_after(jiffies, last_msgtime + HZ)) {
- last_msgtime = jiffies;
-- printk(KERN_ERR "%s%s: unexpected interrupt, "
-- "status=0x%02x, count=%ld\n",
-- hwif->name,
-- (hwif->next==hwgroup->hwif) ? "" : "(?)", stat, count);
-+ //printk(KERN_ERR "%s%s: unexpected interrupt, "
-+ // "status=0x%02x, count=%ld\n",
-+ // hwif->name,
-+ // (hwif->next==hwgroup->hwif) ? "" : "(?)", stat, count);
- }
- }
- }
diff --git a/recipes-kernel/linux/linux-jlime-jornada6xx_2.6.17.bb b/recipes-kernel/linux/linux-jlime-jornada6xx_2.6.17.bb
deleted file mode 100644
index 6a419e4..0000000
--- a/recipes-kernel/linux/linux-jlime-jornada6xx_2.6.17.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-DESCRIPTION = "JLime Linux kernel for SuperH based Jornada 6xx"
-SECTION = "kernel"
-LICENSE = "GPLv2"
-
-COMPATIBLE_MACHINE = "jornada6xx"
-
-SRC_URI = "${KERNELORG_MIRROR}/linux/kernel/v2.6/linux-2.6.17.tar.bz2 \
- file://defconfig_jlime \
- file://LinuxSH-2.6.17.patch \
- file://alsa_hp6xx_2.6.17.patch \
- file://rtc-2.6.17.patch \
- file://unexpected-int-fix.patch \
- file://keymap-fix.patch \
- file://io.h-fix.patch \
- file://keyboard-fix-deadkeys.patch"
-
-S = "${WORKDIR}/linux-${PV}"
-
-inherit kernel
-
-#Lets let 3.4.x handle the compilation of this one
-KERNEL_CCSUFFIX = "-3.4.4"
-
-ARCH = "sh"
-FILES_kernel-image = "/boot/${KERNEL_IMAGETYPE}*"
-
-do_configure_prepend() {
- install -m 0644 ${WORKDIR}/defconfig_jlime ${S}/.config
-}
-SRC_URI[md5sum] = "37ddefe96625502161f075b9d907f21e"
-SRC_URI[sha256sum] = "ab0f647d52f124958439517df9e1ae0efda90cdb851f59f522fa1749f1d87d58"
diff --git a/recipes-kernel/linux/linux-jlime-jornada7xx_2.6.37+git.bb b/recipes-kernel/linux/linux-jlime-jornada7xx_2.6.37+git.bb
deleted file mode 100644
index f056c6f..0000000
--- a/recipes-kernel/linux/linux-jlime-jornada7xx_2.6.37+git.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SECTION = "kernel"
-DESCRIPTION = "JLime Linux kernel for Arm based Jornada 7xx"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
-PR = "r0"
-
-SRCREV="7ee4a9696f324ee5b721904b24591ed7b8ab6504"
-
-COMPATIBLE_HOST = "arm.*-linux"
-COMPATIBLE_MACHINE = "jornada7xx"
-
-SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kristoffer/linux-hpc.git;protocol=git;branch=v2.6.37-hpc"
-
-S = "${WORKDIR}/git"
-
-inherit kernel
-
-ARCH = "arm"
-
-FILES_kernel-image = "/boot/${KERNEL_IMAGETYPE}*"
-
-do_configure_prepend() {
- install -m 0644 ${S}/arch/arm/configs/jornada720_defconfig ${S}/.config
-}