Message ID | 1447086757-147706-12-git-send-email-john.garry@huawei.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
On Tuesday 10 November 2015 00:32:16 John Garry wrote: > } > > +static void hisi_sas_init_add(struct hisi_hba *hisi_hba) > +{ > + int i; > + > + for (i = 0; i < hisi_hba->n_phy; i++) > + memcpy(&hisi_hba->phy[i].dev_sas_addr, > + hisi_hba->sas_addr, > + SAS_ADDR_SIZE); > +} I don't know the background here, but I thought it would have to be a different address on each phy. Are you sure this is not the case? Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 09/11/2015 16:28, Arnd Bergmann wrote: > On Tuesday 10 November 2015 00:32:16 John Garry wrote: >> } >> >> +static void hisi_sas_init_add(struct hisi_hba *hisi_hba) >> +{ >> + int i; >> + >> + for (i = 0; i < hisi_hba->n_phy; i++) >> + memcpy(&hisi_hba->phy[i].dev_sas_addr, >> + hisi_hba->sas_addr, >> + SAS_ADDR_SIZE); >> +} > > I don't know the background here, but I thought it would have to > be a different address on each phy. Are you sure this is not the > case? > > Arnd > > . > Hi, Each controller should have a unique SAS addr but not each phy. Regards, john -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/scsi/hisi_sas/hisi_sas.h b/drivers/scsi/hisi_sas/hisi_sas.h index 315fe46..c50384f 100644 --- a/drivers/scsi/hisi_sas/hisi_sas.h +++ b/drivers/scsi/hisi_sas/hisi_sas.h @@ -39,6 +39,7 @@ struct hisi_sas_phy { struct asd_sas_phy sas_phy; + u64 dev_sas_addr; }; struct hisi_sas_port { diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c index 79d6530..9e6eebe 100644 --- a/drivers/scsi/hisi_sas/hisi_sas_main.c +++ b/drivers/scsi/hisi_sas/hisi_sas_main.c @@ -281,6 +281,16 @@ err_out: return NULL; } +static void hisi_sas_init_add(struct hisi_hba *hisi_hba) +{ + int i; + + for (i = 0; i < hisi_hba->n_phy; i++) + memcpy(&hisi_hba->phy[i].dev_sas_addr, + hisi_hba->sas_addr, + SAS_ADDR_SIZE); +} + int hisi_sas_probe(struct platform_device *pdev, const struct hisi_sas_hw *hw) { @@ -334,6 +344,8 @@ int hisi_sas_probe(struct platform_device *pdev, sha->sas_port[i] = &hisi_hba->port[i].sas_port; } + hisi_sas_init_add(hisi_hba); + rc = scsi_add_host(shost, &pdev->dev); if (rc) goto err_out_ha;
The SAS address for the HBA comes from the device tree. Signed-off-by: John Garry <john.garry@huawei.com> --- drivers/scsi/hisi_sas/hisi_sas.h | 1 + drivers/scsi/hisi_sas/hisi_sas_main.c | 12 ++++++++++++ 2 files changed, 13 insertions(+)