diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2015-05-12 11:57:16 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2015-05-12 11:57:16 +0100 |
commit | 16b781aaef69c90d5f4f5456615f0c26a4f45740 (patch) | |
tree | 7bede3a5f186b0c99b6a2a7750c09ad29f085b86 /hw/sd/sd.c | |
parent | 165cdaf857dc850f676fff0b5b873a51865baa9c (diff) | |
download | qemu-16b781aaef69c90d5f4f5456615f0c26a4f45740.tar.gz qemu-16b781aaef69c90d5f4f5456615f0c26a4f45740.tar.bz2 qemu-16b781aaef69c90d5f4f5456615f0c26a4f45740.zip |
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: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-id: 1430683444-9797-1-git-send-email-peter.maydell@linaro.org
Diffstat (limited to 'hw/sd/sd.c')
-rw-r--r-- | hw/sd/sd.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 8abf0c9e31..a1ff465a67 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -389,13 +389,13 @@ static inline uint64_t sd_addr_to_wpnum(uint64_t addr) 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 sect; - if (blk) { - blk_get_geometry(blk, §); + if (sd->blk) { + blk_get_geometry(sd->blk, §); } else { sect = 0; } @@ -412,11 +412,9 @@ static void sd_reset(SDState *sd, BlockBackend *blk) sd_set_cardstatus(sd); sd_set_sdstatus(sd); - sd->blk = blk; - if (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->wp_groups = bitmap_new(sd->wpgrps_size); memset(sd->function_group, 0, sizeof(sd->function_group)); @@ -434,7 +432,7 @@ static void sd_cardchange(void *opaque, bool load) qemu_set_irq(sd->inserted_cb, 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); } } @@ -492,7 +490,8 @@ SDState *sd_init(BlockBackend *blk, bool is_spi) sd->buf = blk_blockalign(blk, 512); sd->spi = is_spi; sd->enable = true; - sd_reset(sd, blk); + sd->blk = blk; + sd_reset(sd); if (sd->blk) { blk_attach_dev_nofail(sd->blk, 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, default: sd->state = sd_idle_state; - sd_reset(sd, sd->blk); + sd_reset(sd); return sd->spi ? sd_r1 : sd_r0; } break; |