@ -163,6 +163,7 @@ static unsigned int regmap_parse_32(void *buf)
*
* @ dev : Device that will be interacted with
* @ bus : Bus - specific callbacks to use with device
* @ bus_context : Data passed to bus - specific callbacks
* @ config : Configuration for register map
*
* The return value will be an ERR_PTR ( ) on error or a valid pointer to
@ -171,6 +172,7 @@ static unsigned int regmap_parse_32(void *buf)
*/
struct regmap * regmap_init ( struct device * dev ,
const struct regmap_bus * bus ,
void * bus_context ,
const struct regmap_config * config )
{
struct regmap * map ;
@ -193,6 +195,7 @@ struct regmap *regmap_init(struct device *dev,
map - > format . buf_size + = map - > format . pad_bytes ;
map - > dev = dev ;
map - > bus = bus ;
map - > bus_context = bus_context ;
map - > max_register = config - > max_register ;
map - > writeable_reg = config - > writeable_reg ;
map - > readable_reg = config - > readable_reg ;
@ -316,6 +319,7 @@ static void devm_regmap_release(struct device *dev, void *res)
*
* @ dev : Device that will be interacted with
* @ bus : Bus - specific callbacks to use with device
* @ bus_context : Data passed to bus - specific callbacks
* @ config : Configuration for register map
*
* The return value will be an ERR_PTR ( ) on error or a valid pointer
@ -325,6 +329,7 @@ static void devm_regmap_release(struct device *dev, void *res)
*/
struct regmap * devm_regmap_init ( struct device * dev ,
const struct regmap_bus * bus ,
void * bus_context ,
const struct regmap_config * config )
{
struct regmap * * ptr , * regmap ;
@ -333,7 +338,7 @@ struct regmap *devm_regmap_init(struct device *dev,
if ( ! ptr )
return ERR_PTR ( - ENOMEM ) ;
regmap = regmap_init ( dev , bus , config ) ;
regmap = regmap_init ( dev , bus , bus_context , config ) ;
if ( ! IS_ERR ( regmap ) ) {
* ptr = regmap ;
devres_add ( dev , ptr ) ;
@ -391,6 +396,8 @@ void regmap_exit(struct regmap *map)
{
regcache_exit ( map ) ;
regmap_debugfs_exit ( map ) ;
if ( map - > bus - > free_context )
map - > bus - > free_context ( map - > bus_context ) ;
kfree ( map - > work_buf ) ;
kfree ( map ) ;
}
@ -444,12 +451,12 @@ static int _regmap_raw_write(struct regmap *map, unsigned int reg,
*/
if ( val = = ( map - > work_buf + map - > format . pad_bytes +
map - > format . reg_bytes ) )
ret = map - > bus - > write ( map - > dev , map - > work_buf ,
ret = map - > bus - > write ( map - > bus_context , map - > work_buf ,
map - > format . reg_bytes +
map - > format . pad_bytes +
val_len ) ;
else if ( map - > bus - > gather_write )
ret = map - > bus - > gather_write ( map - > dev , map - > work_buf ,
ret = map - > bus - > gather_write ( map - > bus_context , map - > work_buf ,
map - > format . reg_bytes +
map - > format . pad_bytes ,
val , val_len ) ;
@ -464,7 +471,7 @@ static int _regmap_raw_write(struct regmap *map, unsigned int reg,
memcpy ( buf , map - > work_buf , map - > format . reg_bytes ) ;
memcpy ( buf + map - > format . reg_bytes + map - > format . pad_bytes ,
val , val_len ) ;
ret = map - > bus - > write ( map - > dev , buf , len ) ;
ret = map - > bus - > write ( map - > bus_context , buf , len ) ;
kfree ( buf ) ;
}
@ -498,7 +505,7 @@ int _regmap_write(struct regmap *map, unsigned int reg,
trace_regmap_hw_write_start ( map - > dev , reg , 1 ) ;
ret = map - > bus - > write ( map - > dev , map - > work_buf ,
ret = map - > bus - > write ( map - > bus_context , map - > work_buf ,
map - > format . buf_size ) ;
trace_regmap_hw_write_done ( map - > dev , reg , 1 ) ;
@ -639,7 +646,7 @@ static int _regmap_raw_read(struct regmap *map, unsigned int reg, void *val,
trace_regmap_hw_read_start ( map - > dev , reg ,
val_len / map - > format . val_bytes ) ;
ret = map - > bus - > read ( map - > dev , map - > work_buf ,
ret = map - > bus - > read ( map - > bus_context , map - > work_buf ,
map - > format . reg_bytes + map - > format . pad_bytes ,
val , val_len ) ;