From 64563f53332dd8e99b86e8bc8280e1e3b9c94df5 Mon Sep 17 00:00:00 2001 From: Jean-Jacques Hiblot Date: Fri, 6 Apr 2018 11:13:53 +0200 Subject: [PATCH] dwc_ahci: Fix breakage The dwc_ahci has been broken for quite some time now. The breakage has been introduced by the series "dm: scsi: Enhance SCSI support for driver model" Use ahci_bind_scsi() and ahci_probe_scsi() to properly bind and probe the driver. Signed-off-by: Jean-Jacques Hiblot --- drivers/ata/dwc_ahci.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/drivers/ata/dwc_ahci.c b/drivers/ata/dwc_ahci.c index 029b7784f6..6c7371e3ed 100644 --- a/drivers/ata/dwc_ahci.c +++ b/drivers/ata/dwc_ahci.c @@ -25,17 +25,18 @@ struct dwc_ahci_priv { void *wrapper_base; }; +static int dwc_ahci_bind(struct udevice *dev) +{ + struct udevice *scsi_dev; + + return ahci_bind_scsi(dev, &scsi_dev); +} + static int dwc_ahci_ofdata_to_platdata(struct udevice *dev) { struct dwc_ahci_priv *priv = dev_get_priv(dev); - struct scsi_platdata *plat = dev_get_uclass_platdata(dev); fdt_addr_t addr; - plat->max_id = fdtdec_get_uint(gd->fdt_blob, dev_of_offset(dev), - "max-id", CONFIG_SYS_SCSI_MAX_SCSI_ID); - plat->max_lun = fdtdec_get_uint(gd->fdt_blob, dev_of_offset(dev), - "max-lun", CONFIG_SYS_SCSI_MAX_LUN); - priv->base = map_physmem(devfdt_get_addr(dev), sizeof(void *), MAP_NOCACHE); @@ -81,11 +82,7 @@ static int dwc_ahci_probe(struct udevice *dev) writel(val, priv->wrapper_base + TI_SATA_SYSCONFIG); } - ret = ahci_init_dm(dev, priv->base); - if (ret) - return ret; - - return ahci_start_ports_dm(dev); + return ahci_probe_scsi(dev, (ulong)priv->base); } static const struct udevice_id dwc_ahci_ids[] = { @@ -95,11 +92,11 @@ static const struct udevice_id dwc_ahci_ids[] = { U_BOOT_DRIVER(dwc_ahci) = { .name = "dwc_ahci", - .id = UCLASS_SCSI, + .id = UCLASS_AHCI, .of_match = dwc_ahci_ids, + .bind = dwc_ahci_bind, .ofdata_to_platdata = dwc_ahci_ofdata_to_platdata, .ops = &scsi_ops, .probe = dwc_ahci_probe, .priv_auto_alloc_size = sizeof(struct dwc_ahci_priv), - .flags = DM_FLAG_ALLOC_PRIV_DMA, }; -- 2.39.5