|
@@ -91,6 +91,7 @@ static int led_pwm_add(struct device *dev, struct led_pwm_priv *priv,
|
|
struct led_pwm *led, struct device_node *child)
|
|
struct led_pwm *led, struct device_node *child)
|
|
{
|
|
{
|
|
struct led_pwm_data *led_data = &priv->leds[priv->num_leds];
|
|
struct led_pwm_data *led_data = &priv->leds[priv->num_leds];
|
|
|
|
+ struct pwm_args pargs;
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
led_data->active_low = led->active_low;
|
|
led_data->active_low = led->active_low;
|
|
@@ -117,7 +118,15 @@ static int led_pwm_add(struct device *dev, struct led_pwm_priv *priv,
|
|
else
|
|
else
|
|
led_data->cdev.brightness_set_blocking = led_pwm_set_blocking;
|
|
led_data->cdev.brightness_set_blocking = led_pwm_set_blocking;
|
|
|
|
|
|
- led_data->period = pwm_get_period(led_data->pwm);
|
|
|
|
|
|
+ /*
|
|
|
|
+ * FIXME: pwm_apply_args() should be removed when switching to the
|
|
|
|
+ * atomic PWM API.
|
|
|
|
+ */
|
|
|
|
+ pwm_apply_args(led_data->pwm);
|
|
|
|
+
|
|
|
|
+ pwm_get_args(led_data->pwm, &pargs);
|
|
|
|
+
|
|
|
|
+ led_data->period = pargs.period;
|
|
if (!led_data->period && (led->pwm_period_ns > 0))
|
|
if (!led_data->period && (led->pwm_period_ns > 0))
|
|
led_data->period = led->pwm_period_ns;
|
|
led_data->period = led->pwm_period_ns;
|
|
|
|
|