提交 16b781aa 编写于 作者: P Peter Maydell

hw/sd: Don't pass BlockBackend to sd_reset()

The only valid BlockBackend to pass to sd_reset() is the one for
the SD card, which is sd->blk. Drop the second argument from this
function in favour of having it just use sd->blk.
Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
Reviewed-by: NMarkus Armbruster <armbru@redhat.com>
Message-id: 1430683444-9797-1-git-send-email-peter.maydell@linaro.org
上级 165cdaf8
...@@ -389,13 +389,13 @@ static inline uint64_t sd_addr_to_wpnum(uint64_t addr) ...@@ -389,13 +389,13 @@ static inline uint64_t sd_addr_to_wpnum(uint64_t addr)
return addr >> (HWBLOCK_SHIFT + SECTOR_SHIFT + WPGROUP_SHIFT); return addr >> (HWBLOCK_SHIFT + SECTOR_SHIFT + WPGROUP_SHIFT);
} }
static void sd_reset(SDState *sd, BlockBackend *blk) static void sd_reset(SDState *sd)
{ {
uint64_t size; uint64_t size;
uint64_t sect; uint64_t sect;
if (blk) { if (sd->blk) {
blk_get_geometry(blk, &sect); blk_get_geometry(sd->blk, &sect);
} else { } else {
sect = 0; sect = 0;
} }
...@@ -412,11 +412,9 @@ static void sd_reset(SDState *sd, BlockBackend *blk) ...@@ -412,11 +412,9 @@ static void sd_reset(SDState *sd, BlockBackend *blk)
sd_set_cardstatus(sd); sd_set_cardstatus(sd);
sd_set_sdstatus(sd); sd_set_sdstatus(sd);
sd->blk = blk;
if (sd->wp_groups) if (sd->wp_groups)
g_free(sd->wp_groups); g_free(sd->wp_groups);
sd->wp_switch = blk ? blk_is_read_only(blk) : false; sd->wp_switch = sd->blk ? blk_is_read_only(sd->blk) : false;
sd->wpgrps_size = sect; sd->wpgrps_size = sect;
sd->wp_groups = bitmap_new(sd->wpgrps_size); sd->wp_groups = bitmap_new(sd->wpgrps_size);
memset(sd->function_group, 0, sizeof(sd->function_group)); memset(sd->function_group, 0, sizeof(sd->function_group));
...@@ -434,7 +432,7 @@ static void sd_cardchange(void *opaque, bool load) ...@@ -434,7 +432,7 @@ static void sd_cardchange(void *opaque, bool load)
qemu_set_irq(sd->inserted_cb, blk_is_inserted(sd->blk)); qemu_set_irq(sd->inserted_cb, blk_is_inserted(sd->blk));
if (blk_is_inserted(sd->blk)) { if (blk_is_inserted(sd->blk)) {
sd_reset(sd, sd->blk); sd_reset(sd);
qemu_set_irq(sd->readonly_cb, sd->wp_switch); qemu_set_irq(sd->readonly_cb, sd->wp_switch);
} }
} }
...@@ -492,7 +490,8 @@ SDState *sd_init(BlockBackend *blk, bool is_spi) ...@@ -492,7 +490,8 @@ SDState *sd_init(BlockBackend *blk, bool is_spi)
sd->buf = blk_blockalign(blk, 512); sd->buf = blk_blockalign(blk, 512);
sd->spi = is_spi; sd->spi = is_spi;
sd->enable = true; sd->enable = true;
sd_reset(sd, blk); sd->blk = blk;
sd_reset(sd);
if (sd->blk) { if (sd->blk) {
blk_attach_dev_nofail(sd->blk, sd); blk_attach_dev_nofail(sd->blk, sd);
blk_set_dev_ops(sd->blk, &sd_block_ops, sd); blk_set_dev_ops(sd->blk, &sd_block_ops, sd);
...@@ -680,7 +679,7 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, ...@@ -680,7 +679,7 @@ static sd_rsp_type_t sd_normal_command(SDState *sd,
default: default:
sd->state = sd_idle_state; sd->state = sd_idle_state;
sd_reset(sd, sd->blk); sd_reset(sd);
return sd->spi ? sd_r1 : sd_r0; return sd->spi ? sd_r1 : sd_r0;
} }
break; break;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册