/*
* The default (Linux) execution domain.
+diff -Nur linux.org/arch/ppc/kernel/setup.c linux/arch/ppc/kernel/setup.c
+--- linux.org/arch/ppc/kernel/setup.c Wed Jul 24 12:24:05 2002
++++ linux/arch/ppc/kernel/setup.c Wed Jul 24 11:33:17 2002
+@@ -690,13 +690,18 @@
+ id->cfs_enable_2 = __le16_to_cpu(id->cfs_enable_2);
+ id->csf_default = __le16_to_cpu(id->csf_default);
+ id->dma_ultra = __le16_to_cpu(id->dma_ultra);
+- id->word89 = __le16_to_cpu(id->word89);
+- id->word90 = __le16_to_cpu(id->word90);
++ id->trseuc = __le16_to_cpu(id->trseuc);
++ id->trsEuc = __le16_to_cpu(id->trsEuc);
+ id->CurAPMvalues = __le16_to_cpu(id->CurAPMvalues);
+- id->word92 = __le16_to_cpu(id->word92);
+- id->hw_config = __le16_to_cpu(id->hw_config);
+- for (i = 0; i < 32; i++)
+- id->words94_125[i] = __le16_to_cpu(id->words94_125[i]);
++ id->mprc = __le16_to_cpu(id->mprc);
++ id->hw_config = __le16_to_cpu(id->hw_config); /* 93 */
++ id->acoustic = __le16_to_cpu(id->acoustic);
++ id->msrqs = __le16_to_cpu(id->msrqs);
++ id->sxfert = __le16_to_cpu(id->sxfert);
++ id->sal = __le16_to_cpu(id->sal);
++ id->spg = __le32_to_cpu(id->spg);
++ for (i = 0; i < 22; i++)
++ id->words104_125[i] = __le16_to_cpu(id->words104_125[i]);
+ id->last_lun = __le16_to_cpu(id->last_lun);
+ id->word127 = __le16_to_cpu(id->word127);
+ id->dlf = __le16_to_cpu(id->dlf);
+@@ -706,6 +711,12 @@
+ id->word156 = __le16_to_cpu(id->word156);
+ for (i = 0; i < 3; i++)
+ id->words157_159[i] = __le16_to_cpu(id->words157_159[i]);
+- for (i = 0; i < 96; i++)
+- id->words160_255[i] = __le16_to_cpu(id->words160_255[i]);
++ id->cfa_power = __le16_to_cpu(id->cfa_power);
++ for (i = 0; i < 14; i++)
++ id->words161_175[i] = __le16_to_cpu(id->words161_175[i]);
++ for (i = 0; i < 38; i++)
++ id->words176_205[i] = __le16_to_cpu(id->words176_205[i]);
++ for (i = 0; i < 48; i++)
++ id->words206_254[i] = __le16_to_cpu(id->words206_254[i]);
++ id->integrity_word = __le16_to_cpu(id->integrity_word);
+ }
+diff -Nur linux.org/include/asm-ppc/hw_irq.h linux/include/asm-ppc/hw_irq.h
+--- linux.org/include/asm-ppc/hw_irq.h Tue May 22 00:02:06 2001
++++ linux/include/asm-ppc/hw_irq.h Wed Jul 24 12:00:53 2002
+@@ -20,6 +20,7 @@
+
+ #define __save_flags(flags) __save_flags_ptr((unsigned long *)&flags)
+ #define __save_and_cli(flags) ({__save_flags(flags);__cli();})
++#define __save_and_sti(flags) ({__save_flags(flags);__sti();})
+
+ extern void do_lost_interrupts(unsigned long);
+
+diff -Nur linux.org/include/asm-ppc/ide.h linux/include/asm-ppc/ide.h
+--- linux.org/include/asm-ppc/ide.h Mon Oct 8 20:40:13 2001
++++ linux/include/asm-ppc/ide.h Wed Jul 24 12:02:43 2002
+@@ -118,17 +118,6 @@
+ ppc_ide_md.ide_release_region(from, extent);
+ }
+
+-typedef union {
+- unsigned all : 8; /* all of the bits together */
+- struct {
+- unsigned bit7 : 1; /* always 1 */
+- unsigned lba : 1; /* using LBA instead of CHS */
+- unsigned bit5 : 1; /* always 1 */
+- unsigned unit : 1; /* drive select number, 0/1 */
+- unsigned head : 4; /* always zeros here */
+- } b;
+-} select_t;
+-
+ #if !defined(ide_request_irq)
+ #define ide_request_irq(irq,hand,flg,dev,id) request_irq((irq),(hand),(flg),(dev),(id))
+ #endif
+diff -Nur linux.org/include/asm-ppc/system.h linux/include/asm-ppc/system.h
+--- linux.org/include/asm-ppc/system.h Tue Aug 28 15:58:33 2001
++++ linux/include/asm-ppc/system.h Wed Jul 24 12:01:36 2002
+@@ -1,5 +1,5 @@
+ /*
+- * BK Id: SCCS/s.system.h 1.14 08/20/01 14:34:41 paulus
++ * BK Id: SCCS/s.system.h 1.20 03/19/02 15:04:39 benh
+ */
+ /*
+ * Copyright (C) 1999 Cort Dougan <cort@cs.nmt.edu>
+@@ -58,9 +58,13 @@
+ #ifdef CONFIG_6xx
+ extern long _get_L2CR(void);
+ extern void _set_L2CR(unsigned long);
++extern long _get_L3CR(void);
++extern void _set_L3CR(unsigned long);
+ #else
+-#define _get_L2CR() 0
++#define _get_L2CR() 0L
+ #define _set_L2CR(val) do { } while(0)
++#define _get_L3CR() 0L
++#define _set_L3CR(val) do { } while(0)
+ #endif
+ extern void via_cuda_init(void);
+ extern void pmac_nvram_init(void);
+@@ -101,6 +105,7 @@
+ #define save_flags(flags) __save_flags(flags)
+ #define restore_flags(flags) __restore_flags(flags)
+ #define save_and_cli(flags) __save_and_cli(flags)
++#define save_and_sti(flags) __save_and_sti(flags)
+
+ #else /* CONFIG_SMP */
+
+@@ -113,17 +118,17 @@
+ #define save_flags(x) ((x)=__global_save_flags())
+ #define restore_flags(x) __global_restore_flags(x)
+
++#define save_and_cli(x) do { save_flags(x); cli(); } while(0);
++#define save_and_sti(x) do { save_flags(x); sti(); } while(0);
++
+ #endif /* !CONFIG_SMP */
+
+ #define local_irq_disable() __cli()
+ #define local_irq_enable() __sti()
+ #define local_irq_save(flags) __save_and_cli(flags)
++#define local_irq_set(flags) __save_and_sti(flags)
+ #define local_irq_restore(flags) __restore_flags(flags)
+
+-#endif /* __KERNEL__ */
+-
+-#define xchg(ptr,x) ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr))))
+-
+ static __inline__ unsigned long
+ xchg_u32(volatile void *p, unsigned long val)
+ {
+@@ -222,4 +227,5 @@
+ (unsigned long)_n_, sizeof(*(ptr))); \
+ })
+
++#endif /* __KERNEL__ */
+ #endif /* __PPC_SYSTEM_H */