static void wil_connect_worker(struct work_struct *work) { int rc; struct wil6210_priv *wil = container_of(work, struct wil6210_priv, connect_worker); int cid = wil->pending_connect_cid; int tid = wil->tid_to_use & 0xf; int ringid = wil_find_free_vring(wil); if (cid < 0) { wil_err(wil, "No connection pending\n"); return; } wil_dbg_wmi(wil, "Configure for connection CID %d\n", cid); rc = wil_vring_init_tx(wil, ringid, WIL6210_TX_RING_SIZE, cid, tid); wil->pending_connect_cid = -1; if (rc == 0) { wil->sta[cid].status = wil_sta_connected; wil_link_on(wil); } else { wil->sta[cid].status = wil_sta_unused; } }
static void wil_connect_worker(struct work_struct *work) { int rc; struct wil6210_priv *wil = container_of(work, struct wil6210_priv, connect_worker); int cid = wil->pending_connect_cid; if (cid < 0) { wil_err(wil, "No connection pending\n"); return; } wil_dbg_wmi(wil, "Configure for connection CID %d\n", cid); rc = wil_vring_init_tx(wil, 0, WIL6210_TX_RING_SIZE, cid, 0); wil->pending_connect_cid = -1; if (rc == 0) wil_link_on(wil); }