<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-dev/drivers/mtd/nand/raw/ingenic, branch master</title>
<subtitle>Linux kernel development work - see feature branches</subtitle>
<id>https://git.zx2c4.com/linux-dev/atom/drivers/mtd/nand/raw/ingenic?h=master</id>
<link rel='self' href='https://git.zx2c4.com/linux-dev/atom/drivers/mtd/nand/raw/ingenic?h=master'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/'/>
<updated>2022-03-18T19:14:42Z</updated>
<entry>
<title>Merge tag 'spi-nor/for-5.18' into mtd/next</title>
<updated>2022-03-18T19:14:42Z</updated>
<author>
<name>Miquel Raynal</name>
<email>miquel.raynal@bootlin.com</email>
</author>
<published>2022-03-18T19:14:12Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=4e371d996590f3a7e82a086d499c912c1930e968'/>
<id>urn:sha1:4e371d996590f3a7e82a086d499c912c1930e968</id>
<content type='text'>
SPI NOR core changes:
- move vendor specific code out of the core into vendor drivers.
- unify all function and object names in the vendor modules.
- make setup() callback optional to improve readability.
- skip erase logic when the SPI_NOR_NO_ERASE flag is set at flash
  declaration.

Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
</content>
</entry>
<entry>
<title>mtd: Fix misuses of of_match_ptr()</title>
<updated>2022-01-31T16:18:03Z</updated>
<author>
<name>Miquel Raynal</name>
<email>miquel.raynal@bootlin.com</email>
</author>
<published>2022-01-27T11:06:31Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=3f26d1bf90ba9bf420e49ec9cdbe13d15c0df7cd'/>
<id>urn:sha1:3f26d1bf90ba9bf420e49ec9cdbe13d15c0df7cd</id>
<content type='text'>
of_match_ptr() either expands to NULL if !CONFIG_OF, or is transparent
otherwise. There are several drivers using this macro which keep their
of_device_id array enclosed within an #ifdef CONFIG_OF check, these are
considered fine. However, When misused, the of_device_id array pointed
by this macro will produce a warning because it is finally unused when
compiled without OF support.

A number of fixes are possible:
- Always depend on CONFIG_OF, but this will not always work and may
  break boards.
- Enclose the compatible array by #ifdef's, this may save a bit of
  memory but will reduce build coverage.
- Tell the compiler the array may be unused, if this can be avoided,
  let's not do this.
- Just drop the macro, setting the of_device_id array for a non OF
  enabled platform is not an issue, it will just be unused.

The latter solution seems the more appropriate, so let's use it.

Reported-by: kernel test robot &lt;lkp@intel.com&gt;
Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
Acked-by: Paul Cercueil &lt;paul@crapouillou.net&gt;
Reviewed-by: Alexandre Belloni &lt;alexandre.belloni@bootlin.com&gt;
Acked-by: Pratyush Yadav &lt;p.yadav@ti.com&gt;
Link: https://lore.kernel.org/linux-mtd/20220127110631.1064705-1-miquel.raynal@bootlin.com
</content>
</entry>
<entry>
<title>mtd: rawnand: ingenic: Fix missing put_device in ingenic_ecc_get</title>
<updated>2022-01-25T09:31:10Z</updated>
<author>
<name>Miaoqian Lin</name>
<email>linmq006@gmail.com</email>
</author>
<published>2021-12-30T07:27:51Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=ba1b71b008e97fd747845ff3a818420b11bbe830'/>
<id>urn:sha1:ba1b71b008e97fd747845ff3a818420b11bbe830</id>
<content type='text'>
If of_find_device_by_node() succeeds, ingenic_ecc_get() doesn't have
a corresponding put_device(). Thus add put_device() to fix the exception
handling.

Fixes: 15de8c6efd0e ("mtd: rawnand: ingenic: Separate top-level and SoC specific code")
Signed-off-by: Miaoqian Lin &lt;linmq006@gmail.com&gt;
Reviewed-by: Paul Cercueil &lt;paul@crapouillou.net&gt;
Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
Link: https://lore.kernel.org/linux-mtd/20211230072751.21622-1-linmq006@gmail.com
</content>
</entry>
<entry>
<title>mtd: rawnand: ingenic: JZ4740 needs 'oob_first' read page function</title>
<updated>2021-11-19T18:43:11Z</updated>
<author>
<name>Paul Cercueil</name>
<email>paul@crapouillou.net</email>
</author>
<published>2021-10-16T13:22:28Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=0171480007d64f663aae9226303f1b1e4621229e'/>
<id>urn:sha1:0171480007d64f663aae9226303f1b1e4621229e</id>
<content type='text'>
The ECC engine on the JZ4740 SoC requires the ECC data to be read before
the page; using the default page reading function does not work. Indeed,
the old JZ4740 NAND driver (removed in 5.4) did use the 'OOB first' flag
that existed back then.

Use the newly created nand_read_page_hwecc_oob_first() to address this
issue.

This issue was not found when the new ingenic-nand driver was developed,
most likely because the Device Tree used had the nand-ecc-mode set to
"hw_oob_first", which seems to not be supported anymore.

