ahci: Don't start command DMA engine before buffers are set
authorRoger Quadros <rogerq@ti.com>
Tue, 23 Sep 2014 15:07:01 +0000 (18:07 +0300)
committerTom Rini <trini@ti.com>
Fri, 10 Oct 2014 13:44:41 +0000 (09:44 -0400)
The DMA/FIS buffers are set in ahci_port_start() which is called
after ahci_host_init(). So don't start the DMA engine here
(i.e. don't set FIS_RX)

This fixes the following error at kernel boot on OMAP platforms (e.g. DRA7x)
WARNING: CPU: 0 PID: 0 at drivers/bus/omap_l3_noc.c:147 l3_interrupt_handler+0x260/0x358()
44000000.ocp:L3 Custom Error: MASTER SATA TARGET GPMC (Idle): Data Access in User mode during Functional access

Signed-off-by: Roger Quadros <rogerq@ti.com>
drivers/block/ahci.c

index dce99adc6b58cfbcf00530c0d84c1963357a5aaf..a93a8e1c04b797fe4d8cce58b3e232721c886519 100644 (file)
@@ -229,7 +229,6 @@ static int ahci_host_init(struct ahci_probe_ent *probe_ent)
                 * already be on in the command register.
                 */
                cmd = readl(port_mmio + PORT_CMD);
-               cmd |= PORT_CMD_FIS_RX;
                cmd |= PORT_CMD_SPIN_UP;
                writel_with_flush(cmd, port_mmio + PORT_CMD);