ata_dev_power_set_active(9)
π ata_dev_power_set_active β a.k.a. the "wake up bestie, we're going ACTIVE" page
Okay so real quick, this whole thing lives in the Kernel API Manual, and it's genuinely one of the shorter ones, so grab your iced coffee π and let's go.
πΈ NAME πΈ
ata_dev_power_set_active β sets a device's power mode to active. That's it, that's the whole job. Iconic, honestly.
β¨ SYNOPSIS β¨
void ata_dev_power_set_active (struct ata_device *dev );
No return value, no drama. Void. She just does the thing π
π ARGUMENTS π
devβ the target device π«Ά like, the one you're trying to wake up.
π DESCRIPTION π
So basically: this issues a VERIFY command to enter, and that's how it makes suuure the device is in the active power mode. β
And here's the part that lowkey slaps: for a spun-down HDD (so, standby or idle power mode, in case you were wondering), the VERIFY command doesn't just bounce back immediately β it completes after the disk spins up. So yeah, she waits for the glow-up to finish before she reports back. π¦
LOCKING: kernel thread context (may sleep). So do not try this from somewhere that can't sleep, bestie, that's giving undefined chaos π
π SEE ALSO π
The main character lives in the kernel file ./drivers/ata/libata-core.c, and her group chat is genuinely massive β every single one of these is in it, no skipped members, periodt π
ata_link_next(9)β¨ata_dev_next(9)β¨ata_dev_phys_link(9)β¨ata_force_cbl(9)β¨ata_force_pflags(9)β¨ata_force_link_limits(9)β¨ata_force_xfermask(9)β¨ata_force_quirks(9)β¨atapi_cmd_type(9)β¨ata_set_rwcmd_protocol(9)β¨ata_tf_read_block(9)β¨ata_build_rw_tf(9)β¨ata_pack_xfermask(9)β¨ata_unpack_xfermask(9)β¨ata_xfer_mask2mode(9)β¨ata_xfer_mode2mask(9)β¨ata_xfer_mode2shift(9)β¨ata_mode_string(9)β¨ata_dev_classify(9)β¨ata_id_string(9)β¨ata_id_c_string(9)β¨ata_read_native_max_address(9)β¨ata_set_max_sectors(9)β¨ata_hpa_resize(9)β¨ata_dump_id(9)β¨ata_id_xfermask(9)β¨ata_exec_internal(9)β¨ata_pio_need_iordy(9)β¨ata_pio_mask_no_iordy(9)β¨ata_do_dev_read_id(9)β¨ata_dev_read_id(9)β¨ata_dev_power_set_standby(9)β¨ (her opposite-era sister π)ata_read_log_page(9)β¨ata_dev_configure(9)β¨ata_cable_40wire(9)β¨ata_cable_80wire(9)β¨ata_cable_unknown(9)β¨ata_cable_ignore(9)β¨ata_cable_sata(9)β¨sata_print_link_status(9)β¨ata_dev_pair(9)β¨ata_timing_cycle2mode(9)β¨ata_down_xfermask_limit(9)β¨ata_set_mode(9)β¨ata_wait_ready(9)β¨ata_wait_after_reset(9)β¨ata_std_prereset(9)β¨ata_std_postreset(9)β¨ata_dev_same_device(9)β¨ata_dev_reread_id(9)β¨ata_dev_revalidate(9)β¨ata_is_40wire(9)β¨cable_is_40wire(9)β¨ata_dev_xfermask(9)β¨ata_dev_set_xfermode(9)β¨ata_dev_set_feature(9)β¨ata_dev_init_params(9)β¨atapi_check_dma(9)β¨ata_std_qc_defer(9)β¨ata_sg_init(9)β¨ata_sg_clean(9)β¨ata_sg_setup(9)β¨swap_buf_le16(9)β¨ata_qc_free(9)β¨ata_qc_complete(9)β¨ata_qc_get_active(9)β¨ata_qc_issue(9)β¨ata_phys_link_online(9)β¨ata_phys_link_offline(9)β¨ata_link_online(9)β¨ata_link_offline(9)β¨ata_host_suspend(9)β¨ata_host_resume(9)β¨ata_dev_init(9)β¨ata_link_init(9)β¨sata_link_init_spd(9)β¨ata_port_alloc(9)β¨ata_host_alloc(9)β¨ata_host_alloc_pinfo(9)β¨ata_finalize_port_ops(9)β¨ata_host_start(9)β¨ata_host_init(9)β¨ata_host_register(9)β¨ata_host_activate(9)β¨ata_dev_free_resources(9)β¨ata_port_detach(9)β¨ata_host_detach(9)β¨ata_pci_remove_one(9)β¨ata_platform_remove_one(9)β¨ata_msleep(9)β¨ata_wait_register(9)β¨
And that's the whole page, bestie β you ate that π«Άβ¨ This one ships from ./drivers/ata, dated October 2026, and it's filed under ata_dev_power_set_active(9). Go wake some disks up π
π¦ 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