From fc0ae24386142299db14dfea7f32a20022d94d90 Mon Sep 17 00:00:00 2001
From: "Mark A. Greer" <mgreer@animalcreek.com>
Date: Tue, 23 Sep 2014 11:25:48 -0700
Subject: [PATCH] NFC: trf7970a: Unlock mutex before exiting
 _trf7970a_tg_listen()

The recently added _trf7970a_tg_listen() routine
has some return paths that don't unlock the mutex
that is locked when the routine is entered.  Fix
this by always unlocking the mutex before returning.

Signed-off-by: Mark A. Greer <mgreer@animalcreek.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
---
 drivers/nfc/trf7970a.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/nfc/trf7970a.c b/drivers/nfc/trf7970a.c
index 0fe7b957436c5..d2ccd28906473 100644
--- a/drivers/nfc/trf7970a.c
+++ b/drivers/nfc/trf7970a.c
@@ -1728,22 +1728,22 @@ static int _trf7970a_tg_listen(struct nfc_digital_dev *ddev, u16 timeout,
 			TRF7970A_RX_SPECIAL_SETTINGS_C424 |
 			TRF7970A_RX_SPECIAL_SETTINGS_C212);
 	if (ret)
-		return ret;
+		goto out_err;
 
 	ret = trf7970a_write(trf, TRF7970A_REG_IO_CTRL,
 			TRF7970A_REG_IO_CTRL_VRS(0x1));
 	if (ret)
-		return ret;
+		goto out_err;
 
 	ret = trf7970a_write(trf, TRF7970A_NFC_LOW_FIELD_LEVEL,
 			TRF7970A_NFC_LOW_FIELD_LEVEL_RFDET(0x3));
 	if (ret)
-		return ret;
+		goto out_err;
 
 	ret = trf7970a_write(trf, TRF7970A_NFC_TARGET_LEVEL,
 			TRF7970A_NFC_TARGET_LEVEL_RFDET(0x7));
 	if (ret)
-		return ret;
+		goto out_err;
 
 	trf->ddev = ddev;
 	trf->cb = cb;