lkml.org 
[lkml]   [2009]   [Apr]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH] mtd: fix timeout in M25P80 driver
    From
    Date
    On Mon, 2009-04-13 at 15:26 +0100, Peter Horton wrote:
    > Extend erase timeout in M25P80 SPI Flash driver.
    >
    > The M25P80 drivers fails erasing sectors on a M25P128 because the ready
    > wait timeout is too short. Change the timeout from a simple loop count to a
    > suitable number of seconds.
    >
    > Signed-off-by: Peter Horton <zero@colonel-panic.org>
    > ---
    > Index: linux-2.6.29-git12/drivers/mtd/devices/m25p80.c
    > ===================================================================
    > --- linux-2.6.29-git12.orig/drivers/mtd/devices/m25p80.c 2009-04-12 21:41:16.000000000 +0000
    > +++ linux-2.6.29-git12/drivers/mtd/devices/m25p80.c 2009-04-12 21:43:01.000000000 +0000
    > @@ -54,7 +54,7 @@
    > #define SR_SRWD 0x80 /* SR write protect */
    >
    > /* Define max times to check status register before we give up. */
    > -#define MAX_READY_WAIT_COUNT 100000
    > +#define MAX_READY_WAIT_JIFFIES (10 * HZ) /* eg. M25P128 specs 6s max sector erase */
    > #define CMD_SIZE 4
    >
    > #ifdef CONFIG_M25PXX_USE_FAST_READ
    > @@ -145,20 +145,20 @@
    > */
    > static int wait_till_ready(struct m25p *flash)
    > {
    > - int count;
    > + unsigned long deadline;
    > int sr;
    >
    > - /* one chip guarantees max 5 msec wait here after page writes,
    > - * but potentially three seconds (!) after page erase.
    > - */
    Why did you remove the comment? Is it wrong or useless?

    > - for (count = 0; count < MAX_READY_WAIT_COUNT; count++) {
    > + deadline = jiffies + MAX_READY_WAIT_JIFFIES;
    > +
    > + do {
    > if ((sr = read_sr(flash)) < 0)
    > break;
    > else if (!(sr & SR_WIP))
    > return 0;
    >
    > - /* REVISIT sometimes sleeping would be best */
    > - }
    > + cond_resched();
    > +
    > + } while (!time_after_eq(jiffies, deadline));
    >
    > return 1;
    > }

    --
    Best regards,
    Artem Bityutskiy (Битюцкий Артём)

    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2009-04-17 09:27    [W:0.034 / U:4.020 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site