Lines Matching refs:tf

554 void ata_tf_to_fis(const struct ata_taskfile *tf, u8 pmp, int is_cmd, u8 *fis)  in ata_tf_to_fis()  argument
561 fis[2] = tf->command; in ata_tf_to_fis()
562 fis[3] = tf->feature; in ata_tf_to_fis()
564 fis[4] = tf->lbal; in ata_tf_to_fis()
565 fis[5] = tf->lbam; in ata_tf_to_fis()
566 fis[6] = tf->lbah; in ata_tf_to_fis()
567 fis[7] = tf->device; in ata_tf_to_fis()
569 fis[8] = tf->hob_lbal; in ata_tf_to_fis()
570 fis[9] = tf->hob_lbam; in ata_tf_to_fis()
571 fis[10] = tf->hob_lbah; in ata_tf_to_fis()
572 fis[11] = tf->hob_feature; in ata_tf_to_fis()
574 fis[12] = tf->nsect; in ata_tf_to_fis()
575 fis[13] = tf->hob_nsect; in ata_tf_to_fis()
577 fis[15] = tf->ctl; in ata_tf_to_fis()
579 fis[16] = tf->auxiliary & 0xff; in ata_tf_to_fis()
580 fis[17] = (tf->auxiliary >> 8) & 0xff; in ata_tf_to_fis()
581 fis[18] = (tf->auxiliary >> 16) & 0xff; in ata_tf_to_fis()
582 fis[19] = (tf->auxiliary >> 24) & 0xff; in ata_tf_to_fis()
596 void ata_tf_from_fis(const u8 *fis, struct ata_taskfile *tf) in ata_tf_from_fis() argument
598 tf->command = fis[2]; /* status */ in ata_tf_from_fis()
599 tf->feature = fis[3]; /* error */ in ata_tf_from_fis()
601 tf->lbal = fis[4]; in ata_tf_from_fis()
602 tf->lbam = fis[5]; in ata_tf_from_fis()
603 tf->lbah = fis[6]; in ata_tf_from_fis()
604 tf->device = fis[7]; in ata_tf_from_fis()
606 tf->hob_lbal = fis[8]; in ata_tf_from_fis()
607 tf->hob_lbam = fis[9]; in ata_tf_from_fis()
608 tf->hob_lbah = fis[10]; in ata_tf_from_fis()
610 tf->nsect = fis[12]; in ata_tf_from_fis()
611 tf->hob_nsect = fis[13]; in ata_tf_from_fis()
655 static int ata_rwcmd_protocol(struct ata_taskfile *tf, struct ata_device *dev) in ata_rwcmd_protocol() argument
661 fua = (tf->flags & ATA_TFLAG_FUA) ? 4 : 0; in ata_rwcmd_protocol()
662 lba48 = (tf->flags & ATA_TFLAG_LBA48) ? 2 : 0; in ata_rwcmd_protocol()
663 write = (tf->flags & ATA_TFLAG_WRITE) ? 1 : 0; in ata_rwcmd_protocol()
666 tf->protocol = ATA_PROT_PIO; in ata_rwcmd_protocol()
670 tf->protocol = ATA_PROT_PIO; in ata_rwcmd_protocol()
673 tf->protocol = ATA_PROT_DMA; in ata_rwcmd_protocol()
679 tf->command = cmd; in ata_rwcmd_protocol()
700 u64 ata_tf_read_block(const struct ata_taskfile *tf, struct ata_device *dev) in ata_tf_read_block() argument
704 if (tf->flags & ATA_TFLAG_LBA) { in ata_tf_read_block()
705 if (tf->flags & ATA_TFLAG_LBA48) { in ata_tf_read_block()
706 block |= (u64)tf->hob_lbah << 40; in ata_tf_read_block()
707 block |= (u64)tf->hob_lbam << 32; in ata_tf_read_block()
708 block |= (u64)tf->hob_lbal << 24; in ata_tf_read_block()
710 block |= (tf->device & 0xf) << 24; in ata_tf_read_block()
712 block |= tf->lbah << 16; in ata_tf_read_block()
713 block |= tf->lbam << 8; in ata_tf_read_block()
714 block |= tf->lbal; in ata_tf_read_block()
718 cyl = tf->lbam | (tf->lbah << 8); in ata_tf_read_block()
719 head = tf->device & 0xf; in ata_tf_read_block()
720 sect = tf->lbal; in ata_tf_read_block()
755 int ata_build_rw_tf(struct ata_taskfile *tf, struct ata_device *dev, in ata_build_rw_tf() argument
759 tf->flags |= ATA_TFLAG_ISADDR | ATA_TFLAG_DEVICE; in ata_build_rw_tf()
760 tf->flags |= tf_flags; in ata_build_rw_tf()
767 tf->protocol = ATA_PROT_NCQ; in ata_build_rw_tf()
768 tf->flags |= ATA_TFLAG_LBA | ATA_TFLAG_LBA48; in ata_build_rw_tf()
770 if (tf->flags & ATA_TFLAG_WRITE) in ata_build_rw_tf()
771 tf->command = ATA_CMD_FPDMA_WRITE; in ata_build_rw_tf()
773 tf->command = ATA_CMD_FPDMA_READ; in ata_build_rw_tf()
775 tf->nsect = tag << 3; in ata_build_rw_tf()
776 tf->hob_feature = (n_block >> 8) & 0xff; in ata_build_rw_tf()
777 tf->feature = n_block & 0xff; in ata_build_rw_tf()
779 tf->hob_lbah = (block >> 40) & 0xff; in ata_build_rw_tf()
780 tf->hob_lbam = (block >> 32) & 0xff; in ata_build_rw_tf()
781 tf->hob_lbal = (block >> 24) & 0xff; in ata_build_rw_tf()
782 tf->lbah = (block >> 16) & 0xff; in ata_build_rw_tf()
783 tf->lbam = (block >> 8) & 0xff; in ata_build_rw_tf()
784 tf->lbal = block & 0xff; in ata_build_rw_tf()
786 tf->device = ATA_LBA; in ata_build_rw_tf()
787 if (tf->flags & ATA_TFLAG_FUA) in ata_build_rw_tf()
788 tf->device |= 1 << 7; in ata_build_rw_tf()
792 tf->hob_nsect |= ATA_PRIO_HIGH << in ata_build_rw_tf()
796 tf->flags |= ATA_TFLAG_LBA; in ata_build_rw_tf()
800 tf->device |= (block >> 24) & 0xf; in ata_build_rw_tf()
806 tf->flags |= ATA_TFLAG_LBA48; in ata_build_rw_tf()
808 tf->hob_nsect = (n_block >> 8) & 0xff; in ata_build_rw_tf()
810 tf->hob_lbah = (block >> 40) & 0xff; in ata_build_rw_tf()
811 tf->hob_lbam = (block >> 32) & 0xff; in ata_build_rw_tf()
812 tf->hob_lbal = (block >> 24) & 0xff; in ata_build_rw_tf()
817 if (unlikely(ata_rwcmd_protocol(tf, dev) < 0)) in ata_build_rw_tf()
820 tf->nsect = n_block & 0xff; in ata_build_rw_tf()
822 tf->lbah = (block >> 16) & 0xff; in ata_build_rw_tf()
823 tf->lbam = (block >> 8) & 0xff; in ata_build_rw_tf()
824 tf->lbal = block & 0xff; in ata_build_rw_tf()
826 tf->device |= ATA_LBA; in ata_build_rw_tf()
835 if (unlikely(ata_rwcmd_protocol(tf, dev) < 0)) in ata_build_rw_tf()
854 tf->nsect = n_block & 0xff; /* Sector count 0 means 256 sectors */ in ata_build_rw_tf()
855 tf->lbal = sect; in ata_build_rw_tf()
856 tf->lbam = cyl; in ata_build_rw_tf()
857 tf->lbah = cyl >> 8; in ata_build_rw_tf()
858 tf->device |= head; in ata_build_rw_tf()
1062 unsigned int ata_dev_classify(const struct ata_taskfile *tf) in ata_dev_classify() argument
1085 if ((tf->lbam == 0) && (tf->lbah == 0)) { in ata_dev_classify()
1090 if ((tf->lbam == 0x14) && (tf->lbah == 0xeb)) { in ata_dev_classify()
1095 if ((tf->lbam == 0x69) && (tf->lbah == 0x96)) { in ata_dev_classify()
1100 if ((tf->lbam == 0x3c) && (tf->lbah == 0xc3)) { in ata_dev_classify()
1105 if ((tf->lbam == 0xcd) && (tf->lbah == 0xab)) { in ata_dev_classify()
1194 u64 ata_tf_to_lba48(const struct ata_taskfile *tf) in ata_tf_to_lba48() argument
1198 sectors |= ((u64)(tf->hob_lbah & 0xff)) << 40; in ata_tf_to_lba48()
1199 sectors |= ((u64)(tf->hob_lbam & 0xff)) << 32; in ata_tf_to_lba48()
1200 sectors |= ((u64)(tf->hob_lbal & 0xff)) << 24; in ata_tf_to_lba48()
1201 sectors |= (tf->lbah & 0xff) << 16; in ata_tf_to_lba48()
1202 sectors |= (tf->lbam & 0xff) << 8; in ata_tf_to_lba48()
1203 sectors |= (tf->lbal & 0xff); in ata_tf_to_lba48()
1208 u64 ata_tf_to_lba(const struct ata_taskfile *tf) in ata_tf_to_lba() argument
1212 sectors |= (tf->device & 0x0f) << 24; in ata_tf_to_lba()
1213 sectors |= (tf->lbah & 0xff) << 16; in ata_tf_to_lba()
1214 sectors |= (tf->lbam & 0xff) << 8; in ata_tf_to_lba()
1215 sectors |= (tf->lbal & 0xff); in ata_tf_to_lba()
1235 struct ata_taskfile tf; in ata_read_native_max_address() local
1238 ata_tf_init(dev, &tf); in ata_read_native_max_address()
1241 tf.flags |= ATA_TFLAG_DEVICE | ATA_TFLAG_ISADDR; in ata_read_native_max_address()
1244 tf.command = ATA_CMD_READ_NATIVE_MAX_EXT; in ata_read_native_max_address()
1245 tf.flags |= ATA_TFLAG_LBA48; in ata_read_native_max_address()
1247 tf.command = ATA_CMD_READ_NATIVE_MAX; in ata_read_native_max_address()
1249 tf.protocol = ATA_PROT_NODATA; in ata_read_native_max_address()
1250 tf.device |= ATA_LBA; in ata_read_native_max_address()
1252 err_mask = ata_exec_internal(dev, &tf, NULL, DMA_NONE, NULL, 0, 0); in ata_read_native_max_address()
1257 if (err_mask == AC_ERR_DEV && (tf.feature & ATA_ABORTED)) in ata_read_native_max_address()
1263 *max_sectors = ata_tf_to_lba48(&tf) + 1; in ata_read_native_max_address()
1265 *max_sectors = ata_tf_to_lba(&tf) + 1; in ata_read_native_max_address()
1286 struct ata_taskfile tf; in ata_set_max_sectors() local
1291 ata_tf_init(dev, &tf); in ata_set_max_sectors()
1293 tf.flags |= ATA_TFLAG_DEVICE | ATA_TFLAG_ISADDR; in ata_set_max_sectors()
1296 tf.command = ATA_CMD_SET_MAX_EXT; in ata_set_max_sectors()
1297 tf.flags |= ATA_TFLAG_LBA48; in ata_set_max_sectors()
1299 tf.hob_lbal = (new_sectors >> 24) & 0xff; in ata_set_max_sectors()
1300 tf.hob_lbam = (new_sectors >> 32) & 0xff; in ata_set_max_sectors()
1301 tf.hob_lbah = (new_sectors >> 40) & 0xff; in ata_set_max_sectors()
1303 tf.command = ATA_CMD_SET_MAX; in ata_set_max_sectors()
1305 tf.device |= (new_sectors >> 24) & 0xf; in ata_set_max_sectors()
1308 tf.protocol = ATA_PROT_NODATA; in ata_set_max_sectors()
1309 tf.device |= ATA_LBA; in ata_set_max_sectors()
1311 tf.lbal = (new_sectors >> 0) & 0xff; in ata_set_max_sectors()
1312 tf.lbam = (new_sectors >> 8) & 0xff; in ata_set_max_sectors()
1313 tf.lbah = (new_sectors >> 16) & 0xff; in ata_set_max_sectors()
1315 err_mask = ata_exec_internal(dev, &tf, NULL, DMA_NONE, NULL, 0, 0); in ata_set_max_sectors()
1321 (tf.feature & (ATA_ABORTED | ATA_IDNF))) in ata_set_max_sectors()
1564 struct ata_taskfile *tf, const u8 *cdb, in ata_exec_internal_sg() argument
1570 u8 command = tf->command; in ata_exec_internal_sg()
1610 qc->tf = *tf; in ata_exec_internal_sg()
1615 if (tf->protocol == ATAPI_PROT_DMA && (dev->flags & ATA_DFLAG_DMADIR) && in ata_exec_internal_sg()
1617 qc->tf.feature |= ATAPI_DMADIR; in ata_exec_internal_sg()
1696 } else if (qc->tf.command == ATA_CMD_REQ_SENSE_DATA) { in ata_exec_internal_sg()
1703 *tf = qc->result_tf; in ata_exec_internal_sg()
1740 struct ata_taskfile *tf, const u8 *cdb, in ata_exec_internal() argument
1754 return ata_exec_internal_sg(dev, tf, cdb, dma_dir, psg, n_elem, in ata_exec_internal()
1825 struct ata_taskfile *tf, u16 *id) in ata_do_dev_read_id() argument
1827 return ata_exec_internal(dev, tf, NULL, DMA_FROM_DEVICE, in ata_do_dev_read_id()
1857 struct ata_taskfile tf; in ata_dev_read_id() local
1868 ata_tf_init(dev, &tf); in ata_dev_read_id()
1876 tf.command = ATA_CMD_ID_ATA; in ata_dev_read_id()
1879 tf.command = ATA_CMD_ID_ATAPI; in ata_dev_read_id()
1887 tf.protocol = ATA_PROT_PIO; in ata_dev_read_id()
1892 tf.flags |= ATA_TFLAG_ISADDR | ATA_TFLAG_DEVICE; in ata_dev_read_id()
1897 tf.flags |= ATA_TFLAG_POLLING; in ata_dev_read_id()
1900 err_mask = ap->ops->read_id(dev, &tf, id); in ata_dev_read_id()
1902 err_mask = ata_do_dev_read_id(dev, &tf, id); in ata_dev_read_id()
1918 if ((err_mask == AC_ERR_DEV) && (tf.feature & ATA_ABORTED)) { in ata_dev_read_id()
2062 struct ata_taskfile tf; in ata_read_log_page() local
2076 ata_tf_init(dev, &tf); in ata_read_log_page()
2079 tf.command = ATA_CMD_READ_LOG_DMA_EXT; in ata_read_log_page()
2080 tf.protocol = ATA_PROT_DMA; in ata_read_log_page()
2083 tf.command = ATA_CMD_READ_LOG_EXT; in ata_read_log_page()
2084 tf.protocol = ATA_PROT_PIO; in ata_read_log_page()
2087 tf.lbal = log; in ata_read_log_page()
2088 tf.lbam = page; in ata_read_log_page()
2089 tf.nsect = sectors; in ata_read_log_page()
2090 tf.hob_nsect = sectors >> 8; in ata_read_log_page()
2091 tf.flags |= ATA_TFLAG_ISADDR | ATA_TFLAG_LBA48 | ATA_TFLAG_DEVICE; in ata_read_log_page()
2093 err_mask = ata_exec_internal(dev, &tf, NULL, DMA_FROM_DEVICE, in ata_read_log_page()
4820 struct ata_taskfile tf; in ata_dev_set_xfermode() local
4829 ata_tf_init(dev, &tf); in ata_dev_set_xfermode()
4830 tf.command = ATA_CMD_SET_FEATURES; in ata_dev_set_xfermode()
4831 tf.feature = SETFEATURES_XFER; in ata_dev_set_xfermode()
4832 tf.flags |= ATA_TFLAG_ISADDR | ATA_TFLAG_DEVICE | ATA_TFLAG_POLLING; in ata_dev_set_xfermode()
4833 tf.protocol = ATA_PROT_NODATA; in ata_dev_set_xfermode()
4836 tf.nsect = dev->xfer_mode; in ata_dev_set_xfermode()
4839 tf.nsect = 0x01; in ata_dev_set_xfermode()
4844 err_mask = ata_exec_internal(dev, &tf, NULL, DMA_NONE, NULL, 0, 15000); in ata_dev_set_xfermode()
4867 struct ata_taskfile tf; in ata_dev_set_feature() local
4874 ata_tf_init(dev, &tf); in ata_dev_set_feature()
4875 tf.command = ATA_CMD_SET_FEATURES; in ata_dev_set_feature()
4876 tf.feature = enable; in ata_dev_set_feature()
4877 tf.flags |= ATA_TFLAG_ISADDR | ATA_TFLAG_DEVICE; in ata_dev_set_feature()
4878 tf.protocol = ATA_PROT_NODATA; in ata_dev_set_feature()
4879 tf.nsect = feature; in ata_dev_set_feature()
4884 err_mask = ata_exec_internal(dev, &tf, NULL, DMA_NONE, NULL, 0, timeout); in ata_dev_set_feature()
4906 struct ata_taskfile tf; in ata_dev_init_params() local
4916 ata_tf_init(dev, &tf); in ata_dev_init_params()
4917 tf.command = ATA_CMD_INIT_DEV_PARAMS; in ata_dev_init_params()
4918 tf.flags |= ATA_TFLAG_ISADDR | ATA_TFLAG_DEVICE; in ata_dev_init_params()
4919 tf.protocol = ATA_PROT_NODATA; in ata_dev_init_params()
4920 tf.nsect = sectors; in ata_dev_init_params()
4921 tf.device |= (heads - 1) & 0x0f; /* max head = num. of heads - 1 */ in ata_dev_init_params()
4923 err_mask = ata_exec_internal(dev, &tf, NULL, DMA_NONE, NULL, 0, 0); in ata_dev_init_params()
4927 if (err_mask == AC_ERR_DEV && (tf.feature & ATA_ABORTED)) in ata_dev_init_params()
4984 if (ata_is_ncq(qc->tf.protocol)) { in ata_std_qc_defer()
5184 if (ata_is_ncq(qc->tf.protocol)) { in __ata_qc_complete()
5213 qc->result_tf.flags = qc->tf.flags; in fill_result_tf()
5221 if (!ata_is_data(qc->tf.protocol)) in ata_verify_xfer()
5224 if ((dev->mwdma_mask || dev->udma_mask) && ata_is_pio(qc->tf.protocol)) in ata_verify_xfer()
5250 ledtrig_disk_activity(!!(qc->tf.flags & ATA_TFLAG_WRITE)); in ata_qc_complete()
5304 switch (qc->tf.command) { in ata_qc_complete()
5306 if (qc->tf.feature != SETFEATURES_WC_ON && in ata_qc_complete()
5307 qc->tf.feature != SETFEATURES_WC_OFF && in ata_qc_complete()
5308 qc->tf.feature != SETFEATURES_RA_ON && in ata_qc_complete()
5309 qc->tf.feature != SETFEATURES_RA_OFF) in ata_qc_complete()
5414 u8 prot = qc->tf.protocol; in ata_qc_issue()