On Tue, Nov 21, 2023 at 2:52 PM Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> wrote: > > This prepares the pwm sub-driver to further changes of the pwm core > outlined in the commit introducing devm_pwmchip_alloc(). There is no > intended semantical change and the driver should behave as before. > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> > --- > drivers/gpio/gpio-mvebu.c | 18 +++++++++--------- > 1 file changed, 9 insertions(+), 9 deletions(-) > > diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c > index a13f3c18ccd4..02c8382b4dd2 100644 > --- a/drivers/gpio/gpio-mvebu.c > +++ b/drivers/gpio/gpio-mvebu.c > @@ -99,7 +99,6 @@ struct mvebu_pwm { > u32 offset; > unsigned long clk_rate; > struct gpio_desc *gpiod; > - struct pwm_chip chip; > spinlock_t lock; > struct mvebu_gpio_chip *mvchip; > > @@ -615,7 +614,7 @@ static const struct regmap_config mvebu_gpio_regmap_config = { > */ > static struct mvebu_pwm *to_mvebu_pwm(struct pwm_chip *chip) > { > - return container_of(chip, struct mvebu_pwm, chip); > + return pwmchip_priv(chip); > } > > static int mvebu_pwm_request(struct pwm_chip *chip, struct pwm_device *pwm) > @@ -789,6 +788,7 @@ static int mvebu_pwm_probe(struct platform_device *pdev, > { > struct device *dev = &pdev->dev; > struct mvebu_pwm *mvpwm; > + struct pwm_chip *chip; > void __iomem *base; > u32 offset; > u32 set; > @@ -813,9 +813,11 @@ static int mvebu_pwm_probe(struct platform_device *pdev, > if (IS_ERR(mvchip->clk)) > return PTR_ERR(mvchip->clk); > > - mvpwm = devm_kzalloc(dev, sizeof(struct mvebu_pwm), GFP_KERNEL); > - if (!mvpwm) > - return -ENOMEM; > + chip = devm_pwmchip_alloc(dev, mvchip->chip.ngpio, sizeof(struct mvebu_pwm)); > + if (IS_ERR(chip)) > + return PTR_ERR(chip); > + mvpwm = pwmchip_priv(chip); > + > mvchip->mvpwm = mvpwm; > mvpwm->mvchip = mvchip; > mvpwm->offset = offset; > @@ -868,13 +870,11 @@ static int mvebu_pwm_probe(struct platform_device *pdev, > return -EINVAL; > } > > - mvpwm->chip.dev = dev; > - mvpwm->chip.ops = &mvebu_pwm_ops; > - mvpwm->chip.npwm = mvchip->chip.ngpio; > + chip->ops = &mvebu_pwm_ops; > > spin_lock_init(&mvpwm->lock); > > - return devm_pwmchip_add(dev, &mvpwm->chip); > + return devm_pwmchip_add(dev, chip); > } > > #ifdef CONFIG_DEBUG_FS > -- > 2.42.0 > Eh... I had a talk at LPC where I explained why I really dislike this approach but I guess this ship has sailed now and it's not a subsystem where I have any say anyway. It's not clear in the cover letter - are these patches supposed to go through their respective subsystem trees? Bart