Lines Matching refs:fw_event
230 struct fw_event_work *fw_event; in alloc_fw_event_work() local
232 fw_event = kzalloc(sizeof(*fw_event) + len, GFP_ATOMIC); in alloc_fw_event_work()
233 if (!fw_event) in alloc_fw_event_work()
236 kref_init(&fw_event->refcount); in alloc_fw_event_work()
237 return fw_event; in alloc_fw_event_work()
3391 _scsih_fw_event_add(struct MPT3SAS_ADAPTER *ioc, struct fw_event_work *fw_event) in _scsih_fw_event_add() argument
3399 fw_event_work_get(fw_event); in _scsih_fw_event_add()
3400 INIT_LIST_HEAD(&fw_event->list); in _scsih_fw_event_add()
3401 list_add_tail(&fw_event->list, &ioc->fw_event_list); in _scsih_fw_event_add()
3402 INIT_WORK(&fw_event->work, _firmware_event_work); in _scsih_fw_event_add()
3403 fw_event_work_get(fw_event); in _scsih_fw_event_add()
3404 queue_work(ioc->firmware_event_thread, &fw_event->work); in _scsih_fw_event_add()
3418 *fw_event) in _scsih_fw_event_del_from_list()
3423 if (!list_empty(&fw_event->list)) { in _scsih_fw_event_del_from_list()
3424 list_del_init(&fw_event->list); in _scsih_fw_event_del_from_list()
3425 fw_event_work_put(fw_event); in _scsih_fw_event_del_from_list()
3440 struct fw_event_work *fw_event; in mpt3sas_send_trigger_data_event() local
3446 fw_event = alloc_fw_event_work(sz); in mpt3sas_send_trigger_data_event()
3447 if (!fw_event) in mpt3sas_send_trigger_data_event()
3449 fw_event->event = MPT3SAS_PROCESS_TRIGGER_DIAG; in mpt3sas_send_trigger_data_event()
3450 fw_event->ioc = ioc; in mpt3sas_send_trigger_data_event()
3451 memcpy(fw_event->event_data, event_data, sizeof(*event_data)); in mpt3sas_send_trigger_data_event()
3452 _scsih_fw_event_add(ioc, fw_event); in mpt3sas_send_trigger_data_event()
3453 fw_event_work_put(fw_event); in mpt3sas_send_trigger_data_event()
3463 struct fw_event_work *fw_event; in _scsih_error_recovery_delete_devices() local
3467 fw_event = alloc_fw_event_work(0); in _scsih_error_recovery_delete_devices()
3468 if (!fw_event) in _scsih_error_recovery_delete_devices()
3470 fw_event->event = MPT3SAS_REMOVE_UNRESPONDING_DEVICES; in _scsih_error_recovery_delete_devices()
3471 fw_event->ioc = ioc; in _scsih_error_recovery_delete_devices()
3472 _scsih_fw_event_add(ioc, fw_event); in _scsih_error_recovery_delete_devices()
3473 fw_event_work_put(fw_event); in _scsih_error_recovery_delete_devices()
3483 struct fw_event_work *fw_event; in mpt3sas_port_enable_complete() local
3485 fw_event = alloc_fw_event_work(0); in mpt3sas_port_enable_complete()
3486 if (!fw_event) in mpt3sas_port_enable_complete()
3488 fw_event->event = MPT3SAS_PORT_ENABLE_COMPLETE; in mpt3sas_port_enable_complete()
3489 fw_event->ioc = ioc; in mpt3sas_port_enable_complete()
3490 _scsih_fw_event_add(ioc, fw_event); in mpt3sas_port_enable_complete()
3491 fw_event_work_put(fw_event); in mpt3sas_port_enable_complete()
3497 struct fw_event_work *fw_event = NULL; in dequeue_next_fw_event() local
3501 fw_event = list_first_entry(&ioc->fw_event_list, in dequeue_next_fw_event()
3503 list_del_init(&fw_event->list); in dequeue_next_fw_event()
3504 fw_event_work_put(fw_event); in dequeue_next_fw_event()
3508 return fw_event; in dequeue_next_fw_event()
3521 struct fw_event_work *fw_event; in _scsih_fw_event_cleanup_queue() local
3528 while ((fw_event = dequeue_next_fw_event(ioc)) || in _scsih_fw_event_cleanup_queue()
3529 (fw_event = ioc->current_event)) { in _scsih_fw_event_cleanup_queue()
3545 if (fw_event == ioc->current_event && in _scsih_fw_event_cleanup_queue()
3560 if (cancel_work_sync(&fw_event->work)) in _scsih_fw_event_cleanup_queue()
3561 fw_event_work_put(fw_event); in _scsih_fw_event_cleanup_queue()
4459 struct fw_event_work *fw_event; in _scsih_check_topo_delete_events() local
4504 list_for_each_entry(fw_event, &ioc->fw_event_list, list) { in _scsih_check_topo_delete_events()
4505 if (fw_event->event != MPI2_EVENT_SAS_TOPOLOGY_CHANGE_LIST || in _scsih_check_topo_delete_events()
4506 fw_event->ignore) in _scsih_check_topo_delete_events()
4509 fw_event->event_data; in _scsih_check_topo_delete_events()
4518 fw_event->ignore = 1; in _scsih_check_topo_delete_events()
4540 struct fw_event_work *fw_event; in _scsih_check_pcie_topo_remove_events() local
4575 list_for_each_entry(fw_event, &ioc->fw_event_list, list) { in _scsih_check_pcie_topo_remove_events()
4576 if (fw_event->event != MPI2_EVENT_PCIE_TOPOLOGY_CHANGE_LIST || in _scsih_check_pcie_topo_remove_events()
4577 fw_event->ignore) in _scsih_check_pcie_topo_remove_events()
4581 fw_event->event_data; in _scsih_check_pcie_topo_remove_events()
4590 fw_event->ignore = 1; in _scsih_check_pcie_topo_remove_events()
5413 struct fw_event_work *fw_event; in _scsih_send_event_to_turn_on_pfa_led() local
5415 fw_event = alloc_fw_event_work(0); in _scsih_send_event_to_turn_on_pfa_led()
5416 if (!fw_event) in _scsih_send_event_to_turn_on_pfa_led()
5418 fw_event->event = MPT3SAS_TURN_ON_PFA_LED; in _scsih_send_event_to_turn_on_pfa_led()
5419 fw_event->device_handle = handle; in _scsih_send_event_to_turn_on_pfa_led()
5420 fw_event->ioc = ioc; in _scsih_send_event_to_turn_on_pfa_led()
5421 _scsih_fw_event_add(ioc, fw_event); in _scsih_send_event_to_turn_on_pfa_led()
5422 fw_event_work_put(fw_event); in _scsih_send_event_to_turn_on_pfa_led()
6610 struct fw_event_work *fw_event) in _scsih_sas_topology_change_event() argument
6622 fw_event->event_data; in _scsih_sas_topology_change_event()
6635 if (fw_event->ignore) { in _scsih_sas_topology_change_event()
6664 if (fw_event->ignore) { in _scsih_sas_topology_change_event()
7355 struct fw_event_work *fw_event) in _scsih_pcie_topology_change_event() argument
7364 (Mpi26EventDataPCIeTopologyChangeList_t *) fw_event->event_data; in _scsih_pcie_topology_change_event()
7374 if (fw_event->ignore) { in _scsih_pcie_topology_change_event()
7381 if (fw_event->ignore) { in _scsih_pcie_topology_change_event()
7533 struct fw_event_work *fw_event) in _scsih_pcie_device_status_change_event() argument
7540 (Mpi26EventDataPCIeDeviceStatusChange_t *)fw_event->event_data; in _scsih_pcie_device_status_change_event()
7615 struct fw_event_work *fw_event) in _scsih_sas_enclosure_dev_status_change_event() argument
7620 (Mpi2EventDataSasEnclDevStatusChange_t *)fw_event->event_data; in _scsih_sas_enclosure_dev_status_change_event()
7627 fw_event->event_data); in _scsih_sas_enclosure_dev_status_change_event()
7680 struct fw_event_work *fw_event) in _scsih_sas_broadcast_primitive_event() argument
7693 fw_event->event_data; in _scsih_sas_broadcast_primitive_event()
7845 struct fw_event_work *fw_event) in _scsih_sas_discovery_event() argument
7848 (Mpi2EventDataSasDiscovery_t *) fw_event->event_data; in _scsih_sas_discovery_event()
7880 struct fw_event_work *fw_event) in _scsih_sas_device_discovery_error_event() argument
7883 (Mpi25EventDataSasDeviceDiscoveryError_t *)fw_event->event_data; in _scsih_sas_device_discovery_error_event()
7911 struct fw_event_work *fw_event) in _scsih_pcie_enumeration_event() argument
7914 (Mpi26EventDataPCIeEnumeration_t *)fw_event->event_data; in _scsih_pcie_enumeration_event()
8362 struct fw_event_work *fw_event) in _scsih_sas_ir_config_change_event() argument
8369 fw_event->event_data; in _scsih_sas_ir_config_change_event()
8432 struct fw_event_work *fw_event) in _scsih_sas_ir_volume_event() argument
8441 (Mpi2EventDataIrVolume_t *) fw_event->event_data; in _scsih_sas_ir_volume_event()
8513 struct fw_event_work *fw_event) in _scsih_sas_ir_physical_disk_event() argument
8522 (Mpi2EventDataIrPhysicalDisk_t *) fw_event->event_data; in _scsih_sas_ir_physical_disk_event()
8637 struct fw_event_work *fw_event) in _scsih_sas_ir_operation_status_event() argument
8641 fw_event->event_data; in _scsih_sas_ir_operation_status_event()
9645 _mpt3sas_fw_work(struct MPT3SAS_ADAPTER *ioc, struct fw_event_work *fw_event) in _mpt3sas_fw_work() argument
9647 ioc->current_event = fw_event; in _mpt3sas_fw_work()
9648 _scsih_fw_event_del_from_list(ioc, fw_event); in _mpt3sas_fw_work()
9652 fw_event_work_put(fw_event); in _mpt3sas_fw_work()
9657 switch (fw_event->event) { in _mpt3sas_fw_work()
9661 fw_event->event_data); in _mpt3sas_fw_work()
9687 _scsih_turn_on_pfa_led(ioc, fw_event->device_handle); in _mpt3sas_fw_work()
9690 _scsih_sas_topology_change_event(ioc, fw_event); in _mpt3sas_fw_work()
9696 fw_event->event_data); in _mpt3sas_fw_work()
9699 _scsih_sas_discovery_event(ioc, fw_event); in _mpt3sas_fw_work()
9702 _scsih_sas_device_discovery_error_event(ioc, fw_event); in _mpt3sas_fw_work()
9705 _scsih_sas_broadcast_primitive_event(ioc, fw_event); in _mpt3sas_fw_work()
9709 fw_event); in _mpt3sas_fw_work()
9712 _scsih_sas_ir_config_change_event(ioc, fw_event); in _mpt3sas_fw_work()
9715 _scsih_sas_ir_volume_event(ioc, fw_event); in _mpt3sas_fw_work()
9718 _scsih_sas_ir_physical_disk_event(ioc, fw_event); in _mpt3sas_fw_work()
9721 _scsih_sas_ir_operation_status_event(ioc, fw_event); in _mpt3sas_fw_work()
9724 _scsih_pcie_device_status_change_event(ioc, fw_event); in _mpt3sas_fw_work()
9727 _scsih_pcie_enumeration_event(ioc, fw_event); in _mpt3sas_fw_work()
9730 _scsih_pcie_topology_change_event(ioc, fw_event); in _mpt3sas_fw_work()
9736 fw_event_work_put(fw_event); in _mpt3sas_fw_work()
9751 struct fw_event_work *fw_event = container_of(work, in _firmware_event_work() local
9754 _mpt3sas_fw_work(fw_event->ioc, fw_event); in _firmware_event_work()
9774 struct fw_event_work *fw_event; in mpt3sas_scsih_event_callback() local
9917 fw_event = alloc_fw_event_work(sz); in mpt3sas_scsih_event_callback()
9918 if (!fw_event) { in mpt3sas_scsih_event_callback()
9924 memcpy(fw_event->event_data, mpi_reply->EventData, sz); in mpt3sas_scsih_event_callback()
9925 fw_event->ioc = ioc; in mpt3sas_scsih_event_callback()
9926 fw_event->VF_ID = mpi_reply->VF_ID; in mpt3sas_scsih_event_callback()
9927 fw_event->VP_ID = mpi_reply->VP_ID; in mpt3sas_scsih_event_callback()
9928 fw_event->event = event; in mpt3sas_scsih_event_callback()
9929 _scsih_fw_event_add(ioc, fw_event); in mpt3sas_scsih_event_callback()
9930 fw_event_work_put(fw_event); in mpt3sas_scsih_event_callback()