From df4849d78f7ae03570525c6392ef1a18589bbcb6 Mon Sep 17 00:00:00 2001 From: Robin Getz Date: Mon, 29 Mar 2010 04:30:40 +0000 Subject: [PATCH] --- yaml --- r: 198191 b: refs/heads/master c: a6d9dbf5e4daaf21b33917a809a5ac1e7bce9e05 h: refs/heads/master i: 198189: 22d84e843068f5ca9a0b78a92b0650cb8538c49a 198187: 9b3b335787abe59226301bb562206369ea8e84d3 198183: 937f4f3f505f4421d3ec399f65e9fc1a04f60363 198175: a4a30a18c822dbd58d983d1f5651a73c558cfc05 v: v3 --- [refs] | 2 +- trunk/arch/blackfin/kernel/pseudodbg.c | 25 +++++++++++++++++++------ 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index c4ddcdc6f991..726fde40fb36 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5a132f7aeba772e1e1f9ccbad14a6779cd40cdfb +refs/heads/master: a6d9dbf5e4daaf21b33917a809a5ac1e7bce9e05 diff --git a/trunk/arch/blackfin/kernel/pseudodbg.c b/trunk/arch/blackfin/kernel/pseudodbg.c index e57ce2f64bfe..db85bc94334e 100644 --- a/trunk/arch/blackfin/kernel/pseudodbg.c +++ b/trunk/arch/blackfin/kernel/pseudodbg.c @@ -158,7 +158,7 @@ bool execute_pseudodbg_assert(struct pt_regs *fp, unsigned int opcode) bool execute_pseudodbg(struct pt_regs *fp, unsigned int opcode) { int grp, fn, reg; - long value; + long value, value1; if ((opcode & 0xFF000000) != PseudoDbg_opcode) return false; @@ -168,11 +168,24 @@ bool execute_pseudodbg(struct pt_regs *fp, unsigned int opcode) fn = ((opcode >> PseudoDbg_fn_bits) & PseudoDbg_fn_mask); reg = ((opcode >> PseudoDbg_reg_bits) & PseudoDbg_reg_mask); - if (!fix_up_reg(fp, &value, grp, reg)) - return false; + if (fn == 3 && (reg == 0 || reg == 1)) { + if (!fix_up_reg(fp, &value, 4, 2 * reg)) + return false; + if (!fix_up_reg(fp, &value1, 4, 2 * reg + 1)) + return false; - pr_notice("DBG %s = %08lx\n", get_allreg_name(grp, reg), value); + pr_notice("DBG A%i = %02lx%08lx\n", reg, value & 0xFF, value1); + fp->pc += 2; + return true; - fp->pc += 2; - return true; + } else if (fn == 0) { + if (!fix_up_reg(fp, &value, grp, reg)) + return false; + + pr_notice("DBG %s = %08lx\n", get_allreg_name(grp, reg), value); + fp->pc += 2; + return true; + } + + return false; }