/[orinoco]/orinoco/orinoco.c
ViewVC logotype

Diff of /orinoco/orinoco.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1.1.24.2.2 by dgibson, Mon Sep 29 04:37:36 2003 UTC revision 1.1.1.24.2.3 by dgibson, Mon Sep 29 04:44:07 2003 UTC
# Line 400  Line 400 
400   *        the ESSID is empty.  Too many firmwares break if we do.   *        the ESSID is empty.  Too many firmwares break if we do.
401   *      o 2.6 merges: Replace pdev->slot_name with pci_name(), remove   *      o 2.6 merges: Replace pdev->slot_name with pci_name(), remove
402   *        __devinitdata from PCI ID tables, use free_netdev().   *        __devinitdata from PCI ID tables, use free_netdev().
403     *      o Move netif_wake_queue() (back) to the Tx completion from the
404     *        ALLOC event.  This seems to prevent/mitigate the rolling
405     *        error -110 problems at least on some Intersil firmwares.
406     *        Theoretically reduces performance, but I can't measure it.
407     *        Patch from Andrew Tridgell <tridge AT samba.org>
408   *   *
409   * TODO   * TODO
410   *      o New wireless extensions API (patch from Moustafa   *      o New wireless extensions API (patch from Moustafa
# Line 1861  static void __orinoco_ev_tx(struct net_d Line 1866  static void __orinoco_ev_tx(struct net_d
1866  {  {
1867          struct orinoco_private *priv = dev->priv;          struct orinoco_private *priv = dev->priv;
1868          struct net_device_stats *stats = &priv->stats;          struct net_device_stats *stats = &priv->stats;
1869            u16 fid = hermes_read_regn(hw, TXCOMPLFID);
1870    
1871          stats->tx_packets++;          stats->tx_packets++;
1872    
1873            if (fid != priv->txfid) {
1874                    if (fid != DUMMY_FID)
1875                            printk(KERN_WARNING "%s: Tx event on unexpected fid (%04X)\n",
1876                                   dev->name, fid);
1877                    return;
1878            }
1879    
1880            netif_wake_queue(dev);
1881    
1882          hermes_write_regn(hw, TXCOMPLFID, DUMMY_FID);          hermes_write_regn(hw, TXCOMPLFID, DUMMY_FID);
1883  }  }
1884    
1885  static void __orinoco_ev_alloc(struct net_device *dev, hermes_t *hw)  static void __orinoco_ev_alloc(struct net_device *dev, hermes_t *hw)
1886  {  {
1887          struct orinoco_private *priv = dev->priv;          struct orinoco_private *priv = dev->priv;
   
1888          u16 fid = hermes_read_regn(hw, ALLOCFID);          u16 fid = hermes_read_regn(hw, ALLOCFID);
1889    
1890          if (fid != priv->txfid) {          if (fid != priv->txfid) {
# Line 1878  static void __orinoco_ev_alloc(struct ne Line 1892  static void __orinoco_ev_alloc(struct ne
1892                          printk(KERN_WARNING "%s: Allocate event on unexpected fid (%04X)\n",                          printk(KERN_WARNING "%s: Allocate event on unexpected fid (%04X)\n",
1893                                 dev->name, fid);                                 dev->name, fid);
1894                  return;                  return;
         } else {  
                 netif_wake_queue(dev);  
1895          }          }
1896    
1897          hermes_write_regn(hw, ALLOCFID, DUMMY_FID);          hermes_write_regn(hw, ALLOCFID, DUMMY_FID);

Legend:
Removed from v.1.1.1.24.2.2  
changed lines
  Added in v.1.1.1.24.2.3

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26