From: Frieder Schrempf <frieder.schrempf@exceet.de> To: linux-mtd@lists.infradead.org, boris.brezillon@bootlin.com, linux-spi@vger.kernel.org Cc: dwmw2@infradead.org, computersforpeace@gmail.com, marek.vasut@gmail.com, richard@nod.at, miquel.raynal@bootlin.com, broonie@kernel.org, david.wolfe@nxp.com, fabio.estevam@nxp.com, prabhakar.kushwaha@nxp.com, yogeshnarayan.gaur@nxp.com, han.xu@nxp.com, Frieder Schrempf <frieder.schrempf@exceet.de>, linux-kernel@vger.kernel.org Subject: [PATCH 01/11] spi: spi-mem: Extend the SPI mem interface to set a custom memory name Date: Wed, 30 May 2018 15:14:30 +0200 [thread overview] Message-ID: <1527686082-15142-2-git-send-email-frieder.schrempf@exceet.de> (raw) In-Reply-To: <1527686082-15142-1-git-send-email-frieder.schrempf@exceet.de> When porting (Q)SPI controller drivers from the MTD layer to the SPI layer, the naming scheme for the memory devices changes. To be able to keep compatibility with the old drivers naming scheme, a function is added to the SPI mem interface to let controller drivers set a custom name for the memory. Example for the FSL QSPI driver: Name with the old driver: 21e0000.qspi, or with multiple devices: 21e0000.qspi-0, 21e0000.qspi-1, ... Name with the new driver without spi_mem_get_name: spi4.0 Signed-off-by: Frieder Schrempf <frieder.schrempf@exceet.de> --- drivers/spi/spi-mem.c | 25 +++++++++++++++++++++++++ include/linux/spi/spi-mem.h | 3 +++ 2 files changed, 28 insertions(+) diff --git a/drivers/spi/spi-mem.c b/drivers/spi/spi-mem.c index 990770d..5e9af47 100644 --- a/drivers/spi/spi-mem.c +++ b/drivers/spi/spi-mem.c @@ -311,6 +311,31 @@ int spi_mem_exec_op(struct spi_mem *mem, const struct spi_mem_op *op) EXPORT_SYMBOL_GPL(spi_mem_exec_op); /** + * spi_mem_get_name() - Let drivers using the SPI mem interface specify a + * custom name for the memory to avoid compatibility + * issues with ported drivers. + * @mem: the SPI memory + * + * When porting (Q)SPI controller drivers from the MTD layer to the SPI + * layer, the naming scheme for the memory devices changes. To be able to + * keep compatibility with the old drivers naming scheme, this function can + * be used to get a custom name from the controller driver. + * If no custom name is available, the name of the SPI device is returned. + * + * Return: a char array that contains the name for the flash memory + */ +const char *spi_mem_get_name(struct spi_mem *mem) +{ + struct spi_controller *ctlr = mem->spi->controller; + + if (ctlr->mem_ops && ctlr->mem_ops->get_name) + return ctlr->mem_ops->get_name(mem); + + return dev_name(&mem->spi->dev); +} +EXPORT_SYMBOL_GPL(spi_mem_get_name); + +/** * spi_mem_adjust_op_size() - Adjust the data size of a SPI mem operation to * match controller limitations * @mem: the SPI memory diff --git a/include/linux/spi/spi-mem.h b/include/linux/spi/spi-mem.h index 4fa34a2..f1912d3 100644 --- a/include/linux/spi/spi-mem.h +++ b/include/linux/spi/spi-mem.h @@ -178,6 +178,7 @@ struct spi_controller_mem_ops { const struct spi_mem_op *op); int (*exec_op)(struct spi_mem *mem, const struct spi_mem_op *op); + const char *(*get_name)(struct spi_mem *mem); }; /** @@ -236,6 +237,8 @@ bool spi_mem_supports_op(struct spi_mem *mem, int spi_mem_exec_op(struct spi_mem *mem, const struct spi_mem_op *op); +const char *spi_mem_get_name(struct spi_mem *mem); + int spi_mem_driver_register_with_owner(struct spi_mem_driver *drv, struct module *owner); -- 2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: Frieder Schrempf <frieder.schrempf@exceet.de> To: linux-mtd@lists.infradead.org, boris.brezillon@bootlin.com, linux-spi@vger.kernel.org Cc: yogeshnarayan.gaur@nxp.com, richard@nod.at, prabhakar.kushwaha@nxp.com, Frieder Schrempf <frieder.schrempf@exceet.de>, linux-kernel@vger.kernel.org, marek.vasut@gmail.com, han.xu@nxp.com, broonie@kernel.org, miquel.raynal@bootlin.com, fabio.estevam@nxp.com, david.wolfe@nxp.com, computersforpeace@gmail.com, dwmw2@infradead.org Subject: [PATCH 01/11] spi: spi-mem: Extend the SPI mem interface to set a custom memory name Date: Wed, 30 May 2018 15:14:30 +0200 [thread overview] Message-ID: <1527686082-15142-2-git-send-email-frieder.schrempf@exceet.de> (raw) In-Reply-To: <1527686082-15142-1-git-send-email-frieder.schrempf@exceet.de> When porting (Q)SPI controller drivers from the MTD layer to the SPI layer, the naming scheme for the memory devices changes. To be able to keep compatibility with the old drivers naming scheme, a function is added to the SPI mem interface to let controller drivers set a custom name for the memory. Example for the FSL QSPI driver: Name with the old driver: 21e0000.qspi, or with multiple devices: 21e0000.qspi-0, 21e0000.qspi-1, ... Name with the new driver without spi_mem_get_name: spi4.0 Signed-off-by: Frieder Schrempf <frieder.schrempf@exceet.de> --- drivers/spi/spi-mem.c | 25 +++++++++++++++++++++++++ include/linux/spi/spi-mem.h | 3 +++ 2 files changed, 28 insertions(+) diff --git a/drivers/spi/spi-mem.c b/drivers/spi/spi-mem.c index 990770d..5e9af47 100644 --- a/drivers/spi/spi-mem.c +++ b/drivers/spi/spi-mem.c @@ -311,6 +311,31 @@ int spi_mem_exec_op(struct spi_mem *mem, const struct spi_mem_op *op) EXPORT_SYMBOL_GPL(spi_mem_exec_op); /** + * spi_mem_get_name() - Let drivers using the SPI mem interface specify a + * custom name for the memory to avoid compatibility + * issues with ported drivers. + * @mem: the SPI memory + * + * When porting (Q)SPI controller drivers from the MTD layer to the SPI + * layer, the naming scheme for the memory devices changes. To be able to + * keep compatibility with the old drivers naming scheme, this function can + * be used to get a custom name from the controller driver. + * If no custom name is available, the name of the SPI device is returned. + * + * Return: a char array that contains the name for the flash memory + */ +const char *spi_mem_get_name(struct spi_mem *mem) +{ + struct spi_controller *ctlr = mem->spi->controller; + + if (ctlr->mem_ops && ctlr->mem_ops->get_name) + return ctlr->mem_ops->get_name(mem); + + return dev_name(&mem->spi->dev); +} +EXPORT_SYMBOL_GPL(spi_mem_get_name); + +/** * spi_mem_adjust_op_size() - Adjust the data size of a SPI mem operation to * match controller limitations * @mem: the SPI memory diff --git a/include/linux/spi/spi-mem.h b/include/linux/spi/spi-mem.h index 4fa34a2..f1912d3 100644 --- a/include/linux/spi/spi-mem.h +++ b/include/linux/spi/spi-mem.h @@ -178,6 +178,7 @@ struct spi_controller_mem_ops { const struct spi_mem_op *op); int (*exec_op)(struct spi_mem *mem, const struct spi_mem_op *op); + const char *(*get_name)(struct spi_mem *mem); }; /** @@ -236,6 +237,8 @@ bool spi_mem_supports_op(struct spi_mem *mem, int spi_mem_exec_op(struct spi_mem *mem, const struct spi_mem_op *op); +const char *spi_mem_get_name(struct spi_mem *mem); + int spi_mem_driver_register_with_owner(struct spi_mem_driver *drv, struct module *owner); -- 2.7.4 ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/
next prev parent reply other threads:[~2018-05-30 13:28 UTC|newest] Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-05-30 13:14 [PATCH 00/11] Port the FSL QSPI driver to the SPI framework Frieder Schrempf 2018-05-30 13:14 ` Frieder Schrempf 2018-05-30 13:14 ` Frieder Schrempf [this message] 2018-05-30 13:14 ` [PATCH 01/11] spi: spi-mem: Extend the SPI mem interface to set a custom memory name Frieder Schrempf 2018-05-30 14:32 ` Boris Brezillon 2018-05-30 15:12 ` Frieder Schrempf 2018-05-30 13:14 ` [PATCH 02/11] mtd: m25p80: Call spi_mem_get_name() to let controller set a custom name Frieder Schrempf 2018-05-30 13:14 ` Frieder Schrempf 2018-05-30 13:14 ` [PATCH 03/11] spi: Add a driver for the Freescale/NXP QuadSPI controller Frieder Schrempf 2018-05-30 13:14 ` Frieder Schrempf 2018-05-30 13:50 ` Yogesh Narayan Gaur 2018-05-30 14:24 ` Boris Brezillon 2018-06-01 9:14 ` Frieder Schrempf 2018-06-01 9:14 ` Frieder Schrempf 2018-05-30 14:58 ` Boris Brezillon 2018-05-30 15:13 ` Frieder Schrempf 2018-05-30 15:13 ` Frieder Schrempf 2018-06-05 15:00 ` Boris Brezillon 2018-06-08 11:54 ` Yogesh Narayan Gaur 2018-06-08 12:51 ` Boris Brezillon 2018-06-11 6:31 ` Yogesh Narayan Gaur 2018-06-11 7:46 ` Boris Brezillon 2018-06-11 9:38 ` Yogesh Narayan Gaur 2018-06-11 10:16 ` Boris Brezillon 2018-06-11 10:21 ` Yogesh Narayan Gaur 2018-06-12 6:42 ` Yogesh Narayan Gaur 2018-06-12 7:13 ` Boris Brezillon 2018-06-12 8:51 ` Yogesh Narayan Gaur 2018-06-15 12:50 ` Boris Brezillon 2018-06-15 13:42 ` Yogesh Narayan Gaur 2018-06-15 13:55 ` Boris Brezillon 2018-06-15 13:58 ` Boris Brezillon 2018-06-18 13:32 ` Yogesh Narayan Gaur 2018-06-18 19:15 ` Boris Brezillon 2018-06-19 7:10 ` Yogesh Narayan Gaur 2018-06-19 7:28 ` Boris Brezillon 2018-06-19 8:31 ` Yogesh Narayan Gaur 2018-06-19 8:46 ` Boris Brezillon 2018-06-26 8:58 ` Frieder Schrempf 2018-06-08 20:27 ` Andy Shevchenko 2018-06-26 12:26 ` Frieder Schrempf 2018-06-26 12:26 ` Frieder Schrempf 2018-06-26 13:18 ` Andy Shevchenko 2018-06-26 13:47 ` Boris Brezillon 2018-06-26 15:42 ` Andy Shevchenko 2018-06-18 19:27 ` Boris Brezillon 2018-05-30 13:14 ` [PATCH 04/11] dt-bindings: spi: Move and adjust the bindings for the fsl-qspi driver Frieder Schrempf 2018-05-30 15:06 ` Boris Brezillon 2018-05-30 15:14 ` Frieder Schrempf 2018-05-30 15:14 ` Frieder Schrempf 2018-05-30 13:14 ` [PATCH 05/11] ARM: dts: Reflect change of FSL QSPI driver and remove unused properties Frieder Schrempf 2018-05-30 13:14 ` Frieder Schrempf 2018-05-30 15:10 ` Boris Brezillon 2018-05-30 15:10 ` Boris Brezillon 2018-06-01 9:27 ` Frieder Schrempf 2018-06-01 9:27 ` Frieder Schrempf 2018-06-01 9:27 ` Frieder Schrempf 2018-05-30 13:14 ` [PATCH 06/11] arm64: " Frieder Schrempf 2018-05-30 13:14 ` Frieder Schrempf 2018-05-30 13:14 ` [PATCH 07/11] ARM: defconfig: Use the new FSL QSPI driver under the SPI framework Frieder Schrempf 2018-05-30 13:14 ` Frieder Schrempf 2018-05-30 13:14 ` Frieder Schrempf 2018-05-30 13:14 ` [PATCH 08/11] mtd: fsl-quadspi: Remove the driver as it was replaced by spi-fsl-qspi.c Frieder Schrempf 2018-05-30 13:14 ` [PATCH 09/11] ARM: dts: ls1021a: Remove fsl,qspi-has-second-chip as it is not used Frieder Schrempf 2018-05-30 13:14 ` [PATCH 09/11] ARM: dts: ls1021a: Remove fsl, qspi-has-second-chip " Frieder Schrempf 2018-05-30 13:14 ` [PATCH 10/11] ARM64: dts: ls1046a: Remove fsl,qspi-has-second-chip " Frieder Schrempf 2018-05-30 13:14 ` [PATCH 10/11] ARM64: dts: ls1046a: Remove fsl, qspi-has-second-chip " Frieder Schrempf 2018-05-30 13:14 ` Frieder Schrempf 2018-05-30 13:14 ` Frieder Schrempf 2018-05-30 13:14 ` [PATCH 11/11] MAINTAINERS: Move the Freescale QSPI driver to the SPI framework Frieder Schrempf 2018-05-30 13:14 ` Frieder Schrempf
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1527686082-15142-2-git-send-email-frieder.schrempf@exceet.de \ --to=frieder.schrempf@exceet.de \ --cc=boris.brezillon@bootlin.com \ --cc=broonie@kernel.org \ --cc=computersforpeace@gmail.com \ --cc=david.wolfe@nxp.com \ --cc=dwmw2@infradead.org \ --cc=fabio.estevam@nxp.com \ --cc=han.xu@nxp.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mtd@lists.infradead.org \ --cc=linux-spi@vger.kernel.org \ --cc=marek.vasut@gmail.com \ --cc=miquel.raynal@bootlin.com \ --cc=prabhakar.kushwaha@nxp.com \ --cc=richard@nod.at \ --cc=yogeshnarayan.gaur@nxp.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.