spi: fsl-(e)spi: simplify cleanup code
Now that most cleanup is done automatically the remove functions can be significantly simplified. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
4178b6b1b5
commit
3c5395b66f
4 changed files with 7 additions and 35 deletions
|
@ -797,11 +797,6 @@ err:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int of_fsl_espi_remove(struct platform_device *dev)
|
|
||||||
{
|
|
||||||
return mpc8xxx_spi_remove(&dev->dev);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_PM_SLEEP
|
#ifdef CONFIG_PM_SLEEP
|
||||||
static int of_fsl_espi_suspend(struct device *dev)
|
static int of_fsl_espi_suspend(struct device *dev)
|
||||||
{
|
{
|
||||||
|
@ -865,7 +860,6 @@ static struct platform_driver fsl_espi_driver = {
|
||||||
.pm = &espi_pm,
|
.pm = &espi_pm,
|
||||||
},
|
},
|
||||||
.probe = of_fsl_espi_probe,
|
.probe = of_fsl_espi_probe,
|
||||||
.remove = of_fsl_espi_remove,
|
|
||||||
};
|
};
|
||||||
module_platform_driver(fsl_espi_driver);
|
module_platform_driver(fsl_espi_driver);
|
||||||
|
|
||||||
|
|
|
@ -114,21 +114,6 @@ void mpc8xxx_spi_probe(struct device *dev, struct resource *mem,
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(mpc8xxx_spi_probe);
|
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)
|
int of_mpc8xxx_spi_probe(struct platform_device *ofdev)
|
||||||
{
|
{
|
||||||
struct device *dev = &ofdev->dev;
|
struct device *dev = &ofdev->dev;
|
||||||
|
|
|
@ -54,9 +54,6 @@ struct mpc8xxx_spi {
|
||||||
void (*get_rx) (u32 rx_data, struct mpc8xxx_spi *);
|
void (*get_rx) (u32 rx_data, struct mpc8xxx_spi *);
|
||||||
u32(*get_tx) (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 count;
|
||||||
unsigned int irq;
|
unsigned int irq;
|
||||||
|
|
||||||
|
|
|
@ -559,11 +559,6 @@ static irqreturn_t fsl_spi_irq(s32 irq, void *context_data)
|
||||||
return ret;
|
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)
|
static void fsl_spi_grlib_cs_control(struct spi_device *spi, bool on)
|
||||||
{
|
{
|
||||||
struct mpc8xxx_spi *mpc8xxx_spi = spi_master_get_devdata(spi->master);
|
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;
|
master->transfer_one_message = fsl_spi_do_one_msg;
|
||||||
|
|
||||||
mpc8xxx_spi = spi_master_get_devdata(master);
|
mpc8xxx_spi = spi_master_get_devdata(master);
|
||||||
mpc8xxx_spi->spi_remove = fsl_spi_remove;
|
|
||||||
mpc8xxx_spi->max_bits_per_word = 32;
|
mpc8xxx_spi->max_bits_per_word = 32;
|
||||||
mpc8xxx_spi->type = fsl_spi_get_type(dev);
|
mpc8xxx_spi->type = fsl_spi_get_type(dev);
|
||||||
|
|
||||||
|
@ -861,11 +855,8 @@ static int of_fsl_spi_remove(struct platform_device *ofdev)
|
||||||
{
|
{
|
||||||
struct spi_master *master = platform_get_drvdata(ofdev);
|
struct spi_master *master = platform_get_drvdata(ofdev);
|
||||||
struct mpc8xxx_spi *mpc8xxx_spi = spi_master_get_devdata(master);
|
struct mpc8xxx_spi *mpc8xxx_spi = spi_master_get_devdata(master);
|
||||||
int ret;
|
|
||||||
|
|
||||||
ret = mpc8xxx_spi_remove(&ofdev->dev);
|
fsl_spi_cpm_free(mpc8xxx_spi);
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
if (mpc8xxx_spi->type == TYPE_FSL)
|
if (mpc8xxx_spi->type == TYPE_FSL)
|
||||||
of_fsl_spi_free_chipselects(&ofdev->dev);
|
of_fsl_spi_free_chipselects(&ofdev->dev);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -911,7 +902,12 @@ static int plat_mpc8xxx_spi_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
static int plat_mpc8xxx_spi_remove(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");
|
MODULE_ALIAS("platform:mpc8xxx_spi");
|
||||||
|
|
Loading…
Add table
Reference in a new issue