IS31FL3733 Dirty page fix (#7079)
authoryiancar <yiangosyiangou@cytanet.com.cy>
Mon, 25 Nov 2019 20:33:52 +0000 (20:33 +0000)
committerJoel Challis <git@zvecr.com>
Mon, 25 Nov 2019 20:33:52 +0000 (20:33 +0000)
commitc0fe8dbfb4ea7b36cc2c5ba65d943c2cbec84244
tree3fe648b223538ce54ad1f322f760a8610bd7a388
parentf0f161e5724375b7a289699703d86d6de2adae8d
IS31FL3733 Dirty page fix (#7079)

* IS31FL3733 Dirty page fix

Function IS31FL3733_update_led_control_registers was never setting update register to false. As a result the led on/off page was being written every transaction even when it was not modified. This is ineficient and causes lots of bandwidth use.

-> Fix the IS31FL3733_update_led_control_registers.
-> After testing it was evident that failed I2C transactions could corrupt the Led on/off register.
-> Update IS31FL3733_write_pwm_buffer and IS31FL3733_write_register functions to return 0 upon succesful tranmission and 1 if any of the transmitions within the function fail.
-> Modify IS31FL3733_update_pwm_buffers function so if any of the IS31FL3733_write_pwm_buffer transuction fails, the g_led_control_registers_update_required register is set to true forcing a rewrite of the led on/off register in case it was corrupted.

* Minor comment update

* Upsie:)

* Update is31fl3733.c

* Return fix

* more return fix

* type change

* more boolian logic reversal:)
drivers/issi/is31fl3733.c
drivers/issi/is31fl3733.h