Lines Matching refs:tf
606 struct ata_taskfile *tf) in ata_set_rwcmd_protocol() argument
612 fua = (tf->flags & ATA_TFLAG_FUA) ? 4 : 0; in ata_set_rwcmd_protocol()
613 lba48 = (tf->flags & ATA_TFLAG_LBA48) ? 2 : 0; in ata_set_rwcmd_protocol()
614 write = (tf->flags & ATA_TFLAG_WRITE) ? 1 : 0; in ata_set_rwcmd_protocol()
617 tf->protocol = ATA_PROT_PIO; in ata_set_rwcmd_protocol()
621 tf->protocol = ATA_PROT_PIO; in ata_set_rwcmd_protocol()
624 tf->protocol = ATA_PROT_DMA; in ata_set_rwcmd_protocol()
632 tf->command = cmd; in ata_set_rwcmd_protocol()
652 u64 ata_tf_read_block(const struct ata_taskfile *tf, struct ata_device *dev) in ata_tf_read_block() argument
656 if (tf->flags & ATA_TFLAG_LBA) { in ata_tf_read_block()
657 if (tf->flags & ATA_TFLAG_LBA48) { in ata_tf_read_block()
658 block |= (u64)tf->hob_lbah << 40; in ata_tf_read_block()
659 block |= (u64)tf->hob_lbam << 32; in ata_tf_read_block()
660 block |= (u64)tf->hob_lbal << 24; in ata_tf_read_block()
662 block |= (tf->device & 0xf) << 24; in ata_tf_read_block()
664 block |= tf->lbah << 16; in ata_tf_read_block()
665 block |= tf->lbam << 8; in ata_tf_read_block()
666 block |= tf->lbal; in ata_tf_read_block()
670 cyl = tf->lbam | (tf->lbah << 8); in ata_tf_read_block()
671 head = tf->device & 0xf; in ata_tf_read_block()
672 sect = tf->lbal; in ata_tf_read_block()
691 struct ata_taskfile *tf = &qc->tf; in ata_set_tf_cdl() local
693 if (tf->protocol == ATA_PROT_NCQ) in ata_set_tf_cdl()
694 tf->auxiliary |= cdl; in ata_set_tf_cdl()
696 tf->feature |= cdl; in ata_set_tf_cdl()
729 struct ata_taskfile *tf = &qc->tf; in ata_build_rw_tf() local
732 tf->flags |= ATA_TFLAG_ISADDR | ATA_TFLAG_DEVICE; in ata_build_rw_tf()
733 tf->flags |= tf_flags; in ata_build_rw_tf()
740 tf->protocol = ATA_PROT_NCQ; in ata_build_rw_tf()
741 tf->flags |= ATA_TFLAG_LBA | ATA_TFLAG_LBA48; in ata_build_rw_tf()
743 if (tf->flags & ATA_TFLAG_WRITE) in ata_build_rw_tf()
744 tf->command = ATA_CMD_FPDMA_WRITE; in ata_build_rw_tf()
746 tf->command = ATA_CMD_FPDMA_READ; in ata_build_rw_tf()
748 tf->nsect = qc->hw_tag << 3; in ata_build_rw_tf()
749 tf->hob_feature = (n_block >> 8) & 0xff; in ata_build_rw_tf()
750 tf->feature = n_block & 0xff; in ata_build_rw_tf()
752 tf->hob_lbah = (block >> 40) & 0xff; in ata_build_rw_tf()
753 tf->hob_lbam = (block >> 32) & 0xff; in ata_build_rw_tf()
754 tf->hob_lbal = (block >> 24) & 0xff; in ata_build_rw_tf()
755 tf->lbah = (block >> 16) & 0xff; in ata_build_rw_tf()
756 tf->lbam = (block >> 8) & 0xff; in ata_build_rw_tf()
757 tf->lbal = block & 0xff; in ata_build_rw_tf()
759 tf->device = ATA_LBA; in ata_build_rw_tf()
760 if (tf->flags & ATA_TFLAG_FUA) in ata_build_rw_tf()
761 tf->device |= 1 << 7; in ata_build_rw_tf()
765 tf->hob_nsect |= ATA_PRIO_HIGH << ATA_SHIFT_PRIO; in ata_build_rw_tf()
771 tf->flags |= ATA_TFLAG_LBA; in ata_build_rw_tf()
777 if (!(tf->flags & ATA_TFLAG_FUA) && in ata_build_rw_tf()
781 tf->device |= (block >> 24) & 0xf; in ata_build_rw_tf()
787 tf->flags |= ATA_TFLAG_LBA48; in ata_build_rw_tf()
789 tf->hob_nsect = (n_block >> 8) & 0xff; in ata_build_rw_tf()
791 tf->hob_lbah = (block >> 40) & 0xff; in ata_build_rw_tf()
792 tf->hob_lbam = (block >> 32) & 0xff; in ata_build_rw_tf()
793 tf->hob_lbal = (block >> 24) & 0xff; in ata_build_rw_tf()
799 if (unlikely(!ata_set_rwcmd_protocol(dev, tf))) in ata_build_rw_tf()
802 tf->nsect = n_block & 0xff; in ata_build_rw_tf()
804 tf->lbah = (block >> 16) & 0xff; in ata_build_rw_tf()
805 tf->lbam = (block >> 8) & 0xff; in ata_build_rw_tf()
806 tf->lbal = block & 0xff; in ata_build_rw_tf()
808 tf->device |= ATA_LBA; in ata_build_rw_tf()
817 if (unlikely(!ata_set_rwcmd_protocol(dev, tf))) in ata_build_rw_tf()
833 tf->nsect = n_block & 0xff; /* Sector count 0 means 256 sectors */ in ata_build_rw_tf()
834 tf->lbal = sect; in ata_build_rw_tf()
835 tf->lbam = cyl; in ata_build_rw_tf()
836 tf->lbah = cyl >> 8; in ata_build_rw_tf()
837 tf->device |= head; in ata_build_rw_tf()
1046 unsigned int ata_dev_classify(const struct ata_taskfile *tf) in ata_dev_classify() argument
1069 if (tf->lbam == 0 && tf->lbah == 0) in ata_dev_classify()
1072 if (tf->lbam == 0x14 && tf->lbah == 0xeb) in ata_dev_classify()
1075 if (tf->lbam == 0x69 && tf->lbah == 0x96) in ata_dev_classify()
1078 if (tf->lbam == 0x3c && tf->lbah == 0xc3) in ata_dev_classify()
1081 if (tf->lbam == 0xcd && tf->lbah == 0xab) in ata_dev_classify()
1170 u64 ata_tf_to_lba48(const struct ata_taskfile *tf) in ata_tf_to_lba48() argument
1174 sectors |= ((u64)(tf->hob_lbah & 0xff)) << 40; in ata_tf_to_lba48()
1175 sectors |= ((u64)(tf->hob_lbam & 0xff)) << 32; in ata_tf_to_lba48()
1176 sectors |= ((u64)(tf->hob_lbal & 0xff)) << 24; in ata_tf_to_lba48()
1177 sectors |= (tf->lbah & 0xff) << 16; in ata_tf_to_lba48()
1178 sectors |= (tf->lbam & 0xff) << 8; in ata_tf_to_lba48()
1179 sectors |= (tf->lbal & 0xff); in ata_tf_to_lba48()
1184 u64 ata_tf_to_lba(const struct ata_taskfile *tf) in ata_tf_to_lba() argument
1188 sectors |= (tf->device & 0x0f) << 24; in ata_tf_to_lba()
1189 sectors |= (tf->lbah & 0xff) << 16; in ata_tf_to_lba()
1190 sectors |= (tf->lbam & 0xff) << 8; in ata_tf_to_lba()
1191 sectors |= (tf->lbal & 0xff); in ata_tf_to_lba()
1211 struct ata_taskfile tf; in ata_read_native_max_address() local
1214 ata_tf_init(dev, &tf); in ata_read_native_max_address()
1217 tf.flags |= ATA_TFLAG_DEVICE | ATA_TFLAG_ISADDR; in ata_read_native_max_address()
1220 tf.command = ATA_CMD_READ_NATIVE_MAX_EXT; in ata_read_native_max_address()
1221 tf.flags |= ATA_TFLAG_LBA48; in ata_read_native_max_address()
1223 tf.command = ATA_CMD_READ_NATIVE_MAX; in ata_read_native_max_address()
1225 tf.protocol = ATA_PROT_NODATA; in ata_read_native_max_address()
1226 tf.device |= ATA_LBA; in ata_read_native_max_address()
1228 err_mask = ata_exec_internal(dev, &tf, NULL, DMA_NONE, NULL, 0, 0); in ata_read_native_max_address()
1233 if (err_mask == AC_ERR_DEV && (tf.error & ATA_ABORTED)) in ata_read_native_max_address()
1239 *max_sectors = ata_tf_to_lba48(&tf) + 1; in ata_read_native_max_address()
1241 *max_sectors = ata_tf_to_lba(&tf) + 1; in ata_read_native_max_address()
1262 struct ata_taskfile tf; in ata_set_max_sectors() local
1267 ata_tf_init(dev, &tf); in ata_set_max_sectors()
1269 tf.flags |= ATA_TFLAG_DEVICE | ATA_TFLAG_ISADDR; in ata_set_max_sectors()
1272 tf.command = ATA_CMD_SET_MAX_EXT; in ata_set_max_sectors()
1273 tf.flags |= ATA_TFLAG_LBA48; in ata_set_max_sectors()
1275 tf.hob_lbal = (new_sectors >> 24) & 0xff; in ata_set_max_sectors()
1276 tf.hob_lbam = (new_sectors >> 32) & 0xff; in ata_set_max_sectors()
1277 tf.hob_lbah = (new_sectors >> 40) & 0xff; in ata_set_max_sectors()
1279 tf.command = ATA_CMD_SET_MAX; in ata_set_max_sectors()
1281 tf.device |= (new_sectors >> 24) & 0xf; in ata_set_max_sectors()
1284 tf.protocol = ATA_PROT_NODATA; in ata_set_max_sectors()
1285 tf.device |= ATA_LBA; in ata_set_max_sectors()
1287 tf.lbal = (new_sectors >> 0) & 0xff; in ata_set_max_sectors()
1288 tf.lbam = (new_sectors >> 8) & 0xff; in ata_set_max_sectors()
1289 tf.lbah = (new_sectors >> 16) & 0xff; in ata_set_max_sectors()
1291 err_mask = ata_exec_internal(dev, &tf, NULL, DMA_NONE, NULL, 0, 0); in ata_set_max_sectors()
1297 (tf.error & (ATA_ABORTED | ATA_IDNF))) in ata_set_max_sectors()
1522 unsigned int ata_exec_internal(struct ata_device *dev, struct ata_taskfile *tf, in ata_exec_internal() argument
1529 u8 command = tf->command; in ata_exec_internal()
1573 qc->tf = *tf; in ata_exec_internal()
1578 if (tf->protocol == ATAPI_PROT_DMA && (dev->flags & ATA_DFLAG_DMADIR) && in ata_exec_internal()
1580 qc->tf.feature |= ATAPI_DMADIR; in ata_exec_internal()
1643 } else if (qc->tf.command == ATA_CMD_REQ_SENSE_DATA) { in ata_exec_internal()
1650 *tf = qc->result_tf; in ata_exec_internal()
1735 struct ata_taskfile *tf, __le16 *id) in ata_do_dev_read_id() argument
1737 return ata_exec_internal(dev, tf, NULL, DMA_FROM_DEVICE, in ata_do_dev_read_id()
1768 struct ata_taskfile tf; in ata_dev_read_id() local
1776 ata_tf_init(dev, &tf); in ata_dev_read_id()
1784 tf.command = ATA_CMD_ID_ATA; in ata_dev_read_id()
1787 tf.command = ATA_CMD_ID_ATAPI; in ata_dev_read_id()
1795 tf.protocol = ATA_PROT_PIO; in ata_dev_read_id()
1800 tf.flags |= ATA_TFLAG_ISADDR | ATA_TFLAG_DEVICE; in ata_dev_read_id()
1805 tf.flags |= ATA_TFLAG_POLLING; in ata_dev_read_id()
1808 err_mask = ap->ops->read_id(dev, &tf, (__le16 *)id); in ata_dev_read_id()
1810 err_mask = ata_do_dev_read_id(dev, &tf, (__le16 *)id); in ata_dev_read_id()
1826 if ((err_mask == AC_ERR_DEV) && (tf.error & ATA_ABORTED)) { in ata_dev_read_id()
1949 bool ata_dev_power_init_tf(struct ata_device *dev, struct ata_taskfile *tf, in ata_dev_power_init_tf() argument
1956 ata_tf_init(dev, tf); in ata_dev_power_init_tf()
1957 tf->flags |= ATA_TFLAG_DEVICE | ATA_TFLAG_ISADDR; in ata_dev_power_init_tf()
1958 tf->protocol = ATA_PROT_NODATA; in ata_dev_power_init_tf()
1962 tf->command = ATA_CMD_VERIFY; in ata_dev_power_init_tf()
1963 tf->nsect = 1; in ata_dev_power_init_tf()
1965 tf->flags |= ATA_TFLAG_LBA; in ata_dev_power_init_tf()
1966 tf->device |= ATA_LBA; in ata_dev_power_init_tf()
1969 tf->lbal = 0x1; /* sect */ in ata_dev_power_init_tf()
1972 tf->command = ATA_CMD_STANDBYNOW1; in ata_dev_power_init_tf()
1980 struct ata_taskfile tf; in ata_dev_power_is_active() local
1983 ata_tf_init(dev, &tf); in ata_dev_power_is_active()
1984 tf.flags |= ATA_TFLAG_DEVICE | ATA_TFLAG_ISADDR; in ata_dev_power_is_active()
1985 tf.protocol = ATA_PROT_NODATA; in ata_dev_power_is_active()
1986 tf.command = ATA_CMD_CHK_POWER; in ata_dev_power_is_active()
1988 err_mask = ata_exec_internal(dev, &tf, NULL, DMA_NONE, NULL, 0, 0); in ata_dev_power_is_active()
1999 ata_dev_dbg(dev, "Power mode: 0x%02x\n", tf.nsect); in ata_dev_power_is_active()
2002 return tf.nsect == 0xff; in ata_dev_power_is_active()
2018 struct ata_taskfile tf; in ata_dev_power_set_standby() local
2040 if (!ata_dev_power_init_tf(dev, &tf, false)) in ata_dev_power_set_standby()
2045 err_mask = ata_exec_internal(dev, &tf, NULL, DMA_NONE, NULL, 0, 0); in ata_dev_power_set_standby()
2064 struct ata_taskfile tf; in ata_dev_power_set_active() local
2071 if (!ata_dev_power_init_tf(dev, &tf, true)) in ata_dev_power_set_active()
2083 err_mask = ata_exec_internal(dev, &tf, NULL, DMA_NONE, NULL, 0, 0); in ata_dev_power_set_active()
2109 struct ata_taskfile tf; in ata_read_log_page() local
2123 ata_tf_init(dev, &tf); in ata_read_log_page()
2126 tf.command = ATA_CMD_READ_LOG_DMA_EXT; in ata_read_log_page()
2127 tf.protocol = ATA_PROT_DMA; in ata_read_log_page()
2130 tf.command = ATA_CMD_READ_LOG_EXT; in ata_read_log_page()
2131 tf.protocol = ATA_PROT_PIO; in ata_read_log_page()
2134 tf.lbal = log; in ata_read_log_page()
2135 tf.lbam = page; in ata_read_log_page()
2136 tf.nsect = sectors; in ata_read_log_page()
2137 tf.hob_nsect = sectors >> 8; in ata_read_log_page()
2138 tf.flags |= ATA_TFLAG_ISADDR | ATA_TFLAG_LBA48 | ATA_TFLAG_DEVICE; in ata_read_log_page()
2140 err_mask = ata_exec_internal(dev, &tf, NULL, DMA_FROM_DEVICE, in ata_read_log_page()
4516 struct ata_taskfile tf; in ata_dev_set_xfermode() local
4524 ata_tf_init(dev, &tf); in ata_dev_set_xfermode()
4525 tf.command = ATA_CMD_SET_FEATURES; in ata_dev_set_xfermode()
4526 tf.feature = SETFEATURES_XFER; in ata_dev_set_xfermode()
4527 tf.flags |= ATA_TFLAG_ISADDR | ATA_TFLAG_DEVICE | ATA_TFLAG_POLLING; in ata_dev_set_xfermode()
4528 tf.protocol = ATA_PROT_NODATA; in ata_dev_set_xfermode()
4531 tf.nsect = dev->xfer_mode; in ata_dev_set_xfermode()
4534 tf.nsect = 0x01; in ata_dev_set_xfermode()
4542 return ata_exec_internal(dev, &tf, NULL, DMA_NONE, NULL, 0, 15000); in ata_dev_set_xfermode()
4561 struct ata_taskfile tf; in ata_dev_set_feature() local
4567 ata_tf_init(dev, &tf); in ata_dev_set_feature()
4568 tf.command = ATA_CMD_SET_FEATURES; in ata_dev_set_feature()
4569 tf.feature = subcmd; in ata_dev_set_feature()
4570 tf.flags |= ATA_TFLAG_ISADDR | ATA_TFLAG_DEVICE; in ata_dev_set_feature()
4571 tf.protocol = ATA_PROT_NODATA; in ata_dev_set_feature()
4572 tf.nsect = action; in ata_dev_set_feature()
4578 return ata_exec_internal(dev, &tf, NULL, DMA_NONE, NULL, 0, timeout); in ata_dev_set_feature()
4597 struct ata_taskfile tf; in ata_dev_init_params() local
4607 ata_tf_init(dev, &tf); in ata_dev_init_params()
4608 tf.command = ATA_CMD_INIT_DEV_PARAMS; in ata_dev_init_params()
4609 tf.flags |= ATA_TFLAG_ISADDR | ATA_TFLAG_DEVICE; in ata_dev_init_params()
4610 tf.protocol = ATA_PROT_NODATA; in ata_dev_init_params()
4611 tf.nsect = sectors; in ata_dev_init_params()
4612 tf.device |= (heads - 1) & 0x0f; /* max head = num. of heads - 1 */ in ata_dev_init_params()
4614 err_mask = ata_exec_internal(dev, &tf, NULL, DMA_NONE, NULL, 0, 0); in ata_dev_init_params()
4618 if (err_mask == AC_ERR_DEV && (tf.error & ATA_ABORTED)) in ata_dev_init_params()
4674 if (ata_is_ncq(qc->tf.protocol)) { in ata_std_qc_defer()
4823 if (ata_is_ncq(qc->tf.protocol)) { in __ata_qc_complete()
4860 qc->result_tf.flags = qc->tf.flags; in fill_result_tf()
4869 if (!ata_is_data(qc->tf.protocol)) in ata_verify_xfer()
4872 if ((dev->mwdma_mask || dev->udma_mask) && ata_is_pio(qc->tf.protocol)) in ata_verify_xfer()
4900 ledtrig_disk_activity(!!(qc->tf.flags & ATA_TFLAG_WRITE)); in ata_qc_complete()
4966 switch (qc->tf.command) { in ata_qc_complete()
4968 if (qc->tf.feature != SETFEATURES_WC_ON && in ata_qc_complete()
4969 qc->tf.feature != SETFEATURES_WC_OFF && in ata_qc_complete()
4970 qc->tf.feature != SETFEATURES_RA_ON && in ata_qc_complete()
4971 qc->tf.feature != SETFEATURES_RA_OFF) in ata_qc_complete()
5033 u8 prot = qc->tf.protocol; in ata_qc_issue()