mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 14:12:06 +00:00
MIPS: pci-rt3883: Remove odd locking in PCI config space access code
Caller (generic PCI code) already do proper locking so no need to add another one here. Local PCI read/write functions are never called simultaneously, also they do not require synchronization with the PCI controller ops, since they are used before the controller registration. Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com> Cc: Linux MIPS <linux-mips@linux-mips.org> Cc: Gabor Juhos <juhosg@openwrt.org> Patchwork: https://patchwork.linux-mips.org/patch/7603/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
490a0ece6c
commit
e5067c718b
@ -61,7 +61,6 @@
|
||||
|
||||
struct rt3883_pci_controller {
|
||||
void __iomem *base;
|
||||
spinlock_t lock;
|
||||
|
||||
struct device_node *intc_of_node;
|
||||
struct irq_domain *irq_domain;
|
||||
@ -111,10 +110,8 @@ static u32 rt3883_pci_read_cfg32(struct rt3883_pci_controller *rpc,
|
||||
|
||||
address = rt3883_pci_get_cfgaddr(bus, slot, func, reg);
|
||||
|
||||
spin_lock_irqsave(&rpc->lock, flags);
|
||||
rt3883_pci_w32(rpc, address, RT3883_PCI_REG_CFGADDR);
|
||||
ret = rt3883_pci_r32(rpc, RT3883_PCI_REG_CFGDATA);
|
||||
spin_unlock_irqrestore(&rpc->lock, flags);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -128,10 +125,8 @@ static void rt3883_pci_write_cfg32(struct rt3883_pci_controller *rpc,
|
||||
|
||||
address = rt3883_pci_get_cfgaddr(bus, slot, func, reg);
|
||||
|
||||
spin_lock_irqsave(&rpc->lock, flags);
|
||||
rt3883_pci_w32(rpc, address, RT3883_PCI_REG_CFGADDR);
|
||||
rt3883_pci_w32(rpc, val, RT3883_PCI_REG_CFGDATA);
|
||||
spin_unlock_irqrestore(&rpc->lock, flags);
|
||||
}
|
||||
|
||||
static void rt3883_pci_irq_handler(unsigned int irq, struct irq_desc *desc)
|
||||
@ -252,10 +247,8 @@ static int rt3883_pci_config_read(struct pci_bus *bus, unsigned int devfn,
|
||||
address = rt3883_pci_get_cfgaddr(bus->number, PCI_SLOT(devfn),
|
||||
PCI_FUNC(devfn), where);
|
||||
|
||||
spin_lock_irqsave(&rpc->lock, flags);
|
||||
rt3883_pci_w32(rpc, address, RT3883_PCI_REG_CFGADDR);
|
||||
data = rt3883_pci_r32(rpc, RT3883_PCI_REG_CFGDATA);
|
||||
spin_unlock_irqrestore(&rpc->lock, flags);
|
||||
|
||||
switch (size) {
|
||||
case 1:
|
||||
@ -288,7 +281,6 @@ static int rt3883_pci_config_write(struct pci_bus *bus, unsigned int devfn,
|
||||
address = rt3883_pci_get_cfgaddr(bus->number, PCI_SLOT(devfn),
|
||||
PCI_FUNC(devfn), where);
|
||||
|
||||
spin_lock_irqsave(&rpc->lock, flags);
|
||||
rt3883_pci_w32(rpc, address, RT3883_PCI_REG_CFGADDR);
|
||||
data = rt3883_pci_r32(rpc, RT3883_PCI_REG_CFGDATA);
|
||||
|
||||
@ -307,7 +299,6 @@ static int rt3883_pci_config_write(struct pci_bus *bus, unsigned int devfn,
|
||||
}
|
||||
|
||||
rt3883_pci_w32(rpc, data, RT3883_PCI_REG_CFGDATA);
|
||||
spin_unlock_irqrestore(&rpc->lock, flags);
|
||||
|
||||
return PCIBIOS_SUCCESSFUL;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user