Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'regmap-v3.13-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap

Pull regmap fixes from Mark Brown:
"Two small changes to fix some error handling and checking (both of
which would be quite serious if the errors trigger) plus a trivial
documentation fix"

* tag 'regmap-v3.13-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
regmap: use IS_ERR() to check clk_get() results
regmap: make sure we unlock on failure in regmap_bulk_write
regmap: trivial comment fix (copy'n'paste error)

+10 -9
+6 -5
drivers/base/regmap/regmap-mmio.c
··· 40 40 41 41 BUG_ON(reg_size != 4); 42 42 43 - if (ctx->clk) { 43 + if (!IS_ERR(ctx->clk)) { 44 44 ret = clk_enable(ctx->clk); 45 45 if (ret < 0) 46 46 return ret; ··· 73 73 offset += ctx->val_bytes; 74 74 } 75 75 76 - if (ctx->clk) 76 + if (!IS_ERR(ctx->clk)) 77 77 clk_disable(ctx->clk); 78 78 79 79 return 0; ··· 96 96 97 97 BUG_ON(reg_size != 4); 98 98 99 - if (ctx->clk) { 99 + if (!IS_ERR(ctx->clk)) { 100 100 ret = clk_enable(ctx->clk); 101 101 if (ret < 0) 102 102 return ret; ··· 129 129 offset += ctx->val_bytes; 130 130 } 131 131 132 - if (ctx->clk) 132 + if (!IS_ERR(ctx->clk)) 133 133 clk_disable(ctx->clk); 134 134 135 135 return 0; ··· 139 139 { 140 140 struct regmap_mmio_context *ctx = context; 141 141 142 - if (ctx->clk) { 142 + if (!IS_ERR(ctx->clk)) { 143 143 clk_unprepare(ctx->clk); 144 144 clk_put(ctx->clk); 145 145 } ··· 209 209 210 210 ctx->regs = regs; 211 211 ctx->val_bytes = config->val_bits / 8; 212 + ctx->clk = ERR_PTR(-ENODEV); 212 213 213 214 if (clk_id == NULL) 214 215 return ctx;
+4 -4
drivers/base/regmap/regmap.c
··· 1549 1549 val + (i * val_bytes), 1550 1550 val_bytes); 1551 1551 if (ret != 0) 1552 - return ret; 1552 + goto out; 1553 1553 } 1554 1554 } else { 1555 1555 ret = _regmap_raw_write(map, reg, wval, val_bytes * val_count); ··· 1743 1743 /** 1744 1744 * regmap_read(): Read a value from a single register 1745 1745 * 1746 - * @map: Register map to write to 1746 + * @map: Register map to read from 1747 1747 * @reg: Register to be read from 1748 1748 * @val: Pointer to store read value 1749 1749 * ··· 1770 1770 /** 1771 1771 * regmap_raw_read(): Read raw data from the device 1772 1772 * 1773 - * @map: Register map to write to 1773 + * @map: Register map to read from 1774 1774 * @reg: First register to be read from 1775 1775 * @val: Pointer to store read value 1776 1776 * @val_len: Size of data to read ··· 1882 1882 /** 1883 1883 * regmap_bulk_read(): Read multiple registers from the device 1884 1884 * 1885 - * @map: Register map to write to 1885 + * @map: Register map to read from 1886 1886 * @reg: First register to be read from 1887 1887 * @val: Pointer to store read value, in native register size for device 1888 1888 * @val_count: Number of registers to read