Loading drivers/pwm/core.c +19 −0 Original line number Diff line number Diff line Loading @@ -335,6 +335,25 @@ int pwmchip_remove(struct pwm_chip *chip) } EXPORT_SYMBOL_GPL(pwmchip_remove); static void devm_pwmchip_remove(void *data) { struct pwm_chip *chip = data; pwmchip_remove(chip); } int devm_pwmchip_add(struct device *dev, struct pwm_chip *chip) { int ret; ret = pwmchip_add(chip); if (ret) return ret; return devm_add_action_or_reset(dev, devm_pwmchip_remove, chip); } EXPORT_SYMBOL_GPL(devm_pwmchip_add); /** * pwm_request() - request a PWM device * @pwm: global PWM device index Loading include/linux/pwm.h +3 −0 Original line number Diff line number Diff line Loading @@ -405,6 +405,9 @@ void *pwm_get_chip_data(struct pwm_device *pwm); int pwmchip_add(struct pwm_chip *chip); int pwmchip_remove(struct pwm_chip *chip); int devm_pwmchip_add(struct device *dev, struct pwm_chip *chip); struct pwm_device *pwm_request_from_chip(struct pwm_chip *chip, unsigned int index, const char *label); Loading Loading
drivers/pwm/core.c +19 −0 Original line number Diff line number Diff line Loading @@ -335,6 +335,25 @@ int pwmchip_remove(struct pwm_chip *chip) } EXPORT_SYMBOL_GPL(pwmchip_remove); static void devm_pwmchip_remove(void *data) { struct pwm_chip *chip = data; pwmchip_remove(chip); } int devm_pwmchip_add(struct device *dev, struct pwm_chip *chip) { int ret; ret = pwmchip_add(chip); if (ret) return ret; return devm_add_action_or_reset(dev, devm_pwmchip_remove, chip); } EXPORT_SYMBOL_GPL(devm_pwmchip_add); /** * pwm_request() - request a PWM device * @pwm: global PWM device index Loading
include/linux/pwm.h +3 −0 Original line number Diff line number Diff line Loading @@ -405,6 +405,9 @@ void *pwm_get_chip_data(struct pwm_device *pwm); int pwmchip_add(struct pwm_chip *chip); int pwmchip_remove(struct pwm_chip *chip); int devm_pwmchip_add(struct device *dev, struct pwm_chip *chip); struct pwm_device *pwm_request_from_chip(struct pwm_chip *chip, unsigned int index, const char *label); Loading