vserver 1.9.5.x5
[linux-2.6.git] / drivers / net / wireless / arlan-main.c
index ced3f59..4f304c6 100644 (file)
@@ -39,35 +39,32 @@ static int testMemory = testMemoryUNKNOWN;
 static int irq = irqUNKNOWN;
 static int txScrambled = 1;
 static int mdebug;
-#endif
 
-MODULE_PARM(irq, "i");
-MODULE_PARM(mem, "i");
-MODULE_PARM(arlan_debug, "i");
-MODULE_PARM(testMemory, "i");
-MODULE_PARM(spreadingCode, "i");
-MODULE_PARM(channelNumber, "i");
-MODULE_PARM(channelSet, "i");
-MODULE_PARM(systemId, "i");
-MODULE_PARM(registrationMode, "i");
-MODULE_PARM(radioNodeId, "i");
-MODULE_PARM(SID, "i");
-MODULE_PARM(txScrambled, "i");
-MODULE_PARM(keyStart, "i");
-MODULE_PARM(mdebug, "i");
-MODULE_PARM(tx_delay_ms, "i");
-MODULE_PARM(retries, "i");
-MODULE_PARM(async, "i");
-MODULE_PARM(tx_queue_len, "i");
-MODULE_PARM(arlan_entry_debug, "i");
-MODULE_PARM(arlan_exit_debug, "i");
-MODULE_PARM(arlan_entry_and_exit_debug, "i");
-MODULE_PARM(arlan_EEPROM_bad, "i");
+module_param(irq, int, 0);
+module_param(mdebug, int, 0);
+module_param(testMemory, int, 0);
+module_param(arlan_entry_debug, int, 0);
+module_param(arlan_exit_debug, int, 0);
+module_param(txScrambled, int, 0);
 MODULE_PARM_DESC(irq, "(unused)");
-MODULE_PARM_DESC(mem, "Arlan memory address for single device probing");
-MODULE_PARM_DESC(arlan_debug, "Arlan debug enable (0-1)");
 MODULE_PARM_DESC(testMemory, "(unused)");
 MODULE_PARM_DESC(mdebug, "Arlan multicast debugging (0-1)");
+#endif
+
+module_param(arlan_debug, int, 0);
+module_param(spreadingCode, int, 0);
+module_param(channelNumber, int, 0);
+module_param(channelSet, int, 0);
+module_param(systemId, int, 0);
+module_param(registrationMode, int, 0);
+module_param(radioNodeId, int, 0);
+module_param(SID, int, 0);
+module_param(keyStart, int, 0);
+module_param(tx_delay_ms, int, 0);
+module_param(retries, int, 0);
+module_param(tx_queue_len, int, 0);
+module_param(arlan_EEPROM_bad, int, 0);
+MODULE_PARM_DESC(arlan_debug, "Arlan debug enable (0-1)");
 MODULE_PARM_DESC(retries, "Arlan maximum packet retransmisions");
 #ifdef ARLAN_ENTRY_EXIT_DEBUGGING
 MODULE_PARM_DESC(arlan_entry_debug, "Arlan driver function entry debugging");
