[REVERTED] [NATTY] RICOH [1180:e823] unable to read MMC cards

Reported by Manoj Iyer on 2011-05-31
20
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Linux
Invalid
Undecided
Chris Van Hoof
linux (Ubuntu)
Undecided
Manoj Iyer
Maverick
Undecided
Manoj Iyer
Natty
Undecided
Manoj Iyer
Oneiric
Undecided
Manoj Iyer

Bug Description

Platform: X220

CPU: Sandy Bridge
GPU: Integrated

Card Reader: Ricoh Co Ltd Device e823 (rev 04)

Summary:
Media card reader is functional with this build for SD cards, but MMC, SDHC cards not readable

Steps to reproduce:
1) Install GM1
2) Try MMC/SDHC card, notice none can be mounted

Expected result:
Media cards can be mounted

Actual result:
No media cards can be mounted

Manufacturer: LENOVO

Manoj Iyer (manjo) on 2011-05-31
affects: launchpad → linux
Changed in linux:
assignee: nobody → Manoj Iyer (manjo)
Manoj Iyer (manjo) on 2011-05-31
tags: added: hwe-blocker
Manoj Iyer (manjo) wrote :

SRU JUSTIFICATION
================

IMPACT
======
The multi media card reader does not recognize MMC cards and so the MMC cards are not mounted.

FIX
===
Disable MMC card reader in hardware and use SD interface to read MMC cards

TEST
====
This patch was tested on an X220 by Chris Wayne.

Changed in linux:
status: New → Incomplete
Tim Gardner (timg-tpi) on 2011-06-06
Changed in linux:
status: Incomplete → Invalid
Changed in linux (Ubuntu Maverick):
assignee: nobody → Manoj Iyer (manjo)
Changed in linux (Ubuntu Natty):
assignee: nobody → Manoj Iyer (manjo)
Changed in linux (Ubuntu Oneiric):
assignee: nobody → Manoj Iyer (manjo)
Changed in linux (Ubuntu Maverick):
status: New → Fix Committed
Changed in linux (Ubuntu Natty):
status: New → Fix Committed
Changed in linux (Ubuntu Oneiric):
status: New → Fix Committed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package linux - 3.0-0.1

---------------
linux (3.0-0.1) oneiric; urgency=low

  [ Andy Whitcroft ]

  * use the packaging version in the kernel
  * use the kernels idea of its version for version_signature
  * add dependancies for module-init-tools
  * update control files to version 3
  * printchanges/insertchanges allow override of prev_release
  * correct Vcs-Git: to point to oneiric

  [ Leann Ogasawara ]

  * rebase to v3.0-rc1
  * [Config] updateconfigs after rebase to 3.0-rc1
  * ubuntu: dm-raid4-5 fix up build failure
  * [Config] Temporarily Disable CONFIG_GPIO_EXYNOS4 on arm
  * [Config] Temporarily Disable CONFIG_GPIO_PLAT_SAMSUNG on arm
  * [Config] Temporarily Disable CONFIG_GPIO_S5PC100 on arm
  * [Config] Temporarily Disable CONFIG_GPIO_S5PV210 on arm
  * [Config] Temporarily disable CONFIG_BRCMSMAC on powerpc
  * [Config] Temporarily Disable CONFIG_BRCMSMAC on arm
  * [Config] Temporarily Disable CONFIG_RTL8192SE on arm
  * [Config] Temporarily Disable CONFIG_RTL8192SE on powerpc
  * [Config] Temporarily disable CONFIG_SMC91X on armel-omap
  * rebase to v3.0-rc2

  [ Manoj Iyer ]

  * SAUCE: mmc: Enable MMC card reader for RICOH [1180:e823]
    - LP: #790754

  [ Upstream Kernel Changes ]

  * Revert "x86 idle: EXPORT_SYMBOL(default_idle, pm_idle) only when APM
    demands it"
  * drm/i915: fix regression after clock gating init split

  [ Major Kernel Changes ]

  * rebase from v2.6.39 to v3.0-rc1
  * rebase from v3.0-rc1 to v3.0-rc2
 -- Andy Whitcroft <email address hidden> Thu, 09 Jun 2011 15:18:33 +0100

Changed in linux (Ubuntu Oneiric):
status: Fix Committed → Fix Released
Julian Wiedmann (jwiedmann) wrote :

