- 02 10月, 2009 9 次提交
-
-
由 Ben Dooks 提交于
Fixes for the DMA transfer mode of the driver to try and improve the state of the code: - Ensure that dma_complete is set during the end of the command phase so that transfers do not stall awaiting the completion - Update the DMA debugging to provide a bit more useful information such as how many DMA descriptors where not processed and print the DMA addresses in hexadecimal. - Fix the DMA channel request code to actually request DMA for the S3CMCI block instead of whatever '0' signified. - Add fallback to PIO if we cannot get the DMA channel, as many of the devices with this block only have a limited number of DMA channels. - Only try and claim and free the DMA channel if we are trying to use it. This improves the driver DMA code to the point where it can now identify a card and read the partition table. However the DMA can still stall when trying to move data between the host and memory. Signed-off-by: NBen Dooks <ben@simtec.co.uk> Cc: <linux-mmc@vger.kernel.org> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 Ben Dooks 提交于
Add a selection for the data transfer mode of the s3cmci driver, allowing for either a configuration or rumtime selection of the use of the DMA or PIO transfer code. The PIO only mode is 476 bytes smaller than the driver with both methods compiled in. Signed-off-by: NBen Dooks <ben@simtec.co.uk> Cc: <linux-mmc@vger.kernel.org> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 Ben Dooks 提交于
The controller supports SDIO IRQ detection so add support for hardware assisted SDIO interrupt detection for the SDIO core. This improves the response time for SDIO interrupts and thus the transfer rate from devices such as the Marvel 8686. As a note, it does seem that the controller will miss an IRQ than is held asserted, so there are some manual checks to see if the SDIO interrupt is active after a transfer. Major testing on the S3C2440. Signed-off-by: NBen Dooks <ben@simtec.co.uk> Cc: <linux-mmc@vger.kernel.org> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 Ben Dooks 提交于
Export driver state and hardware register state via debugfs entries created under a directory formed from dev_name() on the probed device when CONFIG_DEBUG_FS is set. Signed-off-by: NBen Dooks <ben@simtec.co.uk> Cc: <linux-mmc@vger.kernel.org> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 Ben Dooks 提交于
The clear_imask() call should be used to clear the interrupt mask register, as it may end up clearing the SDIO interrupt bit if this is enabled. Change all writes of zero to SDIIMSK register to use clear_imask() ready for the SDIO updates. Signed-off-by: NBen Dooks <ben@simtec.co.uk> Cc: <linux-mmc@vger.kernel.org> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 Ben Dooks 提交于
Move to using dev_pm_ops for suspend and resume. Signed-off-by: NBen Dooks <ben@simtec.co.uk> Cc: <linux-mmc@vger.kernel.org> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 Ben Dooks 提交于
Move to using gpiolib to access the card detect and write protect GPIO lines instead of using the platform speicifc s3c2410_gpio calls. Also ensure that the card lines are claimed the same way to avoid overlap with any other drivers. Signed-off-by: NBen Dooks <ben@simtec.co.uk> Cc: <linux-mmc@vger.kernel.org> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 Ben Dooks 提交于
Use the platform id list to match the three different versions of the hardware block that this driver supports. This will change the prefix of the console messages produced by this driver to be prefixed by s3c-mci instead of the hardware block name, such as s3c2440-mci. Signed-off-by: NBen Dooks <ben@simtec.co.uk> Cc: <linux-mmc@vger.kernel.org> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 Ben Dooks 提交于
Replace the local definition RESSIZE() with the standard resource_size() call for getting the size of a struct resource. Signed-off-by: NBen Dooks <ben@simtec.co.uk> Cc: <linux-mmc@vger.kernel.org> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
- 22 6月, 2009 1 次提交
-
-
由 Ben Dooks 提交于
This was missed in the DMA changes during the s3c24xx updates in commit 8970ef47. Signed-off-by: NBen Dooks <ben@simtec.co.uk> Signed-off-by: NPierre Ossman <pierre@ossman.eu>
-
- 16 6月, 2009 1 次提交
-
-
由 Ben Dooks 提交于
This was missed in the DMA changes during the s3c24xx updates in commit 8970ef47. Signed-off-by: NBen Dooks <ben-linux@fluff.org>
-
- 18 5月, 2009 1 次提交
-
-
由 Ben Dooks 提交于
Move all the gpio functions out of <mach/hardware.h> as this file is for defining the generic IO base addresses for the kernel IO calls. Make a new header <mach/gpio-fns.h> to take this and include it via the chain from <linux/gpio.h> which is what most of these files should be using (and will be changed as soon as possible). Note, this does make minor changes to some drivers but should not mess up any pending merges. CC: Richard Purdie <rpurdie@rpsys.net> Acked-by: NMark Brown <broonie@opensource.wolfsonmicro.com> CC: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: NBen Dooks <ben-linux@fluff.org>
-
- 01 5月, 2009 1 次提交
-
-
由 Ben Dooks 提交于
calls The S3C24XX DMA API channel configuration registers are being passed values comprised of register values which makes it hard to move the API to cover both the S3C24XX and S3C64XX. These values can be calculated from knowing which device the channel is connected to, so remove them from the two calls s3c2410_dma_config and s3c2410_dma_devconfig. Signed-off-by: NBen Dooks <ben@simtec.co.uk> Signed-off-by: NBen Dooks <ben-linux@fluff.org>
-
- 13 3月, 2009 1 次提交
-
-
由 Ben Dooks 提交于
The s3cmci driver is calling s3c2410_dma_config with incorrect data for the DCON register. The S3C2410_DCON_HWTRIG is implicit in the channel configuration and the device selection of S3C2410_DCON_CH0_SDI is incorrect as the DMA system may not select channel 0. Signed-off-by: NBen Dooks <ben@simtec.co.uk> 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>
-
- 19 2月, 2009 1 次提交
-
-
由 Yauhen Kharuzhy 提交于
This commit fixes the regression what was added by commit 088a78af "s3cmci: Support transfers which are not multiple of 32 bits." fifo_free() now returns amount of available space in FIFO buffer in bytes. But do_pio_write() writes to FIFO 32-bit words. Condition for return from cycle is (fifo_free() == 0), but when fifo has 1..3 bytes of free space then this condition will never be true and system hangs. This patch changes condition in the while() to (fifo_free() > 3). Signed-off-by: NYauhen Kharuzhy <jekhor@gmail.com> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
- 24 1月, 2009 1 次提交
-
-
由 Ramax Lo 提交于
Since dma.h has been moved to arch/arm/mach-s3c2410/include/mach, use the new include path. Signed-off-by: NRamax Lo <ramaxlo@gmail.com> Acked-by: NBen Dooks <ben-linux@fluff.org> Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
-
- 30 10月, 2008 1 次提交
-
-
由 Ben Dooks 提交于
Move mci.h to new position in arch/arm/plat-s3c24xx/include/plat ready to clean out old include directories. Signed-off-by: NBen Dooks <ben-linux@fluff.org>
-
- 16 10月, 2008 5 次提交
-
-
由 ben@fluff.org.uk 提交于
Since the original authour (Thomas Kleffel) has been too busy to merge the s3cmci driver and keep it up to date, I (mostly as part of my role with Simtec Electronics) got the driver to a mergable state and have been maintaining it since I think that I should be added to the header. Also add a copyright statement for the new work. Signed-off-by: NBen Dooks <ben-linux@fluff.org> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 ben@fluff.org.uk 提交于
The s3cmci driver uses the host->pio_ptr field to point to the current position into the buffer for data transfer. During the transfers it does the following: while (fifo_words--) *(host->pio_ptr++) = readl(from_ptr); This is inefficent, as host->pio_ptr is not used in any other part of the transfer but the compiler emits code which does the following: while (fifo_words--) { u32 *ptr = host->pio_ptr; *ptr = readl(from_ptr); ptr++; host->pio_ptr = ptr; } This is obviously a waste of a load and store each time around the loop, which could be up to 16 times depending on how much needs to be transfered. Move the ptr accesses to outside the while loop so that we do not end up reloading/re-writing the pointer. Note, this seems to make the code 16 bytes larger. Signed-off-by: NBen Dooks <ben-linux@fluff.org> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Christer Weinigel 提交于
To be able to do SDIO the s3cmci driver has to support non-word-sized transfers. Change pio_words into pio_bytes and fix up all the places where it is used. This variant of the patch will not overrun the buffer when reading an odd number of bytes. When writing, this variant will still read past the end of the buffer, but since the driver can't support non-word- aligned transfers anyway, this should not be a problem, since a word-aligned transfer will never cross a page boundary. This has been tested with a CSR SDIO Bluetooth Type A device on a Samsung S3C24A0 processor. Signed-off-by: NChrister Weinigel <christer@weinigel.se> Signed-off-by: NBen Dooks <ben-linux@fluff.org> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 ben@fluff.org.uk 提交于
Support for cpu frequency changing. Signed-off-by: NBen Dooks <ben-linux@fluff.org> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 ben@fluff.org.uk 提交于
General errors, such as timeouts during probe do not need to be sent to the console, so move them down to be included if the debug is enabled. Such errors include: s3c2440-sdi s3c2440-sdi: s3cmci_request: no medium present Signed-off-by: NBen Dooks <ben-linux@fluff.org> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
- 18 8月, 2008 2 次提交
-
-
由 Ben Dooks 提交于
Attach the routine to get_cd to allow the MMC core to find out whether there is a card present or not without the tedious process of trying to send commands to the card or not. Signed-off-by: NBen Dooks <ben-linux@fluff.org> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Ben Dooks 提交于
Fix the following sparse errors by making the functions static and fixing the check for host->base. 598:6: warning: symbol 's3cmci_dma_done_callback' was not declared. Should it be static? 744:6: warning: symbol 's3cmci_dma_setup' was not declared. Should it be static? 1209:20: warning: Using plain integer as NULL pointer Signed-off-by: NBen Dooks <ben-linux@fluff.org> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
- 07 8月, 2008 1 次提交
-
-
由 Russell King 提交于
This just leaves include/asm-arm/plat-* to deal with. Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
-
- 23 7月, 2008 2 次提交
-
-
由 Ben Dooks 提交于
Ensure that the s3cmci host controller is turned off when the machine is shutdown, otherwise we end up leaving the card powered and processing insertion and removal events after the system prints "System halted." Signed-off-by: NBen Dooks <ben-linux@fluff.org> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Ben Dooks 提交于
Fix the naming of various functions in the s3cmc driver to stop triggering section mismatch warnings. Signed-off-by: NBen Dooks <ben-linux@fluff.org> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
- 15 7月, 2008 13 次提交
-
-
由 Ben Dooks 提交于
The hardware does not support any multi-block transfers with an block-size that is not 32bit aligned. Also the driver itself does not support single block non-32bit transfers either. Ensure that the s3cmci_setup_data() returns the appropriate error if we encounter this. Signed-off-by: NBen Dooks <ben-linux@fluff.org> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Ben Dooks 提交于
Add better debugging to show where errors are being generated, as some error codes can come from several different code paths. Also fix the error return path from s3cmci_setup_data() to return the error it returned to the request. Signed-off-by: NBen Dooks <ben-linux@fluff.org> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Ben Dooks 提交于
Ensure that we have physical media present before attempting to send a request to a card. This ensures that we do not get flooded by errors from commands that can never be completed timing out. Signed-off-by: NBen Dooks <ben-linux@fluff.org> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Ben Dooks 提交于
mmc_detect_change() takes jiffies, not msecs. Convert the previous value of msecs into jiffies before calling. Signed-off-by: NBen Dooks <ben-linux@fluff.org> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Ben Dooks 提交于
Add MODULE_ALIAS() declerations for all the supported platform devices for this driver. Signed-off-by: NBen Dooks <ben-linux@fluff.org> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Ben Dooks 提交于
The driver should be checking for a negative error code from s3c2410_dma_request(), not non-zero. Newer kernels now return the DMA channel number that was allocated by the request. Signed-off-by: NBen Dooks <ben-linux@fluff.org> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Ben Dooks 提交于
Add support to the S3C24XX MMC driver to have the card detect be on a pin that is not IRQ capable. Signed-off-by: NBen Dooks <ben-linux@fluff.org> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Ben Dooks 提交于
Fix a crash if host->mrq->data is NULL on ending a transfer. Signed-off-by: NBen Dooks <ben-linux@fluff.org> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Ben Dooks 提交于
Support for inverting the sense of the MMC driver's write protect detection line. Signed-off-by: NBen Dooks <ben-linux@fluff.org> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Ben Dooks 提交于
This patch adds platform data support to the s3mci driver. This allows flexible board-specific configuration of set_power, card detect and read only pins. Signed-off-by: NBen Dooks <ben-linux@fluff.org> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Roman Moracik 提交于
Fix Bug #677 - I/O errors on heavy microSD writes for 2.6.22.x. Signed-off-by: NBen Dooks <ben-linux@fluff.org> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Thomas Kleffel 提交于
is stopped. Signed-off-by: NBen Dooks <ben-linux@fluff.org> Signed-off-by: NHarald Welte <laforge@openmoko.org> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-
由 Harald Welte 提交于
Bugfix to ensure DMA channel allocated is freed on exit. Signed-off-by: NBen Dooks <ben-linux@fluff.org> Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
-