<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/mtd/devices/docg3.c, branch linux-3.5.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.5.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.5.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2012-06-01T23:55:42Z</updated>
<entry>
<title>Merge tag 'for-linus-3.5-20120601' of git://git.infradead.org/linux-mtd</title>
<updated>2012-06-01T23:55:42Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2012-06-01T23:55:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f5e7e844a571124ffc117d4696787d6afc4fc5ae'/>
<id>urn:sha1:f5e7e844a571124ffc117d4696787d6afc4fc5ae</id>
<content type='text'>
Pull mtd update from David Woodhouse:
 - More robust parsing especially of xattr data in JFFS2
 - Updates to mxc_nand and gpmi drivers to support new boards and device tree
 - Improve consistency of information about ECC strength in NAND devices
 - Clean up partition handling of plat_nand
 - Support NAND drivers without dedicated access to OOB area
 - BCH hardware ECC support for OMAP
 - Other fixes and cleanups, and a few new device IDs

Fixed trivial conflict in drivers/mtd/nand/gpmi-nand/gpmi-nand.c due to
added include files next to each other.

* tag 'for-linus-3.5-20120601' of git://git.infradead.org/linux-mtd: (75 commits)
  mtd: mxc_nand: move ecc strengh setup before nand_scan_tail
  mtd: block2mtd: fix recursive call of mtd_writev
  mtd: gpmi-nand: define ecc.strength
  mtd: of_parts: fix breakage in Kconfig
  mtd: nand: fix scan_read_raw_oob
  mtd: docg3 fix in-middle of blocks reads
  mtd: cfi_cmdset_0002: Slight cleanup of fixup messages
  mtd: add fixup for S29NS512P NOR flash.
  jffs2: allow to complete xattr integrity check on first GC scan
  jffs2: allow to discriminate between recoverable and non-recoverable errors
  mtd: nand: omap: add support for hardware BCH ecc
  ARM: OMAP3: gpmc: add BCH ecc api and modes
  mtd: nand: check the return code of 'read_oob/read_oob_raw'
  mtd: nand: remove 'sndcmd' parameter of 'read_oob/read_oob_raw'
  mtd: m25p80: Add support for Winbond W25Q80BW
  jffs2: get rid of jffs2_sync_super
  jffs2: remove unnecessary GC pass on sync
  jffs2: remove unnecessary GC pass on umount
  jffs2: remove lock_super
  mtd: gpmi: add gpmi support for mx6q
  ...
</content>
</entry>
<entry>
<title>mtd: docg3 fix in-middle of blocks reads</title>
<updated>2012-05-29T08:14:51Z</updated>
<author>
<name>Robert Jarzmik</name>
</author>
<published>2012-04-09T11:19:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=52c2d9aad4923536c10d278e02da2e0254e46ee0'/>
<id>urn:sha1:52c2d9aad4923536c10d278e02da2e0254e46ee0</id>
<content type='text'>
Corner case reads do not work, and return false data and
ECC. This case is typically seen in a ubifs usage, with a
read of type:
 - docg3 docg3: doc_read_oob(from=14882415, mode=1,
 data=(c30eca40:12), oob=(  (null):0))

This results in the following reads:
 - docg3 docg3: doc_read_data_area(buf=  (null), len=111)
 - docg3 docg3: doc_read_data_area(buf=c30eca40, len=12)
 - docg3 docg3: doc_read_data_area(buf=  (null), len=389)
 - docg3 docg3: doc_read_data_area(buf=  (null), len=0)
 - docg3 docg3: doc_read_data_area(buf=  (null), len=16)

If we suppose that the pages content is :
 - bytes 0 .. 111   : 0x0a
 - bytes 112 .. 255 : 0x0f
Then the returned bytes will be :
 - 111 times 0x0a (correct)
 - 0x0a 2 times and 0x0f 10 times (incorrect, should be
 0x0a,0x0f)
 - 0x0f 389 times (correct)
 - nothing
 - correct OOB

The reason seams that the first 111 bytes read ends between
the 2 docg3 planes, and that the first following read (in
the 12 bytes sequence, read of 16 bit word) returns the byte
of the rightmost plane duplicated in high and lower byte of
the word.

