struct nfc_mei_phy *nfc_mei_phy_alloc(struct mei_cl_device *device) { struct nfc_mei_phy *phy; phy = kzalloc(sizeof(struct nfc_mei_phy), GFP_KERNEL); if (!phy) return NULL; phy->device = device; mei_cl_set_drvdata(device, phy); return phy; }
struct nfc_mei_phy *nfc_mei_phy_alloc(struct mei_cl_device *device) { struct nfc_mei_phy *phy; phy = kzalloc(sizeof(struct nfc_mei_phy), GFP_KERNEL); if (!phy) return NULL; phy->device = device; init_waitqueue_head(&phy->send_wq); mei_cl_set_drvdata(device, phy); return phy; }
static int microread_mei_probe(struct mei_cl_device *device, const struct mei_cl_device_id *id) { struct microread_mei_phy *phy; int r; pr_info("Probing NFC microread\n"); phy = kzalloc(sizeof(struct microread_mei_phy), GFP_KERNEL); if (!phy) { pr_err("Cannot allocate memory for microread mei phy.\n"); return -ENOMEM; } phy->device = device; mei_cl_set_drvdata(device, phy); r = mei_cl_register_event_cb(device, microread_event_cb, phy); if (r) { pr_err(MICROREAD_DRIVER_NAME ": event cb registration failed\n"); goto err_out; } r = microread_probe(phy, &mei_phy_ops, LLC_NOP_NAME, MEI_NFC_HEADER_SIZE, 0, MEI_NFC_MAX_HCI_PAYLOAD, &phy->hdev); if (r < 0) goto err_out; return 0; err_out: kfree(phy); return r; }