diff options
author | Dave Jiang <dave.jiang@intel.com> | 2011-02-23 23:57:27 (GMT) |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2011-07-03 10:55:28 (GMT) |
commit | 6389a77596f36cf04ad8b1c7d43ec1d6cdfe89cb (patch) | |
tree | 71790cd9538bed25e1e448f83c6d92269993b2ae /drivers/scsi/isci/core/scic_sds_stp_packet_request.c | |
parent | 103a00c200ab3bb9e598923eb7ba3354fcb3de8d (diff) | |
download | linux-fsl-qoriq-6389a77596f36cf04ad8b1c7d43ec1d6cdfe89cb.tar.xz |
isci: have the driver use native SG calls and DMA-API
Remove abstraction for SG building and get rid of callbacks for getting
DMA memory mapping.
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/scsi/isci/core/scic_sds_stp_packet_request.c')
-rw-r--r-- | drivers/scsi/isci/core/scic_sds_stp_packet_request.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/drivers/scsi/isci/core/scic_sds_stp_packet_request.c b/drivers/scsi/isci/core/scic_sds_stp_packet_request.c index f52a8e3..97dc9bf 100644 --- a/drivers/scsi/isci/core/scic_sds_stp_packet_request.c +++ b/drivers/scsi/isci/core/scic_sds_stp_packet_request.c @@ -253,30 +253,26 @@ enum sci_status scic_sds_stp_packet_request_process_status_fis( * */ void scic_sds_stp_packet_internal_request_sense_build_sgl( - struct scic_sds_request *this_request) + struct scic_sds_request *sds_request) { void *sge; struct scu_sgl_element_pair *scu_sgl_list = NULL; struct scu_task_context *task_context; - dma_addr_t physical_address; + dma_addr_t dma_addr; struct sci_ssp_response_iu *rsp_iu = - (struct sci_ssp_response_iu *)this_request->response_buffer; + (struct sci_ssp_response_iu *)sds_request->response_buffer; sge = (void *)&rsp_iu->data[0]; - task_context = (struct scu_task_context *)this_request->task_context_buffer; + task_context = + (struct scu_task_context *)sds_request->task_context_buffer; scu_sgl_list = &task_context->sgl_pair_ab; - scic_cb_io_request_get_physical_address( - scic_sds_request_get_controller(this_request), - this_request, - ((char *)sge), - &physical_address - ); + dma_addr = scic_io_request_get_dma_addr(sds_request, sge); - scu_sgl_list->A.address_upper = sci_cb_physical_address_upper(physical_address); - scu_sgl_list->A.address_lower = sci_cb_physical_address_lower(physical_address); + scu_sgl_list->A.address_upper = upper_32_bits(dma_addr); + scu_sgl_list->A.address_lower = lower_32_bits(dma_addr); scu_sgl_list->A.length = task_context->transfer_length_bytes; scu_sgl_list->A.address_modifier = 0; |