NFC: trf7970a: Initialize when enabling RF

Currently, the trf7970a is reset & initialized only
when the pm_runtime resume hook is called.  Instead,
initialize it every time the RF is enabled to ensure
that the trf7970a is quiesced and in a known state
before being set up for another RF technology.

Signed-off-by: Mark A. Greer <mgreer@animalcreek.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
Mark A. Greer 2014-09-02 15:12:23 -07:00 committed by Samuel Ortiz
parent 6c08df422e
commit a08e54549e

View file

@ -823,10 +823,18 @@ static void trf7970a_switch_rf_off(struct trf7970a *trf)
static void trf7970a_switch_rf_on(struct trf7970a *trf) static void trf7970a_switch_rf_on(struct trf7970a *trf)
{ {
int ret;
dev_dbg(trf->dev, "Switching rf on\n"); dev_dbg(trf->dev, "Switching rf on\n");
pm_runtime_get_sync(trf->dev); pm_runtime_get_sync(trf->dev);
ret = trf7970a_init(trf);
if (ret) {
dev_err(trf->dev, "%s - Can't initialize: %d\n", __func__, ret);
return;
}
trf->state = TRF7970A_ST_IDLE; trf->state = TRF7970A_ST_IDLE;
} }
@ -1473,12 +1481,6 @@ static int trf7970a_pm_runtime_resume(struct device *dev)
usleep_range(20000, 21000); usleep_range(20000, 21000);
ret = trf7970a_init(trf);
if (ret) {
dev_err(dev, "%s - Can't initialize: %d\n", __func__, ret);
return ret;
}
pm_runtime_mark_last_busy(dev); pm_runtime_mark_last_busy(dev);
return 0; return 0;