From nobody Tue Feb 10 15:28:57 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of redhat.com designates 66.187.233.73 as permitted sender) smtp.mailfrom=famz@redhat.com Return-Path: Received: from mx1.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by mx.zohomail.com with SMTPS id 1518486068074801.0655466523814; Mon, 12 Feb 2018 17:41:08 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 4C1A88151D4A for ; Tue, 13 Feb 2018 01:41:07 +0000 (UTC) Received: from localhost (ovpn-12-89.pek2.redhat.com [10.72.12.89]) by smtp.corp.redhat.com (Postfix) with ESMTP id AE7BA2024CA1 for ; Tue, 13 Feb 2018 01:41:06 +0000 (UTC) Received: by 10.103.56.144 with SMTP id n16csp4053663vsi; Mon, 12 Feb 2018 10:00:48 -0800 (PST) Received: from mx1.redhat.com (mx1.redhat.com. [209.132.183.28]) by mx.google.com with ESMTPS id z31si3219290otc.308.2018.02.12.10.00.47 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 12 Feb 2018 10:00:48 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8CB7B61460 for ; Mon, 12 Feb 2018 18:00:47 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 836465D6B7; Mon, 12 Feb 2018 18:00:47 +0000 (UTC) Received: from mx1.redhat.com (ext-mx03.extmail.prod.ext.phx2.redhat.com [10.5.110.27]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7A0C980C1; Mon, 12 Feb 2018 18:00:46 +0000 (UTC) Received: from mail-qt0-f195.google.com (mail-qt0-f195.google.com [209.85.216.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 5849180F9C; Mon, 12 Feb 2018 18:00:45 +0000 (UTC) Received: by mail-qt0-f195.google.com with SMTP id q18so597551qtl.3; Mon, 12 Feb 2018 10:00:45 -0800 (PST) Received: from x1.local ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id m3sm7434762qkm.56.2018.02.12.10.00.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 12 Feb 2018 10:00:43 -0800 (PST) Resent-From: Fam Zheng Resent-Date: Tue, 13 Feb 2018 09:41:05 +0800 Resent-Message-ID: <20180213014105.GA27322@lemon.usersys.redhat.com> Resent-To: importer@patchew.org X-Google-Smtp-Source: AH8x225vz2Tg4pGks7dzaqvMh/dHMdevskv5I3C+Qj9OX72jbW9sQemmQ4M3xDcYjeybin8/qSqx X-Received: by 10.202.83.135 with SMTP id h129mr7955244oib.330.1518458448200; Mon, 12 Feb 2018 10:00:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518458448; cv=none; d=google.com; s=arc-20160816; b=jxEX/asLRTRGZmt/0qCHBuQqU8uOpA1WPIaeLvLsvOM4z+vPBN1ilXCqHXZtIa7Pz5 1FcbcYY6dEnjSnk5QylWq59gcxDFbv06vJI4kcFuLvAAcOhgscc+R8iqWM2iU9t/lJgR 2mktFG/v5x/K57Cn6w3kP44uMO7KzvUHoKfl6uWgD+tS441rxSiakibpTOtMyJ1wHOPW Y3HOttBCzY0ParXABRGX6eVN40924kdOrLnovxgIu33ycyArdOCqkAUDs350yIZjW8WQ T1fUA61j4IAgTVsvBQvNehpe2oXiHq6y2BwzHTGNt0h8D/gfVpg3gpnNZgAb8aWR+K5A OmWw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:dkim-signature :delivered-to:arc-authentication-results; bh=DlJXmu6pOxEfclwdJTYA1jbKMHKlyFY5md62EwxW6is=; b=cCAFL4dwk5UUgEqOH1YuE9KBiV+H5tr970pn3Xj58Id4A30oQUVzixb/ZSwXO7E6je Ci79TK4lelnkp4xE/ENdCLeSecOab2k7tJg1DYMRnr07xoPDaKDyIm2lCKTnuzsw21kc iT7guNpq9ZB23/LsmyZYv9ZoYCjIyF0595yqQd8yFJjcuy+pgbCoRqWAqdLaUNEcqeSk g5//4JfKIfGiZINxl4LcSuTj6zCYOHwR48WgZXXmMH+KifEoeqNqpe5Y7EwAB2e9oqZM x994shIoqx6/zVc3piDzoznF0xCukcMqbn0t+qz+FP4aBG35Qvz1bAk3ytyapQ/Xdwyv YKlg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=MhpYVl/c; spf=pass (google.com: domain of philippe.mathieu.daude@gmail.com designates 209.85.216.195 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received-SPF: pass (zoho.com: domain of redhat.com designates 66.187.233.73 as permitted sender) client-ip=66.187.233.73; envelope-from=famz@redhat.com; helo=mx1.redhat.com; Received-SPF: pass (google.com: domain of philippe.mathieu.daude@gmail.com designates 209.85.216.195 as permitted sender) client-ip=209.85.216.195; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=MhpYVl/c; spf=pass (google.com: domain of philippe.mathieu.daude@gmail.com designates 209.85.216.195 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=DlJXmu6pOxEfclwdJTYA1jbKMHKlyFY5md62EwxW6is=; b=MhpYVl/cAo1kaXUsfOdtufbuARzgSmirnbUsDVci01mrvHAW7+mGNZ+15JsaX+lx3P GtQwqwbL13JBgceLSJT1S4YXfXH95nnlO4CSQ2yeiu9RcS8Pcl6tD3XjewBJnqrdpHC5 0mkPQNvNfcvanVU4vlo1Tf3mFZwE6syLhoYWvXGkGtXYp52+cMdWpo8ivFoNCsIJFqfj anuwWVKw27Sdh0q+HskZQ0BuZTVrXJO8S9L8eEzT5AhGf4as3UYh3LdelgCht+yRx85K glP41DVhPV95X1sKH7YEfvXPExNXBxMZ4SxTwDk6HHhBmRsGjIJTWlqGGY7NmZR1a+Rz PODQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=DlJXmu6pOxEfclwdJTYA1jbKMHKlyFY5md62EwxW6is=; b=Ejm4heKfED1Zmq94INoAU8nT5DMlGHtUWLBMk6xvuGUcQFeEx7lrUXPNerCVD+UiHA W6lnGkap4ZYLuq5rIVLXLLvg4UblGYivCymYnRuqBqCkkr1XaA8c7bks2+Sxo+HbPcbt SxbJIE+OA2A6UkUggOxz0Xu8PyAq3oO7ih27ASr0giZolwXerxDeT1RBJa5dW9Tn2BMu nAtNHzHsQfgS4z6sVYsXqy8RMG1kYlXM0Px1R/4qjR1nCXWda2UPboPznLUsYK9pK/i4 IHhhIaexJR9GFhpRiipP2KfnJBlZA1GtOhZnGTfD96WbwDlxLGJv5cgALQ/9Kvs6wVNa Wqdg== X-Gm-Message-State: APf1xPDXWWesxtK5alLUSv4rw53FJGyqygdnv6XwhcnYQM6OQ2TIgZPW /TD+qvtbyZm3M3YrDnJkqDNAWedp X-Received: by 10.200.81.83 with SMTP id h19mr19161385qtn.63.1518458444235; Mon, 12 Feb 2018 10:00:44 -0800 (PST) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Paolo Bonzini , Fam Zheng Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org, Peter Maydell , Alistair Francis , "Edgar E . Iglesias" Subject: [PATCH RESEND v12 11/30] sdhci: replace DMA magic value by BLOCK_SIZE_MASK Date: Mon, 12 Feb 2018 15:00:32 -0300 Message-Id: <20180212180032.22198-1-f4bug@amsat.org> In-Reply-To: <20180209145430.26007-1-f4bug@amsat.org> References: <20180209145430.26007-1-f4bug@amsat.org> MIME-Version: 1.0 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Mon, 12 Feb 2018 18:00:45 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Mon, 12 Feb 2018 18:00:45 +0000 (UTC) for IP:'209.85.216.195' DOMAIN:'mail-qt0-f195.google.com' HELO:'mail-qt0-f195.google.com' FROM:'philippe.mathieu.daude@gmail.com' RCPT:'' X-RedHat-Spam-Score: 0.47 (DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_PASS) 209.85.216.195 mail-qt0-f195.google.com 209.85.216.195 mail-qt0-f195.google.com X-Scanned-By: MIMEDefang 2.78 on 10.5.110.27 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Mon, 12 Feb 2018 18:00:47 +0000 (UTC) X-TUID: rJTRcx+92/2f X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.8]); Tue, 13 Feb 2018 01:41:07 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.8]); Tue, 13 Feb 2018 01:41:07 +0000 (UTC) for IP:'10.11.54.4' DOMAIN:'int-mx04.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'famz@redhat.com' RCPT:'' Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/sd/sdhci.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 5ed463ca77..a563a7c88d 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -35,6 +35,7 @@ #include "sdhci-internal.h" #include "qapi/error.h" #include "qemu/log.h" +#include "qemu/cutils.h" #include "trace.h" =20 #define TYPE_SDHCI_BUS "sdhci-bus" @@ -344,6 +345,7 @@ static void sdhci_end_transfer(SDHCIState *s) /* * Programmed i/o data transfer */ +#define BLOCK_SIZE_MASK (4 * K_BYTE - 1) =20 /* Fill host controller's read buffer with BLKSIZE bytes of data from card= */ static void sdhci_read_block_from_card(SDHCIState *s) @@ -355,7 +357,7 @@ static void sdhci_read_block_from_card(SDHCIState *s) return; } =20 - for (index =3D 0; index < (s->blksize & 0x0fff); index++) { + for (index =3D 0; index < (s->blksize & BLOCK_SIZE_MASK); index++) { s->fifo_buffer[index] =3D sdbus_read_data(&s->sdbus); } =20 @@ -400,7 +402,7 @@ static uint32_t sdhci_read_dataport(SDHCIState *s, unsi= gned size) value |=3D s->fifo_buffer[s->data_count] << i * 8; s->data_count++; /* check if we've read all valid data (blksize bytes) from buffer = */ - if ((s->data_count) >=3D (s->blksize & 0x0fff)) { + if ((s->data_count) >=3D (s->blksize & BLOCK_SIZE_MASK)) { trace_sdhci_read_dataport(s->data_count); s->prnsts &=3D ~SDHC_DATA_AVAILABLE; /* no more data in a buff= er */ s->data_count =3D 0; /* next buff read must start at position= [0] */ @@ -447,7 +449,7 @@ static void sdhci_write_block_to_card(SDHCIState *s) } } =20 - for (index =3D 0; index < (s->blksize & 0x0fff); index++) { + for (index =3D 0; index < (s->blksize & BLOCK_SIZE_MASK); index++) { sdbus_write_data(&s->sdbus, s->fifo_buffer[index]); } =20 @@ -492,7 +494,7 @@ static void sdhci_write_dataport(SDHCIState *s, uint32_= t value, unsigned size) s->fifo_buffer[s->data_count] =3D value & 0xFF; s->data_count++; value >>=3D 8; - if (s->data_count >=3D (s->blksize & 0x0fff)) { + if (s->data_count >=3D (s->blksize & BLOCK_SIZE_MASK)) { trace_sdhci_write_dataport(s->data_count); s->data_count =3D 0; s->prnsts &=3D ~SDHC_SPACE_AVAILABLE; @@ -512,8 +514,8 @@ static void sdhci_sdma_transfer_multi_blocks(SDHCIState= *s) { bool page_aligned =3D false; unsigned int n, begin; - const uint16_t block_size =3D s->blksize & 0x0fff; - uint32_t boundary_chk =3D 1 << (((s->blksize & 0xf000) >> 12) + 12); + const uint16_t block_size =3D s->blksize & BLOCK_SIZE_MASK; + uint32_t boundary_chk =3D 1 << (((s->blksize & ~BLOCK_SIZE_MASK) >> 12= ) + 12); uint32_t boundary_count =3D boundary_chk - (s->sdmasysad % boundary_ch= k); =20 if (!(s->trnmod & SDHC_TRNS_BLK_CNT_EN) || !s->blkcnt) { @@ -602,7 +604,7 @@ static void sdhci_sdma_transfer_multi_blocks(SDHCIState= *s) static void sdhci_sdma_transfer_single_block(SDHCIState *s) { int n; - uint32_t datacnt =3D s->blksize & 0x0fff; + uint32_t datacnt =3D s->blksize & BLOCK_SIZE_MASK; =20 if (s->trnmod & SDHC_TRNS_READ) { for (n =3D 0; n < datacnt; n++) { @@ -678,7 +680,7 @@ static void get_adma_description(SDHCIState *s, ADMADes= cr *dscr) static void sdhci_do_adma(SDHCIState *s) { unsigned int n, begin, length; - const uint16_t block_size =3D s->blksize & 0x0fff; + const uint16_t block_size =3D s->blksize & BLOCK_SIZE_MASK; ADMADescr dscr =3D {}; int i; =20 --=20 2.16.1