Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 266954
b: refs/heads/master
c: 555feda
h: refs/heads/master
v: v3
  • Loading branch information
Mark Brown committed Aug 8, 2011
1 parent cf94a30 commit 0808fe7
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 5 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 18694886bddb2d4d905535a0149aeef3b5f9c936
refs/heads/master: 555fedacc366c4aaf48270da2504dfa97c41a130
14 changes: 10 additions & 4 deletions trunk/drivers/base/regmap/regmap.c
Original file line number Diff line number Diff line change
Expand Up @@ -211,13 +211,19 @@ static int _regmap_raw_write(struct regmap *map, unsigned int reg,

map->format.format_reg(map->work_buf, reg);

/* Try to do a gather write if we can */
if (map->bus->gather_write)
/* If we're doing a single register write we can probably just
* send the work_buf directly, otherwise try to do a gather
* write.
*/
if (val == map->work_buf + map->format.reg_bytes)
ret = map->bus->write(map->dev, map->work_buf,
map->format.reg_bytes + val_len);
else if (map->bus->gather_write)
ret = map->bus->gather_write(map->dev, map->work_buf,
map->format.reg_bytes,
val, val_len);

/* Otherwise fall back on linearising by hand. */
/* If that didn't work fall back on linearising by hand. */
if (ret == -ENOTSUPP) {
len = map->format.reg_bytes + val_len;
buf = kmalloc(len, GFP_KERNEL);
Expand Down Expand Up @@ -326,7 +332,7 @@ static int _regmap_raw_read(struct regmap *map, unsigned int reg, void *val,
u8[0] |= map->bus->read_flag_mask;

ret = map->bus->read(map->dev, map->work_buf, map->format.reg_bytes,
val, map->format.val_bytes);
val, val_len);
if (ret != 0)
return ret;

Expand Down

0 comments on commit 0808fe7

Please sign in to comment.