14e4:16bc [Acer Aspire One 756] SD card slot doesn't work

Bug #1178131 reported by StefanF on 2013-05-09
50
This bug affects 10 people
Affects Status Importance Assigned to Milestone
Linux
Unknown
Unknown
linux (Ubuntu)
Low
Unassigned

Bug Description

My SD Card reader will not work without reloading the tg3 module. When I insert an SD card, dmesg output:
[ 409.712345] mmc0: Timeout waiting for hardware interrupt.
[ 419.722227] mmc0: Timeout waiting for hardware interrupt.
[ 429.732104] mmc0: Timeout waiting for hardware interrupt.
[ 439.742025] mmc0: Timeout waiting for hardware interrupt.
[ 443.841471] mmc0: Card removed during transfer!
[ 443.841477] mmc0: Resetting controller.

The type of SD card does not matter and it does not matter if an ethernet cable is plugged.

With Ubuntu 11.10, which works fine out of the box. Dmesg does not show any error or warning.

10.04: Does not work even when reloading the tg3 module. Dmesg reports error -84 during SD card init.
12.04 32-bit: Works when reloading the tg3 module. Otherwise timeout errors occur.
13.04 32-bit: same as above with 12.04.
12.04 with 3.10.0-rc1 mainline kernel: same as with 12.04.

WORKAROUND: setpci -s 00:1c.2 0x50.B=0x40

WORKAROUND: setpci -s 00:1c.2 0x50.B=0x41

WORKAROUND: Perform at a terminal:
rmmod tg3
modprobe tg3

rmmod tg3:
[ 447.384229] tg3 0000:04:00.0: PME# enabled
[ 447.384258] tg3 0000:04:00.0: wake-up capability enabled by ACPI
[ 447.417401] tg3 0000:04:00.0: PCI INT A disabled

modprobe tg3:
[ 475.816235] tg3.c:v3.121 (November 2, 2011)
[ 475.819526] mmc0: new high speed SDHC card at address 0007
[ 475.832068] tg3 0000:04:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
[ 475.832129] tg3 0000:04:00.0: setting latency timer to 64
[ 475.839493] mmcblk0: mmc0:0007 SD08G 7.48 GiB
[ 475.841628] mmcblk0: p1
[ 475.880672] tg3 0000:04:00.0: eth0: Tigon3 [partno(BCM57785) rev 57785100] (PCI Express) MAC address b8:88:e3:42:5d:df
[ 475.880680] tg3 0000:04:00.0: eth0: attached PHY is 57765 (10/100/1000Base-T Ethernet) (WireSpeed[1], EEE[1])
[ 475.880685] tg3 0000:04:00.0: eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] TSOcap[1]
[ 475.880690] tg3 0000:04:00.0: eth0: dma_rwctrl[00000001] dma_mask[64-bit]
[ 475.908963] udevd[2073]: renamed network interface eth0 to eth1
[ 475.916412] tg3 0000:04:00.0: irq 44 for MSI/MSI-X
[ 475.916426] tg3 0000:04:00.0: irq 45 for MSI/MSI-X
[ 475.916437] tg3 0000:04:00.0: irq 46 for MSI/MSI-X
[ 476.486620] ADDRCONF(NETDEV_UP): eth1: link is not ready
[ 476.487582] ADDRCONF(NETDEV_UP): eth1: link is not ready

ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: linux-image-3.2.0-41-generic-pae 3.2.0-41.66
ProcVersionSignature: Ubuntu 3.2.0-41.66-generic-pae 3.2.42
Uname: Linux 3.2.0-41-generic-pae i686
AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.24.
ApportVersion: 2.0.1-0ubuntu17.2
Architecture: i386
ArecordDevices:
 **** List of CAPTURE Hardware Devices ****
 card 0: PCH [HDA Intel PCH], device 0: ALC271X Analog [ALC271X Analog]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: stefan 2100 F.... pulseaudio
Card0.Amixer.info:
 Card hw:0 'PCH'/'HDA Intel PCH at 0xc0600000 irq 43'
   Mixer name : 'Intel PantherPoint HDMI'
   Components : 'HDA:10ec0269,10250742,00100100 HDA:80862806,80860101,00100000'
   Controls : 23
   Simple ctrls : 11
