platform/chrome: wilco_ec: Fix keyboard backlight probing
The EC on the Wilco platform responds with 0xFF to commands related to
the keyboard backlight on the absence of a keyboard backlight module.
This change allows the EC driver to continue loading even if the
backlight module is not present.
Fixes: 119a3cb6d6
("platform/chrome: wilco_ec: Add keyboard backlight LED support")
Signed-off-by: Daniel Campello <campello@chromium.org>
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Signed-off-by: Benson Leung <bleung@chromium.org>
This commit is contained in:
parent
856a0a6e2d
commit
dfb9a8857f
@ -73,13 +73,6 @@ static int send_kbbl_msg(struct wilco_ec_device *ec,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (response->status) {
|
|
||||||
dev_err(ec->dev,
|
|
||||||
"EC reported failure sending keyboard LEDs command: %d",
|
|
||||||
response->status);
|
|
||||||
return -EIO;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -87,6 +80,7 @@ static int set_kbbl(struct wilco_ec_device *ec, enum led_brightness brightness)
|
|||||||
{
|
{
|
||||||
struct wilco_keyboard_leds_msg request;
|
struct wilco_keyboard_leds_msg request;
|
||||||
struct wilco_keyboard_leds_msg response;
|
struct wilco_keyboard_leds_msg response;
|
||||||
|
int ret;
|
||||||
|
|
||||||
memset(&request, 0, sizeof(request));
|
memset(&request, 0, sizeof(request));
|
||||||
request.command = WILCO_EC_COMMAND_KBBL;
|
request.command = WILCO_EC_COMMAND_KBBL;
|
||||||
@ -94,7 +88,18 @@ static int set_kbbl(struct wilco_ec_device *ec, enum led_brightness brightness)
|
|||||||
request.mode = WILCO_KBBL_MODE_FLAG_PWM;
|
request.mode = WILCO_KBBL_MODE_FLAG_PWM;
|
||||||
request.percent = brightness;
|
request.percent = brightness;
|
||||||
|
|
||||||
return send_kbbl_msg(ec, &request, &response);
|
ret = send_kbbl_msg(ec, &request, &response);
|
||||||
|
if (ret < 0)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
if (response.status) {
|
||||||
|
dev_err(ec->dev,
|
||||||
|
"EC reported failure sending keyboard LEDs command: %d",
|
||||||
|
response.status);
|
||||||
|
return -EIO;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int kbbl_exist(struct wilco_ec_device *ec, bool *exists)
|
static int kbbl_exist(struct wilco_ec_device *ec, bool *exists)
|
||||||
@ -140,6 +145,13 @@ static int kbbl_init(struct wilco_ec_device *ec)
|
|||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
if (response.status) {
|
||||||
|
dev_err(ec->dev,
|
||||||
|
"EC reported failure sending keyboard LEDs command: %d",
|
||||||
|
response.status);
|
||||||
|
return -EIO;
|
||||||
|
}
|
||||||
|
|
||||||
if (response.mode & WILCO_KBBL_MODE_FLAG_PWM)
|
if (response.mode & WILCO_KBBL_MODE_FLAG_PWM)
|
||||||
return response.percent;
|
return response.percent;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user