Skip to content
  • Stephen Warren's avatar
    mmc: store hwpart in the block device · 873cc1d7
    Stephen Warren authored
    
    
    This will allow us to have multiple block device structs each referring
    to the same eMMC device, yet different HW partitions.
    
    For now, there is still a single block device per eMMC device. As before,
    this block device always accesses whichever HW partition was most recently
    selected. Clients wishing to make use of multiple block devices referring
    to different HW partitions can simply take a copy of this block device
    once it points at the correct HW partition, and use each one as they wish.
    This feature will be used by the next patch.
    
    In the future, perhaps get_device() could be enhanced to return a
    dynamically allocated block device struct, to avoid the client needing to
    copy it in order to maintain multiple block devices. However, this would
    require all users to be updated to free those block device structs at some
    point, which is rather a large change.
    
    Most callers of mmc_switch_part() wish to permanently switch the default
    MMC block device's HW partition. Enhance mmc_switch_part() so that it does
    this. This removes the need for callers to do this. However,
    common/env_mmc.c needs to save and restore the current HW partition. Make
    it do this more explicitly.
    
    Replace use of mmc_switch_part() with mmc_select_hwpart() in order to
    remove duplicate code that skips the call if that HW partition is already
    selected.
    
    Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
    Reviewed-by: default avatarTom Rini <trini@konsulko.com>
    873cc1d7