]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/net/tulip/tulip.h
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[linux-2.6-omap-h63xx.git] / drivers / net / tulip / tulip.h
index 25668ddb1f7ec30bb0d287695b6536e9475343dd..3f69f53d7768f44e90385ce43dd9a22830ac7a97 100644 (file)
@@ -22,6 +22,7 @@
 #include <linux/netdevice.h>
 #include <linux/timer.h>
 #include <linux/delay.h>
+#include <linux/pci.h>
 #include <asm/io.h>
 #include <asm/irq.h>
 
@@ -44,7 +45,7 @@ struct tulip_chip_table {
        int valid_intrs;        /* CSR7 interrupt enable settings */
        int flags;
        void (*media_timer) (unsigned long);
-       void (*media_task) (void *);
+       work_func_t media_task;
 };
 
 
@@ -132,7 +133,7 @@ enum pci_cfg_driver_reg {
 /* The bits in the CSR5 status registers, mostly interrupt sources. */
 enum status_bits {
        TimerInt = 0x800,
-       SytemError = 0x2000,
+       SystemError = 0x2000,
        TPLnkFail = 0x1000,
        TPLnkPass = 0x10,
        NormalIntr = 0x10000,
@@ -177,18 +178,18 @@ enum tulip_busconfig_bits {
 
 /* The Tulip Rx and Tx buffer descriptors. */
 struct tulip_rx_desc {
-       s32 status;
-       s32 length;
-       u32 buffer1;
-       u32 buffer2;
+       __le32 status;
+       __le32 length;
+       __le32 buffer1;
+       __le32 buffer2;
 };
 
 
 struct tulip_tx_desc {
-       s32 status;
-       s32 length;
-       u32 buffer1;
-       u32 buffer2;            /* We use only buffer 1.  */
+       __le32 status;
+       __le32 length;
+       __le32 buffer1;
+       __le32 buffer2;         /* We use only buffer 1.  */
 };
 
 
@@ -352,6 +353,7 @@ struct tulip_private {
        int chip_id;
        int revision;
        int flags;
+       struct napi_struct napi;
        struct net_device_stats stats;
        struct timer_list timer;        /* Media selection timer. */
        struct timer_list oom_timer;    /* Out of memory timer. */
@@ -392,6 +394,7 @@ struct tulip_private {
        int csr12_shadow;
        int pad0;               /* Used for 8-byte alignment */
        struct work_struct media_work;
+       struct net_device *dev;
 };
 
 
@@ -406,7 +409,7 @@ struct eeprom_fixup {
 
 /* 21142.c */
 extern u16 t21142_csr14[];
-void t21142_media_task(void *data);
+void t21142_media_task(struct work_struct *work);
 void t21142_start_nway(struct net_device *dev);
 void t21142_lnk_change(struct net_device *dev, int csr5);
 
@@ -424,10 +427,10 @@ int tulip_read_eeprom(struct net_device *dev, int location, int addr_len);
 /* interrupt.c */
 extern unsigned int tulip_max_interrupt_work;
 extern int tulip_rx_copybreak;
-irqreturn_t tulip_interrupt(int irq, void *dev_instance, struct pt_regs *regs);
+irqreturn_t tulip_interrupt(int irq, void *dev_instance);
 int tulip_refill_rx(struct net_device *dev);
 #ifdef CONFIG_TULIP_NAPI
-int tulip_poll(struct net_device *dev, int *budget);
+int tulip_poll(struct napi_struct *napi, int budget);
 #endif
 
 
@@ -444,7 +447,7 @@ void pnic_lnk_change(struct net_device *dev, int csr5);
 void pnic_timer(unsigned long data);
 
 /* timer.c */
-void tulip_media_task(void *data);
+void tulip_media_task(struct work_struct *work);
 void mxic_timer(unsigned long data);
 void comet_timer(unsigned long data);
 
@@ -481,8 +484,11 @@ static inline void tulip_stop_rxtx(struct tulip_private *tp)
                        udelay(10);
 
                if (!i)
-                       printk(KERN_DEBUG "%s: tulip_stop_rxtx() failed\n",
-                                       pci_name(tp->pdev));
+                       printk(KERN_DEBUG "%s: tulip_stop_rxtx() failed"
+                                       " (CSR5 0x%x CSR6 0x%x)\n",
+                                       pci_name(tp->pdev),
+                                       ioread32(ioaddr + CSR5),
+                                       ioread32(ioaddr + CSR6));
        }
 }