On Mon, Mar 23, 2020 at 03:24:20PM +0100, Paul Cercueil wrote: [...] > diff --git a/drivers/pwm/pwm-jz4740.c b/drivers/pwm/pwm-jz4740.c [...] > @@ -196,12 +208,19 @@ static const struct pwm_ops jz4740_pwm_ops = { > static int jz4740_pwm_probe(struct platform_device *pdev) > { > struct jz4740_pwm_chip *jz4740; > + struct device *dev = &pdev->dev; > > - jz4740 = devm_kzalloc(&pdev->dev, sizeof(*jz4740), GFP_KERNEL); > + jz4740 = devm_kzalloc(dev, sizeof(*jz4740), GFP_KERNEL); > if (!jz4740) > return -ENOMEM; > > - jz4740->chip.dev = &pdev->dev; > + jz4740->map = device_node_to_regmap(dev->parent->of_node); > + if (!jz4740->map) { This seems wrong. According to the code, device_node_to_regmap() returns an ERR_PTR()-encoded error code on failure, so I think this should be: if (IS_ERR(jz4740->map)) { ... return PTR_ERR(jz4740->map); } No need to resend for that, I can take care of that when applying. Let me know if that doesn't work. Thierry