diff mbox series

[linux,dev-5.3,4/7] fsi: aspeed: Only select OPB0 once

Message ID 20191025010351.30298-5-joel@jms.id.au
State Accepted, archived
Headers show
Series AST2600 FSI speed improvements | expand

Commit Message

Joel Stanley Oct. 25, 2019, 1:03 a.m. UTC
The driver can leve OPB0 selected to save a AHB write per OPB operation.

Signed-off-by: Joel Stanley <joel@jms.id.au>
---
 drivers/fsi/fsi-master-aspeed.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

Comments

Andrew Jeffery Oct. 25, 2019, 1:59 a.m. UTC | #1
On Fri, 25 Oct 2019, at 12:03, Joel Stanley wrote:
> The driver can leve

s/leve/leave/

> OPB0 selected to save a AHB write per OPB operation.
> 
> Signed-off-by: Joel Stanley <joel@jms.id.au>

Reviewed-by: Andrew Jeffery <andrew@aj.id.au>
diff mbox series

Patch

diff --git a/drivers/fsi/fsi-master-aspeed.c b/drivers/fsi/fsi-master-aspeed.c
index d2c01956663f..58b090e2cf46 100644
--- a/drivers/fsi/fsi-master-aspeed.c
+++ b/drivers/fsi/fsi-master-aspeed.c
@@ -197,7 +197,6 @@  static u32 opb_write(void __iomem *base, uint32_t addr, uint32_t val,
 	if (xfer_size < 0)
 		return xfer_size;
 
-	writel(0x1, base + OPB0_SELECT);
 	writel(CMD_WRITE, base + OPB0_RW);
 	writel(xfer_size, base + OPB0_XFER_SIZE);
 	writel(addr, base + OPB0_FSI_ADDR);
@@ -233,7 +232,6 @@  static int opb_read(void __iomem *base, uint32_t addr, size_t size, u32 *out)
 	if (xfer_size < 0)
 		return xfer_size;
 
-	writel(0x1, base + OPB0_SELECT);
 	writel(CMD_READ, base + OPB0_RW);
 	writel(xfer_size, base + OPB0_XFER_SIZE);
 	writel(addr, base + OPB0_FSI_ADDR);
@@ -596,6 +594,13 @@  static int fsi_master_aspeed_probe(struct platform_device *pdev)
 	writel(0x0011bb1b, aspeed->base + OPB0_W_ENDIAN);
 	writel(0xffaa5500, aspeed->base + 0x50);
 
+	/*
+	 * Select OPB0 for all operations.
+	 * Will need to be reworked when enabling DMA or anything that uses
+	 * OPB1.
+	 */
+	writel(0x1, aspeed->base + OPB0_SELECT);
+
 	rc = opb_read(aspeed->base, ctrl_base + FSI_MVER, 4, &raw);
 	if (rc) {
 		dev_err(&pdev->dev, "failed to read hub version\n");