ethtool: Extend ethtool plugin module eeprom API to phylib
authorEd Swierk <eswierk@skyportsystems.com>
Sat, 3 Jan 2015 01:27:56 +0000 (17:27 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 6 Jan 2015 22:16:55 +0000 (17:16 -0500)
This patch extends the ethtool plugin module eeprom API to support cards
whose phy support is delegated to a separate driver.

The handlers for ETHTOOL_GMODULEINFO and ETHTOOL_GMODULEEEPROM call the
module_info and module_eeprom functions if the phy driver provides them;
otherwise the handlers call the equivalent ethtool_ops functions provided
by network drivers with built-in phy support.

Signed-off-by: Ed Swierk <eswierk@skyportsystems.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/phy.h
net/core/ethtool.c

index 22af8f8..9c189a1 100644 (file)
@@ -565,6 +565,15 @@ struct phy_driver {
        void (*write_mmd_indirect)(struct phy_device *dev, int ptrad,
                                   int devnum, int regnum, u32 val);
 
+       /* Get the size and type of the eeprom contained within a plug-in
+        * module */
+       int (*module_info)(struct phy_device *dev,
+                          struct ethtool_modinfo *modinfo);
+
+       /* Get the eeprom information from the plug-in module */
+       int (*module_eeprom)(struct phy_device *dev,
+                            struct ethtool_eeprom *ee, u8 *data);
+
        struct device_driver driver;
 };
 #define to_phy_driver(d) container_of(d, struct phy_driver, driver)
Simple merge