Message ID | 1320021522-20525-1-git-send-email-albert.u.boot@aribaud.net |
---|---|
State | Rejected |
Delegated to: | Albert ARIBAUD |
Headers | show |
Le 31/10/2011 01:38, Albert ARIBAUD a écrit : > Although fast SoCs like kirkwood can cope without it, > this delay is required by orion5x-based chips, either > because they are slower, or because they run U-Boot > from NOR, or both. > > Signed-off-by: Albert ARIBAUD<albert.u.boot@aribaud.net> Please disregard my fit of 'post hoc ergo propter hoc' -- actually, IDE works just fine on Orion without this "fix" of mine; the issues I have with IDE sometimes not responding are due to some meddling from a CPLD on the ED Mini V2, not to any timing associated with this patch. I've marked V1 and V2 as Rejected in patchwork. Amicalement,
diff --git a/drivers/block/mvsata_ide.c b/drivers/block/mvsata_ide.c index 1be395f..cd602f1 100644 --- a/drivers/block/mvsata_ide.c +++ b/drivers/block/mvsata_ide.c @@ -122,6 +122,7 @@ static int mvsata_ide_initialize_port(struct mvsata_port_registers *port) writel(MVSATA_EDMA_CMD_ATA_RST, &port->edma_cmd); udelay(25); /* taken from original marvell port */ writel(0, &port->edma_cmd); + udelay(10); /* wait after reset was acked -- required for orion5x */ /* Set control IPM to 3 (no low power) and DET to 1 (initialize) */ control = readl(&port->scontrol);
Although fast SoCs like kirkwood can cope without it, this delay is required by orion5x-based chips, either because they are slower, or because they run U-Boot from NOR, or both. Signed-off-by: Albert ARIBAUD <albert.u.boot@aribaud.net> --- Patch history: V2: increase delay to 10 us for reliable ide reset from NOR FLASH V1: initial submission Commit 70c55f5ab324d43093f1c8745462d92042b7306d had introduced resetting the EDMA port on IDE reset. This obviously worked for kirkwoods, but not for orion5x Ed Mini V2, where it made ide_reset() fail. Adding a slight delay after returning port from reset to normal mode made ide_reset() work again correctly. Please check and confirm it does not break kirkwoods! drivers/block/mvsata_ide.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)