Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
[linux-block.git] / drivers / scsi / hisi_sas / hisi_sas_v3_hw.c
index 34f96cc35342bcb4ad2e4208d69b19073e6a9bb2..feda9b54b4434fafcee1ba0fe95d8e03e76067d3 100644 (file)
@@ -2902,11 +2902,12 @@ static ssize_t iopoll_q_cnt_v3_hw_show(struct device *dev,
 }
 static DEVICE_ATTR_RO(iopoll_q_cnt_v3_hw);
 
-static int slave_configure_v3_hw(struct scsi_device *sdev)
+static int device_configure_v3_hw(struct scsi_device *sdev,
+               struct queue_limits *lim)
 {
        struct Scsi_Host *shost = dev_to_shost(&sdev->sdev_gendev);
        struct hisi_hba *hisi_hba = shost_priv(shost);
-       int ret = hisi_sas_slave_configure(sdev);
+       int ret = hisi_sas_device_configure(sdev, lim);
        struct device *dev = hisi_hba->dev;
 
        if (ret)
@@ -2937,6 +2938,11 @@ static struct attribute *host_v3_hw_attrs[] = {
 
 ATTRIBUTE_GROUPS(host_v3_hw);
 
+static const struct attribute_group *sdev_groups_v3_hw[] = {
+       &sas_ata_sdev_attr_group,
+       NULL
+};
+
 #define HISI_SAS_DEBUGFS_REG(x) {#x, x}
 
 struct hisi_sas_debugfs_reg_lu {
@@ -3323,31 +3329,16 @@ static void hisi_sas_map_queues(struct Scsi_Host *shost)
 }
 
 static const struct scsi_host_template sht_v3_hw = {
-       .name                   = DRV_NAME,
-       .proc_name              = DRV_NAME,
-       .module                 = THIS_MODULE,
-       .queuecommand           = sas_queuecommand,
-       .dma_need_drain         = ata_scsi_dma_need_drain,
-       .target_alloc           = sas_target_alloc,
-       .slave_configure        = slave_configure_v3_hw,
+       LIBSAS_SHT_BASE_NO_SLAVE_INIT
+       .device_configure       = device_configure_v3_hw,
        .scan_finished          = hisi_sas_scan_finished,
        .scan_start             = hisi_sas_scan_start,
        .map_queues             = hisi_sas_map_queues,
-       .change_queue_depth     = sas_change_queue_depth,
-       .bios_param             = sas_bios_param,
-       .this_id                = -1,
        .sg_tablesize           = HISI_SAS_SGE_PAGE_CNT,
        .sg_prot_tablesize      = HISI_SAS_SGE_PAGE_CNT,
-       .max_sectors            = SCSI_DEFAULT_MAX_SECTORS,
-       .eh_device_reset_handler = sas_eh_device_reset_handler,
-       .eh_target_reset_handler = sas_eh_target_reset_handler,
        .slave_alloc            = hisi_sas_slave_alloc,
-       .target_destroy         = sas_target_destroy,
-       .ioctl                  = sas_ioctl,
-#ifdef CONFIG_COMPAT
-       .compat_ioctl           = sas_ioctl,
-#endif
        .shost_groups           = host_v3_hw_groups,
+       .sdev_groups            = sdev_groups_v3_hw,
        .tag_alloc_policy       = BLK_TAG_ALLOC_RR,
        .host_reset             = hisi_sas_host_reset,
        .host_tagset            = 1,