Commit graph

1653 commits

Author SHA1 Message Date
Mark Brown
e221fa40a4 spi/txx9: Use linux/gpio.h not asm/gpio.h
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-30 12:16:04 +01:00
Christian Eggers
89c66ee890 spi: spi-davinci: Fix direction in dma_map_single()
Commit 048177ce3b (spi: spi-davinci:
convert to DMA engine API) introduced a regression: dma_map_single()
is called with direction DMA_FROM_DEVICE for rx and for tx.

Signed-off-by: Christian Eggers <ceggers@gmx.de>
Acked-by: Matt Porter <mporter@ti.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
Cc: stable@vger.kernel.org # v3.7.x+
2013-07-29 20:27:54 +01:00
Mark Brown
ce74ac80d2 spi/tegra20-slink: Use core runtime PM
Signed-off-by: Mark Brown <broonie@linaro.org>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
2013-07-29 18:00:30 +01:00
Mark Brown
38315fd48d spi/tegra20-sflash: Use core runtime PM
Signed-off-by: Mark Brown <broonie@linaro.org>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
2013-07-29 18:00:26 +01:00
Mark Brown
612aa5ced7 spi/tegra114: Use core runtime PM
Signed-off-by: Mark Brown <broonie@linaro.org>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
2013-07-29 18:00:23 +01:00
Mark Brown
fc0f81b76a spi/s3c64xx: Use core for runtime PM
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-29 18:00:22 +01:00
Mark Brown
3e00a09d2f spi/hspi: Convert to core runtime PM
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-29 18:00:21 +01:00
Mark Brown
7dd6278733 spi/pxa2xx: Convert to core runtime PM
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-29 18:00:21 +01:00
Mark Brown
29b6e906a7 spi/pl022: Convert to core runtime PM
Signed-off-by: Mark Brown <broonie@linaro.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
2013-07-29 18:00:20 +01:00
Mark Brown
f0278a1a40 spi/omap2: Covert to core runtime PM
Signed-off-by: Mark Brown <broonie@linaro.org>
Reviewed-by: Felipe Balbi <balbi@ti.com>
2013-07-29 18:00:20 +01:00
Mark Brown
3f36e80ab9 spi/coldfire-qspi: Convert to core runtime PM
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-29 18:00:19 +01:00
Mark Brown
5355d96d6f spi/bcm63xx: Convert to core runtime PM
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-29 18:00:19 +01:00
Mark Brown
49834de234 spi: Provide core support for runtime PM during transfers
Most SPI drivers that implement runtime PM support use identical code to
do so: they acquire a runtime PM lock in prepare_transfer_hardware() and
then they release it in unprepare_transfer_hardware(). The variations in
this are mostly missing error checking and the choice to use autosuspend.

Since these runtime PM calls are normally the only thing in the prepare
and unprepare callbacks and the autosuspend API transparently does the
right thing on devices with autosuspend disabled factor all of this out
into the core with a flag to enable the behaviour.

Signed-off-by: Mark Brown <broonie@linaro.org>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
2013-07-29 17:59:20 +01:00
Mark Brown
bafe886936 spi/tegra-slink: Factor runtime PM out into transfer prepare/unprepare
Currently the tegra slink driver acquires a runtime PM reference for the
duration of each transfer. This may result in the IP being powered down
between transfers which would be at best wasteful. Instead it is better
to do this in the callbacks that are generated before and after starting
a series of transfers, keeping the IP powered throughout.

Signed-off-by: Mark Brown <broonie@linaro.org>
Acked-by: Laxman Dewangan <ldewangan@nvidia.com>
2013-07-29 17:12:38 +01:00
Mark Brown
9f178c22fb spi/tegra-sflash: Factor runtime PM out into transfer prepare/unprepare
Currently the tegra sflash driver acquires a runtime PM reference for the
duration of each transfer. This may result in the IP being powered down
between transfers which would be at best wasteful. Instead it is better
to do this in the callbacks that are generated before and after starting
a series of transfers, keeping the IP powered throughout.

Signed-off-by: Mark Brown <broonie@linaro.org>
Acked-by: Laxman Dewangan <ldewangan@nvidia.com>
2013-07-29 17:12:36 +01:00
Mark Brown
bb249aad82 spi/tegra114: Factor runtime PM out into transfer prepare/unprepare
Currently the tegra114 driver acquires a runtime PM reference for the
duration of each transfer. This may result in the IP being powered down
between transfers which would be at best wasteful. Instead it is better
to do this in the callbacks that are generated before and after starting
a series of transfers, keeping the IP powered throughout.

Signed-off-by: Mark Brown <broonie@linaro.org>
Acked-by: Laxman Dewangan <ldewangan@nvidia.com>
2013-07-29 17:12:35 +01:00
Mark Brown
1729ce3441 spi/orion: Convert to devm_ioremap_resource()
Signed-off-by: Mark Brown <broonie@linaro.org>
Acked-by: Andrew Lunn <andrew@lunn.ch>
2013-07-29 12:41:01 +01:00
Niels de Vos
27743e0bfd spi/imx: expose module alias for loading from device-tree
Enable auto loading by udev when spi-imx is compiled as a module.

