mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-07 20:33:58 -04:00
aw8697: improve latency
When updating register value by mask, avoid write transfer when old and ne values are identical. Change-Id: Ie9a1a51684b106ee05b893805d2a3a468aa1b812 Signed-off-by: Konstantin Makariev <hcv867@motorola.com> Reviewed-on: https://gerrit.mot.com/1701667 SLTApproved: Slta Waiver SME-Granted: SME Approvals Granted Tested-by: Jira Key Reviewed-by: Ryan Lattrel <ryanl@motorola.com> Reviewed-by: Igor Kovalenko <igork@motorola.com> Submit-Approved: Jira Key
This commit is contained in:
parent
baebf33071
commit
34aa364e6c
1 changed files with 9 additions and 6 deletions
|
|
@ -196,12 +196,15 @@ static int aw8697_i2c_write_bits(struct aw8697 *aw8697,
|
|||
unsigned char reg_addr, unsigned int mask,
|
||||
unsigned char reg_data)
|
||||
{
|
||||
unsigned char reg_val = 0;
|
||||
unsigned char oval = 0;
|
||||
unsigned char nval;
|
||||
|
||||
aw8697_i2c_read(aw8697, reg_addr, ®_val);
|
||||
reg_val &= mask;
|
||||
reg_val |= reg_data;
|
||||
aw8697_i2c_write(aw8697, reg_addr, reg_val);
|
||||
aw8697_i2c_read(aw8697, reg_addr, &oval);
|
||||
nval = oval;
|
||||
nval &= mask;
|
||||
nval |= reg_data;
|
||||
if (oval != nval)
|
||||
aw8697_i2c_write(aw8697, reg_addr, nval);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue