diff mbox

[2/3] spi: fsl-(e)spi: simplify cleanup code

Message ID 55D9BAE1.1030306@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Heiner Kallweit Aug. 23, 2015, 12:21 p.m. UTC
Now that most cleanup is done automatically the remove functions
can be significantly simplified.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
 drivers/spi/spi-fsl-espi.c |  7 +------
 drivers/spi/spi-fsl-lib.c  | 15 ---------------
 drivers/spi/spi-fsl-lib.h  |  3 ---
 drivers/spi/spi-fsl-spi.c  | 18 +++++++-----------
 4 files changed, 8 insertions(+), 35 deletions(-)

Comments

Mark Brown Aug. 25, 2015, 5:45 p.m. UTC | #1
On Sun, Aug 23, 2015 at 02:21:53PM +0200, Heiner Kallweit wrote:

>  static int of_fsl_espi_remove(struct platform_device *dev)
>  {
> -	return mpc8xxx_spi_remove(&dev->dev);
> +	return 0;
>  }

You should be able to remove empty functions like this one.
Heiner Kallweit Aug. 25, 2015, 8:19 p.m. UTC | #2
Am 25.08.2015 um 19:45 schrieb Mark Brown:
> On Sun, Aug 23, 2015 at 02:21:53PM +0200, Heiner Kallweit wrote:
> 
>>  static int of_fsl_espi_remove(struct platform_device *dev)
>>  {
>> -	return mpc8xxx_spi_remove(&dev->dev);
>> +	return 0;
>>  }
> 
> You should be able to remove empty functions like this one.
In patch 3 a call to pm_runtime_disable is added to this function.
Therefore I don't remove it in patch 2. Fine with you?

--
To unsubscribe from this list: send the line "unsubscribe linux-spi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Mark Brown Aug. 26, 2015, 10:58 a.m. UTC | #3
On Tue, Aug 25, 2015 at 10:19:35PM +0200, Heiner Kallweit wrote:
> Am 25.08.2015 um 19:45 schrieb Mark Brown:

> > You should be able to remove empty functions like this one.

> In patch 3 a call to pm_runtime_disable is added to this function.
> Therefore I don't remove it in patch 2. Fine with you?

No, just re-add it when you add users.
Heiner Kallweit Aug. 26, 2015, 5:56 p.m. UTC | #4
Am 26.08.2015 um 12:58 schrieb Mark Brown:
> On Tue, Aug 25, 2015 at 10:19:35PM +0200, Heiner Kallweit wrote:
>> Am 25.08.2015 um 19:45 schrieb Mark Brown:
> 
>>> You should be able to remove empty functions like this one.
> 
>> In patch 3 a call to pm_runtime_disable is added to this function.
>> Therefore I don't remove it in patch 2. Fine with you?
> 
> No, just re-add it when you add users.
> 
OK, I will consider this when sending v2 of the patch series.

--
To unsubscribe from this list: send the line "unsubscribe linux-spi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Heiner Kallweit Aug. 26, 2015, 6:14 p.m. UTC | #5
Am 25.08.2015 um 19:45 schrieb Mark Brown:
> On Sun, Aug 23, 2015 at 02:21:53PM +0200, Heiner Kallweit wrote:
> 
>>  static int of_fsl_espi_remove(struct platform_device *dev)
>>  {
>> -	return mpc8xxx_spi_remove(&dev->dev);
>> +	return 0;
>>  }
> 
> You should be able to remove empty functions like this one.
> 
When checking I just recognized that this (now temporarily empty)
function is the remove callback of the platform driver.
AFAIK providing a remove callback is mandatory.
Is it therefore ok to have a temporarily empty function here?

--
To unsubscribe from this list: send the line "unsubscribe linux-spi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Mark Brown Aug. 26, 2015, 6:45 p.m. UTC | #6
On Wed, Aug 26, 2015 at 08:14:23PM +0200, Heiner Kallweit wrote:
> Am 25.08.2015 um 19:45 schrieb Mark Brown:
> > On Sun, Aug 23, 2015 at 02:21:53PM +0200, Heiner Kallweit wrote:

> >>  static int of_fsl_espi_remove(struct platform_device *dev)
> >>  {
> >> -	return mpc8xxx_spi_remove(&dev->dev);
> >> +	return 0;
> >>  }

> > You should be able to remove empty functions like this one.

> When checking I just recognized that this (now temporarily empty)
> function is the remove callback of the platform driver.
> AFAIK providing a remove callback is mandatory.
> Is it therefore ok to have a temporarily empty function here?

No, remove callbacks are completely optional.
Heiner Kallweit Aug. 26, 2015, 6:54 p.m. UTC | #7
Am 26.08.2015 um 20:45 schrieb Mark Brown:
> On Wed, Aug 26, 2015 at 08:14:23PM +0200, Heiner Kallweit wrote:
>> Am 25.08.2015 um 19:45 schrieb Mark Brown:
>>> On Sun, Aug 23, 2015 at 02:21:53PM +0200, Heiner Kallweit wrote:
> 
>>>>  static int of_fsl_espi_remove(struct platform_device *dev)
>>>>  {
>>>> -	return mpc8xxx_spi_remove(&dev->dev);
>>>> +	return 0;
>>>>  }
> 
>>> You should be able to remove empty functions like this one.
> 
>> When checking I just recognized that this (now temporarily empty)
>> function is the remove callback of the platform driver.
>> AFAIK providing a remove callback is mandatory.
>> Is it therefore ok to have a temporarily empty function here?
> 
> No, remove callbacks are completely optional.
> 
I see, thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-spi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/spi/spi-fsl-espi.c b/drivers/spi/spi-fsl-espi.c
index bfd6259..fdd85be 100644
--- a/drivers/spi/spi-fsl-espi.c
+++ b/drivers/spi/spi-fsl-espi.c
@@ -604,10 +604,6 @@  static irqreturn_t fsl_espi_irq(s32 irq, void *context_data)
 	return ret;
 }
 
-static void fsl_espi_remove(struct mpc8xxx_spi *mspi)
-{
-}
-
 static int fsl_espi_suspend(struct spi_master *master)
 {
 	struct mpc8xxx_spi *mpc8xxx_spi;
@@ -670,7 +666,6 @@  static struct spi_master * fsl_espi_probe(struct device *dev,
 	master->unprepare_transfer_hardware = fsl_espi_suspend;
 
 	mpc8xxx_spi = spi_master_get_devdata(master);
-	mpc8xxx_spi->spi_remove = fsl_espi_remove;
 
 	mpc8xxx_spi->reg_base = devm_ioremap(dev, mem->start,
 					     resource_size(mem));
@@ -805,7 +800,7 @@  err:
 
 static int of_fsl_espi_remove(struct platform_device *dev)
 {
-	return mpc8xxx_spi_remove(&dev->dev);
+	return 0;
 }
 
 #ifdef CONFIG_PM_SLEEP
diff --git a/drivers/spi/spi-fsl-lib.c b/drivers/spi/spi-fsl-lib.c
index e50fd06..1e43412 100644
--- a/drivers/spi/spi-fsl-lib.c
+++ b/drivers/spi/spi-fsl-lib.c
@@ -114,21 +114,6 @@  void mpc8xxx_spi_probe(struct device *dev, struct resource *mem,
 }
 EXPORT_SYMBOL_GPL(mpc8xxx_spi_probe);
 
-int mpc8xxx_spi_remove(struct device *dev)
-{
-	struct mpc8xxx_spi *mpc8xxx_spi;
-	struct spi_master *master;
-
-	master = dev_get_drvdata(dev);
-	mpc8xxx_spi = spi_master_get_devdata(master);
-
-	if (mpc8xxx_spi->spi_remove)
-		mpc8xxx_spi->spi_remove(mpc8xxx_spi);
-
-	return 0;
-}
-EXPORT_SYMBOL_GPL(mpc8xxx_spi_remove);
-
 int of_mpc8xxx_spi_probe(struct platform_device *ofdev)
 {
 	struct device *dev = &ofdev->dev;
diff --git a/drivers/spi/spi-fsl-lib.h b/drivers/spi/spi-fsl-lib.h
index 1326a39..84f5dcb 100644
--- a/drivers/spi/spi-fsl-lib.h
+++ b/drivers/spi/spi-fsl-lib.h
@@ -54,9 +54,6 @@  struct mpc8xxx_spi {
 	void (*get_rx) (u32 rx_data, struct mpc8xxx_spi *);
 	u32(*get_tx) (struct mpc8xxx_spi *);
 
-	/* hooks for different controller driver */
-	void (*spi_remove) (struct mpc8xxx_spi *mspi);
-
 	unsigned int count;
 	unsigned int irq;
 
diff --git a/drivers/spi/spi-fsl-spi.c b/drivers/spi/spi-fsl-spi.c
index fbbab60..b487dab 100644
--- a/drivers/spi/spi-fsl-spi.c
+++ b/drivers/spi/spi-fsl-spi.c
@@ -559,11 +559,6 @@  static irqreturn_t fsl_spi_irq(s32 irq, void *context_data)
 	return ret;
 }
 
-static void fsl_spi_remove(struct mpc8xxx_spi *mspi)
-{
-	fsl_spi_cpm_free(mspi);
-}
-
 static void fsl_spi_grlib_cs_control(struct spi_device *spi, bool on)
 {
 	struct mpc8xxx_spi *mpc8xxx_spi = spi_master_get_devdata(spi->master);
@@ -630,7 +625,6 @@  static struct spi_master * fsl_spi_probe(struct device *dev,
 	master->transfer_one_message = fsl_spi_do_one_msg;
 
 	mpc8xxx_spi = spi_master_get_devdata(master);
-	mpc8xxx_spi->spi_remove = fsl_spi_remove;
 	mpc8xxx_spi->max_bits_per_word = 32;
 	mpc8xxx_spi->type = fsl_spi_get_type(dev);
 
@@ -862,11 +856,8 @@  static int of_fsl_spi_remove(struct platform_device *ofdev)
 {
 	struct spi_master *master = platform_get_drvdata(ofdev);
 	struct mpc8xxx_spi *mpc8xxx_spi = spi_master_get_devdata(master);
-	int ret;
 
-	ret = mpc8xxx_spi_remove(&ofdev->dev);
-	if (ret)
-		return ret;
+	fsl_spi_cpm_free(mpc8xxx_spi);
 	if (mpc8xxx_spi->type == TYPE_FSL)
 		of_fsl_spi_free_chipselects(&ofdev->dev);
 	return 0;
@@ -912,7 +903,12 @@  static int plat_mpc8xxx_spi_probe(struct platform_device *pdev)
 
 static int plat_mpc8xxx_spi_remove(struct platform_device *pdev)
 {
-	return mpc8xxx_spi_remove(&pdev->dev);
+	struct spi_master *master = platform_get_drvdata(pdev);
+	struct mpc8xxx_spi *mpc8xxx_spi = spi_master_get_devdata(master);
+
+	fsl_spi_cpm_free(mpc8xxx_spi);
+
+	return 0;
 }
 
 MODULE_ALIAS("platform:mpc8xxx_spi");