hw_setup(9)
π
hw_setup(9) β Kernel API Manual, section 9 πΈ
okay so this is the manual page for hw_setup, straight out of section 9 of the Kernel API Manual, and honestly? it's short, it's sweet, and it's literally the moment the hardware gets its act together. let's go π«Ά
β¨ NAME β¨
hw_setup β setup the hardware π
like, that's it. that's the whole name section. she's concise. she ate. π
π SYNOPSIS π
void hw_setup (struct ksz_hw *hw );
no cap, that's the whole signature β returns void, takes one pointer, done. keep the spacing exactly like that, bestie, because man pages are dramatic about whitespace π¦
π§ ARGUMENTS π§
hwβ The hardware instance. that's yourstruct ksz_hw *right there β the one and only thing you hand over. she's the main character of this function, fr fr π
π« DESCRIPTION π«
okay so here's the vibe: this routine setup the hardware for proper operation. β¨
that's the entirety of it β hw_setup gets the hardware into a state where it actually works properly. it's giving "getting ready" energy, it's giving "outfit check before you leave the house," it's giving the hardware fixer-upper arc π
no extra options, no hidden flags, no secret environment variables, no exit statuses to memorize. just you, a struct ksz_hw *, and the promise of proper operation. slay π
heads up: there are genuinely no parameter descriptions, return values, errors, or caveats listed here beyond what's above β so don't go looking for lore that isn't in the source, iykyk π
π₯ SEE ALSO π₯
okay this is the part where the page absolutely SPILLS. every single one of these is a legit reference, and we are not skipping a single one, because she said "SEE ALSO" and she meant ALL of the alsos π
the kernel file itself lives at ./drivers/net/ethernet/micrel/ksz884x.c β go read her, she's the whole story π
struct ksz_hw_desc(9)struct ksz_sw_desc(9)struct ksz_dma_buf(9)struct ksz_desc(9)struct ksz_desc_info(9)struct ksz_mac_table(9)struct ksz_vlan_table(9)struct ksz_port_mib(9)struct ksz_port_cfg(9)struct ksz_switch(9)struct ksz_port_info(9)struct ksz_hw(9)struct ksz_port(9)struct ksz_timer_info(9)struct ksz_shared_mem(9)struct ksz_counter_info(9)struct dev_info(9)struct dev_priv(9)hw_turn_on_intr(9)hw_block_intr(9)sw_r_table(9)sw_w_table_64(9)sw_w_sta_mac_table(9)sw_r_vlan_table(9)port_r_mib_cnt(9)port_r_mib_pkt(9)port_r_cnt(9)port_init_cnt(9)port_cfg(9)port_r8(9)port_r16(9)port_w16(9)sw_chk(9)sw_cfg(9)sw_cfg_broad_storm(9)sw_get_broad_storm(9)sw_dis_broad_storm(9)sw_ena_broad_storm(9)sw_init_broad_storm(9)hw_cfg_broad_storm(9)sw_dis_prio_rate(9)sw_init_prio_rate(9)sw_dis_diffserv(9)sw_dis_802_1p(9)sw_cfg_replace_null_vid(9)sw_cfg_replace_vid(9)sw_cfg_port_based(9)sw_dis_multi_queue(9)sw_init_prio(9)port_get_def_vid(9)sw_init_vlan(9)sw_cfg_port_base_vlan(9)sw_set_addr(9)sw_set_global_ctrl(9)port_set_stp_state(9)sw_clr_sta_mac_table(9)sw_init_stp(9)sw_block_addr(9)hw_r_phy(9)hw_w_phy(9)eeprom_read(9)eeprom_write(9)port_get_link_speed(9)port_set_link_speed(9)port_force_link_speed(9)hw_chk_wol_pme_status(9)hw_clr_wol_pme_status(9)hw_cfg_wol_pme(9)hw_cfg_wol(9)hw_set_wol_frame(9)hw_add_wol_arp(9)hw_add_wol_bcast(9)hw_add_wol_mcast(9)hw_add_wol_ucast(9)hw_enable_wol(9)hw_init(9)hw_reset(9)hw_setup_intr(9)hw_set_desc_base(9)hw_start_rx(9)hw_stop_rx(9)hw_start_tx(9)hw_stop_tx(9)hw_disable(9)hw_enable(9)hw_alloc_pkt(9)hw_send_pkt(9)hw_set_addr(9)hw_read_addr(9)hw_clr_multicast(9)hw_set_grp_addr(9)hw_set_multicast(9)hw_set_promiscuous(9)sw_enable(9)sw_setup(9)ksz_start_timer(9)ksz_stop_timer(9)ksz_alloc_soft_desc(9)ksz_alloc_desc(9)free_dma_buf(9)ksz_init_rx_buffers(9)ksz_alloc_mem(9)ksz_free_desc(9)ksz_free_buffers(9)ksz_free_mem(9)send_packet(9)transmit_cleanup(9)tx_done(9)netdev_tx(9)netdev_tx_timeout(9)netdev_intr(9)netdev_close(9)netdev_open(9)netdev_query_statistics(9)netdev_set_mac_address(9)netdev_set_rx_mode(9)netdev_ioctl(9)mdio_read(9)mdio_write(9)netdev_get_link_ksettings(9)netdev_set_link_ksettings(9)netdev_nway_reset(9)netdev_get_link(9)netdev_get_drvinfo(9)netdev_get_regs_len(9)netdev_get_regs(9)netdev_get_wol(9)netdev_set_wol(9)netdev_get_msglevel(9)netdev_set_msglevel(9)netdev_get_eeprom_len(9)netdev_get_eeprom(9)netdev_set_eeprom(9)netdev_get_pauseparam(9)netdev_set_pauseparam(9)netdev_get_ringparam(9)netdev_get_strings(9)netdev_get_sset_count(9)netdev_get_ethtool_stats(9)netdev_set_features(9)dev_monitor(9)netdev_init(9)
likeβ¦ one hundred and forty-something references and every single one of them said hi π that's not a SEE ALSO, that's a guest list. iconic behavior, honestly π
and that's the whole page, bestie β short and sweet and absolutely thorough on the cross-references π
this little baddie ships from the source/version tag ./drivers/net/ethernet/micrel, dated October 2026, and it's filed under hw_setup(9) β go forth and set up that hardware properly, ily, bye π¦π
π¦ 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