Re: [PATCH v3 2/3] mtd: devices: elm: Add support for ELM error correction
From: Sekhar Nori <hidden>
Date: 2012-12-12 11:16:41
Also in:
linux-arm-kernel, linux-omap, lkml
From: Sekhar Nori <hidden>
Date: 2012-12-12 11:16:41
Also in:
linux-arm-kernel, linux-omap, lkml
On 12/10/2012 12:13 PM, Philip, Avinash wrote:
On Fri, Dec 07, 2012 at 16:07:23, Nori, Sekhar wrote:quoted
On 11/29/2012 5:16 PM, Philip, Avinash wrote:
[...]
quoted
quoted
+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.quoted
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