staging: sm750fb: change definition of POWER_MODE_CTRL multi-bit field
authorMike Rapoport <mike.rapoport@gmail.com>
Sun, 17 Jan 2016 18:04:31 +0000 (20:04 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 8 Feb 2016 02:51:36 +0000 (18:51 -0800)
Use more straight-forward definitions for multi-bit field of
POWER_MODE_CTRL register and use open-coded implementation for register
manipulations.

Signed-off-by: Mike Rapoport <mike.rapoport@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/sm750fb/ddk750_power.c
drivers/staging/sm750fb/ddk750_reg.h

index 4959482cbeb5d56fb0da7f1cdc24233f7845a81b..c85dfc509b043169c1f0a07c0c1501eea1108b5b 100644 (file)
@@ -21,7 +21,7 @@ static unsigned int getPowerMode(void)
 {
        if (getChipType() == SM750LE)
                return 0;
-       return FIELD_GET(PEEK32(POWER_MODE_CTRL), POWER_MODE_CTRL, MODE);
+       return PEEK32(POWER_MODE_CTRL) & POWER_MODE_CTRL_MODE_MASK;
 }
 
 
@@ -33,25 +33,22 @@ void setPowerMode(unsigned int powerMode)
 {
        unsigned int control_value = 0;
 
-       control_value = PEEK32(POWER_MODE_CTRL);
+       control_value = PEEK32(POWER_MODE_CTRL) & ~POWER_MODE_CTRL_MODE_MASK;
 
        if (getChipType() == SM750LE)
                return;
 
        switch (powerMode) {
        case POWER_MODE_CTRL_MODE_MODE0:
-               control_value = FIELD_SET(control_value, POWER_MODE_CTRL, MODE,
-                                         MODE0);
+               control_value |= POWER_MODE_CTRL_MODE_MODE0;
                break;
 
        case POWER_MODE_CTRL_MODE_MODE1:
-               control_value = FIELD_SET(control_value, POWER_MODE_CTRL, MODE,
-                                         MODE1);
+               control_value |= POWER_MODE_CTRL_MODE_MODE1;
                break;
 
        case POWER_MODE_CTRL_MODE_SLEEP:
-               control_value = FIELD_SET(control_value, POWER_MODE_CTRL, MODE,
-                                         SLEEP);
+               control_value |= POWER_MODE_CTRL_MODE_SLEEP;
                break;
 
        default:
index bc49b44c611dfa5da3e96422455fe9c40a039e38..a90b56f55f1ea28d78317a304d4fae341ef8a113 100644 (file)
 #endif
 #define POWER_MODE_CTRL_OSC_INPUT                     BIT(3)
 #define POWER_MODE_CTRL_ACPI                          BIT(2)
-#define POWER_MODE_CTRL_MODE                          1:0
-#define POWER_MODE_CTRL_MODE_MODE0                    0
-#define POWER_MODE_CTRL_MODE_MODE1                    1
-#define POWER_MODE_CTRL_MODE_SLEEP                    2
+#define POWER_MODE_CTRL_MODE_MASK                     (0x3 << 0)
+#define POWER_MODE_CTRL_MODE_MODE0                    (0x0 << 0)
+#define POWER_MODE_CTRL_MODE_MODE1                    (0x1 << 0)
+#define POWER_MODE_CTRL_MODE_SLEEP                    (0x2 << 0)
 
 #define PCI_MASTER_BASE                               0x000050
 #define PCI_MASTER_BASE_ADDRESS                       7:0