FAILED: patch "[PATCH] mtd: rawnand: arasan: Fix clock rate in NV-DDR" failed to apply to 5.10-stable tree
Subsystems (4)
[email protected]
maintainerThe patch below does not apply to the 5.10-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From e16eceea863b417fd328588b1be1a79de0bc937f Mon Sep 17 00:00:00 2001
From: Olga Kitaina <[email protected]>
Date: Tue, 28 Jun 2022 21:18:24 +0530
Subject: [PATCH] mtd: rawnand: arasan: Fix clock rate in NV-DDR
According to the Arasan NAND controller spec, the flash clock rate for SDR must be <= 100 MHz, while for NV-DDR it must be the same as the rate of the CLK line for the mode. The driver previously always set 100 MHz for NV-DDR, which would result in incorrect behavior for NV-DDR modes 0-4.
The appropriate clock rate can be calculated from the NV-DDR timing parameters as 1/tCK, or for rates measured in picoseconds, 10^12 / nand_nvddr_timings->tCK_min.
drivers/mtd/nand/raw/arasan-nand-controller.c +7 -1
@@ -1043,7 +1043,13 @@ static int anfc_setup_interface(struct nand_chip *chip, int target,DQS_BUFF_SEL_OUT (dqs_mode); } - anand->clk =ANFC_XLNX_SDR_DFLT_CORE_CLK ; +if (nand_interface_is_sdr (conf)) { + anand->clk =ANFC_XLNX_SDR_DFLT_CORE_CLK ; + }else { +/* ONFI timings are defined in picoseconds */ + anand->clk =div_u64 ((u64 )NSEC_PER_SEC *1000 , + conf->timings.nvddr.tCK_min); + }/* * Due to a hardware bug in the ZynqMP SoC, SDR timing modes 0-1 work