1. 23 10月, 2010 7 次提交
  2. 10 9月, 2010 1 次提交
  3. 12 8月, 2010 1 次提交
    • A
      mmc: add erase, secure erase, trim and secure trim operations · dfe86cba
      Adrian Hunter 提交于
      SD/MMC cards tend to support an erase operation.  In addition, eMMC v4.4
      cards can support secure erase, trim and secure trim operations that are
      all variants of the basic erase command.
      
      SD/MMC device attributes "erase_size" and "preferred_erase_size" have been
      added.
      
      "erase_size" is the minimum size, in bytes, of an erase operation.  For
      MMC, "erase_size" is the erase group size reported by the card.  Note that
      "erase_size" does not apply to trim or secure trim operations where the
      minimum size is always one 512 byte sector.  For SD, "erase_size" is 512
      if the card is block-addressed, 0 otherwise.
      
      SD/MMC cards can erase an arbitrarily large area up to and
      including the whole card.  When erasing a large area it may
      be desirable to do it in smaller chunks for three reasons:
      
          1. A single erase command will make all other I/O on the card
             wait.  This is not a problem if the whole card is being erased, but
             erasing one partition will make I/O for another partition on the
             same card wait for the duration of the erase - which could be a
             several minutes.
      
          2. To be able to inform the user of erase progress.
      
          3. The erase timeout becomes too large to be very useful.
             Because the erase timeout contains a margin which is multiplied by
             the size of the erase area, the value can end up being several
             minutes for large areas.
      
      "erase_size" is not the most efficient unit to erase (especially for SD
      where it is just one sector), hence "preferred_erase_size" provides a good
      chunk size for erasing large areas.
      
      For MMC, "preferred_erase_size" is the high-capacity erase size if a card
      specifies one, otherwise it is based on the capacity of the card.
      
      For SD, "preferred_erase_size" is the allocation unit size specified by
      the card.
      
      "preferred_erase_size" is in bytes.
      Signed-off-by: NAdrian Hunter <adrian.hunter@nokia.com>
      Acked-by: NJens Axboe <axboe@kernel.dk>
      Cc: Kyungmin Park <kmpark@infradead.org>
      Cc: Madhusudhan Chikkature <madhu.cr@ti.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Ben Gardiner <bengardiner@nanometrics.ca>
      Cc: <linux-mmc@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      dfe86cba
  4. 11 8月, 2010 4 次提交
    • G
      sdio: allow non-standard SDIO cards · 6f51be3d
      Grazvydas Ignotas 提交于
      There are some chips (like TI WL12xx series) that can be interfaced over
      SDIO but don't support the SDIO specification, meaning that they are
      missing CIA (Common I/O Area) with all it's registers.  Current Linux SDIO
      implementation relies on those registers to identify and configure the
      card, so non-standard cards can not function and cause lots of warnings
      from the core when it reads invalid data from non-existent registers.
      
      After this patch, init_card() host callback can now set new quirk
      MMC_QUIRK_NONSTD_SDIO, which means that SDIO core should not try to access
      any standard SDIO registers and rely on init_card() to fill all SDIO
      structures instead.  As those cards are usually embedded chips, all the
      required information can be obtained from machine board files by the host
      driver when it's called through init_card() callback.
      Signed-off-by: NGrazvydas Ignotas <notasas@gmail.com>
      Cc: Adrian Hunter <adrian.hunter@nokia.com>
      Cc: Tony Lindgren <tony@atomide.com>
      Cc: Bob Copeland <me@bobcopeland.com>
      Cc: Kalle Valo <kvalo@adurom.com>
      Cc: Madhusudhan Chikkature <madhu.cr@ti.com>
      Cc: Kishore Kadiyala <kishore.kadiyala@ti.com>
      Cc: Russell King <linux@arm.linux.org.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>
      6f51be3d
    • M
      mmc: fix all hangs related to mmc/sd card insert/removal during suspend/resume · 4c2ef25f
      Maxim Levitsky 提交于
      If you don't use CONFIG_MMC_UNSAFE_RESUME, as soon as you attempt to
      suspend, the card will be removed, therefore this patch doesn't change the
      behavior of this option.
      
      However the removal will be done by pm notifier, which runs while
      userspace is still not frozen and thus can freely use del_gendisk, without
      the risk of deadlock which would happen otherwise.
      
      Card detect workqueue is now disabled while userspace is frozen, Therefore
      if you do use CONFIG_MMC_UNSAFE_RESUME, and remove the card during
      suspend, the removal will be detected as soon as userspace is unfrozen,
      again at the moment it is safe to call del_gendisk.
      
      Tested with and without CONFIG_MMC_UNSAFE_RESUME with suspend and hibernate.
      
      [akpm@linux-foundation.org: clean up function prototype]
      [akpm@linux-foundation.org: fix CONFIG_PM-n linkage, small cleanups]
      [akpm@linux-foundation.org: coding-style fixes]
      Signed-off-by: NMaxim Levitsky <maximlevitsky@gmail.com>
      Cc: David Brownell <david-b@pacbell.net>
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Cc: <linux-mmc@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      4c2ef25f
    • M
      mmc: implement SD-combo (IO+mem) support · 7310ece8
      Michal Miroslaw 提交于
      Signed-off-by: NMichal Miroslaw <mirq-linux@rere.qmqm.pl>
      Cc: Adrian Hunter <adrian.hunter@nokia.com>
      Cc: Chris Ball <cjb@laptop.org>
      Cc: <linux-mmc@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      7310ece8
    • K
      mmc: recognize CSD structure · 6da24b78
      Kyungmin Park 提交于
      The eMMC spec 4.4 and 4.3 + additional feature chips has CSD structure
      version 3 and version 3 have to check the CSD_STRUCTURE byte in the
      EXT_CSD register.
      
      Also fix EXT_CSD revision message.
      
      [akpm@linux-foundation.org: fix comment, per Chris Ball]
      Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com>
      Cc: Adrian Hunter <adrian.hunter@nokia.com>
      Cc: Chris Ball <cjb@laptop.org>
      Cc: <linux-mmc@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      6da24b78
  5. 31 5月, 2010 2 次提交
  6. 28 5月, 2010 4 次提交
  7. 14 4月, 2010 1 次提交
    • D
      ARM: MXC: mxcmmc: work around a bug in the SDHC busy line handling · 3fcb027d
      Daniel Mack 提交于
      MX3 SoCs have a silicon bug which corrupts CRC calculation of
      multi-block transfers when connected SDIO peripheral doesn't drive the
      BUSY line as required by the specs.
      
      One way to prevent this is to only allow 1-bit transfers.
      
      Another way is playing tricks with the DMA engine, but this isn't
      mainline yet. So for now, we live with the performance drawback of 1-bit
      transfers until a nicer solution is found.
      
      This patch introduces a new host controller callback 'init_card' which
      is for now only called from mmc_sdio_init_card().
      Signed-off-by: NDaniel Mack <daniel@caiaq.de>
      Cc: Sascha Hauer <s.hauer@pengutronix.de>
      Cc: Dan Williams <dan.j.williams@intel.com>
      Cc: Volker Ernst <volker.ernst@txtr.com>
      Cc: Jiri Kosina <jkosina@suse.cz>
      Cc: Michał Mirosław <mirqus@gmail.com>
      Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de>
      3fcb027d
  8. 07 4月, 2010 1 次提交
    • D
      libertas/sdio: 8686: set ECSI bit for 1-bit transfers · 8a64c0f6
      Daniel Mack 提交于
      When operating in 1-bit mode, SDAT1 is used as dedicated interrupt line.
      However, the 8686 will only drive this line when the ECSI bit is set in
      the CCCR_IF register.
      
      Thanks to Alagu Sankar for pointing me in the right direction.
      Signed-off-by: NDaniel Mack <daniel@caiaq.de>
      Cc: Alagu Sankar <alagusankar@embwise.com>
      Cc: Volker Ernst <volker.ernst@txtr.com>
      Cc: Dan Williams <dcbw@redhat.com>
      Cc: John W. Linville <linville@tuxdriver.com>
      Cc: Holger Schurig <hs4233@mail.mn-solutions.de>
      Cc: Bing Zhao <bzhao@marvell.com>
      Cc: libertas-dev@lists.infradead.org
      Cc: linux-wireless@vger.kernel.org
      Cc: linux-mmc@vger.kernel.org
      Acked-by: NDan Williams <dcbw@redhat.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      8a64c0f6
  9. 25 3月, 2010 1 次提交
    • A
      mmc: fix incorrect interpretation of card type bits · 7198f3c9
      Adrian Hunter 提交于
      In the extended CSD register the CARD_TYPE is an 8-bit value of which the
      upper 6 bits were reserved in JEDEC specifications prior to version 4.4.
      In version 4.4 two of the reserved bits were designated for identifying
      support for the newly added High-Speed Dual Data Rate.  Unfortunately the
      mmc_read_ext_csd() function required that the reserved bits be zero
      instead of ignoring them as it should.
      
      This patch makes mmc_read_ext_csd() ignore the CARD_TYPE bits that are
      reserved or not yet supported.  It also stops the function jumping to the
      end as though an error occurred, when it is only warns that the CARD_TYPE
      bits (that it does interpret) are invalid.
      Signed-off-by: NAdrian Hunter <adrian.hunter@nokia.com>
      Cc: <linux-mmc@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      7198f3c9
  10. 07 3月, 2010 3 次提交
  11. 19 10月, 2009 1 次提交
  12. 12 10月, 2009 1 次提交
  13. 23 9月, 2009 9 次提交
  14. 27 7月, 2009 1 次提交
  15. 17 6月, 2009 1 次提交
  16. 23 4月, 2009 1 次提交
    • B
      libertas: add support for Marvell SD8688 chip · e45d8e53
      Bing Zhao 提交于
      libertas: add support for Marvell SD8688 chip
      
      Use RxPD->pkt_ptr to locate eth803 header in the packet
      received since SD8688/v10 firmware allows a gap between
      RxPD and eth803 header.
      
      Set SDIO block size to 256 for CMD53.
      The maximum block size for SD8688 WLAN function is set
      to 512 in TPLFE_MAX_BLK_SIZE. But using 512 as block size
      results upto 2K bytes data (4 blocks) being transferred
      and causes buffer overflow in firmware.
      
      Both changes above are backward compatible with earlier
      firmware versions for SD8385/SD8686.
      
      The SDIO_DEVICE_IDs for SD8688 chip are added in
      include/linux/mmc/sdio_ids.h
      Signed-off-by: NKiran Divekar <dkiran@marvell.com>
      Signed-off-by: NBing Zhao <bzhao@marvell.com>
      Acked-by: NDan Williams <dcbw@redhat.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      e45d8e53
  17. 31 3月, 2009 1 次提交