Date: Thu May 9 09:42:43 2013
Lsusb:
 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
 Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
 Bus 001 Device 003: ID 064e:d251 Suyin Corp.
MachineType: Acer AO756
MarkForUpload: True
ProcEnviron:
 LANGUAGE=de_DE:en
 TERM=xterm
 PATH=(custom, no user)
 LANG=de_DE.UTF-8
 SHELL=/bin/bash
ProcFB: 0 inteldrmfb
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.2.0-41-generic-pae root=UUID=e1e0405e-1b4d-4f0d-89f8-9324d70236c9 ro quiet splash acpi_backlight=vendor vt.handoff=7
RelatedPackageVersions:
 linux-restricted-modules-3.2.0-41-generic-pae N/A
 linux-backports-modules-3.2.0-41-generic-pae N/A
 linux-firmware 1.79.4
SourcePackage: linux
StagingDrivers: mei
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 04/26/2012
dmi.bios.vendor: Acer
dmi.bios.version: V1.02
dmi.board.asset.tag: Type2 - Board Asset Tag
dmi.board.name: Mimic
dmi.board.vendor: Acer
dmi.board.version: Type2 - Board Version
dmi.chassis.type: 10
dmi.chassis.vendor: Acer
dmi.chassis.version: V1.02
dmi.modalias: dmi:bvnAcer:bvrV1.02:bd04/26/2012:svnAcer:pnAO756:pvrV1.02:rvnAcer:rnMimic:rvrType2-BoardVersion:cvnAcer:ct10:cvrV1.02:
dmi.product.name: AO756
dmi.product.version: V1.02
dmi.sys.vendor: Acer

StefanF (stefan) wrote :
StefanF (stefan) wrote :

Already reported as Bug #1067222

This change was made by a bot.

Changed in linux (Ubuntu):
status: New → Confirmed
description: updated
tags: added: bios-outdated-1.09 kernel-media needs-upstream-testing raring
summary: - SD card slot not working on Acer Aspire One 756
+ 14e4:16bc SD card slot not working on Acer Aspire One 756
Changed in linux (Ubuntu):
status: Confirmed → Incomplete
Vasiliy Tolstov (vase) wrote :

I have this acer and latest bios and confirm that problem exists. I'm using ubuntu raring and my bios 1.09

Changed in linux (Ubuntu):
importance: Undecided → Medium
StefanF (stefan) wrote :

Thanks for the hint about the BIOS upgrade. That fixed another bug :-) However, the SD card reader still sucks.

But something has changed. Now the slot starts working immediately after the "rmmod tg3" command. This is one step earlier than before. The log messages of dmesg are the same as before.

StefanF (stefan) wrote :

I investigated the issue a little more. Whenever I put the computer into standby mode, I need to unload the tg3 module again. When the module was already unloaded before suspend, then I have to load the module after suspend to get the SD card reader working. So both actions awake the SD card reader: loading the tg3 module as well as unloading the module. Before the BIOS upgrade, I had to load the module, unloading had no effect.

StefanF (stefan) wrote :

I'm unsure which kernel I shall download and test. Because I am using Ubuntu 12.04 I assume that I need to download a kernel which contains "precise" in its name. Is that correct? I tried to install these files with dpkg -i:

http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.10-rc1-precise/linux-headers-3.10.0-031000rc1-generic_3.10.0-031000rc1.201305112035_i386.deb
http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.10-rc1-precise/linux-image-3.10.0-031000rc1-generic_3.10.0-031000rc1.201305112035_i386.deb

But installation of the headers failed with the error message:

linux-headers-3.10.0-031000rc1-generic depends on linux-headers-3.10.0-031000rc1; but linux-headers-3.10.0-031000rc1 is not installed.

What files shall I download and test? Can you tell me the exact filenames? There are so many, I'm confused.

StefanF (stefan) wrote :

The directory v3-10-rc1-precise does not exist anymore. It seems that a lot of directories had been removed. The latest available version is now v3.4-rc7-precise which is about 1 year old.

StefanF (stefan) wrote :

But I am running the precise version (12.04). Can I install a kernel for 13.10 on an older 12.04 linux?

I don't want to upgrade the whole linux installation. If we are stuck here, I would prefer to wait until Ubuntu 13.10 is released and then I might upgrade maybe (maybe, because I prefer LTS versions). Until then I can live with the bug.

