summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>2008-06-26 13:07:33 +0200
committerJesse Barnes <jbarnes@virtuousgeek.org>2008-06-27 22:01:03 +0200
commit3aa50c44628629a6d58f93e0a1244e95a874884e (patch)
treeac0eac6b246af6422e4731f46fba64bd4b8a251f /drivers
parentpciehp: fix interrupt initialization (diff)
downloadlinux-3aa50c44628629a6d58f93e0a1244e95a874884e.tar.xz
linux-3aa50c44628629a6d58f93e0a1244e95a874884e.zip
pciehp: remove needless command completed interrupt setting
Currently, pciehp driver enables command completed interrupt as follows. (1) Don't enable at initialization. (2) Enable command completed interrupt whenever pciehp issues a command, if the command doesn't attempt to disable the interrupt. (3) Disable command completed interrupt at driver unloading. Once we enable command completed interrupt, we don't need to re-enable it for every command. So we can simplify above steps as follows: (1) Enable command completed interrupt at initialization. (2) No special sequence for command completed interrupt. (3) Disable command completed interrupt at driver unloading. Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/pci/hotplug/pciehp_hpc.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c
index 1ce52437e1ed..1323a43285d7 100644
--- a/drivers/pci/hotplug/pciehp_hpc.c
+++ b/drivers/pci/hotplug/pciehp_hpc.c
@@ -337,10 +337,6 @@ static int pcie_write_cmd(struct controller *ctrl, u16 cmd, u16 mask)
slot_ctrl &= ~mask;
slot_ctrl |= (cmd & mask);
- /* Don't enable command completed if caller is changing it. */
- if (!(mask & CMD_CMPL_INTR_ENABLE))
- slot_ctrl |= CMD_CMPL_INTR_ENABLE;
-
ctrl->cmd_busy = 1;
smp_mb();
retval = pciehp_writew(ctrl, SLOTCTRL, slot_ctrl);
@@ -996,10 +992,10 @@ int pcie_enable_notification(struct controller *ctrl)
if (MRL_SENS(ctrl))
cmd |= MRL_DETECT_ENABLE;
if (!pciehp_poll_mode)
- cmd |= HP_INTR_ENABLE;
+ cmd |= HP_INTR_ENABLE | CMD_CMPL_INTR_ENABLE;
- mask = PRSN_DETECT_ENABLE | ATTN_BUTTN_ENABLE |
- PWR_FAULT_DETECT_ENABLE | MRL_DETECT_ENABLE | HP_INTR_ENABLE;
+ mask = PRSN_DETECT_ENABLE | ATTN_BUTTN_ENABLE | MRL_DETECT_ENABLE |
+ PWR_FAULT_DETECT_ENABLE | HP_INTR_ENABLE | CMD_CMPL_INTR_ENABLE;
if (pcie_write_cmd(ctrl, cmd, mask)) {
err("%s: Cannot enable software notification\n", __func__);