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

Commit 56f004b4 authored by Vladimir Kondratiev's avatar Vladimir Kondratiev Committed by John W. Linville
Browse files

wil6210: Separate common code for mbox regs caching to function

parent b98917d7
Loading
Loading
Loading
Loading
+11 −10
Original line number Diff line number Diff line
@@ -109,6 +109,15 @@ static void wil_connect_timer_fn(ulong x)
	schedule_work(&wil->disconnect_worker);
}

static void wil_cache_mbox_regs(struct wil6210_priv *wil)
{
	/* make shadow copy of registers that should not change on run time */
	wil_memcpy_fromio_32(&wil->mbox_ctl, wil->csr + HOST_MBOX,
			     sizeof(struct wil6210_mbox_ctl));
	wil_mbox_ring_le2cpus(&wil->mbox_ctl.rx);
	wil_mbox_ring_le2cpus(&wil->mbox_ctl.tx);
}

int wil_priv_init(struct wil6210_priv *wil)
{
	wil_dbg_MISC(wil, "%s()\n", __func__);
@@ -138,11 +147,7 @@ int wil_priv_init(struct wil6210_priv *wil)
		return -EAGAIN;
	}

	/* make shadow copy of registers that should not change on run time */
	wil_memcpy_fromio_32(&wil->mbox_ctl, wil->csr + HOST_MBOX,
			     sizeof(struct wil6210_mbox_ctl));
	wil_mbox_ring_le2cpus(&wil->mbox_ctl.rx);
	wil_mbox_ring_le2cpus(&wil->mbox_ctl.tx);
	wil_cache_mbox_regs(wil);

	return 0;
}
@@ -260,11 +265,7 @@ int wil_reset(struct wil6210_priv *wil)
	wil->pending_connect_cid = -1;
	INIT_COMPLETION(wil->wmi_ready);

	/* make shadow copy of registers that should not change on run time */
	wil_memcpy_fromio_32(&wil->mbox_ctl, wil->csr + HOST_MBOX,
			     sizeof(struct wil6210_mbox_ctl));
	wil_mbox_ring_le2cpus(&wil->mbox_ctl.rx);
	wil_mbox_ring_le2cpus(&wil->mbox_ctl.tx);
	wil_cache_mbox_regs(wil);

	/* TODO: release MAC reset */
	wil6210_enable_irq(wil);