Skip to content
Snippets Groups Projects
  1. Apr 19, 2011
    • Gertjan van Wingerde's avatar
      rt2x00: Allow dynamic addition of PCI/USB IDs. · e01ae27f
      Gertjan van Wingerde authored
      
      Both USB and PCI drivers allow a system administrator to dynamically add
      USB/PCI IDs to the device table that a driver supports via the
      /sys/bus/{usb,pci,pci_express}/drivers/<driver-name>/new_id files.
      
      However, for the rt2x00 drivers using this method currently crashes the
      system with a NULL pointer failure.
      
      This is due to the set-up of rt2x00 where the probe functions require a
      rt2x00_ops structure in the driver_info field of the probed device. As
      this field is empty for the dynamically added devices this fails for
      these devices.
      
      Fix this by introducing driver-specific probe wrappers that do nothing
      but calling the bus-specific probe functions with the rt2x00_ops structure
      as an argument, rather than depending on the driver_info field.
      
      Signed-off-by: default avatarGertjan van Wingerde <gwingerde@gmail.com>
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      e01ae27f
    • Ivo van Doorn's avatar
      rt2x00: Split rt2x00dev->flags · 7dab73b3
      Ivo van Doorn authored
      
      The number of flags defined for the rt2x00dev->flags field,
      has been growing over the years. Currently we are approaching
      the maximum number of bits which are available in the field.
      
      A secondary problem, is that one part of the field are initialized only
      during boot, because the driver requirements are initialized or device
      requirements are loaded from the EEPROM. In both cases, the flags are
      fixed and will not change during device operation. The other flags are
      the device state, and will change frequently. So far this resulted in the fact
      that for some flags, the atomic bit accessors are used, while for the others
      the non-atomic variants are used.
      
      By splitting the flags up into a "flags" and "cap_flags" we can put all flags
      which are fixed inside "cap_flags". This field can then be read non-atomically.
      In the "flags" field we keep the device state, which is going to be read atomically.
      
      This adds more room for more flags in the future, and sanitizes the field access methods.
      
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Acked-by: default avatarHelmut Schaa <helmut.schaa@googlemail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      7dab73b3
  2. Apr 07, 2011
  3. Apr 04, 2011
  4. Mar 04, 2011
  5. Feb 14, 2011
  6. Jan 31, 2011
    • Gertjan van Wingerde's avatar
      rt2x00: Fix FIXME comments in rt61pci and rt73usb on Michael MIC. · a0aff623
      Gertjan van Wingerde authored
      
      Both rt61pci and rt73usb check the Michael MIC in hardware and strip the
      Michael MIC from received frames. This is perfectly allowed by mac80211 as
      long as this is properly reported to mac80211.
      Both these drivers reported the Michael MIC handling properly to mac80211, but
      still contained a FIXME comment on this, which is not needed to be handled, since
      mac80211 doesn't really need the Michael MIC in this case.
      
      Signed-off-by: default avatarGertjan van Wingerde <gwingerde@gmail.com>
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      a0aff623
    • Helmut Schaa's avatar
      rt2x00: Remove STATE_RADIO_IRQ_OFF_ISR and STATE_RADIO_IRQ_ON_ISR · b550911a
      Helmut Schaa authored
      
      Remove STATE_RADIO_IRQ_OFF_ISR and STATE_RADIO_IRQ_ON_ISR as they are
      not used anymore.
      
      Signed-off-by: default avatarHelmut Schaa <helmut.schaa@googlemail.com>
      Acked-by: default avatarGertjan van Wingerde <gwingerde@gmail.com>
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      b550911a
    • Helmut Schaa's avatar
      rt2x00: Refactor beacon code to make use of start- and stop_queue · 69cf36a4
      Helmut Schaa authored
      
      This patch allows to dynamically remove beaconing interfaces without
      shutting beaconing down on all interfaces.
      
      The only place to start and stop beaconing are now the start- and
      stop_queue callbacks. Hence, we can remove some register writes during
      interface bring up (config_intf) and only write the correct sync mode
      to the register there.
      
      When multiple beaconing interfaces are present we should enable
      beaconing as soon as mac80211 enables beaconing on at least one of
      them. The beacon queue gets stopped when the last beaconing
      interface was stopped by mac80211. Therefore, introduce another
      interface counter to keep track ot the number of enabled beaconing
      interfaces and start or stop the beacon queue accordingly.
      
      To allow single interfaces to stop beaconing, add a new driver
      callback clear_beacon to clear a single interface's beacon without
      affecting the other interfaces. Don't overload the clear_entry callback
      for clearing beacons as that would introduce additional overhead
      (check for each TX queue) into the clear_entry callback which is used
      on the drivers TX/RX hotpaths.
      
      Furthermore, the write beacon callback doesn't need to enable beaconing
      anymore but since beaconing should be disabled while a new beacon is
      written or cleared we still disable beacon generation and enable it
      afterwards again in the driver specific callbacks. However, beacon
      related interrupts should not be disabled/enabled here, that's solely
      done from the start- and stop queue callbacks. It would be nice to stop
      the beacon queue just before the beacon update and enable it afterwards
      in rt2x00queue itself instead of the current implementation that relies
      on the driver doing the right thing. However, since start- and
      stop_queue are mutex protected we cannot use them for atomic beacon
      updates.
      
      Signed-off-by: default avatarHelmut Schaa <helmut.schaa@googlemail.com>
      Acked-by: default avatarGertjan van Wingerde <gwingerde@gmail.com>
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      69cf36a4
  7. Jan 25, 2011
  8. Dec 13, 2010
  9. Nov 15, 2010
  10. Oct 05, 2010
  11. Sep 14, 2010
  12. Aug 31, 2010
  13. Aug 25, 2010
  14. Aug 17, 2010
  15. Aug 16, 2010
  16. Jul 12, 2010
  17. Jun 30, 2010
  18. Jun 15, 2010
  19. Jun 03, 2010
Loading