From nobody Sun May 12 20:54:09 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=amsat.org ARC-Seal: i=1; a=rsa-sha256; t=1597399961; cv=none; d=zohomail.com; s=zohoarc; b=coiwLAfqVcfhV/urG02BM98PuSKVoK13sGJZvuM/Qz9Y97XpE0YV5aWg+uB/sGE34lpMmIGVsWFq6ARMRYGtiLSrbjM6IW/nHXdVm8nXlm+pzGM4+BcTpJ1oZOPbDyeJqEOl1P0UQ03wmocy/Pvhzvl56XZcdExyRUgX/lsNKgM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1597399961; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=+/2SLK598ki9weuwoeMpo5eHHltzo6y+gY/RQh6VyAk=; b=K3C1qkZcGWnyhqlJdO4hx+wKrkHHoiPTdkymsjojNvpJLSecl1Maa3tQXTzOahJPH5cHqPdruWOiOpEG2hbJh24OGOyKIy1UWobc6/FrfrQm+v8VWJPWquNiUCGTtb+jfJ/p6du/4sHGc13Ir/SppQo2WA+M/RuxEMVRzCH+MDQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1597399961897129.4944136509979; Fri, 14 Aug 2020 03:12:41 -0700 (PDT) Received: from localhost ([::1]:50150 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1k6WhU-0008UT-Cp for importer@patchew.org; Fri, 14 Aug 2020 06:12:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46728) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k6VwI-0005QR-4O; Fri, 14 Aug 2020 05:23:54 -0400 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]:33386) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1k6VwG-0004KG-9t; Fri, 14 Aug 2020 05:23:53 -0400 Received: by mail-wr1-x430.google.com with SMTP id p20so7751501wrf.0; Fri, 14 Aug 2020 02:23:51 -0700 (PDT) Received: from localhost.localdomain (121.red-81-40-121.staticip.rima-tde.net. [81.40.121.121]) by smtp.gmail.com with ESMTPSA id b11sm12889395wrq.32.2020.08.14.02.23.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Aug 2020 02:23:49 -0700 (PDT) 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=+/2SLK598ki9weuwoeMpo5eHHltzo6y+gY/RQh6VyAk=; b=PX12473c23LrbCmGbqsqd0i8e3/cdApRFg7qEOgnBPptG/gkERKztbM59bK3qHH6y7 q80yfgzBYfGlgElyAq5VYZvPyq+KJMJbDnSjrzn8vTckyLSupraujbpoeKqNDN4hJMEy eFFGfySCVfVHgIPucQ/8A0mB1Nkm6+y4Uf2rQxpg7qBaG5ozC0Hh4wH5A0DMsESvteuU YhtCVF1EbCK6g7Q+pcGN+2C+Z5h3SYTMSXQOnRAMPRuOlM1Jgq5vSj2wqoMiUkyylPmR ff07PZbEGGHQVqPjmA4Ik55FV1zpKm8d3xcSaGiXUl4QbkP+aBhDXZ7DFFQ9je7LRrc2 pubw== 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=+/2SLK598ki9weuwoeMpo5eHHltzo6y+gY/RQh6VyAk=; b=lR2/eyFHFvERebIhz70YtHiwps2mF2fn/HLXj2FWE15zRZZ4yqLzmzuMAUPSfIUcXn MBWB6B1x9LfJ2HAZ8N0FY2E2eKaxOqJTRL3BKqKvp725fR/uM1ZZq0TUpMK+fyhVnnPt 9mIWGjOLA1TZEB4Pc7kyFj+6XWXQXi0siE/krtnP7ZI7AXdrTbizsTgPBxi9pDmMzJ73 tP7jbt3Ka5kE+6MBB6IZ7qD6fu/7zJ0TM8jOJoXrbb3nPTFNKyL5W2AcuBxfwdsgFDhF UbgrJGIPZmlM95ROQ/0FOgaucfQiCaJGxkTz6DsZ+RzjYxQs7qbZ0Db9xq+Y5cwaCSku dnUg== X-Gm-Message-State: AOAM532EziSmx4+zy2Ij4Cgmh+ajv9w0G03hs3oXXCGt3IweytGbYHSp ZeZyUdbIOXMrkEHkYJ1qsNyBX+hhkWM= X-Google-Smtp-Source: ABdhPJwZA41u3GgvezYq4b8hIR0u1WEW5lshX5MCe0UC4Tyc522pC0Qabo37eAPQ0Mev/tKsjvhdEg== X-Received: by 2002:a5d:6047:: with SMTP id j7mr1828972wrt.315.1597397029912; Fri, 14 Aug 2020 02:23:49 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH 1/7] hw/sd: Rename read/write_data() as read/write_byte() Date: Fri, 14 Aug 2020 11:23:40 +0200 Message-Id: <20200814092346.21825-2-f4bug@amsat.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20200814092346.21825-1-f4bug@amsat.org> References: <20200814092346.21825-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Type: text/plain; charset="utf-8" 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::430; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-x430.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: 0 X-Spam_score: 0.0 X-Spam_bar: / X-Spam_report: (0.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=1, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: Peter Maydell , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Andrew Baumann , Beniamino Galvani , Michael Walle , qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) The read/write_data() methods write do a single byte access on the data line of a SD card. Rename them as read/write_byte(). Add some documentation (not in "hw/sd/sdcard_legacy.h" which we are going to remove soon). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/hw/sd/sd.h | 19 +++++++++++++++++-- include/hw/sd/sdcard_legacy.h | 4 ++-- hw/sd/core.c | 4 ++-- hw/sd/omap_mmc.c | 8 ++++---- hw/sd/sd.c | 16 ++++++++-------- 5 files changed, 33 insertions(+), 18 deletions(-) diff --git a/include/hw/sd/sd.h b/include/hw/sd/sd.h index 8767ab817c..b58b5a19af 100644 --- a/include/hw/sd/sd.h +++ b/include/hw/sd/sd.h @@ -104,8 +104,23 @@ typedef struct { /*< public >*/ =20 int (*do_command)(SDState *sd, SDRequest *req, uint8_t *response); - void (*write_data)(SDState *sd, uint8_t value); - uint8_t (*read_data)(SDState *sd); + /** + * Write a byte to a SD card. + * @sd: card + * @value: byte to write + * + * Write a byte on the data lines of a SD card. + */ + void (*write_byte)(SDState *sd, uint8_t value); + /** + * Read a byte from a SD card. + * @sd: card + * + * Read a byte from the data lines of a SD card. + * + * Return: byte value read + */ + uint8_t (*read_byte)(SDState *sd); bool (*data_ready)(SDState *sd); void (*set_voltage)(SDState *sd, uint16_t millivolts); uint8_t (*get_dat_lines)(SDState *sd); diff --git a/include/hw/sd/sdcard_legacy.h b/include/hw/sd/sdcard_legacy.h index 8681f8089b..0dc3889555 100644 --- a/include/hw/sd/sdcard_legacy.h +++ b/include/hw/sd/sdcard_legacy.h @@ -34,8 +34,8 @@ /* Legacy functions to be used only by non-qdevified callers */ SDState *sd_init(BlockBackend *blk, bool is_spi); int sd_do_command(SDState *card, SDRequest *request, uint8_t *response); -void sd_write_data(SDState *card, uint8_t value); -uint8_t sd_read_data(SDState *card); +void sd_write_byte(SDState *card, uint8_t value); +uint8_t sd_read_byte(SDState *card); void sd_set_cb(SDState *card, qemu_irq readonly, qemu_irq insert); =20 /* sd_enable should not be used -- it is only used on the nseries boards, diff --git a/hw/sd/core.c b/hw/sd/core.c index abec48bccb..79d96576ea 100644 --- a/hw/sd/core.c +++ b/hw/sd/core.c @@ -110,7 +110,7 @@ void sdbus_write_data(SDBus *sdbus, uint8_t value) if (card) { SDCardClass *sc =3D SD_CARD_GET_CLASS(card); =20 - sc->write_data(card, value); + sc->write_byte(card, value); } } =20 @@ -122,7 +122,7 @@ uint8_t sdbus_read_data(SDBus *sdbus) if (card) { SDCardClass *sc =3D SD_CARD_GET_CLASS(card); =20 - value =3D sc->read_data(card); + value =3D sc->read_byte(card); } trace_sdbus_read(sdbus_name(sdbus), value); =20 diff --git a/hw/sd/omap_mmc.c b/hw/sd/omap_mmc.c index 7d33c59226..1f946908fe 100644 --- a/hw/sd/omap_mmc.c +++ b/hw/sd/omap_mmc.c @@ -232,10 +232,10 @@ static void omap_mmc_transfer(struct omap_mmc_s *host) if (host->fifo_len > host->af_level) break; =20 - value =3D sd_read_data(host->card); + value =3D sd_read_byte(host->card); host->fifo[(host->fifo_start + host->fifo_len) & 31] =3D value; if (-- host->blen_counter) { - value =3D sd_read_data(host->card); + value =3D sd_read_byte(host->card); host->fifo[(host->fifo_start + host->fifo_len) & 31] |=3D value << 8; host->blen_counter --; @@ -247,10 +247,10 @@ static void omap_mmc_transfer(struct omap_mmc_s *host) break; =20 value =3D host->fifo[host->fifo_start] & 0xff; - sd_write_data(host->card, value); + sd_write_byte(host->card, value); if (-- host->blen_counter) { value =3D host->fifo[host->fifo_start] >> 8; - sd_write_data(host->card, value); + sd_write_byte(host->card, value); host->blen_counter --; } =20 diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 5c6f5c94f3..7c9d956f11 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -1809,7 +1809,7 @@ static void sd_blk_write(SDState *sd, uint64_t addr, = uint32_t len) #define APP_READ_BLOCK(a, len) memset(sd->data, 0xec, len) #define APP_WRITE_BLOCK(a, len) =20 -void sd_write_data(SDState *sd, uint8_t value) +void sd_write_byte(SDState *sd, uint8_t value) { int i; =20 @@ -1818,7 +1818,7 @@ void sd_write_data(SDState *sd, uint8_t value) =20 if (sd->state !=3D sd_receivingdata_state) { qemu_log_mask(LOG_GUEST_ERROR, - "sd_write_data: not in Receiving-Data state\n"); + "%s: not in Receiving-Data state\n", __func__); return; } =20 @@ -1940,7 +1940,7 @@ void sd_write_data(SDState *sd, uint8_t value) break; =20 default: - qemu_log_mask(LOG_GUEST_ERROR, "sd_write_data: unknown command\n"); + qemu_log_mask(LOG_GUEST_ERROR, "%s: unknown command\n", __func__); break; } } @@ -1959,7 +1959,7 @@ static const uint8_t sd_tuning_block_pattern[SD_TUNIN= G_BLOCK_SIZE] =3D { 0xbb, 0xff, 0xf7, 0xff, 0xf7, 0x7f, 0x7b, 0xde, }; =20 -uint8_t sd_read_data(SDState *sd) +uint8_t sd_read_byte(SDState *sd) { /* TODO: Append CRCs */ uint8_t ret; @@ -1970,7 +1970,7 @@ uint8_t sd_read_data(SDState *sd) =20 if (sd->state !=3D sd_sendingdata_state) { qemu_log_mask(LOG_GUEST_ERROR, - "sd_read_data: not in Sending-Data state\n"); + "%s: not in Sending-Data state\n", __func__); return 0x00; } =20 @@ -2076,7 +2076,7 @@ uint8_t sd_read_data(SDState *sd) break; =20 default: - qemu_log_mask(LOG_GUEST_ERROR, "sd_read_data: unknown command\n"); + qemu_log_mask(LOG_GUEST_ERROR, "%s: unknown command\n", __func__); return 0x00; } =20 @@ -2192,8 +2192,8 @@ static void sd_class_init(ObjectClass *klass, void *d= ata) sc->get_dat_lines =3D sd_get_dat_lines; sc->get_cmd_line =3D sd_get_cmd_line; sc->do_command =3D sd_do_command; - sc->write_data =3D sd_write_data; - sc->read_data =3D sd_read_data; + sc->write_byte =3D sd_write_byte; + sc->read_byte =3D sd_read_byte; sc->data_ready =3D sd_data_ready; sc->enable =3D sd_enable; sc->get_inserted =3D sd_get_inserted; --=20 2.21.3 From nobody Sun May 12 20:54:10 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=amsat.org ARC-Seal: i=1; a=rsa-sha256; t=1597402056; cv=none; d=zohomail.com; s=zohoarc; b=ZNDTw3L9Ac953cLPq7QyH46dD2qwAxuxImOy38xIOFD550fVbnTWCVQliHxFKjn6P1AVKPKXoFIsR/QYLPzOoMiHD8DAfSt+93SetD02GleQtcEx+HqWQtQFhj57IZq4cAYdDf/1lsJnxPZA8TE5mK9YZTrklO78G2u5Z5xbnQA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1597402056; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=cBlTysN+qUPD8JtKrcaWmW6mkuNfqBxtBYE1vIsGDt4=; b=Vuw0oRA64P7V5QgE52j2PFp0jIl7ac0pNbTkfe6APvFR2g3Q0syhgd/WajdhNx7Xttp8G436xSFGm5KJPYc5IqQa/NSMKCoWZLnhV6LH90gl5Tx0+qyBkHSM5H3gExwFIs5hpEm21EaFxpgCcZa7xg78Wg5ElCLXhWJJryrsNbY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1597402056206318.0800270485503; Fri, 14 Aug 2020 03:47:36 -0700 (PDT) Received: from localhost ([::1]:46552 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1k6XFH-0006EC-08 for importer@patchew.org; Fri, 14 Aug 2020 06:47:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46740) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k6VwJ-0005Tk-Bo; Fri, 14 Aug 2020 05:23:55 -0400 Received: from mail-wm1-x341.google.com ([2a00:1450:4864:20::341]:54200) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1k6VwH-0004KU-Hj; Fri, 14 Aug 2020 05:23:55 -0400 Received: by mail-wm1-x341.google.com with SMTP id g8so6912942wmk.3; Fri, 14 Aug 2020 02:23:52 -0700 (PDT) Received: from localhost.localdomain (121.red-81-40-121.staticip.rima-tde.net. [81.40.121.121]) by smtp.gmail.com with ESMTPSA id b11sm12889395wrq.32.2020.08.14.02.23.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Aug 2020 02:23:50 -0700 (PDT) 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=cBlTysN+qUPD8JtKrcaWmW6mkuNfqBxtBYE1vIsGDt4=; b=EzGyNQfFwhTBo/zZxLPMGFC+zVhysvfyYjEgFHNXZDnrXbKHvms+B86z/YvenIbWeW 7Cdee5Pkny3vCHTBNo5aB6cgJb4FE1Ftk8P/lByusnCvnQYT9FBI/B0m7UE+KBnMe7E/ AuU0ZzZeFopylfcVNAdk75i067nSz7WdA9BGjxQZL6JQ66k+dyCMe9lLNFd22ABWRXOp 44sk7Eaqads9DXj3zdm1PVF6oOwvYjcyJdBGmAt8YB1IW4P64z7Jy82sRzmnxCSDXmKh nMKoZ0Qx91m+ooEjxqB00m8WS/A8k29+bj0Z94dy/fuz5eNgDNTcAx2xEZM5jFcJ6vlw Slcg== 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=cBlTysN+qUPD8JtKrcaWmW6mkuNfqBxtBYE1vIsGDt4=; b=uQaSla1bJSn2moZPgV3kPezQ0cL20DxRhD0kXpOonUsufw0EsohW5S8y+9XV3U2fMt Obay2/+gKGwmGBWQVkTZ8UUk8rMJ38Y+ip751DPgWAXpmW3Jx+ODCW4Ob6g47Hpkyisd Vk0CDeV0aQgHIzI2moPBwWKvkf3YFj2bLWLulktOiZnp2r8JvMWhBfmgmw3LekjY05Ps kq491Wn5x2pC80U4rT6lx2DEmzzBQdALE55+Gfhzl5sIUllkSe2VuR277pQl7UEFZ/+U mEiOr0E70CJSNqwryS6R5FBxE4dKJWACmO00LtzqDZq5oZwIlU9jI+MkNM5oP7nKi16A UxNw== X-Gm-Message-State: AOAM5325TOzDn1tgaqefL5hNzbumC4oWmGMduF1TV9Jz/rhK4VIDPuYz 6Vzvd8FxL4nG7HlYs+IIUVduMunFS8k= X-Google-Smtp-Source: ABdhPJz1pWFEeFswekVuVHJ3FWxmE64B1/6nEBFjFptGr8ZdKOzosohq4NQPyePTOvKTqs5KF0MJlw== X-Received: by 2002:a1c:7fd3:: with SMTP id a202mr1699413wmd.67.1597397031160; Fri, 14 Aug 2020 02:23:51 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH 2/7] hw/sd: Rename sdbus_write_data() as sdbus_write_byte() Date: Fri, 14 Aug 2020 11:23:41 +0200 Message-Id: <20200814092346.21825-3-f4bug@amsat.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20200814092346.21825-1-f4bug@amsat.org> References: <20200814092346.21825-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Type: text/plain; charset="utf-8" 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::341; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x341.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: 0 X-Spam_score: 0.0 X-Spam_bar: / X-Spam_report: (0.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=1, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: Peter Maydell , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Andrew Baumann , Beniamino Galvani , Michael Walle , qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) The sdbus_write_data() method do a single byte access on the data line of a SD bus. Rename it as sdbus_write_byte() and document it. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/hw/sd/sd.h | 9 ++++++++- hw/sd/allwinner-sdhost.c | 10 +++++----- hw/sd/bcm2835_sdhost.c | 2 +- hw/sd/core.c | 2 +- hw/sd/milkymist-memcard.c | 8 ++++---- hw/sd/pl181.c | 2 +- hw/sd/pxa2xx_mmci.c | 2 +- hw/sd/sdhci.c | 8 ++++---- 8 files changed, 25 insertions(+), 18 deletions(-) diff --git a/include/hw/sd/sd.h b/include/hw/sd/sd.h index b58b5a19af..1e5ac955d0 100644 --- a/include/hw/sd/sd.h +++ b/include/hw/sd/sd.h @@ -158,7 +158,14 @@ void sdbus_set_voltage(SDBus *sdbus, uint16_t millivol= ts); uint8_t sdbus_get_dat_lines(SDBus *sdbus); bool sdbus_get_cmd_line(SDBus *sdbus); int sdbus_do_command(SDBus *sd, SDRequest *req, uint8_t *response); -void sdbus_write_data(SDBus *sd, uint8_t value); +/** + * Write a byte to a SD bus. + * @sd: bus + * @value: byte to write + * + * Write a byte on the data lines of a SD bus. + */ +void sdbus_write_byte(SDBus *sd, uint8_t value); uint8_t sdbus_read_data(SDBus *sd); bool sdbus_data_ready(SDBus *sd); bool sdbus_get_inserted(SDBus *sd); diff --git a/hw/sd/allwinner-sdhost.c b/hw/sd/allwinner-sdhost.c index f404e1fdb4..e05e8a3864 100644 --- a/hw/sd/allwinner-sdhost.c +++ b/hw/sd/allwinner-sdhost.c @@ -335,7 +335,7 @@ static uint32_t allwinner_sdhost_process_desc(AwSdHostS= tate *s, buf, buf_bytes); =20 for (uint32_t i =3D 0; i < buf_bytes; i++) { - sdbus_write_data(&s->sdbus, buf[i]); + sdbus_write_byte(&s->sdbus, buf[i]); } =20 /* Read from SD bus */ @@ -654,10 +654,10 @@ static void allwinner_sdhost_write(void *opaque, hwad= dr offset, s->startbit_detect =3D value; break; case REG_SD_FIFO: /* Read/Write FIFO */ - sdbus_write_data(&s->sdbus, value & 0xff); - sdbus_write_data(&s->sdbus, (value >> 8) & 0xff); - sdbus_write_data(&s->sdbus, (value >> 16) & 0xff); - sdbus_write_data(&s->sdbus, (value >> 24) & 0xff); + sdbus_write_byte(&s->sdbus, value & 0xff); + sdbus_write_byte(&s->sdbus, (value >> 8) & 0xff); + sdbus_write_byte(&s->sdbus, (value >> 16) & 0xff); + sdbus_write_byte(&s->sdbus, (value >> 24) & 0xff); allwinner_sdhost_update_transfer_cnt(s, sizeof(uint32_t)); allwinner_sdhost_auto_stop(s); allwinner_sdhost_update_irq(s); diff --git a/hw/sd/bcm2835_sdhost.c b/hw/sd/bcm2835_sdhost.c index 4a80fbcc86..16aba7cc92 100644 --- a/hw/sd/bcm2835_sdhost.c +++ b/hw/sd/bcm2835_sdhost.c @@ -223,7 +223,7 @@ static void bcm2835_sdhost_fifo_run(BCM2835SDHostState = *s) } n--; s->datacnt--; - sdbus_write_data(&s->sdbus, value & 0xff); + sdbus_write_byte(&s->sdbus, value & 0xff); value >>=3D 8; } } diff --git a/hw/sd/core.c b/hw/sd/core.c index 79d96576ea..13b5ca0316 100644 --- a/hw/sd/core.c +++ b/hw/sd/core.c @@ -102,7 +102,7 @@ int sdbus_do_command(SDBus *sdbus, SDRequest *req, uint= 8_t *response) return 0; } =20 -void sdbus_write_data(SDBus *sdbus, uint8_t value) +void sdbus_write_byte(SDBus *sdbus, uint8_t value) { SDState *card =3D get_card(sdbus); =20 diff --git a/hw/sd/milkymist-memcard.c b/hw/sd/milkymist-memcard.c index e9f5db5e22..4128109c04 100644 --- a/hw/sd/milkymist-memcard.c +++ b/hw/sd/milkymist-memcard.c @@ -209,10 +209,10 @@ static void memcard_write(void *opaque, hwaddr addr, = uint64_t value, if (!s->enabled) { break; } - sdbus_write_data(&s->sdbus, (value >> 24) & 0xff); - sdbus_write_data(&s->sdbus, (value >> 16) & 0xff); - sdbus_write_data(&s->sdbus, (value >> 8) & 0xff); - sdbus_write_data(&s->sdbus, value & 0xff); + sdbus_write_byte(&s->sdbus, (value >> 24) & 0xff); + sdbus_write_byte(&s->sdbus, (value >> 16) & 0xff); + sdbus_write_byte(&s->sdbus, (value >> 8) & 0xff); + sdbus_write_byte(&s->sdbus, value & 0xff); break; case R_ENABLE: s->regs[addr] =3D value; diff --git a/hw/sd/pl181.c b/hw/sd/pl181.c index 574500ce60..771bae193f 100644 --- a/hw/sd/pl181.c +++ b/hw/sd/pl181.c @@ -244,7 +244,7 @@ static void pl181_fifo_run(PL181State *s) } n--; s->datacnt--; - sdbus_write_data(&s->sdbus, value & 0xff); + sdbus_write_byte(&s->sdbus, value & 0xff); value >>=3D 8; } } diff --git a/hw/sd/pxa2xx_mmci.c b/hw/sd/pxa2xx_mmci.c index 2996a2ef17..07ddc2eba3 100644 --- a/hw/sd/pxa2xx_mmci.c +++ b/hw/sd/pxa2xx_mmci.c @@ -184,7 +184,7 @@ static void pxa2xx_mmci_fifo_update(PXA2xxMMCIState *s) =20 if (s->cmdat & CMDAT_WR_RD) { while (s->bytesleft && s->tx_len) { - sdbus_write_data(&s->sdbus, s->tx_fifo[s->tx_start++]); + sdbus_write_byte(&s->sdbus, s->tx_fifo[s->tx_start++]); s->tx_start &=3D 0x1f; s->tx_len --; s->bytesleft --; diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index deac181865..4bf1ee88b2 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -515,7 +515,7 @@ static void sdhci_write_block_to_card(SDHCIState *s) } =20 for (index =3D 0; index < (s->blksize & BLOCK_SIZE_MASK); index++) { - sdbus_write_data(&s->sdbus, s->fifo_buffer[index]); + sdbus_write_byte(&s->sdbus, s->fifo_buffer[index]); } =20 /* Next data can be written through BUFFER DATORT register */ @@ -642,7 +642,7 @@ static void sdhci_sdma_transfer_multi_blocks(SDHCIState= *s) s->sdmasysad +=3D s->data_count - begin; if (s->data_count =3D=3D block_size) { for (n =3D 0; n < block_size; n++) { - sdbus_write_data(&s->sdbus, s->fifo_buffer[n]); + sdbus_write_byte(&s->sdbus, s->fifo_buffer[n]); } s->data_count =3D 0; if (s->trnmod & SDHC_TRNS_BLK_CNT_EN) { @@ -679,7 +679,7 @@ static void sdhci_sdma_transfer_single_block(SDHCIState= *s) } else { dma_memory_read(s->dma_as, s->sdmasysad, s->fifo_buffer, datacnt); for (n =3D 0; n < datacnt; n++) { - sdbus_write_data(&s->sdbus, s->fifo_buffer[n]); + sdbus_write_byte(&s->sdbus, s->fifo_buffer[n]); } } s->blkcnt--; @@ -815,7 +815,7 @@ static void sdhci_do_adma(SDHCIState *s) dscr.addr +=3D s->data_count - begin; if (s->data_count =3D=3D block_size) { for (n =3D 0; n < block_size; n++) { - sdbus_write_data(&s->sdbus, s->fifo_buffer[n]); + sdbus_write_byte(&s->sdbus, s->fifo_buffer[n]); } s->data_count =3D 0; if (s->trnmod & SDHC_TRNS_BLK_CNT_EN) { --=20 2.21.3 From nobody Sun May 12 20:54:10 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=1597402115; cv=none; d=zohomail.com; s=zohoarc; b=Af+ATqzfc6MR5G3Xb4pW7Xt49ciGj5uswAYmFXnS87EPF96zQN+z27hZtErPUDpayt7QxLgnlovvMBjirFnrgMyLJuGxnqJImzv+15nBYUt4Gf5a9F1qLG0tZfOXHWKMbC7ilNNosuiqgyGHmHO6apYePr9Y1h0OG9euj5p44wA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1597402115; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=QAYdy+M4KLzrq8A3jXi6N+nqKx4PGoeP0poZ5UugJaY=; b=kEl+XY0TzE737m/LhKstXHtYQEmVoEApojFKW5t5N7vSGse/QGVyV+VGXU4gr1JPbtqiu44dKQLdx/PAEK/I1LCQlv9zqxW7WwexsHWm3mVpH/0cztK9OD/OpQWPOWGWCEeexkwIzb+cFO/PbnGM3+m6/kdiZbuKW3+b3MGA/dg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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 1597402115754403.00058305851553; Fri, 14 Aug 2020 03:48:35 -0700 (PDT) Received: from localhost ([::1]:48680 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1k6XGE-00076B-H3 for importer@patchew.org; Fri, 14 Aug 2020 06:48:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46766) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k6VwL-0005YJ-5S; Fri, 14 Aug 2020 05:23:57 -0400 Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343]:56177) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1k6VwJ-0004Kk-B1; Fri, 14 Aug 2020 05:23:56 -0400 Received: by mail-wm1-x343.google.com with SMTP id 9so6904209wmj.5; Fri, 14 Aug 2020 02:23:54 -0700 (PDT) Received: from localhost.localdomain (121.red-81-40-121.staticip.rima-tde.net. [81.40.121.121]) by smtp.gmail.com with ESMTPSA id b11sm12889395wrq.32.2020.08.14.02.23.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Aug 2020 02:23:51 -0700 (PDT) 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=QAYdy+M4KLzrq8A3jXi6N+nqKx4PGoeP0poZ5UugJaY=; b=djomzGOtmPN9ZGwy5IA+vzcREuwN5ab8IMkoF0SwiGxDb+RVvmL+tReZLMSqXzVL+U UBKJZOXR8UqGsclFHlZ7/HsjAP2/evNcOZrTYvbOTyToWiuHFiSkqqEbuixdWPG5VIZ8 FrcK7t6aybelyvSWmkIM6N36lnTDP06Lyz7BbPV7YduppRFqQpxyFE/Ph1o8XZmUSiVv LqMpydPqOeGeFzOhOnBRDCaHQABEb2q7pThzN506o4KiQRfsanoFfQL1Tj3sRW6LO4uA hWv46DUuBC+V9NYTAjGlAI834oYvo1nhzgQDv8zf4dJNVVFyTazwk2gfbLZ2G3RJ9lRm U7KQ== 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=QAYdy+M4KLzrq8A3jXi6N+nqKx4PGoeP0poZ5UugJaY=; b=QXTY10A/URsnrUvwbBQcrNoyYiqSXE/nwtbOzP39AmoEAwa+Sz1Wt5lC4g7+NbfN65 FNMQ/qmi5eEhR9LkClBOokGWQODMrKndwNN3rm0XsSAL8E1AYGPFJSy1zSBrTR4EKFpK pkCee9zI2sACMtL125erdxPUzCLc1/bLAp3lBp1YmeDf5M16WVuWJFA4wsr2fflt1Djz TTYVbd0TCU/s3MGlN5IZVvX4Ue/8QXfbdR3A73fAN3ZG6uskqaXclh7bQvnoRxa/s9c4 eLErU/F7KYD549+Ng5gVqz1NOO4241U0WvsTcbOQANxPwpe3BWBIB/vI+joXl+TIg6Ev D83Q== X-Gm-Message-State: AOAM533DPrzW7ZLUUEOe/ewObyzFZjg1cGG9zQrQ06MnANjhiIPgfbxZ anCO9w6/ETwZ7lhd/G3TA1uL58uwOV4= X-Google-Smtp-Source: ABdhPJy4SH2z7IMz6a62jRzF2ZMnIN2lXHucUcadEPE0iCroY+km7+UMdlMwFYtvG3wH31LS3igA7g== X-Received: by 2002:a1c:14e:: with SMTP id 75mr1826177wmb.151.1597397032414; Fri, 14 Aug 2020 02:23:52 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH 3/7] hw/sd: Rename sdbus_read_data() as sdbus_read_byte() Date: Fri, 14 Aug 2020 11:23:42 +0200 Message-Id: <20200814092346.21825-4-f4bug@amsat.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20200814092346.21825-1-f4bug@amsat.org> References: <20200814092346.21825-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Type: text/plain; charset="utf-8" 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::343; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x343.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: 0 X-Spam_score: 0.0 X-Spam_bar: / X-Spam_report: (0.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=1, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: Peter Maydell , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Andrew Baumann , Beniamino Galvani , Michael Walle , qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) The sdbus_read_data() method do a single byte access on the data line of a SD bus. Rename it as sdbus_read_byte() and document it. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/hw/sd/sd.h | 10 +++++++++- hw/sd/allwinner-sdhost.c | 10 +++++----- hw/sd/bcm2835_sdhost.c | 2 +- hw/sd/core.c | 2 +- hw/sd/milkymist-memcard.c | 8 ++++---- hw/sd/pl181.c | 2 +- hw/sd/pxa2xx_mmci.c | 2 +- hw/sd/sdhci.c | 8 ++++---- hw/sd/ssi-sd.c | 2 +- 9 files changed, 27 insertions(+), 19 deletions(-) diff --git a/include/hw/sd/sd.h b/include/hw/sd/sd.h index 1e5ac955d0..14ffc7f475 100644 --- a/include/hw/sd/sd.h +++ b/include/hw/sd/sd.h @@ -166,7 +166,15 @@ int sdbus_do_command(SDBus *sd, SDRequest *req, uint8_= t *response); * Write a byte on the data lines of a SD bus. */ void sdbus_write_byte(SDBus *sd, uint8_t value); -uint8_t sdbus_read_data(SDBus *sd); +/** + * Read a byte from a SD bus. + * @sd: bus + * + * Read a byte from the data lines of a SD bus. + * + * Return: byte value read + */ +uint8_t sdbus_read_byte(SDBus *sd); bool sdbus_data_ready(SDBus *sd); bool sdbus_get_inserted(SDBus *sd); bool sdbus_get_readonly(SDBus *sd); diff --git a/hw/sd/allwinner-sdhost.c b/hw/sd/allwinner-sdhost.c index e05e8a3864..c004aa39da 100644 --- a/hw/sd/allwinner-sdhost.c +++ b/hw/sd/allwinner-sdhost.c @@ -341,7 +341,7 @@ static uint32_t allwinner_sdhost_process_desc(AwSdHostS= tate *s, /* Read from SD bus */ } else { for (uint32_t i =3D 0; i < buf_bytes; i++) { - buf[i] =3D sdbus_read_data(&s->sdbus); + buf[i] =3D sdbus_read_byte(&s->sdbus); } cpu_physical_memory_write((desc->addr & DESC_SIZE_MASK) + num_= done, buf, buf_bytes); @@ -521,10 +521,10 @@ static uint64_t allwinner_sdhost_read(void *opaque, h= waddr offset, break; case REG_SD_FIFO: /* Read/Write FIFO */ if (sdbus_data_ready(&s->sdbus)) { - res =3D sdbus_read_data(&s->sdbus); - res |=3D sdbus_read_data(&s->sdbus) << 8; - res |=3D sdbus_read_data(&s->sdbus) << 16; - res |=3D sdbus_read_data(&s->sdbus) << 24; + res =3D sdbus_read_byte(&s->sdbus); + res |=3D sdbus_read_byte(&s->sdbus) << 8; + res |=3D sdbus_read_byte(&s->sdbus) << 16; + res |=3D sdbus_read_byte(&s->sdbus) << 24; allwinner_sdhost_update_transfer_cnt(s, sizeof(uint32_t)); allwinner_sdhost_auto_stop(s); allwinner_sdhost_update_irq(s); diff --git a/hw/sd/bcm2835_sdhost.c b/hw/sd/bcm2835_sdhost.c index 16aba7cc92..2c7a675a2d 100644 --- a/hw/sd/bcm2835_sdhost.c +++ b/hw/sd/bcm2835_sdhost.c @@ -190,7 +190,7 @@ static void bcm2835_sdhost_fifo_run(BCM2835SDHostState = *s) if (is_read) { n =3D 0; while (s->datacnt && s->fifo_len < BCM2835_SDHOST_FIFO_LEN) { - value |=3D (uint32_t)sdbus_read_data(&s->sdbus) << (n * 8); + value |=3D (uint32_t)sdbus_read_byte(&s->sdbus) << (n * 8); s->datacnt--; n++; if (n =3D=3D 4) { diff --git a/hw/sd/core.c b/hw/sd/core.c index 13b5ca0316..a3b620b802 100644 --- a/hw/sd/core.c +++ b/hw/sd/core.c @@ -114,7 +114,7 @@ void sdbus_write_byte(SDBus *sdbus, uint8_t value) } } =20 -uint8_t sdbus_read_data(SDBus *sdbus) +uint8_t sdbus_read_byte(SDBus *sdbus) { SDState *card =3D get_card(sdbus); uint8_t value =3D 0; diff --git a/hw/sd/milkymist-memcard.c b/hw/sd/milkymist-memcard.c index 4128109c04..e8d055bb89 100644 --- a/hw/sd/milkymist-memcard.c +++ b/hw/sd/milkymist-memcard.c @@ -152,10 +152,10 @@ static uint64_t memcard_read(void *opaque, hwaddr add= r, r =3D 0xffffffff; } else { r =3D 0; - r |=3D sdbus_read_data(&s->sdbus) << 24; - r |=3D sdbus_read_data(&s->sdbus) << 16; - r |=3D sdbus_read_data(&s->sdbus) << 8; - r |=3D sdbus_read_data(&s->sdbus); + r |=3D sdbus_read_byte(&s->sdbus) << 24; + r |=3D sdbus_read_byte(&s->sdbus) << 16; + r |=3D sdbus_read_byte(&s->sdbus) << 8; + r |=3D sdbus_read_byte(&s->sdbus); } break; case R_CLK2XDIV: diff --git a/hw/sd/pl181.c b/hw/sd/pl181.c index 771bae193f..579d68ad83 100644 --- a/hw/sd/pl181.c +++ b/hw/sd/pl181.c @@ -223,7 +223,7 @@ static void pl181_fifo_run(PL181State *s) if (is_read) { n =3D 0; while (s->datacnt && s->fifo_len < PL181_FIFO_LEN) { - value |=3D (uint32_t)sdbus_read_data(&s->sdbus) << (n * 8); + value |=3D (uint32_t)sdbus_read_byte(&s->sdbus) << (n * 8); s->datacnt--; n++; if (n =3D=3D 4) { diff --git a/hw/sd/pxa2xx_mmci.c b/hw/sd/pxa2xx_mmci.c index 07ddc2eba3..04f0a98f81 100644 --- a/hw/sd/pxa2xx_mmci.c +++ b/hw/sd/pxa2xx_mmci.c @@ -194,7 +194,7 @@ static void pxa2xx_mmci_fifo_update(PXA2xxMMCIState *s) } else while (s->bytesleft && s->rx_len < 32) { s->rx_fifo[(s->rx_start + (s->rx_len ++)) & 0x1f] =3D - sdbus_read_data(&s->sdbus); + sdbus_read_byte(&s->sdbus); s->bytesleft --; s->intreq |=3D INT_RXFIFO_REQ; } diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 4bf1ee88b2..b897b1121b 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -409,7 +409,7 @@ static void sdhci_read_block_from_card(SDHCIState *s) } =20 for (index =3D 0; index < blk_size; index++) { - data =3D sdbus_read_data(&s->sdbus); + data =3D sdbus_read_byte(&s->sdbus); if (!FIELD_EX32(s->hostctl2, SDHC_HOSTCTL2, EXECUTE_TUNING)) { /* Device is not in tuning */ s->fifo_buffer[index] =3D data; @@ -601,7 +601,7 @@ static void sdhci_sdma_transfer_multi_blocks(SDHCIState= *s) while (s->blkcnt) { if (s->data_count =3D=3D 0) { for (n =3D 0; n < block_size; n++) { - s->fifo_buffer[n] =3D sdbus_read_data(&s->sdbus); + s->fifo_buffer[n] =3D sdbus_read_byte(&s->sdbus); } } begin =3D s->data_count; @@ -673,7 +673,7 @@ static void sdhci_sdma_transfer_single_block(SDHCIState= *s) =20 if (s->trnmod & SDHC_TRNS_READ) { for (n =3D 0; n < datacnt; n++) { - s->fifo_buffer[n] =3D sdbus_read_data(&s->sdbus); + s->fifo_buffer[n] =3D sdbus_read_byte(&s->sdbus); } dma_memory_write(s->dma_as, s->sdmasysad, s->fifo_buffer, datacnt); } else { @@ -774,7 +774,7 @@ static void sdhci_do_adma(SDHCIState *s) while (length) { if (s->data_count =3D=3D 0) { for (n =3D 0; n < block_size; n++) { - s->fifo_buffer[n] =3D sdbus_read_data(&s->sdbu= s); + s->fifo_buffer[n] =3D sdbus_read_byte(&s->sdbu= s); } } begin =3D s->data_count; diff --git a/hw/sd/ssi-sd.c b/hw/sd/ssi-sd.c index 9210ef567f..a7ef9cb922 100644 --- a/hw/sd/ssi-sd.c +++ b/hw/sd/ssi-sd.c @@ -190,7 +190,7 @@ static uint32_t ssi_sd_transfer(SSISlave *dev, uint32_t= val) s->mode =3D SSI_SD_DATA_READ; return 0xfe; case SSI_SD_DATA_READ: - val =3D sdbus_read_data(&s->sdbus); + val =3D sdbus_read_byte(&s->sdbus); if (!sdbus_data_ready(&s->sdbus)) { DPRINTF("Data read end\n"); s->mode =3D SSI_SD_CMD; --=20 2.21.3 From nobody Sun May 12 20:54:10 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=amsat.org ARC-Seal: i=1; a=rsa-sha256; t=1597401101; cv=none; d=zohomail.com; s=zohoarc; b=U3brMkqOPQmnTC+mfa8X1+l0E54MNlA6JRd3smnZkgIu/qxusiGNB11+ZBv1v7zBu2V87IQ68TRpThkayagnO3hU+D9yB1okAY5Ng/tMcueVrAD5g/7Dy+UsV20MyhFgNfbOXPVvHFN5reyPNLm5u2fDGBD0ZwJRxc89/xkvcew= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1597401101; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=zwJXHp3KJLJ5yU+uajIVCj2N/BC26XZ5i/dgkGinGQQ=; b=EZ/PBK71fmqhZHzenIgzJZL3rGePWqiQ2a/lMjnS+ts7riMoz3fIk0IPdnHEv6cVPa45BEflagKC8VDogbdQTUr6DW6Qx2so+SPYoVkJWQ2UB7lEvQkEdWNa0hyWnqsmzUox8clo/H6Jm76XwjC0dCvdrfreEqhbtcyL1wlyLUI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1597401101894480.5272731011379; Fri, 14 Aug 2020 03:31:41 -0700 (PDT) Received: from localhost ([::1]:47634 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1k6Wzs-0000Cx-IB for importer@patchew.org; Fri, 14 Aug 2020 06:31:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46786) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k6VwM-0005bF-Cb; Fri, 14 Aug 2020 05:23:58 -0400 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]:47055) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1k6VwK-0004Kx-2t; Fri, 14 Aug 2020 05:23:58 -0400 Received: by mail-wr1-x442.google.com with SMTP id f12so7710078wru.13; Fri, 14 Aug 2020 02:23:54 -0700 (PDT) Received: from localhost.localdomain (121.red-81-40-121.staticip.rima-tde.net. [81.40.121.121]) by smtp.gmail.com with ESMTPSA id b11sm12889395wrq.32.2020.08.14.02.23.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Aug 2020 02:23:53 -0700 (PDT) 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=zwJXHp3KJLJ5yU+uajIVCj2N/BC26XZ5i/dgkGinGQQ=; b=HiP7ahUEXNgf0zHb1YrynIGJLWkYqtD8ozMErmvzrSFXlBj0ZE89dUnWMGjWuFBXTQ SCqF02phu2xm3KAi3O30o2kacRymmqf9ZO66OFl/tljXm/FPBUV1PSVH2WiBA3LyYHbR vXp7q4XEhRfYbXJl98MdqDXV/xSgvtdr8dq1LZI9w8zTIljAVddJb3xdFzNPJECKYiXj iQVpoNezTurv0p1MKES2vV3D8KbJBMIgaTGJ8rTx81Bq9a5A0fR/HM1t+0Rr0oFdaZB8 HanM64pR3Fg6J6uH52OHU8lwNITL3si8wR3rSVVVzu793mYFE4228s/VDzEqtoIEw3kX ExYA== 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=zwJXHp3KJLJ5yU+uajIVCj2N/BC26XZ5i/dgkGinGQQ=; b=lqRV030kfOcU2xqPgMPr6ItIk3QTzwKkk1OgIoRvSQ7yamJqVL3+aHk74CBq1D/lYn AIhxR4G2C+pz5G4w+9UeG3A3wNUJlCbxXWHxitvCwu2dQGiCj0LntafHNvdBbEe2Wjuh 4R45iCG0+sxvyLHX5BeK2QY13IGmg3sfd8LbPRZ27nQhKQvakKD+QuglcvDqVtNVMbcO eU1jrVyY12EVGJjuU9NHkPdXhq2klssN2sVDTmPOQL4cavlYXEGG29XImTdqEx8vvkCl 44wL8UI2Sn70dcwDRNX7oNvPBYypZKPtFzogDT1r2ycNofUnAaZKelLvRR1YrHXNKw1k xe0A== X-Gm-Message-State: AOAM533WiPgkQWnnlO5XYIYLUZVFHmgz5B7Immi2kwz0synhMhjdMQjI lAqMv3T3zubaHxKwKFqwO3dABzPk+Hs= X-Google-Smtp-Source: ABdhPJz1fSVWJGjTNSoq/QR3uzElI33jak2hSSYcN0WkCWl/AFHhJhh89LQ9dQbymkqCfbAzAu/peg== X-Received: by 2002:a5d:51c3:: with SMTP id n3mr1932481wrv.104.1597397033717; Fri, 14 Aug 2020 02:23:53 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH 4/7] hw/sd: Add sdbus_write_data() to write multiples bytes on the data line Date: Fri, 14 Aug 2020 11:23:43 +0200 Message-Id: <20200814092346.21825-5-f4bug@amsat.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20200814092346.21825-1-f4bug@amsat.org> References: <20200814092346.21825-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Type: text/plain; charset="utf-8" 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::442; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-x442.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: 0 X-Spam_score: 0.0 X-Spam_bar: / X-Spam_report: (0.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=1, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: Peter Maydell , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Andrew Baumann , Beniamino Galvani , Michael Walle , qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Add a sdbus_write_data() method to write multiple bytes on the data line of a SD bus. We might improve the tracing later, for now keep logging each byte individually. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/hw/sd/sd.h | 9 +++++++++ hw/sd/core.c | 15 +++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/include/hw/sd/sd.h b/include/hw/sd/sd.h index 14ffc7f475..3ae3e8939b 100644 --- a/include/hw/sd/sd.h +++ b/include/hw/sd/sd.h @@ -175,6 +175,15 @@ void sdbus_write_byte(SDBus *sd, uint8_t value); * Return: byte value read */ uint8_t sdbus_read_byte(SDBus *sd); +/** + * Write data to a SD bus. + * @sdbus: bus + * @buf: data to write + * @length: number of bytes to write + * + * Write multiple bytes of data on the data lines of a SD bus. + */ +void sdbus_write_data(SDBus *sdbus, const void *buf, size_t length); bool sdbus_data_ready(SDBus *sd); bool sdbus_get_inserted(SDBus *sd); bool sdbus_get_readonly(SDBus *sd); diff --git a/hw/sd/core.c b/hw/sd/core.c index a3b620b802..9c2781ebf9 100644 --- a/hw/sd/core.c +++ b/hw/sd/core.c @@ -114,6 +114,21 @@ void sdbus_write_byte(SDBus *sdbus, uint8_t value) } } =20 +void sdbus_write_data(SDBus *sdbus, const void *buf, size_t length) +{ + SDState *card =3D get_card(sdbus); + const uint8_t *data =3D buf; + + if (card) { + SDCardClass *sc =3D SD_CARD_GET_CLASS(card); + + for (size_t i =3D 0; i < length; i++) { + trace_sdbus_write(sdbus_name(sdbus), data[i]); + sc->write_byte(card, data[i]); + } + } +} + uint8_t sdbus_read_byte(SDBus *sdbus) { SDState *card =3D get_card(sdbus); --=20 2.21.3 From nobody Sun May 12 20:54:10 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=1597400074; cv=none; d=zohomail.com; s=zohoarc; b=PTQQTDf1GqL72FAkAEoFJgkzRfqbgJc8h5WD9iNE/zRxL8Beuf6IRqUlJM3PdKugmF/2WH9+CwacGc5IEXYrcu3tf0gw68joQpc12BNeazcr+MtNxmuH4qtBY+WvejhBza3LJvVUcj5NsRfupBVTXVu7WRsjP9pycxNZgwAVD44= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1597400074; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=aLPTEwW8IgyfTmT0h1xzh2aMoPhT9+v6krhNFnB9JEQ=; b=MXUeCHnWtEoxQmQK45RLaGShoYuaWTVzPdu5NvsXRGBWEVZ7g0gqkjwiokGTraHv0S/lDyBw9i+42q5YLsI9yI5PcK1ZwynF2Y3K7nZ2ds3p4mjnPP6kSSa9gD2ROXhQ1g7IeQIrhovgtZ+/stt4wQQBAcDe55XdOHeV386G3TU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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 15974000745781000.2200198371779; Fri, 14 Aug 2020 03:14:34 -0700 (PDT) Received: from localhost ([::1]:59312 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1k6WjJ-0003n8-6b for importer@patchew.org; Fri, 14 Aug 2020 06:14:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46804) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k6VwN-0005dO-Df; Fri, 14 Aug 2020 05:23:59 -0400 Received: from mail-wr1-x443.google.com ([2a00:1450:4864:20::443]:39017) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1k6VwL-0004LE-KG; Fri, 14 Aug 2020 05:23:59 -0400 Received: by mail-wr1-x443.google.com with SMTP id a5so7731015wrm.6; Fri, 14 Aug 2020 02:23:56 -0700 (PDT) Received: from localhost.localdomain (121.red-81-40-121.staticip.rima-tde.net. [81.40.121.121]) by smtp.gmail.com with ESMTPSA id b11sm12889395wrq.32.2020.08.14.02.23.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Aug 2020 02:23:54 -0700 (PDT) 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=aLPTEwW8IgyfTmT0h1xzh2aMoPhT9+v6krhNFnB9JEQ=; b=QCAV0i9qsFINmIhKsoAX/iB8/CeY2K3JOfrLM1OKkDnM44nXnW7OFUPOxm1lX1/3Rw e4mdfnW5R4yGSQwGIJoxiVeTCl8JiZHENfKZ/qj36kY+r3sik1sOKjPJZ/VD+3okCXgi R+N4iA2QvS6tfZVpIr6eG4JgbRrQ7uQqjLi9DdFJwRH1RRiL3L+tagRx7cUl1UBgvO/V TKQ8yqPtF9IFk+Ab9p7qtIv2lBZUSo/zyH/nXTeUyWXnKnffkrOma3TeLRbxbCgflU8t L5Thmtd/AFLEuk7HCnIFaHI1EjkZ/vsiJwgrZnfCBIPVe9rOAaOy3UHG6W/3QP7VUiHK 8PRw== 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=aLPTEwW8IgyfTmT0h1xzh2aMoPhT9+v6krhNFnB9JEQ=; b=eq5HwMmb5eHMju+DjwzfeKr2p64lOtnknzpdzQCvqMQjy92yrLNcakpFrFgZ6Rx3Qt YnTEjgFU/VM6dh1xOBujylT51+1tm8RiuGBoa0RaBqxmXy7oQe40NaKa8ITJBHOuJVay Cv1yBLzxBzwZySKPkL/YC3lm6grjTyWqcbSDPdEyG7iLMqMcYI+ECUficsL3odBCYbBF +1LUdifu4fhOFWd0lZA+W2n211hKXbHY5nbopzWNd9ci4aBW+r5cy/PIeZq903m3UYKO Z0tOPW3O4hKCExgAM8Gqi3AISYdMOEfbqQpFlXLNcATamv5rbxZl7T63NPgyzw7n7EjB kctg== X-Gm-Message-State: AOAM532nUpGcImjZ8KMzR6H3gxydF90+PZT3AiUpNLSKc8QEwpeEXot7 058jvUa5RnJrorvZgDKjfQZjecOC/Ps= X-Google-Smtp-Source: ABdhPJx1WiV97w8YG2HFyop4igZGjblk6Taew3kw1v527htk2VOINl+X+yAbEXGQIB9eP/v0sA5ZrQ== X-Received: by 2002:adf:c552:: with SMTP id s18mr1799513wrf.209.1597397035016; Fri, 14 Aug 2020 02:23:55 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH 5/7] hw/sd: Use sdbus_write_data() instead of sdbus_write_byte when possible Date: Fri, 14 Aug 2020 11:23:44 +0200 Message-Id: <20200814092346.21825-6-f4bug@amsat.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20200814092346.21825-1-f4bug@amsat.org> References: <20200814092346.21825-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Type: text/plain; charset="utf-8" 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::443; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-x443.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: 0 X-Spam_score: 0.0 X-Spam_bar: / X-Spam_report: (0.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=1, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: Peter Maydell , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Andrew Baumann , Beniamino Galvani , Michael Walle , qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Use the recently added sdbus_write_data() to write multiple bytes at once, instead of looping calling sdbus_write_byte(). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- hw/sd/allwinner-sdhost.c | 14 +++++--------- hw/sd/milkymist-memcard.c | 7 +++---- hw/sd/sdhci.c | 18 ++++-------------- 3 files changed, 12 insertions(+), 27 deletions(-) diff --git a/hw/sd/allwinner-sdhost.c b/hw/sd/allwinner-sdhost.c index c004aa39da..eea5659c5f 100644 --- a/hw/sd/allwinner-sdhost.c +++ b/hw/sd/allwinner-sdhost.c @@ -333,10 +333,7 @@ static uint32_t allwinner_sdhost_process_desc(AwSdHost= State *s, if (is_write) { cpu_physical_memory_read((desc->addr & DESC_SIZE_MASK) + num_d= one, buf, buf_bytes); - - for (uint32_t i =3D 0; i < buf_bytes; i++) { - sdbus_write_byte(&s->sdbus, buf[i]); - } + sdbus_write_data(&s->sdbus, buf, buf_bytes); =20 /* Read from SD bus */ } else { @@ -548,6 +545,7 @@ static void allwinner_sdhost_write(void *opaque, hwaddr= offset, uint64_t value, unsigned size) { AwSdHostState *s =3D AW_SDHOST(opaque); + uint32_t u32; =20 trace_allwinner_sdhost_write(offset, value, size); =20 @@ -654,11 +652,9 @@ static void allwinner_sdhost_write(void *opaque, hwadd= r offset, s->startbit_detect =3D value; break; case REG_SD_FIFO: /* Read/Write FIFO */ - sdbus_write_byte(&s->sdbus, value & 0xff); - sdbus_write_byte(&s->sdbus, (value >> 8) & 0xff); - sdbus_write_byte(&s->sdbus, (value >> 16) & 0xff); - sdbus_write_byte(&s->sdbus, (value >> 24) & 0xff); - allwinner_sdhost_update_transfer_cnt(s, sizeof(uint32_t)); + u32 =3D cpu_to_le32(value); + sdbus_write_data(&s->sdbus, &u32, sizeof(u32)); + allwinner_sdhost_update_transfer_cnt(s, sizeof(u32)); allwinner_sdhost_auto_stop(s); allwinner_sdhost_update_irq(s); break; diff --git a/hw/sd/milkymist-memcard.c b/hw/sd/milkymist-memcard.c index e8d055bb89..12e091a46e 100644 --- a/hw/sd/milkymist-memcard.c +++ b/hw/sd/milkymist-memcard.c @@ -181,6 +181,7 @@ static void memcard_write(void *opaque, hwaddr addr, ui= nt64_t value, unsigned size) { MilkymistMemcardState *s =3D opaque; + uint32_t val32; =20 trace_milkymist_memcard_memory_write(addr, value); =20 @@ -209,10 +210,8 @@ static void memcard_write(void *opaque, hwaddr addr, u= int64_t value, if (!s->enabled) { break; } - sdbus_write_byte(&s->sdbus, (value >> 24) & 0xff); - sdbus_write_byte(&s->sdbus, (value >> 16) & 0xff); - sdbus_write_byte(&s->sdbus, (value >> 8) & 0xff); - sdbus_write_byte(&s->sdbus, value & 0xff); + val32 =3D cpu_to_be32(value); + sdbus_write_data(&s->sdbus, &val32, sizeof(val32)); break; case R_ENABLE: s->regs[addr] =3D value; diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index b897b1121b..ddf3691561 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -496,8 +496,6 @@ static uint32_t sdhci_read_dataport(SDHCIState *s, unsi= gned size) /* Write data from host controller FIFO to card */ static void sdhci_write_block_to_card(SDHCIState *s) { - int index =3D 0; - if (s->prnsts & SDHC_SPACE_AVAILABLE) { if (s->norintstsen & SDHC_NISEN_WBUFRDY) { s->norintsts |=3D SDHC_NIS_WBUFRDY; @@ -514,9 +512,7 @@ static void sdhci_write_block_to_card(SDHCIState *s) } } =20 - for (index =3D 0; index < (s->blksize & BLOCK_SIZE_MASK); index++) { - sdbus_write_byte(&s->sdbus, s->fifo_buffer[index]); - } + sdbus_write_data(&s->sdbus, s->fifo_buffer, s->blksize & BLOCK_SIZE_MA= SK); =20 /* Next data can be written through BUFFER DATORT register */ s->prnsts |=3D SDHC_SPACE_AVAILABLE; @@ -641,9 +637,7 @@ static void sdhci_sdma_transfer_multi_blocks(SDHCIState= *s) &s->fifo_buffer[begin], s->data_count - begin); s->sdmasysad +=3D s->data_count - begin; if (s->data_count =3D=3D block_size) { - for (n =3D 0; n < block_size; n++) { - sdbus_write_byte(&s->sdbus, s->fifo_buffer[n]); - } + sdbus_write_data(&s->sdbus, s->fifo_buffer, block_size); s->data_count =3D 0; if (s->trnmod & SDHC_TRNS_BLK_CNT_EN) { s->blkcnt--; @@ -678,9 +672,7 @@ static void sdhci_sdma_transfer_single_block(SDHCIState= *s) dma_memory_write(s->dma_as, s->sdmasysad, s->fifo_buffer, datacnt); } else { dma_memory_read(s->dma_as, s->sdmasysad, s->fifo_buffer, datacnt); - for (n =3D 0; n < datacnt; n++) { - sdbus_write_byte(&s->sdbus, s->fifo_buffer[n]); - } + sdbus_write_data(&s->sdbus, s->fifo_buffer, datacnt); } s->blkcnt--; =20 @@ -814,9 +806,7 @@ static void sdhci_do_adma(SDHCIState *s) s->data_count - begin); dscr.addr +=3D s->data_count - begin; if (s->data_count =3D=3D block_size) { - for (n =3D 0; n < block_size; n++) { - sdbus_write_byte(&s->sdbus, s->fifo_buffer[n]); - } + sdbus_write_data(&s->sdbus, s->fifo_buffer, block_= size); s->data_count =3D 0; if (s->trnmod & SDHC_TRNS_BLK_CNT_EN) { s->blkcnt--; --=20 2.21.3 From nobody Sun May 12 20:54:10 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=1597402200; cv=none; d=zohomail.com; s=zohoarc; b=X7GMZEjN3vMgM1+PD0gbz8aXc/DeZxouWk0knQnSOSNg5pmL/x6Ljz0sLJCnOnXTQcJd7kvlPO8x/OBUP2BZj+I4vtSnzIX16EqXFQYZyXs08cdv9Lqh7KcfuLvNkL5cZlocw/VtUSk+Z3c+6eXg1OrAiznJ5ayszBOdWcsFr4w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1597402200; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=L7idNJovpPa5jNi2WSWeMXFjb9mKtDeVDPABH+yZP/4=; b=l+JKZGlMd1f3pxzMImLGKJBR4YJGXokKRDbY0l26DT8rvhlYl1eGQiUHlX8j7Iuw5p3yF7XwPG13RCzeymzAUJUn0yohXDY0c2d+OQhMAdB0F8cmYXFPbN4lzlYaKAIiuehiSNdxQRa+OpOeB1BsYqNtOcNAq+6sFxlH2F+BPDc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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 1597402200171787.3497506932738; Fri, 14 Aug 2020 03:50:00 -0700 (PDT) Received: from localhost ([::1]:51812 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1k6XHa-0008Ng-QQ for importer@patchew.org; Fri, 14 Aug 2020 06:49:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46814) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k6VwO-0005fM-6s; Fri, 14 Aug 2020 05:24:00 -0400 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]:40084) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1k6VwM-0004LQ-Li; Fri, 14 Aug 2020 05:23:59 -0400 Received: by mail-wr1-x444.google.com with SMTP id l2so7724832wrc.7; Fri, 14 Aug 2020 02:23:57 -0700 (PDT) Received: from localhost.localdomain (121.red-81-40-121.staticip.rima-tde.net. [81.40.121.121]) by smtp.gmail.com with ESMTPSA id b11sm12889395wrq.32.2020.08.14.02.23.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Aug 2020 02:23:55 -0700 (PDT) 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=L7idNJovpPa5jNi2WSWeMXFjb9mKtDeVDPABH+yZP/4=; b=uIP+dyNkfSEZjBU5XargAH/VUHjSwv6A+ZPVKDkMNnZ8K/CD0u88ATnjiQHP6OmwkZ cm7TNL8ZqNiuw8tBvIi5Jy5EwNp4uRwwNp0m4Q/K0WN0hYRgZzqoqBl+PQidWyxr5Xdz ELe6eW0nm+Vf2j7CEURYjUEyH4QB8vEds+aTmqeoNDLZV78srXwhfSyX7ILjW8GqzUg2 IxLRlDXMYXxbRCIjTXyko6/QR8SKB5KhnXm+OrHagIKFGAgvvYDQJuVYhK+O3GQzHGv/ +cHcND44UMVZzYjpeNXiXdrzziTKtR4pjh87KhRZsfHsU7LOj3y7Ehz1s6/a22v4hajc cv9Q== 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=L7idNJovpPa5jNi2WSWeMXFjb9mKtDeVDPABH+yZP/4=; b=cb2h+pUIXrLzsrvcSceYbOtKkWSgsl+J0V8I4Vong2Aj4M+Jzf5YbwnQ0mHWgQkrvE kNtieVW8tqETJo6KGzZoGrmBhUCB4UJJFVF6yTpUUiwgMeppuYuPj0zgVt/5HDYPMego XwryAJLn5pFYWfeery0Lga35dBqMDX36WQBXdvtHJdmPp4UjBh+kGCYcV2R1fjdnDKRc 3+UCEFGzs6WjJ4qPZo2jHJ64wWyNvKkxSZ3irNNPRnorHafFykBpBPqM23cDPO3/I000 lHQZnAIKzDc71AytBi7IL12USv4CHUjGlZE5bk6FX612w5Z6/oDfrG/T6EBStjHOMvTA /r6g== X-Gm-Message-State: AOAM532THVW0ryvLQJmWstw1gxXMyA6d8pC37p71/53ybR3pxr4YLv8j YxUkl9HVkjqdZ+XS8QpUjAoXvvOyhm4= X-Google-Smtp-Source: ABdhPJxiVf/tLEDOOaLJsHw3v915clNa0sjwQvt37LCOhfjGfRhi1UY6zEMOND9YuLK3iik4D88GkQ== X-Received: by 2002:a5d:42c5:: with SMTP id t5mr1896854wrr.370.1597397036430; Fri, 14 Aug 2020 02:23:56 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH 6/7] hw/sd: Add sdbus_read_data() to read multiples bytes on the data line Date: Fri, 14 Aug 2020 11:23:45 +0200 Message-Id: <20200814092346.21825-7-f4bug@amsat.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20200814092346.21825-1-f4bug@amsat.org> References: <20200814092346.21825-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Type: text/plain; charset="utf-8" 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::444; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-x444.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: 0 X-Spam_score: 0.0 X-Spam_bar: / X-Spam_report: (0.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=1, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: Peter Maydell , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Andrew Baumann , Beniamino Galvani , Michael Walle , qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Add a sdbus_read_data() method to read multiple bytes on the data line of a SD bus. We might improve the tracing later, for now keep logging each byte individually. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/hw/sd/sd.h | 9 +++++++++ hw/sd/core.c | 15 +++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/include/hw/sd/sd.h b/include/hw/sd/sd.h index 3ae3e8939b..ac02d61a7a 100644 --- a/include/hw/sd/sd.h +++ b/include/hw/sd/sd.h @@ -184,6 +184,15 @@ uint8_t sdbus_read_byte(SDBus *sd); * Write multiple bytes of data on the data lines of a SD bus. */ void sdbus_write_data(SDBus *sdbus, const void *buf, size_t length); +/** + * Read data from a SD bus. + * @sdbus: bus + * @buf: buffer to read data into + * @length: number of bytes to read + * + * Read multiple bytes of data on the data lines of a SD bus. + */ +void sdbus_read_data(SDBus *sdbus, void *buf, size_t length); bool sdbus_data_ready(SDBus *sd); bool sdbus_get_inserted(SDBus *sd); bool sdbus_get_readonly(SDBus *sd); diff --git a/hw/sd/core.c b/hw/sd/core.c index 9c2781ebf9..957d116f1a 100644 --- a/hw/sd/core.c +++ b/hw/sd/core.c @@ -144,6 +144,21 @@ uint8_t sdbus_read_byte(SDBus *sdbus) return value; } =20 +void sdbus_read_data(SDBus *sdbus, void *buf, size_t length) +{ + SDState *card =3D get_card(sdbus); + uint8_t *data =3D buf; + + if (card) { + SDCardClass *sc =3D SD_CARD_GET_CLASS(card); + + for (size_t i =3D 0; i < length; i++) { + data[i] =3D sc->read_byte(card); + trace_sdbus_read(sdbus_name(sdbus), data[i]); + } + } +} + bool sdbus_data_ready(SDBus *sdbus) { SDState *card =3D get_card(sdbus); --=20 2.21.3 From nobody Sun May 12 20:54:10 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=1597401198; cv=none; d=zohomail.com; s=zohoarc; b=d1FzaTxUS6Kifas8/Rs/kRBiis8fEhO6ZFT7eIX23XrbId+BpzsEGRSMnaOTizss3eh1zvM8v+Ilw+t+5+eqZuhYjJgMNJehIrlnPd6bXY0iRca1CfZ+7gicl4bFlvx85OaWQqZcTo3UBog5PEerLbigs1+VHnn1dPmtdDUczYA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1597401198; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=+SM9WQG7FQprX3XJR8P9C1nTjo7SJFd726jcTzAOzTs=; b=gWtrtmyXU7MfhjATv/xKhpctcKaAiMJKO4HCdTqwbB/I46PdtQG7hZHXoIAA1AC6nYx9ka8LAg2bQFxfJyi77fk3gFHmk33Xr3L3xWkyKR2Q4Mh8GLxVfSwtjyEAlypbNPBbAbMEmOfR1osvDQGuhZN6DfRP4S1EpWzWMA3HVH4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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 1597401198292445.3428348779173; Fri, 14 Aug 2020 03:33:18 -0700 (PDT) Received: from localhost ([::1]:54808 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1k6X1R-00038H-1s for importer@patchew.org; Fri, 14 Aug 2020 06:33:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46824) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k6VwP-0005iv-Iv; Fri, 14 Aug 2020 05:24:01 -0400 Received: from mail-wr1-x443.google.com ([2a00:1450:4864:20::443]:42563) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1k6VwN-0004Ld-TA; Fri, 14 Aug 2020 05:24:01 -0400 Received: by mail-wr1-x443.google.com with SMTP id r4so7706052wrx.9; Fri, 14 Aug 2020 02:23:58 -0700 (PDT) Received: from localhost.localdomain (121.red-81-40-121.staticip.rima-tde.net. [81.40.121.121]) by smtp.gmail.com with ESMTPSA id b11sm12889395wrq.32.2020.08.14.02.23.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Aug 2020 02:23:57 -0700 (PDT) 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=+SM9WQG7FQprX3XJR8P9C1nTjo7SJFd726jcTzAOzTs=; b=lKenzRGtng+h3EN1lYVeitQ9FA8NUTByJSLwVswW6+8cq0RubPlHxnkcEAWWfvWXQd Z76MbaBJYKr+vPd5UtzUZT9UMxIf+82WGFHsezWx508b05JGNsVsH+G1a/435OyvGxtC DpjkT4kKE6n007wQv4WCiUuDm0nQb3GwEMcOsgdl6j+VaRJ9yz+v8KnzOOhL1ieDH0ZU EtCCGRoE68dX+EpA1CPrkMiQrBSfURrDLXXxAwjUg7W7By48l4COGQTvRgD/y/QHl9gs BQsPhOHTMnePVUqfPg0H16igr+gHLfW2I0wDKBWmx/yoIRAIixJHuFtDAq2XEdSEcduY 3PgQ== 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=+SM9WQG7FQprX3XJR8P9C1nTjo7SJFd726jcTzAOzTs=; b=fd1cmLnsh9tdfSTdsP0XsXM0RgA8weqwY9WRozwUUcD8BeQYymqyrVZ2oshyQrM61V lmSwCF7/Wziuhn5+mkxKGTyfS+Ve0DfyymJVYdqxdfzBvTuiZ+Wmor5Dj8v1ZCN+1WHQ NMQE/CRFE4YLMgKQP/jJHv8H7oqgTz/vUfGwgKYa7dFkQwAvLc5NXgCzYSBZikS/yxit FHd/wGrR3b0TEoX94FWpy32OoGT5g3aiGvLbejnlIJVGwU55ZQyH62NPyeftj5yz3EjR 9eiu/+VXqul8bBLR8uYJIPrSLwWfm3drTOZisCHf1udOolbb/2uFkUqY11Dt1uEAIgm0 cgsQ== X-Gm-Message-State: AOAM532a+gkTpcbLKcBuMx7ngBicwVWWzmzSOGDDg2HlRzbYXeR17N5t NGmodTRtIaQ3eODdN6mD/8mG1WsfEUA= X-Google-Smtp-Source: ABdhPJxN+CAx/ohXO0v5w5KSXf1j38EcrWXeo6yNfELU91Lw34ilbdB6fjkXGSuQzuDbuxKwrweksg== X-Received: by 2002:adf:f849:: with SMTP id d9mr1855286wrq.295.1597397037625; Fri, 14 Aug 2020 02:23:57 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH 7/7] hw/sd: Use sdbus_read_data() instead of sdbus_read_byte() when possible Date: Fri, 14 Aug 2020 11:23:46 +0200 Message-Id: <20200814092346.21825-8-f4bug@amsat.org> X-Mailer: git-send-email 2.21.3 In-Reply-To: <20200814092346.21825-1-f4bug@amsat.org> References: <20200814092346.21825-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Type: text/plain; charset="utf-8" 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::443; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-x443.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: 0 X-Spam_score: 0.0 X-Spam_bar: / X-Spam_report: (0.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=1, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: Peter Maydell , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Andrew Baumann , Beniamino Galvani , Michael Walle , qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Use the recently added sdbus_read_data() to read multiple bytes at once, instead of looping calling sdbus_read_byte(). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- hw/sd/allwinner-sdhost.c | 10 +++------- hw/sd/milkymist-memcard.c | 7 ++----- hw/sd/sdhci.c | 28 ++++++++-------------------- 3 files changed, 13 insertions(+), 32 deletions(-) diff --git a/hw/sd/allwinner-sdhost.c b/hw/sd/allwinner-sdhost.c index eea5659c5f..f9eb92c09e 100644 --- a/hw/sd/allwinner-sdhost.c +++ b/hw/sd/allwinner-sdhost.c @@ -337,9 +337,7 @@ static uint32_t allwinner_sdhost_process_desc(AwSdHostS= tate *s, =20 /* Read from SD bus */ } else { - for (uint32_t i =3D 0; i < buf_bytes; i++) { - buf[i] =3D sdbus_read_byte(&s->sdbus); - } + sdbus_read_data(&s->sdbus, buf, buf_bytes); cpu_physical_memory_write((desc->addr & DESC_SIZE_MASK) + num_= done, buf, buf_bytes); } @@ -518,10 +516,8 @@ static uint64_t allwinner_sdhost_read(void *opaque, hw= addr offset, break; case REG_SD_FIFO: /* Read/Write FIFO */ if (sdbus_data_ready(&s->sdbus)) { - res =3D sdbus_read_byte(&s->sdbus); - res |=3D sdbus_read_byte(&s->sdbus) << 8; - res |=3D sdbus_read_byte(&s->sdbus) << 16; - res |=3D sdbus_read_byte(&s->sdbus) << 24; + sdbus_read_data(&s->sdbus, &res, sizeof(uint32_t)); + le32_to_cpus(&res); allwinner_sdhost_update_transfer_cnt(s, sizeof(uint32_t)); allwinner_sdhost_auto_stop(s); allwinner_sdhost_update_irq(s); diff --git a/hw/sd/milkymist-memcard.c b/hw/sd/milkymist-memcard.c index 12e091a46e..be89a93876 100644 --- a/hw/sd/milkymist-memcard.c +++ b/hw/sd/milkymist-memcard.c @@ -151,11 +151,8 @@ static uint64_t memcard_read(void *opaque, hwaddr addr, if (!s->enabled) { r =3D 0xffffffff; } else { - r =3D 0; - r |=3D sdbus_read_byte(&s->sdbus) << 24; - r |=3D sdbus_read_byte(&s->sdbus) << 16; - r |=3D sdbus_read_byte(&s->sdbus) << 8; - r |=3D sdbus_read_byte(&s->sdbus); + sdbus_read_data(&s->sdbus, &r, sizeof(r)); + be32_to_cpus(&r); } break; case R_CLK2XDIV: diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index ddf3691561..1785d7e1f7 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -399,8 +399,6 @@ static void sdhci_end_transfer(SDHCIState *s) /* Fill host controller's read buffer with BLKSIZE bytes of data from card= */ static void sdhci_read_block_from_card(SDHCIState *s) { - int index =3D 0; - uint8_t data; const uint16_t blk_size =3D s->blksize & BLOCK_SIZE_MASK; =20 if ((s->trnmod & SDHC_TRNS_MULTI) && @@ -408,12 +406,9 @@ static void sdhci_read_block_from_card(SDHCIState *s) return; } =20 - for (index =3D 0; index < blk_size; index++) { - data =3D sdbus_read_byte(&s->sdbus); - if (!FIELD_EX32(s->hostctl2, SDHC_HOSTCTL2, EXECUTE_TUNING)) { - /* Device is not in tuning */ - s->fifo_buffer[index] =3D data; - } + if (!FIELD_EX32(s->hostctl2, SDHC_HOSTCTL2, EXECUTE_TUNING)) { + /* Device is not in tuning */ + sdbus_read_data(&s->sdbus, s->fifo_buffer, blk_size); } =20 if (FIELD_EX32(s->hostctl2, SDHC_HOSTCTL2, EXECUTE_TUNING)) { @@ -574,7 +569,7 @@ static void sdhci_write_dataport(SDHCIState *s, uint32_= t value, unsigned size) static void sdhci_sdma_transfer_multi_blocks(SDHCIState *s) { bool page_aligned =3D false; - unsigned int n, begin; + unsigned int begin; 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); @@ -596,9 +591,7 @@ static void sdhci_sdma_transfer_multi_blocks(SDHCIState= *s) SDHC_DAT_LINE_ACTIVE; while (s->blkcnt) { if (s->data_count =3D=3D 0) { - for (n =3D 0; n < block_size; n++) { - s->fifo_buffer[n] =3D sdbus_read_byte(&s->sdbus); - } + sdbus_read_data(&s->sdbus, s->fifo_buffer, block_size); } begin =3D s->data_count; if (((boundary_count + begin) < block_size) && page_aligned) { @@ -662,13 +655,10 @@ static void sdhci_sdma_transfer_multi_blocks(SDHCISta= te *s) /* single block SDMA transfer */ static void sdhci_sdma_transfer_single_block(SDHCIState *s) { - int n; uint32_t datacnt =3D s->blksize & BLOCK_SIZE_MASK; =20 if (s->trnmod & SDHC_TRNS_READ) { - for (n =3D 0; n < datacnt; n++) { - s->fifo_buffer[n] =3D sdbus_read_byte(&s->sdbus); - } + sdbus_read_data(&s->sdbus, s->fifo_buffer, datacnt); dma_memory_write(s->dma_as, s->sdmasysad, s->fifo_buffer, datacnt); } else { dma_memory_read(s->dma_as, s->sdmasysad, s->fifo_buffer, datacnt); @@ -731,7 +721,7 @@ static void get_adma_description(SDHCIState *s, ADMADes= cr *dscr) =20 static void sdhci_do_adma(SDHCIState *s) { - unsigned int n, begin, length; + unsigned int begin, length; const uint16_t block_size =3D s->blksize & BLOCK_SIZE_MASK; ADMADescr dscr =3D {}; int i; @@ -765,9 +755,7 @@ static void sdhci_do_adma(SDHCIState *s) if (s->trnmod & SDHC_TRNS_READ) { while (length) { if (s->data_count =3D=3D 0) { - for (n =3D 0; n < block_size; n++) { - s->fifo_buffer[n] =3D sdbus_read_byte(&s->sdbu= s); - } + sdbus_read_data(&s->sdbus, s->fifo_buffer, block_s= ize); } begin =3D s->data_count; if ((length + begin) < block_size) { --=20 2.21.3