Lines Matching refs:prv
70 struct xgbe_prv_data prv; member
134 ifp = sc->prv.netdev; in axgbe_init()
184 sx_xlock(&sc->prv.an_mutex); in axgbe_media_change()
189 sc->prv.phy.speed = SPEED_10000; in axgbe_media_change()
190 sc->prv.phy.autoneg = AUTONEG_DISABLE; in axgbe_media_change()
193 sc->prv.phy.speed = SPEED_2500; in axgbe_media_change()
194 sc->prv.phy.autoneg = AUTONEG_DISABLE; in axgbe_media_change()
197 sc->prv.phy.speed = SPEED_1000; in axgbe_media_change()
198 sc->prv.phy.autoneg = AUTONEG_DISABLE; in axgbe_media_change()
201 sc->prv.phy.autoneg = AUTONEG_ENABLE; in axgbe_media_change()
204 sx_xunlock(&sc->prv.an_mutex); in axgbe_media_change()
206 return (-sc->prv.phy_if.phy_config_aneg(&sc->prv)); in axgbe_media_change()
217 if (!sc->prv.phy.link) in axgbe_media_status()
223 if (sc->prv.phy.duplex == DUPLEX_FULL) in axgbe_media_status()
228 switch (sc->prv.phy.speed) { in axgbe_media_status()
317 sc->prv.vdata = &xgbe_v1; in axgbe_attach()
329 sc->prv.xgmac_res = mac_res[0]; in axgbe_attach()
330 sc->prv.xpcs_res = mac_res[1]; in axgbe_attach()
331 sc->prv.rxtx_res = mac_res[2]; in axgbe_attach()
332 sc->prv.sir0_res = mac_res[3]; in axgbe_attach()
333 sc->prv.sir1_res = mac_res[4]; in axgbe_attach()
335 sc->prv.dev_irq_res = mac_res[5]; in axgbe_attach()
336 sc->prv.per_channel_irq = OF_hasprop(node, in axgbe_attach()
340 if (sc->prv.per_channel_irq) { in axgbe_attach()
341 sc->prv.chan_irq_res[i] = mac_res[j]; in axgbe_attach()
346 sc->prv.an_irq_res = mac_res[j]; in axgbe_attach()
363 sc->prv.rxtx_res = phy_res[0]; in axgbe_attach()
364 sc->prv.sir0_res = phy_res[1]; in axgbe_attach()
365 sc->prv.sir1_res = phy_res[2]; in axgbe_attach()
366 sc->prv.an_irq_res = phy_res[3]; in axgbe_attach()
368 sc->prv.xgmac_res = mac_res[0]; in axgbe_attach()
369 sc->prv.xpcs_res = mac_res[1]; in axgbe_attach()
370 sc->prv.dev_irq_res = mac_res[2]; in axgbe_attach()
371 sc->prv.per_channel_irq = OF_hasprop(node, in axgbe_attach()
373 if (sc->prv.per_channel_irq) { in axgbe_attach()
374 for (i = 0, j = 3; i < nitems(sc->prv.chan_irq_res) && in axgbe_attach()
376 sc->prv.chan_irq_res[i] = mac_res[j]; in axgbe_attach()
391 sc->prv.netdev = ifp = if_alloc(IFT_ETHER); in axgbe_attach()
392 sc->prv.dev = dev; in axgbe_attach()
393 sc->prv.dmat = bus_get_dma_tag(dev); in axgbe_attach()
394 sc->prv.phy.advertising = ADVERTISED_10000baseKR_Full | in axgbe_attach()
403 if (OF_getencprop(phy_node, XGBE_SPEEDSET_PROPERTY, &sc->prv.speed_set, in axgbe_attach()
404 sizeof(sc->prv.speed_set)) <= 0) { in axgbe_attach()
411 sc->prv.serdes_blwc, sizeof(sc->prv.serdes_blwc)); in axgbe_attach()
415 sc->prv.serdes_blwc[0] = XGBE_SPEED_1000_BLWC; in axgbe_attach()
416 sc->prv.serdes_blwc[1] = XGBE_SPEED_2500_BLWC; in axgbe_attach()
417 sc->prv.serdes_blwc[2] = XGBE_SPEED_10000_BLWC; in axgbe_attach()
421 sc->prv.serdes_cdr_rate, sizeof(sc->prv.serdes_cdr_rate)); in axgbe_attach()
425 sc->prv.serdes_cdr_rate[0] = XGBE_SPEED_1000_CDR; in axgbe_attach()
426 sc->prv.serdes_cdr_rate[1] = XGBE_SPEED_2500_CDR; in axgbe_attach()
427 sc->prv.serdes_cdr_rate[2] = XGBE_SPEED_10000_CDR; in axgbe_attach()
431 sc->prv.serdes_pq_skew, sizeof(sc->prv.serdes_pq_skew)); in axgbe_attach()
435 sc->prv.serdes_pq_skew[0] = XGBE_SPEED_1000_PQ; in axgbe_attach()
436 sc->prv.serdes_pq_skew[1] = XGBE_SPEED_2500_PQ; in axgbe_attach()
437 sc->prv.serdes_pq_skew[2] = XGBE_SPEED_10000_PQ; in axgbe_attach()
441 sc->prv.serdes_tx_amp, sizeof(sc->prv.serdes_tx_amp)); in axgbe_attach()
445 sc->prv.serdes_tx_amp[0] = XGBE_SPEED_1000_TXAMP; in axgbe_attach()
446 sc->prv.serdes_tx_amp[1] = XGBE_SPEED_2500_TXAMP; in axgbe_attach()
447 sc->prv.serdes_tx_amp[2] = XGBE_SPEED_10000_TXAMP; in axgbe_attach()
451 sc->prv.serdes_dfe_tap_cfg, sizeof(sc->prv.serdes_dfe_tap_cfg)); in axgbe_attach()
455 sc->prv.serdes_dfe_tap_cfg[0] = XGBE_SPEED_1000_DFE_TAP_CONFIG; in axgbe_attach()
456 sc->prv.serdes_dfe_tap_cfg[1] = XGBE_SPEED_2500_DFE_TAP_CONFIG; in axgbe_attach()
457 sc->prv.serdes_dfe_tap_cfg[2] = XGBE_SPEED_10000_DFE_TAP_CONFIG; in axgbe_attach()
461 sc->prv.serdes_dfe_tap_ena, sizeof(sc->prv.serdes_dfe_tap_ena)); in axgbe_attach()
465 sc->prv.serdes_dfe_tap_ena[0] = XGBE_SPEED_1000_DFE_TAP_ENABLE; in axgbe_attach()
466 sc->prv.serdes_dfe_tap_ena[1] = XGBE_SPEED_2500_DFE_TAP_ENABLE; in axgbe_attach()
467 sc->prv.serdes_dfe_tap_ena[2] = XGBE_SPEED_10000_DFE_TAP_ENABLE; in axgbe_attach()
471 sc->prv.coherent = OF_hasprop(node, "dma-coherent"); in axgbe_attach()
472 if (sc->prv.coherent) { in axgbe_attach()
473 sc->prv.arcr = XGBE_DMA_OS_ARCR; in axgbe_attach()
474 sc->prv.awcr = XGBE_DMA_OS_AWCR; in axgbe_attach()
476 sc->prv.arcr = XGBE_DMA_SYS_ARCR; in axgbe_attach()
477 sc->prv.awcr = XGBE_DMA_SYS_AWCR; in axgbe_attach()
481 spin_lock_init(&sc->prv.xpcs_lock); in axgbe_attach()
482 sc->prv.dev_workqueue = taskqueue_create("axgbe", M_WAITOK, in axgbe_attach()
483 taskqueue_thread_enqueue, &sc->prv.dev_workqueue); in axgbe_attach()
484 taskqueue_start_threads(&sc->prv.dev_workqueue, 1, PI_NET, in axgbe_attach()
488 xgbe_init_function_ptrs_phy(&sc->prv.phy_if); in axgbe_attach()
489 xgbe_init_function_ptrs_dev(&sc->prv.hw_if); in axgbe_attach()
490 xgbe_init_function_ptrs_desc(&sc->prv.desc_if); in axgbe_attach()
491 sc->prv.vdata->init_function_ptrs_phy_impl(&sc->prv.phy_if); in axgbe_attach()
494 sc->prv.hw_if.exit(&sc->prv); in axgbe_attach()
497 xgbe_get_all_hw_features(&sc->prv); in axgbe_attach()
500 sc->prv.tx_desc_count = XGBE_TX_DESC_CNT; in axgbe_attach()
501 sc->prv.tx_sf_mode = MTL_TSF_ENABLE; in axgbe_attach()
502 sc->prv.tx_threshold = MTL_TX_THRESHOLD_64; in axgbe_attach()
503 sc->prv.tx_osp_mode = DMA_OSP_ENABLE; in axgbe_attach()
504 sc->prv.rx_desc_count = XGBE_RX_DESC_CNT; in axgbe_attach()
505 sc->prv.rx_sf_mode = MTL_RSF_DISABLE; in axgbe_attach()
506 sc->prv.rx_threshold = MTL_RX_THRESHOLD_64; in axgbe_attach()
507 sc->prv.pbl = DMA_PBL_128; in axgbe_attach()
508 sc->prv.pause_autoneg = 1; in axgbe_attach()
509 sc->prv.tx_pause = 1; in axgbe_attach()
510 sc->prv.rx_pause = 1; in axgbe_attach()
511 sc->prv.phy_speed = SPEED_UNKNOWN; in axgbe_attach()
512 sc->prv.power_down = 0; in axgbe_attach()
515 sc->prv.tx_ring_count = 1; in axgbe_attach()
516 sc->prv.tx_q_count = 1; in axgbe_attach()
517 sc->prv.rx_ring_count = 1; in axgbe_attach()
518 sc->prv.rx_q_count = sc->prv.hw_feat.rx_q_cnt; in axgbe_attach()
521 sc->prv.phy_if.phy_init(&sc->prv); in axgbe_attach()
524 xgbe_init_rx_coalesce(&sc->prv); in axgbe_attach()
525 xgbe_init_tx_coalesce(&sc->prv); in axgbe_attach()
552 set_bit(XGBE_DOWN, &sc->prv.dev_state); in axgbe_attach()