From patchwork Wed Jun 7 06:59:37 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Torokhov X-Patchwork-Id: 9770647 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 71DB760234 for ; Wed, 7 Jun 2017 07:00:01 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 59545269A3 for ; Wed, 7 Jun 2017 07:00:01 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4DECB28533; Wed, 7 Jun 2017 07:00:01 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C60E4284B2 for ; Wed, 7 Jun 2017 07:00:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751643AbdFGG7s (ORCPT ); Wed, 7 Jun 2017 02:59:48 -0400 Received: from mail-pg0-f68.google.com ([74.125.83.68]:35822 "EHLO mail-pg0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751584AbdFGG7r (ORCPT ); Wed, 7 Jun 2017 02:59:47 -0400 Received: by mail-pg0-f68.google.com with SMTP id f127so635035pgc.2; Tue, 06 Jun 2017 23:59:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=0LtMi+8JZLpoLdp9SEzPvmL5sRYb/2mJib/9rElKBbw=; b=cGYoi7OqZ+iAQfq1i3xw24btZimJeLcFntHGBrqwg9UNo3II4Dvg1spxZcPj9N/RJF yiiJAobXKT8UZwq4P1q7Fo7CgLv+/NGHPlo02TZsHzLDJsWdg1Nk0OwYDNt8pfBpjDAl ra55RLpHm2F3kOXlOuJ790l/fZ++ZwgDj2vBX+p7d5xX6vH79Giiv7wwxDqU6o0BKCks aiyrg43A+KnUnDCdw9X9SBi0aPHuAmXi6iJHwusdeLtP5sQ6V0anHy9KTnonyYxpe2tN gurj4S22lB1ROXi0HaGKXgLGfz/Zm5KDCT1pwfU1qf5PDG6Rt/728ObsaTYrQ1oesXO3 3Mug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=0LtMi+8JZLpoLdp9SEzPvmL5sRYb/2mJib/9rElKBbw=; b=QUo0PvODPwcIDreD+f0+08gjVWzYQpHt3IPfLMLX5k8LKQTa5O3V/IZw9ZfWLDoiAj GYdCDj24AFsdp5Db/XK63LZtSgRqT5e875bA2Brux01tXHNFmTWomgt9RpNY4V3nuF1b Ye0tQub5wUlxucotLcWmWTPa9/QIkNEqv23VEEwL8xMj68HWeyjyRQ3HATyRl/tPUHwO avtj3f4EiLfbMsOGeo9qmmwwFmaAFbMcr9KJ5ya87s23odIpF88ttoqWcajnpIeU5htl wTujS0FdLuWMSJND0D9+dzB5URl52e0YpVNxIq8JE216IN2MbzDB+Lxq0VWutbH//u3D vRlg== X-Gm-Message-State: AODbwcAoJt3S7TGR6Dz9JLd5Ep8z8zox+iJiVsz4kMWe7vCnhY5qjKRc 82dQeyUFetlBpA== X-Received: by 10.98.201.15 with SMTP id k15mr29934320pfg.14.1496818786706; Tue, 06 Jun 2017 23:59:46 -0700 (PDT) Received: from dtor-ws.mtv.corp.google.com ([172.22.152.34]) by smtp.gmail.com with ESMTPSA id r86sm1873184pfi.77.2017.06.06.23.59.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 06 Jun 2017 23:59:46 -0700 (PDT) From: Dmitry Torokhov To: Jiri Kosina , Benjamin Tissoires Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman Subject: [PATCH v2 7/8] greybus: hid: remove custom locking from gb_hid_open/close Date: Tue, 6 Jun 2017 23:59:37 -0700 Message-Id: <20170607065938.33332-8-dmitry.torokhov@gmail.com> X-Mailer: git-send-email 2.13.0.506.g27d5fe0cd-goog In-Reply-To: <20170607065938.33332-1-dmitry.torokhov@gmail.com> References: <20170607065938.33332-1-dmitry.torokhov@gmail.com> Sender: linux-input-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Now that HID core enforces serialization of transport driver open/close calls we can remove custom locking from greybus hid driver. Signed-off-by: Dmitry Torokhov Acked-by: Greg Kroah-Hartman Acked-by: Viresh Kumar --- drivers/staging/greybus/hid.c | 43 ++++++++++++++----------------------------- 1 file changed, 14 insertions(+), 29 deletions(-) diff --git a/drivers/staging/greybus/hid.c b/drivers/staging/greybus/hid.c index 730d746fc4c2..465101bbab69 100644 --- a/drivers/staging/greybus/hid.c +++ b/drivers/staging/greybus/hid.c @@ -32,8 +32,6 @@ struct gb_hid { char *inbuf; }; -static DEFINE_MUTEX(gb_hid_open_mutex); - /* Routines to get controller's information over greybus */ /* Operations performed on greybus */ @@ -346,19 +344,14 @@ static void gb_hid_stop(struct hid_device *hid) static int gb_hid_open(struct hid_device *hid) { struct gb_hid *ghid = hid->driver_data; - int ret = 0; - - mutex_lock(&gb_hid_open_mutex); - if (!hid->open++) { - ret = gb_hid_set_power(ghid, GB_HID_TYPE_PWR_ON); - if (ret < 0) - hid->open--; - else - set_bit(GB_HID_STARTED, &ghid->flags); - } - mutex_unlock(&gb_hid_open_mutex); + int ret; - return ret; + ret = gb_hid_set_power(ghid, GB_HID_TYPE_PWR_ON); + if (ret < 0) + return ret; + + set_bit(GB_HID_STARTED, &ghid->flags); + return 0; } static void gb_hid_close(struct hid_device *hid) @@ -366,21 +359,13 @@ static void gb_hid_close(struct hid_device *hid) struct gb_hid *ghid = hid->driver_data; int ret; - /* - * Protecting hid->open to make sure we don't restart data acquistion - * due to a resumption we no longer care about.. - */ - mutex_lock(&gb_hid_open_mutex); - if (!--hid->open) { - clear_bit(GB_HID_STARTED, &ghid->flags); - - /* Save some power */ - ret = gb_hid_set_power(ghid, GB_HID_TYPE_PWR_OFF); - if (ret) - dev_err(&ghid->connection->bundle->dev, - "failed to power off (%d)\n", ret); - } - mutex_unlock(&gb_hid_open_mutex); + clear_bit(GB_HID_STARTED, &ghid->flags); + + /* Save some power */ + ret = gb_hid_set_power(ghid, GB_HID_TYPE_PWR_OFF); + if (ret) + dev_err(&ghid->connection->bundle->dev, + "failed to power off (%d)\n", ret); } static int gb_hid_power(struct hid_device *hid, int lvl)