]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/net/benet/be_ethtool.c
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2...
[mv-sheeva.git] / drivers / net / benet / be_ethtool.c
index c480c19200d782d9a306178a876a4d3b0a353669..11445df3dbc03aa6bdced9515cf4cca22917acce 100644 (file)
@@ -332,7 +332,21 @@ be_set_pauseparam(struct net_device *netdev, struct ethtool_pauseparam *ecmd)
        return status;
 }
 
-struct ethtool_ops be_ethtool_ops = {
+static int
+be_do_flash(struct net_device *netdev, struct ethtool_flash *efl)
+{
+       struct be_adapter *adapter = netdev_priv(netdev);
+       char file_name[ETHTOOL_FLASH_MAX_FILENAME];
+       u32 region;
+
+       file_name[ETHTOOL_FLASH_MAX_FILENAME - 1] = 0;
+       strcpy(file_name, efl->data);
+       region = efl->region;
+
+       return be_load_fw(adapter, file_name);
+}
+
+const struct ethtool_ops be_ethtool_ops = {
        .get_settings = be_get_settings,
        .get_drvinfo = be_get_drvinfo,
        .get_link = ethtool_op_get_link,
@@ -352,4 +366,5 @@ struct ethtool_ops be_ethtool_ops = {
        .get_strings = be_get_stat_strings,
        .get_stats_count = be_get_stats_count,
        .get_ethtool_stats = be_get_ethtool_stats,
+       .flash_device = be_do_flash,
 };