diff options
author | Andrew Murray <amurray@embedded-bits.co.uk> | 2014-04-14 18:07:45 -0400 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2014-04-29 12:39:37 -0400 |
commit | 85802bbe755725b5bf92386b8a52eb6d089b581e (patch) | |
tree | a1ed62bae4f989304a05fdfa696bed9a87dc01ef /drivers/pci/host | |
parent | ccfdd7aebad1b7a46724196fe1f4557e64eff599 (diff) |
PCI: mvebu: Remove unnecessary use of 'conf_lock' spinlock
Serialization of configuration accesses is provided by 'pci_lock' in
drivers/pci/access.c thus making the driver's 'conf_lock' superfluous.
Signed-off-by: Andrew Murray <amurray@embedded-bits.co.uk>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Jason Cooper <jason@lakedaemon.net>
Diffstat (limited to 'drivers/pci/host')
-rw-r--r-- | drivers/pci/host/pci-mvebu.c | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/drivers/pci/host/pci-mvebu.c b/drivers/pci/host/pci-mvebu.c index e384e2534594..29d64c9efa85 100644 --- a/drivers/pci/host/pci-mvebu.c +++ b/drivers/pci/host/pci-mvebu.c | |||
@@ -113,7 +113,6 @@ struct mvebu_pcie { | |||
113 | struct mvebu_pcie_port { | 113 | struct mvebu_pcie_port { |
114 | char *name; | 114 | char *name; |
115 | void __iomem *base; | 115 | void __iomem *base; |
116 | spinlock_t conf_lock; | ||
117 | u32 port; | 116 | u32 port; |
118 | u32 lane; | 117 | u32 lane; |
119 | int devfn; | 118 | int devfn; |
@@ -638,7 +637,6 @@ static int mvebu_pcie_wr_conf(struct pci_bus *bus, u32 devfn, | |||
638 | { | 637 | { |
639 | struct mvebu_pcie *pcie = sys_to_pcie(bus->sysdata); | 638 | struct mvebu_pcie *pcie = sys_to_pcie(bus->sysdata); |
640 | struct mvebu_pcie_port *port; | 639 | struct mvebu_pcie_port *port; |
641 | unsigned long flags; | ||
642 | int ret; | 640 | int ret; |
643 | 641 | ||
644 | port = mvebu_pcie_find_port(pcie, bus, devfn); | 642 | port = mvebu_pcie_find_port(pcie, bus, devfn); |
@@ -664,10 +662,8 @@ static int mvebu_pcie_wr_conf(struct pci_bus *bus, u32 devfn, | |||
664 | return PCIBIOS_DEVICE_NOT_FOUND; | 662 | return PCIBIOS_DEVICE_NOT_FOUND; |
665 | 663 | ||
666 | /* Access the real PCIe interface */ | 664 | /* Access the real PCIe interface */ |
667 | spin_lock_irqsave(&port->conf_lock, flags); | ||
668 | ret = mvebu_pcie_hw_wr_conf(port, bus, devfn, | 665 | ret = mvebu_pcie_hw_wr_conf(port, bus, devfn, |
669 | where, size, val); | 666 | where, size, val); |
670 | spin_unlock_irqrestore(&port->conf_lock, flags); | ||
671 | 667 | ||
672 | return ret; | 668 | return ret; |
673 | } | 669 | } |
@@ -678,7 +674,6 @@ static int mvebu_pcie_rd_conf(struct pci_bus *bus, u32 devfn, int where, | |||
678 | { | 674 | { |
679 | struct mvebu_pcie *pcie = sys_to_pcie(bus->sysdata); | 675 | struct mvebu_pcie *pcie = sys_to_pcie(bus->sysdata); |
680 | struct mvebu_pcie_port *port; | 676 | struct mvebu_pcie_port *port; |
681 | unsigned long flags; | ||
682 | int ret; | 677 | int ret; |
683 | 678 | ||
684 | port = mvebu_pcie_find_port(pcie, bus, devfn); | 679 | port = mvebu_pcie_find_port(pcie, bus, devfn); |
@@ -710,10 +705,8 @@ static int mvebu_pcie_rd_conf(struct pci_bus *bus, u32 devfn, int where, | |||
710 | } | 705 | } |
711 | 706 | ||
712 | /* Access the real PCIe interface */ | 707 | /* Access the real PCIe interface */ |
713 | spin_lock_irqsave(&port->conf_lock, flags); | ||
714 | ret = mvebu_pcie_hw_rd_conf(port, bus, devfn, | 708 | ret = mvebu_pcie_hw_rd_conf(port, bus, devfn, |
715 | where, size, val); | 709 | where, size, val); |
716 | spin_unlock_irqrestore(&port->conf_lock, flags); | ||
717 | 710 | ||
718 | return ret; | 711 | return ret; |
719 | } | 712 | } |
@@ -1060,7 +1053,6 @@ static int mvebu_pcie_probe(struct platform_device *pdev) | |||
1060 | mvebu_pcie_set_local_dev_nr(port, 1); | 1053 | mvebu_pcie_set_local_dev_nr(port, 1); |
1061 | 1054 | ||
1062 | port->dn = child; | 1055 | port->dn = child; |
1063 | spin_lock_init(&port->conf_lock); | ||
1064 | mvebu_sw_pci_bridge_init(port); | 1056 | mvebu_sw_pci_bridge_init(port); |
1065 | i++; | 1057 | i++; |
1066 | } | 1058 | } |