<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/include/linux/mtd, branch v3.14.79</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v3.14.79</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v3.14.79'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2014-01-20T19:55:23Z</updated>
<entry>
<title>mtd: mtdram: add missing 'const'</title>
<updated>2014-01-20T19:55:23Z</updated>
<author>
<name>Brian Norris</name>
<email>computersforpeace@gmail.com</email>
</author>
<published>2014-01-11T23:51:45Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=0a8899b31a7d6c4a3bc7fdbd7c8c1fc79e726363'/>
<id>urn:sha1:0a8899b31a7d6c4a3bc7fdbd7c8c1fc79e726363</id>
<content type='text'>
mtdram_init_device() wasn't updated along with mtd_partition.name.

Signed-off-by: Brian Norris &lt;computersforpeace@gmail.com&gt;
Cc: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
</content>
</entry>
<entry>
<title>mtd: nand: add Intel manufacturer ID</title>
<updated>2014-01-20T19:30:52Z</updated>
<author>
<name>Huang Shijie</name>
<email>b32955@freescale.com</email>
</author>
<published>2014-01-03T08:50:39Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=4968a4124cf2df4b3672eed4714c6755f10f400c'/>
<id>urn:sha1:4968a4124cf2df4b3672eed4714c6755f10f400c</id>
<content type='text'>
Add the Intel manufacturer Id.
Tested with Intel JS29F32G08ACMD1(4096 + 224) which is ONFI 2.0 compliant
nand.

Signed-off-by: Huang Shijie &lt;b32955@freescale.com&gt;
Signed-off-by: Brian Norris &lt;computersforpeace@gmail.com&gt;
</content>
</entry>
<entry>
<title>mtd: nand: add SanDisk manufacturer ID</title>
<updated>2014-01-20T19:23:28Z</updated>
<author>
<name>Huang Shijie</name>
<email>b32955@freescale.com</email>
</author>
<published>2013-12-26T07:37:45Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=3f97c6ff6de8a657e4d4d826e502698004cfc2ae'/>
<id>urn:sha1:3f97c6ff6de8a657e4d4d826e502698004cfc2ae</id>
<content type='text'>
Add the manufactor ID for SanDisk.
Make preparation for SanDisk SDTNRGAMA-008G.

Signed-off-by: Huang Shijie &lt;b32955@freescale.com&gt;
Signed-off-by: Brian Norris &lt;computersforpeace@gmail.com&gt;
</content>
</entry>
<entry>
<title>mtd: nand: don't use {read,write}_buf for 8-bit transfers</title>
<updated>2014-01-15T01:22:37Z</updated>
<author>
<name>Uwe Kleine-König</name>
<email>u.kleine-koenig@pengutronix.de</email>
</author>
<published>2013-12-05T21:22:04Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=05f7835975dad6b3b517f9e23415985e648fb875'/>
<id>urn:sha1:05f7835975dad6b3b517f9e23415985e648fb875</id>
<content type='text'>
According to the Open NAND Flash Interface Specification (ONFI) Revision
3.1 "Parameters are always transferred on the lower 8-bits of the data
bus." for the Get Features and Set Features commands.

So using read_buf and write_buf is wrong for 16-bit wide nand chips as
they use I/O[15:0]. The Get Features command is easily fixed using 4
times the read_byte callback. For Set Features implement a new
overwritable callback "write_byte". Still I expect the default to work
just fine for all controllers and making it overwriteable was just done
for symmetry.

Signed-off-by: Uwe Kleine-König &lt;u.kleine-koenig@pengutronix.de&gt;
[Brian: fixed warning]
Tested-by: Brian Norris &lt;computersforpeace@gmail.com&gt;
Signed-off-by: Brian Norris &lt;computersforpeace@gmail.com&gt;
</content>
</entry>
<entry>
<title>mtd: nand: use __packed shorthand</title>
<updated>2014-01-14T07:13:31Z</updated>
<author>
<name>Brian Norris</name>
<email>computersforpeace@gmail.com</email>
</author>
<published>2013-12-05T20:06:54Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=e2e6b7b7d64baeac1c38fa5eb0d3ec85f3d123f5'/>
<id>urn:sha1:e2e6b7b7d64baeac1c38fa5eb0d3ec85f3d123f5</id>
<content type='text'>
To be consistent with the rest of include/linux/mtd/nand.h, we should
use the __packed shorthand instead of __attribute__((packed)).

Signed-off-by: Brian Norris &lt;computersforpeace@gmail.com&gt;
Acked-by: Huang Shijie &lt;b32955@freescale.com&gt;
</content>
</entry>
<entry>
<title>mtd: nand: support Micron READ RETRY</title>
<updated>2014-01-14T07:13:05Z</updated>
<author>
<name>Brian Norris</name>
<email>computersforpeace@gmail.com</email>
</author>
<published>2013-12-03T23:51:09Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=8429bb3975ef81c114cde4da111e64d224d19f83'/>
<id>urn:sha1:8429bb3975ef81c114cde4da111e64d224d19f83</id>
<content type='text'>
Micron provides READ RETRY support via the ONFI vendor-specific
parameter block (to indicate how many read-retry modes are available)
and the ONFI {GET,SET}_FEATURES commands with a vendor-specific feature
address (to support reading/switching the current read-retry mode).

