summaryrefslogtreecommitdiff
path: root/drivers/block
diff options
context:
space:
mode:
authorTom Rini <trini@ti.com>2014-12-10 09:07:25 -0500
committerTom Rini <trini@ti.com>2014-12-10 09:07:25 -0500
commit9b416a9f4ca7cf5ac4d5f7143d67edde7f7d7326 (patch)
tree3860918ed8ce1a395d7dea349faee5485dd45948 /drivers/block
parentd51aae64236878b72283bd135df716e30f7f5ded (diff)
parent9e89a64fbd0ddfde17741b38cc95fbdc02679d86 (diff)
Merge branch 'master' of git://www.denx.de/git/u-boot-imx
Diffstat (limited to 'drivers/block')
-rw-r--r--drivers/block/dwc_ahsata.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/block/dwc_ahsata.c b/drivers/block/dwc_ahsata.c
index 9a2b547af2..01a4148a52 100644
--- a/drivers/block/dwc_ahsata.c
+++ b/drivers/block/dwc_ahsata.c
@@ -594,22 +594,24 @@ int init_sata(int dev)
int reset_sata(int dev)
{
- struct ahci_probe_ent *probe_ent =
- (struct ahci_probe_ent *)sata_dev_desc[dev].priv;
- struct sata_host_regs *host_mmio =
- (struct sata_host_regs *)probe_ent->mmio_base;
+ struct ahci_probe_ent *probe_ent;
+ struct sata_host_regs *host_mmio;
if (dev < 0 || dev > (CONFIG_SYS_SATA_MAX_DEVICE - 1)) {
printf("The sata index %d is out of ranges\n\r", dev);
return -1;
}
+ probe_ent = (struct ahci_probe_ent *)sata_dev_desc[dev].priv;
+ if (NULL == probe_ent)
+ /* not initialized, so nothing to reset */
+ return 0;
+
+ host_mmio = (struct sata_host_regs *)probe_ent->mmio_base;
setbits_le32(&host_mmio->ghc, SATA_HOST_GHC_HR);
while (readl(&host_mmio->ghc) & SATA_HOST_GHC_HR)
udelay(100);
- disable_sata_clock();
-
return 0;
}