On 12/10/2012 12:13 PM, Philip, Avinash wrote: > On Fri, Dec 07, 2012 at 16:07:23, Nori, Sekhar wrote: >> On 11/29/2012 5:16 PM, Philip, Avinash wrote: [...] >>> +struct device *elm_request(enum bch_ecc bch_type) >>> +{ >>> + struct elm_info *info; >>> + >>> + list_for_each_entry(info, &elm_devices, list) { >>> + if (info && info->dev) { >>> + info->bch_type = bch_type; >>> + elm_config(info); >>> + return info->dev; >>> + } >>> + } >> >> This will always return the first ELM device probed since you never >> remove the allocated device from the list. > > But now I realized that, there is no mechanism of freeing the requested > resource. Right. You essentially want to assign an ELM instance to work with a given instance of GPMC and that could be done statically too. Just pass phandle of ELM node in GPMC DT data? > So I will add mechanism to request ELM module successfully only if ELM > module is not requested already and add mechanism to free it, on NAND > driver module unload (loadable module support). This way ELM driver > can achieve multi instance support. > >> I wonder why you really need a list? > > The prime motivation for the list is the driver should support multi > instances of ELM by removing global symbols. I still think a request/free API is bit too much for something that will turn out to be a simple 1-to-1 match anyway. Can you please look at the phandle suggestion above? I am no DT expert, but I think that will work for your use case. Thanks, Sekhar -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html