diff mbox

Dell Vostro 3550: pci_hotplug+acpiphp require 'pcie_aspm=force' on kernel command-line for hotplug to work

Message ID 50EDF8FE.6040607@fold.natur.cuni.cz (mailing list archive)
State New, archived
Delegated to: Bjorn Helgaas
Headers show

Commit Message

Martin Mokrejs Jan. 9, 2013, 11:10 p.m. UTC
Hi,
  I am following up on a former thread
Re: 3.2.11: PCI Express card cannot be re-detected withing cca 60sec timeframe
about the same issue. I think I found some new info while playing with 3.7.1 kernel.
It happened to me that my hotplug of express cards stopped working so it made me to
to dive in a figure out what driver did I do to my .config, and what combinations
of drivers and kernel command-line parameters work and which not. This email will
cover just one case.

On this Dell Vostro 3550 express card slot works if kernel is without pciehp
altogether and pci_hotplug+acpiphp are loaded as modules later on. The problem
is that I must use pcie_aspm=off. Below is hopefully an answer why. I can provide
dmesg/interrupts/config.gz/lsusb/lspci for each combination I tried. Here I have
pasted just bits which I found only directly related. Please bear in mind previously
it seemed that the hardware has broken PresDet hadling and therefore I faced
'Surprise removal' meesages from pciehp. This email is however about acpiphp
and you can see that actually PresDet flag contains correct values. But I want
to avoid here showing that pciehp has a bug. That will come in another thread. ;-)

The kernel binary has no pciehp at all but pci_hotplug and acpiphp are available as
modules. I load them manually after saving dmesg/lspci/lsusb/interrupts/.config into
a separate directory. I then poke through the collected data and run diff. 
I did everything under two different BIOS configs. I suspected the media
card reader somehow interferes with the express slot card detection because it
was sometime detected on the ehci but when I (un)plugged the express card into
its slot. Am not sure yet, but FYI what is avalable for you off-the-list ;-)
# du -sh MediaCard_reader_*
12M     MediaCard_reader_disabled_in_BIOS
7.5M    MediaCard_reader_enabled_in_BIOS
#


And now the results:




Thanks
Martin
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Yinghai Lu Jan. 10, 2013, 12:40 a.m. UTC | #1
On Wed, Jan 9, 2013 at 3:10 PM, Martin Mokrejs
<mmokrejs@fold.natur.cuni.cz> wrote:
> - pci0000:00: Requesting ACPI _OSC control (0x1d)
> - pci0000:00: ACPI _OSC control (0x19) granted
> + pci0000:00: Unable to request _OSC control (_OSC support mask: 0x19)

according to _OSC related game in acpi_pci_root_add()
it will query_osc_support with flags |=
                                OSC_EXT_PCI_CONFIG_SUPPORT \
                                | OSC_ACTIVE_STATE_PWR_SUPPORT \
                                | OSC_CLOCK_PWR_CAPABILITY_SUPPORT \
                                | OSC_MSI_SUPPORT
and the firmware should not return ACPI FAILURE, and if it return
failure, flags will get reset.

then if and only if flags keep there five bits, kernel will try to set control
to _OSC for
                        OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL
                        | OSC_PCI_EXPRESS_NATIVE_HP_CONTROL
                        | OSC_PCI_EXPRESS_PME_CONTROL;
and may be AER.

that will let pciehp own the device <pciehp will claim that later...>

in acpiphp there is module that will check if port is owned by pciehp,
and it will bail out early.
in device_is_managed_by_native_pciehp...

pcie_aspm=off will stop all _osc setting, like pciehp, pme and aer.

the checking in acpiphp is introduced by:
commit 0d52f54e2ef64c189dedc332e680b2eb4a34590a
Author: Rafael J. Wysocki <rjw@sisk.pl>
Date:   Sat Oct 22 00:43:38 2011 +0200

    PCI / ACPI: Make acpiphp ignore root bridges using PCIe native hotplug

so it is a regression.

Rafael,

can you fix that? otherwise user will have specify weird
"pcie_aspm=off" to make acpiphp working.

looks like we need to have other way to do handshaking between pciehp
and acpiphp.

Thanks

Yinghai
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Martin Mokrejs Jan. 10, 2013, 2:04 a.m. UTC | #2
Hi Yinghai,
  thank you for you answer, it is way too late here but a quick answer ...

Yinghai Lu wrote:
> On Wed, Jan 9, 2013 at 3:10 PM, Martin Mokrejs
> <mmokrejs@fold.natur.cuni.cz> wrote:
>> - pci0000:00: Requesting ACPI _OSC control (0x1d)
>> - pci0000:00: ACPI _OSC control (0x19) granted
>> + pci0000:00: Unable to request _OSC control (_OSC support mask: 0x19)
> 
> according to _OSC related game in acpi_pci_root_add()
> it will query_osc_support with flags |=
>                                 OSC_EXT_PCI_CONFIG_SUPPORT \
>                                 | OSC_ACTIVE_STATE_PWR_SUPPORT \
>                                 | OSC_CLOCK_PWR_CAPABILITY_SUPPORT \
>                                 | OSC_MSI_SUPPORT
> and the firmware should not return ACPI FAILURE, and if it return
> failure, flags will get reset.
> 
> then if and only if flags keep there five bits, kernel will try to set control
> to _OSC for
>                         OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL
>                         | OSC_PCI_EXPRESS_NATIVE_HP_CONTROL
>                         | OSC_PCI_EXPRESS_PME_CONTROL;
> and may be AER.
> 
> that will let pciehp own the device <pciehp will claim that later...>
> 
> in acpiphp there is module that will check if port is owned by pciehp,
> and it will bail out early.
> in device_is_managed_by_native_pciehp...
> 
> pcie_aspm=off will stop all _osc setting, like pciehp, pme and aer.
> 
> the checking in acpiphp is introduced by:
> commit 0d52f54e2ef64c189dedc332e680b2eb4a34590a
> Author: Rafael J. Wysocki <rjw@sisk.pl>
> Date:   Sat Oct 22 00:43:38 2011 +0200
> 
>     PCI / ACPI: Make acpiphp ignore root bridges using PCIe native hotplug
> 
> so it is a regression.

It is true that since the time around 3.3.x when I reported the problem I had in
grub.conf kept pcie_aspm=force. And as I fiddled with .config now for 3.7.1 the
hotplug stopped working. Sure, because I used pciehp so far, now we know. ;-) Only
now I realized that if I switch to acpiphp, the 'Surprise removal' message is gone
(acpiphp maybe does not even try to print something similar to it?). But as you see,
I convinced myself the BIOS/hardware is correct and does change PresDet properly
under acpiphp. But in one case I saw a change between two seemingly same states,
when in lspci output a difference was in "BadDLLP", whatever that is. Just in case
you come across that in the diff output. I wish I could prove with contents that
the builtin EHCI on the C6/C200 chip interferes with the express card slot and the
card reader. That was the reason why I disabled the CardReader in BIOS, because
from the diffs you can see the card reader was detected only after I plugged in
an express card. I speculate this could be also why the PresDet behaves differently
with various express cards.

> 
> Rafael,
> 
> can you fix that? otherwise user will have specify weird
> "pcie_aspm=off" to make acpiphp working.
> 
> looks like we need to have other way to do handshaking between pciehp
> and acpiphp.

I am pushing now out the collected files. I am terribly slow in making up the other bug
reports. I sent out already those bugs reported by kmemleak but there were other crashes.
So, if you have the time; do something along:


wget 195.113.57.32/~mmokrejs/tmp/PCIe_hotplug_scenarios.tar.bz2
unpack
ls -latr foo
ls -latr bar

The names of directories are long/ugly but should be clear also to you what I did.

for f in dmesg.notiming lspci_vvxx interrupts; do diff -u -w foo/$f bar/$f | less; done

You will see that when I enabled pciehp (dirnames with HOTPLUG_PCI_PCIE in the name)
the PresDet+ is not changed to PresDet- when a card is removed. But it differs what card
was removed. This seems to be broken only for the USB3 card based on the NEC chip.
It looks the PresDet issue does NOT happen for OHCI firewire card, nor PL2303 based
serial card (for the Prolific I did not collect the data).

Well, if you don't have time I will poke through during next days. But you might be faster
in interpreting the diffs. Just follow the directory timestamps to have least diff
output. Compare states when a slot was with a card plugged in together. Similarly
look for those dirnames which end with "card_unplugged" to see whether the PresDet and
were all set to minus.
Oh, yeah, I think with 3.[34] kernel series the PresDet on the "Changed:" line
from lspci did not follow the actual change, inferable from the SltSta line
(thread "linux-3.4-rc5: eSATA Sil3132 ExpressCard removal results in warn_slowpath_common").
Not sure if it still happens with 3.7.1, you will see. ;-)

