<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lwn.git/drivers/mtd/nand/raw/atmel/nand-controller.c, branch v5.0-rc6</title>
<subtitle>Linux kernel documentation tree maintained by Jonathan Corbet</subtitle>
<id>http://mirrors.hust.edu.cn/git/lwn.git/atom?h=v5.0-rc6</id>
<link rel='self' href='http://mirrors.hust.edu.cn/git/lwn.git/atom?h=v5.0-rc6'/>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/'/>
<updated>2018-12-18T19:00:52+00:00</updated>
<entry>
<title>Merge tag 'spi-nor/for-4.21' of git://git.infradead.org/linux-mtd into mtd/next</title>
<updated>2018-12-18T19:00:52+00:00</updated>
<author>
<name>Boris Brezillon</name>
<email>boris.brezillon@bootlin.com</email>
</author>
<published>2018-12-18T19:00:52+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=f366d3854ec0fec0f9949dac46431598614a956b'/>
<id>urn:sha1:f366d3854ec0fec0f9949dac46431598614a956b</id>
<content type='text'>
Core changes:
- Parse the 4BAIT SFDP section
- Add a bunch of SPI NOR entries to the flash_info table
- Add the concept of SFDP fixups and use it to fix a bug on MX25L25635F
- A bunch of minor cleanups/comestic changes
</content>
</entry>
<entry>
<title>mtd: rawnand: Move -&gt;setup_data_interface() to nand_controller_ops</title>
<updated>2018-12-07T09:38:27+00:00</updated>
<author>
<name>Boris Brezillon</name>
<email>boris.brezillon@bootlin.com</email>
</author>
<published>2018-11-11T07:55:24+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=7a08dbaedd365fa4eb7c9cd504c075e3336eb0c6'/>
<id>urn:sha1:7a08dbaedd365fa4eb7c9cd504c075e3336eb0c6</id>
<content type='text'>
-&gt;setup_data_interface() is a controller specific method and should
thus be placed in nand_controller_ops.

In order to make that work with controllers that support keeping
pre-configured timings we need to add a new NAND_KEEP_TIMINGS flag to
inform the core it should skip the timings selection step.

Signed-off-by: Boris Brezillon &lt;boris.brezillon@bootlin.com&gt;
Tested-by: Janusz Krzysztofik &lt;jmkrzyszt@gmail.com&gt;
Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
</content>
</entry>
<entry>
<title>mtd: rawnand: Deprecate the -&gt;select_chip() hook</title>
<updated>2018-12-07T09:38:27+00:00</updated>
<author>
<name>Boris Brezillon</name>
<email>boris.brezillon@bootlin.com</email>
</author>
<published>2018-11-11T07:55:22+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=7d6c37e90cf9013bd18240cd861b9ae7b006f91f'/>
<id>urn:sha1:7d6c37e90cf9013bd18240cd861b9ae7b006f91f</id>
<content type='text'>
Now that the CS line to be selected is passed to -&gt;exec_op() and
stored in chip-&gt;cur_cs and after patching all drivers implementing
-&gt;exec_op() to stop implementing this method, we can deprecate it by
moving it to the nand_legacy structure.

Signed-off-by: Boris Brezillon &lt;boris.brezillon@bootlin.com&gt;
Tested-by: Janusz Krzysztofik &lt;jmkrzyszt@gmail.com&gt;
Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
</content>
</entry>
<entry>
<title>mtd: rawnand: atmel: fix OF child-node lookup</title>
<updated>2018-11-18T07:09:44+00:00</updated>
<author>
<name>Johan Hovold</name>
<email>johan@kernel.org</email>
</author>
<published>2018-08-27T08:21:49+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=5d1e9c2212ea6b4dd735e4fc3dd6279a365d5d10'/>
<id>urn:sha1:5d1e9c2212ea6b4dd735e4fc3dd6279a365d5d10</id>
<content type='text'>
Use the new of_get_compatible_child() helper to lookup the nfc child
node instead of using of_find_compatible_node(), which searches the
entire tree from a given start node and thus can return an unrelated
(i.e. non-child) node.

This also addresses a potential use-after-free (e.g. after probe
deferral) as the tree-wide helper drops a reference to its first
argument (i.e. the node of the device being probed).

While at it, also fix a related nfc-node reference leak.

Fixes: f88fc122cc34 ("mtd: nand: Cleanup/rework the atmel_nand driver")
Cc: stable &lt;stable@vger.kernel.org&gt;     # 4.11
Cc: Nicolas Ferre &lt;nicolas.ferre@microchip.com&gt;
Cc: Josh Wu &lt;rainyfeeling@outlook.com&gt;
Cc: Boris Brezillon &lt;boris.brezillon@bootlin.com&gt;
Signed-off-by: Johan Hovold &lt;johan@kernel.org&gt;
Signed-off-by: Boris Brezillon &lt;boris.brezillon@bootlin.com&gt;
</content>
</entry>
<entry>
<title>mtd: rawnand: atmel: Fix potential NULL pointer dereference</title>
<updated>2018-10-03T09:12:25+00:00</updated>
<author>
<name>Gustavo A. R. Silva</name>
<email>gustavo@embeddedor.com</email>
</author>
<published>2018-09-18T13:55:55+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=fbed20280d912449cfb40c382cb55e3d11502587'/>
<id>urn:sha1:fbed20280d912449cfb40c382cb55e3d11502587</id>
<content type='text'>
There is a potential execution path in which function
of_find_compatible_node() returns NULL. In such a case,
we end up having a NULL pointer dereference when accessing
pointer *nfc_np* in function of_clk_get().

