dm: ahci: Unwind the confusing init code
Two AHCI drivers use SCSI with CONFIG_DM_SCSI. The SCSI uclass calls scsi_low_level_init() which is implemented by ahci.c. If CONFIG_SCSI_AHCI_PLAT is defined it does one thing and if it is not it does something else. We don't need to call through scsi_low_level_init() to get the init completed. Instead, adjust the two drivers to call into AHCI directly. Drop the post-probe init in the SCSI uclass. This means that driver model doesn't need to use scsi_low_level_init(). It is a legacy function and driver model should use a driver's probe() method instead. While we are here, add a comment to the top of the file explaining what ahci.c does. Signed-off-by:Simon Glass <sjg@chromium.org> Reviewed-by:
Bin Meng <bmeng.cn@gmail.com>
Showing
- drivers/ata/ahci.c 20 additions, 6 deletionsdrivers/ata/ahci.c
- drivers/ata/dwc_ahci.c 5 additions, 1 deletiondrivers/ata/dwc_ahci.c
- drivers/ata/sata_ceva.c 2 additions, 1 deletiondrivers/ata/sata_ceva.c
- drivers/scsi/scsi-uclass.c 0 additions, 8 deletionsdrivers/scsi/scsi-uclass.c
- include/ahci.h 14 additions, 0 deletionsinclude/ahci.h
- include/scsi.h 1 addition, 3 deletionsinclude/scsi.h
Please register or sign in to comment