Finally, I have no idea what was changed in the new BIOS release, now I have A11, previously
had A9 and A10. I did not observe any fix in that but as I was using the pciehp module
maybe I could not even realize PresDet is working now. But why not for all cards, thats is
still unclear.

Cheers,
Martin
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rafael Wysocki Jan. 11, 2013, 9:11 p.m. UTC | #3
On Thursday, January 10, 2013 03:04:26 AM Martin Mokrejs wrote:
> Hi Yinghai,
>   thank you for you answer, it is way too late here but a quick answer ...
> 
> Yinghai Lu wrote:
> > On Wed, Jan 9, 2013 at 3:10 PM, Martin Mokrejs
> > <mmokrejs@fold.natur.cuni.cz> wrote:
> >> - pci0000:00: Requesting ACPI _OSC control (0x1d)
> >> - pci0000:00: ACPI _OSC control (0x19) granted
> >> + pci0000:00: Unable to request _OSC control (_OSC support mask: 0x19)
> > 
> > according to _OSC related game in acpi_pci_root_add()
> > it will query_osc_support with flags |=
> >                                 OSC_EXT_PCI_CONFIG_SUPPORT \
> >                                 | OSC_ACTIVE_STATE_PWR_SUPPORT \
> >                                 | OSC_CLOCK_PWR_CAPABILITY_SUPPORT \
> >                                 | OSC_MSI_SUPPORT
> > and the firmware should not return ACPI FAILURE, and if it return
> > failure, flags will get reset.
> > 
> > then if and only if flags keep there five bits, kernel will try to set control
> > to _OSC for
> >                         OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL
> >                         | OSC_PCI_EXPRESS_NATIVE_HP_CONTROL
> >                         | OSC_PCI_EXPRESS_PME_CONTROL;
> > and may be AER.
> > 
> > that will let pciehp own the device <pciehp will claim that later...>
> > 
> > in acpiphp there is module that will check if port is owned by pciehp,
> > and it will bail out early.
> > in device_is_managed_by_native_pciehp...
> > 
> > pcie_aspm=off will stop all _osc setting, like pciehp, pme and aer.
> > 
> > the checking in acpiphp is introduced by:
> > commit 0d52f54e2ef64c189dedc332e680b2eb4a34590a
> > Author: Rafael J. Wysocki <rjw@sisk.pl>
> > Date:   Sat Oct 22 00:43:38 2011 +0200
> > 
> >     PCI / ACPI: Make acpiphp ignore root bridges using PCIe native hotplug
> > 
> > so it is a regression.
> 
> It is true that since the time around 3.3.x when I reported the problem I had in
> grub.conf kept pcie_aspm=force.

Have you tried pcie_ports=compat?

This is the command line option to use in such cases, in theory.

Thanks,
Rafael
Bjorn Helgaas March 6, 2013, 4:09 a.m. UTC | #4
On Wed, Jan 9, 2013 at 4:10 PM, Martin Mokrejs
<mmokrejs@fold.natur.cuni.cz> wrote:
> Hi,
>   I am following up on a former thread
> Re: 3.2.11: PCI Express card cannot be re-detected withing cca 60sec timeframe
> about the same issue. I think I found some new info while playing with 3.7.1 kernel.
> It happened to me that my hotplug of express cards stopped working so it made me to
> to dive in a figure out what driver did I do to my .config, and what combinations
> of drivers and kernel command-line parameters work and which not. This email will
> cover just one case.
>
> On this Dell Vostro 3550 express card slot works if kernel is without pciehp
> altogether and pci_hotplug+acpiphp are loaded as modules later on. The problem
> is that I must use pcie_aspm=off.

I confess I am completely bewildered here.  Something is clearly badly
broken, but I'm having a hard time figuring out exactly what it is.  I
think I'm overwhelmed by all the data :)

From your previous "3.2.11: PCI Express card cannot be re-detected
withing cca 60sec timeframe" thread, I think:

1) With pciehp, insertion and removal of an NEC uPD720200 USB3.0 card
doesn't work correctly [1].  The insertion/removal events don't seem
to be detected immediately.
2) Insertion/removal of firewire card works correctly [2]
3) Insertion/removal of AXAGO ECA-SP serial/parallel card works correctly [3]
4) When the xhci driver is not loaded, insertion/removal events of the
NEC USB3.0 card *are* detected correctly [4]

The ExpressCard slot is below the 00:1c.7 root port, and this port
supports native PCIe hotplug.  When CONFIG_HOTPLUG_PCI_PCIE=y, Linux
requests control over PCIe native hotplug, and I think your BIOS
grants it.

In this thread ("Dell Vostro 3550: pci_hotplug+acpiphp require
'pcie_aspm=force' on kernel command-line for hotplug to work"), I
think you are saying that if you disable pciehp and use acpiphp and
the "pcie_aspm=off" parameter, the ExpressCard slot works perfectly.

But I think it's a bad idea to go down the road of using acpiphp.
Native PCIe hotplug (pciehp) is the default when it is supported, and
as far as I can tell, it *is* supported on this system.  If we had
some indication that it's not supported, e.g., if the BIOS declined to
grant us control over PCIe native hotplug, then of course we would
fall back to using acpiphp.  But I don't think we do, so we should
figure out how to make pciehp work.

If it's really true that pciehp works perfectly except when xhci is
loaded, that seems like a good clue, and we should look for some
interaction between xhci and pciehp.

Martin, can you confirm my assumptions above or correct any mistakes I made?

Bjorn


[1] http://marc.info/?l=linux-pci&m=133236584826563&w=1
[2] http://marc.info/?l=linux-pci&m=133457374507707&w=1
[3] http://marc.info/?l=linux-pci&m=133460527222076&w=1
[4] http://marc.info/?l=linux-kernel&m=133547823904339&w=1
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Martin Mokrejs March 6, 2013, 10:30 a.m. UTC | #5
Hi Bjorn,
  thank you for your time on this issue.

Bjorn Helgaas wrote:
> On Wed, Jan 9, 2013 at 4:10 PM, Martin Mokrejs
> <mmokrejs@fold.natur.cuni.cz> wrote:
>> Hi,
>>   I am following up on a former thread
>> Re: 3.2.11: PCI Express card cannot be re-detected withing cca 60sec timeframe
>> about the same issue. I think I found some new info while playing with 3.7.1 kernel.
>> It happened to me that my hotplug of express cards stopped working so it made me to
>> to dive in a figure out what driver did I do to my .config, and what combinations
>> of drivers and kernel command-line parameters work and which not. This email will
>> cover just one case.
>>
>> On this Dell Vostro 3550 express card slot works if kernel is without pciehp
>> altogether and pci_hotplug+acpiphp are loaded as modules later on. The problem
>> is that I must use pcie_aspm=off.
> 
> I confess I am completely bewildered here.  Something is clearly badly
> broken, but I'm having a hard time figuring out exactly what it is.  I
> think I'm overwhelmed by all the data :)
> 
>>From your previous "3.2.11: PCI Express card cannot be re-detected
> withing cca 60sec timeframe" thread, I think:
> 
> 1) With pciehp, insertion and removal of an NEC uPD720200 USB3.0 card
> doesn't work correctly [1].  The insertion/removal events don't seem
> to be detected immediately.

... except for the FireWire, serial/parallel and eSATA port-providing cards in 2) and 3).
The one doing SATA is based on Silicon Image3132 chip, using sata_sil24
driver.

> 2) Insertion/removal of firewire card works correctly [2]

Yes.

> 3) Insertion/removal of AXAGO ECA-SP serial/parallel card works correctly [3]

Yes.

> 4) When the xhci driver is not loaded, insertion/removal events of the
> NEC USB3.0 card *are* detected correctly [4]

And my suspicion was that when a USB device is attached to the
ExpressCard USB3.0 controller the "usb-storage?" or whichever driver"
realizes much earlier (in time) that the ExpressCard is gone and system thus
behaves properly. I think something is delayed by xhci driver until a poll
happens after every 60 seconds. With usb-storage the change gets visible
"immediately". Or, the card is not PCI or PCIe hotplug capable [6]?
Could that be the difference in behior?


