Lines Matching refs:task

1368 	struct sas_task *task = NULL;  in pm80xx_send_abort_all()  local
1379 task = sas_alloc_slow_task(GFP_ATOMIC); in pm80xx_send_abort_all()
1381 if (!task) { in pm80xx_send_abort_all()
1387 task->task_done = pm8001_task_done; in pm80xx_send_abort_all()
1391 sas_free_task(task); in pm80xx_send_abort_all()
1398 ccb->task = task; in pm80xx_send_abort_all()
1409 sas_free_task(task); in pm80xx_send_abort_all()
1421 struct sas_task *task = NULL; in pm80xx_send_read_log() local
1427 task = sas_alloc_slow_task(GFP_ATOMIC); in pm80xx_send_read_log()
1429 if (!task) { in pm80xx_send_read_log()
1434 task->task_done = pm8001_task_done; in pm80xx_send_read_log()
1438 sas_free_task(task); in pm80xx_send_read_log()
1449 sas_free_task(task); in pm80xx_send_read_log()
1456 task->dev = dev; in pm80xx_send_read_log()
1457 task->dev->lldd_dev = pm8001_ha_dev; in pm80xx_send_read_log()
1462 ccb->task = task; in pm80xx_send_read_log()
1484 sas_free_task(task); in pm80xx_send_read_log()
1525 t = ccb->task; in mpi_ssp_completion()
1772 t = ccb->task; in mpi_ssp_event()
1986 t = ccb->task; in mpi_sata_completion()
2360 t = ccb->task; in mpi_sata_event()
2599 t = ccb->task; in mpi_smp_completion()
3727 struct sas_task *task = ccb->task; in pm80xx_chip_smp_req() local
3728 struct domain_device *dev = task->dev; in pm80xx_chip_smp_req()
3743 sg_req = &task->smp_task.smp_req; in pm80xx_chip_smp_req()
3749 sg_resp = &task->smp_task.smp_resp; in pm80xx_chip_smp_req()
3775 tmp_addr = cpu_to_le64((u64)sg_dma_address(&task->smp_task.smp_req)); in pm80xx_chip_smp_req()
3789 (&task->smp_task.smp_req) + 4); in pm80xx_chip_smp_req()
3792 cpu_to_le32((u32)sg_dma_len(&task->smp_task.smp_req)-8); in pm80xx_chip_smp_req()
3795 (&task->smp_task.smp_resp)); in pm80xx_chip_smp_req()
3798 (&task->smp_task.smp_resp)-4); in pm80xx_chip_smp_req()
3802 (&task->smp_task.smp_req)); in pm80xx_chip_smp_req()
3804 cpu_to_le32((u32)sg_dma_len(&task->smp_task.smp_req)-4); in pm80xx_chip_smp_req()
3807 (&task->smp_task.smp_resp)); in pm80xx_chip_smp_req()
3810 ((u32)sg_dma_len(&task->smp_task.smp_resp)-4); in pm80xx_chip_smp_req()
3840 dma_unmap_sg(pm8001_ha->dev, &ccb->task->smp_task.smp_resp, 1, in pm80xx_chip_smp_req()
3843 dma_unmap_sg(pm8001_ha->dev, &ccb->task->smp_task.smp_req, 1, in pm80xx_chip_smp_req()
3848 static int check_enc_sas_cmd(struct sas_task *task) in check_enc_sas_cmd() argument
3850 u8 cmd = task->ssp_task.cmd->cmnd[0]; in check_enc_sas_cmd()
3858 static int check_enc_sat_cmd(struct sas_task *task) in check_enc_sat_cmd() argument
3861 switch (task->ata_task.fis.command) { in check_enc_sat_cmd()
3889 struct sas_task *task = ccb->task; in pm80xx_chip_ssp_io_req() local
3890 struct domain_device *dev = task->dev; in pm80xx_chip_ssp_io_req()
3901 memcpy(ssp_cmd.ssp_iu.lun, task->ssp_task.LUN, 8); in pm80xx_chip_ssp_io_req()
3907 cpu_to_le32(data_dir_flags[task->data_dir] << 8 | 0x0); in pm80xx_chip_ssp_io_req()
3908 ssp_cmd.data_len = cpu_to_le32(task->total_xfer_len); in pm80xx_chip_ssp_io_req()
3911 if (task->ssp_task.enable_first_burst) in pm80xx_chip_ssp_io_req()
3913 ssp_cmd.ssp_iu.efb_prio_attr |= (task->ssp_task.task_prio << 3); in pm80xx_chip_ssp_io_req()
3914 ssp_cmd.ssp_iu.efb_prio_attr |= (task->ssp_task.task_attr & 7); in pm80xx_chip_ssp_io_req()
3915 memcpy(ssp_cmd.ssp_iu.cdb, task->ssp_task.cmd->cmnd, in pm80xx_chip_ssp_io_req()
3916 task->ssp_task.cmd->cmd_len); in pm80xx_chip_ssp_io_req()
3922 !(pm8001_ha->encrypt_info.status) && check_enc_sas_cmd(task)) { in pm80xx_chip_ssp_io_req()
3925 task->ssp_task.cmd->cmnd[0])); in pm80xx_chip_ssp_io_req()
3929 ((data_dir_flags[task->data_dir] << 8) | 0x20 | 0x0); in pm80xx_chip_ssp_io_req()
3932 if (task->num_scatter > 1) { in pm80xx_chip_ssp_io_req()
3933 pm8001_chip_make_sg(task->scatter, in pm80xx_chip_ssp_io_req()
3942 } else if (task->num_scatter == 1) { in pm80xx_chip_ssp_io_req()
3943 u64 dma_addr = sg_dma_address(task->scatter); in pm80xx_chip_ssp_io_req()
3948 ssp_cmd.enc_len = cpu_to_le32(task->total_xfer_len); in pm80xx_chip_ssp_io_req()
3963 pm8001_chip_make_sg(task->scatter, 1, in pm80xx_chip_ssp_io_req()
3974 } else if (task->num_scatter == 0) { in pm80xx_chip_ssp_io_req()
3977 ssp_cmd.enc_len = cpu_to_le32(task->total_xfer_len); in pm80xx_chip_ssp_io_req()
3983 ssp_cmd.twk_val0 = cpu_to_le32((task->ssp_task.cmd->cmnd[2] << 24) | in pm80xx_chip_ssp_io_req()
3984 (task->ssp_task.cmd->cmnd[3] << 16) | in pm80xx_chip_ssp_io_req()
3985 (task->ssp_task.cmd->cmnd[4] << 8) | in pm80xx_chip_ssp_io_req()
3986 (task->ssp_task.cmd->cmnd[5])); in pm80xx_chip_ssp_io_req()
3990 task->ssp_task.cmd->cmnd[0], q_index)); in pm80xx_chip_ssp_io_req()
3992 if (task->num_scatter > 1) { in pm80xx_chip_ssp_io_req()
3993 pm8001_chip_make_sg(task->scatter, ccb->n_elem, in pm80xx_chip_ssp_io_req()
4002 } else if (task->num_scatter == 1) { in pm80xx_chip_ssp_io_req()
4003 u64 dma_addr = sg_dma_address(task->scatter); in pm80xx_chip_ssp_io_req()
4007 ssp_cmd.len = cpu_to_le32(task->total_xfer_len); in pm80xx_chip_ssp_io_req()
4022 pm8001_chip_make_sg(task->scatter, 1, in pm80xx_chip_ssp_io_req()
4033 } else if (task->num_scatter == 0) { in pm80xx_chip_ssp_io_req()
4036 ssp_cmd.len = cpu_to_le32(task->total_xfer_len); in pm80xx_chip_ssp_io_req()
4049 struct sas_task *task = ccb->task; in pm80xx_chip_sata_req() local
4050 struct domain_device *dev = task->dev; in pm80xx_chip_sata_req()
4068 if (task->data_dir == PCI_DMA_NONE) { in pm80xx_chip_sata_req()
4071 } else if (likely(!task->ata_task.device_control_reg_update)) { in pm80xx_chip_sata_req()
4072 if (task->ata_task.dma_xfer) { in pm80xx_chip_sata_req()
4079 if (task->ata_task.use_ncq && in pm80xx_chip_sata_req()
4085 if (task->ata_task.use_ncq && pm8001_get_ncq_tag(task, &hdr_tag)) { in pm80xx_chip_sata_req()
4086 task->ata_task.fis.sector_count |= (u8) (hdr_tag << 3); in pm80xx_chip_sata_req()
4089 dir = data_dir_flags[task->data_dir] << 8; in pm80xx_chip_sata_req()
4092 sata_cmd.data_len = cpu_to_le32(task->total_xfer_len); in pm80xx_chip_sata_req()
4094 sata_cmd.sata_fis = task->ata_task.fis; in pm80xx_chip_sata_req()
4095 if (likely(!task->ata_task.device_control_reg_update)) in pm80xx_chip_sata_req()
4101 !(pm8001_ha->encrypt_info.status) && check_enc_sat_cmd(task)) { in pm80xx_chip_sata_req()
4113 if (task->num_scatter > 1) { in pm80xx_chip_sata_req()
4114 pm8001_chip_make_sg(task->scatter, in pm80xx_chip_sata_req()
4121 } else if (task->num_scatter == 1) { in pm80xx_chip_sata_req()
4122 u64 dma_addr = sg_dma_address(task->scatter); in pm80xx_chip_sata_req()
4125 sata_cmd.enc_len = cpu_to_le32(task->total_xfer_len); in pm80xx_chip_sata_req()
4140 pm8001_chip_make_sg(task->scatter, 1, in pm80xx_chip_sata_req()
4152 } else if (task->num_scatter == 0) { in pm80xx_chip_sata_req()
4155 sata_cmd.enc_len = cpu_to_le32(task->total_xfer_len); in pm80xx_chip_sata_req()
4179 if (task->num_scatter > 1) { in pm80xx_chip_sata_req()
4180 pm8001_chip_make_sg(task->scatter, in pm80xx_chip_sata_req()
4187 } else if (task->num_scatter == 1) { in pm80xx_chip_sata_req()
4188 u64 dma_addr = sg_dma_address(task->scatter); in pm80xx_chip_sata_req()
4191 sata_cmd.len = cpu_to_le32(task->total_xfer_len); in pm80xx_chip_sata_req()
4206 pm8001_chip_make_sg(task->scatter, 1, in pm80xx_chip_sata_req()
4217 } else if (task->num_scatter == 0) { in pm80xx_chip_sata_req()
4220 sata_cmd.len = cpu_to_le32(task->total_xfer_len); in pm80xx_chip_sata_req()
4225 cpu_to_le32(((task->ata_task.atapi_packet[0]) | in pm80xx_chip_sata_req()
4226 (task->ata_task.atapi_packet[1] << 8) | in pm80xx_chip_sata_req()
4227 (task->ata_task.atapi_packet[2] << 16) | in pm80xx_chip_sata_req()
4228 (task->ata_task.atapi_packet[3] << 24))); in pm80xx_chip_sata_req()
4230 cpu_to_le32(((task->ata_task.atapi_packet[4]) | in pm80xx_chip_sata_req()
4231 (task->ata_task.atapi_packet[5] << 8) | in pm80xx_chip_sata_req()
4232 (task->ata_task.atapi_packet[6] << 16) | in pm80xx_chip_sata_req()
4233 (task->ata_task.atapi_packet[7] << 24))); in pm80xx_chip_sata_req()
4235 cpu_to_le32(((task->ata_task.atapi_packet[8]) | in pm80xx_chip_sata_req()
4236 (task->ata_task.atapi_packet[9] << 8) | in pm80xx_chip_sata_req()
4237 (task->ata_task.atapi_packet[10] << 16) | in pm80xx_chip_sata_req()
4238 (task->ata_task.atapi_packet[11] << 24))); in pm80xx_chip_sata_req()
4240 cpu_to_le32(((task->ata_task.atapi_packet[12]) | in pm80xx_chip_sata_req()
4241 (task->ata_task.atapi_packet[13] << 8) | in pm80xx_chip_sata_req()
4242 (task->ata_task.atapi_packet[14] << 16) | in pm80xx_chip_sata_req()
4243 (task->ata_task.atapi_packet[15] << 24))); in pm80xx_chip_sata_req()
4254 ts = &task->task_status; in pm80xx_chip_sata_req()
4256 spin_lock_irqsave(&task->task_state_lock, flags); in pm80xx_chip_sata_req()
4259 task->task_state_flags &= ~SAS_TASK_STATE_PENDING; in pm80xx_chip_sata_req()
4260 task->task_state_flags &= ~SAS_TASK_AT_INITIATOR; in pm80xx_chip_sata_req()
4261 task->task_state_flags |= SAS_TASK_STATE_DONE; in pm80xx_chip_sata_req()
4262 if (unlikely((task->task_state_flags & in pm80xx_chip_sata_req()
4264 spin_unlock_irqrestore(&task->task_state_lock, in pm80xx_chip_sata_req()
4269 "\n", task, ts->resp, ts->stat)); in pm80xx_chip_sata_req()
4270 pm8001_ccb_task_free(pm8001_ha, task, ccb, tag); in pm80xx_chip_sata_req()
4273 spin_unlock_irqrestore(&task->task_state_lock, in pm80xx_chip_sata_req()
4275 pm8001_ccb_task_free_done(pm8001_ha, task, in pm80xx_chip_sata_req()