diff mbox

[U-Boot,v1,5/9] block: ahci: Don't enable port interrupts

Message ID 1435582696-30068-6-git-send-email-sr@denx.de
State Accepted
Delegated to: Stefan Roese
Headers show

Commit Message

Stefan Roese June 29, 2015, 12:58 p.m. UTC
This patch changes the initialization of the AHCI controller to not
enable the default interrupts (DEF_PORT_IRQ). As interrupts are
not used in U-Boot in general, this should not break the common AHCI
driver operation.

This change is needed to support the Marvell Armada 38x AHCI
controller. With interrupts enabled, this results in timeouts in
ahci_device_data_io(). Not enabling these interrupts fixes this
problem and the common AHCI driver works fine.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Tom Rini <trini@konsulko.com>
Cc: Hans de Goede <hdegoede@redhat.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Luka Perkov <luka.perkov@sartura.hr>
---

 drivers/block/ahci.c | 3 ---
 1 file changed, 3 deletions(-)

Comments

Simon Glass June 29, 2015, 4:03 p.m. UTC | #1
On 29 June 2015 at 06:58, Stefan Roese <sr@denx.de> wrote:
> This patch changes the initialization of the AHCI controller to not
> enable the default interrupts (DEF_PORT_IRQ). As interrupts are
> not used in U-Boot in general, this should not break the common AHCI
> driver operation.
>
> This change is needed to support the Marvell Armada 38x AHCI
> controller. With interrupts enabled, this results in timeouts in
> ahci_device_data_io(). Not enabling these interrupts fixes this
> problem and the common AHCI driver works fine.
>
> Signed-off-by: Stefan Roese <sr@denx.de>
> Cc: Tom Rini <trini@konsulko.com>
> Cc: Hans de Goede <hdegoede@redhat.com>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Luka Perkov <luka.perkov@sartura.hr>
> ---
>
>  drivers/block/ahci.c | 3 ---
>  1 file changed, 3 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>

>
> diff --git a/drivers/block/ahci.c b/drivers/block/ahci.c
> index 4fb846a..9bab0fc 100644
> --- a/drivers/block/ahci.c
> +++ b/drivers/block/ahci.c
> @@ -299,9 +299,6 @@ static int ahci_host_init(struct ahci_probe_ent *probe_ent)
>
>                 writel(1 << i, mmio + HOST_IRQ_STAT);
>
> -               /* set irq mask (enables interrupts) */
> -               writel(DEF_PORT_IRQ, port_mmio + PORT_IRQ_MASK);
> -
>                 /* register linkup ports */
>                 tmp = readl(port_mmio + PORT_SCR_STAT);
>                 debug("SATA port %d status: 0x%x\n", i, tmp);
> --
> 2.4.5
>
diff mbox

Patch

diff --git a/drivers/block/ahci.c b/drivers/block/ahci.c
index 4fb846a..9bab0fc 100644
--- a/drivers/block/ahci.c
+++ b/drivers/block/ahci.c
@@ -299,9 +299,6 @@  static int ahci_host_init(struct ahci_probe_ent *probe_ent)
 
 		writel(1 << i, mmio + HOST_IRQ_STAT);
 
-		/* set irq mask (enables interrupts) */
-		writel(DEF_PORT_IRQ, port_mmio + PORT_IRQ_MASK);
-
 		/* register linkup ports */
 		tmp = readl(port_mmio + PORT_SCR_STAT);
 		debug("SATA port %d status: 0x%x\n", i, tmp);