> 
> The ExpressCard slot is below the 00:1c.7 root port, and this port
> supports native PCIe hotplug.  When CONFIG_HOTPLUG_PCI_PCIE=y, Linux
> requests control over PCIe native hotplug, and I think your BIOS
> grants it.
> 
> In this thread ("Dell Vostro 3550: pci_hotplug+acpiphp require
> 'pcie_aspm=force' on kernel command-line for hotplug to work"), I
> think you are saying that if you disable pciehp and use acpiphp and
> the "pcie_aspm=off" parameter, the ExpressCard slot works perfectly.
> 
> But I think it's a bad idea to go down the road of using acpiphp.

Unfortunately I was forced to switch to acpiphp because commit
0d52f54e2ef64c189dedc332e680b2eb4a34590a (as diagnosed by Yinghai)
becuase pciehp stopped working (although it worked badly anyways).
The commit went in about 3.5 kernel. For me, practially I had to switch
from "pcie_aspm=force" (kernels 3.2 - 3.4) to "pcie_aspm=off" (3.7 for sure).
See the note Yijing in [5].

> Native PCIe hotplug (pciehp) is the default when it is supported, and
> as far as I can tell, it *is* supported on this system.  If we had
> some indication that it's not supported, e.g., if the BIOS declined to
> grant us control over PCIe native hotplug, then of course we would
> fall back to using acpiphp.  But I don't think we do, so we should
> figure out how to make pciehp work.

I do not understand the diffs between PCI hotplug, PCIe hotplug and their
requriements by pciehp versus acpiphp so do not want to comment on that.
I just linked to Yijing's comments in other threads [5, 6] and judge
what is more generic option.

Yighai in the 3.2.x thread postulated it is a BIOS or silicon bug
incorrectly providing PresDet status. I was glad that I can show
that with acpiphp the PresDet is *always* correct (3.7. kernel)
*provided* I disabled MediaCard reader in BIOS.


So although I do not believe into a hardware bug in case of PresDet reporting
I smell there is one in cross-interaction between ExpressCard slot,
EHCI port and MediaCard reader (via EHCI as well), all hooked up to SandyBridge
C6/C200 intel chip. What I saw is that the MediaCard reader gets detected when
an Expresscard is plugged into its slot (that is, much later after a bootup, and
triggered only by express card insertion). I speculate further that the EHCI port
sometimes resets again just due to some ExpressCard interference. I reported such
problems in the past on usb mailing list we could not make any conclusion
out of it except that my external USB hub might be bad. Buying a new
one did not help. Instead, I disabled the MediaCard reader in BIOS.
Note: My motherboard was already exchanged and also the ExpressCard metalic
slot thing.

> 
> If it's really true that pciehp works perfectly except when xhci is
> loaded, that seems like a good clue, and we should look for some
> interaction between xhci and pciehp.

And also, why is presence of Firewire, RS232/LPT and sata_sil24 cards is
reported correctly by pciehp while not NEC-based USB3 card.

The (mis)behavior with the USB3 card was that it's removal was not notified.
On subsequent re-insertion of the card the software status bits were
wrong and pciehp reported Surprise removal. The bits were not adjusted
properly (I am intentionally not saying they should have been reset).
If I again unplugged the card, the PresDet correctly reported the card
was just removed. In other words, every second (even) removal of a card resulted
in correct slot status values reported. On every odd removal, the status
reported by pciehp was wrong.

> 
> Martin, can you confirm my assumptions above or correct any mistakes I made?

Several questions I had were never answered.

Why is the IRQ40 not reported in pciehp (see the original message in thsi thread).
Because it is really not used, compared to pciehp?

Is acpiphp capable reporting Surprise removal like pciehp does or is acpiphp silent
just because it does not print a similar message?

sata_sil24 should not be allowed to bind to newly hotplugged controller
too quickly because sometimes the card slips out immediately. A delay of 6 seconds
would be helpful to prevent eventual Oops, as shown in kernel timings in this email
thread (nicely colored at https://patchwork.kernel.org/patch/1957681/, btw).

Could the CorrErr+ device status bits prevent PresDet change from PresDet+ to PresDet-?

Once I saw the "Changed: MRL. PresDet. LinkState." line in lspci output under SltSta:
reports badly PresDet difference while SltSta: Status: line itself reports correct current
value. How is this value determined?

In the original email in this thread I showed down below from
"And showing, that acpiphp works here while 'pcie_aspm=off':" lien that acpiphp
also reports badly PresDet when the MediaCardReader is enabled in BIOS. I think
acpiphp driver should complain if there are conflicting values. For example, is it
meaningful to see in lspci output the following: "Changed: MRL- PresDet- LinkState+"?
From "SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-" we know
the card is in the slot so why is the "Changed: line summary wrong?
Why does kernel claim the card has a virtual ROM after hotplug while coldplugged
card reports "Expansion ROM at f6c00000 [disabled] [size=512K]"? Why the differences
in cache line sizes, etc? Simply, why do not both scenarios lead to exactly same card
configuration?



> 
> Bjorn
> 
> 
> [1] http://marc.info/?l=linux-pci&m=133236584826563&w=1
> [2] http://marc.info/?l=linux-pci&m=133457374507707&w=1
> [3] http://marc.info/?l=linux-pci&m=133460527222076&w=1
> [4] http://marc.info/?l=linux-kernel&m=133547823904339&w=1
> 

[5] http://marc.info/?l=linux-kernel&m=135928915003566&w=4
[6] http://marc.info/?l=linux-kernel&m=135937601131152&w=4



I hope I made things a bit clearer.
Martin
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Martin Mokrejs March 6, 2013, 10:32 a.m. UTC | #6
Looks I never answered this ... :(

Rafael J. Wysocki wrote:
> On Thursday, January 10, 2013 03:04:26 AM Martin Mokrejs wrote:
>> Hi Yinghai,
>>   thank you for you answer, it is way too late here but a quick answer ...
>>
>> Yinghai Lu wrote:
>>> On Wed, Jan 9, 2013 at 3:10 PM, Martin Mokrejs
>>> <mmokrejs@fold.natur.cuni.cz> wrote:
>>>> - pci0000:00: Requesting ACPI _OSC control (0x1d)
>>>> - pci0000:00: ACPI _OSC control (0x19) granted
>>>> + pci0000:00: Unable to request _OSC control (_OSC support mask: 0x19)
>>>
>>> according to _OSC related game in acpi_pci_root_add()
>>> it will query_osc_support with flags |=
>>>                                 OSC_EXT_PCI_CONFIG_SUPPORT \
>>>                                 | OSC_ACTIVE_STATE_PWR_SUPPORT \
>>>                                 | OSC_CLOCK_PWR_CAPABILITY_SUPPORT \
>>>                                 | OSC_MSI_SUPPORT
>>> and the firmware should not return ACPI FAILURE, and if it return
>>> failure, flags will get reset.
>>>
>>> then if and only if flags keep there five bits, kernel will try to set control
>>> to _OSC for
>>>                         OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL
>>>                         | OSC_PCI_EXPRESS_NATIVE_HP_CONTROL
>>>                         | OSC_PCI_EXPRESS_PME_CONTROL;
>>> and may be AER.
>>>
>>> that will let pciehp own the device <pciehp will claim that later...>
>>>
>>> in acpiphp there is module that will check if port is owned by pciehp,
>>> and it will bail out early.
>>> in device_is_managed_by_native_pciehp...
>>>
>>> pcie_aspm=off will stop all _osc setting, like pciehp, pme and aer.
>>>
>>> the checking in acpiphp is introduced by:
>>> commit 0d52f54e2ef64c189dedc332e680b2eb4a34590a
>>> Author: Rafael J. Wysocki <rjw@sisk.pl>
>>> Date:   Sat Oct 22 00:43:38 2011 +0200
>>>
>>>     PCI / ACPI: Make acpiphp ignore root bridges using PCIe native hotplug
>>>
>>> so it is a regression.
>>
>> It is true that since the time around 3.3.x when I reported the problem I had in
>> grub.conf kept pcie_aspm=force.
> 
> Have you tried pcie_ports=compat?
> 
> This is the command line option to use in such cases, in theory.

No, I did not know about this option. I can redo some tests if you want.

Martin
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Bjorn Helgaas March 6, 2013, 9:32 p.m. UTC | #7
[+cc Sarah because problem only seems to happen with xhci.  I'm
assuming this is a pciehp issue for now]

On Wed, Mar 6, 2013 at 3:30 AM, Martin Mokrejs
<mmokrejs@fold.natur.cuni.cz> wrote:
> Hi Bjorn,
>   thank you for your time on this issue.
>
> Bjorn Helgaas wrote:
>> On Wed, Jan 9, 2013 at 4:10 PM, Martin Mokrejs
>> <mmokrejs@fold.natur.cuni.cz> wrote:
>>> Hi,
>>>   I am following up on a former thread
>>> Re: 3.2.11: PCI Express card cannot be re-detected withing cca 60sec timeframe
>>> about the same issue. I think I found some new info while playing with 3.7.1 kernel.
>>> It happened to me that my hotplug of express cards stopped working so it made me to
>>> to dive in a figure out what driver did I do to my .config, and what combinations
>>> of drivers and kernel command-line parameters work and which not. This email will
>>> cover just one case.
>>>
>>> On this Dell Vostro 3550 express card slot works if kernel is without pciehp
>>> altogether and pci_hotplug+acpiphp are loaded as modules later on. The problem
>>> is that I must use pcie_aspm=off.
>>
>> I confess I am completely bewildered here.  Something is clearly badly
>> broken, but I'm having a hard time figuring out exactly what it is.  I
>> think I'm overwhelmed by all the data :)
>>
>>>From your previous "3.2.11: PCI Express card cannot be re-detected
>> withing cca 60sec timeframe" thread, I think:
>>
>> 1) With pciehp, insertion and removal of an NEC uPD720200 USB3.0 card
>> doesn't work correctly [1].  The insertion/removal events don't seem
>> to be detected immediately.
>
> ... except for the FireWire, serial/parallel and eSATA port-providing cards in 2) and 3).
> The one doing SATA is based on Silicon Image3132 chip, using sata_sil24
> driver.
>
>> 2) Insertion/removal of firewire card works correctly [2]
>
> Yes.
>
>> 3) Insertion/removal of AXAGO ECA-SP serial/parallel card works correctly [3]
>
> Yes.
>
>> 4) When the xhci driver is not loaded, insertion/removal events of the
>> NEC USB3.0 card *are* detected correctly [4]
>
> And my suspicion was that when a USB device is attached to the
> ExpressCard USB3.0 controller the "usb-storage?" or whichever driver"
> realizes much earlier (in time) that the ExpressCard is gone and system thus
> behaves properly. I think something is delayed by xhci driver until a poll
> happens after every 60 seconds. With usb-storage the change gets visible
> "immediately".

