diff options
Diffstat (limited to 'include/linux/phy.h')
| -rw-r--r-- | include/linux/phy.h | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/include/linux/phy.h b/include/linux/phy.h index 987e111f7b11..6b0a782c6224 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h | |||
| @@ -234,6 +234,8 @@ enum phy_state { | |||
| 234 | PHY_RESUMING | 234 | PHY_RESUMING |
| 235 | }; | 235 | }; |
| 236 | 236 | ||
| 237 | struct sk_buff; | ||
| 238 | |||
| 237 | /* phy_device: An instance of a PHY | 239 | /* phy_device: An instance of a PHY |
| 238 | * | 240 | * |
| 239 | * drv: Pointer to the driver for this PHY instance | 241 | * drv: Pointer to the driver for this PHY instance |
| @@ -402,6 +404,26 @@ struct phy_driver { | |||
| 402 | /* Clears up any memory if needed */ | 404 | /* Clears up any memory if needed */ |
| 403 | void (*remove)(struct phy_device *phydev); | 405 | void (*remove)(struct phy_device *phydev); |
| 404 | 406 | ||
| 407 | /* Handles SIOCSHWTSTAMP ioctl for hardware time stamping. */ | ||
| 408 | int (*hwtstamp)(struct phy_device *phydev, struct ifreq *ifr); | ||
| 409 | |||
| 410 | /* | ||
| 411 | * Requests a Rx timestamp for 'skb'. If the skb is accepted, | ||
| 412 | * the phy driver promises to deliver it using netif_rx() as | ||
| 413 | * soon as a timestamp becomes available. One of the | ||
| 414 | * PTP_CLASS_ values is passed in 'type'. The function must | ||
| 415 | * return true if the skb is accepted for delivery. | ||
| 416 | */ | ||
| 417 | bool (*rxtstamp)(struct phy_device *dev, struct sk_buff *skb, int type); | ||
| 418 | |||
| 419 | /* | ||
| 420 | * Requests a Tx timestamp for 'skb'. The phy driver promises | ||
| 421 | * to deliver it to the socket's error queue as soon as a | ||
| 422 | * timestamp becomes available. One of the PTP_CLASS_ values | ||
| 423 | * is passed in 'type'. | ||
| 424 | */ | ||
| 425 | void (*txtstamp)(struct phy_device *dev, struct sk_buff *skb, int type); | ||
| 426 | |||
| 405 | struct device_driver driver; | 427 | struct device_driver driver; |
| 406 | }; | 428 | }; |
| 407 | #define to_phy_driver(d) container_of(d, struct phy_driver, driver) | 429 | #define to_phy_driver(d) container_of(d, struct phy_driver, driver) |
| @@ -498,7 +520,7 @@ void phy_stop_machine(struct phy_device *phydev); | |||
| 498 | int phy_ethtool_sset(struct phy_device *phydev, struct ethtool_cmd *cmd); | 520 | int phy_ethtool_sset(struct phy_device *phydev, struct ethtool_cmd *cmd); |
| 499 | int phy_ethtool_gset(struct phy_device *phydev, struct ethtool_cmd *cmd); | 521 | int phy_ethtool_gset(struct phy_device *phydev, struct ethtool_cmd *cmd); |
| 500 | int phy_mii_ioctl(struct phy_device *phydev, | 522 | int phy_mii_ioctl(struct phy_device *phydev, |
| 501 | struct mii_ioctl_data *mii_data, int cmd); | 523 | struct ifreq *ifr, int cmd); |
| 502 | int phy_start_interrupts(struct phy_device *phydev); | 524 | int phy_start_interrupts(struct phy_device *phydev); |
| 503 | void phy_print_status(struct phy_device *phydev); | 525 | void phy_print_status(struct phy_device *phydev); |
| 504 | struct phy_device* phy_device_create(struct mii_bus *bus, int addr, int phy_id); | 526 | struct phy_device* phy_device_create(struct mii_bus *bus, int addr, int phy_id); |
