Lines Matching full:scb
129 le64_to_cpu(ascb->scb->ssp_task.sg_element[0].bus_addr); in asd_unmap_scatterlist()
353 struct scb *scb; in asd_build_ata_ascb() local
357 scb = ascb->scb; in asd_build_ata_ascb()
360 scb->header.opcode = CONTROL_ATA_DEV; in asd_build_ata_ascb()
362 scb->header.opcode = INITIATE_ATAPI_TASK; in asd_build_ata_ascb()
364 scb->header.opcode = INITIATE_ATA_TASK; in asd_build_ata_ascb()
366 scb->ata_task.proto_conn_rate = (1 << 5); /* STP */ in asd_build_ata_ascb()
368 scb->ata_task.proto_conn_rate |= dev->linkrate; in asd_build_ata_ascb()
370 scb->ata_task.total_xfer_len = cpu_to_le32(task->total_xfer_len); in asd_build_ata_ascb()
371 scb->ata_task.fis = task->ata_task.fis; in asd_build_ata_ascb()
373 scb->ata_task.fis.flags |= 0x80; /* C=1: update ATA cmd reg */ in asd_build_ata_ascb()
374 scb->ata_task.fis.flags &= 0xF0; /* PM_PORT field shall be 0 */ in asd_build_ata_ascb()
376 memcpy(scb->ata_task.atapi_packet, task->ata_task.atapi_packet, in asd_build_ata_ascb()
378 scb->ata_task.sister_scb = cpu_to_le16(0xFFFF); in asd_build_ata_ascb()
379 scb->ata_task.conn_handle = cpu_to_le16( in asd_build_ata_ascb()
390 scb->ata_task.ata_flags = flags; in asd_build_ata_ascb()
392 scb->ata_task.retry_count = task->ata_task.retry_count; in asd_build_ata_ascb()
399 scb->ata_task.flags = flags; in asd_build_ata_ascb()
404 res = asd_map_scatterlist(task, scb->ata_task.sg_element, in asd_build_ata_ascb()
422 struct scb *scb; in asd_build_smp_ascb() local
429 scb = ascb->scb; in asd_build_smp_ascb()
431 scb->header.opcode = INITIATE_SMP_TASK; in asd_build_smp_ascb()
433 scb->smp_task.proto_conn_rate = dev->linkrate; in asd_build_smp_ascb()
435 scb->smp_task.smp_req.bus_addr = in asd_build_smp_ascb()
437 scb->smp_task.smp_req.size = in asd_build_smp_ascb()
440 scb->smp_task.smp_resp.bus_addr = in asd_build_smp_ascb()
442 scb->smp_task.smp_resp.size = in asd_build_smp_ascb()
445 scb->smp_task.sister_scb = cpu_to_le16(0xFFFF); in asd_build_smp_ascb()
446 scb->smp_task.conn_handle = cpu_to_le16((u16) in asd_build_smp_ascb()
471 struct scb *scb; in asd_build_ssp_ascb() local
474 scb = ascb->scb; in asd_build_ssp_ascb()
476 scb->header.opcode = INITIATE_SSP_TASK; in asd_build_ssp_ascb()
478 scb->ssp_task.proto_conn_rate = (1 << 4); /* SSP */ in asd_build_ssp_ascb()
479 scb->ssp_task.proto_conn_rate |= dev->linkrate; in asd_build_ssp_ascb()
480 scb->ssp_task.total_xfer_len = cpu_to_le32(task->total_xfer_len); in asd_build_ssp_ascb()
481 scb->ssp_task.ssp_frame.frame_type = SSP_DATA; in asd_build_ssp_ascb()
482 memcpy(scb->ssp_task.ssp_frame.hashed_dest_addr, dev->hashed_sas_addr, in asd_build_ssp_ascb()
484 memcpy(scb->ssp_task.ssp_frame.hashed_src_addr, in asd_build_ssp_ascb()
486 scb->ssp_task.ssp_frame.tptt = cpu_to_be16(0xFFFF); in asd_build_ssp_ascb()
488 memcpy(scb->ssp_task.ssp_cmd.lun, task->ssp_task.LUN, 8); in asd_build_ssp_ascb()
490 scb->ssp_task.ssp_cmd.efb_prio_attr |= EFB_MASK; in asd_build_ssp_ascb()
491 scb->ssp_task.ssp_cmd.efb_prio_attr |= (task->ssp_task.task_prio << 3); in asd_build_ssp_ascb()
492 scb->ssp_task.ssp_cmd.efb_prio_attr |= (task->ssp_task.task_attr & 7); in asd_build_ssp_ascb()
493 memcpy(scb->ssp_task.ssp_cmd.cdb, task->ssp_task.cmd->cmnd, in asd_build_ssp_ascb()
496 scb->ssp_task.sister_scb = cpu_to_le16(0xFFFF); in asd_build_ssp_ascb()
497 scb->ssp_task.conn_handle = cpu_to_le16( in asd_build_ssp_ascb()
499 scb->ssp_task.data_dir = data_dir_flags[task->data_dir]; in asd_build_ssp_ascb()
500 scb->ssp_task.retry_count = scb->ssp_task.retry_count; in asd_build_ssp_ascb()
504 res = asd_map_scatterlist(task, scb->ssp_task.sg_element, gfp_flags); in asd_build_ssp_ascb()