Message ID | 1490358287-15304-6-git-send-email-jjhiblot@ti.com |
---|---|
State | Superseded |
Delegated to: | Simon Glass |
Headers | show |
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 --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
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(-)