summary refs log tree commit diff stats
path: root/hw/pl181.c
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2011-01-28 11:21:37 +0100
committerKevin Wolf <kwolf@redhat.com>2011-01-31 10:24:11 +0100
commit13839974d14701626a2f9dcc5f8cf65783d51c11 (patch)
tree536cfb5745cf7b76304d7a01fec3d48befb59ec1 /hw/pl181.c
parent1869a65385e9d81f490b4203dd070cc49b7749c9 (diff)
downloadfocaccia-qemu-13839974d14701626a2f9dcc5f8cf65783d51c11.tar.gz
focaccia-qemu-13839974d14701626a2f9dcc5f8cf65783d51c11.zip
blockdev: New drive_get_next(), replacing qdev_init_bdrv()
qdev_init_bdrv() doesn't belong into qdev.c; it's about drives, not
qdevs.  Rename to drive_get_next, move to blockdev.c, drop the bogus
DeviceState argument, and return DriveInfo instead of
BlockDriverState.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'hw/pl181.c')
-rw-r--r--hw/pl181.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/hw/pl181.c b/hw/pl181.c
index 3e5f92f0e7..36d9d02d6a 100644
--- a/hw/pl181.c
+++ b/hw/pl181.c
@@ -7,6 +7,7 @@
  * This code is licenced under the GPL.
  */
 
+#include "blockdev.h"
 #include "sysbus.h"
 #include "sd.h"
 
@@ -449,15 +450,15 @@ static int pl181_init(SysBusDevice *dev)
 {
     int iomemtype;
     pl181_state *s = FROM_SYSBUS(pl181_state, dev);
-    BlockDriverState *bd;
+    DriveInfo *dinfo;
 
     iomemtype = cpu_register_io_memory(pl181_readfn, pl181_writefn, s,
                                        DEVICE_NATIVE_ENDIAN);
     sysbus_init_mmio(dev, 0x1000, iomemtype);
     sysbus_init_irq(dev, &s->irq[0]);
     sysbus_init_irq(dev, &s->irq[1]);
-    bd = qdev_init_bdrv(&dev->qdev, IF_SD);
-    s->card = sd_init(bd, 0);
+    dinfo = drive_get_next(IF_SD);
+    s->card = sd_init(dinfo ? dinfo->bdrv : NULL, 0);
     qemu_register_reset(pl181_reset, s);
     pl181_reset(s);
     /* ??? Save/restore.  */