summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDouglas Anderson <dianders@chromium.org>2018-04-18 08:54:18 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-08-03 07:48:00 +0200
commit99cf307b59c8c9007e7c02a8cd2b2269a8e5ad6e (patch)
treee6163c33d5466d2de180439bccc3109135699dc4 /include
parentf207585f964f60e52475271c98500b6509887c97 (diff)
downloadlinux-stable-99cf307b59c8c9007e7c02a8cd2b2269a8e5ad6e.tar.gz
linux-stable-99cf307b59c8c9007e7c02a8cd2b2269a8e5ad6e.tar.bz2
linux-stable-99cf307b59c8c9007e7c02a8cd2b2269a8e5ad6e.zip
regulator: Don't return or expect -errno from of_map_mode()
[ Upstream commit 02f3703934a42417021405ef336fe45add13c3d1 ] In of_get_regulation_constraints() we were taking the result of of_map_mode() (an unsigned int) and assigning it to an int. We were then checking whether this value was -EINVAL. Some implementers of of_map_mode() were returning -EINVAL (even though the return type of their function needed to be unsigned int) because they needed to signal an error back to of_get_regulation_constraints(). In general in the regulator framework the mode is always referred to as an unsigned int. While we could fix this to be a signed int (the highest value we store in there right now is 0x8), it's actually pretty clean to just define the regulator mode 0x0 (the lack of any bits set) as an invalid mode. Let's do that. Fixes: 5e5e3a42c653 ("regulator: of: Add support for parsing initial and suspend modes") Suggested-by: Javier Martinez Canillas <javierm@redhat.com> Signed-off-by: Douglas Anderson <dianders@chromium.org> Reviewed-by: Javier Martinez Canillas <javierm@redhat.com> Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/regulator/consumer.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/regulator/consumer.h b/include/linux/regulator/consumer.h
index df176d7c2b87..25602afd4844 100644
--- a/include/linux/regulator/consumer.h
+++ b/include/linux/regulator/consumer.h
@@ -80,6 +80,7 @@ struct regmap;
* These modes can be OR'ed together to make up a mask of valid register modes.
*/
+#define REGULATOR_MODE_INVALID 0x0
#define REGULATOR_MODE_FAST 0x1
#define REGULATOR_MODE_NORMAL 0x2
#define REGULATOR_MODE_IDLE 0x4