mtd: spi-nor: Separate preparation and locking
While this operation will remain a single function call in the end, let's extract the logic of the [un]prepare calls within their own static helper. We will soon add new flavors of the *_[un]prepare_and_[un]lock() helpers, having the preparation logic outside will save us from duplicating code over and over again. There is no functional change. Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Link: https://lore.kernel.org/r/20230328154105.448540-5-miquel.raynal@bootlin.com Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
This commit is contained in:
parent
3204634772
commit
c154dbd280
@ -1070,24 +1070,40 @@ static void spi_nor_set_4byte_opcodes(struct spi_nor *nor)
|
||||
}
|
||||
}
|
||||
|
||||
int spi_nor_prep_and_lock(struct spi_nor *nor)
|
||||
static int spi_nor_prep(struct spi_nor *nor)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
if (nor->controller_ops && nor->controller_ops->prepare)
|
||||
ret = nor->controller_ops->prepare(nor);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void spi_nor_unprep(struct spi_nor *nor)
|
||||
{
|
||||
if (nor->controller_ops && nor->controller_ops->unprepare)
|
||||
nor->controller_ops->unprepare(nor);
|
||||
}
|
||||
|
||||
int spi_nor_prep_and_lock(struct spi_nor *nor)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = spi_nor_prep(nor);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
mutex_lock(&nor->lock);
|
||||
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void spi_nor_unlock_and_unprep(struct spi_nor *nor)
|
||||
{
|
||||
mutex_unlock(&nor->lock);
|
||||
|
||||
if (nor->controller_ops && nor->controller_ops->unprepare)
|
||||
nor->controller_ops->unprepare(nor);
|
||||
spi_nor_unprep(nor);
|
||||
}
|
||||
|
||||
static u32 spi_nor_convert_addr(struct spi_nor *nor, loff_t addr)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user