IB/mlx5: Expose RSS related capabilities
[cascardo/linux.git] / drivers / clk / clk-pwm.c
index 8830458..1630a1f 100644 (file)
@@ -59,6 +59,7 @@ static int clk_pwm_probe(struct platform_device *pdev)
        struct clk_init_data init;
        struct clk_pwm *clk_pwm;
        struct pwm_device *pwm;
+       struct pwm_args pargs;
        const char *clk_name;
        struct clk *clk;
        int ret;
@@ -71,22 +72,28 @@ static int clk_pwm_probe(struct platform_device *pdev)
        if (IS_ERR(pwm))
                return PTR_ERR(pwm);
 
-       if (!pwm->period) {
+       pwm_get_args(pwm, &pargs);
+       if (!pargs.period) {
                dev_err(&pdev->dev, "invalid PWM period\n");
                return -EINVAL;
        }
 
        if (of_property_read_u32(node, "clock-frequency", &clk_pwm->fixed_rate))
-               clk_pwm->fixed_rate = NSEC_PER_SEC / pwm->period;
+               clk_pwm->fixed_rate = NSEC_PER_SEC / pargs.period;
 
-       if (pwm->period != NSEC_PER_SEC / clk_pwm->fixed_rate &&
-           pwm->period != DIV_ROUND_UP(NSEC_PER_SEC, clk_pwm->fixed_rate)) {
+       if (pargs.period != NSEC_PER_SEC / clk_pwm->fixed_rate &&
+           pargs.period != DIV_ROUND_UP(NSEC_PER_SEC, clk_pwm->fixed_rate)) {
                dev_err(&pdev->dev,
                        "clock-frequency does not match PWM period\n");
                return -EINVAL;
        }
 
-       ret = pwm_config(pwm, (pwm->period + 1) >> 1, pwm->period);
+       /*
+        * FIXME: pwm_apply_args() should be removed when switching to the
+        * atomic PWM API.
+        */
+       pwm_apply_args(pwm);
+       ret = pwm_config(pwm, (pargs.period + 1) >> 1, pargs.period);
        if (ret < 0)
                return ret;