Re: Linux 2.6.27-git3: no SD card reader

From: J.A. MagallÃn
Date: Tue Oct 14 2008 - 17:28:19 EST


On Tue, 14 Oct 2008 17:45:36 +0200, Pierre Ossman <drzeus-list@xxxxxxxxx> wrote:

> On Tue, 14 Oct 2008 02:54:53 +0200
> "J.A. MagallÃn" <jamagallon@xxxxxxx> wrote:
>
> > Hi...
> >
> > More problems with git3. The left SD card reader is not detected on the One.
> > With a working kernel (distro 2.6.27):
> >
> > Oct 14 02:44:27 one kernel: mmc0: error -84 whilst initialising SD card
> >
> > Any ideas ?
> >
>
> -84 is -EILSEQ, which is some kind of bit error. Since you're running a
> JMicron controller, I'm guessing that something in your system isn't
> handling the higher speed (we forcefully enable highspeed on the
> Jmicron controll now).
>

Err, sorry if this is stupid. I can see the card reader even if I don't
load the jmb38x_ms.ko module,just sdhci_pci. I understand that it is needed only if
I want to read memstick type cards. Or not ?
I suppose you refer to 'settings for JMicron hardware in sdhci_pci module'.

> Have you tested more than one card?
>

I have two (both unknown brands for me, but I write full names fwiw):
- One "MBA Executive HiSpeed SD", 2Gb
- One "takeMS SDHC card Class6", 8Gb

Both give about 10Mb/s on read with hdparm under 2.6.27.

> What machine is this?

It's an Acer Aspire One. From what I have seen, there are two SD devices.
Both are capable to read SDHC cards, I have switched cards and they work
(or at the moment both are working as backwards-compatible in plain SD
mode, if that even exists...).

>From a half-working 2.6.27 kernel (half will be explained below):

sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pci 0000:01:00.0: SDHCI controller found [197b:2382] (rev 0)
sdhci-pci 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
sdhci-pci 0000:01:00.0: setting latency timer to 64
mmc0: SDHCI controller on PCI [0000:01:00.0] using ADMA
sdhci-pci 0000:01:00.2: SDHCI controller found [197b:2381] (rev 0)
sdhci-pci 0000:01:00.2: PCI INT A -> GSI 16 (level, low) -> IRQ 16
sdhci-pci 0000:01:00.2: Refusing to bind to secondary interface.
sdhci-pci 0000:01:00.2: PCI INT A disabled

(this is the right reader, the multi-format one)

sdhci-pci 0000:04:00.0: SDHCI controller found [197b:2382] (rev 0)
sdhci-pci 0000:04:00.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19
sdhci-pci 0000:04:00.0: setting latency timer to 64
mmc1: SDHCI controller on PCI [0000:04:00.0] using ADMA
sdhci-pci 0000:04:00.2: SDHCI controller found [197b:2381] (rev 0)
sdhci-pci 0000:04:00.2: PCI INT A -> GSI 19 (level, low) -> IRQ 19
sdhci-pci 0000:04:00.2: Refusing to bind to secondary interface.
sdhci-pci 0000:04:00.2: PCI INT A disabled

(and this is the left one, the SD-only)

...
mmc0: new SD card at address 0002
...
mmc1: new SDHC card at address 0002
...
mmcblk0: mmc0:0002 00000 1974272KiB
mmcblk0: p1
mmcblk1: mmc1:0002 7917568KiB
mmcblk1: p1

one:~# lspci -t
-[0000:00]-+-00.0
+-02.0
+-02.1
+-1b.0
+-1c.0-[0000:01]--+-00.0
| +-00.2
| +-00.3
| \-00.4
+-1c.1-[0000:02]----00.0
+-1c.2-[0000:03]----00.0
+-1c.3-[0000:04]--+-00.0
| +-00.2
| +-00.3
| \-00.4
+-1d.0
+-1d.1
+-1d.2
+-1d.3
+-1d.7
+-1e.0-[0000:05]--
+-1f.0
+-1f.2
\-1f.3

