[PATCH] prism54: add ethtool -i interface

Add support for "ethtool -i" to prism54 driver.

ethtool -i queries the specified device for
associated driver information.

This helps tools like Fedora's system-config-network to
provide GUI management of network devices.
I learned how to write this patch by reading the ipw2100
driver code.

Signed-off-by: Kai Engert <kengert@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Kai Engert 2006-12-12 21:09:41 +01:00 коммит произвёл Jeff Garzik
Родитель 0191738286
Коммит ff86a543e9
3 изменённых файлов: 17 добавлений и 3 удалений

Просмотреть файл

@ -21,6 +21,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/netdevice.h> #include <linux/netdevice.h>
#include <linux/ethtool.h>
#include <linux/pci.h> #include <linux/pci.h>
#include <linux/etherdevice.h> #include <linux/etherdevice.h>
#include <linux/delay.h> #include <linux/delay.h>
@ -787,6 +788,17 @@ islpci_set_multicast_list(struct net_device *dev)
} }
#endif #endif
static void islpci_ethtool_get_drvinfo(struct net_device *dev,
struct ethtool_drvinfo *info)
{
strcpy(info->driver, DRV_NAME);
strcpy(info->version, DRV_VERSION);
}
static struct ethtool_ops islpci_ethtool_ops = {
.get_drvinfo = islpci_ethtool_get_drvinfo,
};
struct net_device * struct net_device *
islpci_setup(struct pci_dev *pdev) islpci_setup(struct pci_dev *pdev)
{ {
@ -813,6 +825,7 @@ islpci_setup(struct pci_dev *pdev)
ndev->do_ioctl = &prism54_ioctl; ndev->do_ioctl = &prism54_ioctl;
ndev->wireless_handlers = ndev->wireless_handlers =
(struct iw_handler_def *) &prism54_handler_def; (struct iw_handler_def *) &prism54_handler_def;
ndev->ethtool_ops = &islpci_ethtool_ops;
ndev->hard_start_xmit = &islpci_eth_transmit; ndev->hard_start_xmit = &islpci_eth_transmit;
/* ndev->set_multicast_list = &islpci_set_multicast_list; */ /* ndev->set_multicast_list = &islpci_set_multicast_list; */

Просмотреть файл

@ -211,4 +211,8 @@ islpci_trigger(islpci_private *priv)
int islpci_free_memory(islpci_private *); int islpci_free_memory(islpci_private *);
struct net_device *islpci_setup(struct pci_dev *); struct net_device *islpci_setup(struct pci_dev *);
#define DRV_NAME "prism54"
#define DRV_VERSION "1.2"
#endif /* _ISLPCI_DEV_H */ #endif /* _ISLPCI_DEV_H */

Просмотреть файл

@ -28,9 +28,6 @@
#include "islpci_mgt.h" /* for pc_debug */ #include "islpci_mgt.h" /* for pc_debug */
#include "isl_oid.h" #include "isl_oid.h"
#define DRV_NAME "prism54"
#define DRV_VERSION "1.2"
MODULE_AUTHOR("[Intersil] R.Bastings and W.Termorshuizen, The prism54.org Development Team <prism54-devel@prism54.org>"); MODULE_AUTHOR("[Intersil] R.Bastings and W.Termorshuizen, The prism54.org Development Team <prism54-devel@prism54.org>");
MODULE_DESCRIPTION("The Prism54 802.11 Wireless LAN adapter"); MODULE_DESCRIPTION("The Prism54 802.11 Wireless LAN adapter");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");