Lines Matching refs:prv
69 struct xgbe_prv_data prv; member
133 ifp = sc->prv.netdev; in axgbe_init()
183 sx_xlock(&sc->prv.an_mutex); in axgbe_media_change()
188 sc->prv.phy.speed = SPEED_10000; in axgbe_media_change()
189 sc->prv.phy.autoneg = AUTONEG_DISABLE; in axgbe_media_change()
192 sc->prv.phy.speed = SPEED_2500; in axgbe_media_change()
193 sc->prv.phy.autoneg = AUTONEG_DISABLE; in axgbe_media_change()
196 sc->prv.phy.speed = SPEED_1000; in axgbe_media_change()
197 sc->prv.phy.autoneg = AUTONEG_DISABLE; in axgbe_media_change()
200 sc->prv.phy.autoneg = AUTONEG_ENABLE; in axgbe_media_change()
203 sx_xunlock(&sc->prv.an_mutex); in axgbe_media_change()
205 return (-sc->prv.phy_if.phy_config_aneg(&sc->prv)); in axgbe_media_change()
216 if (!sc->prv.phy.link) in axgbe_media_status()
222 if (sc->prv.phy.duplex == DUPLEX_FULL) in axgbe_media_status()
227 switch (sc->prv.phy.speed) { in axgbe_media_status()
316 sc->prv.vdata = &xgbe_v1; in axgbe_attach()
328 sc->prv.xgmac_res = mac_res[0]; in axgbe_attach()
329 sc->prv.xpcs_res = mac_res[1]; in axgbe_attach()
330 sc->prv.rxtx_res = mac_res[2]; in axgbe_attach()
331 sc->prv.sir0_res = mac_res[3]; in axgbe_attach()
332 sc->prv.sir1_res = mac_res[4]; in axgbe_attach()
334 sc->prv.dev_irq_res = mac_res[5]; in axgbe_attach()
335 sc->prv.per_channel_irq = OF_hasprop(node, in axgbe_attach()
339 if (sc->prv.per_channel_irq) { in axgbe_attach()
340 sc->prv.chan_irq_res[i] = mac_res[j]; in axgbe_attach()
345 sc->prv.an_irq_res = mac_res[j]; in axgbe_attach()
362 sc->prv.rxtx_res = phy_res[0]; in axgbe_attach()
363 sc->prv.sir0_res = phy_res[1]; in axgbe_attach()
364 sc->prv.sir1_res = phy_res[2]; in axgbe_attach()
365 sc->prv.an_irq_res = phy_res[3]; in axgbe_attach()
367 sc->prv.xgmac_res = mac_res[0]; in axgbe_attach()
368 sc->prv.xpcs_res = mac_res[1]; in axgbe_attach()
369 sc->prv.dev_irq_res = mac_res[2]; in axgbe_attach()
370 sc->prv.per_channel_irq = OF_hasprop(node, in axgbe_attach()
372 if (sc->prv.per_channel_irq) { in axgbe_attach()
373 for (i = 0, j = 3; i < nitems(sc->prv.chan_irq_res) && in axgbe_attach()
375 sc->prv.chan_irq_res[i] = mac_res[j]; in axgbe_attach()
390 sc->prv.netdev = ifp = if_alloc(IFT_ETHER); in axgbe_attach()
391 sc->prv.dev = dev; in axgbe_attach()
392 sc->prv.dmat = bus_get_dma_tag(dev); in axgbe_attach()
393 sc->prv.phy.advertising = ADVERTISED_10000baseKR_Full | in axgbe_attach()
402 if (OF_getencprop(phy_node, XGBE_SPEEDSET_PROPERTY, &sc->prv.speed_set, in axgbe_attach()
403 sizeof(sc->prv.speed_set)) <= 0) { in axgbe_attach()
410 sc->prv.serdes_blwc, sizeof(sc->prv.serdes_blwc)); in axgbe_attach()
414 sc->prv.serdes_blwc[0] = XGBE_SPEED_1000_BLWC; in axgbe_attach()
415 sc->prv.serdes_blwc[1] = XGBE_SPEED_2500_BLWC; in axgbe_attach()
416 sc->prv.serdes_blwc[2] = XGBE_SPEED_10000_BLWC; in axgbe_attach()
420 sc->prv.serdes_cdr_rate, sizeof(sc->prv.serdes_cdr_rate)); in axgbe_attach()
424 sc->prv.serdes_cdr_rate[0] = XGBE_SPEED_1000_CDR; in axgbe_attach()
425 sc->prv.serdes_cdr_rate[1] = XGBE_SPEED_2500_CDR; in axgbe_attach()
426 sc->prv.serdes_cdr_rate[2] = XGBE_SPEED_10000_CDR; in axgbe_attach()
430 sc->prv.serdes_pq_skew, sizeof(sc->prv.serdes_pq_skew)); in axgbe_attach()
434 sc->prv.serdes_pq_skew[0] = XGBE_SPEED_1000_PQ; in axgbe_attach()
435 sc->prv.serdes_pq_skew[1] = XGBE_SPEED_2500_PQ; in axgbe_attach()
436 sc->prv.serdes_pq_skew[2] = XGBE_SPEED_10000_PQ; in axgbe_attach()
440 sc->prv.serdes_tx_amp, sizeof(sc->prv.serdes_tx_amp)); in axgbe_attach()
444 sc->prv.serdes_tx_amp[0] = XGBE_SPEED_1000_TXAMP; in axgbe_attach()
445 sc->prv.serdes_tx_amp[1] = XGBE_SPEED_2500_TXAMP; in axgbe_attach()
446 sc->prv.serdes_tx_amp[2] = XGBE_SPEED_10000_TXAMP; in axgbe_attach()
450 sc->prv.serdes_dfe_tap_cfg, sizeof(sc->prv.serdes_dfe_tap_cfg)); in axgbe_attach()
454 sc->prv.serdes_dfe_tap_cfg[0] = XGBE_SPEED_1000_DFE_TAP_CONFIG; in axgbe_attach()
455 sc->prv.serdes_dfe_tap_cfg[1] = XGBE_SPEED_2500_DFE_TAP_CONFIG; in axgbe_attach()
456 sc->prv.serdes_dfe_tap_cfg[2] = XGBE_SPEED_10000_DFE_TAP_CONFIG; in axgbe_attach()
460 sc->prv.serdes_dfe_tap_ena, sizeof(sc->prv.serdes_dfe_tap_ena)); in axgbe_attach()
464 sc->prv.serdes_dfe_tap_ena[0] = XGBE_SPEED_1000_DFE_TAP_ENABLE; in axgbe_attach()
465 sc->prv.serdes_dfe_tap_ena[1] = XGBE_SPEED_2500_DFE_TAP_ENABLE; in axgbe_attach()
466 sc->prv.serdes_dfe_tap_ena[2] = XGBE_SPEED_10000_DFE_TAP_ENABLE; in axgbe_attach()
470 sc->prv.coherent = OF_hasprop(node, "dma-coherent"); in axgbe_attach()
471 if (sc->prv.coherent) { in axgbe_attach()
472 sc->prv.arcr = XGBE_DMA_OS_ARCR; in axgbe_attach()
473 sc->prv.awcr = XGBE_DMA_OS_AWCR; in axgbe_attach()
475 sc->prv.arcr = XGBE_DMA_SYS_ARCR; in axgbe_attach()
476 sc->prv.awcr = XGBE_DMA_SYS_AWCR; in axgbe_attach()
480 spin_lock_init(&sc->prv.xpcs_lock); in axgbe_attach()
481 sc->prv.dev_workqueue = taskqueue_create("axgbe", M_WAITOK, in axgbe_attach()
482 taskqueue_thread_enqueue, &sc->prv.dev_workqueue); in axgbe_attach()
483 taskqueue_start_threads(&sc->prv.dev_workqueue, 1, PI_NET, in axgbe_attach()
487 xgbe_init_function_ptrs_phy(&sc->prv.phy_if); in axgbe_attach()
488 xgbe_init_function_ptrs_dev(&sc->prv.hw_if); in axgbe_attach()
489 xgbe_init_function_ptrs_desc(&sc->prv.desc_if); in axgbe_attach()
490 sc->prv.vdata->init_function_ptrs_phy_impl(&sc->prv.phy_if); in axgbe_attach()
493 sc->prv.hw_if.exit(&sc->prv); in axgbe_attach()
496 xgbe_get_all_hw_features(&sc->prv); in axgbe_attach()
499 sc->prv.tx_desc_count = XGBE_TX_DESC_CNT; in axgbe_attach()
500 sc->prv.tx_sf_mode = MTL_TSF_ENABLE; in axgbe_attach()
501 sc->prv.tx_threshold = MTL_TX_THRESHOLD_64; in axgbe_attach()
502 sc->prv.tx_osp_mode = DMA_OSP_ENABLE; in axgbe_attach()
503 sc->prv.rx_desc_count = XGBE_RX_DESC_CNT; in axgbe_attach()
504 sc->prv.rx_sf_mode = MTL_RSF_DISABLE; in axgbe_attach()
505 sc->prv.rx_threshold = MTL_RX_THRESHOLD_64; in axgbe_attach()
506 sc->prv.pbl = DMA_PBL_128; in axgbe_attach()
507 sc->prv.pause_autoneg = 1; in axgbe_attach()
508 sc->prv.tx_pause = 1; in axgbe_attach()
509 sc->prv.rx_pause = 1; in axgbe_attach()
510 sc->prv.phy_speed = SPEED_UNKNOWN; in axgbe_attach()
511 sc->prv.power_down = 0; in axgbe_attach()
514 sc->prv.tx_ring_count = 1; in axgbe_attach()
515 sc->prv.tx_q_count = 1; in axgbe_attach()
516 sc->prv.rx_ring_count = 1; in axgbe_attach()
517 sc->prv.rx_q_count = sc->prv.hw_feat.rx_q_cnt; in axgbe_attach()
520 sc->prv.phy_if.phy_init(&sc->prv); in axgbe_attach()
523 xgbe_init_rx_coalesce(&sc->prv); in axgbe_attach()
524 xgbe_init_tx_coalesce(&sc->prv); in axgbe_attach()
551 set_bit(XGBE_DOWN, &sc->prv.dev_state); in axgbe_attach()