Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -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);