StefanF (stefan) wrote :

The new Kernel 3.10 does not fix the problem. I get the same (timeout) error messages.

linux-headers-3.10.0-031000rc1_3.10.0-031000rc1.201305130510_all.deb
linux-headers-3.10.0-031000rc1-generic_3.10.0-031000rc1.201305130510_i386.deb
linux-image-3.10.0-031000rc1-generic_3.10.0-031000rc1.201305130510_i386.deb

tags: added: kernel-bug-exists-upstream kernel-bug-exists-upstream-3.10.0
removed: needs-upstream-testing
Changed in linux (Ubuntu):
status: Incomplete → Confirmed
StefanF (stefan) on 2013-05-14
tags: removed: bios-outdated-1.09
tags: added: kernel-bug-exists-upstream-v3.10-rc1
removed: kernel-bug-exists-upstream-3.10.0
tags: added: latest-bios-v1.09
Changed in linux (Ubuntu):
status: Confirmed → Incomplete
StefanF (stefan) wrote :

I dont know if prior Ubuntu releases before 12.04 precise are affected. I tried only 12.04 and 13.04, which are both affected.

StefanF (stefan) wrote :

With lucid I get another error message when I insert an SDHC card:

mmc: error -84 while initializing SD card

I gte the same message again, when I remove and re-insert the card. Removinf and loading the tg3 module does not have any effect.

StefanF (stefan) wrote :

I also tested with Ubuntu 11.10, which works fine out of the box. Dmesg does not show any error or warning.

10.04: Does not work even when reloading the tg3 module. Dmesg reports error -84 during SD card init.
11.04: I did not find the ISO image, so I did not test this version.
12.04: Works when reloading the tg3 module. Otherwise timeout errors occur.
13.04: same as above with 12.04.
12.04 with 3.10.0-rc1 mainline kernel: same as with 12.04.

description: updated
StefanF (stefan) wrote :

I visited the website https://launchpad.net/ubuntu/+source/linux/ . Unfortunately the section for the interesting linux distribution (11.10) is missing there. I need to find binary packages of Kernels 3.0.0 - 3.2.0. Where can I find them?

StefanF (stefan) wrote :
Download full text (3.2 KiB)

With linux-image-3.0.0-32-generic-pae_3.0.0-32.51_i386.deb i get the following error message when I insert my SDHC card:

[ 132.205270] mmc0: Timeout waiting for hardware interrupt.
[ 132.205293] sdhci: =========== REGISTER DUMP (mmc0)===========
[ 132.205340] sdhci: Sys addr: 0x00000000 | Version: 0x00001502
[ 132.205347] sdhci: Blk size: 0x00000000 | Blk cnt: 0x00000000
[ 132.205354] sdhci: Argument: 0x00000000 | Trn mode: 0x00000000
[ 132.205362] sdhci: Present: 0x1eff0001 | Host ctl: 0x00000001
[ 132.205369] sdhci: Power: 0x0000000f | Blk gap: 0x00000000
[ 132.205376] sdhci: Wake-up: 0x00000000 | Clock: 0x0000fa07
[ 132.205382] sdhci: Timeout: 0x00000000 | Int stat: 0x00000000
[ 132.205390] sdhci: Int enab: 0x00ff00c3 | Sig enab: 0x00ff00c3
[ 132.205397] sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
[ 132.205404] sdhci: Caps: 0x176ec8b0 | Caps_1: 0x03002177
[ 132.205411] sdhci: Cmd: 0x00000000 | Max curr: 0x00000000
[ 132.205416] sdhci: Host ctl2: 0x00000000
[ 132.205422] sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x00000000
[ 132.205425] sdhci: ===========================================

After rmmod tg3, the SDHC card is still not detected:

[ 373.921459] tg3.c:v3.119 (May 18, 2011)
[ 373.934630] tg3 0000:04:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
[ 373.934659] tg3 0000:04:00.0: setting latency timer to 64

After modprobe tg3, the SDHC card is still not working properly:

