All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vladimir Zapolskiy <vladimir_zapolskiy@mentor.com>
To: <computersforpeace@gmail.com>
Cc: Huang Shijie <shijie.huang@intel.com>,
	dwmw2@infradead.org, zajec5@gmail.com,
	linux-mtd@lists.infradead.org
Subject: Re: [PATCH] mtd: spi-nor: don't return found by JEDEC ID a non-JEDEC flash
Date: Sat, 10 Jan 2015 16:54:11 +0200	[thread overview]
Message-ID: <54B13D13.6020406@mentor.com> (raw)
In-Reply-To: <20150109222310.GY9759@ld-irv-0074>

Hi Brian,

On 10.01.2015 00:28, Brian Norris wrote:
> On Sun, Dec 14, 2014 at 01:00:47AM +0200, Vladimir Zapolskiy wrote:
>> In attempt to spi_nor_scan() for an expected JEDEC compliant device by
>> reading RDID register don't return the first found non-JEDEC device
>> entry from spi_nor_ids[] table, if RDID is zero.
>>
>> First of all zeroes in RDID may be evidence for not correctly working
>> SPI, secondly empty RDID can not be used to select a particular JEDEC
>> non-compliant device correctly.
>>
>> The best possible solution is
>> * not to rely on spi_nor_read_id(), if expected device is non-JEDEC,
>> * not to substitute an expected JEDEC device with some arbitrary
>>   chosen non-JEDEC device, if RDID is zero.
>>
>> Signed-off-by: Vladimir Zapolskiy <vladimir_zapolskiy@mentor.com>
> 
> This patch doesn't apply to the latest tree. I think this commit
> probably already fixes your issue:
> 
>   https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=09ffafb6977dc930770af2910edc3b469651131d
> 
>   commit 09ffafb6977dc930770af2910edc3b469651131d
>   Author: Huang Shijie <shijie.huang@intel.com>
>   Date:   Thu Nov 6 07:34:01 2014 +0100
> 
>       mtd: spi-nor: add id/id_len for flash_info{}

thank you for review.

09ffafb69 fixes my problem (and more), however regarding to my problem
it does it in non-optimal way. If read JDID is zero, then there is no
need to iterate over spi_nor_ids array to return ERR_PTR(-ENODEV).

Assuming that zero JEDEC ID is a relatively rare situation, do you think
it makes sense to add a preceding check for such case before entering
the loop like it is done in my patch?

If no, I'm fine, if yes, I'll rebase the change.

>> ---
>>  drivers/mtd/spi-nor/spi-nor.c |    6 ++++++
>>  1 file changed, 6 insertions(+)
>>
>> diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
>> index c51ee52..119ace9 100644
>> --- a/drivers/mtd/spi-nor/spi-nor.c
>> +++ b/drivers/mtd/spi-nor/spi-nor.c
>> @@ -661,6 +661,12 @@ static const struct spi_device_id *spi_nor_read_id(struct spi_nor *nor)
>>  
>>  	ext_jedec = id[3] << 8 | id[4];
>>  
>> +	/* Non-JEDEC flash memory can not be detected correctly */
>> +	if (!jedec && !ext_jedec) {
>> +		dev_err(nor->dev, "JEDEC compliant device is not found\n");
>> +		return ERR_PTR(-ENODEV);
>> +	}
>> +
>>  	for (tmp = 0; tmp < ARRAY_SIZE(spi_nor_ids) - 1; tmp++) {
>>  		info = (void *)spi_nor_ids[tmp].driver_data;
>>  		if (info->jedec_id == jedec) {
> 
> Brian
> 

--
With best wishes,
Vladimir

  reply	other threads:[~2015-01-10 14:54 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-13 23:00 [PATCH] mtd: spi-nor: don't return found by JEDEC ID a non-JEDEC flash Vladimir Zapolskiy
2015-01-09 22:28 ` Brian Norris
2015-01-10 14:54   ` Vladimir Zapolskiy [this message]
2015-01-10 18:29     ` Brian Norris
2015-01-10 23:33       ` Vladimir Zapolskiy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54B13D13.6020406@mentor.com \
    --to=vladimir_zapolskiy@mentor.com \
    --cc=computersforpeace@gmail.com \
    --cc=dwmw2@infradead.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=shijie.huang@intel.com \
    --cc=zajec5@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.