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()
274 struct ide_atapi_pc *pc = &drive->request_sense_pc; in ide_retry_pc() local
279 ide_init_pc(pc); in ide_retry_pc()
280 memcpy(pc->c, scsi_req(sense_rq)->cmd, 12); in ide_retry_pc()
292 if (ide_queue_sense_rq(drive, pc)) in ide_retry_pc()
418 struct ide_atapi_pc *pc = drive->pc; in ide_pc_intr() local
426 u8 write = !!(pc->flags & PC_FLAG_WRITING); in ide_pc_intr()
436 if (pc->flags & PC_FLAG_DMA_IN_PROGRESS) { in ide_pc_intr()
446 drive->name, rq_data_dir(pc->rq) in ide_pc_intr()
448 pc->flags |= PC_FLAG_DMA_ERROR; in ide_pc_intr()
462 pc->flags &= ~PC_FLAG_DMA_IN_PROGRESS; in ide_pc_intr()
470 if ((stat & ATA_ERR) || (pc->flags & PC_FLAG_DMA_ERROR)) { in ide_pc_intr()
475 scsi_req(pc->rq)->result++; in ide_pc_intr()
491 pc->error = 0; in ide_pc_intr()
493 if ((pc->flags & PC_FLAG_WAIT_FOR_DSC) && (stat & ATA_DSC) == 0) in ide_pc_intr()
525 if (pc->flags & PC_FLAG_DMA_IN_PROGRESS) { in ide_pc_intr()
526 pc->flags &= ~PC_FLAG_DMA_IN_PROGRESS; in ide_pc_intr()
604 drive->hwif->tp_ops->output_data(drive, NULL, drive->pc->c, 12); in ide_delayed_transfer_pc()
612 struct ide_atapi_pc *pc; in ide_transfer_pc() local
641 pc = drive->pc; in ide_transfer_pc()
688 if (pc->flags & PC_FLAG_DMA_OK) { in ide_transfer_pc()
689 pc->flags |= PC_FLAG_DMA_IN_PROGRESS; in ide_transfer_pc()
699 struct ide_atapi_pc *pc; in ide_issue_pc() local
717 pc = drive->pc; in ide_issue_pc()
728 if (pc->flags & PC_FLAG_DMA_ERROR) { in ide_issue_pc()
729 pc->flags &= ~PC_FLAG_DMA_ERROR; in ide_issue_pc()
733 if (pc->flags & PC_FLAG_DMA_OK) in ide_issue_pc()
737 pc->flags &= ~PC_FLAG_DMA_OK; in ide_issue_pc()