regmap: Add can_sleep configuration option
Regmap can't sleep if spinlock is used for the locking protection.
This patch fixes regression caused by a previous commit that switched
regmap to use fsleep() and this broke Amlogic S922X platform.
This patch adds new configuration option for regmap users, allowing to
specify whether regmap operations can sleep and assuming that sleep is
allowed if mutex is used for the regmap locking protection.
Reported-by: Marek Szyprowski <m.szyprowski@samsung.com>
Fixes: 2b32d2f7ce
("regmap: Use flexible sleep")
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Link: https://lore.kernel.org/r/20200902141843.6591-1-digetx@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:

committed by
Mark Brown

parent
d17343b87d
commit
21f8e4828c
@@ -342,6 +342,7 @@ typedef void (*regmap_unlock)(void *);
|
||||
* @hwlock_id: Specify the hardware spinlock id.
|
||||
* @hwlock_mode: The hardware spinlock mode, should be HWLOCK_IRQSTATE,
|
||||
* HWLOCK_IRQ or 0.
|
||||
* @can_sleep: Optional, specifies whether regmap operations can sleep.
|
||||
*/
|
||||
struct regmap_config {
|
||||
const char *name;
|
||||
@@ -398,6 +399,8 @@ struct regmap_config {
|
||||
bool use_hwlock;
|
||||
unsigned int hwlock_id;
|
||||
unsigned int hwlock_mode;
|
||||
|
||||
bool can_sleep;
|
||||
};
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user