- 15 7月, 2008 13 次提交
-
-
由 Pierre Ossman 提交于
Relax requirements on host controllers and only require that they do not report a transfer count than is larger than the actual one (i.e. a lower value is okay). This is how many other parts of the kernel behaves so upper layers should already be prepared to handle that scenario. This gives us a performance boost on MMC cards. Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Ville Syrjala 提交于
The byte mode support fails to clear the byte mode bit in the command register, possibly leaving byte mode enabled with the counters programmed in non-byte mode. Signed-off-by: NVille Syrjala <syrjala@sci.fi> Signed-off-by: NNicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Ville Syrjala 提交于
According to the documentation the AT91SAM9261 MCI shares the block size limitations of the AT91RM9200 MCI. Also the errata documentation for AT91RM9200 and AT91SAM9261 state that stream commands are not supported. This has not been tested on actual hardware. Signed-off-by: NVille Syrjala <syrjala@sci.fi> Signed-off-by: NNicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Ville Syrjala 提交于
AT91SAM926[0/3] PDC must write at least 12 bytes. The code compiles and runs but the actual condition for this erratum did not trigger in my tests so it's unclear if it actually works as intended. Signed-off-by: NVille Syrjala <syrjala@sci.fi> Signed-off-by: NNicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Nicolas Ferre 提交于
In at91_mci_completed_command() function, this patch distinguishes command error and data error. It reports it in the corresponding error field. Signed-off-by: NNicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Nicolas Ferre 提交于
Reading AT91_MCI_SR again at the end of transfer can corrupt the error reporting. Some fields in the SR register are read-and-clear. Signed-off-by: NNicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Eric Benard 提交于
Enable SDIO interrupt handling. Signed-off-by: NEric Benard <ebenard@free.fr> Signed-off-by: NNicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Nicolas Ferre 提交于
at91_mci is capable of multiwrite. Enable it before it disappears. Signed-off-by: NNicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Nicolas Ferre 提交于
Modify bytes_xfered value after a write. That will report, as accurately as possible, the amount of sectors that are effectively written. This update introduces the check of the busy signal given by the card. Signed-off-by: NNicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Marc Pignat 提交于
The at91 mci controller internal state machine seems to often crash. This can be fixed by resetting the controller after each command for at91rm9200 and by setting the MCI_BLKR register on at91sam926*. Signed-off-by: NMarc Pignat <marc.pignat@hevs.ch> Signed-off-by: NHans J Koch <hjk@linutronix.de> Signed-off-by: NNicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Marc Pignat 提交于
Detect command timeout (or mci controller hangs). Signed-off-by: NMarc Pignat <marc.pignat@hevs.ch> Signed-off-by: NHans J Koch <hjk@linutronix.de> Signed-off-by: NNicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Marc Pignat 提交于
Implement transfer with size not modulo 4 for at91sam9*. Please note that the at91rm9200 simply can't handle this. Signed-off-by: NMarc Pignat <marc.pignat@hevs.ch> Signed-off-by: NNicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Anton Vorontsov 提交于
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: NAnton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
- 17 5月, 2008 1 次提交
-
-
由 Marc Pignat 提交于
MMC_POWER_ON is a noop, no need to set the power pin again. Signed-off-by: NMarc Pignat <marc.pignat@hevs.ch> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
- 16 4月, 2008 1 次提交
-
-
由 Kay Sievers 提交于
Since 43cc71ee, the platform modalias is prefixed with "platform:". Add MODULE_ALIAS() to the hotpluggable MMC host platform drivers, to re-enable auto loading. Also, add missing owner declarations in driver init. [dbrownell@users.sourceforge.net: registration fixes] Signed-off-by: NKay Sievers <kay.sievers@vrfy.org> Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net> Acked-by: NPierre Ossman <drzeus@drzeus.cx> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
- 08 2月, 2008 1 次提交
-
-
由 David Brownell 提交于
Update the AT91 MMC driver to use the generic GPIO calls instead of the AT91-specific calls; and to request (and release) those GPIO signals. That required updating the probe() fault cleanup codepaths. Now there is a single sequence for freeing resources, in reverse order of their allocation. Also that code uses use dev_*() for messaging, and has less abuse of KERN_ERR. Likewise with updating remove() cleanup. This had to free the GPIOs, and while adding that code I noticed and fixed two other problems: it was poking at a workqueue owned by the mmc core; and in one (rare) case would try freeing an IRQ that it didn't allocate. Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net> Signed-off-by: NNicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
- 23 10月, 2007 1 次提交
-
-
由 Jens Axboe 提交于
Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
-
- 18 10月, 2007 1 次提交
-
-
由 Andrew Victor 提交于
A small MMC driver cleanup. Use the defined AT91_MCI_ERRORS in at91_mci_completed_command() instead of specifying all the error bits individually. Signed-off-by: NAndrew Victor <andrew@sanpeople.com> Signed-off-by: NNicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
- 24 9月, 2007 1 次提交
-
-
由 Marc Pignat 提交于
This kind of transfer is not supported, so don't advertise it and make it fail early. Signed-off-by: NMarc Pignat <marc.pignat@hevs.ch> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
- 23 9月, 2007 3 次提交
-
-
由 Pierre Ossman 提交于
The MMC_DATA_MULTI flag never had a proper definition of what it means, so remove it and let the drivers check the block count in the request. Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Pierre Ossman 提交于
Remove the BYTEBLOCK capability and let the broken hosts fail the requests with -EINVAL instead. Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Pierre Ossman 提交于
Convert the MMC layer to use standard error codes and not its own, incompatible values. Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
- 11 9月, 2007 1 次提交
-
-
由 Anti Sullin 提交于
This patch fixes a bug in AT91 mmc host driver, that enables the wakeup from suspend on card detection pin even if the card detect pin is not available (==0). If not card detection pin is defined, IRQ0 == FIQ gets enabled and if some activity is present on that pin, the system gets a FIQ request, that causes a crash. Signed-off-by: NAnti Sullin <anti.sullin@artecdesign.ee> Signed-off-by: NNicolas Ferre <nicolas.ferre@rfo.atmel.com> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
- 09 8月, 2007 1 次提交
-
-
由 Nicolas Ferre 提交于
Some cleanup with whitespace/tab at the end of lines. Signed-off-by: NNicolas Ferre <nicolas.ferre@rfo.atmel.com> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
- 26 7月, 2007 1 次提交
-
-
由 Pierre Ossman 提交于
Make sure all headers in the files reflect their true position in the tree. Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
- 21 7月, 2007 1 次提交
-
-
由 Marc Pignat 提交于
This piece of code enable the system to be wake-up by a card insertion or removal. Signed-off-by: NMarc Pignat <marc.pignat@hevs.ch> Signed-off-by: NNicolas Ferre <nicolas.ferre@rfo.atmel.com> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
- 10 7月, 2007 2 次提交
-
-
由 Nicolas Ferre 提交于
Fixes hanging using multi block operations (seen during CMD25). Follows closely the datasheet flowcharts. This piece of code handles better big file writing. I had to take care of the notbusy signal during write (at91_mci_handle_cmdrdy function) and to rearrange the AT91_MCI_ENDRX and AT91_MCI_RXBUFF flag usage. Signed-off-by: NNicolas Ferre <nicolas.ferre@rfo.atmel.com> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Nicolas Ferre 提交于
Typo fix in at91_mci driver : standardized the typo (at91_mci everywhere) Signed-off-by: NNicolas Ferre <nicolas.ferre@rfo.atmel.com> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
- 07 6月, 2007 1 次提交
-
-
由 Marc Pignat 提交于
Fix compilation error by removing command decoding from at91_mci.c driver. Decoding commands in the host driver is the wrong way. Signed-off-by: NMarc Pignat <marc.pignat@hevs.ch> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
- 01 5月, 2007 2 次提交
-
-
由 Pierre Ossman 提交于
Clean up the drivers/mmc directory by moving card and host drivers into subdirectories. Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Pierre Ossman 提交于
All host drivers were #include:ing mmc/protocol.h just to get access to the OCR bit defines. Move these to host.h instead. Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
- 08 2月, 2007 1 次提交
-
-
由 Andrew Victor 提交于
The Atmel AT91 and AVR32 processor architectures share many of the same peripherals. The PDC (Peripheral Data Controller) registers are also implemented within in a number of the on-chip peripherals (eg, USART, MMC, SPI, SSC, etc). In a attempt not to duplicate the register definitions in each peripheral, or in each architecture, the at91_pdc.h header in asm-arm/arch-at91 and asm-avr32/arch-at32ap has been replaced with linux/atmel_pdc.h. The definitions have also been renamed from AT91_PDC_* to ATMEL_PDC_*, and the drivers updated accordingly. Original patch from Nicolas Ferre. Signed-off-by: NAndrew Victor <andrew@sanpeople.com> Acked-by: NHaavard Skinnemoen <hskinnemoen@atmel.com> Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
-
- 05 2月, 2007 2 次提交
-
-
由 Pierre Ossman 提交于
Many controllers have an upper limit on the number of blocks that can be transferred in one request. Allow the host drivers to specify this and make sure we avoid hitting this limit. Also change the max_sectors field to avoid confusion. This makes it map less directly to the block layer limits, but as they didn't apply directly on MMC cards anyway, this isn't a great loss. Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Pierre Ossman 提交于
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: NPierre Ossman <drzeus@drzeus.cx>
-
- 04 1月, 2007 1 次提交
-
-
由 David Brownell 提交于
Linker level tweaks for the AT91 MMC driver: - fix a wrongly-exported symbol - move probe() to init section - move remove() to exit section When this driver is statically linked, this patch shrinks the driver's runtime I-space footprint by over 20% (950 bytes). Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
- 11 12月, 2006 5 次提交
-
-
由 Andrew Victor 提交于
The driver is usable on the newer SAM9 processors so replace all text references to AT91RM9200 with just AT91. The controller bug where all the words are byte-swapped is fixed on the AT91SAM9 processors. The byte-swapping work-around therefore only needs to be done if cpu_is_at91rm9200(). [Original patch from Wojtek Kaniewski] The AT91RM9200 and AT91SAM9260 processors support two MMC/SD slots - the slot which is connected is now passed via the platform_data and the correct slot selected in the AT91_MCI_SDCR register. The driver should not be calling at91_set_gpio_output() since the VCC pin should have already been configured as an output in the processor/board setup code. The driver should call at91_set_gpio_value(). Signed-off-by: NAndrew Victor <andrew@sanpeople.com> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Andrew Victor 提交于
A number of small cleanups to the AT91RM9200 MMC driver: - fix warnings generated by pr_debug(). - prepend "AT91 MMC:" to printk() messages. Signed-off-by: NAndrew Victor <andrew@sanpeople.com> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Andrew Victor 提交于
This patch simplifies the AT91RM9200 MMC interrupt handler code so that it doesn't re-read the Interrupt Status and Interrupt Mask registers multiple times. Also defined AT91_MCI_ERRORS instead of using the hard-coded 0xffff0000. Signed-off-by: NAndrew Victor <andrew@sanpeople.com> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Andrew Victor 提交于
Move the global 'mci_clk' variable into the local 'at91mci_host' structure. Signed-off-by: NAndrew Victor <andrew@sanpeople.com> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Andrew Victor 提交于
Use the I/O base-address and IRQ passed to the driver via the platform_device resources instead of using hardcoded values. Signed-off-by: NAndrew Victor <andrew@sanpeople.com> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-