Lines Matching full:adapter
209 struct al_hal_eth_adapter *adapter, in al_eth_an_lt_reg_read() argument
217 if (adapter->rev_id < AL_ETH_REV_ID_3) { in al_eth_an_lt_reg_read()
222 al_reg_write32(&adapter->mac_regs_base->kr.an_addr, reg_addr); in al_eth_an_lt_reg_read()
223 val = al_reg_read32(&adapter->mac_regs_base->kr.an_data); in al_eth_an_lt_reg_read()
225 al_reg_write32(&adapter->mac_regs_base->kr.pma_addr, reg_addr); in al_eth_an_lt_reg_read()
226 val = al_reg_read32(&adapter->mac_regs_base->kr.pma_data); in al_eth_an_lt_reg_read()
235 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_0_addr, in al_eth_an_lt_reg_read()
236 (uintptr_t)®s->an_lt[adapter->curr_lt_unit].addr); in al_eth_an_lt_reg_read()
237 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_0_data, in al_eth_an_lt_reg_read()
240 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_0_addr, in al_eth_an_lt_reg_read()
241 (uintptr_t)®s->an_lt[adapter->curr_lt_unit].data); in al_eth_an_lt_reg_read()
242 val = al_reg_read32(&adapter->mac_regs_base->gen_v3.an_lt_0_data); in al_eth_an_lt_reg_read()
245 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_1_addr, in al_eth_an_lt_reg_read()
246 (uintptr_t)®s->an_lt[adapter->curr_lt_unit].addr); in al_eth_an_lt_reg_read()
247 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_1_data, in al_eth_an_lt_reg_read()
250 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_1_addr, in al_eth_an_lt_reg_read()
251 (uintptr_t)®s->an_lt[adapter->curr_lt_unit].data); in al_eth_an_lt_reg_read()
252 val = al_reg_read32(&adapter->mac_regs_base->gen_v3.an_lt_1_data); in al_eth_an_lt_reg_read()
255 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_2_addr, in al_eth_an_lt_reg_read()
256 (uintptr_t)®s->an_lt[adapter->curr_lt_unit].addr); in al_eth_an_lt_reg_read()
257 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_2_data, in al_eth_an_lt_reg_read()
260 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_2_addr, in al_eth_an_lt_reg_read()
261 (uintptr_t)®s->an_lt[adapter->curr_lt_unit].data); in al_eth_an_lt_reg_read()
262 val = al_reg_read32(&adapter->mac_regs_base->gen_v3.an_lt_2_data); in al_eth_an_lt_reg_read()
265 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_3_addr, in al_eth_an_lt_reg_read()
266 (uintptr_t)®s->an_lt[adapter->curr_lt_unit].addr); in al_eth_an_lt_reg_read()
267 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_3_data, in al_eth_an_lt_reg_read()
270 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_3_addr, in al_eth_an_lt_reg_read()
271 (uintptr_t)®s->an_lt[adapter->curr_lt_unit].data); in al_eth_an_lt_reg_read()
272 val = al_reg_read32(&adapter->mac_regs_base->gen_v3.an_lt_3_data); in al_eth_an_lt_reg_read()
281 al_dbg("[%s]: %s - (%s) lane %d, reg %d, val 0x%x", adapter->name, __func__, in al_eth_an_lt_reg_read()
288 struct al_hal_eth_adapter *adapter, in al_eth_an_lt_reg_write() argument
296 if (adapter->rev_id < AL_ETH_REV_ID_3) { in al_eth_an_lt_reg_write()
299 al_reg_write32(&adapter->mac_regs_base->kr.an_addr, reg_addr); in al_eth_an_lt_reg_write()
300 al_reg_write32(&adapter->mac_regs_base->kr.an_data, val); in al_eth_an_lt_reg_write()
302 al_reg_write32(&adapter->mac_regs_base->kr.pma_addr, reg_addr); in al_eth_an_lt_reg_write()
303 al_reg_write32(&adapter->mac_regs_base->kr.pma_data, val); in al_eth_an_lt_reg_write()
312 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_0_addr, in al_eth_an_lt_reg_write()
313 (uintptr_t)®s->an_lt[adapter->curr_lt_unit].addr); in al_eth_an_lt_reg_write()
314 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_0_data, in al_eth_an_lt_reg_write()
317 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_0_addr, in al_eth_an_lt_reg_write()
318 (uintptr_t)®s->an_lt[adapter->curr_lt_unit].data); in al_eth_an_lt_reg_write()
319 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_0_data, in al_eth_an_lt_reg_write()
323 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_1_addr, in al_eth_an_lt_reg_write()
324 (uintptr_t)®s->an_lt[adapter->curr_lt_unit].addr); in al_eth_an_lt_reg_write()
325 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_1_data, in al_eth_an_lt_reg_write()
328 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_1_addr, in al_eth_an_lt_reg_write()
329 (uintptr_t)®s->an_lt[adapter->curr_lt_unit].data); in al_eth_an_lt_reg_write()
330 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_1_data, in al_eth_an_lt_reg_write()
334 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_2_addr, in al_eth_an_lt_reg_write()
335 (uintptr_t)®s->an_lt[adapter->curr_lt_unit].addr); in al_eth_an_lt_reg_write()
336 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_2_data, in al_eth_an_lt_reg_write()
339 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_2_addr, in al_eth_an_lt_reg_write()
340 (uintptr_t)®s->an_lt[adapter->curr_lt_unit].data); in al_eth_an_lt_reg_write()
341 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_2_data, in al_eth_an_lt_reg_write()
345 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_3_addr, in al_eth_an_lt_reg_write()
346 (uintptr_t)®s->an_lt[adapter->curr_lt_unit].addr); in al_eth_an_lt_reg_write()
347 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_3_data, in al_eth_an_lt_reg_write()
350 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_3_addr, in al_eth_an_lt_reg_write()
351 (uintptr_t)®s->an_lt[adapter->curr_lt_unit].data); in al_eth_an_lt_reg_write()
352 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_3_data, in al_eth_an_lt_reg_write()
362 al_dbg("[%s]: %s - (%s) lane %d, reg %d, val 0x%x", adapter->name, __func__, in al_eth_an_lt_reg_write()
366 static void al_eth_an_lt_unit_config(struct al_hal_eth_adapter *adapter) in al_eth_an_lt_unit_config() argument
374 switch (adapter->mac_mode) { in al_eth_an_lt_unit_config()
386 adapter->curr_lt_unit = AL_ETH_AN_LT_UNIT_20_BIT; in al_eth_an_lt_unit_config()
400 adapter->curr_lt_unit = AL_ETH_AN_LT_UNIT_32_BIT; in al_eth_an_lt_unit_config()
444 adapter->curr_lt_unit = AL_ETH_AN_LT_UNIT_16_BIT; in al_eth_an_lt_unit_config()
468 adapter->curr_lt_unit = AL_ETH_AN_LT_UNIT_32_BIT; in al_eth_an_lt_unit_config()
476 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_0_addr, in al_eth_an_lt_unit_config()
478 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_0_data, in al_eth_an_lt_unit_config()
481 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_1_addr, in al_eth_an_lt_unit_config()
483 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_1_data, in al_eth_an_lt_unit_config()
486 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_2_addr, in al_eth_an_lt_unit_config()
488 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_2_data, in al_eth_an_lt_unit_config()
491 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_3_addr, in al_eth_an_lt_unit_config()
493 al_reg_write32(&adapter->mac_regs_base->gen_v3.an_lt_3_data, in al_eth_an_lt_unit_config()
498 struct al_hal_eth_adapter *adapter, in al_eth_lp_coeff_up_get() argument
504 reg = al_eth_an_lt_reg_read(adapter, AL_ETH_KR_PMD_LP_COEF_UP, AL_ETH_LT_REGS, lane); in al_eth_lp_coeff_up_get()
528 struct al_hal_eth_adapter *adapter, in al_eth_lp_status_report_get() argument
534 reg = al_eth_an_lt_reg_read(adapter, AL_ETH_KR_PMD_LP_STATUS_REPORT, AL_ETH_LT_REGS, lane); in al_eth_lp_status_report_get()
555 struct al_hal_eth_adapter *adapter, in al_eth_ld_coeff_up_set() argument
582 al_eth_an_lt_reg_write(adapter, AL_ETH_KR_PMD_LD_COEF_UP, AL_ETH_LT_REGS, lane, reg); in al_eth_ld_coeff_up_set()
586 struct al_hal_eth_adapter *adapter, in al_eth_ld_status_report_set() argument
611 al_eth_an_lt_reg_write(adapter, AL_ETH_KR_PMD_LD_STATUS_REPORT, AL_ETH_LT_REGS, lane, reg); in al_eth_ld_status_report_set()
614 al_bool al_eth_kr_receiver_frame_lock_get(struct al_hal_eth_adapter *adapter, in al_eth_kr_receiver_frame_lock_get() argument
619 reg = al_eth_an_lt_reg_read(adapter, AL_ETH_KR_PMD_STATUS, AL_ETH_LT_REGS, lane); in al_eth_kr_receiver_frame_lock_get()
625 al_bool al_eth_kr_startup_proto_prog_get(struct al_hal_eth_adapter *adapter, in al_eth_kr_startup_proto_prog_get() argument
630 reg = al_eth_an_lt_reg_read(adapter, AL_ETH_KR_PMD_STATUS, AL_ETH_LT_REGS, lane); in al_eth_kr_startup_proto_prog_get()
636 al_bool al_eth_kr_training_status_fail_get(struct al_hal_eth_adapter *adapter, in al_eth_kr_training_status_fail_get() argument
641 reg = al_eth_an_lt_reg_read(adapter, AL_ETH_KR_PMD_STATUS, AL_ETH_LT_REGS, lane); in al_eth_kr_training_status_fail_get()
646 void al_eth_receiver_ready_set(struct al_hal_eth_adapter *adapter, in al_eth_receiver_ready_set() argument
649 al_eth_an_lt_reg_write(adapter, AL_ETH_KR_PMD_STATUS, AL_ETH_LT_REGS, lane, 1); in al_eth_receiver_ready_set()
653 static int al_eth_kr_an_validate_adv(struct al_hal_eth_adapter *adapter, in al_eth_kr_an_validate_adv() argument
656 al_assert(adapter); in al_eth_kr_an_validate_adv()
663 adapter->name, __func__, an_adv->selector_field); in al_eth_kr_an_validate_adv()
669 adapter->name, __func__, an_adv->capability); in al_eth_kr_an_validate_adv()
675 adapter->name, __func__, an_adv->remote_fault); in al_eth_kr_an_validate_adv()
681 adapter->name, __func__, an_adv->acknowledge); in al_eth_kr_an_validate_adv()
688 static int al_eth_kr_an_write_adv(struct al_hal_eth_adapter *adapter, in al_eth_kr_an_write_adv() argument
718 al_eth_an_lt_reg_write(adapter, AL_ETH_KR_AN_ADV0, AL_ETH_AN_REGS, in al_eth_kr_an_write_adv()
730 al_eth_an_lt_reg_write(adapter, AL_ETH_KR_AN_ADV1, AL_ETH_AN_REGS, in al_eth_kr_an_write_adv()
742 al_eth_an_lt_reg_write(adapter, AL_ETH_KR_AN_ADV2, AL_ETH_AN_REGS, in al_eth_kr_an_write_adv()
748 void al_eth_kr_an_read_adv(struct al_hal_eth_adapter *adapter, in al_eth_kr_an_read_adv() argument
756 reg = al_eth_an_lt_reg_read(adapter, AL_ETH_KR_AN_REM_ADV0, in al_eth_kr_an_read_adv()
781 reg = al_eth_an_lt_reg_read(adapter, AL_ETH_KR_AN_REM_ADV1, in al_eth_kr_an_read_adv()
793 reg = al_eth_an_lt_reg_read(adapter, AL_ETH_KR_AN_REM_ADV2, in al_eth_kr_an_read_adv()
805 int al_eth_kr_next_page_read(struct al_hal_eth_adapter *adapter, in al_eth_kr_next_page_read() argument
810 reg = al_eth_an_lt_reg_read(adapter, in al_eth_kr_next_page_read()
830 np->unformatted_code_field1 = al_eth_an_lt_reg_read(adapter, in al_eth_kr_next_page_read()
834 np->unformatted_code_field2 = al_eth_an_lt_reg_read(adapter, in al_eth_kr_next_page_read()
842 int al_eth_kr_next_page_write(struct al_hal_eth_adapter *adapter, in al_eth_kr_next_page_write() argument
863 al_eth_an_lt_reg_write(adapter, AL_ETH_KR_AN_XNP_ADV0, AL_ETH_AN_REGS, in al_eth_kr_next_page_write()
866 al_eth_an_lt_reg_write(adapter, AL_ETH_KR_AN_XNP_ADV1, AL_ETH_AN_REGS, in al_eth_kr_next_page_write()
868 al_eth_an_lt_reg_write(adapter, AL_ETH_KR_AN_XNP_ADV2, AL_ETH_AN_REGS, in al_eth_kr_next_page_write()
874 int al_eth_kr_an_init(struct al_hal_eth_adapter *adapter, in al_eth_kr_an_init() argument
879 if (adapter->rev_id > AL_ETH_REV_ID_2) in al_eth_kr_an_init()
880 al_eth_an_lt_unit_config(adapter); in al_eth_kr_an_init()
882 rc = al_eth_kr_an_validate_adv(adapter, an_adv); in al_eth_kr_an_init()
886 rc = al_eth_kr_an_write_adv(adapter, an_adv); in al_eth_kr_an_init()
891 al_eth_an_lt_reg_read(adapter, AL_ETH_KR_AN_STATUS, AL_ETH_AN_REGS, AL_ETH_AN__LT_LANE_0); in al_eth_kr_an_init()
893 al_dbg("[%s]: autonegotiation initialized successfully", adapter->name); in al_eth_kr_an_init()
897 int al_eth_kr_an_start(struct al_hal_eth_adapter *adapter, in al_eth_kr_an_start() argument
905 adapter->name, (lt_enable == AL_TRUE) ? "yes" : "no"); in al_eth_kr_an_start()
907 al_eth_an_lt_reg_write(adapter, AL_ETH_KR_PMD_CONTROL, AL_ETH_LT_REGS, in al_eth_kr_an_start()
913 al_eth_an_lt_reg_write(adapter, AL_ETH_KR_AN_CONTROL, AL_ETH_AN_REGS, in al_eth_kr_an_start()
917 al_eth_kr_lt_initialize(adapter, lane); in al_eth_kr_an_start()
923 void al_eth_kr_an_stop(struct al_hal_eth_adapter *adapter) in al_eth_kr_an_stop() argument
925 al_eth_an_lt_reg_write(adapter, AL_ETH_KR_AN_CONTROL, AL_ETH_AN_REGS, in al_eth_kr_an_stop()
929 void al_eth_kr_an_status_check(struct al_hal_eth_adapter *adapter, in al_eth_kr_an_status_check() argument
936 reg = al_eth_an_lt_reg_read(adapter, AL_ETH_KR_AN_STATUS, in al_eth_kr_an_status_check()
942 adapter->name, __func__, reg); in al_eth_kr_an_status_check()
960 void al_eth_kr_lt_restart(struct al_hal_eth_adapter *adapter, in al_eth_kr_lt_restart() argument
963 al_dbg("[%s]: KR LT Restart Link Training.\n", adapter->name); in al_eth_kr_lt_restart()
965 al_eth_an_lt_reg_write(adapter, AL_ETH_KR_PMD_CONTROL, AL_ETH_LT_REGS, in al_eth_kr_lt_restart()
970 void al_eth_kr_lt_stop(struct al_hal_eth_adapter *adapter, in al_eth_kr_lt_stop() argument
973 al_dbg("[%s]: KR LT Stop Link Training.\n", adapter->name); in al_eth_kr_lt_stop()
975 al_eth_an_lt_reg_write(adapter, AL_ETH_KR_PMD_CONTROL, AL_ETH_LT_REGS, in al_eth_kr_lt_stop()
979 void al_eth_kr_lt_initialize(struct al_hal_eth_adapter *adapter, in al_eth_kr_lt_initialize() argument
982 al_dbg("[%s]: KR LT Initialize.\n", adapter->name); in al_eth_kr_lt_initialize()
985 al_eth_kr_lt_stop(adapter, lane); in al_eth_kr_lt_initialize()
988 al_eth_an_lt_reg_write(adapter, AL_ETH_KR_PMD_STATUS, AL_ETH_LT_REGS, lane, 0); in al_eth_kr_lt_initialize()
991 al_eth_an_lt_reg_write(adapter, AL_ETH_KR_PMD_LD_COEF_UP, AL_ETH_LT_REGS, lane, 0); in al_eth_kr_lt_initialize()
993 al_eth_an_lt_reg_write(adapter, AL_ETH_KR_PMD_LD_STATUS_REPORT, AL_ETH_LT_REGS, lane, 0); in al_eth_kr_lt_initialize()
996 al_eth_kr_lt_restart(adapter, lane); in al_eth_kr_lt_initialize()
999 al_bool al_eth_kr_lt_frame_lock_wait(struct al_hal_eth_adapter *adapter, in al_eth_kr_lt_frame_lock_wait() argument
1007 reg = al_eth_an_lt_reg_read(adapter, AL_ETH_KR_PMD_STATUS, AL_ETH_LT_REGS, lane); in al_eth_kr_lt_frame_lock_wait()
1012 adapter->name, loop, reg); in al_eth_kr_lt_frame_lock_wait()
1020 adapter->name, loop, reg); in al_eth_kr_lt_frame_lock_wait()
1027 adapter->name, reg); in al_eth_kr_lt_frame_lock_wait()