On Tue, 24 Sep 2013 20:59:47 +0200 Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> wrote: > The marvell-ccic does several things wrong or ineffectively in the clock > handling and it's usage of the devm_* stuff > > - it assumes clk_get doesn't return NULL > - it explicitly calls devm_clk_put instead just keeping the reference > during it's lifetime and let the driver core call it > - it calls kfree, gpio_free and free_irq for resources it requested > using devm_kzalloc, devm_gpio_request and devm_request_irq > respectively. > - it mixes devm_ and unmanaged resources which probably results in a > race condition during remove OK, all of that stuff was added this time around by Libin; my understanding of that particular hardware is ... minimal. The basic idea of the patch seems sound. I do note, though, that you've changed the behavior of the driver somewhat. The MIPI clock is current obtained at power-up time and released on power-down; you've moved it to probe time instead, and it's held for the lifetime of the driver. Perhaps that's even better, I don't know...Libin, what do you say on that? The free_irq() call is also removed by a patch previously submitted by Wei Yongjun. > This patch fixes all but the last issue in this list. This patch doesn't > introduce new reasons for not building, but there are already several > bulid problems. Care to report those? Thanks, jon -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html