pciehp: workaround against Bad DLLP during power off
commitf1050a35cd99d6cfded7ce1273757dca84e92f9b
authorKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Thu, 20 Dec 2007 10:45:09 +0000 (20 19:45 +0900)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 1 Feb 2008 23:04:28 +0000 (1 15:04 -0800)
treecff53ccb259acaae0fe25f3caf396cc5df6426a7
parent8bb7c7af1ff2a9e9e0936dbdd15901c80329c7af
pciehp: workaround against Bad DLLP during power off

Set Bad DLLP Mask bit in Correctable Error Mask Register during
turning power off the slot.

This is the workaround against Bad DLLP error that sometimes happen
during turning power off on the slot which conforms to PCI Express
1.0a spec. The cause of this error seems that PCI Express 1.0a spec
doesn't have the following consideration that was added to PCI Express
1.1 spec.

    "If the port is associated with a hot-pluggable slot (Hot-Plug
    Capable bit in the Slot Capabilities register set to 1b), and
    Power Controller Control bit in Slot Control register is 1b(Off),
    then any transition to DL Inactive must not be considered an
    error."

Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/pci/hotplug/pciehp_hpc.c