<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/include/linux/mtd/nand.h, branch v6.6.132</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v6.6.132</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v6.6.132'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2022-11-07T16:17:20+00:00</updated>
<entry>
<title>mtd: nand: drop EXPORT_SYMBOL_GPL for nanddev_erase()</title>
<updated>2022-11-07T16:17:20+00:00</updated>
<author>
<name>Dario Binacchi</name>
<email>dario.binacchi@amarulasolutions.com</email>
</author>
<published>2022-10-18T17:02:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=a50ae8c98e5766a4fcb78e76f13cc658b784eac1'/>
<id>urn:sha1:a50ae8c98e5766a4fcb78e76f13cc658b784eac1</id>
<content type='text'>
This function is only used within this module, so it is no longer
necessary to use EXPORT_SYMBOL_GPL().

Signed-off-by: Dario Binacchi &lt;dario.binacchi@amarulasolutions.com&gt;
Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
Link: https://lore.kernel.org/linux-mtd/20221018170205.1733958-1-dario.binacchi@amarulasolutions.com
</content>
</entry>
<entry>
<title>spi: mxic: Add support for pipelined ECC operations</title>
<updated>2022-02-10T08:32:30+00:00</updated>
<author>
<name>Miquel Raynal</name>
<email>miquel.raynal@bootlin.com</email>
</author>
<published>2022-02-02T14:45:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=00360ebae483e603d55ec9a7231b787cb80ffe13'/>
<id>urn:sha1:00360ebae483e603d55ec9a7231b787cb80ffe13</id>
<content type='text'>
Some SPI-NAND chips do not have a proper on-die ECC engine providing
error correction/detection. This is particularly an issue on embedded
devices with limited resources because all the computations must
happen in software, unless an external hardware engine is provided.

These external engines are new and can be of two categories: external
or pipelined. Macronix is providing both, the former being already
supported. The second, however, is very SoC implementation dependent
and must be instantiated by the SPI host controller directly.

An entire subsystem has been contributed to support these engines which
makes the insertion into another subsystem such as SPI quite
straightforward without the need for a lot of specific functions.

Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
Reviewed-by: Mark Brown &lt;broonie@kernel.org&gt;
Link: https://lore.kernel.org/linux-mtd/20220202144536.393792-1-miquel.raynal@bootlin.com
</content>
</entry>
<entry>
<title>mtd: nand: ecc: Provide a helper to retrieve a pilelined engine device</title>
<updated>2022-02-09T08:49:36+00:00</updated>
<author>
<name>Miquel Raynal</name>
<email>miquel.raynal@bootlin.com</email>
</author>
<published>2021-12-16T11:16:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=5145abeb0649acf810a32e63bd762e617a9b3309'/>
<id>urn:sha1:5145abeb0649acf810a32e63bd762e617a9b3309</id>
<content type='text'>
In a pipelined engine situation, we might either have the host which
internally has support for error correction, or have it using an
external hardware block for this purpose. In the former case, the host
is also the ECC engine. In the latter case, it is not. In order to get
the right pointers on the right devices (for example: in order to devm_*
allocate variables), let's introduce this helper which can safely be
called by pipelined ECC engines in order to retrieve the right device
structure.

Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
Link: https://lore.kernel.org/linux-mtd/20211216111654.238086-16-miquel.raynal@bootlin.com
</content>
</entry>
<entry>
<title>mtd: nand: Add a new helper to retrieve the ECC context</title>
<updated>2022-01-23T11:36:23+00:00</updated>
<author>
<name>Miquel Raynal</name>
<email>miquel.raynal@bootlin.com</email>
</author>
<published>2021-12-16T11:16:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=cda32a618debd3fad8e42757b198719ae180f8f4'/>
<id>urn:sha1:cda32a618debd3fad8e42757b198719ae180f8f4</id>
<content type='text'>
Introduce nand_to_ecc_ctx() which will allow to easily jump to the
private pointer of an ECC context given a NAND device. This is very
handy, from the prepare or finish ECC hook, to get the internal context
out of the NAND device object.

Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
Link: https://lore.kernel.org/linux-mtd/20211216111654.238086-14-miquel.raynal@bootlin.com
</content>
</entry>
<entry>
<title>mtd: nand: ecc: Add infrastructure to support hardware engines</title>
<updated>2022-01-23T11:36:23+00:00</updated>
<author>
<name>Miquel Raynal</name>
<email>miquel.raynal@bootlin.com</email>
</author>
<published>2021-12-16T11:16:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=96489c1c0b53131b0e1ec33e2060538379ad6152'/>
<id>urn:sha1:96489c1c0b53131b0e1ec33e2060538379ad6152</id>
<content type='text'>
Add the necessary helpers to register/unregister hardware ECC engines
that will be called from ECC engine drivers.

