Lines Matching refs:pc
80 void ide_init_pc(struct ide_atapi_pc *pc) in ide_init_pc() argument
82 memset(pc, 0, sizeof(*pc)); in ide_init_pc()
91 struct ide_atapi_pc *pc, void *buf, unsigned int bufflen) in ide_queue_pc_tail() argument
98 ide_req(rq)->special = pc; in ide_queue_pc_tail()
107 memcpy(scsi_req(rq)->cmd, pc->c, 12); in ide_queue_pc_tail()
120 struct ide_atapi_pc pc; in ide_do_test_unit_ready() local
122 ide_init_pc(&pc); in ide_do_test_unit_ready()
123 pc.c[0] = TEST_UNIT_READY; in ide_do_test_unit_ready()
125 return ide_queue_pc_tail(drive, disk, &pc, NULL, 0); in ide_do_test_unit_ready()
131 struct ide_atapi_pc pc; in ide_do_start_stop() local
133 ide_init_pc(&pc); in ide_do_start_stop()
134 pc.c[0] = START_STOP; in ide_do_start_stop()
135 pc.c[4] = start; in ide_do_start_stop()
138 pc.flags |= PC_FLAG_WAIT_FOR_DSC; in ide_do_start_stop()
140 return ide_queue_pc_tail(drive, disk, &pc, NULL, 0); in ide_do_start_stop()
146 struct ide_atapi_pc pc; in ide_set_media_lock() local
151 ide_init_pc(&pc); in ide_set_media_lock()
152 pc.c[0] = ALLOW_MEDIUM_REMOVAL; in ide_set_media_lock()
153 pc.c[4] = on; in ide_set_media_lock()
155 return ide_queue_pc_tail(drive, disk, &pc, NULL, 0); in ide_set_media_lock()
159 void ide_create_request_sense_cmd(ide_drive_t *drive, struct ide_atapi_pc *pc) in ide_create_request_sense_cmd() argument
161 ide_init_pc(pc); in ide_create_request_sense_cmd()
162 pc->c[0] = REQUEST_SENSE; in ide_create_request_sense_cmd()
164 pc->c[4] = 255; in ide_create_request_sense_cmd()
165 pc->req_xfer = 18; in ide_create_request_sense_cmd()
167 pc->c[4] = 20; in ide_create_request_sense_cmd()
168 pc->req_xfer = 20; in ide_create_request_sense_cmd()
273 struct ide_atapi_pc *pc = &drive->request_sense_pc; in ide_retry_pc() local
278 ide_init_pc(pc); in ide_retry_pc()
279 memcpy(pc->c, scsi_req(sense_rq)->cmd, 12); in ide_retry_pc()
291 if (ide_queue_sense_rq(drive, pc)) in ide_retry_pc()
417 struct ide_atapi_pc *pc = drive->pc; in ide_pc_intr() local
425 u8 write = !!(pc->flags & PC_FLAG_WRITING); in ide_pc_intr()
435 if (pc->flags & PC_FLAG_DMA_IN_PROGRESS) { in ide_pc_intr()
445 drive->name, rq_data_dir(pc->rq) in ide_pc_intr()
447 pc->flags |= PC_FLAG_DMA_ERROR; in ide_pc_intr()
461 pc->flags &= ~PC_FLAG_DMA_IN_PROGRESS; in ide_pc_intr()
469 if ((stat & ATA_ERR) || (pc->flags & PC_FLAG_DMA_ERROR)) { in ide_pc_intr()
474 scsi_req(pc->rq)->result++; in ide_pc_intr()
490 pc->error = 0; in ide_pc_intr()
492 if ((pc->flags & PC_FLAG_WAIT_FOR_DSC) && (stat & ATA_DSC) == 0) in ide_pc_intr()
524 if (pc->flags & PC_FLAG_DMA_IN_PROGRESS) { in ide_pc_intr()
525 pc->flags &= ~PC_FLAG_DMA_IN_PROGRESS; in ide_pc_intr()
603 drive->hwif->tp_ops->output_data(drive, NULL, drive->pc->c, 12); in ide_delayed_transfer_pc()
611 struct ide_atapi_pc *pc; in ide_transfer_pc() local
640 pc = drive->pc; in ide_transfer_pc()
687 if (pc->flags & PC_FLAG_DMA_OK) { in ide_transfer_pc()
688 pc->flags |= PC_FLAG_DMA_IN_PROGRESS; in ide_transfer_pc()
698 struct ide_atapi_pc *pc; in ide_issue_pc() local
716 pc = drive->pc; in ide_issue_pc()
727 if (pc->flags & PC_FLAG_DMA_ERROR) { in ide_issue_pc()
728 pc->flags &= ~PC_FLAG_DMA_ERROR; in ide_issue_pc()
732 if (pc->flags & PC_FLAG_DMA_OK) in ide_issue_pc()
736 pc->flags &= ~PC_FLAG_DMA_OK; in ide_issue_pc()