aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-10-25Merge remote-tracking branch 'spi/topic/tegra' into spi-nextMark Brown3-3/+3
2013-10-25Merge remote-tracking branch 'spi/topic/s3c64xx' into spi-nextMark Brown1-10/+12
2013-10-25Merge remote-tracking branch 'spi/topic/s3c24xx' into spi-nextMark Brown1-1/+1
2013-10-25Merge remote-tracking branch 'spi/topic/rspi' into spi-nextMark Brown3-40/+234
2013-10-25Merge remote-tracking branch 'spi/topic/qspi' into spi-nextMark Brown1-34/+16
2013-10-25Merge remote-tracking branch 'spi/topic/probe' into spi-nextMark Brown3-4/+7
2013-10-25Merge remote-tracking branch 'spi/topic/pl022' into spi-nextMark Brown1-2/+2
2013-10-25Merge remote-tracking branch 'spi/topic/orion' into spi-nextMark Brown1-3/+3
2013-10-25Merge remote-tracking branch 'spi/topic/mxs' into spi-nextMark Brown1-109/+80
2013-10-25Merge remote-tracking branch 'spi/topic/loop' into spi-nextMark Brown5-128/+428
2013-10-25Merge remote-tracking branch 'spi/topic/imx' into spi-nextMark Brown1-0/+33
2013-10-25Merge remote-tracking branch 'spi/topic/hspi' into spi-nextMark Brown2-1/+16
2013-10-25Merge remote-tracking branch 'spi/topic/gpio' into spi-nextMark Brown1-0/+1
2013-10-25Merge remote-tracking branch 'spi/topic/efm32' into spi-nextMark Brown1-7/+1
2013-10-25Merge remote-tracking branch 'spi/topic/dspi' into spi-nextMark Brown2-4/+5
2013-10-25Merge remote-tracking branch 'spi/topic/dev' into spi-nextMark Brown1-4/+3
2013-10-25Merge remote-tracking branch 'spi/topic/designware' into spi-nextMark Brown2-6/+2
2013-10-25Merge remote-tracking branch 'spi/topic/davinci' into spi-nextMark Brown1-1/+2
2013-10-25Merge remote-tracking branch 'spi/topic/core' into spi-nextMark Brown1-41/+36
2013-10-25Merge remote-tracking branch 'spi/topic/clps711x' into spi-nextMark Brown1-2/+1
2013-10-25Merge remote-tracking branch 'spi/topic/butterfly' into spi-nextMark Brown1-7/+6
2013-10-25Merge remote-tracking branch 'spi/topic/bitbang' into spi-nextMark Brown1-6/+7
2013-10-25Merge remote-tracking branch 'spi/topic/bfin' into spi-nextMark Brown24-88/+88
2013-10-25Merge remote-tracking branch 'spi/topic/atmel' into spi-nextMark Brown11-73/+71
2013-10-25Merge remote-tracking branch 'spi/fix/s3c64xx' into spi-linusMark Brown1-0/+2
2013-10-25Merge remote-tracking branch 'spi/fix/modalias' into spi-linusMark Brown1-1/+1
2013-10-25Merge remote-tracking branch 'spi/fix/mcspi' into spi-linusMark Brown1-3/+9
2013-10-25Merge remote-tracking branch 'spi/fix/efm' into spi-linusMark Brown18-26/+35
2013-10-25Merge remote-tracking branch 'spi/fix/atmel' into spi-linusMark Brown0-0/+0
2013-10-25spi/hspi: add device tree supportKuninori Morimoto2-0/+15
Support for loading the Renesas HSPI driver via devicetree. Signed-off-by: Kuninori Morimoto <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-10-23spi: atmel: fix return value check in atmel_spi_probe()Wei Yongjun1-1/+3
In case of error, the function devm_ioremap_resource() returns ERR_PTR() and never returns NULL. The NULL test in the return value check should be replaced with IS_ERR(). Signed-off-by: Wei Yongjun <[email protected]> Acked-by: Nicolas Ferre <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-10-23spi: spi-imx: only enable the clocks when we start to transfer a messageHuang Shijie1-0/+33
Current code keeps the clocks enabled all the time, it wastes the power when there is no operaiton on the spi controller. In order to save the power, this patch adds the two hooks: spi_imx_prepare_message: enable the clocks for this message spi_imx_unprepare_message: disable the clocks. This patch also disables the clocks in the end of the probe. Signed-off-by: Huang Shijie <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-10-22spi/s3c64xx: Fix doubled clock disable on suspendKrzysztof Kozlowski1-6/+8
Fix doubled clock disable and unprepare during PM suspend which triggered the warnings: WARNING: at drivers/clk/clk.c:800 clk_disable+0x18/0x24() Modules linked in: CPU: 0 PID: 1745 Comm: sh Not tainted 3.10.14-01211-ge2549bb-dirty #62 [<c0015980>] (unwind_backtrace+0x0/0x138) from [<c0012a44>] (show_stack+0x10/0x14) [<c0012a44>] (show_stack+0x10/0x14) from [<c0022818>] (warn_slowpath_common+0x4c/0x68) [<c0022818>] (warn_slowpath_common+0x4c/0x68) from [<c0022850>] (warn_slowpath_null+0x1c/0x24) [<c0022850>] (warn_slowpath_null+0x1c/0x24) from [<c036e274>] (clk_disable+0x18/0x24) [<c036e274>] (clk_disable+0x18/0x24) from [<c02d5f78>] (s3c64xx_spi_suspend+0x28/0x54) [<c02d5f78>] (s3c64xx_spi_suspend+0x28/0x54) from [<c02b3a54>] (platform_pm_suspend+0x2c/0x5c) [<c02b3a54>] (platform_pm_suspend+0x2c/0x5c) from [<c02b8a30>] (dpm_run_callback+0x44/0x7c) [<c02b8a30>] (dpm_run_callback+0x44/0x7c) from [<c02b8b70>] (__device_suspend+0x108/0x300) [<c02b8b70>] (__device_suspend+0x108/0x300) from [<c02ba4e0>] (dpm_suspend+0x54/0x208) [<c02ba4e0>] (dpm_suspend+0x54/0x208) from [<c0066bcc>] (suspend_devices_and_enter+0x98/0x458) [<c0066bcc>] (suspend_devices_and_enter+0x98/0x458) from [<c0067150>] (pm_suspend+0x1c4/0x25c) [<c0067150>] (pm_suspend+0x1c4/0x25c) from [<c0066044>] (state_store+0x6c/0xbc) [<c0066044>] (state_store+0x6c/0xbc) from [<c0203290>] (kobj_attr_store+0x14/0x20) [<c0203290>] (kobj_attr_store+0x14/0x20) from [<c0157530>] (sysfs_write_file+0xfc/0x164) [<c0157530>] (sysfs_write_file+0xfc/0x164) from [<c00fd6b0>] (vfs_write+0xbc/0x1bc) [<c00fd6b0>] (vfs_write+0xbc/0x1bc) from [<c00fdaf0>] (SyS_write+0x40/0x68) [<c00fdaf0>] (SyS_write+0x40/0x68) from [<c000ea80>] (ret_fast_syscall+0x0/0x3c) The clocks may be already disabled before suspending. Check PM runtime suspend status and disable clocks only if device is not suspended. During resume do not enable the clocks if device is runtime suspended. Signed-off-by: Krzysztof Kozlowski <[email protected]> Signed-off-by: Kyungmin Park <[email protected]> Reviewed-by: Sylwester Nawrocki <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-10-22spi/s3c64xx: Do not ignore return value of spi_master_resume/suspendKrzysztof Kozlowski1-4/+4
During PM resume and suspend do not ignore the return value of spi_master_suspend() or spi_master_resume(). Instead pass it further. Signed-off-by: Krzysztof Kozlowski <[email protected]> Signed-off-by: Kyungmin Park <[email protected]> Reviewed-by: Sylwester Nawrocki <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-10-19Linux 3.12-rc6Linus Torvalds1-1/+1
2013-10-18Merge branch 'for-linus' of ↵Linus Torvalds1-0/+1
git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs Pull btrfs fix from Chris Mason: "Sage hit a deadlock with ceph on btrfs, and Josef tracked it down to a regression in our initial rc1 pull. When doing nocow writes we were sometimes starting a transaction with locks held" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: Btrfs: release path before starting transaction in can_nocow_extent
2013-10-18Merge tag 'pm+acpi-3.12-rc6' of ↵Linus Torvalds10-196/+15
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull ACPI and power management fixes from Rafael Wysocki: - intel_pstate fix for misbehavior after system resume if sysfs attributes are set in a specific way before the corresponding suspend from Dirk Brandewie. - A recent intel_pstate fix has no effect if unsigned long is 32-bit, so fix it up to cover that case as well. - The s3c64xx cpufreq driver was not updated when the index field of struct cpufreq_frequency_table was replaced with driver_data, so update it now. From Charles Keepax. - The Kconfig help text for ACPI_BUTTON still refers to /proc/acpi/event that has been dropped recently, so modify it to remove that reference. From Krzysztof Mazur. - A Lan Tianyu's change adds a missing mutex unlock to an error code path in acpi_resume_power_resources(). - Some code related to ACPI power resources, whose very purpose is questionable to put it lightly, turns out to cause problems to happen during testing on real systems, so remove it completely (we may revisit that in the future if there's a compelling enough reason). From Rafael J Wysocki and Aaron Lu. * tag 'pm+acpi-3.12-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: ACPI / PM: Drop two functions that are not used any more ATA / ACPI: remove power dependent device handling cpufreq: s3c64xx: Rename index to driver_data ACPI / power: Drop automaitc resume of power resource dependent devices intel_pstate: Fix type mismatch warning cpufreq / intel_pstate: Fix max_perf_pct on resume ACPI: remove /proc/acpi/event from ACPI_BUTTON help ACPI / power: Release resource_lock after acpi_power_get_state() return error
2013-10-18Merge branch 'x86-urgent-for-linus' of ↵Linus Torvalds2-1/+2
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 fixes from Ingo Molnar: "Two fixlets: - fix a (rare-config) build bug - fix a next-gen SGI/UV hw/firmware enumeration bug" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86: Update UV3 hub revision ID x86/microcode: Correct Kconfig dependencies
2013-10-18Btrfs: release path before starting transaction in can_nocow_extentJosef Bacik1-0/+1
We can't be holding tree locks while we try to start a transaction, we will deadlock. Thanks, Reported-by: Sage Weil <[email protected]> Signed-off-by: Josef Bacik <[email protected]> Signed-off-by: Chris Mason <[email protected]>
2013-10-18Merge branch 'acpi-fixes'Rafael J. Wysocki8-188/+7
* acpi-fixes: ACPI / PM: Drop two functions that are not used any more ATA / ACPI: remove power dependent device handling ACPI / power: Drop automaitc resume of power resource dependent devices ACPI: remove /proc/acpi/event from ACPI_BUTTON help ACPI / power: Release resource_lock after acpi_power_get_state() return error
2013-10-18Merge branch 'pm-fixes'Rafael J. Wysocki2-8/+8
* pm-fixes: cpufreq: s3c64xx: Rename index to driver_data intel_pstate: Fix type mismatch warning cpufreq / intel_pstate: Fix max_perf_pct on resume
2013-10-17Merge branch 'for-linus' of git://git.samba.org/sfrench/cifs-2.6Linus Torvalds8-21/+93
Pull CIFS fixes from Steve French: "Five small cifs fixes (includes fixes for: unmount hang, 2 security related, symlink, large file writes)" * 'for-linus' of git://git.samba.org/sfrench/cifs-2.6: cifs: ntstatus_to_dos_map[] is not terminated cifs: Allow LANMAN auth method for servers supporting unencapsulated authentication methods cifs: Fix inability to write files >2GB to SMB2/3 shares cifs: Avoid umount hangs with smb2 when server is unresponsive do not treat non-symlink reparse points as valid symlinks
2013-10-18spi: spi-mxs: Use u32 instead of uint32_tTrent Piepho1-5/+5
It's consistent with all the other spi drivers that way. Signed-off-by: Trent Piepho <[email protected]> Cc: Marek Vasut <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Shawn Guo <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-10-18spi: spi-mxs: Don't set clock for each xferTrent Piepho1-1/+14
mxs_spi_setup_transfer() would set the SSP SCK rate every time it was called, which is before every transfer. It is uncommon for the SCK rate to change between transfers (or at all of that matter) and this causes many unnecessary reprogrammings of the clock registers. Code changed to only set the rate when it changes. This significantly speeds up short SPI messages, especially messages made up of many transfers, as the calculation of the clock divisors is rather costly. On an iMX287, using spidev with messages that consist of 511 transfers of 4 bytes each at an SCK of 48 MHz, the effective transfer rate more than doubles from about 290 KB/sec to 600 KB/sec! Signed-off-by: Trent Piepho <[email protected]> Cc: Marek Vasut <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Shawn Guo <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-10-18spi: spi-mxs: Clean up setup_transfer functionTrent Piepho1-11/+8
It can't be called with a NULL transfer anymore so it can be simplified to not check for that. Fix indention of line-wrapped code to Linux standard. The transfer pointer can be const. It's not necessary to check if the spi_transfer's speed_hz is zero, as the spi core also fills it in from the spi_device. However, the spi core does not check if spi_device's speed is zero so we have to do that still. Signed-off-by: Trent Piepho <[email protected]> Cc: Marek Vasut <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Shawn Guo <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-10-18spi: spi-mxs: Remove check of spi mode bitsTrent Piepho1-3/+0
The spi core already checks for a slave setting mode bits that we didn't list as supported when the master was registered. There is no need to do it again in the master driver. Signed-off-by: Trent Piepho <[email protected]> Cc: Marek Vasut <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Shawn Guo <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-10-18spi: spi-mxs: Fix race in setup methodTrent Piepho1-9/+1
Despite many warnings in the SPI documentation and code, the spi-mxs driver sets shared chip registers in the ->setup method. This method can be called when transfers are in progress on other slaves controlled by the master. Setting registers or any other shared state will corrupt those transfers. So fix mxs_spi_setup() to not call mxs_spi_setup_transfer(). mxs_spi_setup_transfer() is already called for each transfer when they are actually performed in mxs_spi_transfer_one(), so the call in mxs_spi_setup() isn't necessary to setup anything. Signed-off-by: Trent Piepho <[email protected]> Cc: Marek Vasut <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Shawn Guo <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-10-18spi: spi-mxs: Remove bogus setting of ssp clk rate fieldTrent Piepho1-1/+0
The ssp struct has a clock rate field, to provide the actual value, in Hz, of the SSP output clock (the rate of SSP_SCK) after mxs_ssp_set_clk_rate() is called. It is set by mxs_ssp_set_clk_rate(), for SSP using drivers (like SPI and MMC) to *read* if they want to know the actual clock rate. The SPI driver isn't supposed to *write* to it. For some reason the spi-mxs driver decides to write to this field on init, and sets it to the value of the SSP input clock (clk_sspN, from the MXS clocking block) in kHz. It shouldn't be setting the value, and certainly shouldn't be setting it with the wrong clock in the wrong units. Signed-off-by: Trent Piepho <[email protected]> Cc: Marek Vasut <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Shawn Guo <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-10-18spi: spi-mxs: Remove full duplex check, spi core already does itTrent Piepho1-6/+0
Because the driver sets the SPI_MASTER_HALF_DUPLEX flag, the spi core will check transfers to insure they are not full duplex. It's not necessary to check that in the spi-mxs driver as well. Signed-off-by: Trent Piepho <[email protected]> Cc: Marek Vasut <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Shawn Guo <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-10-18spi: spi-mxs: Fix chip select control bits in DMA modeTrent Piepho1-23/+13
In DMA mode the chip select control bits would be ORed into the CTRL0 register without first clearing the bits. This means that after addressing slave 1, the CTRL0 bit to address slave 1 would be still be set when addressing slave 0, resulting in slave 1 continuing to be addressed. The message handling function would pass the CS value to the txrx function, which would re-program the bits on each transfer in the message. The selected CS does not change during a message so this is inefficient. It also means there are two different sets of code for selecting the CS, one for PIO that worked and one for DMA that didn't. Change the code to set the CS bits in the message handling function once. Now the DMA and PIO txrx functions don't need to care about CS at all. Signed-off-by: Trent Piepho <[email protected]> Cc: Marek Vasut <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Shawn Guo <[email protected]> Signed-off-by: Mark Brown <[email protected]>