From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:39162) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TsIGY-0004a3-Co for qemu-devel@nongnu.org; Mon, 07 Jan 2013 14:21:47 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TsIGV-0000rx-MC for qemu-devel@nongnu.org; Mon, 07 Jan 2013 14:21:46 -0500 From: Alexander Graf Date: Mon, 7 Jan 2013 20:21:38 +0100 Message-Id: <1357586499-11463-3-git-send-email-agraf@suse.de> In-Reply-To: <1357586499-11463-1-git-send-email-agraf@suse.de> References: <1357586499-11463-1-git-send-email-agraf@suse.de> Subject: [Qemu-devel] [PATCH ppc-next 2/3] openpic: unify gcr mode mask updates List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Scott Wood , qemu-ppc@nongnu.org The mode mask already masks out bits we don't care about, so the actual handling code can stay intact regardless. Signed-off-by: Alexander Graf --- hw/openpic.c | 25 +++++++++++++------------ 1 files changed, 13 insertions(+), 12 deletions(-) diff --git a/hw/openpic.c b/hw/openpic.c index 344f97f..713322b 100644 --- a/hw/openpic.c +++ b/hw/openpic.c @@ -643,22 +643,23 @@ static inline void write_IRQreg_ivpr(OpenPICState *opp, int n_IRQ, uint32_t val) static void openpic_gcr_write(OpenPICState *opp, uint64_t val) { + CPUArchState *env; + int mpic_proxy = 0; + if (val & GCR_RESET) { openpic_reset(&opp->busdev.qdev); - } else if (opp->mpic_mode_mask) { - CPUArchState *env; - int mpic_proxy = 0; + return; + } - opp->gcr &= ~opp->mpic_mode_mask; - opp->gcr |= val & opp->mpic_mode_mask; + opp->gcr &= ~opp->mpic_mode_mask; + opp->gcr |= val & opp->mpic_mode_mask; - /* Set external proxy mode */ - if ((val & opp->mpic_mode_mask) == GCR_MODE_PROXY) { - mpic_proxy = 1; - } - for (env = first_cpu; env != NULL; env = env->next_cpu) { - env->mpic_proxy = mpic_proxy; - } + /* Set external proxy mode */ + if ((val & opp->mpic_mode_mask) == GCR_MODE_PROXY) { + mpic_proxy = 1; + } + for (env = first_cpu; env != NULL; env = env->next_cpu) { + env->mpic_proxy = mpic_proxy; } } -- 1.6.0.2