From e8bfd5e0314d63e3f9a0fe012d7d8f032ae10fbb Mon Sep 17 00:00:00 2001 From: Michael Lauer Date: Sun, 11 Sep 2005 17:21:12 +0000 Subject: remove older version of sharp pxa27x kernel, the new version works with all models --- .../.mtn2git_empty | 0 .../1764-1.patch | 16 - .../CPAR050218.patch | 422 - .../P01-C3000-clockup_050221.patch | 202 - .../P02++050226.patch | 221 - .../P02-C3000-voltage_050221.patch | 179 - .../P03-C3000-SIGSTOP_FIX_041207.patch | 195 - .../P04-C3000-UNICON_041206.patch | 40089 ------------------- .../P05-C3000-TSPRESSURE_041207.patch | 235 - .../P06-C3000-WRITETS_041206.patch | 107 - .../P07-C3000-KBDDEV_041206.patch | 115 - .../P08-rtc-mremap-mremap2nd-fix_041213.patch | 140 - .../P09-ext3-isofs-fix_041216.patch | 359 - .../P10-ntfs-fix_041216.patch | 25 - .../P11-bluetooth-mh18_041216.patch | 16593 -------- .../P12-fbcon-fix_041219.patch | 51 - .../P14-lowlatency_041221.patch | 1677 - .../P17-bvdd_050222.patch | 1506 - .../P18-detailed_battery_050309.patch | 102 - .../add-oz-release-string.patch | 24 - .../armdeffix.patch | 13 - .../bluecard_cs.patch | 11 - .../compile.patch | 14 - .../corgi-default-brightness.patch | 19 - .../corgi-fbcon-logo.patch | 281 - .../defconfig-akita | 1311 - .../defconfig-spitz | 1309 - .../deviceinfo.patch | 26 - .../disable-pcmcia-probe.patch | 17 - .../idecs.patch | 78 - .../initsh.patch | 14 - .../logo.patch | 2598 -- .../saner-spitz-keymap.patch | 225 - .../swap-performance.patch | 19 - .../tosa_ts.patch | 207 - ...penzaurus-pxa27x_2.4.20-rmk2-embedix20050228.bb | 97 - ...penzaurus-pxa27x_2.4.20-rmk2-embedix20050602.bb | 4 +- 37 files changed, 2 insertions(+), 68499 deletions(-) delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/.mtn2git_empty delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/1764-1.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/CPAR050218.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P01-C3000-clockup_050221.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P02++050226.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P02-C3000-voltage_050221.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P03-C3000-SIGSTOP_FIX_041207.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P04-C3000-UNICON_041206.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P05-C3000-TSPRESSURE_041207.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P06-C3000-WRITETS_041206.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P07-C3000-KBDDEV_041206.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P08-rtc-mremap-mremap2nd-fix_041213.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P09-ext3-isofs-fix_041216.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P10-ntfs-fix_041216.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P11-bluetooth-mh18_041216.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P12-fbcon-fix_041219.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P14-lowlatency_041221.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P17-bvdd_050222.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P18-detailed_battery_050309.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/add-oz-release-string.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/armdeffix.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/bluecard_cs.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/compile.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/corgi-default-brightness.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/corgi-fbcon-logo.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/defconfig-akita delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/defconfig-spitz delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/deviceinfo.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/disable-pcmcia-probe.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/idecs.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/initsh.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/logo.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/saner-spitz-keymap.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/swap-performance.patch delete mode 100644 packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/tosa_ts.patch delete mode 100644 packages/linux/openzaurus-pxa27x_2.4.20-rmk2-embedix20050228.bb diff --git a/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/.mtn2git_empty b/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/.mtn2git_empty deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/1764-1.patch b/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/1764-1.patch deleted file mode 100644 index 0b660f3521..0000000000 --- a/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/1764-1.patch +++ /dev/null @@ -1,16 +0,0 @@ -__arch_strncpy_from_user needs to be exported if you build the framebuffer console driver as a module. - -Cheers, - -Ian. - ---- linux-2.6-bkpxa.orig/arch/arm/kernel/armksyms.c 2004-02-27 10:35:29.000000000 +0000 -+++ linux-2.6-bkpxa/arch/arm/kernel/armksyms.c 2004-02-27 14:55:02.000000000 +0000 -@@ -187,6 +187,7 @@ - EXPORT_SYMBOL(__arch_copy_to_user); - EXPORT_SYMBOL(__arch_clear_user); - EXPORT_SYMBOL(__arch_strnlen_user); -+EXPORT_SYMBOL(__arch_strncpy_from_user); - - /* consistent area handling */ - EXPORT_SYMBOL(consistent_alloc); diff --git a/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/CPAR050218.patch b/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/CPAR050218.patch deleted file mode 100644 index a0b866219b..0000000000 --- a/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/CPAR050218.patch +++ /dev/null @@ -1,422 +0,0 @@ ---- 050125/include/asm-arm/proc-armv/ptrace.h Tue Jan 25 00:22:44 2005 -+++ 050218/include/asm-arm/proc-armv/ptrace.h Thu Feb 17 16:13:54 2005 -@@ -40,6 +40,10 @@ - - struct pt_regs { - long uregs[18]; -+#if defined(CONFIG_CPU_PXA27X) -+ long cpar; -+ long mmx[ 16*2 + 6 + 1 ]; -+#endif - }; - - #define ARM_cpsr uregs[16] ---- 050125/include/asm-arm/sigcontext.h Tue Jan 25 00:22:42 2005 -+++ 050218/include/asm-arm/sigcontext.h Thu Feb 17 18:16:28 2005 -@@ -28,6 +28,10 @@ - unsigned long arm_pc; - unsigned long arm_cpsr; - unsigned long fault_address; -+#if defined(CONFIG_CPU_PXA27X) -+ unsigned long arm_cpar; -+ unsigned long arm_mmx[ 16*2 + 6 + 1 ]; -+#endif - }; - - ---- 050125/include/asm-arm/elf.h Tue Jan 25 00:54:49 2005 -+++ 050218/include/asm-arm/elf.h Thu Feb 17 16:19:02 2005 -@@ -1,6 +1,8 @@ - #ifndef __ASMARM_ELF_H - #define __ASMARM_ELF_H - -+#include -+ - /* - * ELF register definitions.. - */ -@@ -14,6 +16,7 @@ - - #define EM_ARM 40 - #define EF_ARM_APCS26 0x08 -+#define EF_ARM_SOFT_FLOAT 0x200 - - #define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t)) - typedef elf_greg_t elf_gregset_t[ELF_NGREG]; ---- 050125/arch/arm/kernel/entry-armv.S Tue Jan 25 00:21:45 2005 -+++ 050218/arch/arm/kernel/entry-armv.S Fri Feb 18 07:29:34 2005 -@@ -271,7 +271,7 @@ - tst \irqstat, #IRQ_MASK_DOORBELLHOST - movne \irqnr, #IRQ_DOORBELLHOST - bne 1001f -- -+ - tst \irqstat, #IRQ_MASK_I2OINPOST - movne \irqnr, #IRQ_I2OINPOST - bne 1001f -@@ -494,12 +494,12 @@ - - #elif defined(CONFIG_ARCH_L7200) - #include -- -+ - .equ irq_base_addr, IO_BASE_2 - - .macro disable_fiq - .endm -- -+ - .macro get_irqnr_and_base, irqnr, irqstat, base, tmp - mov \irqstat, #irq_base_addr @ Virt addr IRQ regs - add \irqstat, \irqstat, #0x00001000 @ Status reg -@@ -589,7 +589,7 @@ - .endm - - .macro get_irqnr_and_base, irqnr, irqstat, base, tmp -- -+ - /* Read all interrupts pending... */ - ldr \irqnr, =IO_ADDRESS(PLAT_PERIPHERAL_BASE) + OMAHA_INTPND - ldr \irqstat, [\irqnr] /* INTPND */ -@@ -607,7 +607,7 @@ - .endm - - .macro irq_prio_table -- .endm -+ .endm - - #elif defined(CONFIG_ARCH_CLPS711X) - -@@ -654,23 +654,23 @@ - - .macro irq_prio_table - .endm -- -+ - #elif defined (CONFIG_ARCH_CAMELOT) - #include - #undef IRQ_MODE /* same name defined in asm/proc/ptrace.h */ - #include -- -+ - .macro disable_fiq - .endm - - .macro get_irqnr_and_base, irqnr, irqstat, base, tmp -- -+ - ldr \irqstat, =INT_ID(IO_ADDRESS(EXC_INT_CTRL00_BASE)) -- ldr \irqnr,[\irqstat] -+ ldr \irqnr,[\irqstat] - cmp \irqnr,#0 - subne \irqnr,\irqnr,#1 - -- -+ - .endm - - .macro irq_prio_table -@@ -910,7 +910,7 @@ - mov pc, r7 @ check, if this is a relevant code - cmp r0, #0 @ check return value - beq 1f @ else let linux do what it has to do --2: -+2: - #endif - #ifndef CONFIG_KGDB - adrsvc al, r9, 1f @ r9 = normal FP return -@@ -977,6 +977,9 @@ - stmia r5, {r2 - r4} @ Save USR pc, cpsr, old_r0 - stmdb r5, {sp, lr}^ - alignment_trap r7, r7, __temp_abt -+#ifdef CONFIG_CPU_PXA27X -+ save_user_mmx -+#endif - zero_fp - mov r0, r2 @ remove once everyones in sync - #ifdef MULTI_CPU -@@ -1001,6 +1004,9 @@ - stmia r8, {r5 - r7} @ save pc, psr, old_r0 - stmdb r8, {sp, lr}^ - alignment_trap r4, r7, __temp_irq -+#ifdef CONFIG_CPU_PXA27X -+ save_user_mmx -+#endif - zero_fp - get_current_task tsk - #ifdef CONFIG_PREEMPT -@@ -1039,6 +1045,9 @@ - stmia r8, {r5 - r7} @ Save USR pc, cpsr, old_r0 - stmdb r8, {sp, lr}^ @ Save user sp, lr - alignment_trap r4, r7, __temp_und -+#ifdef CONFIG_CPU_PXA27X -+ save_user_mmx -+#endif - zero_fp - tst r6, #T_BIT @ Thumb mode - bne fpundefinstr -@@ -1068,6 +1077,9 @@ - stmia r8, {r5 - r7} @ Save USR pc, cpsr, old_r0 - stmdb r8, {sp, lr}^ @ Save sp_usr lr_usr - alignment_trap r4, r7, __temp_abt -+#ifdef CONFIG_CPU_PXA27X -+ save_user_mmx -+#endif - zero_fp - mov r0, #MODE_SVC - msr cpsr_c, r0 @ Enable interrupts -@@ -1394,7 +1406,7 @@ - stmfd sp!, {r4, r5} - #endif - mrc p15, 0, r2, c3, c0 -- str r2, [sp, #-4]! -+ str r2, [sp, #-4]! - - ldr r2, [r0] - str sp, [r2] ---- 050125/arch/arm/kernel/entry-header.S Tue Jan 25 00:21:45 2005 -+++ 050218/arch/arm/kernel/entry-header.S Thu Feb 17 20:15:24 2005 -@@ -42,9 +42,44 @@ - @ Stack format (ensured by USER_* and SVC_*) - @ - #ifdef CONFIG_CPU_32 --#define S_FRAME_SIZE 72 --#define S_OLD_R0 68 --#define S_PSR 64 -+#ifdef CONFIG_CPU_PXA27X -+ #define S_MMX 80 -+ -+ #define MMX_WR0 (0x00) -+ #define MMX_WR1 (0x08) -+ #define MMX_WR2 (0x10) -+ #define MMX_WR3 (0x18) -+ #define MMX_WR4 (0x20) -+ #define MMX_WR5 (0x28) -+ #define MMX_WR6 (0x30) -+ #define MMX_WR7 (0x38) -+ #define MMX_WR8 (0x40) -+ #define MMX_WR9 (0x48) -+ #define MMX_WR10 (0x50) -+ #define MMX_WR11 (0x58) -+ #define MMX_WR12 (0x60) -+ #define MMX_WR13 (0x68) -+ #define MMX_WR14 (0x70) -+ #define MMX_WR15 (0x78) -+ #define MMX_WCSSF (0x80) -+ #define MMX_WCASF (0x84) -+ #define MMX_WCGR0 (0x88) -+ #define MMX_WCGR1 (0x8C) -+ #define MMX_WCGR2 (0x90) -+ #define MMX_WCGR3 (0x94) -+ -+ #define MMX_SIZE (0x98) -+ -+ #define S_FRAME_SIZE (76+4+MMX_SIZE) -+ -+ #define S_CPAR 72 -+ #define S_OLD_R0 68 -+ #define S_PSR 64 -+#else -+ #define S_FRAME_SIZE 72 -+ #define S_OLD_R0 68 -+ #define S_PSR 64 -+#endif - #else - #define S_FRAME_SIZE 68 - #define S_OLD_R0 64 -@@ -88,6 +123,43 @@ - set_cpsr_c \temp, #MODE_SVC - .endm - -+#ifdef CONFIG_CPU_PXA27X -+ .macro save_user_mmx -+ mrc p15, 0, r0, c15, c1, 0 -+ str r0, [sp, #S_CPAR] @ Save CPAR -+ cmp r0, #3 -+ bne 1f -+ add r0,sp,#S_MMX @ StoreMMX -+ bic r0, r0, #7 -+ wstrw wCSSF, [r0, #MMX_WCSSF] -+ wstrw wCASF, [r0, #MMX_WCASF] -+ wstrw wCGR0, [r0, #MMX_WCGR0] -+ wstrw wCGR1, [r0, #MMX_WCGR1] -+ wstrw wCGR2, [r0, #MMX_WCGR2] -+ wstrw wCGR3, [r0, #MMX_WCGR3] -+ wstrd wR0, [r0, #MMX_WR0] -+ wstrd wR1, [r0, #MMX_WR1] -+ wstrd wR2, [r0, #MMX_WR2] -+ wstrd wR3, [r0, #MMX_WR3] -+ wstrd wR4, [r0, #MMX_WR4] -+ wstrd wR5, [r0, #MMX_WR5] -+ wstrd wR6, [r0, #MMX_WR6] -+ wstrd wR7, [r0, #MMX_WR7] -+ wstrd wR8, [r0, #MMX_WR8] -+ wstrd wR9, [r0, #MMX_WR9] -+ wstrd wR10, [r0, #MMX_WR10] -+ wstrd wR11, [r0, #MMX_WR11] -+ wstrd wR12, [r0, #MMX_WR12] -+ wstrd wR13, [r0, #MMX_WR13] -+ wstrd wR14, [r0, #MMX_WR14] -+ wstrd wR15, [r0, #MMX_WR15] -+1: -+ mov r0, #1 -+ mcr p15, 0, r0, c15, c1, 0 @ CP0 Only. -+ ldr r0, [sp] @ Restore R0 -+ .endm -+#endif -+ - .macro save_user_regs - sub sp, sp, #S_FRAME_SIZE - stmia sp, {r0 - r12} @ Calling r0 - r12 -@@ -97,12 +169,44 @@ - str lr, [sp, #S_PC] @ Save calling PC - str r8, [sp, #S_PSR] @ Save CPSR - str r0, [sp, #S_OLD_R0] @ Save OLD_R0 -+ save_user_mmx - .endm - - /* - * Must be called with IRQs already disabled. - */ - .macro restore_user_regs -+#ifdef CONFIG_CPU_PXA27X -+ ldr r1, [sp, #S_CPAR] -+ mcr p15, 0, r1, c15, c1, 0 -+ cmp r1, #3 -+ bne 2f -+ add r1,sp,#S_MMX @ LoadMMX -+ bic r1, r1, #7 -+ wldrd wR0, [r1, #MMX_WR0] -+ wldrd wR1, [r1, #MMX_WR1] -+ wldrd wR2, [r1, #MMX_WR2] -+ wldrd wR3, [r1, #MMX_WR3] -+ wldrd wR4, [r1, #MMX_WR4] -+ wldrd wR5, [r1, #MMX_WR5] -+ wldrd wR6, [r1, #MMX_WR6] -+ wldrd wR7, [r1, #MMX_WR7] -+ wldrd wR8, [r1, #MMX_WR8] -+ wldrd wR9, [r1, #MMX_WR9] -+ wldrd wR10, [r1, #MMX_WR10] -+ wldrd wR11, [r1, #MMX_WR11] -+ wldrd wR12, [r1, #MMX_WR12] -+ wldrd wR13, [r1, #MMX_WR13] -+ wldrd wR14, [r1, #MMX_WR14] -+ wldrd wR15, [r1, #MMX_WR15] -+ wldrw wCSSF, [r1, #MMX_WCSSF] -+ wldrw wCASF, [r1, #MMX_WCASF] -+ wldrw wCGR0, [r1, #MMX_WCGR0] -+ wldrw wCGR1, [r1, #MMX_WCGR1] -+ wldrw wCGR2, [r1, #MMX_WCGR2] -+ wldrw wCGR3, [r1, #MMX_WCGR3] -+2: -+#endif - ldr r1, [sp, #S_PSR] @ Get calling cpsr - ldr lr, [sp, #S_PC]! @ Get PC - msr spsr, r1 @ save in spsr_svc -@@ -116,6 +220,37 @@ - * Must be called with IRQs already disabled. - */ - .macro fast_restore_user_regs -+#ifdef CONFIG_CPU_PXA27X -+ ldr r1, [sp, #S_OFF + S_CPAR] -+ mcr p15, 0, r1, c15, c1, 0 -+ cmp r1, #3 -+ bne 3f -+ add r1,sp,#S_OFF + S_MMX @ LoadMMX -+ bic r1, r1, #7 -+ wldrd wR0, [r1, #MMX_WR0] -+ wldrd wR1, [r1, #MMX_WR1] -+ wldrd wR2, [r1, #MMX_WR2] -+ wldrd wR3, [r1, #MMX_WR3] -+ wldrd wR4, [r1, #MMX_WR4] -+ wldrd wR5, [r1, #MMX_WR5] -+ wldrd wR6, [r1, #MMX_WR6] -+ wldrd wR7, [r1, #MMX_WR7] -+ wldrd wR8, [r1, #MMX_WR8] -+ wldrd wR9, [r1, #MMX_WR9] -+ wldrd wR10, [r1, #MMX_WR10] -+ wldrd wR11, [r1, #MMX_WR11] -+ wldrd wR12, [r1, #MMX_WR12] -+ wldrd wR13, [r1, #MMX_WR13] -+ wldrd wR14, [r1, #MMX_WR14] -+ wldrd wR15, [r1, #MMX_WR15] -+ wldrw wCSSF, [r1, #MMX_WCSSF] -+ wldrw wCASF, [r1, #MMX_WCASF] -+ wldrw wCGR0, [r1, #MMX_WCGR0] -+ wldrw wCGR1, [r1, #MMX_WCGR1] -+ wldrw wCGR2, [r1, #MMX_WCGR2] -+ wldrw wCGR3, [r1, #MMX_WCGR3] -+3: -+#endif - ldr r1, [sp, #S_OFF + S_PSR] @ get calling cpsr - ldr lr, [sp, #S_OFF + S_PC]! @ get pc - msr spsr, r1 @ save in spsr_svc ---- 050125/arch/arm/kernel/signal.c Tue Jan 25 00:21:45 2005 -+++ 050218/arch/arm/kernel/signal.c Thu Feb 17 18:22:10 2005 -@@ -198,6 +198,13 @@ - { - int err = 0; - -+#if defined(CONFIG_CPU_PXA27X) -+ int _m; -+ __get_user_error(regs->cpar, &sc->arm_cpar, err); -+ for( _m=0; _m<16*2 + 6 + 1; ++_m ) { -+ __get_user_error(regs->mmx[ _m ], &sc->arm_mmx[ _m ], err); -+ } -+#endif - __get_user_error(regs->ARM_r0, &sc->arm_r0, err); - __get_user_error(regs->ARM_r1, &sc->arm_r1, err); - __get_user_error(regs->ARM_r2, &sc->arm_r2, err); -@@ -312,6 +319,13 @@ - { - int err = 0; - -+#if defined(CONFIG_CPU_PXA27X) -+ int _m; -+ __put_user_error(regs->cpar, &sc->arm_cpar, err); -+ for( _m=0; _m<16*2 + 6 + 1; ++_m ) { -+ __put_user_error(regs->mmx[ _m ], &sc->arm_mmx[ _m ], err); -+ } -+#endif - __put_user_error(regs->ARM_r0, &sc->arm_r0, err); - __put_user_error(regs->ARM_r1, &sc->arm_r1, err); - __put_user_error(regs->ARM_r2, &sc->arm_r2, err); ---- 050125/arch/arm/Makefile Tue Jan 25 00:21:44 2005 -+++ 050218/arch/arm/Makefile Thu Feb 17 09:38:40 2005 -@@ -69,7 +69,8 @@ - - ifeq ($(CONFIG_ARCH_SHARP_SL),y) - CROSS_COMPILE = arm-linux- --arch-y :=-D__LINUX_ARM_ARCH__=4 -march=armv4 -Wa,-mxscale -+#arch-y :=-D__LINUX_ARM_ARCH__=4 -march=armv4 -Wa,-mxscale -+arch-y :=-D__LINUX_ARM_ARCH__=4 -Wa,-mcpu=iwmmxt - tune-y :=-mtune=strongarm - endif - -@@ -212,7 +213,7 @@ - MACHINE = omaha - endif - --ifeq ($(CONFIG_XIP_KERNEL),y) -+ifeq ($(CONFIG_XIP_KERNEL),y) - DATAADDR := $(TEXTADDR) - # Replace phys addr with virt addr while keeping offset from base. - # Virt base addr also defined in include/asm-arm/arch-*/hardware.h ---- 050125/fs/binfmt_elf.c Tue Jan 25 00:22:37 2005 -+++ 050218/fs/binfmt_elf.c Thu Feb 17 08:52:54 2005 -@@ -815,6 +815,15 @@ - ELF_PLAT_INIT(regs); - #endif - -+#if defined(CONFIG_CPU_PXA27X) -+ if( elf_ex.e_flags & EF_ARM_SOFT_FLOAT ) { -+ regs->cpar = 0x03; //CP0 CP1 Used. -+ } -+ else { -+ regs->cpar = 0x01; //CP0 Only. -+ } -+#endif -+ - start_thread(regs, elf_entry, bprm->p); - if (current->ptrace & PT_PTRACED) - send_sig(SIGTRAP, current, 0); diff --git a/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P01-C3000-clockup_050221.patch b/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P01-C3000-clockup_050221.patch deleted file mode 100644 index d193f23733..0000000000 --- a/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P01-C3000-clockup_050221.patch +++ /dev/null @@ -1,202 +0,0 @@ -diff -Nur c3000_org/linux/arch/arm/config.in c3000_work/linux/arch/arm/config.in ---- c3000_org/linux/arch/arm/config.in 2004-08-21 09:48:07.000000000 +0900 -+++ c3000_work/linux/arch/arm/config.in 2005-02-21 21:41:40.000000000 +0900 -@@ -195,7 +195,7 @@ - dep_bool ' SHARP Spitz' CONFIG_ARCH_PXA_SPITZ $CONFIG_ARCH_PXA_BOXER - dep_bool ' Using Trial 0' CONFIG_SPITZ_TR0 $CONFIG_ARCH_PXA_SPITZ - dep_bool ' Using Trial 0.5' CONFIG_SPITZ_TR0_5 $CONFIG_ARCH_PXA_SPITZ --dep_bool ' SHARP Tosa' CONFIG_ARCH_PXA_TOSA -+dep_bool ' SHARP Tosa' CONFIG_ARCH_PXA_TOSA $CONFIG_ARCH_PXA - dep_bool ' SHARP Tosa skipping' CONFIG_ARCH_PXA_TOSA_SKIP $CONFIG_ARCH_PXA_TOSA - - if [ "$CONFIG_SABINAL_DISCOVERY" = "y" -o "$CONFIG_ARCH_PXA_POODLE" = "y" -o \ -@@ -475,6 +475,9 @@ - if [ "$CONFIG_ARCH_PXA_SPITZ" = "y" ]; then - define_bool CONFIG_CPU_PXA27X y - fi -+ if [ "$CONFIG_ARCH_PXA_SPITZ" = "y" ]; then -+ bool 'Use clock change(cccr_change) enable (EXPERIMENTAL)' CONFIG_SL_CCCR_CHANGE -+ fi - if [ "$CONFIG_ARCH_SHARP_SL" = "y" ]; then - define_bool CONFIG_BATT y - fi -@@ -557,7 +560,7 @@ - # bool ' Real-Time Scheduling support' CONFIG_RTSCHED - define_bool CONFIG_RTSCHED y - if [ "$CONFIG_RTSCHED" = "y" ]; then -- int ' MAX PTHREAD (int)' CONFIG_RTH_PTHREAD_MAX 128 -+ int ' MAX PTHREAD (int)' CONFIG_RTH_PTHREAD_MAX 128 - hex ' RT MEMORY SIZE (hex)' CONFIG_RT_MEM_SIZE 80000 - bool ' Real-Time Calibrate support' CONFIG_RTHAL_CALIBRATION - if [ "$CONFIG_RTHAL_CALIBRATION" != "y" ]; then -@@ -615,7 +618,7 @@ - hex 'Compressed ROM boot loader BSS address' CONFIG_ZBOOT_ROM_BSS 0 - else - define_hex CONFIG_ZBOOT_ROM_TEXT 0 -- define_hex CONFIG_ZBOOT_ROM_BSS 0 -+ define_hex CONFIG_ZBOOT_ROM_BSS 0 - fi - - if [ "$CONFIG_ARCH_SA1100" = "y" -o \ -diff -Nur c3000_org/linux/arch/arm/mach-pxa/sharpsl_apm.c c3000_work/linux/arch/arm/mach-pxa/sharpsl_apm.c ---- c3000_org/linux/arch/arm/mach-pxa/sharpsl_apm.c 2004-11-16 15:31:06.000000000 +0900 -+++ c3000_work/linux/arch/arm/mach-pxa/sharpsl_apm.c 2005-02-21 21:44:13.000000000 +0900 -@@ -130,6 +130,11 @@ - extern int HWR_flag; - #endif - -+#if defined(CONFIG_SL_CCCR_CHANGE) -+extern unsigned int CCCR_ValAdr_high; -+struct proc_dir_entry *proc_zaurus; -+#endif -+ - #if defined(CONFIG_SABINAL_DISCOVERY) - #define SHARPSL_AC_LINE_STATUS (( ASIC3_GPIO_PSTS_D & AC_IN )? APM_AC_OFFLINE : APM_AC_ONLINE) - #define BACKPACK_IN_DETECT() ( ASIC3_GPIO_PSTS_D & BACKPACK_DETECT ) /* 0: exist , 1: not in */ -@@ -974,6 +979,63 @@ - - EXPORT_SYMBOL(lock_FCS); - -+#if defined(CONFIG_SL_CCCR_CHANGE) -+ -+void write_cccr(int cccr) -+{ -+ printk("Change CCCR = %x.\n",cccr); -+ CCCR_ValAdr_high = cccr; -+ sharpsl_chg_freq = cccr; -+ cpu_xscale_sl_change_speed_high(); -+ cccr_reg = CCCR; -+ printk("Changed CCCR = %x.\n",cccr_reg); -+ return; -+} -+ -+int read_cccr(void) -+{ -+ return CCCR_ValAdr_high; -+} -+ -+static ssize_t cccr_change_read_params(struct file *file, char *buf, -+ size_t nbytes, loff_t *ppos) -+{ -+ char outputbuf[32]; -+ int count; -+ -+ if (*ppos>0) /* Assume reading completed in previous read*/ -+ return 0; -+ count = sprintf(outputbuf, "0x%08X\n", read_cccr()); -+ count++; -+ *ppos += count; -+ if (count>nbytes)/* Assume output can be read at one time */ -+ return -EINVAL; -+ if (copy_to_user(buf, outputbuf, count+1)) -+ return -EFAULT; -+ return count; -+} -+ -+static ssize_t cccr_change_write_params(struct file *file, const char *buf, -+ size_t nbytes, loff_t *ppos) -+{ -+ unsigned int param=0; -+ -+ sscanf(buf,"%x",¶m); -+ if (param) { -+ write_cccr(param); -+ } -+ return nbytes; -+} -+ -+static struct file_operations proc_cccr_change_params_operations = { -+ read:cccr_change_read_params, -+ write:cccr_change_write_params, -+}; -+ -+EXPORT_SYMBOL(read_cccr); -+EXPORT_SYMBOL(write_cccr); -+#endif -+ - #ifdef CONFIG_APM_CPU_IDLE - #ifdef SHARPSL_NEW_IDLE - static int save_icmr; -@@ -2786,6 +2848,7 @@ - struct proc_dir_entry *apm_proc; - struct proc_dir_entry *lock_fcs_proc; - struct proc_dir_entry *power_mode_proc; -+ struct proc_dir_entry *cccr_change_proc; - - apm_info.bios = apm_bios_info; - if (apm_info.bios.version == 0) { -@@ -2822,6 +2885,9 @@ - printk("FCS : CCCR = %x\n",cccr_reg); - #if defined(CONFIG_CPU_PXA27X) - sharpsl_chg_freq = cccr_reg; -+#if defined(CONFIG_SL_CCCR_CHANGE) -+ CCCR_ValAdr_high = sharpsl_chg_freq; -+#endif - #endif - #endif - -@@ -2902,6 +2968,19 @@ - power_mode_proc->proc_fops = &proc_power_mode_params_operations; - } - -+#if defined(CONFIG_SL_CCCR_CHANGE) -+ proc_zaurus = proc_mkdir("zaurus", NULL); -+ if (proc_zaurus == NULL) { -+ unregister_chrdev(228, "zaurus"); -+ printk(KERN_ERR "proc: can't create /proc/zaurus\n"); -+ return -ENOMEM; -+ } -+ -+ cccr_change_proc = create_proc_entry("zaurus/CCCR", 0, NULL); -+ if (cccr_change_proc) { -+ cccr_change_proc->proc_fops = &proc_cccr_change_params_operations; -+ } -+#endif - kernel_thread(apm_thread, NULL, CLONE_FS | CLONE_FILES | CLONE_SIGHAND | SIGCHLD); - - #if defined(CONFIG_SABINAL_DISCOVERY) || defined(CONFIG_ARCH_PXA_TOSA) -diff -Nur c3000_org/linux/arch/arm/mach-pxa/sharpsl_suspend.S c3000_work/linux/arch/arm/mach-pxa/sharpsl_suspend.S ---- c3000_org/linux/arch/arm/mach-pxa/sharpsl_suspend.S 2004-11-09 14:30:36.000000000 +0900 -+++ c3000_work/linux/arch/arm/mach-pxa/sharpsl_suspend.S 2005-02-21 21:41:40.000000000 +0900 -@@ -64,7 +64,7 @@ - - sleep_param: .word 0 @ virtual address of parameter array - sleep_param_p: .word 0 @ physical address of parameter array -- -+ - IC_BASE: .word io_p2v(0x40D00000) - - -@@ -1109,6 +1109,9 @@ - - #else /* CONFIG_CPU_PXA27X */ - -+#if defined(CONFIG_SL_CCCR_CHANGE) -+ .global CCCR_ValAdr_high -+#endif - CCCR_ValAdr_high: .word 0x02000210 - MSC0_ValAdr_high: .word 0x7ff02DD8 - MSC1_ValAdr_high: .word 0x7ff434D4 -@@ -1305,8 +1308,12 @@ - stmfd sp!, {r0, r1, r2, r3, r4, lr} - - ldr r0, CMR_BASE -+#if defined(CONFIG_SL_CCCR_CHANGE) -+ ldr r1, CCCR_ValAdr_high -+#else - ldr r1, CCCR_ValAdr_208 -- str r1, [r0, #CMR_CCCR] -+#endif -+ str r1, [r0, #CMR_CCCR] - - ldr r0, MD_BASE - ldr r4, MDREFR_ValAdr_208 -@@ -1333,7 +1340,7 @@ - - .align 5 - .text -- -+ - ENTRY(pxa27x_get_ccnt) - mrc p14, 0, r0, c1, c1, 0 - mov pc, lr @ return diff --git a/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P02++050226.patch b/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P02++050226.patch deleted file mode 100644 index d9c94e5ac1..0000000000 --- a/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P02++050226.patch +++ /dev/null @@ -1,221 +0,0 @@ ---- BASE/arch/arm/mach-pxa/pxa27x_power.c Sat Feb 26 01:35:47 2005 -+++ 050226/arch/arm/mach-pxa/pxa27x_power.c Sat Feb 26 02:01:45 2005 -@@ -152,6 +152,10 @@ - - #if defined(CONFIG_CHANGE_CORE_VOLT) - static unsigned char current_core_voltage = 0x1a; -+static unsigned char core_voltage_value = 0; -+extern unsigned int CCCR_ValAdr_high; -+#include -+static DECLARE_MUTEX(core_voltage_sem); - #endif - - void PrintParamTable(void); -@@ -397,9 +401,9 @@ - } - #endif //DEBUG - -+#if !defined(CONFIG_CHANGE_CORE_VOLT) - static void cpu_xscale_voltage_low(void) - { -- - pwr_i2c_open(); - pwr_i2c_write( 0x0c, 0x13 ); // 1.00V - SlewRate 1 - //pwr_i2c_write( 0x0c, 0x12 ); // 0.95V - SlewRate 1 -@@ -409,38 +413,90 @@ - static void cpu_xscale_voltage_high(void) - { - pwr_i2c_open(); --#if defined(CONFIG_CHANGE_CORE_VOLT) -- pwr_i2c_write( 0x0c, current_core_voltage ); -- pwr_i2c_close(); -- printk("current voltage %x\n", current_core_voltage ); --#else - pwr_i2c_write( 0x0c, 0x1a ); // 1.35V - SlewRate 1 - pwr_i2c_close(); --#endif - } -+#endif - - #if defined(CONFIG_CHANGE_CORE_VOLT) -+static void cpu_xscale_voltage_change(unsigned char value) -+{ -+ if(core_voltage_value!=value) { -+ core_voltage_value = value; -+ pwr_i2c_open(); -+ pwr_i2c_write( 0x0c, current_core_voltage ); -+ pwr_i2c_close(); -+ } -+} -+ -+void cpu_xscale_voltage_high(void) -+{ -+ down(&core_voltage_sem); -+ cpu_xscale_voltage_change(current_core_voltage); -+ up(&core_voltage_sem); -+} - void cpu_xscale_voltage_write(unsigned char value) - { - if (value > 0x10 ) - return; - value += 0x10; -+ down(&core_voltage_sem); -+ core_voltage_value = value; - pwr_i2c_open(); - pwr_i2c_write( 0x0c, value ); - pwr_i2c_close(); - current_core_voltage = value; -+ up(&core_voltage_sem); - printk("current voltage %x\n", current_core_voltage ); - - } -+ -+void cpu_xscale_sl_change_speed_high(void) -+{ -+ down(&core_voltage_sem); -+ cpu_xscale_voltage_change(current_core_voltage); -+ _cpu_xscale_sl_change_speed_high(); -+ up(&core_voltage_sem); -+} -+void cpu_xscale_sl_change_speed_low(void) -+{ -+ down(&core_voltage_sem); -+ _cpu_xscale_sl_change_speed_low(); -+ cpu_xscale_voltage_change(0x13); -+ up(&core_voltage_sem); -+} -+void cpu_xscale_sl_change_speed_91(void) -+{ -+ down(&core_voltage_sem); -+ _cpu_xscale_sl_change_speed_91(); -+ core_voltage_value = 0x13; -+ pwr_i2c_open(); -+ pwr_i2c_write( 0x0c, core_voltage_value ); -+ pwr_i2c_close(); -+ up(&core_voltage_sem); -+} -+void cpu_xscale_sl_change_speed_208(void) -+{ -+ down(&core_voltage_sem); -+ core_voltage_value = current_core_voltage; -+ pwr_i2c_open(); -+ pwr_i2c_write( 0x0c, core_voltage_value ); -+ pwr_i2c_close(); -+ _cpu_xscale_sl_change_speed_208(); -+ up(&core_voltage_sem); -+} -+ - #endif - - #if defined(DEBUG) || defined(CONFIG_CHANGE_CORE_VOLT) - unsigned char cpu_xscale_voltage_read(void) - { - unsigned char value=0xff; -+ down(&core_voltage_sem); - pwr_i2c_open(); - pwr_i2c_read( 0x0c, &value ); - pwr_i2c_close(); -+ up(&core_voltage_sem); - return value; - } - #endif -@@ -520,7 +576,7 @@ - sys_ctx.oier = OIER; - - #if defined(CONFIG_CPU_PXA27X) -- if ( CCCR != 0x02000210 ) { -+ if ( CCCR != CCCR_ValAdr_high ) { //0x02000210 ) { - cpu_xscale_sl_change_speed_high(); - } - #endif -@@ -571,8 +627,10 @@ - cpu_xscale_sl_disable_fastbus_mode(); - udelay(1); - cpu_xscale_sl_change_speed_91(); -+#if !defined(CONFIG_CHANGE_CORE_VOLT) - cpu_xscale_voltage_low(); - #endif -+#endif - - /* Scoop suspend */ - sharpsl_check_scoop_reg(); -@@ -790,7 +848,9 @@ - SCP2_REG_GPWR = sys_ctx.scp2_gpwr; - - #if defined(PXA27X_SUSPEND) -+#if !defined(CONFIG_CHANGE_CORE_VOLT) - cpu_xscale_voltage_high(); -+#endif - cpu_xscale_sl_change_speed_208(); - udelay(1); - cpu_xscale_sl_enable_fastbus_mode(); ---- BASE/arch/arm/mach-pxa/sharpsl_apm.c Sat Feb 26 01:35:52 2005 -+++ 050226/arch/arm/mach-pxa/sharpsl_apm.c Sat Feb 26 01:54:16 2005 -@@ -143,6 +143,7 @@ - #if defined(CONFIG_CHANGE_CORE_VOLT) - extern unsigned char cpu_xscale_voltage_read(void); - extern void cpu_xscale_voltage_write(unsigned char); -+extern void cpu_xscale_voltage_high(void); - #endif - - #if defined(CONFIG_SABINAL_DISCOVERY) -@@ -1389,6 +1390,9 @@ - - #if defined(CONFIG_CPU_PXA27X) - #if defined(CONFIG_FB_SHARPSL_PXA) -+#if defined(CONFIG_CHANGE_CORE_VOLT) -+ cpu_xscale_voltage_high(); -+#endif - while (1) { - if (!(LCCR0 & 0x1) || (GPLR(GPIO74_LCD_FCLK) & - GPIO_bit(GPIO74_LCD_FCLK))) ---- BASE/arch/arm/mach-pxa/sharpsl_suspend.S Sat Feb 26 01:35:42 2005 -+++ 050226/arch/arm/mach-pxa/sharpsl_suspend.S Sat Feb 26 01:54:16 2005 -@@ -1119,7 +1119,11 @@ - MDREFR_ValAdr_high_pre: .word 0x001BC00B - MDREFR_ValAdr_high: .word 0x001BC030 - -+#if defined(CONFIG_CHANGE_CORE_VOLT) -+ENTRY(_cpu_xscale_sl_change_speed_high) -+#else - ENTRY(cpu_xscale_sl_change_speed_high) -+#endif - stmfd sp!, {r0, r1, r2, r3, r4, lr} - - ldr r0, CMR_BASE -@@ -1168,7 +1172,11 @@ - @MDREFR_ValAdr_low: .word 0x0019C017 - MDREFR_ValAdr_low: .word 0x001BC017 - -+#if defined(CONFIG_CHANGE_CORE_VOLT) -+ENTRY(_cpu_xscale_sl_change_speed_low) -+#else - ENTRY(cpu_xscale_sl_change_speed_low) -+#endif - stmfd sp!, {r0, r1, r2, r3, r4, lr} - - ldr r0, CMR_BASE -@@ -1261,7 +1269,11 @@ - MDREFR_ValAdr_91_pre: .word 0x001BC00B - MDREFR_ValAdr_91: .word 0x001BC013 - -+#if defined(CONFIG_CHANGE_CORE_VOLT) -+ENTRY(_cpu_xscale_sl_change_speed_91) -+#else - ENTRY(cpu_xscale_sl_change_speed_91) -+#endif - stmfd sp!, {r0, r1, r2, r3, r4, lr} - - ldr r0, CMR_BASE -@@ -1304,7 +1316,11 @@ - MSC2_ValAdr_208: .word 0x7FF034D4 - MDREFR_ValAdr_208: .word 0x001BC00B - -+#if defined(CONFIG_CHANGE_CORE_VOLT) -+ENTRY(_cpu_xscale_sl_change_speed_208) -+#else - ENTRY(cpu_xscale_sl_change_speed_208) -+#endif - stmfd sp!, {r0, r1, r2, r3, r4, lr} - - ldr r0, CMR_BASE diff --git a/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P02-C3000-voltage_050221.patch b/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P02-C3000-voltage_050221.patch deleted file mode 100644 index 1663304aae..0000000000 --- a/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P02-C3000-voltage_050221.patch +++ /dev/null @@ -1,179 +0,0 @@ -diff -Nur c3000_pre/linux/arch/arm/config.in c3000_work/linux/arch/arm/config.in ---- c3000_pre/linux/arch/arm/config.in 2005-02-21 21:41:40.000000000 +0900 -+++ c3000_work/linux/arch/arm/config.in 2005-02-21 22:25:37.000000000 +0900 -@@ -478,6 +478,9 @@ - if [ "$CONFIG_ARCH_PXA_SPITZ" = "y" ]; then - bool 'Use clock change(cccr_change) enable (EXPERIMENTAL)' CONFIG_SL_CCCR_CHANGE - fi -+ if [ "$CONFIG_SL_CCCR_CHANGE" = "y" ]; then -+ bool 'Core voltage change enable (EXPERIMENTAL)' CONFIG_CHANGE_CORE_VOLT -+ fi - if [ "$CONFIG_ARCH_SHARP_SL" = "y" ]; then - define_bool CONFIG_BATT y - fi -diff -Nur c3000_pre/linux/arch/arm/mach-pxa/pxa27x_power.c c3000_work/linux/arch/arm/mach-pxa/pxa27x_power.c ---- c3000_pre/linux/arch/arm/mach-pxa/pxa27x_power.c 2004-11-04 14:13:54.000000000 +0900 -+++ c3000_work/linux/arch/arm/mach-pxa/pxa27x_power.c 2005-02-21 22:25:37.000000000 +0900 -@@ -150,6 +150,10 @@ - extern int sharpsl_main_bk_flag; - int sharpsl_request_off = 0; - -+#if defined(CONFIG_CHANGE_CORE_VOLT) -+static unsigned char current_core_voltage = 0x1a; -+#endif -+ - void PrintParamTable(void); - - int sharpsl_restart(void) -@@ -324,7 +328,7 @@ - return -1; - } - --#ifdef DEBUG -+#if defined(DEBUG) || defined(CONFIG_CHANGE_CORE_VOLT) - int pwr_i2c_read( unsigned char device, unsigned char *value ) - { - unsigned long r; -@@ -405,12 +409,33 @@ - static void cpu_xscale_voltage_high(void) - { - pwr_i2c_open(); -+#if defined(CONFIG_CHANGE_CORE_VOLT) -+ pwr_i2c_write( 0x0c, current_core_voltage ); -+ pwr_i2c_close(); -+ printk("current voltage %x\n", current_core_voltage ); -+#else - pwr_i2c_write( 0x0c, 0x1a ); // 1.35V - SlewRate 1 - pwr_i2c_close(); -+#endif -+} -+ -+#if defined(CONFIG_CHANGE_CORE_VOLT) -+void cpu_xscale_voltage_write(unsigned char value) -+{ -+ if (value > 0x10 ) -+ return; -+ value += 0x10; -+ pwr_i2c_open(); -+ pwr_i2c_write( 0x0c, value ); -+ pwr_i2c_close(); -+ current_core_voltage = value; -+ printk("current voltage %x\n", current_core_voltage ); -+ - } -+#endif - --#ifdef DEBUG --static unsigned char cpu_xscale_voltage_read(void) -+#if defined(DEBUG) || defined(CONFIG_CHANGE_CORE_VOLT) -+unsigned char cpu_xscale_voltage_read(void) - { - unsigned char value=0xff; - pwr_i2c_open(); -@@ -418,7 +443,9 @@ - pwr_i2c_close(); - return value; - } -+#endif - -+#if defined(DEBUG) - #define CLKCFG(a) asm("mrc p14, 0, %0, C6, C0, 0" : "=r"(a)) - static void __debug_printk(void) - { -diff -Nur c3000_pre/linux/arch/arm/mach-pxa/sharpsl_apm.c c3000_work/linux/arch/arm/mach-pxa/sharpsl_apm.c ---- c3000_pre/linux/arch/arm/mach-pxa/sharpsl_apm.c 2005-02-21 21:44:13.000000000 +0900 -+++ c3000_work/linux/arch/arm/mach-pxa/sharpsl_apm.c 2005-02-21 22:29:17.000000000 +0900 -@@ -135,6 +135,11 @@ - struct proc_dir_entry *proc_zaurus; - #endif - -+#if defined(CONFIG_CHANGE_CORE_VOLT) -+extern unsigned char cpu_xscale_voltage_read(void); -+extern void cpu_xscale_voltage_write(unsigned char); -+#endif -+ - #if defined(CONFIG_SABINAL_DISCOVERY) - #define SHARPSL_AC_LINE_STATUS (( ASIC3_GPIO_PSTS_D & AC_IN )? APM_AC_OFFLINE : APM_AC_ONLINE) - #define BACKPACK_IN_DETECT() ( ASIC3_GPIO_PSTS_D & BACKPACK_DETECT ) /* 0: exist , 1: not in */ -@@ -1036,6 +1041,58 @@ - EXPORT_SYMBOL(write_cccr); - #endif - -+#if defined(CONFIG_CHANGE_CORE_VOLT) -+ -+void write_vcore(int vcore) -+{ -+ printk("Change Core voltage = %x.\n", vcore); -+ cpu_xscale_voltage_write(vcore); -+ return; -+} -+ -+int read_vcore(void) -+{ -+ return cpu_xscale_voltage_read(); -+} -+ -+static ssize_t core_volt_read_params(struct file *file, char *buf, -+ size_t nbytes, loff_t *ppos) -+{ -+ char outputbuf[32]; -+ int count; -+ -+ if (*ppos>0) /* Assume reading completed in previous read*/ -+ return 0; -+ count = sprintf(outputbuf, "0x%02X\n", (unsigned int) cpu_xscale_voltage_read() ); -+ count++; -+ *ppos += count; -+ if (count>nbytes)/* Assume output can be read at one time */ -+ return -EINVAL; -+ if (copy_to_user(buf, outputbuf, count+1)) -+ return -EFAULT; -+ return count; -+} -+ -+static ssize_t core_volt_write_params(struct file *file, const char *buf, -+ size_t nbytes, loff_t *ppos) -+{ -+ unsigned int param=0; -+ -+ sscanf(buf,"%x",¶m); -+ if (param) { -+ write_vcore(param); -+ } -+ return nbytes; -+} -+ -+static struct file_operations proc_core_volt_params_operations = { -+ read:core_volt_read_params, -+ write:core_volt_write_params, -+}; -+EXPORT_SYMBOL(read_vcore); -+EXPORT_SYMBOL(write_vcore); -+#endif -+ - #ifdef CONFIG_APM_CPU_IDLE - #ifdef SHARPSL_NEW_IDLE - static int save_icmr; -@@ -2849,6 +2906,7 @@ - struct proc_dir_entry *lock_fcs_proc; - struct proc_dir_entry *power_mode_proc; - struct proc_dir_entry *cccr_change_proc; -+ struct proc_dir_entry *core_volt_proc; - - apm_info.bios = apm_bios_info; - if (apm_info.bios.version == 0) { -@@ -2981,6 +3039,14 @@ - cccr_change_proc->proc_fops = &proc_cccr_change_params_operations; - } - #endif -+ -+#if defined(CONFIG_CHANGE_CORE_VOLT) -+ core_volt_proc = create_proc_entry("zaurus/VCORE", 0, NULL); -+ if (core_volt_proc) { -+ core_volt_proc->proc_fops = &proc_core_volt_params_operations; -+ } -+#endif -+ - kernel_thread(apm_thread, NULL, CLONE_FS | CLONE_FILES | CLONE_SIGHAND | SIGCHLD); - - #if defined(CONFIG_SABINAL_DISCOVERY) || defined(CONFIG_ARCH_PXA_TOSA) diff --git a/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P03-C3000-SIGSTOP_FIX_041207.patch b/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P03-C3000-SIGSTOP_FIX_041207.patch deleted file mode 100644 index 332f52f939..0000000000 --- a/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P03-C3000-SIGSTOP_FIX_041207.patch +++ /dev/null @@ -1,195 +0,0 @@ -diff -Nur c3000_pre/linux/arch/arm/config.in c3000_work/linux/arch/arm/config.in ---- c3000_pre/linux/arch/arm/config.in 2004-12-05 22:17:18.000000000 +0900 -+++ c3000_work/linux/arch/arm/config.in 2004-12-06 01:13:03.000000000 +0900 -@@ -481,6 +481,7 @@ - if [ "$CONFIG_SL_CCCR_CHANGE" = "y" ]; then - bool 'Core voltage change enable (EXPERIMENTAL)' CONFIG_CHANGE_CORE_VOLT - fi -+ bool 'Fix send SIGSTOP to all tasks at suspend (EXPERIMENTAL)' CONFIG_SL_SIGSTOP_FIX - if [ "$CONFIG_ARCH_SHARP_SL" = "y" ]; then - define_bool CONFIG_BATT y - fi -diff -Nur c3000_pre/linux/arch/arm/mach-pxa/sharpsl_apm.c c3000_work/linux/arch/arm/mach-pxa/sharpsl_apm.c ---- c3000_pre/linux/arch/arm/mach-pxa/sharpsl_apm.c 2004-12-05 22:17:18.000000000 +0900 -+++ c3000_work/linux/arch/arm/mach-pxa/sharpsl_apm.c 2004-12-06 23:48:35.000000000 +0900 -@@ -75,6 +75,11 @@ - #include - #include - -+extern int errno; -+// unistd.h is included for the configuration ioctl stuff -+#define __KERNEL_SYSCALLS__ 1 -+#include -+ - #ifdef CONFIG_ARCH_SHARP_SL - #include - #include -@@ -363,6 +368,8 @@ - }; - #define ERROR_COUNT (sizeof(error_table)/sizeof(lookup_t)) - -+#define APP_NAME_LIST "/etc/suspend.lst" -+ - /* - * Function - */ -@@ -650,14 +657,81 @@ - struct task_struct* p = NULL; - struct task_struct* tsk = current; - -+#if defined(CONFIG_SL_SIGSTOP_FIX) -+ int fd,x; -+ mm_segment_t old_fs = get_fs (); -+ char line_buffer[256]; -+ - if (! spin_trylock(&lock)) - return; -+ -+ // Try opening the send sig application name list -+ -+ set_fs(KERNEL_DS); -+ fd = open(APP_NAME_LIST, O_RDONLY, 0); -+ set_fs(old_fs); - - /* send signal to all procs except for kernel-threads */ - read_lock(&tasklist_lock); -+ -+ if(fd < 0){ -+ for_each_task(p) { -+ struct siginfo si; -+ -+ if (p->pid == 1 || p->pid == tsk->pid || is_kernel_thread(p)) -+ continue; -+ if (!strcmp(p->comm,"cardmgr")) { //Send sig to cardmgr -+ si.si_signo = signo; -+ si.si_errno = 0; -+ si.si_code = SI_KERNEL; -+ si.si_pid = tsk->pid; -+ si.si_uid = tsk->uid; -+ send_sig_info(signo, &si, p); -+ } -+ } -+ -+ }else { -+ for(;;){ -+ memset(line_buffer, '\0', 256); -+ set_fs(KERNEL_DS); -+ for (x = 0; x < 256; x++) { -+ if (!read(fd, &line_buffer[x], 1)) -+ goto sig_send_done; -+ if (line_buffer[x] == '\n' || line_buffer[x] == '\r') -+ break; -+ } -+ set_fs(old_fs); -+ -+ for_each_task(p) { -+ struct siginfo si; -+ -+ if (p->pid == 1 || p->pid == tsk->pid || is_kernel_thread(p)) -+ continue; -+ if (!strncmp(p->comm,line_buffer,strlen(p->comm))) { //Send sig to cardmgr -+// printk ("Send SIG to application\n"); -+ si.si_signo = signo; -+ si.si_errno = 0; -+ si.si_code = SI_KERNEL; -+ si.si_pid = tsk->pid; -+ si.si_uid = tsk->uid; -+ send_sig_info(signo, &si, p); -+ } -+ } -+ } -+ sig_send_done: -+ -+ close(fd); -+ -+ } -+#else -+ if (! spin_trylock(&lock)) -+ return; -+ -+ /* send signal to all procs except for kernel-threads */ -+ read_lock(&tasklist_lock); - for_each_task(p) { - struct siginfo si; -- -+ - if (p->pid == 1 || p->pid == tsk->pid || is_kernel_thread(p)) - continue; - -@@ -667,7 +741,8 @@ - si.si_pid = tsk->pid; - si.si_uid = tsk->uid; - send_sig_info(signo, &si, p); -- } -+ } -+#endif - read_unlock(&tasklist_lock); - - if (signo == SIGSTOP) { -@@ -679,6 +754,58 @@ - schedule(); - set_current_state(state); - -+#if defined(CONFIG_SL_SIGSTOP_FIX) -+ set_fs(KERNEL_DS); -+ fd = open(APP_NAME_LIST, O_RDONLY, 0); -+ set_fs(old_fs); -+ -+ read_lock(&tasklist_lock); -+ if(fd < 0){ -+ for_each_task(p) { -+ if (p->pid == 1 || p->pid == tsk->pid || is_kernel_thread(p)) -+ continue; -+ if (!strcmp(p->comm,"cardmgr")) { -+// printk ("Check application stopped\n"); -+ -+ if (p->state != TASK_STOPPED) { -+ read_unlock(&tasklist_lock); -+ goto retry; -+ } -+ } -+ } -+ }else { -+ -+ for(;;){ -+ memset(line_buffer, '\0', 256); -+ old_fs = get_fs(); -+ set_fs(KERNEL_DS); -+ for (x = 0; x < 256; x++) { -+ if (!read(fd, &line_buffer[x], 1)) -+ goto sig_stop_done; -+ if (line_buffer[x] == '\n' || line_buffer[x] == '\r') -+ break; -+ } -+ set_fs(old_fs); -+ -+ for_each_task(p) { -+ if (p->pid == 1 || p->pid == tsk->pid || is_kernel_thread(p)) -+ continue; -+ if (!strncmp(p->comm,line_buffer,strlen(p->comm))) { -+ -+ if (p->state != TASK_STOPPED) { -+ read_unlock(&tasklist_lock); -+ goto retry; -+ } -+ } -+ } -+ } -+ sig_stop_done: -+ close(fd); -+ } -+ -+ read_unlock(&tasklist_lock); -+ } -+#else - read_lock(&tasklist_lock); - for_each_task(p) { - if (p->pid == 1 || p->pid == tsk->pid || is_kernel_thread(p)) -@@ -691,6 +818,7 @@ - } - read_unlock(&tasklist_lock); - } -+#endif - - spin_unlock(&lock); - } diff --git a/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P04-C3000-UNICON_041206.patch b/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P04-C3000-UNICON_041206.patch deleted file mode 100644 index eaa56faf42..0000000000 --- a/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050228/P04-C3000-UNICON_041206.patch +++ /dev/null @@ -1,40089 +0,0 @@ -diff -Nur c3000_pre/linux/drivers/char/Makefile c3000_work/linux/drivers/char/Makefile ---- c3000_pre/linux/drivers/char/Makefile 2004-08-21 09:48:25.000000000 +0900 -+++ c3000_work/linux/drivers/char/Makefile 2004-12-06 09:25:00.000000000 +0900 -@@ -12,7 +12,8 @@ - # - # This file contains the font map for the default (hardware) font - # --FONTMAPFILE = cp437.uni -+#FONTMAPFILE = cp437.uni -+FONTMAPFILE = direct.uni - - O_TARGET := char.o - -diff -Nur c3000_pre/linux/drivers/char/console.c c3000_work/linux/drivers/char/console.c ---- c3000_pre/linux/drivers/char/console.c 2004-08-21 09:48:25.000000000 +0900 -+++ c3000_work/linux/drivers/char/console.c 2004-12-06 09:44:28.000000000 +0900 -@@ -88,6 +88,11 @@ - #include - #include - #include -+ -+#ifdef CONFIG_UNICON -+#include -+#endif -+ - #include - #include - #include -@@ -112,7 +117,10 @@ - - #include "console_macros.h" - -- -+#ifdef CONFIG_UNICON -+#define video_erase_char_ext ((video_erase_char)&0xff) -+extern unsigned short translations[][256]; -+#endif - const struct consw *conswitchp; - - /* A bitmap for codes <32. A bit of 1 indicates that the code -@@ -242,6 +250,20 @@ - p = sw->con_screen_pos(vc_cons[currcons].d, offset); - return p; - } -+#ifdef CONFIG_UNICON -+static inline unsigned short *screenpos_ext(int currcons, int offset, int viewed) -+{ -+ unsigned short *p; -+ -+ if (!viewed) -+ p = (unsigned short *)(origin + offset + screenbuf_size); -+ else if (!sw->con_screen_pos) -+ p = (unsigned short *)(visible_origin + offset + screenbuf_size); -+ else -+ p = sw->con_screen_pos(vc_cons[currcons].d, -offset-1); -+ return p; -+} -+#endif - - static inline void scrolldelta(int lines) - { -@@ -268,6 +290,14 @@ - s = (unsigned short *) (origin+video_size_row*(t+nr)); - scr_memcpyw(d, s, (b-t-nr) * video_size_row); - scr_memsetw(d + (b-t-nr) * video_num_columns, video_erase_char, video_size_row*nr); -+ -+#ifdef CONFIG_UNICON -+ d += (screenbuf_size>>1); -+ s += (screenbuf_size>>1); -+ scr_memcpyw(d, s, (b-t-nr) * video_size_row); -+ scr_memsetw(d + (b-t-nr) * video_num_columns, video_erase_char_ext, video_size_row*nr); -+#endif -+ - } - - static void -@@ -286,6 +316,11 @@ - step = video_num_columns * nr; - scr_memmovew(s + step, s, (b-t-nr)*video_size_row); - scr_memsetw(s, video_erase_char, 2*step); -+#ifdef CONFIG_UNICON -+ s += (screenbuf_size>>1); -+ scr_memmovew(s + step, s, (b-t-nr)*video_size_row); -+ scr_memsetw(s, video_erase_char_ext, 2*step); -+#endif - } - - static void do_update_region(int currcons, unsigned long start, int count) -@@ -309,6 +344,10 @@ - int startx = xx; - u16 *q = p; - while (xx < video_num_columns && count) { -+#ifdef CONFIG_UNICON -+ //line by line, so the following putcs will be assured to -+ //handle only in-line string. -+#endif - if (attrib != (scr_readw(p) & 0xff00)) { - if (p > q) - sw->con_putcs(vc_cons[currcons].d, q, p-q, yy, startx); -@@ -438,6 +477,39 @@ - } - - /* used by selection: complement pointer position */ -+#ifdef CONFIG_UNICON -+void complement_pos(int currcons, int offset) -+{ -+ static unsigned short *p = NULL; -+ static unsigned short old = 0; -+ static unsigned short oldx = 0, oldy = 0; -+ static unsigned short *p_ext = NULL; -+ static unsigned short old_ext = 0; -+ -+ if (p) { -+ scr_writew(old, p); -+ //scr_writew(old_ext, p_ext); -+ if (DO_UPDATE) -+ sw->con_putc(vc_cons[currcons].d, (old_ext<<16)| old, oldy, oldx); -+ } -+ if (offset == -1) -+ p = NULL; -+ else { -+ unsigned short new; -+ p = screenpos(currcons, offset, 1); -+ p_ext = screenpos_ext(currcons, offset, 1); -+ old = scr_readw(p); -+ old_ext = scr_readw(p_ext); -+ new = old ^ complement_mask; -+ scr_writew(new, p); -+ if (DO_UPDATE) { -+ oldx = (offset >> 1) % video_num_columns; -+ oldy = (offset >> 1) / video_num_columns; -+ sw->con_putc(vc_cons[currcons].d, (old_ext<<16) | new, oldy, oldx); -+ } -+ } -+} -+#else - void complement_pos(int currcons, int offset) - { - static unsigned short *p; -@@ -464,15 +536,23 @@ - } - } - } -- -+#endif - static void insert_char(int currcons, unsigned int nr) - { - unsigned short *p, *q = (unsigned short *) pos; - - p = q + video_num_columns - nr - x; -- while (--p >= q) -+ while (--p >= q) { - scr_writew(scr_readw(p), p + nr); -+#ifdef CONFIG_UNICON -+ scr_writew(scr_readw(p+(screenbuf_size>>1)),p+(screenbuf_size>>1)+nr); -+#endif -+ } - scr_memsetw(q, video_erase_char, nr*2); -+#ifdef CONFIG_UNICON -+ scr_memsetw(q+(screenbuf_size>>1),video_erase_char_ext,nr*2); -+#endif -+ - need_wrap = 0; - if (DO_UPDATE) { - unsigned short oldattr = attr; -@@ -480,8 +560,9 @@ - video_num_columns-x-nr); - attr = video_erase_char >> 8; - while (nr--) -- sw->con_putc(vc_cons[currcons].d, -+ sw->con_putc(vc_cons[currcons].d, - video_erase_char,y,x+nr); -+ - attr = oldattr; - } - } -@@ -490,12 +571,17 @@ - { - unsigned int i = x; - unsigned short *p = (unsigned short *) pos; -- - while (++i <= video_num_columns - nr) { - scr_writew(scr_readw(p+nr), p); -+#ifdef CONFIG_UNICON -+ scr_writew(scr_readw(p+nr+(screenbuf_size>>1)),p+(screenbuf_size>>1)); -+#endif - p++; - } - scr_memsetw(p, video_erase_char, nr*2); -+#ifdef CONFIG_UNICON -+ scr_memsetw(p+(screenbuf_size>>1), video_erase_char_ext, nr*2); -+#endif - need_wrap = 0; - if (DO_UPDATE) { - unsigned short oldattr = attr; -@@ -504,8 +590,8 @@ - attr = video_erase_char >> 8; - while (nr--) - sw->con_putc(vc_cons[currcons].d, -- video_erase_char, y, -- video_num_columns-1-nr); -+ video_erase_char, y, -+ video_num_columns-1-nr); - attr = oldattr; - } - } -@@ -526,7 +612,11 @@ - if ((type & 0x40) && ((i & 0x700) == ((i & 0x7000) >> 4))) i ^= 0x0700; - scr_writew(i, (u16 *) pos); - if (DO_UPDATE) -+#ifndef CONFIG_UNICON - sw->con_putc(vc_cons[currcons].d, i, y, x); -+#else -+ sw->con_putc(vc_cons[currcons].d, scr_readw((u16 *) pos+ (screenbuf_size>>1))<<16 | (i & 0xffff), y, x); -+#endif - } - - static void hide_cursor(int currcons) -@@ -536,7 +626,11 @@ - if (softcursor_original != -1) { - scr_writew(softcursor_original,(u16 *) pos); - if (DO_UPDATE) -+#ifndef CONFIG_UNICON - sw->con_putc(vc_cons[currcons].d, softcursor_original, y, x); -+#else -+ sw->con_putc(vc_cons[currcons].d, scr_readw((u16 *) pos+ (screenbuf_size>>1))<<16 | softcursor_original, y, x); -+#endif - softcursor_original = -1; - } - sw->con_cursor(vc_cons[currcons].d,CM_ERASE); -@@ -683,7 +777,11 @@ - visual_init(currcons, 1); - if (!*vc_cons[currcons].d->vc_uni_pagedir_loc) - con_set_default_unimap(currcons); -+#ifndef CONFIG_UNICON - q = (long)kmalloc(screenbuf_size, GFP_KERNEL); -+#else -+ q = (long)kmalloc(screenbuf_size*2,GFP_KERNEL); -+#endif - if (!q) { - kfree((char *) p); - vc_cons[currcons].d = NULL; -@@ -725,7 +823,11 @@ - (cc == video_num_columns && ll == video_num_lines)) - newscreens[currcons] = NULL; - else { -+#ifndef CONFIG_UNICON - unsigned short *p = (unsigned short *) kmalloc(ss, GFP_USER); -+#else -+ unsigned short *p = (unsigned short *) kmalloc(ss*2, GFP_USER); -+#endif - if (!p) { - for (i = first; i < currcons; i++) - if (newscreens[i]) -@@ -767,13 +869,23 @@ - - while (ol < scr_end) { - scr_memcpyw((unsigned short *) nl, (unsigned short *) ol, rlth); -+#ifdef CONFIG_UNICON -+ scr_memcpyw((unsigned short *) (nl + ss), (unsigned short*) (ol + oss), rlth); -+#endif - if (rrem) - scr_memsetw((void *)(nl + rlth), video_erase_char, rrem); -+#ifdef CONFIG_UNICON -+ if (rrem) -+ scr_memsetw((void *)(nl + rlth + ss), video_erase_char_ext, rrem); -+#endif - ol += osr; - nl += sr; - } - if (nlend > nl) - scr_memsetw((void *) nl, video_erase_char, nlend - nl); -+#ifdef CONFIG_UNICON -+ scr_memsetw((void *) (nl + ss), video_erase_char_ext, nlend - nl); -+#endif - if (kmalloced) - kfree(screenbuf); - screenbuf = newscreens[currcons]; -@@ -996,6 +1108,9 @@ - return; - } - scr_memsetw(start, video_erase_char, 2*count); -+#ifdef CONFIG_UNICON -+ scr_memsetw(start + (screenbuf_size>>1), video_erase_char_ext, 2*count); -+#endif - need_wrap = 0; - } - -@@ -1030,6 +1145,9 @@ - return; - } - scr_memsetw(start, video_erase_char, 2 * count); -+#ifdef CONFIG_UNICON -+ scr_memsetw(start + (screenbuf_size>>1), video_erase_char_ext, 2*count); -+#endif - need_wrap = 0; - } - -@@ -1042,6 +1160,9 @@ - count = (vpar > video_num_columns-x) ? (video_num_columns-x) : vpar; - - scr_memsetw((unsigned short *) pos, video_erase_char, 2 * count); -+#ifdef CONFIG_UNICON -+ scr_memsetw((unsigned short *) pos + (screenbuf_size>>1), video_erase_char_ext, 2*count); -+#endif - if (DO_UPDATE) - sw->con_clear(vc_cons[currcons].d, y, x, 1, count); - need_wrap = 0; -@@ -1638,7 +1759,13 @@ - if (ques) { - clear_selection(); - if (par[0]) -- complement_mask = par[0]<<8 | par[1]; -+#ifndef CONFIG_UNICON -+ complement_mask = par[0]<<8 | par[1]; -+#else -+ // force the low byte to be zero -+ complement_mask = par[0]<<8; -+#endif -+ - else - complement_mask = s_complement_mask; - return; -@@ -1856,6 +1983,11 @@ - const unsigned char *orig_buf = NULL; - int orig_count; - -+#ifdef CONFIG_UNICON -+#define GB_LEFT 0x8000 -+#define GB_RIGHT 0xc000 -+#endif -+ - if (in_interrupt()) - return count; - -@@ -1996,6 +2128,56 @@ - ((attr << 8) & ~himask) + ((tc & 0x100) ? himask : 0) + (tc & 0xff) : - (attr << 8) + tc, - (u16 *) pos); -+#ifdef CONFIG_UNICON -+#define HIGH_WORD ((u16 *) ((long)pos + screenbuf_size)) -+#define HIGH_WORD_PREV ((u16 *) ((long)pos - 2 + screenbuf_size)) -+#define HIGH_WORD_NEXT ((u16 *) ((long)pos + 2 + screenbuf_size)) -+ /* -+ * following condiction we do not tread the char as -+ * double byte. -+ * 1. default encoding is NULL. The encode module not -+ * install yet. -+ * 2. Current char set is not the default one. We are -+ * possible drawing a table lines right now. -+ * -Chris -+ */ -+ -+ if (doublebyte_default && translate == translations[0] -+ && (pos==origin||!(scr_readw(HIGH_WORD_PREV)&DB_HALF_MASK)) -+ && doublebyte_default->is_left(tc)){ -+ /*possible the left char of the Double Byte -+ , but we don't know yet, because the right -+ char is unknow right now. So mark it as -+ Half char, the possible candidate -+ -Chris -+ */ -+ scr_writew(DB_HALF_MASK,HIGH_WORD); -+ -+ } else if(doublebyte_default&& translate == translations -+ && scr_readw(HIGH_WORD_PREV)==DB_HALF_MASK -+ && doublebyte_default->is_right(tc)) { -+ scr_writew(DB_LEFT|(tc & 0xff),HIGH_WORD_PREV); -+ scr_writew(DB_RIGHT|(scr_readw((u16*)(pos-2))&0xff),HIGH_WORD); -+ if (DO_UPDATE && draw_x < 0) { -+ draw_from = pos-2 ; -+ if (x>0) { -+ draw_x = x-1; -+ } else { -+ draw_to = pos; -+ draw_x = video_num_columns -1; -+ y--; -+ FLUSH -+ y++; -+ draw_x = 0; -+ draw_from = pos; -+ } -+ } -+ } else { -+ /*normal ASCII or table lines, clean hight byte*/ -+ scr_writew(0,HIGH_WORD); -+ } -+ -+#endif - if (DO_UPDATE && draw_x < 0) { - draw_x = x; - draw_from = pos; -@@ -2154,6 +2336,9 @@ - continue; - } - scr_writew((attr << 8) + c, (unsigned short *) pos); -+#ifdef CONFIG_UNICON -+ scr_writew(0,(unsigned short *) pos + (screenbuf_size>>1)); -+#endif - cnt++; - if (myx == video_num_columns - 1) { - need_wrap = 1; -@@ -2510,7 +2695,11 @@ - vt_cons[currcons] = (struct vt_struct *) - alloc_bootmem(sizeof(struct vt_struct)); - visual_init(currcons, 1); -+#ifdef CONFIG_UNICON -+ screenbuf = (unsigned short *) alloc_bootmem(screenbuf_size * 2); -+#else - screenbuf = (unsigned short *) alloc_bootmem(screenbuf_size); -+#endif - kmalloced = 0; - vc_init(currcons, video_num_lines, video_num_columns, - currcons || !sw->con_save_screen); -@@ -2983,7 +3172,12 @@ - gotoxy(currcons, p[0], p[1]); - set_cursor(currcons); - } -- -+#ifdef CONFIG_UNICON -+/* -+Now, the unicon doesn't support vcs! -+To support it, first change the vc_screen.c! -+*/ -+#endif - u16 vcs_scr_readw(int currcons, const u16 *org) - { - if ((unsigned long)org == pos && softcursor_original != -1) -@@ -3025,6 +3219,15 @@ - /* - * Visible symbols for modules - */ -+#ifdef CONFIG_UNICON -+int (*Unicon_fnKeyHook) -+ (struct tty_struct *tty, unsigned char ch, char flag) = NULL; -+int (*Unicon_fnLowerKeyHook) (unsigned char ch) = NULL; -+ -+EXPORT_SYMBOL(Unicon_fnLowerKeyHook); -+EXPORT_SYMBOL(Unicon_fnKeyHook); -+EXPORT_SYMBOL(vc_cons); -+#endif - - EXPORT_SYMBOL(color_table); - EXPORT_SYMBOL(default_red); -diff -Nur c3000_pre/linux/drivers/char/consolemap.c c3000_work/linux/drivers/char/consolemap.c ---- c3000_pre/linux/drivers/char/consolemap.c 2004-08-21 09:48:25.000000000 +0900 -+++ c3000_work/linux/drivers/char/consolemap.c 2004-12-06 09:25:00.000000000 +0900 -@@ -22,7 +22,11 @@ - #include - #include - -+#ifndef CONFIG_UNICON - static unsigned short translations[][256] = { -+#else -+unsigned short translations[][256] = { -+#endif - /* 8-bit Latin-1 mapped to Unicode -- trivial mapping */ - { - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, -diff -Nur c3000_pre/linux/drivers/char/direct.uni c3000_work/linux/drivers/char/direct.uni ---- c3000_pre/linux/drivers/char/direct.uni 1970-01-01 09:00:00.000000000 +0900 -+++ c3000_work/linux/drivers/char/direct.uni 2004-12-06 09:25:00.000000000 +0900 -@@ -0,0 +1,259 @@ -+0x00 U+0000 -+0x20 U+0020 -+0x21 U+0021 -+0x22 U+0022 -+0x23 U+0023 -+0x24 U+0024 -+0x25 U+0025 -+0x26 U+0026 -+0x27 U+0027 -+0x28 U+0028 -+0x29 U+0029 -+0x2a U+002a -+0x2b U+002b -+0x2c U+002c -+0x2d U+002d -+0x2e U+002e -+0x2f U+002f -+0x30 U+0030 -+0x31 U+0031 -+0x32 U+0032 -+0x33 U+0033 -+0x34 U+0034 -+0x35 U+0035 -+0x36 U+0036 -+0x37 U+0037 -+0x38 U+0038 -+0x39 U+0039 -+0x3a U+003a -+0x3b U+003b -+0x3c U+003c -+0x3d U+003d -+0x3e U+003e -+0x3f U+003f -+0x40 U+0040 -+0x41 U+0041 -+0x42 U+0042 -+0x43 U+0043 -+0x44 U+0044 -+0x45 U+0045 -+0x46 U+0046 -+0x47 U+0047 -+0x48 U+0048 -+0x49 U+0049 -+0x4a U+004a -+0x4b U+004b -+0x4c U+004c -+0x4d U+004d -+0x4e U+004e -+0x4f U+004f -+0x50 U+0050 -+0x51 U+0051 -+0x52 U+0052 -+0x53 U+0053 -+0x54 U+0054 -+0x55 U+0055 -+0x56 U+0056 -+0x57 U+0057 -+0x58 U+0058 -+0x59 U+0059 -+0x5a U+005a -+0x5b U+005b -+0x5c U+005c -+0x5d U+005d -+0x5e U+005e -+0x5f U+005f -+0x60 U+0060 -+0x61 U+0061 -+0x62 U+0062 -+0x63 U+0063 -+0x64 U+0064 -+0x65 U+0065 -+0x66 U+0066 -+0x67 U+0067 -+0x68 U+0068 -+0x69 U+0069 -+0x6a U+006a -+0x6b U+006b -+0x6c U+006c -+0x6d U+006d -+0x6e U+006e -+0x6f U+006f -+0x70 U+0070 -+0x71 U+0071 -+0x72 U+0072 -+0x73 U+0073 -+0x74 U+0074 -+0x75 U+0075 -+0x76 U+0076 -+0x77 U+0077 -+0x78 U+0078 -+0x79 U+0079 -+0x7a U+007a -+0x7b U+007b -+0x7c U+007c -+0x7d U+007d -+0x7e U+007e -+0x7f U+007f -+0x80 U+0080 -+0x81 U+0081 -+0x82 U+0082 -+0x83 U+0083 -+0x84 U+0084 -+0x85 U+0085 -+0x86 U+0086 -+0x87 U+0087 -+0x88 U+0088 -+0x89 U+0089 -+0x8a U+008a -+0x8b U+008b -+0x8c U+008c -+0x8d U+008d -+0x8e U+008e -+0x8f U+008f -+0x90 U+0090 -+0x91 U+0091 -+0x92 U+0092 -+0x93 U+0093 -+0x94 U+0094 -+0x95 U+0095 -+0x96 U+0096 -+0x97 U+0097 -+0x98 U+0098 -+0x99 U+0099 -+0x9a U+009a -+0x9b U+009b -+0x9c U+009c -+0x9d U+009d -+0x9e U+009e -+0x9f U+009f -+0xa0 U+00a0 -+0xa1 U+00a1 -+0xa2 U+00a2 -+0xa3 U+00a3 -+0xa4 U+00a4 -+0xa5 U+00a5 -+0xa6 U+00a6 -+0xa7 U+00a7 -+0xa8 U+00a8 -+0xa9 U+00a9 -+0xaa U+00aa -+0xab U+00ab -+0xac U+00ac -+0xad U+00ad -+0xae U+00ae -+0xaf U+00af -+0xb0 U+00b0 -+0xb1 U+00b1 -+0xb2 U+00b2 -+0xb3 U+00b3 -+0xb4 U+00b4 -+0xb5 U+00b5 -+0xb6 U+00b6 -+0xb7 U+00b7 -+0xb8 U+00b8 -+0xb9 U+00b9 -+0xba U+00ba -+0xbb U+00bb -+0xbc U+00bc -+0xbd U+00bd -+0xbe U+00be -+0xbf U+00bf -+0xc0 U+00c0 -+0xc1 U+00c1 -+0xc2 U+00c2 -+0xc3 U+00c3 -+0xc4 U+00c4 -+0xc5 U+00c5 -+0xc6 U+00c6 -+0xc7 U+00c7 -+0xc8 U+00c8 -+0xc9 U+00c9 -+0xca U+00ca -+0xcb U+00cb -+0xcc U+00cc -+0xcd U+00cd -+0xce U+00ce -+0xcf U+00cf -+0xd0 U+00d0 -+0xd1 U+00d1 -+0xd2 U+00d2 -+0xd3 U+00d3 -+0xd4 U+00d4 -+0xd5 U+00d5 -+0xd6 U+00d6 -+0xd7 U+00d7 -+0xd8 U+00d8 -+0xd9 U+00d9 -+0xda U+00da -+0xdb U+00db -+0xdc U+00dc -+0xdd U+00dd -+0xde U+00de -+0xdf U+00df -+0xe0 U+00e0 -+0xe1 U+00e1 -+0xe2 U+00e2 -+0xe3 U+00e3 -+0xe4 U+00e4 -+0xe5 U+00e5 -+0xe6 U+00e6 -+0xe7 U+00e7 -+0xe8 U+00e8 -+0xe9 U+00e9 -+0xea U+00ea -+0xeb U+00eb -+0xec U+00ec -+0xed U+00ed -+0xee U+00ee -+0xef U+00ef -+0xf0 U+00f0 -+0xf1 U+00f1 -+0xf2 U+00f2 -+0xf3 U+00f3 -+0xf4 U+00f4 -+0xf5 U+00f5 -+0xf6 U+00f6 -+0xf7 U+00f7 -+0xf8 U+00f8 -+0xf9 U+00f9 -+0xfa U+00fa -+0xfb U+00fb -+0xfc U+00fc -+0xfd U+00fd -+0xfe U+00fe -+0xff U+00ff -+0x07 U+2022 -+0x13 U+203c -+0x4b U+212a -+0x1b U+2190 -+0x18 U+2191 -+0x1a U+2192 -+0x19 U+2193 -+0x1d U+2194 -+0x12 U+2195 -+0x17 U+21a8 -+0x1c U+221f -+0x16 U+25ac -+0x1e U+25b2 -+0x10 U+25b6 -+0x10 U+25ba -+0x1f U+25bc -+0x11 U+25c0 -+0x11 U+25c4 -+0x04 U+25c6 -+0x09 U+25cb -+0x08 U+25d8 -+0x0a U+25d9 -+0x01 U+263a -+0x02 U+263b -+0x0f U+263c -+0x0c U+2640 -+0x0b U+2642 -+0x06 U+2660 -+0x05 U+2663 -+0x03 U+2665 -+0x04 U+2666 -+0x0d U+266a -+0x0e U+266b -+0x5f U+f804 -diff -Nur c3000_pre/linux/drivers/char/pc_keyb.c c3000_work/linux/drivers/char/pc_keyb.c ---- c3000_pre/linux/drivers/char/pc_keyb.c 2004-08-21 09:48:25.000000000 +0900 -+++ c3000_work/linux/drivers/char/pc_keyb.c 2004-12-06 09:25:01.000000000 +0900 -@@ -467,14 +467,36 @@ - - static unsigned char kbd_exists = 1; - --static inline void handle_keyboard_event(unsigned char scancode) -+#ifdef CONFIG_UNICON -+extern int (*Unicon_fnLowerKeyHook) (unsigned char ch); -+extern int (*Unicon_fnKeyHook) (struct tty_struct *tty, \ -+ unsigned char ch, char flag); -+#endif -+static inline int handle_keyboard_event(unsigned char scancode) - { - #ifdef CONFIG_VT - kbd_exists = 1; -- if (do_acknowledge(scancode)) -- handle_scancode(scancode, !(scancode & 0x80)); -+ if (do_acknowledge(scancode)){ -+#ifdef CONFIG_UNICON -+ if (Unicon_fnLowerKeyHook != NULL){ -+ /* return 1 ==> processed by kernel -+ return 0 ==> processed by app */ -+ if (scancode == 0x58){ /* F12 kill unicode */ -+ Unicon_fnKeyHook = NULL; -+ Unicon_fnLowerKeyHook = NULL; -+ return 1; -+ } -+ if ((*Unicon_fnLowerKeyHook) (scancode) == 1) -+ return 1; -+ else -+ handle_scancode(scancode,!(scancode & 0x80)); -+ } else -+#endif -+ handle_scancode(scancode, !(scancode & 0x80)); -+ } - #endif - tasklet_schedule(&keyboard_tasklet); -+ return 0; - } - - /* -@@ -504,7 +526,8 @@ - if (status & KBD_STAT_MOUSE_OBF) - handle_mouse_event(scancode); - else -- handle_keyboard_event(scancode); -+ if(handle_keyboard_event(scancode)) -+ return status; - } - - status = kbd_read_status(); -diff -Nur c3000_pre/linux/drivers/video/Config.in c3000_work/linux/drivers/video/Config.in ---- c3000_pre/linux/drivers/video/Config.in 2004-08-21 09:48:58.000000000 +0900 -+++ c3000_work/linux/drivers/video/Config.in 2004-12-06 10:01:36.000000000 +0900 -@@ -13,6 +13,21 @@ - bool ' Hitachi HD64413 support' CONFIG_FB_HD64413 - fi - if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then -+ bool "UNICON Support(EXPERIMENTAL)" CONFIG_UNICON -+ if [ "$CONFIG_UNICON" = "y" ]; then -+ tristate "Double Byte GB encode (module only)" CONFIG_UNICON_GB -+ if [ "$CONFIG_UNICON_GB" = "y" -o "$CONFIG_UNICON_GB" = "m" ]; then -+ define_tristate CONFIG_UNICON_GB m -+ fi -+ tristate "Double Byte SJIS encode (module only)" CONFIG_UNICON_SJIS -+ if [ "$CONFIG_UNICON_SJIS" = "y" -o "$CONFIG_UNICON_SJIS" = "m" ]; then -+ define_tristate CONFIG_UNICON_SJIS m -+ fi -+ tristate "Double Byte EUCJP encode (module only)" CONFIG_UNICON_EUCJP -+ if [ "$CONFIG_UNICON_EUCJP" = "y" -o "$CONFIG_UNICON_EUCJP" = "m" ]; then -+ define_tristate CONFIG_UNICON_EUCJP m -+ fi -+ fi - if [ "$CONFIG_PCI" = "y" ]; then - tristate ' nVidia Riva support (EXPERIMENTAL)' CONFIG_FB_RIVA - fi -diff -Nur c3000_pre/linux/drivers/video/Makefile c3000_work/linux/drivers/video/Makefile ---- c3000_pre/linux/drivers/video/Makefile 2004-08-21 09:48:58.000000000 +0900 -+++ c3000_work/linux/drivers/video/Makefile 2004-12-06 09:25:01.000000000 +0900 -@@ -42,6 +42,10 @@ - obj-$(CONFIG_PPC) += macmodes.o - endif - -+obj-$(CONFIG_UNICON_GB) += encode-gb.o -+obj-$(CONFIG_UNICON_BIG5) += encode-big5.o -+obj-$(CONFIG_UNICON_SJIS) += encode-sjis.o -+obj-$(CONFIG_UNICON_EUCJP) +