Lines Matching refs:task

1386 	struct sas_task *task = NULL;  in pm80xx_send_abort_all()  local
1397 task = sas_alloc_slow_task(GFP_ATOMIC); in pm80xx_send_abort_all()
1399 if (!task) { in pm80xx_send_abort_all()
1405 task->task_done = pm8001_task_done; in pm80xx_send_abort_all()
1409 sas_free_task(task); in pm80xx_send_abort_all()
1416 ccb->task = task; in pm80xx_send_abort_all()
1427 sas_free_task(task); in pm80xx_send_abort_all()
1439 struct sas_task *task = NULL; in pm80xx_send_read_log() local
1445 task = sas_alloc_slow_task(GFP_ATOMIC); in pm80xx_send_read_log()
1447 if (!task) { in pm80xx_send_read_log()
1452 task->task_done = pm8001_task_done; in pm80xx_send_read_log()
1456 sas_free_task(task); in pm80xx_send_read_log()
1467 sas_free_task(task); in pm80xx_send_read_log()
1474 task->dev = dev; in pm80xx_send_read_log()
1475 task->dev->lldd_dev = pm8001_ha_dev; in pm80xx_send_read_log()
1480 ccb->task = task; in pm80xx_send_read_log()
1502 sas_free_task(task); in pm80xx_send_read_log()
1543 t = ccb->task; in mpi_ssp_completion()
1797 t = ccb->task; in mpi_ssp_event()
2011 t = ccb->task; in mpi_sata_completion()
2386 t = ccb->task; in mpi_sata_event()
2625 t = ccb->task; in mpi_smp_completion()
3783 struct sas_task *task = ccb->task; in pm80xx_chip_smp_req() local
3784 struct domain_device *dev = task->dev; in pm80xx_chip_smp_req()
3799 sg_req = &task->smp_task.smp_req; in pm80xx_chip_smp_req()
3805 sg_resp = &task->smp_task.smp_resp; in pm80xx_chip_smp_req()
3831 tmp_addr = cpu_to_le64((u64)sg_dma_address(&task->smp_task.smp_req)); in pm80xx_chip_smp_req()
3845 (&task->smp_task.smp_req) + 4); in pm80xx_chip_smp_req()
3848 cpu_to_le32((u32)sg_dma_len(&task->smp_task.smp_req)-8); in pm80xx_chip_smp_req()
3851 (&task->smp_task.smp_resp)); in pm80xx_chip_smp_req()
3854 (&task->smp_task.smp_resp)-4); in pm80xx_chip_smp_req()
3858 (&task->smp_task.smp_req)); in pm80xx_chip_smp_req()
3860 cpu_to_le32((u32)sg_dma_len(&task->smp_task.smp_req)-4); in pm80xx_chip_smp_req()
3863 (&task->smp_task.smp_resp)); in pm80xx_chip_smp_req()
3866 ((u32)sg_dma_len(&task->smp_task.smp_resp)-4); in pm80xx_chip_smp_req()
3896 dma_unmap_sg(pm8001_ha->dev, &ccb->task->smp_task.smp_resp, 1, in pm80xx_chip_smp_req()
3899 dma_unmap_sg(pm8001_ha->dev, &ccb->task->smp_task.smp_req, 1, in pm80xx_chip_smp_req()
3904 static int check_enc_sas_cmd(struct sas_task *task) in check_enc_sas_cmd() argument
3906 u8 cmd = task->ssp_task.cmd->cmnd[0]; in check_enc_sas_cmd()
3914 static int check_enc_sat_cmd(struct sas_task *task) in check_enc_sat_cmd() argument
3917 switch (task->ata_task.fis.command) { in check_enc_sat_cmd()
3945 struct sas_task *task = ccb->task; in pm80xx_chip_ssp_io_req() local
3946 struct domain_device *dev = task->dev; in pm80xx_chip_ssp_io_req()
3957 memcpy(ssp_cmd.ssp_iu.lun, task->ssp_task.LUN, 8); in pm80xx_chip_ssp_io_req()
3963 cpu_to_le32(data_dir_flags[task->data_dir] << 8 | 0x0); in pm80xx_chip_ssp_io_req()
3964 ssp_cmd.data_len = cpu_to_le32(task->total_xfer_len); in pm80xx_chip_ssp_io_req()
3967 if (task->ssp_task.enable_first_burst) in pm80xx_chip_ssp_io_req()
3969 ssp_cmd.ssp_iu.efb_prio_attr |= (task->ssp_task.task_prio << 3); in pm80xx_chip_ssp_io_req()
3970 ssp_cmd.ssp_iu.efb_prio_attr |= (task->ssp_task.task_attr & 7); in pm80xx_chip_ssp_io_req()
3971 memcpy(ssp_cmd.ssp_iu.cdb, task->ssp_task.cmd->cmnd, in pm80xx_chip_ssp_io_req()
3972 task->ssp_task.cmd->cmd_len); in pm80xx_chip_ssp_io_req()
3978 !(pm8001_ha->encrypt_info.status) && check_enc_sas_cmd(task)) { in pm80xx_chip_ssp_io_req()
3981 task->ssp_task.cmd->cmnd[0])); in pm80xx_chip_ssp_io_req()
3985 ((data_dir_flags[task->data_dir] << 8) | 0x20 | 0x0); in pm80xx_chip_ssp_io_req()
3988 if (task->num_scatter > 1) { in pm80xx_chip_ssp_io_req()
3989 pm8001_chip_make_sg(task->scatter, in pm80xx_chip_ssp_io_req()
3998 } else if (task->num_scatter == 1) { in pm80xx_chip_ssp_io_req()
3999 u64 dma_addr = sg_dma_address(task->scatter); in pm80xx_chip_ssp_io_req()
4004 ssp_cmd.enc_len = cpu_to_le32(task->total_xfer_len); in pm80xx_chip_ssp_io_req()
4019 pm8001_chip_make_sg(task->scatter, 1, in pm80xx_chip_ssp_io_req()
4030 } else if (task->num_scatter == 0) { in pm80xx_chip_ssp_io_req()
4033 ssp_cmd.enc_len = cpu_to_le32(task->total_xfer_len); in pm80xx_chip_ssp_io_req()
4039 ssp_cmd.twk_val0 = cpu_to_le32((task->ssp_task.cmd->cmnd[2] << 24) | in pm80xx_chip_ssp_io_req()
4040 (task->ssp_task.cmd->cmnd[3] << 16) | in pm80xx_chip_ssp_io_req()
4041 (task->ssp_task.cmd->cmnd[4] << 8) | in pm80xx_chip_ssp_io_req()
4042 (task->ssp_task.cmd->cmnd[5])); in pm80xx_chip_ssp_io_req()
4046 task->ssp_task.cmd->cmnd[0], q_index)); in pm80xx_chip_ssp_io_req()
4048 if (task->num_scatter > 1) { in pm80xx_chip_ssp_io_req()
4049 pm8001_chip_make_sg(task->scatter, ccb->n_elem, in pm80xx_chip_ssp_io_req()
4058 } else if (task->num_scatter == 1) { in pm80xx_chip_ssp_io_req()
4059 u64 dma_addr = sg_dma_address(task->scatter); in pm80xx_chip_ssp_io_req()
4063 ssp_cmd.len = cpu_to_le32(task->total_xfer_len); in pm80xx_chip_ssp_io_req()
4078 pm8001_chip_make_sg(task->scatter, 1, in pm80xx_chip_ssp_io_req()
4089 } else if (task->num_scatter == 0) { in pm80xx_chip_ssp_io_req()
4092 ssp_cmd.len = cpu_to_le32(task->total_xfer_len); in pm80xx_chip_ssp_io_req()
4105 struct sas_task *task = ccb->task; in pm80xx_chip_sata_req() local
4106 struct domain_device *dev = task->dev; in pm80xx_chip_sata_req()
4124 if (task->data_dir == PCI_DMA_NONE) { in pm80xx_chip_sata_req()
4127 } else if (likely(!task->ata_task.device_control_reg_update)) { in pm80xx_chip_sata_req()
4128 if (task->ata_task.dma_xfer) { in pm80xx_chip_sata_req()
4135 if (task->ata_task.use_ncq && in pm80xx_chip_sata_req()
4141 if (task->ata_task.use_ncq && pm8001_get_ncq_tag(task, &hdr_tag)) { in pm80xx_chip_sata_req()
4142 task->ata_task.fis.sector_count |= (u8) (hdr_tag << 3); in pm80xx_chip_sata_req()
4145 dir = data_dir_flags[task->data_dir] << 8; in pm80xx_chip_sata_req()
4148 sata_cmd.data_len = cpu_to_le32(task->total_xfer_len); in pm80xx_chip_sata_req()
4150 sata_cmd.sata_fis = task->ata_task.fis; in pm80xx_chip_sata_req()
4151 if (likely(!task->ata_task.device_control_reg_update)) in pm80xx_chip_sata_req()
4157 !(pm8001_ha->encrypt_info.status) && check_enc_sat_cmd(task)) { in pm80xx_chip_sata_req()
4169 if (task->num_scatter > 1) { in pm80xx_chip_sata_req()
4170 pm8001_chip_make_sg(task->scatter, in pm80xx_chip_sata_req()
4177 } else if (task->num_scatter == 1) { in pm80xx_chip_sata_req()
4178 u64 dma_addr = sg_dma_address(task->scatter); in pm80xx_chip_sata_req()
4181 sata_cmd.enc_len = cpu_to_le32(task->total_xfer_len); in pm80xx_chip_sata_req()
4196 pm8001_chip_make_sg(task->scatter, 1, in pm80xx_chip_sata_req()
4208 } else if (task->num_scatter == 0) { in pm80xx_chip_sata_req()
4211 sata_cmd.enc_len = cpu_to_le32(task->total_xfer_len); in pm80xx_chip_sata_req()
4235 if (task->num_scatter > 1) { in pm80xx_chip_sata_req()
4236 pm8001_chip_make_sg(task->scatter, in pm80xx_chip_sata_req()
4243 } else if (task->num_scatter == 1) { in pm80xx_chip_sata_req()
4244 u64 dma_addr = sg_dma_address(task->scatter); in pm80xx_chip_sata_req()
4247 sata_cmd.len = cpu_to_le32(task->total_xfer_len); in pm80xx_chip_sata_req()
4262 pm8001_chip_make_sg(task->scatter, 1, in pm80xx_chip_sata_req()
4273 } else if (task->num_scatter == 0) { in pm80xx_chip_sata_req()
4276 sata_cmd.len = cpu_to_le32(task->total_xfer_len); in pm80xx_chip_sata_req()
4281 cpu_to_le32(((task->ata_task.atapi_packet[0]) | in pm80xx_chip_sata_req()
4282 (task->ata_task.atapi_packet[1] << 8) | in pm80xx_chip_sata_req()
4283 (task->ata_task.atapi_packet[2] << 16) | in pm80xx_chip_sata_req()
4284 (task->ata_task.atapi_packet[3] << 24))); in pm80xx_chip_sata_req()
4286 cpu_to_le32(((task->ata_task.atapi_packet[4]) | in pm80xx_chip_sata_req()
4287 (task->ata_task.atapi_packet[5] << 8) | in pm80xx_chip_sata_req()
4288 (task->ata_task.atapi_packet[6] << 16) | in pm80xx_chip_sata_req()
4289 (task->ata_task.atapi_packet[7] << 24))); in pm80xx_chip_sata_req()
4291 cpu_to_le32(((task->ata_task.atapi_packet[8]) | in pm80xx_chip_sata_req()
4292 (task->ata_task.atapi_packet[9] << 8) | in pm80xx_chip_sata_req()
4293 (task->ata_task.atapi_packet[10] << 16) | in pm80xx_chip_sata_req()
4294 (task->ata_task.atapi_packet[11] << 24))); in pm80xx_chip_sata_req()
4296 cpu_to_le32(((task->ata_task.atapi_packet[12]) | in pm80xx_chip_sata_req()
4297 (task->ata_task.atapi_packet[13] << 8) | in pm80xx_chip_sata_req()
4298 (task->ata_task.atapi_packet[14] << 16) | in pm80xx_chip_sata_req()
4299 (task->ata_task.atapi_packet[15] << 24))); in pm80xx_chip_sata_req()
4310 ts = &task->task_status; in pm80xx_chip_sata_req()
4312 spin_lock_irqsave(&task->task_state_lock, flags); in pm80xx_chip_sata_req()
4315 task->task_state_flags &= ~SAS_TASK_STATE_PENDING; in pm80xx_chip_sata_req()
4316 task->task_state_flags &= ~SAS_TASK_AT_INITIATOR; in pm80xx_chip_sata_req()
4317 task->task_state_flags |= SAS_TASK_STATE_DONE; in pm80xx_chip_sata_req()
4318 if (unlikely((task->task_state_flags & in pm80xx_chip_sata_req()
4320 spin_unlock_irqrestore(&task->task_state_lock, in pm80xx_chip_sata_req()
4325 "\n", task, ts->resp, ts->stat)); in pm80xx_chip_sata_req()
4326 pm8001_ccb_task_free(pm8001_ha, task, ccb, tag); in pm80xx_chip_sata_req()
4329 spin_unlock_irqrestore(&task->task_state_lock, in pm80xx_chip_sata_req()
4331 pm8001_ccb_task_free_done(pm8001_ha, task, in pm80xx_chip_sata_req()