Fix this behaviour by ensuring that if the previous read
ended up in-between the 2 planes, there will be a first 1
byte read to get back to the beginning of leftmost plane.

Signed-off-by: Robert Jarzmik &lt;robert.jarzmik@free.fr&gt;
Signed-off-by: Artem Bityutskiy &lt;artem.bityutskiy@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>mtd: driver _read() returns max_bitflips; mtd_read() returns -EUCLEAN</title>
<updated>2012-05-14T04:14:23Z</updated>
<author>
<name>Mike Dunn</name>
</author>
<published>2012-04-25T19:06:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=edbc4540e02c201bdd4f4d498ebb6ed517fd36e2'/>
<id>urn:sha1:edbc4540e02c201bdd4f4d498ebb6ed517fd36e2</id>
<content type='text'>
The drivers' _read() method, absent an error, returns a non-negative integer
indicating the maximum number of bit errors that were corrected in any one
region comprising an ecc step.  MTD returns -EUCLEAN if this is &gt;=
bitflip_threshold, 0 otherwise.  If bitflip_threshold is zero, the comparison is
not made since these devices lack ECC and always return zero in the non-error
case (thanks Brian)¹.  Note that this is a subtle change to the driver
interface.

This and the preceding patches in this set were tested with ubi on top of the
nandsim and docg4 devices, running the ubi test io_basic from mtd-utils.

¹ http://lists.infradead.org/pipermail/linux-mtd/2012-March/040468.html

Signed-off-by: Mike Dunn &lt;mikedunn@newsguy.com&gt;
Acked-by: Robert Jarzmik &lt;robert.jarzmik@free.fr&gt;
Acked-by: Brian Norris &lt;computersforpeace@gmail.com&gt;
Ivan Djelic &lt;ivan.djelic@parrot.com&gt;
Signed-off-by: Artem Bityutskiy &lt;artem.bityutskiy@linux.intel.com&gt;

Signed-off-by: David Woodhouse &lt;David.Woodhouse@intel.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'master' into for-next</title>
<updated>2012-04-08T19:48:52Z</updated>
<author>
<name>Jiri Kosina</name>
</author>
<published>2012-04-08T19:48:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e75d660672ddd11704b7f0fdb8ff21968587b266'/>
<id>urn:sha1:e75d660672ddd11704b7f0fdb8ff21968587b266</id>
<content type='text'>
Merge with latest Linus' tree, as I have incoming patches
that fix code that is newer than current HEAD of for-next.

Conflicts:
	drivers/net/ethernet/realtek/r8169.c
</content>
</entry>
<entry>
<title>mtg: docg3: fix comment errors</title>
<updated>2012-04-06T00:19:22Z</updated>
<author>
<name>Octavian Moraru</name>
</author>
<published>2012-03-03T14:19:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=86d2f6fbb957e7500e5140a698db9a6643a1f453'/>
<id>urn:sha1:86d2f6fbb957e7500e5140a698db9a6643a1f453</id>
<content type='text'>
occured  ==&gt; occurred
successfull  ==&gt; successful
adressing  ==&gt; addressing

Signed-off-by: Octavian Moraru &lt;octmoraru@gmail.com&gt;
Signed-off-by: Jiri Kosina &lt;jkosina@suse.cz&gt;
</content>
</entry>
<entry>
<title>mtd: docg3 add protection against concurrency</title>
<updated>2012-03-27T00:03:27Z</updated>
<author>
<name>Robert Jarzmik</name>
</author>
<published>2012-03-22T20:00:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7b0e67f604e1829e5292e1ad7743eb18dc42ea7c'/>
<id>urn:sha1:7b0e67f604e1829e5292e1ad7743eb18dc42ea7c</id>
<content type='text'>
As docg3 is intolerant against reentrancy, especially
because of its weird register access (ie. a register read is
performed by a first register write), each access to the
docg3 IO space must be locked.

Lock the IO space with a mutex, shared by all chips on the
same cascade, as they all share the same IO space.

Signed-off-by: Robert Jarzmik &lt;robert.jarzmik@free.fr&gt;
Signed-off-by: Artem Bityutskiy &lt;artem.bityutskiy@linux.intel.com&gt;
Signed-off-by: David Woodhouse &lt;David.Woodhouse@intel.com&gt;
</content>
</entry>
<entry>
<title>mtd: docg3 refactor cascade floors structure</title>
<updated>2012-03-27T00:03:14Z</updated>
<author>
<name>Robert Jarzmik</name>
</author>
<published>2012-03-22T20:00:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1b15a5f93bbd9a6f5346cfa449720a7e32115f86'/>
<id>urn:sha1:1b15a5f93bbd9a6f5346cfa449720a7e32115f86</id>
<content type='text'>
Group floors into a common cascade structure. This will provide a common
structure to store common data to all cascaded docg3 chips, like IO
addressing, locking protection.

Signed-off-by: Robert Jarzmik &lt;robert.jarzmik@free.fr&gt;
Signed-off-by: Artem Bityutskiy &lt;artem.bityutskiy@linux.intel.com&gt;
Signed-off-by: David Woodhouse &lt;David.Woodhouse@intel.com&gt;
</content>
</entry>
<entry>
<title>mtd: docg3 increase write/erase timeout</title>
<updated>2012-03-27T00:03:03Z</updated>
<author>
<name>Robert Jarzmik</name>
</author>
<published>2012-03-22T20:00:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a2b3d284ed65b9ada18fd2ffb66daffe9c0ff168'/>
<id>urn:sha1:a2b3d284ed65b9ada18fd2ffb66daffe9c0ff168</id>
<content type='text'>
After several tries with ubifs, it appears empirically that constructor
provided figures for erase/write timeouts are underestimated. A timeout
of 100ms seems to work with a 5 years worn chip, and no timeouts occur
anymore.

Signed-off-by: Robert Jarzmik &lt;robert.jarzmik@free.fr&gt;
Signed-off-by: Artem Bityutskiy &lt;artem.bityutskiy@linux.intel.com&gt;
Signed-off-by: David Woodhouse &lt;David.Woodhouse@intel.com&gt;
</content>
</entry>
<entry>
<title>mtd: docg3 fix inbound calculations</title>
<updated>2012-03-27T00:03:00Z</updated>
<author>
<name>Robert Jarzmik</name>
</author>
<published>2012-03-22T20:00:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a7baef1211b0ac218299965481e7cff9d68c1edd'/>
<id>urn:sha1:a7baef1211b0ac218299965481e7cff9d68c1edd</id>
<content type='text'>
The last erase block was not accessible, as the out of bound
check was incorrectly rejecting the last block.
The read/write/erase offset checks were forbidding the usage of the
last block, because of the calculation which was considering the
byte after the last instead of the last byte.

Signed-off-by: Robert Jarzmik &lt;robert.jarzmik@free.fr&gt;
Signed-off-by: Artem Bityutskiy &lt;artem.bityutskiy@linux.intel.com&gt;
Signed-off-by: David Woodhouse &lt;David.Woodhouse@intel.com&gt;
</content>
</entry>
<entry>
<title>mtd: fix section mismatch for doc_probe_device</title>
<updated>2012-03-27T00:00:55Z</updated>
<author>
<name>Ryosuke Saito</name>
</author>
<published>2012-03-15T10:19:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=30053b87d5b97aca28dd7a59982cbb161eaf01c6'/>
<id>urn:sha1:30053b87d5b97aca28dd7a59982cbb161eaf01c6</id>
<content type='text'>
doc_probe_device() is only called from docg3_probe() which is in .init.text,
so it must be in the same section to avoid a section mismatch warning.

Signed-off-by: Ryosuke Saito &lt;raitosyo@gmail.com&gt;
Signed-off-by: Artem Bityutskiy &lt;artem.bityutskiy@linux.intel.com&gt;
Signed-off-by: David Woodhouse &lt;David.Woodhouse@intel.com&gt;
</content>
</entry>
</feed>
