On Thu, Jan 2, 2014 at 10:07 PM, Linus Walleij <linus.wall...@linaro.org> wrote: > On Sat, Dec 21, 2013 at 11:49 AM, Rashika Kheria > <rashika.khe...@gmail.com> wrote: >> -/** >> - * devm_gpiod_put - Resource-managed gpiod_put() >> - * @desc: GPIO descriptor to dispose of >> - * >> - * Dispose of a GPIO descriptor obtained with devm_gpiod_get() or >> - * devm_gpiod_get_index(). Normally this function will not be called as the >> GPIO >> - * will be disposed of by the resource management code. >> - */ >> -void devm_gpiod_put(struct device *dev, struct gpio_desc *desc) >> -{ >> - WARN_ON(devres_release(dev, devm_gpiod_release, devm_gpiod_match, >> - &desc)); >> -} >> -EXPORT_SYMBOL(devm_gpiod_put); > > Alexandre what do you think about this? Can we think of a scenario > where explicit garbage collection is going to be needed or should we > remove this for now?
Sorry for the delayed reply, I quickly saw the patch and then the holidays got in the way. :) I think all these functions should be kept. It is true that they are seldomly used, and that the purpose of devm is to garbage-collect resources upon driver removal, but they might (actually, probably will) become needed by someone at some point in the future. One example I can think of is two drivers that collaborate to share the same GPIO line. If they acquire the GPIO through devm_gpiod_get() they will need devm_gpiod_put() to release it so the other driver can acquire it. On a more general note, devm_clk_put(), devm_regulator_put(), devm_pinctrl_put() and probably others devm_*_put() functions are actively used in the kernel, to support the idea that a devm removal function makes sense. That not all the subsystem-provided functions are used by mainline drivers does not necessary mean they should be removed, especially if they serve a purpose. We should keep our APIs consistent and future-proof, not to mention out-of-tree drivers that may use them. So this patch is a nack as far as I'm concerned, not only the GPIO part, but the whole of it. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/