An error occurred fetching the project authors.
- 24 Mar, 2009 7 commits
-
-
Anton Vorontsov authored
Small udelay is needed to make eSDHC work in PIO mode. Without the delay reading causes endless interrupt storm, and writing corrupts data. The first guess would be that we must wait for some bit in some register, but I didn't find any reliable bits that change before and after the delay. Signed-off-by:
Anton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Anton Vorontsov authored
FSL eSDHC hosts have incompatible register map to manage the SDCLK. This patch adds set_clock callback so that drivers could overwrite set_clock behaviour. Similar patch[1] was posted by Ben Dooks, though in Ben's version the callback is named change_clock, plus the patch has some unrelated bits that makes the patch difficult to reuse. [1] http://lkml.org/lkml/2008/12/2/160Signed-off-by:
Anton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Ben Dooks authored
Some controllers do not provide clock information in their capabilities (in the Samsung case, it is because there are multiple clock sources available to the controller). Add hooks to allow the system to supply clock information. p.s. In the original Ben's patch there was a bug that makes sdhci_add_host() return -ENODEV even if callbacks were specified. This is fixed now. Signed-off-by:
Ben Dooks <ben-linux@fluff.org> Signed-off-by:
Anton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Anton Vorontsov authored
This patch adds SDHCI_QUIRK_INVERTED_WRITE_PROTECT quirk. When specified, the sdhci driver will invert WP state. p.s. Actually, the quirk is more board-specific than controller-specific. Signed-off-by:
Anton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Anton Vorontsov authored
This patch adds SDHCI_QUIRK_BROKEN_CARD_DETECTION quirk. When specified, sdhci driver will set MMC_CAP_NEEDS_POLL MMC host capability, and won't enable card insert/remove interrupts. This is needed for hosts with unreliable card detection, such as FSL eSDHC. The original eSDHC driver was tring to "debounce" card-detection IRQs by reading present state and disabling particular interrupts. But with this debouncing scheme I noticed that sometimes we miss card insertion/removal events. Signed-off-by:
Anton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Anton Vorontsov authored
Card detection interrupts should be handled separately as they should not be enabled before mmc_add_host() returns and should be disabled before calling mmc_remove_host(). The same is for suspend and resume routines. sdhci_init() no longer enables card-detection irqs. Instead, two new functions implemented: sdhci_enable_card_detection() and sdhci_disable_card_detection(). New sdhci_reinit() call implemented to behave the same way as the old sdhci_init(). Also, this patch implements and uses few new helpers to manage IRQs in a more conveinient way, that is: - sdhci_clear_set_irqs() - sdhci_unmask_irqs() - sdhci_mask_irqs() - SDHCI_INT_ALL_MASK constant sdhci_enable_sdio_irq() converted to these new helpers, plus the helpers will be used by the subsequent patches. Signed-off-by:
Anton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Anton Vorontsov authored
Currently the SDHCI driver works with PCI accessors (write{l,b,w} and read{l,b,w}). With this patch drivers may change memory accessors, so that we can support hosts with "weird" IO memory access requirments. For example, in "FSL eSDHC" SDHCI hardware all registers are 32 bit width, with big-endian addressing. That is, readb(0x2f) should turn into readb(0x2c), and readw(0x2c) should be translated to le16_to_cpu(readw(0x2e)). Signed-off-by:
Anton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
- 02 Mar, 2009 1 commit
-
-
Ben Dooks authored
The Samsung SDHCI (and FSL eSDHC) controller block seems to fail to generate an INT_DATA_END after the transfer has completed and the bus busy state finished. Changes in e809517f to use the new busy method are the cause of the behaviour change. Signed-off-by:
Ben Dooks <ben-linux@fluff.org> Signed-off-by:
Anton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
- 18 Feb, 2009 2 commits
-
-
Helmut Schaa authored
Fix the led device naming for the sdhci driver. The led class documentation defines the led name to have the form "devicename:colour:function" while not applicable sections should be left blank. To comply with the documentation the led device name is changed from "mmc*" to "mmc*::". Signed-off-by:
Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Pierre Ossman authored
This reverts commit a4b76193. It turned out that the controller had problem running at the higher speed, so go back to trusting the hardware capability bits. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
- 31 Dec, 2008 1 commit
-
-
Éric Piel authored
CONFIG_LEDS_CLASS is defined only if led-class is built-in, otherwise when it is a module the option is called CONFIG_LEDS_CLASS_MODULE. Led support should also be activated in this case. Signed-off-by:
Eric Piel <eric.piel@tremplin-utc.net> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
- 12 Oct, 2008 1 commit
-
-
Pierre Ossman authored
Some high speed capable controllers forget to set the high speed capability bit. Make sure we enable the functionality anyway. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
- 01 Aug, 2008 1 commit
-
-
Pierre Ossman authored
Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
- 26 Jul, 2008 1 commit
-
-
Andrew Morton authored
alpha: drivers/mmc/host/sdhci.h:242: error: field 'sg_miter' has incomplete type Cc: Pierre Ossman <drzeus@drzeus.cx> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
- 23 Jul, 2008 1 commit
-
-
Pierre Ossman authored
Improve the PIO handling so that it can service highmem pages. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
- 15 Jul, 2008 4 commits
-
-
Pierre Ossman authored
Add support for the scatter-gather DMA mode present on newer controllers. As the mode requires 32-bit alignment, non-aligned chunks are handled by using a bounce buffer. Also add some new quirks to handle controllers that have bugs in the ADMA engine. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Pierre Ossman authored
Gracefully handle when the device is suddenly removed. Do a test read and avoid any further access if that read returns -1. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Pierre Ossman authored
Give the quirk for broken timeout handling a better chance of handling more controllers by simply classifying the system as broken and setting a fixed value. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Pierre Ossman authored
The SDHCI interface is not PCI specific, yet the Linux driver was intimitely connected to the PCI bus. This patch properly separates the PCI specific portion from the bus independent code. This patch is based on work by Ben Dooks but he did not have time to complete it. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
- 13 May, 2008 1 commit
-
-
Harvey Harrison authored
Otherwise it can only take the values 0/-1 which doesn't seem to have been intended. drivers/mmc/host/sdhci.h:190:20: error: dubious one-bit signed bitfield Signed-off-by:
Harvey Harrison <harvey.harrison@gmail.com> Acked-by:
Pierre Ossman <drzeus-list@drzeus.cx> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
- 18 Apr, 2008 2 commits
-
-
Pierre Ossman authored
Hook up the controller LED to the LED subsystem, allowing more flexible control than simply indicating an ongoing request. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Pierre Ossman authored
Remove the use of the sdhci specific device name and use the mmc controller name instead. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
- 08 Feb, 2008 1 commit
-
-
Feng Tang authored
Some devices have several controllers; need add the index info to device slot name host->slot_desc[] Signed-off-by:
Feng Tang <feng.tang@intel.com> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
- 12 Dec, 2007 1 commit
-
-
Pierre Ossman authored
Some controllers have been designed on the assumption that all transfers will be 32-bit aligned, both in start address and in size. This is not a guarantee the SDHCI specification provides and not one we can provide. Revert back to PIO for individual requests in order to work around the hardware bug. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
- 03 Oct, 2007 1 commit
-
-
Nicolas Pitre authored
Signed-off-by:
Nicolas Pitre <nico@cam.org> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
- 23 Aug, 2007 1 commit
-
-
Pierre Ossman authored
It is fully legal for a controller to start issuing data related interrupts before it has signalled that the command has completed. Make sure the driver actually can handle this. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
- 25 Jul, 2007 1 commit
-
-
Pierre Ossman authored
Make sure all headers in the files reflect their true position in the tree. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
- 20 Jul, 2007 1 commit
-
-
Pierre Ossman authored
The controller has a bit indicating that one of the higher bits (the error bits) are set. A previous bug caused this bit to be masked, but since that bug has been fixed we have to clear it explicictly. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
- 01 May, 2007 2 commits
-
-
Pierre Ossman authored
Clean up the drivers/mmc directory by moving card and host drivers into subdirectories. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Alex Dubov authored
mmc layer may introduce additional (compared to block layer) limits on request size. Culling of the sg list to match adjusted request size simplifies the handling of such cases in the low level driver, allowing it to skip block count checks while processing sg entries. (fixes for wbsd and sdhci by Pierre Ossman) Signed-off-by:
Alex Dubov <oakad@yahoo.com> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
- 04 Feb, 2007 2 commits
-
-
Pierre Ossman authored
Since we actively avoid highmem, calling kmap_atomic() instead of page_address() is effectively only obfuscation. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Pierre Ossman authored
Most controllers have an upper limit on the block size. Allow the host drivers to specify this and make sure we avoid hitting this limit. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
- 01 Dec, 2006 1 commit
-
-
Pierre Ossman authored
The SDHCI spec implies that is is incorrect to set a clock frequency above 25 MHz without setting the high speed bit. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
- 01 Oct, 2006 1 commit
-
-
Pierre Ossman authored
Clarify my (Pierre's) position on which GPL versions apply. The patch only touches the source files where I am the only major author. The people who have made the minor commits to the files have been contacted and have no issues with this change. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx> Cc: Russell King <rmk@arm.linux.org.uk> Signed-off-by:
Andrew Morton <akpm@osdl.org> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
- 02 Jul, 2006 6 commits
-
-
Pierre Ossman authored
As some specific controllers will have bugs, we need a way to map special behaviour to certain hardware. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx> Signed-off-by:
Andrew Morton <akpm@osdl.org> Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
-
Pierre Ossman authored
Properly test for controller interface to see if it's DMA capable. As many controllers are misconfigured in this regard, also add debug parameters to force DMA support either way. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx> Signed-off-by:
Andrew Morton <akpm@osdl.org> Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
-
Pierre Ossman authored
Check the interface version of the controller and bail out if it's an unknown version. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx> Signed-off-by:
Andrew Morton <akpm@osdl.org> Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
-
Pierre Ossman authored
The controller has an upper limit on the block size. Make sure we do not cross it. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx> Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
-
Pierre Ossman authored
The sdhci controllers will issue an interrupt when a configurable number of bytes have been transfered using DMA. The purpose is to handle multiple, scattered memory pages. Unfortunately, it requires that all transfers are completely aligned to memory pages, which we cannot guarantee. So we just disable the function. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx> Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
-
Pierre Ossman authored
The sdhci controllers operate with blocks, not bytes. The PIO routines must therefore make sure that the minimum unit transfered is a complete block. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx> Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
-