aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hw/phb3.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/hw/phb3.c b/hw/phb3.c
index b97e150..8742c7a 100644
--- a/hw/phb3.c
+++ b/hw/phb3.c
@@ -3344,8 +3344,17 @@ static int64_t enable_capi_mode(struct phb3 *p, uint64_t pe_number, bool dma_mod
/* aib tx cmd cred */
xscom_read(p->chip_id, p->pci_xscom + 0xd, &reg);
- reg &= ~PPC_BITMASK(42,46);
- reg |= PPC_BIT(47);
+ if (dma_mode) {
+ /*
+ * In DMA mode, increase AIB credit value for ch 2 (DMA read)
+ * for performance reasons
+ */
+ reg &= ~PPC_BITMASK(42, 47);
+ reg |= PPC_BITMASK(43, 45);
+ } else {
+ reg &= ~PPC_BITMASK(42, 46);
+ reg |= PPC_BIT(47);
+ }
xscom_write(p->chip_id, p->pci_xscom + 0xd, reg);
xscom_write(p->chip_id, p->pci_xscom + 0xc, 0xff00000000000000ull);