isci: unify isci_remote_device and scic_sds_remote_device

Remove the distinction between these two implementations and unify on
isci_remote_device (local instances named idev).

Reported-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
diff --git a/drivers/scsi/isci/request.c b/drivers/scsi/isci/request.c
index 2d29abf..90ead66 100644
--- a/drivers/scsi/isci/request.c
+++ b/drivers/scsi/isci/request.c
@@ -209,17 +209,17 @@
 	struct scu_task_context *task_context)
 {
 	dma_addr_t dma_addr;
-	struct scic_sds_remote_device *target_device;
+	struct isci_remote_device *idev;
 	struct isci_port *iport;
 
-	target_device = scic_sds_request_get_device(ireq);
+	idev = scic_sds_request_get_device(ireq);
 	iport = scic_sds_request_get_port(ireq);
 
 	/* Fill in the TC with the its required data */
 	task_context->abort = 0;
 	task_context->priority = 0;
 	task_context->initiator_request = 1;
-	task_context->connection_rate = target_device->connection_rate;
+	task_context->connection_rate = idev->connection_rate;
 	task_context->protocol_engine_index =
 		scic_sds_controller_get_protocol_engine_group(controller);
 	task_context->logical_port_index = scic_sds_port_get_index(iport);
@@ -227,8 +227,7 @@
 	task_context->valid = SCU_TASK_CONTEXT_VALID;
 	task_context->context_type = SCU_TASK_CONTEXT_TYPE;
 
-	task_context->remote_node_index =
-		scic_sds_remote_device_get_index(ireq->target_device);
+	task_context->remote_node_index = scic_sds_remote_device_get_index(idev);
 	task_context->command_code = 0;
 
 	task_context->link_layer_control = 0;
@@ -348,17 +347,17 @@
 	struct scu_task_context *task_context)
 {
 	dma_addr_t dma_addr;
-	struct scic_sds_remote_device *target_device;
+	struct isci_remote_device *idev;
 	struct isci_port *iport;
 
-	target_device = scic_sds_request_get_device(ireq);
+	idev = scic_sds_request_get_device(ireq);
 	iport = scic_sds_request_get_port(ireq);
 
 	/* Fill in the TC with the its required data */
 	task_context->abort = 0;
 	task_context->priority = SCU_TASK_PRIORITY_NORMAL;
 	task_context->initiator_request = 1;
-	task_context->connection_rate = target_device->connection_rate;
+	task_context->connection_rate = idev->connection_rate;
 	task_context->protocol_engine_index =
 		scic_sds_controller_get_protocol_engine_group(controller);
 	task_context->logical_port_index =
@@ -367,8 +366,7 @@
 	task_context->valid = SCU_TASK_CONTEXT_VALID;
 	task_context->context_type = SCU_TASK_CONTEXT_TYPE;
 
-	task_context->remote_node_index =
-		scic_sds_remote_device_get_index(ireq->target_device);
+	task_context->remote_node_index = scic_sds_remote_device_get_index(idev);
 	task_context->command_code = 0;
 
 	task_context->link_layer_control = 0;
@@ -2850,7 +2848,7 @@
 static void scic_sds_request_started_state_enter(struct sci_base_state_machine *sm)
 {
 	struct isci_request *ireq = container_of(sm, typeof(*ireq), sm);
-	struct domain_device *dev = sci_dev_to_domain(ireq->target_device);
+	struct domain_device *dev = ireq->target_device->domain_dev;
 	struct sas_task *task;
 
 	/* XXX as hch said always creating an internal sas_task for tmf
@@ -2988,12 +2986,12 @@
 
 static void
 scic_sds_general_request_construct(struct scic_sds_controller *scic,
-				   struct scic_sds_remote_device *sci_dev,
+				   struct isci_remote_device *idev,
 				   struct isci_request *ireq)
 {
 	sci_init_sm(&ireq->sm, scic_sds_request_state_table, SCI_REQ_INIT);
 
-	ireq->target_device = sci_dev;
+	ireq->target_device = idev;
 	ireq->protocol = SCIC_NO_PROTOCOL;
 	ireq->saved_rx_frame_index = SCU_INVALID_FRAME_INDEX;
 
@@ -3004,16 +3002,16 @@
 
 static enum sci_status
 scic_io_request_construct(struct scic_sds_controller *scic,
-			  struct scic_sds_remote_device *sci_dev,
+			  struct isci_remote_device *idev,
 			  struct isci_request *ireq)
 {
-	struct domain_device *dev = sci_dev_to_domain(sci_dev);
+	struct domain_device *dev = idev->domain_dev;
 	enum sci_status status = SCI_SUCCESS;
 
 	/* Build the common part of the request */
-	scic_sds_general_request_construct(scic, sci_dev, ireq);
+	scic_sds_general_request_construct(scic, idev, ireq);
 
-	if (sci_dev->rnc.remote_node_index == SCIC_SDS_REMOTE_NODE_CONTEXT_INVALID_INDEX)
+	if (idev->rnc.remote_node_index == SCIC_SDS_REMOTE_NODE_CONTEXT_INVALID_INDEX)
 		return SCI_FAILURE_INVALID_REMOTE_DEVICE;
 
 	if (dev->dev_type == SAS_END_DEV)
@@ -3031,14 +3029,14 @@
 }
 
 enum sci_status scic_task_request_construct(struct scic_sds_controller *scic,
-					    struct scic_sds_remote_device *sci_dev,
+					    struct isci_remote_device *idev,
 					    u16 io_tag, struct isci_request *ireq)
 {
-	struct domain_device *dev = sci_dev_to_domain(sci_dev);
+	struct domain_device *dev = idev->domain_dev;
 	enum sci_status status = SCI_SUCCESS;
 
 	/* Build the common part of the request */
-	scic_sds_general_request_construct(scic, sci_dev, ireq);
+	scic_sds_general_request_construct(scic, idev, ireq);
 
 	if (dev->dev_type == SAS_END_DEV ||
 	    dev->dev_type == SATA_DEV || (dev->tproto & SAS_PROTOCOL_STP)) {
@@ -3102,7 +3100,7 @@
 			      struct sas_task *task)
 {
 	struct scatterlist *sg = &task->smp_task.smp_req;
-	struct scic_sds_remote_device *sci_dev;
+	struct isci_remote_device *idev;
 	struct scu_task_context *task_context;
 	struct isci_port *iport;
 	struct smp_req *smp_req;
@@ -3147,7 +3145,7 @@
 
 	task_context = ireq->tc;
 
-	sci_dev = scic_sds_request_get_device(ireq);
+	idev = scic_sds_request_get_device(ireq);
 	iport = scic_sds_request_get_port(ireq);
 
 	/*
@@ -3156,7 +3154,7 @@
 	 */
 	task_context->priority = 0;
 	task_context->initiator_request = 1;
-	task_context->connection_rate = sci_dev->connection_rate;
+	task_context->connection_rate = idev->connection_rate;
 	task_context->protocol_engine_index =
 		scic_sds_controller_get_protocol_engine_group(scic);
 	task_context->logical_port_index = scic_sds_port_get_index(iport);
@@ -3166,7 +3164,7 @@
 	task_context->context_type = SCU_TASK_CONTEXT_TYPE;
 
 	/* 04h */
-	task_context->remote_node_index = sci_dev->rnc.remote_node_index;
+	task_context->remote_node_index = idev->rnc.remote_node_index;
 	task_context->command_code = 0;
 	task_context->task_type = SCU_TASK_TYPE_SMP_REQUEST;
 
@@ -3257,17 +3255,16 @@
  */
 static enum sci_status isci_io_request_build(struct isci_host *isci_host,
 					     struct isci_request *request,
-					     struct isci_remote_device *isci_device)
+					     struct isci_remote_device *idev)
 {
 	enum sci_status status = SCI_SUCCESS;
 	struct sas_task *task = isci_request_access_task(request);
-	struct scic_sds_remote_device *sci_device = &isci_device->sci;
 
 	dev_dbg(&isci_host->pdev->dev,
-		"%s: isci_device = 0x%p; request = %p, "
+		"%s: idev = 0x%p; request = %p, "
 		"num_scatter = %d\n",
 		__func__,
-		isci_device,
+		idev,
 		request,
 		task->num_scatter);
 
@@ -3290,8 +3287,7 @@
 			return SCI_FAILURE_INSUFFICIENT_RESOURCES;
 	}
 
-	status = scic_io_request_construct(&isci_host->sci, sci_device,
-					   request);
+	status = scic_io_request_construct(&isci_host->sci, idev, request);
 
 	if (status != SCI_SUCCESS) {
 		dev_warn(&isci_host->pdev->dev,
@@ -3397,14 +3393,14 @@
 			 * ireq->is_task_management_request is false).
 			 */
 			status = scic_controller_start_task(&ihost->sci,
-							    &idev->sci,
+							    idev,
 							    ireq);
 		} else {
 			status = SCI_FAILURE;
 		}
 	} else {
 		/* send the request, let the core assign the IO TAG.	*/
-		status = scic_controller_start_io(&ihost->sci, &idev->sci,
+		status = scic_controller_start_io(&ihost->sci, idev,
 						  ireq);
 	}