mirror of https://github.com/xemu-project/xemu.git
hw/arm/npcm7xx_boards: Replace drive_get_next() by drive_get()
drive_get_next() is basically a bad idea. It returns the "next" block backend of a certain interface type. "Next" means bus=0,unit=N, where subsequent calls count N up from zero, per interface type. This lets you define unit numbers implicitly by execution order. If the order changes, or new calls appear "in the middle", unit numbers change. ABI break. Hard to spot in review. Machine "quanta-gbs-bmc" connects just one backend with drive_get_next(), but with a helper function. Change it to use drive_get() directly. This makes the unit numbers explicit in the code. Cc: Havard Skinnemoen <hskinnemoen@google.com> Cc: Tyrone Ting <kfting@nuvoton.com> Cc: Peter Maydell <peter.maydell@linaro.org> Cc: qemu-arm@nongnu.org Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20211117163409.3587705-4-armbru@redhat.com> Reviewed-by: Havard Skinnemoen <hskinnemoen@google.com>
This commit is contained in:
parent
64eaa82095
commit
93d8bc8f5b
|
@ -84,9 +84,9 @@ static void npcm7xx_connect_dram(NPCM7xxState *soc, MemoryRegion *dram)
|
|||
&error_abort);
|
||||
}
|
||||
|
||||
static void sdhci_attach_drive(SDHCIState *sdhci)
|
||||
static void sdhci_attach_drive(SDHCIState *sdhci, int unit)
|
||||
{
|
||||
DriveInfo *di = drive_get_next(IF_SD);
|
||||
DriveInfo *di = drive_get(IF_SD, 0, unit);
|
||||
BlockBackend *blk = di ? blk_by_legacy_dinfo(di) : NULL;
|
||||
|
||||
BusState *bus = qdev_get_child_bus(DEVICE(sdhci), "sd-bus");
|
||||
|
@ -374,7 +374,7 @@ static void quanta_gbs_init(MachineState *machine)
|
|||
drive_get(IF_MTD, 0, 0));
|
||||
|
||||
quanta_gbs_i2c_init(soc);
|
||||
sdhci_attach_drive(&soc->mmc.sdhci);
|
||||
sdhci_attach_drive(&soc->mmc.sdhci, 0);
|
||||
npcm7xx_load_kernel(machine, soc);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue