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

Commit 09f18afe authored by Johannes Berg's avatar Johannes Berg Committed by Wey-Yi Guy
Browse files

iwlagn: extend notification wait function



A notification wait function is called with the
command, but currently has no way of passing
data back to the caller -- fix that by adding a
void pointer to the function that can be used
between the caller and the function.

Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
parent 3e14c1fd
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -2256,11 +2256,14 @@ int iwl_dump_fh(struct iwl_priv *priv, char **buf, bool display)
/* notification wait support */
void iwlagn_init_notification_wait(struct iwl_priv *priv,
				   struct iwl_notification_wait *wait_entry,
				   u8 cmd,
				   void (*fn)(struct iwl_priv *priv,
					      struct iwl_rx_packet *pkt),
				   u8 cmd)
					      struct iwl_rx_packet *pkt,
					      void *data),
				   void *fn_data)
{
	wait_entry->fn = fn;
	wait_entry->fn_data = fn_data;
	wait_entry->cmd = cmd;
	wait_entry->triggered = false;

+3 −2
Original line number Diff line number Diff line
@@ -58,8 +58,9 @@ static int iwlagn_disable_pan(struct iwl_priv *priv,
	u8 old_dev_type = send->dev_type;
	int ret;

	iwlagn_init_notification_wait(priv, &disable_wait, NULL,
				      REPLY_WIPAN_DEACTIVATION_COMPLETE);
	iwlagn_init_notification_wait(priv, &disable_wait,
				      REPLY_WIPAN_DEACTIVATION_COMPLETE,
				      NULL, NULL);

	send->filter_flags &= ~RXON_FILTER_ASSOC_MSK;
	send->dev_type = RXON_DEV_TYPE_P2P;
+1 −1
Original line number Diff line number Diff line
@@ -769,7 +769,7 @@ static void iwl_rx_handle(struct iwl_priv *priv)
				if (w->cmd == pkt->hdr.cmd) {
					w->triggered = true;
					if (w->fn)
						w->fn(priv, pkt);
						w->fn(priv, pkt, w->fn_data);
				}
			}
			spin_unlock(&priv->_agn.notif_wait_lock);
+4 −2
Original line number Diff line number Diff line
@@ -338,9 +338,11 @@ void iwlcore_eeprom_release_semaphore(struct iwl_priv *priv);
void __acquires(wait_entry)
iwlagn_init_notification_wait(struct iwl_priv *priv,
			      struct iwl_notification_wait *wait_entry,
			      u8 cmd,
			      void (*fn)(struct iwl_priv *priv,
					 struct iwl_rx_packet *pkt),
			      u8 cmd);
					 struct iwl_rx_packet *pkt,
					 void *data),
			      void *fn_data);
signed long __releases(wait_entry)
iwlagn_wait_notification(struct iwl_priv *priv,
			 struct iwl_notification_wait *wait_entry,
+3 −1
Original line number Diff line number Diff line
@@ -1105,7 +1105,9 @@ struct iwl_force_reset {
struct iwl_notification_wait {
	struct list_head list;

	void (*fn)(struct iwl_priv *priv, struct iwl_rx_packet *pkt);
	void (*fn)(struct iwl_priv *priv, struct iwl_rx_packet *pkt,
		   void *data);
	void *fn_data;

	u8 cmd;
	bool triggered;