Thread (43 messages) 43 messages, 11 authors, 2010-07-08

Re: [Uclinux-dist-devel] [PATCH 1/2] mtd: m25p80: Reworkprobing/JEDEC code

From: Anton Vorontsov <hidden>
Date: 2010-06-21 07:39:21
Also in: lkml

On Mon, Jun 21, 2010 at 03:22:48PM +0800, Barry Song wrote:
On Mon, Jun 21, 2010 at 3:15 PM, Anton Vorontsov [off-list ref] wrote:
quoted
On Mon, Jun 21, 2010 at 11:27:31AM +0800, Barry Song wrote:
[...]
quoted
quoted
How about we add a non_jedec flag in platform_data, if the flag is 1, we
let the detection pass even though the ID is 0? Otherwise, we need a
valid ID?
Here i mean:
This will break at least OF-enabled platforms (e.g. PowerPC),
they assume that the driver will success for non-JEDEC flashes.
OF platforms don't pass platform data, and even if they did,
device tree doesn't specify if the flash is JEDEC or non-JEDEC.

Which is why I think that, by default, the driver should
successfully register the flash even if JEDEC probe fails. So,
instead of checking for "!non_jedec", I would recommend
"force_jedec" check.
Mike Frysinger suggested to use non_jedec since most devices are
standard jedec devices.
Well, on OF platforms most devices that I'm aware of are non-JEDEC.
Only if non_jedec=1, we let the detection pass
if ID is 0.
Then please #ifdef it with CONFIG_OF.

Thanks,
quoted
quoted
Index: drivers/mtd/devices/m25p80.c
===================================================================
--- drivers/mtd/devices/m25p80.c      (revision 8927)
+++ drivers/mtd/devices/m25p80.c      (revision 8929)
@@ -795,8 +795,13 @@
              jid = jedec_probe(spi);
              if (!jid) {
-                     dev_info(&spi->dev, "non-JEDEC variant of %s\n",
-                              id->name);
+                     if (!data->non_jedec) {
+                             dev_err(&spi->dev, "fail to detect%s\n",
+                                             id->name);
+                             return -ENODEV;
+                     } else
+                             dev_info(&spi->dev, "non-JEDEC variant of %s\n",
+                                             id->name);
              } else if (jid != id) {
--
Anton Vorontsov
email: cbouatmailru@gmail.com
irc://irc.freenode.net/bd2
-- 
Anton Vorontsov
email: cbouatmailru@gmail.com
irc://irc.freenode.net/bd2
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help