From nobody Tue Oct 28 01:58:01 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1514977412858175.49272842083292; Wed, 3 Jan 2018 03:03:32 -0800 (PST) Received: from localhost ([::1]:48633 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgpQ-0003vH-QZ for importer@patchew.org; Wed, 03 Jan 2018 06:03:24 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47646) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgnh-0002s6-Mu for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:01:38 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWgng-0005ga-RT for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:01:37 -0500 Received: from mail-qk0-x243.google.com ([2607:f8b0:400d:c09::243]:33771) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWgng-0005gA-NS for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:01:36 -0500 Received: by mail-qk0-x243.google.com with SMTP id x7so1054717qkb.0 for ; Wed, 03 Jan 2018 03:01:36 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id r55sm417735qta.57.2018.01.03.03.01.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 03:01:35 -0800 (PST) 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=H55m8SAxQCZteXEHo639T3ncP9waoJie0p/fu8nR8T8=; b=Vz8JZ4jvgSEMnhrMkVSvobh/p4Ydiv83YSfYHDixCQr50cSCg+M5uxjeAiMIvOz10b AKu60heTgkhPxKxGv8xev/89ZUh1TeSDfipfmcVaGFtw/fLRm257ULCBJSrN8j5BLdq3 8HtsHQcesmBeM+3Dh3XEfXWOgK2vuAFHR4LUYsTB+2hLnL0SjUvC26Y4bHNXzX7aP4MK 9lUf3a/QEQLkLBYVL6STB53Ig4K7Z9jzEL42bFiREeJd4jl118zeKvPYhw4a1spTwb+t uqco3cvEZAo/bz3kqe7gIez2I4Untmrr/4WforOfApX6LSXBjvcrsZXe37s/89A8U3gH v4/A== 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=H55m8SAxQCZteXEHo639T3ncP9waoJie0p/fu8nR8T8=; b=Zv3sZ0O+mvoQcJJVH9VUhRo0tRFucfbtslX4m7lp9oTMOykx/W+Gb+dVSWqRzGC8vx KJramE7ueBvpJICrpgZMAwurSECEWpFNwyFUPeviz3dJ2QgJoVpUsCTv5JrKGsBOnWII zezIV/+q5S13oz3WfI12d2nAITDkm6Q0RJ/+8etjn/bIcWzmiTM2LGdJkwLnpBX9aeta 8q7iCGc7rQi6to/mF48HpKzMGNUYOm0e1fJ4xk8tSEuTbLcuCJgWITjO7KDpkFi3Wu/8 DugIvm3oek6vSLht3WwACElyebv/hl2cK+3KU/AJEHXlxNnjcLOFMYcW7IHfK5YTO/iu XIMw== X-Gm-Message-State: AKGB3mLT4CFr1UEekH/LO1VBhyfQp0h1uszBBKPmexq0HCups9gs2xeP ecI62Nq53p11ui6Gzf7v+kPBaV8U X-Google-Smtp-Source: ACJfBouRKL5pFOovAsdUJyfLPR5OJCkuFxwwbgFN8K3Nd20rUbQD5p89whzJ9ADEerZ1ZBGsQxOnSw== X-Received: by 10.55.107.197 with SMTP id g188mr1034699qkc.254.1514977296115; Wed, 03 Jan 2018 03:01:36 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis Date: Wed, 3 Jan 2018 08:01:10 -0300 Message-Id: <20180103110126.29209-2-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103110126.29209-1-f4bug@amsat.org> References: <20180103110126.29209-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::243 Subject: [Qemu-devel] [PATCH v4 01/17] sdhci: clean up includes X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , Fam Zheng , Eduardo Habkost , Andrey Smirnov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/sd/sdhci-internal.h | 4 ---- include/hw/sd/sdhci.h | 7 ++++++- hw/sd/sdhci.c | 1 + 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/hw/sd/sdhci-internal.h b/hw/sd/sdhci-internal.h index 161177cf39..248fd027f9 100644 --- a/hw/sd/sdhci-internal.h +++ b/hw/sd/sdhci-internal.h @@ -24,8 +24,6 @@ #ifndef SDHCI_INTERNAL_H #define SDHCI_INTERNAL_H =20 -#include "hw/sd/sdhci.h" - /* R/W SDMA System Address register 0x0 */ #define SDHC_SYSAD 0x00 =20 @@ -227,6 +225,4 @@ enum { sdhc_gap_write =3D 2 /* SDHC stopped at block gap during write oper= ation */ }; =20 -extern const VMStateDescription sdhci_vmstate; - #endif diff --git a/include/hw/sd/sdhci.h b/include/hw/sd/sdhci.h index 0f0c3f1e64..1335373d3c 100644 --- a/include/hw/sd/sdhci.h +++ b/include/hw/sd/sdhci.h @@ -26,17 +26,19 @@ #define SDHCI_H =20 #include "qemu-common.h" -#include "hw/block/block.h" #include "hw/pci/pci.h" #include "hw/sysbus.h" #include "hw/sd/sd.h" =20 /* SD/MMC host controller state */ typedef struct SDHCIState { + /*< private >*/ union { PCIDevice pcidev; SysBusDevice busdev; }; + + /*< public >*/ SDBus sdbus; MemoryRegion iomem; =20 @@ -46,6 +48,7 @@ typedef struct SDHCIState { qemu_irq ro_cb; qemu_irq irq; =20 + /* Registers cleared on reset */ uint32_t sdmasysad; /* SDMA System Address register */ uint16_t blksize; /* Host DMA Buff Boundary and Transfer BlkSize = Reg */ uint16_t blkcnt; /* Blocks count for current transfer */ @@ -70,8 +73,10 @@ typedef struct SDHCIState { uint16_t acmd12errsts; /* Auto CMD12 error status register */ uint64_t admasysaddr; /* ADMA System Address Register */ =20 + /* Read-only registers */ uint32_t capareg; /* Capabilities Register */ uint32_t maxcurr; /* Maximum Current Capabilities Register */ + uint8_t *fifo_buffer; /* SD host i/o FIFO buffer */ uint32_t buf_maxsz; uint16_t data_count; /* current element in FIFO buffer */ diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index b064a087c9..b7d2a20985 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -29,6 +29,7 @@ #include "sysemu/dma.h" #include "qemu/timer.h" #include "qemu/bitops.h" +#include "hw/sd/sdhci.h" #include "sdhci-internal.h" #include "qemu/log.h" =20 --=20 2.15.1 From nobody Tue Oct 28 01:58:01 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1514977430982583.7225928498815; Wed, 3 Jan 2018 03:03:50 -0800 (PST) Received: from localhost ([::1]:48636 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgpq-0004GO-6g for importer@patchew.org; Wed, 03 Jan 2018 06:03:50 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47711) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgno-0002vC-GE for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:01:50 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWgnk-0005jO-FY for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:01:44 -0500 Received: from mail-qk0-x244.google.com ([2607:f8b0:400d:c09::244]:36055) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWgnk-0005ip-Aa for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:01:40 -0500 Received: by mail-qk0-x244.google.com with SMTP id g123so1057716qka.3 for ; Wed, 03 Jan 2018 03:01:40 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id r55sm417735qta.57.2018.01.03.03.01.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 03:01:38 -0800 (PST) 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=2mIZ1+ERDoLCA/liKrMORJCCzNPqggsi8TdqmV4QACk=; b=NNvJsu2LG1fjAdfwn0t8UN6G2qH72PZGxo0/3wp99XdY1j0pnRsMIMbV+0wci4w5dM mQMyaxdDyebRBAFwd3koMYbFeH9jjxpv/88yrh7TGzAFrZ4ccDKW/hX9D+YxAUkw8dXU A9WTPWkan35uKou3/JxirQTpze2yc8pt4RjW6p9SXI52m+a7vuqiaGMrUMwmi8sy4z5m fvilAmFLuucNALdVAQbiQSYbOD8AhZlt5H8GhgSphHNl9RvHhZVYQ3X4gv5x9Dslo7rW bi8S924xEYnucRh/2JTAtzOHpfmI1aTuu8rzYPEpqblGglmWb6yQd640dijY0DCPQoYk T1bw== 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=2mIZ1+ERDoLCA/liKrMORJCCzNPqggsi8TdqmV4QACk=; b=L9+PRmrNjCtbyKl00uAVFfyqim/DKTacgNMAIFrIsCJIo1O+U3oEsqX5F28j6HRqLw P6zigopwnM73bnoO0HYagl3Jz7Ai1E+esg9dLACyyUXa0mkeSdJjyI6PmFsieOr1XOWG b4DcT7Vy32k+T82AWRGGgl0ME2hPwCILmtH4DqmQCdDWilSpHGZg7DexL2kjAl84JpbM U67D0Q0RKx3BPzvr12XY1tcuivyjDSOOqCVQOY2niohIOLdTeXhEFmzIwli9deM4qItc hEm8iBh3qkP1ZJdwco3KOAEo/vmurO5PpYw/QGpC61EgWjEwPmvPFxlarbj/U/yOOGao /kDg== X-Gm-Message-State: AKGB3mJ0qew6BfeFg2THILJzZPy/MU5Z+wr9UZ+l0t52ZvRsvKyGbbv6 fE6+fkWu0b5HafHatMbjs0U= X-Google-Smtp-Source: ACJfBosKKmOXniRdsX4PJ/srxEcXFm/0nAP8EL43OubdVx5mJKkzqU7NKHumztmuSTDm2MoECQdWqA== X-Received: by 10.55.121.199 with SMTP id u190mr1120669qkc.267.1514977299716; Wed, 03 Jan 2018 03:01:39 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis Date: Wed, 3 Jan 2018 08:01:11 -0300 Message-Id: <20180103110126.29209-3-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103110126.29209-1-f4bug@amsat.org> References: <20180103110126.29209-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::244 Subject: [Qemu-devel] [PATCH v4 02/17] sdhci: sort registers comments X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , Fam Zheng , Eduardo Habkost , Andrey Smirnov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Alistair Francis --- include/hw/sd/sdhci.h | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/include/hw/sd/sdhci.h b/include/hw/sd/sdhci.h index 1335373d3c..749cc279ed 100644 --- a/include/hw/sd/sdhci.h +++ b/include/hw/sd/sdhci.h @@ -49,14 +49,20 @@ typedef struct SDHCIState { qemu_irq irq; =20 /* Registers cleared on reset */ + /* 0x00 */ uint32_t sdmasysad; /* SDMA System Address register */ uint16_t blksize; /* Host DMA Buff Boundary and Transfer BlkSize = Reg */ uint16_t blkcnt; /* Blocks count for current transfer */ + /* 0x08 */ uint32_t argument; /* Command Argument Register */ uint16_t trnmod; /* Transfer Mode Setting Register */ uint16_t cmdreg; /* Command Register */ + /* 0x10 */ uint32_t rspreg[4]; /* Response Registers 0-3 */ + /* 0x20 */ + /* Buffer Data Port Register - virtual access point to R and W buffers= */ uint32_t prnsts; /* Present State Register */ + /* 0x28 */ uint8_t hostctl; /* Host Control Register */ uint8_t pwrcon; /* Power control Register */ uint8_t blkgap; /* Block Gap Control Register */ @@ -64,6 +70,7 @@ typedef struct SDHCIState { uint16_t clkcon; /* Clock control Register */ uint8_t timeoutcon; /* Timeout Control Register */ uint8_t admaerr; /* ADMA Error Status Register */ + /* 0x30 */ uint16_t norintsts; /* Normal Interrupt Status Register */ uint16_t errintsts; /* Error Interrupt Status Register */ uint16_t norintstsen; /* Normal Interrupt Status Enable Register */ @@ -71,23 +78,25 @@ typedef struct SDHCIState { uint16_t norintsigen; /* Normal Interrupt Signal Enable Register */ uint16_t errintsigen; /* Error Interrupt Signal Enable Register */ uint16_t acmd12errsts; /* Auto CMD12 error status register */ + /* 0x50 */ + /* Force Event Auto CMD12 Error Interrupt Reg - write only */ + /* Force Event Error Interrupt Register- write only */ + /* 0x58 */ uint64_t admasysaddr; /* ADMA System Address Register */ =20 /* Read-only registers */ + /* 0x40 */ uint32_t capareg; /* Capabilities Register */ + /* 0x48 */ uint32_t maxcurr; /* Maximum Current Capabilities Register */ =20 uint8_t *fifo_buffer; /* SD host i/o FIFO buffer */ uint32_t buf_maxsz; uint16_t data_count; /* current element in FIFO buffer */ uint8_t stopped_state;/* Current SDHC state */ - bool pending_insert_quirk;/* Quirk for Raspberry Pi card insert in= t */ bool pending_insert_state; - /* Buffer Data Port Register - virtual access point to R and W buffers= */ - /* Software Reset Register - always reads as 0 */ - /* Force Event Auto CMD12 Error Interrupt Reg - write only */ - /* Force Event Error Interrupt Register- write only */ - /* RO Host Controller Version Register always reads as 0x2401 */ + /* Configurable properties */ + bool pending_insert_quirk; /* Quirk for Raspberry Pi card insert int */ } SDHCIState; =20 #define TYPE_PCI_SDHCI "sdhci-pci" --=20 2.15.1 From nobody Tue Oct 28 01:58:01 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1514977572860298.8268139154667; Wed, 3 Jan 2018 03:06:12 -0800 (PST) Received: from localhost ([::1]:48668 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgry-0006G8-Ds for importer@patchew.org; Wed, 03 Jan 2018 06:06:02 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47717) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgnq-0002wS-E2 for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:01:50 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWgnn-0005m1-86 for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:01:46 -0500 Received: from mail-qk0-x244.google.com ([2607:f8b0:400d:c09::244]:37967) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWgnn-0005lj-3m for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:01:43 -0500 Received: by mail-qk0-x244.google.com with SMTP id l19so1060823qke.5 for ; Wed, 03 Jan 2018 03:01:42 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id r55sm417735qta.57.2018.01.03.03.01.39 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 03:01:42 -0800 (PST) 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=ReGJAGR3j6lmjUuw+VhJZfn2TmeJK5SK1EzuYDBcNlE=; b=F+ZtjbSdupsQxhhfNN2KYmTQknb5+cp5rJFfl5Prnyb+EqFhw3ere2uC+cv4SuK8oS ULchJ4ab5dYt8e2SeblROXGK8c7l5aqafD6Q0T2F7BAFKn9C5ShtcoFxZ8bO+tebCIu0 pYdq00kXG7AcMU7G2QZDfl3U1XMKrOgUBIyl8VtgEgJHcjAETn49Lf3137HZZDuCTm3L tEAhCQ3Xen4753t2L4VnypjLadzYcnBrysuQuarmImfaAu2235EZM1LM9lfhHw7UF21c KL/XUFn/RIvJbbNx2oPzuX6DLewk+nBr+lPVuPqOs9PtJlRJy2lg2bLMU8CffJX93x1f zbRA== 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=ReGJAGR3j6lmjUuw+VhJZfn2TmeJK5SK1EzuYDBcNlE=; b=kXZ5A5EcQ3BsbxKrJBEuDwcr41OhH6Y3Cw6qTsfK+Wn0w0ddJYw+y+e2G15xxclmlf Pko/ATnUli+czcv/0JAp4M0EotKVxRbqV24jjqeRnU7ChnHzBdKdWBJ9D40FU7aSklIx dETCNEZy9lZyicsTGRi4CLNhzImxAZcKcx724/TJI57/TJV/0rweNrPuKI0H2YVmyWUO XmgzTruvqjsAKQa+yqE/OkAf79wFGRJuwOmK90KREq0wWApIAHGLj8ywbxlkMfVlFtVf c1J1AFv7+2UG4DpYE1Rj2NAXFf9wOfkIcY+Ash2PeQnbeTQv4D69ilAHtYPSUy152neP OyPQ== X-Gm-Message-State: AKGB3mLNvmXSNBkno10GlErxqFdjLZhOc9J8Rc1KTLio4j7PSvn5sxuy hWX7WsQQRh/XzPG1iTQmQ8o= X-Google-Smtp-Source: ACJfBoumRYekKf8ZtUMGbSGtqP27AMCVCREqG7CA2lPHu3klKtLuBPWL2ijR88LJVxoKeyff4fmOug== X-Received: by 10.55.10.2 with SMTP id 2mr1139029qkk.108.1514977302570; Wed, 03 Jan 2018 03:01:42 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis Date: Wed, 3 Jan 2018 08:01:12 -0300 Message-Id: <20180103110126.29209-4-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103110126.29209-1-f4bug@amsat.org> References: <20180103110126.29209-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::244 Subject: [Qemu-devel] [PATCH v4 03/17] sdhci: remove dead code X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , Fam Zheng , Eduardo Habkost , Andrey Smirnov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- include/hw/sd/sdhci.h | 2 -- hw/sd/sdhci.c | 2 -- 2 files changed, 4 deletions(-) diff --git a/include/hw/sd/sdhci.h b/include/hw/sd/sdhci.h index 749cc279ed..a6fe064f51 100644 --- a/include/hw/sd/sdhci.h +++ b/include/hw/sd/sdhci.h @@ -44,8 +44,6 @@ typedef struct SDHCIState { =20 QEMUTimer *insert_timer; /* timer for 'changing' sd card. */ QEMUTimer *transfer_timer; - qemu_irq eject_cb; - qemu_irq ro_cb; qemu_irq irq; =20 /* Registers cleared on reset */ diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index b7d2a20985..365bc80009 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -1200,8 +1200,6 @@ static void sdhci_uninitfn(SDHCIState *s) timer_free(s->insert_timer); timer_del(s->transfer_timer); timer_free(s->transfer_timer); - qemu_free_irq(s->eject_cb); - qemu_free_irq(s->ro_cb); =20 g_free(s->fifo_buffer); s->fifo_buffer =3D NULL; --=20 2.15.1 From nobody Tue Oct 28 01:58:01 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1514977583284837.6258876003984; Wed, 3 Jan 2018 03:06:23 -0800 (PST) Received: from localhost ([::1]:48675 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgsF-0006Uv-ML for importer@patchew.org; Wed, 03 Jan 2018 06:06:19 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47723) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgnq-0002wb-RJ for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:01:50 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWgnq-0005n3-1Q for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:01:46 -0500 Received: from mail-qk0-x244.google.com ([2607:f8b0:400d:c09::244]:43206) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWgnp-0005mw-TT for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:01:45 -0500 Received: by mail-qk0-x244.google.com with SMTP id j137so1056071qke.10 for ; Wed, 03 Jan 2018 03:01:45 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id r55sm417735qta.57.2018.01.03.03.01.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 03:01:44 -0800 (PST) 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=YGAdjpithFfFe23EztE5ncLKf8K3csj/YQOlXGsP6yU=; b=FYEYYsSOSnHkIBumz6QW8UFkAJzx8kik6CM77ypg1ERgPDD605lrmM6AQcDOGYCYn3 h250IO0Akfqsr0PPr/kaccAg5SXmQWH6fy65TFmMc2P7t7HtJMQlbx/sw5yie83vRPv4 NgvP2+oxWy0elvFHa6n+4lB3TQ5YEUJ3SjCEbxwHL+Zdqrhf7MOga9F6Cv1fjisOAUvr w/JH3yVy2i0PkZf9iGcspsHwmSRV2QDg5ZCKc+KcyGUzUyYfXbaDX2gz15IT3VMiPL7U gZQb+n61bcWdsWofN9VDBWUoRWms2DYDmHR9aUAyoyl5oTpVxoj0OwmcaPosWh01XEp9 kQvQ== 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=YGAdjpithFfFe23EztE5ncLKf8K3csj/YQOlXGsP6yU=; b=ZgvIgvmkH1qtNjtn7jEx0pVBDnFHcdTyFBe5nqtD+ZTbhEGAZhgbtcHf91SWilAa8B 9RsBw+FSPA1E9X6HBmwWGxnsxyWtJo0wKtLRBTsXqYU5pUY2AKOWLnIS0DuMMxyRMgeM S5YC2T69Jb5a+BblqKZR1IHKox/WqMD/wDEKeA77jloGIzeSMYtFcoMIgih4VZvwKYAP zu80AhJmeL0K/YkYP3VFkSRkR6WAz4EJJsN+r8Hbz1YHNXQaV9SbMV8n+/6Ts09o5T+u 3iAFXL1vGMGbbtzjMr2tMEIe8pc1xGRCVJsMHqkTqQWXVlI4aOQWwbdYTjiayUGSW91B e8XA== X-Gm-Message-State: AKGB3mJ9bTHXSiIF68VW7y6OfIy2FCpy5wfvtO9qhw3vpEpvcZVTB1Tx 4UjSXWwETYwpa4bEnkzddG0= X-Google-Smtp-Source: ACJfBovpaxTYIdOv+erPugaRC04V/fyYT5DAEil1CqJ5440yH1CIwVIBR2TtZJw6qeABGbgbDBQEkA== X-Received: by 10.55.168.151 with SMTP id r145mr1133557qke.199.1514977305378; Wed, 03 Jan 2018 03:01:45 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Fam Zheng Date: Wed, 3 Jan 2018 08:01:13 -0300 Message-Id: <20180103110126.29209-5-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103110126.29209-1-f4bug@amsat.org> References: <20180103110126.29209-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::244 Subject: [Qemu-devel] [PATCH v4 04/17] sdhci: refactor same sysbus/pci properties into a common one X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , Eduardo Habkost , Andrey Smirnov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Now both sysbus/pci classes inherit of the 'pending-insert-quirk' property, which is a HCI dependent property (regardless if accessed through a MMIO sysbus or a PCI bus). So far only the BCM implementation has to use it. Add sysbus/pci/sdbus comments to have clearer code blocks separation. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sdhci.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 365bc80009..a11469fbca 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -1266,13 +1266,17 @@ const VMStateDescription sdhci_vmstate =3D { =20 /* Capabilities registers provide information on supported features of this * specific host controller implementation */ -static Property sdhci_pci_properties[] =3D { +static Property sdhci_properties[] =3D { DEFINE_PROP_UINT32("capareg", SDHCIState, capareg, SDHC_CAPAB_REG_DEFAULT), DEFINE_PROP_UINT32("maxcurr", SDHCIState, maxcurr, 0), + DEFINE_PROP_BOOL("pending-insert-quirk", SDHCIState, pending_insert_qu= irk, + false), DEFINE_PROP_END_OF_LIST(), }; =20 +/* --- qdev PCI --- */ + static void sdhci_pci_realize(PCIDevice *dev, Error **errp) { SDHCIState *s =3D PCI_SDHCI(dev); @@ -1305,7 +1309,7 @@ static void sdhci_pci_class_init(ObjectClass *klass, = void *data) k->class_id =3D PCI_CLASS_SYSTEM_SDHCI; set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); dc->vmsd =3D &sdhci_vmstate; - dc->props =3D sdhci_pci_properties; + dc->props =3D sdhci_properties; dc->reset =3D sdhci_poweron_reset; } =20 @@ -1320,14 +1324,7 @@ static const TypeInfo sdhci_pci_info =3D { }, }; =20 -static Property sdhci_sysbus_properties[] =3D { - DEFINE_PROP_UINT32("capareg", SDHCIState, capareg, - SDHC_CAPAB_REG_DEFAULT), - DEFINE_PROP_UINT32("maxcurr", SDHCIState, maxcurr, 0), - DEFINE_PROP_BOOL("pending-insert-quirk", SDHCIState, pending_insert_qu= irk, - false), - DEFINE_PROP_END_OF_LIST(), -}; +/* --- qdev SysBus --- */ =20 static void sdhci_sysbus_init(Object *obj) { @@ -1360,7 +1357,7 @@ static void sdhci_sysbus_class_init(ObjectClass *klas= s, void *data) DeviceClass *dc =3D DEVICE_CLASS(klass); =20 dc->vmsd =3D &sdhci_vmstate; - dc->props =3D sdhci_sysbus_properties; + dc->props =3D sdhci_properties; dc->realize =3D sdhci_sysbus_realize; dc->reset =3D sdhci_poweron_reset; } @@ -1374,6 +1371,8 @@ static const TypeInfo sdhci_sysbus_info =3D { .class_init =3D sdhci_sysbus_class_init, }; =20 +/* --- qdev bus master --- */ + static void sdhci_bus_class_init(ObjectClass *klass, void *data) { SDBusClass *sbc =3D SD_BUS_CLASS(klass); --=20 2.15.1 From nobody Tue Oct 28 01:58:01 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 15149777167251010.4402085755946; Wed, 3 Jan 2018 03:08:36 -0800 (PST) Received: from localhost ([::1]:48693 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWguQ-0008Uh-0F for importer@patchew.org; Wed, 03 Jan 2018 06:08:34 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47753) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgnt-0002yp-V5 for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:01:50 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWgnt-0005oe-42 for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:01:50 -0500 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:36357) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWgnt-0005oV-0K for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:01:49 -0500 Received: by mail-qt0-x243.google.com with SMTP id a16so1644048qtj.3 for ; Wed, 03 Jan 2018 03:01:48 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id r55sm417735qta.57.2018.01.03.03.01.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 03:01:47 -0800 (PST) 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=x+mpWe3DxtF+GwUlftp0wKsrhirLrlHmg3JScEzdEps=; b=VWZ9CO6cERs6f04b1RTbSs5JYamdRMYovZk/OpJMWgPxcA7G/93rBeZPGdlqRmOB95 5gUM7vRf2+jPxaPuJU+aHBttZFavyin01FbxdYPuI9b06uqC/0yWg2cqmJnfiL8o49za 8qoKbfXUWr12+AcoYa3bjnBqZSz5Kjpf3xmUt6Dt1f7W1Ii0UNRYQPX4T2ODEw0uHHV+ ahpq7oWZwd2Sfq1zIgjgCAm/BpFi7Lyr0W125tlnLwQjZWAZz30GF0DFA1Zu+rMr/pit 4CmHCK3QTcO/8n7eMxMEij5zDl+sSBphjnuSX3DcYubCLJL07D7C3l/lXDkhjerze13F HC8g== 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=x+mpWe3DxtF+GwUlftp0wKsrhirLrlHmg3JScEzdEps=; b=cN5zVRLTinSSWiMZMttGrTgYrR7f+aqO2yrbbdKb9Hpq4PorKgOtPT+7RWkDCsOdrx EaqWHoeq57EI4BMEX3Z8O92dIHrDFPCcpj8tSc8wzi4Q4CfTj0TrITSoQEvd7cYvRaVS 2oTLChLGOy4mBUiocP1edtMebS+T0exN5O1UidahHsJzY4xkCLGscYJedMfodQPNJiig OJKR66A/+RAADdtkzTz/1LSypR2KK4HCUQ1OpGS3GLgKAOJupVWHDxZOX+OVKp5MC8Uj HyM3gYervkuGOIy5l1jsFHw3fkkuZhnUNsMZO/1dV6td5XcGFs20wcmZfzX7zT0pT5v/ SeBA== X-Gm-Message-State: AKGB3mJPlzA7ZiZiehiW3uYXq8MbtVkTY9ZXNOaLxf7/FCWmyL+ypsyK 4B7adrX/mpmD0DRKp+2sUAI= X-Google-Smtp-Source: ACJfBot0+D1Qoaoeq3bJV6nMWqXB8Jg2hkInfrFCvZRKheZL+Ts1/6S846od0Gx7VuHMXgDfYUiaVw== X-Received: by 10.200.47.105 with SMTP id k38mr1036171qta.195.1514977308416; Wed, 03 Jan 2018 03:01:48 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Fam Zheng Date: Wed, 3 Jan 2018 08:01:14 -0300 Message-Id: <20180103110126.29209-6-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103110126.29209-1-f4bug@amsat.org> References: <20180103110126.29209-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::243 Subject: [Qemu-devel] [PATCH v4 05/17] sdhci: refactor common sysbus/pci class_init() into sdhci_class_init() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , Eduardo Habkost , Andrey Smirnov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Now both inherited classes appear as DEVICE_CATEGORY_STORAGE. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sdhci.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index a11469fbca..38d82b4c61 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -1275,6 +1275,16 @@ static Property sdhci_properties[] =3D { DEFINE_PROP_END_OF_LIST(), }; =20 +static void sdhci_class_init(ObjectClass *klass, void *data) +{ + DeviceClass *dc =3D DEVICE_CLASS(klass); + + set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); + dc->vmsd =3D &sdhci_vmstate; + dc->props =3D sdhci_properties; + dc->reset =3D sdhci_poweron_reset; +} + /* --- qdev PCI --- */ =20 static void sdhci_pci_realize(PCIDevice *dev, Error **errp) @@ -1299,7 +1309,6 @@ static void sdhci_pci_exit(PCIDevice *dev) =20 static void sdhci_pci_class_init(ObjectClass *klass, void *data) { - DeviceClass *dc =3D DEVICE_CLASS(klass); PCIDeviceClass *k =3D PCI_DEVICE_CLASS(klass); =20 k->realize =3D sdhci_pci_realize; @@ -1307,10 +1316,8 @@ static void sdhci_pci_class_init(ObjectClass *klass,= void *data) k->vendor_id =3D PCI_VENDOR_ID_REDHAT; k->device_id =3D PCI_DEVICE_ID_REDHAT_SDHCI; k->class_id =3D PCI_CLASS_SYSTEM_SDHCI; - set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); - dc->vmsd =3D &sdhci_vmstate; - dc->props =3D sdhci_properties; - dc->reset =3D sdhci_poweron_reset; + + sdhci_class_init(klass, data); } =20 static const TypeInfo sdhci_pci_info =3D { @@ -1356,10 +1363,9 @@ static void sdhci_sysbus_class_init(ObjectClass *kla= ss, void *data) { DeviceClass *dc =3D DEVICE_CLASS(klass); =20 - dc->vmsd =3D &sdhci_vmstate; - dc->props =3D sdhci_properties; dc->realize =3D sdhci_sysbus_realize; - dc->reset =3D sdhci_poweron_reset; + + sdhci_class_init(klass, data); } =20 static const TypeInfo sdhci_sysbus_info =3D { --=20 2.15.1 From nobody Tue Oct 28 01:58:01 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1514977851385595.2262481774185; Wed, 3 Jan 2018 03:10:51 -0800 (PST) Received: from localhost ([::1]:48724 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgwc-0002Bi-GN for importer@patchew.org; Wed, 03 Jan 2018 06:10:50 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47822) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgo1-00037F-Px for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:01:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWgnw-0005qd-6V for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:01:57 -0500 Received: from mail-qt0-x244.google.com ([2607:f8b0:400d:c0d::244]:33012) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWgnw-0005qJ-1z for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:01:52 -0500 Received: by mail-qt0-x244.google.com with SMTP id e2so1650071qti.0 for ; Wed, 03 Jan 2018 03:01:51 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id r55sm417735qta.57.2018.01.03.03.01.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 03:01:50 -0800 (PST) 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=wYPkglkUxzxVLw9JGgoX9hEMwMwrPzJZLRywt992EIQ=; b=WvVJ5Y63g9JTcfsFrKfi4e3v0cumOZ0fwf1cLxV1nSsKVjXQHs1E2DcMk1zvv9tnTc seCyeiLVPLTMInqZiA4n2y3h7A3AzVvcTZhbRPttFEBNyAzuh54vba8W4Oo/elf1BJth SG5aJJwFyt4t0ajlrzzU5LqN8APHbToKxE4QZvg9T4EWkis+E8TM/g/mLjviAXvXT/1U ZXzDoxl5eT3X0J8dHcI10hodGovgNxHzVInoybwuj2VylcZqVbATzmJ2ExT5LubX/h0O J8LwJM4fGURmHnVHyk05aN8ViYs3qvW1YmJNNz/Enkn6x6xJ5adjDXzfaKLO2SuXFZ6p BMTQ== 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=wYPkglkUxzxVLw9JGgoX9hEMwMwrPzJZLRywt992EIQ=; b=LP/Us3oBWFTjiWkfZ77ciVlMRVUJMVtxmEhb5qJH+rPLbTIU5VYKLMCRhy2vQgzIEY xBcjMfcseU8M9hcDcxMe+r9hTU65N4zxIEi7ESliFz4I2OQU9TB7ANH2Udr12c4m0WIY gfEYoAJtQGeHPpB4sm/QQWob+adLcDFA1J6t0rzMGbX0voir5j1RSG6s9gBBKvV2JsJ0 rKMg0b0jsALx8xnGA4KO+VgaOF4ylY+yX6w9j9bCGuG8BYzi8E6vab/GKU7gfC6zuVuh l/0+TZ+JZmvAFE/dSXu2O6s7Uy0JtWz8EQbb8mz2EsvqziFjjixNnWhuPUVhzoRJE3xr Xr1w== X-Gm-Message-State: AKGB3mKItvFRs2GjM1fzxCNRsQ9USI/k9nOfiqN1bkn2hJagX03TA5mN c7NDdRmYDBAXasK3vR+yb60= X-Google-Smtp-Source: ACJfBovNTMA1t3OB1PmcWpgWd3yi2q0NVXjicgCacKKAxiGwoogKJVbvfR920ReM0U/GXiZYxrb8Xg== X-Received: by 10.200.45.93 with SMTP id o29mr1285570qta.22.1514977311473; Wed, 03 Jan 2018 03:01:51 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Fam Zheng Date: Wed, 3 Jan 2018 08:01:15 -0300 Message-Id: <20180103110126.29209-7-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103110126.29209-1-f4bug@amsat.org> References: <20180103110126.29209-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::244 Subject: [Qemu-devel] [PATCH v4 06/17] sdhci: refactor common sysbus/pci realize() into sdhci_realizefn() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , Eduardo Habkost , Andrey Smirnov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/sd/sdhci.c | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 38d82b4c61..d5c6d8ab0b 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -29,6 +29,7 @@ #include "sysemu/dma.h" #include "qemu/timer.h" #include "qemu/bitops.h" +#include "qapi/error.h" #include "hw/sd/sdhci.h" #include "sdhci-internal.h" #include "qemu/log.h" @@ -1194,6 +1195,15 @@ static void sdhci_initfn(SDHCIState *s) s->transfer_timer =3D timer_new_ns(QEMU_CLOCK_VIRTUAL, sdhci_data_tran= sfer, s); } =20 +static void sdhci_realizefn(SDHCIState *s, Error **errp) +{ + s->buf_maxsz =3D sdhci_get_fifolen(s); + s->fifo_buffer =3D g_malloc0(s->buf_maxsz); + + memory_region_init_io(&s->iomem, OBJECT(s), &sdhci_mmio_ops, s, "sdhci= ", + SDHC_REGISTERS_MAP_SIZE); +} + static void sdhci_uninitfn(SDHCIState *s) { timer_del(s->insert_timer); @@ -1290,14 +1300,18 @@ static void sdhci_class_init(ObjectClass *klass, vo= id *data) static void sdhci_pci_realize(PCIDevice *dev, Error **errp) { SDHCIState *s =3D PCI_SDHCI(dev); + Error *err_local =3D NULL; + + sdhci_initfn(s); + sdhci_realizefn(s, errp); + if (errp) { + error_propagate(errp, err_local); + return; + } + dev->config[PCI_CLASS_PROG] =3D 0x01; /* Standard Host supported DMA */ dev->config[PCI_INTERRUPT_PIN] =3D 0x01; /* interrupt pin A */ - sdhci_initfn(s); - s->buf_maxsz =3D sdhci_get_fifolen(s); - s->fifo_buffer =3D g_malloc0(s->buf_maxsz); s->irq =3D pci_allocate_irq(dev); - memory_region_init_io(&s->iomem, OBJECT(s), &sdhci_mmio_ops, s, "sdhci= ", - SDHC_REGISTERS_MAP_SIZE); pci_register_bar(dev, 0, 0, &s->iomem); } =20 @@ -1350,12 +1364,15 @@ static void sdhci_sysbus_realize(DeviceState *dev, = Error ** errp) { SDHCIState *s =3D SYSBUS_SDHCI(dev); SysBusDevice *sbd =3D SYS_BUS_DEVICE(dev); + Error *err_local =3D NULL; + + sdhci_realizefn(s, &err_local); + if (errp) { + error_propagate(errp, err_local); + return; + } =20 - s->buf_maxsz =3D sdhci_get_fifolen(s); - s->fifo_buffer =3D g_malloc0(s->buf_maxsz); sysbus_init_irq(sbd, &s->irq); - memory_region_init_io(&s->iomem, OBJECT(s), &sdhci_mmio_ops, s, "sdhci= ", - SDHC_REGISTERS_MAP_SIZE); sysbus_init_mmio(sbd, &s->iomem); } =20 --=20 2.15.1 From nobody Tue Oct 28 01:58:01 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 15149776964511013.37163338577; Wed, 3 Jan 2018 03:08:16 -0800 (PST) Received: from localhost ([::1]:48690 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgu7-0008Ee-JJ for importer@patchew.org; Wed, 03 Jan 2018 06:08:15 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47807) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgo0-00036c-Ad for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:01:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWgnz-0005sm-EO for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:01:56 -0500 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:39877) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWgnz-0005sE-B4 for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:01:55 -0500 Received: by mail-qt0-x241.google.com with SMTP id k19so1630924qtj.6 for ; Wed, 03 Jan 2018 03:01:55 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id r55sm417735qta.57.2018.01.03.03.01.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 03:01:53 -0800 (PST) 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=qLEuThj4XZSTmyQn2kuSHrI5fo75O9QKdnY/RkSq/hE=; b=YghN+aqNShlBL1KFqL2uDtReBu29q/83yZPmqQgSP/iVrEJDxs/wyLbrwhXMnVPqLL 8KGArjEmcMV8GnAv8fGqUeB/IeFbXU1VLnppwfmPfQSuWeS/3hyLiKz4U11oVr2bVPdG JnortzzOB3D177Gue58Uz850zdlgx+bsezvvUG7WMB50a3tf5JqeLb7AcocIXNMfRAbQ 5mBz3CI9bCClT7sYcgWAcYNYTicsgm/Y5HrnFNH3mPdTktrmWzEMrgR1u+ZYsfA+n4RG OtPkqlDm4BdBO7dBlF9BUaWcRaNe7wXP7mHYt3hKa+vXZd4vINn1t9SvoPkKp5BlrWhE rLfw== 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=qLEuThj4XZSTmyQn2kuSHrI5fo75O9QKdnY/RkSq/hE=; b=CShhv+I0KTs2hUGrAxgLNq/ptRL6PxZXPVuBSIponcbcXenzw63Sm/JwljSu3EqFOv YeMhSg21TPvmLiHC/HHg3uDOj4+VOGKgp4JbW/Ljj7jWT1y4bD6RPfVXPUZvWrdIKBag dUkaVtap/UxwQJzXJJbMFHJWojkT7+Ov7GLxNUXJFN356/deCvdgptGJgUhvXswGohps AC6wsMuA3D4g9T9lbPja8VcJRMRTWaWZHjstEW+qVVSay97zRyGkxYhEau1+mYjUIl86 t9KU7X08rxCwSmPOgZkp/dI804YXsVW0kpLK2BlWKsv7NHnChPfMQneZLBGtG+lM/91r 5e7Q== X-Gm-Message-State: AKGB3mJwAuIGQl00y0WXjl/Mc+5lN2YPwEu++pSe0Fxu+Vpm74rNAFVI x+in5DrOpsExlHaaESYOqJM= X-Google-Smtp-Source: ACJfBot8PA6MK5L0R3wHpLHfFRs8iXdt4c71v/dLxcNQ93POV+lohOCWbGNiztN0rZmo+XwERgiLVw== X-Received: by 10.200.0.141 with SMTP id c13mr1192492qtg.96.1514977314757; Wed, 03 Jan 2018 03:01:54 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Fam Zheng Date: Wed, 3 Jan 2018 08:01:16 -0300 Message-Id: <20180103110126.29209-8-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103110126.29209-1-f4bug@amsat.org> References: <20180103110126.29209-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::241 Subject: [Qemu-devel] [PATCH v4 07/17] sdhci: refactor common sysbus/pci unrealize() into sdhci_unrealizefn() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , Eduardo Habkost , Andrey Smirnov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sdhci.c | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index d5c6d8ab0b..967521d347 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -32,6 +32,7 @@ #include "qapi/error.h" #include "hw/sd/sdhci.h" #include "sdhci-internal.h" +#include "qapi/error.h" #include "qemu/log.h" =20 /* host controller debug messages */ @@ -1204,15 +1205,23 @@ static void sdhci_realizefn(SDHCIState *s, Error **= errp) SDHC_REGISTERS_MAP_SIZE); } =20 +static void sdhci_unrealizefn(SDHCIState *s, Error **errp) +{ + g_free(s->fifo_buffer); + /* This function is expected to be called only once for each class: + * - SysBus: via DeviceClass->unrealize(), + * - PCI: via PCIDeviceClass->exit(). + * However to avoid double-free and/or use-after-free we still nullify + * this variable (better safe than sorry!). */ + s->fifo_buffer =3D NULL; +} + static void sdhci_uninitfn(SDHCIState *s) { timer_del(s->insert_timer); timer_free(s->insert_timer); timer_del(s->transfer_timer); timer_free(s->transfer_timer); - - g_free(s->fifo_buffer); - s->fifo_buffer =3D NULL; } =20 static bool sdhci_pending_insert_vmstate_needed(void *opaque) @@ -1318,6 +1327,8 @@ static void sdhci_pci_realize(PCIDevice *dev, Error *= *errp) static void sdhci_pci_exit(PCIDevice *dev) { SDHCIState *s =3D PCI_SDHCI(dev); + + sdhci_unrealizefn(s, &error_abort); sdhci_uninitfn(s); } =20 @@ -1376,11 +1387,19 @@ static void sdhci_sysbus_realize(DeviceState *dev, = Error ** errp) sysbus_init_mmio(sbd, &s->iomem); } =20 +static void sdhci_sysbus_unrealize(DeviceState *dev, Error **errp) +{ + SDHCIState *s =3D SYSBUS_SDHCI(dev); + + sdhci_unrealizefn(s, &error_abort); +} + static void sdhci_sysbus_class_init(ObjectClass *klass, void *data) { DeviceClass *dc =3D DEVICE_CLASS(klass); =20 dc->realize =3D sdhci_sysbus_realize; + dc->unrealize =3D sdhci_sysbus_unrealize; =20 sdhci_class_init(klass, data); } --=20 2.15.1 From nobody Tue Oct 28 01:58:01 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 151497783343572.85851190566655; Wed, 3 Jan 2018 03:10:33 -0800 (PST) Received: from localhost ([::1]:48716 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgwK-0001uj-D7 for importer@patchew.org; Wed, 03 Jan 2018 06:10:32 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47840) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgo3-00037G-CW for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWgo2-0005uK-9A for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:01:59 -0500 Received: from mail-qk0-x242.google.com ([2607:f8b0:400d:c09::242]:34146) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWgo2-0005uE-5g for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:01:58 -0500 Received: by mail-qk0-x242.google.com with SMTP id g81so1054611qke.1 for ; Wed, 03 Jan 2018 03:01:58 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id r55sm417735qta.57.2018.01.03.03.01.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 03:01:56 -0800 (PST) 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=tfWgIkN1rvofGqXGcJTOnGhXJ9FROQk+JnwGwJsM44c=; b=hUQ37187Pg2nDfNwXhZHIaemggjjYVWQ1xPWKByiBqHR89upRxaDZu+YrC87XJJy9p cIcF10IM7C0U1e1DlKwlahARlRbfj2nPkLEHgXFkzNZLwvnUAIsDm/FV3SBoAxPIU1fR ZRf7SF594k718iR2ESlMhrcNr8MyXUrRj0SXIHX8mOBXDRFXTcZji8GsN+R3khon/4k7 LmRYgUsa3zvdnLjN3LPoA9ik2vewENFmzKAgE/aMkW+iU3b2EhwW4IbuKoykDxZlMyRh X6x6rNtpT/btXc/mZsZ9oQs8+Y/iE4QNfdAzWiwy4rkN/r3hEzx5j1WabxoK8oKizFBz jL4Q== 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=tfWgIkN1rvofGqXGcJTOnGhXJ9FROQk+JnwGwJsM44c=; b=h8KN5xQnQ0O7Wfj6yASbAr1Ib3SZmaZzKzFVv21DThn6o/4d8DEngJGBeZ3gwnctOp 4eA8aYojBoKEaUnhWWtEWS2VD7ex63usurb29QOW9YXYVzpTONqwvhA+Dl5dbIDR8UkA X4b76JpvP4Tg965dDYsEy/tkGF5MeyIuuRIDbsjp+bPMbxB7qRWiMdRIiu0CG7+4k0wz 6NLG5meWpDuZTDd2gtw/mpe3FgMrxeVLxCSHWTTf5ka0PD9P9/vqu5Qa/hrko+gLKptn 0BZIkKZGKFs2Y17U5eOErzUrBQ1vQFvFNtP+UOsroq9sZAJPLd+lC6WQwxj0Dblz7UX2 KRcg== X-Gm-Message-State: AKGB3mJPR7mPAzSWYgg1ncDwklUePwcgcN8t5VGoy/xrX2iLUEPLmNZJ vs2AdzuH0Kzpm1GJ3L/FPko= X-Google-Smtp-Source: ACJfBovB5kSzPI2SbWwTH5XdBJytm3RFUVMAhjdB0XXn5fai4KUczdtl5PJi4mNvCNrv0oiTkaibEg== X-Received: by 10.55.122.71 with SMTP id v68mr1155045qkc.260.1514977317646; Wed, 03 Jan 2018 03:01:57 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis Date: Wed, 3 Jan 2018 08:01:17 -0300 Message-Id: <20180103110126.29209-9-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103110126.29209-1-f4bug@amsat.org> References: <20180103110126.29209-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::242 Subject: [Qemu-devel] [PATCH v4 08/17] sdhci: use qemu_log_mask(UNIMP) instead of fprintf() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , Fam Zheng , Eduardo Habkost , Andrey Smirnov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/sd/sdhci.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 967521d347..59078bb9f5 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -947,7 +947,8 @@ static uint64_t sdhci_read(void *opaque, hwaddr offset,= unsigned size) ret =3D (SD_HOST_SPECv2_VERS << 16) | sdhci_slotint(s); break; default: - ERRPRINT("bad %ub read: addr[0x%04x]\n", size, (int)offset); + qemu_log_mask(LOG_UNIMP, "SDHC rd_%ub @0x%02" HWADDR_PRIx " " + "not implemented\n", size, offset); break; } =20 @@ -1153,8 +1154,8 @@ sdhci_write(void *opaque, hwaddr offset, uint64_t val= , unsigned size) sdhci_update_irq(s); break; default: - ERRPRINT("bad %ub write offset: addr[0x%04x] <- %u(0x%x)\n", - size, (int)offset, value >> shift, value >> shift); + qemu_log_mask(LOG_UNIMP, "SDHC wr_%ub @0x%02" HWADDR_PRIx " <- 0x%= 08x " + "not implemented\n", size, offset, value >> shift); break; } DPRINT_L2("write %ub: addr[0x%04x] <- %u(0x%x)\n", --=20 2.15.1 From nobody Tue Oct 28 01:58:01 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1514978000174169.1430002248095; Wed, 3 Jan 2018 03:13:20 -0800 (PST) Received: from localhost ([::1]:48751 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgys-0004AQ-CE for importer@patchew.org; Wed, 03 Jan 2018 06:13:10 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47890) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgo8-0003CB-QP for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWgo5-0005wY-HR for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:04 -0500 Received: from mail-qk0-x244.google.com ([2607:f8b0:400d:c09::244]:34148) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWgo5-0005wI-Ay for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:01 -0500 Received: by mail-qk0-x244.google.com with SMTP id g81so1054741qke.1 for ; Wed, 03 Jan 2018 03:02:01 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id r55sm417735qta.57.2018.01.03.03.01.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 03:02:00 -0800 (PST) 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=VJP/ZOnpvA9oTs1Czhnc1qgtBRP523sJ7CI9UxFdLjQ=; b=E6+3uSrzkxcTnBhBvVVoqBYUnFKpW3FKIf72q6tQIhKD6bEtrlJM9LxSxRV17WizjW xwU5fFg1konkGYixHiJcWIAO85Ve6f8W2sEgicP/xC+bAZlLIk7b5FxWhwM2w+51ZzNy 7SYWKQXignO8/yVz3DTWPtf5oFqzt5LAWXQkKQR8m9nvSwlBorO/eXL/K3MZ2aCfYcSO RRLAAtQZoxu5o/KsSkZaZsFwP/vzcGthPFTrxmJLjiMq5r/nTafyn3a671ux67Q2zhtG iWw1VkmHJAFmA7V3GZ/NIxjhas0zXcWz+i+NBwIBsqDd2OipptC4hMcrHyb6c9+tAK0S KBNA== 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=VJP/ZOnpvA9oTs1Czhnc1qgtBRP523sJ7CI9UxFdLjQ=; b=d0usZuOkYlFvsSJ5f3vK/FdvyualTtT4gaF+AyT7KYm0D33ncT12MY4g/OHVdwXuD8 F7MGJdWvyCTbGG3Isr3/bDE0isPDkI99VtXzlmNsSq6s5zeuPckI8ql8+uDBztRukaCM vjhRjDXrRCiHfm8hNHdhY3MmMBOWfOUc82BDmRHvsGLrtckET6HA34jQ6c6WnGRgEE/n 8Qa1Lpy2oPtSwIZy7h1sAUhe6z5Sh9YsB970OHJ2/3FTL9rPYUwcms2wDAmUlQXELt/2 IHaJX1xryTZwFv+Ne0bT99B2hZQjfNITrZ9cCf8ClMBeBqJn+OblcYPRw+CTIQvLbgRo 4TbQ== X-Gm-Message-State: AKGB3mLl6hkUe/1HmEcGJ7OKV8HE+47RLr6iQ80Mf6O/4UyTmAmvnxOg 8rnsFYepyftMDYObU7epQR2NqqnG X-Google-Smtp-Source: ACJfBotOMdE+aOcyrMsM0F137CvZTYINSfZecLu2KjcfvZwbs4Z1CnGys9etVr82G7pDo6bu2FAHnw== X-Received: by 10.55.131.196 with SMTP id f187mr1061860qkd.222.1514977320630; Wed, 03 Jan 2018 03:02:00 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis Date: Wed, 3 Jan 2018 08:01:18 -0300 Message-Id: <20180103110126.29209-10-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103110126.29209-1-f4bug@amsat.org> References: <20180103110126.29209-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::244 Subject: [Qemu-devel] [PATCH v4 09/17] sdhci: convert the DPRINT() calls into trace events X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , Fam Zheng , Eduardo Habkost , Andrey Smirnov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 zero-initialize ADMADescr 'dscr' in sdhci_do_adma() to avoid: hw/sd/sdhci.c: In function =E2=80=98sdhci_do_adma=E2=80=99: hw/sd/sdhci.c:714:29: error: =E2=80=98dscr.addr=E2=80=99 may be used unin= itialized in this function [-Werror=3Dmaybe-uninitialized] trace_sdhci_adma("link", s->admasysaddr); ^ Signed-off-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Alistair Francis --- hw/sd/sdhci.c | 89 ++++++++++++++++++--------------------------------= ---- hw/sd/trace-events | 14 +++++++++ 2 files changed, 44 insertions(+), 59 deletions(-) diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 59078bb9f5..26a98d999a 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -34,30 +34,7 @@ #include "sdhci-internal.h" #include "qapi/error.h" #include "qemu/log.h" - -/* host controller debug messages */ -#ifndef SDHC_DEBUG -#define SDHC_DEBUG 0 -#endif - -#define DPRINT_L1(fmt, args...) \ - do { \ - if (SDHC_DEBUG) { \ - fprintf(stderr, "QEMU SDHC: " fmt, ## args); \ - } \ - } while (0) -#define DPRINT_L2(fmt, args...) \ - do { \ - if (SDHC_DEBUG > 1) { \ - fprintf(stderr, "QEMU SDHC: " fmt, ## args); \ - } \ - } while (0) -#define ERRPRINT(fmt, args...) \ - do { \ - if (SDHC_DEBUG) { \ - fprintf(stderr, "QEMU SDHC ERROR: " fmt, ## args); \ - } \ - } while (0) +#include "trace.h" =20 #define TYPE_SDHCI_BUS "sdhci-bus" #define SDHCI_BUS(obj) OBJECT_CHECK(SDBus, (obj), TYPE_SDHCI_BUS) @@ -156,8 +133,8 @@ static void sdhci_raise_insertion_irq(void *opaque) static void sdhci_set_inserted(DeviceState *dev, bool level) { SDHCIState *s =3D (SDHCIState *)dev; - DPRINT_L1("Card state changed: %s!\n", level ? "insert" : "eject"); =20 + trace_sdhci_set_inserted(level ? "insert" : "eject"); if ((s->norintsts & SDHC_NIS_REMOVE) && level) { /* Give target some time to notice card ejection */ timer_mod(s->insert_timer, @@ -239,7 +216,8 @@ static void sdhci_send_command(SDHCIState *s) s->acmd12errsts =3D 0; request.cmd =3D s->cmdreg >> 8; request.arg =3D s->argument; - DPRINT_L1("sending CMD%u ARG[0x%08x]\n", request.cmd, request.arg); + + trace_sdhci_send_command(request.cmd, request.arg); rlen =3D sdbus_do_command(&s->sdbus, &request, response); =20 if (s->cmdreg & SDHC_CMD_RESPONSE) { @@ -247,7 +225,7 @@ static void sdhci_send_command(SDHCIState *s) s->rspreg[0] =3D (response[0] << 24) | (response[1] << 16) | (response[2] << 8) | response[3]; s->rspreg[1] =3D s->rspreg[2] =3D s->rspreg[3] =3D 0; - DPRINT_L1("Response: RSPREG[31..0]=3D0x%08x\n", s->rspreg[0]); + trace_sdhci_response4(s->rspreg[0]); } else if (rlen =3D=3D 16) { s->rspreg[0] =3D (response[11] << 24) | (response[12] << 16) | (response[13] << 8) | response[14]; @@ -257,11 +235,10 @@ static void sdhci_send_command(SDHCIState *s) (response[5] << 8) | response[6]; s->rspreg[3] =3D (response[0] << 16) | (response[1] << 8) | response[2]; - DPRINT_L1("Response received:\n RSPREG[127..96]=3D0x%08x, RSPR= EG[95.." - "64]=3D0x%08x,\n RSPREG[63..32]=3D0x%08x, RSPREG[31..0]= =3D0x%08x\n", - s->rspreg[3], s->rspreg[2], s->rspreg[1], s->rspreg[0]); + trace_sdhci_response16(s->rspreg[3], s->rspreg[2], + s->rspreg[1], s->rspreg[0]); } else { - ERRPRINT("Timeout waiting for command response\n"); + trace_sdhci_error("timeout waiting for command response"); if (s->errintstsen & SDHC_EISEN_CMDTIMEOUT) { s->errintsts |=3D SDHC_EIS_CMDTIMEOUT; s->norintsts |=3D SDHC_NIS_ERR; @@ -295,7 +272,7 @@ static void sdhci_end_transfer(SDHCIState *s) =20 request.cmd =3D 0x0C; request.arg =3D 0; - DPRINT_L1("Automatically issue CMD%d %08x\n", request.cmd, request= .arg); + trace_sdhci_end_transfer(request.cmd, request.arg); sdbus_do_command(&s->sdbus, &request, response); /* Auto CMD12 response goes to the upper Response register */ s->rspreg[3] =3D (response[0] << 24) | (response[1] << 16) | @@ -364,7 +341,7 @@ static uint32_t sdhci_read_dataport(SDHCIState *s, unsi= gned size) =20 /* first check that a valid data exists in host controller input buffe= r */ if ((s->prnsts & SDHC_DATA_AVAILABLE) =3D=3D 0) { - ERRPRINT("Trying to read from empty buffer\n"); + trace_sdhci_error("read from empty buffer"); return 0; } =20 @@ -373,8 +350,7 @@ static uint32_t sdhci_read_dataport(SDHCIState *s, unsi= gned size) s->data_count++; /* check if we've read all valid data (blksize bytes) from buffer = */ if ((s->data_count) >=3D (s->blksize & 0x0fff)) { - DPRINT_L2("All %u bytes of data have been read from input buff= er\n", - s->data_count); + 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] */ =20 @@ -457,7 +433,7 @@ static void sdhci_write_dataport(SDHCIState *s, uint32_= t value, unsigned size) =20 /* Check that there is free space left in a buffer */ if (!(s->prnsts & SDHC_SPACE_AVAILABLE)) { - ERRPRINT("Can't write to data buffer: buffer full\n"); + trace_sdhci_error("Can't write to data buffer: buffer full"); return; } =20 @@ -466,8 +442,7 @@ static void sdhci_write_dataport(SDHCIState *s, uint32_= t value, unsigned size) s->data_count++; value >>=3D 8; if (s->data_count >=3D (s->blksize & 0x0fff)) { - DPRINT_L2("write buffer filled with %u bytes of data\n", - s->data_count); + trace_sdhci_write_dataport(s->data_count); s->data_count =3D 0; s->prnsts &=3D ~SDHC_SPACE_AVAILABLE; if (s->prnsts & SDHC_DOING_WRITE) { @@ -655,15 +630,14 @@ static void sdhci_do_adma(SDHCIState *s) { unsigned int n, begin, length; const uint16_t block_size =3D s->blksize & 0x0fff; - ADMADescr dscr; + ADMADescr dscr =3D {}; int i; =20 for (i =3D 0; i < SDHC_ADMA_DESCS_PER_DELAY; ++i) { s->admaerr &=3D ~SDHC_ADMAERR_LENGTH_MISMATCH; =20 get_adma_description(s, &dscr); - DPRINT_L2("ADMA loop: addr=3D" TARGET_FMT_plx ", len=3D%d, attr=3D= %x\n", - dscr.addr, dscr.length, dscr.attr); + trace_sdhci_adma_loop(dscr.addr, dscr.length, dscr.attr); =20 if ((dscr.attr & SDHC_ADMA_ATTR_VALID) =3D=3D 0) { /* Indicate that error occurred in ST_FDS state */ @@ -746,8 +720,7 @@ static void sdhci_do_adma(SDHCIState *s) break; case SDHC_ADMA_ATTR_ACT_LINK: /* link to next descriptor table */ s->admasysaddr =3D dscr.addr; - DPRINT_L1("ADMA link: admasysaddr=3D0x%" PRIx64 "\n", - s->admasysaddr); + trace_sdhci_adma("link", s->admasysaddr); break; default: s->admasysaddr +=3D dscr.incr; @@ -755,8 +728,7 @@ static void sdhci_do_adma(SDHCIState *s) } =20 if (dscr.attr & SDHC_ADMA_ATTR_INT) { - DPRINT_L1("ADMA interrupt: admasysaddr=3D0x%" PRIx64 "\n", - s->admasysaddr); + trace_sdhci_adma("interrupt", s->admasysaddr); if (s->norintstsen & SDHC_NISEN_DMA) { s->norintsts |=3D SDHC_NIS_DMA; } @@ -767,15 +739,15 @@ static void sdhci_do_adma(SDHCIState *s) /* ADMA transfer terminates if blkcnt =3D=3D 0 or by END attribute= */ if (((s->trnmod & SDHC_TRNS_BLK_CNT_EN) && (s->blkcnt =3D=3D 0)) || (dscr.attr & SDHC_ADMA_ATTR_E= ND)) { - DPRINT_L2("ADMA transfer completed\n"); + trace_sdhci_adma_transfer_completed(); if (length || ((dscr.attr & SDHC_ADMA_ATTR_END) && (s->trnmod & SDHC_TRNS_BLK_CNT_EN) && s->blkcnt !=3D 0)) { - ERRPRINT("SD/MMC host ADMA length mismatch\n"); + trace_sdhci_error("SD/MMC host ADMA length mismatch"); s->admaerr |=3D SDHC_ADMAERR_LENGTH_MISMATCH | SDHC_ADMAERR_STATE_ST_TFR; if (s->errintstsen & SDHC_EISEN_ADMAERR) { - ERRPRINT("Set ADMA error flag\n"); + trace_sdhci_error("Set ADMA error flag"); s->errintsts |=3D SDHC_EIS_ADMAERR; s->norintsts |=3D SDHC_NIS_ERR; } @@ -811,7 +783,7 @@ static void sdhci_data_transfer(void *opaque) break; case SDHC_CTRL_ADMA1_32: if (!(s->capareg & SDHC_CAN_DO_ADMA1)) { - ERRPRINT("ADMA1 not supported\n"); + trace_sdhci_error("ADMA1 not supported"); break; } =20 @@ -819,7 +791,7 @@ static void sdhci_data_transfer(void *opaque) break; case SDHC_CTRL_ADMA2_32: if (!(s->capareg & SDHC_CAN_DO_ADMA2)) { - ERRPRINT("ADMA2 not supported\n"); + trace_sdhci_error("ADMA2 not supported"); break; } =20 @@ -828,14 +800,14 @@ static void sdhci_data_transfer(void *opaque) case SDHC_CTRL_ADMA2_64: if (!(s->capareg & SDHC_CAN_DO_ADMA2) || !(s->capareg & SDHC_64_BIT_BUS_SUPPORT)) { - ERRPRINT("64 bit ADMA not supported\n"); + trace_sdhci_error("64 bit ADMA not supported"); break; } =20 sdhci_do_adma(s); break; default: - ERRPRINT("Unsupported DMA type\n"); + trace_sdhci_error("Unsupported DMA type"); break; } } else { @@ -870,8 +842,8 @@ static inline bool sdhci_buff_access_is_sequential(SDHCIState *s, unsigned byte_num) { if ((s->data_count & 0x3) !=3D byte_num) { - ERRPRINT("Non-sequential access to Buffer Data Port register" - "is prohibited\n"); + trace_sdhci_error("Non-sequential access to Buffer Data Port regis= ter" + "is prohibited\n"); return false; } return true; @@ -901,8 +873,7 @@ static uint64_t sdhci_read(void *opaque, hwaddr offset,= unsigned size) case SDHC_BDATA: if (sdhci_buff_access_is_sequential(s, offset - SDHC_BDATA)) { ret =3D sdhci_read_dataport(s, size); - DPRINT_L2("read %ub: addr[0x%04x] -> %u(0x%x)\n", size, (int)o= ffset, - ret, ret); + trace_sdhci_access("read", size, offset, "->", ret, ret); return ret; } break; @@ -954,7 +925,7 @@ static uint64_t sdhci_read(void *opaque, hwaddr offset,= unsigned size) =20 ret >>=3D (offset & 0x3) * 8; ret &=3D (1ULL << (size * 8)) - 1; - DPRINT_L2("read %ub: addr[0x%04x] -> %u(0x%x)\n", size, (int)offset, r= et, ret); + trace_sdhci_access("read", size, offset, "->", ret, ret); return ret; } =20 @@ -1158,8 +1129,8 @@ sdhci_write(void *opaque, hwaddr offset, uint64_t val= , unsigned size) "not implemented\n", size, offset, value >> shift); break; } - DPRINT_L2("write %ub: addr[0x%04x] <- %u(0x%x)\n", - size, (int)offset, value >> shift, value >> shift); + trace_sdhci_access("write", size, offset, "<-", + value >> shift, value >> shift); } =20 static const MemoryRegionOps sdhci_mmio_ops =3D { diff --git a/hw/sd/trace-events b/hw/sd/trace-events index 1fc0bcf44b..e4e26c6d73 100644 --- a/hw/sd/trace-events +++ b/hw/sd/trace-events @@ -1,5 +1,19 @@ # See docs/devel/tracing.txt for syntax documentation. =20 +# hw/sd/sdhci.c +sdhci_set_inserted(const char *level) "card state changed: %s" +sdhci_send_command(uint8_t cmd, uint32_t arg) "sending CMD%02u ARG[0x%08x]" +sdhci_error(const char *msg) "%s" +sdhci_response4(uint32_t r0) "Response: RSPREG[31..0]=3D0x%08x" +sdhci_response16(uint32_t r3, uint32_t r2, uint32_t r1, uint32_t r0) "Resp= onse received: RSPREG[127..96]=3D0x%08x, RSPREG[95..64]=3D0x%08x, RSPREG[63= ..32]=3D0x%08x, RSPREG[31..0]=3D0x%08x" +sdhci_end_transfer(uint8_t cmd, uint32_t arg) "Automatically issue CMD%02u= 0x%08x" +sdhci_adma(const char *desc, uint32_t sysad) "ADMA %s: admasysaddr=3D0x%" = PRIx32 +sdhci_adma_loop(uint64_t addr, uint16_t length, uint8_t attr) "ADMA loop: = addr=3D0x%08" PRIx64 ", len=3D%d, attr=3D0x%x" +sdhci_adma_transfer_completed(void) "ADMA transfer completed" +sdhci_access(const char *access, unsigned int size, uint64_t offset, const= char *dir, uint64_t val, uint64_t val2) "%s %ub: addr[0x%04" PRIx64 "] %s = %" PRIu64 "(0x%" PRIx64 ")" +sdhci_read_dataport(uint16_t data_count) "all %u bytes of data have been r= ead from input buffer" +sdhci_write_dataport(uint16_t data_count) "write buffer filled with %u byt= es of data" + # hw/sd/milkymist-memcard.c milkymist_memcard_memory_read(uint32_t addr, uint32_t value) "addr 0x%08x = value 0x%08x" milkymist_memcard_memory_write(uint32_t addr, uint32_t value) "addr 0x%08x= value 0x%08x" --=20 2.15.1 From nobody Tue Oct 28 01:58:01 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 151497810597428.791826146309973; Wed, 3 Jan 2018 03:15:05 -0800 (PST) Received: from localhost ([::1]:48898 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWh0f-0006UK-3a for importer@patchew.org; Wed, 03 Jan 2018 06:15:01 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47931) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgoC-0003Ev-4b for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWgo8-0005y3-9b for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:08 -0500 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:43207) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWgo8-0005xp-5j for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:04 -0500 Received: by mail-qk0-x241.google.com with SMTP id j137so1056931qke.10 for ; Wed, 03 Jan 2018 03:02:04 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id r55sm417735qta.57.2018.01.03.03.02.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 03:02:02 -0800 (PST) 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=qLuq2CqbLvXWWl3N9xY57PS5Bt98zFqXH8EUrJZYHDw=; b=GesDfQH8Y6AjHB9TsWxWVImiJ7YxNUNX3Og/aoTyfEjgllK8V8ZNxxDjaSPlBgDqQG RVKvrn4l5GozpSyVmal1RZgDwJOdH8oVNgcXDczCbf8aW1yDAtnDPjMn/qWzETkyEL02 4b3iDYpj51ZLc1LHFcA+nELwbdTjm+Am+nA3EzkE91Z3X7AOeCTW6Yg3Zk6g92C3QkeC x4JU7cL+JwqKSnyVHHqJneqCbrWIIdqmAFPxh/QV9cKgUeSjP4JaxQtfXt1n+OJEdmp2 5WpEmDbwOPaeKBGJwt0WTo+YfDi67wRWlUwcbwWtiLFugldGC2Es+rvCS7zixJ7+rV6q herA== 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=qLuq2CqbLvXWWl3N9xY57PS5Bt98zFqXH8EUrJZYHDw=; b=iW9RpEeNuPyVd9lovDfgxYEDd7PnfSpYVhgt32nRIXfkUfwcGHu99slzG1RG79nszE mDXkX55PaUZrblAKQJFvCLSGZg1+JonSDixxuXcsNykbChGwEr7Ey6sZGsELPj6Uk5+i Pix5+9xHhsVaPOWaOlaUhb9G2E8BDRtmVMsSJLwjSWipf8mbJ7dUc1pIAYLcKyWD0Q4d FXUgwLc2ZNLtiHhtCicndrZORaTJJ8MMnsZVjdkPUroVYCeFRsQ72AiaiRT7YzngI1/Z I24V00dUkU0ake7CT0AF9viWFZJgSDm1mfY5GZMTTawBObVvrwHbq13gGZDZPa02YMFW vUbw== X-Gm-Message-State: AKGB3mJGMwYoHBcKYi2UZmaghR9/fl0kYyGKY0ayK7OndRfoDHEk4RQK cZiASVFHfrhqCAqxbDWF8vo= X-Google-Smtp-Source: ACJfBou92+WoAuuVR76Ou7wQoGZebaxUGJmKGxfOh8C++tzb0Se/zdkJbbQzJ3myt2VBFF0JyHI7DA== X-Received: by 10.233.235.139 with SMTP id b133mr1130097qkg.318.1514977323544; Wed, 03 Jan 2018 03:02:03 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis Date: Wed, 3 Jan 2018 08:01:19 -0300 Message-Id: <20180103110126.29209-11-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103110126.29209-1-f4bug@amsat.org> References: <20180103110126.29209-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::241 Subject: [Qemu-devel] [PATCH v4 10/17] sdhci: add a GPIO for the 'access control' LED X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , Fam Zheng , Eduardo Habkost , Andrey Smirnov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 It blinks to caution the user not to remove the card while the SD card is being accessed. So far it only emits a trace event. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Alistair Francis --- include/hw/sd/sdhci.h | 2 ++ hw/sd/sdhci.c | 14 ++++++++++++++ hw/sd/trace-events | 1 + 3 files changed, 17 insertions(+) diff --git a/include/hw/sd/sdhci.h b/include/hw/sd/sdhci.h index a6fe064f51..da943a6562 100644 --- a/include/hw/sd/sdhci.h +++ b/include/hw/sd/sdhci.h @@ -45,6 +45,8 @@ typedef struct SDHCIState { QEMUTimer *insert_timer; /* timer for 'changing' sd card. */ QEMUTimer *transfer_timer; qemu_irq irq; + qemu_irq access_led; + int access_led_level; =20 /* Registers cleared on reset */ /* 0x00 */ diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 26a98d999a..3f550bc7df 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -204,6 +204,16 @@ static void sdhci_poweron_reset(DeviceState *dev) } } =20 +static void sdhci_led_handler(void *opaque, int line, int level) +{ + SDHCIState *s =3D (SDHCIState *)opaque; + + if (s->access_led_level !=3D level) { + trace_sdhci_led(level); + s->access_led_level =3D level; + } +} + static void sdhci_data_transfer(void *opaque); =20 static void sdhci_send_command(SDHCIState *s) @@ -1052,6 +1062,7 @@ sdhci_write(void *opaque, hwaddr offset, uint64_t val= , unsigned size) !(s->capareg & (1 << (31 - ((s->pwrcon >> 1) & 0x7))))) { s->pwrcon &=3D ~SDHC_POWER_ON; } + qemu_set_irq(s->access_led, s->hostctl & 1); break; case SDHC_CLKCON: if (!(mask & 0xFF000000)) { @@ -1164,6 +1175,7 @@ static void sdhci_initfn(SDHCIState *s) qbus_create_inplace(&s->sdbus, sizeof(s->sdbus), TYPE_SDHCI_BUS, DEVICE(s), "sd-bus"); =20 + s->access_led =3D qemu_allocate_irq(sdhci_led_handler, s, 0); s->insert_timer =3D timer_new_ns(QEMU_CLOCK_VIRTUAL, sdhci_raise_inser= tion_irq, s); s->transfer_timer =3D timer_new_ns(QEMU_CLOCK_VIRTUAL, sdhci_data_tran= sfer, s); } @@ -1194,6 +1206,8 @@ static void sdhci_uninitfn(SDHCIState *s) timer_free(s->insert_timer); timer_del(s->transfer_timer); timer_free(s->transfer_timer); + + qemu_free_irq(s->access_led); } =20 static bool sdhci_pending_insert_vmstate_needed(void *opaque) diff --git a/hw/sd/trace-events b/hw/sd/trace-events index e4e26c6d73..f821db2046 100644 --- a/hw/sd/trace-events +++ b/hw/sd/trace-events @@ -13,6 +13,7 @@ sdhci_adma_transfer_completed(void) "ADMA transfer comple= ted" sdhci_access(const char *access, unsigned int size, uint64_t offset, const= char *dir, uint64_t val, uint64_t val2) "%s %ub: addr[0x%04" PRIx64 "] %s = %" PRIu64 "(0x%" PRIx64 ")" sdhci_read_dataport(uint16_t data_count) "all %u bytes of data have been r= ead from input buffer" sdhci_write_dataport(uint16_t data_count) "write buffer filled with %u byt= es of data" +sdhci_led(bool state) "LED: %u" =20 # hw/sd/milkymist-memcard.c milkymist_memcard_memory_read(uint32_t addr, uint32_t value) "addr 0x%08x = value 0x%08x" --=20 2.15.1 From nobody Tue Oct 28 01:58:01 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 151497757439795.17609450889961; Wed, 3 Jan 2018 03:06:14 -0800 (PST) Received: from localhost ([::1]:48672 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgs9-0006OU-JX for importer@patchew.org; Wed, 03 Jan 2018 06:06:13 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47928) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgoB-0003Ek-TR for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWgoB-0005zi-1D for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:07 -0500 Received: from mail-qk0-x244.google.com ([2607:f8b0:400d:c09::244]:35451) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWgoA-0005zW-T0 for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:06 -0500 Received: by mail-qk0-x244.google.com with SMTP id 143so1051164qki.2 for ; Wed, 03 Jan 2018 03:02:06 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id r55sm417735qta.57.2018.01.03.03.02.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 03:02:05 -0800 (PST) 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=mqTvBIv/BF2MlhZVuD6wrvYQYI7IiOK45tjB3BZUSnM=; b=FxWWaQl7/zEbYYMuTvOjtcgdnxMLTPlvft+QrcRc6ggDuzT2GkRGAsjvgxllwaccLe zAGuan+RQPXC2buhb1NtGHX675WaxtbEN9yyzM2GAVEQ/7Pt1H1Wqe5bubML+5pBkfLE DgmKWtli2ojZZb4E2xMeuSK5ITRaOZSZxtEDIxP4R12t96ItbW0Q9S89BMcihYoiVWxH AnGzoyO5bvrRuRaNo6j0fo76isZ4nnpIFgRgp90tjycK2eh54gkSlT49LgdS0s779h+8 aP3fY/i8LXfSL8+vHUnq9pa8riE0sQGCwqXYEMHsaXQQCWeVWlQViaavHnGhXod0ASAu PffA== 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=mqTvBIv/BF2MlhZVuD6wrvYQYI7IiOK45tjB3BZUSnM=; b=ohV5KHZ1J1a8TfpAaFPkmr3fmQkJlB7+lTYmzdx5RduAeM0KNdU6ecfKi2FpUD/r8Z sn+Q7dcbDvXcbVbWH/3F6WOpNkYGqCijwlkyN+9HDNm9ESiT7mRVX7OmYbDuRbtgGEf+ qcVvGlsWyZbtQHDh3N13V5yzNWpXytUhO6hGSx47FQiGrDNUfT7K/IdFANsX8UIPz6Mu CCPqwmieyyR7ALFzpW6/ps7CPojA8jBty/RhT4NznzJ6xZm4FrE4e1KPzz/WoquNEVMu fGUmK7tfh3ETCV28NWmEEXWoxmCXtBTLqknc5OmvbYLMqa2XRVujn4WGyufDBdW0nvgX uuJw== X-Gm-Message-State: AKGB3mIG9ykItRn+TcSXxSx/u6oh/omgKMzB/Cd0WECiW6OGmVuLDIve I95N9Ui7ZwcKPoT179uwI9Y= X-Google-Smtp-Source: ACJfBosiG2csOWQR2XE7YMwViBjcuX/PSFTub26Lw6HIek0BBm0VvpRpgxZKEO57pXBWvpAs2vXtAQ== X-Received: by 10.55.153.197 with SMTP id b188mr1082689qke.36.1514977326369; Wed, 03 Jan 2018 03:02:06 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis Date: Wed, 3 Jan 2018 08:01:20 -0300 Message-Id: <20180103110126.29209-12-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103110126.29209-1-f4bug@amsat.org> References: <20180103110126.29209-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::244 Subject: [Qemu-devel] [PATCH v4 11/17] sdhci: move MASK_TRNMOD with other SDHC_TRN* defines in "sd-internal.h" X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , Fam Zheng , Eduardo Habkost , Andrey Smirnov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/sd/sdhci-internal.h | 1 + hw/sd/sdhci.c | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/sd/sdhci-internal.h b/hw/sd/sdhci-internal.h index 248fd027f9..e941bc2386 100644 --- a/hw/sd/sdhci-internal.h +++ b/hw/sd/sdhci-internal.h @@ -43,6 +43,7 @@ #define SDHC_TRNS_ACMD12 0x0004 #define SDHC_TRNS_READ 0x0010 #define SDHC_TRNS_MULTI 0x0020 +#define SDHC_TRNMOD_MASK 0x0037 =20 /* R/W Command Register 0x0 */ #define SDHC_CMDREG 0x0E diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 3f550bc7df..dd42820a38 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -99,7 +99,6 @@ (SDHC_CAPAB_BASECLKFREQ << 8) | (SDHC_CAPAB_TOUNIT << 7) | \ (SDHC_CAPAB_TOCLKFREQ)) =20 -#define MASK_TRNMOD 0x0037 #define MASKED_WRITE(reg, mask, val) (reg =3D (reg & (mask)) | (val)) =20 static uint8_t sdhci_slotint(SDHCIState *s) @@ -1036,7 +1035,7 @@ sdhci_write(void *opaque, hwaddr offset, uint64_t val= , unsigned size) if (!(s->capareg & SDHC_CAN_DO_DMA)) { value &=3D ~SDHC_TRNS_DMA; } - MASKED_WRITE(s->trnmod, mask, value & MASK_TRNMOD); + MASKED_WRITE(s->trnmod, mask, value & SDHC_TRNMOD_MASK); MASKED_WRITE(s->cmdreg, mask >> 16, value >> 16); =20 /* Writing to the upper byte of CMDREG triggers SD command generat= ion */ --=20 2.15.1 From nobody Tue Oct 28 01:58:01 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1514977708193477.55623045551283; Wed, 3 Jan 2018 03:08:28 -0800 (PST) Received: from localhost ([::1]:48692 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWguI-0008P3-7K for importer@patchew.org; Wed, 03 Jan 2018 06:08:26 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47953) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgoE-0003H9-EN for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWgoD-00061O-Oa for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:10 -0500 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:39883) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWgoD-000614-L5 for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:09 -0500 Received: by mail-qt0-x243.google.com with SMTP id k19so1631632qtj.6 for ; Wed, 03 Jan 2018 03:02:09 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id r55sm417735qta.57.2018.01.03.03.02.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 03:02:08 -0800 (PST) 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=qeaG/l5+qSKwrMY6GXhQAOweIqyZAficuK8mHm6AnvM=; b=DphKeY/epq8LQ9B7J+U6yK4vrrQuPtkTVXxIxvip5cIAACztrRleHon2dz4lUaIk1M KlWLs2RZilCZ8P/yBl2QcZl5SXWYOC/dgoW0WUGCGOkEheOcfyAtUtd7Cu/8hDIrKA5y jwqLHBOhwdUcE+pymyNDbJOAL9ZsUiSYh36mplPuA/s8WHWcQXqOw0lKt9RliVsVvb3R L48ztujw9+rvsq6VboFudsM24WUbru6osjY6icAWve6rp3bAAZ/wMnKt7qz2raVRGXU1 Cfxu0UCIhAp+/m3GmJ8ucfT7gGBxaZlcR1nhrRNdHEzHnsf4mgPBfs02f2x7P9Z3QX+x QfQQ== 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=qeaG/l5+qSKwrMY6GXhQAOweIqyZAficuK8mHm6AnvM=; b=JTIevy3JwyD9tpplRJF+BgG2rkYp3EzRZ48au/GVA8JX6aVaPpnKh5vISsdx3mDwZ6 3Zx3AqBy/QFJkBr4czMurQ/W2Sm77cWviuwlPvA22sFyRfV7vTCEo6m4f9POnMKU0V8G 9fyHZVMhS06r0b01dFxc0MsazkgHZ4if/3ZvJO5UUICQzO63rmcZ2fFRoIZHYdMERjrs cM6x+FS8CzLeGUCyjfeWe68RU4Am9l4W852G+dfjaXjtl2yjI4KJMmWZpzysHJHwtl7u olFuQEVLPH+XSOihYV8Yjw2PiObC1+yrnxBulQAYuBfZQ/wW3w6TlULhEfQaP+kCE3+T 4ZVw== X-Gm-Message-State: AKGB3mJL/yhWy5mlc+5JMz8yM0fWYsdZiNbtlOxQYc95XIlK6RS/P4y5 OA3nu9KJETmDyFMBCf2sFGI= X-Google-Smtp-Source: ACJfBouPElTOPCJhmqNKqTuF76PUkc+LGU/NKQfrJFafLH7nx776lP5yMVbxl5r0y7P1PGjiY/kCGQ== X-Received: by 10.200.40.189 with SMTP id i58mr1198720qti.128.1514977329125; Wed, 03 Jan 2018 03:02:09 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Fam Zheng Date: Wed, 3 Jan 2018 08:01:21 -0300 Message-Id: <20180103110126.29209-13-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103110126.29209-1-f4bug@amsat.org> References: <20180103110126.29209-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::243 Subject: [Qemu-devel] [PATCH v4 12/17] sdhci: use FIELD_DP32() macro for the WRITE_PROTECT flag X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , Eduardo Habkost , Andrey Smirnov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sdhci-internal.h | 6 ++++-- hw/sd/sdhci.c | 8 ++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/hw/sd/sdhci-internal.h b/hw/sd/sdhci-internal.h index e941bc2386..df240ea046 100644 --- a/hw/sd/sdhci-internal.h +++ b/hw/sd/sdhci-internal.h @@ -24,6 +24,8 @@ #ifndef SDHCI_INTERNAL_H #define SDHCI_INTERNAL_H =20 +#include "hw/registerfields.h" + /* R/W SDMA System Address register 0x0 */ #define SDHC_SYSAD 0x00 =20 @@ -77,8 +79,8 @@ #define SDHC_SPACE_AVAILABLE 0x00000400 #define SDHC_DATA_AVAILABLE 0x00000800 #define SDHC_CARD_PRESENT 0x00010000 -#define SDHC_CARD_DETECT 0x00040000 -#define SDHC_WRITE_PROTECT 0x00080000 +FIELD(SDHC_PRNSTS, CARD_DETECT, 18, 1); +FIELD(SDHC_PRNSTS, WRITE_PROTECT, 19, 1); #define TRANSFERRING_DATA(x) \ ((x) & (SDHC_DOING_READ | SDHC_DOING_WRITE)) =20 diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index dd42820a38..586db181e3 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -160,12 +160,8 @@ static void sdhci_set_readonly(DeviceState *dev, bool = level) { SDHCIState *s =3D (SDHCIState *)dev; =20 - if (level) { - s->prnsts &=3D ~SDHC_WRITE_PROTECT; - } else { - /* Write enabled */ - s->prnsts |=3D SDHC_WRITE_PROTECT; - } + /* Write enabled */ + s->prnsts =3D FIELD_DP32(s->prnsts, SDHC_PRNSTS, WRITE_PROTECT, level); } =20 static void sdhci_reset(SDHCIState *s) --=20 2.15.1 From nobody Tue Oct 28 01:58:01 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1514978195108448.26994721979895; Wed, 3 Jan 2018 03:16:35 -0800 (PST) Received: from localhost ([::1]:48929 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWh1z-0007IC-50 for importer@patchew.org; Wed, 03 Jan 2018 06:16:23 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47979) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgoH-0003KZ-Ok for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:19 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWgoG-00062v-EY for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:13 -0500 Received: from mail-qk0-x243.google.com ([2607:f8b0:400d:c09::243]:41031) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWgoG-00062n-AY for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:12 -0500 Received: by mail-qk0-x243.google.com with SMTP id a8so1057617qkb.8 for ; Wed, 03 Jan 2018 03:02:12 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id r55sm417735qta.57.2018.01.03.03.02.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 03:02:11 -0800 (PST) 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=hGnZqRnI6yrcNILCLnu4aKKLutPwe6QL5es/ukVSlMQ=; b=W5gMjCl75291IyPNzyNbsoXZjDnyJ3fJSLMiRcFVbX1otDe25uNtQPWlLcGMyBAKdz N9k5vgd71vrEgqu657/P+RnglhdBj+lEwKm/kWKzXW5skSoD1zMVYHUbTGeTTc2gu93I AEeN+kxps238npOlGeRzTXllI2vykQsS0/bN/Ldk5HgQue6GhEK8iZiFMGrgrHmTnry1 +Gega4iXAUwP1oeS43xZOW1A2GV8GRQSe0cezYFF5xIFzDsYScZGrPQ/2bkZ6RhpI4Ep QXkrTJa5BxqTIimWNRxk0TGKrexzim5gvMb20mKFrq3qfYDmPEcVNHtPPvlbfD8zVXTH y9PQ== 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=hGnZqRnI6yrcNILCLnu4aKKLutPwe6QL5es/ukVSlMQ=; b=nocm0IuPaAfcBIKKnNtg/ULQp69MSctjERQl8YMTUZH6/92RGis+Hzb3P/KRkehnOg IjkabJoZIgc1aAo0DnwVZxMnuxYc7A50pO/Fu0OhhISUeMSob+7hwTjF6qQFnAWOTFBs eFwXU9SyF3V/fK+DHiXi8WEicLoP1Uqhjh8L9kf8uJzpbH1I+SvN1R4P0gh3jpknuyCh ZJXF/0ezp/IXiKLjANZbwlaCAQ4hggZ26LBEZmK2EczadhgmYB8cG4F/JI4AQ2qrNQpR UfPWm2lJVs8ee3QOOsAFsbmbCqSLmML70xaBzlQHqeaoWKBReKgnKxzolGUJJeJTT3/H WU5A== X-Gm-Message-State: AKGB3mIHw+C/SjHTZ4xUBmjNrhoMltmQz1A+DQ2wF9QdThghaBiU7uzR egDgU0xzIouFye90rR27/Ao= X-Google-Smtp-Source: ACJfBotJSGMY64cL5NoFwPSNaimjfV4ggqdnV2WeOCPdElT7PNAWCLjPmSWQ0peuMcMfJVjfYN1PKA== X-Received: by 10.55.91.1 with SMTP id p1mr1087321qkb.6.1514977331845; Wed, 03 Jan 2018 03:02:11 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis Date: Wed, 3 Jan 2018 08:01:22 -0300 Message-Id: <20180103110126.29209-14-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103110126.29209-1-f4bug@amsat.org> References: <20180103110126.29209-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::243 Subject: [Qemu-devel] [PATCH v4 13/17] sdhci: rename the SDHC_CAPAB register X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , Fam Zheng , Eduardo Habkost , Andrey Smirnov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/sd/sdhci-internal.h | 2 +- hw/sd/sdhci.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/sd/sdhci-internal.h b/hw/sd/sdhci-internal.h index df240ea046..b7475a1b7b 100644 --- a/hw/sd/sdhci-internal.h +++ b/hw/sd/sdhci-internal.h @@ -176,7 +176,7 @@ FIELD(SDHC_PRNSTS, WRITE_PROTECT, 19, 1); #define SDHC_ACMD12ERRSTS 0x3C =20 /* HWInit Capabilities Register 0x05E80080 */ -#define SDHC_CAPAREG 0x40 +#define SDHC_CAPAB 0x40 #define SDHC_CAN_DO_DMA 0x00400000 #define SDHC_CAN_DO_ADMA2 0x00080000 #define SDHC_CAN_DO_ADMA1 0x00100000 diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 586db181e3..6989bb09a6 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -904,7 +904,7 @@ static uint64_t sdhci_read(void *opaque, hwaddr offset,= unsigned size) case SDHC_ACMD12ERRSTS: ret =3D s->acmd12errsts; break; - case SDHC_CAPAREG: + case SDHC_CAPAB: ret =3D s->capareg; break; case SDHC_MAXCURR: --=20 2.15.1 From nobody Tue Oct 28 01:58:01 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1514978028939317.01778625457814; Wed, 3 Jan 2018 03:13:48 -0800 (PST) Received: from localhost ([::1]:48757 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgzS-0004i4-VY for importer@patchew.org; Wed, 03 Jan 2018 06:13:47 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48020) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgoK-0003Lr-27 for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:17 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWgoJ-00064o-6c for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:16 -0500 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:33773) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWgoJ-00064f-1B for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:15 -0500 Received: by mail-qk0-x241.google.com with SMTP id x7so1056571qkb.0 for ; Wed, 03 Jan 2018 03:02:14 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id r55sm417735qta.57.2018.01.03.03.02.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 03:02:13 -0800 (PST) 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=lieOb/bjYleNW4ON9Pk1o5txO55bmr6fo45pdAOCPZw=; b=mxuMNSEcTmU02MyBun8zYMET8mwceUTUIrdHldmyaIvxUOdI9wekcsgoyfQW2DXQm2 Orr0Xj0sxcMCeWEoB5G1uFpRS53wRul6DpIYpNRqaaXxrmRnBpC166kADPHvifEv5tdG /q8BXY8WkaSneP5Xow+nhzSJf6Se5uQb3Rq4sIFBqdZqVAdN05S/ZNhzpKx09HJ0TvnP CmFP5t/wdUYI2IN6QmQB0bcgbCs0Hv2Zw7palDkLAV5B9uFu+VV/KzJnwX+zEcOXpzve sM9nFXu+XiglsRJD9hlI/CYuhhTBL3QyAOVFdjmEzn3XBEogkQFoC/vfPfqdyDw0yAYl WDqQ== 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=lieOb/bjYleNW4ON9Pk1o5txO55bmr6fo45pdAOCPZw=; b=B+XgNgTO81gF6YpYBiT/3DopwzV9kqvUYl0tlePvH7GI1QR33YQ4GtlFsB1uCwCXJq +NauCr6wb64uNvIdto1M94SvSiLqMdYCGcQka/vQYf9I/0i+15HGF10O7+gx5tSnm7F9 lw1ALsgeGRkTtMW+XO4BhGgHjYW4fjXPhwvbEFqhDB6r3jgQDZzjkdHseWWtTy60FoSQ AnbXRwSkXUDcxUisv6J9LR0x2FhDrL3RUpTkDfBgD34dfPD6F2V91OsXvLel7Tr+IQeQ tGaCu/XVW/0p5Q2ZZ1JGAXF2y21AJIdv7X/Dhpnur8b/q9RzvCRsZNoDThU9xRd8Ts91 NVUw== X-Gm-Message-State: AKGB3mLPRiMs1OggSrgqj6uIyDqNEpT8r0s35koYn5OIhGh0HCze0dhp zoesHF38VzIllW3qPh8oiJg= X-Google-Smtp-Source: ACJfBovVkiRa7TmBK1WBAcX/pGY7ewi3faCNQ2ejK5DWjn8GNYCtHCbCNiWe5rmg2LJjWuNAgPhZpg== X-Received: by 10.55.91.5 with SMTP id p5mr1213266qkb.293.1514977334505; Wed, 03 Jan 2018 03:02:14 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis Date: Wed, 3 Jan 2018 08:01:23 -0300 Message-Id: <20180103110126.29209-15-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103110126.29209-1-f4bug@amsat.org> References: <20180103110126.29209-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::241 Subject: [Qemu-devel] [PATCH v4 14/17] sdhci: fix CAPAB/MAXCURR registers, both are 64bit and read-only X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , Fam Zheng , Eduardo Habkost , Andrey Smirnov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 running qtests: $ make check-qtest-arm GTESTER check-qtest-arm SDHC rd_4b @0x44 not implemented SDHC wr_4b @0x40 <- 0x89abcdef not implemented SDHC wr_4b @0x44 <- 0x01234567 not implemented Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- include/hw/sd/sdhci.h | 4 ++-- hw/sd/sdhci.c | 23 +++++++++++++++++++---- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/include/hw/sd/sdhci.h b/include/hw/sd/sdhci.h index da943a6562..9436375b1e 100644 --- a/include/hw/sd/sdhci.h +++ b/include/hw/sd/sdhci.h @@ -86,9 +86,9 @@ typedef struct SDHCIState { =20 /* Read-only registers */ /* 0x40 */ - uint32_t capareg; /* Capabilities Register */ + uint64_t capareg; /* Capabilities Register */ /* 0x48 */ - uint32_t maxcurr; /* Maximum Current Capabilities Register */ + uint64_t maxcurr; /* Maximum Current Capabilities Register */ =20 uint8_t *fifo_buffer; /* SD host i/o FIFO buffer */ uint32_t buf_maxsz; diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 6989bb09a6..ea7d27087e 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -905,10 +905,16 @@ static uint64_t sdhci_read(void *opaque, hwaddr offse= t, unsigned size) ret =3D s->acmd12errsts; break; case SDHC_CAPAB: - ret =3D s->capareg; + ret =3D (uint32_t)s->capareg; + break; + case SDHC_CAPAB + 4: + ret =3D (uint32_t)(s->capareg >> 32); break; case SDHC_MAXCURR: - ret =3D s->maxcurr; + ret =3D (uint32_t)s->maxcurr; + break; + case SDHC_MAXCURR + 4: + ret =3D (uint32_t)(s->maxcurr >> 32); break; case SDHC_ADMAERR: ret =3D s->admaerr; @@ -1130,6 +1136,15 @@ sdhci_write(void *opaque, hwaddr offset, uint64_t va= l, unsigned size) } sdhci_update_irq(s); break; + + case SDHC_CAPAB: + case SDHC_CAPAB + 4: + case SDHC_MAXCURR: + case SDHC_MAXCURR + 4: + qemu_log_mask(LOG_GUEST_ERROR, "SDHC wr_%ub @0x%02" HWADDR_PRIx + " <- 0x%08x read-only\n", size, offset, value >> shi= ft); + break; + default: qemu_log_mask(LOG_UNIMP, "SDHC wr_%ub @0x%02" HWADDR_PRIx " <- 0x%= 08x " "not implemented\n", size, offset, value >> shift); @@ -1267,9 +1282,9 @@ const VMStateDescription sdhci_vmstate =3D { /* Capabilities registers provide information on supported features of this * specific host controller implementation */ static Property sdhci_properties[] =3D { - DEFINE_PROP_UINT32("capareg", SDHCIState, capareg, + DEFINE_PROP_UINT64("capareg", SDHCIState, capareg, SDHC_CAPAB_REG_DEFAULT), - DEFINE_PROP_UINT32("maxcurr", SDHCIState, maxcurr, 0), + DEFINE_PROP_UINT64("maxcurr", SDHCIState, maxcurr, 0), DEFINE_PROP_BOOL("pending-insert-quirk", SDHCIState, pending_insert_qu= irk, false), DEFINE_PROP_END_OF_LIST(), --=20 2.15.1 From nobody Tue Oct 28 01:58:01 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1514977843767549.4211369174093; Wed, 3 Jan 2018 03:10:43 -0800 (PST) Received: from localhost ([::1]:48720 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgwU-00024a-Qy for importer@patchew.org; Wed, 03 Jan 2018 06:10:42 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48057) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgoM-0003My-M0 for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:19 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWgoL-00066T-QI for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:18 -0500 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:41941) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWgoL-00066I-MW for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:17 -0500 Received: by mail-qt0-x241.google.com with SMTP id i40so1621908qti.8 for ; Wed, 03 Jan 2018 03:02:17 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id r55sm417735qta.57.2018.01.03.03.02.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 03:02:16 -0800 (PST) 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=v5p6oQx/vDY0eOYCwLyY0cBmc6/+GHDxZWkpCkz1tnE=; b=ofoBcX6H5B9uafo0EpyvaXAaUu7GIhV4aqaOCvr1SLVCDDAS3nBRvpZDqXXYtCNS3a omSU8CmAYjdjdjuGO6e8p5lhPH/qnNjlbwVo6aoXVqsCgWz2ijgobXPcxv5YEqoXBQEz KCVCAa+KvtZSyX7l+cQfGoHFEU96TIl98abFHR9RKJrmEYYkn7ddR0cy3gmo0Wpihpo+ t9csaKoSu20PT1g99CtJktpeOmEXpYjA5DKyriencdGfCl+Wdg4TNnVLKSCCsYc0iH2O fmYILpXxweaJG5DZINg3rpnDNloEeBowYWTo/7RsQ7s+ZdjtEoFyWtI8bFXkOLPLCyAy S+Gg== 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=v5p6oQx/vDY0eOYCwLyY0cBmc6/+GHDxZWkpCkz1tnE=; b=b01/xgINAWmVXVs3V7pygE6l1WNvFL55d2I2PUJOrNS1SwE4Cj6GJzTA5/rpCMdExe kmDp6xyFzj275hFBBgSK6VS1FnNZPhW35TV1gbBqry9Udav5k6T3OPE/40RHKZTles7f mqpULiUwxRsJjJpraLZUQeNt2gh1ke46mcPjOi2upeqGHwJUWAqrTOFJZDU/rKx86R6Q fHyfJ2dGY9y2pDvBBvGwS6LIr4z+O8iifpVDzH2jSHsAEyZ6EmGgAs+pRfMrMmcnaUW6 MVM8LwUhwN8Kz+P0sGICYbXEECqhN4Eiai9CyY5+AyRhDW5M5BN5BoG6scLAYBfEKZ39 HNxg== X-Gm-Message-State: AKGB3mLuFqvgQMgj6/AM5qocb7kXllhW/yXdMyiFGVIAtdDXqELXIzX0 nJhNq6IFGqgjuaWcxJfHNg0= X-Google-Smtp-Source: ACJfBouoT4iIbAhMX950wMBwNEjvowRy2al5YEicVR/R/RbZ8kHBOB82VMWQuNYUBhI2t6cX8mWU6w== X-Received: by 10.200.55.185 with SMTP id d54mr1241984qtc.105.1514977337212; Wed, 03 Jan 2018 03:02:17 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis Date: Wed, 3 Jan 2018 08:01:24 -0300 Message-Id: <20180103110126.29209-16-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103110126.29209-1-f4bug@amsat.org> References: <20180103110126.29209-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::241 Subject: [Qemu-devel] [PATCH v4 15/17] sdhci: Implement write method of ACMD12ERRSTS register X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , Fam Zheng , Eduardo Habkost , Andrey Smirnov , qemu-devel@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 From: Andrey Smirnov Reviewed-by: Peter Maydell Signed-off-by: Andrey Smirnov Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sdhci.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index ea7d27087e..25a3ee5ef6 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -1136,6 +1136,9 @@ sdhci_write(void *opaque, hwaddr offset, uint64_t val= , unsigned size) } sdhci_update_irq(s); break; + case SDHC_ACMD12ERRSTS: + MASKED_WRITE(s->acmd12errsts, mask, value); + break; =20 case SDHC_CAPAB: case SDHC_CAPAB + 4: --=20 2.15.1 From nobody Tue Oct 28 01:58:01 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1514977464131161.4388061934535; Wed, 3 Jan 2018 03:04:24 -0800 (PST) Received: from localhost ([::1]:48637 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgqN-0004h9-A4 for importer@patchew.org; Wed, 03 Jan 2018 06:04:23 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48123) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgoS-0003R5-8D for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:25 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWgoO-00067v-Sr for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:24 -0500 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:39883) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWgoO-00067n-Nv for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:20 -0500 Received: by mail-qt0-x242.google.com with SMTP id k19so1632109qtj.6 for ; Wed, 03 Jan 2018 03:02:20 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id r55sm417735qta.57.2018.01.03.03.02.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 03:02:19 -0800 (PST) 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=3brZcXXtUcQm3OblDnyi3kCHGeIEI035FvpIZcPGm9k=; b=XKEg+CoAnH+Im5X5+7+N0e6+3ywaS2uQDxxTkFd3jxVBOlqccFTKOnPrSsegWJnBJK VsTPWpkPgFbaGcpIiPcyGTlmRvDaIEtSKbtIHKSY8ADeRHbvTCADs08BDbyhEWNdY5dc ZnzsXf9b0ifICpcYiv6eZM59I6iXUaU4XHR5WBTS7HT/pSbg+8IxsmGno7dE6SHTcWIH A/B/lCZKJwzckaiii2ROapEJMXF4auyMbOBDP+ljzyIytHaAdo+z5YqVjli8MokyrKuO v5dORHBlPuzAykApHTQ2kVWxEoibJljQ6pr+DZgYKqMQxvko1Ot9a/js0EBDcWiaz/Gg ldHw== 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=3brZcXXtUcQm3OblDnyi3kCHGeIEI035FvpIZcPGm9k=; b=WcQxsSJ9raamPYUflrwUoI0sSGaFJxRJm0UAH1oHgenEGWS++S0phH5OcHtJrf8xjc Xi+mI9EMonER5wYKbXcD1SBKMKcY27q2FZf4XDzXfeGfuORKgktMAICpGC/SF5i+S0Tr XFs2QI/NIrWHDNkFQ6itJVnp9ezAZy5n1Y1HYAqHLjZtUf4BOORu8VVUGo1QBZON2A7Y okZMNt/QfTlrqCNosuUXEMGqM3bEnTwFaFHc+r/nC0BYWzXODQKT2HKhNVwxWggd7My7 kPz/mjJD3aKh1OMPe9XBengO7jcjrYhJnmfL/O8WOJpMb69a9Ika8mwYQO9E5F30bsEi aXdQ== X-Gm-Message-State: AKGB3mI1mTXiifD1KJCmE+Vi/edwxSx5rRmrdIrOicJlqvA3IIGh9Txc ZC6CuAfV6jpYvibFC3f1imE= X-Google-Smtp-Source: ACJfBoteUzmyHrQrGBmUBQnK1ytRezV4PV988wRg+wYuZp5IljO1qpItLiH39x8NBflWQNZ2RmQ8Qg== X-Received: by 10.200.47.169 with SMTP id l38mr1177023qta.183.1514977340150; Wed, 03 Jan 2018 03:02:20 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis Date: Wed, 3 Jan 2018 08:01:25 -0300 Message-Id: <20180103110126.29209-17-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103110126.29209-1-f4bug@amsat.org> References: <20180103110126.29209-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c0d::242 Subject: [Qemu-devel] [PATCH v4 16/17] sdhci: use deposit64() on admasysaddr X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , Fam Zheng , Eduardo Habkost , Andrey Smirnov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 This makes the code slightly safer, and easier to review. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/sd/sdhci.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 25a3ee5ef6..97129e178e 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -1118,12 +1118,10 @@ sdhci_write(void *opaque, hwaddr offset, uint64_t v= al, unsigned size) MASKED_WRITE(s->admaerr, mask, value); break; case SDHC_ADMASYSADDR: - s->admasysaddr =3D (s->admasysaddr & (0xFFFFFFFF00000000ULL | - (uint64_t)mask)) | (uint64_t)value; + s->admasysaddr =3D deposit64(s->admasysaddr, 0, 32, value); break; case SDHC_ADMASYSADDR + 4: - s->admasysaddr =3D (s->admasysaddr & (0x00000000FFFFFFFFULL | - ((uint64_t)mask << 32))) | ((uint64_t)value << 32); + s->admasysaddr =3D deposit64(s->admasysaddr, 32, 32, value); break; case SDHC_FEAER: s->acmd12errsts |=3D value; --=20 2.15.1 From nobody Tue Oct 28 01:58:01 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1514977988756284.9279253387424; Wed, 3 Jan 2018 03:13:08 -0800 (PST) Received: from localhost ([::1]:48749 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgyk-00042o-Rf for importer@patchew.org; Wed, 03 Jan 2018 06:13:02 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48146) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWgoT-0003R7-24 for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:26 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWgoR-0006AU-RH for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:25 -0500 Received: from mail-qk0-x242.google.com ([2607:f8b0:400d:c09::242]:41034) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWgoR-0006A1-LW for qemu-devel@nongnu.org; Wed, 03 Jan 2018 06:02:23 -0500 Received: by mail-qk0-x242.google.com with SMTP id a8so1058179qkb.8 for ; Wed, 03 Jan 2018 03:02:23 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id r55sm417735qta.57.2018.01.03.03.02.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 03:02:22 -0800 (PST) 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=OToUakpL57YRK5j4JlJmYUYEh4EyBUJbnJFAX/b7Y9o=; b=uiOqWvF4tD9+509rViqIV81P86rXcV1fl6ltBbTvdkGfqKgj1NDOmyL+Vz3rLnAd7I WQIHm7/UMpA2zCyIQQoNxb08DYs7zeidJIqZhZV79PLbQR39x0snXB8n6ozupZMqTjAb nIkcPKl9P1yVqaZt+JtRnSpmN8O+IMCVrf1+CzunNxQTq9O7Ls4e85frSzU4JaHhVo5E vLjoLJdrmvzPpsxynYJOw8BRzqyz3eVJ5H4xUPVSqzYH5mQ/yPHB0RiV4jpDJaA5FkN1 2ZBzMsMIPd41ikJWWd0bwsKMXiVoAGcKHp/b0x9vj/cG9fcJrwBld9V81g9haCggNgG2 1o/g== 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=OToUakpL57YRK5j4JlJmYUYEh4EyBUJbnJFAX/b7Y9o=; b=RGlxf/oCMXD9gWEanFyQ5LOPqT/OeKgIXO0a3XR7N2x81eq/Flz36ZIXJi7klJkczO EkuxVDttAk4cfJ97lZUNKVkrTe/68Jl7cmcXulGVwvoYl3q9YPhxKvUkTMOJYFCdseje LmBJJr8Q5mSg7PY2Axj6yvEGe9odED1XGFujDOgM0rNpd06ZnxI2E3AmebvB9L1kWk+0 muU4QAhPtjUWMycrOcgVrHNTyOg64KpVTpNAE06BXPzWsQATTiaqUrvgiyj/HZ+MLbfY E/2m8C3iJb8zWG/FWlhebYnAndV2e1I/lFPuMYyy9SYcywdT0f2JL0w1F35+Jj0oox0m 7wWg== X-Gm-Message-State: AKGB3mL/0FjzWNE2MAxP+gv7pmJwuq5e7FuMyyFHZB6zGZ7uOHugpuai HnAwFD/FF8JYUw0gnIOHYF4= X-Google-Smtp-Source: ACJfBouuC6V5SWrzC6mKCw5/ZbJbbEC3rF/y9A5rw1EoeysVuPBOQ9tlxo52a8xN5Iy3bSElEMaeUg== X-Received: by 10.55.122.71 with SMTP id v68mr1156746qkc.260.1514977343052; Wed, 03 Jan 2018 03:02:23 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , Fam Zheng Date: Wed, 3 Jan 2018 08:01:26 -0300 Message-Id: <20180103110126.29209-18-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103110126.29209-1-f4bug@amsat.org> References: <20180103110126.29209-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400d:c09::242 Subject: [Qemu-devel] [PATCH v4 17/17] sdhci: add a "dma-memory" property X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Edgar E . Iglesias" , Peter Maydell , Eduardo Habkost , Andrey Smirnov , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Add a dma property allowing machine creation to provide the address-space sdhci dma operates on. [based on a patch from Alistair Francis from qemu/xilinx tag xilinx-v2016.1] Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- include/hw/sd/sdhci.h | 2 ++ hw/sd/sdhci.c | 36 +++++++++++++++++++++++------------- 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/include/hw/sd/sdhci.h b/include/hw/sd/sdhci.h index 9436375b1e..2aea20f1d8 100644 --- a/include/hw/sd/sdhci.h +++ b/include/hw/sd/sdhci.h @@ -41,6 +41,8 @@ typedef struct SDHCIState { /*< public >*/ SDBus sdbus; MemoryRegion iomem; + MemoryRegion *dma_mr; + AddressSpace dma_as; =20 QEMUTimer *insert_timer; /* timer for 'changing' sd card. */ QEMUTimer *transfer_timer; diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 97129e178e..a5e63dbd56 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -502,7 +502,7 @@ static void sdhci_sdma_transfer_multi_blocks(SDHCIState= *s) s->blkcnt--; } } - dma_memory_write(&address_space_memory, s->sdmasysad, + dma_memory_write(&s->dma_as, s->sdmasysad, &s->fifo_buffer[begin], s->data_count - begin= ); s->sdmasysad +=3D s->data_count - begin; if (s->data_count =3D=3D block_size) { @@ -524,7 +524,7 @@ static void sdhci_sdma_transfer_multi_blocks(SDHCIState= *s) s->data_count =3D block_size; boundary_count -=3D block_size - begin; } - dma_memory_read(&address_space_memory, s->sdmasysad, + dma_memory_read(&s->dma_as, s->sdmasysad, &s->fifo_buffer[begin], s->data_count - begin); s->sdmasysad +=3D s->data_count - begin; if (s->data_count =3D=3D block_size) { @@ -562,11 +562,9 @@ static void sdhci_sdma_transfer_single_block(SDHCIStat= e *s) for (n =3D 0; n < datacnt; n++) { s->fifo_buffer[n] =3D sdbus_read_data(&s->sdbus); } - dma_memory_write(&address_space_memory, s->sdmasysad, s->fifo_buff= er, - datacnt); + dma_memory_write(&s->dma_as, s->sdmasysad, s->fifo_buffer, datacnt= ); } else { - dma_memory_read(&address_space_memory, s->sdmasysad, s->fifo_buffe= r, - datacnt); + 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]); } @@ -590,7 +588,7 @@ static void get_adma_description(SDHCIState *s, ADMADes= cr *dscr) hwaddr entry_addr =3D (hwaddr)s->admasysaddr; switch (SDHC_DMA_TYPE(s->hostctl)) { case SDHC_CTRL_ADMA2_32: - dma_memory_read(&address_space_memory, entry_addr, (uint8_t *)&adm= a2, + dma_memory_read(&s->dma_as, entry_addr, (uint8_t *)&adma2, sizeof(adma2)); adma2 =3D le64_to_cpu(adma2); /* The spec does not specify endianness of descriptor table. @@ -602,7 +600,7 @@ static void get_adma_description(SDHCIState *s, ADMADes= cr *dscr) dscr->incr =3D 8; break; case SDHC_CTRL_ADMA1_32: - dma_memory_read(&address_space_memory, entry_addr, (uint8_t *)&adm= a1, + dma_memory_read(&s->dma_as, entry_addr, (uint8_t *)&adma1, sizeof(adma1)); adma1 =3D le32_to_cpu(adma1); dscr->addr =3D (hwaddr)(adma1 & 0xFFFFF000); @@ -615,12 +613,12 @@ static void get_adma_description(SDHCIState *s, ADMAD= escr *dscr) } break; case SDHC_CTRL_ADMA2_64: - dma_memory_read(&address_space_memory, entry_addr, + dma_memory_read(&s->dma_as, entry_addr, (uint8_t *)(&dscr->attr), 1); - dma_memory_read(&address_space_memory, entry_addr + 2, + dma_memory_read(&s->dma_as, entry_addr + 2, (uint8_t *)(&dscr->length), 2); dscr->length =3D le16_to_cpu(dscr->length); - dma_memory_read(&address_space_memory, entry_addr + 4, + dma_memory_read(&s->dma_as, entry_addr + 4, (uint8_t *)(&dscr->addr), 8); dscr->attr =3D le64_to_cpu(dscr->attr); dscr->attr &=3D 0xfffffff8; @@ -679,7 +677,7 @@ static void sdhci_do_adma(SDHCIState *s) s->data_count =3D block_size; length -=3D block_size - begin; } - dma_memory_write(&address_space_memory, dscr.addr, + dma_memory_write(&s->dma_as, dscr.addr, &s->fifo_buffer[begin], s->data_count - begin); dscr.addr +=3D s->data_count - begin; @@ -703,7 +701,7 @@ static void sdhci_do_adma(SDHCIState *s) s->data_count =3D block_size; length -=3D block_size - begin; } - dma_memory_read(&address_space_memory, dscr.addr, + dma_memory_read(&s->dma_as, dscr.addr, &s->fifo_buffer[begin], s->data_count - begin); dscr.addr +=3D s->data_count - begin; @@ -1198,10 +1196,20 @@ static void sdhci_realizefn(SDHCIState *s, Error **= errp) =20 memory_region_init_io(&s->iomem, OBJECT(s), &sdhci_mmio_ops, s, "sdhci= ", SDHC_REGISTERS_MAP_SIZE); + + /* use system_memory() if property "dma-memory" not set */ + address_space_init(&s->dma_as, + s->dma_mr ? s->dma_mr : get_system_memory(), + "sdhci-dma"); } =20 static void sdhci_unrealizefn(SDHCIState *s, Error **errp) { + if (s->dma_mr) { + address_space_destroy(&s->dma_as); + object_unparent(OBJECT(&s->dma_mr)); + } + g_free(s->fifo_buffer); /* This function is expected to be called only once for each class: * - SysBus: via DeviceClass->unrealize(), @@ -1288,6 +1296,8 @@ static Property sdhci_properties[] =3D { DEFINE_PROP_UINT64("maxcurr", SDHCIState, maxcurr, 0), DEFINE_PROP_BOOL("pending-insert-quirk", SDHCIState, pending_insert_qu= irk, false), + DEFINE_PROP_LINK("dma-memory", SDHCIState, dma_mr, + TYPE_MEMORY_REGION, MemoryRegion *), DEFINE_PROP_END_OF_LIST(), }; =20 --=20 2.15.1