From: Yicong Yang <yangyicong@hisilicon.com> To: <broonie@kernel.org>, <tudor.ambarus@microchip.com>, <linux-spi@vger.kernel.org>, <linux-mtd@lists.infradead.org> Cc: <john.garry@huawei.com>, <miquel.raynal@bootlin.com>, <richard@nod.at>, <vigneshr@ti.com> Subject: [RFC PATCH 2/3] mtd: spi-nor: Add prepare/unprepare support for spimem device Date: Thu, 21 May 2020 19:23:50 +0800 [thread overview] Message-ID: <1590060231-23242-3-git-send-email-yangyicong@hisilicon.com> (raw) In-Reply-To: <1590060231-23242-1-git-send-email-yangyicong@hisilicon.com> spi-nor flash's read/write/erase/lock/unlock may be composed of a set of operations, and some prepare/unprepare works need to be done before/ after these operations in spi_nor_{lock, unlock}_and_{prep, unprep}(). Previously we only call spi-nor controllers' prepare/unprepare method in the functions, without spimem devices'. Add spimem devices' prepare/unprepare support. Call spi_mem_{prepare, unprepare}() function if it's a spimem device. Signed-off-by: Yicong Yang <yangyicong@hisilicon.com> --- drivers/mtd/spi-nor/core.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c index cc68ea8..3a7e40a 100644 --- a/drivers/mtd/spi-nor/core.c +++ b/drivers/mtd/spi-nor/core.c @@ -1103,7 +1103,9 @@ int spi_nor_lock_and_prep(struct spi_nor *nor) mutex_lock(&nor->lock); - if (nor->controller_ops && nor->controller_ops->prepare) { + if (nor->spimem) { + ret = spi_mem_prepare(nor->spimem); + } else if (nor->controller_ops && nor->controller_ops->prepare) { ret = nor->controller_ops->prepare(nor); if (ret) { mutex_unlock(&nor->lock); @@ -1115,7 +1117,9 @@ int spi_nor_lock_and_prep(struct spi_nor *nor) void spi_nor_unlock_and_unprep(struct spi_nor *nor) { - if (nor->controller_ops && nor->controller_ops->unprepare) + if (nor->spimem) + spi_mem_unprepare(nor->spimem); + else if (nor->controller_ops && nor->controller_ops->unprepare) nor->controller_ops->unprepare(nor); mutex_unlock(&nor->lock); } -- 2.8.1
WARNING: multiple messages have this Message-ID (diff)
From: Yicong Yang <yangyicong@hisilicon.com> To: <broonie@kernel.org>, <tudor.ambarus@microchip.com>, <linux-spi@vger.kernel.org>, <linux-mtd@lists.infradead.org> Cc: richard@nod.at, john.garry@huawei.com, vigneshr@ti.com, miquel.raynal@bootlin.com Subject: [RFC PATCH 2/3] mtd: spi-nor: Add prepare/unprepare support for spimem device Date: Thu, 21 May 2020 19:23:50 +0800 [thread overview] Message-ID: <1590060231-23242-3-git-send-email-yangyicong@hisilicon.com> (raw) In-Reply-To: <1590060231-23242-1-git-send-email-yangyicong@hisilicon.com> spi-nor flash's read/write/erase/lock/unlock may be composed of a set of operations, and some prepare/unprepare works need to be done before/ after these operations in spi_nor_{lock, unlock}_and_{prep, unprep}(). Previously we only call spi-nor controllers' prepare/unprepare method in the functions, without spimem devices'. Add spimem devices' prepare/unprepare support. Call spi_mem_{prepare, unprepare}() function if it's a spimem device. Signed-off-by: Yicong Yang <yangyicong@hisilicon.com> --- drivers/mtd/spi-nor/core.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c index cc68ea8..3a7e40a 100644 --- a/drivers/mtd/spi-nor/core.c +++ b/drivers/mtd/spi-nor/core.c @@ -1103,7 +1103,9 @@ int spi_nor_lock_and_prep(struct spi_nor *nor) mutex_lock(&nor->lock); - if (nor->controller_ops && nor->controller_ops->prepare) { + if (nor->spimem) { + ret = spi_mem_prepare(nor->spimem); + } else if (nor->controller_ops && nor->controller_ops->prepare) { ret = nor->controller_ops->prepare(nor); if (ret) { mutex_unlock(&nor->lock); @@ -1115,7 +1117,9 @@ int spi_nor_lock_and_prep(struct spi_nor *nor) void spi_nor_unlock_and_unprep(struct spi_nor *nor) { - if (nor->controller_ops && nor->controller_ops->unprepare) + if (nor->spimem) + spi_mem_unprepare(nor->spimem); + else if (nor->controller_ops && nor->controller_ops->unprepare) nor->controller_ops->unprepare(nor); mutex_unlock(&nor->lock); } -- 2.8.1 ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/
next prev parent reply other threads:[~2020-05-21 11:24 UTC|newest] Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-05-21 11:23 [RFC PATCH 0/3] Add prepare/unprepare method in spi_controller_mem_ops Yicong Yang 2020-05-21 11:23 ` Yicong Yang 2020-05-21 11:23 ` [RFC PATCH 1/3] spi: spi-mem: add optional prepare/unprepare methods " Yicong Yang 2020-05-21 11:23 ` Yicong Yang 2020-05-21 11:23 ` Yicong Yang [this message] 2020-05-21 11:23 ` [RFC PATCH 2/3] mtd: spi-nor: Add prepare/unprepare support for spimem device Yicong Yang 2020-05-21 11:23 ` [RFC PATCH 3/3] spi: hisi-sfc-v3xx: Add prepare/unprepare methods to avoid race condition Yicong Yang 2020-05-21 11:23 ` Yicong Yang 2020-05-25 16:14 ` Pratyush Yadav 2020-05-25 16:14 ` Pratyush Yadav 2020-05-26 9:27 ` Boris Brezillon 2020-05-26 9:27 ` Boris Brezillon 2020-05-26 9:30 ` Boris Brezillon 2020-05-26 9:30 ` Boris Brezillon 2020-05-27 8:18 ` Yicong Yang 2020-05-27 8:18 ` Yicong Yang 2020-05-27 9:33 ` Pratyush Yadav 2020-05-27 9:33 ` Pratyush Yadav 2020-05-27 10:33 ` Yicong Yang 2020-05-27 10:33 ` Yicong Yang 2020-05-26 9:43 ` Boris Brezillon 2020-05-26 9:43 ` Boris Brezillon 2020-05-27 8:55 ` Yicong Yang 2020-05-27 8:55 ` Yicong Yang 2020-05-27 9:20 ` Boris Brezillon 2020-05-27 9:20 ` Boris Brezillon 2020-05-27 10:16 ` Yicong Yang 2020-05-27 10:16 ` Yicong Yang
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=1590060231-23242-3-git-send-email-yangyicong@hisilicon.com \ --to=yangyicong@hisilicon.com \ --cc=broonie@kernel.org \ --cc=john.garry@huawei.com \ --cc=linux-mtd@lists.infradead.org \ --cc=linux-spi@vger.kernel.org \ --cc=miquel.raynal@bootlin.com \ --cc=richard@nod.at \ --cc=tudor.ambarus@microchip.com \ --cc=vigneshr@ti.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.