]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/staging/wlan-ng/p80211netdev.c
Staging: go7007: add sensoray 2250/2251 support
[linux-2.6-omap-h63xx.git] / drivers / staging / wlan-ng / p80211netdev.c
index 98a72193e8d720137bddc587014e666a13485298..59e5ad10dbda8e839e75e6827bc7cec04ab9bab2 100644 (file)
 /*================================================================*/
 /* Local Types */
 
-/*================================================================*/
-/* Local Static Definitions */
-
-#define __NO_VERSION__         /* prevent the static definition */
-
 /*================================================================*/
 /* Local Function Declarations */
 
@@ -130,48 +125,22 @@ static int p80211knetdev_set_mac_address(netdevice_t *dev, void *addr);
 static void p80211knetdev_tx_timeout(netdevice_t *netdev);
 static int p80211_rx_typedrop( wlandevice_t *wlandev, u16 fc);
 
+int wlan_watchdog = 5000;
+module_param(wlan_watchdog, int, 0644);
+MODULE_PARM_DESC(wlan_watchdog, "transmit timeout in milliseconds");
 
-/*================================================================*/
-/* Function Definitions */
+int wlan_wext_write = 1;
+module_param(wlan_wext_write, int, 0644);
+MODULE_PARM_DESC(wlan_wext_write, "enable write wireless extensions");
 
-/*----------------------------------------------------------------
-* p80211knetdev_startup
-*
-* Initialize the wlandevice/netdevice part of 802.11 services at
-* load time.
-*
-* Arguments:
-*      none
-*
-* Returns:
-*      nothing
-----------------------------------------------------------------*/
-void p80211netdev_startup(void)
-{
-       DBFENTER;
-
-       DBFEXIT;
-       return;
-}
+#ifdef WLAN_INCLUDE_DEBUG
+int wlan_debug=0;
+module_param(wlan_debug, int, 0644);
+MODULE_PARM_DESC(wlan_debug, "p80211 debug level");
+#endif
 
-/*----------------------------------------------------------------
-* p80211knetdev_shutdown
-*
-* Shutdown the wlandevice/netdevice part of 802.11 services at
-* unload time.
-*
-* Arguments:
-*      none
-*
-* Returns:
-*      nothing
-----------------------------------------------------------------*/
-void
-p80211netdev_shutdown(void)
-{
-       DBFENTER;
-       DBFEXIT;
-}
+/*================================================================*/
+/* Function Definitions */
 
 /*----------------------------------------------------------------
 * p80211knetdev_init
@@ -255,7 +224,7 @@ static int p80211knetdev_open( netdevice_t *netdev )
        if ( wlandev->open != NULL) {
                result = wlandev->open(wlandev);
                if ( result == 0 ) {
-                       p80211netdev_start_queue(wlandev);
+                       netif_start_queue(wlandev->netdev);
                        wlandev->state = WLAN_DEVICE_OPEN;
                }
        } else {
@@ -290,7 +259,7 @@ static int p80211knetdev_stop( netdevice_t *netdev )
                result = wlandev->close(wlandev);
        }
 
-       p80211netdev_stop_queue(wlandev);
+       netif_stop_queue(wlandev->netdev);
        wlandev->state = WLAN_DEVICE_CLOSED;
 
        DBFEXIT;
@@ -465,7 +434,7 @@ static int p80211knetdev_hard_start_xmit( struct sk_buff *skb, netdevice_t *netd
                 * TODO: we need a saner way to handle this
                 */
                if(skb->protocol != ETH_P_80211_RAW) {
-                       p80211netdev_start_queue(wlandev);
+                       netif_start_queue(wlandev->netdev);
                        WLAN_LOG_NOTICE(
                                "Tx attempt prior to association, frame dropped.\n");
                        wlandev->linux_stats.tx_dropped++;
@@ -509,7 +478,7 @@ static int p80211knetdev_hard_start_xmit( struct sk_buff *skb, netdevice_t *netd
        if ( txresult == 0) {
                /* success and more buf */
                /* avail, re: hw_txdata */
-               p80211netdev_wake_queue(wlandev);
+               netif_wake_queue(wlandev->netdev);
                result = 0;
        } else if ( txresult == 1 ) {
                /* success, no more avail */
@@ -845,13 +814,11 @@ int wlan_setup(wlandevice_t *wlandev)
                     (unsigned long)wlandev);
 
        /* Allocate and initialize the struct device */
-       dev = kmalloc(sizeof(netdevice_t), GFP_ATOMIC);
+       dev = alloc_netdev(0,"wlan%d",ether_setup);
        if ( dev == NULL ) {
                WLAN_LOG_ERROR("Failed to alloc netdev.\n");
                result = 1;
        } else {
-               memset( dev, 0, sizeof(netdevice_t));
-               ether_setup(dev);
                wlandev->netdev = dev;
                dev->ml_priv = wlandev;
                dev->hard_start_xmit =  p80211knetdev_hard_start_xmit;
@@ -866,12 +833,10 @@ int wlan_setup(wlandevice_t *wlandev)
                dev->open =             p80211knetdev_open;
                dev->stop =             p80211knetdev_stop;
 
-#ifdef CONFIG_NET_WIRELESS
 #if (WIRELESS_EXT < 21)
                dev->get_wireless_stats = p80211wext_get_wireless_stats;
 #endif
                dev->wireless_handlers = &p80211wext_handler_def;
-#endif
 
                netif_stop_queue(dev);
 #ifdef HAVE_CHANGE_MTU
@@ -956,19 +921,12 @@ int wlan_unsetup(wlandevice_t *wlandev)
 int register_wlandev(wlandevice_t *wlandev)
 {
        int             i = 0;
-       netdevice_t     *dev = wlandev->netdev;
 
        DBFENTER;
 
-       i = dev_alloc_name(wlandev->netdev, "wlan%d");
-       if (i >= 0) {
-               i = register_netdev(wlandev->netdev);
-       }
-       if (i != 0) {
-               return -EIO;
-       }
-
-       strcpy(wlandev->name, dev->name);
+       i = register_netdev(wlandev->netdev);
+       if (i)
+               return i;
 
        DBFEXIT;
        return 0;
@@ -1045,7 +1003,7 @@ void p80211netdev_hwremoved(wlandevice_t *wlandev)
        DBFENTER;
        wlandev->hwremoved = 1;
        if ( wlandev->state == WLAN_DEVICE_OPEN) {
-               p80211netdev_stop_queue(wlandev);
+               netif_stop_queue(wlandev->netdev);
        }
 
        netif_device_detach(wlandev->netdev);
@@ -1234,21 +1192,6 @@ static int p80211_rx_typedrop( wlandevice_t *wlandev, u16 fc)
        return drop;
 }
 
-
-void    p80211_suspend(wlandevice_t *wlandev)
-{
-       DBFENTER;
-
-       DBFEXIT;
-}
-
-void    p80211_resume(wlandevice_t *wlandev)
-{
-       DBFENTER;
-
-       DBFEXIT;
-}
-
 static void p80211knetdev_tx_timeout( netdevice_t *netdev)
 {
        wlandevice_t    *wlandev = netdev->ml_priv;
@@ -1259,7 +1202,7 @@ static void p80211knetdev_tx_timeout( netdevice_t *netdev)
        } else {
                WLAN_LOG_WARNING("Implement tx_timeout for %s\n",
                                 wlandev->nsdname);
-               p80211netdev_wake_queue(wlandev);
+               netif_wake_queue(wlandev->netdev);
        }
 
        DBFEXIT;