LinuxPPC-Dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Mike Hench" <mhench@engagenet.com>
To: <linuxppc-dev@ozlabs.org>
Subject: [PATCH] MPC813 NAND fixes
Date: Wed, 19 Mar 2008 10:28:19 -0500	[thread overview]
Message-ID: <6629C06B144F5C4098DFF95C4FF9DAF702BA1D02@mailsrv.engagenet.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 3015 bytes --]

 

 

________________________________

From: Mike Hench 
Sent: Wednesday, March 19, 2008 10:22 AM
To: 'mhench@wi.rr.com'
Subject: [PATCH] MPC813 NAND fixes

 

Fix a race condition in fsl_elbc_run_command

Declare a variable written by an interrupt volatile.

Added parentheses to make timeout non-zero

Fix incorrect usage of clearbits32 that bashed option register

Remove work around for bashed register

 

Signed-off-by: Mike Hench <mhench@elutions.com>

 

---

 

--- linux-2.6.25-rc5.orig/drivers/mtd/nand/fsl_elbc_nand.c   2008-03-10
00:22:27.000000000 -0500

+++ linux-2.6.25-rc5/drivers/mtd/nand/fsl_elbc_nand.c       2008-03-19
10:08:22.000000000 -0500

@@ -264,7 +264,7 @@ struct fsl_elbc_ctrl {

            struct elbc_regs __iomem *regs;

            int irq;

            wait_queue_head_t irq_wait;

-           unsigned int irq_status; /* status read from LTESR by irq
handler */

+          volatile unsigned int irq_status; /* status read from LTESR
by irq handler */

            u8 __iomem *addr;        /* Address of assigned FCM buffer
*/

            unsigned int page;       /* Last page written to / read from
*/

            unsigned int read_bytes; /* Number of bytes read during
command   */

@@ -379,13 +379,13 @@ static int fsl_elbc_run_command(struct m

                     in_be32(&lbc->fbar), in_be32(&lbc->fpar),

                     in_be32(&lbc->fbcr), priv->bank);

 

+          ctrl->irq_status = 0;

            /* execute special operation */

            out_be32(&lbc->lsor, priv->bank);

 

            /* wait for FCM complete flag or timeout */

-           ctrl->irq_status = 0;

            wait_event_timeout(ctrl->irq_wait, ctrl->irq_status,

-                              FCM_TIMEOUT_MSECS * HZ/1000);

+                             (FCM_TIMEOUT_MSECS * HZ)/1000);

            ctrl->status = ctrl->irq_status;

 

            /* store mdr value in case it was needed */

@@ -861,7 +861,7 @@ static int fsl_elbc_chip_init_tail(struc

            /* adjust Option Register and ECC to match Flash page size
*/

            if (mtd->writesize == 512) {

                        priv->page_size = 0;

-                       clrbits32(&lbc->bank[priv->bank].or,
~OR_FCM_PGS);

+                      clrbits32(&lbc->bank[priv->bank].or, OR_FCM_PGS);

            } else if (mtd->writesize == 2048) {

                        priv->page_size = 1;

                        setbits32(&lbc->bank[priv->bank].or,
OR_FCM_PGS);

@@ -882,11 +882,6 @@ static int fsl_elbc_chip_init_tail(struc

                        return -1;

            }

 

-           /* The default u-boot configuration on MPC8313ERDB causes
errors;

-           * more delay is needed.  This should be safe for other
boards

-           * as well.

-           */

-           setbits32(&lbc->bank[priv->bank].or, 0x70);

            return 0;

 }

 


[-- Attachment #2: Type: text/html, Size: 15881 bytes --]

             reply	other threads:[~2008-03-19 15:44 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-19 15:28 Mike Hench [this message]
2008-03-19 17:02 ` [PATCH] MPC8313 NAND fixes Scott Wood

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=6629C06B144F5C4098DFF95C4FF9DAF702BA1D02@mailsrv.engagenet.com \
    --to=mhench@engagenet.com \
    --cc=linuxppc-dev@ozlabs.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox