Commit 9e16b8d6 authored by Dongdong Liu's avatar Dongdong Liu Committed by Bjorn Helgaas

PCI/DPC: Add local struct device pointers

Use a local "struct device *dev" for brevity and consistency in DPC driver.
No functional change intended.
Signed-off-by: default avatarDongdong Liu <liudongdong3@huawei.com>
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
Reviewed-by: default avatarKeith Busch <keith.busch@intel.com>
parent f20c4ea4
...@@ -71,6 +71,7 @@ static int dpc_wait_rp_inactive(struct dpc_dev *dpc) ...@@ -71,6 +71,7 @@ static int dpc_wait_rp_inactive(struct dpc_dev *dpc)
{ {
unsigned long timeout = jiffies + HZ; unsigned long timeout = jiffies + HZ;
struct pci_dev *pdev = dpc->dev->port; struct pci_dev *pdev = dpc->dev->port;
struct device *dev = &dpc->dev->device;
u16 status; u16 status;
pci_read_config_word(pdev, dpc->cap_pos + PCI_EXP_DPC_STATUS, &status); pci_read_config_word(pdev, dpc->cap_pos + PCI_EXP_DPC_STATUS, &status);
...@@ -80,15 +81,17 @@ static int dpc_wait_rp_inactive(struct dpc_dev *dpc) ...@@ -80,15 +81,17 @@ static int dpc_wait_rp_inactive(struct dpc_dev *dpc)
pci_read_config_word(pdev, dpc->cap_pos + PCI_EXP_DPC_STATUS, &status); pci_read_config_word(pdev, dpc->cap_pos + PCI_EXP_DPC_STATUS, &status);
} }
if (status & PCI_EXP_DPC_RP_BUSY) { if (status & PCI_EXP_DPC_RP_BUSY) {
dev_warn(&pdev->dev, "DPC root port still busy\n"); dev_warn(dev, "DPC root port still busy\n");
return -EBUSY; return -EBUSY;
} }
return 0; return 0;
} }
static void dpc_wait_link_inactive(struct pci_dev *pdev) static void dpc_wait_link_inactive(struct dpc_dev *dpc)
{ {
unsigned long timeout = jiffies + HZ; unsigned long timeout = jiffies + HZ;
struct pci_dev *pdev = dpc->dev->port;
struct device *dev = &dpc->dev->device;
u16 lnk_status; u16 lnk_status;
pcie_capability_read_word(pdev, PCI_EXP_LNKSTA, &lnk_status); pcie_capability_read_word(pdev, PCI_EXP_LNKSTA, &lnk_status);
...@@ -98,7 +101,7 @@ static void dpc_wait_link_inactive(struct pci_dev *pdev) ...@@ -98,7 +101,7 @@ static void dpc_wait_link_inactive(struct pci_dev *pdev)
pcie_capability_read_word(pdev, PCI_EXP_LNKSTA, &lnk_status); pcie_capability_read_word(pdev, PCI_EXP_LNKSTA, &lnk_status);
} }
if (lnk_status & PCI_EXP_LNKSTA_DLLLA) if (lnk_status & PCI_EXP_LNKSTA_DLLLA)
dev_warn(&pdev->dev, "Link state not disabled for DPC event\n"); dev_warn(dev, "Link state not disabled for DPC event\n");
} }
static void interrupt_event_handler(struct work_struct *work) static void interrupt_event_handler(struct work_struct *work)
...@@ -120,7 +123,7 @@ static void interrupt_event_handler(struct work_struct *work) ...@@ -120,7 +123,7 @@ static void interrupt_event_handler(struct work_struct *work)
} }
pci_unlock_rescan_remove(); pci_unlock_rescan_remove();
dpc_wait_link_inactive(pdev); dpc_wait_link_inactive(dpc);
if (dpc->rp && dpc_wait_rp_inactive(dpc)) if (dpc->rp && dpc_wait_rp_inactive(dpc))
return; return;
if (dpc->rp && dpc->rp_pio_status) { if (dpc->rp && dpc->rp_pio_status) {
...@@ -245,6 +248,7 @@ static irqreturn_t dpc_irq(int irq, void *context) ...@@ -245,6 +248,7 @@ static irqreturn_t dpc_irq(int irq, void *context)
{ {
struct dpc_dev *dpc = (struct dpc_dev *)context; struct dpc_dev *dpc = (struct dpc_dev *)context;
struct pci_dev *pdev = dpc->dev->port; struct pci_dev *pdev = dpc->dev->port;
struct device *dev = &dpc->dev->device;
u16 status, source; u16 status, source;
pci_read_config_word(pdev, dpc->cap_pos + PCI_EXP_DPC_STATUS, &status); pci_read_config_word(pdev, dpc->cap_pos + PCI_EXP_DPC_STATUS, &status);
...@@ -253,14 +257,14 @@ static irqreturn_t dpc_irq(int irq, void *context) ...@@ -253,14 +257,14 @@ static irqreturn_t dpc_irq(int irq, void *context)
if (!status || status == (u16)(~0)) if (!status || status == (u16)(~0))
return IRQ_NONE; return IRQ_NONE;
dev_info(&dpc->dev->device, "DPC containment event, status:%#06x source:%#06x\n", dev_info(dev, "DPC containment event, status:%#06x source:%#06x\n",
status, source); status, source);
if (status & PCI_EXP_DPC_STATUS_TRIGGER) { if (status & PCI_EXP_DPC_STATUS_TRIGGER) {
u16 reason = (status >> 1) & 0x3; u16 reason = (status >> 1) & 0x3;
u16 ext_reason = (status >> 5) & 0x3; u16 ext_reason = (status >> 5) & 0x3;
dev_warn(&dpc->dev->device, "DPC %s detected, remove downstream devices\n", dev_warn(dev, "DPC %s detected, remove downstream devices\n",
(reason == 0) ? "unmasked uncorrectable error" : (reason == 0) ? "unmasked uncorrectable error" :
(reason == 1) ? "ERR_NONFATAL" : (reason == 1) ? "ERR_NONFATAL" :
(reason == 2) ? "ERR_FATAL" : (reason == 2) ? "ERR_FATAL" :
...@@ -281,10 +285,11 @@ static int dpc_probe(struct pcie_device *dev) ...@@ -281,10 +285,11 @@ static int dpc_probe(struct pcie_device *dev)
{ {
struct dpc_dev *dpc; struct dpc_dev *dpc;
struct pci_dev *pdev = dev->port; struct pci_dev *pdev = dev->port;
struct device *device = &dev->device;
int status; int status;
u16 ctl, cap; u16 ctl, cap;
dpc = devm_kzalloc(&dev->device, sizeof(*dpc), GFP_KERNEL); dpc = devm_kzalloc(device, sizeof(*dpc), GFP_KERNEL);
if (!dpc) if (!dpc)
return -ENOMEM; return -ENOMEM;
...@@ -293,10 +298,10 @@ static int dpc_probe(struct pcie_device *dev) ...@@ -293,10 +298,10 @@ static int dpc_probe(struct pcie_device *dev)
INIT_WORK(&dpc->work, interrupt_event_handler); INIT_WORK(&dpc->work, interrupt_event_handler);
set_service_data(dev, dpc); set_service_data(dev, dpc);
status = devm_request_irq(&dev->device, dev->irq, dpc_irq, IRQF_SHARED, status = devm_request_irq(device, dev->irq, dpc_irq, IRQF_SHARED,
"pcie-dpc", dpc); "pcie-dpc", dpc);
if (status) { if (status) {
dev_warn(&dev->device, "request IRQ%d failed: %d\n", dev->irq, dev_warn(device, "request IRQ%d failed: %d\n", dev->irq,
status); status);
return status; return status;
} }
...@@ -309,7 +314,7 @@ static int dpc_probe(struct pcie_device *dev) ...@@ -309,7 +314,7 @@ static int dpc_probe(struct pcie_device *dev)
ctl = (ctl & 0xfff4) | PCI_EXP_DPC_CTL_EN_NONFATAL | PCI_EXP_DPC_CTL_INT_EN; ctl = (ctl & 0xfff4) | PCI_EXP_DPC_CTL_EN_NONFATAL | PCI_EXP_DPC_CTL_INT_EN;
pci_write_config_word(pdev, dpc->cap_pos + PCI_EXP_DPC_CTL, ctl); pci_write_config_word(pdev, dpc->cap_pos + PCI_EXP_DPC_CTL, ctl);
dev_info(&dev->device, "DPC error containment capabilities: Int Msg #%d, RPExt%c PoisonedTLP%c SwTrigger%c RP PIO Log %d, DL_ActiveErr%c\n", dev_info(device, "DPC error containment capabilities: Int Msg #%d, RPExt%c PoisonedTLP%c SwTrigger%c RP PIO Log %d, DL_ActiveErr%c\n",
cap & 0xf, FLAG(cap, PCI_EXP_DPC_CAP_RP_EXT), cap & 0xf, FLAG(cap, PCI_EXP_DPC_CAP_RP_EXT),
FLAG(cap, PCI_EXP_DPC_CAP_POISONED_TLP), FLAG(cap, PCI_EXP_DPC_CAP_POISONED_TLP),
FLAG(cap, PCI_EXP_DPC_CAP_SW_TRIGGER), (cap >> 8) & 0xf, FLAG(cap, PCI_EXP_DPC_CAP_SW_TRIGGER), (cap >> 8) & 0xf,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment