All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Wagner <wagi@monom.org>
To: Bastien Nocera <hadess@hadess.net>,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Johannes Berg <johannes.berg@intel.com>,
	Kalle Valo <kvalo@codeaurora.org>,
	Ohad Ben-Cohen <ohad@wizery.com>
Cc: linux-input@vger.kernel.org, linux-kselftest@vger.kernel.org,
	linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org,
	Daniel Wagner <daniel.wagner@bmw-carit.de>
Subject: [RFC v0 5/8] ath9k_htc: use firmware_stat instead of completion
Date: Thu, 28 Jul 2016 09:55:09 +0200	[thread overview]
Message-ID: <1469692512-16863-6-git-send-email-wagi@monom.org> (raw)
In-Reply-To: <1469692512-16863-1-git-send-email-wagi@monom.org>

From: Daniel Wagner <daniel.wagner@bmw-carit.de>

Loading firmware is an operation many drivers implement in various ways
around the completion API. And most of them do it almost in the same
way. Let's reuse the firmware_stat API which is used also by the
firmware_class loader. Apart of streamlining the firmware loading states
we also document it slightly better.

Signed-off-by: Daniel Wagner <daniel.wagner@bmw-carit.de>
---
 drivers/net/wireless/ath/ath9k/hif_usb.c | 10 +++++-----
 drivers/net/wireless/ath/ath9k/hif_usb.h |  2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.c b/drivers/net/wireless/ath/ath9k/hif_usb.c
index e1c338c..0a05d68 100644
--- a/drivers/net/wireless/ath/ath9k/hif_usb.c
+++ b/drivers/net/wireless/ath/ath9k/hif_usb.c
@@ -1067,7 +1067,7 @@ static void ath9k_hif_usb_firmware_fail(struct hif_device_usb *hif_dev)
 	struct device *dev = &hif_dev->udev->dev;
 	struct device *parent = dev->parent;
 
-	complete_all(&hif_dev->fw_done);
+	fw_loading_abort(hif_dev->fw_st);
 
 	if (parent)
 		device_lock(parent);
@@ -1192,7 +1192,7 @@ static void ath9k_hif_usb_firmware_cb(const struct firmware *fw, void *context)
 
 	release_firmware(fw);
 	hif_dev->flags |= HIF_USB_READY;
-	complete_all(&hif_dev->fw_done);
+	fw_loading_done(hif_dev->fw_st);
 
 	return;
 
