Lines Matching refs:lmac_id

50 	u8 lmac_id;  member
74 static int cgx_fwi_link_change(struct cgx *cgx, int lmac_id, bool en);
94 static inline struct lmac *lmac_pdata(u8 lmac_id, struct cgx *cgx) in lmac_pdata() argument
96 if (!cgx || lmac_id >= MAX_LMAC_PER_CGX) in lmac_pdata()
99 return cgx->lmac_idmap[lmac_id]; in lmac_pdata()
153 int cgx_get_link_info(void *cgxd, int lmac_id, in cgx_get_link_info() argument
156 struct lmac *lmac = lmac_pdata(lmac_id, cgxd); in cgx_get_link_info()
175 int cgx_lmac_addr_set(u8 cgx_id, u8 lmac_id, u8 *mac_addr) in cgx_lmac_addr_set() argument
185 cgx_write(cgx_dev, 0, (CGXX_CMRX_RX_DMAC_CAM0 + (lmac_id * 0x8)), in cgx_lmac_addr_set()
186 cfg | CGX_DMAC_CAM_ADDR_ENABLE | ((u64)lmac_id << 49)); in cgx_lmac_addr_set()
188 cfg = cgx_read(cgx_dev, lmac_id, CGXX_CMRX_RX_DMAC_CTL0); in cgx_lmac_addr_set()
190 cgx_write(cgx_dev, lmac_id, CGXX_CMRX_RX_DMAC_CTL0, cfg); in cgx_lmac_addr_set()
195 u64 cgx_lmac_addr_get(u8 cgx_id, u8 lmac_id) in cgx_lmac_addr_get() argument
200 cfg = cgx_read(cgx_dev, 0, CGXX_CMRX_RX_DMAC_CAM0 + lmac_id * 0x8); in cgx_lmac_addr_get()
204 int cgx_set_pkind(void *cgxd, u8 lmac_id, int pkind) in cgx_set_pkind() argument
208 if (!cgx || lmac_id >= cgx->lmac_count) in cgx_set_pkind()
211 cgx_write(cgx, lmac_id, CGXX_CMRX_RX_ID_MAP, (pkind & 0x3F)); in cgx_set_pkind()
215 static inline u8 cgx_get_lmac_type(struct cgx *cgx, int lmac_id) in cgx_get_lmac_type() argument
219 cfg = cgx_read(cgx, lmac_id, CGXX_CMRX_CFG); in cgx_get_lmac_type()
224 int cgx_lmac_internal_loopback(void *cgxd, int lmac_id, bool enable) in cgx_lmac_internal_loopback() argument
230 if (!cgx || lmac_id >= cgx->lmac_count) in cgx_lmac_internal_loopback()
233 lmac_type = cgx_get_lmac_type(cgx, lmac_id); in cgx_lmac_internal_loopback()
235 cfg = cgx_read(cgx, lmac_id, CGXX_GMP_PCS_MRX_CTL); in cgx_lmac_internal_loopback()
240 cgx_write(cgx, lmac_id, CGXX_GMP_PCS_MRX_CTL, cfg); in cgx_lmac_internal_loopback()
242 cfg = cgx_read(cgx, lmac_id, CGXX_SPUX_CONTROL1); in cgx_lmac_internal_loopback()
247 cgx_write(cgx, lmac_id, CGXX_SPUX_CONTROL1, cfg); in cgx_lmac_internal_loopback()
252 void cgx_lmac_promisc_config(int cgx_id, int lmac_id, bool enable) in cgx_lmac_promisc_config() argument
262 cfg = cgx_read(cgx, lmac_id, CGXX_CMRX_RX_DMAC_CTL0); in cgx_lmac_promisc_config()
265 cgx_write(cgx, lmac_id, CGXX_CMRX_RX_DMAC_CTL0, cfg); in cgx_lmac_promisc_config()
268 (CGXX_CMRX_RX_DMAC_CAM0 + lmac_id * 0x8)); in cgx_lmac_promisc_config()
271 (CGXX_CMRX_RX_DMAC_CAM0 + lmac_id * 0x8), cfg); in cgx_lmac_promisc_config()
274 cfg = cgx_read(cgx, lmac_id, CGXX_CMRX_RX_DMAC_CTL0); in cgx_lmac_promisc_config()
276 cgx_write(cgx, lmac_id, CGXX_CMRX_RX_DMAC_CTL0, cfg); in cgx_lmac_promisc_config()
278 (CGXX_CMRX_RX_DMAC_CAM0 + lmac_id * 0x8)); in cgx_lmac_promisc_config()
281 (CGXX_CMRX_RX_DMAC_CAM0 + lmac_id * 0x8), cfg); in cgx_lmac_promisc_config()
286 void cgx_lmac_enadis_rx_pause_fwding(void *cgxd, int lmac_id, bool enable) in cgx_lmac_enadis_rx_pause_fwding() argument
295 cfg = cgx_read(cgx, lmac_id, CGXX_GMP_GMI_RXX_FRM_CTL); in cgx_lmac_enadis_rx_pause_fwding()
297 cgx_write(cgx, lmac_id, CGXX_GMP_GMI_RXX_FRM_CTL, cfg); in cgx_lmac_enadis_rx_pause_fwding()
299 cfg = cgx_read(cgx, lmac_id, CGXX_SMUX_RX_FRM_CTL); in cgx_lmac_enadis_rx_pause_fwding()
301 cgx_write(cgx, lmac_id, CGXX_SMUX_RX_FRM_CTL, cfg); in cgx_lmac_enadis_rx_pause_fwding()
303 cfg = cgx_read(cgx, lmac_id, CGXX_GMP_GMI_RXX_FRM_CTL); in cgx_lmac_enadis_rx_pause_fwding()
305 cgx_write(cgx, lmac_id, CGXX_GMP_GMI_RXX_FRM_CTL, cfg); in cgx_lmac_enadis_rx_pause_fwding()
307 cfg = cgx_read(cgx, lmac_id, CGXX_SMUX_RX_FRM_CTL); in cgx_lmac_enadis_rx_pause_fwding()
309 cgx_write(cgx, lmac_id, CGXX_SMUX_RX_FRM_CTL, cfg); in cgx_lmac_enadis_rx_pause_fwding()
313 int cgx_get_rx_stats(void *cgxd, int lmac_id, int idx, u64 *rx_stat) in cgx_get_rx_stats() argument
317 if (!cgx || lmac_id >= cgx->lmac_count) in cgx_get_rx_stats()
319 *rx_stat = cgx_read(cgx, lmac_id, CGXX_CMRX_RX_STAT0 + (idx * 8)); in cgx_get_rx_stats()
323 int cgx_get_tx_stats(void *cgxd, int lmac_id, int idx, u64 *tx_stat) in cgx_get_tx_stats() argument
327 if (!cgx || lmac_id >= cgx->lmac_count) in cgx_get_tx_stats()
329 *tx_stat = cgx_read(cgx, lmac_id, CGXX_CMRX_TX_STAT0 + (idx * 8)); in cgx_get_tx_stats()
333 int cgx_lmac_rx_tx_enable(void *cgxd, int lmac_id, bool enable) in cgx_lmac_rx_tx_enable() argument
338 if (!cgx || lmac_id >= cgx->lmac_count) in cgx_lmac_rx_tx_enable()
341 cfg = cgx_read(cgx, lmac_id, CGXX_CMRX_CFG); in cgx_lmac_rx_tx_enable()
346 cgx_write(cgx, lmac_id, CGXX_CMRX_CFG, cfg); in cgx_lmac_rx_tx_enable()
350 int cgx_lmac_tx_enable(void *cgxd, int lmac_id, bool enable) in cgx_lmac_tx_enable() argument
355 if (!cgx || lmac_id >= cgx->lmac_count) in cgx_lmac_tx_enable()
358 cfg = cgx_read(cgx, lmac_id, CGXX_CMRX_CFG); in cgx_lmac_tx_enable()
366 cgx_write(cgx, lmac_id, CGXX_CMRX_CFG, cfg); in cgx_lmac_tx_enable()
370 int cgx_lmac_get_pause_frm(void *cgxd, int lmac_id, in cgx_lmac_get_pause_frm() argument
376 if (!cgx || lmac_id >= cgx->lmac_count) in cgx_lmac_get_pause_frm()
379 cfg = cgx_read(cgx, lmac_id, CGXX_SMUX_RX_FRM_CTL); in cgx_lmac_get_pause_frm()
382 cfg = cgx_read(cgx, lmac_id, CGXX_SMUX_TX_CTL); in cgx_lmac_get_pause_frm()
387 int cgx_lmac_set_pause_frm(void *cgxd, int lmac_id, in cgx_lmac_set_pause_frm() argument
393 if (!cgx || lmac_id >= cgx->lmac_count) in cgx_lmac_set_pause_frm()
396 cfg = cgx_read(cgx, lmac_id, CGXX_SMUX_RX_FRM_CTL); in cgx_lmac_set_pause_frm()
399 cgx_write(cgx, lmac_id, CGXX_SMUX_RX_FRM_CTL, cfg); in cgx_lmac_set_pause_frm()
401 cfg = cgx_read(cgx, lmac_id, CGXX_SMUX_TX_CTL); in cgx_lmac_set_pause_frm()
404 cgx_write(cgx, lmac_id, CGXX_SMUX_TX_CTL, cfg); in cgx_lmac_set_pause_frm()
408 cfg &= ~CGX_CMR_RX_OVR_BP_EN(lmac_id); in cgx_lmac_set_pause_frm()
410 cfg |= CGX_CMR_RX_OVR_BP_EN(lmac_id); in cgx_lmac_set_pause_frm()
411 cfg &= ~CGX_CMR_RX_OVR_BP_BP(lmac_id); in cgx_lmac_set_pause_frm()
417 static void cgx_lmac_pause_frm_config(struct cgx *cgx, int lmac_id, bool enable) in cgx_lmac_pause_frm_config() argument
421 if (!cgx || lmac_id >= cgx->lmac_count) in cgx_lmac_pause_frm_config()
425 cfg = cgx_read(cgx, lmac_id, CGXX_SMUX_RX_FRM_CTL); in cgx_lmac_pause_frm_config()
427 cgx_write(cgx, lmac_id, CGXX_SMUX_RX_FRM_CTL, cfg); in cgx_lmac_pause_frm_config()
429 cfg = cgx_read(cgx, lmac_id, CGXX_GMP_GMI_RXX_FRM_CTL); in cgx_lmac_pause_frm_config()
431 cgx_write(cgx, lmac_id, CGXX_GMP_GMI_RXX_FRM_CTL, cfg); in cgx_lmac_pause_frm_config()
434 cfg = cgx_read(cgx, lmac_id, CGXX_SMUX_TX_CTL); in cgx_lmac_pause_frm_config()
436 cgx_write(cgx, lmac_id, CGXX_SMUX_TX_CTL, cfg); in cgx_lmac_pause_frm_config()
439 cgx_write(cgx, lmac_id, CGXX_SMUX_TX_PAUSE_PKT_TIME, in cgx_lmac_pause_frm_config()
441 cfg = cgx_read(cgx, lmac_id, CGXX_SMUX_TX_PAUSE_PKT_INTERVAL); in cgx_lmac_pause_frm_config()
443 cgx_write(cgx, lmac_id, CGXX_SMUX_TX_PAUSE_PKT_INTERVAL, in cgx_lmac_pause_frm_config()
446 cgx_write(cgx, lmac_id, CGXX_GMP_GMI_TX_PAUSE_PKT_TIME, in cgx_lmac_pause_frm_config()
449 cfg = cgx_read(cgx, lmac_id, in cgx_lmac_pause_frm_config()
452 cgx_write(cgx, lmac_id, CGXX_GMP_GMI_TX_PAUSE_PKT_INTERVAL, in cgx_lmac_pause_frm_config()
456 cfg = cgx_read(cgx, lmac_id, CGXX_SMUX_RX_FRM_CTL); in cgx_lmac_pause_frm_config()
458 cgx_write(cgx, lmac_id, CGXX_SMUX_RX_FRM_CTL, cfg); in cgx_lmac_pause_frm_config()
460 cfg = cgx_read(cgx, lmac_id, CGXX_GMP_GMI_RXX_FRM_CTL); in cgx_lmac_pause_frm_config()
462 cgx_write(cgx, lmac_id, CGXX_GMP_GMI_RXX_FRM_CTL, cfg); in cgx_lmac_pause_frm_config()
465 cfg = cgx_read(cgx, lmac_id, CGXX_SMUX_TX_CTL); in cgx_lmac_pause_frm_config()
467 cgx_write(cgx, lmac_id, CGXX_SMUX_TX_CTL, cfg); in cgx_lmac_pause_frm_config()
471 void cgx_lmac_ptp_config(void *cgxd, int lmac_id, bool enable) in cgx_lmac_ptp_config() argument
481 cfg = cgx_read(cgx, lmac_id, CGXX_GMP_GMI_RXX_FRM_CTL); in cgx_lmac_ptp_config()
483 cgx_write(cgx, lmac_id, CGXX_GMP_GMI_RXX_FRM_CTL, cfg); in cgx_lmac_ptp_config()
485 cfg = cgx_read(cgx, lmac_id, CGXX_SMUX_RX_FRM_CTL); in cgx_lmac_ptp_config()
487 cgx_write(cgx, lmac_id, CGXX_SMUX_RX_FRM_CTL, cfg); in cgx_lmac_ptp_config()
490 cfg = cgx_read(cgx, lmac_id, CGXX_GMP_GMI_RXX_FRM_CTL); in cgx_lmac_ptp_config()
492 cgx_write(cgx, lmac_id, CGXX_GMP_GMI_RXX_FRM_CTL, cfg); in cgx_lmac_ptp_config()
494 cfg = cgx_read(cgx, lmac_id, CGXX_SMUX_RX_FRM_CTL); in cgx_lmac_ptp_config()
496 cgx_write(cgx, lmac_id, CGXX_SMUX_RX_FRM_CTL, cfg); in cgx_lmac_ptp_config()
514 cmd = cgx_read(cgx, lmac->lmac_id, CGX_COMMAND_REG); in cgx_fwi_cmd_send()
527 cgx_write(cgx, lmac->lmac_id, CGX_COMMAND_REG, req); in cgx_fwi_cmd_send()
534 cgx->cgx_id, lmac->lmac_id); in cgx_fwi_cmd_send()
550 struct cgx *cgx, int lmac_id) in cgx_fwi_cmd_generic() argument
555 lmac = lmac_pdata(lmac_id, cgx); in cgx_fwi_cmd_generic()
601 struct cgx *cgx, u8 lmac_id) in link_status_user_format() argument
608 linfo->lmac_type_id = cgx_get_lmac_type(cgx, lmac_id); in link_status_user_format()
625 link_status_user_format(lstat, &event.link_uinfo, cgx, lmac->lmac_id); in cgx_link_change_handler()
629 event.lmac_id = lmac->lmac_id; in cgx_link_change_handler()
640 cgx->cgx_id, lmac->lmac_id); in cgx_link_change_handler()
643 cgx->cgx_id, lmac->lmac_id, err_type); in cgx_link_change_handler()
646 cgx->cgx_id, lmac->lmac_id, in cgx_link_change_handler()
685 event = cgx_read(cgx, lmac->lmac_id, CGX_EVENT_REG); in cgx_fwi_event_handler()
719 cgx_write(lmac->cgx, lmac->lmac_id, CGX_EVENT_REG, 0); in cgx_fwi_event_handler()
720 cgx_write(lmac->cgx, lmac->lmac_id, CGXX_CMRX_INT, FW_CGX_INT); in cgx_fwi_event_handler()
728 int cgx_lmac_evh_register(struct cgx_event_cb *cb, void *cgxd, int lmac_id) in cgx_lmac_evh_register() argument
733 lmac = lmac_pdata(lmac_id, cgx); in cgx_lmac_evh_register()
742 int cgx_lmac_evh_unregister(void *cgxd, int lmac_id) in cgx_lmac_evh_unregister() argument
748 lmac = lmac_pdata(lmac_id, cgx); in cgx_lmac_evh_unregister()
778 static int cgx_fwi_link_change(struct cgx *cgx, int lmac_id, bool enable) in cgx_fwi_link_change() argument
788 return cgx_fwi_cmd_generic(req, &resp, cgx, lmac_id); in cgx_fwi_link_change()
868 lmac->lmac_id = i; in cgx_lmac_init()
880 cgx_write(cgx, lmac->lmac_id, CGXX_CMRX_INT_ENA_W1S, in cgx_lmac_init()