MIPS: Octeon: Replace spinlock with raw_spinlocks in dma-octeon.c.

Signed-off-by: David Daney <ddaney@caviumnetworks.com>
Cc: linux-mips@linux-mips.org
Patchwork: http://patchwork.linux-mips.org/patch/973/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
David Daney 2010-02-18 11:48:20 -08:00 committed by Ralf Baechle
parent 399614226c
commit 541247f4d2
1 changed files with 5 additions and 5 deletions

View File

@ -41,7 +41,7 @@ struct bar1_index_state {
}; };
#ifdef CONFIG_PCI #ifdef CONFIG_PCI
static DEFINE_SPINLOCK(bar1_lock); static DEFINE_RAW_SPINLOCK(bar1_lock);
static struct bar1_index_state bar1_state[32]; static struct bar1_index_state bar1_state[32];
#endif #endif
@ -198,7 +198,7 @@ dma_addr_t octeon_map_dma_mem(struct device *dev, void *ptr, size_t size)
start_index = 31; start_index = 31;
/* Only one processor can access the Bar register at once */ /* Only one processor can access the Bar register at once */
spin_lock_irqsave(&bar1_lock, flags); raw_spin_lock_irqsave(&bar1_lock, flags);
/* Look through Bar1 for existing mapping that will work */ /* Look through Bar1 for existing mapping that will work */
for (index = start_index; index >= 0; index--) { for (index = start_index; index >= 0; index--) {
@ -250,7 +250,7 @@ dma_addr_t octeon_map_dma_mem(struct device *dev, void *ptr, size_t size)
(unsigned long long) physical); (unsigned long long) physical);
done_unlock: done_unlock:
spin_unlock_irqrestore(&bar1_lock, flags); raw_spin_unlock_irqrestore(&bar1_lock, flags);
done: done:
pr_debug("dma_map_single 0x%llx->0x%llx\n", physical, result); pr_debug("dma_map_single 0x%llx->0x%llx\n", physical, result);
return result; return result;
@ -324,14 +324,14 @@ void octeon_unmap_dma_mem(struct device *dev, dma_addr_t dma_addr)
"Attempt to unmap an invalid address (0x%llx)\n", "Attempt to unmap an invalid address (0x%llx)\n",
dma_addr); dma_addr);
spin_lock_irqsave(&bar1_lock, flags); raw_spin_lock_irqsave(&bar1_lock, flags);
bar1_state[index].ref_count--; bar1_state[index].ref_count--;
if (bar1_state[index].ref_count == 0) if (bar1_state[index].ref_count == 0)
octeon_npi_write32(CVMX_NPI_PCI_BAR1_INDEXX(index), 0); octeon_npi_write32(CVMX_NPI_PCI_BAR1_INDEXX(index), 0);
else if (unlikely(bar1_state[index].ref_count < 0)) else if (unlikely(bar1_state[index].ref_count < 0))
panic("dma_unmap_single: Bar1[%u] reference count < 0\n", panic("dma_unmap_single: Bar1[%u] reference count < 0\n",
(int) index); (int) index);
spin_unlock_irqrestore(&bar1_lock, flags); raw_spin_unlock_irqrestore(&bar1_lock, flags);
done: done:
pr_debug("dma_unmap_single 0x%llx\n", dma_addr); pr_debug("dma_unmap_single 0x%llx\n", dma_addr);
return; return;