From nobody Tue Oct 28 12:15:16 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 15149971017021006.6231250926559; Wed, 3 Jan 2018 08:31:41 -0800 (PST) Received: from localhost ([::1]:57236 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWlww-0001WN-HG for importer@patchew.org; Wed, 03 Jan 2018 11:31:30 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44243) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eWlq3-0004As-Br for qemu-devel@nongnu.org; Wed, 03 Jan 2018 11:24:24 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eWlq2-00053H-Ca for qemu-devel@nongnu.org; Wed, 03 Jan 2018 11:24:23 -0500 Received: from mail-qk0-x243.google.com ([2607:f8b0:400d:c09::243]:43910) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eWlq2-000532-8S; Wed, 03 Jan 2018 11:24:22 -0500 Received: by mail-qk0-x243.google.com with SMTP id j137so2156417qke.10; Wed, 03 Jan 2018 08:24:22 -0800 (PST) Received: from x1.lan ([138.117.48.219]) by smtp.gmail.com with ESMTPSA id 102sm839393qkx.85.2018.01.03.08.24.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 08:24:21 -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=p38CldTqD4u466YHuSEP9i0mwNRyNT7h63oUnq4yahA=; b=Ebs69UdPcyRwu1lEOJlpqE7vgn18lUeS9nOUNr/18jW5V/+twMSPF8f7iJCpWvq5ap 4teoxnxBZ91etDS9qyz1ogI8wDa1EQ8WReujaHtkq6RMGPUdsFB34GMz4zYSIJc0lywE yXz8Ij7VOln0E1nHu+TlgoEZl4Uqwch8ZjsmeZ56bCmHWgb7BKGPDxImxcovlkxSq+XZ tZ9IAwAKaOsqP+6MjQ51rcaD/5fjF5CIE5T/KE6sSy/OtvOkGXP7+ZFt+8xpBRLNcb/K Gwi+a0i6wHOGCx1YPfIvMU423UqI4PCm1jMTIDmpT7ZMGzawv9KJPRzkzsRJPT4Ru0sp Ee6Q== 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=p38CldTqD4u466YHuSEP9i0mwNRyNT7h63oUnq4yahA=; b=iCmpKsvGtQw8m68lPTudw8Otevx+wda8cSpZFWzhw+aUgANBmbPugejKYI4AkNMvOe 7Oy+z5HarkvrITKs1iM9bc7zg5tGbd0fVLk6PzVNudXBq2XncoF4i/U3LPctV4TJEUvx Ug7Yf2A7GJdjTfA1Tgrjflh0xdkE9HmsZ7f7TuNqag0Goi3wwYrWVVSb0wO/BNmbV+fz A/SiKXGC83/Ba28odADu0b4+cSe8hZ8sb2/sdo3MWB9w+VJljGWaKPLPo6Otwbh4mM+y 5aii8c09PsSgfgyEXe1+fLdQ7OaUh8K1NydweHLV92Wx08hcSkoSbhm8plgLPLC/FdC8 PVdA== X-Gm-Message-State: AKGB3mIQhI1rFj0qGpQUR4KKdVe+zncDdWZrFf7QFKp5iEzOnXsTwWDo 8TsEdNvEeU55VI3hKS3Mtxw= X-Google-Smtp-Source: ACJfBotumfAKC3CvZHk6FmXcO0NBC0+238w8TvBpcfjaxv5j+wuMvBI1S9XGTf8fMOK3u1W7/Y4Qlw== X-Received: by 10.55.168.215 with SMTP id r206mr2504700qke.268.1514996661821; Wed, 03 Jan 2018 08:24:21 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Peter Crosthwaite , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Date: Wed, 3 Jan 2018 13:23:59 -0300 Message-Id: <20180103162400.10396-6-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180103162400.10396-1-f4bug@amsat.org> References: <20180103162400.10396-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 5/6] hw/sd/ssi-sd: expose a SDBus and connect the SDCard to it 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-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 using the sdbus_*() API. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis --- hw/sd/ssi-sd.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/hw/sd/ssi-sd.c b/hw/sd/ssi-sd.c index 24001dc3e6..c8b27add84 100644 --- a/hw/sd/ssi-sd.c +++ b/hw/sd/ssi-sd.c @@ -47,7 +47,7 @@ typedef struct { int32_t arglen; int32_t response_pos; int32_t stopping; - SDState *sd; + SDBus sdbus; } ssi_sd_state; =20 /* State word bits. */ @@ -97,7 +97,7 @@ static uint32_t ssi_sd_transfer(SSISlave *dev, uint32_t v= al) request.arg =3D (s->cmdarg[0] << 24) | (s->cmdarg[1] << 16) | (s->cmdarg[2] << 8) | s->cmdarg[3]; DPRINTF("CMD%d arg 0x%08x\n", s->cmd, request.arg); - s->arglen =3D sd_do_command(s->sd, &request, longresp); + s->arglen =3D sdbus_do_command(&s->sdbus, &request, longresp); if (s->arglen <=3D 0) { s->arglen =3D 1; s->response[0] =3D 4; @@ -174,7 +174,7 @@ static uint32_t ssi_sd_transfer(SSISlave *dev, uint32_t= val) DPRINTF("Response 0x%02x\n", s->response[s->response_pos]); return s->response[s->response_pos++]; } - if (sd_data_ready(s->sd)) { + if (sdbus_data_ready(&s->sdbus)) { DPRINTF("Data read\n"); s->mode =3D SSI_SD_DATA_START; } else { @@ -187,8 +187,8 @@ static uint32_t ssi_sd_transfer(SSISlave *dev, uint32_t= val) s->mode =3D SSI_SD_DATA_READ; return 0xfe; case SSI_SD_DATA_READ: - val =3D sd_read_data(s->sd); - if (!sd_data_ready(s->sd)) { + val =3D sdbus_read_data(&s->sdbus); + if (!sdbus_data_ready(&s->sdbus)) { DPRINTF("Data read end\n"); s->mode =3D SSI_SD_CMD; } @@ -239,14 +239,25 @@ static const VMStateDescription vmstate_ssi_sd =3D { static void ssi_sd_realize(SSISlave *d, Error **errp) { ssi_sd_state *s =3D FROM_SSI_SLAVE(ssi_sd_state, d); + DeviceState *carddev; DriveInfo *dinfo; + Error *err =3D NULL; =20 s->mode =3D SSI_SD_CMD; + qbus_create_inplace(&s->sdbus, sizeof(s->sdbus), TYPE_SD_BUS, + DEVICE(d), "sd-bus"); + + /* Create and plug in the sd card */ /* FIXME use a qdev drive property instead of drive_get_next() */ dinfo =3D drive_get_next(IF_SD); - s->sd =3D sd_init(dinfo ? blk_by_legacy_dinfo(dinfo) : NULL, true); - if (s->sd =3D=3D NULL) { - error_setg(errp, "Device initialization failed."); + carddev =3D qdev_create(&s->sdbus.qbus, TYPE_SD_CARD); + if (dinfo) { + qdev_prop_set_drive(carddev, "drive", blk_by_legacy_dinfo(dinfo), = &err); + } + object_property_set_bool(OBJECT(carddev), true, "spi", &err); + object_property_set_bool(OBJECT(carddev), true, "realized", &err); + if (err) { + error_setg(errp, "failed to init SD card: %s", error_get_pretty(er= r)); return; } } --=20 2.15.1