diff mbox

[U-Boot,5/7] dm: scsi: ahci: fill max_lun and max_id members of scsi_platdata

Message ID 1490358287-15304-6-git-send-email-jjhiblot@ti.com
State Superseded
Delegated to: Simon Glass
Headers show

Commit Message

Jean-Jacques Hiblot March 24, 2017, 12:24 p.m. UTC
Those 2 values are required for proper operation of the DM_SCSI version of
scsi_scan().

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
---
 drivers/block/ahci.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

Comments

Simon Glass April 1, 2017, 4:21 a.m. UTC | #1
Hi,

On 24 March 2017 at 06:24, Jean-Jacques Hiblot <jjhiblot@ti.com> wrote:
> Those 2 values are required for proper operation of the DM_SCSI version of
> scsi_scan().
>
> Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
> ---
>  drivers/block/ahci.c | 12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/block/ahci.c b/drivers/block/ahci.c
> index 3fa14a7..3c5359f 100644
> --- a/drivers/block/ahci.c
> +++ b/drivers/block/ahci.c
> @@ -971,7 +971,9 @@ void scsi_low_level_init(int busdevfunc)
>  {
>         int i;
>         u32 linkmap;
> -
> +#ifdef CONFIG_DM_SCSI
> +       struct scsi_platdata *plat = dev_get_platdata(dev);
> +#endif
>  #ifndef CONFIG_SCSI_AHCI_PLAT
>  # if defined(CONFIG_DM_PCI)
>         struct udevice *dev;
> @@ -990,6 +992,13 @@ void scsi_low_level_init(int busdevfunc)
>
>         linkmap = probe_ent->link_port_map;
>
> +#ifdef CONFIG_DM_SCSI

We should not be touching or using scsi_low_level_init() with DM.
There is a patch I just reviewed which seems to do a similar thing:

scsi: move base, max_lun and max_id to uclass plat data

> +       if (plat) {
> +               plat->max_lun = 1;
> +               plat->max_id = ffs(linkmap);
> +       }
> +#endif
> +
>         for (i = 0; i < CONFIG_SYS_SCSI_MAX_SCSI_ID; i++) {
>                 if (((linkmap >> i) & 0x01)) {
>                         if (ahci_port_start((u8) i)) {
> @@ -1047,6 +1056,7 @@ err_out:
>
>  void __weak scsi_init(void)
>  {
> +       printf("AHCI\n");
>  }
>
>  #endif
> --
> 1.9.1
>

Regards,
Simon
diff mbox

Patch

diff --git a/drivers/block/ahci.c b/drivers/block/ahci.c
index 3fa14a7..3c5359f 100644
--- a/drivers/block/ahci.c
+++ b/drivers/block/ahci.c
@@ -971,7 +971,9 @@  void scsi_low_level_init(int busdevfunc)
 {
 	int i;
 	u32 linkmap;
-
+#ifdef CONFIG_DM_SCSI
+	struct scsi_platdata *plat = dev_get_platdata(dev);
+#endif
 #ifndef CONFIG_SCSI_AHCI_PLAT
 # if defined(CONFIG_DM_PCI)
 	struct udevice *dev;
@@ -990,6 +992,13 @@  void scsi_low_level_init(int busdevfunc)
 
 	linkmap = probe_ent->link_port_map;
 
+#ifdef CONFIG_DM_SCSI
+	if (plat) {
+		plat->max_lun = 1;
+		plat->max_id = ffs(linkmap);
+	}
+#endif
+
 	for (i = 0; i < CONFIG_SYS_SCSI_MAX_SCSI_ID; i++) {
 		if (((linkmap >> i) & 0x01)) {
 			if (ahci_port_start((u8) i)) {
@@ -1047,6 +1056,7 @@  err_out:
 
 void __weak scsi_init(void)
 {
+	printf("AHCI\n");
 }
 
 #endif