Merge "NFC: Fix device node probing issue"

This commit is contained in:
qctecmdr 2019-06-22 21:42:13 -07:00 committed by Gerrit - the friendly Code Review server
commit cfa6662bda

View file

@ -827,6 +827,9 @@ static int nfcc_hw_check(struct i2c_client *client, struct nqx_dev *nqx_dev)
reset_enable_gpio:
/* making sure that the NFCC starts in a clean state. */
gpio_set_value(enable_gpio, 1);/* HPD : Enable*/
/* hardware dependent delay */
usleep_range(10000, 10100);
gpio_set_value(enable_gpio, 0);/* ULPM: Disable */
/* hardware dependent delay */
usleep_range(10000, 10100);
@ -892,8 +895,12 @@ static int nfcc_hw_check(struct i2c_client *client, struct nqx_dev *nqx_dev)
}
goto err_nfcc_reset_failed;
}
/* hardware dependent delay */
msleep(30);
nqx_enable_irq(nqx_dev);
ret = wait_event_interruptible(nqx_dev->read_wq, !nqx_dev->irq_enabled);
if (ret < 0) {
nqx_disable_irq(nqx_dev);
goto err_nfcc_hw_check;
}
/* Read Response of RESET command */
ret = i2c_master_recv(client, nci_reset_rsp, NCI_RESET_RSP_LEN);
@ -905,9 +912,12 @@ static int nfcc_hw_check(struct i2c_client *client, struct nqx_dev *nqx_dev)
goto reset_enable_gpio;
goto err_nfcc_hw_check;
}
/* hardware dependent delay */
msleep(30);
nqx_enable_irq(nqx_dev);
ret = wait_event_interruptible(nqx_dev->read_wq, !nqx_dev->irq_enabled);
if (ret < 0) {
nqx_disable_irq(nqx_dev);
goto err_nfcc_hw_check;
}
/* Read Notification of RESET command */
ret = i2c_master_recv(client, nci_reset_ntf, NCI_RESET_NTF_LEN);