From nobody Tue Feb 10 04:08:14 2026 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 1513208827949999.7569221641178; Wed, 13 Dec 2017 15:47:07 -0800 (PST) Received: from localhost ([::1]:38369 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePGjd-0006wg-IW for importer@patchew.org; Wed, 13 Dec 2017 18:46:45 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33195) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ePGNF-0006lL-9D for qemu-devel@nongnu.org; Wed, 13 Dec 2017 18:23:38 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ePGNA-0000Zy-88 for qemu-devel@nongnu.org; Wed, 13 Dec 2017 18:23:37 -0500 Received: from mail-qk0-x243.google.com ([2607:f8b0:400d:c09::243]:40302) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ePGNA-0000Zh-3Z for qemu-devel@nongnu.org; Wed, 13 Dec 2017 18:23:32 -0500 Received: by mail-qk0-x243.google.com with SMTP id b123so4158260qkg.7 for ; Wed, 13 Dec 2017 15:23:32 -0800 (PST) Received: from x1.local ([181.91.222.165]) by smtp.gmail.com with ESMTPSA id l1sm1666918qkk.74.2017.12.13.15.23.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 Dec 2017 15:23:31 -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=HHjo8xWzL00CmzVL6l9dc7pg3qaVaMrW87cnpRV6IhQ=; b=dsvUsllS58cfZBmM4moscvZ/YyThosbJb6kL8A4ll9zzJJSJK1NxXJ0r5VaOyNTad4 Pwkm4IGY2S0pzkPOrqo9EkwAXSZCNzir4gMArQZPfelEVoHiA8OLPyA3NJ6c3byrfPY6 AWrXpTgFnHK1wszQ/H1rSDbQGdgg14odN+lC9TucGzpEvyklMeOKNhxrlWquupLZaZRS EF6z7dyt4yk8qCAY7sV5bY8u3FNopBq1R2wCDZjjsPnQvhtiwm5rV4uXZz5fALQ6J6x6 CJmb/F1+fVh0ssavaNsSp6KC+h7rlsYxPapdmOaETiVz+Abjq+yZ6sTGpT6sC2B+ka6V zDjw== 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=HHjo8xWzL00CmzVL6l9dc7pg3qaVaMrW87cnpRV6IhQ=; b=dELNTw4ACm+9X3llFTynXt0Cf7xxfI8HNdlpIcVEtA7F5p67q9C6eB+FrYBHwU1kRX clQS0A8CtwqBRHQTvi/IUe2R6X4HCdxBQ/YCm9rSajMjHonoPXu4sk26lBxWGlV6uvA7 YqU/PrhHSnbaQUv5kCiHG6k44k8aPi1YF7sBIJv1W+CGbiPApe5Ng3+r9eYL0liSceip WfUNLZC+p1yj0lwLH+7CB0boolIRtlcPkwztRtZpWrJyLYDai+vRFVIyJa2XiCs3lXKJ 8DH3ZqJ6qDGH0LLI4DQxj+ezg6G/deJzspNlUMlXXGzP7J0AAowL/Za1nz1ADL3aQSW6 fXOA== X-Gm-Message-State: AKGB3mJyR25MAXILkH0WIkBdeMlESnsDKE7MGkzqRPC0tQBMAXhwgI6f zpC3s2jPi+rCbI1jsEfZDMQ= X-Google-Smtp-Source: ACJfBovZi6DKcSk7DPmYQa61y6CBxI5VP31R899CAzE/yNP3ny7IN4TdLThIK1Fx3J1eZRfEdAlbLw== X-Received: by 10.55.178.134 with SMTP id b128mr13161498qkf.21.1513207411724; Wed, 13 Dec 2017 15:23:31 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Alistair Francis , "Edgar E . Iglesias" , Peter Maydell , Andrew Baumann , Prasad J Pandit , Clement Deschamps Date: Wed, 13 Dec 2017 20:20:24 -0300 Message-Id: <20171213232025.24503-26-f4bug@amsat.org> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20171213232025.24503-1-f4bug@amsat.org> References: <20171213232025.24503-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 25/26] sdcard: add/use a SDCardCommandClass enum instead of magic numbers 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/sd.c | 48 +++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 7 deletions(-) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 9b90987d7f..688bb40bd1 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -274,11 +274,45 @@ static const sd_cmd_type_t sd_cmd_type[SD_CMD_MAX] = =3D { sd_adtc, sd_none, sd_none, sd_none, sd_none, sd_none, sd_none, sd_none, }; =20 -static const int sd_cmd_class[SD_CMD_MAX] =3D { - 0, 0, 0, 0, 0, 9, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, - 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 6, 6, 6, 6, - 5, 5, 10, 10, 10, 10, 5, 9, 9, 9, 7, 7, 7, 7, 7, 7, - 7, 7, 10, 7, 9, 9, 9, 8, 8, 10, 8, 8, 8, 8, 8, 8, +enum SDCardCommandClass { + ccc_basic =3D 1 << 0, + ccc_blk_read =3D 1 << 2, + ccc_blk_write =3D 1 << 4, + ccc_erase =3D 1 << 5, + ccc_wp =3D 1 << 6, + ccc_lock =3D 1 << 7, + ccc_appspec =3D 1 << 8, + ccc_io =3D 1 << 9, + ccc_switch =3D 1 << 10, + ccc_ext =3D 1 << 11, +}; + +static const uint32_t sd_cmd_class[SD_CMD_MAX] =3D { + ccc_basic, 0, ccc_basic, ccc_basic, + ccc_basic, ccc_io, ccc_switch, ccc_basic, + ccc_basic, ccc_basic, ccc_basic, ccc_basic, + ccc_basic, ccc_basic, 0, ccc_basic, + /* 16 */ + ccc_blk_read | ccc_blk_write | ccc_lock, ccc_blk_read, + ccc_blk_read, ccc_blk_read, + ccc_blk_read | ccc_blk_write, ccc_ext, 0, + ccc_blk_read | ccc_blk_write, + ccc_blk_write, ccc_blk_write, + 0, ccc_blk_write, + ccc_wp, ccc_wp, + ccc_wp, 0, + /* 32 */ + ccc_erase, ccc_erase, + ccc_switch, ccc_switch, + ccc_switch, ccc_switch, + ccc_erase, 0, + ccc_lock, 0, ccc_lock, 0, 0, 0, 0, 0, + /* 48 */ + ccc_ext, ccc_ext, ccc_switch, 0, + ccc_io, ccc_io, 0, ccc_appspec, + ccc_appspec, ccc_switch, + ccc_ext, ccc_ext, + 0, 0, 0, 0 }; =20 static uint8_t sd_crc7(void *message, size_t width) @@ -1565,8 +1599,8 @@ static bool cmd_valid_while_locked(SDState *sd, SDReq= uest *req) if (req->cmd =3D=3D 16 || req->cmd =3D=3D 55) { return true; } - return sd_cmd_class[req->cmd] =3D=3D 0 - || sd_cmd_class[req->cmd] =3D=3D 7; + return sd_cmd_class[req->cmd] =3D=3D ccc_basic + || sd_cmd_class[req->cmd] =3D=3D ccc_lock; } =20 int sd_do_command(SDState *sd, SDRequest *req, uint8_t *response) --=20 2.15.1