lkml.org 
[lkml]   [2001]   [Mar]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectNetGear fa311 driver update

    Hi all,

    I brought NetGear's fa311 driver up to compile under 2.4.2. I put the
    updated source here -

    http://millweed.com/projects/fa311/fa311.c

    Or you can apply the following patch to the source gotten from the
    NetGear support site
    (http://www.netgear-support.com/ts/downloads/fa31lx70.zip) -

    --- /tmp/basdf/fa311.c Fri Jan 19 14:20:50 2001
    +++ fa311.c Thu Mar 1 18:12:57 2001
    @@ -174,23 +174,23 @@

    /* Device private data */
    struct fa311_priv {
    - struct device * next; /* Next fa311device */
    + struct net_device * next; /* Next fa311device */
    struct fa311_queue tx_queue; /* Transmit Descriptor Queue */
    struct fa311_queue rx_queue; /* Receive Descriptor Queue */
    - struct enet_statistics stats; /* MIB data */
    + struct net_device_stats stats; /* MIB data */
    };

    -static struct device * fa311_dev_list; /* List of fa311devices */
    +static struct net_device * fa311_dev_list; /* List of fa311devices */

    /* Linux Network Driver interface routines */
    -extern int fa311_probe (struct device *dev);
    -static int fa311_open (struct device *dev);
    -static int fa311_close (struct device *dev);
    -static int fa311_start_xmit (struct sk_buff *skb, struct device *dev);
    -static void fa311_set_multicast_list (struct device *dev);
    -static int fa311_ioctl (struct device *dev, struct ifreq *rq, int cmd);
    +extern int fa311_probe (struct net_device *dev);
    +static int fa311_open (struct net_device *dev);
    +static int fa311_close (struct net_device *dev);
    +static int fa311_start_xmit (struct sk_buff *skb, struct net_device *dev);
    +static void fa311_set_multicast_list (struct net_device *dev);
    +static int fa311_ioctl (struct net_device *dev, struct ifreq *rq, int cmd);
    static void fa311_interrupt (int irq, void *dev_id, struct pt_regs *regs);
    -static struct enet_statistics *fa311_get_stats (struct device *dev);
    +static struct net_device_stats *fa311_get_stats (struct net_device *dev);

    /* Support Functions */
    /*static u16 swap_16 (u16 us);*/
    @@ -206,11 +206,11 @@
    static status fa311_dev_reset (u32 iobase);
    static status fa311_queue_create (struct fa311_queue *q, int count, int qtype);
    static status fa311_queue_delete (struct fa311_queue *q);
    -static virt_addr fa311_tx_desc_get (struct device *dev);
    -static virt_addr fa311_rx_desc_get (struct device *dev);
    -static status fa311_phy_setup (struct device *dev);
    +static virt_addr fa311_tx_desc_get (struct net_device *dev);
    +static virt_addr fa311_rx_desc_get (struct net_device *dev);
    +static status fa311_phy_setup (struct net_device *dev);
    static int fa311_crc (char * mc_addr);
    -static void fa311_tx_skb_reclaim (struct device *dev, virt_addr desc_addr);
    +static void fa311_tx_skb_reclaim (struct net_device *dev, virt_addr desc_addr);
    static void ReadEEWord(u16 iobase,u32 wordOffset,u16* pEeData);


    @@ -226,7 +226,7 @@
    * registers each FA311 device found.
    */
    int
    -fa311_probe (struct device *dev)
    +fa311_probe (struct net_device *dev)
    {
    int dev_count;
    u8 bus;
    @@ -353,7 +353,7 @@

    /* fa311_open - open and initialize a device */
    static int
    -fa311_open (struct device *dev)
    +fa311_open (struct net_device *dev)
    {
    u32 iobase = dev->base_addr;
    struct fa311_priv* priv = dev->priv;
    @@ -448,7 +448,7 @@

    /* fa311_close - close a device, and reclaim resources */
    static int
    -fa311_close (struct device *dev)
    +fa311_close (struct net_device *dev)
    {
    u32 iobase = dev->base_addr;
    struct fa311_priv* priv = dev->priv;
    @@ -480,19 +480,19 @@
    * CMDSTS, and signals the chip
    */
    static int
    -fa311_start_xmit (struct sk_buff *skb, struct device *dev)
    +fa311_start_xmit (struct sk_buff *skb, struct net_device *dev)
    {
    u32 iobase = dev->base_addr;
    u32 cmdsts;
    virt_addr tx_desc;
    - struct enet_statistics *stats_p;
    + struct net_device_stats *stats_p;

    if (skb->len > ETH_MAX_PKT_SIZE)
    return ERROR;

    tx_desc = fa311_tx_desc_get(dev);
    if (tx_desc == NULL) {
    - set_bit (0, &dev->tbusy);
    + netif_stop_queue(dev);
    DP_REG32_SET (DP_IMR, DP_IMR_TXOK | DP_IMR_TXIDLE);
    tx_desc = fa311_tx_desc_get (dev);
    }
    @@ -553,7 +553,7 @@
    * size, and updates the BUFPTR and SKBPTR fields to the newly allocated SKB.
    */
    static int
    -fa311_start_receive (struct device *dev)
    +fa311_start_receive (struct net_device *dev)
    {
    u32 cmdsts;
    int len;
    @@ -562,7 +562,7 @@
    struct sk_buff *cur_skb;
    struct sk_buff *new_skb;
    struct sk_buff *rx_skb;
    - struct enet_statistics *stats_p;
    + struct net_device_stats *stats_p;

    stats_p = &((struct fa311_priv *)(dev->priv))->stats;

    @@ -648,15 +648,15 @@
    }

    /* fa311_get_stats - get current device statistics */
    -static struct enet_statistics *
    -fa311_get_stats (struct device *dev)
    +static struct net_device_stats *
    +fa311_get_stats (struct net_device *dev)
    {
    return &((struct fa311_priv *)(dev->priv))->stats;
    }

    /* fa311_set_multicast_list - sets multicast, & promiscuous mode */
    static void
    -fa311_set_multicast_list (struct device *dev)
    +fa311_set_multicast_list (struct net_device *dev)
    {
    u32 iobase = dev->base_addr;
    u16 hash_table[32];
    @@ -738,7 +738,7 @@

    /* fa311_interrupt - handle driver specific ioctls */
    static int
    -fa311_ioctl (struct device *dev, struct ifreq *rq, int cmd)
    +fa311_ioctl (struct net_device *dev, struct ifreq *rq, int cmd)
    {
    return -EOPNOTSUPP;
    }
    @@ -749,7 +749,7 @@
    static void
    fa311_interrupt (int irq, void *dev_id, struct pt_regs *regs)
    {
    - struct device * dev = dev_id;
    + struct net_device * dev = dev_id;
    u16 iobase = dev->base_addr;
    u32 reg_isr;
    u32 CurrentLinkStatus;
    @@ -784,8 +784,8 @@

    if (reg_isr & (DP_ISR_TXOK | DP_ISR_TXIDLE)) {
    DP_REG32_CLR (DP_IMR, (DP_IMR_TXOK|DP_IMR_TXIDLE));
    - clear_bit (0, &dev->tbusy);
    - mark_bh (NET_BH);
    + netif_start_queue(dev);
    + netif_wake_queue(dev);
    }
    }

    @@ -979,7 +979,7 @@
    * the owner, else returns NULL
    */
    static virt_addr
    -fa311_tx_desc_get (struct device *dev)
    +fa311_tx_desc_get (struct net_device *dev)
    {
    struct fa311_queue * q;
    virt_addr desc_addr = NULL;
    @@ -998,7 +998,7 @@

    /* fa311_tx_skb_reclaim - reclaim SKBs in transmitted descriptors */
    static void
    -fa311_tx_skb_reclaim (struct device *dev, virt_addr desc_addr)
    +fa311_tx_skb_reclaim (struct net_device *dev, virt_addr desc_addr)
    {
    struct sk_buff * skb;
    struct fa311_queue * q;
    @@ -1020,7 +1020,7 @@
    * the owner, else returns NULL
    */
    static virt_addr
    -fa311_rx_desc_get (struct device *dev)
    +fa311_rx_desc_get (struct net_device *dev)
    {
    struct fa311_queue * q;
    virt_addr desc_addr = NULL;
    @@ -1038,7 +1038,7 @@

    /* fa311_phy_setup - reset and setup the PHY device */
    static status
    -fa311_phy_setup (struct device *dev)
    +fa311_phy_setup (struct net_device *dev)
    {
    u32 iobase = dev->base_addr;
    u32 dp_cfg_val;
    @@ -1215,7 +1215,7 @@
    void
    cleanup_module (void)
    {
    - struct device *cur_dev;
    + struct net_device *cur_dev;

    cur_dev=fa311_dev_list;
    while (cur_dev) {

    --
    Keith Craigie
    R&D
    Mediabolic, Inc.
    415-346-2270 x115

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:29    [W:0.032 / U:0.316 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site