Signed-off-by: Niels de Vos <ndevos@redhat.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-29 12:40:08 +01:00
Mark Brown
dd1053a93f spi/drivers: Enable build of drivers with COMPILE_TEST
Enable the build of drivers which don't have any real build time
dependency on their architecture or platform with COMPILE_TEST,
providing better build time coverage.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-29 05:21:30 +01:00
Mark Brown
895248f851 spi/orion: Directly include linux/size.h
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-29 05:21:29 +01:00
Mark Brown
6c07ef298a spi/atmel: Annotate lock/unlock functions
Let checkers like sparse know that the locking imbalances are intentional
in these functions.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-28 19:15:52 +01:00
Mark Brown
33bf2c0b7d spi/sh-msiof: Remove unneeded empty runtime PM callbacks
Previously the runtime PM API insisted on having callbacks for everything
but this requirement was removed a while ago so the empty callbacks can
also be removed.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-28 19:15:29 +01:00
Mark Brown
8e76fda3e1 spi/sh-hspi: Remove noisy print
This adds no meaningful value.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-28 19:14:59 +01:00
Santosh Shilimkar
788489145b spi: davinci: Update configs to make it selectable on Keystone
Keystone2 SOCs share the SPI IP block with DaVinci based SOCs. Update
the config bits so that its usable on Keystone2 based SOCs.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-25 10:19:57 +01:00
Jingoo Han
b998aca8ad spi: s3c64xx: fix casting warning
sdd->ops->request is unsigned int, not unsigned long.
Also, sdd->rx_dma.ch is a 'struct dma_chan *'.
Thus, (void *) is converted to (struct dma_chan *)(unsigned long),
in order to fix possible sparse warnings.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-24 15:32:36 +01:00
Jingoo Han
c65bc4a8df spi: s3c64xx: fix printk warnings
Fix the following build warnings when LPAE is enabled:

drivers/spi/spi-s3c64xx.c:1466:2: warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type
'resource_size_t' [-Wformat]
drivers/spi/spi-s3c64xx.c:1466:2: warning: format '%x' expects argument of type 'unsigned int', but argument 5 has type
'resource_size_t' [-Wformat]

Use vsprintf extension %pR to format resource.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-24 15:32:35 +01:00
Jingoo Han
db0606ecd6 spi: s3c64xx: fix checkpatch error and warnings
Fix the following checkpatch error and warnings:

  ERROR: "(foo*)" should be "(foo *)"
  WARNING: line over 80 characters
  WARNING: quoted string split across lines

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-24 15:32:35 +01:00
Mark Brown
900bfe33b6 spi/s3c64xx: Remove unused message queue
Since the driver has been converted to use the core message pump code
the only use of the messsage queue in the driver is a check to see if
it is empty which will always succeed since nothing ever adds to the
queue. Just remove the queue.

Signed-off-by: Mark Brown <broonie@linaro.org>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
2013-07-24 15:32:24 +01:00
Wolfram Sang
e5d950f024 spi: bcm2835: don't check resource with devm_ioremap_resource
devm_ioremap_resource does sanity checks on the given resource. No need to
duplicate this in the driver.

Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-24 15:23:15 +01:00
Fabio Estevam
796305a2e2 spi: spi-mxs: Remove unneeded check for platform_get_resource()
As devm_ioremap_resource() is used on probe, there is no need to explicitly
check the return value from platform_get_resource(), as this is something that
devm_ioremap_resource() takes care by itself.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-22 10:51:13 +01:00
Sourav Poddar
078726ce6d driver: spi: Modify core to compute the message length
Make spi core calculate the message length while
populating the other transfer parameters.

Usecase, driver can use it to populate framelength filed in their
controller.

Signed-off-by: Sourav Poddar <sourav.poddar@ti.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-18 16:22:01 +01:00
Fabio Estevam
d60990d597 spi: spi-bitbang: Fix conversion of spi_bitbang_transfer_one()
Since commit 2025172e3 (spi/bitbang: Use core message pump), the following
kernel crash is seen:

