• Marek Behún's avatar
    leds: turris-omnia: Fix brightness setting and trigger activating · 78cbcfd8
    Marek Behún authored
    I have improperly refactored commits
      4d5ed2621c24 ("leds: turris-omnia: Make set_brightness() more efficient")
    and
      aaf38273cf76 ("leds: turris-omnia: Support HW controlled mode via private trigger")
    after Lee requested a change in API semantics of the new functions I
    introduced in commit
      28350bc0ac77 ("leds: turris-omnia: Do not use SMBUS calls").
    
    Before the change, the function omnia_cmd_write_u8() returned 0 on
    success, and afterwards it returned a positive value (number of bytes
    written). The latter version was applied, but the following commits did
    not properly account for this change.
    
    This results in non-functional LED's .brightness_set_blocking() and
    trigger's .activate() methods.
    
    The main reasoning behind the semantics change was that read/write
    methods should return the number of read/written bytes on success.
    It was pointed to me [1] that this is not always true (for example the
    regmap API does not do so), and since the driver never uses this number
    of read/written bytes information, I decided to fix this issue by
    changing the functions to the original semantics (return 0 on success).
    
    [1] https://lore.kernel.org/linux-gpio/ZQnn+Gi0xVlsGCYA@smile.fi.intel.com/
    
    Fixes: 28350bc0ac77 ("leds: turris-omnia: Do not use SMBUS calls")
    Signed-off-by: default avatarMarek Behún <kabel@kernel.org>
    Link: https://lore.kernel.org/r/20231016141538.30037-1-kabel@kernel.orgSigned-off-by: default avatarLee Jones <lee@kernel.org>
    78cbcfd8
leds-turris-omnia.c 13.8 KB