[ 373.961035] tg3 0000:04:00.0: eth0: Tigon3 [partno(BCM57785) rev 57785100] (PCI Express) MAC address b8:88:e3:42:5d:df
[ 373.961048] tg3 0000:04:00.0: eth0: attached PHY is 57765 (10/100/1000Base-T Ethernet) (WireSpeed[1], EEE[1])
[ 373.961056] tg3 0000:04:00.0: eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] TSOcap[1]
[ 373.961063] tg3 0000:04:00.0: eth0: dma_rwctrl[00000001] dma_mask[64-bit]
[ 373.982018] tg3 0000:04:00.0: irq 42 for MSI/MSI-X
[ 373.982029] tg3 0000:04:00.0: irq 43 for MSI/MSI-X
[ 373.982036] tg3 0000:04:00.0: irq 44 for MSI/MSI-X
[ 374.554915] ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 384.593374] mmc0: Timeout waiting for hardware interrupt.
[ 384.593385] sdhci: =========== REGISTER DUMP (mmc0)===========
[ 384.593434] sdhci: Sys addr: 0x00000000 | Version: 0x00001502
[ 384.593443] sdhci: Blk size: 0x00000000 | Blk cnt: 0x00000000
[ 384.593451] sdhci: Argument: 0x00000000 | Trn mode: 0x00000000
[ 384.593460] sdhci: Present: 0x1fff0001 | Host ctl: 0x00000001
[ 384.593469] sdhci: Power: 0x0000000d | Blk gap: 0x00000000
[ 384.593477] sdhci: Wake-up: 0x00000000 | Clock: 0x0000f447
[ 384.593486] sdhci: Timeout: 0x00000000 | Int stat: 0x00000000
[ 384.593495] sdhci: Int enab: 0x00ff00c3 | Sig enab: 0x00ff00c3
[ 384.593503] sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
[ 384.593512] sdhci: Caps: 0x176ec8b0 | Caps_1: 0x03002177
[ 384.593521] sdhci: Cmd: 0x0000371a | Max curr: 0x00000000
[ 384.593527] sdhci: Host ctl2: 0x00000000
[ 384.593535] sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x00000000
[ 384.593539] sdhci: ===========================================

Removed and re-insert the card:

