diff options
author | John Garry <john.garry@huawei.com> | 2015-11-17 19:50:41 +0300 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2015-11-26 06:12:57 +0300 |
commit | af740dbe659f1eee07a18801f89d9b2e2f9b5329 (patch) | |
tree | 0f51e75d3664bfed407f2db23c2cc0e6e40d9eb8 /drivers | |
parent | 7e9080e1c68dba3324ba307395b8dcb80bec308c (diff) | |
download | linux-af740dbe659f1eee07a18801f89d9b2e2f9b5329.tar.xz |
hisi_sas: Add hisi sas device type
Include initialisation.
Signed-off-by: John Garry <john.garry@huawei.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/scsi/hisi_sas/hisi_sas.h | 12 | ||||
-rw-r--r-- | drivers/scsi/hisi_sas/hisi_sas_main.c | 6 |
2 files changed, 18 insertions, 0 deletions
diff --git a/drivers/scsi/hisi_sas/hisi_sas.h b/drivers/scsi/hisi_sas/hisi_sas.h index 62bc6f32b734..5ac5a82edfec 100644 --- a/drivers/scsi/hisi_sas/hisi_sas.h +++ b/drivers/scsi/hisi_sas/hisi_sas.h @@ -37,6 +37,11 @@ #define HISI_SAS_NAME_LEN 32 + +enum dev_status { + HISI_SAS_DEV_NORMAL, + HISI_SAS_DEV_EH, +}; struct hisi_sas_phy { struct asd_sas_phy sas_phy; u64 dev_sas_addr; @@ -51,6 +56,12 @@ struct hisi_sas_cq { int id; }; +struct hisi_sas_device { + enum sas_device_type dev_type; + u64 device_id; + u8 dev_status; +}; + struct hisi_sas_slot { }; @@ -89,6 +100,7 @@ struct hisi_hba { char *int_names; struct dma_pool *sge_page_pool; + struct hisi_sas_device devices[HISI_SAS_MAX_DEVICES]; struct dma_pool *command_table_pool; struct dma_pool *status_buffer_pool; struct hisi_sas_cmd_hdr *cmd_hdr[HISI_SAS_MAX_QUEUES]; diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c index 7f32c6b76d05..21111d4b854f 100644 --- a/drivers/scsi/hisi_sas/hisi_sas_main.c +++ b/drivers/scsi/hisi_sas/hisi_sas_main.c @@ -57,6 +57,12 @@ static int hisi_sas_alloc(struct hisi_hba *hisi_hba, struct Scsi_Host *shost) struct platform_device *pdev = hisi_hba->pdev; struct device *dev = &pdev->dev; + for (i = 0; i < HISI_SAS_MAX_DEVICES; i++) { + hisi_hba->devices[i].dev_type = SAS_PHY_UNUSED; + hisi_hba->devices[i].device_id = i; + hisi_hba->devices[i].dev_status = HISI_SAS_DEV_NORMAL; + } + for (i = 0; i < hisi_hba->queue_count; i++) { struct hisi_sas_cq *cq = &hisi_hba->cq[i]; |