From 04c3f11a8dc0ca2178c6d65328795489df15d307 Mon Sep 17 00:00:00 2001
From: "makarand.karvekar" <makarand.karvekar@motorola.com>
Date: Thu, 4 Nov 2010 22:59:55 -0500
Subject: [PATCH] qtouch: process open call once during firmware upgrade

atomic flag process_open to process open call once.

Signed-off-by: makarand.karvekar <makarand.karvekar@motorola.com>
---
 drivers/input/touchscreen/qtouch_obp_ts.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/input/touchscreen/qtouch_obp_ts.c b/drivers/input/touchscreen/qtouch_obp_ts.c
index e8d2f5b4ab5b..7f110095b8a0 100644
--- a/drivers/input/touchscreen/qtouch_obp_ts.c
+++ b/drivers/input/touchscreen/qtouch_obp_ts.c
@@ -88,6 +88,7 @@ struct qtouch_ts_data {
 	uint8_t				ypos_lshift_msb;
 
 	atomic_t			irq_enabled;
+	atomic_t			process_open;
 	int				status;
 
 	uint8_t				mode;
@@ -995,6 +996,9 @@ int qtouch_input_open(struct input_dev *input)
 	int err;
 	struct qtouch_ts_data *ts = input_get_drvdata(input);
 
+	if (!atomic_xchg(&ts->process_open, 0))
+		return 0;
+
 	if (ts->touch_fw_image == NULL)
 		goto finish_touch_upgrade;
 
@@ -1631,6 +1635,7 @@ static int qtouch_ts_probe(struct i2c_client *client,
 	ts->x_delta = ts->pdata->x_delta;
 	ts->y_delta = ts->pdata->y_delta;
 	atomic_set(&ts->irq_enabled, 1);
+	atomic_set(&ts->process_open, 1);
 	ts->status = 0xfe;
 	ts->touch_fw_size = 0;
 	ts->touch_fw_image = NULL;
-- 
2.34.1