geth 107 drivers/net/ethernet/cortina/gemini.c struct gemini_ethernet *geth; geth 553 drivers/net/ethernet/cortina/gemini.c struct gemini_ethernet *geth = port->geth; geth 569 drivers/net/ethernet/cortina/gemini.c desc_ring = dma_alloc_coherent(geth->dev, len * sizeof(*desc_ring), geth 578 drivers/net/ethernet/cortina/gemini.c dev_warn(geth->dev, "TX queue base is not aligned\n"); geth 579 drivers/net/ethernet/cortina/gemini.c dma_free_coherent(geth->dev, len * sizeof(*desc_ring), geth 612 drivers/net/ethernet/cortina/gemini.c struct gemini_ethernet *geth = port->geth; geth 635 drivers/net/ethernet/cortina/gemini.c dma_unmap_single(geth->dev, mapping, geth 683 drivers/net/ethernet/cortina/gemini.c struct gemini_ethernet *geth = port->geth; geth 700 drivers/net/ethernet/cortina/gemini.c dma_free_coherent(geth->dev, geth 708 drivers/net/ethernet/cortina/gemini.c struct gemini_ethernet *geth = port->geth; geth 711 drivers/net/ethernet/cortina/gemini.c qhdr = geth->base + TOE_DEFAULT_Q_HDR_BASE(netdev->dev_id); geth 715 drivers/net/ethernet/cortina/gemini.c port->rxq_ring = dma_alloc_coherent(geth->dev, geth 721 drivers/net/ethernet/cortina/gemini.c dev_warn(geth->dev, "RX queue base is not aligned\n"); geth 731 drivers/net/ethernet/cortina/gemini.c gmac_get_queue_page(struct gemini_ethernet *geth, geth 742 drivers/net/ethernet/cortina/gemini.c if (!geth->freeq_pages) { geth 743 drivers/net/ethernet/cortina/gemini.c dev_err(geth->dev, "try to get page with no page list\n"); geth 748 drivers/net/ethernet/cortina/gemini.c for (i = 0; i < geth->num_freeq_pages; i++) { geth 749 drivers/net/ethernet/cortina/gemini.c gpage = &geth->freeq_pages[i]; geth 760 drivers/net/ethernet/cortina/gemini.c struct gemini_ethernet *geth = port->geth; geth 770 drivers/net/ethernet/cortina/gemini.c qhdr = geth->base + geth 794 drivers/net/ethernet/cortina/gemini.c gpage = gmac_get_queue_page(geth, port, mapping + PAGE_SIZE); geth 796 drivers/net/ethernet/cortina/gemini.c dev_err(geth->dev, "could not find page\n"); geth 803 drivers/net/ethernet/cortina/gemini.c dma_free_coherent(geth->dev, sizeof(*port->rxq_ring) << port->rxq_order, geth 807 drivers/net/ethernet/cortina/gemini.c static struct page *geth_freeq_alloc_map_page(struct gemini_ethernet *geth, geth 823 drivers/net/ethernet/cortina/gemini.c mapping = dma_map_single(geth->dev, page_address(page), geth 825 drivers/net/ethernet/cortina/gemini.c if (dma_mapping_error(geth->dev, mapping)) { geth 836 drivers/net/ethernet/cortina/gemini.c frag_len = 1 << geth->freeq_frag_order; /* Usually 2048 */ geth 837 drivers/net/ethernet/cortina/gemini.c fpp_order = PAGE_SHIFT - geth->freeq_frag_order; geth 838 drivers/net/ethernet/cortina/gemini.c freeq_entry = geth->freeq_ring + (pn << fpp_order); geth 839 drivers/net/ethernet/cortina/gemini.c dev_dbg(geth->dev, "allocate page %d fragment length %d fragments per page %d, freeq entry %p\n", geth 848 drivers/net/ethernet/cortina/gemini.c gpage = &geth->freeq_pages[pn]; geth 850 drivers/net/ethernet/cortina/gemini.c mapping = geth->freeq_ring[pn << fpp_order].word2.buf_adr; geth 851 drivers/net/ethernet/cortina/gemini.c dma_unmap_single(geth->dev, mapping, frag_len, DMA_FROM_DEVICE); geth 859 drivers/net/ethernet/cortina/gemini.c dev_dbg(geth->dev, "page %d, DMA addr: %08x, page %p\n", geth 874 drivers/net/ethernet/cortina/gemini.c static unsigned int geth_fill_freeq(struct gemini_ethernet *geth, bool refill) geth 876 drivers/net/ethernet/cortina/gemini.c unsigned int fpp_order = PAGE_SHIFT - geth->freeq_frag_order; geth 884 drivers/net/ethernet/cortina/gemini.c m_pn = (1 << (geth->freeq_order - fpp_order)) - 1; geth 886 drivers/net/ethernet/cortina/gemini.c spin_lock_irqsave(&geth->freeq_lock, flags); geth 888 drivers/net/ethernet/cortina/gemini.c rw.bits32 = readl(geth->base + GLOBAL_SWFQ_RWPTR_REG); geth 898 drivers/net/ethernet/cortina/gemini.c gpage = &geth->freeq_pages[pn]; geth 901 drivers/net/ethernet/cortina/gemini.c dev_dbg(geth->dev, "fill entry %d page ref count %d add %d refs\n", geth 910 drivers/net/ethernet/cortina/gemini.c page = geth_freeq_alloc_map_page(geth, pn); geth 922 drivers/net/ethernet/cortina/gemini.c writew(pn << fpp_order, geth->base + GLOBAL_SWFQ_RWPTR_REG + 2); geth 924 drivers/net/ethernet/cortina/gemini.c spin_unlock_irqrestore(&geth->freeq_lock, flags); geth 929 drivers/net/ethernet/cortina/gemini.c static int geth_setup_freeq(struct gemini_ethernet *geth) geth 931 drivers/net/ethernet/cortina/gemini.c unsigned int fpp_order = PAGE_SHIFT - geth->freeq_frag_order; geth 932 drivers/net/ethernet/cortina/gemini.c unsigned int frag_len = 1 << geth->freeq_frag_order; geth 933 drivers/net/ethernet/cortina/gemini.c unsigned int len = 1 << geth->freeq_order; geth 940 drivers/net/ethernet/cortina/gemini.c geth->freeq_ring = dma_alloc_coherent(geth->dev, geth 941 drivers/net/ethernet/cortina/gemini.c sizeof(*geth->freeq_ring) << geth->freeq_order, geth 942 drivers/net/ethernet/cortina/gemini.c &geth->freeq_dma_base, GFP_KERNEL); geth 943 drivers/net/ethernet/cortina/gemini.c if (!geth->freeq_ring) geth 945 drivers/net/ethernet/cortina/gemini.c if (geth->freeq_dma_base & ~DMA_Q_BASE_MASK) { geth 946 drivers/net/ethernet/cortina/gemini.c dev_warn(geth->dev, "queue ring base is not aligned\n"); geth 951 drivers/net/ethernet/cortina/gemini.c geth->freeq_pages = kcalloc(pages, sizeof(*geth->freeq_pages), geth 953 drivers/net/ethernet/cortina/gemini.c if (!geth->freeq_pages) geth 955 drivers/net/ethernet/cortina/gemini.c geth->num_freeq_pages = pages; geth 957 drivers/net/ethernet/cortina/gemini.c dev_info(geth->dev, "allocate %d pages for queue\n", pages); geth 959 drivers/net/ethernet/cortina/gemini.c if (!geth_freeq_alloc_map_page(geth, pn)) geth 962 drivers/net/ethernet/cortina/gemini.c filled = geth_fill_freeq(geth, false); geth 966 drivers/net/ethernet/cortina/gemini.c qt.bits32 = readl(geth->base + GLOBAL_QUEUE_THRESHOLD_REG); geth 968 drivers/net/ethernet/cortina/gemini.c writel(qt.bits32, geth->base + GLOBAL_QUEUE_THRESHOLD_REG); geth 970 drivers/net/ethernet/cortina/gemini.c skbsz.bits.sw_skb_size = 1 << geth->freeq_frag_order; geth 971 drivers/net/ethernet/cortina/gemini.c writel(skbsz.bits32, geth->base + GLOBAL_DMA_SKB_SIZE_REG); geth 972 drivers/net/ethernet/cortina/gemini.c writel(geth->freeq_dma_base | geth->freeq_order, geth 973 drivers/net/ethernet/cortina/gemini.c geth->base + GLOBAL_SW_FREEQ_BASE_SIZE_REG); geth 983 drivers/net/ethernet/cortina/gemini.c mapping = geth->freeq_ring[pn << fpp_order].word2.buf_adr; geth 984 drivers/net/ethernet/cortina/gemini.c dma_unmap_single(geth->dev, mapping, frag_len, DMA_FROM_DEVICE); geth 985 drivers/net/ethernet/cortina/gemini.c gpage = &geth->freeq_pages[pn]; geth 989 drivers/net/ethernet/cortina/gemini.c kfree(geth->freeq_pages); geth 991 drivers/net/ethernet/cortina/gemini.c dma_free_coherent(geth->dev, geth 992 drivers/net/ethernet/cortina/gemini.c sizeof(*geth->freeq_ring) << geth->freeq_order, geth 993 drivers/net/ethernet/cortina/gemini.c geth->freeq_ring, geth->freeq_dma_base); geth 994 drivers/net/ethernet/cortina/gemini.c geth->freeq_ring = NULL; geth 1002 drivers/net/ethernet/cortina/gemini.c static void geth_cleanup_freeq(struct gemini_ethernet *geth) geth 1004 drivers/net/ethernet/cortina/gemini.c unsigned int fpp_order = PAGE_SHIFT - geth->freeq_frag_order; geth 1005 drivers/net/ethernet/cortina/gemini.c unsigned int frag_len = 1 << geth->freeq_frag_order; geth 1006 drivers/net/ethernet/cortina/gemini.c unsigned int len = 1 << geth->freeq_order; geth 1010 drivers/net/ethernet/cortina/gemini.c writew(readw(geth->base + GLOBAL_SWFQ_RWPTR_REG), geth 1011 drivers/net/ethernet/cortina/gemini.c geth->base + GLOBAL_SWFQ_RWPTR_REG + 2); geth 1012 drivers/net/ethernet/cortina/gemini.c writel(0, geth->base + GLOBAL_SW_FREEQ_BASE_SIZE_REG); geth 1018 drivers/net/ethernet/cortina/gemini.c mapping = geth->freeq_ring[pn << fpp_order].word2.buf_adr; geth 1019 drivers/net/ethernet/cortina/gemini.c dma_unmap_single(geth->dev, mapping, frag_len, DMA_FROM_DEVICE); geth 1021 drivers/net/ethernet/cortina/gemini.c gpage = &geth->freeq_pages[pn]; geth 1026 drivers/net/ethernet/cortina/gemini.c kfree(geth->freeq_pages); geth 1028 drivers/net/ethernet/cortina/gemini.c dma_free_coherent(geth->dev, geth 1029 drivers/net/ethernet/cortina/gemini.c sizeof(*geth->freeq_ring) << geth->freeq_order, geth 1030 drivers/net/ethernet/cortina/gemini.c geth->freeq_ring, geth->freeq_dma_base); geth 1044 drivers/net/ethernet/cortina/gemini.c struct gemini_ethernet *geth = port->geth; geth 1055 drivers/net/ethernet/cortina/gemini.c other_netdev = geth->port1->netdev; geth 1057 drivers/net/ethernet/cortina/gemini.c other_netdev = geth->port0->netdev; geth 1077 drivers/net/ethernet/cortina/gemini.c dev_dbg(geth->dev, "set shared queue to size %d order %d\n", geth 1079 drivers/net/ethernet/cortina/gemini.c if (geth->freeq_order == new_order) geth 1082 drivers/net/ethernet/cortina/gemini.c spin_lock_irqsave(&geth->irq_lock, flags); geth 1085 drivers/net/ethernet/cortina/gemini.c en = readl(geth->base + GLOBAL_INTERRUPT_ENABLE_4_REG); geth 1087 drivers/net/ethernet/cortina/gemini.c writel(en, geth->base + GLOBAL_INTERRUPT_ENABLE_4_REG); geth 1088 drivers/net/ethernet/cortina/gemini.c spin_unlock_irqrestore(&geth->irq_lock, flags); geth 1091 drivers/net/ethernet/cortina/gemini.c if (geth->freeq_ring) geth 1092 drivers/net/ethernet/cortina/gemini.c geth_cleanup_freeq(geth); geth 1095 drivers/net/ethernet/cortina/gemini.c geth->freeq_order = new_order; geth 1096 drivers/net/ethernet/cortina/gemini.c ret = geth_setup_freeq(geth); geth 1102 drivers/net/ethernet/cortina/gemini.c spin_lock_irqsave(&geth->irq_lock, flags); geth 1104 drivers/net/ethernet/cortina/gemini.c writel(en, geth->base + GLOBAL_INTERRUPT_ENABLE_4_REG); geth 1105 drivers/net/ethernet/cortina/gemini.c spin_unlock_irqrestore(&geth->irq_lock, flags); geth 1114 drivers/net/ethernet/cortina/gemini.c struct gemini_ethernet *geth = port->geth; geth 1122 drivers/net/ethernet/cortina/gemini.c writel(mask, geth->base + GLOBAL_INTERRUPT_STATUS_0_REG); geth 1124 drivers/net/ethernet/cortina/gemini.c val = readl(geth->base + GLOBAL_INTERRUPT_ENABLE_0_REG); geth 1126 drivers/net/ethernet/cortina/gemini.c writel(val, geth->base + GLOBAL_INTERRUPT_ENABLE_0_REG); geth 1144 drivers/net/ethernet/cortina/gemini.c struct gemini_ethernet *geth = port->geth; geth 1196 drivers/net/ethernet/cortina/gemini.c mapping = dma_map_single(geth->dev, buffer, buflen, geth 1198 drivers/net/ethernet/cortina/gemini.c if (dma_mapping_error(geth->dev, mapping)) geth 1221 drivers/net/ethernet/cortina/gemini.c dma_unmap_page(geth->dev, txq->ring[w].word2.buf_adr, geth 1310 drivers/net/ethernet/cortina/gemini.c struct gemini_ethernet *geth = port->geth; geth 1316 drivers/net/ethernet/cortina/gemini.c spin_lock_irqsave(&geth->irq_lock, flags); geth 1319 drivers/net/ethernet/cortina/gemini.c val = readl(geth->base + GLOBAL_INTERRUPT_ENABLE_0_REG); geth 1321 drivers/net/ethernet/cortina/gemini.c writel(val, geth->base + GLOBAL_INTERRUPT_ENABLE_0_REG); geth 1324 drivers/net/ethernet/cortina/gemini.c val = readl(geth->base + GLOBAL_INTERRUPT_ENABLE_1_REG); geth 1326 drivers/net/ethernet/cortina/gemini.c writel(val, geth->base + GLOBAL_INTERRUPT_ENABLE_1_REG); geth 1329 drivers/net/ethernet/cortina/gemini.c val = readl(geth->base + GLOBAL_INTERRUPT_ENABLE_4_REG); geth 1331 drivers/net/ethernet/cortina/gemini.c writel(val, geth->base + GLOBAL_INTERRUPT_ENABLE_4_REG); geth 1333 drivers/net/ethernet/cortina/gemini.c spin_unlock_irqrestore(&geth->irq_lock, flags); geth 1339 drivers/net/ethernet/cortina/gemini.c struct gemini_ethernet *geth = port->geth; geth 1345 drivers/net/ethernet/cortina/gemini.c spin_lock_irqsave(&geth->irq_lock, flags); geth 1348 drivers/net/ethernet/cortina/gemini.c val = readl(geth->base + GLOBAL_INTERRUPT_ENABLE_1_REG); geth 1350 drivers/net/ethernet/cortina/gemini.c writel(val, geth->base + GLOBAL_INTERRUPT_ENABLE_1_REG); geth 1352 drivers/net/ethernet/cortina/gemini.c spin_unlock_irqrestore(&geth->irq_lock, flags); geth 1399 drivers/net/ethernet/cortina/gemini.c struct gemini_ethernet *geth = port->geth; geth 1418 drivers/net/ethernet/cortina/gemini.c geth->base + GLOBAL_INTERRUPT_STATUS_1_REG); geth 1443 drivers/net/ethernet/cortina/gemini.c gpage = gmac_get_queue_page(geth, port, mapping + PAGE_SIZE); geth 1445 drivers/net/ethernet/cortina/gemini.c dev_err(geth->dev, "could not find mapping\n"); geth 1511 drivers/net/ethernet/cortina/gemini.c struct gemini_ethernet *geth = port->geth; geth 1515 drivers/net/ethernet/cortina/gemini.c freeq_threshold = 1 << (geth->freeq_order - 1); geth 1529 drivers/net/ethernet/cortina/gemini.c geth_fill_freeq(geth, true); geth 1539 drivers/net/ethernet/cortina/gemini.c struct gemini_ethernet *geth = port->geth; geth 1544 drivers/net/ethernet/cortina/gemini.c reg[0] = readl(geth->base + GLOBAL_INTERRUPT_STATUS_0_REG); geth 1545 drivers/net/ethernet/cortina/gemini.c reg[1] = readl(geth->base + GLOBAL_INTERRUPT_STATUS_1_REG); geth 1546 drivers/net/ethernet/cortina/gemini.c reg[2] = readl(geth->base + GLOBAL_INTERRUPT_STATUS_2_REG); geth 1547 drivers/net/ethernet/cortina/gemini.c reg[3] = readl(geth->base + GLOBAL_INTERRUPT_STATUS_3_REG); geth 1548 drivers/net/ethernet/cortina/gemini.c reg[4] = readl(geth->base + GLOBAL_INTERRUPT_STATUS_4_REG); geth 1553 drivers/net/ethernet/cortina/gemini.c reg[0] = readl(geth->base + GLOBAL_INTERRUPT_ENABLE_0_REG); geth 1554 drivers/net/ethernet/cortina/gemini.c reg[1] = readl(geth->base + GLOBAL_INTERRUPT_ENABLE_1_REG); geth 1555 drivers/net/ethernet/cortina/gemini.c reg[2] = readl(geth->base + GLOBAL_INTERRUPT_ENABLE_2_REG); geth 1556 drivers/net/ethernet/cortina/gemini.c reg[3] = readl(geth->base + GLOBAL_INTERRUPT_ENABLE_3_REG); geth 1557 drivers/net/ethernet/cortina/gemini.c reg[4] = readl(geth->base + GLOBAL_INTERRUPT_ENABLE_4_REG); geth 1594 drivers/net/ethernet/cortina/gemini.c ptr_reg = geth->base + GLOBAL_SWFQ_RWPTR_REG; geth 1599 drivers/net/ethernet/cortina/gemini.c ptr_reg = geth->base + GLOBAL_HWFQ_RWPTR_REG; geth 1611 drivers/net/ethernet/cortina/gemini.c struct gemini_ethernet *geth = port->geth; geth 1614 drivers/net/ethernet/cortina/gemini.c spin_lock_irqsave(&geth->irq_lock, flags); geth 1632 drivers/net/ethernet/cortina/gemini.c geth->base + GLOBAL_INTERRUPT_STATUS_4_REG); geth 1635 drivers/net/ethernet/cortina/gemini.c spin_unlock_irqrestore(&geth->irq_lock, flags); geth 1646 drivers/net/ethernet/cortina/gemini.c struct gemini_ethernet *geth = port->geth; geth 1654 drivers/net/ethernet/cortina/gemini.c irqif_reg = geth->base + GLOBAL_INTERRUPT_STATUS_0_REG + offs; geth 1655 drivers/net/ethernet/cortina/gemini.c irqen_reg = geth->base + GLOBAL_INTERRUPT_ENABLE_0_REG + offs; geth 1675 drivers/net/ethernet/cortina/gemini.c struct gemini_ethernet *geth; geth 1679 drivers/net/ethernet/cortina/gemini.c geth = port->geth; geth 1722 drivers/net/ethernet/cortina/gemini.c geth->base + GLOBAL_INTERRUPT_STATUS_4_REG); geth 1724 drivers/net/ethernet/cortina/gemini.c spin_lock(&geth->irq_lock); geth 1728 drivers/net/ethernet/cortina/gemini.c spin_unlock(&geth->irq_lock); geth 2248 drivers/net/ethernet/cortina/gemini.c struct gemini_ethernet *geth; geth 2251 drivers/net/ethernet/cortina/gemini.c geth = port->geth; geth 2253 drivers/net/ethernet/cortina/gemini.c geth_fill_freeq(geth, true); geth 2255 drivers/net/ethernet/cortina/gemini.c spin_lock_irqsave(&geth->irq_lock, flags); geth 2257 drivers/net/ethernet/cortina/gemini.c writel(irqmask, geth->base + GLOBAL_INTERRUPT_STATUS_4_REG); geth 2259 drivers/net/ethernet/cortina/gemini.c irqmask |= readl(geth->base + GLOBAL_INTERRUPT_ENABLE_4_REG); geth 2260 drivers/net/ethernet/cortina/gemini.c writel(irqmask, geth->base + GLOBAL_INTERRUPT_ENABLE_4_REG); geth 2261 drivers/net/ethernet/cortina/gemini.c spin_unlock_irqrestore(&geth->irq_lock, flags); geth 2269 drivers/net/ethernet/cortina/gemini.c struct gemini_ethernet *geth; geth 2273 drivers/net/ethernet/cortina/gemini.c geth = port->geth; geth 2274 drivers/net/ethernet/cortina/gemini.c spin_lock(&geth->irq_lock); geth 2276 drivers/net/ethernet/cortina/gemini.c val = readl(geth->base + GLOBAL_INTERRUPT_STATUS_4_REG); geth 2277 drivers/net/ethernet/cortina/gemini.c en = readl(geth->base + GLOBAL_INTERRUPT_ENABLE_4_REG); geth 2286 drivers/net/ethernet/cortina/gemini.c writel(en, geth->base + GLOBAL_INTERRUPT_ENABLE_4_REG); geth 2290 drivers/net/ethernet/cortina/gemini.c spin_unlock(&geth->irq_lock); geth 2300 drivers/net/ethernet/cortina/gemini.c geth_cleanup_freeq(port->geth); geth 2303 drivers/net/ethernet/cortina/gemini.c static void gemini_ethernet_init(struct gemini_ethernet *geth) geth 2306 drivers/net/ethernet/cortina/gemini.c if (geth->initialized) geth 2308 drivers/net/ethernet/cortina/gemini.c if (geth->port0 && geth->port1) geth 2309 drivers/net/ethernet/cortina/gemini.c geth->initialized = true; geth 2313 drivers/net/ethernet/cortina/gemini.c writel(0, geth->base + GLOBAL_INTERRUPT_ENABLE_0_REG); geth 2314 drivers/net/ethernet/cortina/gemini.c writel(0, geth->base + GLOBAL_INTERRUPT_ENABLE_1_REG); geth 2315 drivers/net/ethernet/cortina/gemini.c writel(0, geth->base + GLOBAL_INTERRUPT_ENABLE_2_REG); geth 2316 drivers/net/ethernet/cortina/gemini.c writel(0, geth->base + GLOBAL_INTERRUPT_ENABLE_3_REG); geth 2317 drivers/net/ethernet/cortina/gemini.c writel(0, geth->base + GLOBAL_INTERRUPT_ENABLE_4_REG); geth 2329 drivers/net/ethernet/cortina/gemini.c writel(0xCCFC0FC0, geth->base + GLOBAL_INTERRUPT_SELECT_0_REG); geth 2330 drivers/net/ethernet/cortina/gemini.c writel(0x00F00002, geth->base + GLOBAL_INTERRUPT_SELECT_1_REG); geth 2331 drivers/net/ethernet/cortina/gemini.c writel(0xFFFFFFFF, geth->base + GLOBAL_INTERRUPT_SELECT_2_REG); geth 2332 drivers/net/ethernet/cortina/gemini.c writel(0xFFFFFFFF, geth->base + GLOBAL_INTERRUPT_SELECT_3_REG); geth 2333 drivers/net/ethernet/cortina/gemini.c writel(0xFF000003, geth->base + GLOBAL_INTERRUPT_SELECT_4_REG); geth 2336 drivers/net/ethernet/cortina/gemini.c writel(~0, geth->base + GLOBAL_INTERRUPT_STATUS_0_REG); geth 2337 drivers/net/ethernet/cortina/gemini.c writel(~0, geth->base + GLOBAL_INTERRUPT_STATUS_1_REG); geth 2338 drivers/net/ethernet/cortina/gemini.c writel(~0, geth->base + GLOBAL_INTERRUPT_STATUS_2_REG); geth 2339 drivers/net/ethernet/cortina/gemini.c writel(~0, geth->base + GLOBAL_INTERRUPT_STATUS_3_REG); geth 2340 drivers/net/ethernet/cortina/gemini.c writel(~0, geth->base + GLOBAL_INTERRUPT_STATUS_4_REG); geth 2343 drivers/net/ethernet/cortina/gemini.c writel(0, geth->base + GLOBAL_SW_FREEQ_BASE_SIZE_REG); geth 2344 drivers/net/ethernet/cortina/gemini.c writel(0, geth->base + GLOBAL_HW_FREEQ_BASE_SIZE_REG); geth 2345 drivers/net/ethernet/cortina/gemini.c writel(0, geth->base + GLOBAL_SWFQ_RWPTR_REG); geth 2346 drivers/net/ethernet/cortina/gemini.c writel(0, geth->base + GLOBAL_HWFQ_RWPTR_REG); geth 2348 drivers/net/ethernet/cortina/gemini.c geth->freeq_frag_order = DEFAULT_RX_BUF_ORDER; geth 2352 drivers/net/ethernet/cortina/gemini.c geth->freeq_order = 1; geth 2370 drivers/net/ethernet/cortina/gemini.c struct gemini_ethernet *geth; geth 2380 drivers/net/ethernet/cortina/gemini.c geth = dev_get_drvdata(parent); geth 2401 drivers/net/ethernet/cortina/gemini.c port->geth = geth; geth 2455 drivers/net/ethernet/cortina/gemini.c geth->port0 = port; geth 2457 drivers/net/ethernet/cortina/gemini.c geth->port1 = port; geth 2460 drivers/net/ethernet/cortina/gemini.c gemini_ethernet_init(geth); geth 2553 drivers/net/ethernet/cortina/gemini.c struct gemini_ethernet *geth; geth 2559 drivers/net/ethernet/cortina/gemini.c geth = devm_kzalloc(dev, sizeof(*geth), GFP_KERNEL); geth 2560 drivers/net/ethernet/cortina/gemini.c if (!geth) geth 2565 drivers/net/ethernet/cortina/gemini.c geth->base = devm_ioremap_resource(dev, res); geth 2566 drivers/net/ethernet/cortina/gemini.c if (IS_ERR(geth->base)) geth 2567 drivers/net/ethernet/cortina/gemini.c return PTR_ERR(geth->base); geth 2568 drivers/net/ethernet/cortina/gemini.c geth->dev = dev; geth 2573 drivers/net/ethernet/cortina/gemini.c val = readl(geth->base + GLOBAL_TOE_VERSION_REG); geth 2583 drivers/net/ethernet/cortina/gemini.c spin_lock_init(&geth->irq_lock); geth 2584 drivers/net/ethernet/cortina/gemini.c spin_lock_init(&geth->freeq_lock); geth 2587 drivers/net/ethernet/cortina/gemini.c platform_set_drvdata(pdev, geth); geth 2595 drivers/net/ethernet/cortina/gemini.c struct gemini_ethernet *geth = platform_get_drvdata(pdev); geth 2597 drivers/net/ethernet/cortina/gemini.c geth_cleanup_freeq(geth); geth 2598 drivers/net/ethernet/cortina/gemini.c geth->initialized = false; geth 658 drivers/usb/gadget/function/f_ecm.c static void ecm_open(struct gether *geth) geth 660 drivers/usb/gadget/function/f_ecm.c struct f_ecm *ecm = func_to_ecm(&geth->func); geth 668 drivers/usb/gadget/function/f_ecm.c static void ecm_close(struct gether *geth) geth 670 drivers/usb/gadget/function/f_ecm.c struct f_ecm *ecm = func_to_ecm(&geth->func); geth 1358 drivers/usb/gadget/function/f_ncm.c static void ncm_open(struct gether *geth) geth 1360 drivers/usb/gadget/function/f_ncm.c struct f_ncm *ncm = func_to_ncm(&geth->func); geth 1370 drivers/usb/gadget/function/f_ncm.c static void ncm_close(struct gether *geth) geth 1372 drivers/usb/gadget/function/f_ncm.c struct f_ncm *ncm = func_to_ncm(&geth->func); geth 633 drivers/usb/gadget/function/f_rndis.c static void rndis_open(struct gether *geth) geth 635 drivers/usb/gadget/function/f_rndis.c struct f_rndis *rndis = func_to_rndis(&geth->func); geth 636 drivers/usb/gadget/function/f_rndis.c struct usb_composite_dev *cdev = geth->func.config->cdev; geth 645 drivers/usb/gadget/function/f_rndis.c static void rndis_close(struct gether *geth) geth 647 drivers/usb/gadget/function/f_rndis.c struct f_rndis *rndis = func_to_rndis(&geth->func); geth 649 drivers/usb/gadget/function/f_rndis.c DBG(geth->func.config->cdev, "%s\n", __func__); geth 255 drivers/usb/gadget/function/f_subset.c struct f_gether *geth = func_to_geth(f); geth 261 drivers/usb/gadget/function/f_subset.c if (geth->port.in_ep->enabled) { geth 263 drivers/usb/gadget/function/f_subset.c gether_disconnect(&geth->port); geth 267 drivers/usb/gadget/function/f_subset.c if (config_ep_by_speed(cdev->gadget, f, geth->port.in_ep) || geth 268 drivers/usb/gadget/function/f_subset.c config_ep_by_speed(cdev->gadget, f, geth->port.out_ep)) { geth 269 drivers/usb/gadget/function/f_subset.c geth->port.in_ep->desc = NULL; geth 270 drivers/usb/gadget/function/f_subset.c geth->port.out_ep->desc = NULL; geth 274 drivers/usb/gadget/function/f_subset.c net = gether_connect(&geth->port); geth 280 drivers/usb/gadget/function/f_subset.c struct f_gether *geth = func_to_geth(f); geth 284 drivers/usb/gadget/function/f_subset.c gether_disconnect(&geth->port); geth 295 drivers/usb/gadget/function/f_subset.c struct f_gether *geth = func_to_geth(f); geth 341 drivers/usb/gadget/function/f_subset.c geth->port.in_ep = ep; geth 346 drivers/usb/gadget/function/f_subset.c geth->port.out_ep = ep; geth 373 drivers/usb/gadget/function/f_subset.c geth->port.in_ep->name, geth->port.out_ep->name); geth 467 drivers/usb/gadget/function/f_subset.c struct f_gether *geth; geth 472 drivers/usb/gadget/function/f_subset.c geth = kzalloc(sizeof(*geth), GFP_KERNEL); geth 473 drivers/usb/gadget/function/f_subset.c if (!geth) geth 481 drivers/usb/gadget/function/f_subset.c status = gether_get_host_addr_cdc(opts->net, geth->ethaddr, geth 482 drivers/usb/gadget/function/f_subset.c sizeof(geth->ethaddr)); geth 484 drivers/usb/gadget/function/f_subset.c kfree(geth); geth 488 drivers/usb/gadget/function/f_subset.c geth_string_defs[1].s = geth->ethaddr; geth 490 drivers/usb/gadget/function/f_subset.c geth->port.ioport = netdev_priv(opts->net); geth 492 drivers/usb/gadget/function/f_subset.c geth->port.cdc_filter = DEFAULT_FILTER; geth 494 drivers/usb/gadget/function/f_subset.c geth->port.func.name = "cdc_subset"; geth 495 drivers/usb/gadget/function/f_subset.c geth->port.func.bind = geth_bind; geth 496 drivers/usb/gadget/function/f_subset.c geth->port.func.unbind = geth_unbind; geth 497 drivers/usb/gadget/function/f_subset.c geth->port.func.set_alt = geth_set_alt; geth 498 drivers/usb/gadget/function/f_subset.c geth->port.func.disable = geth_disable; geth 499 drivers/usb/gadget/function/f_subset.c geth->port.func.free_func = geth_free; geth 501 drivers/usb/gadget/function/f_subset.c return &geth->port.func; geth 504 drivers/usb/gadget/function/f_subset.c DECLARE_USB_FUNCTION_INIT(geth, geth_alloc_inst, geth_alloc);