Commit b7e2ac61 authored by Paul Mundt's avatar Paul Mundt

sh: pci: Disable MWI and make pci_dma_burst_advice() a bit more accurate.

None of the SH PCI controllers support MWI, it is always treated as a
direct memory write, so simply disable it outright. In the case of the
PCI cache line size, consult that for the pci_dma_burst_advice()
strategy, and switch over to PCI_DMA_BURST_MULTIPLE, as PPC64.
Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent d076d2bd
...@@ -89,12 +89,28 @@ static inline void pcibios_penalize_isa_irq(int irq, int active) ...@@ -89,12 +89,28 @@ static inline void pcibios_penalize_isa_irq(int irq, int active)
#endif #endif
#ifdef CONFIG_PCI #ifdef CONFIG_PCI
/*
* None of the SH PCI controllers support MWI, it is always treated as a
* direct memory write.
*/
#define PCI_DISABLE_MWI
static inline void pci_dma_burst_advice(struct pci_dev *pdev, static inline void pci_dma_burst_advice(struct pci_dev *pdev,
enum pci_dma_burst_strategy *strat, enum pci_dma_burst_strategy *strat,
unsigned long *strategy_parameter) unsigned long *strategy_parameter)
{ {
*strat = PCI_DMA_BURST_INFINITY; unsigned long cacheline_size;
*strategy_parameter = ~0UL; u8 byte;
pci_read_config_byte(pdev, PCI_CACHE_LINE_SIZE, &byte);
if (byte == 0)
cacheline_size = L1_CACHE_BYTES;
else
cacheline_size = byte << 2;
*strat = PCI_DMA_BURST_MULTIPLE;
*strategy_parameter = cacheline_size;
} }
#endif #endif
......
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