Cc: &lt;stable@vger.kernel.org&gt; # v5.2
Fixes: a0ac778eb82c ("mtd: rawnand: ingenic: Add support for the JZ4740")
Signed-off-by: Paul Cercueil &lt;paul@crapouillou.net&gt;
Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
Link: https://lore.kernel.org/linux-mtd/20211016132228.40254-5-paul@crapouillou.net
</content>
</entry>
<entry>
<title>mtd: rawnand: ingenic: remove redundant get_device() in ingenic_ecc_get()</title>
<updated>2020-12-10T21:37:31Z</updated>
<author>
<name>Yu Kuai</name>
<email>yukuai3@huawei.com</email>
</author>
<published>2020-10-31T10:54:39Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=1f0c4ea95ed4bcb872d3751a95e51f02e2822243'/>
<id>urn:sha1:1f0c4ea95ed4bcb872d3751a95e51f02e2822243</id>
<content type='text'>
of_find_device_by_node() already takes a reference to the device, and
ingenic_ecc_release() will drop the reference. So, the get_device() in
ingenic_ecc_get() is redundand.

Fixes: 15de8c6efd0e("mtd: rawnand: ingenic: Separate top-level and SoC specific code")
Signed-off-by: Yu Kuai &lt;yukuai3@huawei.com&gt;
Acked-by: Paul Cercueil &lt;paul@crapouillou.net&gt;
Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
Link: https://lore.kernel.org/linux-mtd/20201031105439.2304211-1-yukuai3@huawei.com
</content>
</entry>
<entry>
<title>mtd: rawnand: Use the ECC framework OOB layouts</title>
<updated>2020-09-30T14:43:52Z</updated>
<author>
<name>Miquel Raynal</name>
<email>miquel.raynal@bootlin.com</email>
</author>
<published>2020-08-27T08:52:05Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=1e3b37aab958861a9d0c01ff6dbec96a82743701'/>
<id>urn:sha1:1e3b37aab958861a9d0c01ff6dbec96a82743701</id>
<content type='text'>
No need to have our own in the raw NAND core.

Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
Link: https://lore.kernel.org/linux-mtd/20200827085208.16276-18-miquel.raynal@bootlin.com
</content>
</entry>
<entry>
<title>mtd: rawnand: Use the new ECC engine type enumeration</title>
<updated>2020-09-28T13:59:42Z</updated>
<author>
<name>Miquel Raynal</name>
<email>miquel.raynal@bootlin.com</email>
</author>
<published>2020-08-27T08:51:58Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=bace41f80f65dc4ba13c892bac783e7e81847379'/>
<id>urn:sha1:bace41f80f65dc4ba13c892bac783e7e81847379</id>
<content type='text'>
Mechanical switch from the legacy "mode" enumeration to the new
"engine type" enumeration in drivers and board files.

The device tree parsing is also updated to return the new enumeration
from the old strings.

Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
Reviewed-by: Boris Brezillon &lt;boris.brezillon@collabora.com&gt;
Link: https://lore.kernel.org/linux-mtd/20200827085208.16276-11-miquel.raynal@bootlin.com
</content>
</entry>
<entry>
<title>mtd: rawnand: ingenic: cleanup ARRAY_SIZE() vs sizeof() use</title>
<updated>2020-07-07T18:44:43Z</updated>
<author>
<name>Dan Carpenter</name>
<email>dan.carpenter@oracle.com</email>
</author>
<published>2020-06-24T13:26:40Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=d2e639d6ad60fc164b75462bcdf8a43331116fd8'/>
<id>urn:sha1:d2e639d6ad60fc164b75462bcdf8a43331116fd8</id>
<content type='text'>
The ARRAY_SIZE() is the number of elements but we want to use sizeof()
here for the number of bytes.  Fortunately, they are the same thing
because it's an array of u8 so this has no effect on runtime.

Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
Link: https://lore.kernel.org/linux-mtd/20200624132640.GC9972@mwanda
</content>
</entry>
<entry>
<title>mtd: rawnand: ingenic: Convert the driver to exec_op()</title>
<updated>2020-05-31T08:53:37Z</updated>
<author>
<name>Boris Brezillon</name>
<email>boris.brezillon@collabora.com</email>
</author>
<published>2020-05-19T23:24:54Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=5d55714fa5ac1ac93a9224821f289fbf46532d30'/>
<id>urn:sha1:5d55714fa5ac1ac93a9224821f289fbf46532d30</id>
<content type='text'>
Let's convert the driver to exec_op() to have one less driver relying
on the legacy interface.

Signed-off-by: Boris Brezillon &lt;boris.brezillon@collabora.com&gt;
Tested-by: Paul Cercueil &lt;paul@crapouillou.net&gt;
Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
Link: https://lore.kernel.org/linux-mtd/20200519232454.374081-4-boris.brezillon@collabora.com
</content>
</entry>
<entry>
<title>mtd: rawnand: ingenic: Fix the RB gpio active-high property on qi, lb60</title>
<updated>2020-05-31T08:53:36Z</updated>
<author>
<name>Boris Brezillon</name>
<email>boris.brezillon@collabora.com</email>
</author>
<published>2020-05-19T23:24:53Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/linux-dev/commit/?id=2e263011017cb22c0e7b65af791aae8cb5e1098a'/>
<id>urn:sha1:2e263011017cb22c0e7b65af791aae8cb5e1098a</id>
<content type='text'>
The rb-gpios semantics was undocumented and qi,lb60 (along with the
ingenic driver) got it wrong. The active state encodes the NAND ready
state, which is high level. Since there's no signal inverter on this
board, it should be active-high. Let's fix that here for older DTs so
we can re-use the generic nand_gpio_waitrdy() helper, and be consistent
with what other drivers do.

Suggested-by: Paul Cercueil &lt;paul@crapouillou.net&gt;
Signed-off-by: Boris Brezillon &lt;boris.brezillon@collabora.com&gt;
Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
Link: https://lore.kernel.org/linux-mtd/20200519232454.374081-3-boris.brezillon@collabora.com
</content>
</entry>
</feed>