[ 386.565361] mmc0: Card removed during transfer!
[ 386.5...

Read more...

StefanF (stefan) wrote :

I found the kernel version that introduced the problem:

- linux-image-3.0.0-32-generic-pae_3.0.0-32.51_i386.deb
- linux-image-3.0.0-32-generic-pae_3.0.0-32.50_i386.deb
- linux-image-3.0.0-20-generic_3.0.0-20.34_i386.deb
- linux-image-3.0.0-16-generic_3.0.0-16.29_i386.deb
+ linux-image-3.0.0-16-generic_3.0.0-16.28_i386.deb
+ linux-image-3.0.0-16-generic-pae_3.0.0-16.28_i386.deb
+ linux-image-3.0.0-16-generic_3.0.0-16.27_i386.deb
+ linux-image-3.0.0-15-generic_3.0.0-15.26_i386.deb
+ linux-image-3.0.0-15-generic_3.0.0-15.24_i386.deb
+ linux-image-3.0.0-14-generic_3.0.0-14.23_i386.deb
+ linux-image-3.0.0-12-generic_3.0.0-12.20_i386.deb

- does not work, + does work fine.

So the problem was introduced by kernel 3.0.0-16.29. I verified this three times - got always the same results as written in my previous post.

Can I do something more to support debugging?

StefanF (stefan) wrote :

I tried to follow the instruction but encountered a problem. Git continues to report the same error, whenever I try:

stefan@stefanspc:~$ git clone git://kernel.ubuntu.com/ubuntu/ubuntu-oneiric.git
Cloning into 'ubuntu-oneiric'...
fatal: The remote end hung up unexpectedly

Cloning precise works but that's the wrong version:

stefan@stefanspc:~$ git clone git://kernel.ubuntu.com/ubuntu/ubuntu-precise.git
Cloning into 'ubuntu-precise'...
^Cmote: Counting objects: 143107

How can I bisect the commits of oneiric kernel version 3.0.0-16.29 ?

StefanF (stefan) wrote :

I found it myself. The correct path is git://kernel.ubuntu.com/ubuntu-archive/ubuntu-oneiric.git
Give me some time ...

StefanF (stefan) wrote :

The bisect of commits to Kernel 3.0.0-16.28 .. 30.0.0-16.29 produced the following result. I dont understand what that means but it will hopefully provide the informations you need to continue debugging or fix the bug:

df89d48a8cbdc23578397c6e62d5c9c9e630c610 is the first bad commit
commit df89d48a8cbdc23578397c6e62d5c9c9e630c610
Author: Matthew Garrett <email address hidden>
Date: Thu Nov 10 16:38:33 2011 -0500

    PCI: Rework ASPM disable code

    BugLink: http://bugs.launchpad.net/bugs/927848

    commit 3c076351c4027a56d5005a39a0b518a4ba393ce2 upstream.

    Right now we forcibly clear ASPM state on all devices if the BIOS indicates
    that the feature isn't supported. Based on the Microsoft presentation
    "PCI Express In Depth for Windows Vista and Beyond", I'm starting to think
    that this may be an error. The implication is that unless the platform
    grants full control via _OSC, Windows will not touch any PCIe features -
    including ASPM. In that case clearing ASPM state would be an error unless
    the platform has granted us that control.

    This patch reworks the ASPM disabling code such that the actual clearing
    of state is triggered by a successful handoff of PCIe control to the OS.
    The general ASPM code undergoes some changes in order to ensure that the
    ability to clear the bits isn't overridden by ASPM having already been
    disabled. Further, this theoretically now allows for situations where
    only a subset of PCIe roots hand over control, leaving the others in the
    BIOS state.

    It's difficult to know for sure that this is the right thing to do -
    there's zero public documentation on the interaction between all of these
    components. But enough vendors enable ASPM on platforms and then set this
    bit that it seems likely that they're expecting the OS to leave them alone.

    Measured to save around 5W on an idle Thinkpad X220.

    Signed-off-by: Matthew Garrett <email address hidden>
    Signed-off-by: Jesse Barnes <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>
    Signed-off-by: Tim Gardner <email address hidden>

:040000 040000 2ae424c4b73d5552809986f7116ba347b4fb1a90 04a4a42154f00a9c3a47ec3f787e424437b06183 M drivers
:040000 040000 72de932be7dafa9fa5712bc854a332850c0a79ac 94d1f2df9527e35ddc9d6489c2de6545fad4c764 M include

StefanF (stefan) wrote :

And here is the log from git:

stefan@stefanspc:~/ubuntu-oneiric$ git bisect log
# bad: [e1c01a2eeb0467d3f4231c6fb8cb994aabb2a6f0] UBUNTU: Ubuntu-3.0.0-16.29
# good: [93ea0147179beb35e2e44e2b2d4cf557be910a11] UBUNTU: Ubuntu-3.0.0-16.28
git bisect start 'Ubuntu-3.0.0-16.29' 'Ubuntu-3.0.0-16.28'
# good: [ae7fda2e3045293cd3aa50e30e38d05366793b70] i2c-eg20t: modified the setting of transfer rate.
git bisect good ae7fda2e3045293cd3aa50e30e38d05366793b70
# good: [c32ad4f477b9e79ce426efe589aeae18491d2c08] USB: ftdi_sio: Add more identifiers
git bisect good c32ad4f477b9e79ce426efe589aeae18491d2c08
# good: [940ae589e421351ce32d2b6304c4782fefb6adae] net caif: Register properly as a pernet subsystem.
git bisect good 940ae589e421351ce32d2b6304c4782fefb6adae
# good: [d4f96528b9c6b09e9fc740516056aaeb392601a1] USB: cp210x: do not map baud rates to B0
git bisect good d4f96528b9c6b09e9fc740516056aaeb392601a1
# good: [691d6a674a8c31c4abddd0f0142e6642cfe110cf] Linux 3.0.19
git bisect good 691d6a674a8c31c4abddd0f0142e6642cfe110cf
# bad: [27996a4c72c3c36bb7e8a3ceed7d0defbaa81040] Linux 3.0.20
git bisect bad 27996a4c72c3c36bb7e8a3ceed7d0defbaa81040
# bad: [df89d48a8cbdc23578397c6e62d5c9c9e630c610] PCI: Rework ASPM disable code
git bisect bad df89d48a8cbdc23578397c6e62d5c9c9e630c610
# good: [5c2fab4b096559a68473ec941b8109afcb423158] UBUNTU: SAUCE: acer-wmi: support for P key on TM8372
git bisect good 5c2fab4b096559a68473ec941b8109afcb423158

StefanF (stefan) wrote :

I did another bisect with the mainline Kernels.

+ 3.0.19 works fine
- 3.0.20 does not work

I think I should now bisect the commits between these two versions because my previous commit lead to a collection of patches that have been back ported from this version.

Am I right? If not, then please let me know because each compilation takes about 2 Hours which is not so funny.

StefanF (stefan) wrote :

I cancelled that. Between 3.0.19 and 3.0.20 there are only two changes and only one of them can be related to my problem:

stefan@stefanspc:~/ubuntu-oneiric$ git log --oneline 691d6a674a8c31c4abddd0f0142e6642cfe110cf..27996a4c72c3c36bb7e8a3ceed7d0defbaa81040
27996a4 Linux 3.0.20
df89d48 PCI: Rework ASPM disable code <<<<<<<<< This one is it
5c2fab4 UBUNTU: SAUCE: acer-wmi: support for P key on TM8372

Following the instructions on
http://wireless.kernel.org/en/users/Documentation/ASPM#Linux_kernel_ASPM_support
I was able to fix the problem by disabling ASPM on the PCI bus 00:1c.2 which is
shared by the ethernet interface (tg3) and the SD/MMC card reader using the
following command.

setpci -s 00:1c.2 0x50.B=0x40

So I have a good work-around now.

Is it a BIOS bug? Then how can we tell ACER that they have to fix it? Or is it possible to include a permanent work-around into future Releases of the Linux Kernel?

StefanF (stefan) wrote :

The value 0x41 (enable L1 only) works also fine. The Kernel sets the value to 0x43 which does not work.

StefanF (stefan) wrote :

Sorry, there is a mistyping in my previous comment. It should read:

The value 0x41 (disable L1 only) works also fine.

tags: added: bisect-done
description: updated
tags: added: needs-upstream-testing
removed: kernel-bug-exists-upstream
StefanF (stefan) wrote :

The problem still exists with Kernel 3.10-rc2-saucy. My workaround is also applicable to that Kernel.

tags: added: kernel-bug-exists-upstream-v3.10-rc2
removed: kernel-bug-exists-upstream-v3.10-rc1
StefanF (stefan) wrote :

Kernel 3.10-rc3-saucy is also affected as well.
Does it make sense to test every release candiate without having a related note in the changelog?

StefanF, testing the newest mainline kernel made available is the best way to ensure your problem is addressed.

Despite this, the issue you are reporting is an upstream one. Could you please report this problem through the appropriate channel by following the instructions _verbatim_ at https://wiki.ubuntu.com/Bugs/Upstream/kernel#KernelTeam.2BAC8-KernelTeamBugPolicies.Overview_on_Reporting_Bugs_Upstream ?

Thank you for your understanding.

Status -> Triaged
Importance -> Low

Changed in linux (Ubuntu):
status: Incomplete → Confirmed
StefanF (stefan) wrote :

 14e4:16bc SD card slot not working on Acer Aspire One 756

 The memory card read (Broadcaom BCM57765) does not work on Aver Aspire
 One 756 because Linux enabled ASPM L1 on the PCIe channel since a
 related change in Kernel 3.0.20. Please change the code so that only
 APSN L0s is enabled on that machine on the PCIe channel 00:1c.2.

 Until a solution is available, I use the following command as a
 workaround: sudo setpci -s 00:1c.2 0x50.B=0x41

 Description of the change that introduced the problem:
 https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=6cac12dfab9c57a4f76821412224b226a9b08dff

 The full problem description with log files and result of my bisecting
 can be found in the Ubuntu Bug L#1178131.

 Link to the Ubuntu Bug report:
 https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1178131

 The problem is still present in Kernel 3.10-rc1, rc2 and rc3.
 Kernels before 3.0.20 are NOT affected by the problem.
 The first problematic Linux version is 3.0.20.

 Steps to reproduce:

 - Boot Linux with any Kernel after 3.0.19 (Using Gnome 3 Desktop)
 - Insert any memory card into the card reader
 - Problem: nothing happens
 - Problem: In dmesg, the mmc driver reports communication timeouts for
 the card reader
 - Remove the memory card
 - Enter sudo setpci -s 00:1c.2 0x50.B=0x41 (This disables ASPM L1)
 - Insert the memory card
 - Result: It gets detected immediately. Gnome pop-ups a related
 notification window.
 - Remove the memory card
 - Enter sudo setpci -s 00:1c.2 0x50.B=0x43 (this is the value that the
 Linux Kernel sets during boot)
 - Insert the memory card
 - Problem: The card is not detected

--
 Stefan Frings
 Markenstraße 12
 40227 Düsseldorf

StefanF (stefan) wrote :

The total power consumtion of my notebook is not affected by disabling ASPM L1 on the PCIe channel, a far as I can see with powertop.

StefanF (stefan) wrote :

For further investigation, I booted Linux 3.10-rc3 with pcie_aspm=off so the kernel does not change the settings that the BIOS activates. The BIOS dictates that ASPM must be disabled for the card reader but it enables L1, as you can see in the attached files.

StefanF (stefan) wrote :

I also added the output of dmesg from boot, so you can check the ACPI messages.

StefanF (stefan) wrote :

The problem is caused by a combination of three bugs in the computer:

1) The card reader does not support L1 although this is a mandatory feature in the PCIe specification (see http://wireless.kernel.org/en/users/Documentation/ASPM).
2) The BIOS enables L1 although the hardware does not support it.
3) The BIOS dictates that ASPM must be disabled but it does not support _OSC control, so the Linux Kernel cannot disable ASPM during boot.

