Commit 88314ee7 authored by David S. Miller's avatar David S. Miller

[SPARC64]: Refine PCI strbuf ctx-based flush.

The initial peek read PIO of the match register is just a waste.
Just do the flush writes first, as that is more efficient.
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 7c963ad1
...@@ -422,14 +422,12 @@ static void pci_strbuf_flush(struct pci_strbuf *strbuf, struct pci_iommu *iommu, ...@@ -422,14 +422,12 @@ static void pci_strbuf_flush(struct pci_strbuf *strbuf, struct pci_iommu *iommu,
flushreg = strbuf->strbuf_ctxflush; flushreg = strbuf->strbuf_ctxflush;
matchreg = PCI_STC_CTXMATCH_ADDR(strbuf, ctx); matchreg = PCI_STC_CTXMATCH_ADDR(strbuf, ctx);
if (pci_iommu_read(matchreg) == 0)
goto do_flush_sync;
pci_iommu_write(flushreg, ctx); pci_iommu_write(flushreg, ctx);
if ((val = pci_iommu_read(matchreg)) == 0) val = pci_iommu_read(matchreg);
val &= 0xffff;
if (!val)
goto do_flush_sync; goto do_flush_sync;
val &= 0xffff;
while (val) { while (val) {
if (val & 0x1) if (val & 0x1)
pci_iommu_write(flushreg, ctx); pci_iommu_write(flushreg, ctx);
......
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