diff --git a/components/drivers/include/drivers/scsi.h b/components/drivers/include/drivers/scsi.h index 7b6baaf54e5..9870f308bc7 100644 --- a/components/drivers/include/drivers/scsi.h +++ b/components/drivers/include/drivers/scsi.h @@ -372,6 +372,7 @@ struct rt_scsi_host rt_size_t max_id; rt_size_t max_lun; + rt_bool_t parallel_io; rt_list_t lun_nodes; }; diff --git a/components/drivers/scsi/scsi_cdrom.c b/components/drivers/scsi/scsi_cdrom.c index 93608d1e37c..5549580b621 100644 --- a/components/drivers/scsi/scsi_cdrom.c +++ b/components/drivers/scsi/scsi_cdrom.c @@ -91,7 +91,7 @@ rt_err_t scsi_cdrom_probe(struct rt_scsi_device *sdev) scdrom->sdev = sdev; scdrom->parent.ida = &scsi_cdrom_ida; scdrom->parent.read_only = RT_TRUE; - scdrom->parent.parallel_io = RT_FALSE; + scdrom->parent.parallel_io = sdev->host->parallel_io; scdrom->parent.ops = &scsi_cdrom_ops; scdrom->parent.max_partitions = RT_BLK_PARTITION_NONE; diff --git a/components/drivers/scsi/scsi_sd.c b/components/drivers/scsi/scsi_sd.c index cc509a72154..4a3c501f3ce 100644 --- a/components/drivers/scsi/scsi_sd.c +++ b/components/drivers/scsi/scsi_sd.c @@ -205,7 +205,7 @@ rt_err_t scsi_sd_probe(struct rt_scsi_device *sdev) sdev->priv = ssd; ssd->sdev = sdev; ssd->parent.ida = &scsi_sd_ida; - ssd->parent.parallel_io = RT_FALSE; + ssd->parent.parallel_io = sdev->host->parallel_io; ssd->parent.ops = &scsi_sd_ops; ssd->parent.max_partitions = RT_BLK_PARTITION_MAX;