I'm going to ignore this speculation about xhci and other drivers for
now and see if we can just get pciehp to work.  We need to reduce the
number of variables here.

I opened https://bugzilla.kernel.org/show_bug.cgi?id=54921
"pciehp/xhci ExpressCard failure on Dell Vostro 3550" for this issue.

> Or, the card is not PCI or PCIe hotplug capable [6]?
> Could that be the difference in behior?

All ExpressCards should support hotplug.  The hotplug support is in
the root port and other circuitry on the motherboard.

>> But I think it's a bad idea to go down the road of using acpiphp.
>
> Unfortunately I was forced to switch to acpiphp because commit
> 0d52f54e2ef64c189dedc332e680b2eb4a34590a (as diagnosed by Yinghai)
> becuase pciehp stopped working (although it worked badly anyways).

I understand you have to use acpiphp to make things work right now.
But I think we can make pciehp work, and I think that's what distros
will want to use in this situation, so that's what I want to debug.

As background for the whole collection of hotplug drivers we have,
here's my understanding of the history:

1) Originally there was no standard for PCI hotplug hardware, and we
have drivers like cpqphp, ibmphp, etc. to deal with various hardware
designs.

2) ACPI defined an abstract hotplug model so an OS can have a single
driver, e.g., acpiphp, for that model, and the BIOS can map the
abstract model to various hardware designs.

3) PCIe defined a single hardware model, so an OS can have a single
driver, e.g., pciehp.  ACPI is not really involved here except that
the OS has to ask the BIOS for permission to use this native hotplug
driver.

Many machines, including yours, support both ACPI (acpiphp) and PCIe
native (pciehp) hotplug so they can run both old OSes that don't have
pciehp, and newer OSes that prefer to use pciehp.

> Yighai in the 3.2.x thread postulated it is a BIOS or silicon bug
> incorrectly providing PresDet status. I was glad that I can show
> that with acpiphp the PresDet is *always* correct (3.7. kernel)
> *provided* I disabled MediaCard reader in BIOS.

Can you build a v3.9-rc1 kernel with this config:

  CONFIG_HOTPLUG_PCI_PCIE=y
  CONFIG_HOTPLUG_PCI_ACPI=n
  CONFIG_USB_XHCI_HCD=n

I want to use pciehp, not acpiphp, and leave the xhci driver out of
the picture for now.  Boot it with pciehp.pciehp_debug=1 and the
ExpressCard slot empty, and run this command:

  # while true; do echo -n "$(date +%T) SlotStatus "; setpci -s1c.7
0x5a.w; sleep 1; done

That command reads the SlotStatus register from the bridge leading to
your ExpressCard slot every second.  While that command is running, do
insertions and removals of all your ExpressCards.  Bit 6 (0x0040) is
the Presence Detect bit.  It should change as you insert and remove
cards.

I'd like to see the complete dmesg log, the output of "lspci -vv", and
the output of the above command while you insert/remove cards (with
notes about which card is being hotplugged when).  Since there seems
to be some interaction with the MediaCard reader BIOS settings, maybe
you could do this whole experiment with the reader disabled, then with
it enabled.

You can attach these logs to the bugzilla
(https://bugzilla.kernel.org/show_bug.cgi?id=54921) if you want, or
point me to them and I'll do it.

Thanks,
  Bjorn
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

--- MediaCard_reader_enabled_in_BIOS/cold-boot-with-express_card_inserted/dmesg.notiming        2013-01-09 15:15:28.000000000 +0100
+++ MediaCard_reader_enabled_in_BIOS/cold-boot-with-express_card_inserted__pcie_aspm-off/dmesg.notiming 2013-01-09 15:42:02.000000000 +0100
@@ -1,5 +1,5 @@ 
 Linux version 3.7.1-default (root@vostro) (gcc version 4.6.3 (Gentoo 4.6.3 p1.8, pie-0.5.2) ) #30 SMP Wed Jan 9 14:45:10 MET 2013
-Command line: root=/dev/sda5 pciehp.pciehp_debug=1 slub_debug=AFPZ
+Command line: root=/dev/sda5 pciehp.pciehp_debug=1 slub_debug=AFPZ pcie_aspm=off

@@ -374,7 +375,6 @@ 
 pci 0000:11:00.0: reg 20: [io  0xc000-0xc07f]
 pci 0000:11:00.0: reg 30: [mem 0xf6c00000-0xf6c7ffff pref]
 pci 0000:11:00.0: supports D1 D2
-pci 0000:11:00.0: disabling ASPM on pre-1.1 PCIe device.  You can enable it with 'pcie_aspm=force'
 pci_bus 0000:11: fixups for bus
 pci 0000:00:1c.7: PCI bridge to [bus 11-16]
 pci 0000:00:1c.7:   bridge window [io  0xc000-0xdfff]
@@ -393,8 +393,7 @@ 
 ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP04._PRT]
 ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP05._PRT]
 ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP08._PRT]
- pci0000:00: Requesting ACPI _OSC control (0x1d)
- pci0000:00: ACPI _OSC control (0x19) granted
+ pci0000:00: Unable to request _OSC control (_OSC support mask: 0x19)
 ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 10 *11 12 14 15)
 ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 *5 6 10 11 12 14 15)
 ACPI: PCI Interrupt Link [LNKC] (IRQs *3 4 5 6 10 11 12 14 15)
@@ -654,7 +653,6 @@ 
 io scheduler noop registered
 io scheduler deadline registered (default)
 io scheduler cfq registered
-pcieport 0000:00:1c.7: irq 40 for MSI/MSI-X
 intel_idle: MWAIT substates: 0x21120
 intel_idle: v0.4 model 0x2A
 intel_idle: lapic_timer_reliable_states 0xffffffff
@@ -688,7 +686,7 @@ 
 ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
 lpc_ich: Resource conflict(s) found affecting gpio_ich
 ahci 0000:00:1f.2: version 3.0
-ahci 0000:00:1f.2: irq 41 for MSI/MSI-X
+ahci 0000:00:1f.2: irq 40 for MSI/MSI-X
 ahci: SSS flag set, parallel bus scan disabled
 ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 6 ports 6 Gbps 0x31 impl SATA mode
 ahci 0000:00:1f.2: flags: 64bit ncq sntf stag pm led clo pio slum part ems sxs apst 
@@ -699,18 +697,18 @@ 
 scsi3 : ahci
 scsi4 : ahci
 scsi5 : ahci
-ata1: SATA max UDMA/133 abar m2048@0xf7f06000 port 0xf7f06100 irq 41
+ata1: SATA max UDMA/133 abar m2048@0xf7f06000 port 0xf7f06100 irq 40
 ata2: DUMMY
 ata3: DUMMY
 ata4: DUMMY