@@ -1287,7 +1287,7 @@ static int ath9k_hif_usb_probe(struct usb_interface *interface,
 #endif
 	usb_set_intfdata(interface, hif_dev);
 
-	init_completion(&hif_dev->fw_done);
+	firmware_stat_init(&hif_dev->fw_st);
 
 	ret = ath9k_hif_request_firmware(hif_dev, true);
 	if (ret)
@@ -1330,7 +1330,7 @@ static void ath9k_hif_usb_disconnect(struct usb_interface *interface)
 	if (!hif_dev)
 		return;
 
-	wait_for_completion(&hif_dev->fw_done);
+	fw_loading_wait(hif_dev->fw_st);
 
 	if (hif_dev->flags & HIF_USB_READY) {
 		ath9k_htc_hw_deinit(hif_dev->htc_handle, unplugged);
@@ -1363,7 +1363,7 @@ static int ath9k_hif_usb_suspend(struct usb_interface *interface,
 	if (!(hif_dev->flags & HIF_USB_START))
 		ath9k_htc_suspend(hif_dev->htc_handle);
 
-	wait_for_completion(&hif_dev->fw_done);
+	fw_loading_wait(hif_dev->fw_st);
 
 	if (hif_dev->flags & HIF_USB_READY)
 		ath9k_hif_usb_dealloc_urbs(hif_dev);
diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.h b/drivers/net/wireless/ath/ath9k/hif_usb.h
index 7c2ef7e..0af9fe4 100644
--- a/drivers/net/wireless/ath/ath9k/hif_usb.h
+++ b/drivers/net/wireless/ath/ath9k/hif_usb.h
@@ -111,7 +111,7 @@ struct hif_device_usb {
 	const struct usb_device_id *usb_device_id;
 	const void *fw_data;
 	size_t fw_size;
-	struct completion fw_done;
+	struct firmware_stat fw_st;
 	struct htc_target *htc_handle;
 	struct hif_usb_tx tx;
 	struct usb_anchor regout_submitted;
-- 
2.7.4

  parent reply	other threads:[~2016-07-28  8:05 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-28  7:55 [RFC v0 0/8] Reuse firmware loader helpers Daniel Wagner
2016-07-28  7:55 ` [RFC v0 1/8] selftests: firmware: do not abort test too early Daniel Wagner
2016-07-28  7:55 ` [RFC v0 2/8] selftests: firmware: do not clutter output Daniel Wagner
2016-07-28  7:55 ` [RFC v0 3/8] firmware: Factor out firmware load helpers Daniel Wagner
2016-07-28 15:01   ` Dan Williams
2016-07-28 15:01     ` Dan Williams
2016-07-29  6:07     ` Daniel Wagner
2016-07-29  6:07       ` Daniel Wagner
2016-07-28 17:57   ` Dmitry Torokhov
2016-07-29  6:08     ` Daniel Wagner
2016-07-29  6:08       ` Daniel Wagner
2016-07-28  7:55 ` [RFC v0 4/8] Input: goodix: use firmware_stat instead of completion Daniel Wagner
2016-07-28 11:22   ` Bastien Nocera
2016-07-28 11:59     ` Daniel Wagner
2016-07-28 11:59       ` Daniel Wagner
2016-07-28 12:20       ` Bastien Nocera
2016-07-28 13:10         ` Daniel Wagner
2016-07-28 13:10           ` Daniel Wagner
2016-07-28  7:55 ` Daniel Wagner [this message]
2016-07-28  7:55 ` [RFC v0 6/8] remoteproc: " Daniel Wagner
2016-07-28  7:55 ` [RFC v0 7/8] Input: ims-pcu: " Daniel Wagner
2016-07-28 18:33   ` Dmitry Torokhov
2016-07-28 19:01     ` Bjorn Andersson
2016-07-29  6:13       ` Daniel Wagner
2016-07-29  6:13         ` Daniel Wagner
2016-07-30 12:42         ` Arend van Spriel
2016-07-30 16:58           ` Luis R. Rodriguez
2016-07-31  7:23             ` Dmitry Torokhov
2016-08-01 12:26               ` Daniel Wagner
2016-08-01 12:26                 ` Daniel Wagner
2016-08-01 19:44                 ` Luis R. Rodriguez
2016-08-01 19:44                   ` Luis R. Rodriguez
2016-08-02  5:49                   ` Daniel Wagner
2016-08-02  5:49                     ` Daniel Wagner
2016-08-02  6:34                     ` Luis R. Rodriguez
2016-08-02  6:53                       ` Daniel Wagner
2016-08-02  6:53                         ` Daniel Wagner
2016-08-02  7:41                         ` Luis R. Rodriguez
2016-08-02  7:41                           ` Luis R. Rodriguez
2016-08-03  6:57                           ` Daniel Wagner
2016-08-03  6:57                             ` Daniel Wagner
2016-08-03 15:55                             ` Luis R. Rodriguez
2016-08-03 15:55                               ` Luis R. Rodriguez
2016-08-03 16:18                               ` Dmitry Torokhov
2016-08-03 17:37                                 ` Luis R. Rodriguez
2016-08-03 18:40                               ` Luis R. Rodriguez
2016-08-03 18:40                                 ` Luis R. Rodriguez
2016-08-03 22:26                               ` Bjorn Andersson
2016-08-03  7:42                           ` Dmitry Torokhov
2016-08-03 11:43                             ` Arend van Spriel
2016-08-03 15:18                               ` Luis R. Rodriguez
2016-08-03 15:35                               ` Dmitry Torokhov
2016-08-03 20:42                                 ` Arend van Spriel
2016-08-03 20:42                                   ` Arend van Spriel
2016-08-03 16:03                             ` Luis R. Rodriguez
2016-08-03 17:39                           ` Bjorn Andersson
2016-08-03 17:39                             ` Bjorn Andersson
2016-08-03 18:08                             ` Luis R. Rodriguez
2016-08-01 19:36               ` Luis R. Rodriguez
2016-08-01 17:19             ` Bjorn Andersson
2016-08-01 19:56               ` Luis R. Rodriguez
2016-08-01 21:34               ` Dmitry Torokhov
2016-07-31  7:17           ` Dmitry Torokhov
2016-07-28  7:55 ` [RFC v0 8/8] iwl4965: " Daniel Wagner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1469692512-16863-6-git-send-email-wagi@monom.org \
    --to=wagi@monom.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=daniel.wagner@bmw-carit.de \
    --cc=dmitry.torokhov@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hadess@hadess.net \
    --cc=johannes.berg@intel.com \
    --cc=kvalo@codeaurora.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=ohad@wizery.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.