* [PATCHv2 0/3] regulator: cpcap: Fix standby mode
@ 2017-07-10 14:33 Sebastian Reichel
2017-07-10 14:33 ` [PATCHv2 1/3] " Sebastian Reichel
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Sebastian Reichel @ 2017-07-10 14:33 UTC (permalink / raw)
To: Sebastian Reichel, Liam Girdwood, Mark Brown, Tony Lindgren
Cc: linux-kernel, linux-omap, Sebastian Reichel
Hi,
This fixes standby mode of vaudio on Motorola Droid 4.
Changes since PATCHv1:
* return -EINVAL for invalid modes
* Split driver change into two patches, since two things are changed
* Add Acked-by from Tony
-- Sebastian
Sebastian Reichel (3):
regulator: cpcap: Fix standby mode
regulator: cpcap: Add OF mode mapping
ARM: dts: motorola-cpcap-mapphone: set initial mode for vaudio
arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi | 1 +
drivers/regulator/cpcap-regulator.c | 21 ++++++++++++++++++---
2 files changed, 19 insertions(+), 3 deletions(-)
--
2.13.2
^ permalink raw reply [flat|nested] 7+ messages in thread* [PATCHv2 1/3] regulator: cpcap: Fix standby mode 2017-07-10 14:33 [PATCHv2 0/3] regulator: cpcap: Fix standby mode Sebastian Reichel @ 2017-07-10 14:33 ` Sebastian Reichel 2017-07-10 18:42 ` Applied "regulator: cpcap: Fix standby mode" to the regulator tree Mark Brown 2017-07-10 14:33 ` [PATCHv2 2/3] regulator: cpcap: Add OF mode mapping Sebastian Reichel 2017-07-10 14:33 ` [PATCHv2 3/3] ARM: dts: motorola-cpcap-mapphone: set initial mode for vaudio Sebastian Reichel 2 siblings, 1 reply; 7+ messages in thread From: Sebastian Reichel @ 2017-07-10 14:33 UTC (permalink / raw) To: Sebastian Reichel, Liam Girdwood, Mark Brown, Tony Lindgren Cc: linux-kernel, linux-omap, Sebastian Reichel The original patch from Tony uses standby mode bit inverted, which is not correct. This fixes all instances in the driver code for get & set mode. This did not yet make problems, since mode has not been changed by any mainline driver so far. Fixes: 0ad4c07edd41 ("regulator: cpcap: Add basic regulator support") Acked-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk> --- drivers/regulator/cpcap-regulator.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/regulator/cpcap-regulator.c b/drivers/regulator/cpcap-regulator.c index cc98aceed1c1..ce1cab320f6f 100644 --- a/drivers/regulator/cpcap-regulator.c +++ b/drivers/regulator/cpcap-regulator.c @@ -77,6 +77,8 @@ #define CPCAP_BIT_VAUDIO_MODE0 BIT(1) #define CPCAP_BIT_V_AUDIO_EN BIT(0) +#define CPCAP_BIT_AUDIO_NORMAL_MODE 0x00 + /* * Off mode configuration bit. Used currently only by SW5 on omap4. There's * the following comment in Motorola Linux kernel tree for it: @@ -217,7 +219,7 @@ static unsigned int cpcap_regulator_get_mode(struct regulator_dev *rdev) regmap_read(rdev->regmap, rdev->desc->enable_reg, &value); - if (!(value & CPCAP_BIT_AUDIO_LOW_PWR)) + if (value & CPCAP_BIT_AUDIO_LOW_PWR) return REGULATOR_MODE_STANDBY; return REGULATOR_MODE_NORMAL; @@ -230,10 +232,10 @@ static int cpcap_regulator_set_mode(struct regulator_dev *rdev, switch (mode) { case REGULATOR_MODE_NORMAL: - value = CPCAP_BIT_AUDIO_LOW_PWR; + value = CPCAP_BIT_AUDIO_NORMAL_MODE; break; case REGULATOR_MODE_STANDBY: - value = 0; + value = CPCAP_BIT_AUDIO_LOW_PWR; break; default: return -EINVAL; -- 2.13.2 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Applied "regulator: cpcap: Fix standby mode" to the regulator tree 2017-07-10 14:33 ` [PATCHv2 1/3] " Sebastian Reichel @ 2017-07-10 18:42 ` Mark Brown 0 siblings, 0 replies; 7+ messages in thread From: Mark Brown @ 2017-07-10 18:42 UTC (permalink / raw) To: Sebastian Reichel Cc: Tony Lindgren, Mark Brown, stable, Sebastian Reichel, Liam Girdwood, Mark Brown, Tony Lindgren, linux-kernel, linux-omap, linux-kernel The patch regulator: cpcap: Fix standby mode has been applied to the regulator tree at git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted. You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed. If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced. Please add any relevant lists and maintainers to the CCs when replying to this mail. Thanks, Mark >From 4ebb9d7f901027e1740f69829cf10af0193e8e17 Mon Sep 17 00:00:00 2001 From: Sebastian Reichel <sebastian.reichel@collabora.co.uk> Date: Mon, 10 Jul 2017 16:33:39 +0200 Subject: [PATCH] regulator: cpcap: Fix standby mode The original patch from Tony uses standby mode bit inverted, which is not correct. This fixes all instances in the driver code for get & set mode. This did not yet make problems, since mode has not been changed by any mainline driver so far. Fixes: 0ad4c07edd41 ("regulator: cpcap: Add basic regulator support") Acked-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk> Signed-off-by: Mark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org --- drivers/regulator/cpcap-regulator.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/regulator/cpcap-regulator.c b/drivers/regulator/cpcap-regulator.c index cc98aceed1c1..ce1cab320f6f 100644 --- a/drivers/regulator/cpcap-regulator.c +++ b/drivers/regulator/cpcap-regulator.c @@ -77,6 +77,8 @@ #define CPCAP_BIT_VAUDIO_MODE0 BIT(1) #define CPCAP_BIT_V_AUDIO_EN BIT(0) +#define CPCAP_BIT_AUDIO_NORMAL_MODE 0x00 + /* * Off mode configuration bit. Used currently only by SW5 on omap4. There's * the following comment in Motorola Linux kernel tree for it: @@ -217,7 +219,7 @@ static unsigned int cpcap_regulator_get_mode(struct regulator_dev *rdev) regmap_read(rdev->regmap, rdev->desc->enable_reg, &value); - if (!(value & CPCAP_BIT_AUDIO_LOW_PWR)) + if (value & CPCAP_BIT_AUDIO_LOW_PWR) return REGULATOR_MODE_STANDBY; return REGULATOR_MODE_NORMAL; @@ -230,10 +232,10 @@ static int cpcap_regulator_set_mode(struct regulator_dev *rdev, switch (mode) { case REGULATOR_MODE_NORMAL: - value = CPCAP_BIT_AUDIO_LOW_PWR; + value = CPCAP_BIT_AUDIO_NORMAL_MODE; break; case REGULATOR_MODE_STANDBY: - value = 0; + value = CPCAP_BIT_AUDIO_LOW_PWR; break; default: return -EINVAL; -- 2.13.2 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCHv2 2/3] regulator: cpcap: Add OF mode mapping 2017-07-10 14:33 [PATCHv2 0/3] regulator: cpcap: Fix standby mode Sebastian Reichel 2017-07-10 14:33 ` [PATCHv2 1/3] " Sebastian Reichel @ 2017-07-10 14:33 ` Sebastian Reichel 2017-07-10 18:42 ` Applied "regulator: cpcap: Add OF mode mapping" to the regulator tree Mark Brown 2017-07-10 14:33 ` [PATCHv2 3/3] ARM: dts: motorola-cpcap-mapphone: set initial mode for vaudio Sebastian Reichel 2 siblings, 1 reply; 7+ messages in thread From: Sebastian Reichel @ 2017-07-10 14:33 UTC (permalink / raw) To: Sebastian Reichel, Liam Girdwood, Mark Brown, Tony Lindgren Cc: linux-kernel, linux-omap, Sebastian Reichel Add device tree mode mapping capabilities to the cpcap driver. Acked-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk> --- drivers/regulator/cpcap-regulator.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/regulator/cpcap-regulator.c b/drivers/regulator/cpcap-regulator.c index ce1cab320f6f..f541b80f1b54 100644 --- a/drivers/regulator/cpcap-regulator.c +++ b/drivers/regulator/cpcap-regulator.c @@ -123,6 +123,7 @@ struct cpcap_regulator { .enable_val = (mode_val), \ .disable_val = (off_val), \ .ramp_delay = (volt_trans_time), \ + .of_map_mode = cpcap_map_mode, \ }, \ .assign_reg = (assignment_reg), \ .assign_mask = (assignment_mask), \ @@ -213,6 +214,18 @@ static int cpcap_regulator_disable(struct regulator_dev *rdev) return error; } +static unsigned int cpcap_map_mode(unsigned int mode) +{ + switch (mode) { + case CPCAP_BIT_AUDIO_NORMAL_MODE: + return REGULATOR_MODE_NORMAL; + case CPCAP_BIT_AUDIO_LOW_PWR: + return REGULATOR_MODE_STANDBY; + default: + return -EINVAL; + } +} + static unsigned int cpcap_regulator_get_mode(struct regulator_dev *rdev) { int value; -- 2.13.2 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Applied "regulator: cpcap: Add OF mode mapping" to the regulator tree 2017-07-10 14:33 ` [PATCHv2 2/3] regulator: cpcap: Add OF mode mapping Sebastian Reichel @ 2017-07-10 18:42 ` Mark Brown 0 siblings, 0 replies; 7+ messages in thread From: Mark Brown @ 2017-07-10 18:42 UTC (permalink / raw) To: Sebastian Reichel Cc: Tony Lindgren, Mark Brown, Sebastian Reichel, Liam Girdwood, Mark Brown, Tony Lindgren, linux-kernel, linux-omap, linux-kernel The patch regulator: cpcap: Add OF mode mapping has been applied to the regulator tree at git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted. You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed. If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced. Please add any relevant lists and maintainers to the CCs when replying to this mail. Thanks, Mark >From 8c02843cb0f9f2c8857d9228ec56ce931e957f62 Mon Sep 17 00:00:00 2001 From: Sebastian Reichel <sebastian.reichel@collabora.co.uk> Date: Mon, 10 Jul 2017 16:33:40 +0200 Subject: [PATCH] regulator: cpcap: Add OF mode mapping Add device tree mode mapping capabilities to the cpcap driver. Acked-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk> Signed-off-by: Mark Brown <broonie@kernel.org> --- drivers/regulator/cpcap-regulator.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/regulator/cpcap-regulator.c b/drivers/regulator/cpcap-regulator.c index ce1cab320f6f..f541b80f1b54 100644 --- a/drivers/regulator/cpcap-regulator.c +++ b/drivers/regulator/cpcap-regulator.c @@ -123,6 +123,7 @@ struct cpcap_regulator { .enable_val = (mode_val), \ .disable_val = (off_val), \ .ramp_delay = (volt_trans_time), \ + .of_map_mode = cpcap_map_mode, \ }, \ .assign_reg = (assignment_reg), \ .assign_mask = (assignment_mask), \ @@ -213,6 +214,18 @@ static int cpcap_regulator_disable(struct regulator_dev *rdev) return error; } +static unsigned int cpcap_map_mode(unsigned int mode) +{ + switch (mode) { + case CPCAP_BIT_AUDIO_NORMAL_MODE: + return REGULATOR_MODE_NORMAL; + case CPCAP_BIT_AUDIO_LOW_PWR: + return REGULATOR_MODE_STANDBY; + default: + return -EINVAL; + } +} + static unsigned int cpcap_regulator_get_mode(struct regulator_dev *rdev) { int value; -- 2.13.2 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCHv2 3/3] ARM: dts: motorola-cpcap-mapphone: set initial mode for vaudio 2017-07-10 14:33 [PATCHv2 0/3] regulator: cpcap: Fix standby mode Sebastian Reichel 2017-07-10 14:33 ` [PATCHv2 1/3] " Sebastian Reichel 2017-07-10 14:33 ` [PATCHv2 2/3] regulator: cpcap: Add OF mode mapping Sebastian Reichel @ 2017-07-10 14:33 ` Sebastian Reichel 2017-08-10 16:45 ` Tony Lindgren 2 siblings, 1 reply; 7+ messages in thread From: Sebastian Reichel @ 2017-07-10 14:33 UTC (permalink / raw) To: Sebastian Reichel, Liam Girdwood, Mark Brown, Tony Lindgren Cc: linux-kernel, linux-omap, Sebastian Reichel Set default mode for vaudio, which may be left in standby mode if the system is booted via kexec from Android. Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk> --- arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi b/arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi index 86033aee8a29..7c6d61fb5cf2 100644 --- a/arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi +++ b/arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi @@ -261,5 +261,6 @@ regulator-min-microvolt = <2775000>; regulator-max-microvolt = <2775000>; regulator-enable-ramp-delay = <1000>; + regulator-initial-mode = <0x00>; /* NORMAL */ }; }; -- 2.13.2 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCHv2 3/3] ARM: dts: motorola-cpcap-mapphone: set initial mode for vaudio 2017-07-10 14:33 ` [PATCHv2 3/3] ARM: dts: motorola-cpcap-mapphone: set initial mode for vaudio Sebastian Reichel @ 2017-08-10 16:45 ` Tony Lindgren 0 siblings, 0 replies; 7+ messages in thread From: Tony Lindgren @ 2017-08-10 16:45 UTC (permalink / raw) To: Sebastian Reichel Cc: Sebastian Reichel, Liam Girdwood, Mark Brown, linux-kernel, linux-omap * Sebastian Reichel <sebastian.reichel@collabora.co.uk> [170710 07:34]: > Set default mode for vaudio, which may be left in standby mode > if the system is booted via kexec from Android. Applying into omap-for-v4.14/dt thanks. Tony ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2017-08-10 16:46 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-07-10 14:33 [PATCHv2 0/3] regulator: cpcap: Fix standby mode Sebastian Reichel 2017-07-10 14:33 ` [PATCHv2 1/3] " Sebastian Reichel 2017-07-10 18:42 ` Applied "regulator: cpcap: Fix standby mode" to the regulator tree Mark Brown 2017-07-10 14:33 ` [PATCHv2 2/3] regulator: cpcap: Add OF mode mapping Sebastian Reichel 2017-07-10 18:42 ` Applied "regulator: cpcap: Add OF mode mapping" to the regulator tree Mark Brown 2017-07-10 14:33 ` [PATCHv2 3/3] ARM: dts: motorola-cpcap-mapphone: set initial mode for vaudio Sebastian Reichel 2017-08-10 16:45 ` Tony Lindgren
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox