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

From: Barry Song
Date: Mon Jun 21 2010 - 03:23:19 EST


On Mon, Jun 21, 2010 at 3:15 PM, Anton Vorontsov <cbouatmailru@xxxxxxxxx> wrote:
> On Mon, Jun 21, 2010 at 11:27:31AM +0800, Barry Song wrote:
> [...]
>> > 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. Only if non_jedec=1, we let the detection pass
if ID is 0.

>
>> 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@xxxxxxxxx
> irc://irc.freenode.net/bd2
>
¢éì®&Þ~º&¶¬–+-±éÝ¥Šw®žË±Êâmébžìdz¹Þ)í…æèw*jg¬±¨¶‰šŽŠÝj/êäz¹ÞŠà2ŠÞ¨è­Ú&¢)ß«a¶Úþø®G«éh®æj:+v‰¨Šwè†Ù>Wš±êÞiÛaxPjØm¶Ÿÿà -»+ƒùdš_