diff options
author | Bo Kim <bok@nvidia.com> | 2013-10-14 15:03:25 +0900 |
---|---|---|
committer | Gabby Lee <galee@nvidia.com> | 2013-11-06 18:18:51 -0800 |
commit | c835182402f2b3cd2345a4c9b193b08d18639fde (patch) | |
tree | 9ef4ad6366a0188e8663b8b606ea6c9399c834ce | |
parent | 52d61d13335287dba7e4b37406ba2b62eb05caf4 (diff) |
Revert "input: touch: maxim_sti: boot fusion from init"
This reverts commit 06eef70f3568f781da609570d0dfb39c3a869439.
Change-Id: I13caedd3d9e0519af496d83a81785ccd28117b10
Signed-off-by: Bo Kim <bok@nvidia.com>
Reviewed-on: http://git-master/r/298853
GVS: Gerrit_Virtual_Submit
Reviewed-by: Gabby Lee <galee@nvidia.com>
-rw-r--r-- | drivers/input/touchscreen/maxim_sti.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/input/touchscreen/maxim_sti.c b/drivers/input/touchscreen/maxim_sti.c index aaaaf1535f10..0ce23fba16cd 100644 --- a/drivers/input/touchscreen/maxim_sti.c +++ b/drivers/input/touchscreen/maxim_sti.c @@ -66,6 +66,7 @@ struct dev_data { u32 nl_seq; u8 nl_mc_group_count; bool nl_enabled; + bool start_fusion; bool suspend_in_progress; bool resume_in_progress; bool expect_resume_ack; @@ -1565,6 +1566,9 @@ static int processing_thread(void *arg) struct dev_data *dd = arg; struct maxim_sti_pdata *pdata = dd->spi->dev.platform_data; struct sk_buff *skb; + char *argv[] = { pdata->touch_fusion, "daemon", + pdata->nl_family, + pdata->config_file, NULL }; int ret, ret2; bool fusion_dead; @@ -1585,11 +1589,21 @@ static int processing_thread(void *arg) find_get_pid(dd->fusion_process), PIDTYPE_PID) == NULL) { stop_scan_canned(dd); + dd->start_fusion = true; dd->fusion_process = (pid_t)0; #if INPUT_ENABLE_DISABLE dd->input_no_deconfig = true; #endif } + if (dd->start_fusion) { + do { + ret = call_usermodehelper(argv[0], argv, NULL, + UMH_WAIT_EXEC); + if (ret != 0) + msleep(100); + } while (ret != 0 && !kthread_should_stop()); + dd->start_fusion = false; + } if (kthread_should_stop()) break; @@ -1811,6 +1825,7 @@ static int probe(struct spi_device *spi) #endif /* start up Touch Fusion */ + dd->start_fusion = true; wake_up_process(dd->thread); INFO("driver loaded; version %s; release date %s", DRIVER_VERSION, DRIVER_RELEASE); |