Workaround: Place the command "setpci -s 00:1c.2 0x50.B=0x41" into /etc/rc.local and create a new file /etc/apm/resume.d/21aspm with the same command.

StefanF (stefan) wrote :

With the pre-installed Windows 7 (64bit), the card reader works fine although APSM L1 is enabled! See attached screenshot.

StefanF (stefan) wrote :
Bjorn Helgaas (bjorn-helgaas) wrote :

1) The comment #48 screenshot is only the config space of 00:1c.2, the root port leading to the card reader. Can you also attach a similar screenshot of the config space of 04:00.0 and 04:00.1?

2) Can you attach lspci output similar to comment #49 for 04:00.0 also? The 04:00.0 and 04:00.1 devices share the link, so I'm interested in both.

3) Can you attach the Windows 7 .INF files for the drivers of the 04:00.0 and 04:00.1 devices? There is a Windows PciASPMOptOut feature that affects the settings. I expect the .INF files will *not* contain this opt-out directive, since ASPM L1 seems to be enabled, but we should double-check.

Thanks!

StefanF (stefan) wrote :

Comment 47 shows the config space of the PCIe bus 00:1c.2.
Comment 48 Shows the config space of the Card Reader 04:00.0.
Comment 51 Shows the config space of the Ethernet Interface 04:00.1.

