• Russell King's avatar
    [MMC] Set correct capacity for 1024-byte block cards · d2b18394
    Russell King authored
    We were passing set_capacity() the capacity we calculated in terms of
    the number of blocks on the card, which happened to be the right units
    for 512-byte block cards.  However, with 1024-byte block cards, we
    end up setting the capacity to half the number of blocks.  Fix this
    by shifting by the appropriate amount.
    Thanks to Todd Blumer for pointing this out.
    Use get_capacity() to report the card capacity, rather than
    recalculating it from the CSD information.
    Finally, use our chosen IO block size for the SET_BLOCKLEN command
    rather than the CSD read block size.  Currently these are equivalent,
    but will not be in the future.
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>