- Jun 13, 2009
-
-
Sascha Hauer authored
Some controllers allow a much lower frequency than 400kHz. Keep the minimum frequency within sensible limits. Signed-off-by:
Sascha Hauer <s.hauer@pengutronix.de>
-
Jorg Schummer authored
With this patch, mmc_rescan can detect the removal of an mmc card and the insertion of (possibly another) card in the same run. This means that a card change can be detected without having to call mmc_detect_change multiple times. This change generalises the core such that it can be easily used by hosts which provide a mechanism to detect only the presence of a card reader cover, which has to be taken off in order to insert a card. Other hosts ("card detect" or "MMC_CAP_NEEDS_POLL") each receive an event when a card is removed and when a card is inserted, so it is sufficient for them if mmc_rescan handles only one event at a time. "Cover detect" hosts, however, only receive events about the cover status. This means that between 2 subsequent events, both a card removal and a card insertion can occur. In this case, the pre-patch version of mmc_rescan would only detect the removal of the previous card but not the insertion of the new card. Signed-off-by:
Jorg Schummer <ext-jorg.2.schummer@nokia.com> Signed-off-by:
Pierre Ossman <pierre@ossman.eu>
-
- May 03, 2009
-
-
José M. Fernández authored
The TI controller on Toshiba Tecra M5 needs more time to power up or the cards will init incorrectly or not at all. Signed-off-by:
José M. Fernández <josemariafg@gmail.com> Signed-off-by:
Pierre Ossman <pierre@ossman.eu>
-
- Apr 08, 2009
-
-
Wolfgang Muees authored
Some cards are not able to calculate a valid CRC16 value for CID and CSD reads (CRC for 512 byte data blocks is OK). By moving the CRC enable after the read of CID and CSD, these cards can be used. This patch was tested with a faulty 8 GByte takeMS Class 6 SDHC card. This patch was suggested by Pierre Ossman. Signed-off-by:
Wolfgang Muees <wolfgang.mues@auerswald.de> Signed-off-by:
Pierre Ossman <pierre@ossman.eu>
-
Jarkko Lavinen authored
Signed-off-by:
Jarkko Lavinen <jarkko.lavinen@nokia.com> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
- Mar 31, 2009
-
-
David Brownell authored
Glue between MMC and regulator stacks ... verified with some OMAP3 boards using adjustable and configured-as-fixed regulators on several MMC controllers. These calls are intended to be used by MMC host adapters using at least one regulator per host. Examples include slots with regulators supporting multiple voltages and ones using multiple voltage rails (e.g. DAT4..DAT7 using a separate supply, or a split rail chip like certain SDIO WLAN or eMMC solutions). Signed-off-by:
David Brownell <dbrownell@users.sourceforge.net> Acked-by:
Pierre Ossman <drzeus@drzeus.cx> Signed-off-by:
Liam Girdwood <lrg@slimlogic.co.uk>
-
- Mar 24, 2009
-
-
Wolfgang Muees authored
Some SD cards have very high timeouts in SPI mode. So adjust the timeouts from theory to practice. Signed-off-by:
Wolfgang Muees <wolfgang.mues@auerswald.de> Acked-by:
David Brownell <dbrownell@users.sourceforge.net> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Balaji Rao authored
During mmc unsafe resume, choose the right voltage for the card after powerup. Although this has not seen to cause trouble, it's the wrong behaviour. Signed-off-by:
Balaji Rao <balajirrao@openmoko.org> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Pierre Ossman authored
Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Pierre Ossman authored
Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Pierre Ossman authored
Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Adrian Hunter authored
Extended CSD is a MMC card register. As increasingly interesting fields are being added to Extended CSD, it is helpful to see its value. Note that SD cards do not have an Extended CSD register, so it is MMC only. Signed-off-by:
Adrian Hunter <ext-adrian.hunter@nokia.com> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Andy Whitcroft authored
Currently we are using an explicit udev rule to trigger loading of the mmc-block module when an MMC or SD card is detected: SUBSYSTEM=="mmc", RUN+="/sbin/modprobe -Qba mmc-block" It makes much more sense for the mmc bus driver and the mmc-block module to share MODALIAS information so that they are linked automatically. There is no real information of use in the MMC system at the current time. All devices inserted require us to load the mmc-block device. Until such time as useful parameters exist simply reflect the module linkage via the module alias below: mmc:block Signed-off-by:
Andy Whitcroft <apw@canonical.com> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Jorg Schummer authored
The delayed work item mmc_host.detect is now cancelled before flushing the work queue. This takes care of cases when delayed_work was scheduled for mmc_host.detect, but not yet placed in the work queue. Signed-off-by:
Jorg Schummer <ext-jorg.2.schummer@nokia.com> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
- Mar 08, 2009
-
-
Adrian Hunter authored
Commit 0d3e0460 "MMC: CSD and CID timeout values" inadvertently broke the timeout for the MMC command SEND_EXT_CSD. This patch puts it back again. Depending on the characteristics of the controller, this bug may prevent the use of MMC cards. Signed-off-by:
Adrian Hunter <adrian.hunter@nokia.com> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
- Dec 31, 2008
-
-
David Brownell authored
Get rid of a silent failure mode when the MMC/SD host doesn't support the voltages needed to operate a given card, by adding a warning. A 3.3V host and a 3.0V card, for example, no longer need to mysteriously just not work at all. This isn't the best diagnostic; ideally it would also tell what voltage the card and host support (and not just by dumping the bitmasks). Signed-off-by:
David Brownell <dbrownell@users.sourceforge.net> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Anton Vorontsov authored
This function sets the OCR mask bits according to provided voltage ranges. Will be used by the mmc_spi OpenFirmware bindings. Signed-off-by:
Anton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Jarkko Lavinen authored
Signed-off-by:
Jarkko Lavinen <jarkko.lavinen@nokia.com> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
- Nov 08, 2008
-
-
Kay Sievers authored
Acked-by:
Greg Kroah-Hartman <gregkh@suse.de> Signed-Off-By:
Kay Sievers <kay.sievers@vrfy.org> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Pierre Ossman authored
It seems that some cards are slightly out of spec and occasionally will not be able to complete a write in the alloted 250 ms [1]. Incease the timeout slightly to allow even these cards to function properly. [1] http://lkml.org/lkml/2008/9/23/390 Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
- Oct 12, 2008
-
-
Matthew Fleming authored
The MMC spec states that the timeout for accessing the CSD and CID registers is 64 clock cycles. Signed-off-by:
Matthew Fleming <matthew.fleming@imgtec.com> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Pierre Ossman authored
Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Pierre Ossman authored
There is one thread per host controller so make sure they all get unique names. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Pierre Ossman authored
Make sure we can be woken from the forced sleep that is done on errors. Removing a card often results in -ENOMEDIUM or -EILSEQ so we previously locked up the removal process for a second. We could completely exit on -ENOMEDIUM, but it might be a transient glitch so treat it like any other error. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
- Aug 01, 2008
-
-
Pierre Ossman authored
Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
- Jul 26, 2008
-
-
Haavard Skinnemoen authored
For each card successfully added to the bus, create a subdirectory under the host's debugfs root with information about the card. At the moment, only a single file is added to the card directory for all cards: "state". It reflects the "state" field in struct mmc_card, indicating whether the card is present, readonly, etc. For MMC and SD cards (not SDIO), another file is added: "status". Reading this file will ask the card about its current status and return it. This can be useful if the card just refuses to respond to any commands, which might indicate that the card state is not what the MMC core thinks it is (due to a missing stop command, for example.) Signed-off-by:
Haavard Skinnemoen <haavard.skinnemoen@atmel.com> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Haavard Skinnemoen authored
When CONFIG_DEBUG_FS is set, create a few files under /sys/kernel/debug containing information about an mmc host's internal state. Currently, just a single file is created, "ios", which contains information about the current operating parameters for the bus (clock speed, bus width, etc.) Host drivers can add additional files and directories under the host's root directory by passing the debugfs_root field in struct mmc_host as the 'parent' parameter to debugfs_create_*. Signed-off-by:
Haavard Skinnemoen <haavard.skinnemoen@atmel.com> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
- Jul 15, 2008
-
-
Tomas Winkler authored
Unfold nested macros it creates not readable code and sparse warnings sdio_io.c:190:9: warning: symbol '_min1' shadows an earlier one Signed-off-by:
Tomas Winkler <tomas.winkler@intel.com> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Benzi Zbit authored
This adds reading and using of enable_timeout from the CIS Signed-off-by:
Benzi Zbit <benzi.zbit@intel.com> Signed-off-by:
Tomas Winkler <tomas.winkler@intel.com> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Tomas Winkler authored
This patch fixes sdio_io sparse errors. This fix changes signature of API functions, changing unsigned char -> u8 unsigned short -> u16 unsigned long -> u32 - this was probably a bug in 64 bit platforms Signed-off-by:
Tomas Winkler <tomas.winkler@intel.com> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Pierre Ossman authored
Make sure that the maximum size for a byte mode transfer is identical in all places. Also tweak the transfer helper so that a single byte mode transfer is preferred over (possibly multiple) block mode request(s). Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Pierre Ossman authored
There are a lot of crappy controllers out there that cannot handle all the request sizes that the MMC/SD/SDIO specifications require. In case the card driver can pad the data to overcome the problems, this commit adds a helper that calculates how much that padding should be. A corresponding helper is also added for SDIO, but it can also deal with all the complexities of splitting up a large transfer efficiently. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Deepak Saxena authored
Make the variable name in the comments match the actual name of the variable. Signed-off-by:
Deepak Saxena <dsaxena@laptop.org> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Anton Vorontsov authored
Now get_ro() callback must return 0/1 values for its logical states, and negative errno values in case of error. If particular host instance doesn't support RO/WP switch, it should return -ENOSYS. This patch changes some hosts in two ways: 1. Now functions should be smart to not return negative values in "RO asserted" case (particularly gpio_ calls could return negative values for the outermost GPIOs). Also, board code usually passes get_ro() callbacks that directly return gpioreg & bit result, so at91_mci, imxmmc, pxamci and mmc_spi's get_ro() handlers need take special care when returning platform's values to the mmc core. 2. In case of host instance didn't implement get_ro() callback, it should really return -ENOSYS and let the mmc core decide what to do about it (mmc core thinks the same way as the hosts, so it isn't functional change). Signed-off-by:
Anton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Anton Vorontsov authored
Some hosts (and boards that use mmc_spi) do not use interrupts on the CD line, so they can't trigger mmc_detect_change. We want to poll the card and see if there was a change. 1 second poll interval seems resonable. This patch also implements .get_cd() host operation, that could be used by the hosts that are able to report card-detect status without need to talk MMC. Signed-off-by:
Anton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
- Apr 18, 2008
-
-
Adrian Bunk authored
Every file should include the headers containing the externs for its global functions. Signed-off-by:
Adrian Bunk <bunk@kernel.org> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Adrian Bunk authored
This patch adds proper prototypes for mmc_attach_*() in drivers/mmc/core/core.h Signed-off-by:
Adrian Bunk <bunk@kernel.org> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Adrian Bunk authored
This patch makes the needlessly global __mmc_release_bus() static. Signed-off-by:
Adrian Bunk <bunk@kernel.org> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Robert P. J. Day authored
Signed-off-by:
Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-
Pierre Ossman authored
Reorganise code so that mmc_hostname() works directly after allocation. That way host drivers can use that name for resource allocations and messages during probing. Signed-off-by:
Pierre Ossman <drzeus@drzeus.cx>
-