regmap: Allow regmap_update_bits() to be offloaded with no bus
Some hardware can do this so let's use that capability. -----BEGIN PGP SIGNATURE----- iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmGVguoACgkQJNaLcl1U h9AepAf/fyvh/Kjl5Bzpz5uzOG97WcWkpJzAd23qRD+iwvRxdXP5SK+f2AabOlXk 03LaEdjuQwQfHBbolBa8fXpnt2BT7oKKIMbgyf0Lm6ScZZYNmRTS/0ZOWJT76yiT Q0i7fdIa41yccVep1O6Ux7CBnBfSSmBeZ/HGws1kHu4SBBTDEGZgR3RNKzl4g97Z TcPTlQIZl/C48basYtgPG1EN49u8MgM4rDRVzs2h6xnqTe6gydk+McW57E6hgZkW 0kLWpUEJuHpe3bTfx3SuG1XmSD5WoM5G20RGJOcfhHaX2D2DpMvTGJdNqNUCEG8t XVOBkXPq2E3u3XYVQf93uFKRNIqgLA== =q7bK -----END PGP SIGNATURE----- Merge tag 'regmap-no-bus-update-bits' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap Mark Brown says: =================== regmap: Allow regmap_update_bits() to be offloaded with no bus Some hardware can do this so let's use that capability. =================== Link: https://lore.kernel.org/all/YZWDOidBOssP10yS@sirena.org.uk/ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
3b1abcf128
@ -876,6 +876,7 @@ struct regmap *__regmap_init(struct device *dev,
|
||||
if (!bus) {
|
||||
map->reg_read = config->reg_read;
|
||||
map->reg_write = config->reg_write;
|
||||
map->reg_update_bits = config->reg_update_bits;
|
||||
|
||||
map->defer_caching = false;
|
||||
goto skip_format_initialization;
|
||||
|
@ -290,6 +290,11 @@ typedef void (*regmap_unlock)(void *);
|
||||
* read operation on a bus such as SPI, I2C, etc. Most of the
|
||||
* devices do not need this.
|
||||
* @reg_write: Same as above for writing.
|
||||
* @reg_update_bits: Optional callback that if filled will be used to perform
|
||||
* all the update_bits(rmw) operation. Should only be provided
|
||||
* if the function require special handling with lock and reg
|
||||
* handling and the operation cannot be represented as a simple
|
||||
* update_bits operation on a bus such as SPI, I2C, etc.
|
||||
* @fast_io: Register IO is fast. Use a spinlock instead of a mutex
|
||||
* to perform locking. This field is ignored if custom lock/unlock
|
||||
* functions are used (see fields lock/unlock of struct regmap_config).
|
||||
@ -372,6 +377,8 @@ struct regmap_config {
|
||||
|
||||
int (*reg_read)(void *context, unsigned int reg, unsigned int *val);
|
||||
int (*reg_write)(void *context, unsigned int reg, unsigned int val);
|
||||
int (*reg_update_bits)(void *context, unsigned int reg,
|
||||
unsigned int mask, unsigned int val);
|
||||
|
||||
bool fast_io;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user