lpfc_pci_resume_one_s4(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– lpfc_pci_resume_one_s4(9) πŸ’–

okay bestie, welcome to the Kernel API Manual page for lpfc_pci_resume_one_s4(9) β€” yes, that's the manual name right there at the top, no cap. This is the PCI resume glow-up for SLI-4 devices, and we're gonna read it together like a group chat. πŸ’…


🌸 NAME 🌸

lpfc_pci_resume_one_s4 β€” PCI func to resume SLI-4 device for power mgmnt. Short, iconic, and exactly what it says on the tin. πŸŽ€


✨ SYNOPSIS ✨

int lpfc_pci_resume_one_s4 (struct device *dev_d );

Literal signature, copy-paste energy, we do not touch it. 🫢


πŸŽ€ ARGUMENTS πŸŽ€

  • dev_d β€” pointer to device. That's it, bestie: a pointer to the device. Lowkey simple, highkey important. πŸ’–

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so this routine is called from the kernel's PCI subsystem to support system Power Management (PM) for a device with the SLI-4 interface spac. yes, spac β€” that's the spelling on the page, and we're keeping the facts exactly as they are. ✨

When PM invokes this method, it restores the device's PCI config space state and fully reinitializes the device and brings it online. It's giving β€œwake up bestie, we're going back online” main character energy. 🌈

Now the important caveat, and no cap: the driver implements the minimum PM requirements to a power-aware driver's PM for suspend/resume. That means all the possible PM messages (SUSPEND, HIBERNATE, FREEZE) to the suspend method call will be treated as SUSPEND, and the driver will fully reinitialize its device during the resume method call. Also, the device will be set to PCI_D0 directly in PCI config space before restoring the state. Periodt. πŸ’…

Return code 0 β€” driver suspended the device. Error otherwise. That's the return-code vibe check: 0 is the slay, anything else is the error. 😭


🌈 SEE ALSO 🌈

Kernel file ./drivers/scsi/lpfc/lpfc_init.c is the source/homegirl, and here is the entire group chat β€” every single reference, no skips, no cap: lpfc_config_port_prep(9), lpfc_config_async_cmpl(9), lpfc_dump_wakeup_param_cmpl(9), lpfc_update_vport_wwn(9), lpfc_config_port_post(9), lpfc_sli4_refresh_params(9), lpfc_hba_init_link(9), lpfc_hba_init_link_fc_topology(9), lpfc_hba_down_link(9), lpfc_hba_down_prep(9), lpfc_sli4_free_sp_events(9), lpfc_hba_free_post_buf(9), lpfc_hba_clean_txcmplq(9), lpfc_hba_down_post_s3(9), lpfc_hba_down_post_s4(9), lpfc_hba_down_post(9), lpfc_hb_timeout(9), lpfc_rrq_timeout(9), lpfc_hb_mbox_cmpl(9), lpfc_hb_mxp_handler(9), lpfc_issue_hb_mbox(9), lpfc_issue_hb_tmo(9), lpfc_hb_timeout_handler(9), lpfc_offline_eratt(9), lpfc_sli4_offline_eratt(9), lpfc_handle_deferred_eratt(9), lpfc_handle_eratt_s3(9), lpfc_sli4_port_sta_fn_reset(9), lpfc_handle_eratt_s4(9), lpfc_handle_eratt(9), lpfc_handle_latt(9), lpfc_parse_vpd(9), lpfc_get_atto_model_desc(9), lpfc_get_hba_model_desc(9), lpfc_sli3_post_buffer(9), lpfc_post_rcv_buf(9), lpfc_sha_init(9), lpfc_sha_iterate(9), lpfc_challenge_key(9), lpfc_hba_init(9), lpfc_cleanup(9), lpfc_stop_vport_timers(9), __lpfc_sli4_stop_fcf_redisc_wait_timer(9), lpfc_sli4_stop_fcf_redisc_wait_timer(9), lpfc_cmf_stop(9), lpfc_cmf_start(9), lpfc_stop_hba_timers(9), lpfc_block_mgmt_io(9), lpfc_sli4_node_rpi_restore(9), lpfc_create_expedite_pool(9), lpfc_destroy_expedite_pool(9), lpfc_create_multixri_pools(9), lpfc_destroy_multixri_pools(9), lpfc_online(9), lpfc_unblock_mgmt_io(9), lpfc_offline_prep(9), lpfc_offline(9), lpfc_scsi_free(9), lpfc_io_free(9), lpfc_sli4_els_sgl_update(9), lpfc_sli4_nvmet_sgl_update(9), lpfc_sli4_io_sgl_update(9), lpfc_new_io_buf(9), lpfc_vmid_res_alloc(9), lpfc_create_port(9), destroy_port(9), lpfc_get_instance(9), lpfc_scan_finished(9), lpfc_host_attrib_init(9), lpfc_stop_port_s3(9), lpfc_stop_port_s4(9), lpfc_stop_port(9), lpfc_fcf_redisc_wait_start_timer(9), lpfc_sli4_fcf_redisc_wait_tmo(9), lpfc_vmid_poll(9), lpfc_sli4_parse_latt_fault(9), lpfc_sli4_parse_latt_type(9), lpfc_sli_port_speed_get(9), lpfc_sli4_port_speed_parse(9), lpfc_sli4_async_link_evt(9), lpfc_async_link_speed_to_read_top(9), lpfc_cgn_update_stat(9), lpfc_cgn_update_tstamp(9), lpfc_cmf_stats_timer(9), lpfc_calc_cmf_latency(9), lpfc_cmf_timer(9), lpfc_sli4_async_fc_evt(9), lpfc_sli4_async_sli_evt(9), lpfc_sli4_perform_vport_cvl(9), lpfc_sli4_perform_all_vport_cvl(9), lpfc_sli4_async_fip_evt(9), lpfc_sli4_async_dcbx_evt(9), lpfc_sli4_async_grp5_evt(9), lpfc_sli4_async_cmstat_evt(9), lpfc_cgn_params_val(9), lpfc_cgn_params_parse(9), lpfc_sli4_cgn_params_read(9), lpfc_sli4_cgn_parm_chg_evt(9), lpfc_sli4_async_event_proc(9), lpfc_sli4_fcf_redisc_event_proc(9), lpfc_api_table_setup(9), lpfc_log_intr_mode(9), lpfc_enable_pci_dev(9), lpfc_disable_pci_dev(9), lpfc_reset_hba(9), lpfc_sli_sriov_nr_virtfn_get(9), lpfc_sli_probe_sriov_nr_virtfn(9), lpfc_setup_driver_resource_phase1(9), lpfc_sli_driver_resource_setup(9), lpfc_sli_driver_resource_unset(9), lpfc_sli4_driver_resource_setup(9), lpfc_sli4_driver_resource_unset(9), lpfc_init_api_table_setup(9), lpfc_setup_driver_resource_phase2(9), lpfc_unset_driver_resource_phase2(9), lpfc_free_iocb_list(9), lpfc_init_iocb_list(9), lpfc_free_sgl_list(9), lpfc_free_els_sgl_list(9), lpfc_free_nvmet_sgl_list(9), lpfc_init_active_sgl_array(9), lpfc_free_active_sgl(9), lpfc_init_sgl_list(9), lpfc_sli4_init_rpi_hdrs(9), lpfc_sli4_create_rpi_hdr(9), lpfc_sli4_remove_rpi_hdrs(9), lpfc_hba_alloc(9), lpfc_hba_free(9), lpfc_setup_fdmi_mask(9), lpfc_create_shost(9), lpfc_destroy_shost(9), lpfc_setup_bg(9), lpfc_post_init_setup(9), lpfc_sli_pci_mem_setup(9), lpfc_sli_pci_mem_unset(9), lpfc_sli4_post_status_check(9), lpfc_sli4_bar0_register_memmap(9), lpfc_sli4_bar1_register_memmap(9), lpfc_sli4_bar2_register_memmap(9), lpfc_create_bootstrap_mbox(9), lpfc_destroy_bootstrap_mbox(9), lpfc_map_topology(9), lpfc_sli4_read_config(9), lpfc_setup_endian_order(9), lpfc_sli4_queue_verify(9), lpfc_sli4_queue_create(9), lpfc_sli4_queue_destroy(9), lpfc_setup_cq_lookup(9), lpfc_sli4_queue_setup(9), lpfc_sli4_queue_unset(9), lpfc_sli4_cq_event_pool_create(9), lpfc_sli4_cq_event_pool_destroy(9), __lpfc_sli4_cq_event_alloc(9), lpfc_sli4_cq_event_alloc(9), __lpfc_sli4_cq_event_release(9), lpfc_sli4_cq_event_release(9), lpfc_sli4_cq_event_release_all(9), lpfc_pci_function_reset(9), lpfc_sli4_pci_mem_setup(9), lpfc_sli4_pci_mem_unset(9), lpfc_sli_enable_msix(9), lpfc_sli_enable_msi(9), lpfc_sli_enable_intr(9), lpfc_sli_disable_intr(9), lpfc_find_cpu_handle(9), lpfc_find_hyper(9), lpfc_cpu_map_array_init(9), lpfc_hba_eq_hdl_array_init(9), lpfc_cpu_affinity_check(9), lpfc_cpuhp_get_eq(9), lpfc_irq_set_aff(9), lpfc_irq_clear_aff(9), lpfc_irq_rebalance(9), lpfc_sli4_enable_msix(9), lpfc_sli4_enable_msi(9), lpfc_sli4_enable_intr(9), lpfc_sli4_disable_intr(9), lpfc_unset_hba(9), lpfc_sli4_xri_exchange_busy_wait(9), lpfc_sli4_hba_unset(9), __lpfc_reg_congestion_buf(9), lpfc_get_sli4_parameters(9), lpfc_pci_probe_one_s3(9), lpfc_pci_remove_one_s3(9), lpfc_pci_suspend_one_s3(9), lpfc_pci_resume_one_s3(9), lpfc_sli_prep_dev_for_recover(9), lpfc_sli_prep_dev_for_reset(9), lpfc_sli_prep_dev_for_perm_failure(9), lpfc_io_error_detected_s3(9), lpfc_io_slot_reset_s3(9), lpfc_io_resume_s3(9), lpfc_sli4_get_els_iocb_cnt(9), lpfc_sli4_get_iocb_cnt(9), lpfc_write_firmware(9), lpfc_sli4_request_firmware_update(9), lpfc_pci_probe_one_s4(9), lpfc_pci_remove_one_s4(9), lpfc_pci_suspend_one_s4(9), lpfc_sli4_prep_dev_for_recover(9), lpfc_sli4_prep_dev_for_reset(9), lpfc_sli4_prep_dev_for_perm_failure(9), lpfc_io_error_detected_s4(9), lpfc_io_slot_reset_s4(9), lpfc_io_resume_s4(9), lpfc_pci_probe_one(9), lpfc_pci_remove_one(9), lpfc_pci_suspend_one(9), lpfc_pci_resume_one(9), lpfc_io_error_detected(9), lpfc_io_slot_reset(9), lpfc_io_resume(9), lpfc_sli4_oas_verify(9), lpfc_sli4_ras_init(9), lpfc_init(9), lpfc_exit(9).


okay that's the page, bestie. πŸ’– This one lives in the source spot ./drivers/scsi/lpfc, dated October 2026, and it's the lpfc_pci_resume_one_s4(9) page from the Kernel API Manual. slay, bye! πŸ¦‹βœ¨

πŸ“¦ where this page comes from