mv_qc_issue_fis(9)
π mv_qc_issue_fis(9) β Kernel API Manual β¨
okay so bestie, welcome to the glow-up of the mv_qc_issue_fis page from the Kernel API Manual β this one's a whole saga about firing off a command straight up as a FIS, and it's lowkey spicy πΆοΈ
πΈ NAME πΈ
mv_qc_issue_fis β issue a command directly as a FIS, no cap π
π¦ SYNOPSIS π¦
unsigned int mv_qc_issue_fis (struct ata_queued_cmd *qc );
π ARGUMENTS π
qcβ the queued command you're about to start, bestie. it's giving "this is the one we're sending" energy β¨
π DESCRIPTION π
okay so first thing you gotta know: the ATA shadow registers do not get updated after the command is issued. ngl that's kind of a big deal β it means if something polls the device, it'll look "READY", even while the device is literally BUSY processing the command π like girl, read the room.
so the way we handle that? we use a status hook to fake ATA_BUSY until the drive actually changes state. iconic workaround tbh π«Ά
β οΈ NOTE β οΈ
π¨ plot twist: we don't get updated shadow regs on completion of non-data commands. so pls pls avoid sending them via this function β they'll appear to have completed immediately, which is a whole lie and you'll get played π
and about GEN_IIE β it has special registers that we could get the result tf from, but the earlier chipsets simply do not have them. for now, we ignore those registers. periodt. π
π₯ SEE ALSO π₯
kernel file ./drivers/ata/sata_mv.c, plus the whole friend group:
mv_save_cached_regs(9)mv_write_cached_reg(9)mv_stop_edma_engine(9)mv_port_start(9)mv_port_stop(9)mv_fill_sg(9)mv_sff_irq_clear(9)mv_check_atapi_dma(9)mv_bmdma_setup(9)mv_bmdma_start(9)mv_bmdma_stop_ap(9)mv_bmdma_status(9)mv_qc_prep(9)mv_qc_prep_iie(9)mv_sff_check_status(9)mv_send_fis(9)mv_qc_issue(9)mv_err_intr(9)mv_host_intr(9)mv_interrupt(9)mv_port_init(9)mv_init_host(9)mv_platform_probe(9)mv_print_info(9)mv_pci_init_one(9)
and that's the whole page, bestie β slay π β¨
sign-off szn π: this lil masterpiece lives in ./drivers/ata, dated October 2026. mwah, drink water, go touch some 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