Also add helpers to get the right engine from the user
perspective. Keep a reference of the in use ECC engine in order to
prevent modules to be unloaded. Put the reference when the engine gets
retired.

A static list of hardware (only) ECC engines is setup to keep track of
the registered engines.

Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
Link: https://lore.kernel.org/linux-mtd/20211216111654.238086-13-miquel.raynal@bootlin.com
</content>
</entry>
<entry>
<title>mtd: nand: Add a helper to retrieve the number of ECC bytes per step</title>
<updated>2021-03-11T08:37:28+00:00</updated>
<author>
<name>Miquel Raynal</name>
<email>miquel.raynal@bootlin.com</email>
</author>
<published>2021-01-27T20:30:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=ba4a40a483da86d76bd69957c21fcb975b8405ae'/>
<id>urn:sha1:ba4a40a483da86d76bd69957c21fcb975b8405ae</id>
<content type='text'>
This operation is very common and deserves a helper. It of course only
works after the ECC engine initialization.

Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
Tested-by: Adam Ford &lt;aford173@gmail.com&gt; #logicpd Torpedo
Link: https://lore.kernel.org/linux-mtd/20210127203020.9574-6-miquel.raynal@bootlin.com
</content>
</entry>
<entry>
<title>mtd: nand: Add a helper to retrieve the number of ECC steps</title>
<updated>2021-03-11T08:37:28+00:00</updated>
<author>
<name>Miquel Raynal</name>
<email>miquel.raynal@bootlin.com</email>
</author>
<published>2021-01-27T20:30:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=e3554b10babd8ee1cf43bfc840ef4657eb1d12aa'/>
<id>urn:sha1:e3554b10babd8ee1cf43bfc840ef4657eb1d12aa</id>
<content type='text'>
This operation is very common and deserves a helper. It of course only
works after the ECC engine initialization.

Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
Tested-by: Adam Ford &lt;aford173@gmail.com&gt; #logicpd Torpedo
Link: https://lore.kernel.org/linux-mtd/20210127203020.9574-5-miquel.raynal@bootlin.com
</content>
</entry>
<entry>
<title>mtd: nand: Let ECC engines advertize the exact number of steps</title>
<updated>2021-03-11T08:37:27+00:00</updated>
<author>
<name>Miquel Raynal</name>
<email>miquel.raynal@bootlin.com</email>
</author>
<published>2021-01-27T20:30:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=2bc611844b5d2c43b63bdf71ae6395fa7a6566cc'/>
<id>urn:sha1:2bc611844b5d2c43b63bdf71ae6395fa7a6566cc</id>
<content type='text'>
This is an information that might be useful for specific uses, so
export it, which might avoid having to guess the number of steps when
necessary.

Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
Tested-by: Adam Ford &lt;aford173@gmail.com&gt; #logicpd Torpedo
Link: https://lore.kernel.org/linux-mtd/20210127203020.9574-2-miquel.raynal@bootlin.com
</content>
</entry>
<entry>
<title>mtd: nand: Add helpers to manage ECC engines and configurations</title>
<updated>2020-12-10T21:37:30+00:00</updated>
<author>
<name>Miquel Raynal</name>
<email>miquel.raynal@bootlin.com</email>
</author>
<published>2020-10-01T10:20:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=6b0c3b84156125e029956e46d2b44e72f513a9fa'/>
<id>urn:sha1:6b0c3b84156125e029956e46d2b44e72f513a9fa</id>
<content type='text'>
Add the logic in the NAND core to find the right ECC engine depending
on the NAND chip requirements and the user desires. Right now, the
choice may be made between (more will come):
* software Hamming
* software BCH
* on-die (SPI-NAND devices only)

Once the ECC engine has been found, the ECC engine must be
configured.

Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
Link: https://lore.kernel.org/linux-mtd/20201001102014.20100-2-miquel.raynal@bootlin.com
</content>
</entry>
<entry>
<title>mtd: nand: Let on-die ECC engines be retrieved from the NAND core</title>
<updated>2020-12-10T21:37:30+00:00</updated>
<author>
<name>Miquel Raynal</name>
<email>miquel.raynal@bootlin.com</email>
</author>
<published>2020-09-30T15:41:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=da429b9615803b6f19e5734c4c4d99136e1e3bfd'/>
<id>urn:sha1:da429b9615803b6f19e5734c4c4d99136e1e3bfd</id>
<content type='text'>
Before making use of the ECC engines, we must retrieve them. Add the
necessary boilerplate.

Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
Link: https://lore.kernel.org/linux-mtd/20200930154109.3922-5-miquel.raynal@bootlin.com
</content>
</entry>
</feed>
