diff --git a/debian/changelog b/debian/changelog index 76eab606e..4c10c1e3c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,12 @@ linux-2.6 (2.6.29-4) UNRELEASED; urgency=low + [ maximilian attems ] * drm/i915: allow tiled front buffers on 965+. * [parisc] Disable BTRFS. + [ Martin Michlmayr ] + * Extend erase timeout in M25P80 SPI Flash driver (Peter Horton). + -- maximilian attems Fri, 17 Apr 2009 11:30:55 +0200 linux-2.6 (2.6.29-3) unstable; urgency=low diff --git a/debian/patches/bugfix/all/extend-erase-timeout-spi-flash.patch b/debian/patches/bugfix/all/extend-erase-timeout-spi-flash.patch new file mode 100644 index 000000000..0a88d38b5 --- /dev/null +++ b/debian/patches/bugfix/all/extend-erase-timeout-spi-flash.patch @@ -0,0 +1,54 @@ +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 +--- +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. +- */ +- 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; + } +-- +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/ diff --git a/debian/patches/series/4 b/debian/patches/series/4 index ee0ce5b06..43428f8aa 100644 --- a/debian/patches/series/4 +++ b/debian/patches/series/4 @@ -1 +1,2 @@ + bugfix/all/drm-intel.git-f544847fbaf099278343f875987a983f2b913134.patch ++ bugfix/all/extend-erase-timeout-spi-flash.patch