Hi David, David Laight <david.lai...@aculab.com> writes:
> From: Florian Fainelli >> Sent: 18 September 2017 22:41 >> Instead of repeating the same pattern: acquire mutex, read/write, release >> mutex, define a macro: b53_build_op() which takes the type (read|write), I/O >> size, and value (scalar or pointer). This helps with fixing bugs that could >> exit (e.g: missing barrier, lock etc.). > .... >> +#define b53_build_op(type, op_size, val_type) \ >> +static inline int b53_##type##op_size(struct b53_device *dev, u8 page, >> \ >> + u8 reg, val_type val) >> \ >> +{ >> \ >> + int ret; >> \ >> + >> \ >> + mutex_lock(&dev->reg_mutex); >> \ >> + ret = dev->ops->type##op_size(dev, page, reg, val); >> \ >> + mutex_unlock(&dev->reg_mutex); >> \ >> + >> \ >> + return ret; >> \ >> } > > Why separate the 'type' and 'op_size' arguments since they > are always pasted together? For read/write48, the value type is u64. Thanks, Vivien