.. | .. |
---|
200 | 200 | */ |
---|
201 | 201 | static int __cvmx_helper_sgmii_hardware_init_link_speed(int interface, |
---|
202 | 202 | int index, |
---|
203 | | - cvmx_helper_link_info_t |
---|
| 203 | + union cvmx_helper_link_info |
---|
204 | 204 | link_info) |
---|
205 | 205 | { |
---|
206 | 206 | int is_enabled; |
---|
.. | .. |
---|
394 | 394 | * |
---|
395 | 395 | * Returns Link state |
---|
396 | 396 | */ |
---|
397 | | -cvmx_helper_link_info_t __cvmx_helper_sgmii_link_get(int ipd_port) |
---|
| 397 | +union cvmx_helper_link_info __cvmx_helper_sgmii_link_get(int ipd_port) |
---|
398 | 398 | { |
---|
399 | | - cvmx_helper_link_info_t result; |
---|
| 399 | + union cvmx_helper_link_info result; |
---|
400 | 400 | union cvmx_pcsx_miscx_ctl_reg pcs_misc_ctl_reg; |
---|
401 | 401 | int interface = cvmx_helper_get_interface_num(ipd_port); |
---|
402 | 402 | int index = cvmx_helper_get_interface_index_num(ipd_port); |
---|
.. | .. |
---|
505 | 505 | * Returns Zero on success, negative on failure |
---|
506 | 506 | */ |
---|
507 | 507 | int __cvmx_helper_sgmii_link_set(int ipd_port, |
---|
508 | | - cvmx_helper_link_info_t link_info) |
---|
| 508 | + union cvmx_helper_link_info link_info) |
---|
509 | 509 | { |
---|
510 | 510 | int interface = cvmx_helper_get_interface_num(ipd_port); |
---|
511 | 511 | int index = cvmx_helper_get_interface_index_num(ipd_port); |
---|
512 | 512 | __cvmx_helper_sgmii_hardware_init_link(interface, index); |
---|
513 | 513 | return __cvmx_helper_sgmii_hardware_init_link_speed(interface, index, |
---|
514 | 514 | link_info); |
---|
515 | | -} |
---|
516 | | - |
---|
517 | | -/** |
---|
518 | | - * Configure a port for internal and/or external loopback. Internal |
---|
519 | | - * loopback causes packets sent by the port to be received by |
---|
520 | | - * Octeon. External loopback causes packets received from the wire to |
---|
521 | | - * sent out again. |
---|
522 | | - * |
---|
523 | | - * @ipd_port: IPD/PKO port to loopback. |
---|
524 | | - * @enable_internal: |
---|
525 | | - * Non zero if you want internal loopback |
---|
526 | | - * @enable_external: |
---|
527 | | - * Non zero if you want external loopback |
---|
528 | | - * |
---|
529 | | - * Returns Zero on success, negative on failure. |
---|
530 | | - */ |
---|
531 | | -int __cvmx_helper_sgmii_configure_loopback(int ipd_port, int enable_internal, |
---|
532 | | - int enable_external) |
---|
533 | | -{ |
---|
534 | | - int interface = cvmx_helper_get_interface_num(ipd_port); |
---|
535 | | - int index = cvmx_helper_get_interface_index_num(ipd_port); |
---|
536 | | - union cvmx_pcsx_mrx_control_reg pcsx_mrx_control_reg; |
---|
537 | | - union cvmx_pcsx_miscx_ctl_reg pcsx_miscx_ctl_reg; |
---|
538 | | - |
---|
539 | | - pcsx_mrx_control_reg.u64 = |
---|
540 | | - cvmx_read_csr(CVMX_PCSX_MRX_CONTROL_REG(index, interface)); |
---|
541 | | - pcsx_mrx_control_reg.s.loopbck1 = enable_internal; |
---|
542 | | - cvmx_write_csr(CVMX_PCSX_MRX_CONTROL_REG(index, interface), |
---|
543 | | - pcsx_mrx_control_reg.u64); |
---|
544 | | - |
---|
545 | | - pcsx_miscx_ctl_reg.u64 = |
---|
546 | | - cvmx_read_csr(CVMX_PCSX_MISCX_CTL_REG(index, interface)); |
---|
547 | | - pcsx_miscx_ctl_reg.s.loopbck2 = enable_external; |
---|
548 | | - cvmx_write_csr(CVMX_PCSX_MISCX_CTL_REG(index, interface), |
---|
549 | | - pcsx_miscx_ctl_reg.u64); |
---|
550 | | - |
---|
551 | | - __cvmx_helper_sgmii_hardware_init_link(interface, index); |
---|
552 | | - return 0; |
---|
553 | 515 | } |
---|