* [linux-fslc-imx][4.1-2.0.x-imx][PATCH 0/2] fix fsl-quadspi merged in from mainline
@ 2017-09-27 12:30 Max Krummenacher
2017-09-27 12:30 ` [linux-fslc-imx][4.1-2.0.x-imx][PATCH 1/2] Revert "mtd: fsl-quadspi: fix macro collision problems with READ/WRITE" Max Krummenacher
2017-09-27 12:30 ` [linux-fslc-imx][4.1-2.0.x-imx][PATCH 2/2] mtd: " Max Krummenacher
0 siblings, 2 replies; 4+ messages in thread
From: Max Krummenacher @ 2017-09-27 12:30 UTC (permalink / raw)
To: meta-freescale; +Cc: Max Krummenacher
With the merge to 4.1.44 fsl-quadspi.c got changes from the incompatible
driver in mainline.
Revert the merged in changes and apply a fix which was addressesed by
the backported mainline patch.
This fixes a bunch of errors related to the LUT0/ LUT1 macros,
seen when e.g. configuring for imx_v7_defconfig:
drivers/mtd/spi-nor/fsl-quadspi.c:196:5: error: 'LUT_0' undeclared here (not in a function)
((LUT_##ins) << INSTR0_SHIFT))
^
...
Max Krummenacher (2):
Revert "mtd: fsl-quadspi: fix macro collision problems with
READ/WRITE"
mtd: fsl-quadspi: fix macro collision problems with READ/WRITE"
drivers/mtd/spi-nor/fsl-quadspi.c | 91 ++++++++++++++++++++-------------------
1 file changed, 46 insertions(+), 45 deletions(-)
--
2.7.5
^ permalink raw reply [flat|nested] 4+ messages in thread
* [linux-fslc-imx][4.1-2.0.x-imx][PATCH 1/2] Revert "mtd: fsl-quadspi: fix macro collision problems with READ/WRITE"
2017-09-27 12:30 [linux-fslc-imx][4.1-2.0.x-imx][PATCH 0/2] fix fsl-quadspi merged in from mainline Max Krummenacher
@ 2017-09-27 12:30 ` Max Krummenacher
2017-09-27 12:30 ` [linux-fslc-imx][4.1-2.0.x-imx][PATCH 2/2] mtd: " Max Krummenacher
1 sibling, 0 replies; 4+ messages in thread
From: Max Krummenacher @ 2017-09-27 12:30 UTC (permalink / raw)
To: meta-freescale; +Cc: Max Krummenacher
This reverts commit 9386aae907d9ee79d54640f09d70909393e0ddeb.
The fsl-quadspi from mainline is implemented differently, so do not
use it from the mainline backport.
Required to also revert merge conflict resolution.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
---
drivers/mtd/spi-nor/fsl-quadspi.c | 23 +++++++++--------------
1 file changed, 9 insertions(+), 14 deletions(-)
diff --git a/drivers/mtd/spi-nor/fsl-quadspi.c b/drivers/mtd/spi-nor/fsl-quadspi.c
index 50f3b08..f769c5a 100644
--- a/drivers/mtd/spi-nor/fsl-quadspi.c
+++ b/drivers/mtd/spi-nor/fsl-quadspi.c
@@ -164,15 +164,15 @@
#define LUT_MODE 4
#define LUT_MODE2 5
#define LUT_MODE4 6
-#define LUT_FSL_READ 7
-#define LUT_FSL_WRITE 8
+#define LUT_READ 7
+#define LUT_WRITE 8
#define LUT_JMP_ON_CS 9
#define LUT_ADDR_DDR 10
#define LUT_MODE_DDR 11
#define LUT_MODE2_DDR 12
#define LUT_MODE4_DDR 13
-#define LUT_FSL_READ_DDR 14
-#define LUT_FSL_WRITE_DDR 15
+#define LUT_READ_DDR 14
+#define LUT_WRITE_DDR 15
#define LUT_DATA_LEARN 16
/*
@@ -449,11 +449,6 @@ static void fsl_qspi_init_lut(struct fsl_qspi *q)
}
}
- writel(LUT0(CMD, PAD1, cmd) | LUT1(ADDR, PAD1, addrlen),
- base + QUADSPI_LUT(lut_base));
- writel(LUT0(DUMMY, PAD1, dummy) | LUT1(FSL_READ, PAD4, rxfifo),
- base + QUADSPI_LUT(lut_base + 1));
-
/* Write enable */
lut_base = SEQID_WREN * 4;
writel(LUT0(CMD, PAD1, SPINOR_OP_WREN), base + QUADSPI_LUT(lut_base));
@@ -462,11 +457,11 @@ static void fsl_qspi_init_lut(struct fsl_qspi *q)
lut_base = SEQID_PP * 4;
writel(LUT0(CMD, PAD1, nor->program_opcode) | LUT1(ADDR, PAD1, addrlen),
base + QUADSPI_LUT(lut_base));
- writel(LUT0(FSL_WRITE, PAD1, 0), base + QUADSPI_LUT(lut_base + 1));
+ writel(LUT0(WRITE, PAD1, 0), base + QUADSPI_LUT(lut_base + 1));
/* Read Status */
lut_base = SEQID_RDSR * 4;
- writel(LUT0(CMD, PAD1, SPINOR_OP_RDSR) | LUT1(FSL_READ, PAD1, 0x1),
+ writel(LUT0(CMD, PAD1, SPINOR_OP_RDSR) | LUT1(READ, PAD1, 0x1),
base + QUADSPI_LUT(lut_base));
/* Erase a sector */
@@ -481,17 +476,17 @@ static void fsl_qspi_init_lut(struct fsl_qspi *q)
/* READ ID */
lut_base = SEQID_RDID * 4;
- writel(LUT0(CMD, PAD1, SPINOR_OP_RDID) | LUT1(FSL_READ, PAD1, 0x8),
+ writel(LUT0(CMD, PAD1, SPINOR_OP_RDID) | LUT1(READ, PAD1, 0x8),
base + QUADSPI_LUT(lut_base));
/* Write Register */
lut_base = SEQID_WRSR * 4;
- writel(LUT0(CMD, PAD1, SPINOR_OP_WRSR) | LUT1(FSL_WRITE, PAD1, 0x2),
+ writel(LUT0(CMD, PAD1, SPINOR_OP_WRSR) | LUT1(WRITE, PAD1, 0x2),
base + QUADSPI_LUT(lut_base));
/* Read Configuration Register */
lut_base = SEQID_RDCR * 4;
- writel(LUT0(CMD, PAD1, SPINOR_OP_RDCR) | LUT1(FSL_READ, PAD1, 0x1),
+ writel(LUT0(CMD, PAD1, SPINOR_OP_RDCR) | LUT1(READ, PAD1, 0x1),
base + QUADSPI_LUT(lut_base));
/* Write disable */
--
2.7.5
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [linux-fslc-imx][4.1-2.0.x-imx][PATCH 2/2] mtd: fsl-quadspi: fix macro collision problems with READ/WRITE"
2017-09-27 12:30 [linux-fslc-imx][4.1-2.0.x-imx][PATCH 0/2] fix fsl-quadspi merged in from mainline Max Krummenacher
2017-09-27 12:30 ` [linux-fslc-imx][4.1-2.0.x-imx][PATCH 1/2] Revert "mtd: fsl-quadspi: fix macro collision problems with READ/WRITE" Max Krummenacher
@ 2017-09-27 12:30 ` Max Krummenacher
2017-09-30 12:41 ` Otavio Salvador
1 sibling, 1 reply; 4+ messages in thread
From: Max Krummenacher @ 2017-09-27 12:30 UTC (permalink / raw)
To: meta-freescale; +Cc: Max Krummenacher
Mainline commit 9386aae907d9ee79d54640f09d70909393e0ddeb addresses
macro collisions, however the mainline and downstream kernel driver
do not match.
Fix the issue addressed in mainline in the downstream codebase.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
---
drivers/mtd/spi-nor/fsl-quadspi.c | 78 +++++++++++++++++++++------------------
1 file changed, 42 insertions(+), 36 deletions(-)
diff --git a/drivers/mtd/spi-nor/fsl-quadspi.c b/drivers/mtd/spi-nor/fsl-quadspi.c
index f769c5a..09bc90f 100644
--- a/drivers/mtd/spi-nor/fsl-quadspi.c
+++ b/drivers/mtd/spi-nor/fsl-quadspi.c
@@ -193,7 +193,7 @@
/* Macros for constructing the LUT register. */
#define LUT0(ins, pad, opr) \
(((opr) << OPRND0_SHIFT) | ((LUT_##pad) << PAD0_SHIFT) | \
- ((LUT_##ins) << INSTR0_SHIFT))
+ ((ins) << INSTR0_SHIFT))
#define LUT1(ins, pad, opr) (LUT0(ins, pad, opr) << OPRND1_SHIFT)
@@ -243,10 +243,10 @@ struct lut_desc_pair current_lut_pair;
static const struct lut_desc_pair dynamic_lut_table[] = {
/* VCR RD/WR pair */
- { {SPINOR_OP_RD_VCR, {LUT0(CMD, PAD1, SPINOR_OP_RD_EVCR) |
- LUT1(READ, PAD1, 0x1)} },
- {SPINOR_OP_WR_VCR, {LUT0(CMD, PAD1, SPINOR_OP_WD_EVCR) |
- LUT1(WRITE, PAD1, 0x1)} },
+ { {SPINOR_OP_RD_VCR, {LUT0(LUT_CMD, PAD1, SPINOR_OP_RD_EVCR) |
+ LUT1(LUT_READ, PAD1, 0x1)} },
+ {SPINOR_OP_WR_VCR, {LUT0(LUT_CMD, PAD1, SPINOR_OP_WD_EVCR) |
+ LUT1(LUT_WRITE, PAD1, 0x1)} },
},
{/* sentinel */},
};
@@ -409,11 +409,11 @@ static void fsl_qspi_init_lut(struct fsl_qspi *q)
if (nor->flash_read == SPI_NOR_QUAD) {
if (op == SPINOR_OP_READ_1_1_4 || op == SPINOR_OP_READ4_1_1_4) {
/* read mode : 1-1-4 */
- writel(LUT0(CMD, PAD1, op) | LUT1(ADDR, PAD1, addrlen),
- base + QUADSPI_LUT(lut_base));
+ writel(LUT0(LUT_CMD, PAD1, op) | LUT1(LUT_ADDR, PAD1,
+ addrlen), base + QUADSPI_LUT(lut_base));
- writel(LUT0(DUMMY, PAD1, dm) | LUT1(READ, PAD4, rxfifo),
- base + QUADSPI_LUT(lut_base + 1));
+ writel(LUT0(LUT_DUMMY, PAD1, dm) | LUT1(LUT_READ, PAD4,
+ rxfifo), base + QUADSPI_LUT(lut_base + 1));
} else {
dev_err(nor->dev, "Unsupported opcode : 0x%.2x\n", op);
}
@@ -421,28 +421,28 @@ static void fsl_qspi_init_lut(struct fsl_qspi *q)
if (op == SPINOR_OP_READ_1_4_4_D ||
op == SPINOR_OP_READ4_1_4_4_D) {
/* read mode : 1-4-4, such as Spansion s25fl128s. */
- writel(LUT0(CMD, PAD1, op)
- | LUT1(ADDR_DDR, PAD4, addrlen),
+ writel(LUT0(LUT_CMD, PAD1, op)
+ | LUT1(LUT_ADDR_DDR, PAD4, addrlen),
base + QUADSPI_LUT(lut_base));
- writel(LUT0(MODE_DDR, PAD4, 0xff)
- | LUT1(DUMMY, PAD1, dm),
+ writel(LUT0(LUT_MODE_DDR, PAD4, 0xff)
+ | LUT1(LUT_DUMMY, PAD1, dm),
base + QUADSPI_LUT(lut_base + 1));
- writel(LUT0(READ_DDR, PAD4, rxfifo)
- | LUT1(JMP_ON_CS, PAD1, 0),
+ writel(LUT0(LUT_READ_DDR, PAD4, rxfifo)
+ | LUT1(LUT_JMP_ON_CS, PAD1, 0),
base + QUADSPI_LUT(lut_base + 2));
} else if (op == SPINOR_OP_READ_1_1_4_D) {
/* read mode : 1-1-4, such as Micron N25Q256A. */
- writel(LUT0(CMD, PAD1, op)
- | LUT1(ADDR_DDR, PAD1, addrlen),
+ writel(LUT0(LUT_CMD, PAD1, op)
+ | LUT1(LUT_ADDR_DDR, PAD1, addrlen),
base + QUADSPI_LUT(lut_base));
- writel(LUT0(DUMMY, PAD1, dm)
- | LUT1(READ_DDR, PAD4, rxfifo),
+ writel(LUT0(LUT_DUMMY, PAD1, dm)
+ | LUT1(LUT_READ_DDR, PAD4, rxfifo),
base + QUADSPI_LUT(lut_base + 1));
- writel(LUT0(JMP_ON_CS, PAD1, 0),
+ writel(LUT0(LUT_JMP_ON_CS, PAD1, 0),
base + QUADSPI_LUT(lut_base + 2));
} else {
dev_err(nor->dev, "Unsupported opcode : 0x%.2x\n", op);
@@ -451,63 +451,69 @@ static void fsl_qspi_init_lut(struct fsl_qspi *q)
/* Write enable */
lut_base = SEQID_WREN * 4;
- writel(LUT0(CMD, PAD1, SPINOR_OP_WREN), base + QUADSPI_LUT(lut_base));
+ writel(LUT0(LUT_CMD, PAD1, SPINOR_OP_WREN),
+ base + QUADSPI_LUT(lut_base));
/* Page Program */
lut_base = SEQID_PP * 4;
- writel(LUT0(CMD, PAD1, nor->program_opcode) | LUT1(ADDR, PAD1, addrlen),
- base + QUADSPI_LUT(lut_base));
- writel(LUT0(WRITE, PAD1, 0), base + QUADSPI_LUT(lut_base + 1));
+ writel(LUT0(LUT_CMD, PAD1, nor->program_opcode) | LUT1(LUT_ADDR, PAD1,
+ addrlen), base + QUADSPI_LUT(lut_base));
+ writel(LUT0(LUT_WRITE, PAD1, 0), base + QUADSPI_LUT(lut_base + 1));
/* Read Status */
lut_base = SEQID_RDSR * 4;
- writel(LUT0(CMD, PAD1, SPINOR_OP_RDSR) | LUT1(READ, PAD1, 0x1),
+ writel(LUT0(LUT_CMD, PAD1, SPINOR_OP_RDSR) | LUT1(LUT_READ, PAD1, 0x1),
base + QUADSPI_LUT(lut_base));
/* Erase a sector */
lut_base = SEQID_SE * 4;
- writel(LUT0(CMD, PAD1, nor->erase_opcode) | LUT1(ADDR, PAD1, addrlen),
- base + QUADSPI_LUT(lut_base));
+ writel(LUT0(LUT_CMD, PAD1, nor->erase_opcode) | LUT1(LUT_ADDR, PAD1,
+ addrlen), base + QUADSPI_LUT(lut_base));
/* Erase the whole chip */
lut_base = SEQID_CHIP_ERASE * 4;
- writel(LUT0(CMD, PAD1, SPINOR_OP_CHIP_ERASE),
+ writel(LUT0(LUT_CMD, PAD1, SPINOR_OP_CHIP_ERASE),
base + QUADSPI_LUT(lut_base));
/* READ ID */
lut_base = SEQID_RDID * 4;
- writel(LUT0(CMD, PAD1, SPINOR_OP_RDID) | LUT1(READ, PAD1, 0x8),
+ writel(LUT0(LUT_CMD, PAD1, SPINOR_OP_RDID) | LUT1(LUT_READ, PAD1, 0x8),
base + QUADSPI_LUT(lut_base));
/* Write Register */
lut_base = SEQID_WRSR * 4;
- writel(LUT0(CMD, PAD1, SPINOR_OP_WRSR) | LUT1(WRITE, PAD1, 0x2),
+ writel(LUT0(LUT_CMD, PAD1, SPINOR_OP_WRSR) | LUT1(LUT_WRITE, PAD1, 0x2),
base + QUADSPI_LUT(lut_base));
/* Read Configuration Register */
lut_base = SEQID_RDCR * 4;
- writel(LUT0(CMD, PAD1, SPINOR_OP_RDCR) | LUT1(READ, PAD1, 0x1),
+ writel(LUT0(LUT_CMD, PAD1, SPINOR_OP_RDCR) | LUT1(LUT_READ, PAD1, 0x1),
base + QUADSPI_LUT(lut_base));
/* Write disable */
lut_base = SEQID_WRDI * 4;
- writel(LUT0(CMD, PAD1, SPINOR_OP_WRDI), base + QUADSPI_LUT(lut_base));
+ writel(LUT0(LUT_CMD, PAD1, SPINOR_OP_WRDI),
+ base + QUADSPI_LUT(lut_base));
/* Enter 4 Byte Mode (Micron) */
lut_base = SEQID_EN4B * 4;
- writel(LUT0(CMD, PAD1, SPINOR_OP_EN4B), base + QUADSPI_LUT(lut_base));
+ writel(LUT0(LUT_CMD, PAD1, SPINOR_OP_EN4B),
+ base + QUADSPI_LUT(lut_base));
/* Enter 4 Byte Mode (Spansion) */
lut_base = SEQID_BRWR * 4;
- writel(LUT0(CMD, PAD1, SPINOR_OP_BRWR), base + QUADSPI_LUT(lut_base));
+ writel(LUT0(LUT_CMD, PAD1, SPINOR_OP_BRWR),
+ base + QUADSPI_LUT(lut_base));
/* Read EVCR register */
lut_base = SEQID_RD_EVCR * 4;
- writel(LUT0(CMD, PAD1, SPINOR_OP_RD_EVCR), base + QUADSPI_LUT(lut_base));
+ writel(LUT0(LUT_CMD, PAD1, SPINOR_OP_RD_EVCR),
+ base + QUADSPI_LUT(lut_base));
/* Write EVCR register */
lut_base = SEQID_WD_EVCR * 4;
- writel(LUT0(CMD, PAD1, SPINOR_OP_WD_EVCR), base + QUADSPI_LUT(lut_base));
+ writel(LUT0(LUT_CMD, PAD1, SPINOR_OP_WD_EVCR),
+ base + QUADSPI_LUT(lut_base));
fsl_qspi_lock_lut(q);
}
--
2.7.5
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [linux-fslc-imx][4.1-2.0.x-imx][PATCH 2/2] mtd: fsl-quadspi: fix macro collision problems with READ/WRITE"
2017-09-27 12:30 ` [linux-fslc-imx][4.1-2.0.x-imx][PATCH 2/2] mtd: " Max Krummenacher
@ 2017-09-30 12:41 ` Otavio Salvador
0 siblings, 0 replies; 4+ messages in thread
From: Otavio Salvador @ 2017-09-30 12:41 UTC (permalink / raw)
To: Max Krummenacher; +Cc: meta-freescale, Max Krummenacher
On Wed, Sep 27, 2017 at 9:30 AM, Max Krummenacher <max.oss.09@gmail.com> wrote:
> Mainline commit 9386aae907d9ee79d54640f09d70909393e0ddeb addresses
> macro collisions, however the mainline and downstream kernel driver
> do not match.
>
> Fix the issue addressed in mainline in the downstream codebase.
>
> Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Both patches were applied to the recipe. Please send the kernel bump.
--
Otavio Salvador O.S. Systems
http://www.ossystems.com.br http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854 Mobile: +1 (347) 903-9750
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-09-30 12:41 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-09-27 12:30 [linux-fslc-imx][4.1-2.0.x-imx][PATCH 0/2] fix fsl-quadspi merged in from mainline Max Krummenacher
2017-09-27 12:30 ` [linux-fslc-imx][4.1-2.0.x-imx][PATCH 1/2] Revert "mtd: fsl-quadspi: fix macro collision problems with READ/WRITE" Max Krummenacher
2017-09-27 12:30 ` [linux-fslc-imx][4.1-2.0.x-imx][PATCH 2/2] mtd: " Max Krummenacher
2017-09-30 12:41 ` Otavio Salvador
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.