Skip to content

Commit

Permalink
[SPARC64]: Refine PCI strbuf ctx-based flush.
Browse files Browse the repository at this point in the history
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: David S. Miller <davem@davemloft.net>
  • Loading branch information
David S. Miller committed Jun 1, 2005
1 parent 7c963ad commit 88314ee
Showing 1 changed file with 3 additions and 5 deletions.
8 changes: 3 additions & 5 deletions arch/sparc64/kernel/pci_iommu.c
Original file line number Diff line number Diff line change
Expand Up @@ -422,14 +422,12 @@ static void pci_strbuf_flush(struct pci_strbuf *strbuf, struct pci_iommu *iommu,
flushreg = strbuf->strbuf_ctxflush;
matchreg = PCI_STC_CTXMATCH_ADDR(strbuf, ctx);

if (pci_iommu_read(matchreg) == 0)
goto do_flush_sync;

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;

val &= 0xffff;
while (val) {
if (val & 0x1)
pci_iommu_write(flushreg, ctx);
Expand Down

0 comments on commit 88314ee

Please sign in to comment.