mtd: spi-nor: Separate preparation and locking
authorMiquel Raynal <miquel.raynal@bootlin.com>
Tue, 28 Mar 2023 15:41:01 +0000 (17:41 +0200)
committerTudor Ambarus <tudor.ambarus@linaro.org>
Wed, 29 Mar 2023 10:46:07 +0000 (13:46 +0300)
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>
drivers/mtd/spi-nor/core.c

index 3a7a407..e80677d 100644 (file)
@@ -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)