aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc
Commit message (Collapse)AuthorAge
...
| * mmc: jz4740_mmc: remove the MMC_DATA_STREAM flagJaehoon Chung2016-02-29
| | | | | | | | | | | | | | Remove the MMC_DATA_STREAM flag because it isn't used anymore. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: dw_mmc: remove the MMC_DATA_STREAM flagJaehoon Chung2016-02-29
| | | | | | | | | | | | | | Remove the MMC_DATA_STREAM flag because it isn't used anymore. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: davinci_mmc: remove the MMC_DATA_STREAM flagJaehoon Chung2016-02-29
| | | | | | | | | | | | | | Remove the MMC_DATA_STREAM flag because it isn't used anymore. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: bfin_sdh: remove the MMC_DATA_STREAM flagJaehoon Chung2016-02-29
| | | | | | | | | | | | | | Remove the MMC_DATA_STREAM flag because it isn't used anymore. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: atmel-mci: remove the MMC_DATA_STREAM flagJaehoon Chung2016-02-29
| | | | | | | | | | | | | | | | Remove the MMC_DATA_STREAM flag because it isn't used anymore. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Acked-by: Ludovic Desroches <ludovic.desroches@atmel.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: sunxi: Enable eMMC HS-DDR (MMC_CAP_1_8V_DDR) supportChen-Yu Tsai2016-02-29
| | | | | | | | | | | | | | | | | | | | | | Now that clock delay settings for 8 bit DDR are correct, and vqmmc support is available, we can enable MMC_CAP_1_8V_DDR support. This enables MMC HS-DDR at up to 52 MHz, even if signal voltage switching is not available. Signed-off-by: Chen-Yu Tsai <wens@csie.org> Reviewed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: sunxi: Support 8 bit eMMC DDR transfer modesChen-Yu Tsai2016-02-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allwinner's MMC controller needs to run at double the card clock rate for 8 bit DDR transfer modes. Interestingly, this is not needed for 4 bit DDR transfers. Different clock delays are needed for 8 bit eMMC DDR, due to the increased module clock rate. For the A80 though, the same values for 4 bit and 8 bit are shared. The new values for the other SoCs were from A83T user manual's "new timing mode" default values, which describes them in clock phase, rather than delay periods. These values were used without any modification. They may not be correct, but they work. Signed-off-by: Chen-Yu Tsai <wens@csie.org> Reviewed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: sunxi: Support MMC_DDR52 timing modesChen-Yu Tsai2016-02-29
| | | | | | | | | | | | | | | | | | | | | | | | | | DDR transfer modes include UHS-1 DDR50 and MMC HS-DDR (or MMC_DDR52). Consider MMC_DDR52 when setting clock delays. Since MMC high speed mode goes up to 52 MHz instead of 50 MHz for SD, and this number is visible in the capability macro, increase the clock rate upper limit to 52 MHz. Signed-off-by: Chen-Yu Tsai <wens@csie.org> Reviewed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: sanitize 'bus width' in debug outputWolfram Sang2016-02-29
| | | | | | | | | | | | | | | | | | | | The bus width is sometimes the actual bus width, and sometimes indices to different arrays encoding the bus width. In my debugging case "2" could mean 8-bit as well as 4-bit, which was extremly confusing. Let's use the human-readable actual bus width in all places. Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: core: use the defined function to check whether card is removableJaehoon Chung2016-02-29
| | | | | | | | | | | | | | | | In linux/mmc/host.h, mmc_card_is_removable() is already defined. There is no reason that it doesn't use. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: sdhci-iproc: use sdhci_pltfm_unregister directlyJisheng Zhang2016-02-29
| | | | | | | | | | | | | | | | | | The sdhci_iproc_remove() is jsut a wrapper to sdhci_pltfm_unregister. So use the sdhci_pltfm_unregister() for the .remove hook directly. Signed-off-by: Jisheng Zhang <jszhang@marvell.com> Acked-by: Scott Branden <sbranden@broadcom.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: sdhci-iproc: add bcm2835 supportStefan Wahren2016-02-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Scott Branden from Broadcom said that the BCM2835 eMMC IP core is very similar to IPROC and share most of the quirks. So use this driver instead of separate one. The sdhci-iproc contains a better workaround for the clock domain crossing problem which doesn't need any delays. This results in a better write performance. Btw we get the rid of the SDHCI_CAPABILITIES hack in the sdhci_readl function. Suggested-by: Scott Branden <sbranden@broadcom.com> Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> Acked-by: Eric Anholt <eric@anholt.net> Acked-by: Scott Branden <sbranden@broadcom.com> Acked-by: Stephen Warren <swarren@wwwdotorg.org> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: sdhci-iproc: define MMC caps in platform dataStefan Wahren2016-02-29
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch moves the definition of the MMC capabilities from the probe function into iproc platform data. After that we are able to add support for another platform more easily. Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> Suggested-by: Stephen Warren <swarren@wwwdotorg.org> Acked-by: Scott Branden <sbranden@broadcom.com> Acked-by: Stephen Warren <swarren@wwwdotorg.org> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: mmc_test: mention that '0' runs all testsWolfram Sang2016-02-29
| | | | | | | | | | | | | | | | I had to use the source to determine what I need to write to 'test' so that all tests are run. Let's mention this explicitly in 'testlist'. Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: mmcif: don't depend on MMC_BLOCKWolfram Sang2016-02-29
| | | | | | | | | | | | | | | | I don't see a reason why a host driver should depend on the card driver. It also prevents that we can use the mmc_test driver. So, remove it. Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: make MAN_BKOPS_EN message a debugWolfram Sang2016-02-29
| | | | | | | | | | | | | | | | IMO this info is only useful for developers. Most users won't need this information, since there is not much they can do about it. Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: omap_hsmmc: don't print uninitialized variablesArnd Bergmann2016-02-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When DT based probing is used but the DMA request fails, the driver will print uninitialized stack data from the rx_req and tx_req variables, as indicated by this warning: drivers/mmc/host/omap_hsmmc.c: In function 'omap_hsmmc_probe': drivers/mmc/host/omap_hsmmc.c:2162:3: warning: 'rx_req' may be used uninitialized in this function [-Wmaybe-uninitialized] dev_err(mmc_dev(host->mmc), "unable to obtain RX DMA engine channel %u\n", rx_req); This removes the DMA request line number from the warning, which is the easiest solution and won't hurt us any more as we are planning to remove the legacy code path anyway. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Tony Lindgren <tony@atomide.com> Reviewed-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: sdhci-acpi: enable sdhci-acpi device to suspend/resume asynchronouslyFu, Zhonghui2016-02-29
| | | | | | | | | | | | | | | | | | | | | | | | This patch enables sdhci-acpi devices to suspend/resume asynchronously. This will improve system suspend/resume speed. After enabling the sdhci-acpi devices and all their child devices to suspend/resume asynchronously on ASUS T100TA, the system suspend-to-idle time is reduced from 1645ms to 1089ms, and the system resume time is reduced from 940ms to 908ms. Signed-off-by: Zhonghui Fu <zhonghui.fu@linux.intel.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: core: enable mmc host device to suspend/resume asynchronouslyFu, Zhonghui2016-02-29
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch enables mmc hosts to suspend/resume asynchronously. This will improve system suspend/resume speed. After applying this patch and enabling all mmc hosts' child devices to suspend/resume asynchronously on ASUS T100TA, the system suspend-to-idle time is reduced from 1645ms to 1107ms, and the system resume time is reduced from 940ms to 914ms. Signed-off-by: Zhonghui Fu <zhonghui.fu@linux.intel.com> Acked-by: Venu Byravarasu <vbyravarasu@nvidia.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: sunxi: Support vqmmc regulatorChen-Yu Tsai2016-02-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | eMMC chips require 2 power supplies, vmmc for internal logic, and vqmmc for driving output buffers. vqmmc also controls signaling voltage. Most boards we've seen use the same regulator for both, nevertheless the 2 have different usages, and should be set separately. This patch adds support for vqmmc regulator supply, including voltage switching. The MMC core can use this to try different signaling voltages for eMMC. Signed-off-by: Chen-Yu Tsai <wens@csie.org> Acked-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: sunxi: Return error on mmc_regulator_set_ocr() fail in .set_ios opChen-Yu Tsai2016-02-29
| | | | | | | | | | | | | | | | | | Let .set_ios() fail if mmc_regulator_set_ocr() fails to enable and set a proper voltage for vmmc. Signed-off-by: Chen-Yu Tsai <wens@csie.org> Acked-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: sunxi: Document host init sequenceChen-Yu Tsai2016-02-29
| | | | | | | | | | | | | | | | | | | | | | sunxi_mmc_init_host() originated from Allwinner kernel sources. The magic numbers written to various registers was never documented. Add comments for values found in Allwinner user manuals. Signed-off-by: Chen-Yu Tsai <wens@csie.org> Acked-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: sdhci-iproc: Actually enable the clockStefan Wahren2016-02-29
| | | | | | | | | | | | | | | | | | | | | | | | | | The RPi firmware-based clocks driver can actually disable unused clocks, so when switching to use it we ended up losing our MMC clock once all devices were probed. This patch adopts the changes from 1e5a0a9a58e2 ("mmc: sdhci-bcm2835: Actually enable the clock") to sdhci-iproc. Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> Acked-by: Scott Branden <sbranden@broadcom.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: debugfs: Add a restriction to mmc debugfs clock settingChuanxiao Dong2016-02-29
| | | | | | | | | | | | | | | | | | Clock frequency values written to an mmc host should not be less than the minimum clock frequency which the mmc host supports. Signed-off-by: Yuan Juntao <juntaox.yuan@intel.com> Signed-off-by: Pawel Wodkowski <pawelx.wodkowski@intel.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: sdhci-iproc: Clean up platform allocations if shdci init failsStefan Wahren2016-02-29
| | | | | | | | | | | | | | | | | | This patch adopts the changes from 475c9e43bfa7 ("mmc: sdhci-bcm2835: Clean up platform allocations if sdhci init fails") to sdhci-iproc. Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> Acked-by: Scott Branden <sbranden@broadcom.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: sdhci-of-arasan: Remove no-hispd and no-cmd23 quirks for sdhci-arasan4.9aRameshwar Prasad Sahu2016-02-29
| | | | | | | | | | | | | | | | | | | | | | The Arason SD host controller supports set block count command (cmd23) and high speed mode. This patch re-enable both of these features that was disabled. For device that doesn't support high speed, it should configure its capability register accordingly instead disables it explicitly. Signed-off-by: Rameshwar Prasad Sahu <rsahu@apm.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: host: omap_hsmmc: add a verbose print to enable CONFIG_REGULATOR_PBIASKishon Vijay Abraham I2016-02-29
| | | | | | | | | | | | | | | | | | | | | | | | Since v4.3+, CONFIG_REGULATOR_PBIAS should be enabled (for platforms that have PBIAS regulator) in order for MMC1 to work. Add a more verbose print to help enable CONFIG_REGULATOR_PBIAS for users using a olddefconfig or a custom .config. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Acked-by: Sebastian Reichel <sre@kernel.org> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: remove unnecessary assignment statements before returnMasahiro Yamada2016-02-29
| | | | | | | | | | | | | | Variable assignment just before return is redundant. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: core: pwrseq_simple: remove unused header filePeter Chen2016-02-29
| | | | | | | | | | Signed-off-by: Peter Chen <peter.chen@freescale.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: usdhi6rol0: use to_delayed_workGeliang Tang2016-02-29
| | | | | | | | | | | | | | Use to_delayed_work() instead of open-coding it. Signed-off-by: Geliang Tang <geliangtang@163.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: sh_mmcif: use to_delayed_workGeliang Tang2016-02-29
| | | | | | | | | | | | | | Use to_delayed_work() instead of open-coding it. Signed-off-by: Geliang Tang <geliangtang@163.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: sdricoh_cs: Less checks in sdricoh_init_mmc() after, error detectionMarkus Elfring2016-02-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This issue was detected by using the Coccinelle software. Two pointer checks could be repeated by the sdricoh_init_mmc() function during error handling even if the relevant properties can be determined for the involved variables before by source code analysis. * This implementation detail could be improved by adjustments for jump targets according to the Linux coding style convention. * Drop an unnecessary initialisation for the variable "mmc" then. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
| * mmc: sdricoh_cs: Delete unnecessary variable initialisationsMarkus Elfring2016-02-29
| | | | | | | | | | | | | | | | | | | | | | | | These variables will eventually be set to an appropriate value a bit later. * host * iobase * result Thus let us omit the explicit initialisation at the beginning. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
* | Merge tag 'tty-4.6-rc1' of ↵Linus Torvalds2016-03-17
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty Pull tty/serial updates from Greg KH: "Here's the big tty/serial driver pull request for 4.6-rc1. Lots of changes in here, Peter has been on a tear again, with lots of refactoring and bugs fixes, many thanks to the great work he has been doing. Lots of driver updates and fixes as well, full details in the shortlog. All have been in linux-next for a while with no reported issues" * tag 'tty-4.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (220 commits) serial: 8250: describe CONFIG_SERIAL_8250_RSA serial: samsung: optimize UART rx fifo access routine serial: pl011: add mark/space parity support serial: sa1100: make sa1100_register_uart_fns a function tty: serial: 8250: add MOXA Smartio MUE boards support serial: 8250: convert drivers to use up_to_u8250p() serial: 8250/mediatek: fix building with SERIAL_8250=m serial: 8250/ingenic: fix building with SERIAL_8250=m serial: 8250/uniphier: fix modular build Revert "drivers/tty/serial: make 8250/8250_ingenic.c explicitly non-modular" Revert "drivers/tty/serial: make 8250/8250_mtk.c explicitly non-modular" serial: mvebu-uart: initial support for Armada-3700 serial port serial: mctrl_gpio: Add missing module license serial: ifx6x60: avoid uninitialized variable use tty/serial: at91: fix bad offset for UART timeout register tty/serial: at91: restore dynamic driver binding serial: 8250: Add hardware dependency to RT288X option TTY, devpts: document pty count limiting tty: goldfish: support platform_device with id -1 drivers: tty: goldfish: Add device tree bindings ...
| * Merge 4.5-rc4 into tty-nextGreg Kroah-Hartman2016-02-14
| |\ | | | | | | | | | | | | | | | We want the fixes in here, and this resolves a merge error in tty_io.c Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * | tty: Use termios c_*flag macrosPeter Hurley2016-01-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Expressions of the form "tty->termios.c_*flag & FLAG" are more clearly expressed with the termios flags macros, I_FLAG(), C_FLAG(), O_FLAG(), and L_FLAG(). Convert treewide. Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Acked-by: Johan Hovold <johan@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* | | mmc: omap_hsmmc: Fix PM regression with deferred probe for pm_runtime_reinitTony Lindgren2016-02-15
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 5de85b9d57ab ("PM / runtime: Re-init runtime PM states at probe error and driver unbind") introduced pm_runtime_reinit() that is used to reinitialize PM runtime after -EPROBE_DEFER. This allows shutting down the device after a failed probe. However, for drivers using pm_runtime_use_autosuspend() this can cause a state where suspend callback is never called after -EPROBE_DEFER. On the following device driver probe, hardware state is different from the PM runtime state causing omap_device to produce the following error: omap_device_enable() called from invalid state 1 And with omap_device and omap hardware being picky for PM, this will block any deeper idle states in hardware. The solution is to fix the drivers to follow the PM runtime documentation: 1. For sections of code that needs the device disabled, use pm_runtime_put_sync_suspend() if pm_runtime_set_autosuspend() has been set. 2. For driver exit code, use pm_runtime_dont_use_autosuspend() before pm_runtime_put_sync() if pm_runtime_use_autosuspend() has been set. Fixes: 5de85b9d57ab ("PM / runtime: Re-init runtime PM states at probe error and driver unbind") Cc: linux-mmc@vger.kernel.org Cc: Alan Stern <stern@rowland.harvard.edu> Cc: Kevin Hilman <khilman@baylibre.com> Cc: Nishanth Menon <nm@ti.com> Cc: Rafael J. Wysocki <rafael@kernel.org> Cc: Ulf Hansson <ulf.hansson@linaro.org> Cc: Tero Kristo <t-kristo@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
* | Revert "mmc: block: don't use parameter prefix if built as module"Ulf Hansson2016-02-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 829b6962f7e3cfc06f7c5c26269fd47ad48cf503. Revert this change as it causes a sysfs path to change and therefore introduces and ABI regression. More precisely Android's vold is not being able to access /sys/module/mmcblk/parameters/perdev_minors any more, since the path becomes changed to: "/sys/module/mmc_block/..." Fixes: 829b6962f7e3 ("mmc: block: don't use parameter prefix if built as module") Reported-by: John Stultz <john.stultz@linaro.org> Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
* | mmc: sdhci-acpi: Fix card detect race for Intel BXT/APLAdrian Hunter2016-02-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Intel BXT/APL use a card detect GPIO however the host controller will not enable bus power unless it's card detect also reflects the presence of a card. Unfortunately those 2 things race which can result in commands not starting, after which the controller does nothing and there is a 10 second wait for the driver's 10-second timer to timeout. That is fixed by having the driver look also at the present state register to determine if the card is present. Consequently, provide a 'get_cd' mmc host operation for BXT/APL that does that. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Cc: stable@vger.kernel.org # v4.4+ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
* | mmc: sdhci-pci: Fix card detect race for Intel BXT/APLAdrian Hunter2016-02-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Intel BXT/APL use a card detect GPIO however the host controller will not enable bus power unless it's card detect also reflects the presence of a card. Unfortunately those 2 things race which can result in commands not starting, after which the controller does nothing and there is a 10 second wait for the driver's 10-second timer to timeout. That is fixed by having the driver look also at the present state register to determine if the card is present. Consequently, provide a 'get_cd' mmc host operation for BXT/APL that does that. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Cc: stable@vger.kernel.org # v4.4+ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
* | mmc: sdhci: Allow override of get_cd() called from sdhci_request()Adrian Hunter2016-02-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Drivers may need to provide their own get_cd() mmc host op, but currently the internals of the current op (sdhci_get_cd()) are provided by sdhci_do_get_cd() which is also called from sdhci_request(). To allow override of the get_cd functionality, change sdhci_request() to call ->get_cd() instead of sdhci_do_get_cd(). Note, in the future the call to ->get_cd() will likely be removed from sdhci_request() since most drivers don't need actually it. However this change is being done now to facilitate a subsequent bug fix. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Cc: stable@vger.kernel.org # v4.4+ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
* | mmc: sdhci: Allow override of mmc host operationsAdrian Hunter2016-02-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the past, fixes for specific hardware devices were implemented in sdhci using quirks. That approach is no longer accepted because the growing number of quirks was starting to make the code difficult to understand and maintain. One alternative to quirks, is to allow drivers to override the default mmc host operations. This patch makes it easy to do that, and it is needed for a subsequent bug fix, for which separate patches are provided. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Cc: stable@vger.kernel.org # v4.4+ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
* | mmc: sh_mmcif: Correct TX DMA channel allocationChris Paterson2016-02-10
| | | | | | | | | | | | | | | | | | | | | | | | Commit 27cbd7e815a8 ("mmc: sh_mmcif: rework dma channel handling") introduced a typo causing the TX DMA channel allocation to be overwritten by the requested RX DMA channel. Fixes: 27cbd7e815a8 ("mmc: sh_mmcif: rework dma channel handling") Signed-off-by: Chris Paterson <chris.paterson2@renesas.com> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
* | mmc: block: return error on failed mmc_blk_get()Olof Johansson2016-02-10
| | | | | | | | | | | | | | | | | | | | | | | | | | This used to return -EFAULT, but the function above returns -EINVAL on the same condition so let's stick to that. The removal of error return on this path was introduced with b093410c9aef ('mmc: block: copy resp[] data on err for MMC_IOC_MULTI_CMD'). Fixes: b093410c9aef ('mmc: block: copy resp[] data on err for MMC_IOC_MULTI_CMD'). Signed-off-by: Olof Johansson <olof@lixom.net> Cc: Grant Grundler <grundler@google.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
* | mmc: pxamci: fix the device-tree probe deferral pathRobert Jarzmik2016-02-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the gpio driver is probed after the mmc one, the read/write gpio and card detection one return -EPROBE_DEFER. Unfortunately, the memory region remains requested, and upon the next probe, the probe will fail anyway with -EBUSY. Fix this by releasing the memory resource upon probe failure. More broadly, this patch uses devm_*() primitives whenever possible in the probe function. Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
* | mmc: mmc_spi: add checks for dma mapping errorAlexey Khoroshilov2016-02-08
| | | | | | | | | | | | | | | | | | | | | | There is no checks for dma mapping errors in mmc_spi. Tha patch fixes that and by the way it adds dma_unmap_single(ones_dma) that was left on a failure path mmc_spi_probe(). Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
* | mmc: sdhci-of-at91: fix pm runtime unbalanced issue in error pathJisheng Zhang2016-02-02
| | | | | | | | | | | | | | | | | | | | | | | | | | The device power usage counter is increased by pm_runtime_get_noresume but isn't decreased in err_add_host error path. Fix this issue by calling pm_runtime_put_noidle() in the error path to restore the device's power usage counter. Signed-off-by: Jisheng Zhang <jszhang@marvell.com> Acked-by: Ludovic Desroches <ludovic.desroches@atmel.com> Fixes: f5f17813ae9b ("mmc: sdhci-of-at91: add PM support) Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
* | mmc: pxamci: fix again read-only gpio detection polarityRobert Jarzmik2016-02-02
|/ | | | | | | | | | | | | | | | The commit fixing the conversion of pxamci to slot-gpio API fixed the inverted the logic of the read-only gpio. Unfortunately, the commit was tested on a non-inverted gpio, and not on the inverted one. And the fix did work partially, by luck. This is the remaining missing part of the fix, trivial but still necessary. Fixes: Fixes: 26d49fe71953 ("mmc: pxamci: fix read-only gpio detection polarity") Reported-by: Andrea Adami <andrea.adami@gmail.com> Tested-by: Andrea Adami <andrea.adami@gmail.com> Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> Cc: stable@vger.kernel.org Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
* Merge tag 'mmc-v4.5-rc1' of git://git.linaro.org/people/ulf.hansson/mmcLinus Torvalds2016-01-22
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pull MMC fixes from Ulf Hansson: "Here are some mmc fixes intended for v4.5 rc1. MMC core: - Restore reset-gpios to be optional in pwrseq_simple - Allow SDIO tuple for CISTPL_SDIO_STD - Print correct voltage value in debugfs - Enable tuning according to the actual timing - Limit SD card power limit according to cards capabilities MMC host: - tmio_mmc_dma: don't print invalid DMA cookie - mmci: Pick the correct variant and allow 8-bit mode for Nomadik" * tag 'mmc-v4.5-rc1' of git://git.linaro.org/people/ulf.hansson/mmc: mmc: pwrseq_simple: Make reset-gpios optional to match doc mmc: sdio_cis: fix unknown tuple for CISTPL_SDIO_STD mmc: debugfs: correct wrong voltage value mmc: tmio_mmc_dma: don't print invalid DMA cookie mmc: core: Enable tuning according to the actual timing mmc: mmci: support 8bit mode on the Nomadik mmc: mmci: fix an ages old detection error mmc: sd: limit SD card power limit according to cards capabilities
| * mmc: pwrseq_simple: Make reset-gpios optional to match docMartin Fuzzey2016-01-21
| | | | | | | | | | | | | | | | | | | | | | | | | | The DT binding doc says reset-gpios is an optional property but the code currently bails out if it is omitted. This is a regression since it breaks previously working device trees. Fix it by restoring the original documented behaviour. Fixes: ce037275861e ("mmc: pwrseq_simple: use GPIO descriptors array API") Tested-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Martin Fuzzey <mfuzzey@parkeon.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>