mpi3mr_add_host_phy(9)
β¨ mpi3mr_add_host_phy β¨
okay so bestie, welcome to the Kernel API Manual π
today we're looking at mpi3mr_add_host_phy(9) β and yes, it does exactly one thing and it does it fabulously. π¦
πΈ NAME πΈ
mpi3mr_add_host_phy β report sas_host phy to SAS transport π«
like, that's the whole job. it takes a phy and introduces it to the SAS transport layer. networking era. π
π SYNOPSIS π
int mpi3mr_add_host_phy (struct mpi3mr_ioc *mrioc , struct
mpi3mr_sas_phy *mr_sas_phy , struct mpi3_sas_phy_page0 phy_pg0 , struct
device *parent_dev );
it's giving four arguments and a dream β¨
π¦ ARGUMENTS π¦
mriocβ ur adapter instance reference, the main character of the whole driver ngl πmr_sas_phyβ the internal Phy object, lowkey the internals, handle with care π«Άphy_pg0β SAS phy page 0, iconic data structure, no notes πparent_devβ the prent device class object π (that's how the page spells it, "prent", i'm just the messenger, don't come for me)
β RETURN β
0β success, we ate, periodt π₯- non-zero β failure, and we do NOT love that for us π
π SEE ALSO π
first up, the source file itself, go read it, it's right there:
- Kernel file
./drivers/scsi/mpi3mr/mpi3mr_transport.cπ
and then the whole friend group β literally every function in this driver said hi:
mpi3mr_post_transport_req(9)mpi3mr_report_manufacture(9)__mpi3mr_expander_find_by_handle(9)mpi3mr_is_expander_device(9)mpi3mr_get_sas_address(9)__mpi3mr_get_tgtdev_by_addr(9)mpi3mr_get_tgtdev_by_addr(9)mpi3mr_remove_device_by_sas_address(9)__mpi3mr_get_tgtdev_by_addr_and_rphy(9)mpi3mr_expander_find_by_sas_address(9)__mpi3mr_sas_node_find_by_sas_address(9)mpi3mr_parent_present(9)mpi3mr_convert_phy_link_rate(9)mpi3mr_delete_sas_phy(9)mpi3mr_add_sas_phy(9)mpi3mr_add_phy_to_an_existing_port(9)mpi3mr_delete_sas_port(9)mpi3mr_del_phy_from_an_existing_port(9)mpi3mr_sas_port_sanity_check(9)mpi3mr_set_identify(9)mpi3mr_add_expander_phy(9)mpi3mr_alloc_hba_port(9)mpi3mr_get_hba_port_by_id(9)mpi3mr_update_links(9)mpi3mr_sas_host_refresh(9)mpi3mr_sas_host_add(9)mpi3mr_sas_port_add(9)mpi3mr_sas_port_remove(9)struct host_port(9)mpi3mr_update_mr_sas_port(9)mpi3mr_refresh_sas_ports(9)mpi3mr_refresh_expanders(9)mpi3mr_expander_node_add(9)mpi3mr_expander_add(9)mpi3mr_expander_node_remove(9)mpi3mr_expander_remove(9)mpi3mr_get_sas_negotiated_logical_linkrate(9)mpi3mr_report_tgtdev_to_sas_transport(9)mpi3mr_remove_tgtdev_from_sas_transport(9)mpi3mr_get_port_id_by_sas_phy(9)mpi3mr_get_port_id_by_rphy(9)mpi3mr_get_expander_phy_error_log(9)mpi3mr_transport_get_linkerrors(9)mpi3mr_transport_get_enclosure_identifier(9)mpi3mr_transport_get_bay_identifier(9)mpi3mr_expander_phy_control(9)mpi3mr_transport_phy_reset(9)mpi3mr_transport_phy_enable(9)mpi3mr_transport_phy_speed(9)mpi3mr_map_smp_buffer(9)mpi3mr_unmap_smp_buffer(9)mpi3mr_transport_smp_handler(9)
like okay read the whole list, it's not that deep, but it IS that long πβ¨
π friendly reminder bestie: this page lives in ./drivers/scsi/mpi3mr and it's dated October 2026 β so go check it out, and remember, the phy is not gonna report itself π
π«Ά
that's the page, 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