diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/ethtool.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h index aa0dcb3833d1..eb1a48da2d43 100644 --- a/include/linux/ethtool.h +++ b/include/linux/ethtool.h | |||
| @@ -498,6 +498,7 @@ struct ethtool_ops { | |||
| 498 | int (*get_rxnfc)(struct net_device *, struct ethtool_rxnfc *, void *); | 498 | int (*get_rxnfc)(struct net_device *, struct ethtool_rxnfc *, void *); |
| 499 | int (*set_rxnfc)(struct net_device *, struct ethtool_rxnfc *); | 499 | int (*set_rxnfc)(struct net_device *, struct ethtool_rxnfc *); |
| 500 | int (*flash_device)(struct net_device *, struct ethtool_flash *); | 500 | int (*flash_device)(struct net_device *, struct ethtool_flash *); |
| 501 | int (*reset)(struct net_device *, u32 *); | ||
| 501 | }; | 502 | }; |
| 502 | #endif /* __KERNEL__ */ | 503 | #endif /* __KERNEL__ */ |
| 503 | 504 | ||
| @@ -555,6 +556,7 @@ struct ethtool_ops { | |||
| 555 | #define ETHTOOL_SRXCLSRLDEL 0x00000031 /* Delete RX classification rule */ | 556 | #define ETHTOOL_SRXCLSRLDEL 0x00000031 /* Delete RX classification rule */ |
| 556 | #define ETHTOOL_SRXCLSRLINS 0x00000032 /* Insert RX classification rule */ | 557 | #define ETHTOOL_SRXCLSRLINS 0x00000032 /* Insert RX classification rule */ |
| 557 | #define ETHTOOL_FLASHDEV 0x00000033 /* Flash firmware to device */ | 558 | #define ETHTOOL_FLASHDEV 0x00000033 /* Flash firmware to device */ |
| 559 | #define ETHTOOL_RESET 0x00000034 /* Reset hardware */ | ||
| 558 | 560 | ||
| 559 | /* compatibility with older code */ | 561 | /* compatibility with older code */ |
| 560 | #define SPARC_ETH_GSET ETHTOOL_GSET | 562 | #define SPARC_ETH_GSET ETHTOOL_GSET |
| @@ -685,4 +687,34 @@ struct ethtool_ops { | |||
| 685 | 687 | ||
| 686 | #define RX_CLS_FLOW_DISC 0xffffffffffffffffULL | 688 | #define RX_CLS_FLOW_DISC 0xffffffffffffffffULL |
| 687 | 689 | ||
| 690 | /* Reset flags */ | ||
| 691 | /* The reset() operation must clear the flags for the components which | ||
| 692 | * were actually reset. On successful return, the flags indicate the | ||
| 693 | * components which were not reset, either because they do not exist | ||
| 694 | * in the hardware or because they cannot be reset independently. The | ||
| 695 | * driver must never reset any components that were not requested. | ||
| 696 | */ | ||
| 697 | enum ethtool_reset_flags { | ||
| 698 | /* These flags represent components dedicated to the interface | ||
| 699 | * the command is addressed to. Shift any flag left by | ||
| 700 | * ETH_RESET_SHARED_SHIFT to reset a shared component of the | ||
| 701 | * same type. | ||
| 702 | */ | ||
| 703 | ETH_RESET_MGMT = 1 << 0, /* Management processor */ | ||
| 704 | ETH_RESET_IRQ = 1 << 1, /* Interrupt requester */ | ||
| 705 | ETH_RESET_DMA = 1 << 2, /* DMA engine */ | ||
| 706 | ETH_RESET_FILTER = 1 << 3, /* Filtering/flow direction */ | ||
| 707 | ETH_RESET_OFFLOAD = 1 << 4, /* Protocol offload */ | ||
| 708 | ETH_RESET_MAC = 1 << 5, /* Media access controller */ | ||
| 709 | ETH_RESET_PHY = 1 << 6, /* Transceiver/PHY */ | ||
| 710 | ETH_RESET_RAM = 1 << 7, /* RAM shared between | ||
| 711 | * multiple components */ | ||
| 712 | |||
| 713 | ETH_RESET_DEDICATED = 0x0000ffff, /* All components dedicated to | ||
| 714 | * this interface */ | ||
| 715 | ETH_RESET_ALL = 0xffffffff, /* All components used by this | ||
| 716 | * interface, even if shared */ | ||
| 717 | }; | ||
| 718 | #define ETH_RESET_SHARED_SHIFT 16 | ||
| 719 | |||
| 688 | #endif /* _LINUX_ETHTOOL_H */ | 720 | #endif /* _LINUX_ETHTOOL_H */ |
