return rc;
 }
 
-static void ibm_cffps_led_brightness_set(struct led_classdev *led_cdev,
-                                        enum led_brightness brightness)
+static int ibm_cffps_led_brightness_set(struct led_classdev *led_cdev,
+                                       enum led_brightness brightness)
 {
        int rc;
        struct ibm_cffps *psu = container_of(led_cdev, struct ibm_cffps, led);
        rc = i2c_smbus_write_byte_data(psu->client, CFFPS_SYS_CONFIG_CMD,
                                       psu->led_state);
        if (rc < 0)
-               return;
+               return rc;
 
        led_cdev->brightness = brightness;
+
+       return 0;
 }
 
 static int ibm_cffps_led_blink_set(struct led_classdev *led_cdev,
                 client->addr);
        psu->led.name = psu->led_name;
        psu->led.max_brightness = LED_FULL;
-       psu->led.brightness_set = ibm_cffps_led_brightness_set;
+       psu->led.brightness_set_blocking = ibm_cffps_led_brightness_set;
        psu->led.blink_set = ibm_cffps_led_blink_set;
 
        rc = devm_led_classdev_register(dev, &psu->led);