disk: default to HW partition 0 if not specified
authorStephen Warren <swarren@nvidia.com>
Fri, 23 May 2014 18:48:11 +0000 (12:48 -0600)
committerPantelis Antoniou <panto@antoniou-consulting.com>
Thu, 12 Jun 2014 12:21:12 +0000 (15:21 +0300)
commitecdd57e27467593a864ca5437db45266e36e3a7b
tree5d04813190946dd08e1618758c2f7bc23f852716
parent60dc58f735f173458ebed217cc7fe0c24816f383
disk: default to HW partition 0 if not specified

Currently, get_device()/get_dev_hwpart() for MMC devices does not select
an explicit HW partition unless the user explicitly requests one, i.e. by
requesting device "mmc 0.0" rather than just "mmc 0". I think it makes
more sense if the default is to select HW partition 0 (main data area)
if the user didn't request a specific partition. Otherwise, the following
happens, which feels wrong:

Select HW partition 1 (boot0):
mmc dev 0 1

Attempts to access SW partition 1 on HW partition 1 (boot0), rather than
SW partition 1 on HW partition 0 (main data area):
ls mmc 0:1 /

With this patch, the second command above re-selects the main data area.

Many device types don't support HW partitions at all, so if HW partition
0 is selected (either explicitly or as the default) and there's no
select_hwpart function, we simply skip attempting to select a HW
partition.

Some MMC devices (i.e. SD cards) don't support HW partitions. However,
this patch still works, since mmc_start_init() sets the current
partition number to 0, and mmc_select_hwpart() succeeds if the requested
partition is already selected.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Pantelis Antoniou <panto@antoniou-consulting.com>
disk/part.c