So, we better don't take any chances and fix this by null
checking pointer *nfc_np* before calling of_clk_get().

Addresses-Coverity-ID: 1473052 ("Dereference null return value")
Fixes: f88fc122cc34 ("mtd: nand: Cleanup/rework the atmel_nand driver")
Signed-off-by: Gustavo A. R. Silva &lt;gustavo@embeddedor.com&gt;
Reviewed-by: Boris Brezillon &lt;boris.brezillon@bootlin.com&gt;
Acked-by: Tudor Ambarus &lt;tudor.ambarus@microchip.com&gt;
Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
</content>
</entry>
<entry>
<title>mtd: rawnand: Deprecate -&gt;chip_delay</title>
<updated>2018-10-03T09:12:25+00:00</updated>
<author>
<name>Boris Brezillon</name>
<email>boris.brezillon@bootlin.com</email>
</author>
<published>2018-09-06T22:38:41+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=3cece3abebda068e55e19302a6f0fa60cf553737'/>
<id>urn:sha1:3cece3abebda068e55e19302a6f0fa60cf553737</id>
<content type='text'>
The wait timeouts and delays are directly extracted from the NAND
timings and -&gt;chip_delay is only used in legacy path, so let's move it
to the nand_legacy struct to make it clear.

Signed-off-by: Boris Brezillon &lt;boris.brezillon@bootlin.com&gt;
Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
</content>
</entry>
<entry>
<title>mtd: rawnand: Deprecate -&gt;dev_ready() and -&gt;waitfunc()</title>
<updated>2018-10-03T09:12:25+00:00</updated>
<author>
<name>Boris Brezillon</name>
<email>boris.brezillon@bootlin.com</email>
</author>
<published>2018-09-06T22:38:37+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=8395b753d7cad2beb03d374621cc8851f1cb4e01'/>
<id>urn:sha1:8395b753d7cad2beb03d374621cc8851f1cb4e01</id>
<content type='text'>
Those hooks have been replaced by -&gt;exec_op(). Move them to the
nand_legacy struct.

Signed-off-by: Boris Brezillon &lt;boris.brezillon@bootlin.com&gt;
Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
</content>
</entry>
<entry>
<title>mtd: rawnand: Deprecate -&gt;cmd_ctrl() and -&gt;cmdfunc()</title>
<updated>2018-10-03T09:12:25+00:00</updated>
<author>
<name>Boris Brezillon</name>
<email>boris.brezillon@bootlin.com</email>
</author>
<published>2018-09-06T22:38:36+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=bf6065c6c08fa3ed7bdf8d28b8062ce8e58c1543'/>
<id>urn:sha1:bf6065c6c08fa3ed7bdf8d28b8062ce8e58c1543</id>
<content type='text'>
Those hooks have been replaced by -&gt;exec_op(). Move them to the
nand_legacy struct.

Signed-off-by: Boris Brezillon &lt;boris.brezillon@bootlin.com&gt;
Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
</content>
</entry>
<entry>
<title>mtd: rawnand: Deprecate -&gt;{read, write}_{byte, buf}() hooks</title>
<updated>2018-10-03T09:12:25+00:00</updated>
<author>
<name>Boris Brezillon</name>
<email>boris.brezillon@bootlin.com</email>
</author>
<published>2018-09-06T22:38:35+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=716bbbabcc68c2b0e1b805d369c0bd58f4fdea30'/>
<id>urn:sha1:716bbbabcc68c2b0e1b805d369c0bd58f4fdea30</id>
<content type='text'>
All those hooks have been replaced by -&gt;exec_op(). Move them to the
nand_legacy struct.

Signed-off-by: Boris Brezillon &lt;boris.brezillon@bootlin.com&gt;
Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
</content>
</entry>
<entry>
<title>mtd: rawnand: Pass a nand_chip object to chip-&gt;setup_data_interface()</title>
<updated>2018-10-03T09:12:25+00:00</updated>
<author>
<name>Boris Brezillon</name>
<email>boris.brezillon@bootlin.com</email>
</author>
<published>2018-09-06T12:05:33+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=858838b87ef542c35b5401a6469d162d103d1d8f'/>
<id>urn:sha1:858838b87ef542c35b5401a6469d162d103d1d8f</id>
<content type='text'>
Let's make the raw NAND API consistent by patching all helpers and
hooks to take a nand_chip object instead of an mtd_info one or
remove the mtd_info object when both are passed.

Let's tackle the chip-&gt;setup_data_interface() hook.

Signed-off-by: Boris Brezillon &lt;boris.brezillon@bootlin.com&gt;
Signed-off-by: Miquel Raynal &lt;miquel.raynal@bootlin.com&gt;
</content>
</entry>
</feed>
