.. | .. |
---|
627 | 627 | #define EFX_INT_MODE_USE_MSI(x) (((x)->interrupt_mode) <= EFX_INT_MODE_MSI) |
---|
628 | 628 | |
---|
629 | 629 | enum nic_state { |
---|
630 | | - STATE_UNINIT = 0, /* device being probed/removed or is frozen */ |
---|
631 | | - STATE_READY = 1, /* hardware ready and netdev registered */ |
---|
632 | | - STATE_DISABLED = 2, /* device disabled due to hardware errors */ |
---|
633 | | - STATE_RECOVERY = 3, /* device recovering from PCI error */ |
---|
| 630 | + STATE_UNINIT = 0, /* device being probed/removed */ |
---|
| 631 | + STATE_NET_DOWN, /* hardware probed and netdev registered */ |
---|
| 632 | + STATE_NET_UP, /* ready for traffic */ |
---|
| 633 | + STATE_DISABLED, /* device disabled due to hardware errors */ |
---|
| 634 | + |
---|
| 635 | + STATE_RECOVERY = 0x100,/* recovering from PCI error */ |
---|
| 636 | + STATE_FROZEN = 0x200, /* frozen by power management */ |
---|
634 | 637 | }; |
---|
635 | 638 | |
---|
| 639 | +static inline bool efx_net_active(enum nic_state state) |
---|
| 640 | +{ |
---|
| 641 | + return state == STATE_NET_DOWN || state == STATE_NET_UP; |
---|
| 642 | +} |
---|
| 643 | + |
---|
| 644 | +static inline bool efx_frozen(enum nic_state state) |
---|
| 645 | +{ |
---|
| 646 | + return state & STATE_FROZEN; |
---|
| 647 | +} |
---|
| 648 | + |
---|
| 649 | +static inline bool efx_recovering(enum nic_state state) |
---|
| 650 | +{ |
---|
| 651 | + return state & STATE_RECOVERY; |
---|
| 652 | +} |
---|
| 653 | + |
---|
| 654 | +static inline enum nic_state efx_freeze(enum nic_state state) |
---|
| 655 | +{ |
---|
| 656 | + WARN_ON(!efx_net_active(state)); |
---|
| 657 | + return state | STATE_FROZEN; |
---|
| 658 | +} |
---|
| 659 | + |
---|
| 660 | +static inline enum nic_state efx_thaw(enum nic_state state) |
---|
| 661 | +{ |
---|
| 662 | + WARN_ON(!efx_frozen(state)); |
---|
| 663 | + return state & ~STATE_FROZEN; |
---|
| 664 | +} |
---|
| 665 | + |
---|
| 666 | +static inline enum nic_state efx_recover(enum nic_state state) |
---|
| 667 | +{ |
---|
| 668 | + WARN_ON(!efx_net_active(state)); |
---|
| 669 | + return state | STATE_RECOVERY; |
---|
| 670 | +} |
---|
| 671 | + |
---|
| 672 | +static inline enum nic_state efx_recovered(enum nic_state state) |
---|
| 673 | +{ |
---|
| 674 | + WARN_ON(!efx_recovering(state)); |
---|
| 675 | + return state & ~STATE_RECOVERY; |
---|
| 676 | +} |
---|
| 677 | + |
---|
636 | 678 | /* Forward declaration */ |
---|
637 | 679 | struct efx_nic; |
---|
638 | 680 | |
---|