Lines Matching refs:lldev

130 	xgelldev_t *lldev = xge_hal_device_private(data);  in xge_device_poll()  local
132 mutex_enter(&lldev->genlock); in xge_device_poll()
133 if (lldev->is_initialized) { in xge_device_poll()
135 lldev->timeout_id = timeout(xge_device_poll, data, in xge_device_poll()
137 } else if (lldev->in_reset == 1) { in xge_device_poll()
138 lldev->timeout_id = timeout(xge_device_poll, data, in xge_device_poll()
141 lldev->timeout_id = 0; in xge_device_poll()
143 mutex_exit(&lldev->genlock); in xge_device_poll()
154 xgelldev_t *lldev = xge_hal_device_private(data); in xge_device_poll_now() local
156 mutex_enter(&lldev->genlock); in xge_device_poll_now()
157 if (lldev->is_initialized) { in xge_device_poll_now()
160 mutex_exit(&lldev->genlock); in xge_device_poll_now()
171 xgelldev_t *lldev = (xgelldev_t *)userdata; in xgell_callback_link_up() local
173 mac_link_update(lldev->mh, LINK_STATE_UP); in xgell_callback_link_up()
184 xgelldev_t *lldev = (xgelldev_t *)userdata; in xgell_callback_link_down() local
186 mac_link_update(lldev->mh, LINK_STATE_DOWN); in xgell_callback_link_down()
269 xgelldev_t *lldev = ring->lldev; in xgell_rx_buffer_recycle() local
284 if ((lldev->is_initialized != 0) && (ring->live) && in xgell_rx_buffer_recycle()
309 xgelldev_t *lldev = ring->lldev; in xgell_rx_buffer_alloc() local
322 hldev = (xge_hal_device_t *)lldev->devh; in xgell_rx_buffer_alloc()
327 XGELL_IFNAME, lldev->instance); in xgell_rx_buffer_alloc()
337 XGELL_IFNAME, lldev->instance); in xgell_rx_buffer_alloc()
344 XGELL_IFNAME, lldev->instance); in xgell_rx_buffer_alloc()
352 XGELL_IFNAME, lldev->instance); in xgell_rx_buffer_alloc()
358 XGELL_IFNAME, lldev->instance); in xgell_rx_buffer_alloc()
398 xgelldev_t *lldev = ring->lldev; in xgell_rx_destroy_buffer_pool() local
431 XGELL_IFNAME, lldev->instance); in xgell_rx_destroy_buffer_pool()
476 xgelldev_t *lldev = ring->lldev; in xgell_rx_create_buffer_pool() local
485 hldev = (xge_hal_device_t *)lldev->devh; in xgell_rx_create_buffer_pool()
492 bf_pool->post_hiwat = lldev->config.rx_buffer_post_hiwat; in xgell_rx_create_buffer_pool()
508 for (i = 0; i < lldev->config.rx_buffer_total; i++) { in xgell_rx_create_buffer_pool()
660 xgelldev_t *lldev = ring->lldev; in xgell_rx_1b_msg_alloc() local
669 if (*copyit || pkt_length <= lldev->config.rx_dma_lowat) { in xgell_rx_1b_msg_alloc()
707 xgelldev_t *lldev = ring->lldev; in xgell_rx_1b_callback() local
736 lldev->instance, (uint64_t)(uintptr_t)dtr, t_code); in xgell_rx_1b_callback()
751 XGELL_IFNAME, lldev->instance); in xgell_rx_1b_callback()
785 XGELL_IFNAME, lldev->instance); in xgell_rx_1b_callback()
827 if (++pkt_burst < lldev->config.rx_pkt_burst) in xgell_rx_1b_callback()
836 mac_rx_ring(lldev->mh, ring->ring_handle, mp_head, in xgell_rx_1b_callback()
857 mac_rx_ring(lldev->mh, ring->ring_handle, mp_head, in xgell_rx_1b_callback()
898 xgelldev_t *lldev = ring->lldev; in xgell_xmit_compl() local
908 lldev->instance, (uint64_t)(uintptr_t)dtr, t_code); in xgell_xmit_compl()
936 mac_tx_ring_update(lldev->mh, ring->ring_handle); in xgell_xmit_compl()
946 xgelldev_t *lldev = ring->lldev; in xgell_ring_tx() local
947 xge_hal_device_t *hldev = lldev->devh; in xgell_ring_tx()
962 if (!lldev->is_initialized || lldev->in_reset) in xgell_ring_tx()
976 XGELL_IFNAME, lldev->instance, in xgell_ring_tx()
988 lldev->instance, in xgell_ring_tx()
995 lldev->instance, in xgell_ring_tx()
1051 if (mblen < lldev->config.tx_dma_lowat && in xgell_ring_tx()
1052 (copied + mblen) < lldev->tx_copied_max) { in xgell_ring_tx()
1071 ret = ddi_dma_alloc_handle(lldev->dev_info, &tx_dma_attr, in xgell_ring_tx()
1076 lldev->instance); in xgell_ring_tx()
1093 XGELL_IFNAME, lldev->instance); in xgell_ring_tx()
1104 XGELL_IFNAME, lldev->instance); in xgell_ring_tx()
1112 lldev->instance, ncookies, frag_cnt); in xgell_ring_tx()
1143 XGELL_IFNAME, lldev->instance); in xgell_ring_tx()
1216 xgelldev_t *lldev = ring->lldev; in xgell_rx_ring_maddr_init() local
1217 xge_hal_device_t *hldev = lldev->devh; in xgell_rx_ring_maddr_init()
1250 xgelldev_t *lldev = ring->lldev; in xgell_addmac() local
1251 xge_hal_device_t *hldev = lldev->devh; in xgell_addmac()
1257 mutex_enter(&lldev->genlock); in xgell_addmac()
1260 mutex_exit(&lldev->genlock); in xgell_addmac()
1275 if (xgell_maddr_set(lldev, slot_start + slot, (uint8_t *)mac_addr) != in xgell_addmac()
1277 mutex_exit(&lldev->genlock); in xgell_addmac()
1296 mutex_exit(&lldev->genlock); in xgell_addmac()
1305 xgelldev_t *lldev = ring->lldev; in xgell_remmac() local
1306 xge_hal_device_t *hldev = lldev->devh; in xgell_remmac()
1333 mutex_enter(&lldev->genlock); in xgell_remmac()
1335 mutex_exit(&lldev->genlock); in xgell_remmac()
1341 XGELL_IFNAME, lldev->instance); in xgell_remmac()
1347 mutex_exit(&lldev->genlock); in xgell_remmac()
1363 mutex_exit(&lldev->genlock); in xgell_remmac()
1442 xgelldev_t *lldev = (xgelldev_t *)arg; in xgell_fill_ring() local
1449 xge_assert(index < lldev->init_rx_rings); in xgell_fill_ring()
1450 xge_assert(rg_index < lldev->init_rx_groups); in xgell_fill_ring()
1455 if (lldev->init_rx_rings == lldev->init_rx_groups) in xgell_fill_ring()
1456 rx_ring = lldev->rx_ring + rg_index; in xgell_fill_ring()
1458 rx_ring = lldev->rx_ring + index; in xgell_fill_ring()
1480 xge_assert((index >= 0) && (index < lldev->init_tx_rings)); in xgell_fill_ring()
1482 tx_ring = lldev->tx_ring + index; in xgell_fill_ring()
1502 xgelldev_t *lldev = (xgelldev_t *)arg; in xgell_fill_group() local
1508 xge_assert(index < lldev->init_rx_groups); in xgell_fill_group()
1510 rx_ring = lldev->rx_ring + index; in xgell_fill_group()
1519 infop->mgi_count = lldev->init_rx_rings / lldev->init_rx_groups; in xgell_fill_group()
1535 xgell_maddr_set(xgelldev_t *lldev, int index, uint8_t *macaddr) in xgell_maddr_set() argument
1537 xge_hal_device_t *hldev = lldev->devh; in xgell_maddr_set()
1551 XGELL_IFNAME, lldev->instance); in xgell_maddr_set()
1590 xgelldev_t *lldev = rx_ring->lldev; in xgell_rx_ring_open() local
1591 xge_hal_device_t *hldev = lldev->devh; in xgell_rx_ring_open()
1614 status = xge_hal_channel_open(lldev->devh, &attr, &rx_ring->channelh, in xgell_rx_ring_open()
1618 " code %d", XGELL_IFNAME, lldev->instance, status); in xgell_rx_ring_open()
1660 xgell_rx_open(xgelldev_t *lldev) in xgell_rx_open() argument
1665 if (lldev->live_rx_rings != 0) in xgell_rx_open()
1668 lldev->live_rx_rings = 0; in xgell_rx_open()
1673 for (i = 0; i < lldev->init_rx_rings; i++) { in xgell_rx_open()
1674 rx_ring = &lldev->rx_ring[i]; in xgell_rx_open()
1676 rx_ring->lldev = lldev; in xgell_rx_open()
1682 lldev->live_rx_rings++; in xgell_rx_open()
1689 xgell_rx_close(xgelldev_t *lldev) in xgell_rx_close() argument
1694 if (lldev->live_rx_rings == 0) in xgell_rx_close()
1700 for (i = 0; i < lldev->init_rx_rings; i++) { in xgell_rx_close()
1701 rx_ring = &lldev->rx_ring[i]; in xgell_rx_close()
1705 lldev->live_rx_rings--; in xgell_rx_close()
1709 xge_assert(lldev->live_rx_rings == 0); in xgell_rx_close()
1755 xgelldev_t *lldev = tx_ring->lldev; in xgell_tx_ring_open() local
1770 status = xge_hal_channel_open(lldev->devh, &attr, &tx_ring->channelh, in xgell_tx_ring_open()
1774 "code %d", XGELL_IFNAME, lldev->instance, status); in xgell_tx_ring_open()
1799 xgell_tx_open(xgelldev_t *lldev) in xgell_tx_open() argument
1804 if (lldev->live_tx_rings != 0) in xgell_tx_open()
1807 lldev->live_tx_rings = 0; in xgell_tx_open()
1812 for (i = 0; i < lldev->init_tx_rings; i++) { in xgell_tx_open()
1813 tx_ring = &lldev->tx_ring[i]; in xgell_tx_open()
1815 tx_ring->lldev = lldev; in xgell_tx_open()
1821 lldev->live_tx_rings++; in xgell_tx_open()
1828 xgell_tx_close(xgelldev_t *lldev) in xgell_tx_close() argument
1833 if (lldev->live_tx_rings == 0) in xgell_tx_close()
1839 for (i = 0; i < lldev->init_tx_rings; i++) { in xgell_tx_close()
1840 tx_ring = &lldev->tx_ring[i]; in xgell_tx_close()
1843 lldev->live_tx_rings--; in xgell_tx_close()
1849 xgell_initiate_start(xgelldev_t *lldev) in xgell_initiate_start() argument
1852 xge_hal_device_t *hldev = lldev->devh; in xgell_initiate_start()
1856 status = xge_hal_device_mtu_check(lldev->devh, maxpkt); in xgell_initiate_start()
1859 XGELL_IFNAME, lldev->instance, maxpkt); in xgell_initiate_start()
1864 status = xge_hal_device_mtu_set(lldev->devh, maxpkt); in xgell_initiate_start()
1867 XGELL_IFNAME, lldev->instance, maxpkt); in xgell_initiate_start()
1883 status = xge_hal_device_enable(lldev->devh); in xgell_initiate_start()
1886 XGELL_IFNAME, lldev->instance); in xgell_initiate_start()
1890 if (!xgell_rx_open(lldev)) { in xgell_initiate_start()
1891 status = xge_hal_device_disable(lldev->devh); in xgell_initiate_start()
1894 (void) xge_hal_device_status(lldev->devh, in xgell_initiate_start()
1899 XGELL_IFNAME, lldev->instance, in xgell_initiate_start()
1902 xgell_rx_close(lldev); in xgell_initiate_start()
1907 if (!xgell_tx_open(lldev)) { in xgell_initiate_start()
1908 status = xge_hal_device_disable(lldev->devh); in xgell_initiate_start()
1911 (void) xge_hal_device_status(lldev->devh, in xgell_initiate_start()
1916 XGELL_IFNAME, lldev->instance, in xgell_initiate_start()
1919 xgell_tx_close(lldev); in xgell_initiate_start()
1920 xgell_rx_close(lldev); in xgell_initiate_start()
1926 (void) xge_enable_intrs(lldev); in xgell_initiate_start()
1927 xge_hal_device_intr_enable(lldev->devh); in xgell_initiate_start()
1929 lldev->is_initialized = 1; in xgell_initiate_start()
1935 xgell_initiate_stop(xgelldev_t *lldev) in xgell_initiate_stop() argument
1939 lldev->is_initialized = 0; in xgell_initiate_stop()
1941 status = xge_hal_device_disable(lldev->devh); in xgell_initiate_stop()
1944 (void) xge_hal_device_status(lldev->devh, &adapter_status); in xgell_initiate_stop()
1947 XGELL_IFNAME, lldev->instance, in xgell_initiate_stop()
1950 xge_hal_device_intr_disable(lldev->devh); in xgell_initiate_stop()
1952 xge_disable_intrs(lldev); in xgell_initiate_stop()
1958 xge_queue_flush(xge_hal_device_queue(lldev->devh)); in xgell_initiate_stop()
1960 xgell_rx_close(lldev); in xgell_initiate_stop()
1961 xgell_tx_close(lldev); in xgell_initiate_stop()
1976 xgelldev_t *lldev = arg; in xgell_m_start() local
1977 xge_hal_device_t *hldev = lldev->devh; in xgell_m_start()
1981 lldev->instance); in xgell_m_start()
1983 mutex_enter(&lldev->genlock); in xgell_m_start()
1985 if (lldev->is_initialized) { in xgell_m_start()
1987 XGELL_IFNAME, lldev->instance); in xgell_m_start()
1988 mutex_exit(&lldev->genlock); in xgell_m_start()
1993 if (ret = xgell_initiate_start(lldev)) { in xgell_m_start()
1994 mutex_exit(&lldev->genlock); in xgell_m_start()
1998 lldev->timeout_id = timeout(xge_device_poll, hldev, XGE_DEV_POLL_TICKS); in xgell_m_start()
2000 mutex_exit(&lldev->genlock); in xgell_m_start()
2017 xgelldev_t *lldev = arg; in xgell_m_stop() local
2018 xge_hal_device_t *hldev = lldev->devh; in xgell_m_stop()
2022 mutex_enter(&lldev->genlock); in xgell_m_stop()
2023 if (!lldev->is_initialized) { in xgell_m_stop()
2025 mutex_exit(&lldev->genlock); in xgell_m_stop()
2030 xgell_initiate_stop(lldev); in xgell_m_stop()
2033 (void) xge_hal_device_reset(lldev->devh); in xgell_m_stop()
2035 mutex_exit(&lldev->genlock); in xgell_m_stop()
2037 if (lldev->timeout_id != 0) { in xgell_m_stop()
2038 (void) untimeout(lldev->timeout_id); in xgell_m_stop()
2052 xgell_onerr_reset(xgelldev_t *lldev) in xgell_onerr_reset() argument
2056 if (!lldev->is_initialized) { in xgell_onerr_reset()
2058 XGELL_IFNAME, lldev->instance); in xgell_onerr_reset()
2062 lldev->in_reset = 1; in xgell_onerr_reset()
2063 xgell_initiate_stop(lldev); in xgell_onerr_reset()
2066 (void) xge_hal_device_reset(lldev->devh); in xgell_onerr_reset()
2068 rc = xgell_initiate_start(lldev); in xgell_onerr_reset()
2069 lldev->in_reset = 0; in xgell_onerr_reset()
2087 xgelldev_t *lldev = (xgelldev_t *)arg; in xgell_m_multicst() local
2088 xge_hal_device_t *hldev = lldev->devh; in xgell_m_multicst()
2092 mutex_enter(&lldev->genlock); in xgell_m_multicst()
2094 if (!lldev->is_initialized) { in xgell_m_multicst()
2096 XGELL_IFNAME, lldev->instance); in xgell_m_multicst()
2097 mutex_exit(&lldev->genlock); in xgell_m_multicst()
2110 mutex_exit(&lldev->genlock); in xgell_m_multicst()
2114 mutex_exit(&lldev->genlock); in xgell_m_multicst()
2131 xgelldev_t *lldev = (xgelldev_t *)arg; in xgell_m_promisc() local
2132 xge_hal_device_t *hldev = lldev->devh; in xgell_m_promisc()
2134 mutex_enter(&lldev->genlock); in xgell_m_promisc()
2138 if (!lldev->is_initialized) { in xgell_m_promisc()
2140 XGELL_IFNAME, lldev->instance); in xgell_m_promisc()
2141 mutex_exit(&lldev->genlock); in xgell_m_promisc()
2151 mutex_exit(&lldev->genlock); in xgell_m_promisc()
2167 xgelldev_t *lldev = (xgelldev_t *)arg; in xgell_m_stat() local
2168 xge_hal_device_t *hldev = lldev->devh; in xgell_m_stat()
2172 mutex_enter(&lldev->genlock); in xgell_m_stat()
2174 if (!lldev->is_initialized) { in xgell_m_stat()
2175 mutex_exit(&lldev->genlock); in xgell_m_stat()
2180 mutex_exit(&lldev->genlock); in xgell_m_stat()
2260 mutex_exit(&lldev->genlock); in xgell_m_stat()
2264 mutex_exit(&lldev->genlock); in xgell_m_stat()
2326 xgelldev_t *lldev; in xgell_device_alloc() local
2335 lldev = kmem_zalloc(sizeof (xgelldev_t), KM_SLEEP); in xgell_device_alloc()
2337 lldev->devh = hldev; in xgell_device_alloc()
2338 lldev->instance = instance; in xgell_device_alloc()
2339 lldev->dev_info = dev_info; in xgell_device_alloc()
2341 *lldev_out = lldev; in xgell_device_alloc()
2352 xgell_device_free(xgelldev_t *lldev) in xgell_device_free() argument
2355 XGELL_IFNAME, lldev->instance); in xgell_device_free()
2357 kmem_free(lldev, sizeof (xgelldev_t)); in xgell_device_free()
2366 xgelldev_t *lldev = arg; in xgell_m_ioctl() local
2412 ret = nd_getset(wq, lldev->ndp, mp); in xgell_m_ioctl()
2417 ret = nd_getset(wq, lldev->ndp, mp); in xgell_m_ioctl()
2441 xgelldev_t *lldev = arg; in xgell_m_getcapab() local
2455 if (lldev->config.lso_enable) { in xgell_m_getcapab()
2469 cap_rings->mr_rnum = lldev->init_rx_rings; in xgell_m_getcapab()
2470 cap_rings->mr_gnum = lldev->init_rx_groups; in xgell_m_getcapab()
2476 cap_rings->mr_rnum = lldev->init_tx_rings; in xgell_m_getcapab()
2495 xgelldev_t *lldev = (xgelldev_t *)cp; in xgell_stats_get() local
2505 status = xge_hal_aux_stats_tmac_read(lldev->devh, XGELL_STATS_BUFSIZE, in xgell_stats_get()
2514 status = xge_hal_aux_stats_rmac_read(lldev->devh, in xgell_stats_get()
2524 status = xge_hal_aux_stats_pci_read(lldev->devh, in xgell_stats_get()
2533 status = xge_hal_aux_stats_sw_dev_read(lldev->devh, in xgell_stats_get()
2542 status = xge_hal_aux_stats_hal_read(lldev->devh, in xgell_stats_get()
2561 xgelldev_t *lldev = (xgelldev_t *)cp; in xgell_pciconf_get() local
2570 status = xge_hal_aux_pci_config_read(lldev->devh, XGELL_PCICONF_BUFSIZE, in xgell_pciconf_get()
2587 xgelldev_t *lldev = (xgelldev_t *)cp; in xgell_about_get() local
2596 status = xge_hal_aux_about_read(lldev->devh, XGELL_ABOUT_BUFSIZE, in xgell_about_get()
2615 xgelldev_t *lldev = (xgelldev_t *)cp; in xgell_bar0_get() local
2624 status = xge_hal_aux_bar0_read(lldev->devh, bar0_offset, in xgell_bar0_get()
2733 xgelldev_t *lldev = (xgelldev_t *)(void *)cp; in xgell_devconfig_get() local
2742 status = xge_hal_aux_device_config_read(lldev->devh, in xgell_devconfig_get()
2766 xgell_device_register(xgelldev_t *lldev, xgell_config_t *config) in xgell_device_register() argument
2769 xge_hal_device_t *hldev = (xge_hal_device_t *)lldev->devh; in xgell_device_register()
2774 if (nd_load(&lldev->ndp, "pciconf", xgell_pciconf_get, NULL, in xgell_device_register()
2775 (caddr_t)lldev) == B_FALSE) in xgell_device_register()
2778 if (nd_load(&lldev->ndp, "about", xgell_about_get, NULL, in xgell_device_register()
2779 (caddr_t)lldev) == B_FALSE) in xgell_device_register()
2782 if (nd_load(&lldev->ndp, "stats", xgell_stats_get, NULL, in xgell_device_register()
2783 (caddr_t)lldev) == B_FALSE) in xgell_device_register()
2786 if (nd_load(&lldev->ndp, "bar0", xgell_bar0_get, xgell_bar0_set, in xgell_device_register()
2787 (caddr_t)lldev) == B_FALSE) in xgell_device_register()
2790 if (nd_load(&lldev->ndp, "debug_level", xgell_debug_level_get, in xgell_device_register()
2791 xgell_debug_level_set, (caddr_t)lldev) == B_FALSE) in xgell_device_register()
2794 if (nd_load(&lldev->ndp, "debug_module_mask", in xgell_device_register()
2796 (caddr_t)lldev) == B_FALSE) in xgell_device_register()
2799 if (nd_load(&lldev->ndp, "devconfig", xgell_devconfig_get, NULL, in xgell_device_register()
2800 (caddr_t)lldev) == B_FALSE) in xgell_device_register()
2803 bcopy(config, &lldev->config, sizeof (xgell_config_t)); in xgell_device_register()
2805 mutex_init(&lldev->genlock, NULL, MUTEX_DRIVER, in xgell_device_register()
2811 macp->m_driver = lldev; in xgell_device_register()
2812 macp->m_dip = lldev->dev_info; in xgell_device_register()
2823 if (mac_register(macp, &lldev->mh) != 0) in xgell_device_register()
2831 lldev->tx_copied_max = hldev->config.fifo.max_frags * in xgell_device_register()
2836 XGELL_IFNAME, lldev->instance); in xgell_device_register()
2841 nd_free(&lldev->ndp); in xgell_device_register()
2848 nd_free(&lldev->ndp); in xgell_device_register()
2849 mutex_destroy(&lldev->genlock); in xgell_device_register()
2862 xgell_device_unregister(xgelldev_t *lldev) in xgell_device_unregister() argument
2864 if (mac_unregister(lldev->mh) != 0) { in xgell_device_unregister()
2866 XGELL_IFNAME, lldev->instance); in xgell_device_unregister()
2870 mutex_destroy(&lldev->genlock); in xgell_device_unregister()
2872 nd_free(&lldev->ndp); in xgell_device_unregister()
2875 XGELL_IFNAME, lldev->instance); in xgell_device_unregister()