diff mbox series

mtd: rawnand: rockchip: reject NVDDR timings when checked

Message ID 20240518033923.5577-2-val@packett.cool (mailing list archive)
State New
Headers show
Series mtd: rawnand: rockchip: reject NVDDR timings when checked | expand

Commit Message

Val Packett May 18, 2024, 3:31 a.m. UTC
.setup_interface first gets called with a negative "target" value
NAND_DATA_IFACE_CHECK_ONLY, in which case an error is expected
if the controller driver does not support the timing mode (NVDDR).

Signed-off-by: Val Packett <val@packett.cool>
---
Hello everyone, first Linux patch from a long time FreeBSD person :)

This was required to get the NAND controller to attach on the random
old RK3066 tablet I'm bringing up mainline on.
---
 drivers/mtd/nand/raw/rockchip-nand-controller.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Miquel Raynal May 18, 2024, 10:44 a.m. UTC | #1
Hi Val,

I might propose a slightly different title which I think better
describes the situation:
"mtd: rawnand: rockchip: ensure NVDDR timings are rejected"

val@packett.cool wrote on Sat, 18 May 2024 00:31:13 -0300:

> .setup_interface first gets called with a negative "target" value

Just as an FYI, the fact that it is negative is an implementation
detail, but you mention the #define of the value below, so that's fine.
 
> NAND_DATA_IFACE_CHECK_ONLY, in which case an error is expected
> if the controller driver does not support the timing mode (NVDDR).
> 

Here I would welcome two tags in order to get this backported as early
as needed in stable kernels:

Cc: stable@vger.kernel.org
Fixes: a9ecc8c814e9 ("mtd: rawnand: Choose the best timings, NV-DDR included")

> Signed-off-by: Val Packett <val@packett.cool>
> ---
> Hello everyone, first Linux patch from a long time FreeBSD person :)
> 
> This was required to get the NAND controller to attach on the random
> old RK3066 tablet I'm bringing up mainline on.

Welcome! The fix looks right besides minor nits in the commit log. I'll
probably take the v2 when it's out after -rc1 has been tagged.

Thanks,
Miquèl
diff mbox series

Patch

diff --git a/drivers/mtd/nand/raw/rockchip-nand-controller.c b/drivers/mtd/nand/raw/rockchip-nand-controller.c
index 7baaef69d..555804476 100644
--- a/drivers/mtd/nand/raw/rockchip-nand-controller.c
+++ b/drivers/mtd/nand/raw/rockchip-nand-controller.c
@@ -420,13 +420,13 @@  static int rk_nfc_setup_interface(struct nand_chip *chip, int target,
 	u32 rate, tc2rw, trwpw, trw2c;
 	u32 temp;
 
-	if (target < 0)
-		return 0;
-
 	timings = nand_get_sdr_timings(conf);
 	if (IS_ERR(timings))
 		return -EOPNOTSUPP;
 
+	if (target < 0)
+		return 0;
+
 	if (IS_ERR(nfc->nfc_clk))
 		rate = clk_get_rate(nfc->ahb_clk);
 	else