StefanF (stefan) wrote :

lspci -xxx for the ethernet interface

StefanF (stefan) wrote :

Ethernet driver inf file

StefanF (stefan) wrote :

Card reader driver inf file

StefanF (stefan) wrote :

Card reader driver second inf file

StefanF (stefan) wrote :

The Windows driver inf files do not contain the PciASPMOptOut setting, as expected.

Jan Rudolph (sokolabla-y) wrote :

As comment: For the affected chip, Broadcom BCM57765, Broadcom claims to support L1 in their product brief.

Using Ubuntu 13.04, Kernel 3.8.0.27-generic on Acer Aspire One 756.

sudo setpci -s 00:1c.2 0x50.B=0x41 works and SD Card is recognized.

However, writing files to the SD Card freezes after a few seconds and data is corrupt.

StefanF (stefan) wrote :

> However, writing files to the SD Card freezes after a few seconds and data is corrupt.

Try another SD card. I hade the same issue with one Micro-SD card that I normally use in my mobile phone. Several other cards work fine.

Bjorn Helgaas (bjorn-helgaas) wrote :

This is an upstream kernel issue. The upstream bug report is https://bugzilla.kernel.org/show_bug.cgi?id=59311

If anyone is in a position to reproduce the problem with the v3.11 upstream kernel, please attach the following to the upstream bug report:
  - Complete dmesg log
  - "lspci -vv" output (as root) for the whole system in the non-working state (no boot options or workarounds applied)
  - acpidump output

