On Wed, Jan 3, 2018 at 10:08 AM, Philippe Mathieu-Daudé <f4...@amsat.org> wrote: > Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org>
Reviewed-by: Alistair Francis <alistair.fran...@xilinx.com> Alistair > --- > hw/sd/sdhci-internal.h | 6 ++++-- > hw/sd/sdhci.c | 8 ++------ > 2 files changed, 6 insertions(+), 8 deletions(-) > > diff --git a/hw/sd/sdhci-internal.h b/hw/sd/sdhci-internal.h > index e941bc2386..df240ea046 100644 > --- a/hw/sd/sdhci-internal.h > +++ b/hw/sd/sdhci-internal.h > @@ -24,6 +24,8 @@ > #ifndef SDHCI_INTERNAL_H > #define SDHCI_INTERNAL_H > > +#include "hw/registerfields.h" > + > /* R/W SDMA System Address register 0x0 */ > #define SDHC_SYSAD 0x00 > > @@ -77,8 +79,8 @@ > #define SDHC_SPACE_AVAILABLE 0x00000400 > #define SDHC_DATA_AVAILABLE 0x00000800 > #define SDHC_CARD_PRESENT 0x00010000 > -#define SDHC_CARD_DETECT 0x00040000 > -#define SDHC_WRITE_PROTECT 0x00080000 > +FIELD(SDHC_PRNSTS, CARD_DETECT, 18, 1); > +FIELD(SDHC_PRNSTS, WRITE_PROTECT, 19, 1); > #define TRANSFERRING_DATA(x) \ > ((x) & (SDHC_DOING_READ | SDHC_DOING_WRITE)) > > diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c > index ede51d7e45..2c8dc66e7a 100644 > --- a/hw/sd/sdhci.c > +++ b/hw/sd/sdhci.c > @@ -159,12 +159,8 @@ static void sdhci_set_readonly(DeviceState *dev, bool > level) > { > SDHCIState *s = (SDHCIState *)dev; > > - if (level) { > - s->prnsts &= ~SDHC_WRITE_PROTECT; > - } else { > - /* Write enabled */ > - s->prnsts |= SDHC_WRITE_PROTECT; > - } > + /* Write enabled */ > + s->prnsts = FIELD_DP32(s->prnsts, SDHC_PRNSTS, WRITE_PROTECT, level); > } > > static void sdhci_reset(SDHCIState *s) > -- > 2.15.1 > >