drivers/misc/ti-st: use cpu friendly completions
authorPavan Savoy <pavan_savoy@ti.com>
Fri, 3 Aug 2012 19:49:42 +0000 (14:49 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 16 Aug 2012 17:11:45 +0000 (10:11 -0700)
Be nice to CPU and don't hog the resources, use a nice wait_for_interruptible
timeout for completions instead of wait_for_timeout which is
non-interruptible.

Signed-off-by: Pavan Savoy <pavan_savoy@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/ti-st/st_kim.c

index 54ff644aa56b54f71fc30b94cda7acc84a07bddb..0f36db3aa40fa59c001733e50f3e6ff606419425 100644 (file)
@@ -207,8 +207,8 @@ static long read_local_version(struct kim_data_s *kim_gdata, char *bts_scr_name)
                return -EIO;
        }
 
-       if (!wait_for_completion_timeout
-           (&kim_gdata->kim_rcvd, msecs_to_jiffies(CMD_RESP_TIME))) {
+       if (!wait_for_completion_interruptible_timeout(
+               &kim_gdata->kim_rcvd, msecs_to_jiffies(CMD_RESP_TIME))) {
                pr_err(" waiting for ver info- timed out ");
                return -ETIMEDOUT;
        }
@@ -370,9 +370,9 @@ static long download_firmware(struct kim_data_s *kim_gdata)
                        break;
                case ACTION_WAIT_EVENT:  /* wait */
                        pr_debug("W");
-                       if (!wait_for_completion_timeout
-                                       (&kim_gdata->kim_rcvd,
-                                        msecs_to_jiffies(CMD_RESP_TIME))) {
+                       if (!wait_for_completion_interruptible_timeout(
+                                       &kim_gdata->kim_rcvd,
+                                       msecs_to_jiffies(CMD_RESP_TIME))) {
                                pr_err("response timeout during fw download ");
                                /* timed out */
                                release_firmware(kim_gdata->fw_entry);
@@ -462,8 +462,8 @@ long st_kim_start(void *kim_data)
                sysfs_notify(&kim_gdata->kim_pdev->dev.kobj,
                                NULL, "install");
                /* wait for ldisc to be installed */
-               err = wait_for_completion_timeout(&kim_gdata->ldisc_installed,
-                               msecs_to_jiffies(LDISC_TIME));
+               err = wait_for_completion_interruptible_timeout(
+                       &kim_gdata->ldisc_installed, msecs_to_jiffies(LDISC_TIME));
                if (!err) {
                        /* ldisc installation timeout,
                         * flush uart, power cycle BT_EN */
@@ -520,8 +520,8 @@ long st_kim_stop(void *kim_data)
        sysfs_notify(&kim_gdata->kim_pdev->dev.kobj, NULL, "install");
 
        /* wait for ldisc to be un-installed */
-       err = wait_for_completion_timeout(&kim_gdata->ldisc_installed,
-                       msecs_to_jiffies(LDISC_TIME));
+       err = wait_for_completion_interruptible_timeout(
+               &kim_gdata->ldisc_installed, msecs_to_jiffies(LDISC_TIME));
        if (!err) {             /* timeout */
                pr_err(" timed out waiting for ldisc to be un-installed");
                err = -ETIMEDOUT;