one:~# lspci
00:00.0 Host bridge: Intel Corporation Mobile 945GME Express Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GME Express Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (rev 03)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 02)
00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 02)
00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 02)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)
01:00.0 System peripheral: JMicron Technologies, Inc. Device 2382
01:00.2 SD Host controller: JMicron Technologies, Inc. Device 2381
01:00.3 System peripheral: JMicron Technologies, Inc. Device 2383
01:00.4 System peripheral: JMicron Technologies, Inc. Device 2384
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller (rev 02)
03:00.0 Ethernet controller: Atheros Communications Inc. AR242x 802.11abg Wireless PCI Express Adapter (rev 01)
04:00.0 System peripheral: JMicron Technologies, Inc. Device 2382
04:00.2 SD Host controller: JMicron Technologies, Inc. Device 2381
04:00.3 System peripheral: JMicron Technologies, Inc. Device 2383
04:00.4 System peripheral: JMicron Technologies, Inc. Device 2384



I call this half-working because I have to boot with a card inside a slot
to have it detected. If i boot without the card-in, it even dissapears from
lspci. This is just with the left SD inserted:

one:~# lspci
00:00.0 Host bridge: Intel Corporation Mobile 945GME Express Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GME Express Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (rev 03)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 02)
00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 02)
00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 02)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller (rev 02)
03:00.0 Ethernet controller: Atheros Communications Inc. AR242x 802.11abg Wireless PCI Express Adapter (rev 01)
04:00.0 System peripheral: JMicron Technologies, Inc. Device 2382
04:00.2 SD Host controller: JMicron Technologies, Inc. Device 2381
04:00.3 System peripheral: JMicron Technologies, Inc. Device 2383
04:00.4 System peripheral: JMicron Technologies, Inc. Device 2384

If I insert a card on the right slot now it has no effect, it does not appear.
I suppose it is PCI hot-plunggin that is not hot nor plugs anything ;).:

one:~# lspci -t
-[0000:00]-+-00.0
+-02.0
+-02.1
+-1b.0
+-1c.0-[0000:01]--
+-1c.1-[0000:02]----00.0
+-1c.2-[0000:03]----00.0
+-1c.3-[0000:04]--+-00.0
| +-00.2
| +-00.3
| \-00.4
+-1d.0
+-1d.1
+-1d.2
+-1d.3
+-1d.7
+-1e.0-[0000:05]--
+-1f.0
+-1f.2
\-1f.3

The tree after the bridge in 00:1c.0 is gone !!.
I googled about it and someone talked about pciehp_force, but last time
I tried some other devices (ether, could be?) dissapeared.

And now with -git4:

sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pci 0000:01:00.0: SDHCI controller found [197b:2382] (rev 0)
sdhci-pci 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
sdhci-pci 0000:01:00.0: setting latency timer to 64
mmc0: SDHCI controller on PCI [0000:01:00.0] using ADMA
sdhci-pci 0000:01:00.2: SDHCI controller found [197b:2381] (rev 0)
sdhci-pci 0000:01:00.2: PCI INT A -> GSI 16 (level, low) -> IRQ 16
sdhci-pci 0000:01:00.2: Refusing to bind to secondary interface.
sdhci-pci 0000:01:00.2: PCI INT A disabled
sdhci-pci 0000:04:00.0: SDHCI controller found [197b:2382] (rev 0)
sdhci-pci 0000:04:00.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19
sdhci-pci 0000:04:00.0: setting latency timer to 64
mmc1: SDHCI controller on PCI [0000:04:00.0] using ADMA
sdhci-pci 0000:04:00.2: SDHCI controller found [197b:2381] (rev 0)
sdhci-pci 0000:04:00.2: PCI INT A -> GSI 19 (level, low) -> IRQ 19
sdhci-pci 0000:04:00.2: Refusing to bind to secondary interface.
sdhci-pci 0000:04:00.2: PCI INT A disabled
...
mmc0: error -84 whilst initialising SD card
...
mmc1: error -84 whilst initialising SD card


Mmm, looking at the logs I have seen that in 2.6.27 shpchp is loaded
way before sdhci, and in -git4 it loads after it. Can this have
any effect ?

> Rgds

TIA, hope all this gives some light.
If you need full dmesg's, just ask.

--
J.A. Magallon <jamagallon()ono!com> \ Software is like sex:
\ It's better when it's free
Mandriva Linux release 2009.0 (Cooker) for i586
Linux 2.6.25-jam18 (gcc 4.3.1 20080626 (GCC) #1 SMP
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/