From patchwork Thu Jun 2 04:24:07 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Binoy Jayan X-Patchwork-Id: 69117 Delivered-To: patch@linaro.org Received: by 10.140.23.41 with SMTP id 38csp134580qgo; Wed, 1 Jun 2016 21:24:42 -0700 (PDT) X-Received: by 10.98.43.210 with SMTP id r201mr692574pfr.9.1464841482176; Wed, 01 Jun 2016 21:24:42 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f66si31796513pff.18.2016.06.01.21.24.41; Wed, 01 Jun 2016 21:24:42 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751139AbcFBEYe (ORCPT + 30 others); Thu, 2 Jun 2016 00:24:34 -0400 Received: from mail-pf0-f176.google.com ([209.85.192.176]:36092 "EHLO mail-pf0-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750914AbcFBEY3 (ORCPT ); Thu, 2 Jun 2016 00:24:29 -0400 Received: by mail-pf0-f176.google.com with SMTP id f144so26214864pfa.3 for ; Wed, 01 Jun 2016 21:24:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=zK8lPNcqOUvMIjaEdQGRN6wPbewS2L624QFFqlYpZ0o=; b=Jn0//zWnp4uW+DGppuFKVrJ4kaJnSK6+aeKx0CPqcTFOhnMDQ9MytjFJpII1yZZwZc bPEjgIn16ILtGa4qq9GZyhh5tEKT4OQkid6jbuKk+jeQyqWbbwF/fbszpzsP/B0PpgLH hx4XrL6TsuA07jpWi1P671q9s/jzqcg3N3D5E= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=zK8lPNcqOUvMIjaEdQGRN6wPbewS2L624QFFqlYpZ0o=; b=ccH6gqtBnsU/vz+uyrBK6Td5sFACpiLn/t35ZPo+n0YN9fXKAc2mHrorkFSrSpZHfI Gb219gufv7bGGNvws9ulAPWIg6sVMFVpK+K5wLfZEwEE2QsLWWX7sL6tgHi8DOPINT14 UjuwsfkhqTMb7V3fllvHL4DlAwYlLjmLipw1616ebpgDPEKI5DznJFzZLPweOmNkYwMt crBkb94EEnZmOSlhnCF/ibUQ+pRMeyBCGCwuRn67J38hTwqsHj5v9tQbVLmnLm2pUDTp vXfAU28OYlQk+QRrHfP4WpWRYaNTml5Rhj9CQ0+OUZMd5zUI0e3rAgF4ACcaTkuZ9USJ a72g== X-Gm-Message-State: ALyK8tJ7rd/5Xw3UbYX4jODVwDY8g/5i5zUN78SmoOmnTWFh8AtXq4ZF6XclcH042K8vzIf+ X-Received: by 10.98.27.216 with SMTP id b207mr661661pfb.111.1464841468838; Wed, 01 Jun 2016 21:24:28 -0700 (PDT) Received: from blr-ubuntu-59.ap.qualcomm.com ([202.46.23.61]) by smtp.gmail.com with ESMTPSA id s86sm36652609pfi.69.2016.06.01.21.24.25 (version=TLS1_1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 01 Jun 2016 21:24:28 -0700 (PDT) From: Binoy Jayan To: Greg Kroah-Hartman , Larry Finger , Florian Schilhabel Cc: Arnd Bergmann , driverdev-devel@linuxdriverproject.org, linux-kernel@vger.kernel.org, Binoy Jayan Subject: [PATCH v2 1/4] rtl8712: Replace semaphore cmd_queue_sema with completion Date: Thu, 2 Jun 2016 09:54:07 +0530 Message-Id: <1464841450-24772-2-git-send-email-binoy.jayan@linaro.org> X-Mailer: git-send-email 1.8.2.1 In-Reply-To: <1464841450-24772-1-git-send-email-binoy.jayan@linaro.org> References: <1464841450-24772-1-git-send-email-binoy.jayan@linaro.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The semaphore 'cmd_queue_sema' is used as completion, so convert it to a struct completion type. Signed-off-by: Binoy Jayan --- drivers/staging/rtl8712/os_intfs.c | 2 +- drivers/staging/rtl8712/rtl8712_cmd.c | 2 +- drivers/staging/rtl8712/rtl871x_cmd.c | 6 +++--- drivers/staging/rtl8712/rtl871x_cmd.h | 2 +- drivers/staging/rtl8712/rtl871x_pwrctrl.c | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project diff --git a/drivers/staging/rtl8712/os_intfs.c b/drivers/staging/rtl8712/os_intfs.c index ab19112..c07bcd0 100644 --- a/drivers/staging/rtl8712/os_intfs.c +++ b/drivers/staging/rtl8712/os_intfs.c @@ -243,7 +243,7 @@ static u32 start_drv_threads(struct _adapter *padapter) void r8712_stop_drv_threads(struct _adapter *padapter) { /*Below is to terminate r8712_cmd_thread & event_thread...*/ - up(&padapter->cmdpriv.cmd_queue_sema); + complete(&padapter->cmdpriv.cmd_queue_comp); if (padapter->cmdThread) _down_sema(&padapter->cmdpriv.terminate_cmdthread_sema); padapter->cmdpriv.cmd_seq = 1; diff --git a/drivers/staging/rtl8712/rtl8712_cmd.c b/drivers/staging/rtl8712/rtl8712_cmd.c index 50f4002..172f51f 100644 --- a/drivers/staging/rtl8712/rtl8712_cmd.c +++ b/drivers/staging/rtl8712/rtl8712_cmd.c @@ -322,7 +322,7 @@ int r8712_cmd_thread(void *context) allow_signal(SIGTERM); while (1) { - if ((_down_sema(&(pcmdpriv->cmd_queue_sema))) == _FAIL) + if (wait_for_completion_interruptible(&pcmdpriv->cmd_queue_comp)) break; if (padapter->bDriverStopped || padapter->bSurpriseRemoved) break; diff --git a/drivers/staging/rtl8712/rtl871x_cmd.c b/drivers/staging/rtl8712/rtl871x_cmd.c index 86136cc..69e650b 100644 --- a/drivers/staging/rtl8712/rtl871x_cmd.c +++ b/drivers/staging/rtl8712/rtl871x_cmd.c @@ -57,7 +57,7 @@ No irqsave is necessary. static sint _init_cmd_priv(struct cmd_priv *pcmdpriv) { - sema_init(&(pcmdpriv->cmd_queue_sema), 0); + init_completion(&pcmdpriv->cmd_queue_comp); sema_init(&(pcmdpriv->terminate_cmdthread_sema), 0); _init_queue(&(pcmdpriv->cmd_queue)); @@ -172,7 +172,7 @@ u32 r8712_enqueue_cmd(struct cmd_priv *pcmdpriv, struct cmd_obj *obj) if (pcmdpriv->padapter->eeprompriv.bautoload_fail_flag) return _FAIL; res = _enqueue_cmd(&pcmdpriv->cmd_queue, obj); - up(&pcmdpriv->cmd_queue_sema); + complete(&pcmdpriv->cmd_queue_comp); return res; } @@ -189,7 +189,7 @@ u32 r8712_enqueue_cmd_ex(struct cmd_priv *pcmdpriv, struct cmd_obj *obj) spin_lock_irqsave(&queue->lock, irqL); list_add_tail(&obj->list, &queue->queue); spin_unlock_irqrestore(&queue->lock, irqL); - up(&pcmdpriv->cmd_queue_sema); + complete(&pcmdpriv->cmd_queue_comp); return _SUCCESS; } diff --git a/drivers/staging/rtl8712/rtl871x_cmd.h b/drivers/staging/rtl8712/rtl871x_cmd.h index e4a2a50..1907bc9 100644 --- a/drivers/staging/rtl8712/rtl871x_cmd.h +++ b/drivers/staging/rtl8712/rtl871x_cmd.h @@ -50,7 +50,7 @@ struct cmd_obj { }; struct cmd_priv { - struct semaphore cmd_queue_sema; + struct completion cmd_queue_comp; struct semaphore terminate_cmdthread_sema; struct __queue cmd_queue; u8 cmd_seq; diff --git a/drivers/staging/rtl8712/rtl871x_pwrctrl.c b/drivers/staging/rtl8712/rtl871x_pwrctrl.c index bf10d6d..98a5e74 100644 --- a/drivers/staging/rtl8712/rtl871x_pwrctrl.c +++ b/drivers/staging/rtl8712/rtl871x_pwrctrl.c @@ -107,7 +107,7 @@ void r8712_cpwm_int_hdl(struct _adapter *padapter, pwrpriv->cpwm = (preportpwrstate->state) & 0xf; if (pwrpriv->cpwm >= PS_STATE_S2) { if (pwrpriv->alives & CMD_ALIVE) - up(&(pcmdpriv->cmd_queue_sema)); + complete(&(pcmdpriv->cmd_queue_comp)); } pwrpriv->cpwm_tog = (preportpwrstate->state) & 0x80; up(&pwrpriv->lock);