1. 21 12月, 2015 2 次提交
    • E
      iwlwifi: remove unused parameter from grab_nic_access · 23ba9340
      Emmanuel Grumbach 提交于
      All the callers used silent = false.
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      23ba9340
    • E
      iwlwifi: pcie: build an A-MSDU using TSO core · 6eb5e529
      Emmanuel Grumbach 提交于
      When the op_mode sends an skb whose payload is bigger than
      MSS, PCIe will create an A-MSDU out of it. PCIe assumes
      that the skb that is coming from the op_mode can fit in one
      A-MSDU. It is the op_mode's responsibility to make sure
      that this guarantee holds.
      
      Additional headers need to be built for the subframes.
      The TSO core code takes care of the IP / TCP headers and
      the driver takes care of the 802.11 subframe headers.
      
      These headers are stored on a per-cpu page that is re-used
      for all the packets handled on that same CPU. Each skb
      holds a reference to that page and releases the page when
      it is reclaimed. When the page gets full, it is released
      and a new one is allocated.
      
      Since any SKB that doesn't go through the fast-xmit path
      of mac80211 will be segmented, we can assume here that the
      packet is not WEP / TKIP and has a proper SNAP header.
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      6eb5e529
  2. 20 12月, 2015 2 次提交
  3. 13 12月, 2015 3 次提交
    • L
      iwlwifi: replace d0i3_mode and wowlan_d0i3 with more generic variables · b7282643
      Luca Coelho 提交于
      The d0i3_mode variable is used to distinguish between transports that
      handle d0i3 entry during suspend by themselves (i.e. the slave
      transports) and those which rely on the op_mode layer to do it.  The
      reason why the former do it by themselves is that they need to
      transition from d0i3 in runtime_suspend into d0i3 in system-wide
      suspend and this transition needs to happen before the op_mode's
      suspend flow is called.
      
      The wowlan_d0i3 element is also a bit confusing, because it just
      reflects the wowlan->any value for the trans to understand.  This is a
      bit unclear in the code and not generic enough for future use.
      
      To make it clearer and to generalize the platform power mode settings,
      introduce two variables to indicate the platform power management
      modes used by the transport.
      
      Additionally, in order not to take too big a step in one patch, treat
      this new variables semantically in the same way as the old d0i3_mode
      element, introducing a iwl_mvm_enter_d0i3_on_suspend() function to
      help with that.
      
      This commit also adds the foundation for a new concept where the
      firmware configuration state (i.e. D0, D3 or D0i3) is abstracted from
      the platform PM mode we are in (i.e. runtime suspend or system-wide
      suspend).
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      b7282643
    • S
      iwlwifi: update host command messages to new format · 39bdb17e
      Sharon Dvir 提交于
      Host commands now have a group id, express this in printed messages.
      Signed-off-by: NSharon Dvir <sharon.dvir@intel.com>
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      39bdb17e
    • E
      iwlwifi: pcie: allow the op_mode to block the tx queues · 0cd58eaa
      Emmanuel Grumbach 提交于
      In certain flows (see next patches), the op_mode may need to
      block the Tx queues for a short period. Provide an API for
      that. The transport is in charge of counting the number of
      times the queues are blocked since the op_mode may block the
      queues several times in a row before unblocking them.
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      0cd58eaa
  4. 02 12月, 2015 1 次提交
  5. 26 11月, 2015 3 次提交
  6. 18 11月, 2015 1 次提交
  7. 25 10月, 2015 1 次提交
  8. 16 8月, 2015 1 次提交
  9. 05 8月, 2015 4 次提交
  10. 04 8月, 2015 4 次提交
    • E
      iwlwifi: call d3_suspend/resume in d0i3 case as well · 6dfb36c8
      Eliad Peller 提交于
      Some CSR registers have to be configured also
      in case of suspend/resume with unified image
      (which doesn't includes reconfiguration flow).
      
      Reuse the existing d3_suspend/d3_resume trans ops,
      while making sure some configurations are a bit
      different, according to the wowlan type.
      
      After this change, we no longer need the special
      wowlan_d0i3 configurations done in iwl_pci_resume,
      as they are already being done in the d3_resume op.
      Signed-off-by: NEliad Peller <eliad@wizery.com>
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      6dfb36c8
    • H
      iwlwifi: pcie: provide a way to stop configuration if it is forbidden · 869f3b15
      Haim Dreyfuss 提交于
      The firmware debug infrastructure allows the user to
      provide a firmware that will toggle a few registers to
      configure the debugging capabilities.
      On certain devices, certain operations are forbidden.
      Executing a forbidden operation will cause the hardware to
      die in a way that only driver unload / load will bring it
      back to life.
      Fortunately, there is a way to know in advance if those
      operations will be accepted by the device. This is where
      the new PRPH_BLOCKBIT operation plays its role. If the bit
      X from PRPH register Y is set, then we should prevent any
      further register configuration. When that happens, drop a
      line in the kernel log since this is really an error state:
      the user won't have his device configured as he expected.
      Add operations that will be used in the future:
      INDIRECT_ASSIGN, INDIRECT_SETBIT, and INDIRECT_CLEARBIT.
      
      Other debugging configurations (such as destination
      configuration for the monitor) will take place in any case.
      Signed-off-by: NHaim Dreyfuss <haim.dreyfuss@intel.com>
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      869f3b15
    • A
      iwlwifi: add wide firmware command infrastructure for TX · ab02165c
      Aviya Erenfeld 提交于
      As the firmware is slowly running out of command IDs and grouping of
      commands is desirable anyway, the firmware is extending the command
      header from 4 bytes to 8 bytes to introduce a group (in place of the
      former flags field, since that's always 0 on commands and thus can
      be easily used to distinguish between the two.
      
      In order to support this most easily in the driver widen the command
      command ID used in the command sending functions and encode the new
      values (group and version) in the ID. That way existing code doesn't
      have to be changed (since the higher bits are 0 automatically) and
      newer code can easily use the new ID generation function to create a
      value to use in place of just the command ID.
      Signed-off-by: NAviya Erenfeld <aviya.erenfeld@intel.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      ab02165c
    • E
      iwlwifi: pcie: add missing calls to synchronize_irq() · 33b56af1
      Emmanuel Grumbach 提交于
      In a few places, we were disabling interrupts but didn't
      make sure that the interrupt handler has finished running.
      Add calls to synchronize_irq() to ensure we finish handling
      the interrupts before we free resources or other things that
      could lead to a crash if the interrupt were to be handled
      later.
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      33b56af1
  11. 28 7月, 2015 1 次提交
    • E
      iwlwifi: pcie: fix prepare card flow · c9fdec9f
      Emmanuel Grumbach 提交于
      When the card is not owned by the PCIe bus, we need to
      acquire ownership first. This flow is implemented in
      iwl_pcie_prepare_card_hw. Because of a hardware bug, we
      need to disable link power management before we can
      request ownership otherwise the other user of the device
      won't get notified that we are requesting the device which
      will prevent us from acquire ownership.
      
      Same holds for the down flow where we need to make sure
      that any other potential user is notified that the driver
      is going down.
      
      CC: <stable@vger.kernel.org> [4.1]
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      c9fdec9f
  12. 13 7月, 2015 1 次提交
  13. 08 7月, 2015 2 次提交
  14. 26 6月, 2015 1 次提交
  15. 03 6月, 2015 1 次提交
  16. 28 5月, 2015 3 次提交
  17. 27 5月, 2015 1 次提交
  18. 15 5月, 2015 1 次提交
  19. 29 4月, 2015 2 次提交
  20. 28 4月, 2015 1 次提交
    • E
      iwlwifi: mvm: don't power off the device between INIT and OPER firmwares · 8d193ca2
      Eran Harary 提交于
      Our device needs two different firmwares: the INIT firmware
      and the operational (OPER) firmware. The first one is run
      when the driver loads and it returns calibrations results
      as well as the NVM. The second one implements the WiFi
      protocol.
      
      If the wlan interface is not brought up, the device is put
      to low power state: no firmware will be running. When the
      interface is brought up, we would run the OPER firmware
      only and reuse the results of the run of the INIT firmware
      when the driver was loaded. This is changing with this
      patch.
      We now run the INIT firmware every time mac80211 calls
      start(). The penalty for that is minimal since the INIT
      firwmare run fast. I now also avoid to power down the device
      between the INIT and OPER firmware on certains buses.
      
      The motivation for this change is that there are components
      on the device (MFUART) that are triggered by the INIT
      firmware and need the device to be powered up in order to
      keep running. Powering the device down between the INIT and
      OPER firmware would stop these components and prevent them
      from running again since they are triggered by the INIT
      firmware only.
      The new flow allows this and also allows to trigger these
      components again when the interface is brought up after
      it has been brought down.
      Signed-off-by: NEran Harary <eran.harary@intel.com>
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      8d193ca2
  21. 20 4月, 2015 1 次提交
  22. 30 3月, 2015 1 次提交
  23. 26 3月, 2015 2 次提交