Message ID | 20250308213640.13138-3-philmd@linaro.org |
---|---|
State | New |
Headers | show |
Series | hw/sd/sdhci: Set reset value of interrupt registers | expand |
On Sat, 8 Mar 2025, Philippe Mathieu-Daudé wrote: > All instances of TYPE_IMX_USDHC set vendor=SDHCI_VENDOR_IMX. > No need to special-case it. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: BALATON Zoltan <balaton@eik.bme.hu>
Am 8. März 2025 21:36:28 UTC schrieb "Philippe Mathieu-Daudé" <philmd@linaro.org>: >All instances of TYPE_IMX_USDHC set vendor=SDHCI_VENDOR_IMX. >No need to special-case it. > >Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> >--- > hw/sd/sdhci-internal.h | 1 - > include/hw/sd/sdhci.h | 4 ---- > hw/arm/fsl-imx25.c | 2 -- > hw/arm/fsl-imx6.c | 2 -- > hw/arm/fsl-imx6ul.c | 2 -- > hw/arm/fsl-imx7.c | 2 -- > hw/arm/fsl-imx8mp.c | 2 -- > hw/sd/sdhci.c | 14 ++++---------- > 8 files changed, 4 insertions(+), 25 deletions(-) > >diff --git a/hw/sd/sdhci-internal.h b/hw/sd/sdhci-internal.h >index 9f768c418e0..9072b06bdde 100644 >--- a/hw/sd/sdhci-internal.h >+++ b/hw/sd/sdhci-internal.h >@@ -311,7 +311,6 @@ extern const VMStateDescription sdhci_vmstate; > DEFINE_PROP_UINT8("endianness", _state, endianness, DEVICE_LITTLE_ENDIAN), \ > 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 38c08e28598..48247e9a20f 100644 >--- a/include/hw/sd/sdhci.h >+++ b/include/hw/sd/sdhci.h >@@ -99,7 +99,6 @@ struct SDHCIState { > uint8_t endianness; > 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. >@@ -108,9 +107,6 @@ struct SDHCIState { > }; > typedef struct SDHCIState SDHCIState; > >-#define SDHCI_VENDOR_NONE 0 >-#define SDHCI_VENDOR_IMX 1 >- > /* > * Controller does not provide transfer-complete interrupt when not > * busy. >diff --git a/hw/arm/fsl-imx25.c b/hw/arm/fsl-imx25.c >index 5359a6d8d3b..02214ca1a1c 100644 >--- a/hw/arm/fsl-imx25.c >+++ b/hw/arm/fsl-imx25.c >@@ -243,8 +243,6 @@ static void fsl_imx25_realize(DeviceState *dev, Error **errp) > &error_abort); > object_property_set_uint(OBJECT(&s->esdhc[i]), "capareg", > IMX25_ESDHC_CAPABILITIES, &error_abort); >- object_property_set_uint(OBJECT(&s->esdhc[i]), "vendor", >- SDHCI_VENDOR_IMX, &error_abort); > if (!sysbus_realize(SYS_BUS_DEVICE(&s->esdhc[i]), errp)) { > return; > } >diff --git a/hw/arm/fsl-imx6.c b/hw/arm/fsl-imx6.c >index dc86338b3a5..a114dc0d63d 100644 >--- a/hw/arm/fsl-imx6.c >+++ b/hw/arm/fsl-imx6.c >@@ -327,8 +327,6 @@ static void fsl_imx6_realize(DeviceState *dev, Error **errp) > &error_abort); > object_property_set_uint(OBJECT(&s->esdhc[i]), "capareg", > IMX6_ESDHC_CAPABILITIES, &error_abort); >- object_property_set_uint(OBJECT(&s->esdhc[i]), "vendor", >- SDHCI_VENDOR_IMX, &error_abort); > if (!sysbus_realize(SYS_BUS_DEVICE(&s->esdhc[i]), errp)) { > return; > } >diff --git a/hw/arm/fsl-imx6ul.c b/hw/arm/fsl-imx6ul.c >index 34c4aa15cd0..ce8d3ef535f 100644 >--- a/hw/arm/fsl-imx6ul.c >+++ b/hw/arm/fsl-imx6ul.c >@@ -531,8 +531,6 @@ static void fsl_imx6ul_realize(DeviceState *dev, Error **errp) > FSL_IMX6UL_USDHC2_IRQ, > }; > >- object_property_set_uint(OBJECT(&s->usdhc[i]), "vendor", >- SDHCI_VENDOR_IMX, &error_abort); > sysbus_realize(SYS_BUS_DEVICE(&s->usdhc[i]), &error_abort); > > sysbus_mmio_map(SYS_BUS_DEVICE(&s->usdhc[i]), 0, >diff --git a/hw/arm/fsl-imx7.c b/hw/arm/fsl-imx7.c >index 3374018cde0..ed1f10bca26 100644 >--- a/hw/arm/fsl-imx7.c >+++ b/hw/arm/fsl-imx7.c >@@ -471,8 +471,6 @@ static void fsl_imx7_realize(DeviceState *dev, Error **errp) > FSL_IMX7_USDHC3_IRQ, > }; > >- object_property_set_uint(OBJECT(&s->usdhc[i]), "vendor", >- SDHCI_VENDOR_IMX, &error_abort); > sysbus_realize(SYS_BUS_DEVICE(&s->usdhc[i]), &error_abort); > > sysbus_mmio_map(SYS_BUS_DEVICE(&s->usdhc[i]), 0, >diff --git a/hw/arm/fsl-imx8mp.c b/hw/arm/fsl-imx8mp.c >index 1ea98e14635..c3f6da63220 100644 >--- a/hw/arm/fsl-imx8mp.c >+++ b/hw/arm/fsl-imx8mp.c >@@ -524,8 +524,6 @@ static void fsl_imx8mp_realize(DeviceState *dev, Error **errp) > { fsl_imx8mp_memmap[FSL_IMX8MP_USDHC3].addr, FSL_IMX8MP_USDHC3_IRQ }, > }; > >- object_property_set_uint(OBJECT(&s->usdhc[i]), "vendor", >- SDHCI_VENDOR_IMX, &error_abort); > if (!sysbus_realize(SYS_BUS_DEVICE(&s->usdhc[i]), errp)) { > return; > } >diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c >index 1f45a77566c..149b748cbee 100644 >--- a/hw/sd/sdhci.c >+++ b/hw/sd/sdhci.c >@@ -1731,16 +1731,10 @@ usdhc_write(void *opaque, hwaddr offset, uint64_t val, unsigned size) > > case USDHC_VENDOR_SPEC: > s->vendor_spec = value; >- switch (s->vendor) { >- case SDHCI_VENDOR_IMX: >- if (value & USDHC_IMX_FRC_SDCLK_ON) { >- s->prnsts &= ~SDHC_IMX_CLOCK_GATE_OFF; >- } else { >- s->prnsts |= SDHC_IMX_CLOCK_GATE_OFF; >- } >- break; >- default: >- break; >+ if (value & USDHC_IMX_FRC_SDCLK_ON) { >+ s->prnsts &= ~SDHC_IMX_CLOCK_GATE_OFF; >+ } else { >+ s->prnsts |= SDHC_IMX_CLOCK_GATE_OFF; > } > break; > Reviewed-by: Bernhard Beschow <shentey@gmail.com>
diff --git a/hw/sd/sdhci-internal.h b/hw/sd/sdhci-internal.h index 9f768c418e0..9072b06bdde 100644 --- a/hw/sd/sdhci-internal.h +++ b/hw/sd/sdhci-internal.h @@ -311,7 +311,6 @@ extern const VMStateDescription sdhci_vmstate; DEFINE_PROP_UINT8("endianness", _state, endianness, DEVICE_LITTLE_ENDIAN), \ 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 38c08e28598..48247e9a20f 100644 --- a/include/hw/sd/sdhci.h +++ b/include/hw/sd/sdhci.h @@ -99,7 +99,6 @@ struct SDHCIState { uint8_t endianness; 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. @@ -108,9 +107,6 @@ struct SDHCIState { }; typedef struct SDHCIState SDHCIState; -#define SDHCI_VENDOR_NONE 0 -#define SDHCI_VENDOR_IMX 1 - /* * Controller does not provide transfer-complete interrupt when not * busy. diff --git a/hw/arm/fsl-imx25.c b/hw/arm/fsl-imx25.c index 5359a6d8d3b..02214ca1a1c 100644 --- a/hw/arm/fsl-imx25.c +++ b/hw/arm/fsl-imx25.c @@ -243,8 +243,6 @@ static void fsl_imx25_realize(DeviceState *dev, Error **errp) &error_abort); object_property_set_uint(OBJECT(&s->esdhc[i]), "capareg", IMX25_ESDHC_CAPABILITIES, &error_abort); - object_property_set_uint(OBJECT(&s->esdhc[i]), "vendor", - SDHCI_VENDOR_IMX, &error_abort); if (!sysbus_realize(SYS_BUS_DEVICE(&s->esdhc[i]), errp)) { return; } diff --git a/hw/arm/fsl-imx6.c b/hw/arm/fsl-imx6.c index dc86338b3a5..a114dc0d63d 100644 --- a/hw/arm/fsl-imx6.c +++ b/hw/arm/fsl-imx6.c @@ -327,8 +327,6 @@ static void fsl_imx6_realize(DeviceState *dev, Error **errp) &error_abort); object_property_set_uint(OBJECT(&s->esdhc[i]), "capareg", IMX6_ESDHC_CAPABILITIES, &error_abort); - object_property_set_uint(OBJECT(&s->esdhc[i]), "vendor", - SDHCI_VENDOR_IMX, &error_abort); if (!sysbus_realize(SYS_BUS_DEVICE(&s->esdhc[i]), errp)) { return; } diff --git a/hw/arm/fsl-imx6ul.c b/hw/arm/fsl-imx6ul.c index 34c4aa15cd0..ce8d3ef535f 100644 --- a/hw/arm/fsl-imx6ul.c +++ b/hw/arm/fsl-imx6ul.c @@ -531,8 +531,6 @@ static void fsl_imx6ul_realize(DeviceState *dev, Error **errp) FSL_IMX6UL_USDHC2_IRQ, }; - object_property_set_uint(OBJECT(&s->usdhc[i]), "vendor", - SDHCI_VENDOR_IMX, &error_abort); sysbus_realize(SYS_BUS_DEVICE(&s->usdhc[i]), &error_abort); sysbus_mmio_map(SYS_BUS_DEVICE(&s->usdhc[i]), 0, diff --git a/hw/arm/fsl-imx7.c b/hw/arm/fsl-imx7.c index 3374018cde0..ed1f10bca26 100644 --- a/hw/arm/fsl-imx7.c +++ b/hw/arm/fsl-imx7.c @@ -471,8 +471,6 @@ static void fsl_imx7_realize(DeviceState *dev, Error **errp) FSL_IMX7_USDHC3_IRQ, }; - object_property_set_uint(OBJECT(&s->usdhc[i]), "vendor", - SDHCI_VENDOR_IMX, &error_abort); sysbus_realize(SYS_BUS_DEVICE(&s->usdhc[i]), &error_abort); sysbus_mmio_map(SYS_BUS_DEVICE(&s->usdhc[i]), 0, diff --git a/hw/arm/fsl-imx8mp.c b/hw/arm/fsl-imx8mp.c index 1ea98e14635..c3f6da63220 100644 --- a/hw/arm/fsl-imx8mp.c +++ b/hw/arm/fsl-imx8mp.c @@ -524,8 +524,6 @@ static void fsl_imx8mp_realize(DeviceState *dev, Error **errp) { fsl_imx8mp_memmap[FSL_IMX8MP_USDHC3].addr, FSL_IMX8MP_USDHC3_IRQ }, }; - object_property_set_uint(OBJECT(&s->usdhc[i]), "vendor", - SDHCI_VENDOR_IMX, &error_abort); if (!sysbus_realize(SYS_BUS_DEVICE(&s->usdhc[i]), errp)) { return; } diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index 1f45a77566c..149b748cbee 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -1731,16 +1731,10 @@ usdhc_write(void *opaque, hwaddr offset, uint64_t val, unsigned size) case USDHC_VENDOR_SPEC: s->vendor_spec = value; - switch (s->vendor) { - case SDHCI_VENDOR_IMX: - if (value & USDHC_IMX_FRC_SDCLK_ON) { - s->prnsts &= ~SDHC_IMX_CLOCK_GATE_OFF; - } else { - s->prnsts |= SDHC_IMX_CLOCK_GATE_OFF; - } - break; - default: - break; + if (value & USDHC_IMX_FRC_SDCLK_ON) { + s->prnsts &= ~SDHC_IMX_CLOCK_GATE_OFF; + } else { + s->prnsts |= SDHC_IMX_CLOCK_GATE_OFF; } break;
All instances of TYPE_IMX_USDHC set vendor=SDHCI_VENDOR_IMX. No need to special-case it. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- hw/sd/sdhci-internal.h | 1 - include/hw/sd/sdhci.h | 4 ---- hw/arm/fsl-imx25.c | 2 -- hw/arm/fsl-imx6.c | 2 -- hw/arm/fsl-imx6ul.c | 2 -- hw/arm/fsl-imx7.c | 2 -- hw/arm/fsl-imx8mp.c | 2 -- hw/sd/sdhci.c | 14 ++++---------- 8 files changed, 4 insertions(+), 25 deletions(-)