[alsa-devel] [PATCH] mfd: wm8994: declare dc servo register for wm8958 as volatile
DC Servo register 57h holds the DC offset value after the hardware has completed the DC Servo Correction, so declare this register as volatile because it is changed by the hardware.
Signed-off-by: Nikesh Oswal nikesh@opensource.wolfsonmicro.com --- drivers/mfd/wm8994-regmap.c | 1 + include/linux/mfd/wm8994/registers.h | 1 + 2 files changed, 2 insertions(+)
diff --git a/drivers/mfd/wm8994-regmap.c b/drivers/mfd/wm8994-regmap.c index 2fbce9c..e775565 100644 --- a/drivers/mfd/wm8994-regmap.c +++ b/drivers/mfd/wm8994-regmap.c @@ -1169,6 +1169,7 @@ static bool wm8958_volatile_register(struct device *dev, unsigned int reg) case WM8958_FW_MINOR_0: case WM8958_FW_PATCH_1: case WM8958_FW_PATCH_0: + case WM8958_DC_SERVO: return true; default: return wm8994_volatile_register(dev, reg); diff --git a/include/linux/mfd/wm8994/registers.h b/include/linux/mfd/wm8994/registers.h index db8cef3..85b4fec 100644 --- a/include/linux/mfd/wm8994/registers.h +++ b/include/linux/mfd/wm8994/registers.h @@ -71,6 +71,7 @@ #define WM8994_DC_SERVO_1 0x54 #define WM8994_DC_SERVO_2 0x55 #define WM8994_DC_SERVO_4 0x57 +#define WM8958_DC_SERVO 0x57 #define WM8994_DC_SERVO_READBACK 0x58 #define WM8994_DC_SERVO_4E 0x59 #define WM8994_ANALOGUE_HP_1 0x60
On Wed, Aug 13, 2014 at 11:46:25AM +0100, Nikesh Oswal wrote:
DC Servo register 57h holds the DC offset value after the hardware has completed the DC Servo Correction, so declare this register as volatile because it is changed by the hardware.
Signed-off-by: Nikesh Oswal nikesh@opensource.wolfsonmicro.com
drivers/mfd/wm8994-regmap.c | 1 + include/linux/mfd/wm8994/registers.h | 1 + 2 files changed, 2 insertions(+)
diff --git a/drivers/mfd/wm8994-regmap.c b/drivers/mfd/wm8994-regmap.c index 2fbce9c..e775565 100644 --- a/drivers/mfd/wm8994-regmap.c +++ b/drivers/mfd/wm8994-regmap.c @@ -1169,6 +1169,7 @@ static bool wm8958_volatile_register(struct device *dev, unsigned int reg) case WM8958_FW_MINOR_0: case WM8958_FW_PATCH_1: case WM8958_FW_PATCH_0:
- case WM8958_DC_SERVO:
I think you can just use the WM8994_DC_SERVO_4 define the register is called DC Servo (4) in the datasheet.
Also would it be worth adding DC_SERVO_1 and DC_SERVO_READBACK as they are being treated as volatile on 8994 and look identical in the datasheet.
return true;
default: return wm8994_volatile_register(dev, reg); diff --git a/include/linux/mfd/wm8994/registers.h b/include/linux/mfd/wm8994/registers.h index db8cef3..85b4fec 100644 --- a/include/linux/mfd/wm8994/registers.h +++ b/include/linux/mfd/wm8994/registers.h @@ -71,6 +71,7 @@ #define WM8994_DC_SERVO_1 0x54 #define WM8994_DC_SERVO_2 0x55 #define WM8994_DC_SERVO_4 0x57 +#define WM8958_DC_SERVO 0x57 #define WM8994_DC_SERVO_READBACK 0x58 #define WM8994_DC_SERVO_4E 0x59
#define WM8994_ANALOGUE_HP_1 0x60
1.7.9.5
Thanks, Charles
On Wed, Aug 13, 2014 at 12:13:38PM +0100, Charles Keepax wrote:
On Wed, Aug 13, 2014 at 11:46:25AM +0100, Nikesh Oswal wrote:
DC Servo register 57h holds the DC offset value after the hardware has completed the DC Servo Correction, so declare this register as volatile because it is changed by the hardware.
Signed-off-by: Nikesh Oswal nikesh@opensource.wolfsonmicro.com
drivers/mfd/wm8994-regmap.c | 1 + include/linux/mfd/wm8994/registers.h | 1 + 2 files changed, 2 insertions(+)
diff --git a/drivers/mfd/wm8994-regmap.c b/drivers/mfd/wm8994-regmap.c index 2fbce9c..e775565 100644 --- a/drivers/mfd/wm8994-regmap.c +++ b/drivers/mfd/wm8994-regmap.c @@ -1169,6 +1169,7 @@ static bool wm8958_volatile_register(struct device *dev, unsigned int reg) case WM8958_FW_MINOR_0: case WM8958_FW_PATCH_1: case WM8958_FW_PATCH_0:
- case WM8958_DC_SERVO:
I think you can just use the WM8994_DC_SERVO_4 define the register is called DC Servo (4) in the datasheet.
Also would it be worth adding DC_SERVO_1 and DC_SERVO_READBACK as they are being treated as volatile on 8994 and look identical in the datasheet.
Sorry missed the call to wm8994_volatile_register ignore this second comment here.
Thanks, Charles
participants (2)
-
Charles Keepax
-
Nikesh Oswal