ethtool_phy_opsRegular
4.4: Absent ⚠️
4.8: Absent ⚠️
4.10: Absent ⚠️
4.13: Absent ⚠️
4.15: Absent ⚠️
4.18: Absent ⚠️
5.0: Absent ⚠️
5.3: Absent ⚠️
5.4: Absent ⚠️
5.8: Absent ⚠️
5.11: ✅struct ethtool_phy_ops {
int (*get_sset_count)(struct phy_device *);
int (*get_strings)(struct phy_device *, u8 *);
int (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *);
int (*start_cable_test)(struct phy_device *, struct netlink_ext_ack *);
int (*start_cable_test_tdr)(struct phy_device *, struct netlink_ext_ack *, const struct phy_tdr_config *);
};
5.13: ✅struct ethtool_phy_ops {
int (*get_sset_count)(struct phy_device *);
int (*get_strings)(struct phy_device *, u8 *);
int (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *);
int (*start_cable_test)(struct phy_device *, struct netlink_ext_ack *);
int (*start_cable_test_tdr)(struct phy_device *, struct netlink_ext_ack *, const struct phy_tdr_config *);
};
5.15: ✅struct ethtool_phy_ops {
int (*get_sset_count)(struct phy_device *);
int (*get_strings)(struct phy_device *, u8 *);
int (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *);
int (*start_cable_test)(struct phy_device *, struct netlink_ext_ack *);
int (*start_cable_test_tdr)(struct phy_device *, struct netlink_ext_ack *, const struct phy_tdr_config *);
};
5.19: ✅struct ethtool_phy_ops {
int (*get_sset_count)(struct phy_device *);
int (*get_strings)(struct phy_device *, u8 *);
int (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *);
int (*start_cable_test)(struct phy_device *, struct netlink_ext_ack *);
int (*start_cable_test_tdr)(struct phy_device *, struct netlink_ext_ack *, const struct phy_tdr_config *);
};
6.2: ✅struct ethtool_phy_ops {
int (*get_sset_count)(struct phy_device *);
int (*get_strings)(struct phy_device *, u8 *);
int (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *);
int (*start_cable_test)(struct phy_device *, struct netlink_ext_ack *);
int (*start_cable_test_tdr)(struct phy_device *, struct netlink_ext_ack *, const struct phy_tdr_config *);
};
6.5: ✅struct ethtool_phy_ops {
int (*get_sset_count)(struct phy_device *);
int (*get_strings)(struct phy_device *, u8 *);
int (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *);
int (*get_plca_cfg)(struct phy_device *, struct phy_plca_cfg *);
int (*set_plca_cfg)(struct phy_device *, const struct phy_plca_cfg *, struct netlink_ext_ack *);
int (*get_plca_status)(struct phy_device *, struct phy_plca_status *);
int (*start_cable_test)(struct phy_device *, struct netlink_ext_ack *);
int (*start_cable_test_tdr)(struct phy_device *, struct netlink_ext_ack *, const struct phy_tdr_config *);
};
6.8: ✅struct ethtool_phy_ops {
int (*get_sset_count)(struct phy_device *);
int (*get_strings)(struct phy_device *, u8 *);
int (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *);
int (*get_plca_cfg)(struct phy_device *, struct phy_plca_cfg *);
int (*set_plca_cfg)(struct phy_device *, const struct phy_plca_cfg *, struct netlink_ext_ack *);
int (*get_plca_status)(struct phy_device *, struct phy_plca_status *);
int (*start_cable_test)(struct phy_device *, struct netlink_ext_ack *);
int (*start_cable_test_tdr)(struct phy_device *, struct netlink_ext_ack *, const struct phy_tdr_config *);
};
arm64: Absent ⚠️
armhf: Absent ⚠️
ppc64el: Absent ⚠️
riscv64: Absent ⚠️
aws: Absent ⚠️
azure: Absent ⚠️
gcp: Absent ⚠️
lowlatency: Absent ⚠️
Regular
5.11 and 5.13 ✅
5.13 and 5.15 ✅
5.15 and 5.19 ✅
5.19 and 6.2 ✅
6.2 and 6.5 ⚠️int (*get_plca_cfg)(struct phy_device *, struct phy_plca_cfg *)
int (*set_plca_cfg)(struct phy_device *, const struct phy_plca_cfg *, struct netlink_ext_ack *)
int (*get_plca_status)(struct phy_device *, struct phy_plca_status *)
6.5 and 6.8 ✅