Lines Matching refs:fw_event
107 static void mptsas_send_sas_event(struct fw_event_work *fw_event);
108 static void mptsas_send_raid_event(struct fw_event_work *fw_event);
109 static void mptsas_send_ir2_event(struct fw_event_work *fw_event);
124 static void mptsas_send_link_status_event(struct fw_event_work *fw_event);
129 static void mptsas_send_expander_event(struct fw_event_work *fw_event);
132 static void mptsas_broadcast_primative_work(struct fw_event_work *fw_event);
133 static void mptsas_handle_queue_full_event(struct fw_event_work *fw_event);
285 mptsas_add_fw_event(MPT_ADAPTER *ioc, struct fw_event_work *fw_event, in mptsas_add_fw_event() argument
291 list_add_tail(&fw_event->list, &ioc->fw_event_list); in mptsas_add_fw_event()
292 INIT_DELAYED_WORK(&fw_event->work, mptsas_firmware_event_work); in mptsas_add_fw_event()
295 fw_event, smp_processor_id())); in mptsas_add_fw_event()
297 &fw_event->work, delay); in mptsas_add_fw_event()
303 mptsas_requeue_fw_event(MPT_ADAPTER *ioc, struct fw_event_work *fw_event, in mptsas_requeue_fw_event() argument
310 fw_event, smp_processor_id())); in mptsas_requeue_fw_event()
311 fw_event->retries++; in mptsas_requeue_fw_event()
313 &fw_event->work, msecs_to_jiffies(delay)); in mptsas_requeue_fw_event()
319 mptsas_free_fw_event(MPT_ADAPTER *ioc, struct fw_event_work *fw_event) in mptsas_free_fw_event() argument
325 ioc->name, __func__, fw_event)); in mptsas_free_fw_event()
326 list_del(&fw_event->list); in mptsas_free_fw_event()
327 kfree(fw_event); in mptsas_free_fw_event()
336 struct fw_event_work *fw_event, *next; in mptsas_cleanup_fw_event_q() local
357 list_for_each_entry_safe(fw_event, next, &ioc->fw_event_list, list) { in mptsas_cleanup_fw_event_q()
358 if (cancel_delayed_work(&fw_event->work)) in mptsas_cleanup_fw_event_q()
359 mptsas_free_fw_event(ioc, fw_event); in mptsas_cleanup_fw_event_q()
992 struct fw_event_work *fw_event; in mptsas_queue_device_delete() local
994 fw_event = kzalloc(sizeof(*fw_event) + in mptsas_queue_device_delete()
997 if (!fw_event) { in mptsas_queue_device_delete()
1002 memcpy(fw_event->event_data, sas_event_data, in mptsas_queue_device_delete()
1004 fw_event->event = MPI_EVENT_SAS_DEVICE_STATUS_CHANGE; in mptsas_queue_device_delete()
1005 fw_event->ioc = ioc; in mptsas_queue_device_delete()
1006 mptsas_add_fw_event(ioc, fw_event, msecs_to_jiffies(1)); in mptsas_queue_device_delete()
1012 struct fw_event_work *fw_event; in mptsas_queue_rescan() local
1014 fw_event = kzalloc(sizeof(*fw_event), GFP_ATOMIC); in mptsas_queue_rescan()
1015 if (!fw_event) { in mptsas_queue_rescan()
1020 fw_event->event = -1; in mptsas_queue_rescan()
1021 fw_event->ioc = ioc; in mptsas_queue_rescan()
1022 mptsas_add_fw_event(ioc, fw_event, msecs_to_jiffies(1)); in mptsas_queue_rescan()
1620 struct fw_event_work *fw_event = in mptsas_firmware_event_work() local
1622 MPT_ADAPTER *ioc = fw_event->ioc; in mptsas_firmware_event_work()
1625 if (fw_event->event == -1) { in mptsas_firmware_event_work()
1638 mptsas_free_fw_event(ioc, fw_event); in mptsas_firmware_event_work()
1645 mptsas_free_fw_event(ioc, fw_event); in mptsas_firmware_event_work()
1650 "event = (0x%02x)\n", ioc->name, __func__, fw_event, in mptsas_firmware_event_work()
1651 (fw_event->event & 0xFF))); in mptsas_firmware_event_work()
1653 switch (fw_event->event) { in mptsas_firmware_event_work()
1655 mptsas_send_sas_event(fw_event); in mptsas_firmware_event_work()
1658 mptsas_send_raid_event(fw_event); in mptsas_firmware_event_work()
1661 mptsas_send_ir2_event(fw_event); in mptsas_firmware_event_work()
1666 mptsas_free_fw_event(ioc, fw_event); in mptsas_firmware_event_work()
1669 mptsas_broadcast_primative_work(fw_event); in mptsas_firmware_event_work()
1672 mptsas_send_expander_event(fw_event); in mptsas_firmware_event_work()
1675 mptsas_send_link_status_event(fw_event); in mptsas_firmware_event_work()
1678 mptsas_handle_queue_full_event(fw_event); in mptsas_firmware_event_work()
3606 mptsas_send_expander_event(struct fw_event_work *fw_event) in mptsas_send_expander_event() argument
3614 ioc = fw_event->ioc; in mptsas_send_expander_event()
3616 fw_event->event_data; in mptsas_send_expander_event()
3639 mptsas_free_fw_event(ioc, fw_event); in mptsas_send_expander_event()
3682 mptsas_send_link_status_event(struct fw_event_work *fw_event) in mptsas_send_link_status_event() argument
3692 ioc = fw_event->ioc; in mptsas_send_link_status_event()
3693 link_data = (MpiEventDataSasPhyLinkStatus_t *)fw_event->event_data; in mptsas_send_link_status_event()
3771 mptsas_free_fw_event(ioc, fw_event); in mptsas_send_link_status_event()
4025 mptsas_handle_queue_full_event(struct fw_event_work *fw_event) in mptsas_handle_queue_full_event() argument
4038 ioc = fw_event->ioc; in mptsas_handle_queue_full_event()
4039 qfull_data = (EventDataQueueFull_t *)fw_event->event_data; in mptsas_handle_queue_full_event()
4108 mptsas_free_fw_event(ioc, fw_event); in mptsas_handle_queue_full_event()
4306 mptsas_hotplug_work(MPT_ADAPTER *ioc, struct fw_event_work *fw_event, in mptsas_hotplug_work() argument
4329 mptsas_free_fw_event(ioc, fw_event); in mptsas_hotplug_work()
4566 mptsas_free_fw_event(ioc, fw_event); in mptsas_hotplug_work()
4570 mptsas_send_sas_event(struct fw_event_work *fw_event) in mptsas_send_sas_event() argument
4578 ioc = fw_event->ioc; in mptsas_send_sas_event()
4580 fw_event->event_data; in mptsas_send_sas_event()
4587 mptsas_free_fw_event(ioc, fw_event); in mptsas_send_sas_event()
4595 mptsas_free_fw_event(ioc, fw_event); in mptsas_send_sas_event()
4616 mptsas_hotplug_work(ioc, fw_event, &hot_plug_info); in mptsas_send_sas_event()
4622 mptsas_free_fw_event(ioc, fw_event); in mptsas_send_sas_event()
4630 mptsas_free_fw_event(ioc, fw_event); in mptsas_send_sas_event()
4636 mptsas_send_raid_event(struct fw_event_work *fw_event) in mptsas_send_raid_event() argument
4647 ioc = fw_event->ioc; in mptsas_send_raid_event()
4648 raid_event_data = (EVENT_DATA_RAID *)fw_event->event_data; in mptsas_send_raid_event()
4746 mptsas_hotplug_work(ioc, fw_event, &hot_plug_info); in mptsas_send_raid_event()
4748 mptsas_free_fw_event(ioc, fw_event); in mptsas_send_raid_event()
4839 mptsas_broadcast_primative_work(struct fw_event_work *fw_event) in mptsas_broadcast_primative_work() argument
4841 MPT_ADAPTER *ioc = fw_event->ioc; in mptsas_broadcast_primative_work()
4860 mptsas_requeue_fw_event(ioc, fw_event, 1000); in mptsas_broadcast_primative_work()
4925 mptsas_free_fw_event(ioc, fw_event); in mptsas_broadcast_primative_work()
4937 mptsas_send_ir2_event(struct fw_event_work *fw_event) in mptsas_send_ir2_event() argument
4945 ioc = fw_event->ioc; in mptsas_send_ir2_event()
4946 ir2_data = (MPI_EVENT_DATA_IR2 *)fw_event->event_data; in mptsas_send_ir2_event()
4971 mptsas_free_fw_event(ioc, fw_event); in mptsas_send_ir2_event()
4974 mptsas_hotplug_work(ioc, fw_event, &hot_plug_info); in mptsas_send_ir2_event()
4982 struct fw_event_work *fw_event; in mptsas_event_process() local
5091 fw_event = kzalloc(sizeof(*fw_event) + event_data_sz, GFP_ATOMIC); in mptsas_event_process()
5092 if (!fw_event) { in mptsas_event_process()
5097 memcpy(fw_event->event_data, reply->Data, event_data_sz); in mptsas_event_process()
5098 fw_event->event = event; in mptsas_event_process()
5099 fw_event->ioc = ioc; in mptsas_event_process()
5100 mptsas_add_fw_event(ioc, fw_event, delay); in mptsas_event_process()