Lines Matching refs:sdio

18 #include "sdio.h"
37 struct mt76_sdio *sdio = &dev->sdio;
48 sdio->sched.pse_mcu_quota += pse_mcu_quota;
49 if (sdio->pse_mcu_quota_max &&
50 sdio->sched.pse_mcu_quota > sdio->pse_mcu_quota_max) {
51 sdio->sched.pse_mcu_quota = sdio->pse_mcu_quota_max;
53 sdio->sched.pse_data_quota += pse_data_quota;
54 sdio->sched.ple_data_quota += ple_data_quota;
89 struct mt76_sdio *sdio = &dev->sdio;
100 if (len > sdio->func->cur_blksize)
101 len = roundup(len, sdio->func->cur_blksize);
109 sdio_claim_host(sdio->func);
110 err = sdio_readsb(sdio->func, buf, MCR_WRDR(qid), len);
111 sdio_release_host(sdio->func);
114 dev_err(dev->dev, "sdio read data failed:%d\n", err);
155 struct mt76_sdio *sdio = &dev->sdio;
159 ret = sdio->parse_irq(dev, &intr);
168 mt76_worker_schedule(&sdio->net_worker);
176 mt76_worker_schedule(&sdio->net_worker);
187 mt76s_tx_pick_quota(struct mt76_sdio *sdio, bool mcu, int buf_sz,
192 pse_sz = DIV_ROUND_UP(buf_sz + sdio->sched.deficit,
193 sdio->sched.pse_page_size);
195 if (mcu && sdio->hw_ver == MT76_CONNAC2_SDIO)
199 if (sdio->sched.pse_mcu_quota < *pse_size + pse_sz)
202 if (sdio->sched.pse_data_quota < *pse_size + pse_sz ||
203 sdio->sched.ple_data_quota < *ple_size + 1)
214 mt76s_tx_update_quota(struct mt76_sdio *sdio, bool mcu, int pse_size,
218 sdio->sched.pse_mcu_quota -= pse_size;
220 sdio->sched.pse_data_quota -= pse_size;
221 sdio->sched.ple_data_quota -= ple_size;
227 struct mt76_sdio *sdio = &dev->sdio;
230 if (len > sdio->func->cur_blksize)
231 len = roundup(len, sdio->func->cur_blksize);
233 sdio_claim_host(sdio->func);
234 err = sdio_writesb(sdio->func, MCR_WTDR1, data, len);
235 sdio_release_host(sdio->func);
238 dev_err(dev->dev, "sdio write failed: %d\n", err);
247 struct mt76_sdio *sdio = &dev->sdio;
262 sdio->func->cur_blksize));
274 if (len + e->skb->len + pad + 4 > dev->sdio.xmit_buf_sz)
277 if (mt76s_tx_pick_quota(sdio, mcu, e->buf_sz, &pse_sz,
281 memcpy(sdio->xmit_buf + len, e->skb->data, skb_headlen(e->skb));
286 memcpy(sdio->xmit_buf + len, iter->data, iter->len);
292 memset(sdio->xmit_buf + len, 0, pad);
301 memset(sdio->xmit_buf + len, 0, 4);
302 err = __mt76s_xmit_queue(dev, sdio->xmit_buf, len + 4);
306 mt76s_tx_update_quota(sdio, mcu, pse_sz, ple_sz);
308 mt76_worker_schedule(&sdio->status_worker);
313 void mt76s_txrx_worker(struct mt76_sdio *sdio)
315 struct mt76_dev *dev = container_of(sdio, struct mt76_dev, sdio);
319 sdio_claim_host(sdio->func);
320 sdio_writel(sdio->func, WHLPCR_INT_EN_CLR, MCR_WHLPCR, NULL);
321 sdio_release_host(sdio->func);
346 wake_up(&sdio->wait);
351 sdio_claim_host(sdio->func);
352 sdio_writel(sdio->func, WHLPCR_INT_EN_SET, MCR_WHLPCR, NULL);
353 sdio_release_host(sdio->func);
360 struct mt76_sdio *sdio = &dev->sdio;
366 sdio_writel(sdio->func, WHLPCR_INT_EN_CLR, MCR_WHLPCR, NULL);
367 mt76_worker_schedule(&sdio->txrx_worker);