aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/isci/task.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/isci/task.c')
-rw-r--r--drivers/scsi/isci/task.c20
1 files changed, 5 insertions, 15 deletions
diff --git a/drivers/scsi/isci/task.c b/drivers/scsi/isci/task.c
index e011d668949d..c6f1ffd713a8 100644
--- a/drivers/scsi/isci/task.c
+++ b/drivers/scsi/isci/task.c
@@ -273,15 +273,14 @@ static enum sci_status isci_task_request_build(
273 enum sci_status status = SCI_FAILURE; 273 enum sci_status status = SCI_FAILURE;
274 struct isci_request *request = NULL; 274 struct isci_request *request = NULL;
275 struct isci_remote_device *isci_device; 275 struct isci_remote_device *isci_device;
276/* struct sci_sas_identify_address_frame_protocols dev_protocols; */ 276 struct domain_device *dev;
277 struct smp_discover_response_protocols dev_protocols;
278
279 277
280 dev_dbg(&isci_host->pdev->dev, 278 dev_dbg(&isci_host->pdev->dev,
281 "%s: isci_tmf = %p\n", __func__, isci_tmf); 279 "%s: isci_tmf = %p\n", __func__, isci_tmf);
282 280
283 isci_device = isci_tmf->device; 281 isci_device = isci_tmf->device;
284 sci_device = &isci_device->sci; 282 sci_device = &isci_device->sci;
283 dev = isci_device->domain_dev;
285 284
286 /* do common allocation and init of request object. */ 285 /* do common allocation and init of request object. */
287 status = isci_request_alloc_tmf( 286 status = isci_request_alloc_tmf(
@@ -319,16 +318,8 @@ static enum sci_status isci_task_request_build(
319 request 318 request
320 ); 319 );
321 320
322 scic_remote_device_get_protocols( 321 /* XXX convert to get this from task->tproto like other drivers */
323 sci_device, 322 if (dev->dev_type == SAS_END_DEV) {
324 &dev_protocols
325 );
326
327 /* let the core do it's protocol
328 * specific construction.
329 */
330 if (dev_protocols.u.bits.attached_ssp_target) {
331
332 isci_tmf->proto = SAS_PROTOCOL_SSP; 323 isci_tmf->proto = SAS_PROTOCOL_SSP;
333 status = scic_task_request_construct_ssp( 324 status = scic_task_request_construct_ssp(
334 request->sci_request_handle 325 request->sci_request_handle
@@ -337,8 +328,7 @@ static enum sci_status isci_task_request_build(
337 goto errout; 328 goto errout;
338 } 329 }
339 330
340 if (dev_protocols.u.bits.attached_stp_target) { 331 if (dev->dev_type == SATA_DEV || (dev->tproto & SAS_PROTOCOL_STP)) {
341
342 isci_tmf->proto = SAS_PROTOCOL_SATA; 332 isci_tmf->proto = SAS_PROTOCOL_SATA;
343 status = isci_sata_management_task_request_build(request); 333 status = isci_sata_management_task_request_build(request);
344 334