net/cxgbe: support Source MAC Table
[dpdk.git] / drivers / net / sfc / base / efx_ev.c
index 21f4c22..b9fc5ca 100644 (file)
 #include "mcdi_mon.h"
 #endif
 
-#if EFSYS_OPT_QSTATS
-#define        EFX_EV_QSTAT_INCR(_eep, _stat)                                  \
-       do {                                                            \
-               (_eep)->ee_stat[_stat]++;                               \
-       _NOTE(CONSTANTCONDITION)                                        \
-       } while (B_FALSE)
-#else
-#define        EFX_EV_QSTAT_INCR(_eep, _stat)
-#endif
-
 #define        EFX_EV_PRESENT(_qword)                                          \
        (EFX_QWORD_FIELD((_qword), EFX_DWORD_0) != 0xffffffff &&        \
        EFX_QWORD_FIELD((_qword), EFX_DWORD_1) != 0xffffffff)
@@ -91,7 +81,7 @@ static const efx_ev_ops_t     __efx_ev_siena_ops = {
 };
 #endif /* EFSYS_OPT_SIENA */
 
-#if EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD || EFSYS_OPT_MEDFORD2
+#if EFX_OPTS_EF10()
 static const efx_ev_ops_t      __efx_ev_ef10_ops = {
        ef10_ev_init,                           /* eevo_init */
        ef10_ev_fini,                           /* eevo_fini */
@@ -104,7 +94,7 @@ static const efx_ev_ops_t    __efx_ev_ef10_ops = {
        ef10_ev_qstats_update,                  /* eevo_qstats_update */
 #endif
 };
-#endif /* EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD || EFSYS_OPT_MEDFORD2 */
+#endif /* EFX_OPTS_EF10() */
 
 
        __checkReturn   efx_rc_t
@@ -188,7 +178,7 @@ efx_evq_nbufs(
        __in    const efx_nic_t *enp,
        __in    unsigned int ndescs)
 {
-       return (efx_evq_size(enp, ndescs) / EFX_BUF_SIZE);
+       return (EFX_DIV_ROUND_UP(efx_evq_size(enp, ndescs), EFX_BUF_SIZE));
 }
 
                void
@@ -566,6 +556,12 @@ efx_ev_usecs_to_ticks(
 {
        efx_nic_cfg_t *encp = &(enp->en_nic_cfg);
        unsigned int ticks;
+       efx_rc_t rc;
+
+       if (encp->enc_evq_timer_quantum_ns == 0) {
+               rc = ENOTSUP;
+               goto fail1;
+       }
 
        /* Convert microseconds to a timer tick count */
        if (us == 0)
@@ -577,6 +573,10 @@ efx_ev_usecs_to_ticks(
 
        *ticksp = ticks;
        return (0);
+
+fail1:
+       EFSYS_PROBE1(fail1, efx_rc_t, rc);
+       return (rc);
 }
 
        __checkReturn   efx_rc_t
@@ -1382,7 +1382,7 @@ fail1:
 
 #if EFSYS_OPT_QSTATS
 #if EFSYS_OPT_NAMES
-/* START MKCONFIG GENERATED EfxEventQueueStatNamesBlock c0f3bc5083b40532 */
+/* START MKCONFIG GENERATED EfxEventQueueStatNamesBlock ac223f7134058b4f */
 static const char * const __efx_ev_qstat_name[] = {
        "all",
        "rx",
@@ -1421,6 +1421,7 @@ static const char * const __efx_ev_qstat_name[] = {
        "driver_tx_dsc_error",
        "drv_gen",
        "mcdi_response",
+       "rx_parse_incomplete",
 };
 /* END MKCONFIG GENERATED EfxEventQueueStatNamesBlock */