u-boot-2016/test/dm
Simon Glass e48eeb9ea3 dm: blk: Improve block device claiming
The intention with block devices is that the device number (devnum field
in its descriptor) matches the alias of its parent device. For example,
with:

	aliases {
		mmc0 = "/sdhci@700b0600";
		mmc1 = "/sdhci@700b0400";
	}

we expect that the block devices for mmc0 and mmc1 would have device
numbers of 0 and 1 respectively.

Unfortunately this does not currently always happen. If there is another
MMC device earlier in the driver model data structures its block device
will be created first. It will therefore get device number 0 and mmc0
will therefore miss out. In this case the MMC device will have sequence
number 0 but its block device will not.

To avoid this, allow a device to request a device number and bump any
existing device number that is using it. This all happens during the
binding phase so it is safe to change these numbers around. This allows
device numbers to match the aliases in all circumstances.

Add a test to verify the behaviour.

Signed-off-by: Simon Glass <sjg@chromium.org>
2017-06-01 07:03:05 -06:00
..
adc.c sandbox: add ADC unit tests 2015-11-02 10:38:00 +09:00
blk.c dm: blk: Improve block device claiming 2017-06-01 07:03:05 -06:00
bus.c dm: core: Add flags parameter to device_remove() 2017-04-04 20:15:10 -06:00
clk.c clk: convert API to match reset/mailbox style 2016-06-19 17:05:55 -06:00
cmd_dm.c CONFIG_NEEDS_MANUAL_RELOC: Fix warnings when not set 2015-12-07 08:35:23 -05:00
core.c dm: test: Add test for device removal 2017-04-04 20:15:10 -06:00
eth.c dm: core: Add flags parameter to device_remove() 2017-04-04 20:15:10 -06:00
gpio.c dm: test: Add GPIO open drain tests 2016-06-03 22:14:20 -07:00
i2c.c dm: Use dm_scan_fdt_dev() directly where possible 2016-07-27 14:15:54 -06:00
Kconfig test: Move the unit tests to their own menu 2015-05-21 09:16:17 -04:00
led.c dm: led: Add support for blinking LEDs 2017-04-14 19:38:57 -06:00
mailbox.c mailbox: implement a sandbox test 2016-05-26 20:48:31 -06:00
Makefile dm: test: Add tests for the generic PHY uclass 2017-05-09 12:14:16 -06:00
mmc.c dm: mmc: test: Add tests for MMC 2016-05-17 09:54:43 -06:00
pci.c dm: test: Convert PCI tests to use the DM PCI API 2016-01-12 10:19:09 -07:00
phy.c dm: test: Add tests for the generic PHY uclass 2017-05-09 12:14:16 -06:00
pmic.c test: Generalize the unit test framework 2015-05-21 09:16:16 -04:00
power-domain.c Add a power domain framework/uclass 2016-07-27 16:29:56 -06:00
pwm.c dm: sandbox: pwm: add test for pwm_set_invert() 2017-05-10 13:37:21 -06:00
ram.c dm: test: Add a test for the ram uclass 2015-07-21 17:39:32 -06:00
regmap.c test: Add a test for regmap 2015-07-21 17:39:33 -06:00
regulator.c dm: pmic: Split output from function 2015-07-21 17:39:26 -06:00
remoteproc.c test: Add basic tests for remoteproc 2015-10-22 14:18:40 -04:00
reset.c reset: implement a reset test 2016-06-19 17:05:55 -06:00
rtc.c test: Generalize the unit test framework 2015-05-21 09:16:16 -04:00
sf.c test: Generalize the unit test framework 2015-05-21 09:16:16 -04:00
spi.c dm: core: Add flags parameter to device_remove() 2017-04-04 20:15:10 -06:00
spmi.c spmi: Add sandbox test driver 2016-04-01 17:18:12 -04:00
syscon.c dm: syscon: Allow finding devices by driver data 2016-01-24 12:07:19 +08:00
sysreset.c Rename reset to sysreset 2016-05-26 20:48:31 -06:00
test-driver.c dm: test: Add test for device removal 2017-04-04 20:15:10 -06:00
test-fdt.c dm: core: Replace of_offset with accessor 2017-02-08 06:12:14 -07:00
test-main.c test/dm: clear unit test failure count each run 2016-01-28 21:01:24 -07:00
test-uclass.c test: Generalize the unit test framework 2015-05-21 09:16:16 -04:00
timer.c sandbox: add a sandbox timer and basic test 2015-11-19 20:13:41 -07:00
usb.c dm: usb: Clean up USB after each test 2016-03-14 15:34:50 -06:00
video.c video: test: Adjust order of file closure 2016-02-06 13:57:15 +01:00
wdt.c dm: Simple Watchdog uclass 2017-05-08 11:57:30 -04:00