static int mei_nfc_enable(struct mei_cl_device *cldev) { struct mei_device *dev; struct mei_nfc_dev *ndev = &nfc_dev; int ret; dev = ndev->cl->dev; ret = mei_nfc_connect(ndev); if (ret < 0) { dev_err(&dev->pdev->dev, "Could not connect to NFC"); return ret; } return 0; }
static int nfc_mei_phy_enable(void *phy_id) { int r; struct nfc_mei_phy *phy = phy_id; pr_info("%s\n", __func__); if (phy->powered == 1) return 0; r = mei_cl_enable_device(phy->device); if (r < 0) { pr_err("Could not enable device %d\n", r); return r; } r = mei_nfc_if_version(phy); if (r < 0) { pr_err("Could not enable device %d\n", r); goto err; } r = mei_nfc_connect(phy); if (r < 0) { pr_err("Could not connect to device %d\n", r); goto err; } r = mei_cl_register_event_cb(phy->device, nfc_mei_event_cb, phy); if (r) { pr_err("Event cb registration failed %d\n", r); goto err; } phy->powered = 1; return 0; err: phy->powered = 0; mei_cl_disable_device(phy->device); return r; }