1. 05 Oct, 2008 1 commit
    • Haavard Skinnemoen's avatar
      atmel-mci: Add experimental DMA support · 65e8b083
      Haavard Skinnemoen authored
      This adds support for DMA transfers through the generic DMA engine
      framework with the DMA slave extensions.
      
      The driver has been tested using mmc-block and ext3fs on several SD,
      SDHC and MMC+ cards. Reads and writes work fine, with read transfer
      rates up to 7.5 MiB/s on fast cards with debugging disabled.
      
      Unfortunately, the driver has been known to lock up from time to time
      with DMA enabled, so DMA support is currently optional and marked
      EXPERIMENTAL. However, I didn't see any problems while testing 13
      different cards (MMC, SD and SDHC of different brands and sizes), so I
      suspect the "Initialize BLKR before sending data transfer command" fix
      that was posted earlier fixed this as well.
      Signed-off-by: default avatarHaavard Skinnemoen <haavard.skinnemoen@atmel.com>
      65e8b083
  2. 10 Aug, 2008 2 commits
  3. 15 Jul, 2008 4 commits
    • Sascha Sommer's avatar
      6a36913a
    • Haavard Skinnemoen's avatar
      atmel-mci: Driver for Atmel on-chip MMC controllers · 7d2be074
      Haavard Skinnemoen authored
      This is a driver for the MMC controller on the AP7000 chips from
      Atmel. It should in theory work on AT91 systems too with some
      tweaking, but since the DMA interface is quite different, it's not
      entirely clear if it's worth merging this with the at91_mci driver.
      
      This driver has been around for a while in BSPs and kernel sources
      provided by Atmel, but this particular version uses the generic DMA
      Engine framework (with the slave extensions) instead of an
      avr32-only DMA controller framework.
      
      This driver can also use PIO transfers when no DMA channels are
      available, and for transfers where using DMA may be difficult or
      impractical for some reason (e.g. the DMA setup overhead is usually
      not worth it for very short transfers, and badly aligned buffers or
      lengths are difficult to handle.)
      
      Currently, the driver only support PIO transfers. DMA support has been
      split out to a separate patch to hopefully make it easier to review.
      
      The driver has been tested using mmc-block and ext3fs on several SD,
      SDHC and MMC+ cards. Reads and writes work fine, with read transfer
      rates up to 3.5 MiB/s on fast cards with debugging disabled.
      
      The driver has also been tested using the mmc_test module on the same
      cards. All tests except 7, 9, 15 and 17 succeed. The first two are
      unsupported by all the cards I have, so I don't know if the driver
      handles this correctly. The last two fail because the hardware flags a
      Data CRC Error instead of a Data Timeout error. I'm not sure how to deal
      with that.
      
      Documentation for this controller can be found in many data sheets from
      Atmel, including the AT32AP7000 data sheet which can be found here:
      
      http://www.atmel.com/dyn/products/datasheets.asp?family_id=682Signed-off-by: default avatarHaavard Skinnemoen <haavard.skinnemoen@atmel.com>
      Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
      7d2be074
    • Thomas Kleffel's avatar
      MMC: S3C24XX MMC/SD driver. · be518018
      Thomas Kleffel authored
      This is the latest S3C MMC/SD driver by Thomas Kleffel
      with cleanups as suggested by AKPM done by Ben Dooks.
      Signed-off-by: default avatarBen Dooks <ben-linux@fluff.org>
      Signed-off-by: default avatarThomas Kleffel <tk@maintech.de>
      Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
      be518018
    • Pierre Ossman's avatar
      sdhci: move pci stuff to separate module · b8c86fc5
      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: default avatarPierre Ossman <drzeus@drzeus.cx>
      b8c86fc5
  4. 21 May, 2008 1 commit
  5. 08 Feb, 2008 1 commit
  6. 03 Oct, 2007 1 commit
  7. 23 Sep, 2007 1 commit
    • David Brownell's avatar
      mmc_spi host driver · 15a0580c
      David Brownell authored
      This is the latest version of the MMC-over-SPI support.  It works
      on 2.6.23-rc2 plus git-mmc (from rc1-mm2), along with the preceding
      patches which teach the rest of the MMC stack about SPI.
      
      The main issue of note is that sometimes cards need to be power cycled
      to recover after certain faults.  Also, it may sometimes be necessary
      to disable CRCs.  ("modprobe mmc_core use_spi_crc=n")
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Cc: mikael.starvik@axis.com,
      Cc: Hans-Peter Nilsson <hp@axis.com>
      Cc: Jan Nikitenko <jan.nikitenko@gmail.com>
      Cc: Mike Lavender <mike@steroidmicros.com>
      Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
      15a0580c
  8. 08 May, 2007 1 commit
  9. 01 May, 2007 1 commit
  10. 09 Feb, 2007 1 commit
  11. 01 Dec, 2006 2 commits
  12. 04 Oct, 2006 1 commit
  13. 30 Sep, 2006 1 commit
    • David Howells's avatar
      [PATCH] BLOCK: Make it possible to disable the block layer [try #6] · 9361401e
      David Howells authored
      Make it possible to disable the block layer.  Not all embedded devices require
      it, some can make do with just JFFS2, NFS, ramfs, etc - none of which require
      the block layer to be present.
      
      This patch does the following:
      
       (*) Introduces CONFIG_BLOCK to disable the block layer, buffering and blockdev
           support.
      
       (*) Adds dependencies on CONFIG_BLOCK to any configuration item that controls
           an item that uses the block layer.  This includes:
      
           (*) Block I/O tracing.
      
           (*) Disk partition code.
      
           (*) All filesystems that are block based, eg: Ext3, ReiserFS, ISOFS.
      
           (*) The SCSI layer.  As far as I can tell, even SCSI chardevs use the
           	 block layer to do scheduling.  Some drivers that use SCSI facilities -
           	 such as USB storage - end up disabled indirectly from this.
      
           (*) Various block-based device drivers, such as IDE and the old CDROM
           	 drivers.
      
           (*) MTD blockdev handling and FTL.
      
           (*) JFFS - which uses set_bdev_super(), something it could avoid doing by
           	 taking a leaf out of JFFS2's book.
      
       (*) Makes most of the contents of linux/blkdev.h, linux/buffer_head.h and
           linux/elevator.h contingent on CONFIG_BLOCK being set.  sector_div() is,
           however, still used in places, and so is still available.
      
       (*) Also made contingent are the contents of linux/mpage.h, linux/genhd.h and
           parts of linux/fs.h.
      
       (*) Makes a number of files in fs/ contingent on CONFIG_BLOCK.
      
       (*) Makes mm/bounce.c (bounce buffering) contingent on CONFIG_BLOCK.
      
       (*) set_page_dirty() doesn't call __set_page_dirty_buffers() if CONFIG_BLOCK
           is not enabled.
      
       (*) fs/no-block.c is created to hold out-of-line stubs and things that are
           required when CONFIG_BLOCK is not set:
      
           (*) Default blockdev file operations (to give error ENODEV on opening).
      
       (*) Makes some /proc changes:
      
           (*) /proc/devices does not list any blockdevs.
      
           (*) /proc/diskstats and /proc/partitions are contingent on CONFIG_BLOCK.
      
       (*) Makes some compat ioctl handling contingent on CONFIG_BLOCK.
      
       (*) If CONFIG_BLOCK is not defined, makes sys_quotactl() return -ENODEV if
           given command other than Q_SYNC or if a special device is specified.
      
       (*) In init/do_mounts.c, no reference is made to the blockdev routines if
           CONFIG_BLOCK is not defined.  This does not prohibit NFS roots or JFFS2.
      
       (*) The bdflush, ioprio_set and ioprio_get syscalls can now be absent (return
           error ENOSYS by way of cond_syscall if so).
      
       (*) The seclvl_bd_claim() and seclvl_bd_release() security calls do nothing if
           CONFIG_BLOCK is not set, since they can't then happen.
      Signed-Off-By: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      9361401e
  14. 04 Jun, 2006 1 commit
  15. 02 Apr, 2006 2 commits
  16. 29 Mar, 2006 1 commit
  17. 24 Mar, 2006 1 commit
  18. 08 Feb, 2006 1 commit
  19. 29 Oct, 2005 1 commit
  20. 08 May, 2005 1 commit
    • Pierre Ossman's avatar
      [PATCH] MMC: wbsd update · 85bcc130
      Pierre Ossman authored
      Updates to the wbsd driver.
                                                                                      
      * Fix to handle DAT3 card detection.
      * Fixed bug which could cause large writes to stall in FIFO mode.
      * Plug 'n Play support. In most cases you need ACPI PNP for this to work.
      * Uses generic DMA API (ISA dependency removed).
      85bcc130
  21. 04 May, 2005 1 commit
  22. 16 Apr, 2005 1 commit
    • Linus Torvalds's avatar
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds authored
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4