commit: http://blackfin.uclinux.org/git/?p=linux-kernel;a=commitdiff;h=9b6fb1d341ee99bfadf3301099703d08328958bc branch: http://blackfin.uclinux.org/git/?p=linux-kernel;a=shortlog;h=refs/heads/trunk
We can only do 16bit offset loads into Dregs, not Pregs, so we need to sync a little more when saving the extra BF538 port regs. Signed-off-by: Mike Frysinger <[email protected]> --- arch/blackfin/mach-common/dpmc_modes.S | 23 +++++++++++++---------- 1 files changed, 13 insertions(+), 10 deletions(-) diff --git a/arch/blackfin/mach-common/dpmc_modes.S b/arch/blackfin/mach-common/dpmc_modes.S index 523fe1e..1a1c092 100644 --- a/arch/blackfin/mach-common/dpmc_modes.S +++ b/arch/blackfin/mach-common/dpmc_modes.S @@ -460,6 +460,7 @@ ENTRY(_do_hibernate) #endif #ifdef PORTCIO_FER + /* 16bit loads can only be done with dregs */ PM_SYS_PUSH16(0, PORTCIO_DIR) PM_SYS_PUSH16(1, PORTCIO_INEN) PM_SYS_PUSH16(2, PORTCIO) @@ -468,11 +469,12 @@ ENTRY(_do_hibernate) PM_SYS_PUSH16(5, PORTDIO_INEN) PM_SYS_PUSH16(6, PORTDIO) PM_SYS_PUSH16(7, PORTDIO_FER) - PM_SYS_PUSH16(8, PORTEIO_DIR) - PM_SYS_PUSH16(9, PORTEIO_INEN) - PM_SYS_PUSH16(10, PORTEIO) - PM_SYS_PUSH16(11, PORTEIO_FER) - PM_PUSH_SYNC(11) + PM_PUSH_SYNC(7) + PM_SYS_PUSH16(0, PORTEIO_DIR) + PM_SYS_PUSH16(1, PORTEIO_INEN) + PM_SYS_PUSH16(2, PORTEIO) + PM_SYS_PUSH16(3, PORTEIO_FER) + PM_PUSH_SYNC(3) #endif /* Save Core MMRs */ @@ -776,11 +778,12 @@ ENTRY(_do_hibernate) FP.L = lo(SYSMMR_BASE); #ifdef PORTCIO_FER - PM_POP_SYNC(11) - PM_SYS_POP16(11, PORTEIO_FER) - PM_SYS_POP16(10, PORTEIO) - PM_SYS_POP16(9, PORTEIO_INEN) - PM_SYS_POP16(8, PORTEIO_DIR) + PM_POP_SYNC(3) + PM_SYS_POP16(3, PORTEIO_FER) + PM_SYS_POP16(2, PORTEIO) + PM_SYS_POP16(1, PORTEIO_INEN) + PM_SYS_POP16(0, PORTEIO_DIR) + PM_POP_SYNC(7) PM_SYS_POP16(7, PORTDIO_FER) PM_SYS_POP16(6, PORTDIO) PM_SYS_POP16(5, PORTDIO_INEN)
_______________________________________________ Linux-kernel-commits mailing list [email protected] https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits
