Lines Matching refs:cb
502 struct cb { struct
524 struct cb *next, *prev; argument
584 struct cb *cbs;
585 struct cb *cb_to_use;
586 struct cb *cb_to_send;
587 struct cb *cb_to_clean;
873 int (*cb_prepare)(struct nic *, struct cb *, struct sk_buff *)) in e100_exec_cb() argument
875 struct cb *cb; in e100_exec_cb() local
886 cb = nic->cb_to_use; in e100_exec_cb()
887 nic->cb_to_use = cb->next; in e100_exec_cb()
889 cb->skb = skb; in e100_exec_cb()
891 err = cb_prepare(nic, cb, skb); in e100_exec_cb()
901 cb->command |= cpu_to_le16(cb_s); in e100_exec_cb()
903 cb->prev->command &= cpu_to_le16(~cb_s); in e100_exec_cb()
1097 static int e100_configure(struct nic *nic, struct cb *cb, struct sk_buff *skb) in e100_configure() argument
1099 struct config *config = &cb->u.config; in e100_configure()
1103 cb->command = cpu_to_le16(cb_config); in e100_configure()
1335 static int e100_setup_ucode(struct nic *nic, struct cb *cb, in e100_setup_ucode() argument
1343 cb->skb = NULL; in e100_setup_ucode()
1346 memcpy(cb->u.ucode, fw->data, UCODE_SIZE * 4); in e100_setup_ucode()
1354 cb->u.ucode[timer] &= cpu_to_le32(0xFFFF0000); in e100_setup_ucode()
1355 cb->u.ucode[timer] |= cpu_to_le32(INTDELAY); in e100_setup_ucode()
1356 cb->u.ucode[bundle] &= cpu_to_le32(0xFFFF0000); in e100_setup_ucode()
1357 cb->u.ucode[bundle] |= cpu_to_le32(BUNDLEMAX); in e100_setup_ucode()
1358 cb->u.ucode[min_size] &= cpu_to_le32(0xFFFF0000); in e100_setup_ucode()
1359 cb->u.ucode[min_size] |= cpu_to_le32((BUNDLESMALL) ? 0xFFFF : 0xFF80); in e100_setup_ucode()
1361 cb->command = cpu_to_le16(cb_ucode | cb_el); in e100_setup_ucode()
1369 struct cb *cb = nic->cb_to_clean; in e100_load_ucode_wait() local
1388 while (!(cb->status & cpu_to_le16(cb_complete))) { in e100_load_ucode_wait()
1397 if (!counter || !(cb->status & cpu_to_le16(cb_ok))) { in e100_load_ucode_wait()
1405 static int e100_setup_iaaddr(struct nic *nic, struct cb *cb, in e100_setup_iaaddr() argument
1408 cb->command = cpu_to_le16(cb_iaaddr); in e100_setup_iaaddr()
1409 memcpy(cb->u.iaaddr, nic->netdev->dev_addr, ETH_ALEN); in e100_setup_iaaddr()
1413 static int e100_dump(struct nic *nic, struct cb *cb, struct sk_buff *skb) in e100_dump() argument
1415 cb->command = cpu_to_le16(cb_dump); in e100_dump()
1416 cb->u.dump_buffer_addr = cpu_to_le32(nic->dma_addr + in e100_dump()
1588 static int e100_multi(struct nic *nic, struct cb *cb, struct sk_buff *skb) in e100_multi() argument
1594 cb->command = cpu_to_le16(cb_multi); in e100_multi()
1595 cb->u.multi.count = cpu_to_le16(count * ETH_ALEN); in e100_multi()
1600 memcpy(&cb->u.multi.addr[i++ * ETH_ALEN], &ha->addr, in e100_multi()
1764 static int e100_xmit_prepare(struct nic *nic, struct cb *cb, in e100_xmit_prepare() argument
1768 cb->command = nic->tx_command; in e100_xmit_prepare()
1784 cb->command |= cpu_to_le16(cb_tx_nc); in e100_xmit_prepare()
1786 cb->command &= ~cpu_to_le16(cb_tx_nc); in e100_xmit_prepare()
1790 cb->command |= cpu_to_le16(cb_i); in e100_xmit_prepare()
1791 cb->u.tcb.tbd_array = cb->dma_addr + offsetof(struct cb, u.tcb.tbd); in e100_xmit_prepare()
1792 cb->u.tcb.tcb_byte_count = 0; in e100_xmit_prepare()
1793 cb->u.tcb.threshold = nic->tx_threshold; in e100_xmit_prepare()
1794 cb->u.tcb.tbd_count = 1; in e100_xmit_prepare()
1795 cb->u.tcb.tbd.buf_addr = cpu_to_le32(dma_addr); in e100_xmit_prepare()
1796 cb->u.tcb.tbd.size = cpu_to_le16(skb->len); in e100_xmit_prepare()
1840 struct cb *cb; in e100_tx_clean() local
1846 for (cb = nic->cb_to_clean; in e100_tx_clean()
1847 cb->status & cpu_to_le16(cb_complete); in e100_tx_clean()
1848 cb = nic->cb_to_clean = cb->next) { in e100_tx_clean()
1852 (int)(((void*)cb - (void*)nic->cbs)/sizeof(struct cb)), in e100_tx_clean()
1853 cb->status); in e100_tx_clean()
1855 if (likely(cb->skb != NULL)) { in e100_tx_clean()
1857 dev->stats.tx_bytes += cb->skb->len; in e100_tx_clean()
1860 le32_to_cpu(cb->u.tcb.tbd.buf_addr), in e100_tx_clean()
1861 le16_to_cpu(cb->u.tcb.tbd.size), in e100_tx_clean()
1863 dev_kfree_skb_any(cb->skb); in e100_tx_clean()
1864 cb->skb = NULL; in e100_tx_clean()
1867 cb->status = 0; in e100_tx_clean()
1884 struct cb *cb = nic->cb_to_clean; in e100_clean_cbs() local
1885 if (cb->skb) { in e100_clean_cbs()
1887 le32_to_cpu(cb->u.tcb.tbd.buf_addr), in e100_clean_cbs()
1888 le16_to_cpu(cb->u.tcb.tbd.size), in e100_clean_cbs()
1890 dev_kfree_skb(cb->skb); in e100_clean_cbs()
1906 struct cb *cb; in e100_alloc_cbs() local
1917 memset(nic->cbs, 0, count * sizeof(struct cb)); in e100_alloc_cbs()
1919 for (cb = nic->cbs, i = 0; i < count; cb++, i++) { in e100_alloc_cbs()
1920 cb->next = (i + 1 < count) ? cb + 1 : nic->cbs; in e100_alloc_cbs()
1921 cb->prev = (i == 0) ? nic->cbs + count - 1 : cb - 1; in e100_alloc_cbs()
1923 cb->dma_addr = nic->cbs_dma_addr + i * sizeof(struct cb); in e100_alloc_cbs()
1924 cb->link = cpu_to_le32(nic->cbs_dma_addr + in e100_alloc_cbs()
1925 ((i+1) % count) * sizeof(struct cb)); in e100_alloc_cbs()
2970 nic->params.cbs.max * sizeof(struct cb), in e100_probe()