summaryrefslogtreecommitdiffstats
path: root/drivers/pci/hotplug/pciehp_hpc.c
diff options
context:
space:
mode:
authorYinghai Lu2012-01-27 19:55:12 +0100
committerJesse Barnes2012-02-14 17:45:00 +0100
commit4e2ce405b24eef9f4cc947bf5f430ca27b474f1f (patch)
tree94f98ed4f240c44209efe9d2321da27a15feb7bd /drivers/pci/hotplug/pciehp_hpc.c
parentPCI: pciehp: replace unconditional sleep with config space access check (diff)
downloadkernel-qcow2-linux-4e2ce405b24eef9f4cc947bf5f430ca27b474f1f.tar.gz
kernel-qcow2-linux-4e2ce405b24eef9f4cc947bf5f430ca27b474f1f.tar.xz
kernel-qcow2-linux-4e2ce405b24eef9f4cc947bf5f430ca27b474f1f.zip
PCI: pciehp: make check_link_active more helpful
A few changes: - remove the 'inline' and let the complier decide - return a bool to indicate whether the link was active - add a debug message to indicate link state when it beocmes active Signed-off-by: Yinghai Lu <yinghai@kernel.org> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'drivers/pci/hotplug/pciehp_hpc.c')
-rw-r--r--drivers/pci/hotplug/pciehp_hpc.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c
index 7dc9e33746a6..a8c1f74a1e36 100644
--- a/drivers/pci/hotplug/pciehp_hpc.c
+++ b/drivers/pci/hotplug/pciehp_hpc.c
@@ -241,13 +241,20 @@ static int pcie_write_cmd(struct controller *ctrl, u16 cmd, u16 mask)
return retval;
}
-static inline int check_link_active(struct controller *ctrl)
+static bool check_link_active(struct controller *ctrl)
{
- u16 link_status;
+ bool ret = false;
+ u16 lnk_status;
- if (pciehp_readw(ctrl, PCI_EXP_LNKSTA, &link_status))
- return 0;
- return !!(link_status & PCI_EXP_LNKSTA_DLLLA);
+ if (pciehp_readw(ctrl, PCI_EXP_LNKSTA, &lnk_status))
+ return ret;
+
+ ret = !!(lnk_status & PCI_EXP_LNKSTA_DLLLA);
+
+ if (ret)
+ ctrl_dbg(ctrl, "%s: lnk_status = %x\n", __func__, lnk_status);
+
+ return ret;
}
static void pcie_wait_link_active(struct controller *ctrl)