History log of /drivers/mmc/host/msm_sdcc.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
482fce997e143a8d5429406fe066d31aa76ef70a 27-Nov-2011 Cong Wang <amwang@redhat.com> mmc: remove the second argument of k[un]map_atomic()

Signed-off-by: Cong Wang <amwang@redhat.com>
Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
/drivers/mmc/host/msm_sdcc.c
d1f81a64a4250bdd776978be06ae2b8e13ec7471 25-Nov-2011 Axel Lin <axel.lin@gmail.com> mmc: convert drivers/mmc/host/* to use module_platform_driver()

This patch converts the drivers in drivers/mmc/host/* to use the
module_platform_driver() macro which makes the code smaller and a bit
simpler.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: "Michał Mirosław" <mirq-linux@rere.qmqm.pl>
Acked-by: David Brown <davidb@codeaurora.org>
Acked-by: Viresh Kumar <viresh.kumar@st.com>
Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Wolfram Sang <w.sang@pengutronix.de>
Acked-by: Anton Vorontsov <cbouatmailru@gmail.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
/drivers/mmc/host/msm_sdcc.c
a3c76eb9d4a1e68a69dd880cf0bcb8a52418b993 11-Oct-2011 Girish K S <girish.shivananjappa@linaro.org> mmc: replace printk with appropriate display macro

All the files using printk function for displaying kernel messages
in the mmc driver have been replaced with corresponding macro.

Signed-off-by: Girish K S <girish.shivananjappa@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
/drivers/mmc/host/msm_sdcc.c
190657c9f464b9f99a05a6ed8476c8bbccbc6a8b 02-May-2011 Subhash Jadavani <subhashj@codeaurora.org> mmc: msm_sdcc: Handle dma resource not present case

If DMA resource is not available then SDCC driver
should atleast work in PIO data transfer mode.

Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
Signed-off-by: David Brown <davidb@codeaurora.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
/drivers/mmc/host/msm_sdcc.c
19207f056d6dd390f96749e643a222d48517f7b1 02-May-2011 Sahitya Tummala <stummala@codeaurora.org> mmc: msm_sdcc: Change initialization order of busclk_timer in probe

Intialize busclk_timer before it is accessed in probe.

Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
Signed-off-by: David Brown <davidb@codeaurora.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
/drivers/mmc/host/msm_sdcc.c
4a268e0879c4044523757b6ac94b56fc7955a116 02-May-2011 Sahitya Tummala <stummala@codeaurora.org> mmc: msm_sdcc: Use MCI_INT_MASK0 for PIO interrupts

Not all targets have IRQ1 line routed from the SD controller to
the processor. So we cannot rely on IRQ1 for PIO interrupts.
This patch moves all PIO interrupts to IRQ0 and enables the PIO
mode.

Signed-off-by: Murali Palnati <palnatim@codeaurora.org>
Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
Signed-off-by: David Brown <davidb@codeaurora.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
/drivers/mmc/host/msm_sdcc.c
4a92fe80becbbee650cfad8457ad0e5cd97ed974 02-May-2011 Sahitya Tummala <stummala@codeaurora.org> msm: mmc: Remove "pio_irq" resource

On some targets, MCI_IRQ_MASK1 is not routed to the MSM in which
case only "cmd_irq" must be used even for PIO. With this change,
all the targets will use only "cmd_irq" for both CMD and PIO.

Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
Signed-off-by: David Brown <davidb@codeaurora.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
/drivers/mmc/host/msm_sdcc.c
514d9eda92654430369060b91f7472bb198e7904 02-May-2011 Sahitya Tummala <stummala@codeaurora.org> mmc: msm_sdcc: Enable SDC host->clk only after setting the rate.

For clocks that support rates which can be set (most clocks other
than _pclk AHB clocks), a rate must be set using clk_set_rate()
before the clock is enabled for the first time with clk_enable().
Subsequent calls to clk_enable() need not be preceded with the
clk_set_rate() calls unless we wish to change the clock rate that
is set previously.

SDC host->clk is currently enabled without setting the clock rate
even once. This patch fixes this, by ensuring that the clock rate
for this clock is first set before enabling the clock.

Signed-off-by: Murali Palnati <palnatim@codeaurora.org>
Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
Signed-off-by: David Brown <davidb@codeaurora.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
/drivers/mmc/host/msm_sdcc.c
dce7c756c84160424b3aea5ec36f221946bdc6f7 02-May-2011 Sahitya Tummala <stummala@codeaurora.org> mmc: msm_sdcc: Handle error cases in probe

Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
Signed-off-by: David Brown <davidb@codeaurora.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
/drivers/mmc/host/msm_sdcc.c
e91957e70d2aea529ff2055b8fbd575f2d7b8c3b 21-Aug-2011 Alexander Tarasikov <alexander.tarasikov@gmail.com> msm: Implement init_card operation for MSM SDCC

This allows boards with non-standard sdio cards to fill the CIS/CCCR data.
It is particularly important for old msm72k boards using wl1251.
Also drop the obsolete embedded_sdio_data structure from the header
as it was intended to surve a similiar purpose but was not implemented.

Signed-off-by: Alexander Tarasikov <alexander.tarasikov@gmail.com>
Acked-by: Sahitya Tummala <stummala@codeaurora.org>
[davidb: minor formatting cleanup]
Signed-off-by: David Brown <davidb@codeaurora.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
/drivers/mmc/host/msm_sdcc.c
435f3e385962e2b34855e9b34f8b95717c1016a2 21-Aug-2011 Alexander Tarasikov <alexander.tarasikov@gmail.com> mmc: msm_sdcc: Fix a typo in MSM SDCC driver gpio setup

The use of && instead of || caused a NULL pointer dereference if
gpio setup was not passed via platform data

Signed-off-by: Alexander Tarasikov <alexander.tarasikov@gmail.com>
Acked-by: Sahitya Tummala <stummala@codeaurora.org>
Signed-off-by: David Brown <davidb@codeaurora.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
/drivers/mmc/host/msm_sdcc.c
a8c91da549f625d0600d5bd7e1831066b55edf0d 19-Mar-2011 Linus Torvalds <torvalds@linux-foundation.org> Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (53 commits)
mmc: dw_mmc: support mmc power control with regulator
mmc: dw_mmc: fix suspend/resume operation
mmc: dw_mmc: add quirks for unreliable card detect, and capabilities
mmc: tmio: fix address in kunmap_atomic() calls
mmc: core: reset card voltage after power off
mmc: core: export function mmc_do_release_host()
mmc: sdio: remember new card RCA when redetecting card
mmc: dw_mmc: Remove set-but-unused variable.
mmc: sdhci-esdhc-imx: add card detect on custom GPIO for mx25/35
mmc: sdhci-esdhc: broken card detection is not a default quirk
mmc: sdhci-esdhc-imx: add write protect on custom GPIO on mx25/35
mmc: msm_sdcc: remove needless cache flush after dma_unmap_sg()
mmc: sh_mmcif: support aggressive clock gating
mmc: check if mmc cards < 2GB do sector addressing
mmc: core: comment on why sdio_reset is done at init time
mmc: dw_mmc: support DDR mode
mmc: via-sdmmc: Remove set-but-unused variable.
mmc: cb710: Return err value in cb710_wait_while_busy()
mmc: sdhci-pci: Remove set-but-unused variable.
mmc: mxs-mmc: add mmc host driver for i.MX23/28
...
dffc55adfa2676a02a838d56a0cc4edd3809510c 16-Feb-2011 Linus Walleij <linus.walleij@linaro.org> mmc: msm_sdcc: remove needless cache flush after dma_unmap_sg()

dma_unmap_sg() already flushes the cache, I don't get what this
code is doing here.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
/drivers/mmc/host/msm_sdcc.c
7a89248a47d201e6ade2daddd79b0fd902cad400 18-Jan-2011 Sahitya Tummala <stummala@codeaurora.org> mmc: msm_sdcc: Add gpio handling function to driver

Configure SDCC GPIOs when the host is powered up or powered off.

Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
727a99a576ba562e5074d54cfcc57a1ce101c240 18-Jan-2011 Daniel Walker <dwalker@codeaurora.org> drivers: mmc: msm: remove clock disable in probe

The probe function adds the MMC host which can start accepting request
immediately. There is an assumption here that no requests happen
immediatly, but it's not always the case. This assumption can causes
a BUG() when the clocks are disabled. The fix is to just remove the
clock disable in the probe function.

Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
208028de5fa7732704d12cdd3f8fd45d2d8445e3 19-Jan-2011 Daniel Walker <dwalker@codeaurora.org> mmc: msm: fix dma usage not to use internal APIs

Remove parts of this driver which use internal API calls. This
replaces the calls as suggested by Russell King.

Cc: Russell King - ARM Linux <linux@arm.linux.org.uk>
Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
0c521ccbd0c9ad5623ff9b37b20b3ff9d4ad65a7 08-Dec-2010 Sahitya Tummala <stummala@codeaurora.org> mmc: msm_sdcc: Check for only DATA_END interrupt to end a request

The current code checks for both DATA_END and DATA_BLK_END bits in
MCI_STATUS register and ends a request only if both are set at a time.
The hardware doesn't always set DATA_BLK_END when DATA_END is set.
But DATA_END status itself is sufficient condition from hardware that
data transfer is done and hence, check for only DATA_END interrupt in
software to end a request.

Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
Signed-off-by: David Brown <davidb@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
71dd9106af54de0f758875fa4b595af42a327448 08-Dec-2010 Sahitya Tummala <stummala@codeaurora.org> mmc: msm_sdcc: Fix bug in PIO mode when data size is not word aligned

The current code for PIO doesn't transfer whole data when data size
is not in multiple of 4 bytes. The last few bytes are not written to
the card resulting in no DATAEND interrupt from SDCC. This patch
allows data transfer for non-aligned data size in PIO mode.

Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
Signed-off-by: David Brown <davidb@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
b08bb35d1a5ee5426198eb3a2861008c2e9e6fc4 08-Dec-2010 Sahitya Tummala <stummala@codeaurora.org> mmc: msm_sdcc: Reset SDCC in case of data transfer errors

SDCC uses an asynchronous FIFOs for data synchronization (one for TX
and one for RX). For any error when DPSM (Data path state machine) is
involved the transfer is terminated with the remaining data stuck inside
FIFOs. Reset the controller in case of data errors to ensure that
any left over data in FIFOs is flushed out and DPSM is in good state.

The following problems are observed without this reset functionality -

1. After the card is removed in an unsafe way (removed when there
is an on going data transfer), the card will not be detected upon
its next insertion. This is because the controller wouldn't respond
to few initialization commands.

2. When an error occurs for a data transfer in non-DMA mode, sometimes
we get spurious PIO interrupt after the request is processed.

Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
Signed-off-by: David Brown <davidb@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
d5137bdd91b8267ada3973806443013f4bf079f6 08-Dec-2010 Sahitya Tummala <stummala@codeaurora.org> mmc: msm_sdcc: Add prog done interrupt support

Enable prog done interrupt for stop command(CMD12) that is sent
after a multi-block write(CMD25). The PROG_DONE bit is set when
the card has finished its programming and is ready for next data.

After every write request the card will be polled for ready status
using CMD13. For a multi-block write(CMD25) before sending CMD13,
stop command (CMD12) will be sent. If we enable prog done interrupt
for CMD12, then CMD13 polling can be avoided. The prog done interrupt
means that the card is done with its programming and is ready for
next request.

Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
Signed-off-by: David Brown <davidb@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
62612cf9d97068dc75b48a7a3044ee907a3283ec 08-Dec-2010 Sahitya Tummala <stummala@codeaurora.org> mmc: msm_sdcc: Fix possible circular locking dependency warning

In the context of request processing thread, data mover lock is
acquired after the host lock. In another context, in the completion
handler of data mover the locks are acquired in the reverse order,
resulting in possible circular lock dependency warning. Hence,
schedule a tasklet to process the dma completion so as to avoid
nested locks.

Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
Signed-off-by: David Brown <davidb@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
a36274e0184193e393fb82957925c3981a6b0477 10-Sep-2010 Martin K. Petersen <martin.petersen@oracle.com> mmc: Remove distinction between hw and phys segments

We have deprecated the distinction between hardware and physical
segments in the block layer. Consolidate the two limits into one in
drivers/mmc/.

Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
/drivers/mmc/host/msm_sdcc.c
eb3bbf805f8509f03ee479becf8c2f00737e1efb 14-Aug-2010 Linus Torvalds <torvalds@linux-foundation.org> Merge branch 'msm-mmc_sdcc' of git://codeaurora.org/quic/kernel/dwalker/linux-msm

* 'msm-mmc_sdcc' of git://codeaurora.org/quic/kernel/dwalker/linux-msm:
mmc: msm_sdcc: Rename config MMC_MSM7X00A to MMC_MSM
mmc: msm_sdcc: Compile the driver for msm7x30
mmc: msm: fix up build breakage on !PM
ce4327d372af7e2f2d403286e9904ab012e72827 12-Aug-2010 Linus Torvalds <torvalds@linux-foundation.org> Merge branch 'msm-core' of git://codeaurora.org/quic/kernel/dwalker/linux-msm

* 'msm-core' of git://codeaurora.org/quic/kernel/dwalker/linux-msm:
msm: mmc: Add msm prefix to platform data structure
msm: trout: Remove extern declaration from source file
arm: msm: Fix section mismatch in smd.c.
arm: msm: trout add mmc support
arm: msm: trout: add trout specific gpio interrupts
arm: msm: remove unused #include <linux/version.h>
762333e344144283a9da97a34b5dded51ff61b27 11-Aug-2010 Christian Dietrich <qy03fugy@stud.informatik.uni-erlangen.de> drivers/mmc/host/msm-sdcc: remove dead config options

CONFIG_MMC_MSM7X00A_RESUME_IN_WQ and CONFIG_MMC_EMBEDDED_SDIO don't exist
in Kconfig and is never defined anywhere else, therefore removing all
references for it from the source code.

Signed-off-by: Christian Dietrich <qy03fugy@stud.informatik.uni-erlangen.de>
Acked-by: David Brown <davidb@codeaurora.org>
Cc: Daniel Walker <dwalker@codeaurora.org>
Cc: <linux-mmc@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
/drivers/mmc/host/msm_sdcc.c
edd4dd0e987919ed672376c5c73c32aacfc24f39 29-Jul-2010 Sahitya Tummala <stummala@codeaurora.org> mmc: msm_sdcc: Compile the driver for msm7x30

The controller base address is referred from platform
resource instead of using #defines. This fixes the
compilation error when driver is compiled for msm7x30.

Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
b5d643de3ea28d7844a3a1a00a0a6f50897a2a6b 29-Jul-2010 Sahitya Tummala <stummala@codeaurora.org> msm: mmc: Add msm prefix to platform data structure

Rename mmc_platform_data to msm_mmc_platform_data as it is used
only by MSM platform.

Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
08ecfde47534ced67c3c16a15845456e83bd31d1 23-Jun-2010 Daniel Walker <dwalker@codeaurora.org> mmc: msm: fix up build breakage on !PM

with PM disabled I get the following compile error,

drivers/built-in.o: In function `msmsdcc_resume':
linux-2.6/drivers/mmc/host/msm_sdcc.c:1352: undefined reference to `mmc_resume_host'
drivers/built-in.o: In function `msmsdcc_suspend':
linux-2.6/drivers/mmc/host/msm_sdcc.c:1330: undefined reference to `mmc_suspend_host'

This adds ifdefs around the suspend/resume functions to prevent this.

Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
1a13f8fa76c880be41d6b1e6a2b44404bcbfdf9e 26-May-2010 Matt Fleming <matt@console-pimps.org> mmc: remove the "state" argument to mmc_suspend_host()

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: Matt Fleming <matt@console-pimps.org>
Acked-by: Anton Vorontsov <cbouatmailru@gmail.com>
Acked-by: Michal Miroslaw <mirq-linux@rere.qmqm.pl>ZZ
Acked-by: Sascha Sommer <saschasommer@freenet.de>
Cc: <linux-mmc@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
/drivers/mmc/host/msm_sdcc.c
da7806f9b0579a1150f01ade3b562e543ddcbf2c 21-May-2010 Linus Torvalds <torvalds@linux-foundation.org> Merge branch 'msm-mmc_sdcc' of git://codeaurora.org/quic/kernel/dwalker/linux-msm

* 'msm-mmc_sdcc' of git://codeaurora.org/quic/kernel/dwalker/linux-msm:
drivers: mmc: msm_sdcc: Add EMBEDDED_SDIO support
mmc: msm_sdcc: Fix issue where clocks could be disabled mid transaction
mmc: msm_sdcc: Fix the dma exec function to use the proper delays
mmc: msm_sdcc: Don't set host->curr.mrq until after we're sure the busclk timer won't fire
mmc: msm_sdcc: Enable busclk idle timer for power savings
mmc: msm_sdcc: Don't disable interrupts while suspending
mmc: msm_sdcc: Fix issue where we might not end a sucessfull request
mmc: msm_sdcc: Featurize busclock power save and disable it by default
mmc: msm_sdcc: Fix bug where busclk expiry timer was not properly disabled
mmc: msm_sdcc: Reduce command timeouts and improve reliability.
mmc: msm_sdcc: Schedule clock disable after probe
mmc: msm_sdcc: Wrap readl/writel calls with appropriate clk delays
mmc: msm_sdcc: Driver clocking/irq improvements
msm: Add 'execute' datamover callback
mmc: msm_sdcc: Snoop SDIO_CCCR_ABORT register
mmc: msm_sdcc: Clean up clock management and add a 10us delay after enabling clocks
5a0e3ad6af8660be21ca98a971cd00f331318c05 24-Mar-2010 Tejun Heo <tj@kernel.org> include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h

percpu.h is included by sched.h and module.h and thus ends up being
included when building most .c files. percpu.h includes slab.h which
in turn includes gfp.h making everything defined by the two files
universally available and complicating inclusion dependencies.

percpu.h -> slab.h dependency is about to be removed. Prepare for
this change by updating users of gfp and slab facilities include those
headers directly instead of assuming availability. As this conversion
needs to touch large number of source files, the following script is
used as the basis of conversion.

http://userweb.kernel.org/~tj/misc/slabh-sweep.py

The script does the followings.

* Scan files for gfp and slab usages and update includes such that
only the necessary includes are there. ie. if only gfp is used,
gfp.h, if slab is used, slab.h.

* When the script inserts a new include, it looks at the include
blocks and try to put the new include such that its order conforms
to its surrounding. It's put in the include block which contains
core kernel includes, in the same order that the rest are ordered -
alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
doesn't seem to be any matching order.

* If the script can't find a place to put a new include (mostly
because the file doesn't have fitting include block), it prints out
an error message indicating which .h file needs to be added to the
file.

The conversion was done in the following steps.

1. The initial automatic conversion of all .c files updated slightly
over 4000 files, deleting around 700 includes and adding ~480 gfp.h
and ~3000 slab.h inclusions. The script emitted errors for ~400
files.

2. Each error was manually checked. Some didn't need the inclusion,
some needed manual addition while adding it to implementation .h or
embedding .c file was more appropriate for others. This step added
inclusions to around 150 files.

3. The script was run again and the output was compared to the edits
from #2 to make sure no file was left behind.

4. Several build tests were done and a couple of problems were fixed.
e.g. lib/decompress_*.c used malloc/free() wrappers around slab
APIs requiring slab.h to be added manually.

5. The script was run on all .h files but without automatically
editing them as sprinkling gfp.h and slab.h inclusions around .h
files could easily lead to inclusion dependency hell. Most gfp.h
inclusion directives were ignored as stuff from gfp.h was usually
wildly available and often used in preprocessor macros. Each
slab.h inclusion directive was examined and added manually as
necessary.

6. percpu.h was updated not to include slab.h.

7. Build test were done on the following configurations and failures
were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
distributed build env didn't work with gcov compiles) and a few
more options had to be turned off depending on archs to make things
build (like ipr on powerpc/64 which failed due to missing writeq).

* x86 and x86_64 UP and SMP allmodconfig and a custom test config.
* powerpc and powerpc64 SMP allmodconfig
* sparc and sparc64 SMP allmodconfig
* ia64 SMP allmodconfig
* s390 SMP allmodconfig
* alpha SMP allmodconfig
* um on x86_64 SMP allmodconfig

8. percpu.h modifications were reverted so that it could be applied as
a separate patch and serve as bisection point.

Given the fact that I had only a couple of failures from tests on step
6, I'm fairly confident about the coverage of this conversion patch.
If there is a breakage, it's likely to be something in one of the arch
headers which should be easily discoverable easily on most builds of
the specific arch.

Signed-off-by: Tejun Heo <tj@kernel.org>
Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
/drivers/mmc/host/msm_sdcc.c
1cd2296909e77702c68021ede9d87a1d967a6a99 03-Feb-2010 San Mehat <san@google.com> drivers: mmc: msm_sdcc: Add EMBEDDED_SDIO support

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
d0719e59f4ad96616f7c02ef0201667e41778c88 03-Dec-2009 San Mehat <san@google.com> mmc: msm_sdcc: Fix issue where clocks could be disabled mid transaction

msmsdcc_enable_clocks() was incorrectly being called depending on
the state of host->clks_on. This means the busclk idle timer was never
being deleted if the clock was already on.. Bogus.

Also fixes a possible double clk disable if the call to
del_timer_sync() in msmsdcc_disable_clocks() raced with
the busclk timer.

Signed-off-by: San Mehat <san@google.com>
Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
6ac9ea69069804d357064357d0082b0eab4c87ce 03-Dec-2009 San Mehat <san@google.com> mmc: msm_sdcc: Fix the dma exec function to use the proper delays

Signed-off-by: San Mehat <san@google.com>
Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
91bb64952a8c57826b01878925bea8831c71a492 03-Dec-2009 Dmitry Shmidt <dimitrysh@google.com> mmc: msm_sdcc: Don't set host->curr.mrq until after we're sure the busclk timer won't fire

Signed-off-by: San Mehat <san@google.com>
Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
24bbd7d5b422cde6a149ac2f9ac6e61e66536532 01-Dec-2009 San Mehat <san@google.com> mmc: msm_sdcc: Enable busclk idle timer for power savings

Signed-off-by: San Mehat <san@google.com>
Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
673ce00d7cb4ec060b5091992959da4a1d91c634 25-Nov-2009 San Mehat <san@google.com> mmc: msm_sdcc: Don't disable interrupts while suspending

Signed-off-by: San Mehat <san@google.com>
Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
b3b0ca84cfec581fba3ea8efaa8052cb5e6fc857 24-Nov-2009 San Mehat <san@google.com> mmc: msm_sdcc: Fix issue where we might not end a sucessfull request

Signed-off-by: San Mehat <san@google.com>
Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
f4748499d3dc5e7cadecb977f0d4f1f4f4a8d8c5 24-Nov-2009 San Mehat <san@google.com> mmc: msm_sdcc: Featurize busclock power save and disable it by default

Signed-off-by: San Mehat <san@google.com>
Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
c7fc9370df1433486dfa9460a833fae664e8be6c 23-Nov-2009 San Mehat <san@google.com> mmc: msm_sdcc: Fix bug where busclk expiry timer was not properly disabled

Signed-off-by: San Mehat <san@google.com>
Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
56a8b5b8ae81bd766e527a0e5274a087c3c1109d 21-Nov-2009 San Mehat <san@google.com> mmc: msm_sdcc: Reduce command timeouts and improve reliability.

Based on an original patch by Brent DeGraaf:

"Previous versions of the SD driver were beset with excessive command
timeouts. These timeouts were silent by default, but happened
frequently, especially during heavy system activity and concurrent
access of two or more SD devices. Worst case, these timeouts would
occasionally hit at the end of a successful write, resulting in false
failures that could adversely affect journaling file systems if timing
was unfortunate. This update tightens the association and timing between
dma transfers and the commands that trigger them by utilizing a new api
implemented in the datamover. In addition, it also fixes a dma cache
coherency issue that was exposed during testing of this fix that
occasionally resulted in card corruption. Processing of results in the
interrupt status routine was modified to process command results prior to
data because overwritten command results were observed during testing
since the data section can result in command issuances of its own.
This change also eliminates the software command timeout, relying entirely
on the hardware version, since the software timeout was found to cause
problems of its own after extensive testing (having hardware timer and
software timers addressing the same issue was found to cause a race
condition under heavy system load)."

This change originally added PROG_DONE handling, which has been split out
into a separate patch. Also on our platform, the data mover driver maintains
coherency to ensure API reliability, so the above mentioned cache corruption
issue was not an issue for us.

Signed-off-by: San Mehat <san@google.com>
Cc: Brian Swetland <swetland@google.com>

Change-Id: Ifbf17cfafb858106d73bf49af52b5161a265a484
Signed-off-by: San Mehat <san@google.com>
Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
51905dcbcf1f72a17f491c64485d513986110a6f 16-Nov-2009 San Mehat <san@google.com> mmc: msm_sdcc: Schedule clock disable after probe

Signed-off-by: San Mehat <san@google.com>
Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
8b1c2ba274c8416afb7eab3bd788f98a917efe06 16-Nov-2009 San Mehat <san@google.com> mmc: msm_sdcc: Wrap readl/writel calls with appropriate clk delays

As it turns out, all sdcc register writes must be delayed by at
least 3 core clock cycles for the writes to take effect. *sigh*

Also removes the 30us constant delay on clock enable in favor
of a 3 core clock delay.

Signed-off-by: San Mehat <san@google.com>
Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
865c8064a2fb07100525097983966b8e789bde1a 13-Nov-2009 San Mehat <san@google.com> mmc: msm_sdcc: Driver clocking/irq improvements

- Clocks are now disabled after 1 second of inactivity
- Fixed issue which was causing us to loop through our ISR twice
- Bump core clock enable delay to 30us

Signed-off-by: San Mehat <san@google.com>
Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
5b00f40f90e7b17c11cf388680f43e8466b3666d 21-Nov-2009 San Mehat <san@google.com> msm: Add 'execute' datamover callback

Based on a patch from Brent DeGraaf:

"The datamover supports channels which can be shared amongst devices.
As a result, the actual data transfer may occur some time after the
request is queued up. Some devices such as mmc host controllers
will timeout if a command is issued too far in advance of the actual
transfer, so if dma to other devices on the same channel is already
in progress or queued up, the added delay can cause pending transfers
to fail before they start. This change extends the api to allow a
user callback to be invoked just before the actual transfer takes
place, thus allowing actions directly associated with the dma
transfer, such as device commands, to be invoked with precise timing.
Without this mechanism, there is no way for a driver to realize
this timing. Also adds a user pointer to the command structure for use
by the caller to reference information that may be needed by the
callback routine for proper identification and processing associated
with that specific request. This change is necessary to fix problems
associated with excessive command timeouts and race conditions in the
mmc driver."

This patch also fixes all the callers of msm_dmov_enqueue_cmd() to
ensure their callback function is NULL.

Signed-off-by: San Mehat <san@google.com>
Cc: Brent DeGraaf <bdegraaf@quicinc.com>
Cc: Brian Swetland <swetland@google.com>
Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
b3fa579118b239e218e690f5ef76870aff6fe738 03-Nov-2009 San Mehat <san@google.com> mmc: msm_sdcc: Snoop SDIO_CCCR_ABORT register

Signed-off-by: San Mehat <san@google.com>
Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
4adbbcc7b6cfb3dcf5ab49b06edb7752391b0e80 08-Nov-2009 San Mehat <san@google.com> mmc: msm_sdcc: Clean up clock management and add a 10us delay after enabling clocks

It appears that in some cases there may be a delay on the ARM9 in enabling our clock.
As a result, we may put the controller into a bad state. Delay 10us after enabling
clocks to let the peripheral settle. Note - this is all imperical.

Also ensure set_ios() callback grabs the host lock.

Signed-off-by: San Mehat <san@google.com>
Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
5b8a2fb34f5670b1f07483bfa40de9ce539dbdb2 17-Jan-2010 Roel Kluin <roel.kluin@gmail.com> msm_sdcc.c: missing brackets in msmsdcc_resume()

Since the curly brackets were missing the test and enable_irq(),
if true, occurred twice.

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
/drivers/mmc/host/msm_sdcc.c
3989d17847071fa94c93299805a9cca27cf65d26 08-Dec-2009 Pavel Machek <pavel@ucw.cz> HTC Dream: mmc compilation fixes

Add missing include for msm_sdcc compilation, and remove pwrsink
support that is not mainline, yet.

Signed-off-by: Pavel Machek <pavel@ucw.cz>
[dwalker@codeaurora.org : fixed indent in mmc.h]
Signed-off-by: Daniel Walker <dwalker@codeaurora.org>
/drivers/mmc/host/msm_sdcc.c
b5a74d6058e86546868242bb5283e16fb10fd90a 23-Sep-2009 Joe Perches <joe@perches.com> msm_sdcc.c: move overly indented code to separate function

Signed-off-by: Joe Perches <joe@perches.com>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Brian Swetland <swetland@google.com>
Cc: Pierre Ossman <drzeus-list@drzeus.cx>
Cc: San Mehat <san@android.com>
Cc: Matt Fleming <matt@console-pimps.org>
Cc: Ian Molton <ian@mnementh.co.uk>
Cc: "Roberto A. Foglietta" <roberto.foglietta@gmail.com>
Cc: Philip Langdale <philipl@overt.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
/drivers/mmc/host/msm_sdcc.c
75d145283b2e42619d7ee1e00b78466bacd51808 23-Sep-2009 Joe Perches <joe@perches.com> msm_sdcc.c: stylistic cleaning

Make it a bit more like typical kernel style.

Signed-off-by: Joe Perches <joe@perches.com>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Brian Swetland <swetland@google.com>
Cc: Pierre Ossman <drzeus-list@drzeus.cx>
Cc: San Mehat <san@android.com>
Cc: Matt Fleming <matt@console-pimps.org>
Cc: Ian Molton <ian@mnementh.co.uk>
Cc: "Roberto A. Foglietta" <roberto.foglietta@gmail.com>
Cc: Philip Langdale <philipl@overt.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
/drivers/mmc/host/msm_sdcc.c
0a7ff7c7573011ec1f52052a8baeae68f4066dde 23-Sep-2009 Joe Perches <joe@perches.com> msm_sdcc.c: convert printk(KERN_<level> to pr_<level>(

Signed-off-by: Joe Perches <joe@perches.com>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Brian Swetland <swetland@google.com>
Cc: Pierre Ossman <drzeus-list@drzeus.cx>
Cc: San Mehat <san@android.com>
Cc: Matt Fleming <matt@console-pimps.org>
Cc: Ian Molton <ian@mnementh.co.uk>
Cc: "Roberto A. Foglietta" <roberto.foglietta@gmail.com>
Cc: Philip Langdale <philipl@overt.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
/drivers/mmc/host/msm_sdcc.c
9d2bd7383c71d38c60328a3dc8a946eda2013826 23-Sep-2009 San Mehat <san@android.com> mmc: msm_sdccc: driver for HTC Dream

MMC Driver for HTC Dream. I picked the code up from Google git trees,
removed stuff not strictly necessary, and did a few cleanups. It still
works :-).

Signed-off-by: Pavel Machek <pavel@ucw.cz>
Cc: Brian Swetland <swetland@google.com>
Cc: Pierre Ossman <drzeus-list@drzeus.cx>
Cc: Joe Perches <joe@perches.com>
Cc: Matt Fleming <matt@console-pimps.org>
Cc: Ian Molton <ian@mnementh.co.uk>
Cc: "Roberto A. Foglietta" <roberto.foglietta@gmail.com>
Cc: Philip Langdale <philipl@overt.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
/drivers/mmc/host/msm_sdcc.c