diff options
Diffstat (limited to 'include/linux/ethtool.h')
-rw-r--r-- | include/linux/ethtool.h | 69 |
1 files changed, 68 insertions, 1 deletions
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h index f5647b59a90e..e17fa7140588 100644 --- a/include/linux/ethtool.h +++ b/include/linux/ethtool.h | |||
@@ -137,6 +137,23 @@ struct ethtool_eeprom { | |||
137 | }; | 137 | }; |
138 | 138 | ||
139 | /** | 139 | /** |
140 | * struct ethtool_modinfo - plugin module eeprom information | ||
141 | * @cmd: %ETHTOOL_GMODULEINFO | ||
142 | * @type: Standard the module information conforms to %ETH_MODULE_SFF_xxxx | ||
143 | * @eeprom_len: Length of the eeprom | ||
144 | * | ||
145 | * This structure is used to return the information to | ||
146 | * properly size memory for a subsequent call to %ETHTOOL_GMODULEEEPROM. | ||
147 | * The type code indicates the eeprom data format | ||
148 | */ | ||
149 | struct ethtool_modinfo { | ||
150 | __u32 cmd; | ||
151 | __u32 type; | ||
152 | __u32 eeprom_len; | ||
153 | __u32 reserved[8]; | ||
154 | }; | ||
155 | |||
156 | /** | ||
140 | * struct ethtool_coalesce - coalescing parameters for IRQs and stats updates | 157 | * struct ethtool_coalesce - coalescing parameters for IRQs and stats updates |
141 | * @cmd: ETHTOOL_{G,S}COALESCE | 158 | * @cmd: ETHTOOL_{G,S}COALESCE |
142 | * @rx_coalesce_usecs: How many usecs to delay an RX interrupt after | 159 | * @rx_coalesce_usecs: How many usecs to delay an RX interrupt after |
@@ -661,12 +678,17 @@ struct ethtool_flash { | |||
661 | * %ETHTOOL_SET_DUMP | 678 | * %ETHTOOL_SET_DUMP |
662 | * @version: FW version of the dump, filled in by driver | 679 | * @version: FW version of the dump, filled in by driver |
663 | * @flag: driver dependent flag for dump setting, filled in by driver during | 680 | * @flag: driver dependent flag for dump setting, filled in by driver during |
664 | * get and filled in by ethtool for set operation | 681 | * get and filled in by ethtool for set operation. |
682 | * flag must be initialized by macro ETH_FW_DUMP_DISABLE value when | ||
683 | * firmware dump is disabled. | ||
665 | * @len: length of dump data, used as the length of the user buffer on entry to | 684 | * @len: length of dump data, used as the length of the user buffer on entry to |
666 | * %ETHTOOL_GET_DUMP_DATA and this is returned as dump length by driver | 685 | * %ETHTOOL_GET_DUMP_DATA and this is returned as dump length by driver |
667 | * for %ETHTOOL_GET_DUMP_FLAG command | 686 | * for %ETHTOOL_GET_DUMP_FLAG command |
668 | * @data: data collected for get dump data operation | 687 | * @data: data collected for get dump data operation |
669 | */ | 688 | */ |
689 | |||
690 | #define ETH_FW_DUMP_DISABLE 0 | ||
691 | |||
670 | struct ethtool_dump { | 692 | struct ethtool_dump { |
671 | __u32 cmd; | 693 | __u32 cmd; |
672 | __u32 version; | 694 | __u32 version; |
@@ -726,6 +748,29 @@ struct ethtool_sfeatures { | |||
726 | struct ethtool_set_features_block features[0]; | 748 | struct ethtool_set_features_block features[0]; |
727 | }; | 749 | }; |
728 | 750 | ||
751 | /** | ||
752 | * struct ethtool_ts_info - holds a device's timestamping and PHC association | ||
753 | * @cmd: command number = %ETHTOOL_GET_TS_INFO | ||
754 | * @so_timestamping: bit mask of the sum of the supported SO_TIMESTAMPING flags | ||
755 | * @phc_index: device index of the associated PHC, or -1 if there is none | ||
756 | * @tx_types: bit mask of the supported hwtstamp_tx_types enumeration values | ||
757 | * @rx_filters: bit mask of the supported hwtstamp_rx_filters enumeration values | ||
758 | * | ||
759 | * The bits in the 'tx_types' and 'rx_filters' fields correspond to | ||
760 | * the 'hwtstamp_tx_types' and 'hwtstamp_rx_filters' enumeration values, | ||
761 | * respectively. For example, if the device supports HWTSTAMP_TX_ON, | ||
762 | * then (1 << HWTSTAMP_TX_ON) in 'tx_types' will be set. | ||
763 | */ | ||
764 | struct ethtool_ts_info { | ||
765 | __u32 cmd; | ||
766 | __u32 so_timestamping; | ||
767 | __s32 phc_index; | ||
768 | __u32 tx_types; | ||
769 | __u32 tx_reserved[3]; | ||
770 | __u32 rx_filters; | ||
771 | __u32 rx_reserved[3]; | ||
772 | }; | ||
773 | |||
729 | /* | 774 | /* |
730 | * %ETHTOOL_SFEATURES changes features present in features[].valid to the | 775 | * %ETHTOOL_SFEATURES changes features present in features[].valid to the |
731 | * values of corresponding bits in features[].requested. Bits in .requested | 776 | * values of corresponding bits in features[].requested. Bits in .requested |
@@ -788,6 +833,7 @@ struct net_device; | |||
788 | 833 | ||
789 | /* Some generic methods drivers may use in their ethtool_ops */ | 834 | /* Some generic methods drivers may use in their ethtool_ops */ |
790 | u32 ethtool_op_get_link(struct net_device *dev); | 835 | u32 ethtool_op_get_link(struct net_device *dev); |
836 | int ethtool_op_get_ts_info(struct net_device *dev, struct ethtool_ts_info *eti); | ||
791 | 837 | ||
792 | /** | 838 | /** |
793 | * ethtool_rxfh_indir_default - get default value for RX flow hash indirection | 839 | * ethtool_rxfh_indir_default - get default value for RX flow hash indirection |
@@ -893,6 +939,12 @@ static inline u32 ethtool_rxfh_indir_default(u32 index, u32 n_rx_rings) | |||
893 | * and flag of the device. | 939 | * and flag of the device. |
894 | * @get_dump_data: Get dump data. | 940 | * @get_dump_data: Get dump data. |
895 | * @set_dump: Set dump specific flags to the device. | 941 | * @set_dump: Set dump specific flags to the device. |
942 | * @get_ts_info: Get the time stamping and PTP hardware clock capabilities. | ||
943 | * Drivers supporting transmit time stamps in software should set this to | ||
944 | * ethtool_op_get_ts_info(). | ||
945 | * @get_module_info: Get the size and type of the eeprom contained within | ||
946 | * a plug-in module. | ||
947 | * @get_module_eeprom: Get the eeprom information from the plug-in module | ||
896 | * | 948 | * |
897 | * All operations are optional (i.e. the function pointer may be set | 949 | * All operations are optional (i.e. the function pointer may be set |
898 | * to %NULL) and callers must take this into account. Callers must | 950 | * to %NULL) and callers must take this into account. Callers must |
@@ -954,6 +1006,12 @@ struct ethtool_ops { | |||
954 | int (*get_dump_data)(struct net_device *, | 1006 | int (*get_dump_data)(struct net_device *, |
955 | struct ethtool_dump *, void *); | 1007 | struct ethtool_dump *, void *); |
956 | int (*set_dump)(struct net_device *, struct ethtool_dump *); | 1008 | int (*set_dump)(struct net_device *, struct ethtool_dump *); |
1009 | int (*get_ts_info)(struct net_device *, struct ethtool_ts_info *); | ||
1010 | int (*get_module_info)(struct net_device *, | ||
1011 | struct ethtool_modinfo *); | ||
1012 | int (*get_module_eeprom)(struct net_device *, | ||
1013 | struct ethtool_eeprom *, u8 *); | ||
1014 | |||
957 | 1015 | ||
958 | }; | 1016 | }; |
959 | #endif /* __KERNEL__ */ | 1017 | #endif /* __KERNEL__ */ |
@@ -1028,6 +1086,9 @@ struct ethtool_ops { | |||
1028 | #define ETHTOOL_SET_DUMP 0x0000003e /* Set dump settings */ | 1086 | #define ETHTOOL_SET_DUMP 0x0000003e /* Set dump settings */ |
1029 | #define ETHTOOL_GET_DUMP_FLAG 0x0000003f /* Get dump settings */ | 1087 | #define ETHTOOL_GET_DUMP_FLAG 0x0000003f /* Get dump settings */ |
1030 | #define ETHTOOL_GET_DUMP_DATA 0x00000040 /* Get dump data */ | 1088 | #define ETHTOOL_GET_DUMP_DATA 0x00000040 /* Get dump data */ |
1089 | #define ETHTOOL_GET_TS_INFO 0x00000041 /* Get time stamping and PHC info */ | ||
1090 | #define ETHTOOL_GMODULEINFO 0x00000042 /* Get plug-in module information */ | ||
1091 | #define ETHTOOL_GMODULEEEPROM 0x00000043 /* Get plug-in module eeprom */ | ||
1031 | 1092 | ||
1032 | /* compatibility with older code */ | 1093 | /* compatibility with older code */ |
1033 | #define SPARC_ETH_GSET ETHTOOL_GSET | 1094 | #define SPARC_ETH_GSET ETHTOOL_GSET |
@@ -1177,6 +1238,12 @@ struct ethtool_ops { | |||
1177 | #define RX_CLS_LOC_FIRST 0xfffffffe | 1238 | #define RX_CLS_LOC_FIRST 0xfffffffe |
1178 | #define RX_CLS_LOC_LAST 0xfffffffd | 1239 | #define RX_CLS_LOC_LAST 0xfffffffd |
1179 | 1240 | ||
1241 | /* EEPROM Standards for plug in modules */ | ||
1242 | #define ETH_MODULE_SFF_8079 0x1 | ||
1243 | #define ETH_MODULE_SFF_8079_LEN 256 | ||
1244 | #define ETH_MODULE_SFF_8472 0x2 | ||
1245 | #define ETH_MODULE_SFF_8472_LEN 512 | ||
1246 | |||
1180 | /* Reset flags */ | 1247 | /* Reset flags */ |
1181 | /* The reset() operation must clear the flags for the components which | 1248 | /* The reset() operation must clear the flags for the components which |
1182 | * were actually reset. On successful return, the flags indicate the | 1249 | * were actually reset. On successful return, the flags indicate the |