@@ -129,7 +126,7 @@ static inline long us2ticks(int us)
 
 static inline int arlan_drop_tx(struct net_device *dev)
 {
-       struct arlan_private *priv = dev->priv;
+       struct arlan_private *priv = netdev_priv(dev);
 
        priv->stats.tx_errors++;
        if (priv->Conf->tx_delay_ms)
@@ -152,8 +149,8 @@ static inline int arlan_drop_tx(struct net_device *dev)
 
 int arlan_command(struct net_device *dev, int command_p)
 {
-       struct arlan_private *priv = dev->priv;
-       volatile struct arlan_shmem *arlan = priv->card;
+       struct arlan_private *priv = netdev_priv(dev);
+       volatile struct arlan_shmem __iomem *arlan = priv->card;
        struct arlan_conf_stru *conf = priv->Conf;
        int udelayed = 0;
        int i = 0;
@@ -368,7 +365,7 @@ int arlan_command(struct net_device *dev, int command_p)
                if (!registrationBad(dev))
                {
                        setInterruptEnable(dev);
-                       memset_io((void *) arlan->commandParameter, 0, 0xf);
+                       memset_io(arlan->commandParameter, 0, 0xf);
                        WRITESHMB(arlan->commandByte, ARLAN_COM_INT | ARLAN_COM_RX_ENABLE);
                        WRITESHMB(arlan->commandParameter[0], conf->rxParameter);
                        arlan_interrupt_lancpu(dev);
@@ -398,9 +395,9 @@ int arlan_command(struct net_device *dev, int command_p)
                                           priv->last_rx_int_ack_time + us2ticks(conf->rx_tweak2)))
                        {
                                setInterruptEnable(dev);
-                               memset_io((void *) arlan->commandParameter, 0, 0xf);
+                               memset_io(arlan->commandParameter, 0, 0xf);
                                WRITESHMB(arlan->commandByte, ARLAN_COM_TX_ENABLE | ARLAN_COM_INT);
-                               memcpy_toio((void *) arlan->commandParameter, &TXLAST(dev), 14);
+                               memcpy_toio(arlan->commandParameter, &TXLAST(dev), 14);
 //                             for ( i=1 ; i < 15 ; i++) printk("%02x:",READSHMB(arlan->commandParameter[i]));
                                priv->tx_last_sent = jiffies;
                                arlan_interrupt_lancpu(dev);
@@ -481,7 +478,7 @@ bad_end:
 
 static inline void arlan_command_process(struct net_device *dev)
 {
-       struct arlan_private *priv = dev->priv;
+       struct arlan_private *priv = netdev_priv(dev);
 
        int times = 0;
        while (priv->waiting_command_mask && times < 8)
@@ -502,7 +499,7 @@ static inline void arlan_command_process(struct net_device *dev)
 
 static inline void arlan_retransmit_now(struct net_device *dev)
 {
-       struct arlan_private *priv = dev->priv;
+       struct arlan_private *priv = netdev_priv(dev);
 
 
        ARLAN_DEBUG_ENTRY("arlan_retransmit_now");
@@ -540,7 +537,7 @@ static inline void arlan_retransmit_now(struct net_device *dev)
 static void arlan_registration_timer(unsigned long data)
 {
        struct net_device *dev = (struct net_device *) data;
-       struct arlan_private *priv = dev->priv;
+       struct arlan_private *priv = netdev_priv(dev);
        int bh_mark_needed = 0;
        int next_tick = 1;
        long lostTime = ((long)jiffies - (long)priv->registrationLastSeen)
@@ -633,7 +630,7 @@ static void arlan_registration_timer(unsigned long data)
 
 static void arlan_print_registers(struct net_device *dev, int line)
 {
-       struct arlan_private *priv = dev->priv;
+       struct arlan_private *priv = netdev_priv(dev);
        volatile struct arlan_shmem *arlan = priv->card;
 
        u_char hostcpuLock, lancpuLock, controlRegister, cntrlRegImage,
@@ -663,8 +660,8 @@ static int arlan_hw_tx(struct net_device *dev, char *buf, int length)
 {
        int i;
 
-       struct arlan_private *priv = dev->priv;
-       volatile struct arlan_shmem *arlan = priv->card;
+       struct arlan_private *priv = netdev_priv(dev);
+       volatile struct arlan_shmem __iomem *arlan = priv->card;
        struct arlan_conf_stru *conf = priv->Conf;
 
        int tailStarts = 0x800;
@@ -673,9 +670,9 @@ static int arlan_hw_tx(struct net_device *dev, char *buf, int length)
 
        ARLAN_DEBUG_ENTRY("arlan_hw_tx");
        if (TXHEAD(dev).offset)
-               headEnds = (((TXHEAD(dev).offset + TXHEAD(dev).length - (((int) arlan->txBuffer) - ((int) arlan))) / 64) + 1) * 64;
+               headEnds = (((TXHEAD(dev).offset + TXHEAD(dev).length - offsetof(struct arlan_shmem, txBuffer)) / 64) + 1) * 64;
        if (TXTAIL(dev).offset)
-               tailStarts = 0x800 - (((TXTAIL(dev).offset - (((int) arlan->txBuffer) - ((int) arlan))) / 64) + 2) * 64;
+               tailStarts = 0x800 - (((TXTAIL(dev).offset - offsetof(struct arlan_shmem, txBuffer)) / 64) + 2) * 64;
 
 
        if (!TXHEAD(dev).offset && length < tailStarts)
@@ -684,7 +681,7 @@ static int arlan_hw_tx(struct net_device *dev, char *buf, int length)
                        printk(KERN_ERR "TXHEAD insert, tailStart %d\n", tailStarts);
 
                TXHEAD(dev).offset =
-                       (((int) arlan->txBuffer) - ((int) arlan));
+                       offsetof(struct arlan_shmem, txBuffer);
                TXHEAD(dev).length = length - ARLAN_FAKE_HDR_LEN;
                for (i = 0; i < 6; i++)
                        TXHEAD(dev).dest[i] = buf[i];
@@ -692,7 +689,7 @@ static int arlan_hw_tx(struct net_device *dev, char *buf, int length)
                TXHEAD(dev).retries = conf->txRetries;  /* 0 is use default */
                TXHEAD(dev).routing = conf->txRouting;
                TXHEAD(dev).scrambled = conf->txScrambled;
-               memcpy_toio(((char *) arlan + TXHEAD(dev).offset), buf + ARLAN_FAKE_HDR_LEN, TXHEAD(dev).length);
+               memcpy_toio((char __iomem *)arlan + TXHEAD(dev).offset, buf + ARLAN_FAKE_HDR_LEN, TXHEAD(dev).length);
        }
        else if (!TXTAIL(dev).offset && length < (0x800 - headEnds))
        {
@@ -700,7 +697,7 @@ static int arlan_hw_tx(struct net_device *dev, char *buf, int length)
                        printk(KERN_ERR "TXTAIL insert, headEnd %d\n", headEnds);
 
                TXTAIL(dev).offset =
-                       (((int) arlan->txBuffer) - ((int) arlan)) + 0x800 - (length / 64 + 2) * 64;
+                       offsetof(struct arlan_shmem, txBuffer) + 0x800 - (length / 64 + 2) * 64;
                TXTAIL(dev).length = length - ARLAN_FAKE_HDR_LEN;
                for (i = 0; i < 6; i++)
                        TXTAIL(dev).dest[i] = buf[i];
@@ -708,7 +705,7 @@ static int arlan_hw_tx(struct net_device *dev, char *buf, int length)
                TXTAIL(dev).retries = conf->txRetries;
                TXTAIL(dev).routing = conf->txRouting;
                TXTAIL(dev).scrambled = conf->txScrambled;
-               memcpy_toio(((char *) arlan + TXTAIL(dev).offset), buf + ARLAN_FAKE_HDR_LEN, TXTAIL(dev).length);
+               memcpy_toio(((char __iomem *)arlan + TXTAIL(dev).offset), buf + ARLAN_FAKE_HDR_LEN, TXTAIL(dev).length);
        }
        else
        {
@@ -764,8 +761,8 @@ static int arlan_hw_tx(struct net_device *dev, char *buf, int length)
 
 static int arlan_hw_config(struct net_device *dev)
 {
-       struct arlan_private *priv = dev->priv;
-       volatile struct arlan_shmem *arlan = priv->card;
+       struct arlan_private *priv = netdev_priv(dev);
+       volatile struct arlan_shmem __iomem *arlan = priv->card;
        struct arlan_conf_stru *conf = priv->Conf;
 
        ARLAN_DEBUG_ENTRY("arlan_hw_config");
@@ -847,8 +844,8 @@ static int arlan_hw_config(struct net_device *dev)
 static int arlan_read_card_configuration(struct net_device *dev)
 {
        u_char tlx415;
-       struct arlan_private *priv = dev->priv;
-       volatile struct arlan_shmem *arlan = priv->card;
+       struct arlan_private *priv = netdev_priv(dev);
+       volatile struct arlan_shmem __iomem *arlan = priv->card;
        struct arlan_conf_stru *conf = priv->Conf;
 
        ARLAN_DEBUG_ENTRY("arlan_read_card_configuration");
@@ -972,7 +969,7 @@ static int lastFoundAt = 0xbe000;
 static int __init arlan_check_fingerprint(unsigned long memaddr)
 {
        static const char probeText[] = "TELESYSTEM SLW INC.    ARLAN \0";
-       volatile struct arlan_shmem *arlan = (struct arlan_shmem *) memaddr;
+       volatile struct arlan_shmem __iomem *arlan = (struct arlan_shmem *) memaddr;
        unsigned long paddr = virt_to_phys((void *) memaddr);
        char tempBuf[49];
 
@@ -1000,7 +997,7 @@ static int __init arlan_check_fingerprint(unsigned long memaddr)
 
 static int arlan_change_mtu(struct net_device *dev, int new_mtu)
 {
-       struct arlan_private *priv = dev->priv;
+       struct arlan_private *priv = netdev_priv(dev);
        struct arlan_conf_stru *conf = priv->Conf;
 
        ARLAN_DEBUG_ENTRY("arlan_change_mtu");
@@ -1040,7 +1037,7 @@ static int arlan_mac_addr(struct net_device *dev, void *p)
 
 static int __init arlan_setup_device(struct net_device *dev, int num)
 {
-       struct arlan_private *ap = dev->priv;
+       struct arlan_private *ap = netdev_priv(dev);
        int err;
 
        ARLAN_DEBUG_ENTRY("arlan_setup_device");
@@ -1081,7 +1078,7 @@ static int __init arlan_setup_device(struct net_device *dev, int num)
 static int __init arlan_probe_here(struct net_device *dev, 
                                   unsigned long memaddr)
 {
-       struct arlan_private *ap = dev->priv;
+       struct arlan_private *ap = netdev_priv(dev);
 
        ARLAN_DEBUG_ENTRY("arlan_probe_here");
 
@@ -1110,8 +1107,8 @@ static int __init arlan_probe_here(struct net_device *dev,
 
 static int arlan_open(struct net_device *dev)
 {
-       struct arlan_private *priv = dev->priv;
-       volatile struct arlan_shmem *arlan = priv->card;
+       struct arlan_private *priv = netdev_priv(dev);
+       volatile struct arlan_shmem __iomem *arlan = priv->card;
        int ret = 0;
 
        ARLAN_DEBUG_ENTRY("arlan_open");
@@ -1208,7 +1205,7 @@ bad_end:
 
 static inline int DoNotReTransmitCrap(struct net_device *dev)
 {
-       struct arlan_private *priv = dev->priv;
+       struct arlan_private *priv = netdev_priv(dev);
 
        if (TXLAST(dev).length < priv->Conf->ReTransmitPacketMaxSize)
                return 1;
@@ -1218,7 +1215,7 @@ static inline int DoNotReTransmitCrap(struct net_device *dev)
 
 static inline int DoNotWaitReTransmitCrap(struct net_device *dev)
 {
-       struct arlan_private *priv = dev->priv;
+       struct arlan_private *priv = netdev_priv(dev);
 
        if (TXLAST(dev).length < priv->Conf->waitReTransmitPacketMaxSize)
                return 1;
@@ -1227,7 +1224,7 @@ static inline int DoNotWaitReTransmitCrap(struct net_device *dev)
 
 static inline void arlan_queue_retransmit(struct net_device *dev)
 {
-       struct arlan_private *priv = dev->priv;
+       struct arlan_private *priv = netdev_priv(dev);
 
        ARLAN_DEBUG_ENTRY("arlan_queue_retransmit");
 
@@ -1242,7 +1239,7 @@ static inline void arlan_queue_retransmit(struct net_device *dev)
 
 static inline void RetryOrFail(struct net_device *dev)
 {
-       struct arlan_private *priv = dev->priv;
+       struct arlan_private *priv = netdev_priv(dev);
 
        ARLAN_DEBUG_ENTRY("RetryOrFail");
 
@@ -1263,7 +1260,7 @@ static inline void RetryOrFail(struct net_device *dev)
 
 static void arlan_tx_done_interrupt(struct net_device *dev, int status)
 {
-       struct arlan_private *priv = dev->priv;
+       struct arlan_private *priv = netdev_priv(dev);
 
        ARLAN_DEBUG_ENTRY("arlan_tx_done_interrupt");
 
@@ -1405,8 +1402,8 @@ static void arlan_rx_interrupt(struct net_device *dev, u_char rxStatus, u_short
        char *skbtmp;
        int i = 0;
 
-       struct arlan_private *priv = dev->priv;
-       volatile struct arlan_shmem *arlan = priv->card;
+       struct arlan_private *priv = netdev_priv(dev);
+       volatile struct arlan_shmem __iomem *arlan = priv->card;
        struct arlan_conf_stru *conf = priv->Conf;
 
 
@@ -1509,7 +1506,7 @@ static void arlan_rx_interrupt(struct net_device *dev, u_char rxStatus, u_short
                        skb->dev = dev;
                        skbtmp = skb_put(skb, pkt_len);
 
-                       memcpy_fromio(skbtmp + ARLAN_FAKE_HDR_LEN, ((char *) arlan) + rxOffset, pkt_len - ARLAN_FAKE_HDR_LEN);
+                       memcpy_fromio(skbtmp + ARLAN_FAKE_HDR_LEN, ((char __iomem *) arlan) + rxOffset, pkt_len - ARLAN_FAKE_HDR_LEN);
                        memcpy_fromio(skbtmp, arlan->ultimateDestAddress, 6);
                        memcpy_fromio(skbtmp + 6, arlan->rxSrc, 6);
                        WRITESHMB(arlan->rxStatus, 0x00);
@@ -1557,8 +1554,8 @@ static void arlan_rx_interrupt(struct net_device *dev, u_char rxStatus, u_short
 
 static void arlan_process_interrupt(struct net_device *dev)
 {
-       struct arlan_private *priv = dev->priv;
-       volatile struct arlan_shmem *arlan = priv->card;
+       struct arlan_private *priv = netdev_priv(dev);
+       volatile struct arlan_shmem __iomem *arlan = priv->card;
        u_char rxStatus = READSHMB(arlan->rxStatus);
        u_char txStatus = READSHMB(arlan->txStatus);
        u_short rxOffset = READSHMS(arlan->rxOffset);
@@ -1660,8 +1657,8 @@ end_int_process:
 static irqreturn_t arlan_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
        struct net_device *dev = dev_id;
-       struct arlan_private *priv = dev->priv;
-       volatile struct arlan_shmem *arlan = priv->card;
+       struct arlan_private *priv = netdev_priv(dev);
+       volatile struct arlan_shmem __iomem *arlan = priv->card;
        u_char rxStatus = READSHMB(arlan->rxStatus);
        u_char txStatus = READSHMB(arlan->txStatus);
 
@@ -1683,7 +1680,7 @@ static irqreturn_t arlan_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 
 static int arlan_close(struct net_device *dev)
 {
-       struct arlan_private *priv = dev->priv;
+       struct arlan_private *priv = netdev_priv(dev);
 
        ARLAN_DEBUG_ENTRY("arlan_close");
 
@@ -1717,8 +1714,8 @@ static long alignLong(volatile u_char * ptr)
 
 static struct net_device_stats *arlan_statistics(struct net_device *dev)
 {
-       struct arlan_private *priv = dev->priv;
-       volatile struct arlan_shmem *arlan = priv->card;
+       struct arlan_private *priv = netdev_priv(dev);
+       volatile struct arlan_shmem __iomem *arlan = priv->card;
 
 
        ARLAN_DEBUG_ENTRY("arlan_statistics");
@@ -1747,8 +1744,8 @@ static struct net_device_stats *arlan_statistics(struct net_device *dev)
 
 static void arlan_set_multicast(struct net_device *dev)
 {
-       struct arlan_private *priv = dev->priv;
-       volatile struct arlan_shmem *arlan = priv->card;
+       struct arlan_private *priv = netdev_priv(dev);
+       volatile struct arlan_shmem __iomem *arlan = priv->card;
        struct arlan_conf_stru *conf = priv->Conf;
        int board_conf_needed = 0;