From nobody Thu May 2 06:43:08 2024 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 ARC-Seal: i=1; a=rsa-sha256; t=1594482223; cv=none; d=zohomail.com; s=zohoarc; b=nSPQFz4YyU4/ZVLqEXR5MRUNBTOVQmdFf/825G64YzwJjNcYnv90qyScGZxH7DMPpYks1FHBseRkVrDz9ezF5azjQELYrORUQ28jmKWPsXmixTBb50LTQcv4UuJDRBz/jZy5jg6SJ5yHSrcuYA6mNSi4srJ1qoTcRp+iWvc4RnI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1594482223; h=Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=sJ3FXWpKZannukdj32JU8fDfNPqpcrnK8ZhNo+rU1Dc=; b=XWxnIe4KdQ1I7E2DqbDYpFeJo3EVbD1isIUU9hjukgPJMOV5eE8fH/DZh4uZzbib37VEm7BN+VSpWGrRaSKS7vzLUP78WvtEhQNaT9sCSRY1fNcxCQZT+F4RYAssp74+h2i1GSCGqAKXGR4TY9WVotuJxA2UN1vByp/4Oagcx00= ARC-Authentication-Results: i=1; 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 1594482223881930.9234552423422; Sat, 11 Jul 2020 08:43:43 -0700 (PDT) Received: from localhost ([::1]:54954 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1juHfB-0001oH-Tz for importer@patchew.org; Sat, 11 Jul 2020 11:43:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47814) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1juHeT-000151-U4 for qemu-devel@nongnu.org; Sat, 11 Jul 2020 11:42:57 -0400 Received: from mail03.asahi-net.or.jp ([202.224.55.15]:56435) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1juHeR-0005nl-Ri for qemu-devel@nongnu.org; Sat, 11 Jul 2020 11:42:57 -0400 Received: from sakura.ysato.name (ik1-413-38519.vs.sakura.ne.jp [153.127.30.23]) (Authenticated sender: PQ4Y-STU) by mail03.asahi-net.or.jp (Postfix) with ESMTPA id 84A4C101D15; Sun, 12 Jul 2020 00:42:49 +0900 (JST) Received: from yo-satoh-debian.localdomain (ZM005235.ppp.dion.ne.jp [222.8.5.235]) by sakura.ysato.name (Postfix) with ESMTPSA id E08381C0859; Sun, 12 Jul 2020 00:42:48 +0900 (JST) From: Yoshinori Sato To: qemu-devel@nongnu.org Subject: [PATCH] hw/timer/renesas_tmr.c cleanup read operation. Date: Sun, 12 Jul 2020 00:42:42 +0900 Message-Id: <20200711154242.41222-1-ysato@users.sourceforge.jp> X-Mailer: git-send-email 2.20.1 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: softfail client-ip=202.224.55.15; envelope-from=ysato@users.sourceforge.jp; helo=mail03.asahi-net.or.jp X-detected-operating-system: by eggs.gnu.org: First seen = 2020/07/11 11:42:50 X-ACL-Warn: Detected OS = ??? X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_SOFTFAIL=0.665 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Yoshinori Sato Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Type: text/plain; charset="utf-8" Cleanup read operation. This module different return of access size. Signed-off-by: Yoshinori Sato --- hw/timer/renesas_tmr.c | 106 ++++++++++++++++++++++------------------- 1 file changed, 57 insertions(+), 49 deletions(-) diff --git a/hw/timer/renesas_tmr.c b/hw/timer/renesas_tmr.c index 446f2eacdd..d7b21edf39 100644 --- a/hw/timer/renesas_tmr.c +++ b/hw/timer/renesas_tmr.c @@ -187,59 +187,67 @@ static uint64_t tmr_read(void *opaque, hwaddr addr, u= nsigned size) addr); return UINT64_MAX; } - switch (addr & 0x0e) { - case A_TCR: - ret =3D 0; - ret =3D FIELD_DP8(ret, TCR, CCLR, - FIELD_EX8(tmr->tcr[ch], TCR, CCLR)); - ret =3D FIELD_DP8(ret, TCR, OVIE, - FIELD_EX8(tmr->tcr[ch], TCR, OVIE)); - ret =3D FIELD_DP8(ret, TCR, CMIEA, - FIELD_EX8(tmr->tcr[ch], TCR, CMIEA)); - ret =3D FIELD_DP8(ret, TCR, CMIEB, - FIELD_EX8(tmr->tcr[ch], TCR, CMIEB)); - return ret; - case A_TCSR: - ret =3D 0; - ret =3D FIELD_DP8(ret, TCSR, OSA, - FIELD_EX8(tmr->tcsr[ch], TCSR, OSA)); - ret =3D FIELD_DP8(ret, TCSR, OSB, - FIELD_EX8(tmr->tcsr[ch], TCSR, OSB)); - switch (ch) { - case 0: - ret =3D FIELD_DP8(ret, TCSR, ADTE, - FIELD_EX8(tmr->tcsr[ch], TCSR, ADTE)); - break; - case 1: /* CH1 ADTE unimplement always 1 */ - ret =3D FIELD_DP8(ret, TCSR, ADTE, 1); - break; - } - return ret; - case A_TCORA: - if (size =3D=3D 1) { + switch (size) { + case 1: + switch (addr & 0x0e) { + case A_TCR: + ret =3D 0; + ret =3D FIELD_DP8(ret, TCR, CCLR, + FIELD_EX8(tmr->tcr[ch], TCR, CCLR)); + ret =3D FIELD_DP8(ret, TCR, OVIE, + FIELD_EX8(tmr->tcr[ch], TCR, OVIE)); + ret =3D FIELD_DP8(ret, TCR, CMIEA, + FIELD_EX8(tmr->tcr[ch], TCR, CMIEA)); + ret =3D FIELD_DP8(ret, TCR, CMIEB, + FIELD_EX8(tmr->tcr[ch], TCR, CMIEB)); + return ret; + case A_TCSR: + ret =3D 0; + ret =3D FIELD_DP8(ret, TCSR, OSA, + FIELD_EX8(tmr->tcsr[ch], TCSR, OSA)); + ret =3D FIELD_DP8(ret, TCSR, OSB, + FIELD_EX8(tmr->tcsr[ch], TCSR, OSB)); + switch (ch) { + case 0: + ret =3D FIELD_DP8(ret, TCSR, ADTE, + FIELD_EX8(tmr->tcsr[ch], TCSR, ADTE)); + break; + case 1: /* CH1 ADTE unimplement always 1 */ + ret =3D FIELD_DP8(ret, TCSR, ADTE, 1); + break; + } + return ret; + case A_TCORA: return tmr->tcora[ch]; - } else if (ch =3D=3D 0) { - return concat_reg(tmr->tcora); - } - case A_TCORB: - if (size =3D=3D 1) { + case A_TCORB: return tmr->tcorb[ch]; - } else { - return concat_reg(tmr->tcorb); - } - case A_TCNT: - return read_tcnt(tmr, size, ch); - case A_TCCR: - if (size =3D=3D 1) { + case A_TCNT: + return read_tcnt(tmr, size, ch); + case A_TCCR: return read_tccr(tmr->tccr[ch]); - } else { - return read_tccr(tmr->tccr[0]) << 8 | read_tccr(tmr->tccr[1]); + default: + qemu_log_mask(LOG_UNIMP, "renesas_tmr: Register 0x%" HWADDR_PR= IX + " not implemented\n", + addr); + break; + } + case 2: + switch (addr) { + case A_TCORA: + return concat_reg(tmr->tcora); + case A_TCORB: + return concat_reg(tmr->tcora); + case A_TCNT: + return read_tcnt(tmr, size, ch); + case A_TCCR: + return read_tccr(tmr->tccr[ch]) << 8 | read_tccr(tmr->tccr[1]); + default: + qemu_log_mask(LOG_GUEST_ERROR, + "renesas_tmr: Register 0x%" HWADDR_PRIX + " invalid access size\n", + addr); + break; } - default: - qemu_log_mask(LOG_UNIMP, "renesas_tmr: Register 0x%" HWADDR_PRIX - " not implemented\n", - addr); - break; } return UINT64_MAX; } --=20 2.20.1