From: Vitaly Wool <vwool@ru.mvista.com>
To: Vitaly Bordug <vbordug@ru.mvista.com>
Cc: tglx@linutronix.de, linux-mtd@lists.infradead.org
Subject: Re: [PATCH] MTD NAND: Fix ECC errors in au1550nd.c
Date: Wed, 05 Oct 2005 23:22:59 +0400 [thread overview]
Message-ID: <43442813.8050700@ru.mvista.com> (raw)
In-Reply-To: <4343FCE3.8090307@ru.mvista.com>
Vitaly Bordug wrote:
> Thomas Gleixner wrote:
>
>> On Tue, 2005-10-04 at 15:53 +0400, Vitaly Bordug wrote:
>>
>>> Actually, yes, a sort of. The issue was in some bytes lost during
>>> read cycles (ECC errors reported) when PCMCIA (board AMD Alchemy
>>> 1550) is active. This does not take place when 4 CS drives happen -
>>> as shown on the timing diagram - e.g.
>>> cs: \__/\__/\__/\__/\_<CS low>______ [works fine]
>>> ^
>>> asserted by SoC controller
>>> unchanged code:
>>> cs:\______________/\_[PCMCIA driver steals bytes ]...
>>> ^
>>> asserted by SoC controller
>>
>>
>>
>> Right. Thats a known problem with those FLASH types. You have to hold CS
>> low until the busy pin goes high.
>>
>> Hmm, you have to protect against interrupts during this time I guess ?
>> If not you can use the existing controller lock implementation to
>> protect against concurrent access.
>>
> Yes. That's because making a global locking mechanism across 3
> different divers looks more ugly than just local_irq_save() for a
> short period in one callback.
Enabling interrupts in callback looks quite dangerous to me. I'm also
afraid that real-time responsiveness of that system is not gonna be
satisfactory.
So why not implement mutex-based bus_lock()/bus_unlock() routines
somewhere in arch/mips/somewhere and call those from wherever they are
needed to prevent concurrent access? It'a a question due to the fact
that I haven't seen evidence that you really need to disable interrupts,
if that's not the case, please elaborate :)
Vitaly
next prev parent reply other threads:[~2005-10-05 19:23 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-10-03 13:22 [PATCH] MTD NAND: Fix ECC errors in au1550nd.c Vitaly Bordug
2005-10-03 23:10 ` Thomas Gleixner
2005-10-04 11:53 ` Vitaly Bordug
2005-10-04 16:41 ` Thomas Gleixner
2005-10-05 16:18 ` Vitaly Bordug
2005-10-05 19:22 ` Vitaly Wool [this message]
2005-10-04 13:19 ` Vitaly Wool
2005-10-04 13:33 ` Vitaly Bordug
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=43442813.8050700@ru.mvista.com \
--to=vwool@ru.mvista.com \
--cc=linux-mtd@lists.infradead.org \
--cc=tglx@linutronix.de \
--cc=vbordug@ru.mvista.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.