Lines Matching refs:pc
66 struct ide_atapi_pc *pc = drive->pc; in ide_floppy_callback() local
67 struct request *rq = pc->rq; in ide_floppy_callback()
68 int uptodate = pc->error ? 0 : 1; in ide_floppy_callback()
72 if (drive->failed_pc == pc) in ide_floppy_callback()
75 if (pc->c[0] == GPCMD_READ_10 || pc->c[0] == GPCMD_WRITE_10 || in ide_floppy_callback()
78 else if (pc->c[0] == GPCMD_REQUEST_SENSE) { in ide_floppy_callback()
82 if (!pc->error) { in ide_floppy_callback()
108 struct ide_atapi_pc *pc) in ide_floppy_report_error() argument
118 floppy->drive->name, pc->c[0], floppy->sense_key, in ide_floppy_report_error()
125 struct ide_atapi_pc *pc) in ide_floppy_issue_pc() argument
130 pc->c[0] != GPCMD_REQUEST_SENSE) in ide_floppy_issue_pc()
131 drive->failed_pc = pc; in ide_floppy_issue_pc()
134 drive->pc = pc; in ide_floppy_issue_pc()
136 if (pc->retries > IDEFLOPPY_MAX_PC_RETRIES) { in ide_floppy_issue_pc()
139 if (!(pc->flags & PC_FLAG_SUPPRESS_ERROR)) in ide_floppy_issue_pc()
140 ide_floppy_report_error(floppy, pc); in ide_floppy_issue_pc()
143 pc->error = IDE_DRV_ERROR_GENERAL; in ide_floppy_issue_pc()
151 ide_debug_log(IDE_DBG_FUNC, "retry #%d", pc->retries); in ide_floppy_issue_pc()
153 pc->retries++; in ide_floppy_issue_pc()
158 void ide_floppy_create_read_capacity_cmd(struct ide_atapi_pc *pc) in ide_floppy_create_read_capacity_cmd() argument
160 ide_init_pc(pc); in ide_floppy_create_read_capacity_cmd()
161 pc->c[0] = GPCMD_READ_FORMAT_CAPACITIES; in ide_floppy_create_read_capacity_cmd()
162 pc->c[7] = 255; in ide_floppy_create_read_capacity_cmd()
163 pc->c[8] = 255; in ide_floppy_create_read_capacity_cmd()
164 pc->req_xfer = 255; in ide_floppy_create_read_capacity_cmd()
168 void ide_floppy_create_mode_sense_cmd(struct ide_atapi_pc *pc, u8 page_code) in ide_floppy_create_mode_sense_cmd() argument
172 ide_init_pc(pc); in ide_floppy_create_mode_sense_cmd()
173 pc->c[0] = GPCMD_MODE_SENSE_10; in ide_floppy_create_mode_sense_cmd()
174 pc->c[1] = 0; in ide_floppy_create_mode_sense_cmd()
175 pc->c[2] = page_code; in ide_floppy_create_mode_sense_cmd()
187 put_unaligned(cpu_to_be16(length), (u16 *) &pc->c[7]); in ide_floppy_create_mode_sense_cmd()
188 pc->req_xfer = length; in ide_floppy_create_mode_sense_cmd()
192 struct ide_atapi_pc *pc, struct request *rq, in idefloppy_create_rw_cmd() argument
202 ide_init_pc(pc); in idefloppy_create_rw_cmd()
203 pc->c[0] = cmd == READ ? GPCMD_READ_10 : GPCMD_WRITE_10; in idefloppy_create_rw_cmd()
204 put_unaligned(cpu_to_be16(blocks), (unsigned short *)&pc->c[7]); in idefloppy_create_rw_cmd()
205 put_unaligned(cpu_to_be32(block), (unsigned int *) &pc->c[2]); in idefloppy_create_rw_cmd()
207 memcpy(scsi_req(rq)->cmd, pc->c, 12); in idefloppy_create_rw_cmd()
209 pc->rq = rq; in idefloppy_create_rw_cmd()
211 pc->flags |= PC_FLAG_WRITING; in idefloppy_create_rw_cmd()
213 pc->flags |= PC_FLAG_DMA_OK; in idefloppy_create_rw_cmd()
217 struct ide_atapi_pc *pc, struct request *rq) in idefloppy_blockpc_cmd() argument
219 ide_init_pc(pc); in idefloppy_blockpc_cmd()
220 memcpy(pc->c, scsi_req(rq)->cmd, sizeof(pc->c)); in idefloppy_blockpc_cmd()
221 pc->rq = rq; in idefloppy_blockpc_cmd()
223 pc->flags |= PC_FLAG_DMA_OK; in idefloppy_blockpc_cmd()
225 pc->flags |= PC_FLAG_WRITING; in idefloppy_blockpc_cmd()
234 struct ide_atapi_pc *pc; in ide_floppy_do_request() local
266 pc = &floppy->queued_pc; in ide_floppy_do_request()
267 idefloppy_create_rw_cmd(drive, pc, rq, (unsigned long)block); in ide_floppy_do_request()
271 pc = &floppy->queued_pc; in ide_floppy_do_request()
272 idefloppy_blockpc_cmd(floppy, pc, rq); in ide_floppy_do_request()
279 pc = (struct ide_atapi_pc *)rq->special; in ide_floppy_do_request()
300 pc->rq = rq; in ide_floppy_do_request()
302 return ide_floppy_issue_pc(drive, &cmd, pc); in ide_floppy_do_request()
316 struct ide_atapi_pc *pc) in ide_floppy_get_flexible_disk_page() argument
325 ide_floppy_create_mode_sense_cmd(pc, IDEFLOPPY_FLEXIBLE_DISK_PAGE); in ide_floppy_get_flexible_disk_page()
327 if (ide_queue_pc_tail(drive, disk, pc, buf, pc->req_xfer)) { in ide_floppy_get_flexible_disk_page()
382 struct ide_atapi_pc pc; in ide_floppy_get_capacity() local
395 ide_floppy_create_read_capacity_cmd(&pc); in ide_floppy_get_capacity()
396 if (ide_queue_pc_tail(drive, disk, &pc, pc_buf, pc.req_xfer)) { in ide_floppy_get_capacity()
476 (void) ide_floppy_get_flexible_disk_page(drive, &pc); in ide_floppy_get_capacity()