Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d9d2401f authored by Dmitry Torokhov's avatar Dmitry Torokhov Committed by Jiri Kosina
Browse files

greybus: hid: remove custom locking from gb_hid_open/close



Now that HID core enforces serialization of transport driver open/close
calls we can remove custom locking from greybus hid driver.

Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
Reviewed-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent e399396a
Loading
Loading
Loading
Loading
+14 −29
Original line number Diff line number Diff line
@@ -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;
	int ret;

	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);

		return ret;

	set_bit(GB_HID_STARTED, &ghid->flags);
	return 0;
}

static void gb_hid_close(struct hid_device *hid)
@@ -366,12 +359,6 @@ 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 */
@@ -380,8 +367,6 @@ static void gb_hid_close(struct hid_device *hid)
		dev_err(&ghid->connection->bundle->dev,
			"failed to power off (%d)\n", ret);
}
	mutex_unlock(&gb_hid_open_mutex);
}

static int gb_hid_power(struct hid_device *hid, int lvl)
{