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

Commit b8bedefd authored by Luis Carlos Cobo Rus's avatar Luis Carlos Cobo Rus Committed by John W. Linville
Browse files

[PATCH] libertas: pull current channel from firmware on mesh autostart

parent 717c9339
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -200,6 +200,14 @@ static int update_channel(wlan_private * priv)
				    cmd_option_waitforrsp, 0, NULL);
}

void libertas_sync_channel(struct work_struct *work)
{
	wlan_private *priv = container_of(work, wlan_private, sync_channel);

	if (update_channel(priv) != 0)
		lbs_pr_info("Channel synchronization failed.");
}

static int assoc_helper_channel(wlan_private *priv,
                                struct assoc_request * assoc_req)
{
+2 −0
Original line number Diff line number Diff line
@@ -9,6 +9,8 @@ void libertas_association_worker(struct work_struct *work);

struct assoc_request * wlan_get_association_request(wlan_adapter *adapter);

void libertas_sync_channel(struct work_struct *work);

#define ASSOC_DELAY (HZ / 2)
static inline void wlan_postpone_association_work(wlan_private *priv)
{
+1 −0
Original line number Diff line number Diff line
@@ -987,6 +987,7 @@ int libertas_process_event(wlan_private * priv)
			netif_carrier_on(priv->mesh_dev) ;
		}
		adapter->mode = IW_MODE_ADHOC ;
		schedule_work(&priv->sync_channel);
		break;

	default:
+1 −0
Original line number Diff line number Diff line
@@ -150,6 +150,7 @@ struct _wlan_private {

	struct delayed_work assoc_work;
	struct workqueue_struct *assoc_thread;
	struct work_struct sync_channel;

	/** Hardware access */
	int (*hw_register_dev) (wlan_private * priv);
+1 −0
Original line number Diff line number Diff line
@@ -847,6 +847,7 @@ int libertas_activate_card(wlan_private *priv, char *fw_name)
	priv->assoc_thread =
		create_singlethread_workqueue("libertas_assoc");
	INIT_DELAYED_WORK(&priv->assoc_work, libertas_association_worker);
	INIT_WORK(&priv->sync_channel, libertas_sync_channel);

	/*
	 * Register the device. Fillup the private data structure with