aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/spi/spi-s3c64xx.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-10-02 20:26:42 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-10-02 20:26:42 -0400
commit7fe0b14b725d6d09a1d9e1409bd465cb88b587f9 (patch)
tree89b5ffca03145618da92c75fb3cc1dda87dbb924 /drivers/spi/spi-s3c64xx.c
parent7a9a2970b5c1c2ce73d4bb84edaa7ebf13e0c841 (diff)
parent536a53a300d0d40152796eefb0a9e6e36ca37f7d (diff)
Merge tag 'spi-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/misc
Pull spi updates from Mark Brown: "No framework work here, only a bunch of driver updates of varying sizes: - Factoring out of the core hardware support from the MXS MMC driver by Marek Vasut to allow the hardware to also be used for SPI. - Lots of error handling cleanups from Guenter Roeck - Removal of the existing Tegra driver which is quite comprehensively broken as detailed in the changelog for the removal. - DT suppport for the PL022 and GPIO drivers. - pinctrl support for OMAP and PL022." Pulling from Mark Brown as Grant Likely is still busy moving. * tag 'spi-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/misc: (53 commits) spi: remove completely broken Tegra driver spi/imx: set the inactive state of the clock according to the clock polarity spi/pl022: get/put resources on suspend/resume spi/pl022: use more managed resources spi/pl022: Devicetree support w/o platform data spi/s3c64xx: Don't free controller_data on non-dt platforms spi: omap2-mcspi: add pinctrl support spi/pl022: adopt pinctrl support spi: omap2-mcspi: Cleanup the omap2_mcspi_txrx_dma function spi/gpio: Fix stub for spi_gpio_probe_dt() spi/mxs: Make the SPI block clock speed configurable via DT spi: spi-sh-hspi: drop frees of devm_ alloc'd data spi/pl022: Fix chipselects pointer computation spi: spi-tle62x0: Use module_spi_driver macro mxs/spi: Rework the mxs_ssp_timeout to be more readable mxs/spi: Decrement the DMA/PIO border mxs/spi: Increment the transfer length only if transfer succeeded mxs/spi: Fix issues when doing long continuous transfer spi: spi-gpio: Add DT bindings spi: spi-gpio: store chipselect information in private structure ...
Diffstat (limited to 'drivers/spi/spi-s3c64xx.c')
-rw-r--r--drivers/spi/spi-s3c64xx.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c
index 0e2a02228d5e..1860c3aca7e2 100644
--- a/drivers/spi/spi-s3c64xx.c
+++ b/drivers/spi/spi-s3c64xx.c
@@ -976,7 +976,8 @@ err_msgq:
976 spi_set_ctldata(spi, NULL); 976 spi_set_ctldata(spi, NULL);
977 977
978err_gpio_req: 978err_gpio_req:
979 kfree(cs); 979 if (spi->dev.of_node)
980 kfree(cs);
980 981
981 return err; 982 return err;
982} 983}
@@ -1409,7 +1410,7 @@ static int s3c64xx_spi_remove(struct platform_device *pdev)
1409#ifdef CONFIG_PM 1410#ifdef CONFIG_PM
1410static int s3c64xx_spi_suspend(struct device *dev) 1411static int s3c64xx_spi_suspend(struct device *dev)
1411{ 1412{
1412 struct spi_master *master = spi_master_get(dev_get_drvdata(dev)); 1413 struct spi_master *master = dev_get_drvdata(dev);
1413 struct s3c64xx_spi_driver_data *sdd = spi_master_get_devdata(master); 1414 struct s3c64xx_spi_driver_data *sdd = spi_master_get_devdata(master);
1414 1415
1415 spi_master_suspend(master); 1416 spi_master_suspend(master);
@@ -1428,7 +1429,7 @@ static int s3c64xx_spi_suspend(struct device *dev)
1428 1429
1429static int s3c64xx_spi_resume(struct device *dev) 1430static int s3c64xx_spi_resume(struct device *dev)
1430{ 1431{
1431 struct spi_master *master = spi_master_get(dev_get_drvdata(dev)); 1432 struct spi_master *master = dev_get_drvdata(dev);
1432 struct s3c64xx_spi_driver_data *sdd = spi_master_get_devdata(master); 1433 struct s3c64xx_spi_driver_data *sdd = spi_master_get_devdata(master);
1433 struct s3c64xx_spi_info *sci = sdd->cntrlr_info; 1434 struct s3c64xx_spi_info *sci = sdd->cntrlr_info;
1434 1435
@@ -1452,7 +1453,7 @@ static int s3c64xx_spi_resume(struct device *dev)
1452#ifdef CONFIG_PM_RUNTIME 1453#ifdef CONFIG_PM_RUNTIME
1453static int s3c64xx_spi_runtime_suspend(struct device *dev) 1454static int s3c64xx_spi_runtime_suspend(struct device *dev)
1454{ 1455{
1455 struct spi_master *master = spi_master_get(dev_get_drvdata(dev)); 1456 struct spi_master *master = dev_get_drvdata(dev);
1456 struct s3c64xx_spi_driver_data *sdd = spi_master_get_devdata(master); 1457 struct s3c64xx_spi_driver_data *sdd = spi_master_get_devdata(master);
1457 1458
1458 clk_disable(sdd->clk); 1459 clk_disable(sdd->clk);
@@ -1463,7 +1464,7 @@ static int s3c64xx_spi_runtime_suspend(struct device *dev)
1463 1464
1464static int s3c64xx_spi_runtime_resume(struct device *dev) 1465static int s3c64xx_spi_runtime_resume(struct device *dev)
1465{ 1466{
1466 struct spi_master *master = spi_master_get(dev_get_drvdata(dev)); 1467 struct spi_master *master = dev_get_drvdata(dev);
1467 struct s3c64xx_spi_driver_data *sdd = spi_master_get_devdata(master); 1468 struct s3c64xx_spi_driver_data *sdd = spi_master_get_devdata(master);
1468 1469
1469 clk_enable(sdd->src_clk); 1470 clk_enable(sdd->src_clk);