From: Bernhard Beschow <[email protected]> Now that there are dedicated eSDHC device models it is possible to replace the "vendor" property (which is really a device-specific property) with a dynamic cast, "fishing" out only the device models which shall have the quirk applied.
Signed-off-by: Bernhard Beschow <[email protected]> Reviewed-by: Philippe Mathieu-Daudé <[email protected]> Tested-by: BALATON Zoltan <[email protected]> Message-ID: <[email protected]> Signed-off-by: Philippe Mathieu-Daudé <[email protected]> --- hw/sd/sdhci-internal.h | 1 - include/hw/sd/sdhci.h | 4 ---- hw/sd/sdhci.c | 5 ++--- 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/hw/sd/sdhci-internal.h b/hw/sd/sdhci-internal.h index 50fb746a177..4aeed120bf1 100644 --- a/hw/sd/sdhci-internal.h +++ b/hw/sd/sdhci-internal.h @@ -309,7 +309,6 @@ extern const VMStateDescription sdhci_vmstate; #define DEFINE_SDHCI_COMMON_PROPERTIES(_state) \ DEFINE_PROP_UINT8("sd-spec-version", _state, sd_spec_version, 2), \ DEFINE_PROP_UINT8("uhs", _state, uhs_mode, UHS_NOT_SUPPORTED), \ - DEFINE_PROP_UINT8("vendor", _state, vendor, SDHCI_VENDOR_NONE), \ \ /* Capabilities registers provide information on supported * features of this specific host controller implementation */ \ diff --git a/include/hw/sd/sdhci.h b/include/hw/sd/sdhci.h index 51551348cf5..a9da6203fcb 100644 --- a/include/hw/sd/sdhci.h +++ b/include/hw/sd/sdhci.h @@ -98,7 +98,6 @@ struct SDHCIState { uint32_t quirks; uint8_t sd_spec_version; uint8_t uhs_mode; - uint8_t vendor; /* For vendor specific functionality */ /* * Write Protect pin default active low for detecting SD card * to be protected. Set wp_inverted to invert the signal. @@ -107,9 +106,6 @@ struct SDHCIState { }; typedef struct SDHCIState SDHCIState; -#define SDHCI_VENDOR_NONE 0 -#define SDHCI_VENDOR_FSL 2 - /* * Controller does not provide transfer-complete interrupt when not * busy. diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index eab814096d7..c86dfa281f4 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -307,7 +307,8 @@ static void sdhci_reset(SDHCIState *s) s->data_count = 0; s->stopped_state = sdhc_not_stopped; s->pending_insert_state = false; - if (s->vendor == SDHCI_VENDOR_FSL) { + if (object_dynamic_cast(OBJECT(s), TYPE_FSL_ESDHC_BE) || + object_dynamic_cast(OBJECT(s), TYPE_FSL_ESDHC_LE)) { s->norintstsen = 0x013f; s->errintstsen = 0x117f; } @@ -1863,7 +1864,6 @@ static void fsl_esdhc_be_init(Object *obj) s->io_ops = &esdhc_mmio_be_ops; s->quirks = SDHCI_QUIRK_NO_BUSY_IRQ; qdev_prop_set_uint8(dev, "sd-spec-version", 2); - qdev_prop_set_uint8(dev, "vendor", SDHCI_VENDOR_FSL); } static const MemoryRegionOps esdhc_mmio_le_ops = { @@ -1889,7 +1889,6 @@ static void fsl_esdhc_le_init(Object *obj) s->io_ops = &esdhc_mmio_le_ops; s->quirks = SDHCI_QUIRK_NO_BUSY_IRQ; qdev_prop_set_uint8(dev, "sd-spec-version", 2); - qdev_prop_set_uint8(dev, "vendor", SDHCI_VENDOR_FSL); } static const MemoryRegionOps usdhc_mmio_ops = { -- 2.52.0
