From patchwork Thu Jan 28 06:30:28 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Bin Meng X-Patchwork-Id: 12051965 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7889AC433E0 for ; Thu, 28 Jan 2021 06:33:33 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 0CA4E64DC4 for ; Thu, 28 Jan 2021 06:33:32 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0CA4E64DC4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:42788 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l50s0-0000au-0F for qemu-devel@archiver.kernel.org; Thu, 28 Jan 2021 01:33:32 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:36036) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l50pP-000740-TZ; Thu, 28 Jan 2021 01:30:51 -0500 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]:43775) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1l50pO-0001B0-7V; Thu, 28 Jan 2021 01:30:51 -0500 Received: by mail-pl1-x636.google.com with SMTP id 31so2763969plb.10; Wed, 27 Jan 2021 22:30:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Qu1ZmvGNvRZOgkDiq631N2CdZ3gr5633WsnUpwSjfns=; b=qcLBgdIxmKQmyb9Z3+0hiKwCyHqFBJQhiy/yl1J6PqYJkZmFOKBhyRjkhfMobsotqu QZ02uV/6o14eb2orkaAb+6XrlqsXLI1it0LcIiaed55ncKn4hiaK++0lZflS7hwIIEqh HK4f0WV9iQT7T/aaalaEbl8SGlQsiFB16HeYOEtcjWD8vwXsrXdL6pfderM7tQ5kURCa jtHKadBYvB/X8vU9qmWzclDrpqhy3xtNVI0c4dKS4fdXJmtTamqRmUjmJFdfGSi4rKS+ nVjUc+gs6fZUF3DVtzMUJIx49ENelDQV6sLGrK2eZ+St+gL5Cj59RwtCxWR91k/l/UqH z/EA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Qu1ZmvGNvRZOgkDiq631N2CdZ3gr5633WsnUpwSjfns=; b=kCnfKYE99W25WZfJiM3COlH2oYg2st+1d8t0c0YNp6hlYlQb4XmdBrdAZZCb4dTzE9 rkIbdD1b2z1cPjmbWphhkmADdBTLiRk+E4WFUlU4FYh2xEm2kMUu0wFqukrVBZqpzUgp 8Mg1TI30zPpi9+9hH5XKY0akrlNWIr6+Q6hOKsxalJUHtyHW7bA6CViNRyMsAb9NPiof t9v0wxy9mn6sxyLK7+Kv2kofy+mOsxxRqAwkKk3ltBxj5TpS2keZH+9OjFdWQTxDisVl Hyb6wxMs8rtnEiQuPKEQO3Za4RyZsBfgVPXA/trdT7FvomJekoXUo8BCrstfNni8PS/0 S5fw== X-Gm-Message-State: AOAM5333dKlZa/vRVP4suAcvPudL02wO4AD9RbwZnY2bHXwQHE7Vfspz ISpktwONB8cXQ+xIAT4/4g0= X-Google-Smtp-Source: ABdhPJw2aCbxu1XRT8FBp7MVAifejtzuITINaklqoCekicAiTbcGTfQyVUaEdODXkKQXnwkMjYlBnQ== X-Received: by 2002:a17:902:eec4:b029:de:aa86:5269 with SMTP id h4-20020a170902eec4b02900deaa865269mr14939251plb.66.1611815448634; Wed, 27 Jan 2021 22:30:48 -0800 (PST) Received: from i9-aorus-gtx1080.localdomain (144.168.56.201.16clouds.com. [144.168.56.201]) by smtp.gmail.com with ESMTPSA id t6sm4245080pfc.64.2021.01.27.22.30.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Jan 2021 22:30:48 -0800 (PST) From: Bin Meng To: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , qemu-block@nongnu.org, qemu-devel@nongnu.org Subject: [PATCH v4 2/9] hw/sd: sd: Remove duplicated codes in single/multiple block read/write Date: Thu, 28 Jan 2021 14:30:28 +0800 Message-Id: <20210128063035.15674-3-bmeng.cn@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210128063035.15674-1-bmeng.cn@gmail.com> References: <20210128063035.15674-1-bmeng.cn@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2607:f8b0:4864:20::636; envelope-from=bmeng.cn@gmail.com; helo=mail-pl1-x636.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Bin Meng , Alistair Francis Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" From: Bin Meng The single block read (CMD17) codes are the same as the multiple block read (CMD18). Merge them into one. The same applies to single block write (CMD24) and multiple block write (CMD25). Signed-off-by: Bin Meng Acked-by: Alistair Francis Tested-by: Philippe Mathieu-Daudé --- (no changes since v1) hw/sd/sd.c | 47 ----------------------------------------------- 1 file changed, 47 deletions(-) diff --git a/hw/sd/sd.c b/hw/sd/sd.c index b3952514fe..09753359bb 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -1181,24 +1181,6 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, SDRequest req) break; case 17: /* CMD17: READ_SINGLE_BLOCK */ - switch (sd->state) { - case sd_transfer_state: - - if (addr + sd->blk_len > sd->size) { - sd->card_status |= ADDRESS_ERROR; - return sd_r1; - } - - sd->state = sd_sendingdata_state; - sd->data_start = addr; - sd->data_offset = 0; - return sd_r1; - - default: - break; - } - break; - case 18: /* CMD18: READ_MULTIPLE_BLOCK */ switch (sd->state) { case sd_transfer_state: @@ -1245,35 +1227,6 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, SDRequest req) /* Block write commands (Class 4) */ case 24: /* CMD24: WRITE_SINGLE_BLOCK */ - switch (sd->state) { - case sd_transfer_state: - /* Writing in SPI mode not implemented. */ - if (sd->spi) - break; - - if (addr + sd->blk_len > sd->size) { - sd->card_status |= ADDRESS_ERROR; - return sd_r1; - } - - sd->state = sd_receivingdata_state; - sd->data_start = addr; - sd->data_offset = 0; - sd->blk_written = 0; - - if (sd_wp_addr(sd, sd->data_start)) { - sd->card_status |= WP_VIOLATION; - } - if (sd->csd[14] & 0x30) { - sd->card_status |= WP_VIOLATION; - } - return sd_r1; - - default: - break; - } - break; - case 25: /* CMD25: WRITE_MULTIPLE_BLOCK */ switch (sd->state) { case sd_transfer_state: