diff mbox series

[v5,12/17] sdhci: use FIELD_DP32() macro for the WRITE_PROTECT flag

Message ID 20180103180805.18140-13-f4bug@amsat.org
State Superseded, archived
Headers show
Series SDHCI: housekeeping | expand

Commit Message

Philippe Mathieu-Daudé Jan. 3, 2018, 6:08 p.m. UTC
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 hw/sd/sdhci-internal.h | 6 ++++--
 hw/sd/sdhci.c          | 8 ++------
 2 files changed, 6 insertions(+), 8 deletions(-)

Comments

Alistair Francis Jan. 4, 2018, 5:54 p.m. UTC | #1
On Wed, Jan 3, 2018 at 10:08 AM, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

Reviewed-by: Alistair Francis <alistair.francis@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
>
>
diff mbox series

Patch

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)