aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc/host
Commit message (Collapse)AuthorAgeFilesLines
* Revert "[espresso] mmc: disable MMC_CAP_ERASE for espresso"Andreas Blaesius2016-09-241-4/+0
| | | | | | | | | | | | This reverts commit e52a59ac9551a05be05cdb67540628ce6d457d78. - "moviNAND VHX 4.41 DISCARD feature" is added to our kernel which should prevent MAG2GA eMMC from damage (official Samsung patch) - without TRIM emmc lifetime is shorter, it's now possible again on supported eMMC Change-Id: I1c11936a9732eb16f3fac6539f3b7d8967a2f895
* mmc: omap44XX: Fix Errata FSMR: Fix FSM reset timeViswanath Puttagunta2016-05-021-8/+3
| | | | | | | | | | | MMC FSM is expected to take a maximum time of 100us to get reset. Change-Id: Ia3407cf77671bc8a5cd10375acbb2fb1c95befa4 Signed-off-by: Viswanath Puttagunta <vishp@ti.com> Conflicts: drivers/mmc/host/omap_hsmmc.c
* mmc: omap44XX: Fix errata FSMR: Finite State Machine resetViswanath Puttagunta2016-05-021-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | Errata Description: After the SYSCTL.SRC or SYSCTL.SRD bit is set to reset the Clock or Data finite state machine, there is a delay before which the reset process actually starts. So, if we just wait for SRC/SRC bit to get cleared immediately after software sets the bit, then then we might exit out of loop even before the reset process even starts. Applies to: OMAP4430 Series greater than ES1.0 OMAP4460 All series OMAP4470 All series Workaround: First wait for the SYSCTL.SRC/SRD bit to get set, and then wait for the bit to get reset. Change-Id: Id026a99d4b5f7a36d68ddb33fcfd26e24fc1f0af Signed-off-by: Viswanath Puttagunta <vishp@ti.com> Conflicts: drivers/mmc/host/omap_hsmmc.c
* [espresso] mmc: disable MMC_CAP_ERASE for espressoKetut Putu Kumajaya2016-04-301-0/+4
| | | | Change-Id: Id8d3f807cfb5f7344a80a6a15e422d8472444d42
* Merge remote-tracking branch 'linux-stable/linux-3.0.y' into ↵Ziyan2015-10-255-8/+10
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | p-android-omap-3.0-dev-espresso Conflicts: Makefile arch/arm/include/asm/hardware/cache-l2x0.h arch/arm/kernel/smp.c arch/arm/mach-omap2/board-4430sdp.c arch/arm/mach-omap2/board-omap4panda.c arch/arm/mach-omap2/opp.c arch/ia64/include/asm/futex.h drivers/bluetooth/ath3k.c drivers/bluetooth/btusb.c drivers/firmware/efivars.c drivers/gpu/drm/i915/intel_lvds.c drivers/gpu/drm/radeon/radeon_atombios.c drivers/gpu/drm/radeon/radeon_irq_kms.c drivers/hwmon/fam15h_power.c drivers/mfd/twl6030-irq.c drivers/mmc/core/sdio.c drivers/net/tun.c drivers/net/usb/ipheth.c drivers/net/usb/usbnet.c drivers/usb/core/hub.c drivers/usb/host/xhci-mem.c drivers/usb/host/xhci.h drivers/usb/musb/omap2430.c drivers/usb/serial/ftdi_sio.c drivers/usb/serial/ftdi_sio_ids.h drivers/usb/serial/option.c drivers/usb/serial/qcserial.c drivers/usb/serial/ti_usb_3410_5052.c drivers/usb/serial/ti_usb_3410_5052.h drivers/video/omap2/dss/hdmi.c fs/splice.c include/asm-generic/pgtable.h include/net/sch_generic.h kernel/cgroup.c kernel/futex.c kernel/time/timekeeping.c net/ipv4/route.c net/ipv4/syncookies.c net/ipv4/tcp_ipv4.c net/wireless/util.c security/commoncap.c sound/soc/soc-dapm.c
| * mmc: sdhci-s3c: fix the wrong number of max bus clocksJaehoon Chung2012-12-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 5feb54a1ab91a237e247c013b8c4fb100ea347b1 upstream. We can use up to four bus-clocks; but on module remove, we didn't disable the fourth bus clock. Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Chris Ball <cjb@laptop.org> Cc: Ben Hutchings <ben@decadent.org.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * mmc: Prevent 1.8V switch for SD hosts that don't support UHS modes.Al Cooper2012-10-021-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 4188bba0e9e7ba58d231b528df495666f2742b74 upstream. The driver should not try to switch to 1.8V when the SD 3.0 host controller does not have any UHS capabilities bits set (SDR50, DDR50 or SDR104). See page 72 of "SD Specifications Part A2 SD Host Controller Simplified Specification Version 3.00" under "1.8V Signaling Enable". Instead of setting SDR12 and SDR25 in the host capabilities data structure for all V3.0 host controllers, only set them if SDR104, SDR50 or DDR50 is set in the host capabilities register. This will prevent the switch to 1.8V later. Signed-off-by: Al Cooper <acooper@gmail.com> Acked-by: Arindam Nath <arindam.nath@amd.com> Acked-by: Philip Rakity <prakity@marvell.com> Acked-by: Girish K S <girish.shivananjappa@linaro.org> Signed-off-by: Chris Ball <cjb@laptop.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * mmc: sdhci-esdhc: break out early if clock is 0Shawn Guo2012-10-021-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 74f330bceaa7b88d06062e1cac3d519a3dfc041e upstream. Since commit 30832ab56 ("mmc: sdhci: Always pass clock request value zero to set_clock host op") was merged, esdhc_set_clock starts hitting "if (clock == 0)" where ESDHC_SYSTEM_CONTROL has been operated. This causes SDHCI card-detection function being broken. Fix the regression by moving "if (clock == 0)" above ESDHC_SYSTEM_CONTROL operation. Signed-off-by: Shawn Guo <shawn.guo@linaro.org> Signed-off-by: Chris Ball <cjb@laptop.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * mmc: mxs-mmc: fix deadlock in SDIO IRQ caseLauri Hintsala2012-10-021-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 1af36b2a993dddfa3d6860ec4879c9e8abc9b976 upstream. Release the lock before mmc_signal_sdio_irq is called by mxs_mmc_irq_handler. Backtrace: [ 79.660000] ============================================= [ 79.660000] [ INFO: possible recursive locking detected ] [ 79.660000] 3.4.0-00009-g3e96082-dirty #11 Not tainted [ 79.660000] --------------------------------------------- [ 79.660000] swapper/0 is trying to acquire lock: [ 79.660000] (&(&host->lock)->rlock#2){-.....}, at: [<c026ea3c>] mxs_mmc_enable_sdio_irq+0x18/0xd4 [ 79.660000] [ 79.660000] but task is already holding lock: [ 79.660000] (&(&host->lock)->rlock#2){-.....}, at: [<c026f744>] mxs_mmc_irq_handler+0x1c/0xe8 [ 79.660000] [ 79.660000] other info that might help us debug this: [ 79.660000] Possible unsafe locking scenario: [ 79.660000] [ 79.660000] CPU0 [ 79.660000] ---- [ 79.660000] lock(&(&host->lock)->rlock#2); [ 79.660000] lock(&(&host->lock)->rlock#2); [ 79.660000] [ 79.660000] *** DEADLOCK *** [ 79.660000] [ 79.660000] May be due to missing lock nesting notation [ 79.660000] [ 79.660000] 1 lock held by swapper/0: [ 79.660000] #0: (&(&host->lock)->rlock#2){-.....}, at: [<c026f744>] mxs_mmc_irq_handler+0x1c/0xe8 [ 79.660000] [ 79.660000] stack backtrace: [ 79.660000] [<c0014bd0>] (unwind_backtrace+0x0/0xf4) from [<c005f9c0>] (__lock_acquire+0x1948/0x1d48) [ 79.660000] [<c005f9c0>] (__lock_acquire+0x1948/0x1d48) from [<c005fea0>] (lock_acquire+0xe0/0xf8) [ 79.660000] [<c005fea0>] (lock_acquire+0xe0/0xf8) from [<c03a8460>] (_raw_spin_lock_irqsave+0x44/0x58) [ 79.660000] [<c03a8460>] (_raw_spin_lock_irqsave+0x44/0x58) from [<c026ea3c>] (mxs_mmc_enable_sdio_irq+0x18/0xd4) [ 79.660000] [<c026ea3c>] (mxs_mmc_enable_sdio_irq+0x18/0xd4) from [<c026f7fc>] (mxs_mmc_irq_handler+0xd4/0xe8) [ 79.660000] [<c026f7fc>] (mxs_mmc_irq_handler+0xd4/0xe8) from [<c006bdd8>] (handle_irq_event_percpu+0x70/0x254) [ 79.660000] [<c006bdd8>] (handle_irq_event_percpu+0x70/0x254) from [<c006bff8>] (handle_irq_event+0x3c/0x5c) [ 79.660000] [<c006bff8>] (handle_irq_event+0x3c/0x5c) from [<c006e6d0>] (handle_level_irq+0x90/0x110) [ 79.660000] [<c006e6d0>] (handle_level_irq+0x90/0x110) from [<c006b930>] (generic_handle_irq+0x38/0x50) [ 79.660000] [<c006b930>] (generic_handle_irq+0x38/0x50) from [<c00102fc>] (handle_IRQ+0x30/0x84) [ 79.660000] [<c00102fc>] (handle_IRQ+0x30/0x84) from [<c000f058>] (__irq_svc+0x38/0x60) [ 79.660000] [<c000f058>] (__irq_svc+0x38/0x60) from [<c0010520>] (default_idle+0x2c/0x40) [ 79.660000] [<c0010520>] (default_idle+0x2c/0x40) from [<c0010a90>] (cpu_idle+0x64/0xcc) [ 79.660000] [<c0010a90>] (cpu_idle+0x64/0xcc) from [<c04ff858>] (start_kernel+0x244/0x2c8) [ 79.660000] BUG: spinlock lockup on CPU#0, swapper/0 [ 79.660000] lock: c398cb2c, .magic: dead4ead, .owner: swapper/0, .owner_cpu: 0 [ 79.660000] [<c0014bd0>] (unwind_backtrace+0x0/0xf4) from [<c01ddb1c>] (do_raw_spin_lock+0xf0/0x144) [ 79.660000] [<c01ddb1c>] (do_raw_spin_lock+0xf0/0x144) from [<c03a8468>] (_raw_spin_lock_irqsave+0x4c/0x58) [ 79.660000] [<c03a8468>] (_raw_spin_lock_irqsave+0x4c/0x58) from [<c026ea3c>] (mxs_mmc_enable_sdio_irq+0x18/0xd4) [ 79.660000] [<c026ea3c>] (mxs_mmc_enable_sdio_irq+0x18/0xd4) from [<c026f7fc>] (mxs_mmc_irq_handler+0xd4/0xe8) [ 79.660000] [<c026f7fc>] (mxs_mmc_irq_handler+0xd4/0xe8) from [<c006bdd8>] (handle_irq_event_percpu+0x70/0x254) [ 79.660000] [<c006bdd8>] (handle_irq_event_percpu+0x70/0x254) from [<c006bff8>] (handle_irq_event+0x3c/0x5c) [ 79.660000] [<c006bff8>] (handle_irq_event+0x3c/0x5c) from [<c006e6d0>] (handle_level_irq+0x90/0x110) [ 79.660000] [<c006e6d0>] (handle_level_irq+0x90/0x110) from [<c006b930>] (generic_handle_irq+0x38/0x50) [ 79.660000] [<c006b930>] (generic_handle_irq+0x38/0x50) from [<c00102fc>] (handle_IRQ+0x30/0x84) [ 79.660000] [<c00102fc>] (handle_IRQ+0x30/0x84) from [<c000f058>] (__irq_svc+0x38/0x60) [ 79.660000] [<c000f058>] (__irq_svc+0x38/0x60) from [<c0010520>] (default_idle+0x2c/0x40) [ 79.660000] [<c0010520>] (default_idle+0x2c/0x40) from [<c0010a90>] (cpu_idle+0x64/0xcc) [ 79.660000] [<c0010a90>] (cpu_idle+0x64/0xcc) from [<c04ff858>] (start_kernel+0x244/0x2c8) Signed-off-by: Lauri Hintsala <lauri.hintsala@bluegiga.com> Acked-by: Shawn Guo <shawn.guo@linaro.org> Signed-off-by: Chris Ball <cjb@laptop.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * mmc: sdhci-pci: CaFe has broken card detectionDaniel Drake2012-08-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 55fc05b7414274f17795cd0e8a3b1546f3649d5e upstream. At http://dev.laptop.org/ticket/11980 we have determined that the Marvell CaFe SDHCI controller reports bad card presence during resume. It reports that no card is present even when it is. This is a regression -- resume worked back around 2.6.37. Around 400ms after resuming, a "card inserted" interrupt is generated, at which point it starts reporting presence. Work around this hardware oddity by setting the SDHCI_QUIRK_BROKEN_CARD_DETECTION flag. Thanks to Chris Ball for helping with diagnosis. Signed-off-by: Daniel Drake <dsd@laptop.org> Signed-off-by: Chris Ball <cjb@laptop.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * mmc: unbreak sdhci-esdhc-imx on i.MX25Eric Bénard2012-05-071-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit b89152824f993a9572b47eb31f4579feadeac34c upstream. This was broken by me in 37865fe91582582a6f6c00652f6a2b1ff71f8a78 ("mmc: sdhci-esdhc-imx: fix timeout on i.MX's sdhci") where more extensive tests would have shown that read or write of data to the card were failing (even if the partition table was correctly read). Signed-off-by: Eric Bénard <eric@eukrea.com> Acked-by: Wolfram Sang <w.sang@pengutronix.de> Signed-off-by: Chris Ball <cjb@laptop.org> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * mmc: atmel-mci: correct data timeout computationLudovic Desroches2012-04-131-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 66292ad92c6d3f2f1c137a1c826b331ca8595dfd upstream. The HSMCI operates at a rate of up to Master Clock divided by two. Moreover previous calculation can cause overflows and so wrong timeouts. Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com> Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: Chris Ball <cjb@laptop.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| * mmc: sdhci-esdhc-imx: fix for mmc cards on i.MX5Sascha Hauer2012-03-121-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 5b6b0ad6e572b32a641116aaa5f897ffebe31e44 upstream. On i.MX53 we have to write a special SDHCI_CMD_ABORTCMD to the SDHCI_TRANSFER_MODE register during a MMC_STOP_TRANSMISSION command. This works for SD cards. However, with MMC cards the MMC_SET_BLOCK_COUNT command is used instead, but this needs the same handling. Fix MMC cards by testing for the MMC_SET_BLOCK_COUNT command aswell. Tested on a custom i.MX53 board with a Transcend MMC+ card and eMMC. The kernel started used MMC_SET_BLOCK_COUNT in 3.0, so this is a regression for these boards introduced in 3.0; it should go to 3.0/3.1/3.2-stable. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Acked-by: Shawn Guo <shawn.guo@linaro.org> Signed-off-by: Chris Ball <cjb@laptop.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* | OMAP_HSMMC: Migration to IRQ threaded handlerNaga Venkata Srikanth V2012-12-141-26/+7
| | | | | | | | | | | | | | | | | | Changed the mmc card detect request_irq() to request_threaded_irq(). Removed sceduled work in the ISR and replaced with thread. Change-Id: I02c1fb0353bd3a7ce939a80e0f8cd57c4aafec8c Signed-off-by: Naga Venkata Srikanth V <vnv.srikanth@samsung.com> Signed-off-by: Oleg_Kosheliev <oleg.kosheliev@ti.com>
* | omap-hsmmc: Implementation of i761 errataSemen Protsenko2012-07-091-0/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Errata description: Due to a bad behavior of an internal signal, the Card Error interrupt bit MMCHS_STAT[28] CERR may not be set sometimes when an error occurred in the card response. Workaround: After responses of type R1/R1b for all cards and responses of type R5/R5b/R6 for SD and SDIO cards, software must read two registers: MMCHS_RSP10 and MMCHS_CSRE. When a MMCHS_CSRE[i] bit is set to 1, if the corresponding bit at the same position in the response MMCHS_RSP10[i] is set to 1, the host controller indicates a card error and software should proceed in the same way as if a CERR interrupt would have been detected in the MMCHS_STAT register. Note: This errata is applicable for omap44xx. Change-Id: Ib024bfb0624df04b7d6c61c129cbd9a34f919814 Signed-off-by: Semen Protsenko <semen.protsenko@ti.com>
* | mmc: new api mmc_release_host_sync()Viswanath Puttagunta2012-06-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current mmc API to release a specific mmc host mmc_release_host() does not call host specific disable() function immediately, but schedules it to be called with some delay. Sometimes, during suspend/resume operations, this is causing host->disable() function not to be called before suspend and so the resources associated with host are not released resulting in clocks not being released. The new API mmc_release_host_sync() calls mmc_host_disable() immediately instead of calling mmc_host_lazy_diable(). Change-Id: I64f3c8a96c29d9f4cff0382a3fe131faf48f2da1 Signed-off-by: Viswanath Puttagunta <vishp@ti.com> Signed-off-by: Leonid Iziumtsev <x0153368@ti.com>
* | OMAP4: DPLL cascading: The HSMMC output clock handling to support DPLL cascadingMadhusudhan Chikkature2012-06-181-0/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | The HSMMC1 output clock will change from 96MHz to 49MHz upon entry to DPLL cascading mode. This patch modifies the MMC1 divisor to handle the change in clock frequency. [Andrii Tseglytskyi <andrii.tseglytskyi@ti.com>: Ported and adapted to p-android-omap-3.0] Change-Id: Ia52425132bfcc80489b39cb5562dc86cc483cb83 Signed-off-by: Madhusudhan Chikkature <madhu.cr@ti.com> Signed-off-by: Andrii Tseglytskyi <andrii.tseglytskyi@ti.com>
* | omap-hsmmc: Prevent possible race conditionSemen Protsenko2012-06-151-13/+6
| | | | | | | | | | | | | | | | | | Making mmc_host_enable() and mmc_host_disable() invocations exclusive to prevent race condition that occurs on specific board configurations based on Blaze platform when repeated suspend/resume performed. Change-Id: Ia709c2e0a4e19a0abb1cfbe7651c838b7c13fc1c Signed-off-by: Semen Protsenko <semen.protsenko@ti.com>
* | Merge latest changes from google kernel/common.gitRoman Shaposhnikov2012-06-132-5/+12
| | | | | | | | | | | | | | Kernel version updated to 3.0.31 Change-Id: Ifbd7150801f3beeec9cbaa566f249d8019ef9348 Signed-off-by: Roman Shaposhnikov <x0166637@ti.com>
* | mmc: omap: Increase number of blks we can handleViswanath Puttagunta2012-03-021-5/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The above block layer is doing a "min" of max_req_size and max_blk_count*512 before submitting each request. As a result, the maximum size of request we are getting is only 120*512 = 60KB even though each line in the ADMA table can handle can handle that data alone. So, we increase the max_blk_count we can handle. Also, note that worst case is when above block layer gives us 512 segments, in which there are 511 single block entries, but one large block that is of size mmc->max_req_size - (511*512) bytes. In this case, we use the reserved 512 table entries to break up the large request. Also adjust the max_segs accordingly. Change-Id: I733effdebea94f51a49bbf323950529afbb00dc4 Signed-off-by: Viswanath Puttagunta <vishp@ti.com>
* | Re-Merge branch 'android-omap-3.0' into p-android-omap-3.0Dan Murphy2012-02-171-0/+1
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: arch/arm/mach-omap2/Kconfig arch/arm/mach-omap2/omap_twl.c drivers/mmc/host/omap_hsmmc.c drivers/usb/gadget/android.c drivers/video/hdmi_ti_4xxx_ip.c drivers/video/omap2/dss/hdmi.c fs/proc/base.c include/video/hdmi_ti_4xxx_ip.h sound/soc/codecs/twl6040.c sound/soc/omap/sdp4430.c Signed-off-by: Dan Murphy <dmurphy@ti.com>
| * \ Merge branch 'linux-omap-3.0' into android-omap-3.0Erik Gilling2012-01-271-5/+2
| |\ \
| | * | mmc: omap_hsmmc: Prevent calling mmc_host_lazy_disable() on suspend pathDmitry Shmidt2012-01-261-5/+2
| | | | | | | | | | | | | | | | Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
* | | | mmc: omap: align adma and dma table entriesVenkatraman S2012-02-151-8/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mmc->max_segs to core layer was set to 1024, but adma table entry could only hold 512 entries. Increase adma table entry size to 1024 from 512 to avoid mismatch. Also set max_blk_count, max_req_size to what adma can handle. Change-Id: I8e08ee39bfa966bdf8a6c4374aea82b34fedcc62 Signed-off-by: Viswanath Puttagunta <vishp@ti.com>
* | | | Merge branch 'linux-3.0.18' into p-android-omap-3.0Dan Murphy2012-02-024-9/+14
|\ \ \ \ | | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: arch/arm/mach-omap2/smartreflex.c drivers/i2c/busses/i2c-omap.c drivers/usb/host/ehci.h drivers/usb/musb/musb_core.c fs/proc/base.c Signed-off-by: Dan Murphy <dmurphy@ti.com>
| * | | mmc: sd: Fix SDR12 timing regressionAlexander Elbs2012-01-251-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit dd8df17fe83483d7ea06ff229895e35a42071599 upstream. This patch fixes a failure to recognize SD cards reported on a Dell Vostro with O2 Micro SD card reader. Patch 49c468f ("mmc: sd: add support for uhs bus speed mode selection") caused the problem, by setting the SDHCI_CTRL_HISPD flag even for legacy timings. Signed-off-by: Alexander Elbs <alex@segv.de> Acked-by: Philip Rakity <prakity@marvell.com> Acked-by: Arindam Nath <arindam.nath@amd.com> Signed-off-by: Chris Ball <cjb@laptop.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * | | mmc: sdhci: Fix tuning timer incorrect setting when suspending hostAaron Lu2012-01-251-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit c6ced0db08010ed75df221a2946c5228454b38d5 upstream. When suspending host, the tuning timer shoule be deactivated. And the HOST_NEEDS_TUNING flag should be set after tuning timer is deactivated. Signed-off-by: Philip Rakity <prakity@marvell.com> Signed-off-by: Aaron Lu <aaron.lu@amd.com> Acked-by: Adrian Hunter <adrian.hunter@intel.com> Signed-off-by: Chris Ball <cjb@laptop.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * | | ARM: 7220/1: mmc: mmci: Fixup error handling for dmaUlf Hansson2012-01-061-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 3b6e3c73851a9a4b0e6ed9d378206341dd65e8a5 upstream. When getting a cmd irq during an ongoing data transfer with dma, the dma job were never terminated. This is now corrected. Tested-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Per Forlin <per.forlin@stericsson.com> Signed-off-by: Ulf Hansson <ulf.hansson@stericsson.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * | | ARM: 7214/1: mmc: mmci: Fixup handling of MCI_STARTBITERRUlf Hansson2012-01-061-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit b63038d6f4ca5d1849ce01d9fc5bb9cb426dec73 upstream. The interrupt was previously enabled and then correctly cleared. Now we also handle it correctly. Tested-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Ulf Hansson <ulf.hansson@stericsson.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * | | mmc: vub300: fix type of firmware_rom_wait_states module parameterRusty Russell2012-01-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 61074287c2965edf0fc75b54ae8f4ce99f182669 upstream. You didn't mean this to be a bool. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Acked-by: Tony Olech <tony.olech@elandigitalsystems.com> Signed-off-by: Chris Ball <cjb@laptop.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * | | mmc: mxcmmc: fix falling back to PIOSascha Hauer2011-12-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit e58f516ff4730c4047c3f104b061f7a03e9a263c upstream. When we can't configure the dma channel we want to fall back to PIO. We do this by setting host->do_dma to zero. This does not work as do_dma is used to see whether dma can be used for the current transfer. Instead, we have to set host->dma to NULL. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Chris Ball <cjb@laptop.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* | | | omap_hsmmc: Errata: Fix SD card removal detectionViswanath Puttagunta2011-12-141-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Because of OMAP4 Silicon errata (i705), we have to turn off the PBIAS and VMMC for SD card as soon as we get card disconnect interrupt. Because of this, we don't wait for all higher layer structures to be dismantled before turning off power. As a side effect of this, we might end up getting a mmc_request even after SD is removed and VMMC and PBIAS are turned off. In that case, just fail the mmc_request and return immediately Change-Id: I8f0000587ebf8209f065cb85f678657c919dd135 Signed-off-by: Viswanath Puttagunta <vishp@ti.com>
* | | | Merge branch 'android-omap-3.0' into p-android-omap-3.0Dan Murphy2011-12-141-8/+1
|\ \ \ \ | | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: arch/arm/mach-omap2/pm44xx.c arch/arm/mach-omap2/smartreflex-class1p5.c arch/arm/mach-omap2/smartreflex.h arch/arm/mach-omap2/voltage.h drivers/remoteproc/remoteproc.c drivers/rpmsg/rpmsg_resmgr.c include/video/dsscomp.h Change-Id: I516310bbf02d4e6fc0d980e1755b2b35dfbc7ed4 Signed-off-by: Dan Murphy <dmurphy@ti.com>
| * | | Merge branch 'linux-omap-3.0' into android-omap-3.0Colin Cross2011-12-091-8/+1
| |\ \ \ | | | |/ | | |/|
| | * | mmc: omap_hsmmc: Call mmc_host_enable() in suspend only on success pathDmitry Shmidt2011-12-091-8/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Suspend failure means active sd/mmc device that is in the middle of bus access, and calling mmc_host_enable() in this case may have race condition when host->mmc->ops->enable() will not be called, but host->mmc->ops->disable() will be called and it will prevent device from talking to mmc controller. Warning: Previous behavior to have mmc_host_enable() on failure path during host->pdata->resume() is changed. Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
* | | | omap4-hsmmc : Adding ADMA supportDavid Taylor2011-11-231-14/+179
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds ADMA support for HSMMC controllers 1 & 2 on OMAP4 Ensure dma-sg list coming from block layer is unmapped after every transfer completion. Change-Id: I1b898f771a3119804920c5cd17ec9c4456c60916 Signed-off-by: Viswanath Puttagunta <vishp@ti.com> Signed-off-by: Kishore Kadiyala <kishore.kadiyala@ti.com> Signed-off-by: David Taylor <x0158378@ti.com>
* | | | Fix for Wi-Fi ON/OFF under regression scenario causing Kernel PanicChittim, Madhusudan2011-11-141-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Wifi enable/disable regression resulted in kernel crash. In regression scenario it was seen that access to registers were being done after call to disabling clocks while enable clocks had not happened. Fix for this was to replace the API with mmc_claim_host and mmc_release_host APIs which took care of enabling/disabling clocks along with incrementing and decrementing of counters. Change-Id: Ia135678a6857d1f1ff6828c0654c9d5aeeb20383 Signed-off-by: Chittim, Madhusudan <c-madhu@ti.com>
* | | | mmc: OMAP HSMMC: DDR support added.Balaji T K2011-11-101-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | OMAP HSMMC updated to support DDR mode Change-Id: Ifb8643e264216edf514a7e31ec989316700ee322 Signed-off-by: Viswanath Puttagunta <vishp@ti.com>
* | | | mmc: OMAP HSMMC: Add cmd23 supportBalaji T K2011-11-101-5/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for set block count, close ended transfer Change-Id: Iab7386e1171a42ebdf55306fbf291a3e6dd85b40 Signed-off-by: Viswanath Puttagunta <vishp@ti.com>
* | | | MMC: OMAP HSMMC: Enable Auto CMD12Balaji T K2011-11-101-3/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Configure OMAP HSMMC module to support Auto CMD12. This will increase throughput during multi-block command operations as CMD12 does not have to be explicitly sent each time by software intervention. Instead, hardware will send CMD12 after desired number of blocks are transferred. Change-Id: I37bf31399c80531d9fd76baa736a59a118c769b0 Signed-off-by: Viswanath Puttagunta <vishp@ti.com>
* | | | Merge branch 'android-omap-3.0' into p-android-omap-3.0Dan Murphy2011-11-091-4/+4
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * android-omap-3.0: (38 commits) OMAP:DSS:DSSCOMP: Avoid freeing a composition twice on set failure gpu: pvr: Update to DDK 1.8@550175 gpu: pvr: Update to DDK 1.8@334506 OMAP4: McASP: Move device creation to mach-omap2 omap: iovmm: move print to before free in sgtable_free OMAP4: temp_sensor: update throttling thresholds OMAP: clock: optimize dpll locking logic OMAP4: PM: Enable Auto VREF LPDDR I/O supply ion: fix build ASoC: omap-mcasp: Simplify device struct retrieval ASoC: omap-mcasp: Remove wrappers for start/stop ASoC: omap-mcasp: Remove redundant format check ASoC: omap-mcasp: Configure the channel status register ASoC: omap-mcasp: Relax allowed sample rates check usb: musb: omap2430: use proper signed variables net: wireless: bcm4329: Skip dhd_bus_stop() if bus is already down net: wireless: bcmdhd: Skip dhd_bus_stop() if bus is already down net: wireless: bcmdhd: Improve suspend/resume processing net: wireless: bcmdhd: Check if FW is Ok for internal FW call ion: export functions to enable usage by kernel modules ... Change-Id: I68419e93ae7b91ba33ddba06e853845caebb6905 Signed-off-by: Dan Murphy <dmurphy@ti.com>
| * | | Merge branch 'linux-omap-3.0' into android-omap-3.0Colin Cross2011-11-031-4/+2
| |\ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | Conflicts: drivers/mmc/host/omap_hsmmc.c Change-Id: I37eac90b9007a8a96fa25788126e2bf2b49255aa
| | * | Revert "mmc: omap_hsmmc: Skip mmc suspend/resume ops for SDIO device"Dmitry Shmidt2011-11-031-4/+2
| | | | | | | | | | | | | | | | This reverts commit 85255805d902a9f447ffd5d715deefb668152981.
| * | | mmc: omap_hsmmc: Keep MMC_PM_KEEP_POWER for built_in deviceDmitry Shmidt2011-11-021-0/+2
| | | | | | | | | | | | | | | | Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
* | | | omap-hsmmc: Fix issue during SD card disconnectViswanath Puttagunta2011-11-031-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Turning off IO & PBIAS cells and then SD card VMMC as soon as we get disconnect interrupt. Failure to do so is causing current spikes (latch-up issue)which can potentially burn the I/O cells. Enabled Debounce logic in TWL6030 so that erroneous disconnect/connect interrupts will be suppressed. This will also fix issue where SD card disconnect event was not getting detected when SD card is very slowly plugged out. Change-Id: I13f55451718b8cce3448245395b8d1344d4a2790 Signed-off-by: Viswanath Puttagunta <vishp@ti.com>
* | | | Merge branch 'android-omap-3.0' into p-android-omap-3.0Dan Murphy2011-10-313-19/+16
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * android-omap-3.0: (485 commits) ARM: omap: counter: add locking to read_persistent_clock ARM: smp_twd: use clockevents_update_freq to update frequency Revert "clockevents: Provide interface to reconfigure an active clock event device" OMAP3+: PM: SR/Class3: disable errorgen before disable VP OMAP3+: Smartreflex: fix err interrupt disable sequence OMAP4: PM: Add Static dependency MPU->L3_2 OMAP4 HDCP Add enable delay for HDCP. gpu: pvr: make ACTIVE_POWER_LATENCY a module param gpu: pvr: implement intra-frame dvfs gpu: pvr: add idle logging gpu: pvr: enbable idle callbacks gpu: pvr: refactor DVFS gpu: pvr: make ACTIVE_POWER_LATENCY_MS respect config option Fix for ProcessFlip ARM: omap4: make prcm_interrupt be no_suspend ARM: common: fiq_debugger: make uart irq be no_suspend net: wireless: Skip connect warning for CONFIG_CFG80211_ALLOW_RECONNECT ASoC: ABE: Correct monitoring filter for Vx-UL and BT-UL mm: avoid livelock on !__GFP_FS allocations mmc: block: Improve logging of handling emmc timeouts ... Change-Id: I7be66ad875926ec8bf531c232e6409c1095539aa
| * | | Merge branch 'linux-omap-3.0' into android-omap-3.0Colin Cross2011-10-273-19/+16
| |\ \ \ | | |/ /
| | * | Merge commit 'v3.0.8' into linux-omap-3.0Colin Cross2011-10-273-19/+16
| | |\ \ | | | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: drivers/tty/serial/omap-serial.c drivers/usb/musb/musb_gadget.c sound/soc/omap/omap-mcbsp.c Change-Id: Ic31b7266dda3ac8483f737272874ebf4725b5fe3
| | | * mmc: mxs-mmc: fix clock rate settingKoen Beel2011-10-161-16/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit d982dcdc4e64eb1881df44b0035a8268bf1ab067 upstream. Fix clock rate setting in the mxs-mmc driver. Previously, if div2 was 0 then the value for TIMING_CLOCK_RATE would have been 255 instead of 0. The limits for div1 (TIMING_CLOCK_DIVIDE) and div2 (TIMING_CLOCK_RATE+1) were also not correctly defined. Can easily be reproduced on mx23evk: default clock for high speed sdio cards is 50 MHz. With a SSP_CLK of 28.8 MHz default), this resulted in an actual clock rate of about 56 kHz. Tested on mx23evk. Signed-off-by: Koen Beel <koen.beel@barco.com> Reviewed-by: Wolfram Sang <w.sang@pengutronix.de> Signed-off-by: Chris Ball <cjb@laptop.org> Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| | | * mmc: sdhci-s3c: Fix mmc card I/O problemGirish K S2011-10-031-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 49bb1e619568ec84785ceb366f07db2a6f0b64cc upstream. This patch fixes the problem in sdhci-s3c host driver for Samsung Soc's. During the card identification stage the mmc core driver enumerates for the best bus width in combination with the highest available data rate. It starts enumerating from the highest bus width (8) to lowest width (1). In case of few MMC cards the 4-bit bus enumeration fails and tries the 1-bit bus enumeration. When switched to 1-bit bus mode the host driver has to clear the previous bus width setting and apply the new setting. The current patch will clear the previous bus mode and apply the new mode setting. Signed-off-by: Girish K S <girish.shivananjappa@linaro.org> Acked-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Chris Ball <cjb@laptop.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>