| .. | .. |
|---|
| 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 | |
|---|