lpfc_pci_suspend_one_s4(9)
π lpfc_pci_suspend_one_s4(9) β Kernel API Manual, bestie β¨
πΈ NAME πΈ
lpfc_pci_suspend_one_s4 β the PCI func to suspend an SLI-4 device for power mgmnt. That's the name, no notes, periodt. π
β¨ SYNOPSIS β¨
int lpfc_pci_suspend_one_s4 (struct device *dev_d );
π ARGUMENTS π
dev_dβ pointer to device. Just a pointer to the device, bestie. That's the whole argument, no cap. π¦
π¦ DESCRIPTION π¦
Okay so this routine gets called from the kernel's PCI subsystem to support system Power Management (PM) to a device with the SLI-4 interface spec. It's giving "kernel says it's nap time" energy π΄β¨
When PM invokes this method, it quiesces the device by stopping the driver's worker thread for the device, turning off the device's interrupt and DMA, and bringing the device offline. Very "go to sleep, babe" but make it PCI π
Real talk, though: the driver implements the minimum PM requirements to a power-aware driver's PM support for suspend/resume. So all the possible PM messages to the suspend method call β SUSPEND, HIBERNATE, FREEZE β will be treated as SUSPEND. And during the resume method call, the driver will fully reinitialize its device. Also, the driver will set the device to PCI_D3hot state in PCI config space instead of setting it according to the msg provided by the PM. That's the note, iykyk. π«Ά
Return code 0 β driver suspended the device. Error otherwise. π¨
π SEE ALSO π
The kernel file is ./drivers/scsi/lpfc/lpfc_init.c, and the reference squad is literally everyone. Every single one made it to the group chat:
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_resume_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)
Source/version: ./drivers/scsi/lpfc Β· Date: October 2026 Β· Page: lpfc_pci_suspend_one_s4(9) β bye bestie, go suspend something (responsibly) ππ
π¦ 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