For Maverick, this should be fixed now with 2.6.35-30.54.
Please reopen the Maverick task if you still experience this issue.

Changed in linux (Ubuntu Maverick):
status: Fix Committed → Fix Released
Herton R. Krzesinski (herton) wrote :

For Maverick, this bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-maverick' to 'verification-done-maverick'.

If verification is not done by one week from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

Changed in linux (Ubuntu Maverick):
status: Fix Released → Fix Committed
tags: added: verification-needed-maverick

I am experiencing this error on an X220t with Natty Narwhal. Is this fix going to filter down through proposed, or what should I do in order to use it? Thanks.

Herton R. Krzesinski (herton) wrote :

@Uncle Pedro: the fix is queued up for natty as well, but for natty it still isn't in proposed, just for Maverick for now. When it is, I'll ask for verification here for natty when this happens, just follow the wiki link above on how to use proposed when that happens.

Ok. I'm already getting proposed, so please poke me when it goes in and I'll let you know. Thanks!

Manoj Iyer (manjo) wrote :

Verification result
===============

With the proposed kernel I was able to mount and unmount a Transcend MMCplus 2GB card

tags: added: verification-done-maverick
removed: verification-needed-maverick
Chris Gagnon (chris.gagnon) wrote :

Verification result
===============

With the proposed kernel I was *not* able to mount and unmount a Canon "MMC-16M" (16MB MMC card)

dmesg reports:
"mmc0: error -110 whilst initialising MMC card"

Changed in linux (Ubuntu Maverick):
status: Fix Committed → Confirmed
Manoj Iyer (manjo) wrote :

Can you please try the following and see if it works ?

 sudo setpci -v -d 1180:e823 f9.B=fc
 sudo setpci -v -d 1180:e823 150.B=10
 sudo setpci -v -d 1180:e823 f9.B=00
 sudo setpci -v -d 1180:e823 fc.B=01
 sudo setpci -v -d 1180:e823 e1.B=32
 sudo setpci -v -d 1180:e823 fc.B=00

 sudo rmmod sdhci_pci
 sudo rmmod sdhci
 sudo modprobe sdhci
 sudo modprobe sdhci_pci

tags: added: verification-failed-maverick
removed: verification-done-maverick
Chris Gagnon (chris.gagnon) wrote :

Comment #10 allows the MMC card to be automounted

Steve Conklin (sconklin) wrote :

This patch will be reverted from Maverick

Chris Van Hoof (vanhoof) wrote :

This patch has proved to work in various cases both on Maverick as well as Natty; perhaps we're dealing with something specific to the card being used? Is there more to gain here by including this versus just reverting it?

Changed in linux (Ubuntu Maverick):
status: Confirmed → Incomplete
Chris Van Hoof (vanhoof) on 2011-07-28
Changed in linux:
assignee: Manoj Iyer (manjo) → Chris Van Hoof (vanhoof)
Steve Conklin (sconklin) wrote :

This patch has been reverted from Maverick

summary: - [NATTY] RICOH [1180:e823] unable to read MMC cards
+ [REVERTED] [NATTY] RICOH [1180:e823] unable to read MMC cards
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package linux - 2.6.35-30.56

---------------
linux (2.6.35-30.56) maverick-proposed; urgency=low

  [Herton R. Krzesinski]

  * Release Tracking Bug
    - LP: #808934

  [ Herton Ronaldo Krzesinski ]

  * Revert "SAUCE: mmc: Enable MMC card reader for RICOH [1180:e823]"

  [ Upstream Kernel Changes ]

  * Revert "x86: Flush TLB if PGD entry is changed in i386 PAE mode"
    - LP: #805209

linux (2.6.35-30.55) maverick-proposed; urgency=low

  [Steve Conklin]

  * Release Tracking Bug
    - LP: #801690

  [ Jeremy Kerr ]

  * SAUCE: cx23885: Fix argument to videobuf_dma_unmap
    - LP: #800527

  [ Manoj Iyer ]

  * SAUCE: mmc: Enable MMC card reader for RICOH [1180:e823]
    - LP: #790754

  [ Upstream Kernel Changes ]

  * agp: fix OOM and buffer overflow
    - LP: #791918
    - CVE-2011-1746
  * tty: icount changeover for other main devices, CVE-2010-4076,
    CVE-2010-4077
    - LP: #720189
    - CVE-2010-4077
  * fs/partitions/efi.c: corrupted GUID partition tables can cause kernel
    oops
    - LP: #795418
    - CVE-2011-1577
  * Fix corrupted OSF partition table parsing
    - LP: #796606
    - CVE-2011-1163
  * can: Add missing socket check in can/bcm release.
    - LP: #796502
    - CVE-2011-1598
  * nfs4: Ensure that ACL pages sent over NFS were not allocated from the
    slab (v3) CVE-2011-1090
    - LP: #800775
    - CVE-2011-1090
 -- Herton Ronaldo Krzesinski <email address hidden> Mon, 11 Jul 2011 15:17:32 -0300

