On 2/20/2024 9:37 PM, Dmitry Baryshkov wrote:
On Tue, 20 Feb 2024 at 17:59, Md Sadre Alam <quic_mdalam@xxxxxxxxxxx> wrote:
On 2/15/2024 8:30 PM, Dmitry Baryshkov wrote:
On Thu, 15 Feb 2024 at 15:53, Md Sadre Alam <quic_mdalam@xxxxxxxxxxx> wrote:
Add qpic_common.c file which hold all the common
qpic APIs which will be used by both qpic raw nand
driver and qpic spi nand driver.
Co-developed-by: Sricharan Ramabadhran <quic_srichara@xxxxxxxxxxx>
Signed-off-by: Sricharan Ramabadhran <quic_srichara@xxxxxxxxxxx>
Co-developed-by: Varadarajan Narayanan <quic_varada@xxxxxxxxxxx>
Signed-off-by: Varadarajan Narayanan <quic_varada@xxxxxxxxxxx>
Signed-off-by: Md Sadre Alam <quic_mdalam@xxxxxxxxxxx>
---
drivers/mtd/nand/Makefile | 1 +
drivers/mtd/nand/qpic_common.c | 786 +++++++++++++++++
drivers/mtd/nand/raw/qcom_nandc.c | 1226 +-------------------------
include/linux/mtd/nand-qpic-common.h | 488 ++++++++++
4 files changed, 1291 insertions(+), 1210 deletions(-)
create mode 100644 drivers/mtd/nand/qpic_common.c
create mode 100644 include/linux/mtd/nand-qpic-common.h
diff --git a/drivers/mtd/nand/Makefile b/drivers/mtd/nand/Makefile
index 19e1291ac4d5..131707a41293 100644
--- a/drivers/mtd/nand/Makefile
+++ b/drivers/mtd/nand/Makefile
@@ -12,3 +12,4 @@ nandcore-$(CONFIG_MTD_NAND_ECC) += ecc.o
nandcore-$(CONFIG_MTD_NAND_ECC_SW_HAMMING) += ecc-sw-hamming.o
nandcore-$(CONFIG_MTD_NAND_ECC_SW_BCH) += ecc-sw-bch.o
nandcore-$(CONFIG_MTD_NAND_ECC_MXIC) += ecc-mxic.o
+obj-y += qpic_common.o
diff --git a/drivers/mtd/nand/qpic_common.c b/drivers/mtd/nand/qpic_common.c
new file mode 100644
index 000000000000..4d74ba888028
--- /dev/null
+++ b/drivers/mtd/nand/qpic_common.c
@@ -0,0 +1,786 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * QPIC Controller common API file.
+ * Copyright (C) 2023 Qualcomm Inc.
+ * Authors: Md sadre Alam <quic_mdalam@xxxxxxxxxxx>
+ * Sricharan R <quic_srichara@xxxxxxxxxxx>
+ * Varadarajan Narayanan <quic_varada@xxxxxxxxxxx>
This is a bit of an exaggeration. You are moving code, not writing new
code. Please retain the existing copyrights for the moved code.
Ok
+ *
+ */
+
+#include <linux/mtd/nand-qpic-common.h>
+
+struct qcom_nand_controller *
+get_qcom_nand_controller(struct nand_chip *chip)
+{
+ return container_of(chip->controller, struct qcom_nand_controller,
+ controller);
+}
+EXPORT_SYMBOL(get_qcom_nand_controller);
NAK for adding functions to the global export namespace without a
proper driver-specific prefix.
Ok, will fix in next patch
Also, a bunch of the code here seems not so well thought. It was fine
for an internal interface, but it doesn't look so good as a common
wrapper. Please consider defining a sensible common code module
interface instead.
QPIC controller will support both raw NAND as well Serial nand interface.
This common API file was the part of raw NAND driver , since for serial
nand most of the APIs from raw nand driver will be re-used that's why i
have created this common API file, so that QPIC serial nand driver
drivers/spi/spi-qpic-snand.c and QPIC raw NAND driver
drivers/mtd/nand/raw/qcom_nandc.c can used these common APIs.
Could you please suggest how I should handle this in batter way.
Yes. Start by designing common accessor functions that form a
sufficient and complete API to access the hardware functionality. A
set of functions blindly moved from the existing driver usually do not
make such an API, because usually nobody cares enough about the driver
internals. It should be something that external user (NAND, SPI, etc)
can use without looking into the actual implementation of these
functions.
Thanks for suggestion. Will make the Common API more generic and
post in next patch.