Lines Matching defs:tx_msg

215 static void ipmi_msg_release(struct acpi_ipmi_msg *tx_msg)
217 acpi_ipmi_dev_put(tx_msg->device);
218 kfree(tx_msg);
223 struct acpi_ipmi_msg *tx_msg =
226 ipmi_msg_release(tx_msg);
229 static struct acpi_ipmi_msg *acpi_ipmi_msg_get(struct acpi_ipmi_msg *tx_msg)
231 kref_get(&tx_msg->kref);
233 return tx_msg;
236 static void acpi_ipmi_msg_put(struct acpi_ipmi_msg *tx_msg)
238 kref_put(&tx_msg->kref, ipmi_msg_release_kref);
243 static int acpi_format_ipmi_request(struct acpi_ipmi_msg *tx_msg,
252 msg = &tx_msg->tx_message;
260 msg->data = tx_msg->data;
270 dev_WARN_ONCE(tx_msg->device->dev, true,
276 memcpy(tx_msg->data, buffer->data, msg->data_len);
285 tx_msg->addr.addr_type = IPMI_SYSTEM_INTERFACE_ADDR_TYPE;
286 tx_msg->addr.channel = IPMI_BMC_CHANNEL;
287 tx_msg->addr.data[0] = 0;
290 device = tx_msg->device;
294 tx_msg->tx_msgid = device->curr_msgid;
329 struct acpi_ipmi_msg *tx_msg;
342 tx_msg = list_first_entry(&ipmi->tx_msg_list,
345 list_del(&tx_msg->head);
349 complete(&tx_msg->tx_complete);
350 acpi_ipmi_msg_put(tx_msg);
359 struct acpi_ipmi_msg *tx_msg = NULL, *iter, *temp;
365 tx_msg = iter;
372 if (tx_msg)
373 acpi_ipmi_msg_put(tx_msg);
379 struct acpi_ipmi_msg *tx_msg = NULL, *iter, *temp;
393 tx_msg = iter;
400 if (!tx_msg) {
421 tx_msg->msg_done = ACPI_IPMI_TIMEOUT;
426 tx_msg->rx_len = msg->msg.data_len;
427 memcpy(tx_msg->data, msg->msg.data, tx_msg->rx_len);
428 tx_msg->msg_done = ACPI_IPMI_OK;
431 complete(&tx_msg->tx_complete);
432 acpi_ipmi_msg_put(tx_msg);
528 struct acpi_ipmi_msg *tx_msg;
543 tx_msg = ipmi_msg_alloc();
544 if (!tx_msg)
546 ipmi_device = tx_msg->device;
548 if (acpi_format_ipmi_request(tx_msg, address, value) != 0) {
549 ipmi_msg_release(tx_msg);
554 /* Do not add a tx_msg that can not be flushed. */
557 ipmi_msg_release(tx_msg);
560 acpi_ipmi_msg_get(tx_msg);
562 list_add_tail(&tx_msg->head, &ipmi_device->tx_msg_list);
567 &tx_msg->addr,
568 tx_msg->tx_msgid,
569 &tx_msg->tx_message,
575 wait_for_completion(&tx_msg->tx_complete);
577 acpi_format_ipmi_response(tx_msg, value);
581 ipmi_cancel_tx_msg(ipmi_device, tx_msg);
582 acpi_ipmi_msg_put(tx_msg);