Lines Matching refs:smi
43 struct ipmi_smi_powernv *smi = send_info; in ipmi_powernv_start_processing() local
45 smi->intf = intf; in ipmi_powernv_start_processing()
49 static void send_error_reply(struct ipmi_smi_powernv *smi, in send_error_reply() argument
56 ipmi_smi_msg_received(smi->intf, msg); in send_error_reply()
61 struct ipmi_smi_powernv *smi = send_info; in ipmi_powernv_send() local
79 spin_lock_irqsave(&smi->msg_lock, flags); in ipmi_powernv_send()
81 if (smi->cur_msg) { in ipmi_powernv_send()
87 opal_msg = smi->opal_msg; in ipmi_powernv_send()
98 smi->interface_id, opal_msg, size); in ipmi_powernv_send()
99 rc = opal_ipmi_send(smi->interface_id, opal_msg, size); in ipmi_powernv_send()
103 smi->cur_msg = msg; in ipmi_powernv_send()
104 spin_unlock_irqrestore(&smi->msg_lock, flags); in ipmi_powernv_send()
110 spin_unlock_irqrestore(&smi->msg_lock, flags); in ipmi_powernv_send()
112 send_error_reply(smi, msg, comp); in ipmi_powernv_send()
115 static int ipmi_powernv_recv(struct ipmi_smi_powernv *smi) in ipmi_powernv_recv() argument
124 smi->interface_id); in ipmi_powernv_recv()
126 spin_lock_irqsave(&smi->msg_lock, flags); in ipmi_powernv_recv()
128 if (!smi->cur_msg) { in ipmi_powernv_recv()
129 spin_unlock_irqrestore(&smi->msg_lock, flags); in ipmi_powernv_recv()
134 msg = smi->cur_msg; in ipmi_powernv_recv()
135 opal_msg = smi->opal_msg; in ipmi_powernv_recv()
139 rc = opal_ipmi_recv(smi->interface_id, in ipmi_powernv_recv()
148 spin_unlock_irqrestore(&smi->msg_lock, flags); in ipmi_powernv_recv()
152 smi->cur_msg = NULL; in ipmi_powernv_recv()
153 spin_unlock_irqrestore(&smi->msg_lock, flags); in ipmi_powernv_recv()
154 send_error_reply(smi, msg, IPMI_ERR_UNSPECIFIED); in ipmi_powernv_recv()
159 spin_unlock_irqrestore(&smi->msg_lock, flags); in ipmi_powernv_recv()
165 spin_unlock_irqrestore(&smi->msg_lock, flags); in ipmi_powernv_recv()
177 smi->cur_msg = NULL; in ipmi_powernv_recv()
178 spin_unlock_irqrestore(&smi->msg_lock, flags); in ipmi_powernv_recv()
179 ipmi_smi_msg_received(smi->intf, msg); in ipmi_powernv_recv()
194 struct ipmi_smi_powernv *smi = send_info; in ipmi_powernv_poll() local
196 ipmi_powernv_recv(smi); in ipmi_powernv_poll()
210 struct ipmi_smi_powernv *smi = data; in ipmi_opal_event() local
212 ipmi_powernv_recv(smi); in ipmi_opal_event()
292 struct ipmi_smi_powernv *smi = dev_get_drvdata(&pdev->dev); in ipmi_powernv_remove() local
294 ipmi_unregister_smi(smi->intf); in ipmi_powernv_remove()
295 free_irq(smi->irq, smi); in ipmi_powernv_remove()
296 irq_dispose_mapping(smi->irq); in ipmi_powernv_remove()