Lines Matching refs:kr_data
128 al_eth_kr_an_run(struct al_eth_kr_data *kr_data, struct al_eth_an_adv *an_adv, in al_eth_kr_an_run() argument
137 rc = al_eth_kr_an_init(kr_data->adapter, an_adv); in al_eth_kr_an_run()
140 kr_data->adapter->name, __func__); in al_eth_kr_an_run()
144 rc = al_eth_kr_an_start(kr_data->adapter, AL_ETH_AN__LT_LANE_0, in al_eth_kr_an_run()
148 kr_data->adapter->name, __func__); in al_eth_kr_an_run()
157 kr_data->adapter->name, __func__); in al_eth_kr_an_run()
162 al_eth_kr_an_status_check(kr_data->adapter, &page_received, in al_eth_kr_an_run()
168 kr_data->adapter->name, __func__); in al_eth_kr_an_run()
173 al_eth_kr_an_read_adv(kr_data->adapter, an_partner_adv); in al_eth_kr_an_run()
176 kr_data->adapter->name, __func__, error); in al_eth_kr_an_run()
183 al_eth_lt_coeff_set(struct al_eth_kr_data *kr_data, in al_eth_lt_coeff_set() argument
196 if (kr_data->serdes_obj->tx_deemph_inc( in al_eth_lt_coeff_set()
197 kr_data->serdes_obj, in al_eth_lt_coeff_set()
198 kr_data->lane, in al_eth_lt_coeff_set()
205 if (kr_data->serdes_obj->tx_deemph_dec( in al_eth_lt_coeff_set()
206 kr_data->serdes_obj, in al_eth_lt_coeff_set()
207 kr_data->lane, in al_eth_lt_coeff_set()
223 al_eth_coeff_req_handle(struct al_eth_kr_data *kr_data, in al_eth_coeff_req_handle() argument
226 struct al_eth_kr_status_report_data *report = &kr_data->status_report; in al_eth_coeff_req_handle()
230 kr_data->serdes_obj->tx_deemph_preset( in al_eth_coeff_req_handle()
231 kr_data->serdes_obj, in al_eth_coeff_req_handle()
232 kr_data->lane); in al_eth_coeff_req_handle()
251 report->c_minus = al_eth_lt_coeff_set(kr_data, in al_eth_coeff_req_handle()
254 report->c_zero = al_eth_lt_coeff_set(kr_data, in al_eth_coeff_req_handle()
257 report->c_plus = al_eth_lt_coeff_set(kr_data, in al_eth_coeff_req_handle()
265 al_eth_kr_lt_receiver_task_init(struct al_eth_kr_data *kr_data) in al_eth_kr_lt_receiver_task_init() argument
268 al_memset(&kr_data->last_lpcoeff, 0, in al_eth_kr_lt_receiver_task_init()
270 al_memset(&kr_data->status_report, 0, in al_eth_kr_lt_receiver_task_init()
275 al_eth_lp_coeff_up_change(struct al_eth_kr_data *kr_data, in al_eth_lp_coeff_up_change() argument
278 struct al_eth_kr_coef_up_data *last_lpcoeff = &kr_data->last_lpcoeff; in al_eth_lp_coeff_up_change()
298 al_eth_kr_lt_receiver_task_run(struct al_eth_kr_data *kr_data) in al_eth_kr_lt_receiver_task_run() argument
309 if (al_eth_kr_receiver_frame_lock_get(kr_data->adapter, in al_eth_kr_lt_receiver_task_run()
315 al_eth_lp_coeff_up_get(kr_data->adapter, in al_eth_kr_lt_receiver_task_run()
318 if (al_eth_lp_coeff_up_change(kr_data, &new_lpcoeff) != 0) { in al_eth_kr_lt_receiver_task_run()
320 al_eth_coeff_req_handle(kr_data, &new_lpcoeff); in al_eth_kr_lt_receiver_task_run()
328 al_eth_kr_lt_transmitter_task_init(struct al_eth_kr_data *kr_data) in al_eth_kr_lt_transmitter_task_init() argument
335 kr_data->qarray[i] = 0; in al_eth_kr_lt_transmitter_task_init()
337 kr_data->qarray_cnt = 0; in al_eth_kr_lt_transmitter_task_init()
338 kr_data->algo_state = TX_INIT; in al_eth_kr_lt_transmitter_task_init()
339 kr_data->curr_coeff = COEFF_TO_MANIPULATE; /* first coeff to test. */ in al_eth_kr_lt_transmitter_task_init()
340 kr_data->coeff_status_step = C72_CSTATE_NOT_UPDATED; in al_eth_kr_lt_transmitter_task_init()
341 kr_data->end_steps_cnt = QARRAY_SIZE-1; /* go back to first entry */ in al_eth_kr_lt_transmitter_task_init()
347 rc = kr_data->serdes_obj->eye_measure_run( in al_eth_kr_lt_transmitter_task_init()
348 kr_data->serdes_obj, in al_eth_kr_lt_transmitter_task_init()
349 kr_data->lane, in al_eth_kr_lt_transmitter_task_init()
416 al_eth_kr_lt_transmitter_task_run(struct al_eth_kr_data *kr_data) in al_eth_kr_lt_transmitter_task_run() argument
430 if (al_eth_kr_receiver_frame_lock_get(kr_data->adapter, in al_eth_kr_lt_transmitter_task_run()
435 al_eth_lp_status_report_get(kr_data->adapter, in al_eth_kr_lt_transmitter_task_run()
440 kr_data->curr_coeff); in al_eth_kr_lt_transmitter_task_run()
442 nextstate = kr_data->algo_state; /* default we stay in curr state; */ in al_eth_kr_lt_transmitter_task_run()
444 switch (kr_data->algo_state) { in al_eth_kr_lt_transmitter_task_run()
447 if (al_eth_kr_startup_proto_prog_get(kr_data->adapter, in al_eth_kr_lt_transmitter_task_run()
454 kr_data->qarray_cnt = 0; in al_eth_kr_lt_transmitter_task_run()
455 kr_data->curr_coeff = COEFF_TO_MANIPULATE; in al_eth_kr_lt_transmitter_task_run()
456 kr_data->coeff_status_step = C72_CSTATE_NOT_UPDATED; in al_eth_kr_lt_transmitter_task_run()
458 kr_data->end_steps_cnt = QARRAY_SIZE-1; in al_eth_kr_lt_transmitter_task_run()
488 rc = kr_data->serdes_obj->eye_measure_run( in al_eth_kr_lt_transmitter_task_run()
489 kr_data->serdes_obj, in al_eth_kr_lt_transmitter_task_run()
490 kr_data->lane, in al_eth_kr_lt_transmitter_task_run()
503 kr_data->qarray[i] = kr_data->qarray[i+1]; in al_eth_kr_lt_transmitter_task_run()
505 kr_data->qarray[QARRAY_SIZE-1] = val; in al_eth_kr_lt_transmitter_task_run()
507 if (kr_data->qarray_cnt < QARRAY_SIZE) in al_eth_kr_lt_transmitter_task_run()
508 kr_data->qarray_cnt++; in al_eth_kr_lt_transmitter_task_run()
514 if (kr_data->qarray_cnt < QARRAY_SIZE) { in al_eth_kr_lt_transmitter_task_run()
520 if (kr_data->coeff_status_step == C72_CSTATE_MIN) in al_eth_kr_lt_transmitter_task_run()
528 kr_data->curr_coeff, AL_PHY_KR_COEF_UP_DEC); in al_eth_kr_lt_transmitter_task_run()
539 if ((kr_data->qarray[0] < kr_data->qarray[1]) && in al_eth_kr_lt_transmitter_task_run()
540 (kr_data->qarray[0] < kr_data->qarray[2])) { in al_eth_kr_lt_transmitter_task_run()
546 kr_data->curr_coeff, AL_PHY_KR_COEF_UP_INC); in al_eth_kr_lt_transmitter_task_run()
550 if (kr_data->end_steps_cnt > 0) in al_eth_kr_lt_transmitter_task_run()
551 kr_data->end_steps_cnt--; in al_eth_kr_lt_transmitter_task_run()
553 if (kr_data->coeff_status_step == in al_eth_kr_lt_transmitter_task_run()
562 kr_data->curr_coeff, in al_eth_kr_lt_transmitter_task_run()
575 kr_data->coeff_status_step = coeff_status_cur; in al_eth_kr_lt_transmitter_task_run()
581 kr_data->curr_coeff, AL_PHY_KR_COEF_UP_DEC); in al_eth_kr_lt_transmitter_task_run()
593 kr_data->curr_coeff, AL_PHY_KR_COEF_UP_INC); in al_eth_kr_lt_transmitter_task_run()
597 if (kr_data->end_steps_cnt != 0) { in al_eth_kr_lt_transmitter_task_run()
603 kr_data->curr_coeff, AL_PHY_KR_COEF_UP_INC); in al_eth_kr_lt_transmitter_task_run()
608 if (kr_data->end_steps_cnt > 0) in al_eth_kr_lt_transmitter_task_run()
609 kr_data->end_steps_cnt--; in al_eth_kr_lt_transmitter_task_run()
622 if ((int)kr_data->curr_coeff < COEFF_TO_MANIPULATE_LAST) { in al_eth_kr_lt_transmitter_task_run()
626 kr_data->qarray[i] = 0; in al_eth_kr_lt_transmitter_task_run()
628 kr_data->qarray_cnt = 0; in al_eth_kr_lt_transmitter_task_run()
629 kr_data->end_steps_cnt = QARRAY_SIZE-1; in al_eth_kr_lt_transmitter_task_run()
630 kr_data->coeff_status_step = C72_CSTATE_NOT_UPDATED; in al_eth_kr_lt_transmitter_task_run()
631 kr_data->curr_coeff++; in al_eth_kr_lt_transmitter_task_run()
634 kr_data->adapter->name, kr_data->curr_coeff); in al_eth_kr_lt_transmitter_task_run()
646 kr_data->status_report.receiver_ready = AL_TRUE; in al_eth_kr_lt_transmitter_task_run()
654 al_eth_receiver_ready_set(kr_data->adapter, in al_eth_kr_lt_transmitter_task_run()
662 nextstate = kr_data->algo_state; in al_eth_kr_lt_transmitter_task_run()
671 if (kr_data->algo_state != nextstate) { in al_eth_kr_lt_transmitter_task_run()
673 " Qarray=%d/%d/%d\n", kr_data->adapter->name, in al_eth_kr_lt_transmitter_task_run()
674 al_eth_kr_mac_sm_name[kr_data->algo_state], in al_eth_kr_lt_transmitter_task_run()
676 kr_data->qarray[0], kr_data->qarray[1], kr_data->qarray[2]); in al_eth_kr_lt_transmitter_task_run()
679 kr_data->algo_state = nextstate; in al_eth_kr_lt_transmitter_task_run()
686 al_eth_ld_coeff_up_set(kr_data->adapter, AL_ETH_AN__LT_LANE_0, &ldcoeff); in al_eth_kr_lt_transmitter_task_run()
687 al_eth_ld_status_report_set(kr_data->adapter, AL_ETH_AN__LT_LANE_0, in al_eth_kr_lt_transmitter_task_run()
688 &kr_data->status_report); in al_eth_kr_lt_transmitter_task_run()
695 al_eth_kr_run_lt(struct al_eth_kr_data *kr_data) in al_eth_kr_run_lt() argument
704 al_eth_kr_lt_initialize(kr_data->adapter, AL_ETH_AN__LT_LANE_0); in al_eth_kr_run_lt()
706 if (al_eth_kr_lt_frame_lock_wait(kr_data->adapter, AL_ETH_AN__LT_LANE_0, in al_eth_kr_run_lt()
713 al_eth_kr_lt_receiver_task_init(kr_data); in al_eth_kr_run_lt()
714 ret = al_eth_kr_lt_transmitter_task_init(kr_data); in al_eth_kr_run_lt()
720 ret = al_eth_kr_lt_receiver_task_run(kr_data); in al_eth_kr_run_lt()
724 ret = al_eth_kr_lt_transmitter_task_run(kr_data); in al_eth_kr_run_lt()
731 } while ((al_eth_kr_startup_proto_prog_get(kr_data->adapter, in al_eth_kr_run_lt()
735 al_eth_kr_training_status_fail_get(kr_data->adapter, in al_eth_kr_run_lt()
738 kr_data->adapter->name, cnt, in al_eth_kr_run_lt()
742 kr_data->adapter->name, in al_eth_kr_run_lt()
756 kr_data->adapter->name); in al_eth_kr_run_lt()
766 al_eth_kr_lt_stop(kr_data->adapter, AL_ETH_AN__LT_LANE_0); in al_eth_kr_run_lt()
770 al_eth_kr_an_status_check(kr_data->adapter, &page_received, in al_eth_kr_run_lt()
781 al_eth_kr_an_stop(kr_data->adapter); in al_eth_kr_run_lt()
793 struct al_eth_kr_data kr_data; in al_eth_an_lt_execute() local
797 al_memset(&kr_data, 0, sizeof(struct al_eth_kr_data)); in al_eth_an_lt_execute()
799 kr_data.adapter = adapter; in al_eth_an_lt_execute()
800 kr_data.serdes_obj = serdes_obj; in al_eth_an_lt_execute()
801 kr_data.lane = lane; in al_eth_an_lt_execute()
808 kr_data.serdes_obj->rx_advanced_params_set( in al_eth_an_lt_execute()
809 kr_data.serdes_obj, in al_eth_an_lt_execute()
810 kr_data.lane, in al_eth_an_lt_execute()
813 rc = al_eth_kr_an_run(&kr_data, an_adv, partner_adv); in al_eth_an_lt_execute()
828 rc = al_eth_kr_run_lt(&kr_data); in al_eth_an_lt_execute()