sdhci driver doesn't recognize anymore my sd card reader
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
linux-source-2.6.17 (Ubuntu) |
Invalid
|
Undecided
|
Unassigned |
Bug Description
I am having a problem with the Texas Instrument card reader in my Acer Aspire 5024 notebook:
06:06.3 Mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller
Subsystem: Acer Incorporated [ALI] Unknown device 0080
Flags: bus master, medium devsel, latency 64, IRQ 11
Memory at c0206000 (32-bit, non-prefetchable) [size=8K]
Capabilities: [44] Power Management version 2
With dapper and kernel 2.6.15 everything was ok, and I got this messages from dmesg about the card reader:
[ 103.511766] sdhci: Secure Digital Host Controller Interface driver, 0.10
[ 103.511770] sdhci: Copyright(c) Pierre Ossman
[ 103.512172] ACPI: PCI Interrupt 0000:06:06.4[A] -> GSI 20 (level, low) -> IRQ 185
[ 103.566791] sdhci: ============== REGISTER DUMP ==============
[ 103.566799] sdhci: Sys addr: 0x00000000 | Version: 0x00008400
[ 103.566805] sdhci: Blk size: 0x00000000 | Blk cnt: 0x00000000
[ 103.566811] sdhci: Argument: 0x00000000 | Trn mode: 0x00000000
[ 103.566816] sdhci: Present: 0x00020000 | Host ctl: 0x00000000
[ 103.566822] sdhci: Power: 0x00000000 | Blk gap: 0x00000000
[ 103.566828] sdhci: Walk up: 0x00000000 | Clock: 0x00000002
[ 103.566834] sdhci: Timeout: 0x0000000e | Int stat: 0x00000000
[ 103.566840] sdhci: Int enab: 0x11ff00cf | Sig enab: 0x11ff00cf
[ 103.566846] sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
[ 103.566852] sdhci: Caps: 0x01821090 | Max curr: 0x00000000
[ 103.566854] sdhci: =======
[ 103.617034] mmc0: SDHCI at 0xc0209000 irq 185 DMA
[ 103.728998] sdhci: ============== REGISTER DUMP ==============
[ 103.729007] sdhci: Sys addr: 0x00000000 | Version: 0x00008400
[ 103.729013] sdhci: Blk size: 0x00000000 | Blk cnt: 0x00000000
[ 103.729019] sdhci: Argument: 0x00000000 | Trn mode: 0x00000000
[ 103.729033] sdhci: Present: 0x00020000 | Host ctl: 0x00000000
[ 103.729039] sdhci: Power: 0x00000000 | Blk gap: 0x00000000
[ 103.729045] sdhci: Walk up: 0x00000000 | Clock: 0x00000002
[ 103.729051] sdhci: Timeout: 0x0000000e | Int stat: 0x00000000
[ 103.729057] sdhci: Int enab: 0x11ff00cf | Sig enab: 0x11ff00cf
[ 103.729063] sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
[ 103.729069] sdhci: Caps: 0x01821090 | Max curr: 0x00000000
[ 103.729071] sdhci: =======
[ 103.779362] mmc1: SDHCI at 0xc0208c00 irq 185 DMA
[ 103.900073] sdhci: ============== REGISTER DUMP ==============
[ 103.900080] sdhci: Sys addr: 0x00000000 | Version: 0x00008400
[ 103.900086] sdhci: Blk size: 0x00000000 | Blk cnt: 0x00000000
[ 103.900092] sdhci: Argument: 0x00000000 | Trn mode: 0x00000000
[ 103.900098] sdhci: Present: 0x000a0000 | Host ctl: 0x00000000
[ 103.900104] sdhci: Power: 0x00000000 | Blk gap: 0x00000000
[ 103.900109] sdhci: Walk up: 0x00000000 | Clock: 0x00000002
[ 103.900115] sdhci: Timeout: 0x0000000e | Int stat: 0x00000000
[ 103.900121] sdhci: Int enab: 0x11ff00cf | Sig enab: 0x11ff00cf
[ 103.900127] sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
[ 103.900133] sdhci: Caps: 0x01821898 | Max curr: 0x00000000
[ 103.900135] sdhci: =======
[ 103.950385] mmc2: SDHCI at 0xc0208800 irq 185 DMA
Intead now on edgy with kernel 2.6.17 I get only (don't know if it is relevant):
[ 38.296478] sdhci: Secure Digital Host Controller Interface driver, 0.11
[ 38.296482] sdhci: Copyright(c) Pierre Ossman
[...]
[ 38.847183] mmc0: SDHCI at 0xc0209000 irq 177 PIO
[ 38.947311] mmc1: SDHCI at 0xc0208c00 irq 177 PIO
[ 39.047447] mmc2: SDHCI at 0xc0208800 irq 177 PIO
Note that the transfer mode has changed from DMA to PIO and ircq have changed too.
The modules loaded are the same in both cases:
sdhci 19200 0
mmc_core 40264 1 sdhci
When I insert an sd card in the reader, in dapper (I just tried with the live cd) I get this in dmesg:
[ 428.389961] mmcblk0: mmc2:494e SD 493568KiB
[ 428.389991] mmcblk0: p1
and the card is amutomatically mounted on my desktop
Nothings instead happens in edgy. I have read of similar problems of other users with different distros, some of them have been solved manually modprobing mmc_block module. But in Ubuntu, according to
http://
After rebuilding kernel 2.6.17 with sd debug turned on to, here's the additional output I get after enabling sdhci debug:
user@eagle:
[ 30.006250] sdhci: Secure Digital Host Controller Interface driver, 0.11
[ 30.006307] sdhci: Copyright(c) Pierre Ossman
[ 30.006389] sdhci [sdhci_probe()]: found at 0000:06:06.4
[ 30.006394] sdhci [sdhci_probe()]: found 3 slot(s)
[ 30.006522] sdhci [sdhci_
[ 30.056673] sdhci: ============== REGISTER DUMP ==============
[ 30.056681] sdhci: Sys addr: 0x00000000 | Version: 0x00008400
[ 30.056687] sdhci: Blk size: 0x00000000 | Blk cnt: 0x00000000
[ 30.056692] sdhci: Argument: 0x00000000 | Trn mode: 0x00000000
[ 30.056698] sdhci: Present: 0x00020000 | Host ctl: 0x00000000
[ 30.056703] sdhci: Power: 0x00000000 | Blk gap: 0x00000000
[ 30.056709] sdhci: Wake-up: 0x00000000 | Clock: 0x00000002
[ 30.056715] sdhci: Timeout: 0x0000000e | Int stat: 0x00000000
[ 30.056721] sdhci: Int enab: 0x11ff00cf | Sig enab: 0x11ff00cf
[ 30.056726] sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
[ 30.056732] sdhci: Caps: 0x01821090 | Max curr: 0x00000000
[ 30.056734] sdhci: =======
[ 30.107279] sdhci [sdhci_
[ 30.157354] sdhci: ============== REGISTER DUMP ==============
[ 30.157362] sdhci: Sys addr: 0x00000000 | Version: 0x00008400
[ 30.157368] sdhci: Blk size: 0x00000000 | Blk cnt: 0x00000000
[ 30.157373] sdhci: Argument: 0x00000000 | Trn mode: 0x00000000
[ 30.157379] sdhci: Present: 0x00020000 | Host ctl: 0x00000000
[ 30.157388] sdhci: Power: 0x00000000 | Blk gap: 0x00000000
[ 30.157393] sdhci: Wake-up: 0x00000000 | Clock: 0x00000002
[ 30.157399] sdhci: Timeout: 0x0000000e | Int stat: 0x00000000
[ 30.157405] sdhci: Int enab: 0x11ff00cf | Sig enab: 0x11ff00cf
[ 30.157411] sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
[ 30.157417] sdhci: Caps: 0x01821090 | Max curr: 0x00000000
[ 30.157418] sdhci: =======
[ 30.208811] sdhci [sdhci_
[ 30.258911] sdhci: ============== REGISTER DUMP ==============
[ 30.258919] sdhci: Sys addr: 0x00000000 | Version: 0x00008400
[ 30.258924] sdhci: Blk size: 0x00000000 | Blk cnt: 0x00000000
[ 30.258930] sdhci: Argument: 0x00000000 | Trn mode: 0x00000000
[ 30.258936] sdhci: Present: 0x000a0000 | Host ctl: 0x00000000
[ 30.258941] sdhci: Power: 0x00000000 | Blk gap: 0x00000000
[ 30.258947] sdhci: Wake-up: 0x00000000 | Clock: 0x00000002
[ 30.258952] sdhci: Timeout: 0x0000000e | Int stat: 0x00000000
[ 30.258959] sdhci: Int enab: 0x11ff00cf | Sig enab: 0x11ff00cf
[ 30.258964] sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
[ 30.258970] sdhci: Caps: 0x01821898 | Max curr: 0x00000000
[ 30.258972] sdhci: =======
[ 30.259211] sdhci [sdhci_
[ 30.313119] sdhci [sdhci_
[ 30.313392] sdhci [sdhci_
[ 30.314118] sdhci [sdhci_
[ 30.315113] sdhci [sdhci_
[ 30.315536] sdhci [sdhci_
[ 30.373014] sdhci [sdhci_
[ 30.377151] sdhci [sdhci_
[ 30.378005] sdhci [sdhci_
[ 30.379012] sdhci [sdhci_
[ 30.379295] sdhci [sdhci_
[ 30.379384] sdhci [sdhci_
[ 30.436911] sdhci [sdhci_
[ 30.441895] sdhci [sdhci_
[ 30.442231] sdhci [sdhci_
[ 30.442895] sdhci [sdhci_
[ 30.443892] sdhci [sdhci_
[ 30.444374] sdhci [sdhci_
[ 30.056889] mmc0: clock 0Hz busmode 1 powermode 0 cs 0 Vdd 0 width 0
[ 30.106840] mmc0: SDHCI at 0xc0209000 irq 177 PIO
[ 30.106900] mmc0: clock 0Hz busmode 1 powermode 1 cs 0 Vdd 21 width 0
[ 30.157425] mmc0: clock 62500Hz busmode 1 powermode 2 cs 0 Vdd 21 width 0
[ 30.157581] mmc1: clock 0Hz busmode 1 powermode 0 cs 0 Vdd 0 width 0
[ 30.207532] mmc1: SDHCI at 0xc0208c00 irq 177 PIO
[ 30.207591] mmc0: clock 62500Hz busmode 1 powermode 2 cs 1 Vdd 21 width 0
[ 30.258981] mmc0: starting CMD0 arg 00000000 flags 00000040
[ 30.259075] mmc2: clock 0Hz busmode 1 powermode 0 cs 0 Vdd 0 width 0
[ 30.259216] mmc0: req done (CMD0): 1/0/0: 00000000 00000000 00000000 00000000
[ 30.309027] mmc2: SDHCI at 0xc0208800 irq 177 PIO
[ 30.310133] mmc0: clock 62500Hz busmode 1 powermode 2 cs 0 Vdd 21 width 0
[ 30.312135] mmc0: starting CMD55 arg 00000000 flags 00000015
[ 30.313126] mmc0: req done (CMD55): 1/0/0: 00000000 00000000 00000000 00000000
[ 30.313131] mmc0: starting CMD55 arg 00000000 flags 00000015
[ 30.313398] mmc0: req done (CMD55): 1/0/0: 00000000 00000000 00000000 00000000
[ 30.313413] mmc0: starting CMD55 arg 00000000 flags 00000015
[ 30.314123] mmc0: req done (CMD55): 1/0/0: 00000000 00000000 00000000 00000000
[ 30.314128] mmc0: starting CMD55 arg 00000000 flags 00000015
[ 30.315119] mmc0: req done (CMD55): 1/0/0: 00000000 00000000 00000000 00000000
[ 30.315123] mmc0: starting CMD1 arg 00000000 flags 00000061
[ 30.315542] mmc0: req done (CMD1): 1/0/0: 00000000 00000000 00000000 00000000
[ 30.315558] mmc0: clock 0Hz busmode 1 powermode 0 cs 0 Vdd 0 width 0
[ 30.365510] mmc1: clock 0Hz busmode 1 powermode 1 cs 0 Vdd 21 width 0
[ 30.367041] mmc1: clock 62500Hz busmode 1 powermode 2 cs 0 Vdd 21 width 0
[ 30.370021] mmc1: clock 62500Hz busmode 1 powermode 2 cs 1 Vdd 21 width 0
[ 30.372016] mmc1: starting CMD0 arg 00000000 flags 00000040
[ 30.373019] mmc1: req done (CMD0): 1/0/0: 00000000 00000000 00000000 00000000
[ 30.375012] mmc1: clock 62500Hz busmode 1 powermode 2 cs 0 Vdd 21 width 0
[ 30.377009] mmc1: starting CMD55 arg 00000000 flags 00000015
[ 30.377156] mmc1: req done (CMD55): 1/0/0: 00000000 00000000 00000000 00000000
[ 30.377172] mmc1: starting CMD55 arg 00000000 flags 00000015
[ 30.378011] mmc1: req done (CMD55): 1/0/0: 00000000 00000000 00000000 00000000
[ 30.378015] mmc1: starting CMD55 arg 00000000 flags 00000015
[ 30.379018] mmc1: req done (CMD55): 1/0/0: 00000000 00000000 00000000 00000000
[ 30.379024] mmc1: starting CMD55 arg 00000000 flags 00000015
[ 30.379301] mmc1: req done (CMD55): 1/0/0: 00000000 00000000 00000000 00000000
[ 30.379327] mmc1: starting CMD1 arg 00000000 flags 00000061
[ 30.379389] mmc1: req done (CMD1): 1/0/0: 00000000 00000000 00000000 00000000
[ 30.379394] mmc1: clock 0Hz busmode 1 powermode 0 cs 0 Vdd 0 width 0
[ 30.429346] mmc2: clock 0Hz busmode 1 powermode 1 cs 0 Vdd 21 width 0
[ 30.430921] mmc2: clock 93750Hz busmode 1 powermode 2 cs 0 Vdd 21 width 0
[ 30.433917] mmc2: clock 93750Hz busmode 1 powermode 2 cs 1 Vdd 21 width 0
[ 30.435915] mmc2: starting CMD0 arg 00000000 flags 00000040
[ 30.436918] mmc2: req done (CMD0): 1/0/0: 00000000 00000000 00000000 00000000
[ 30.438908] mmc2: clock 93750Hz busmode 1 powermode 2 cs 0 Vdd 21 width 0
[ 30.440899] mmc2: starting CMD55 arg 00000000 flags 00000015
[ 30.441901] mmc2: req done (CMD55): 1/0/0: 00000000 00000000 00000000 00000000
[ 30.441905] mmc2: starting CMD55 arg 00000000 flags 00000015
[ 30.442236] mmc2: req done (CMD55): 1/0/0: 00000000 00000000 00000000 00000000
[ 30.442251] mmc2: starting CMD55 arg 00000000 flags 00000015
[ 30.442901] mmc2: req done (CMD55): 1/0/0: 00000000 00000000 00000000 00000000
[ 30.442905] mmc2: starting CMD55 arg 00000000 flags 00000015
[ 30.443898] mmc2: req done (CMD55): 1/0/0: 00000000 00000000 00000000 00000000
[ 30.443902] mmc2: starting CMD1 arg 00000000 flags 00000061
[ 30.444380] mmc2: req done (CMD1): 1/0/0: 00000000 00000000 00000000 00000000
[ 30.444398] mmc2: clock 0Hz busmode 1 powermode 0 cs 0 Vdd 0 width 0
Changed in linux: | |
status: | Incomplete → Fix Released |
Ok, reading here (http:// mmc.drzeus. cx/wiki/ Controllers/ TexasInstrument s/FlashMedia)
I found a partial workaround using
sudo setpci -s 06.3 4c=0x22
Then when I insert the card the driver react again to the insertion:
[ 156.431818] mmcblk0: mmc2:494e SD 493568KiB
[ 156.431846] mmcblk0: p1
However the card is not automatically mounted as it was before in Dapper, so maybe there's something else related. And however it is stil open the question why in dapper I didn't need to use setpci (maybe it was hardcoded in some way?)