aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorVladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>2013-01-28 11:31:04 -0500
committerJohn W. Linville <linville@tuxdriver.com>2013-01-30 15:07:16 -0500
commit56f004b4672972b6c936573eca835ed90787097a (patch)
treec2240917e77b974628b8083ac78f8218c1910460 /drivers
parentb98917d742bcf519b15894e78c17f2eb287b3584 (diff)
wil6210: Separate common code for mbox regs caching to function
Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/ath/wil6210/main.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/drivers/net/wireless/ath/wil6210/main.c b/drivers/net/wireless/ath/wil6210/main.c
index 3e9a71f125be..4c1533088fe5 100644
--- a/drivers/net/wireless/ath/wil6210/main.c
+++ b/drivers/net/wireless/ath/wil6210/main.c
@@ -109,6 +109,15 @@ static void wil_connect_timer_fn(ulong x)
109 schedule_work(&wil->disconnect_worker); 109 schedule_work(&wil->disconnect_worker);
110} 110}
111 111
112static void wil_cache_mbox_regs(struct wil6210_priv *wil)
113{
114 /* make shadow copy of registers that should not change on run time */
115 wil_memcpy_fromio_32(&wil->mbox_ctl, wil->csr + HOST_MBOX,
116 sizeof(struct wil6210_mbox_ctl));
117 wil_mbox_ring_le2cpus(&wil->mbox_ctl.rx);
118 wil_mbox_ring_le2cpus(&wil->mbox_ctl.tx);
119}
120
112int wil_priv_init(struct wil6210_priv *wil) 121int wil_priv_init(struct wil6210_priv *wil)
113{ 122{
114 wil_dbg_MISC(wil, "%s()\n", __func__); 123 wil_dbg_MISC(wil, "%s()\n", __func__);
@@ -138,11 +147,7 @@ int wil_priv_init(struct wil6210_priv *wil)
138 return -EAGAIN; 147 return -EAGAIN;
139 } 148 }
140 149
141 /* make shadow copy of registers that should not change on run time */ 150 wil_cache_mbox_regs(wil);
142 wil_memcpy_fromio_32(&wil->mbox_ctl, wil->csr + HOST_MBOX,
143 sizeof(struct wil6210_mbox_ctl));
144 wil_mbox_ring_le2cpus(&wil->mbox_ctl.rx);
145 wil_mbox_ring_le2cpus(&wil->mbox_ctl.tx);
146 151
147 return 0; 152 return 0;
148} 153}
@@ -260,11 +265,7 @@ int wil_reset(struct wil6210_priv *wil)
260 wil->pending_connect_cid = -1; 265 wil->pending_connect_cid = -1;
261 INIT_COMPLETION(wil->wmi_ready); 266 INIT_COMPLETION(wil->wmi_ready);
262 267
263 /* make shadow copy of registers that should not change on run time */ 268 wil_cache_mbox_regs(wil);
264 wil_memcpy_fromio_32(&wil->mbox_ctl, wil->csr + HOST_MBOX,
265 sizeof(struct wil6210_mbox_ctl));
266 wil_mbox_ring_le2cpus(&wil->mbox_ctl.rx);
267 wil_mbox_ring_le2cpus(&wil->mbox_ctl.tx);
268 269
269 /* TODO: release MAC reset */ 270 /* TODO: release MAC reset */
270 wil6210_enable_irq(wil); 271 wil6210_enable_irq(wil);