[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 09/11] sdhci: implement the SD_BUS_MASTER interface
From: |
Philippe Mathieu-Daudé |
Subject: |
[Qemu-devel] [PATCH 09/11] sdhci: implement the SD_BUS_MASTER interface |
Date: |
Wed, 13 Dec 2017 17:44:34 -0300 |
The SDHCI is a SD master, let it implement the SD_BUS_MASTER interface,
this even allow remove the SDHCI_BUS type.
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
---
hw/sd/sdhci.c | 30 +++++++++---------------------
1 file changed, 9 insertions(+), 21 deletions(-)
diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c
index 40596f6ebe..d8188fdc2a 100644
--- a/hw/sd/sdhci.c
+++ b/hw/sd/sdhci.c
@@ -35,9 +35,6 @@
#include "qemu/log.h"
#include "trace.h"
-#define TYPE_SDHCI_BUS "sdhci-bus"
-#define SDHCI_BUS(obj) OBJECT_CHECK(SDBus, (obj), TYPE_SDHCI_BUS)
-
/* Default SD/MMC host controller features information, which will be
* presented in CAPABILITIES register of generic SD host controller at reset.
* If not stated otherwise:
@@ -1279,11 +1276,15 @@ static Property sdhci_properties[] = {
static void sdhci_class_init(ObjectClass *klass, void *data)
{
DeviceClass *dc = DEVICE_CLASS(klass);
+ SDBusClass *sbc = SDBUS_MASTER_CLASS(klass);
set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);
dc->vmsd = &sdhci_vmstate;
dc->props = sdhci_properties;
dc->reset = sdhci_poweron_reset;
+
+ sbc->set_inserted = sdhci_set_inserted;
+ sbc->set_readonly = sdhci_set_readonly;
}
/* --- qdev PCI --- */
@@ -1328,6 +1329,7 @@ static const TypeInfo sdhci_pci_info = {
.instance_size = sizeof(SDHCIState),
.class_init = sdhci_pci_class_init,
.interfaces = (InterfaceInfo[]) {
+ { TYPE_SD_BUS_MASTER_INTERFACE },
{ INTERFACE_CONVENTIONAL_PCI_DEVICE },
{ },
},
@@ -1383,30 +1385,16 @@ static const TypeInfo sdhci_sysbus_info = {
.instance_init = sdhci_sysbus_init,
.instance_finalize = sdhci_sysbus_finalize,
.class_init = sdhci_sysbus_class_init,
-};
-
-/* --- qdev bus master --- */
-
-static void sdhci_bus_class_init(ObjectClass *klass, void *data)
-{
- SDBusClass *sbc = SD_BUS_CLASS(klass);
-
- sbc->set_inserted = sdhci_set_inserted;
- sbc->set_readonly = sdhci_set_readonly;
-}
-
-static const TypeInfo sdhci_bus_info = {
- .name = TYPE_SDHCI_BUS,
- .parent = TYPE_SD_BUS,
- .instance_size = sizeof(SDBus),
- .class_init = sdhci_bus_class_init,
+ .interfaces = (InterfaceInfo[]) {
+ { TYPE_SD_BUS_MASTER_INTERFACE },
+ { },
+ },
};
static void sdhci_register_types(void)
{
type_register_static(&sdhci_pci_info);
type_register_static(&sdhci_sysbus_info);
- type_register_static(&sdhci_bus_info);
}
type_init(sdhci_register_types)
--
2.15.1
- Re: [Qemu-devel] [PATCH 02/11] bcm2835_peripherals: move GPIO 'sdbus' property link from init() -> realize(), (continued)
- [Qemu-devel] [PATCH 03/11] sdbus: add trace events, Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 04/11] sdbus: add sdbus_create_bus() to replace qbus_create_inplace(), Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 05/11] sdbus: add sdbus_create_slave(), Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 06/11] sdbus: rename SDCardClass -> SDSlaveClass, Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 07/11] sdbus: add a SD_BUS_SLAVE interface, Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 08/11] sdbus: add a SD_BUS_MASTER interface, Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 09/11] sdhci: implement the SD_BUS_MASTER interface,
Philippe Mathieu-Daudé <=
- [Qemu-devel] [PATCH 10/11] hw/sd/pxa2xx: implement the SD_BUS_MASTER interface, Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 11/11] hw/arm/xilinx_zynq: use sdbus_create_slave() to name the different SD busses, Philippe Mathieu-Daudé, 2017/12/13