Lines Matching defs:tf
335 * @tf: ATA taskfile register set
342 void ata_sff_tf_load(struct ata_port *ap, const struct ata_taskfile *tf)
345 unsigned int is_addr = tf->flags & ATA_TFLAG_ISADDR;
347 if (tf->ctl != ap->last_ctl) {
349 iowrite8(tf->ctl, ioaddr->ctl_addr);
350 ap->last_ctl = tf->ctl;
354 if (is_addr && (tf->flags & ATA_TFLAG_LBA48)) {
356 iowrite8(tf->hob_feature, ioaddr->feature_addr);
357 iowrite8(tf->hob_nsect, ioaddr->nsect_addr);
358 iowrite8(tf->hob_lbal, ioaddr->lbal_addr);
359 iowrite8(tf->hob_lbam, ioaddr->lbam_addr);
360 iowrite8(tf->hob_lbah, ioaddr->lbah_addr);
364 iowrite8(tf->feature, ioaddr->feature_addr);
365 iowrite8(tf->nsect, ioaddr->nsect_addr);
366 iowrite8(tf->lbal, ioaddr->lbal_addr);
367 iowrite8(tf->lbam, ioaddr->lbam_addr);
368 iowrite8(tf->lbah, ioaddr->lbah_addr);
371 if (tf->flags & ATA_TFLAG_DEVICE)
372 iowrite8(tf->device, ioaddr->device_addr);
381 * @tf: ATA taskfile register set for storing input
384 * into @tf. Assumes the device has a fully SFF compliant task file
391 void ata_sff_tf_read(struct ata_port *ap, struct ata_taskfile *tf)
395 tf->status = ata_sff_check_status(ap);
396 tf->error = ioread8(ioaddr->error_addr);
397 tf->nsect = ioread8(ioaddr->nsect_addr);
398 tf->lbal = ioread8(ioaddr->lbal_addr);
399 tf->lbam = ioread8(ioaddr->lbam_addr);
400 tf->lbah = ioread8(ioaddr->lbah_addr);
401 tf->device = ioread8(ioaddr->device_addr);
403 if (tf->flags & ATA_TFLAG_LBA48) {
405 iowrite8(tf->ctl | ATA_HOB, ioaddr->ctl_addr);
406 tf->hob_feature = ioread8(ioaddr->error_addr);
407 tf->hob_nsect = ioread8(ioaddr->nsect_addr);
408 tf->hob_lbal = ioread8(ioaddr->lbal_addr);
409 tf->hob_lbam = ioread8(ioaddr->lbam_addr);
410 tf->hob_lbah = ioread8(ioaddr->lbah_addr);
411 iowrite8(tf->ctl, ioaddr->ctl_addr);
412 ap->last_ctl = tf->ctl;
422 * @tf: ATA taskfile register set
430 void ata_sff_exec_command(struct ata_port *ap, const struct ata_taskfile *tf)
432 iowrite8(tf->command, ap->ioaddr.command_addr);
440 * @tf: ATA taskfile register set
451 const struct ata_taskfile *tf,
454 trace_ata_tf_load(ap, tf);
455 ap->ops->sff_tf_load(ap, tf);
456 trace_ata_exec_command(ap, tf, tag);
457 ap->ops->sff_exec_command(ap, tf);
580 bool do_write = (qc->tf.flags & ATA_TFLAG_WRITE);
662 if (is_multi_taskfile(&qc->tf)) {
699 switch (qc->tf.protocol) {
710 trace_ata_bmdma_start(ap, &qc->tf, qc->tag);
732 int rw = (qc->tf.flags & ATA_TFLAG_WRITE) ? WRITE : READ;
805 int i_write, do_write = (qc->tf.flags & ATA_TFLAG_WRITE) ? 1 : 0;
856 if (qc->tf.flags & ATA_TFLAG_POLLING)
860 if (qc->tf.protocol == ATA_PROT_PIO &&
861 (qc->tf.flags & ATA_TFLAG_WRITE))
864 if (ata_is_atapi(qc->tf.protocol) &&
928 * in_wq is not equivalent to (qc->tf.flags & ATA_TFLAG_POLLING).
943 poll_next = (qc->tf.flags & ATA_TFLAG_POLLING);
984 if (qc->tf.protocol == ATA_PROT_PIO) {
1006 if (qc->tf.protocol == ATAPI_PROT_PIO) {
1083 if (!(qc->tf.flags & ATA_TFLAG_WRITE)) {
1116 (!(qc->tf.flags & ATA_TFLAG_WRITE))) {
1291 qc->tf.flags |= ATA_TFLAG_POLLING;
1297 switch (qc->tf.protocol) {
1299 if (qc->tf.flags & ATA_TFLAG_POLLING)
1302 ata_tf_to_host(ap, &qc->tf, qc->tag);
1305 if (qc->tf.flags & ATA_TFLAG_POLLING)
1311 if (qc->tf.flags & ATA_TFLAG_POLLING)
1314 ata_tf_to_host(ap, &qc->tf, qc->tag);
1316 if (qc->tf.flags & ATA_TFLAG_WRITE) {
1328 if (qc->tf.flags & ATA_TFLAG_POLLING)
1341 if (qc->tf.flags & ATA_TFLAG_POLLING)
1344 ata_tf_to_host(ap, &qc->tf, qc->tag);
1350 (qc->tf.flags & ATA_TFLAG_POLLING))
1411 * need to check ata_is_atapi(qc->tf.protocol) again.
1481 if (!(qc->tf.flags & ATA_TFLAG_POLLING))
1574 if (!qc || qc->tf.flags & ATA_TFLAG_POLLING)
1750 struct ata_taskfile tf;
1756 memset(&tf, 0, sizeof(tf));
1758 ap->ops->sff_tf_read(ap, &tf);
1759 err = tf.error;
1775 class = ata_port_classify(ap, &tf);
2647 if (!ata_is_dma(qc->tf.protocol))
2654 switch (qc->tf.protocol) {
2656 WARN_ON_ONCE(qc->tf.flags & ATA_TFLAG_POLLING);
2658 trace_ata_tf_load(ap, &qc->tf);
2659 ap->ops->sff_tf_load(ap, &qc->tf); /* load tf registers */
2660 trace_ata_bmdma_setup(ap, &qc->tf, qc->tag);
2662 trace_ata_bmdma_start(ap, &qc->tf, qc->tag);
2668 WARN_ON_ONCE(qc->tf.flags & ATA_TFLAG_POLLING);
2670 trace_ata_tf_load(ap, &qc->tf);
2671 ap->ops->sff_tf_load(ap, &qc->tf); /* load tf registers */
2672 trace_ata_bmdma_setup(ap, &qc->tf, qc->tag);
2710 if (ap->hsm_task_state == HSM_ST_LAST && ata_is_dma(qc->tf.protocol)) {
2720 trace_ata_bmdma_stop(ap, &qc->tf, qc->tag);
2733 if (unlikely(qc->err_mask) && ata_is_dma(qc->tf.protocol))
2786 if (qc && ata_is_dma(qc->tf.protocol)) {
2802 trace_ata_bmdma_stop(ap, &qc->tf, qc->tag);
2834 if (ata_is_dma(qc->tf.protocol)) {
2836 trace_ata_bmdma_stop(ap, &qc->tf, qc->tag);
2875 unsigned int rw = (qc->tf.flags & ATA_TFLAG_WRITE);
2890 ap->ops->sff_exec_command(ap, &qc->tf);