- 27 10月, 2011 9 次提交
-
-
由 Girish K S 提交于
All the files using printk function for displaying kernel messages in the mmc driver have been replaced with corresponding macro. Signed-off-by: NGirish K S <girish.shivananjappa@linaro.org> Signed-off-by: NChris Ball <cjb@laptop.org>
-
由 Subhash Jadavani 提交于
If DMA resource is not available then SDCC driver should atleast work in PIO data transfer mode. Signed-off-by: NSubhash Jadavani <subhashj@codeaurora.org> Signed-off-by: NSahitya Tummala <stummala@codeaurora.org> Signed-off-by: NDavid Brown <davidb@codeaurora.org> Signed-off-by: NChris Ball <cjb@laptop.org>
-
由 Sahitya Tummala 提交于
Intialize busclk_timer before it is accessed in probe. Signed-off-by: NSahitya Tummala <stummala@codeaurora.org> Signed-off-by: NDavid Brown <davidb@codeaurora.org> Signed-off-by: NChris Ball <cjb@laptop.org>
-
由 Sahitya Tummala 提交于
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: NMurali Palnati <palnatim@codeaurora.org> Signed-off-by: NSahitya Tummala <stummala@codeaurora.org> Signed-off-by: NDavid Brown <davidb@codeaurora.org> Signed-off-by: NChris Ball <cjb@laptop.org>
-
由 Sahitya Tummala 提交于
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: NSahitya Tummala <stummala@codeaurora.org> Signed-off-by: NDavid Brown <davidb@codeaurora.org> Signed-off-by: NChris Ball <cjb@laptop.org>
-
由 Sahitya Tummala 提交于
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: NMurali Palnati <palnatim@codeaurora.org> Signed-off-by: NSahitya Tummala <stummala@codeaurora.org> Signed-off-by: NDavid Brown <davidb@codeaurora.org> Signed-off-by: NChris Ball <cjb@laptop.org>
-
由 Sahitya Tummala 提交于
Signed-off-by: NSahitya Tummala <stummala@codeaurora.org> Signed-off-by: NDavid Brown <davidb@codeaurora.org> Signed-off-by: NChris Ball <cjb@laptop.org>
-
由 Alexander Tarasikov 提交于
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: NAlexander Tarasikov <alexander.tarasikov@gmail.com> Acked-by: NSahitya Tummala <stummala@codeaurora.org> [davidb: minor formatting cleanup] Signed-off-by: NDavid Brown <davidb@codeaurora.org> Signed-off-by: NChris Ball <cjb@laptop.org>
-
由 Alexander Tarasikov 提交于
The use of && instead of || caused a NULL pointer dereference if gpio setup was not passed via platform data Signed-off-by: NAlexander Tarasikov <alexander.tarasikov@gmail.com> Acked-by: NSahitya Tummala <stummala@codeaurora.org> Signed-off-by: NDavid Brown <davidb@codeaurora.org> Signed-off-by: NChris Ball <cjb@laptop.org>
-
- 18 3月, 2011 1 次提交
-
-
由 Linus Walleij 提交于
dma_unmap_sg() already flushes the cache, I don't get what this code is doing here. Signed-off-by: NLinus Walleij <linus.walleij@linaro.org> Signed-off-by: NChris Ball <cjb@laptop.org>
-
- 22 1月, 2011 3 次提交
-
-
由 Sahitya Tummala 提交于
Configure SDCC GPIOs when the host is powered up or powered off. Signed-off-by: NSahitya Tummala <stummala@codeaurora.org>
-
由 Daniel Walker 提交于
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: NDaniel Walker <dwalker@codeaurora.org>
-
由 Daniel Walker 提交于
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: NDaniel Walker <dwalker@codeaurora.org>
-
- 21 12月, 2010 5 次提交
-
-
由 Sahitya Tummala 提交于
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: NSahitya Tummala <stummala@codeaurora.org> Signed-off-by: NDavid Brown <davidb@codeaurora.org>
-
由 Sahitya Tummala 提交于
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: NSahitya Tummala <stummala@codeaurora.org> Signed-off-by: NDavid Brown <davidb@codeaurora.org>
-
由 Sahitya Tummala 提交于
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: NSahitya Tummala <stummala@codeaurora.org> Signed-off-by: NDavid Brown <davidb@codeaurora.org>
-
由 Sahitya Tummala 提交于
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: NSahitya Tummala <stummala@codeaurora.org> Signed-off-by: NDavid Brown <davidb@codeaurora.org>
-
由 Sahitya Tummala 提交于
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: NSahitya Tummala <stummala@codeaurora.org> Signed-off-by: NDavid Brown <davidb@codeaurora.org>
-
- 23 10月, 2010 1 次提交
-
-
由 Martin K. Petersen 提交于
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: NMartin K. Petersen <martin.petersen@oracle.com> Signed-off-by: NChris Ball <cjb@laptop.org>
-
- 11 8月, 2010 1 次提交
-
-
由 Christian Dietrich 提交于
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: NChristian Dietrich <qy03fugy@stud.informatik.uni-erlangen.de> Acked-by: NDavid Brown <davidb@codeaurora.org> Cc: Daniel Walker <dwalker@codeaurora.org> Cc: <linux-mmc@vger.kernel.org> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
- 10 8月, 2010 2 次提交
-
-
由 Sahitya Tummala 提交于
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: NSahitya Tummala <stummala@codeaurora.org> Signed-off-by: NDaniel Walker <dwalker@codeaurora.org>
-
由 Sahitya Tummala 提交于
Rename mmc_platform_data to msm_mmc_platform_data as it is used only by MSM platform. Signed-off-by: NSahitya Tummala <stummala@codeaurora.org> Signed-off-by: NDaniel Walker <dwalker@codeaurora.org>
-
- 24 6月, 2010 1 次提交
-
-
由 Daniel Walker 提交于
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: NDaniel Walker <dwalker@codeaurora.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>
-
- 30 3月, 2010 1 次提交
-
-
由 Tejun Heo 提交于
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: NTejun Heo <tj@kernel.org> Guess-its-ok-by: NChristoph Lameter <cl@linux-foundation.org> Cc: Ingo Molnar <mingo@redhat.com> Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
-
- 19 3月, 2010 15 次提交
-
-
由 San Mehat 提交于
Signed-off-by: NDmitry Shmidt <dimitrysh@google.com> Signed-off-by: NDaniel Walker <dwalker@codeaurora.org>
-
由 San Mehat 提交于
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: NSan Mehat <san@google.com> Signed-off-by: NDaniel Walker <dwalker@codeaurora.org>
-
由 San Mehat 提交于
Signed-off-by: NSan Mehat <san@google.com> Signed-off-by: NDaniel Walker <dwalker@codeaurora.org>
-
由 Dmitry Shmidt 提交于
Signed-off-by: NSan Mehat <san@google.com> Signed-off-by: NDaniel Walker <dwalker@codeaurora.org>
-
由 San Mehat 提交于
Signed-off-by: NSan Mehat <san@google.com> Signed-off-by: NDaniel Walker <dwalker@codeaurora.org>
-
由 San Mehat 提交于
Signed-off-by: NSan Mehat <san@google.com> Signed-off-by: NDaniel Walker <dwalker@codeaurora.org>
-
由 San Mehat 提交于
Signed-off-by: NSan Mehat <san@google.com> Signed-off-by: NDaniel Walker <dwalker@codeaurora.org>
-
由 San Mehat 提交于
Signed-off-by: NSan Mehat <san@google.com> Signed-off-by: NDaniel Walker <dwalker@codeaurora.org>
-
由 San Mehat 提交于
Signed-off-by: NSan Mehat <san@google.com> Signed-off-by: NDaniel Walker <dwalker@codeaurora.org>
-
由 San Mehat 提交于
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: NSan Mehat <san@google.com> Cc: Brian Swetland <swetland@google.com> Change-Id: Ifbf17cfafb858106d73bf49af52b5161a265a484 Signed-off-by: NSan Mehat <san@google.com> Signed-off-by: NDaniel Walker <dwalker@codeaurora.org>
-
由 San Mehat 提交于
Signed-off-by: NSan Mehat <san@google.com> Signed-off-by: NDaniel Walker <dwalker@codeaurora.org>
-
由 San Mehat 提交于
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: NSan Mehat <san@google.com> Signed-off-by: NDaniel Walker <dwalker@codeaurora.org>
-
由 San Mehat 提交于
- 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: NSan Mehat <san@google.com> Signed-off-by: NDaniel Walker <dwalker@codeaurora.org>
-
由 San Mehat 提交于
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: NSan Mehat <san@google.com> Cc: Brent DeGraaf <bdegraaf@quicinc.com> Cc: Brian Swetland <swetland@google.com> Signed-off-by: NDaniel Walker <dwalker@codeaurora.org>
-
由 San Mehat 提交于
Signed-off-by: NSan Mehat <san@google.com> Signed-off-by: NDaniel Walker <dwalker@codeaurora.org>
-