|
@@ -67,6 +67,9 @@
|
|
|
#define PORTAXICFG 0x000000bc
|
|
|
#define PORTAXICFG_OUTTRANS_SET(dst, src) \
|
|
|
(((dst) & ~0x00f00000) | (((u32)(src) << 0x14) & 0x00f00000))
|
|
|
+#define PORTRANSCFG 0x000000c8
|
|
|
+#define PORTRANSCFG_RXWM_SET(dst, src) \
|
|
|
+ (((dst) & ~0x0000007f) | (((u32)(src)) & 0x0000007f))
|
|
|
|
|
|
/* SATA host controller AXI CSR */
|
|
|
#define INT_SLV_TMOMASK 0x00000010
|
|
@@ -176,6 +179,10 @@ static void xgene_ahci_set_phy_cfg(struct xgene_ahci_context *ctx, int channel)
|
|
|
val = PORTAXICFG_OUTTRANS_SET(val, 0xe); /* Set outstanding */
|
|
|
writel(val, mmio + PORTAXICFG);
|
|
|
readl(mmio + PORTAXICFG); /* Force a barrier */
|
|
|
+ /* Set the watermark threshold of the receive FIFO */
|
|
|
+ val = readl(mmio + PORTRANSCFG);
|
|
|
+ val = PORTRANSCFG_RXWM_SET(val, 0x30);
|
|
|
+ writel(val, mmio + PORTRANSCFG);
|
|
|
}
|
|
|
|
|
|
/**
|