diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-02 20:26:42 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-02 20:26:42 -0400 |
commit | 7fe0b14b725d6d09a1d9e1409bd465cb88b587f9 (patch) | |
tree | 89b5ffca03145618da92c75fb3cc1dda87dbb924 /drivers/spi/spi-s3c64xx.c | |
parent | 7a9a2970b5c1c2ce73d4bb84edaa7ebf13e0c841 (diff) | |
parent | 536a53a300d0d40152796eefb0a9e6e36ca37f7d (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.c | 11 |
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 | ||
978 | err_gpio_req: | 978 | err_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 |
1410 | static int s3c64xx_spi_suspend(struct device *dev) | 1411 | static 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 | ||
1429 | static int s3c64xx_spi_resume(struct device *dev) | 1430 | static 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 |
1453 | static int s3c64xx_spi_runtime_suspend(struct device *dev) | 1454 | static 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 | ||
1464 | static int s3c64xx_spi_runtime_resume(struct device *dev) | 1465 | static 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); |