ata_acpi_run_tf(9)
π NAME π
okay so bestie, this is the ata_acpi_run_tf(9) page from the Kernel API Manual, and the whole vibe is: send taskfile registers to host controller. Thatβs it, thatβs the function. β¨π
π¦ SYNOPSIS π¦
int ata_acpi_run_tf (struct ata_device *dev , const struct ata_acpi_gtf
*gtf , const struct ata_acpi_gtf *prev_gtf );
πΈ ARGUMENTS πΈ
devβ target ATA device. π«Άgtfβ raw ATA taskfile register set (0x1f1-0x1f7). π₯prev_gtfβ previous command. π
β¨ DESCRIPTION β¨
okay so picture this: it outputs the ATA taskfile to the standard ATA host controller. It writes the control, feature, nsect, lbal, lbam, and lbah registers. Optionally β and yes, specifically with ATA_TFLAG_LBA48 β it writes hob_feature, hob_nsect, hob_lbal, hob_lbam, and hob_lbah. Iconic register behavior, no cap. Slay. π
This function waits for idle (!BUSY and !DRQ) after writing registers. If the control register has a new value, this function also waits for idle after writing control and before writing the remaining registers. The way itβs giving careful sequencing. π¦
LOCKING: EH context. No cap, periodt. π
π RETURN π
1β command is executed successfully. π0β ignored, rejected or filtered out. π-errnoβ other errors. π
π SEE ALSO π
Kernel file ./drivers/ata/libata-acpi.c β and hereβs the whole bestie squad:
ata_dev_acpi_handle(9)ata_acpi_handle_hotplug(9)ata_acpi_dev_manage_restart(9)ata_acpi_port_power_on(9)ata_acpi_dissociate(9)ata_acpi_gtm(9)ata_acpi_stm(9)ata_dev_get_GTF(9)ata_acpi_gtm_xfermask(9)ata_acpi_cbl_pata_type(9)ata_acpi_exec_tfs(9)ata_acpi_push_id(9)ata_acpi_on_resume(9)ata_acpi_set_state(9)ata_acpi_on_devcfg(9)ata_acpi_on_disable(9)
This page is from source/version ./drivers/ata, dated October 2026, and itβs all about ata_acpi_run_tf(9) β bye bestie, go send those registers! π
β¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms