[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 2/6] hw/sd: sd: Remove duplicated codes in single/multiple blo
From: |
Philippe Mathieu-Daudé |
Subject: |
[PATCH v3 2/6] hw/sd: sd: Remove duplicated codes in single/multiple block read/write |
Date: |
Sun, 24 Jan 2021 21:28:13 +0100 |
From: Bin Meng <bin.meng@windriver.com>
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 <bin.meng@windriver.com>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20210123104016.17485-13-bmeng.cn@gmail.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
hw/sd/sd.c | 47 -----------------------------------------------
1 file changed, 47 deletions(-)
diff --git a/hw/sd/sd.c b/hw/sd/sd.c
index b3952514fed..09753359bb2 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:
--
2.26.2
- [PATCH v3 0/6] hw/sd: Support block write in SPI mode, Philippe Mathieu-Daudé, 2021/01/24
- [PATCH v3 1/6] hw/sd: ssi-sd: Support multiple block read, Philippe Mathieu-Daudé, 2021/01/24
- [PATCH v3 2/6] hw/sd: sd: Remove duplicated codes in single/multiple block read/write,
Philippe Mathieu-Daudé <=
- [PATCH v3 3/6] hw/sd: sd: Allow single/multiple block write for SPI mode, Philippe Mathieu-Daudé, 2021/01/24
- [PATCH v3 4/6] hw/sd: Introduce receive_ready() callback, Philippe Mathieu-Daudé, 2021/01/24
- [PATCH v3 5/6] hw/sd: ssi-sd: Support single block write, Philippe Mathieu-Daudé, 2021/01/24
- [PATCH v3 6/6] hw/sd: ssi-sd: Support multiple block write, Philippe Mathieu-Daudé, 2021/01/24
- Re: [PATCH v3 0/6] hw/sd: Support block write in SPI mode, Bin Meng, 2021/01/24
- Re: [PATCH v3 0/6] hw/sd: Support block write in SPI mode, Philippe Mathieu-Daudé, 2021/01/25