-ata5: SATA max UDMA/133 abar m2048@0xf7f06000 port 0xf7f06300 irq 41
-ata6: SATA max UDMA/133 abar m2048@0xf7f06000 port 0xf7f06380 irq 41
+ata5: SATA max UDMA/133 abar m2048@0xf7f06000 port 0xf7f06300 irq 40
+ata6: SATA max UDMA/133 abar m2048@0xf7f06000 port 0xf7f06380 irq 40
 tun: Universal TUN/TAP device driver, 1.6
 tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
 r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
 r8169 0000:05:00.0: enabling Mem-Wr-Inval
-r8169 0000:05:00.0: irq 42 for MSI/MSI-X
-r8169 0000:05:00.0 eth0: RTL8168e/8111e at 0xffffc9000184a000, 18:03:73:a0:6f:6a, XID 0c200000 IRQ 42
+r8169 0000:05:00.0: irq 41 for MSI/MSI-X
+r8169 0000:05:00.0 eth0: RTL8168e/8111e at 0xffffc9000184a000, 18:03:73:a0:6f:6a, XID 0c200000 IRQ 41
 r8169 0000:05:00.0 eth0: jumbo features [frames: 9200 bytes, tx checksumming: ko]
 VMware vmxnet3 virtual NIC driver - version 1.1.29.0-k-NAPI
 ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
@@ -791,9 +789,9 @@ 
 xhci_hcd 0000:0b:00.0: enabling Mem-Wr-Inval
 xhci_hcd 0000:0b:00.0: supports USB remote wakeup
 xhci_hcd 0000:0b:00.0: irq 16, io mem 0xf7d00000
+xhci_hcd 0000:0b:00.0: irq 42 for MSI/MSI-X
 xhci_hcd 0000:0b:00.0: irq 43 for MSI/MSI-X
 xhci_hcd 0000:0b:00.0: irq 44 for MSI/MSI-X
-xhci_hcd 0000:0b:00.0: irq 45 for MSI/MSI-X
 usb usb3: default language 0x0409
 usb usb3: udev 1, busnum 3, minor = 256
 usb usb3: New USB device found, idVendor=1d6b, idProduct=0002
[cut]

I am not much knowing what is this kernel stuff all about but why other
devices retain MSI and only 0000:00:1c.7 lost it? Due to IRQ40 being not
picked up by pcieport it was assigned to other devices in the row and
therefore the diff just shows  changed IRQ numbers for following devices.
I will show below just a snippet of interrupt changes with a question
"Why was the IRQ40 not reported when claimed by pcieport? The is no line
starting as '-40'! Was it never reported through /proc/interrupts until
'pcie_aspm=off'? But dmesg showed that it was used, or thought to be assigned
by the driver itself?

--- MediaCard_reader_enabled_in_BIOS/cold-boot-with-express_card_inserted/interrupts    2013-01-09 15:14:33.000000000 +0100
+++ MediaCard_reader_enabled_in_BIOS/cold-boot-with-express_card_inserted__pcie_aspm-off/interrupts     2013-01-09 15:42:01.000000000 +0100
@@ -1,29 +1,29 @@ 
            CPU0       CPU1       
   0:         36          0   IO-APIC-edge      timer
   1:         13          0   IO-APIC-edge      i8042
-  8:         16          0   IO-APIC-edge      rtc0
+  8:         60          0   IO-APIC-edge      rtc0
   9:          0          0   IO-APIC-fasteoi   acpi
  12:        241          0   IO-APIC-edge      i8042
- 16:         53          0   IO-APIC-fasteoi   ehci_hcd:usb1
- 19:        355          0   IO-APIC-fasteoi   sata_sil24
- 23:        440          0   IO-APIC-fasteoi   ehci_hcd:usb2
- 41:       5342          0   PCI-MSI-edge      ahci
- 42:        264          0   PCI-MSI-edge      eth0
- 43:       1116          0   PCI-MSI-edge      xhci_hcd
+ 16:         50          0   IO-APIC-fasteoi   ehci_hcd:usb1
+ 19:        356          0   IO-APIC-fasteoi   sata_sil24
+ 23:        345          0   IO-APIC-fasteoi   ehci_hcd:usb2
+ 40:       5368          0   PCI-MSI-edge      ahci
+ 41:        205          0   PCI-MSI-edge      eth0
+ 42:        308          0   PCI-MSI-edge      xhci_hcd
+ 43:          0          0   PCI-MSI-edge      xhci_hcd
[cut]


--- MediaCard_reader_enabled_in_BIOS/cold-boot-with-express_card_inserted/lspci_vvxx    2013-01-09 15:14:26.000000000 +0100
+++ MediaCard_reader_enabled_in_BIOS/cold-boot-with-express_card_inserted__pcie_aspm-off/lspci_vvxx     2013-01-09 15:42:01.000000000 +0100
[cut]
@@ -284,7 +284,7 @@ 
                DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
                LnkCap: Port #5, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0 <512ns, L1 <16us
                        ClockPM- Surprise- LLActRep+ BwNot-
-               LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
+               LnkCtl: ASPM L1 Enabled; RCB 64 bytes Disabled- Retrain- CommClk+
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt+
                SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
@@ -316,7 +316,7 @@ 
 30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 01 10 00
 
 00:1c.7 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 8 (rev b5) (prog-if 00 [Normal decode])
-       Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
+       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-
        Latency: 0, Cache Line Size: 64 bytes
        Bus: primary=00, secondary=11, subordinate=16, sec-latency=0
@@ -354,14 +354,14 @@ 
                         Compliance De-emphasis: -6dB
                LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
                         EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
-       Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
-               Address: fee0300c  Data: 4191
+       Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit-
+               Address: 00000000  Data: 0000
        Capabilities: [90] Subsystem: Dell Device 04b3
        Capabilities: [a0] Power Management version 2
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Kernel driver in use: pcieport
-00: 86 80 1e 1c 07 04 10 00 b5 00 04 06 10 00 81 00
+00: 86 80 1e 1c 07 00 10 00 b5 00 04 06 10 00 81 00
 10: 00 00 00 00 00 00 00 00 00 11 16 00 c0 d0 00 00
 20: c0 f6 c0 f7 01 f0 01 f1 00 00 00 00 00 00 00 00
 30: 00 00 00 00 40 00 00 00 00 00 00 00 0a 04 10 00


Loading the hotplug drivers does not yield the IRQ (I think actually the modprobe acpiphp replied that
the device does not exist, but forced loading of pci_hotplug and of did load acpiphp):

@@ -1252,3 +1249,67 @@ 
 perf_event_intel: PEBS enabled due to microcode update
 r8169 0000:05:00.0 eth0: link down
 r8169 0000:05:00.0 eth0: link up
+usb 4-1: remote wakeup needed for autosuspend
+pci_hotplug: PCI Hot Plug PCI Core version: 0.5
+acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
+pci_bus 0000:11: dev 00, created physical slot 1

I think the error that a device does not exist should be logged by kernel. Stderr is not a good storage media,
nor my memory. ;-)


At least appears I really do have my card in the slot since cold boot. ;-) Probably due to the pci_hotplug driver working?

--- MediaCard_reader_enabled_in_BIOS/cold-boot-with-express_card_inserted__pcie_aspm-off/lspci_vvxx     2013-01-09 15:42:01.000000000 +0100
+++ MediaCard_reader_enabled_in_BIOS/cold-boot-with-express_card_inserted__pcie_aspm-off__loaded_acpiphp__pci_hotplug/lspci_vvxx        2013-01-09 15:44:19.000000000 +0100
@@ -589,6 +589,7 @@ 
 
 11:00.0 Mass storage controller: Silicon Image, Inc. SiI 3132 Serial ATA Raid II Controller (rev 01)
        Subsystem: Silicon Image, Inc. SiI 3132 Serial ATA Raid II Controller
+       Physical Slot: 1
        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-
        Latency: 0, Cache Line Size: 64 bytes



Does the above make sense to you?

So, 'pcie_aspm=force' kills the 0000:11:00.0 device, probably because of pci0000:00: Unable to request _OSC control (_OSC support mask: 0x19)?




Below I am showing what *works*.

If I don't care about hotplug and do NOT pass 'pcie_aspm=force' here is shown how is the card detected during cold-boot through PCI/PCIe (no hotplug support needed, not even loaded!):

