Lines Matching refs:tx_msg

212 static void ipmi_msg_release(struct acpi_ipmi_msg *tx_msg)
214 acpi_ipmi_dev_put(tx_msg->device);
215 kfree(tx_msg);
220 struct acpi_ipmi_msg *tx_msg =
223 ipmi_msg_release(tx_msg);
226 static struct acpi_ipmi_msg *acpi_ipmi_msg_get(struct acpi_ipmi_msg *tx_msg)
228 kref_get(&tx_msg->kref);
230 return tx_msg;
233 static void acpi_ipmi_msg_put(struct acpi_ipmi_msg *tx_msg)
235 kref_put(&tx_msg->kref, ipmi_msg_release_kref);
240 static int acpi_format_ipmi_request(struct acpi_ipmi_msg *tx_msg,
249 msg = &tx_msg->tx_message;
257 msg->data = tx_msg->data;
267 dev_WARN_ONCE(tx_msg->device->dev, true,
273 memcpy(tx_msg->data, buffer->data, msg->data_len);
282 tx_msg->addr.addr_type = IPMI_SYSTEM_INTERFACE_ADDR_TYPE;
283 tx_msg->addr.channel = IPMI_BMC_CHANNEL;
284 tx_msg->addr.data[0] = 0;
287 device = tx_msg->device;
291 tx_msg->tx_msgid = device->curr_msgid;
326 struct acpi_ipmi_msg *tx_msg;
339 tx_msg = list_first_entry(&ipmi->tx_msg_list,
342 list_del(&tx_msg->head);
346 complete(&tx_msg->tx_complete);
347 acpi_ipmi_msg_put(tx_msg);
356 struct acpi_ipmi_msg *tx_msg = NULL, *iter, *temp;
362 tx_msg = iter;
369 if (tx_msg)
370 acpi_ipmi_msg_put(tx_msg);
376 struct acpi_ipmi_msg *tx_msg = NULL, *iter, *temp;
390 tx_msg = iter;
397 if (!tx_msg) {
418 tx_msg->msg_done = ACPI_IPMI_TIMEOUT;
423 tx_msg->rx_len = msg->msg.data_len;
424 memcpy(tx_msg->data, msg->msg.data, tx_msg->rx_len);
425 tx_msg->msg_done = ACPI_IPMI_OK;
428 complete(&tx_msg->tx_complete);
429 acpi_ipmi_msg_put(tx_msg);
523 struct acpi_ipmi_msg *tx_msg;
538 tx_msg = ipmi_msg_alloc();
539 if (!tx_msg)
541 ipmi_device = tx_msg->device;
543 if (acpi_format_ipmi_request(tx_msg, address, value) != 0) {
544 ipmi_msg_release(tx_msg);
548 acpi_ipmi_msg_get(tx_msg);
550 /* Do not add a tx_msg that can not be flushed. */
553 ipmi_msg_release(tx_msg);
557 list_add_tail(&tx_msg->head, &ipmi_device->tx_msg_list);
562 &tx_msg->addr,
563 tx_msg->tx_msgid,
564 &tx_msg->tx_message,
570 wait_for_completion(&tx_msg->tx_complete);
572 acpi_format_ipmi_response(tx_msg, value);
576 ipmi_cancel_tx_msg(ipmi_device, tx_msg);
577 acpi_ipmi_msg_put(tx_msg);