static void accton_as7312_54x_led_set(struct led_classdev *led_cdev, enum led_brightness led_light_mode, enum led_type type) { int reg_val; u8 reg ; mutex_lock(&ledctl->update_lock); if( !accton_getLedReg(type, ®)) { dev_dbg(&ledctl->pdev->dev, "Not match item for %d.\n", type); } reg_val = accton_as7312_54x_led_read_value(reg); if (reg_val < 0) { dev_dbg(&ledctl->pdev->dev, "reg %d, err %d\n", reg, reg_val); goto exit; } reg_val = led_light_mode_to_reg_val(type, led_light_mode, reg_val); accton_as7312_54x_led_write_value(reg, reg_val); /* to prevent the slow-update issue */ ledctl->valid = 0; exit: mutex_unlock(&ledctl->update_lock); }
static void accton_as5916_54xk_led_set(struct led_classdev *led_cdev, enum led_brightness led_light_mode, u8 reg, enum led_type type) { int reg_val; mutex_lock(&ledctl->update_lock); reg_val = accton_as5916_54xk_led_read_value(reg); if (reg_val < 0) { dev_dbg(&ledctl->pdev->dev, "reg %d, err %d\n", reg, reg_val); goto exit; } reg_val = led_light_mode_to_reg_val(type, led_light_mode, reg_val); accton_as5916_54xk_led_write_value(reg, reg_val); ledctl->valid = 0; exit: mutex_unlock(&ledctl->update_lock); }