#
52ca0f3a |
| 22-Sep-2011 |
Russell King <rmk+kernel@arm.linux.org.uk> |
clk: mmci: convert to clk_prepare()/clk_unprepare()
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
Revision tags: v3.1-rc4, v3.1-rc3, v3.1-rc2 |
|
#
1c3be369 |
| 14-Aug-2011 |
Russell King <rmk+kernel@arm.linux.org.uk> |
PM: add runtime PM support to MMCI
Add runtime PM support to the MMCI primecell driver, making use of the core primecell bus runtime PM support.
Tested-by: Linus Walleij <linus.walleij@linaro.org>
PM: add runtime PM support to MMCI
Add runtime PM support to the MMCI primecell driver, making use of the core primecell bus runtime PM support.
Tested-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
Revision tags: v3.1-rc1, v3.0, v3.0-rc7, v3.0-rc6 |
|
#
58c7ccbf |
| 01-Jul-2011 |
Per Forlin <per.forlin@linaro.org> |
mmc: mmci: implement pre_req() and post_req()
pre_req() runs dma_map_sg() and prepares the dma descriptor for the next mmc data transfer. post_req() runs dma_unmap_sg. If not calling pre_req() befo
mmc: mmci: implement pre_req() and post_req()
pre_req() runs dma_map_sg() and prepares the dma descriptor for the next mmc data transfer. post_req() runs dma_unmap_sg. If not calling pre_req() before mmci_request(), mmci_request() will prepare the cache and dma just like it did it before. It is optional to use pre_req() and post_req() for mmci.
Signed-off-by: Per Forlin <per.forlin@linaro.org> Tested-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Chris Ball <cjb@laptop.org>
show more ...
|
#
7f294e49 |
| 08-Jul-2011 |
Linus Walleij <linus.walleij@linaro.org> |
ARM: 6981/2: mmci: adjust calculation of f_min
The ARM version maximum clock divider is 512 whereas for the ST variants it's 257. Let's use DIV_ROUND_UP() for both cases so we can see clearly what's
ARM: 6981/2: mmci: adjust calculation of f_min
The ARM version maximum clock divider is 512 whereas for the ST variants it's 257. Let's use DIV_ROUND_UP() for both cases so we can see clearly what's going on here.
[Use DIV_ROUND_UP to clarify elder code]
Signed-off-by: Ulf Hansson <ulf.hansson@stericsson.com> Reviewed-by: Sebastian Rasmussen <sebastian.rasmussen@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
#
757df746 |
| 30-Jun-2011 |
Linus Walleij <linus.walleij@linaro.org> |
ARM: 6980/1: mmci: use StartBitErr to detect bad connections
Stresstesting insert/remove of SD-cards can trigger a StartBitErr. This made the driver to hang in forever waiting for a non ocurring dat
ARM: 6980/1: mmci: use StartBitErr to detect bad connections
Stresstesting insert/remove of SD-cards can trigger a StartBitErr. This made the driver to hang in forever waiting for a non ocurring data timeout.
This bit and interrupt is documented in the original PL180 TRM, just never implemented until now.
Signed-off-by: Ulf Hansson <ulf.hansson@stericsson.com> Reviewed-by: Linus Walleij <linus.walleij@stericsson.com> Reviewed-by: Jonas Aberg <jonas.aberg@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
Revision tags: v3.0-rc5, v3.0-rc4, v3.0-rc3, v3.0-rc2, v3.0-rc1, v2.6.39, v2.6.39-rc7 |
|
#
17ee083b |
| 05-May-2011 |
Linus Walleij <linus.walleij@linaro.org> |
ARM: 6894/1: mmci: trigger card detect IRQs on falling and rising edges
Right now the card detect IRQ for MMCI is requested without any flags which will give some default machine-specified IRQ behav
ARM: 6894/1: mmci: trigger card detect IRQs on falling and rising edges
Right now the card detect IRQ for MMCI is requested without any flags which will give some default machine-specified IRQ behaviour. However on the U300 rising+falling edges (such as can be expected from a simple GPIO to generate when inserting/removing a card) need to be requested explicitly.
Cc: Rabin Vincent <rabin.vincent@stericsson.com> Cc: Ulf Hansson <ulf.hansson@stericsson.com> Cc: Sebastian Rasmussen <sebastian.rasmussen@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
Revision tags: v2.6.39-rc6, v2.6.39-rc5, v2.6.39-rc4, v2.6.39-rc3, v2.6.39-rc2, v2.6.39-rc1 |
|
#
1784b157 |
| 25-Mar-2011 |
Philippe Langlais <philippe.langlais@stericsson.com> |
ARM: 6832/1: mmci: support for ST-Ericsson db8500v2
ST-Ericsson modified ARM PrimeCell PL180 block has not got an updated corresponding amba-id, althought the IP block has changed in db8500v2. The c
ARM: 6832/1: mmci: support for ST-Ericsson db8500v2
ST-Ericsson modified ARM PrimeCell PL180 block has not got an updated corresponding amba-id, althought the IP block has changed in db8500v2. The change was done to the datactrl register. Using the overrided subversion ID, account for this.
Signed-off-by: Philippe Langlais <philippe.langlais@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
#
399bc486 |
| 01-Apr-2011 |
Linus Walleij <linus.walleij@linaro.org> |
ARM: 6858/1: mmci: force negative edge on clock bypass for ux500
This fixes a regression on high clock speeds with the MMCI on ux500. We need to make sure we derive the passthru clock on the falling
ARM: 6858/1: mmci: force negative edge on clock bypass for ux500
This fixes a regression on high clock speeds with the MMCI on ux500. We need to make sure we derive the passthru clock on the falling edge of the incoming clock if it shall work at high frequencies, and on the ux500's there is a special bit for this.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
Revision tags: v2.6.38, v2.6.38-rc8 |
|
#
49ac215e |
| 04-Mar-2011 |
Linus Walleij <linus.walleij@linaro.org> |
ARM: 6785/1: mmci: separate out ST Micro register defines
The mmci.h header contained a few registers not clearly marked as ST Micro only, rectify this and remove the HWFC magic in the process. The
ARM: 6785/1: mmci: separate out ST Micro register defines
The mmci.h header contained a few registers not clearly marked as ST Micro only, rectify this and remove the HWFC magic in the process. The idea is to make the mmci.h header file more ordered so other vendors with PL180 derivates can see where to put in their custom register defines.
Includes portions of an earlier patch from Sebastian Rasmussen.
Acked-by: Sebastian Rasmussen <sebastian.rasmussen@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
#
768fbc18 |
| 11-Mar-2011 |
Pawel Moll <pawel.moll@arm.com> |
mmc: mmci: Add ARM variant with extended FIFO
New IO FPGA implementation for Versatile Express boards contain MMCI (PL180) cell with FIFO extended to 128 words (512 bytes).
Matt Waddel reports that
mmc: mmci: Add ARM variant with extended FIFO
New IO FPGA implementation for Versatile Express boards contain MMCI (PL180) cell with FIFO extended to 128 words (512 bytes).
Matt Waddel reports that this patch improves MMC performance on his vexpress system, and also fixes "mmcblk0: error -5 transferring data" errors.
Signed-off-by: Pawel Moll <pawel.moll@arm.com> Tested-by: Matt Waddel <matt.waddel@linaro.org> Signed-off-by: Chris Ball <cjb@laptop.org>
show more ...
|
Revision tags: v2.6.38-rc7, v2.6.38-rc6 |
|
#
aa25afad |
| 19-Feb-2011 |
Russell King <rmk+kernel@arm.linux.org.uk> |
ARM: amba: make probe() functions take const id tables
Make Primecell driver probe functions take a const pointer to their ID tables. Drivers should never modify their ID tables in their probe hand
ARM: amba: make probe() functions take const id tables
Make Primecell driver probe functions take a const pointer to their ID tables. Drivers should never modify their ID tables in their probe handler.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
Revision tags: v2.6.38-rc5, v2.6.38-rc4, v2.6.38-rc3, v2.6.38-rc2, v2.6.38-rc1 |
|
#
c8ebae37 |
| 11-Jan-2011 |
Russell King <rmk+kernel@arm.linux.org.uk> |
ARM: mmci: add dmaengine-based DMA support
Based on a patch from Linus Walleij.
Add dmaengine based support for DMA to the MMCI driver, using the Primecell DMA engine interface. The changes over L
ARM: mmci: add dmaengine-based DMA support
Based on a patch from Linus Walleij.
Add dmaengine based support for DMA to the MMCI driver, using the Primecell DMA engine interface. The changes over Linus' driver are:
- rename txsize_threshold to dmasize_threshold, as this reflects the purpose more. - use 'mmci_dma_' as the function prefix rather than 'dma_mmci_'. - clean up requesting of dma channels. - don't release a single channel twice when it's shared between tx and rx. - get rid of 'dma_enable' bool - instead check whether the channel is NULL. - detect incomplete DMA at the end of a transfer. Some DMA controllers (eg, PL08x) are unable to be configured for scatter DMA and also listen to all four DMA request signals [BREQ,SREQ,LBREQ,LSREQ] from the MMCI. They can do one or other but not both. As MMCI uses LBREQ/LSREQ for the final burst/words, PL08x does not transfer the last few words. - map and unmap DMA buffers using the DMA engine struct device, not the MMCI struct device - the DMA engine is doing the DMA transfer, not us. - avoid double-unmapping of the DMA buffers on MMCI data errors. - don't check for negative values from the dmaengine tx submission function - Dan says this must never fail. - use new dmaengine helper functions rather than using the ugly function pointers directly. - allow DMA code to be fully optimized away using dma_inprogress() which is defined to constant 0 if DMA engine support is disabled. - request maximum segment size from the DMA engine struct device and set this appropriately. - removed checking of buffer alignment - the DMA engine should deal with its own restrictions on buffer alignment, not the individual DMA engine users. - removed setting DMAREQCTL - this confuses some DMA controllers as it causes LBREQ to be asserted for the last seven transfers, rather than six SREQ and one LSREQ. - removed burst setting - the DMA controller should not burst past the transfer size required to complete the DMA operation.
Tested-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
#
51d4375d |
| 27-Jan-2011 |
Russell King <rmk+kernel@arm.linux.org.uk> |
ARM: mmci: no need for separate host->data_xfered
We don't need to store the number of bytes transferred in our host structure - we can store this directly in data->bytes_xfered.
Signed-off-by: Rus
ARM: mmci: no need for separate host->data_xfered
We don't need to store the number of bytes transferred in our host structure - we can store this directly in data->bytes_xfered.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
#
c4d877c1 |
| 27-Jan-2011 |
Russell King <rmk+kernel@arm.linux.org.uk> |
ARM: mmci: avoid unnecessary switch to data available PIO interrupts
We don't need to switch to data available interrupts if there's at least half a FIFO depth worth of data remaining, as we'll stil
ARM: mmci: avoid unnecessary switch to data available PIO interrupts
We don't need to switch to data available interrupts if there's at least half a FIFO depth worth of data remaining, as we'll still get the FIFO half full interrupt. Keep this interrupt masked off until we have less than half the FIFO depth worth of data remaining.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
#
7d7aa23c |
| 27-Jan-2011 |
Russell King <rmk+kernel@arm.linux.org.uk> |
ARM: mmci: no need to call flush_dcache_page() with sg_miter API
The sg_miter API provides the required cache maintainence, so we don't need to do that ourselves. Remove the unnecessary additional
ARM: mmci: no need to call flush_dcache_page() with sg_miter API
The sg_miter API provides the required cache maintainence, so we don't need to do that ourselves. Remove the unnecessary additional cache maintainence.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
#
c8afc9d5 |
| 04-Feb-2011 |
Russell King <rmk+kernel@arm.linux.org.uk> |
ARM: mmci: avoid reporting too many completed bytes on fifo overrun
The data counter counts the number of bytes transferred on the MMC bus. When a FIFO overrun occurs, we will not have transferred a
ARM: mmci: avoid reporting too many completed bytes on fifo overrun
The data counter counts the number of bytes transferred on the MMC bus. When a FIFO overrun occurs, we will not have transferred a FIFOs-worth of data to memory, and so the data counter will be a FIFOs-worth ahead. If this occurs on a block boundary, we will report one too many sectors as successful. Fix this.
Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
#
613b152c |
| 30-Jan-2011 |
Russell King <rmk+kernel@arm.linux.org.uk> |
ARM: mmci: round down the bytes transferred on error
We should not report incomplete blocks on error. Return the number of bytes successfully transferred, rounded down to the nearest block.
Acked-
ARM: mmci: round down the bytes transferred on error
We should not report incomplete blocks on error. Return the number of bytes successfully transferred, rounded down to the nearest block.
Acked-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
#
ccff9b51 |
| 30-Jan-2011 |
Russell King <rmk+kernel@arm.linux.org.uk> |
ARM: mmci: complete the transaction on error
When we encounter an error, make sure we complete the transaction otherwise we'll leave the request dangling.
Acked-by: Linus Walleij <linus.walleij@ste
ARM: mmci: complete the transaction on error
When we encounter an error, make sure we complete the transaction otherwise we'll leave the request dangling.
Acked-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
#
f5a106d9 |
| 27-Jan-2011 |
Linus Walleij <linus.walleij@stericsson.com> |
ARM: 6642/1: mmci: calculate remaining bytes at error correctly
The MMCIDATACNT register contain the number of byte left at error not the number of words, so loose the << 2 thing. Further if CRC fai
ARM: 6642/1: mmci: calculate remaining bytes at error correctly
The MMCIDATACNT register contain the number of byte left at error not the number of words, so loose the << 2 thing. Further if CRC fails on the first block, we may end up with a negative number of transferred bytes which is not good, and the formula was in wrong order.
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
#
9047b435 |
| 11-Jan-2011 |
Russell King - ARM Linux <linux@arm.linux.org.uk> |
mmc: mmci: don't read command response when invalid
Don't read the command response from the registers when either the command timed out (because there was no response from the card) or the checksum
mmc: mmci: don't read command response when invalid
Don't read the command response from the registers when either the command timed out (because there was no response from the card) or the checksum on the response was invalid.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Chris Ball <cjb@laptop.org>
show more ...
|
#
8cb28155 |
| 24-Jan-2011 |
Linus Walleij <linus.walleij@stericsson.com> |
ARM: 6632/3: mmci: stop using the blockend interrupts
Implement a suggestion from Russell to drop the use of blockend interrupts altogether and instead rely on the data counter.
Tested with error-f
ARM: 6632/3: mmci: stop using the blockend interrupts
Implement a suggestion from Russell to drop the use of blockend interrupts altogether and instead rely on the data counter.
Tested with error-free cards on U300, U8500 and RealView PB1176.
Signed-off-by: Ulf Hansson <ulf.hansson@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
Revision tags: v2.6.37, v2.6.37-rc8 |
|
#
8c11a94d |
| 28-Dec-2010 |
Russell King <rmk+kernel@arm.linux.org.uk> |
ARM: mmci: Clean up MMCI announcement printk
Make the MMCI announcement printk say which primecell part number has been found. Display the revision as an unsigned decimal, and display only the firs
ARM: mmci: Clean up MMCI announcement printk
Make the MMCI announcement printk say which primecell part number has been found. Display the revision as an unsigned decimal, and display only the first 8 hex digits of the base address unless it's larger.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
Revision tags: v2.6.37-rc7, v2.6.37-rc6 |
|
#
991a86e1 |
| 10-Dec-2010 |
Linus Walleij <linus.walleij@stericsson.com> |
ARM: 6530/1: mmci: partially revert clock divisor code
I misread the datasheet as if bypass mode was not available at all on the ux500's, I was wrong. It is there, the datasheet just states that you
ARM: 6530/1: mmci: partially revert clock divisor code
I misread the datasheet as if bypass mode was not available at all on the ux500's, I was wrong. It is there, the datasheet just states that you should not have to use it.
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
Revision tags: v2.6.37-rc5 |
|
#
b70a67f9 |
| 06-Dec-2010 |
Linus Walleij <linus.walleij@stericsson.com> |
ARM: 6526/1: mmci: corrected calculation of clock div for ux500
The Ux500 variant of this block has a different divider. The value used right now is too big and which means a loss in performance. Th
ARM: 6526/1: mmci: corrected calculation of clock div for ux500
The Ux500 variant of this block has a different divider. The value used right now is too big and which means a loss in performance. This fix corrects it. Also expand the math comments a bit so it's clear what's happening. Further the Ux500 variant does not like if we use the BYPASS bit, instead we are supposed to set the clock divider to zero.
Signed-off-by: Ulf Hansson <ulf.hansson@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|
Revision tags: v2.6.37-rc4, v2.6.37-rc3, v2.6.37-rc2, v2.6.37-rc1, v2.6.36 |
|
#
34177802 |
| 19-Oct-2010 |
Linus Walleij <linus.walleij@stericsson.com> |
ARM: 6438/2: mmci: add SDIO support for ST Variants
This adds some minor variant data and trickery to enable SDIO on the ST Micro variants of MMCI/PL180.
Signed-off-by: Marcin Mielczarczyk <marcin.
ARM: 6438/2: mmci: add SDIO support for ST Variants
This adds some minor variant data and trickery to enable SDIO on the ST Micro variants of MMCI/PL180.
Signed-off-by: Marcin Mielczarczyk <marcin.mielczarczyk@tieto.com> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
show more ...
|