1. 14 Oct, 2011 1 commit
  2. 03 Oct, 2011 1 commit
  3. 08 Aug, 2011 1 commit
  4. 06 May, 2011 1 commit
    • Cindy H. Kao's avatar
      iwlwifi: support the svtool messages interactions through nl80211 test mode · 4613e72d
      Cindy H. Kao authored
      
      
      This patch adds the feature to support the test mode operation through
      the generic netlink channel NL80211_CMD_TESTMODE between intel
      wireless device iwlwifi and the user space application svtool.
      
      The main purpose is to create a transportation layer between the iwlwifi
      device and the user space application so that the interaction between the
      user space application svtool and the iwlwifi device in the kernel space is
      in a way of generic netlink messaging.
      
      The detail specific functions are:
      
      1. The function iwl_testmode_cmd() is added to digest the svtool test command
         from the user space application. The svtool test commands are categorized  to
         three types : commands to be processed by the device ucode, commands to access
         the registers, and commands to be processed at the driver level(such as reload
         the ucode). iwl_testmode_cmd() dispatches the commands the corresponding handlers
         and reply to user space regarding the command execution status. Extra data is
         returned to the user space application if there's any.
      
      2. The function iwl_testmode_ucode_rx_pkt() is added to multicast all the spontaneous
         messages from the iwlwifi device to the user space. Regardless the message types,
         whenever there is a valid spontaneous message received by the iwlwifi ISR,
         iwl_testmode_ucode_rx_pkt() is invoked to multicast the message content to user
         space. The message content is not attacked and the message parsing is left to
         the user space application.
      
      Implementation guidelines:
      
      1. The generic netlink messaging for iwliwif test mode is through  NL80211_CMD_TESTMODE
         channel, therefore, the codes need to follow the regulations set by cfg80211.ko
         to get the actual device instance ieee80211_ops via cfg80211.ko, so that the iwlwifi
         device is indicated with ieee80211_ops and can be actually accessed.
      
         Therefore, a callback iwl_testmode_cmd() is added to the structure
         iwlagn_hw_ops in iwl-agn.c.
      
      2. It intends to utilize those low level device access APIs from iwlwifi device driver
         (ie. iwlagn.ko) rather than creating it's own set of device access functions.
         For example, iwl_send_cmd(), iwl_read32(), iwl_write8(), and iwl_write32() are reused.
      
      3. The main functions are maintained in new files instead of spreading all over the
         existing iwlwifi driver files.
      
         The new files added are :
      
         drivers/net/wireless/iwlwifi/iwl-sv-open.c
              - to handle the user space test mode application command
                and reply the respective command status to the user space application.
              - to multicast the spontaneous messages from device to user space.
      
         drivers/net/wireless/iwlwifi/iwl-testmode.h
              - the commonly referenced definitions for the TLVs used in
                the generic netlink messages
      
      Signed-off-by: default avatarCindy H. Kao <cindy.h.kao@intel.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
      4613e72d
  5. 21 Feb, 2011 3 commits
  6. 21 Jan, 2011 4 commits
  7. 15 Nov, 2010 1 commit
  8. 24 Aug, 2010 2 commits
  9. 09 Jul, 2010 1 commit
  10. 13 May, 2010 1 commit
  11. 25 Jan, 2010 2 commits
  12. 30 Oct, 2009 1 commit
  13. 07 Oct, 2009 3 commits
  14. 27 Jul, 2009 1 commit
  15. 12 Jun, 2009 1 commit
  16. 10 Jun, 2009 1 commit
  17. 03 Jun, 2009 1 commit
    • Johannes Berg's avatar
      rfkill: rewrite · 19d337df
      Johannes Berg authored
      
      
      This patch completely rewrites the rfkill core to address
      the following deficiencies:
      
       * all rfkill drivers need to implement polling where necessary
         rather than having one central implementation
      
       * updating the rfkill state cannot be done from arbitrary
         contexts, forcing drivers to use schedule_work and requiring
         lots of code
      
       * rfkill drivers need to keep track of soft/hard blocked
         internally -- the core should do this
      
       * the rfkill API has many unexpected quirks, for example being
         asymmetric wrt. alloc/free and register/unregister
      
       * rfkill can call back into a driver from within a function the
         driver called -- this is prone to deadlocks and generally
         should be avoided
      
       * rfkill-input pointlessly is a separate module
      
       * drivers need to #ifdef rfkill functions (unless they want to
         depend on or select RFKILL) -- rfkill should provide inlines
         that do nothing if it isn't compiled in
      
       * the rfkill structure is not opaque -- drivers need to initialise
         it correctly (lots of sanity checking code required) -- instead
         force drivers to pass the right variables to rfkill_alloc()
      
       * the documentation is hard to read because it always assumes the
         reader is completely clueless and contains way TOO MANY CAPS
      
       * the rfkill code needlessly uses a lot of locks and atomic
         operations in locked sections
      
       * fix LED trigger to actually change the LED when the radio state
         changes -- this wasn't done before
      
      Tested-by: default avatarAlan Jenkins <alan-jenkins@tuffmail.co.uk>
      Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br> [thinkpad]
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      19d337df
  18. 16 Mar, 2009 2 commits
  19. 27 Feb, 2009 1 commit
    • Reinette Chatre's avatar
      iwlwifi: Fix and rework Kconfig file · 80bc5393
      Reinette Chatre authored
      
      
      Fixes:
      - iwlwifi is an optional driver and should thus not default to 'y'.
      - 3945 now depends on IWLCORE.
      
      Rework:
      - There is not a case when IWLCORE should not be selected. At the same time
        the driver does not use IWLWIFI or IWLCORE. We can just merge the usage of
        these two. With IWLWIFI being the driver name we proceed to use just it and
        replace instances of IWLCORE with it. The module name does not change
        and is still iwlcore.
      - Both IWLAGN and IWL3945 are selecting FW_LOADER, we can thus just move
        this up to one select when IWLWIFI is selected.
      - IWL5000 now supports Intel Wireless Wifi 100, 6000, and 6050 series.
      - Now that 3945 depends on IWLWIFI we can also indicate its dependency on
        MAC80211_LEDS and LEDS_CLASS at this level.
      - IWLAGN_LEDS is not used by driver - remove it.
      - IWLAGN_SPECTRUM_MEASUREMENT actually depends on IWLWIFI as it forms part
        of iwlcore module. Move this config up in Kconfig to reflect that and also
        change name to IWLWIFI_SPECTRUM_MEASUREMENT.
      - CONFIG_IWLWIFI_RFKILL is used by iwlagn as well as iwl3945, add text to
        description that indicates this.
      - CONFIG_IWL3945_RFKILL does not exist - remove usage from driver.
      - Add "iwlagn" to end of description of IWLAGN to help people understand
        what iwlagn means in rest of Kconfig text.
      - Add "iwl3945" to end of description of IWL3945 to help people understand
        what iwlagn means in rest of Kconfig text.
      - Change IWLWIFI_DEBUGFS description to indicate that only iwlagn supports
        it (for now).
      
      Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
      Reported-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      80bc5393
  20. 29 Jan, 2009 3 commits
  21. 31 Oct, 2008 1 commit
  22. 04 Aug, 2008 1 commit
  23. 08 Jul, 2008 1 commit
    • Adel Gadllah's avatar
      iwlwifi: remove input device and fix rfkill state · 80fcc9e2
      Adel Gadllah authored
      
      
      This patch fixes the iwlwifi rfkill. It removes the input device from iwl3945,
      adds support for RFKILL_STATE_HARD_BLOCKED and calls rfkill_force_state() to
      update the state rather than accessing it directly.
      The calls to iwl|iwl3945_rfkill_set_hw_state() had to be moved because
      rfkill_force_state() cannot be called from an atomic context.
      Tested on iwl3945 and seems to work fine.
      
      Cc: Randy Dunlap <randy.dunlap@oracle.com>
      Cc: Ivo van Doorn <ivdoorn@gmail.com>
      Cc: Fabien Crespel <fcrespel@gmail.com>
      Cc: Zhu Yi <yi.zhu@intel.com>
      Cc: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
      Signed-off-by: default avatarAdel Gadllah <adel.gadllah@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      80fcc9e2
  24. 30 Jun, 2008 1 commit
  25. 27 Jun, 2008 1 commit
    • Randy Dunlap's avatar
      iwlwifi: fix build for CONFIG_INPUT=n · b973e42e
      Randy Dunlap authored
      
      
      Fix iwlwifi so that it builds cleanly with CONFIG_INPUT=n.
      Also free the input device on exit.
      
      drivers/built-in.o: In function `iwl_rfkill_unregister':
      (.text+0xbf430): undefined reference to `input_unregister_device'
      drivers/built-in.o: In function `iwl_rfkill_init':
      (.text+0xbf51c): undefined reference to `input_allocate_device'
      drivers/built-in.o: In function `iwl_rfkill_init':
      (.text+0xbf5bf): undefined reference to `input_register_device'
      drivers/built-in.o: In function `iwl_rfkill_init':
      (.text+0xbf5e9): undefined reference to `input_free_device'
      net/built-in.o: In function `rfkill_disconnect':
      rfkill-input.c:(.text+0xe71e1): undefined reference to `input_close_device'
      rfkill-input.c:(.text+0xe71e9): undefined reference to `input_unregister_handle'
      net/built-in.o: In function `rfkill_connect':
      rfkill-input.c:(.text+0xe723e): undefined reference to `input_register_handle'
      rfkill-input.c:(.text+0xe724d): undefined reference to `input_open_device'
      rfkill-input.c:(.text+0xe725c): undefined reference to `input_unregister_handle'
      net/built-in.o: In function `rfkill_handler_init':
      rfkill-input.c:(.init.text+0x36ec): undefined reference to `input_register_handler'
      net/built-in.o: In function `rfkill_handler_exit':
      rfkill-input.c:(.exit.text+0x112c): undefined reference to `input_unregister_handler'
      make[1]: *** [.tmp_vmlinux1] Error 1
      
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      b973e42e
  26. 14 Jun, 2008 2 commits
  27. 14 May, 2008 1 commit