Lines Matching full:interface

69 /* Port count per interface */
77 * Return the number of interfaces the chip has. Each interface
80 * one interface.
93 * Return the number of ports on an interface. Depending on the
95 * specifies that the interface doesn't exist or isn't usable.
97 * @interface: Interface to get the port count for
99 * Returns Number of ports on interface. Can be Zero.
101 int cvmx_helper_ports_on_interface(int interface) in cvmx_helper_ports_on_interface() argument
103 return interface_port_count[interface]; in cvmx_helper_ports_on_interface()
107 * Get the operating mode of an interface. Depending on the Octeon
109 * of the type of packet I/O supported by an interface.
111 * @interface: Interface to probe
113 * Returns Mode of the interface. Unknown or unsupported interfaces return
116 cvmx_helper_interface_mode_t cvmx_helper_interface_get_mode(int interface) in cvmx_helper_interface_get_mode() argument
119 if (interface == 2) in cvmx_helper_interface_get_mode()
122 if (interface == 3) { in cvmx_helper_interface_get_mode()
130 if (interface == 0 in cvmx_helper_interface_get_mode()
134 * Lie about interface type of CN3005 board. This in cvmx_helper_interface_get_mode()
146 /* Interface 1 is always disabled on CN31XX and CN30XX */ in cvmx_helper_interface_get_mode()
147 if ((interface == 1) in cvmx_helper_interface_get_mode()
153 mode.u64 = cvmx_read_csr(CVMX_GMXX_INF_MODE(interface)); in cvmx_helper_interface_get_mode()
190 * per interface numbering
237 * This function sets the interface_port_count[interface] correctly,
241 * @interface: Interface to probe
245 int cvmx_helper_interface_enumerate(int interface) in cvmx_helper_interface_enumerate() argument
247 switch (cvmx_helper_interface_get_mode(interface)) { in cvmx_helper_interface_enumerate()
251 interface_port_count[interface] = 0; in cvmx_helper_interface_enumerate()
255 interface_port_count[interface] = in cvmx_helper_interface_enumerate()
256 __cvmx_helper_xaui_enumerate(interface); in cvmx_helper_interface_enumerate()
264 interface_port_count[interface] = in cvmx_helper_interface_enumerate()
265 __cvmx_helper_rgmii_enumerate(interface); in cvmx_helper_interface_enumerate()
272 interface_port_count[interface] = in cvmx_helper_interface_enumerate()
273 __cvmx_helper_spi_enumerate(interface); in cvmx_helper_interface_enumerate()
281 interface_port_count[interface] = in cvmx_helper_interface_enumerate()
282 __cvmx_helper_sgmii_enumerate(interface); in cvmx_helper_interface_enumerate()
284 /* PCI target Network Packet Interface */ in cvmx_helper_interface_enumerate()
286 interface_port_count[interface] = in cvmx_helper_interface_enumerate()
287 __cvmx_helper_npi_enumerate(interface); in cvmx_helper_interface_enumerate()
294 interface_port_count[interface] = in cvmx_helper_interface_enumerate()
295 __cvmx_helper_loop_enumerate(interface); in cvmx_helper_interface_enumerate()
299 interface_port_count[interface] = in cvmx_helper_interface_enumerate()
300 __cvmx_helper_board_interface_probe(interface, in cvmx_helper_interface_enumerate()
302 [interface]); in cvmx_helper_interface_enumerate()
311 * This function probes an interface to determine the actual
314 * interface_port_count[interface] correctly. Hardware setup of the
317 * @interface: Interface to probe
321 int cvmx_helper_interface_probe(int interface) in cvmx_helper_interface_probe() argument
323 cvmx_helper_interface_enumerate(interface); in cvmx_helper_interface_probe()
327 switch (cvmx_helper_interface_get_mode(interface)) { in cvmx_helper_interface_probe()
334 __cvmx_helper_xaui_probe(interface); in cvmx_helper_interface_probe()
342 __cvmx_helper_rgmii_probe(interface); in cvmx_helper_interface_probe()
349 __cvmx_helper_spi_probe(interface); in cvmx_helper_interface_probe()
357 __cvmx_helper_sgmii_probe(interface); in cvmx_helper_interface_probe()
359 /* PCI target Network Packet Interface */ in cvmx_helper_interface_probe()
361 __cvmx_helper_npi_probe(interface); in cvmx_helper_interface_probe()
368 __cvmx_helper_loop_probe(interface); in cvmx_helper_interface_probe()
379 * Setup the IPD/PIP for the ports on an interface. Packet
381 * interface. The number of ports on the interface must already
384 * @interface: Interface to setup IPD/PIP for
388 static int __cvmx_helper_interface_setup_ipd(int interface) in __cvmx_helper_interface_setup_ipd() argument
390 int ipd_port = cvmx_helper_get_ipd_port(interface, 0); in __cvmx_helper_interface_setup_ipd()
391 int num_ports = interface_port_count[interface]; in __cvmx_helper_interface_setup_ipd()
402 * interface or port. This must be called before IPD is enabled.
423 * Setup the PKO for the ports on an interface. The number of
427 * @interface: Interface to setup PKO for
431 static int __cvmx_helper_interface_setup_pko(int interface) in __cvmx_helper_interface_setup_pko() argument
453 int ipd_port = cvmx_helper_get_ipd_port(interface, 0); in __cvmx_helper_interface_setup_pko()
454 int num_ports = interface_port_count[interface]; in __cvmx_helper_interface_setup_pko()
475 * interface or port. This must be called before PKO is enabled.
504 int interface; in __cvmx_helper_global_setup_backpressure() local
505 for (interface = 0; interface < num_interfaces; interface++) { in __cvmx_helper_global_setup_backpressure()
506 switch (cvmx_helper_interface_get_mode(interface)) { in __cvmx_helper_global_setup_backpressure()
518 cvmx_gmx_set_backpressure_override(interface, 0xf); in __cvmx_helper_global_setup_backpressure()
534 * @interface: Interface to enable
538 static int __cvmx_helper_packet_hardware_enable(int interface) in __cvmx_helper_packet_hardware_enable() argument
541 switch (cvmx_helper_interface_get_mode(interface)) { in __cvmx_helper_packet_hardware_enable()
549 result = __cvmx_helper_xaui_enable(interface); in __cvmx_helper_packet_hardware_enable()
557 result = __cvmx_helper_rgmii_enable(interface); in __cvmx_helper_packet_hardware_enable()
564 result = __cvmx_helper_spi_enable(interface); in __cvmx_helper_packet_hardware_enable()
572 result = __cvmx_helper_sgmii_enable(interface); in __cvmx_helper_packet_hardware_enable()
574 /* PCI target Network Packet Interface */ in __cvmx_helper_packet_hardware_enable()
576 result = __cvmx_helper_npi_enable(interface); in __cvmx_helper_packet_hardware_enable()
583 result = __cvmx_helper_loop_enable(interface); in __cvmx_helper_packet_hardware_enable()
586 result |= __cvmx_helper_board_hardware_enable(interface); in __cvmx_helper_packet_hardware_enable()
603 /* Ports 0-15 are interface 0, 16-31 are interface 1 */ in __cvmx_helper_errata_fix_ipd_ptr_alignment()
604 #define INTERFACE(port) (port >> 4) in __cvmx_helper_errata_fix_ipd_ptr_alignment() macro
620 (INDEX(FIX_IPD_OUTPORT), INTERFACE(FIX_IPD_OUTPORT))); in __cvmx_helper_errata_fix_ipd_ptr_alignment()
622 cvmx_read_csr(CVMX_ASXX_TX_PRT_EN(INTERFACE(FIX_IPD_OUTPORT))); in __cvmx_helper_errata_fix_ipd_ptr_alignment()
624 cvmx_read_csr(CVMX_ASXX_RX_PRT_EN(INTERFACE(FIX_IPD_OUTPORT))); in __cvmx_helper_errata_fix_ipd_ptr_alignment()
627 (INDEX(FIX_IPD_OUTPORT), INTERFACE(FIX_IPD_OUTPORT))); in __cvmx_helper_errata_fix_ipd_ptr_alignment()
630 (INDEX(FIX_IPD_OUTPORT), INTERFACE(FIX_IPD_OUTPORT))); in __cvmx_helper_errata_fix_ipd_ptr_alignment()
639 cvmx_write_csr(CVMX_ASXX_RX_PRT_EN(INTERFACE(FIX_IPD_OUTPORT)), 0); in __cvmx_helper_errata_fix_ipd_ptr_alignment()
661 cvmx_write_csr(CVMX_ASXX_PRT_LOOP(INTERFACE(FIX_IPD_OUTPORT)), in __cvmx_helper_errata_fix_ipd_ptr_alignment()
717 INTERFACE(FIX_IPD_OUTPORT))); in __cvmx_helper_errata_fix_ipd_ptr_alignment()
721 INTERFACE(FIX_IPD_OUTPORT)), gmx_cfg.u64); in __cvmx_helper_errata_fix_ipd_ptr_alignment()
722 cvmx_write_csr(CVMX_ASXX_TX_PRT_EN(INTERFACE(FIX_IPD_OUTPORT)), in __cvmx_helper_errata_fix_ipd_ptr_alignment()
724 cvmx_write_csr(CVMX_ASXX_RX_PRT_EN(INTERFACE(FIX_IPD_OUTPORT)), in __cvmx_helper_errata_fix_ipd_ptr_alignment()
729 INTERFACE(FIX_IPD_OUTPORT)), 65392 - 14 - 4); in __cvmx_helper_errata_fix_ipd_ptr_alignment()
732 INTERFACE(FIX_IPD_OUTPORT)), 65392 - 14 - 4); in __cvmx_helper_errata_fix_ipd_ptr_alignment()
763 (INDEX(FIX_IPD_OUTPORT), INTERFACE(FIX_IPD_OUTPORT)), in __cvmx_helper_errata_fix_ipd_ptr_alignment()
765 cvmx_write_csr(CVMX_ASXX_TX_PRT_EN(INTERFACE(FIX_IPD_OUTPORT)), in __cvmx_helper_errata_fix_ipd_ptr_alignment()
767 cvmx_write_csr(CVMX_ASXX_RX_PRT_EN(INTERFACE(FIX_IPD_OUTPORT)), in __cvmx_helper_errata_fix_ipd_ptr_alignment()
770 (INDEX(FIX_IPD_OUTPORT), INTERFACE(FIX_IPD_OUTPORT)), in __cvmx_helper_errata_fix_ipd_ptr_alignment()
773 (INDEX(FIX_IPD_OUTPORT), INTERFACE(FIX_IPD_OUTPORT)), in __cvmx_helper_errata_fix_ipd_ptr_alignment()
775 cvmx_write_csr(CVMX_ASXX_PRT_LOOP(INTERFACE(FIX_IPD_OUTPORT)), 0); in __cvmx_helper_errata_fix_ipd_ptr_alignment()
803 int interface; in cvmx_helper_ipd_and_packet_input_enable() local
814 for (interface = 0; interface < num_interfaces; interface++) { in cvmx_helper_ipd_and_packet_input_enable()
815 if (cvmx_helper_ports_on_interface(interface) > 0) in cvmx_helper_ipd_and_packet_input_enable()
816 __cvmx_helper_packet_hardware_enable(interface); in cvmx_helper_ipd_and_packet_input_enable()
841 int interface; in cvmx_helper_initialize_packet_io_global() local
882 for (interface = 0; interface < num_interfaces; interface++) { in cvmx_helper_initialize_packet_io_global()
883 result |= cvmx_helper_interface_probe(interface); in cvmx_helper_initialize_packet_io_global()
884 if (cvmx_helper_ports_on_interface(interface) > 0) in cvmx_helper_initialize_packet_io_global()
885 cvmx_dprintf("Interface %d has %d ports (%s)\n", in cvmx_helper_initialize_packet_io_global()
886 interface, in cvmx_helper_initialize_packet_io_global()
887 cvmx_helper_ports_on_interface(interface), in cvmx_helper_initialize_packet_io_global()
890 (interface))); in cvmx_helper_initialize_packet_io_global()
891 result |= __cvmx_helper_interface_setup_ipd(interface); in cvmx_helper_initialize_packet_io_global()
892 result |= __cvmx_helper_interface_setup_pko(interface); in cvmx_helper_initialize_packet_io_global()
929 int interface = cvmx_helper_get_interface_num(ipd_port); in cvmx_helper_link_autoconf() local
932 if (index >= cvmx_helper_ports_on_interface(interface)) { in cvmx_helper_link_autoconf()
964 int interface = cvmx_helper_get_interface_num(ipd_port); in cvmx_helper_link_get() local
971 if (index >= cvmx_helper_ports_on_interface(interface)) in cvmx_helper_link_get()
974 switch (cvmx_helper_interface_get_mode(interface)) { in cvmx_helper_link_get()
1024 int interface = cvmx_helper_get_interface_num(ipd_port); in cvmx_helper_link_set() local
1027 if (index >= cvmx_helper_ports_on_interface(interface)) in cvmx_helper_link_set()
1030 switch (cvmx_helper_interface_get_mode(interface)) { in cvmx_helper_link_set()
1081 int interface = cvmx_helper_get_interface_num(ipd_port); in cvmx_helper_configure_loopback() local
1084 if (index >= cvmx_helper_ports_on_interface(interface)) in cvmx_helper_configure_loopback()
1087 switch (cvmx_helper_interface_get_mode(interface)) { in cvmx_helper_configure_loopback()