Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6
[safe/jmp/linux-2.6] / drivers / net / sfc / selftest.h
index f6999c2..643bef7 100644 (file)
  */
 
 struct efx_loopback_self_tests {
-       int tx_sent[EFX_MAX_TX_QUEUES];
-       int tx_done[EFX_MAX_TX_QUEUES];
+       int tx_sent[EFX_TX_QUEUE_COUNT];
+       int tx_done[EFX_TX_QUEUE_COUNT];
        int rx_good;
        int rx_bad;
 };
 
+#define EFX_MAX_PHY_TESTS 20
+
 /* Efx self test results
  * For fields which are not counters, 1 indicates success and -1
  * indicates failure.
  */
 struct efx_self_tests {
+       /* online tests */
+       int phy_alive;
+       int nvram;
        int interrupt;
        int eventq_dma[EFX_MAX_CHANNELS];
        int eventq_int[EFX_MAX_CHANNELS];
        int eventq_poll[EFX_MAX_CHANNELS];
-       int phy_ok;
-       int loopback_speed;
-       int loopback_full_duplex;
-       struct efx_loopback_self_tests loopback[LOOPBACK_TEST_MAX];
+       /* offline tests */
+       int registers;
+       int phy_ext[EFX_MAX_PHY_TESTS];
+       struct efx_loopback_self_tests loopback[LOOPBACK_TEST_MAX + 1];
 };
 
 extern void efx_loopback_rx_packet(struct efx_nic *efx,
                                   const char *buf_ptr, int pkt_len);
-extern int efx_online_test(struct efx_nic *efx,
-                          struct efx_self_tests *tests);
-extern int efx_offline_test(struct efx_nic *efx,
-                           struct efx_self_tests *tests,
-                           unsigned int loopback_modes);
+extern int efx_selftest(struct efx_nic *efx,
+                       struct efx_self_tests *tests,
+                       unsigned flags);
 
 #endif /* EFX_SELFTEST_H */