Commit f7a10e32 authored by Kenji Kaneshige's avatar Kenji Kaneshige Committed by Jesse Barnes

PCI: pciehp: fix irq initialization

Current pciehp driver gets irq number from pci_dev->irq. But because
pciehp driver is a pci express port service driver, it should get irq
number from pcie_device->irq.
Signed-off-by: default avatarKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
parent c0115606
...@@ -87,6 +87,7 @@ struct controller { ...@@ -87,6 +87,7 @@ struct controller {
int num_slots; /* Number of slots on ctlr */ int num_slots; /* Number of slots on ctlr */
int slot_num_inc; /* 1 or -1 */ int slot_num_inc; /* 1 or -1 */
struct pci_dev *pci_dev; struct pci_dev *pci_dev;
struct pcie_device *pcie; /* PCI Express port service */
struct list_head slot_list; struct list_head slot_list;
struct hpc_ops *hpc_ops; struct hpc_ops *hpc_ops;
wait_queue_head_t queue; /* sleep & wake process */ wait_queue_head_t queue; /* sleep & wake process */
......
...@@ -223,7 +223,7 @@ static void start_int_poll_timer(struct controller *ctrl, int sec) ...@@ -223,7 +223,7 @@ static void start_int_poll_timer(struct controller *ctrl, int sec)
static inline int pciehp_request_irq(struct controller *ctrl) static inline int pciehp_request_irq(struct controller *ctrl)
{ {
int retval, irq = ctrl->pci_dev->irq; int retval, irq = ctrl->pcie->irq;
/* Install interrupt polling timer. Start with 10 sec delay */ /* Install interrupt polling timer. Start with 10 sec delay */
if (pciehp_poll_mode) { if (pciehp_poll_mode) {
...@@ -244,7 +244,7 @@ static inline void pciehp_free_irq(struct controller *ctrl) ...@@ -244,7 +244,7 @@ static inline void pciehp_free_irq(struct controller *ctrl)
if (pciehp_poll_mode) if (pciehp_poll_mode)
del_timer_sync(&ctrl->poll_timer); del_timer_sync(&ctrl->poll_timer);
else else
free_irq(ctrl->pci_dev->irq, ctrl); free_irq(ctrl->pcie->irq, ctrl);
} }
static int pcie_poll_cmd(struct controller *ctrl) static int pcie_poll_cmd(struct controller *ctrl)
...@@ -1114,6 +1114,7 @@ struct controller *pcie_init(struct pcie_device *dev) ...@@ -1114,6 +1114,7 @@ struct controller *pcie_init(struct pcie_device *dev)
} }
INIT_LIST_HEAD(&ctrl->slot_list); INIT_LIST_HEAD(&ctrl->slot_list);
ctrl->pcie = dev;
ctrl->pci_dev = pdev; ctrl->pci_dev = pdev;
ctrl->cap_base = pci_find_capability(pdev, PCI_CAP_ID_EXP); ctrl->cap_base = pci_find_capability(pdev, PCI_CAP_ID_EXP);
if (!ctrl->cap_base) { if (!ctrl->cap_base) {
......
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