Lines Matching refs:fw_event
227 struct fw_event_work *fw_event; in alloc_fw_event_work() local
229 fw_event = kzalloc(sizeof(*fw_event) + len, GFP_ATOMIC); in alloc_fw_event_work()
230 if (!fw_event) in alloc_fw_event_work()
233 kref_init(&fw_event->refcount); in alloc_fw_event_work()
234 return fw_event; in alloc_fw_event_work()
3093 _scsih_fw_event_add(struct MPT3SAS_ADAPTER *ioc, struct fw_event_work *fw_event) in _scsih_fw_event_add() argument
3101 fw_event_work_get(fw_event); in _scsih_fw_event_add()
3102 INIT_LIST_HEAD(&fw_event->list); in _scsih_fw_event_add()
3103 list_add_tail(&fw_event->list, &ioc->fw_event_list); in _scsih_fw_event_add()
3104 INIT_WORK(&fw_event->work, _firmware_event_work); in _scsih_fw_event_add()
3105 fw_event_work_get(fw_event); in _scsih_fw_event_add()
3106 queue_work(ioc->firmware_event_thread, &fw_event->work); in _scsih_fw_event_add()
3120 *fw_event) in _scsih_fw_event_del_from_list()
3125 if (!list_empty(&fw_event->list)) { in _scsih_fw_event_del_from_list()
3126 list_del_init(&fw_event->list); in _scsih_fw_event_del_from_list()
3127 fw_event_work_put(fw_event); in _scsih_fw_event_del_from_list()
3142 struct fw_event_work *fw_event; in mpt3sas_send_trigger_data_event() local
3148 fw_event = alloc_fw_event_work(sz); in mpt3sas_send_trigger_data_event()
3149 if (!fw_event) in mpt3sas_send_trigger_data_event()
3151 fw_event->event = MPT3SAS_PROCESS_TRIGGER_DIAG; in mpt3sas_send_trigger_data_event()
3152 fw_event->ioc = ioc; in mpt3sas_send_trigger_data_event()
3153 memcpy(fw_event->event_data, event_data, sizeof(*event_data)); in mpt3sas_send_trigger_data_event()
3154 _scsih_fw_event_add(ioc, fw_event); in mpt3sas_send_trigger_data_event()
3155 fw_event_work_put(fw_event); in mpt3sas_send_trigger_data_event()
3165 struct fw_event_work *fw_event; in _scsih_error_recovery_delete_devices() local
3169 fw_event = alloc_fw_event_work(0); in _scsih_error_recovery_delete_devices()
3170 if (!fw_event) in _scsih_error_recovery_delete_devices()
3172 fw_event->event = MPT3SAS_REMOVE_UNRESPONDING_DEVICES; in _scsih_error_recovery_delete_devices()
3173 fw_event->ioc = ioc; in _scsih_error_recovery_delete_devices()
3174 _scsih_fw_event_add(ioc, fw_event); in _scsih_error_recovery_delete_devices()
3175 fw_event_work_put(fw_event); in _scsih_error_recovery_delete_devices()
3185 struct fw_event_work *fw_event; in mpt3sas_port_enable_complete() local
3187 fw_event = alloc_fw_event_work(0); in mpt3sas_port_enable_complete()
3188 if (!fw_event) in mpt3sas_port_enable_complete()
3190 fw_event->event = MPT3SAS_PORT_ENABLE_COMPLETE; in mpt3sas_port_enable_complete()
3191 fw_event->ioc = ioc; in mpt3sas_port_enable_complete()
3192 _scsih_fw_event_add(ioc, fw_event); in mpt3sas_port_enable_complete()
3193 fw_event_work_put(fw_event); in mpt3sas_port_enable_complete()
3199 struct fw_event_work *fw_event = NULL; in dequeue_next_fw_event() local
3203 fw_event = list_first_entry(&ioc->fw_event_list, in dequeue_next_fw_event()
3205 list_del_init(&fw_event->list); in dequeue_next_fw_event()
3209 return fw_event; in dequeue_next_fw_event()
3222 struct fw_event_work *fw_event; in _scsih_fw_event_cleanup_queue() local
3228 while ((fw_event = dequeue_next_fw_event(ioc))) { in _scsih_fw_event_cleanup_queue()
3237 if (cancel_work_sync(&fw_event->work)) in _scsih_fw_event_cleanup_queue()
3238 fw_event_work_put(fw_event); in _scsih_fw_event_cleanup_queue()
3240 fw_event_work_put(fw_event); in _scsih_fw_event_cleanup_queue()
4117 struct fw_event_work *fw_event; in _scsih_check_topo_delete_events() local
4162 list_for_each_entry(fw_event, &ioc->fw_event_list, list) { in _scsih_check_topo_delete_events()
4163 if (fw_event->event != MPI2_EVENT_SAS_TOPOLOGY_CHANGE_LIST || in _scsih_check_topo_delete_events()
4164 fw_event->ignore) in _scsih_check_topo_delete_events()
4167 fw_event->event_data; in _scsih_check_topo_delete_events()
4176 fw_event->ignore = 1; in _scsih_check_topo_delete_events()
4198 struct fw_event_work *fw_event; in _scsih_check_pcie_topo_remove_events() local
4233 list_for_each_entry(fw_event, &ioc->fw_event_list, list) { in _scsih_check_pcie_topo_remove_events()
4234 if (fw_event->event != MPI2_EVENT_PCIE_TOPOLOGY_CHANGE_LIST || in _scsih_check_pcie_topo_remove_events()
4235 fw_event->ignore) in _scsih_check_pcie_topo_remove_events()
4239 fw_event->event_data; in _scsih_check_pcie_topo_remove_events()
4249 fw_event->ignore = 1; in _scsih_check_pcie_topo_remove_events()
5082 struct fw_event_work *fw_event; in _scsih_send_event_to_turn_on_pfa_led() local
5084 fw_event = alloc_fw_event_work(0); in _scsih_send_event_to_turn_on_pfa_led()
5085 if (!fw_event) in _scsih_send_event_to_turn_on_pfa_led()
5087 fw_event->event = MPT3SAS_TURN_ON_PFA_LED; in _scsih_send_event_to_turn_on_pfa_led()
5088 fw_event->device_handle = handle; in _scsih_send_event_to_turn_on_pfa_led()
5089 fw_event->ioc = ioc; in _scsih_send_event_to_turn_on_pfa_led()
5090 _scsih_fw_event_add(ioc, fw_event); in _scsih_send_event_to_turn_on_pfa_led()
5091 fw_event_work_put(fw_event); in _scsih_send_event_to_turn_on_pfa_led()
6286 struct fw_event_work *fw_event) in _scsih_sas_topology_change_event() argument
6298 fw_event->event_data; in _scsih_sas_topology_change_event()
6311 if (fw_event->ignore) { in _scsih_sas_topology_change_event()
6341 if (fw_event->ignore) { in _scsih_sas_topology_change_event()
6486 struct fw_event_work *fw_event) in _scsih_sas_device_status_change_event() argument
6494 fw_event->event_data; in _scsih_sas_device_status_change_event()
7013 struct fw_event_work *fw_event) in _scsih_pcie_topology_change_event() argument
7022 (Mpi26EventDataPCIeTopologyChangeList_t *) fw_event->event_data; in _scsih_pcie_topology_change_event()
7032 if (fw_event->ignore) { in _scsih_pcie_topology_change_event()
7040 if (fw_event->ignore) { in _scsih_pcie_topology_change_event()
7192 struct fw_event_work *fw_event) in _scsih_pcie_device_status_change_event() argument
7199 (Mpi26EventDataPCIeDeviceStatusChange_t *)fw_event->event_data; in _scsih_pcie_device_status_change_event()
7274 struct fw_event_work *fw_event) in _scsih_sas_enclosure_dev_status_change_event() argument
7279 (Mpi2EventDataSasEnclDevStatusChange_t *)fw_event->event_data; in _scsih_sas_enclosure_dev_status_change_event()
7286 fw_event->event_data); in _scsih_sas_enclosure_dev_status_change_event()
7340 struct fw_event_work *fw_event) in _scsih_sas_broadcast_primitive_event() argument
7353 fw_event->event_data; in _scsih_sas_broadcast_primitive_event()
7506 struct fw_event_work *fw_event) in _scsih_sas_discovery_event() argument
7509 (Mpi2EventDataSasDiscovery_t *) fw_event->event_data; in _scsih_sas_discovery_event()
7541 struct fw_event_work *fw_event) in _scsih_sas_device_discovery_error_event() argument
7544 (Mpi25EventDataSasDeviceDiscoveryError_t *)fw_event->event_data; in _scsih_sas_device_discovery_error_event()
7576 struct fw_event_work *fw_event) in _scsih_pcie_enumeration_event() argument
7579 (Mpi26EventDataPCIeEnumeration_t *)fw_event->event_data; in _scsih_pcie_enumeration_event()
8036 struct fw_event_work *fw_event) in _scsih_sas_ir_config_change_event() argument
8043 fw_event->event_data; in _scsih_sas_ir_config_change_event()
8106 struct fw_event_work *fw_event) in _scsih_sas_ir_volume_event() argument
8115 (Mpi2EventDataIrVolume_t *) fw_event->event_data; in _scsih_sas_ir_volume_event()
8188 struct fw_event_work *fw_event) in _scsih_sas_ir_physical_disk_event() argument
8197 (Mpi2EventDataIrPhysicalDisk_t *) fw_event->event_data; in _scsih_sas_ir_physical_disk_event()
8312 struct fw_event_work *fw_event) in _scsih_sas_ir_operation_status_event() argument
8316 fw_event->event_data; in _scsih_sas_ir_operation_status_event()
9364 _mpt3sas_fw_work(struct MPT3SAS_ADAPTER *ioc, struct fw_event_work *fw_event) in _mpt3sas_fw_work() argument
9366 _scsih_fw_event_del_from_list(ioc, fw_event); in _mpt3sas_fw_work()
9370 fw_event_work_put(fw_event); in _mpt3sas_fw_work()
9374 switch (fw_event->event) { in _mpt3sas_fw_work()
9378 fw_event->event_data); in _mpt3sas_fw_work()
9404 _scsih_turn_on_pfa_led(ioc, fw_event->device_handle); in _mpt3sas_fw_work()
9407 _scsih_sas_topology_change_event(ioc, fw_event); in _mpt3sas_fw_work()
9410 _scsih_sas_device_status_change_event(ioc, fw_event); in _mpt3sas_fw_work()
9413 _scsih_sas_discovery_event(ioc, fw_event); in _mpt3sas_fw_work()
9416 _scsih_sas_device_discovery_error_event(ioc, fw_event); in _mpt3sas_fw_work()
9419 _scsih_sas_broadcast_primitive_event(ioc, fw_event); in _mpt3sas_fw_work()
9423 fw_event); in _mpt3sas_fw_work()
9426 _scsih_sas_ir_config_change_event(ioc, fw_event); in _mpt3sas_fw_work()
9429 _scsih_sas_ir_volume_event(ioc, fw_event); in _mpt3sas_fw_work()
9432 _scsih_sas_ir_physical_disk_event(ioc, fw_event); in _mpt3sas_fw_work()
9435 _scsih_sas_ir_operation_status_event(ioc, fw_event); in _mpt3sas_fw_work()
9438 _scsih_pcie_device_status_change_event(ioc, fw_event); in _mpt3sas_fw_work()
9441 _scsih_pcie_enumeration_event(ioc, fw_event); in _mpt3sas_fw_work()
9444 _scsih_pcie_topology_change_event(ioc, fw_event); in _mpt3sas_fw_work()
9449 fw_event_work_put(fw_event); in _mpt3sas_fw_work()
9463 struct fw_event_work *fw_event = container_of(work, in _firmware_event_work() local
9466 _mpt3sas_fw_work(fw_event->ioc, fw_event); in _firmware_event_work()
9486 struct fw_event_work *fw_event; in mpt3sas_scsih_event_callback() local
9641 fw_event = alloc_fw_event_work(sz); in mpt3sas_scsih_event_callback()
9642 if (!fw_event) { in mpt3sas_scsih_event_callback()
9648 memcpy(fw_event->event_data, mpi_reply->EventData, sz); in mpt3sas_scsih_event_callback()
9649 fw_event->ioc = ioc; in mpt3sas_scsih_event_callback()
9650 fw_event->VF_ID = mpi_reply->VF_ID; in mpt3sas_scsih_event_callback()
9651 fw_event->VP_ID = mpi_reply->VP_ID; in mpt3sas_scsih_event_callback()
9652 fw_event->event = event; in mpt3sas_scsih_event_callback()
9653 _scsih_fw_event_add(ioc, fw_event); in mpt3sas_scsih_event_callback()
9654 fw_event_work_put(fw_event); in mpt3sas_scsih_event_callback()