mirror of
https://github.com/torvalds/linux.git
synced 2024-12-26 04:42:12 +00:00
- Fix-ups
- Use new of_node_name_eq() API call; - Bug Fixes - Internally track 'enabled' state; pwm_bl - Fix auto-generated brightness tables parsed by DT; pwm_bl -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEdrbJNaO+IJqU8IdIUa+KL4f8d2EFAlwt12AACgkQUa+KL4f8 d2HHNRAAnYbnz3daFxWcYLSl4ZvFKYK8Cr5gP3zKwaw3191QkAtAeYGYj++OklJe Aj0iVTLxkUede8wUYyjCcLedcq7Un717QGAHcX3PHgvGrOAZ8SEiS2XhXHE4qYUw deDgkAd+FVbytQd5KgSPGrnRrOLOs6LmbgMrhv+iESBxZHJ4lGqsP5Ly3WYAFMU5 yxghbDFa0foLbaBX9rJVVK5a9koizb6zRRgiTvhIk3pbYGDLjqwsw5bltN9frl65 o/f925y1433DDvyMZJ33YPb4+8Jyhj0fiIB2off8JjfuQ2NQ1Y5CPyDkic5jdkuh LMakZUEH9Ex1hmh89Pd2HH99m+QmnF0ZCkMHQkBku4Yf6dXyBhsBrRaqYQbcaP8D zWx8xl3YnXkQVndraGaVhIV/+RSnrTWscerC5ywA1E9/GLxnUYDfbbQx/zD+L03n rewJNqHSvzB8WDqH7ZM1xtFWa/UEWa19En6TQd/BVq3C7kGQDlxcvEUZ1zyGlY4h NuJU4Jc1K3V5ScCMmOA9QniS9L7M9+FQ6KfpOYmEFr3p4tl7apq7zh1zvg5fMSrC ++Ruu0FkNDo2zzmQTp82JuDwO1RGkbwfXrCNaur0TQOKGHeffi+sIh16/wAy7X9g 8PfW7OaXj13yWFYlvQvgRSQY6p8a0POF6D6kdIcKmjl8KKXTn+w= =4zU+ -----END PGP SIGNATURE----- Merge tag 'backlight-next-4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight Pull backlight updates from Lee Jones: "Fix-ups: - Use new of_node_name_eq() API call Bug Fixes: - Internally track 'enabled' state in pwm_bl - Fix auto-generated pwm_bl brightness tables parsed by DT * tag 'backlight-next-4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight: backlight: 88pm860x_bl: Use of_node_name_eq for node name comparisons backlight: pwm_bl: Fix devicetree parsing with auto-generated brightness tables backlight: pwm_bl: Re-add driver internal enabled tracking
This commit is contained in:
commit
3a73e73a10
@ -174,7 +174,7 @@ static int pm860x_backlight_dt_init(struct platform_device *pdev,
|
||||
return -ENODEV;
|
||||
}
|
||||
for_each_child_of_node(nproot, np) {
|
||||
if (!of_node_cmp(np->name, name)) {
|
||||
if (of_node_name_eq(np, name)) {
|
||||
of_property_read_u32(np, "marvell,88pm860x-iset",
|
||||
&iset);
|
||||
data->iset = PM8606_WLED_CURRENT(iset);
|
||||
|
@ -30,6 +30,7 @@ struct pwm_bl_data {
|
||||
struct device *dev;
|
||||
unsigned int lth_brightness;
|
||||
unsigned int *levels;
|
||||
bool enabled;
|
||||
struct regulator *power_supply;
|
||||
struct gpio_desc *enable_gpio;
|
||||
unsigned int scale;
|
||||
@ -50,7 +51,7 @@ static void pwm_backlight_power_on(struct pwm_bl_data *pb)
|
||||
int err;
|
||||
|
||||
pwm_get_state(pb->pwm, &state);
|
||||
if (state.enabled)
|
||||
if (pb->enabled)
|
||||
return;
|
||||
|
||||
err = regulator_enable(pb->power_supply);
|
||||
@ -65,6 +66,8 @@ static void pwm_backlight_power_on(struct pwm_bl_data *pb)
|
||||
|
||||
if (pb->enable_gpio)
|
||||
gpiod_set_value_cansleep(pb->enable_gpio, 1);
|
||||
|
||||
pb->enabled = true;
|
||||
}
|
||||
|
||||
static void pwm_backlight_power_off(struct pwm_bl_data *pb)
|
||||
@ -72,7 +75,7 @@ static void pwm_backlight_power_off(struct pwm_bl_data *pb)
|
||||
struct pwm_state state;
|
||||
|
||||
pwm_get_state(pb->pwm, &state);
|
||||
if (!state.enabled)
|
||||
if (!pb->enabled)
|
||||
return;
|
||||
|
||||
if (pb->enable_gpio)
|
||||
@ -86,6 +89,7 @@ static void pwm_backlight_power_off(struct pwm_bl_data *pb)
|
||||
pwm_apply_state(pb->pwm, &state);
|
||||
|
||||
regulator_disable(pb->power_supply);
|
||||
pb->enabled = false;
|
||||
}
|
||||
|
||||
static int compute_duty_cycle(struct pwm_bl_data *pb, int brightness)
|
||||
@ -268,6 +272,16 @@ static int pwm_backlight_parse_dt(struct device *dev,
|
||||
|
||||
memset(data, 0, sizeof(*data));
|
||||
|
||||
/*
|
||||
* These values are optional and set as 0 by default, the out values
|
||||
* are modified only if a valid u32 value can be decoded.
|
||||
*/
|
||||
of_property_read_u32(node, "post-pwm-on-delay-ms",
|
||||
&data->post_pwm_on_delay);
|
||||
of_property_read_u32(node, "pwm-off-delay-ms", &data->pwm_off_delay);
|
||||
|
||||
data->enable_gpio = -EINVAL;
|
||||
|
||||
/*
|
||||
* Determine the number of brightness levels, if this property is not
|
||||
* set a default table of brightness levels will be used.
|
||||
@ -380,15 +394,6 @@ static int pwm_backlight_parse_dt(struct device *dev,
|
||||
data->max_brightness--;
|
||||
}
|
||||
|
||||
/*
|
||||
* These values are optional and set as 0 by default, the out values
|
||||
* are modified only if a valid u32 value can be decoded.
|
||||
*/
|
||||
of_property_read_u32(node, "post-pwm-on-delay-ms",
|
||||
&data->post_pwm_on_delay);
|
||||
of_property_read_u32(node, "pwm-off-delay-ms", &data->pwm_off_delay);
|
||||
|
||||
data->enable_gpio = -EINVAL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -483,6 +488,7 @@ static int pwm_backlight_probe(struct platform_device *pdev)
|
||||
pb->check_fb = data->check_fb;
|
||||
pb->exit = data->exit;
|
||||
pb->dev = &pdev->dev;
|
||||
pb->enabled = false;
|
||||
pb->post_pwm_on_delay = data->post_pwm_on_delay;
|
||||
pb->pwm_off_delay = data->pwm_off_delay;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user