--- MediaCard_reader_enabled_in_BIOS/cold-boot-without-express_card_inserted/dmesg.notiming     2013-01-09 15:04:26.000000000 +0100
+++ MediaCard_reader_enabled_in_BIOS/cold-boot-with-express_card_inserted/dmesg.notiming        2013-01-09 15:15:28.000000000 +0100
@@ -368,6 +368,13 @@ 
 pci_bus 0000:0b: bus scan returning with max=0b
 pci 0000:00:1c.7: scanning [bus 11-16] behind bridge, pass 0
 pci_bus 0000:11: scanning bus
+pci 0000:11:00.0: [1095:3132] type 00 class 0x018000
+pci 0000:11:00.0: reg 10: [mem 0xf6c84000-0xf6c8407f 64bit]
+pci 0000:11:00.0: reg 18: [mem 0xf6c80000-0xf6c83fff 64bit]
+pci 0000:11:00.0: reg 20: [io  0xc000-0xc07f]
+pci 0000:11:00.0: reg 30: [mem 0xf6c00000-0xf6c7ffff pref]
+pci 0000:11:00.0: supports D1 D2
+pci 0000:11:00.0: disabling ASPM on pre-1.1 PCIe device.  You can enable it with 'pcie_aspm=force'
 pci_bus 0000:11: fixups for bus
 pci 0000:00:1c.7: PCI bridge to [bus 11-16]
 pci 0000:00:1c.7:   bridge window [io  0xc000-0xdfff]
@@ -433,6 +440,9 @@ 
 pci 0000:09:00.0: BAR 0: reserving [mem 0xf7e00000-0xf7e01fff flags 0x140204] (d=0, p=0)
 pci 0000:0b:00.0: BAR 0: reserving [mem 0xf7d00000-0xf7d0ffff flags 0x140204] (d=0, p=0)
 pci 0000:0b:00.0: BAR 2: reserving [mem 0xf7d10000-0xf7d11fff flags 0x140204] (d=0, p=0)
+pci 0000:11:00.0: BAR 0: reserving [mem 0xf6c84000-0xf6c8407f flags 0x140204] (d=0, p=0)
+pci 0000:11:00.0: BAR 2: reserving [mem 0xf6c80000-0xf6c83fff flags 0x140204] (d=0, p=0)
+pci 0000:11:00.0: BAR 4: reserving [io  0xc000-0xc07f flags 0x40101] (d=0, p=0)
 e820: reserve RAM buffer [mem 0x0009d400-0x0009ffff]
 e820: reserve RAM buffer [mem 0xda4e5000-0xdbffffff]
 e820: reserve RAM buffer [mem 0xda793000-0xdbffffff]
@@ -1152,10 +1162,15 @@ 
 usbhid 3-1.4:1.0: usb_probe_interface - got id
 input: CHICONY USB Keyboard as /devices/pci0000:00/0000:00:1c.4/0000:0b:00.0/usb3/3-1/3-1.4/3-1.4:1.0/input/input13
 hid-generic 0003:04F2:0116.0002: input,hidraw1: USB HID v1.10 Keyboard [CHICONY USB Keyboard] on usb-0000:0b:00.0-1.4/input0
-hub 2-1:1.0: state 7 ports 8 chg 0000 evt 0040
+hub 3-1:1.0: state 7 ports 4 chg 0000 evt 0008
 scsi 6:0:0:0: Direct-Access     Generic- Multi-Card       1.00 PQ: 0 ANSI: 0 CCS
 sd 6:0:0:0: Attached scsi generic sg2 type 0
-systemd-udevd[1934]: starting version 196
+systemd-udevd[1937]: starting version 196
+sata_sil24 0000:11:00.0: version 1.1
+scsi7 : sata_sil24
+scsi8 : sata_sil24
+ata7: SATA max UDMA/100 host m128@0xf6c84000 port 0xf6c80000 irq 19
+ata8: SATA max UDMA/100 host m128@0xf6c84000 port 0xf6c82000 irq 19
 Intel(R) Wireless WiFi driver for Linux, in-tree:d
 Copyright(c) 2003-2012 Intel Corporation
 iwlwifi 0000:09:00.0: pci_resource_len = 0x00002000
[cut]
--- MediaCard_reader_enabled_in_BIOS/cold-boot-without-express_card_inserted/lspci_vvxx 2013-01-09 15:01:05.000000000 +0100
+++ MediaCard_reader_enabled_in_BIOS/cold-boot-with-express_card_inserted/lspci_vvxx    2013-01-09 15:14:26.000000000 +0100
@@ -314,54 +314,54 @@ 
 10: 00 00 00 00 00 00 00 00 00 0b 0c 00 f0 00 00 20
 20: d0 f7 d0 f7 f1 ff 01 00 00 00 00 00 00 00 00 00
 30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 01 10 00
 
 00:1c.7 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 8 (rev b5) (prog-if 00 [Normal decode])
        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-
        Latency: 0, Cache Line Size: 64 bytes
        Bus: primary=00, secondary=11, subordinate=16, sec-latency=0
        I/O behind bridge: 0000c000-0000dfff
        Memory behind bridge: f6c00000-f7cfffff
        Prefetchable memory behind bridge: 00000000f0000000-00000000f10fffff
        Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
        BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
                PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
        Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00
                DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
                        ExtTag- RBE+ FLReset-
                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                        RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
                        MaxPayload 128 bytes, MaxReadReq 128 bytes
                DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
-               LnkCap: Port #8, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0 <1us, L1 <16us
+               LnkCap: Port #8, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0 <512ns, L1 <16us
                        ClockPM- Surprise- LLActRep+ BwNot-
-               LnkCtl: ASPM L1 Enabled; RCB 64 bytes Disabled- Retrain- CommClk-
+               LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
-               LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
+               LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
                SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+
                        Slot #7, PowerLimit 10.000W; Interlock- NoCompl+
                SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
                        Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
-               SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet- Interlock-
+               SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
                        Changed: MRL- PresDet- LinkState-
                RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
                RootCap: CRSVisible-
                RootSta: PME ReqID 0000, PMEStatus- PMEPending-
                DevCap2: Completion Timeout: Range BC, TimeoutDis+, LTR-, OBFF Not Supported ARIFwd-
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled ARIFwd-
                LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                         Compliance De-emphasis: -6dB
                LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
                         EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
        Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
                Address: fee0300c  Data: 4191
        Capabilities: [90] Subsystem: Dell Device 04b3
        Capabilities: [a0] Power Management version 2
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Kernel driver in use: pcieport
 00: 86 80 1e 1c 07 04 10 00 b5 00 04 06 10 00 81 00
 10: 00 00 00 00 00 00 00 00 00 11 16 00 c0 d0 00 00
 20: c0 f6 c0 f7 01 f0 01 f1 00 00 00 00 00 00 00 00
 30: 00 00 00 00 40 00 00 00 00 00 00 00 0a 04 10 00
@@ -587,3 +587,43 @@ 
 20: 00 00 00 00 00 00 00 00 00 00 00 00 28 10 b3 04
 30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 01 00 00
 
+11:00.0 Mass storage controller: Silicon Image, Inc. SiI 3132 Serial ATA Raid II Controller (rev 01)
+       Subsystem: Silicon Image, Inc. SiI 3132 Serial ATA Raid II Controller
+       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-
+       Latency: 0, Cache Line Size: 64 bytes
+       Interrupt: pin A routed to IRQ 19
+       Region 0: Memory at f6c84000 (64-bit, non-prefetchable) [size=128]
+       Region 2: Memory at f6c80000 (64-bit, non-prefetchable) [size=16K]
+       Region 4: I/O ports at c000 [size=128]
+       Expansion ROM at f6c00000 [disabled] [size=512K]
+       Capabilities: [54] Power Management version 2
+               Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
+               Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME-
+       Capabilities: [5c] MSI: Enable- Count=1/1 Maskable- 64bit+
+               Address: 0000000000000000  Data: 0000
+       Capabilities: [70] Express (v1) Legacy Endpoint, MSI 00
+               DevCap: MaxPayload 1024 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
+                       ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-
+               DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
+                       RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
+                       MaxPayload 128 bytes, MaxReadReq 4096 bytes
+               DevSta: CorrErr- UncorrErr+ FatalErr- UnsuppReq+ AuxPwr- TransPend-
+               LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s, Latency L0 unlimited, L1 unlimited
+                       ClockPM- Surprise- LLActRep- BwNot-
+               LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
+                       ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
+               LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
+       Capabilities: [100 v1] Advanced Error Reporting
+               UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
+               UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
+               UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
+               CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
+               CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
+               AERCap: First Error Pointer: 14, GenCap+ CGenEn- ChkCap+ ChkEn-
+       Kernel driver in use: sata_sil24
+00: 95 10 32 31 07 00 10 00 01 00 80 01 10 00 00 00
+10: 04 40 c8 f6 00 00 00 00 04 00 c8 f6 00 00 00 00
+20: 01 c0 00 00 00 00 00 00 00 00 00 00 95 10 32 31
+30: 00 00 c0 f6 54 00 00 00 00 00 00 00 0a 01 00 00
+
--- MediaCard_reader_enabled_in_BIOS/cold-boot-without-express_card_inserted/interrupts 2013-01-09 15:01:29.000000000 +0100
+++ MediaCard_reader_enabled_in_BIOS/cold-boot-with-express_card_inserted/interrupts    2013-01-09 15:14:33.000000000 +0100
@@ -1,28 +1,29 @@ 
            CPU0       CPU1       
   0:         36          0   IO-APIC-edge      timer
   1:         13          0   IO-APIC-edge      i8042
