]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
Merge master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
authorDavid S. Miller <davem@sunset.davemloft.net>
Thu, 15 Dec 2005 00:21:48 +0000 (16:21 -0800)
committerDavid S. Miller <davem@sunset.davemloft.net>
Thu, 15 Dec 2005 00:21:48 +0000 (16:21 -0800)
arch/arm/kernel/module.c
arch/arm/mach-pxa/pm.c
arch/ia64/kernel/process.c
drivers/mmc/mmc.c
include/asm-arm/elf.h

index 6055e1427ba35819132623b297583cb2484215c6..055bf5d28894097849b9014cdafe65389cf77370 100644 (file)
@@ -101,6 +101,8 @@ apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex,
                        break;
 
                case R_ARM_PC24:
+               case R_ARM_CALL:
+               case R_ARM_JUMP24:
                        offset = (*(u32 *)loc & 0x00ffffff) << 2;
                        if (offset & 0x02000000)
                                offset -= 0x04000000;
index f74b9af112dcbefdb7c05456465b6bb766ba31a7..852ea72d8c80bfbc87a2b9741a1a53c371f60a04 100644 (file)
@@ -155,19 +155,20 @@ int pxa_pm_enter(suspend_state_t state)
        PSPR = 0;
 
        /* restore registers */
+       RESTORE_GPLEVEL(0); RESTORE_GPLEVEL(1); RESTORE_GPLEVEL(2);
+       RESTORE(GPDR0); RESTORE(GPDR1); RESTORE(GPDR2);
        RESTORE(GAFR0_L); RESTORE(GAFR0_U);
        RESTORE(GAFR1_L); RESTORE(GAFR1_U);
        RESTORE(GAFR2_L); RESTORE(GAFR2_U);
-       RESTORE_GPLEVEL(0); RESTORE_GPLEVEL(1); RESTORE_GPLEVEL(2);
-       RESTORE(GPDR0); RESTORE(GPDR1); RESTORE(GPDR2);
        RESTORE(GRER0); RESTORE(GRER1); RESTORE(GRER2);
        RESTORE(GFER0); RESTORE(GFER1); RESTORE(GFER2);
        RESTORE(PGSR0); RESTORE(PGSR1); RESTORE(PGSR2);
 
 #ifdef CONFIG_PXA27x
        RESTORE(MDREFR);
-       RESTORE(GAFR3_L); RESTORE(GAFR3_U); RESTORE_GPLEVEL(3);
-       RESTORE(GPDR3); RESTORE(GRER3); RESTORE(GFER3); RESTORE(PGSR3);
+       RESTORE_GPLEVEL(3); RESTORE(GPDR3);
+       RESTORE(GAFR3_L); RESTORE(GAFR3_U);
+       RESTORE(GRER3); RESTORE(GFER3); RESTORE(PGSR3);
        RESTORE(PWER); RESTORE(PCFR); RESTORE(PRER);
        RESTORE(PFER); RESTORE(PKWR);
 #endif
index a4da715a360ca74c01b0a3c55f39ef43179c3fc3..e9904c74d2ba617679131802ce1f68858e3b2826 100644 (file)
@@ -721,11 +721,13 @@ flush_thread (void)
        /* drop floating-point and debug-register state if it exists: */
        current->thread.flags &= ~(IA64_THREAD_FPH_VALID | IA64_THREAD_DBG_VALID);
        ia64_drop_fpu(current);
+#ifdef CONFIG_IA32_SUPPORT
        if (IS_IA32_PROCESS(ia64_task_regs(current))) {
                ia32_drop_partial_page_list(current);
                current->thread.task_size = IA32_PAGE_OFFSET;
                set_fs(USER_DS);
        }
+#endif
 }
 
 /*
index b586a83a9b4c7f12fa60c6c13135c05b60c5de91..eb41391e06e938a5a0607b90defab00f82fd9827 100644 (file)
@@ -679,7 +679,15 @@ static void mmc_idle_cards(struct mmc_host *host)
 }
 
 /*
- * Apply power to the MMC stack.
+ * Apply power to the MMC stack.  This is a two-stage process.
+ * First, we enable power to the card without the clock running.
+ * We then wait a bit for the power to stabilise.  Finally,
+ * enable the bus drivers and clock to the card.
+ *
+ * We must _NOT_ enable the clock prior to power stablising.
+ *
+ * If a host does all the power sequencing itself, ignore the
+ * initial MMC_POWER_UP stage.
  */
 static void mmc_power_up(struct mmc_host *host)
 {
index 7da97a937548afd05a977ceb0d2148821dc05cfb..2d44b42d1847871a8b6fcc22238eeaa2507ee02a 100644 (file)
@@ -22,6 +22,8 @@ typedef unsigned long elf_freg_t[3];
 #define R_ARM_NONE     0
 #define R_ARM_PC24     1
 #define R_ARM_ABS32    2
+#define R_ARM_CALL     28
+#define R_ARM_JUMP24   29
 
 #define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t))
 typedef elf_greg_t elf_gregset_t[ELF_NGREG];