@@ -16,7 +16,7 @@
struct gb_pwm_chip {
struct gb_connection *connection;
-
+ struct device *parent;
struct pwm_chip chip;
};
@@ -34,7 +34,7 @@ static int gb_pwm_activate_operation(struct gb_pwm_chip *pwmc,
request.which = which;
- gbphy_dev = to_gbphy_dev(pwmc->chip.dev);
+ gbphy_dev = to_gbphy_dev(pwmc->parent);
ret = gbphy_runtime_get_sync(gbphy_dev);
if (ret)
return ret;
@@ -56,7 +56,7 @@ static int gb_pwm_deactivate_operation(struct gb_pwm_chip *pwmc,
request.which = which;
- gbphy_dev = to_gbphy_dev(pwmc->chip.dev);
+ gbphy_dev = to_gbphy_dev(pwmc->parent);
ret = gbphy_runtime_get_sync(gbphy_dev);
if (ret)
return ret;
@@ -80,7 +80,7 @@ static int gb_pwm_config_operation(struct gb_pwm_chip *pwmc,
request.duty = cpu_to_le32(duty);
request.period = cpu_to_le32(period);
- gbphy_dev = to_gbphy_dev(pwmc->chip.dev);
+ gbphy_dev = to_gbphy_dev(pwmc->parent);
ret = gbphy_runtime_get_sync(gbphy_dev);
if (ret)
return ret;
@@ -103,7 +103,7 @@ static int gb_pwm_set_polarity_operation(struct gb_pwm_chip *pwmc,
request.which = which;
request.polarity = polarity;
- gbphy_dev = to_gbphy_dev(pwmc->chip.dev);
+ gbphy_dev = to_gbphy_dev(pwmc->parent);
ret = gbphy_runtime_get_sync(gbphy_dev);
if (ret)
return ret;
@@ -125,7 +125,7 @@ static int gb_pwm_enable_operation(struct gb_pwm_chip *pwmc,
request.which = which;
- gbphy_dev = to_gbphy_dev(pwmc->chip.dev);
+ gbphy_dev = to_gbphy_dev(pwmc->parent);
ret = gbphy_runtime_get_sync(gbphy_dev);
if (ret)
return ret;
@@ -150,7 +150,7 @@ static int gb_pwm_disable_operation(struct gb_pwm_chip *pwmc,
ret = gb_operation_sync(pwmc->connection, GB_PWM_TYPE_DISABLE,
&request, sizeof(request), NULL, 0);
- gbphy_dev = to_gbphy_dev(pwmc->chip.dev);
+ gbphy_dev = to_gbphy_dev(pwmc->parent);
gbphy_runtime_put_autosuspend(gbphy_dev);
return ret;
@@ -168,7 +168,7 @@ static void gb_pwm_free(struct pwm_chip *chip, struct pwm_device *pwm)
struct gb_pwm_chip *pwmc = pwm_chip_to_gb_pwm_chip(chip);
if (pwm_is_enabled(pwm))
- dev_warn(chip->dev, "freeing PWM device without disabling\n");
+ dev_warn(pwmc->parent, "freeing PWM device without disabling\n");
gb_pwm_deactivate_operation(pwmc, pwm->hwpwm);
}
@@ -256,6 +256,7 @@ static int gb_pwm_probe(struct gbphy_device *gbphy_dev,
pwmc = pwmchip_priv(chip);
+ pwmc->parent = &gbphy_dev->dev;
pwmc->connection = connection;
gb_connection_set_data(connection, pwmc);
gb_gbphy_set_data(gbphy_dev, pwmc);
struct pwm_chip::dev is about to change. To not have to touch this driver in the same commit as struct pwm_chip::dev, store a pointer to the parent device in driver data. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> --- drivers/staging/greybus/pwm.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-)