From nobody Wed Apr 24 09:55:40 2024 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 1513195484254439.9279015401564; Wed, 13 Dec 2017 12:04:44 -0800 (PST) Received: from localhost ([::1]:37374 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDGk-0006Wr-5i for importer@patchew.org; Wed, 13 Dec 2017 15:04:42 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57537) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDBW-0002a2-0s for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:19 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ePDBU-0005Ne-8v for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:18 -0500 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:39070) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ePDBU-0005NJ-2v; Wed, 13 Dec 2017 14:59:16 -0500 Received: by mail-qt0-x241.google.com with SMTP id k19so5214745qtj.6; Wed, 13 Dec 2017 11:59:15 -0800 (PST) Received: from x1.local ([138.117.48.211]) by smtp.gmail.com with ESMTPSA id o5sm1518876qtc.72.2017.12.13.11.59.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 Dec 2017 11:59:14 -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=pjZU0hpzM3Q4zJcKiDNGvfV9gTiE59nDO+yAb8XhSXA=; b=tv9ppByw4Ud6ruMtvZ7KYQvht8QVMP1EKEo1l3Wp1nC3wX5sLY/SoV4Dybf9AFa9FF mjuOZ4vS8Qc3mPj2242yQoZDZELIVSsrgPWJ9Uv3mUcAdZEL8PwjltiyRYF2XclQuqiF 0c5iNyKbAMRdgp8Lx/uaYPMqVNix/neq+slkIgDB0XHg9xt7H3ii8lNWx3v6LcdWwYhc LgJAug50kMxhk6AAzOS3vUI83ihukO3kmpvF7skaMEsP5HGu8dplyyGrBDHjIwZsz+Dx jfCExDSJ+SM1N6YQtDAba274w+WTmalllp/sT/w8DViHX3/abZAMEemXIFz+UVYJ8izo PXIw== 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=pjZU0hpzM3Q4zJcKiDNGvfV9gTiE59nDO+yAb8XhSXA=; b=qpVLkA9wNzJyLpm3SMmcquWI2TcOxm7nW6lTZVJkbkOilNyHcxuUANsH3JzmcEoAzp CTUbb0wqUFxBsbl4Pz0EL/pCMvINZhIOJ9GPK4gYZkAKE3kGBf6L8u21+w2mKJQMeWJj OpXj/PVnkDs9an/gmTtvcFE7+kxWbd0Qj+b3qL3nQlzKLWwY9JbJ8EpjUNkvxcg81s6M 1U04FMowO4BbSS8WVuwQySTePJKc7AS8OmpK48+ajdvGMIX0Exo8rxBRImK+iPiGDFfF 2ZI0/hzFWHyhvQlMk7V8V9VvIKJzRbEoQ1wBG0/w4rGbxEZsMRya3Ru1WRzQT2HZz4yq m+Yg== X-Gm-Message-State: AKGB3mKxM1uRXN3qxWjHPum9w646mNmyU1ZWsHwfQG61KCcHHxKUW6QM rDMN+r+vZbOCXhItv7VdapM= X-Google-Smtp-Source: ACJfBovm+Wox6Gu3obayoRdSJfxaaPmSZFJOul2gbR5GTnt8nA6pNfyaI1P8NhEGFSNC4PYWFcF1yg== X-Received: by 10.237.37.177 with SMTP id x46mr7606451qtc.76.1513195155241; Wed, 13 Dec 2017 11:59:15 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Prasad J Pandit , Peter Maydell , Michael Walle , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Andrzej Zaborowski , Andrew Baumann , Andrey Smirnov , Andrey Yurovsky Date: Wed, 13 Dec 2017 16:58:39 -0300 Message-Id: <20171213195852.30439-2-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20171213195852.30439-1-f4bug@amsat.org> References: <20171213195852.30439-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 01/14] sd: split "sd-internal.h" of "hw/sd/sd.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: Sai Pavan Boddu , Peter Crosthwaite , qemu-arm@nongnu.org, =?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 only SD 'producers' are able to use the "sd-internal.h" API, while SD 'consumers' are restricted to the "hw/sd/sd.h" 'public' API. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sd-internal.h | 119 ++++++++++++++++++++++++++++++++++++++++++= ++++ include/hw/sd/sd.h | 95 +++--------------------------------- hw/sd/core.c | 3 +- hw/sd/milkymist-memcard.c | 2 +- hw/sd/omap_mmc.c | 1 + hw/sd/pl181.c | 2 +- hw/sd/pxa2xx_mmci.c | 1 + hw/sd/sd.c | 6 +-- hw/sd/sdhci.c | 2 +- hw/sd/ssi-sd.c | 2 +- 10 files changed, 135 insertions(+), 98 deletions(-) create mode 100644 hw/sd/sd-internal.h diff --git a/hw/sd/sd-internal.h b/hw/sd/sd-internal.h new file mode 100644 index 0000000000..afd5dbf194 --- /dev/null +++ b/hw/sd/sd-internal.h @@ -0,0 +1,119 @@ +/* + * SD Memory Card emulation. + * + * Copyright (c) 2006 Andrzej Zaborowski + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#ifndef SD_INTERNAL_H +#define SD_INTERNAL_H + +#include "hw/qdev.h" +#include "sysemu/block-backend.h" + +#define OUT_OF_RANGE (1 << 31) +#define ADDRESS_ERROR (1 << 30) +#define BLOCK_LEN_ERROR (1 << 29) +#define ERASE_SEQ_ERROR (1 << 28) +#define ERASE_PARAM (1 << 27) +#define WP_VIOLATION (1 << 26) +#define CARD_IS_LOCKED (1 << 25) +#define LOCK_UNLOCK_FAILED (1 << 24) +#define COM_CRC_ERROR (1 << 23) +#define ILLEGAL_COMMAND (1 << 22) +#define CARD_ECC_FAILED (1 << 21) +#define CC_ERROR (1 << 20) +#define SD_ERROR (1 << 19) +#define CID_CSD_OVERWRITE (1 << 16) +#define WP_ERASE_SKIP (1 << 15) +#define CARD_ECC_DISABLED (1 << 14) +#define ERASE_RESET (1 << 13) +#define CURRENT_STATE (7 << 9) +#define READY_FOR_DATA (1 << 8) +#define APP_CMD (1 << 5) +#define AKE_SEQ_ERROR (1 << 3) + +#define OCR_CCS_BITN 30 + +typedef enum { + sd_none =3D -1, + sd_bc =3D 0, /* broadcast -- no response */ + sd_bcr, /* broadcast with response */ + sd_ac, /* addressed -- no data transfer */ + sd_adtc, /* addressed with data transfer */ +} sd_cmd_type_t; + +typedef struct SDState SDState; + +#define SD_CARD_CLASS(klass) \ + OBJECT_CLASS_CHECK(SDCardClass, (klass), TYPE_SD_CARD) +#define SD_CARD_GET_CLASS(obj) \ + OBJECT_GET_CLASS(SDCardClass, (obj), TYPE_SD_CARD) + +typedef struct { + /*< private >*/ + DeviceClass parent_class; + /*< public >*/ + + int (*do_command)(SDState *sd, SDRequest *req, uint8_t *response); + void (*write_data)(SDState *sd, uint8_t value); + uint8_t (*read_data)(SDState *sd); + bool (*data_ready)(SDState *sd); + void (*enable)(SDState *sd, bool enable); + bool (*get_inserted)(SDState *sd); + bool (*get_readonly)(SDState *sd); +} SDCardClass; + +#define SD_BUS_CLASS(klass) OBJECT_CLASS_CHECK(SDBusClass, (klass), TYPE_S= D_BUS) +#define SD_BUS_GET_CLASS(obj) OBJECT_GET_CLASS(SDBusClass, (obj), TYPE_SD_= BUS) + +typedef struct { + /*< private >*/ + BusClass parent_class; + /*< public >*/ + + /* These methods are called by the SD device to notify the controller + * when the card insertion or readonly status changes + */ + void (*set_inserted)(DeviceState *dev, bool inserted); + void (*set_readonly)(DeviceState *dev, bool readonly); +} SDBusClass; + +/* Legacy functions to be used only by non-qdevified callers */ +SDState *sd_init(BlockBackend *bs, bool is_spi); +int sd_do_command(SDState *sd, SDRequest *req, uint8_t *response); +void sd_write_data(SDState *sd, uint8_t value); +uint8_t sd_read_data(SDState *sd); +void sd_set_cb(SDState *sd, qemu_irq readonly, qemu_irq insert); +bool sd_data_ready(SDState *sd); +/* sd_enable should not be used -- it is only used on the nseries boards, + * where it is part of a broken implementation of the MMC card slot switch + * (there should be two card slots which are multiplexed to a single MMC + * controller, but instead we model it with one card and controller and + * disable the card when the second slot is selected, so it looks like the + * second slot is always empty). + */ +void sd_enable(SDState *sd, bool enable); + +#endif diff --git a/include/hw/sd/sd.h b/include/hw/sd/sd.h index 96caefe373..f6994e61f2 100644 --- a/include/hw/sd/sd.h +++ b/include/hw/sd/sd.h @@ -32,108 +32,25 @@ =20 #include "hw/qdev.h" =20 -#define OUT_OF_RANGE (1 << 31) -#define ADDRESS_ERROR (1 << 30) -#define BLOCK_LEN_ERROR (1 << 29) -#define ERASE_SEQ_ERROR (1 << 28) -#define ERASE_PARAM (1 << 27) -#define WP_VIOLATION (1 << 26) -#define CARD_IS_LOCKED (1 << 25) -#define LOCK_UNLOCK_FAILED (1 << 24) -#define COM_CRC_ERROR (1 << 23) -#define ILLEGAL_COMMAND (1 << 22) -#define CARD_ECC_FAILED (1 << 21) -#define CC_ERROR (1 << 20) -#define SD_ERROR (1 << 19) -#define CID_CSD_OVERWRITE (1 << 16) -#define WP_ERASE_SKIP (1 << 15) -#define CARD_ECC_DISABLED (1 << 14) -#define ERASE_RESET (1 << 13) -#define CURRENT_STATE (7 << 9) -#define READY_FOR_DATA (1 << 8) -#define APP_CMD (1 << 5) -#define AKE_SEQ_ERROR (1 << 3) -#define OCR_CCS_BITN 30 - -typedef enum { - sd_none =3D -1, - sd_bc =3D 0, /* broadcast -- no response */ - sd_bcr, /* broadcast with response */ - sd_ac, /* addressed -- no data transfer */ - sd_adtc, /* addressed with data transfer */ -} sd_cmd_type_t; - typedef struct { - uint8_t cmd; - uint32_t arg; - uint8_t crc; -} SDRequest; + uint8_t cmd; /* 6 bits */ + uint32_t arg; /* 32 bits */ + uint8_t crc; /* 7 bits */ +} SDRequest; /* total: 48 bits shifted */ =20 -typedef struct SDState SDState; typedef struct SDBus SDBus; =20 #define TYPE_SD_CARD "sd-card" #define SD_CARD(obj) OBJECT_CHECK(SDState, (obj), TYPE_SD_CARD) -#define SD_CARD_CLASS(klass) \ - OBJECT_CLASS_CHECK(SDCardClass, (klass), TYPE_SD_CARD) -#define SD_CARD_GET_CLASS(obj) \ - OBJECT_GET_CLASS(SDCardClass, (obj), TYPE_SD_CARD) - -typedef struct { - /*< private >*/ - DeviceClass parent_class; - /*< public >*/ - - int (*do_command)(SDState *sd, SDRequest *req, uint8_t *response); - void (*write_data)(SDState *sd, uint8_t value); - uint8_t (*read_data)(SDState *sd); - bool (*data_ready)(SDState *sd); - void (*enable)(SDState *sd, bool enable); - bool (*get_inserted)(SDState *sd); - bool (*get_readonly)(SDState *sd); -} SDCardClass; =20 #define TYPE_SD_BUS "sd-bus" #define SD_BUS(obj) OBJECT_CHECK(SDBus, (obj), TYPE_SD_BUS) -#define SD_BUS_CLASS(klass) OBJECT_CLASS_CHECK(SDBusClass, (klass), TYPE_S= D_BUS) -#define SD_BUS_GET_CLASS(obj) OBJECT_GET_CLASS(SDBusClass, (obj), TYPE_SD_= BUS) =20 struct SDBus { BusState qbus; }; =20 -typedef struct { - /*< private >*/ - BusClass parent_class; - /*< public >*/ - - /* These methods are called by the SD device to notify the controller - * when the card insertion or readonly status changes - */ - void (*set_inserted)(DeviceState *dev, bool inserted); - void (*set_readonly)(DeviceState *dev, bool readonly); -} SDBusClass; - -/* Legacy functions to be used only by non-qdevified callers */ -SDState *sd_init(BlockBackend *bs, bool is_spi); -int sd_do_command(SDState *sd, SDRequest *req, - uint8_t *response); -void sd_write_data(SDState *sd, uint8_t value); -uint8_t sd_read_data(SDState *sd); -void sd_set_cb(SDState *sd, qemu_irq readonly, qemu_irq insert); -bool sd_data_ready(SDState *sd); -/* sd_enable should not be used -- it is only used on the nseries boards, - * where it is part of a broken implementation of the MMC card slot switch - * (there should be two card slots which are multiplexed to a single MMC - * controller, but instead we model it with one card and controller and - * disable the card when the second slot is selected, so it looks like the - * second slot is always empty). - */ -void sd_enable(SDState *sd, bool enable); - -/* Functions to be used by qdevified callers (working via - * an SDBus rather than directly with SDState) - */ +/* Functions to be used by qdevified callers */ int sdbus_do_command(SDBus *sd, SDRequest *req, uint8_t *response); void sdbus_write_data(SDBus *sd, uint8_t value); uint8_t sdbus_read_data(SDBus *sd); @@ -154,6 +71,6 @@ void sdbus_reparent_card(SDBus *from, SDBus *to); =20 /* Functions to be used by SD devices to report back to qdevified controll= ers */ void sdbus_set_inserted(SDBus *sd, bool inserted); -void sdbus_set_readonly(SDBus *sd, bool inserted); +void sdbus_set_readonly(SDBus *sd, bool readonly); =20 #endif /* HW_SD_H */ diff --git a/hw/sd/core.c b/hw/sd/core.c index 295dc44ab7..bd9350d21c 100644 --- a/hw/sd/core.c +++ b/hw/sd/core.c @@ -20,9 +20,8 @@ */ =20 #include "qemu/osdep.h" -#include "hw/qdev-core.h" -#include "sysemu/block-backend.h" #include "hw/sd/sd.h" +#include "sd-internal.h" =20 static SDState *get_card(SDBus *sdbus) { diff --git a/hw/sd/milkymist-memcard.c b/hw/sd/milkymist-memcard.c index 4008c81002..8c9bb27229 100644 --- a/hw/sd/milkymist-memcard.c +++ b/hw/sd/milkymist-memcard.c @@ -27,9 +27,9 @@ #include "sysemu/sysemu.h" #include "trace.h" #include "qemu/error-report.h" -#include "sysemu/block-backend.h" #include "sysemu/blockdev.h" #include "hw/sd/sd.h" +#include "sd-internal.h" =20 enum { ENABLE_CMD_TX =3D (1<<0), diff --git a/hw/sd/omap_mmc.c b/hw/sd/omap_mmc.c index e934cd3656..f7e42b3525 100644 --- a/hw/sd/omap_mmc.c +++ b/hw/sd/omap_mmc.c @@ -20,6 +20,7 @@ #include "hw/hw.h" #include "hw/arm/omap.h" #include "hw/sd/sd.h" +#include "sd-internal.h" =20 struct omap_mmc_s { qemu_irq irq; diff --git a/hw/sd/pl181.c b/hw/sd/pl181.c index 55c8098ecd..d568b12818 100644 --- a/hw/sd/pl181.c +++ b/hw/sd/pl181.c @@ -8,10 +8,10 @@ */ =20 #include "qemu/osdep.h" -#include "sysemu/block-backend.h" #include "sysemu/blockdev.h" #include "hw/sysbus.h" #include "hw/sd/sd.h" +#include "sd-internal.h" #include "qemu/log.h" #include "qapi/error.h" =20 diff --git a/hw/sd/pxa2xx_mmci.c b/hw/sd/pxa2xx_mmci.c index 3deccf02c9..f34951e1d1 100644 --- a/hw/sd/pxa2xx_mmci.c +++ b/hw/sd/pxa2xx_mmci.c @@ -16,6 +16,7 @@ #include "hw/sysbus.h" #include "hw/arm/pxa.h" #include "hw/sd/sd.h" +#include "sd-internal.h" #include "hw/qdev.h" #include "hw/qdev-properties.h" #include "qemu/error-report.h" diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 35347a5bbc..9b7dee2ec4 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -32,7 +32,6 @@ #include "qemu/osdep.h" #include "hw/qdev.h" #include "hw/hw.h" -#include "sysemu/block-backend.h" #include "hw/sd/sd.h" #include "qapi/error.h" #include "qemu/bitmap.h" @@ -40,6 +39,7 @@ #include "qemu/error-report.h" #include "qemu/timer.h" #include "qemu/log.h" +#include "sd-internal.h" =20 //#define DEBUG_SD 1 =20 @@ -1466,8 +1466,8 @@ static int cmd_valid_while_locked(SDState *sd, SDRequ= est *req) || sd_cmd_class[req->cmd & 0x3F] =3D=3D 7; } =20 -int sd_do_command(SDState *sd, SDRequest *req, - uint8_t *response) { +int sd_do_command(SDState *sd, SDRequest *req, uint8_t *response) +{ int last_state; sd_rsp_type_t rtype; int rsplen; diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index b064a087c9..e7cd3258a3 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -24,12 +24,12 @@ =20 #include "qemu/osdep.h" #include "hw/hw.h" -#include "sysemu/block-backend.h" #include "sysemu/blockdev.h" #include "sysemu/dma.h" #include "qemu/timer.h" #include "qemu/bitops.h" #include "sdhci-internal.h" +#include "sd-internal.h" #include "qemu/log.h" =20 /* host controller debug messages */ diff --git a/hw/sd/ssi-sd.c b/hw/sd/ssi-sd.c index 24001dc3e6..bd0b593b6e 100644 --- a/hw/sd/ssi-sd.c +++ b/hw/sd/ssi-sd.c @@ -11,11 +11,11 @@ */ =20 #include "qemu/osdep.h" -#include "sysemu/block-backend.h" #include "sysemu/blockdev.h" #include "hw/ssi/ssi.h" #include "hw/sd/sd.h" #include "qapi/error.h" +#include "sd-internal.h" =20 //#define DEBUG_SSI_SD 1 =20 --=20 2.15.1 From nobody Wed Apr 24 09:55:40 2024 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 1513195458097715.0011767734111; Wed, 13 Dec 2017 12:04:18 -0800 (PST) Received: from localhost ([::1]:37371 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDGG-00069V-9N for importer@patchew.org; Wed, 13 Dec 2017 15:04:12 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57564) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDBY-0002by-Gk for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ePDBX-0005Pc-Oy for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:20 -0500 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:35271) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ePDBX-0005PI-K6 for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:19 -0500 Received: by mail-qt0-x241.google.com with SMTP id u10so5252527qtg.2 for ; Wed, 13 Dec 2017 11:59:19 -0800 (PST) Received: from x1.local ([138.117.48.211]) by smtp.gmail.com with ESMTPSA id o5sm1518876qtc.72.2017.12.13.11.59.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 Dec 2017 11:59:18 -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=6jtdY5E4dw8Czk/tLGEry+fzRX5nk4Q5aOvyCDs3m0s=; b=GjV+c+B5wLuYSzOaDXJ42zcvq/5WhUJ0JVpDqat7ozm9Z0bOEl9vQ25Af78HM8ZMRl 8GfoR6yYgNKct5FerazD7IfhD66eGm4O2F0/3RAHLYDGPISNXA+8IXo5H/KNFyqKj8Kt ccPZ9iRtrwCTIRsnK3DLhQzElMhkKpejNy1S/xV4yyCVJ3I4uuRSASeaLANfZBMFEBsL 3XRYeZIhDPuJocb8+IzmZ1i9AL67pdoN5cKnaSLotMU96gzAGuNVETsadIR8aSDlcJmO GoVttG3HY+MTACEtg/u6+cQ51st88KZe+7CiIyoZ5SewwaVKnq2js4TjDoz5FnK18+dr M5uA== 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=6jtdY5E4dw8Czk/tLGEry+fzRX5nk4Q5aOvyCDs3m0s=; b=gxR4n+yU8J2X+cscmSriEhio0vMv+XHKFaixyrKk6cU29eLP57O7y7HQada+GZ7Jvj uT8Htu5+9x7YHn3GznQj75dOfd/qc0mTWCQ784kt/PFgs42y/8FjFbhJXJ+tNwAIerED iCq9puVCij2WMYs4bVbsJy0IO78Ailv8IW832VjcTQrNbyKqa2lskRGG2c+dYd78h4OX 7QUwGfld4Kx+PyGdiW3XHWf0TzCAnMOgcqb7tY0LUfiZMQlombOkcN+0BjWQtpPqg+N6 GfNI4KY8ueQd1wYyVgVan6b1aANzN+GU6Ont7ckkihgQU7y5bLfR9XeUODvch047caqQ gy4w== X-Gm-Message-State: AKGB3mLjZyuQAropc9cQYoPqgyhKuYpDqDfnHzWH+XFQLhSnfCjUgs8W 4g50jar2cnDlL+YS6mTOs0Q= X-Google-Smtp-Source: ACJfBotOpq+/EYOU7lEcWhhXNZVed6ePC5diN1wVvGKWJMR5tJgyhJxZAlRiFl/ojn/14girv81AEA== X-Received: by 10.237.35.207 with SMTP id k15mr13195868qtc.95.1513195159103; Wed, 13 Dec 2017 11:59:19 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Prasad J Pandit , Peter Maydell , Andrew Baumann , Andrey Smirnov , Andrey Yurovsky Date: Wed, 13 Dec 2017 16:58:40 -0300 Message-Id: <20171213195852.30439-3-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20171213195852.30439-1-f4bug@amsat.org> References: <20171213195852.30439-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 02/14] 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: Sai Pavan Boddu , Peter Crosthwaite , =?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 | 4 +++- hw/sd/sdhci.c | 1 + 3 files changed, 4 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..1b6a98d578 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 diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index e7cd3258a3..312b167bfa 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -28,6 +28,7 @@ #include "sysemu/dma.h" #include "qemu/timer.h" #include "qemu/bitops.h" +#include "hw/sd/sdhci.h" #include "sdhci-internal.h" #include "sd-internal.h" #include "qemu/log.h" --=20 2.15.1 From nobody Wed Apr 24 09:55:40 2024 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 1513195641252697.9511734207407; Wed, 13 Dec 2017 12:07:21 -0800 (PST) Received: from localhost ([::1]:37397 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDJ3-0008TE-ED for importer@patchew.org; Wed, 13 Dec 2017 15:07:05 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57591) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDBf-0002i4-BJ for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:28 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ePDBb-0005Rm-OJ for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:27 -0500 Received: from mail-qk0-x244.google.com ([2607:f8b0:400d:c09::244]:41385) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ePDBb-0005Rc-Jk for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:23 -0500 Received: by mail-qk0-x244.google.com with SMTP id 84so3515202qks.8 for ; Wed, 13 Dec 2017 11:59:23 -0800 (PST) Received: from x1.local ([138.117.48.211]) by smtp.gmail.com with ESMTPSA id o5sm1518876qtc.72.2017.12.13.11.59.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 Dec 2017 11:59: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=eXxodLdNPeLpc3jtX0IMV2nL8CvnhliZv2lDsYziGto=; b=HRhft/r7vLNaVHblmHIk2EWxb2uKMML6tFkeotnIVXNZHH61GJCBno66uoLhoB0rDB K0fymA1KKjVR4DjchR5rq8yxROZkUSEBjFWUtq5RAm8wjI1LsLJktARlk4pqzaKyaBY2 Or+IctcEGLL0EmsQ3mri+f3PTjVY9Ymp7e+tzFMa0pfU0j0KKTGEW59Ru4BKV0sx/Ax4 4AAWFw+q+Rmed9bBw7v5I+6rl2TSlLMDFedg2gx1gJKdi2xDjoYQeqkWfSmqRLahLQZ8 F5h7FMSh8FSicpEiHELbMEZJNNf5q74Idwnm4hAMZyoP56pRZQ9adCFzUbwoM9Pw8qpH 2LTw== 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=eXxodLdNPeLpc3jtX0IMV2nL8CvnhliZv2lDsYziGto=; b=Dymkvp25TUksOPjs4N2KzA/MnNL4TLFE7zS4nw0ds8B+xWg9yVSb/SjWTfBjrUVy5W 5ugBQMLt37Dj6r3j2qKUqIZzIVQMzGbyxcxqZmrZXqfUo+Orj7w6TNqdfotN1fXtSEmB fnvOEkYMlSBueA3LZxmBh/qqCN5yPaem1xUhgHxgDuEhgk5qKMO91KmP/hwfGc7dtCMU lcypARkZpge38iEUK8Xg8n733Y+smW129X4s4MXfxx/XrpCunEKOOLPeqPdxWCf/Gm8/ v+BlvYWCxHAoIVSDzaif1PnhX2erV6SN+12BbMj1ahpxCjFh3NzrkgZqlUPHmg8x1N/u vcEw== X-Gm-Message-State: AKGB3mJG1wNT9oOA4yJLw73Ey7iaVaxt+o7O55J6N0alyu5B+6tF8ulm sD+AD73nOun5oSMzDzdr7Hc= X-Google-Smtp-Source: ACJfBovdM8iB1nnMzAaSzCm9jKrhkzmXkAasTJAQYlDGiLGjCjVxUuhuRzBZedHD9tjFn8LlQad+iw== X-Received: by 10.55.129.199 with SMTP id c190mr12786454qkd.145.1513195162995; Wed, 13 Dec 2017 11:59:22 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Prasad J Pandit , Peter Maydell , Andrew Baumann , Andrey Smirnov , Andrey Yurovsky Date: Wed, 13 Dec 2017 16:58:41 -0300 Message-Id: <20171213195852.30439-4-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20171213195852.30439-1-f4bug@amsat.org> References: <20171213195852.30439-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 03/14] sdhci: use the ldst_le_dma() API 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: Sai Pavan Boddu , Peter Crosthwaite , =?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, also easier to review. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sdhci.c | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 312b167bfa..e39623baba 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -603,14 +603,12 @@ typedef struct ADMADescr { =20 static void get_adma_description(SDHCIState *s, ADMADescr *dscr) { - uint32_t adma1 =3D 0; - uint64_t adma2 =3D 0; + uint32_t adma1; + uint64_t adma2; 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, - sizeof(adma2)); - adma2 =3D le64_to_cpu(adma2); + adma2 =3D ldq_le_dma(&address_space_memory, entry_addr); /* The spec does not specify endianness of descriptor table. * We currently assume that it is LE. */ @@ -620,9 +618,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, - sizeof(adma1)); - adma1 =3D le32_to_cpu(adma1); + adma1 =3D ldl_le_dma(&address_space_memory, entry_addr); dscr->addr =3D (hwaddr)(adma1 & 0xFFFFF000); dscr->attr =3D (uint8_t)extract32(adma1, 0, 7); dscr->incr =3D 4; @@ -633,14 +629,9 @@ static void get_adma_description(SDHCIState *s, ADMADe= scr *dscr) } break; case SDHC_CTRL_ADMA2_64: - dma_memory_read(&address_space_memory, entry_addr, - (uint8_t *)(&dscr->attr), 1); - dma_memory_read(&address_space_memory, 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, - (uint8_t *)(&dscr->addr), 8); - dscr->attr =3D le64_to_cpu(dscr->attr); + dscr->attr =3D ldub_dma(&address_space_memory, entry_addr); + dscr->length =3D lduw_le_dma(&address_space_memory, entry_addr + 2= ); + dscr->attr =3D ldq_le_dma(&address_space_memory, entry_addr + 4); dscr->attr &=3D 0xfffffff8; dscr->incr =3D 12; break; --=20 2.15.1 From nobody Wed Apr 24 09:55:40 2024 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 1513195304969988.5776725822147; Wed, 13 Dec 2017 12:01:44 -0800 (PST) Received: from localhost ([::1]:37351 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDDh-00041x-4G for importer@patchew.org; Wed, 13 Dec 2017 15:01:33 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57603) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDBg-0002ik-3e for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ePDBf-0005Tc-GX for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:28 -0500 Received: from mail-qk0-x243.google.com ([2607:f8b0:400d:c09::243]:34684) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ePDBf-0005TL-Bo; Wed, 13 Dec 2017 14:59:27 -0500 Received: by mail-qk0-x243.google.com with SMTP id d66so3516297qkg.1; Wed, 13 Dec 2017 11:59:27 -0800 (PST) Received: from x1.local ([138.117.48.211]) by smtp.gmail.com with ESMTPSA id o5sm1518876qtc.72.2017.12.13.11.59.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 Dec 2017 11:59:26 -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=z6E5+U1ACwg79U4SK3UoRK21uWO/5CThallkdd8lB0g=; b=eza7hK9oQmN1N2AUmnM9/WvmqOwbyPqsh9PXNEuYyF419INmag3taezBMLIqB1jamM BPC8wKsMYkXi2fZl3iVZTn8zz5MRJ1BEsYdet02euyKPZhD855myTCZ7vZ02vvAUuBO4 ilVBY4XllUaU3BYgPtZszy4H7VkzvNpc4crdSkFnCXh20uEmKA42CrDGyvjFRWRYplFg UrhUsN7DGT6+gyrJCypK63m1na3zlGcx4+JSGaUgxneF2ms6iW+VAhZcB1an46EYPFhL gNhaNSjepHfMjlqktj7Xq2JuUhPVB+AIdGdF04xGFmP8e4GYcpu2I06oYH4EVppa8tZt POOw== 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=z6E5+U1ACwg79U4SK3UoRK21uWO/5CThallkdd8lB0g=; b=bkGX1oKDG7ZypzhRpJupiDPcmkEVQqAodBU/BctA9G99zzCAM8mN0EUXbxMhgWa7MG retWE/aS+ab3TfQwGLsOtano/JWScsP24aMxU2BnyMjVIdCgNmrq4PkjKL9CRGV+ihYg qwBzB4Cb8/Z4JYvCjhBDaReHSzCm1z/VRrfUZsK51OhqEG2CGhG9pKeBwYbI/fM3yN7Z LGbn86wdw7K4/Okt+zpFX5QyrSq2QVwFaSXaGqKlpzSRNQd9LZXtAqyJEG1hyDZJvJ3k xnRk2FDEjhI/m/VL7BW9c/kRBUFifwhJ5KEExUEmCyaAsVqrVHHr1X0xK7IFinOEjHF3 LNAg== X-Gm-Message-State: AKGB3mKUZnsctaXWgGs6NTL2pa3t4aI+bP/H42oPT5eReWu6N6Od3ZF+ +NPRK4wX23Jntj6D3SJzunw= X-Google-Smtp-Source: ACJfBotKguSq54TZEhN+Ku6fJQ6eNWckT2HmwDf8EiIYBebIzvDbAHxQBn+U568NRuQEKJ2aUaFpyw== X-Received: by 10.55.200.129 with SMTP id t1mr12214596qkl.198.1513195166816; Wed, 13 Dec 2017 11:59:26 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Prasad J Pandit , Peter Maydell , Andrew Baumann , Andrey Smirnov , Andrey Yurovsky Date: Wed, 13 Dec 2017 16:58:42 -0300 Message-Id: <20171213195852.30439-5-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20171213195852.30439-1-f4bug@amsat.org> References: <20171213195852.30439-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 04/14] sdhci: use deposit64() 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: qemu-trivial@nongnu.org, Sai Pavan Boddu , Peter Crosthwaite , =?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, also easier to review. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- 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 e39623baba..295a89e5d3 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -1123,12 +1123,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, 32, 0, 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, 0, 32, value); break; case SDHC_FEAER: s->acmd12errsts |=3D value; --=20 2.15.1 From nobody Wed Apr 24 09:55:40 2024 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 1513195307784713.0608852310191; Wed, 13 Dec 2017 12:01:47 -0800 (PST) Received: from localhost ([::1]:37353 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDDt-0004CI-1B for importer@patchew.org; Wed, 13 Dec 2017 15:01:45 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57647) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDBk-0002nI-Hw for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:33 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ePDBj-0005W4-GO for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:32 -0500 Received: from mail-qt0-x244.google.com ([2607:f8b0:400d:c0d::244]:39075) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ePDBj-0005Vz-Bv; Wed, 13 Dec 2017 14:59:31 -0500 Received: by mail-qt0-x244.google.com with SMTP id k19so5215577qtj.6; Wed, 13 Dec 2017 11:59:31 -0800 (PST) Received: from x1.local ([138.117.48.211]) by smtp.gmail.com with ESMTPSA id o5sm1518876qtc.72.2017.12.13.11.59.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 Dec 2017 11:59:30 -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=RmG/wUcbgmzb7Ka3YwOgkzKBo14/fgQtu6bUWRa0u7o=; b=HQL/gxvWh2MO1WXmnpdlaeao5l4bu63SouYSavcqzINt0kqdCaQok1nBio6TY4Orr8 +585HO1EtGyRKI1NxR+uZX/LwmRknFKdp1sO38IREylJRwhVf5qTOGRi/lD2+EdDYFUg mN60kTfajgdYAt5XtpYII+Jn76yGSeiM+Njx8e4vYwBkoi4srIjipRXk8bApmv4LgMZc axu2rQwOTQmW4K4wPk5dBQ50H4SzDjTJPb7MAX19KyvfB1FCw8zirq8Ik0nqy1yYayIk amBbtX3Nbc7ecdALex2Pt92Qw27WwzpkDpbCRDEDWBSA0JJzBf7ZunacnNJNAF9hLZzC HZVQ== 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=RmG/wUcbgmzb7Ka3YwOgkzKBo14/fgQtu6bUWRa0u7o=; b=nQV1ol/IhMzLxj7NKnJI7J71WTnXHAYQ9Wu7ECkqAJV0BN/1UYDuzO8E1wl+l7FrSU cgtcr5+/pUCmR1u2bmshS97reyDbA6/jG0/72/Up67kRYvJMqSTKXpWuK+VYHLOaqjPh gvOF8gr+VK7pY36Wptgxz+2F3Vgc9nWKvI1xfcU5H4NPAcmiEFveRbpGU/c0Yr+UpDw9 vB6CxzACN+iEhJSgX29juRI4EVWGaUfmV60Rvu81uhkoyyxUP/n4C2mxP6ZGPLlvhu/3 P5xZ6ZaarGlEBlW+C1DRlmRhD//w9cKO4BcZjGXks8jKtxvbi5CV07zud8ZYa+6kdfd6 Hwfw== X-Gm-Message-State: AKGB3mJEEJOOJYIWnSsOvU54ZKezi2x3afjk5EptyxXMltp193MP9wyR Jm9YQo9G2uYZb991b92UUKw= X-Google-Smtp-Source: ACJfBosU9c+WbXNR/CIIPseqAZQhRPEDeeQPV3RdZj0OEDsgTDnb2rSpFb+UElRcjNW+uNWpiEmDBA== X-Received: by 10.200.39.196 with SMTP id x4mr12269552qtx.246.1513195170769; Wed, 13 Dec 2017 11:59:30 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Prasad J Pandit , Peter Maydell , Andrew Baumann , Andrey Smirnov , Andrey Yurovsky Date: Wed, 13 Dec 2017 16:58:43 -0300 Message-Id: <20171213195852.30439-6-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20171213195852.30439-1-f4bug@amsat.org> References: <20171213195852.30439-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 05/14] 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: qemu-trivial@nongnu.org, Sai Pavan Boddu , Peter Crosthwaite , =?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 295a89e5d3..a56c0c273e 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -120,7 +120,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) @@ -1043,7 +1042,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 Wed Apr 24 09:55:40 2024 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 151319568127357.62175519585071; Wed, 13 Dec 2017 12:08:01 -0800 (PST) Received: from localhost ([::1]:37402 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDJs-0000kT-GM for importer@patchew.org; Wed, 13 Dec 2017 15:07:56 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57685) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDBq-0002t1-Nu for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:39 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ePDBn-0005Zb-7V for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:38 -0500 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:42270) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ePDBn-0005ZP-3h for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:35 -0500 Received: by mail-qt0-x241.google.com with SMTP id g9so5222848qth.9 for ; Wed, 13 Dec 2017 11:59:34 -0800 (PST) Received: from x1.local ([138.117.48.211]) by smtp.gmail.com with ESMTPSA id o5sm1518876qtc.72.2017.12.13.11.59.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 Dec 2017 11:59:33 -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=GFEQQewkMa7l1jUgT4pmA2M/PutdRDSnUtofL9CtNUI=; b=BqK7khFZXTy1lTip4G0ji5FwW47SjVIn3THLWe54MCcVaDWzBcvAeaS3VYNDZg/u+N SSX4yFVxnXygB44k8ZF5alceUTkeDNTnk4ZEQVs0zCO/8jt4J7Y7kTaT4QNOzw3MdZkm eGysf5TNjsDpI6LOD96G+hjV9x6ahoF/0gqAKf86K29JB8ZQy7v6i0JRWN5YX3j0JyJg R3azrYNrxYKAYphDf0oXqVHEIXOXvwAiwjoj/TQV+fWBh6kElw53JcwQzWg8tRYzvgtb h5hDJ/Lnc/tQXTP7Xd7NIC31j/WtRmn+6EK14C9p1lpS2rpLgPtEe3eWHJU82UuFsHW6 1i0g== 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=GFEQQewkMa7l1jUgT4pmA2M/PutdRDSnUtofL9CtNUI=; b=s1ChW7qB/GBTzyQXhBTNsXPxhSelJAjS9VDZCRX0fOIQoVuPLTzHF+cjX2znZdl9vO n13fHL6RsMNqykAGK1vm4iwDPhFQlSbZYTyfV0AwYyVGSyoK40f/EnSpmY98vTFuaIPX FTg+KTIIOZrjeKWLtxO2CLdwtlt6no879EAK9mSIl2sYtKe4f4ZRLlZG3atKkLWHOljq y52a1KwgYjtdoiGZO4d1L8cl2Wqqza2DUau9L1kquVoch68ALA6azjSKt+YxEwZ8VUOO TWPetACKcGmoLtKSh40Gx+p8iPhoZxci2SJij0Uf/OMfwL4UBii+nX5GKGPvqpN0EkZE AohA== X-Gm-Message-State: AKGB3mK4Unect3CVybyERTmMWsqKDmh+GrMBGftZEUUU+4ssltRaLoAv vWbAkmjl1WzUS9MwvvTdbSk= X-Google-Smtp-Source: ACJfBotnN6eRrLS+gOxT9KDoetnMxqlB8lRyeWJ+PU1pF8/Yd5gIEXX8UlxnTCKnagK9aq9hDBFC7A== X-Received: by 10.237.59.183 with SMTP id r52mr12805152qte.121.1513195174506; Wed, 13 Dec 2017 11:59:34 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Prasad J Pandit , Peter Maydell , Andrew Baumann , Andrey Smirnov , Andrey Yurovsky Date: Wed, 13 Dec 2017 16:58:44 -0300 Message-Id: <20171213195852.30439-7-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20171213195852.30439-1-f4bug@amsat.org> References: <20171213195852.30439-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 06/14] 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: Sai Pavan Boddu , Peter Crosthwaite , =?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 sysbus/pci/sdbus separator comments to keep it clearer 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 a56c0c273e..c8b7b1ca4c 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -1256,13 +1256,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); @@ -1295,7 +1299,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 @@ -1310,14 +1314,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) { @@ -1350,7 +1347,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; } @@ -1364,6 +1361,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 Wed Apr 24 09:55:40 2024 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 1513195481516572.5076322455303; Wed, 13 Dec 2017 12:04:41 -0800 (PST) Received: from localhost ([::1]:37373 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDGg-0006Td-Oa for importer@patchew.org; Wed, 13 Dec 2017 15:04:38 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57705) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDBr-0002tq-Kf for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:40 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ePDBq-0005b8-Tx for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:39 -0500 Received: from mail-qk0-x242.google.com ([2607:f8b0:400d:c09::242]:36542) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ePDBq-0005am-Pm for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:38 -0500 Received: by mail-qk0-x242.google.com with SMTP id 8so3509992qkj.3 for ; Wed, 13 Dec 2017 11:59:38 -0800 (PST) Received: from x1.local ([138.117.48.211]) by smtp.gmail.com with ESMTPSA id o5sm1518876qtc.72.2017.12.13.11.59.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 Dec 2017 11:59:37 -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=mA6ysxPAJFJ2GZWTZYxgfX7wBsNWwLuWJcrH3L1CWXU=; b=D037Qhvb7yhbCFezaXvGP4WCMLZbms00PH4dsdLd575VnJhCti2yKVo3KGQlfjnOh0 D5kqIUU6RUmLShtIRuW2q7PfJbGhHI9p83cmMYB4g6dJxGQsSsLvtlGHaSbE1I/WyKlN DlmTCfpo8fiQA5FD1BeON/6ma36pazFfwT6/6/GunR+0J5B20qaKI5NStY/x3HYuDUF0 lj1jfW/kiS5iIiejW3rwb4wfm3Wk57mIma3TTHd+FL+gll327RkInQzQ7bZ6dnM5RJwT aABaeIGlwH5lpZ12e1GhCHY+6Z92410/V0sjkdgEkQl4bZ1qseaRSYYTBPMHdvQelt+k ULlQ== 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=mA6ysxPAJFJ2GZWTZYxgfX7wBsNWwLuWJcrH3L1CWXU=; b=eztpK+JZT7wad8cP/r8VpSjZLt5r1zA5UY5XSABliLlWNmUvRSSSf/QXylPlWsIX6X x0Vm21ntWUv7ZgBWEgY6XmPAPmPyDiNxXd6QmNIdCFmqUamOHktWs7KH5+aMDX/aoqJ1 9GBp44MSjBCFyitJ2cFMOn6jWzkLL/bSY+q7CpA9t2GJO5DPA5OP027/eT1K+7CYyXSc MJXq2vZ2dwbajvW/fhNhj1tbTEQyFq3ARaJK8F69dY/Vp536TC/IBnNc9Cte12KWU5ln De1nvOu16vkrzHFQohSvlDgr3jwMm19uK19rqN1aN7aRrpv7K19PzjagIyh8kwumFlMO hb9Q== X-Gm-Message-State: AKGB3mI91eM5k8hMhXCFmmqTUz8Lmv25xm828ApCTYrzimcNGmx/UuSp gqYyqm2CBHEOuzBvpX1UqN0= X-Google-Smtp-Source: ACJfBos6vjOXucrRjPwlzBL3ghBkI8ocxSM0Hd3yF5FV+28fHRaeM7OSKlYenJhRG12q4NUiF9hHnw== X-Received: by 10.55.245.19 with SMTP id l19mr12744879qkk.157.1513195178221; Wed, 13 Dec 2017 11:59:38 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Prasad J Pandit , Peter Maydell , Andrew Baumann , Andrey Smirnov , Andrey Yurovsky Date: Wed, 13 Dec 2017 16:58:45 -0300 Message-Id: <20171213195852.30439-8-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20171213195852.30439-1-f4bug@amsat.org> References: <20171213195852.30439-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 07/14] 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: Sai Pavan Boddu , Peter Crosthwaite , =?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 | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index c8b7b1ca4c..a96cd8a2df 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -1182,6 +1182,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); @@ -1272,12 +1281,11 @@ static void sdhci_pci_realize(PCIDevice *dev, Error= **errp) SDHCIState *s =3D PCI_SDHCI(dev); 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); + sdhci_realizefn(s, errp); + 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 @@ -1334,11 +1342,9 @@ static void sdhci_sysbus_realize(DeviceState *dev, E= rror ** errp) SDHCIState *s =3D SYSBUS_SDHCI(dev); SysBusDevice *sbd =3D SYS_BUS_DEVICE(dev); =20 - s->buf_maxsz =3D sdhci_get_fifolen(s); - s->fifo_buffer =3D g_malloc0(s->buf_maxsz); + sdhci_realizefn(s, errp); + 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 Wed Apr 24 09:55:40 2024 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 1513195660423784.7266052157454; Wed, 13 Dec 2017 12:07:40 -0800 (PST) Received: from localhost ([::1]:37400 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDJT-0000PI-Gu for importer@patchew.org; Wed, 13 Dec 2017 15:07:31 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57724) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDBv-0002xy-Ff for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ePDBu-0005d1-PO for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:43 -0500 Received: from mail-qk0-x241.google.com ([2607:f8b0:400d:c09::241]:45685) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ePDBu-0005cp-KY for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:42 -0500 Received: by mail-qk0-x241.google.com with SMTP id d141so3504266qkc.12 for ; Wed, 13 Dec 2017 11:59:42 -0800 (PST) Received: from x1.local ([138.117.48.211]) by smtp.gmail.com with ESMTPSA id o5sm1518876qtc.72.2017.12.13.11.59.38 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 Dec 2017 11:59:41 -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=iybBckITqk47xGb2F95oj2G6Lgffp7WZvoP5D40QQHc=; b=eiMn3AcHK9p7PFMUyu49VowJ5DpjPflyqKGzZx+x+dyB8j73m+yROY1fxx4K++5ScL scc7paKbdcTSxb3pHT5wFLbigqnE8VehMZANgFd5JLJtwbhHUHqZfpgW9M4JrU53shb+ f8Bg8LvIHBVBs1nGUpPd+qyrpBSbfVnfMmmEpKkUCLutRRxRTdg6nGF9INQZ3o7ax89W 2tqeA6iSTCSIu4dOKvPfBvl+k7QF0YZHpFcp1X7UIoldMa1fbR7v0aFgHmgkQ7VvFLvF LFEtxFCzel/lYDxNHGTLJI1T3jm8jlhQOumBqZkKgUDNzNOkSkHtRjcLy550g7ylY1is quNA== 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=iybBckITqk47xGb2F95oj2G6Lgffp7WZvoP5D40QQHc=; b=QCjnrnGTgZn7N1k2Vywn9q3FZvs7Uk4NxpHuIYMMh3O48Fvad2LjPm0s9sQJx88AX4 0e6fiQovgImm9RwgnFm9XfWv+5f4LOaTFeektAfY2jTTLfsTDOk8FoQsXw1FX+fLRYYG RwgXQBsS3nVXKf1b7I0ZkctkrqqSASPiwj04rYyDbcVnxeCAWigIAMrbJEO7UFK0b2Un 22qEfD8Mtn/MVyCqn/L2iG1JD5+tm1cdMp0BSfEvIpHjbldznro6DHYRzgA2rhlX7152 Vj4eKg7tSUwX5BfmdLOD68V5hUZVe0oEOA22S7P8J6uXwJPsSzOUvEcwENzWQrFtjNDL UvqQ== X-Gm-Message-State: AKGB3mIcGvKJOVDOQEe7qU32BFTsyyOtt7hEUMNpCT9GDDrji9GIoQv+ 5MJ4PbT16mtmekb1JbosRmo= X-Google-Smtp-Source: ACJfBos0+LdK9T561pqThuAlQ/PhDM9kh9Hi2s+zPo4hbXoSbZhmOgc3MG2XBr/kpYPT9lMijKaqVw== X-Received: by 10.55.18.134 with SMTP id 6mr12737765qks.136.1513195182047; Wed, 13 Dec 2017 11:59:42 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Prasad J Pandit , Peter Maydell , Andrew Baumann , Andrey Smirnov , Andrey Yurovsky Date: Wed, 13 Dec 2017 16:58:46 -0300 Message-Id: <20171213195852.30439-9-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20171213195852.30439-1-f4bug@amsat.org> References: <20171213195852.30439-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 08/14] 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: Sai Pavan Boddu , Peter Crosthwaite , =?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 | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index a96cd8a2df..893be0e606 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -1274,6 +1274,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) @@ -1297,7 +1307,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; @@ -1305,10 +1314,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 { @@ -1352,10 +1359,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 Wed Apr 24 09:55:40 2024 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 15131954908711012.9162126903177; Wed, 13 Dec 2017 12:04:50 -0800 (PST) Received: from localhost ([::1]:37375 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDGr-0006dD-QH for importer@patchew.org; Wed, 13 Dec 2017 15:04:49 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57753) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDC3-00034p-OM for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ePDBy-0005eq-Pk for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:51 -0500 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:45715) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ePDBy-0005eb-LY for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:46 -0500 Received: by mail-qt0-x242.google.com with SMTP id g10so5180863qtj.12 for ; Wed, 13 Dec 2017 11:59:46 -0800 (PST) Received: from x1.local ([138.117.48.211]) by smtp.gmail.com with ESMTPSA id o5sm1518876qtc.72.2017.12.13.11.59.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 Dec 2017 11:59:45 -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=3eUkrGvN9AFd9t/Cbfdf6Qq8RzJ5cOvweYFPaf+ecvk=; b=HsIvPFrN9QnBE6G4TwrZtBtDfZUJT1V6U82nUVzQqUmatd6pzwCkp7YEpeTXLDBkkk QIPJKK+ghHyZu/h9FuxnWHYKcmYLCvd3H0nZuz9B061Bszr6MQz8RcnZUTv8Redw+bYa z+ebkYBql/1UHzJK1il+N3V5PiDLZHBrXVkVh5TOTaSVc1sQeEvyM2yv6gUenxK7zarV D9EfYdf7yXLhPVp3a2i3je7Ed2CEowTw/zfHGymw0IrYSm2A9CEfR8pA7o46GDdVeh2G fHcP2SUC5niE2Hgee1uMmjereD6EFp2U7njPSr1/x9UycPySQGZ4lNkXctf7Q8e+mDmW v37A== 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=3eUkrGvN9AFd9t/Cbfdf6Qq8RzJ5cOvweYFPaf+ecvk=; b=h7HvhOKrBbPJ+LsALtGP9NfDqKzzwUsi27KcWXVg8ZLQvsAbhxGqZUDFQBgePeuMBz eoo7/fbNbKvrIpbIotPn5ren/iJnev8AkbrN3Pb+DmpYHOtmu4cXaz7YBqoM5mF43pOp pzV3MEWnp8GAdspwMUhZxX79flXR6S8HSnSMWsknRpqlJzOklXp4b/mcFGEJW4j7jWTy 9+zYPVwL5u7lP1Ca389xyTPuefrcGBiugjPqkEq2W6LhE0/1y2O5kEMDD/MwECGKf8+W hjq/mQeALqynL80gGp3ja9qG4E0MZUKCIpBnX0mlaMw0C97z/aqF+9guNqHdgJGQBOeI mOKw== X-Gm-Message-State: AKGB3mKjCyWRMqcpbS9QwoSer7BwHPEw2JlpsD7QnJNLIbNowkxZEhia aYgCYbZ5ObqKH/OSkg9CbpA= X-Google-Smtp-Source: ACJfBotHbxnSze8gRkvbP+D39aE90HqeED6jOK9yIu3a/VzD2f8UO0AQcY1mWOnwaj7XtPxI9IFTEw== X-Received: by 10.200.24.221 with SMTP id o29mr13007908qtk.281.1513195186076; Wed, 13 Dec 2017 11:59:46 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Prasad J Pandit , Peter Maydell , Andrew Baumann , Andrey Smirnov , Andrey Yurovsky Date: Wed, 13 Dec 2017 16:58:47 -0300 Message-Id: <20171213195852.30439-10-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20171213195852.30439-1-f4bug@amsat.org> References: <20171213195852.30439-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 09/14] 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: Sai Pavan Boddu , Peter Crosthwaite , =?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 | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 893be0e606..044e3d62f1 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -31,6 +31,7 @@ #include "hw/sd/sdhci.h" #include "sdhci-internal.h" #include "sd-internal.h" +#include "qapi/error.h" #include "qemu/log.h" =20 /* host controller debug messages */ @@ -1191,17 +1192,21 @@ 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); + 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); + qemu_free_irq(s->eject_cb); qemu_free_irq(s->ro_cb); - - g_free(s->fifo_buffer); - s->fifo_buffer =3D NULL; } =20 static bool sdhci_pending_insert_vmstate_needed(void *opaque) @@ -1302,6 +1307,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 @@ -1355,11 +1362,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, errp); +} + 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 Wed Apr 24 09:55:40 2024 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 1513195816674410.17355419556554; Wed, 13 Dec 2017 12:10:16 -0800 (PST) Received: from localhost ([::1]:37422 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDM4-0002mk-0V for importer@patchew.org; Wed, 13 Dec 2017 15:10:12 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57754) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDC3-00034q-OF for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ePDC2-0005g8-Ba for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:51 -0500 Received: from mail-qt0-x244.google.com ([2607:f8b0:400d:c0d::244]:45718) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ePDC2-0005g0-6s for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:50 -0500 Received: by mail-qt0-x244.google.com with SMTP id g10so5181071qtj.12 for ; Wed, 13 Dec 2017 11:59:50 -0800 (PST) Received: from x1.local ([138.117.48.211]) by smtp.gmail.com with ESMTPSA id o5sm1518876qtc.72.2017.12.13.11.59.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 Dec 2017 11:59:49 -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=2yUqg0oNMHwGlUOTHXA8HPu1/j7/WdURagCZOY2aXb4=; b=PnLDb1j0nhzxQydGleS1gL20/FeLnxXwPsKdyGFyhbzLKR1C3HasAl/sZHu4leoRcV hA0lJSmAizQhDvQteM8LwEwwmXnGF+X1/jefkk/oydWujwv2uVhTzRu/lRhZYBAGEn9F nOxnO5x0ctEQculSlOxvFaABhC8vyfELUdBRYAkeQXSnVvSsYMUX9ua1UaoqIVetbNmk hHsPT2SOHtpNtAUM+sxOavFqueJGXJjLresWVYSgqLMDCLtzNZw/XyTodYafbwfnqw+p f2+vUyjfb8Rijz1EUOWDw0+TpgT4DgGgR1Jk7kIHyYZxDCikQpnf8nhLPgfD3ipGYFvA kMeg== 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=2yUqg0oNMHwGlUOTHXA8HPu1/j7/WdURagCZOY2aXb4=; b=sC9xrOFKb5I52okZX40g3Qxqx12f9i8Y1rClVivR2N0+9TfeMdde/YVaNy3whHUE1O LsDbi+zmNA+AeJB0rlhKz+qt1wUE/u+obkxZdyYtRM3R6Ikpx0Kin9kgQDSE/bGoVcjW qONFXJWx1XXEftku1EXZ9pBFmfzNu//cT3nhvHI4DUcwFrERqE92+9ZiJkq8Edf9zzJg uqtjJc0fwNEB/0CRW2sTenO0XMV6/WCiIcLWekhnn3QW712CIDDcjFvrjfm2H84YgIAo 7v4nbJg5W3HyDrGX/a081RPOwbk6b8S2j8W+3xYCinnfTX7UdPUD/6Hbcx8/Ac/uoOK2 4Kgg== X-Gm-Message-State: AKGB3mK4eSwo0Nu7uduwN5UyxDfIk8/3fk+D+dkZKAajLc8jU51QP75B TM5zlkfRLIoglpYWmty2yOo= X-Google-Smtp-Source: ACJfBoutNNdUYHSvPrADZZW2cUFLBqI9VFkGeppGUN6Nw2frKiDg5cBkmPMD2Z0VZ/o58eHKZx843w== X-Received: by 10.200.25.227 with SMTP id s32mr12406521qtk.307.1513195189692; Wed, 13 Dec 2017 11:59:49 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Prasad J Pandit , Peter Maydell , Andrew Baumann , Andrey Smirnov , Andrey Yurovsky Date: Wed, 13 Dec 2017 16:58:48 -0300 Message-Id: <20171213195852.30439-11-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20171213195852.30439-1-f4bug@amsat.org> References: <20171213195852.30439-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 10/14] 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: Sai Pavan Boddu , Peter Crosthwaite , =?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 | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 044e3d62f1..8fcd48f849 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -936,7 +936,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 @@ -1140,8 +1141,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 Wed Apr 24 09:55:40 2024 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 1513195831668425.505836263702; Wed, 13 Dec 2017 12:10:31 -0800 (PST) Received: from localhost ([::1]:37423 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDMA-0002rn-Q9 for importer@patchew.org; Wed, 13 Dec 2017 15:10:18 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57780) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDC8-00038x-7s for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ePDC6-0005iS-GS for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:56 -0500 Received: from mail-qk0-x243.google.com ([2607:f8b0:400d:c09::243]:45689) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ePDC6-0005iI-AJ for qemu-devel@nongnu.org; Wed, 13 Dec 2017 14:59:54 -0500 Received: by mail-qk0-x243.google.com with SMTP id d141so3504946qkc.12 for ; Wed, 13 Dec 2017 11:59:54 -0800 (PST) Received: from x1.local ([138.117.48.211]) by smtp.gmail.com with ESMTPSA id o5sm1518876qtc.72.2017.12.13.11.59.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 Dec 2017 11:59: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=rTYWJayR9l8uj8ZgTxbXvuCyo1P9p7pwSgWWoIIPSfg=; b=Nw8gQus+rKF1jQmyIu+qDDB1gNNr3CmxcDJPrq5UaeGr7el/jZ3ZRoaDUKobAXqlFU EBgx+cBC4JDcYBaJYbrSefDAQU63QMEkWPilQQn/k/26Jjj0MGCnFhYiu+WOwp9IeQff OnCcp67PJ/YIAbj93VXG5EIxqo5Usl/cnQ4hxgKq5gGC46bzlPxx+4fAkpDW0OF3DMKC ViD1KmDIwxKdhQzFPXvXiT3PxF8fbJ/C60m5aT+YdIvezRNMsnaDLHeh6qCtcDd9sLQu LlrlNfFyVtsAR0eRgsnMOnDgYG2t2vO0Lc44iPBiV59xve8vCmpaBIlCOl5pkzETugGu H4mA== 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=rTYWJayR9l8uj8ZgTxbXvuCyo1P9p7pwSgWWoIIPSfg=; b=BHr7uXpl4Pt1mz9ibVgOGI3v2y5Xl2ub3bx12OKAGl1g4EVABLr1zi+L6TBNq2lqts uuZoUR4VVvO3nXCEHww8FDTyBq4mpDxqurmJuClUO0tcYWxj+XR1loxrr1HK9nnNTQgd qBDkNDuxlm19PT8NS1ip6ZT6SF3ODJQS724wNguQr4H0ncx85lH7JXjb1UIO9Og5cKGd /MKfypBhU03wsZjSWiZSRCPJs8mZ9m3IZFD6rmNn8oitsMbhaN4MNJRyq+haDc1I5bR9 ZBdXjfPmlrDfPVC0RusARcnaANOxXB5tmoxQtcuRJUPCv5gGyr+0IGQLcwFPzswnUXtu ck1g== X-Gm-Message-State: AKGB3mI2Ulz1J/eGg65IvcnLyZm7+9NenA7HjyPLaUrnZvlJkzth8dXr 3rbzEB3QQwAyWow/K6cK6+4= X-Google-Smtp-Source: ACJfBotXNxSNDIlSHoLXXgDt0zvxGGZutovtET/zRE9+VlsljLUzDsTs3gWVxczGQJuZFd+rZqTFBg== X-Received: by 10.55.102.207 with SMTP id a198mr11915255qkc.345.1513195193620; Wed, 13 Dec 2017 11:59:53 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Prasad J Pandit , Peter Maydell , Andrew Baumann , Andrey Smirnov , Andrey Yurovsky Date: Wed, 13 Dec 2017 16:58:49 -0300 Message-Id: <20171213195852.30439-12-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20171213195852.30439-1-f4bug@amsat.org> References: <20171213195852.30439-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 11/14] 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: Sai Pavan Boddu , Peter Crosthwaite , =?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 8fcd48f849..aa2d2fa3d3 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -33,30 +33,7 @@ #include "sd-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) @@ -154,8 +131,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, @@ -237,7 +214,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) { @@ -245,7 +223,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]; @@ -255,11 +233,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; @@ -293,7 +270,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) | @@ -362,7 +339,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 @@ -371,8 +348,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 @@ -455,7 +431,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 @@ -464,8 +440,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) { @@ -644,15 +619,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 */ @@ -735,8 +709,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; @@ -744,8 +717,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; } @@ -756,15 +728,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; } @@ -800,7 +772,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 @@ -808,7 +780,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 @@ -817,14 +789,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 { @@ -859,8 +831,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; @@ -890,8 +862,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; @@ -943,7 +914,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 @@ -1145,8 +1116,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..f7a85be53d 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" HWADDR_PRIx ", 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" HWADDR_PRIx "= ] %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 Wed Apr 24 09:55:40 2024 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 1513195727484724.7653450960012; Wed, 13 Dec 2017 12:08:47 -0800 (PST) Received: from localhost ([::1]:37408 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDKe-0001Qo-PY for importer@patchew.org; Wed, 13 Dec 2017 15:08:44 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57832) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDCI-0003HY-Cq for qemu-devel@nongnu.org; Wed, 13 Dec 2017 15:00:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ePDCD-0005lZ-FV for qemu-devel@nongnu.org; Wed, 13 Dec 2017 15:00:06 -0500 Received: from mail-qt0-x243.google.com ([2607:f8b0:400d:c0d::243]:42279) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ePDCD-0005lJ-5u for qemu-devel@nongnu.org; Wed, 13 Dec 2017 15:00:01 -0500 Received: by mail-qt0-x243.google.com with SMTP id g9so5224530qth.9 for ; Wed, 13 Dec 2017 12:00:01 -0800 (PST) Received: from x1.local ([138.117.48.211]) by smtp.gmail.com with ESMTPSA id o5sm1518876qtc.72.2017.12.13.11.59.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 Dec 2017 11:59:57 -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=B+kBd5LsvkWd8QsekJVvagiHopsJ/weHzQM+Sj/Xjt8=; b=vOQYYriBK3tkCCAHSSyLREru49gFY18DwTIGz7bA9Sy2U97K5UvTiNaNxIlnf1SVCL ++xh9Bg541lP/n+xGzAbKNrz2fXeXddxTcLuXqHZ3AF0INOeo7UoPiqUI6u/jBXqoMZ/ GoUZkOEiEyHyv1XCC78LunR3O4U2kboZiTGpZhnSQugnhf8aeRtbvQ6tE7QScs0ykgT8 nlw1hefUgdEmKFpvpmPvpvTRF0x9Pf60y0bxqvIPs2nh8JkZwpeWEkkmy8CqVmKkVSRZ 8wHhyq2mFm1Sl0YnWGhCA1a0xrwqYB6fp8Bhb8cI4o7RRIHB799oS45sYCIM+QtCDCzS nInw== 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=B+kBd5LsvkWd8QsekJVvagiHopsJ/weHzQM+Sj/Xjt8=; b=G6OeE3Dt3/3W0rtC9r3XyqCUfPjnYQik2i8o8VdWFtB8TtwKidxn0O1YSQ3SNo5dlv h1jkbsVvUHe7fvhWExS9yY39QI5m8vUgObKmj2Q642tMlGCG5bK6lWDtPKhPbKkbXoRw qvCNsnwd2RtwGK0/Olt7sgXXSmmbvrva/xwGptCT8+VvsoPgVBjCVVAsdoc3NZoejnhQ RHTxyaZqzstyeWdq5wALo+B+tSVEncq+S0oq3zJcwCNKyASdPtKP0WviNJfLBfIKZJpo 7LSbTk/R1Tm5YDrtmbMwC5ttQXr6at+++HJ+f/0+r9ikrfWQzGLxtXBFtPaQXXS4TS7J 5EKQ== X-Gm-Message-State: AKGB3mKNBedMY48GJc+xzGbMacP/vdLKhdIwEe2DgNdzDiMzEufDN/os kOqnMlufQHcLvWWjscpqQQ8= X-Google-Smtp-Source: ACJfBovbBidVALdN1lzGv3cAFd2n/H8KwX/b7/xMxR0rehhhQL4jXVv3XqELtNzbvZLnPKf63FjqAw== X-Received: by 10.200.6.208 with SMTP id j16mr13117966qth.28.1513195200601; Wed, 13 Dec 2017 12:00:00 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Prasad J Pandit , Peter Maydell , Andrew Baumann , Andrey Smirnov , Andrey Yurovsky Date: Wed, 13 Dec 2017 16:58:50 -0300 Message-Id: <20171213195852.30439-13-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20171213195852.30439-1-f4bug@amsat.org> References: <20171213195852.30439-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 12/14] sdhci: add a trace event for the LED control 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: Sai Pavan Boddu , Peter Crosthwaite , =?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. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sdhci.c | 1 + hw/sd/trace-events | 1 + 2 files changed, 2 insertions(+) diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index aa2d2fa3d3..dadc4787b2 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -1041,6 +1041,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; } + trace_sdhci_led(s->hostctl & 1); break; case SDHC_CLKCON: if (!(mask & 0xFF000000)) { diff --git a/hw/sd/trace-events b/hw/sd/trace-events index f7a85be53d..11f8fa4fc1 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" HWADDR_PRIx "= ] %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 Wed Apr 24 09:55:40 2024 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 1513195893749688.0621431368005; Wed, 13 Dec 2017 12:11:33 -0800 (PST) Received: from localhost ([::1]:37430 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDNI-0003tV-J6 for importer@patchew.org; Wed, 13 Dec 2017 15:11:28 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57859) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDCK-0003Ji-Pe for qemu-devel@nongnu.org; Wed, 13 Dec 2017 15:00:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ePDCH-0005oM-4l for qemu-devel@nongnu.org; Wed, 13 Dec 2017 15:00:08 -0500 Received: from mail-qt0-x241.google.com ([2607:f8b0:400d:c0d::241]:42279) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ePDCH-0005oE-0P for qemu-devel@nongnu.org; Wed, 13 Dec 2017 15:00:05 -0500 Received: by mail-qt0-x241.google.com with SMTP id g9so5224810qth.9 for ; Wed, 13 Dec 2017 12:00:04 -0800 (PST) Received: from x1.local ([138.117.48.211]) by smtp.gmail.com with ESMTPSA id o5sm1518876qtc.72.2017.12.13.12.00.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 Dec 2017 12:00:03 -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=6oh+8F3RYoqsg8Deaijp1ExuN06BjyrACVMU2dRK0j4=; b=WKQr2MJiZLyv46TvWlDg94XR9RMs7j2xrGglLgVPY7l2Oztt+fIS+o1dj997frE16/ kU9sX7tNgTo2Uicq0nOyHr/VZittQiS5ygS92QEcsJcNlqriQyWQOKvUoE08dGKZ7Hs4 sxu+tF6psyS8cL4qrc8YpJ09Q40+dCLBeKzlwE82wESWiMldEUcpadxUe7T6ZxI5+xTn xH5898dr+8mBs0psIRPCh5Gitvq7oVB8TT9PLqrdD5cGOXlOs/WYeRzpo7X1SgBrh60T S5BF42TIEmDvUvzvBvy6m/XYuAlH/rJ+iwCnCEuQo1qEVCWmsPpngfDUpIyLOFKXHZVr zHYQ== 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=6oh+8F3RYoqsg8Deaijp1ExuN06BjyrACVMU2dRK0j4=; b=gDmif9o1mY2fJ6Yb/llFg/olKrhe7VEl9IXc7cnpNaAMh8DD05/lBYW9mPWoP4f1G5 bZ/rReTCrVz7zwL0wKOJhSR8YuEXOdRd0GaI0J+pXtmAr/lZ94H8q16ZQJQGFYvxHyI/ mfb5Uzi3LNdbNjQS9ddB3O/Sf+9KdkBAJlPjsN1yOux8pSB2p40LOiXL0nYsGKxrPJUD NS2ReI1elDE9PzZZnXCwzMGuYOkr0V8m8fVLlMJC0Ikh3LfBNJ13RunV4QnPJKTPTHq7 6Ol66mQsDcbdnqJ/Vlfbd/u1N4gZwqhWSxbPrWWS1b/G+McGSFcizZJyHbRfOmCB7hoW FP0g== X-Gm-Message-State: AKGB3mK+pIUpLlMF46J0LODZwti1DI4K7w5NmZkP3E2ZzMyO4bodhfM6 ckbLRZJ/YgEEBLEhm6tgGec= X-Google-Smtp-Source: ACJfBos2BOq/2n6zeAGjAywUflsqngRJBTqMUFYckdDARZocTANPlotI83IXovUODMwbBXxxEv0SzQ== X-Received: by 10.200.25.227 with SMTP id s32mr12407641qtk.307.1513195204430; Wed, 13 Dec 2017 12:00:04 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Prasad J Pandit , Peter Maydell , Andrew Baumann , Andrey Smirnov , Andrey Yurovsky Date: Wed, 13 Dec 2017 16:58:51 -0300 Message-Id: <20171213195852.30439-14-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20171213195852.30439-1-f4bug@amsat.org> References: <20171213195852.30439-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 13/14] sdhci: add sdhci_init_capareg() to initialize the 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: Sai Pavan Boddu , Peter Crosthwaite , =?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 following patches modifying CAPAB will be easier to review. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/sd/sdhci.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index dadc4787b2..78bb8e8e89 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -100,6 +100,13 @@ =20 #define MASKED_WRITE(reg, mask, val) (reg =3D (reg & (mask)) | (val)) =20 +static void sdhci_init_capareg(SDHCIState *s, Error **errp) +{ + if (s->capareg =3D=3D UINT32_MAX) { + s->capareg =3D SDHC_CAPAB_REG_DEFAULT; + } +} + static uint8_t sdhci_slotint(SDHCIState *s) { return (s->norintsts & s->norintsigen) || (s->errintsts & s->errintsig= en) || @@ -1158,6 +1165,8 @@ static void sdhci_initfn(SDHCIState *s) =20 static void sdhci_realizefn(SDHCIState *s, Error **errp) { + sdhci_init_capareg(s, errp); + s->buf_maxsz =3D sdhci_get_fifolen(s); s->fifo_buffer =3D g_malloc0(s->buf_maxsz); =20 @@ -1244,8 +1253,7 @@ 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, - SDHC_CAPAB_REG_DEFAULT), + DEFINE_PROP_UINT32("capareg", SDHCIState, capareg, UINT32_MAX), DEFINE_PROP_UINT32("maxcurr", SDHCIState, maxcurr, 0), DEFINE_PROP_BOOL("pending-insert-quirk", SDHCIState, pending_insert_qu= irk, false), --=20 2.15.1 From nobody Wed Apr 24 09:55:40 2024 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 151319605220124.635692161477323; Wed, 13 Dec 2017 12:14:12 -0800 (PST) Received: from localhost ([::1]:37445 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDPs-0006Jr-Du for importer@patchew.org; Wed, 13 Dec 2017 15:14:08 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57922) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePDCR-0003Qv-7O for qemu-devel@nongnu.org; Wed, 13 Dec 2017 15:00:19 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ePDCL-0005qK-8r for qemu-devel@nongnu.org; Wed, 13 Dec 2017 15:00:15 -0500 Received: from mail-qt0-x242.google.com ([2607:f8b0:400d:c0d::242]:34350) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ePDCL-0005q3-42 for qemu-devel@nongnu.org; Wed, 13 Dec 2017 15:00:09 -0500 Received: by mail-qt0-x242.google.com with SMTP id 33so5275399qtv.1 for ; Wed, 13 Dec 2017 12:00:08 -0800 (PST) Received: from x1.local ([138.117.48.211]) by smtp.gmail.com with ESMTPSA id o5sm1518876qtc.72.2017.12.13.12.00.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 Dec 2017 12:00:07 -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=6lCJ8/l6nyzKTBImaQYKYOOD+mnxX2kav2RpSLSpz+g=; b=VKxU+KAane6ld/BdhdORXAhfofvRmoDcu4cZv9QABScyZzKQX3OM7MzLOwLeQoSl7S Vv8bUsoGt65zs3ONAOsvd7ERoXbdJ7zlYPv3WMjLipXW7jR6/lPHyope9+ERFWtSX1O6 RVmnsG+pcWlCYLTzaX9aO2uxbE54j9V8l5B23y0DZouMajXIs0wCZKHUWaO+WTSagEZc LRVhOoxqpunrRcW9xndVVi0cTzccEZVqDBuAzaiJGaExnYKJ+nR/mG1i0R40/6YuK5XV FyQ1igJ0fhN02pCxY8+fkiz2wryEHH0U6X+lDaRl72lUlgRidCdeVHDhKtbH+5c0N0ef iAUg== 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=6lCJ8/l6nyzKTBImaQYKYOOD+mnxX2kav2RpSLSpz+g=; b=smJCeKJ4oo2pbtdatOe5O/Emi1FBZ/ud9eut25eiWCsS2eGxrXhOstbPoWALM5QVS3 NGz4Z7GHwsmwcuBzZlLDqWwifIXSFeeTq9dtpSBcYWB7FrAWec/uq4WZVXl4EZZlgwjs LhOP2kgU4qJOoiz/nQbN8jIb3prcBBTQqiHAL7Fxe4I7IaCByjb67+4Kz9PcGEFqXX4L n9RA+J6ZZBM/WyluhRI2gWJMRC41KHUVuDv3wZZ6tuZekWrujLG0DdyWKKb6uyFbEx0F duvqEtPCRTnaY419NtiAUGrPH7nIqtSf4NHfiqT7YZuO6rRxxWw2gSQyvoXeOv8w0a+j bsvA== X-Gm-Message-State: AKGB3mKiNuJCCW2wv5C4KjFL1+k0WGDhscAygoGZBX29W8hEPPa3YqRT MPBdE7sop4MniKmjE1RXGYs= X-Google-Smtp-Source: ACJfBouYbGj+Q9jcxsprULNhYmg4YDyy3iXKFFN/Htb4OTgOdhAt2WRhpFLXELv4fO0J7fAHFkqwiw== X-Received: by 10.200.39.196 with SMTP id x4mr12272453qtx.246.1513195208544; Wed, 13 Dec 2017 12:00:08 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Prasad J Pandit , Peter Maydell , Andrew Baumann , Andrey Smirnov , Andrey Yurovsky , Paolo Bonzini Date: Wed, 13 Dec 2017 16:58:52 -0300 Message-Id: <20171213195852.30439-15-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20171213195852.30439-1-f4bug@amsat.org> References: <20171213195852.30439-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 14/14] 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: Sai Pavan Boddu , Peter Crosthwaite , Fam Zheng , =?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 | 24 ++++++++++++++++++------ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/include/hw/sd/sdhci.h b/include/hw/sd/sdhci.h index 1b6a98d578..e6644e6e7d 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 78bb8e8e89..5f8064c59b 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -590,7 +590,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: - adma2 =3D ldq_le_dma(&address_space_memory, entry_addr); + adma2 =3D ldq_le_dma(&s->dma_as, entry_addr); /* The spec does not specify endianness of descriptor table. * We currently assume that it is LE. */ @@ -600,7 +600,7 @@ static void get_adma_description(SDHCIState *s, ADMADes= cr *dscr) dscr->incr =3D 8; break; case SDHC_CTRL_ADMA1_32: - adma1 =3D ldl_le_dma(&address_space_memory, entry_addr); + adma1 =3D ldl_le_dma(&s->dma_as, entry_addr); dscr->addr =3D (hwaddr)(adma1 & 0xFFFFF000); dscr->attr =3D (uint8_t)extract32(adma1, 0, 7); dscr->incr =3D 4; @@ -611,9 +611,9 @@ static void get_adma_description(SDHCIState *s, ADMADes= cr *dscr) } break; case SDHC_CTRL_ADMA2_64: - dscr->attr =3D ldub_dma(&address_space_memory, entry_addr); - dscr->length =3D lduw_le_dma(&address_space_memory, entry_addr + 2= ); - dscr->attr =3D ldq_le_dma(&address_space_memory, entry_addr + 4); + dscr->attr =3D ldub_dma(&s->dma_as, entry_addr); + dscr->length =3D lduw_le_dma(&s->dma_as, entry_addr + 2); + dscr->attr =3D ldq_le_dma(&s->dma_as, entry_addr + 4); dscr->attr &=3D 0xfffffff8; dscr->incr =3D 12; break; @@ -670,7 +670,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; @@ -1172,10 +1172,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); s->fifo_buffer =3D NULL; } @@ -1257,6 +1267,8 @@ static Property sdhci_properties[] =3D { DEFINE_PROP_UINT32("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