Bug 40802
Summary: | Kernel does not detect JMicron card reader unless a card is inserted when the PCI bus is scanned | ||
---|---|---|---|
Product: | Drivers | Reporter: | rocko (rockorequin) |
Component: | PCI | Assignee: | drivers_pci (drivers_pci) |
Status: | RESOLVED CODE_FIX | ||
Severity: | normal | CC: | bjorn, drivers_mmc-sd |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 3.0.1 | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Attachments: |
dmesg log
acpidump lspci -vv |
Description
rocko
2011-08-10 08:26:28 UTC
Is this still a problem? If so, please attach a complete dmesg log here. If the device doesn't appear at all when no card is present, I assume there would have to be some sort of hotplug event when the card is inserted. Does it make any difference if you load pciehp before inserting the card? Created attachment 82221 [details]
dmesg log
Yes, it's still a problem with kernel 3.6, and loading pciehp doesn't help.
In the attached dmesg, I modprobed pciehp, inserted the card (which was not detected) then rescanned the PCI bus, at which point the card was detected.
The following reports look like the same issue: https://bugzilla.kernel.org/show_bug.cgi?id=16119 https://bugzilla.kernel.org/show_bug.cgi?id=44021 https://bugzilla.kernel.org/show_bug.cgi?id=43041 https://bugs.launchpad.net/ubuntu/+source/linux/+bug/258446 https://bugs.launchpad.net/ubuntu/+source/linux/+bug/995743 Several comments, e.g., https://bugs.launchpad.net/ubuntu/+source/linux/+bug/258446/comments/42, suggest that the "pciehp_force=1" module parameter fixes this. We recently merged a change related to that: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=87683e22c646e563061a91f4a0106e6913acebf8 Can you test a kernel that includes that change, e.g., current Linus kernel or v3.7-rc1 when it comes out in a week or so? Can you also attach the "lspci -vv" output? I expect the upstream bridge (00:1c.4) to show that it supports hotplug, and pciehp should handle that. Please also attach an acpidump, in the event that we're supposed to use ACPI hotplug (acpiphp) instead of PCIe native hotplug (pciehp). Created attachment 82481 [details]
acpidump
Created attachment 82491 [details]
lspci -vv
Attached lspci and acpidump.
The pciehp_force=1 option doesn't help in my case; in order to detect the reader, I still have to rescan the PCI bus when there is a card in the reader. The only time that the reader works as expected is if I have a card in the reader on reboot.
I'll certainly give 3.7-rc1 a go when it comes out and report back.
3.7-rc1 still doesn't detect the card until a rescan of the PCI bus. v3.12-rc1 contains many acpiphp updates, as well as fixes to the code that decides whether to use acpiphp or pciehp. Can you please retest with v3.12-rc1 or later, attach the complete dmesg log, and note whether this issue is resolved? I tried 3.12-rc2 and it *did* detect the card without me having to manually rescan the PCI bus! The system would only mount the card read-only, though. The read-only problem turned out to be unrelated - I needed to run fsck on the card, possibly because the card reader socket has become a bit dodgy and the card sometimes clicks in then pops out. After running fsck, the card mounts read/write, as expected. So I'd say the problem is completely resolved in 3.12, which is excellent! Thanks. |