Hi Sakari, On 26/06/2018 14:20, Sakari Ailus wrote: > Hi Luca, > > On Mon, Jun 11, 2018 at 01:35:37PM +0200, Luca Ceresoli wrote: >> Tables of struct reg_8 are used to simplify multi-byte register >> assignment. However filling these snippets with values computed at >> runtime is currently implemented by very similar functions doing the >> needed shift & mask manipulation. >> >> Replace all those functions with a unique helper function to fill >> reg_8 tables in a simple and clean way. > > What's the purpose of writing these registers as multiple I²C writes, when > this can be done as a single write (i.e. the address followed by two or > three octets of data)? Good point. The for loops applying the register values (the lines just after those changed by my patch) defuse the regmap bulk write capability. I guess this could be improved not filling any table, but directly calling regmap_bulk_write(), passing the u16 or u32 register value with proper endianness. No tables, less code. This would replace the present patch with a shorter and more effective one. Is it what you was suggesting? I'll try that. -- Luca