Unable to handle kernel NULL pointer dereference at virtual address 0000000d
pgd = 80004000
[0000000d] *pgd=00000000
Internal error: Oops: 5 [#1] SMP ARM
Modules linked in:
CPU: 1 PID: 48 Comm: spi32766 Not tainted 3.11.0-rc1+ #4
task: bfa3e580 ti: bfb90000 task.ti: bfb90000
PC is at spi_bitbang_transfer_one+0x50/0x248
LR is at spi_bitbang_transfer_one+0x20/0x248
...

,and also the following build warning:

drivers/spi/spi-bitbang.c: In function 'spi_bitbang_start':
drivers/spi/spi-bitbang.c:436:31: warning: assignment from incompatible pointer type [enabled by default]

In order to fix it, we need to change the first parameter of
spi_bitbang_transfer_one() to 'struct spi_master *master'.

Tested on a mx6qsabrelite by succesfully probing a SPI NOR flash.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-17 23:34:27 +01:00
Dan Carpenter
9ca1273bb9 spi/xilinx: signedness issue checking platform_get_irq()
In xilinx_spi_probe() we use xspi->irq to store negative error codes so
it has to be signed.  We weren't going to use the upper bit any way so
this is fine.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-17 18:19:44 +01:00
Mark Brown
2025172e32 spi/bitbang: Use core message pump
Convert drivers using bitbang to use the core mesasge pump infrastructure,
saving some code and meaning that these drivers get to take advantage of
work done on improving the core implementation.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-17 18:13:01 +01:00
H Hartley Sweeten
84ddb3c1df spi: spi-ep93xx: convert to the queued driver infrastructure
The SPI core provides infrastructure for standard message queueing. Use
that instead of handling it in the driver.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Acked-by: Mika Westerberg <mika.westerberg@iki.fi>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-17 11:10:59 +01:00
Boris BREZILLON
dfec4a6e42 spi: atmel: prepare clk before calling enable
Replace clk_enable/disable with clk_prepare_enable/disable_unprepare to
avoid common clk framework warnings.

Signed-off-by: Boris BREZILLON <b.brezillon@overkiz.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-17 09:10:24 +01:00
Mark Brown
70f092a585 Merge remote-tracking branch 'spi/fix/xilinx' into spi-linus 2013-07-15 11:46:16 +01:00
Mark Brown
52bc441ae7 Merge remote-tracking branch 'spi/fix/setup' into spi-linus 2013-07-15 11:46:15 +01:00
Mark Brown
069e1572d7 Merge remote-tracking branch 'spi/fix/s3c64xx' into spi-linus 2013-07-15 11:46:14 +01:00
Michal Simek
7b3b7432ae spi/xilinx: Simplify irq allocation
Use devm_request_irq() for irq allocation which
simplify driver code.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-15 11:45:53 +01:00
Michal Simek
be3acdff94 spi/xilinx: Use of_property_read_u32 for reading value from node
It simplifies driver probing.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-15 11:45:53 +01:00
Michal Simek
ad3fdbcaf9 spi/xilinx: Clean ioremap calling
devm_ioremap_resource() automatically checks that
struct resource is initialized.
Also group platform_get_resource() and devm_ioremap_resource()
together.
And remove mem resource from struct xilinx_spi.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-15 11:45:53 +01:00
Michal Simek
5586c09e19 spi/xilinx: Remove CONFIG_OF from the driver
dev.of_node is in struct device all the time.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-15 11:45:53 +01:00
Mark Brown
7cb2abd05f spi/xilinx: Refer to platform device as pdev in probe() and remove()
This is a more traditional name and makes things a bit clearer when
referring to actual struct devices as we do frequently during probe().

Signed-off-by: Mark Brown <broonie@linaro.org>
Acked-by: Michal Simek <michal.simek@xilinx.com>
2013-07-15 11:45:52 +01:00
Mark Brown
d81c0bbbf8 spi/xilinx: Remove remains of of_platform device registration
In the past there used to be a separate platform device type for device
tree systems so the probe and removal functions were split into generic
and bus sections. Since this is no longer the case simplify the code (and
remove some unprototyped exports) by factoring everything into the bus
probe() and remove().

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-15 11:45:52 +01:00
Mark Brown
c40537d008 spi/xilinx: Convert to devm_ioremap_resource()
Saves code and reduces the possibility of error.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-15 11:45:52 +01:00
Andy Shevchenko
cd4c424463 spi: tle62x0: dump small buffers using %*ph
We have nice specifier in kernel for that.

It changes separator from ',' (comma) to space, though it's not a big deal
since it's just a debug message.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-15 11:45:24 +01:00
Wei Yongjun
86562d04fc spi: tegra114: remove redundant dev_err call in tegra_spi_probe()
There is a error message within devm_ioremap_resource
already, so remove the dev_err call to avoid redundant
error message.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-15 11:44:21 +01:00
Qipan Li
94b1f0dfa6 spi: sirf: add missed spi mode_bits that SiRFSoC hardware supports
Missing this will cause some user cases fail when they want to change spi
transfer mode.

Signed-off-by: Qipan Li <Qipan.Li@csr.com>
Signed-off-by: Barry Song <Baohua.Song@csr.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-15 11:43:54 +01:00
Girish K S
9f4b323803 spi: s3c64xx: add missing check for polling mode
Due to changes in mainline prior to submission the spi device detection
in polling mode breaks. This revealed the missing check for polling
during dma prepare. This patch adds the missing check.

Signed-off-by: Girish K S <ks.giri@samsung.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-15 11:43:14 +01:00