I know this is information that is probably already buried in this launchpad report, so I apologize for requesting it again. But ASPM configuration is subtle and is influenced by several factors (FADT, _OSC, other system devices), so I want to start looking with a clean slate.

StefanF, would you mind testing the latest mainline kernel via http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.13-rc3-trusty/ and advise to the results?

Changed in linux (Ubuntu):
importance: Medium → Low
status: Confirmed → Triaged
summary: - 14e4:16bc SD card slot not working on Acer Aspire One 756
+ 14e4:16bc [Acer Aspire One 756] SD card slot doesn't work
StefanF (stefan) wrote :

Why should I test the latest mainline Kernel again? I did that already more than 5 times after I reported the problem. But I found no a single hint that the problem cause is found and solved. See Bug Bug #1067222.
So testing again and again will not help anybody. Please ask me when some related code has been changed. Until then I can live with the workaround or use an external cardreader.

StefanF, thank you for your comments. Regarding them:
>"Why should I test the latest mainline Kernel again?"

The upstream maintainer has requested this in https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1178131/comments/61 , with accompanying attachment.

>"I did that already more than 5 times after I reported the problem."

You testing this out is appreciated. However, the number of times one tests is just one data point. What's most important is keeping your bug report relevant in cadence with upstream releases, and providing the information requested by upstream maintainers.

>"But I found no a single hint that the problem cause is found and solved."

The upstream maintainer has previously explained that the reason the cause isn't found is because of the missing information requested in https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1178131/comments/61 .

>"See Bug Bug #1067222."

Unfortunately, asking one to read some other person's Expired report, would not terribly helpful here.

>"So testing again and again will not help anybody."

This would be inverted logic. Not performing the requested testing helps to ensure your bug falls out of relevance with upstream.

>"Please ask me when some related code has been changed."

Please see above.

Thank you for your understanding.

StefanF (stefan) wrote :

The issue is still reproduceable with the mainline Kernel 3.13, and the workaround with setpci is still working.

StefanF, thank you for testing hte mainline kernel 3.13. Could you please specify which version of 3.13 specifically you tested? If it's not the latest (now v3.13-rc5) could you please test with this and then provide the information the maintainer requested in https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1178131/comments/61 ?

StefanF (stefan) wrote :
StefanF (stefan) wrote :
StefanF (stefan) wrote :
StefanF (stefan) wrote :

The test #65 was with version v3.13-rc3. I repeated it with v3.13-rc5 with the same result. The installed packages were:

linux-headers-3.13.0-031300rc5_3.13.0-031300rc5.201312221635_all.deb
linux-headers-3.13.0-031300rc5-generic_3.13.0-031300rc5.201312221635_i386.deb
linux-image-3.13.0-031300rc5-generic_3.13.0-031300rc5.201312221635_i386.deb

I attached the output of dmesg, lspci -vv and acpidump, executed as root with no workaround applied and an SD card inserted.

Now I would like to see that somebody works on the problem or decides not to fix it. I like to help with additional tests to help. But I dont like to test any new kernel release if the same result is expected because no related code has been changed.

Vasiliy Tolstov (vase) wrote :

StefanF (stefan) , as i see ubuntu not very interesting to solve this bug. Nothing changed in past six months.

I think best off all - write to lkml or <email address hidden> and ask help from kernel devs.

P.S. I have this problem and want to say very big thanks for your workaround.

StefanF, thank you for for attaching the requested attachments. However, it was requested this is posted to the upstream report (not downstream), and not compressed (as compressing small attachments make it harder for folks to access your attachments).

Bjorn Helgaas (bjorn-helgaas) wrote :

StefanF, I took care of attaching these to the upstream report (https://bugzilla.kernel.org/show_bug.cgi?id=59311). Thanks a lot for collecting them. I apologize that I haven't had time to make progress on this issue.

The Fiddler (stapostol) wrote :

This bug is still present in Ubuntu 14.04 with both stock and 3.14 kernels.

Nils Sabelstrom (nilssab) wrote :

might this be a duplicate of this bug?
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1280020

it's a different acer device, but using the same SD controller from what I can find, according to that bugs comment thread the SD card reader works in 14.04 with 3.13.0-8-generic #28-Ubuntu SMP kernel.

I shall try on my own Acer V5-171 with a Broadcaom BCM57765/57785 asap

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

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.