The recommended sequence is as follows:

  1. Perform PAGE_READ operation
  2. If no ECC error, we are done
  3. Run SET_FEATURES with feature address 89h, mode 1
  4. Retry PAGE_READ operation
  5. If ECC error and there are remaining supported modes, increment the
     mode and return to step 3. Otherwise, this is a true ECC error.
  6. Run SET_FEATURES with feature address 89h, mode 0, to return to the
     default state.

This patch implements the chip-&gt;setup_read_retry() callback for
Micron and fills in the chip-&gt;read_retries.

Tested on Micron MT29F32G08CBADA, which supports 8 read-retry modes.

The Micron vendor-specific table was checked against the datasheets for
the following Micron NAND:

Needs retry   Cell-type    Part number          Vendor revision    Byte 180
-----------   ---------    ----------------     ---------------    ------------
No            SLC          MT29F16G08ABABA      1                  Reserved (0)
No            MLC          MT29F32G08CBABA      1                  Reserved (0)
No            SLC          MT29F1G08AACWP       1                  0
Yes           MLC          MT29F32G08CBADA      1                  08h
Yes           MLC          MT29F64G08CBABA      2                  08h

Signed-off-by: Brian Norris &lt;computersforpeace@gmail.com&gt;
Acked-by: Huang Shijie &lt;b32955@freescale.com&gt;
</content>
</entry>
<entry>
<title>mtd: nand: add generic READ RETRY support</title>
<updated>2014-01-14T07:12:58Z</updated>
<author>
<name>Brian Norris</name>
<email>computersforpeace@gmail.com</email>
</author>
<published>2014-01-03T23:13:33Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=ba84fb5952af114e28ac82adcdef75297701ccc1'/>
<id>urn:sha1:ba84fb5952af114e28ac82adcdef75297701ccc1</id>
<content type='text'>
Modern MLC (and even SLC?) NAND can experience a large number of
bitflips (beyond the recommended correctability capacity) due to drifts
in the voltage threshold (Vt). These bitflips can cause ECC errors to
occur well within the expected lifetime of the flash. To account for
this, some manufacturers provide a mechanism for shifting the Vt
threshold after a corrupted read.

The generic pattern seems to be that a particular flash has N read retry
modes (where N = 0, traditionally), and after an ECC failure, the host
should reconfigure the flash to use the next available mode, then retry
the read operation. This process repeats until all bitfips can be
corrected or until the host has tried all available retry modes.

This patch adds the infrastructure support for a
vendor-specific/flash-specific callback, used for setting the read-retry
mode (i.e., voltage threshold).

For now, this patch always returns the flash to mode 0 (the default
mode) after a successful read-retry, according to the flowchart found in
Micron's datasheets. This may need to change in the future if it is
determined that eventually, mode 0 is insufficient for the majority of
the flash cells (and so for performance reasons, we should leave the
flash in mode 1, 2, etc.).

Signed-off-by: Brian Norris &lt;computersforpeace@gmail.com&gt;
Acked-by: Huang Shijie &lt;b32955@freescale.com&gt;
</content>
</entry>
<entry>
<title>mtd: nand: add ONFI vendor block for Micron</title>
<updated>2014-01-14T07:12:53Z</updated>
<author>
<name>Brian Norris</name>
<email>computersforpeace@gmail.com</email>
</author>
<published>2013-12-03T20:02:20Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=6f0065b0124bef5e66869ec0b813d251797be439'/>
<id>urn:sha1:6f0065b0124bef5e66869ec0b813d251797be439</id>
<content type='text'>
Signed-off-by: Brian Norris &lt;computersforpeace@gmail.com&gt;
Acked-by: Huang Shijie &lt;b32955@freescale.com&gt;
</content>
</entry>
<entry>
<title>mtd: make register_mtd_parser return void</title>
<updated>2014-01-03T19:22:22Z</updated>
<author>
<name>Axel Lin</name>
<email>axel.lin@ingics.com</email>
</author>
<published>2013-12-01T11:01:06Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=6e14a61d412eb87ef7bdcec8b08a95bead771a78'/>
<id>urn:sha1:6e14a61d412eb87ef7bdcec8b08a95bead771a78</id>
<content type='text'>
register_mtd_parser never fails; hence make it return void.

Signed-off-by: Axel Lin &lt;axel.lin@ingics.com&gt;
Signed-off-by: Brian Norris &lt;computersforpeace@gmail.com&gt;
</content>
</entry>
<entry>
<title>mtd: make deregister_mtd_parser return void</title>
<updated>2014-01-03T19:22:22Z</updated>
<author>
<name>Axel Lin</name>
<email>axel.lin@ingics.com</email>
</author>
<published>2013-12-01T10:59:15Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=cf3b2b1e24998ba67ca6defa71899bee2432046f'/>
<id>urn:sha1:cf3b2b1e24998ba67ca6defa71899bee2432046f</id>
<content type='text'>
deregister_mtd_parser never fails; hence make it return void.

Signed-off-by: Axel Lin &lt;axel.lin@ingics.com&gt;
Signed-off-by: Brian Norris &lt;computersforpeace@gmail.com&gt;
</content>
</entry>
</feed>
