Lines Matching refs:cmd
55 static void ide_tf_set_cmd(ide_drive_t *drive, struct ide_cmd *cmd, u8 dma) in ide_tf_set_cmd() argument
59 lba48 = (cmd->tf_flags & IDE_TFLAG_LBA48) ? 2 : 0; in ide_tf_set_cmd()
60 write = (cmd->tf_flags & IDE_TFLAG_WRITE) ? 1 : 0; in ide_tf_set_cmd()
63 cmd->protocol = ATA_PROT_DMA; in ide_tf_set_cmd()
66 cmd->protocol = ATA_PROT_PIO; in ide_tf_set_cmd()
68 cmd->tf_flags |= IDE_TFLAG_MULTI_PIO; in ide_tf_set_cmd()
74 cmd->tf.command = ide_rw_cmds[index + lba48 + write]; in ide_tf_set_cmd()
88 struct ide_cmd cmd; in __ide_do_rw_disk() local
89 struct ide_taskfile *tf = &cmd.tf; in __ide_do_rw_disk()
99 memset(&cmd, 0, sizeof(cmd)); in __ide_do_rw_disk()
100 cmd.valid.out.tf = IDE_VALID_OUT_TF | IDE_VALID_DEVICE; in __ide_do_rw_disk()
101 cmd.valid.in.tf = IDE_VALID_IN_TF | IDE_VALID_DEVICE; in __ide_do_rw_disk()
114 tf = &cmd.hob; in __ide_do_rw_disk()
122 cmd.valid.out.hob = IDE_VALID_OUT_HOB; in __ide_do_rw_disk()
123 cmd.valid.in.hob = IDE_VALID_IN_HOB; in __ide_do_rw_disk()
124 cmd.tf_flags |= IDE_TFLAG_LBA48; in __ide_do_rw_disk()
149 cmd.tf_flags |= IDE_TFLAG_FS; in __ide_do_rw_disk()
152 cmd.tf_flags |= IDE_TFLAG_WRITE; in __ide_do_rw_disk()
154 ide_tf_set_cmd(drive, &cmd, dma); in __ide_do_rw_disk()
155 cmd.rq = rq; in __ide_do_rw_disk()
158 ide_init_sg_cmd(&cmd, nsectors << 9); in __ide_do_rw_disk()
159 ide_map_sg(drive, &cmd); in __ide_do_rw_disk()
162 rc = do_rw_taskfile(drive, &cmd); in __ide_do_rw_disk()
166 cmd.tf_flags |= IDE_TFLAG_DMA_PIO_FALLBACK; in __ide_do_rw_disk()
167 ide_tf_set_cmd(drive, &cmd, 0); in __ide_do_rw_disk()
168 ide_init_sg_cmd(&cmd, nsectors << 9); in __ide_do_rw_disk()
169 rc = do_rw_taskfile(drive, &cmd); in __ide_do_rw_disk()
207 struct ide_cmd cmd; in idedisk_read_native_max_address() local
208 struct ide_taskfile *tf = &cmd.tf; in idedisk_read_native_max_address()
211 memset(&cmd, 0, sizeof(cmd)); in idedisk_read_native_max_address()
218 cmd.valid.out.tf = IDE_VALID_OUT_TF | IDE_VALID_DEVICE; in idedisk_read_native_max_address()
219 cmd.valid.in.tf = IDE_VALID_IN_TF | IDE_VALID_DEVICE; in idedisk_read_native_max_address()
221 cmd.valid.out.hob = IDE_VALID_OUT_HOB; in idedisk_read_native_max_address()
222 cmd.valid.in.hob = IDE_VALID_IN_HOB; in idedisk_read_native_max_address()
223 cmd.tf_flags = IDE_TFLAG_LBA48; in idedisk_read_native_max_address()
226 ide_no_data_taskfile(drive, &cmd); in idedisk_read_native_max_address()
230 addr = ide_get_lba_addr(&cmd, lba48) + 1; in idedisk_read_native_max_address()
241 struct ide_cmd cmd; in idedisk_set_max_address() local
242 struct ide_taskfile *tf = &cmd.tf; in idedisk_set_max_address()
247 memset(&cmd, 0, sizeof(cmd)); in idedisk_set_max_address()
252 cmd.hob.lbal = (addr_req >>= 8) & 0xff; in idedisk_set_max_address()
253 cmd.hob.lbam = (addr_req >>= 8) & 0xff; in idedisk_set_max_address()
254 cmd.hob.lbah = (addr_req >>= 8) & 0xff; in idedisk_set_max_address()
262 cmd.valid.out.tf = IDE_VALID_OUT_TF | IDE_VALID_DEVICE; in idedisk_set_max_address()
263 cmd.valid.in.tf = IDE_VALID_IN_TF | IDE_VALID_DEVICE; in idedisk_set_max_address()
265 cmd.valid.out.hob = IDE_VALID_OUT_HOB; in idedisk_set_max_address()
266 cmd.valid.in.hob = IDE_VALID_IN_HOB; in idedisk_set_max_address()
267 cmd.tf_flags = IDE_TFLAG_LBA48; in idedisk_set_max_address()
270 ide_no_data_taskfile(drive, &cmd); in idedisk_set_max_address()
274 addr_set = ide_get_lba_addr(&cmd, lba48) + 1; in idedisk_set_max_address()
432 struct ide_cmd *cmd; in idedisk_prep_fn() local
438 cmd = rq->special; in idedisk_prep_fn()
439 memset(cmd, 0, sizeof(*cmd)); in idedisk_prep_fn()
441 cmd = kzalloc(sizeof(*cmd), GFP_ATOMIC); in idedisk_prep_fn()
445 BUG_ON(cmd == NULL); in idedisk_prep_fn()
449 cmd->tf.command = ATA_CMD_FLUSH_EXT; in idedisk_prep_fn()
451 cmd->tf.command = ATA_CMD_FLUSH; in idedisk_prep_fn()
452 cmd->valid.out.tf = IDE_VALID_OUT_TF | IDE_VALID_DEVICE; in idedisk_prep_fn()
453 cmd->tf_flags = IDE_TFLAG_DYN; in idedisk_prep_fn()
454 cmd->protocol = ATA_PROT_NODATA; in idedisk_prep_fn()
457 rq->special = cmd; in idedisk_prep_fn()
458 cmd->rq = rq; in idedisk_prep_fn()
510 struct ide_cmd cmd; in ide_do_setfeature() local
512 memset(&cmd, 0, sizeof(cmd)); in ide_do_setfeature()
513 cmd.tf.feature = feature; in ide_do_setfeature()
514 cmd.tf.nsect = nsect; in ide_do_setfeature()
515 cmd.tf.command = ATA_CMD_SET_FEATURES; in ide_do_setfeature()
516 cmd.valid.out.tf = IDE_VALID_OUT_TF | IDE_VALID_DEVICE; in ide_do_setfeature()
517 cmd.valid.in.tf = IDE_VALID_IN_TF | IDE_VALID_DEVICE; in ide_do_setfeature()
519 return ide_no_data_taskfile(drive, &cmd); in ide_do_setfeature()
584 struct ide_cmd cmd; in do_idedisk_flushcache() local
586 memset(&cmd, 0, sizeof(cmd)); in do_idedisk_flushcache()
588 cmd.tf.command = ATA_CMD_FLUSH_EXT; in do_idedisk_flushcache()
590 cmd.tf.command = ATA_CMD_FLUSH; in do_idedisk_flushcache()
591 cmd.valid.out.tf = IDE_VALID_OUT_TF | IDE_VALID_DEVICE; in do_idedisk_flushcache()
592 cmd.valid.in.tf = IDE_VALID_IN_TF | IDE_VALID_DEVICE; in do_idedisk_flushcache()
594 return ide_no_data_taskfile(drive, &cmd); in do_idedisk_flushcache()
768 struct ide_cmd cmd; in ide_disk_set_doorlock() local
774 memset(&cmd, 0, sizeof(cmd)); in ide_disk_set_doorlock()
775 cmd.tf.command = on ? ATA_CMD_MEDIA_LOCK : ATA_CMD_MEDIA_UNLOCK; in ide_disk_set_doorlock()
776 cmd.valid.out.tf = IDE_VALID_OUT_TF | IDE_VALID_DEVICE; in ide_disk_set_doorlock()
777 cmd.valid.in.tf = IDE_VALID_IN_TF | IDE_VALID_DEVICE; in ide_disk_set_doorlock()
779 ret = ide_no_data_taskfile(drive, &cmd); in ide_disk_set_doorlock()