Changed in linux (Ubuntu Maverick):
status: Incomplete → Fix Released
Herton R. Krzesinski (herton) wrote :

This was reverted on Maverick because it failed verification, resetting status.

The verification here failed because an additional fix was needed.

I suggest for Maverick the two following fixes (already in oneiric/natty) are submitted again if this fix is still wanted for it, for SRU on kernel-team list:
mmc: Add PCI fixup quirks for Ricoh 1180:e823 reader
mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency

and we go through SRU process again on Maverick.

Changed in linux (Ubuntu Maverick):
status: Fix Released → New
status: New → Confirmed
Ayan George (ayan) on 2011-08-31
tags: added: blocks-hwcert-enablement
Chris Van Hoof (vanhoof) on 2011-09-21
Changed in linux (Ubuntu Natty):
status: Fix Committed → Fix Released
Changed in linux (Ubuntu Maverick):
status: Confirmed → Invalid
status: Invalid → Won't Fix
Derrik Pates (demon-devrandom) wrote :

My Thinkpad X220 seems to have a different revision of the Ricoh MMC SD card reader.

10:25:17 [demon@swordfish: ~]$ lspci -s 0d:00.0 -vv
0d:00.0 System peripheral: Ricoh Co Ltd Device e823 (rev 04) (prog-if 01)
 Subsystem: Lenovo Device 21da
 Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
 Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
 Interrupt: pin A routed to IRQ 16
 Region 0: Memory at f1400000 (32-bit, non-prefetchable) [size=256]
 Capabilities: <access denied>
 Kernel driver in use: sdhci-pci
 Kernel modules: sdhci-pci

With the current latest kernel included in Natty, the SD/MMC card reader does not work at all; the modules load, but the card insertion is not seen at all with the cards I've tried (a 2 GB SanDisk Class 2 SD, and a 16 GB Transcend Class 6 SDHC). However, I've managed to use the following debug_quirks parameter (placed in /etc/modprobe.d/sdhci.conf), which seems to make the reader function, seeing the inserted card, allowing it to be mounted, and for files to be accessed without crashing the system:

options sdhci debug_quirks=0x4670

However, I do still get occasional spew like this in dmesg:

[ 694.789723] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress.
[ 694.789727] sdhci: =========== REGISTER DUMP (mmc0)===========
[ 694.789732] sdhci: Sys addr: 0x00000000 | Version: 0x00000502
[ 694.789738] sdhci: Blk size: 0x00007200 | Blk cnt: 0x00000000
[ 694.789743] sdhci: Argument: 0x00000000 | Trn mode: 0x00000032
[ 694.789748] sdhci: Present: 0x01ff0000 | Host ctl: 0x00000003
[ 694.789753] sdhci: Power: 0x0000000f | Blk gap: 0x00000000
[ 694.789759] sdhci: Wake-up: 0x00000000 | Clock: 0x00000407
[ 694.789764] sdhci: Timeout: 0x0000000a | Int stat: 0x00000000
[ 694.789770] sdhci: Int enab: 0x00ff00f3 | Sig enab: 0x00ff00f3
[ 694.789775] sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
[ 694.789780] sdhci: Caps: 0x21e8c8b2 | Caps_1: 0x00008073
[ 694.789785] sdhci: Cmd: 0x00000c1b | Max curr: 0x00000040
[ 694.789786] sdhci: ===========================================

It would seem different revs of the X220 have different SD/MMC card reader flavors. dmidecode identifies this machine as:

        Manufacturer: LENOVO
        Product Name: 4286CTO

Derrik Pates (demon-devrandom) wrote :

Looks like the following has to be used for different cards to be ack'd (previously once the first card was inserted, it would only notice that one until the drivers were unloaded and reloaded):

options sdhci debug_quirks=0x4671

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers