> > > > > > > @@ -1191,6 +1203,9 @@ static int __init aspeed_gpio_probe(struct > > > > platform_device *pdev) > > > > > > > > gpio->config = gpio_id->data; > > > > > > > > + if (!gpio->config->llops->reg_bit_set || !gpio->config- > > > > >llops->reg_bits_get) > > > > + return -EINVAL; > > > > + > > > > > This will need to clean up gpio->clk. Perhaps you could move it > > > above > > > the of_clk_get() call instead? > > > > How about change the `of_clk_get` to `devm_clk_get(&pdev->dev, 0);`? > Yep. > > > > > However, looking through the rest it seems we have a few issues > > > with > > > this leak :/ > > > > This gpio driver doesn't have the reset, is it? > No, just leaking the resource. > However, I can't see that we prepare/enable (and disable/unprepare) the > clock either :( [1]. Do you mind fixing that as well? It would be best > if debounce didn't work by accident. > Andrew > [1]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/clk.h?h=v6.11#n527 Okay, I will update the clock API to use the `devm` prefix. Thanks Billy Tsai