Thread (13 messages) 13 messages, 3 authors, 2012-12-12

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

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help