-  8:         22          0   IO-APIC-edge      rtc0
+  8:         16          0   IO-APIC-edge      rtc0
   9:          0          0   IO-APIC-fasteoi   acpi
  12:        241          0   IO-APIC-edge      i8042
  16:         53          0   IO-APIC-fasteoi   ehci_hcd:usb1
- 23:        386          0   IO-APIC-fasteoi   ehci_hcd:usb2
- 41:       5381          0   PCI-MSI-edge      ahci
- 42:        309          0   PCI-MSI-edge      eth0
- 43:        422          0   PCI-MSI-edge      xhci_hcd
+ 19:        355          0   IO-APIC-fasteoi   sata_sil24
+ 23:        440          0   IO-APIC-fasteoi   ehci_hcd:usb2
+ 41:       5342          0   PCI-MSI-edge      ahci
+ 42:        264          0   PCI-MSI-edge      eth0
+ 43:       1116          0   PCI-MSI-edge      xhci_hcd
  44:          0          0   PCI-MSI-edge      xhci_hcd
  45:          0          0   PCI-MSI-edge      xhci_hcd
- 46:        509          0   PCI-MSI-edge      snd_hda_intel
+ 46:        506          0   PCI-MSI-edge      snd_hda_intel
  47:          1          0   PCI-MSI-edge      iwlwifi
  48:         13          0   PCI-MSI-edge      i915
-NMI:         17         30   Non-maskable interrupts
-LOC:       8163       6823   Local timer interrupts
+NMI:         16         29   Non-maskable interrupts
+LOC:       8724       6451   Local timer interrupts
 SPU:          0          0   Spurious interrupts
-PMI:         17         30   Performance monitoring interrupts
+PMI:         16         29   Performance monitoring interrupts
 IWI:          0          0   IRQ work interrupts
 RTR:          0          0   APIC ICR read retries
-RES:       3121       3805   Rescheduling interrupts
-CAL:         34       2857   Function call interrupts
-TLB:         93        142   TLB shootdowns
+RES:       4084       4027   Rescheduling interrupts
+CAL:         23       2719   Function call interrupts
+TLB:        104         50   TLB shootdowns
 TRM:          0          0   Thermal event interrupts
 THR:          0          0   Threshold APIC interrupts
 MCE:          0          0   Machine check exceptions




And showing, that acpiphp works here while 'pcie_aspm=off':


--- MediaCard_reader_enabled_in_BIOS/cold-boot-with-express_card_inserted__pcie_aspm-off/dmesg.notiming 2013-01-09 15:42:02.000000000 +0100
+++ MediaCard_reader_enabled_in_BIOS/cold-boot-without-express_card_inserted__pcie_aspm-off__loaded_acpiphp__pci_hotplug__card_hotplugged/dmesg.notiming        2013-01-09 15:58:36.000000000 +0100
@@ -369,12 +369,6 @@ 
 pci_bus 0000:0b: bus scan returning with max=0b
 pci 0000:00:1c.7: scanning [bus 11-16] behind bridge, pass 0
 pci_bus 0000:11: scanning bus
-pci 0000:11:00.0: [1095:3132] type 00 class 0x018000
-pci 0000:11:00.0: reg 10: [mem 0xf6c84000-0xf6c8407f 64bit]
-pci 0000:11:00.0: reg 18: [mem 0xf6c80000-0xf6c83fff 64bit]
-pci 0000:11:00.0: reg 20: [io  0xc000-0xc07f]
-pci 0000:11:00.0: reg 30: [mem 0xf6c00000-0xf6c7ffff pref]
-pci 0000:11:00.0: supports D1 D2
 pci_bus 0000:11: fixups for bus
 pci 0000:00:1c.7: PCI bridge to [bus 11-16]
 pci 0000:00:1c.7:   bridge window [io  0xc000-0xdfff]
@@ -439,9 +433,6 @@ 
 pci 0000:09:00.0: BAR 0: reserving [mem 0xf7e00000-0xf7e01fff flags 0x140204] (d=0, p=0)
 pci 0000:0b:00.0: BAR 0: reserving [mem 0xf7d00000-0xf7d0ffff flags 0x140204] (d=0, p=0)
 pci 0000:0b:00.0: BAR 2: reserving [mem 0xf7d10000-0xf7d11fff flags 0x140204] (d=0, p=0)
-pci 0000:11:00.0: BAR 0: reserving [mem 0xf6c84000-0xf6c8407f flags 0x140204] (d=0, p=0)
-pci 0000:11:00.0: BAR 2: reserving [mem 0xf6c80000-0xf6c83fff flags 0x140204] (d=0, p=0)
-pci 0000:11:00.0: BAR 4: reserving [io  0xc000-0xc07f flags 0x40101] (d=0, p=0)
 e820: reserve RAM buffer [mem 0x0009d400-0x0009ffff]
 e820: reserve RAM buffer [mem 0xda4e5000-0xdbffffff]
 e820: reserve RAM buffer [mem 0xda793000-0xdbffffff]
@@ -1162,12 +1153,7 @@ 
 hub 3-1:1.0: state 7 ports 4 chg 0000 evt 0008
 scsi 6:0:0:0: Direct-Access     Generic- Multi-Card       1.00 PQ: 0 ANSI: 0 CCS
 sd 6:0:0:0: Attached scsi generic sg2 type 0
-systemd-udevd[1935]: starting version 196
-sata_sil24 0000:11:00.0: version 1.1
-scsi7 : sata_sil24
-scsi8 : sata_sil24
-ata7: SATA max UDMA/100 host m128@0xf6c84000 port 0xf6c80000 irq 19
-ata8: SATA max UDMA/100 host m128@0xf6c84000 port 0xf6c82000 irq 19
+systemd-udevd[1933]: starting version 196
 Intel(R) Wireless WiFi driver for Linux, in-tree:d
 Copyright(c) 2003-2012 Intel Corporation
 iwlwifi 0000:09:00.0: pci_resource_len = 0x00002000
[cut]
@@ -1249,3 +1206,58 @@ 
 perf_event_intel: PEBS enabled due to microcode update
 r8169 0000:05:00.0 eth0: link down
 r8169 0000:05:00.0 eth0: link up
