From nobody Tue Feb 10 17:14:55 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1646087266647839.1128880707828; Mon, 28 Feb 2022 14:27:46 -0800 (PST) Received: from localhost ([::1]:51772 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nOoUb-0006TA-8K for importer@patchew.org; Mon, 28 Feb 2022 17:27:45 -0500 Received: from eggs.gnu.org ([209.51.188.92]:47874) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nOoSl-0003rz-U9 for qemu-devel@nongnu.org; Mon, 28 Feb 2022 17:25:52 -0500 Received: from [2001:41c9:1:41f::167] (port=51104 helo=mail.default.ilande.bv.iomart.io) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nOoSk-0003LO-E9 for qemu-devel@nongnu.org; Mon, 28 Feb 2022 17:25:51 -0500 Received: from [2a00:23c4:8ba0:ca00:d4eb:dbd5:5a41:aefe] (helo=kentang.home) by mail.default.ilande.bv.iomart.io with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nOoS3-0004GN-Bj; Mon, 28 Feb 2022 22:25:11 +0000 From: Mark Cave-Ayland To: laurent@vivier.eu, pbonzini@redhat.com, fam@euphon.net, qemu-devel@nongnu.org Date: Mon, 28 Feb 2022 22:25:19 +0000 Message-Id: <20220228222527.8234-3-mark.cave-ayland@ilande.co.uk> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20220228222527.8234-1-mark.cave-ayland@ilande.co.uk> References: <20220228222527.8234-1-mark.cave-ayland@ilande.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a00:23c4:8ba0:ca00:d4eb:dbd5:5a41:aefe X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk Subject: [PATCH 02/10] macfb: don't use special irq_state and irq_mask variables in MacfbState X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.default.ilande.bv.iomart.io) X-Host-Lookup-Failed: Reverse DNS lookup failed for 2001:41c9:1:41f::167 (failed) Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:41c9:1:41f::167; envelope-from=mark.cave-ayland@ilande.co.uk; helo=mail.default.ilande.bv.iomart.io X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZM-MESSAGEID: 1646087268689100002 Content-Type: text/plain; charset="utf-8" The current IRQ state and IRQ mask are handled exactly the same as standard register accesses, so store these values directly in the regs array rather than having separate variables for them. Signed-off-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/display/macfb.c | 15 +++++++-------- include/hw/display/macfb.h | 2 -- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/hw/display/macfb.c b/hw/display/macfb.c index 66ceacf1ae..fb54b460c1 100644 --- a/hw/display/macfb.c +++ b/hw/display/macfb.c @@ -476,7 +476,8 @@ static void macfb_update_display(void *opaque) =20 static void macfb_update_irq(MacfbState *s) { - uint32_t irq_state =3D s->irq_state & s->irq_mask; + uint32_t irq_state =3D s->regs[DAFB_INTR_STAT >> 2] & + s->regs[DAFB_INTR_MASK >> 2]; =20 if (irq_state) { qemu_irq_raise(s->irq); @@ -496,7 +497,7 @@ static void macfb_vbl_timer(void *opaque) MacfbState *s =3D opaque; int64_t next_vbl; =20 - s->irq_state |=3D DAFB_INTR_VBL; + s->regs[DAFB_INTR_STAT >> 2] |=3D DAFB_INTR_VBL; macfb_update_irq(s); =20 /* 60 Hz irq */ @@ -530,10 +531,8 @@ static uint64_t macfb_ctrl_read(void *opaque, case DAFB_MODE_VADDR2: case DAFB_MODE_CTRL1: case DAFB_MODE_CTRL2: - val =3D s->regs[addr >> 2]; - break; case DAFB_INTR_STAT: - val =3D s->irq_state; + val =3D s->regs[addr >> 2]; break; case DAFB_MODE_SENSE: val =3D macfb_sense_read(s); @@ -568,7 +567,7 @@ static void macfb_ctrl_write(void *opaque, macfb_sense_write(s, val); break; case DAFB_INTR_MASK: - s->irq_mask =3D val; + s->regs[addr >> 2] =3D val; if (val & DAFB_INTR_VBL) { next_vbl =3D macfb_next_vbl(); timer_mod(s->vbl_timer, next_vbl); @@ -577,12 +576,12 @@ static void macfb_ctrl_write(void *opaque, } break; case DAFB_INTR_CLEAR: - s->irq_state &=3D ~DAFB_INTR_VBL; + s->regs[DAFB_INTR_STAT >> 2] &=3D ~DAFB_INTR_VBL; macfb_update_irq(s); break; case DAFB_RESET: s->palette_current =3D 0; - s->irq_state &=3D ~DAFB_INTR_VBL; + s->regs[DAFB_INTR_STAT >> 2] &=3D ~DAFB_INTR_VBL; macfb_update_irq(s); break; case DAFB_LUT: diff --git a/include/hw/display/macfb.h b/include/hw/display/macfb.h index e52775aa21..6d9f0f7869 100644 --- a/include/hw/display/macfb.h +++ b/include/hw/display/macfb.h @@ -66,8 +66,6 @@ typedef struct MacfbState { uint32_t regs[MACFB_NUM_REGS]; MacFbMode *mode; =20 - uint32_t irq_state; - uint32_t irq_mask; QEMUTimer *vbl_timer; qemu_irq irq; } MacfbState; --=20 2.20.1