static int ucsi_acpi_cmd(struct ucsi *ucsi, struct ucsi_control *ctrl) { uuid_le uuid = UUID_LE(0x6f8398c2, 0x7ca4, 0x11e4, 0xad, 0x36, 0x63, 0x10, 0x42, 0xb5, 0x00, 0x8f); union acpi_object *obj; ucsi->data->ctrl.raw_cmd = ctrl->raw_cmd; obj = acpi_evaluate_dsm(ACPI_HANDLE(ucsi->dev), uuid.b, 1, 1, NULL); if (!obj) { dev_err(ucsi->dev, "%s: failed to evaluate _DSM\n", __func__); return -EIO; } ACPI_FREE(obj); return 0; }
struct mei_cl *cl; struct mei_cl *cl_info; struct work_struct init_work; wait_queue_head_t send_wq; u8 fw_ivn; u8 vendor_id; u8 radio_type; char *bus_name; u16 req_id; u16 recv_req_id; }; /* UUIDs for NFC F/W clients */ const uuid_le mei_nfc_guid = UUID_LE(0x0bb17a78, 0x2a8e, 0x4c50, 0x94, 0xd4, 0x50, 0x26, 0x67, 0x23, 0x77, 0x5c); static const uuid_le mei_nfc_info_guid = UUID_LE(0xd2de1625, 0x382d, 0x417d, 0x48, 0xa4, 0xef, 0xab, 0xba, 0x8a, 0x12, 0x06); /* Vendors */ #define MEI_NFC_VENDOR_INSIDE 0x00 #define MEI_NFC_VENDOR_NXP 0x01 /* Radio types */ #define MEI_NFC_VENDOR_INSIDE_UREAD 0x00 #define MEI_NFC_VENDOR_NXP_PN544 0x01 static void mei_nfc_free(struct mei_nfc_dev *ndev)
static const u8 mei_stop_wd_params[] = { 0x02, 0x02, 0x14, 0x10 }; const u8 mei_wd_state_independence_msg[3][4] = { {0x05, 0x02, 0x51, 0x10}, {0x05, 0x02, 0x52, 0x10}, {0x07, 0x02, 0x01, 0x10} }; /* * AMT Watchdog Device */ #define INTEL_AMT_WATCHDOG_ID "INTCAMT" /* UUIDs for AMT F/W clients */ const uuid_le mei_wd_guid = UUID_LE(0x05B79A6F, 0x4628, 0x4D7F, 0x89, 0x9D, 0xA9, 0x15, 0x14, 0xCB, 0x32, 0xAB); static void mei_wd_set_start_timeout(struct mei_device *dev, u16 timeout) { dev_dbg(&dev->pdev->dev, "wd: set timeout=%d.\n", timeout); memcpy(dev->wd_data, mei_start_wd_params, MEI_WD_PARAMS_SIZE); memcpy(dev->wd_data + MEI_WD_PARAMS_SIZE, &timeout, sizeof(u16)); } /** * host_init_wd - mei initialization wd. * * @dev: the device structure * returns -ENENT if wd client cannot be found * -EIO if write has failed
#include <linux/list.h> #include <linux/delay.h> #include <linux/sched.h> #include <linux/uuid.h> #include <linux/jiffies.h> #include <linux/uaccess.h> #include <linux/slab.h> #include <linux/mei.h> #include "mei_dev.h" #include "hbm.h" #include "client.h" const uuid_le mei_amthif_guid = UUID_LE(0x12f80028, 0xb4b7, 0x4b2d, 0xac, 0xa8, 0x46, 0xe0, 0xff, 0x65, 0x81, 0x4c); /** * mei_amthif_reset_params - initializes mei device iamthif * * @dev: the device structure */ void mei_amthif_reset_params(struct mei_device *dev) { /* reset iamthif parameters. */ dev->iamthif_current_cb = NULL; dev->iamthif_canceled = false; dev->iamthif_state = MEI_IAMTHIF_IDLE; dev->iamthif_stall_timer = 0; dev->iamthif_open_count = 0;