+usb 4-1: remote wakeup needed for autosuspend
+pci_hotplug: PCI Hot Plug PCI Core version: 0.5
+acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
+pci_bus 0000:11: dev 00, created physical slot 1
+acpiphp: Slot [1] registered
+usb 4-1: remote wakeup needed for autosuspend
+pci 0000:11:00.0: [1095:3132] type 00 class 0x018000
+pci 0000:11:00.0: reg 10: [mem 0x00000000-0x0000007f 64bit]
+pci 0000:11:00.0: reg 18: [mem 0x00000000-0x00003fff 64bit]
+pci 0000:11:00.0: reg 20: [io  0x0000-0x007f]
+pci 0000:11:00.0: reg 30: [mem 0x00000000-0x0007ffff pref]
+pci 0000:11:00.0: supports D1 D2
+pci 0000:11:00.0: BAR 6: assigned [mem 0xf0000000-0xf007ffff pref]
+pci 0000:11:00.0: BAR 2: assigned [mem 0xf6c00000-0xf6c03fff 64bit]
+pci 0000:11:00.0: BAR 2: set to [mem 0xf6c00000-0xf6c03fff 64bit] (PCI address [0xf6c00000-0xf6c03fff])
+pci 0000:11:00.0: BAR 0: assigned [mem 0xf6c04000-0xf6c0407f 64bit]
+pci 0000:11:00.0: BAR 0: set to [mem 0xf6c04000-0xf6c0407f 64bit] (PCI address [0xf6c04000-0xf6c0407f])
+pci 0000:11:00.0: BAR 4: assigned [io  0xc000-0xc07f]
+pci 0000:11:00.0: BAR 4: set to [io  0xc000-0xc07f] (PCI address [0xc000-0xc07f])
+sata_sil24 0000:11:00.0: version 1.1
+sata_sil24 0000:11:00.0: enabling device (0100 -> 0103)
+sata_sil24 0000:11:00.0: enabling bus mastering
+scsi7 : sata_sil24
+scsi8 : sata_sil24
+ata7: SATA max UDMA/100 host m128@0xf6c04000 port 0xf6c00000 irq 19
+ata8: SATA max UDMA/100 host m128@0xf6c04000 port 0xf6c02000 irq 19
+ata7: SATA link up 3.0 Gbps (SStatus 123 SControl 0)
+ata7.00: ATA-8: WDC WD10TPVT-00HT5T0, 01.01A01, max UDMA/133
+ata7.00: 1953525168 sectors, multi 0: LBA48 NCQ (depth 31/32)
+ata7.00: failed to get Identify Device Data, Emask 0x1
+ata7.00: failed to get Identify Device Data, Emask 0x1
+ata7.00: configured for UDMA/100
+scsi 7:0:0:0: Direct-Access     ATA      WDC WD10TPVT-00H 01.0 PQ: 0 ANSI: 5
+sd 7:0:0:0: [sdc] 1953525168 512-byte logical blocks: (1.00 TB/931 GiB)
+sd 7:0:0:0: [sdc] Write Protect is off
+sd 7:0:0:0: [sdc] Mode Sense: 00 3a 00 00
+sd 7:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
+sd 7:0:0:0: Attached scsi generic sg3 type 0
+ sdc: sdc1
+sd 7:0:0:0: [sdc] Attached SCSI disk
+ata8: SATA link up 3.0 Gbps (SStatus 123 SControl 0)
+ata8.00: ATA-8: ST3000VX000-9YW166, CV12, max UDMA/133
+ata8.00: 5860533168 sectors, multi 0: LBA48 NCQ (depth 31/32)
+ata8.00: failed to get Identify Device Data, Emask 0x1
+ata8.00: failed to get Identify Device Data, Emask 0x1
+ata8.00: configured for UDMA/100
+scsi 8:0:0:0: Direct-Access     ATA      ST3000VX000-9YW1 CV12 PQ: 0 ANSI: 5
+sd 8:0:0:0: Attached scsi generic sg4 type 0
+sd 8:0:0:0: [sdd] 5860533168 512-byte logical blocks: (3.00 TB/2.72 TiB)
+sd 8:0:0:0: [sdd] 4096-byte physical blocks
+sd 8:0:0:0: [sdd] Write Protect is off
+sd 8:0:0:0: [sdd] Mode Sense: 00 3a 00 00
+sd 8:0:0:0: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
+ sdd: sdd1
+sd 8:0:0:0: [sdd] Attached SCSI disk

--- MediaCard_reader_enabled_in_BIOS/cold-boot-with-express_card_inserted__pcie_aspm-off/lspci_vvxx     2013-01-09 15:42:01.000000000 +0100
+++ MediaCard_reader_enabled_in_BIOS/cold-boot-without-express_card_inserted__pcie_aspm-off__loaded_acpiphp__pci_hotplug__card_hotplugged/lspci_vvxx    2013-01-09 15:58:36.000000000 +0100
@@ -343,7 +343,7 @@ 
                SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
                        Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
                SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
-                       Changed: MRL- PresDet- LinkState-
+                       Changed: MRL- PresDet- LinkState+
                RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
                RootCap: CRSVisible-
                RootSta: PME ReqID 0000, PMEStatus- PMEPending-
@@ -589,14 +589,15 @@ 
 
 11:00.0 Mass storage controller: Silicon Image, Inc. SiI 3132 Serial ATA Raid II Controller (rev 01)
        Subsystem: Silicon Image, Inc. SiI 3132 Serial ATA Raid II Controller
-       Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+       Physical Slot: 1
+       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-
-       Latency: 0, Cache Line Size: 64 bytes
+       Latency: 0, Cache Line Size: 32 bytes
        Interrupt: pin A routed to IRQ 19
-       Region 0: Memory at f6c84000 (64-bit, non-prefetchable) [size=128]
-       Region 2: Memory at f6c80000 (64-bit, non-prefetchable) [size=16K]
+       Region 0: Memory at f6c04000 (64-bit, non-prefetchable) [size=128]
+       Region 2: Memory at f6c00000 (64-bit, non-prefetchable) [size=16K]
        Region 4: I/O ports at c000 [size=128]
-       Expansion ROM at f6c00000 [disabled] [size=512K]
+       [virtual] Expansion ROM at f0000000 [disabled] [size=512K]
        Capabilities: [54] Power Management version 2
                Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME-
@@ -622,8 +623,8 @@ 
                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
                AERCap: First Error Pointer: 14, GenCap+ CGenEn- ChkCap+ ChkEn-
        Kernel driver in use: sata_sil24
-00: 95 10 32 31 07 00 10 00 01 00 80 01 10 00 00 00
-10: 04 40 c8 f6 00 00 00 00 04 00 c8 f6 00 00 00 00
+00: 95 10 32 31 07 01 10 00 01 00 80 01 08 00 00 00
+10: 04 40 c0 f6 00 00 00 00 04 00 c0 f6 00 00 00 00
 20: 01 c0 00 00 00 00 00 00 00 00 00 00 95 10 32 31
-30: 00 00 c0 f6 54 00 00 00 00 00 00 00 0a 01 00 00
+30: 00 00 00 00 54 00 00 00 00 00 00 00 00 01 00 00
 
--- MediaCard_reader_enabled_in_BIOS/cold-boot-with-express_card_inserted__pcie_aspm-off/interrupts     2013-01-09 15:42:01.000000000 +0100
+++ MediaCard_reader_enabled_in_BIOS/cold-boot-without-express_card_inserted__pcie_aspm-off__loaded_acpiphp__pci_hotplug__card_hotplugged/interrupts    2013-01-09 15:58:36.000000000 +0100
@@ -1,29 +1,29 @@ 
            CPU0       CPU1       
   0:         36          0   IO-APIC-edge      timer
   1:         13          0   IO-APIC-edge      i8042
-  8:         60          0   IO-APIC-edge      rtc0
-  9:          0          0   IO-APIC-fasteoi   acpi
+  8:         24          0   IO-APIC-edge      rtc0
+  9:          1          0   IO-APIC-fasteoi   acpi
  12:        241          0   IO-APIC-edge      i8042
- 16:         50          0   IO-APIC-fasteoi   ehci_hcd:usb1
- 19:        356          0   IO-APIC-fasteoi   sata_sil24
- 23:        345          0   IO-APIC-fasteoi   ehci_hcd:usb2
- 40:       5368          0   PCI-MSI-edge      ahci
- 41:        205          0   PCI-MSI-edge      eth0
- 42:        308          0   PCI-MSI-edge      xhci_hcd
+ 16:        100          0   IO-APIC-fasteoi   ehci_hcd:usb1
+ 19:        325          0   IO-APIC-fasteoi   sata_sil24
+ 23:        873          0   IO-APIC-fasteoi   ehci_hcd:usb2
+ 40:       5637          0   PCI-MSI-edge      ahci
+ 41:        375          0   PCI-MSI-edge      eth0
+ 42:        861          0   PCI-MSI-edge      xhci_hcd
  43:          0          0   PCI-MSI-edge      xhci_hcd
  44:          0          0   PCI-MSI-edge      xhci_hcd
- 45:        511          0   PCI-MSI-edge      snd_hda_intel
+ 45:        504          0   PCI-MSI-edge      snd_hda_intel
  46:          1          0   PCI-MSI-edge      iwlwifi
  47:         13          0   PCI-MSI-edge      i915
-NMI:         20         23   Non-maskable interrupts
-LOC:       7196       5604   Local timer interrupts
+NMI:         35         11   Non-maskable interrupts
+LOC:      13694       9226   Local timer interrupts
 SPU:          0          0   Spurious interrupts
-PMI:         20         23   Performance monitoring interrupts
+PMI:         35         11   Performance monitoring interrupts
 IWI:          0          0   IRQ work interrupts
 RTR:          0          0   APIC ICR read retries
-RES:       3203       3903   Rescheduling interrupts
-CAL:         18       2272   Function call interrupts
-TLB:        114         55   TLB shootdowns
+RES:       4840       4130   Rescheduling interrupts
+CAL:         27       2852   Function call interrupts
+TLB:        210        133   TLB shootdowns
 TRM:          0          0   Thermal event interrupts
 THR:          0          0   Threshold APIC interrupts
 MCE:          0          0   Machine check exceptions