Re: [PATCH v3 3/5] pwm-backlight: add support for PWM delays proprieties.

From: Daniel Thompson
Date: Thu Jul 20 2017 - 06:37:28 EST


On 20/07/17 09:06, Pavel Machek wrote:
Hi!

--- a/drivers/video/backlight/pwm_bl.c
+++ b/drivers/video/backlight/pwm_bl.c
@@ -10,6 +10,7 @@
* published by the Free Software Foundation.
*/
+#include <linux/delay.h>
#include <linux/gpio/consumer.h>
#include <linux/gpio.h>
#include <linux/module.h>
@@ -35,6 +36,7 @@ struct pwm_bl_data {
struct gpio_desc *enable_gpio;
unsigned int scale;
bool legacy;
+ unsigned int pwm_delay[2];

Two named members would be better here (eliminating the "magic" 0
and 1).

My thought, too.

@@ -56,6 +58,9 @@ static void pwm_backlight_power_on(struct pwm_bl_data *pb, int brightness)
pwm_enable(pb->pwm);
+ if (pb->pwm_delay[0])
+ usleep_range(pb->pwm_delay[0], pb->pwm_delay[0] * 2);

Plus I'd just do the delay unconditionally :-).

... does this still apply if this code is switched to msleep()?

msleep() has no wait avoidance[1] and if lots of drivers are reckless about sleeping for 10ms it soon starts to show up in the boot time (especially optimized ones).


Daniel.


[1] As it happens I can't see that many early bail out paths in
usleep_range() either.