- 09 1月, 2011 7 次提交
-
-
由 Arnd Hannemann 提交于
When doing excessive hotplug, e.g., repeated insert/eject operations, the hardware may get confused to a point where no CMDTIMEOUT/CMDRESPEND interrupts are generated any more. As a result requests get stuck, e.g.: [ 360.351562] INFO: task kworker/u:0:5 blocked for more than 120 seconds. [ 360.351562] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [ 360.359375] kworker/u:0 D c020c2b4 0 5 2 0x00000000 [ 360.367187] Backtrace: [ 360.367187] [<c020bfb0>] (schedule+0x0/0x340) from [<c020c480>] (schedule_timeout+0x20/0x190) [ 360.375000] r8:c702fd70 r7:00000002 r6:c702e000 r5:c702fdc4 r4:7fffffff [ 360.375000] r3:c701e040 [ 360.382812] [<c020c460>] (schedule_timeout+0x0/0x190) from [<c020be78>] (wait_for_common+0xc4/0x150) [ 360.390625] r6:c702e000 r5:c702fdc4 r4:7fffffff [ 360.390625] [<c020bdb4>] (wait_for_common+0x0/0x150) from [<c020bfac>] (wait_for_completion+0x18/0x1c) [ 360.398437] [<c020bf94>] (wait_for_completion+0x0/0x1c) from [<c0185590>] (mmc_wait_for_req+0x214/0x234) [ 360.406250] [<c018537c>] (mmc_wait_for_req+0x0/0x234) from [<c01889d0>] (mmc_sd_switch+0xfc/0x114) [ 360.414062] r7:c702fe4c r6:c702fe20 r5:c7179800 r4:00fffff0 [ 360.421875] [<c01888d4>] (mmc_sd_switch+0x0/0x114) from [<c0187f70>] (mmc_sd_setup_card+0x260/0x384) [ 360.429687] [<c0187d10>] (mmc_sd_setup_card+0x0/0x384) from [<c01885e0>] (mmc_sd_init_card+0x13c/0x1e0) [ 360.437500] [<c01884a4>] (mmc_sd_init_card+0x0/0x1e0) from [<c01887a8>] (mmc_attach_sd+0x124/0x1a8) [ 360.445312] r8:c02db404 r7:ffffff92 r6:c702ff34 r5:c6007da8 r4:c6007c00 [ 360.453125] [<c0188684>] (mmc_attach_sd+0x0/0x1a8) from [<c0185140>] (mmc_rescan+0x248/0x2f0) [ 360.460937] r5:c6007da8 r4:c6007c00 [ 360.468750] [<c0184ef8>] (mmc_rescan+0x0/0x2f0) from [<c00467f0>] (process_one_work+0x1ec/0x318) [ 360.476562] r7:c6007da8 r6:00000000 r5:c710ec00 r4:c701bde0 [ 360.484375] [<c0046604>] (process_one_work+0x0/0x318) from [<c0047fb0>] (worker_thread+0x1b0/0x2cc) [ 360.492187] [<c0047e00>] (worker_thread+0x0/0x2cc) from [<c004b338>] (kthread+0x8c/0x94) [ 360.500000] [<c004b2ac>] (kthread+0x0/0x94) from [<c0037fc4>] (do_exit+0x0/0x590) [ 360.507812] r7:00000013 r6:c0037fc4 r5:c004b2ac r4:c7021f00 This patch addresses this problem by introducing timeouts for outstanding interrupts. If a hardware interrupt is missing, a soft reset will be performed to bring the hardware back to a working state. Tested with the SDHI hardware block in sh7372 / AP4EVB. Signed-off-by: NArnd Hannemann <arnd@arndnet.de> Signed-off-by: NChris Ball <cjb@laptop.org>
-
由 Arnd Hannemann 提交于
This patch implements SDIO IRQ support for mfds which announce the TMIO_MMC_SDIO_IRQ flag for tmio_mmc. If MMC_CAP_SDIO_IRQ is also set SDIO IRQ signalling is activated. Tested with a b43-based wireless SDIO card and sh_mobile_sdhi. Signed-off-by: NArnd Hannemann <arnd@arndnet.de> Signed-off-by: NChris Ball <cjb@laptop.org>
-
由 Arnd Hannemann 提交于
with "mmc: tmio: implement a bounce buffer for unaligned DMA" gcc generates the following warnings: drivers/mmc/host/tmio_mmc.c:654:6: warning: 'ret' may be used uninitialized in this function drivers/mmc/host/tmio_mmc.c:730:6: warning: 'ret' may be used uninitialized in this function This patch fixes these by setting ret to -EINVAL in the affected code paths. Signed-off-by: NArnd Hannemann <arnd@arndnet.de> Signed-off-by: NChris Ball <cjb@laptop.org>
-
由 Guennadi Liakhovetski 提交于
For example, with SDIO WLAN cards, some transfers happen with buffers at odd addresses, whereas the SH-Mobile DMA engine requires even addresses for SDHI. This patch extends the tmio driver with a bounce buffer, that is used for single entry scatter-gather lists both for sending and receiving. If we ever encounter unaligned transfers with multi-element sg lists, this patch will have to be extended. For now it just falls back to PIO in this and other unsupported cases. Signed-off-by: NGuennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: NSamuel Ortiz <sameo@linux.intel.com> Signed-off-by: NChris Ball <cjb@laptop.org>
-
由 Guennadi Liakhovetski 提交于
drivers/mmc/host/tmio_mmc.h is only used by drivers/mmc/host/tmio_mmc.c, this needlessly complicates source-code handling. Signed-off-by: NGuennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: NChris Ball <cjb@laptop.org>
-
由 Guennadi Liakhovetski 提交于
The easiest way to fall back to PIO, when a DMA descriptor allocation fails is to disable DMA on the controller but continue with the current request in PIO mode. This way tmio_mmc_start_dma() can become void, since it cannot be failing any more. The current version is also broken: it is testing a wrong pointer and thus failing to recognise, that a descriptor allocation wasn't successful. Signed-off-by: NGuennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: NChris Ball <cjb@laptop.org>
-
由 Guennadi Liakhovetski 提交于
The driver is capable of handling multi-element sg lists in both PIO and DMA modes. In DMA mode this also allows to use the DMA sg capability more efficiently and almost doubles the throughput. Signed-off-by: NGuennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: NChris Ball <cjb@laptop.org>
-
- 29 10月, 2010 2 次提交
-
-
由 Yusuke Goda 提交于
Adjust the tmio_mmc block size check to accept 2-byte requests in 4-bit mode if the hardware supports it. Tested with the SDHI hardware block included in sh7724. Signed-off-by: NYusuke Goda <yusuke.goda.sx@renesas.com> Signed-off-by: NMatt Fleming <matt@console-pimps.org> Acked-by: NMagnus Damm <damm@opensource.se> Tested-by: NArnd Hannemann <arnd@arndnet.de> Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
-
由 Arnd Hannemann 提交于
Some controllers, supported by the tmio_mmc driver do not have the card detect pin of a slot connected, so that polling needs to be used and card detection is handled by other means. This patch exposes a get_cd hook for that purpose. Signed-off-by: NArnd Hannemann <arnd@arndnet.de> Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
-
- 10 9月, 2010 1 次提交
-
-
由 Guennadi Liakhovetski 提交于
kunmap_atomic() takes the cookie, returned by the kmap_atomic() as its argument and not the page address, used as an argument to kmap_atomic(). This patch fixes the compile error: In file included from drivers/mmc/host/tmio_mmc.c:37: drivers/mmc/host/tmio_mmc.h: In function 'tmio_mmc_kunmap_atomic': drivers/mmc/host/tmio_mmc.h:192: error: negative width in bit-field '<anonymous>' Signed-off-by: NGuennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: NEric Miao <eric.y.miao@gmail.com> Tested-by: NMagnus Damm <damm@opensource.se> Cc: <stable@kernel.org> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
- 28 5月, 2010 1 次提交
-
-
由 Matt Fleming 提交于
Even though many mmc host drivers pass a pm_message_t argument to mmc_suspend_host() that argument isn't used the by MMC core. As host drivers are converted to dev_pm_ops they'll have to construct pm_message_t's (as they won't be passed by the PM subsystem any more) just to appease the mmc suspend interface. We might as well just delete the unused paramter. Signed-off-by: NMatt Fleming <matt@console-pimps.org> Acked-by: NAnton Vorontsov <cbouatmailru@gmail.com> Acked-by: Michal Miroslaw <mirq-linux@rere.qmqm.pl>ZZ Acked-by: NSascha Sommer <saschasommer@freenet.de> Cc: <linux-mmc@vger.kernel.org> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
- 22 5月, 2010 3 次提交
-
-
由 Guennadi Liakhovetski 提交于
Signed-off-by: NGuennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: NIan Molton <ian@mnementh.co.uk> Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
-
由 Guennadi Liakhovetski 提交于
Write-protection status is not always available, e.g., micro-SD cards do not have a write-protection switch at all. This patch adds a flag to let platforms force tmio_mmc to consider the card writable. Signed-off-by: NGuennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: NIan Molton <ian@mnementh.co.uk> Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
-
由 Guennadi Liakhovetski 提交于
SDHI controllers on SuperH, served by the tmio_mmc driver, can use slave DMA for data transfer. This patch adds support for the dmaengine API to the tmio_mmc driver. Signed-off-by: NGuennadi Liakhovetski <g.liakhovetski@gmx.de> Acked-by: NIan Molton <ian@mnementh.co.uk> Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
-
- 08 3月, 2010 3 次提交
-
-
由 Magnus Damm 提交于
This patch adds cell->disable() calls to the tmio-mmc probe() error handling and the remove() function. Signed-off-by: NMagnus Damm <damm@opensource.se> Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
-
由 Magnus Damm 提交于
This patch changes the tmio_mmc driver to wait 100ms before checking the card detect status. This type of delay is quite common among mmc drivers, it seems that most hardware platforms need to give the hardware some time to settle before checking card availabilty. Hotplug is half-broken without this patch on the sh7724 Ecovec board. Hot insertion seems ok but eject is never detected without this patch. Signed-off-by: NMagnus Damm <damm@opensource.se> Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
-
由 Yusuke Goda 提交于
Enable MMC_CAP_XX support in the tmio_mmc driver if pdata->capabilities is set. Signed-off-by: NYusuke Goda <goda.yusuke@renesas.com> Signed-off-by: NMagnus Damm <damm@opensource.se> Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
-
- 18 1月, 2010 1 次提交
-
-
由 Ian Molton 提交于
This patch abstracts out the CNF area code from tmio_mmc which is not present in all hardware that can use this driver. This is required so that we can support non-toshiba based hardware. ASIC3 support by Philipp Zabel Signed-off-by: NIan Molton <ian@mnementh.co.uk> Signed-off-by: NMagnus Damm <damm@opensource.se> Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
-
- 16 12月, 2009 1 次提交
-
-
由 Magnus Damm 提交于
Improve the /proc/interrupts output so the irq number can be mapped to platform device on boards with multiple tmio_mmc instances. Signed-off-by: NMagnus Damm <damm@opensource.se> Cc: <linux-mmc@vger.kernel.org> Cc: Paul Mundt <lethal@linux-sh.org> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
- 14 6月, 2009 7 次提交
-
-
由 Philipp Zabel 提交于
Now tmio_mmc is able to drive the MMC/SD cell in ASIC3. Signed-off-by: NPhilipp Zabel <philipp.zabel@gmail.com> Acked-by: NIan Molton <spyro@f2s.com> Signed-off-by: NPierre Ossman <pierre@ossman.eu>
-
由 Ian Molton 提交于
This patch fixes the clock setup in tmio_mmc. * Incorrect divider setting * Cruft written to the clock registers (seemingly harmless but Not Good (tm)) It also eliminates some unnecessary ifs and tidies the loop syntax. Thanks to Philipp Zabel who discovered the divider issue, commenting "Except for the SDCLK = HCLK (divider bypassed) case, the clock setting resulted in double the requested frequency. The smallest possible frequency (f_max/512) is configured with a divider setting 0x80, not 0x40." Signed-off-by: NIan Molton <ian@mnementh.co.uk> Signed-off-by: NPierre Ossman <pierre@ossman.eu>
-
由 Philipp Zabel 提交于
ASIC3 can disable the memory, so we need to wait for mfd_cell->enable to enable the memory before we can map the SD control registers. Signed-off-by: NPhilipp Zabel <philipp.zabel@gmail.com> Acked-by: NIan Molton <ian@mnementh.co.uk> Signed-off-by: NPierre Ossman <pierre@ossman.eu>
-
由 Philipp Zabel 提交于
Signed-off-by: NPhilipp Zabel <philipp.zabel@gmail.com> Acked-by: NIan Molton <ian@mnementh.co.uk> Signed-off-by: NPierre Ossman <pierre@ossman.eu>
-
由 Philipp Zabel 提交于
Use an IRQF_TRIGGER_ flag in request_irq instead. Signed-off-by: NPhilipp Zabel <philipp.zabel@gmail.com> Acked-by: NIan Molton <ian@mnementh.co.uk> Signed-off-by: NPierre Ossman <pierre@ossman.eu>
-
由 Philipp Zabel 提交于
Some ASIC3 devices in the wild are connected with the address bus shifted by one line, so that its 16-bit registers appear 32-bit aligned in host memory space. Signed-off-by: NPhilipp Zabel <philipp.zabel@gmail.com> Acked-by: NIan Molton <ian@mnementh.co.uk> Signed-off-by: NPierre Ossman <pierre@ossman.eu>
-
由 Philipp Zabel 提交于
The Toshiba parts all have a 24 MHz HCLK, but HTC ASIC3 has a 24.576 MHz HCLK and AMD Imageon w228x's HCLK is 80 MHz. With this patch, the MFD driver provides the HCLK frequency to tmio_mmc via mfd_cell->driver_data. Signed-off-by: NPhilipp Zabel <philipp.zabel@gmail.com> Acked-by: NIan Molton <ian@mnementh.co.uk> Acked-by: NSamuel Ortiz <sameo@openedhand.com> Signed-off-by: NPierre Ossman <pierre@ossman.eu>
-
- 25 3月, 2009 2 次提交
-
-
由 Magnus Damm 提交于
Update the tmio_mmc code to call mmc_free_host() when done using the private data. Without this fix the driver frees memory and then keeps on using it as private data. Signed-off-by: NMagnus Damm <damm@opensource.se> Acked-by: NIan Molton <ian@mnementh.co.uk> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Magnus Damm 提交于
Update the tmio_mmc code to use resource_size(). With this patch applied the correct resource size is passed to ioremap(). Signed-off-by: NMagnus Damm <damm@opensource.se> Acked-by: NIan Molton <ian@mnementh.co.uk> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
- 01 1月, 2009 1 次提交
-
-
由 Julia Lawall 提交于
In each case, if the NULL test is necessary, then the dereference should be moved below the NULL test. The semantic patch that makes this change is as follows: (http://www.emn.fr/x-info/coccinelle/) // <smpl> @@ type T; expression E; identifier i,fld; statement S; @@ - T i = E->fld; + T i; ... when != E when != i if (E == NULL) S + i = E->fld; // </smpl> Signed-off-by: NJulia Lawall <julia@diku.dk> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
- 11 8月, 2008 1 次提交
-
-
由 Ian Molton 提交于
This patch adds support for the MMC subdevice 'cell' commonly found in TMIO based MFDs. Signed-off-by: NIan Molton <spyro@f2s.com> Acked-by: NPierre Ossman <drzeus@drzeus.cx> Signed-off-by: NSamuel Ortiz <sameo@openedhand.com>
-