From nobody Wed Dec 17 09:16:54 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1697184858; cv=none; d=zohomail.com; s=zohoarc; b=CvCzEkbF+4/LFxIuYd1NBMG8QN4kFIxeE7o0u145S9J5khEe4FoTw3bdb/5Wc4LDNd7tGXIt+jKUpZaNvBtPJviqddJsyITeGLo7x8Ck5aCPVm0U00lMQm9xOw72KSonLjS3LyyllDD7LGbdMW4FVNmI9uh8g1pIdVEEFX0/t7o= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1697184858; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=LC6FOzdVPfj53c0PnkbeOhejYZ/A9OnwVnvV0AXUNRc=; b=JNDQRnbyZbX+0Aq1qo08dukvhikI+Pzd557Gg347yZXYZSh98HqmgS8K5UJkggwThuuyEjrZ7r52GyWR2JcfQ7qM2+LYAKxTAk4nvjVRUbuufKgkcmHiPE/qJK22tLdHu87tsFighP/d+95rY6RfQWe0fHc03KatKHYL0rDubc0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1697184858376590.2006730133426; Fri, 13 Oct 2023 01:14:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qrD55-0005I9-Ni; Fri, 13 Oct 2023 03:59:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qrD4v-0003rR-9z for qemu-devel@nongnu.org; Fri, 13 Oct 2023 03:59:25 -0400 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qrD4s-0007A8-Hq for qemu-devel@nongnu.org; Fri, 13 Oct 2023 03:59:24 -0400 Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-313e742a787so1111711f8f.1 for ; Fri, 13 Oct 2023 00:59:22 -0700 (PDT) Received: from localhost.localdomain (adsl-26.37.6.0.tellas.gr. [37.6.0.26]) by smtp.gmail.com with ESMTPSA id a10-20020a05600c224a00b003fe23b10fdfsm1798183wmm.36.2023.10.13.00.59.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Oct 2023 00:59:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1697183960; x=1697788760; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=LC6FOzdVPfj53c0PnkbeOhejYZ/A9OnwVnvV0AXUNRc=; b=DQzwuqbV5g1xiUcl1VA4Jg5h6wx4cs1jNNG3A4qJaxn+yb6qafvQ2rgSAaaUXIxZSM DaCKlXFMN76rZngvj/pTFCwKK5Kt/J2OhG647Tc0y6j783y/wtBKIywIARx/seAmdFxj Y7Bo1wP9n5ntTHBNvEo3WVkn+U5tqX98B9i3y+vXfbQXnLYr98bOJxDu5ZZlMbrUbwq0 9SwfUVf+g/KU00UTWapBUIab++1giu/xpM8TBsBNW8qVV2fJvwecArNVHNdqza5vMOqS 6P68O1B2dUdD1DdyeiHAey7gwscaF65cmXnoaHd9DgRk+6+dmwr/JZ41ckeVaKMfd0Z/ 2gCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697183960; x=1697788760; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LC6FOzdVPfj53c0PnkbeOhejYZ/A9OnwVnvV0AXUNRc=; b=GbnrhKdKK/scvhvWHPxRb9ENo0DBUODL3N5CoQijDgJC8ocikwL+SrwPwFZdq5HsVt lBYMfrBFOPlNuEUOtRI1hQGHcmXIm134k/jjWJ+VL/J3mhR3R+tVCIoWrE8mj850DaSv iBH9Kg4hxNXxL3CJkuKaMCY0xFlFVbyw9WsRLb2TmAb8ae5+9CSuS4Qo9DoMEaGnkYhf V7awajX0VMMnzqBGsubNIHmF9G3AM7ZJxyohg5zFqAqrxNh9v75PUasauV5narb/5XXQ cA1pcNGOnieCYQvkkPCuxGm1W6UpZvjuj1ax1tXFHW1/6B9/N9z9H03iyBhEpWvf1qto I/WA== X-Gm-Message-State: AOJu0YyfyDbXA81c5MBky3bSQBxLSOlQDwcJafFhwMsCZfw4NIi8m/wC 2bJsEowF812nQ4i0RJ69DfMsNZewFARwGgpqoUE= X-Google-Smtp-Source: AGHT+IEiAykIsgbupiCy1OOjfHPMfuvKGwnhpMKjBuNC9F3vj7u4GO1aGGz+ZvVRUnviR7id8WaFIg== X-Received: by 2002:a5d:6452:0:b0:31f:f95c:dd7f with SMTP id d18-20020a5d6452000000b0031ff95cdd7fmr17621335wrw.12.1697183960557; Fri, 13 Oct 2023 00:59:20 -0700 (PDT) From: Emmanouil Pitsidianakis To: qemu-devel@nongnu.org Cc: Emmanouil Pitsidianakis , Peter Maydell , qemu-arm@nongnu.org (open list:OMAP) Subject: [RFC PATCH v2 49/78] hw/arm: add fallthrough pseudo-keyword Date: Fri, 13 Oct 2023 10:57:16 +0300 Message-Id: X-Mailer: git-send-email 2.39.2 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2a00:1450:4864:20::42e; envelope-from=manos.pitsidianakis@linaro.org; helo=mail-wr1-x42e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1697184858963100001 Content-Type: text/plain; charset="utf-8" In preparation of raising -Wimplicit-fallthrough to 5, replace all fall-through comments with the fallthrough attribute pseudo-keyword. Signed-off-by: Emmanouil Pitsidianakis --- hw/arm/omap1.c | 8 ++++---- hw/arm/pxa2xx.c | 6 +++--- hw/arm/stellaris.c | 1 + 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/hw/arm/omap1.c b/hw/arm/omap1.c index d5438156ee..c54a4ec553 100644 --- a/hw/arm/omap1.c +++ b/hw/arm/omap1.c @@ -531,46 +531,46 @@ static struct omap_32khz_timer_s *omap_os_timer_init(= MemoryRegion *memory, /* Ultra Low-Power Device Module */ static uint64_t omap_ulpd_pm_read(void *opaque, hwaddr addr, unsigned size) { struct omap_mpu_state_s *s =3D opaque; uint16_t ret; =20 if (size !=3D 2) { return omap_badwidth_read16(opaque, addr); } =20 switch (addr) { case 0x14: /* IT_STATUS */ ret =3D s->ulpd_pm_regs[addr >> 2]; s->ulpd_pm_regs[addr >> 2] =3D 0; qemu_irq_lower(qdev_get_gpio_in(s->ih[1], OMAP_INT_GAUGE_32K)); return ret; =20 case 0x18: /* Reserved */ case 0x1c: /* Reserved */ case 0x20: /* Reserved */ case 0x28: /* Reserved */ case 0x2c: /* Reserved */ OMAP_BAD_REG(addr); - /* fall through */ + fallthrough; case 0x00: /* COUNTER_32_LSB */ case 0x04: /* COUNTER_32_MSB */ case 0x08: /* COUNTER_HIGH_FREQ_LSB */ case 0x0c: /* COUNTER_HIGH_FREQ_MSB */ case 0x10: /* GAUGING_CTRL */ case 0x24: /* SETUP_ANALOG_CELL3_ULPD1 */ case 0x30: /* CLOCK_CTRL */ case 0x34: /* SOFT_REQ */ case 0x38: /* COUNTER_32_FIQ */ case 0x3c: /* DPLL_CTRL */ case 0x40: /* STATUS_REQ */ /* XXX: check clk::usecount state for every clock */ case 0x48: /* LOCL_TIME */ case 0x4c: /* APLL_CTRL */ case 0x50: /* POWER_CTRL */ return s->ulpd_pm_regs[addr >> 2]; } =20 OMAP_BAD_REG(addr); return 0; } @@ -600,120 +600,120 @@ static inline void omap_ulpd_req_update(struct omap= _mpu_state_s *s, static void omap_ulpd_pm_write(void *opaque, hwaddr addr, uint64_t value, unsigned size) { struct omap_mpu_state_s *s =3D opaque; int64_t now, ticks; int div, mult; static const int bypass_div[4] =3D { 1, 2, 4, 4 }; uint16_t diff; =20 if (size !=3D 2) { omap_badwidth_write16(opaque, addr, value); return; } =20 switch (addr) { case 0x00: /* COUNTER_32_LSB */ case 0x04: /* COUNTER_32_MSB */ case 0x08: /* COUNTER_HIGH_FREQ_LSB */ case 0x0c: /* COUNTER_HIGH_FREQ_MSB */ case 0x14: /* IT_STATUS */ case 0x40: /* STATUS_REQ */ OMAP_RO_REG(addr); break; =20 case 0x10: /* GAUGING_CTRL */ /* Bits 0 and 1 seem to be confused in the OMAP 310 TRM */ if ((s->ulpd_pm_regs[addr >> 2] ^ value) & 1) { now =3D qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL); =20 if (value & 1) s->ulpd_gauge_start =3D now; else { now -=3D s->ulpd_gauge_start; =20 /* 32-kHz ticks */ ticks =3D muldiv64(now, 32768, NANOSECONDS_PER_SECOND); s->ulpd_pm_regs[0x00 >> 2] =3D (ticks >> 0) & 0xffff; s->ulpd_pm_regs[0x04 >> 2] =3D (ticks >> 16) & 0xffff; if (ticks >> 32) /* OVERFLOW_32K */ s->ulpd_pm_regs[0x14 >> 2] |=3D 1 << 2; =20 /* High frequency ticks */ ticks =3D muldiv64(now, 12000000, NANOSECONDS_PER_SECOND); s->ulpd_pm_regs[0x08 >> 2] =3D (ticks >> 0) & 0xffff; s->ulpd_pm_regs[0x0c >> 2] =3D (ticks >> 16) & 0xffff; if (ticks >> 32) /* OVERFLOW_HI_FREQ */ s->ulpd_pm_regs[0x14 >> 2] |=3D 1 << 1; =20 s->ulpd_pm_regs[0x14 >> 2] |=3D 1 << 0; /* IT_GAUGING */ qemu_irq_raise(qdev_get_gpio_in(s->ih[1], OMAP_INT_GAUGE_3= 2K)); } } s->ulpd_pm_regs[addr >> 2] =3D value; break; =20 case 0x18: /* Reserved */ case 0x1c: /* Reserved */ case 0x20: /* Reserved */ case 0x28: /* Reserved */ case 0x2c: /* Reserved */ OMAP_BAD_REG(addr); - /* fall through */ + fallthrough; case 0x24: /* SETUP_ANALOG_CELL3_ULPD1 */ case 0x38: /* COUNTER_32_FIQ */ case 0x48: /* LOCL_TIME */ case 0x50: /* POWER_CTRL */ s->ulpd_pm_regs[addr >> 2] =3D value; break; =20 case 0x30: /* CLOCK_CTRL */ diff =3D s->ulpd_pm_regs[addr >> 2] ^ value; s->ulpd_pm_regs[addr >> 2] =3D value & 0x3f; omap_ulpd_clk_update(s, diff, value); break; =20 case 0x34: /* SOFT_REQ */ diff =3D s->ulpd_pm_regs[addr >> 2] ^ value; s->ulpd_pm_regs[addr >> 2] =3D value & 0x1f; omap_ulpd_req_update(s, diff, value); break; =20 case 0x3c: /* DPLL_CTRL */ /* XXX: OMAP310 TRM claims bit 3 is PLL_ENABLE, and bit 4 is * omitted altogether, probably a typo. */ /* This register has identical semantics with DPLL(1:3) control * registers, see omap_dpll_write() */ diff =3D s->ulpd_pm_regs[addr >> 2] & value; s->ulpd_pm_regs[addr >> 2] =3D value & 0x2fff; if (diff & (0x3ff << 2)) { if (value & (1 << 4)) { /* PLL_ENABLE */ div =3D ((value >> 5) & 3) + 1; /* PLL_DIV */ mult =3D MIN((value >> 7) & 0x1f, 1); /* PLL_MULT */ } else { div =3D bypass_div[((value >> 2) & 3)]; /* BYPASS_DIV */ mult =3D 1; } omap_clk_setrate(omap_findclk(s, "dpll4"), div, mult); } =20 /* Enter the desired mode. */ s->ulpd_pm_regs[addr >> 2] =3D (s->ulpd_pm_regs[addr >> 2] & 0xfffe) | ((s->ulpd_pm_regs[addr >> 2] >> 4) & 1); =20 /* Act as if the lock is restored. */ s->ulpd_pm_regs[addr >> 2] |=3D 2; break; =20 case 0x4c: /* APLL_CTRL */ diff =3D s->ulpd_pm_regs[addr >> 2] & value; s->ulpd_pm_regs[addr >> 2] =3D value & 0xf; if (diff & (1 << 0)) /* APLL_NDPLL_SWITCH */ omap_clk_reparent(omap_findclk(s, "ck_48m"), omap_findclk(s, (value & (1 << 0)) ? "apll" : "dpll4")= ); break; =20 default: OMAP_BAD_REG(addr); } } @@ -3169,97 +3169,97 @@ static void omap_mcbsp_req_update(struct omap_mcbsp= _s *s) static uint64_t omap_mcbsp_read(void *opaque, hwaddr addr, unsigned size) { struct omap_mcbsp_s *s =3D opaque; int offset =3D addr & OMAP_MPUI_REG_MASK; uint16_t ret; =20 if (size !=3D 2) { return omap_badwidth_read16(opaque, addr); } =20 switch (offset) { case 0x00: /* DRR2 */ if (((s->rcr[0] >> 5) & 7) < 3) /* RWDLEN1 */ return 0x0000; - /* Fall through. */ + fallthrough; case 0x02: /* DRR1 */ if (s->rx_req < 2) { printf("%s: Rx FIFO underrun\n", __func__); omap_mcbsp_rx_done(s); } else { s->tx_req -=3D 2; if (s->codec && s->codec->in.len >=3D 2) { ret =3D s->codec->in.fifo[s->codec->in.start ++] << 8; ret |=3D s->codec->in.fifo[s->codec->in.start ++]; s->codec->in.len -=3D 2; } else ret =3D 0x0000; if (!s->tx_req) omap_mcbsp_rx_done(s); return ret; } return 0x0000; =20 case 0x04: /* DXR2 */ case 0x06: /* DXR1 */ return 0x0000; =20 case 0x08: /* SPCR2 */ return s->spcr[1]; case 0x0a: /* SPCR1 */ return s->spcr[0]; case 0x0c: /* RCR2 */ return s->rcr[1]; case 0x0e: /* RCR1 */ return s->rcr[0]; case 0x10: /* XCR2 */ return s->xcr[1]; case 0x12: /* XCR1 */ return s->xcr[0]; case 0x14: /* SRGR2 */ return s->srgr[1]; case 0x16: /* SRGR1 */ return s->srgr[0]; case 0x18: /* MCR2 */ return s->mcr[1]; case 0x1a: /* MCR1 */ return s->mcr[0]; case 0x1c: /* RCERA */ return s->rcer[0]; case 0x1e: /* RCERB */ return s->rcer[1]; case 0x20: /* XCERA */ return s->xcer[0]; case 0x22: /* XCERB */ return s->xcer[1]; case 0x24: /* PCR0 */ return s->pcr; case 0x26: /* RCERC */ return s->rcer[2]; case 0x28: /* RCERD */ return s->rcer[3]; case 0x2a: /* XCERC */ return s->xcer[2]; case 0x2c: /* XCERD */ return s->xcer[3]; case 0x2e: /* RCERE */ return s->rcer[4]; case 0x30: /* RCERF */ return s->rcer[5]; case 0x32: /* XCERE */ return s->xcer[4]; case 0x34: /* XCERF */ return s->xcer[5]; case 0x36: /* RCERG */ return s->rcer[6]; case 0x38: /* RCERH */ return s->rcer[7]; case 0x3a: /* XCERG */ return s->xcer[6]; case 0x3c: /* XCERH */ return s->xcer[7]; } =20 OMAP_BAD_REG(addr); return 0; } @@ -3267,135 +3267,135 @@ static uint64_t omap_mcbsp_read(void *opaque, hwa= ddr addr, static void omap_mcbsp_writeh(void *opaque, hwaddr addr, uint32_t value) { struct omap_mcbsp_s *s =3D opaque; int offset =3D addr & OMAP_MPUI_REG_MASK; =20 switch (offset) { case 0x00: /* DRR2 */ case 0x02: /* DRR1 */ OMAP_RO_REG(addr); return; =20 case 0x04: /* DXR2 */ if (((s->xcr[0] >> 5) & 7) < 3) /* XWDLEN1 */ return; - /* Fall through. */ + fallthrough; case 0x06: /* DXR1 */ if (s->tx_req > 1) { s->tx_req -=3D 2; if (s->codec && s->codec->cts) { s->codec->out.fifo[s->codec->out.len ++] =3D (value >> 8) = & 0xff; s->codec->out.fifo[s->codec->out.len ++] =3D (value >> 0) = & 0xff; } if (s->tx_req < 2) omap_mcbsp_tx_done(s); } else printf("%s: Tx FIFO overrun\n", __func__); return; =20 case 0x08: /* SPCR2 */ s->spcr[1] &=3D 0x0002; s->spcr[1] |=3D 0x03f9 & value; s->spcr[1] |=3D 0x0004 & (value << 2); /* XEMPTY :=3D XRST */ if (~value & 1) /* XRST */ s->spcr[1] &=3D ~6; omap_mcbsp_req_update(s); return; case 0x0a: /* SPCR1 */ s->spcr[0] &=3D 0x0006; s->spcr[0] |=3D 0xf8f9 & value; if (value & (1 << 15)) /* DLB */ printf("%s: Digital Loopback mode enable attempt\n", __func__); if (~value & 1) { /* RRST */ s->spcr[0] &=3D ~6; s->rx_req =3D 0; omap_mcbsp_rx_done(s); } omap_mcbsp_req_update(s); return; =20 case 0x0c: /* RCR2 */ s->rcr[1] =3D value & 0xffff; return; case 0x0e: /* RCR1 */ s->rcr[0] =3D value & 0x7fe0; return; case 0x10: /* XCR2 */ s->xcr[1] =3D value & 0xffff; return; case 0x12: /* XCR1 */ s->xcr[0] =3D value & 0x7fe0; return; case 0x14: /* SRGR2 */ s->srgr[1] =3D value & 0xffff; omap_mcbsp_req_update(s); return; case 0x16: /* SRGR1 */ s->srgr[0] =3D value & 0xffff; omap_mcbsp_req_update(s); return; case 0x18: /* MCR2 */ s->mcr[1] =3D value & 0x03e3; if (value & 3) /* XMCM */ printf("%s: Tx channel selection mode enable attempt\n", __fun= c__); return; case 0x1a: /* MCR1 */ s->mcr[0] =3D value & 0x03e1; if (value & 1) /* RMCM */ printf("%s: Rx channel selection mode enable attempt\n", __fun= c__); return; case 0x1c: /* RCERA */ s->rcer[0] =3D value & 0xffff; return; case 0x1e: /* RCERB */ s->rcer[1] =3D value & 0xffff; return; case 0x20: /* XCERA */ s->xcer[0] =3D value & 0xffff; return; case 0x22: /* XCERB */ s->xcer[1] =3D value & 0xffff; return; case 0x24: /* PCR0 */ s->pcr =3D value & 0x7faf; return; case 0x26: /* RCERC */ s->rcer[2] =3D value & 0xffff; return; case 0x28: /* RCERD */ s->rcer[3] =3D value & 0xffff; return; case 0x2a: /* XCERC */ s->xcer[2] =3D value & 0xffff; return; case 0x2c: /* XCERD */ s->xcer[3] =3D value & 0xffff; return; case 0x2e: /* RCERE */ s->rcer[4] =3D value & 0xffff; return; case 0x30: /* RCERF */ s->rcer[5] =3D value & 0xffff; return; case 0x32: /* XCERE */ s->xcer[4] =3D value & 0xffff; return; case 0x34: /* XCERF */ s->xcer[5] =3D value & 0xffff; return; case 0x36: /* RCERG */ s->rcer[6] =3D value & 0xffff; return; case 0x38: /* RCERH */ s->rcer[7] =3D value & 0xffff; return; case 0x3a: /* XCERG */ s->xcer[6] =3D value & 0xffff; return; case 0x3c: /* XCERH */ s->xcer[7] =3D value & 0xffff; return; } =20 OMAP_BAD_REG(addr); } diff --git a/hw/arm/pxa2xx.c b/hw/arm/pxa2xx.c index 07d5dd8691..eaa6684243 100644 --- a/hw/arm/pxa2xx.c +++ b/hw/arm/pxa2xx.c @@ -265,68 +265,68 @@ static void pxa2xx_clkcfg_write(CPUARMState *env, con= st ARMCPRegInfo *ri, static void pxa2xx_pwrmode_write(CPUARMState *env, const ARMCPRegInfo *ri, uint64_t value) { PXA2xxState *s =3D (PXA2xxState *)ri->opaque; static const char *pwrmode[8] =3D { "Normal", "Idle", "Deep-idle", "Standby", "Sleep", "reserved (!)", "reserved (!)", "Deep-sleep", }; =20 if (value & 8) { printf("%s: CPU voltage change attempt\n", __func__); } switch (value & 7) { case 0: /* Do nothing */ break; =20 case 1: /* Idle */ if (!(s->cm_regs[CCCR >> 2] & (1U << 31))) { /* CPDIS */ cpu_interrupt(CPU(s->cpu), CPU_INTERRUPT_HALT); break; } - /* Fall through. */ + fallthrough; =20 case 2: /* Deep-Idle */ cpu_interrupt(CPU(s->cpu), CPU_INTERRUPT_HALT); s->pm_regs[RCSR >> 2] |=3D 0x8; /* Set GPR */ goto message; =20 case 3: s->cpu->env.uncached_cpsr =3D ARM_CPU_MODE_SVC; s->cpu->env.daif =3D PSTATE_A | PSTATE_F | PSTATE_I; s->cpu->env.cp15.sctlr_ns =3D 0; s->cpu->env.cp15.cpacr_el1 =3D 0; s->cpu->env.cp15.ttbr0_el[1] =3D 0; s->cpu->env.cp15.dacr_ns =3D 0; s->pm_regs[PSSR >> 2] |=3D 0x8; /* Set STS */ s->pm_regs[RCSR >> 2] |=3D 0x8; /* Set GPR */ =20 /* * The scratch-pad register is almost universally used * for storing the return address on suspend. For the * lack of a resuming bootloader, perform a jump * directly to that address. */ memset(s->cpu->env.regs, 0, 4 * 15); s->cpu->env.regs[15] =3D s->pm_regs[PSPR >> 2]; =20 #if 0 buffer =3D 0xe59ff000; /* ldr pc, [pc, #0] */ cpu_physical_memory_write(0, &buffer, 4); buffer =3D s->pm_regs[PSPR >> 2]; cpu_physical_memory_write(8, &buffer, 4); #endif =20 /* Suspend */ cpu_interrupt(current_cpu, CPU_INTERRUPT_HALT); =20 goto message; =20 default: message: printf("%s: machine entered %s mode\n", __func__, pwrmode[value & 7]); } } @@ -419,18 +419,18 @@ static void pxa2xx_setup_cp14(PXA2xxState *s) static uint64_t pxa2xx_mm_read(void *opaque, hwaddr addr, unsigned size) { PXA2xxState *s =3D (PXA2xxState *) opaque; =20 switch (addr) { case MDCNFG ... SA1110: if ((addr & 3) =3D=3D 0) return s->mm_regs[addr >> 2]; - /* fall through */ + fallthrough; default: qemu_log_mask(LOG_GUEST_ERROR, "%s: Bad read offset 0x%"HWADDR_PRIx"\n", __func__, addr); break; } return 0; } @@ -438,19 +438,19 @@ static uint64_t pxa2xx_mm_read(void *opaque, hwaddr a= ddr, static void pxa2xx_mm_write(void *opaque, hwaddr addr, uint64_t value, unsigned size) { PXA2xxState *s =3D (PXA2xxState *) opaque; =20 switch (addr) { case MDCNFG ... SA1110: if ((addr & 3) =3D=3D 0) { s->mm_regs[addr >> 2] =3D value; break; } - /* fallthrough */ + fallthrough; default: qemu_log_mask(LOG_GUEST_ERROR, "%s: Bad write offset 0x%"HWADDR_PRIx"\n", __func__, addr); break; } } diff --git a/hw/arm/stellaris.c b/hw/arm/stellaris.c index aa5b0ddfaa..d68602ab71 100644 --- a/hw/arm/stellaris.c +++ b/hw/arm/stellaris.c @@ -147,20 +147,21 @@ static uint32_t pllcfg_fury[16] =3D { static int ssys_board_class(const ssys_state *s) { uint32_t did0 =3D s->did0; switch (did0 & DID0_VER_MASK) { case DID0_VER_0: return DID0_CLASS_SANDSTORM; case DID0_VER_1: switch (did0 & DID0_CLASS_MASK) { case DID0_CLASS_SANDSTORM: case DID0_CLASS_FURY: return did0 & DID0_CLASS_MASK; } /* for unknown classes, fall through */ + fallthrough; default: /* This can only happen if the hardwired constant did0 value * in this board's stellaris_board_info struct is wrong. */ g_assert_not_reached(); } } --=20 2.39.2