87dd634ae72bb8f6d0dd12f1cbbc67c7da6dba3b |
|
10-Nov-2014 |
Liad Kaufman <liad.kaufman@intel.com> |
iwlwifi: pcie: fix prph dump length The length counting previously done had an error in it, causing the length down the data dumping function to be shorter than it should be, causing the end of the data to get truncated off and lost. Cc: <stable@vger.kernel.org> [3.17+] Fixes: 67c65f2cf710 ("iwlwifi: dump periphery registers to fw-error-dump") Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
31b8b343e019e0a0c57ca9c13520a87f9cab884b |
|
02-Nov-2014 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: fix RFkill while calibrating If the RFkill interrupt fires while we calibrate, it would make the firmware fail and the driver wasn't able to recover. Change the flow so that the driver will kill the firmware in that case. Since we have now two flows that are calling trans_stop_device (the RFkill interrupt and the op_mode_mvm_start function) - we need to better sync this. Use the STATUS_DEVICE_ENABLED in the pcie transport in an atomic way to achieve this. This fixes: https://bugzilla.kernel.org/show_bug.cgi?id=86231 CC: <stable@vger.kernel.org> [3.10+] Reviewed-by: Johannes Berg <johannes.berg@intel.com> Reviewed-by: Luciano Coelho <luciano.coelho@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
7f2ac8fb31896c9fb70dbd2a2e6642b79996fc13 |
|
23-Oct-2014 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: pcie: fix polling in various places iwl_poll_bit may return a strictly positive value when the poll doesn't match on the first try. This was caught when WoWLAN started failing upon resume even if the poll_bit actually succeeded. Also change a wrong print. If we reach the end of iwl_pcie_prepare_card_hw, it means that we couldn't get the devices. Reviewed-by: Johannes Berg <johannes.berg@intel.com> Reviewed-by: Luciano Coelho <luciano.coelho@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
9180ac50716a097a407c6d7e7e4589754a922260 |
|
23-Sep-2014 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: configure the LTR The LTR is the handshake between the device and the root complex about the latency allowed when the bus exits power save. This configuration was missing and this led to high latency in the link power up. The end user could experience high latency in the network because of this. Cc: <stable@vger.kernel.org> [3.10+] Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
1fc0e22138406ac0e8451f7203dfbfd74fa5cfba |
|
17-Sep-2014 |
Liad Kaufman <liad.kaufman@intel.com> |
iwlwifi: pcie: fix HW_REV saving for 8000 series Align the trans->hw_rev variable format with previous series format. Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
c2a2b28bb7fbcb8e0e11b84714992750bba7b699 |
|
07-Sep-2014 |
Liad Kaufman <liad.kaufman@intel.com> |
iwlwifi: make hw rev checking more readable Rather than ANDing with a mask - use existing macros, which are more readable. Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
3a736bcb18f797996064cf18f4eecc4b3e46d39a |
|
10-Sep-2014 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: trans: don't configure the set_active in SCD for dvm This configuration is not needed for dvm, and it actually broke it. Reported-by: Oliver Hartkopp <socketcan@hartkopp.net> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
8b4139dc9f2171f313fc703c08269f6f8a6f6fc4 |
|
24-Jul-2014 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: add Intel Mobile Communications copyright Our legal structure changed at some point (see wikipedia), but we forgot to immediately switch over to the new copyright notice. For files that we have modified in the time since the change, add the proper copyright notice now. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
473ad712a49f8a7d9d2c5924a964a81a7ebf2e06 |
|
08-Jul-2014 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: dump CSRs to fw-error-dump Add the Control Status Registers to the firmware error dump infrastructure. Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
67c65f2cf7105f139909bad79c048e8aec0dc140 |
|
26-Jun-2014 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: dump periphery registers to fw-error-dump Use the fw-error-dump infrastructure to dump the periphery registers. Only certain ranges are readable, so dump only these. Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
48eb7b34ff027392985fae213c4d1d0fcc425b9c |
|
08-Jul-2014 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: split fw-error-dump between transport and mvm The mvm op_mode won't allocate the buffer for the transport any more. The transport allocates its own buffer and mvm is in charge of splicing the buffers in the debugfs hook. This makes the repartition easier to handle. Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
c544e9c4c32acb222782aeff2f24e55e7497e4bc |
|
26-Jun-2014 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: rename iwl_fw_error_fw_mon to iwl_fw_error_dump_fw_mon This is matches the convention of the other structures. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
b513ee7fd6dd5ca6498eee99fa46c0d6c0f21c9d |
|
01-Jun-2014 |
Liad Kaufman <liad.kaufman@intel.com> |
iwlwifi: update trans->hw_rev 8000 hw family format The format of the CSR_HW_REV register has changed in 8000 HW family. To keep backwards compatibility, we store the value of this register as usual in trans->hw_rev, only we store it in the old format in this variable. Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
f40faf623712153a64f39d2bddad2fc5a4f5e12d |
|
07-Jun-2014 |
Andy Lutomirski <luto@amacapital.net> |
iwlwifi: pcie: improve debugfs queue info This adds need_update and write_actual to rx_queue and need_update and an HCMD indicator to tx_queue. On my card, rx_queue now looks like: read: 181 write: 180 write_actual: 176 need_update: 0 free_count: 40 closed_rb_num: 181 tx_queue now looks like: hwq 00: read=29 write=30 use=1 stop=0 need_update=0 hwq 01: read=0 write=0 use=1 stop=0 need_update=0 hwq 02: read=128 write=128 use=1 stop=0 need_update=0 hwq 03: read=0 write=0 use=1 stop=0 need_update=0 hwq 04: read=94 write=94 use=1 stop=0 need_update=0 HCMD hwq 05: read=0 write=0 use=0 stop=0 need_update=0 hwq 06: read=0 write=0 use=0 stop=0 need_update=0 hwq 07: read=0 write=0 use=0 stop=0 need_update=0 hwq 08: read=0 write=0 use=0 stop=0 need_update=0 hwq 09: read=0 write=0 use=0 stop=0 need_update=0 hwq 10: read=0 write=0 use=0 stop=0 need_update=0 hwq 11: read=0 write=0 use=0 stop=0 need_update=0 hwq 12: read=0 write=0 use=0 stop=0 need_update=0 hwq 13: read=0 write=0 use=0 stop=0 need_update=0 hwq 14: read=0 write=0 use=0 stop=0 need_update=0 hwq 15: read=0 write=0 use=0 stop=0 need_update=0 hwq 16: read=0 write=0 use=0 stop=0 need_update=0 hwq 17: read=0 write=0 use=0 stop=0 need_update=0 hwq 18: read=0 write=0 use=0 stop=0 need_update=0 hwq 19: read=0 write=0 use=0 stop=0 need_update=0 This may help with debugging queue stalls. Signed-off-by: Andy Lutomirski <luto@amacapital.net> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
c2d202017da18ebd6567862bd9a50392970f048f |
|
01-Jun-2014 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: pcie: add firmware monitor capabilities This allows to use the firmware monitor. This capability uses a lot of contiguous memory (up to 64MB), so make its usage module parameter dependent. The driver will try to allocate as much contiguous memory as possible downgrading its requirements until the allocation succeeds. Dump this data into the fw-error dump file when an error happens. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
501fd9895c1d7d8161ed56698ae2fccb10ef14f5 |
|
07-May-2014 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: pcie: try to get ownership several times Some races with the hardware can happen when we take ownership of the device. Don't give up after the first try. Cc: <stable@vger.kernel.org> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
83f7a85f1134c6e914453f5747435415a23d516b |
|
13-Apr-2014 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: pcie: disable interrupts upon PCIe alloc In case RFKILL is in KILL position, the NIC will issue an interrupt straight away. This interrupt won't be sent because it is masked in the hardware. But if our interrupt service routine is called for another reason (SHARED_IRQ), then we'll look at the interrupt cause and service it. This can cause bad things if we are not ready yet. Explicitly clean the interrupt cause register to make sure we won't service anything before we are ready to. Cc: <stable@vger.kernel.org> [3.14] Reported-and-tested-by: Alexander Monakov <amonakov@gmail.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
4d075007d60f871a1d8842809f92b0d23487173a |
|
24-Apr-2014 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: mvm/pcie: capture last commands on firmware error When a firmware error occurs, capture the last 32 commands (which are still in memory) in the error dump debugfs file. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
83f32a4b4aa73f36ecc799e22174fe78ed5cb2af |
|
24-Apr-2014 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: pcie: get rid of q->n_bd This variable always tracks a constant value (256) so there's no need to have it. Removing it simplifies code generation, reducing the .text size (by about 240 bytes on x86-64.) Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
748fa67cb76608457d03f3932874b9baddb4d8bf |
|
27-Mar-2014 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: mvm: replace BUG_ON by WARN_ON in scan.c While the scan_cmd should really be allocated in init (and we do fail init in case the allocation failed), it doesn't mean we should lock up the machine if something really bad happened. Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
fa1a91fd76a1fda3ff59b84ed5ab7bf7fd72b2c4 |
|
24-Mar-2014 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: pcie: WARN upon traffic while flushing TX queues This must not happen - otherwise we might keep flushing forever. Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
3cafdbe6ad6ff0af74cf7953737475732d34ca66 |
|
24-Mar-2014 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: allow to wait for a subset of the queues This will be used later to flush / wait for queues that are related to a specific vif. Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
69e921317b2489210e77f3cc99323446c6a0d85b |
|
25-Mar-2014 |
Eran Harary <eran.harary@intel.com> |
iwlwifi: move CPU1_CPU2_SEPARATOR_SECTION to iwl-fw.h This define is related to the firmware packaging and is needed by more than one transport. Signed-off-by: Eran Harary <eran.harary@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
f14d6b39c0b3519f8148e1371d2149c148893b61 |
|
21-Mar-2014 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: pcie: implement GRO without NAPI Use the new NAPI infrastructure added to mac80211 to get GRO. We don't really implement NAPI since we don't have a real poll function and we never schedule a NAPI poll. Instead of this, we collect all the packets we got from a single interrupt and then call napi_gro_flush(). This allows us to benefit from GRO. In half duplex medium like WiFi, its main advantage is that it reduces the number of TCP Acks, hence improving the TCP Rx performance. Since we call the Rx path with a spinlock held, remove the might_sleep mention from the op_mode's API. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Reviewed-by: Ido Yariv <ido@wizery.com> [Squash different patches and rewrite the commit message] Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
14cfca7152ae5d10b15baf01c7fd60f0f0871062 |
|
25-Feb-2014 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: return whether to stop from rfkill method When indicating RF-kill toggle to the higher layer, that may in turn call back to the transport (for MVM at least) to turn off the device quickly. Instead of that, allow it to return whether or not the device should be turned off, this gets rid of the call indirection and will help make the API more consistent when we go back to non-threaded interrupts again for PCIe. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
a812cba9bb141225ce28a48b60038e115620bccd |
|
18-Feb-2014 |
Alexander Bondar <alexander.bondar@intel.com> |
iwlwifi: pcie: enable LP XTAL to reduce power consumption 1. Enable LP XTAL to avoid HW bug where device may consume much power if FW is not loaded after device reset. LP XTAL is disabled by default after device HW reset. Configure device's "persistence" mode to avoid resetting XTAL again when SHRD_HW_RST occurs in S3. 2. Add methods to access SHR (shared block memory space) directly from PCI bus w/o need to power up MAC HW. Shared internal registers (e.g. SHR_APMG_GP1, SHR_APMG_XTAL_CFG)can be accessed directly from PCI bus through SHR arbiter even when MAC HW is powered down. This is possible due to indirect read/write via HEEP_CTRL_WRD_PCIEX_CTRL (0xEC) and HEEP_CTRL_WRD_PCIEX_DATA (0xF4) registers. Use iwl_write32()/iwl_read32() family to access these registers. The MAC HW need not be powered up so no "grab inc access" is required. For example, to read from SHR_APMG_GP1 register (0x1DC), first, write to the control register: HEEP_CTRL_WRD_PCIEX_CTRL[15:0] = 0x1DC (offset of the SHR_APMG_GP1 register) HEEP_CTRL_WRD_PCIEX_CTRL[29:28] = 2 (read access) second, read from the data register HEEP_CTRL_WRD_PCIEX_DATA[31:0]. To write the register, first, write to the data register HEEP_CTRL_WRD_PCIEX_DATA[31:0] and then: HEEP_CTRL_WRD_PCIEX_CTRL[15:0] = 0x1DC (offset of the SHR_APMG_GP1 register) HEEP_CTRL_WRD_PCIEX_CTRL[29:28] = 3 (write access) Signed-off-by: Alexander Bondar <alexander.bondar@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
034846cfd23e00a70b48363d70dccc3f8d537053 |
|
29-Jan-2014 |
Eran Harary <eran.harary@intel.com> |
iwlwifi: mvm: support multiple firmware sections Newer devices have two embedded CPUs, and the firwmare for both of them is include in the .ucode file requested upon enumeration. An empty section with address=0xFFFFCCCC separates between the sections intended for cpu1 and the sections intended for cpu2. Update the driver to parse the .ucode file with this format and act accordingly. Signed-off-by: Eran Harary <eran.harary@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
56c2477f23c3bb3aa33516301b3eab0efe05bbe1 |
|
21-Jan-2014 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: pcie: make FH debugfs file code easier to understand The code seems fine, as buf won't be assigned when an error is returned, but checking for the error first is easier to understand. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
189fa2faac49bce07c6c6d83eca21cbe5bf47411 |
|
23-Jan-2014 |
Eran Harary <eran.harary@intel.com> |
iwlwifi: pcie: fix secure section / dual cpu firmware loading Also handle the bypass mode in which the second CPU doesn't interfere. Signed-off-by: Eran Harary <eran.harary@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
e4a9f8cea50406a57c8dc5429d9aca6429d82436 |
|
22-Dec-2013 |
Eran Harary <eran.harary@intel.com> |
iwlwifi: pcie: Disable L0S exit timer for 8000 HW family This configuration is invalid for this family. Signed-off-by: Eran Harary <eran.harary@intel.com> Reviewed-by: Dor Shaish <dor.shaish@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
e12ba844acc0cc212adef6c2d5f9251ea787c822 |
|
01-Dec-2013 |
Eran Harary <eran.harary@intel.com> |
iwlwifi: pcie: change CSR reset in family 8000 This register is not present in 8000 family devices. There is prph register instead. Signed-off-by: Eran Harary <eran.harary@intel.com> Reviewed-by: Dor Shaish <dor.shaish@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
3073d8c0c51c0b766d35ae3beb6b29948be2ee00 |
|
29-Dec-2013 |
Eran Harary <eran.harary@intel.com> |
iwlwifi: pcie: disable APMG configurations for family 8000 APMG HW block was removed in this NIC, hence, no need to configure it. Signed-off-by: Eran Harary <eran.harary@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
2d93aee152b1758a94a18fe15d72153ba73b5679 |
|
24-Dec-2013 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: pcie: enable oscillator for L1 exit Enabling the oscillator consumes slightly more power (100uA) but allows to make sure that we exit from L1 on time. Not doing so might lead to a PCIe specification violation since we might wake up from L1 at the wrong time. This issue has been identified on 3160 and 7260 only. On older NICs L1 off is not enabled, on newer NICs (7265), the issue is fixed. When the bug occurs the user sees that the NIC has disappeared from the PCI bridge, any access to the device returns 0xff. This fixes: https://bugzilla.kernel.org/show_bug.cgi?id=64541 and has been extensively discussed here: http://markmail.org/thread/mfmpzqt3r333n4bo Cc: stable@vger.kernel.org [3.10+] Fixes: 99cd47142399 ("iwlwifi: add 7000 series device configuration") Reported-and-tested-by: wzyboy <wzyboy@wzyboy.org> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
51368bf792c79eb917694a4155d62f04359e3734 |
|
30-Dec-2013 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: Update Copyright to 2014 Happy new year! Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
ce836c76da42d8e54042f6d759663e7ad79769ba |
|
11-Dec-2013 |
Eran Harary <eran.harary@intel.com> |
iwlwifi: pcie: Fix CSR_RESET operation access type The access to the CSR_RESET reg should be done as a complete DWORD and not by setting a bit. This is the right way to reset the device. Signed-off-by: Eran Harary <eran.harary@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
3dc3374fcebe30fefebf1fdce660d33b3e2bd0f9 |
|
22-Dec-2013 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: pcie: don't update the op_mode if rfkill hasn't changed This is useless and introduces a dependency between rfkill and stop_device - the op_mode can't call stop_device from the rfkill notification since it would lead to an endless recursion. Next patches will need to do so. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
b9439491055a18ee075614139abadfd74c1b887f |
|
22-Dec-2013 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: pcie: keep the NIC awake when commands are in flight Under very specific circumstances, the firmware might ignore a host command. This was debugged and we ended up seeing that the power management hardware was faulty. In order to workaround this issue, we keep the NIC awake as long as we have host commands in flight. This will avoid to put the hardware into buggy condition. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
7b70bd63c61d17a05a03bfc2f4eb83c1200a2509 |
|
11-Dec-2013 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: pcie: use don't disable interrupt when irq_lock is taken Since we don't take this lock in the primary interrupt handler, there is no pointin disabling the interrupt in the critical section protected by trans_pcie->irq_lock. Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
85bf9da1936bb0a0d81afab05b67beed2f253343 |
|
09-Dec-2013 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: pcie: re-organize the PCIe ISR code Separate the code that simply disables interrupt in the hardware and the code that checks what interrupt fired. This will be useful to move the second part in the threaded handler which will be done in a future patch. Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
efbf6e3ba2ad2e0f7965ff78779ea4eea7b871e8 |
|
04-Dec-2013 |
Arik Nemtsov <arik@wizery.com> |
iwlwifi: trans: clear FW_ERROR status in common code Clear the FW_ERROR status before the common start_fw transport code. Remove the transport specific clears. After these patches the FW_ERROR flag is only set and cleared by common transport code. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
eb7ff77edd391f215deee3ee5d957c857121cd72 |
|
30-Nov-2013 |
Arik Nemtsov <arik@wizery.com> |
iwlwifi: trans: use a unified transport status The same bits are employed in all transport layers. Put the status field in the common transport layer. This allows us to employ them in common transport code. Signed-off-by: Arik Nemtsov <arik@wizery.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
a4082843674000ffc5db76c2d0e66455ca5af490 |
|
24-Nov-2013 |
Arik Nemtsov <arik@wizery.com> |
iwlwifi: trans: divide stop_hw into stop_device/op_mode_leave The stop_hw trans callback is not well defined. It is missing in many cleanup flows and the division of labor between stop_device/stop_hw is cumbersome. Remove stop_hw and use stop_device to perform both. Implement this for all current transports. PCIE needs some extra configuration the op-mode is leaving to configure RF kill. Expose this explicitly as a new op_mode_leave trans callback. Take the call to stop_device outside iwl_run_mvm_init_ucode, this makes more sense and WARN when we want to run the INIT firmware while it has run already. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
6960a059b2c618f32fe549f13287b3d2278c09e9 |
|
11-Nov-2013 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: pcie: fix interrupt coalescing for 7260 / 3160 We changed the timeout for the interrupt coealescing for calibration, but that wasn't effective since we changed that value back before loading the firmware. Since calibrations are notification from firmware and not Rx packets, this doesn't change anyway - the firmware will fire an interrupt straight away regardless of the interrupt coalescing value. Also, a HW issue has been discovered in 7000 devices series. The work around is to disable the new interrupt coalescing timeout feature - do this by setting bit 31 in CSR_INT_COALESCING. This has been fixed in 7265 which means that we can't rely on the device family and must have a hint in the iwl_cfg structure. Cc: stable@vger.kernel.org [3.10+] Fixes: 99cd47142399 ("iwlwifi: add 7000 series device configuration") Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
e2d6f4e71dc76c815434234cb58c410871888e53 |
|
02-Oct-2013 |
Eran Harary <eran.harary@intel.com> |
iwlwifi: support Signed firmware image and Dual CPUs Support Signed firmware based on code signing system (CSS) protocol and dual CPUs download, the code recognize if there are more than one CPU and if we need to operate the signed protocol according to the ucode binary image Signed-off-by: Eran Harary <eran.harary@intel.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
d107babca27f3c08e399616483e4c5f010bd24d3 |
|
30-Sep-2013 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: pcie: fix merge damage The merge b35c8097 seems to have lost commit eabc4ac5d, put the code back. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
889b169650c5b2cfeac8bcf34137af84a85b1cb8 |
|
25-Jul-2013 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: pcie: clean RFKILL interrupt in AMPG Newer firmware don't clean the RFKILL interrupt in APMG, do it in driver instead. If we forget to do so, we can't send HCMD to firmware while the NIC is in RFKILL state. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
d819c6cf1c064e74c50e38c3ff36a781bb49959c |
|
30-Sep-2013 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: pcie: fix merge damage The merge b35c8097 seems to have lost commit eabc4ac5d, put the code back. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
6965a3540a4b45ee5b6fa91276a8134e25e17b63 |
|
10-Aug-2013 |
Luciano Coelho <luciano.coelho@intel.com> |
iwlwifi: pcie: don't swallow error codes in iwl_trans_pcie_alloc() The iwl_trans_pcie_alloc() function doesn't pass up error codes returned from functions it calls, swallowing them and returning NULL in all failure cases. The caller checks if the return value is NULL and returns -ENOMEM. This is not correct, because in certain cases the failure was not due to an OOM situation. To fix this, modify the iwl_trans_pcie_alloc() function to use ERR_PTR() to return error codes and clean up the error handling code a bit. Signed-off-by: Luciano Coelho <luciano.coelho@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
5fdda0476c28ff2097ae37f43f40557b91eb0160 |
|
02-Aug-2013 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: remove transport suspend/resume indirection There's no reason for the transport to call itself through indirect function pointers, inline the (little) code there is and remove the indirection completely. Reviewed-by: Gregory Greenman <gregory.greenman@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
eeb89ab1f081a62bee1695d82442996b99a5b2b3 |
|
30-Jul-2013 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: pcie: fix resume when no opmode is present If no opmode is present during suspend/resume (i.e. if the iwldvm or iwlmvm isn't loaded) the driver crashes during resume, trying to call the rfkill notification. Avoid that, and also don't enable the rfkill interrupt in this case (to avoid crashing trying to handle the interrupt later.) Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
eabc4ac5d7606a57ee2b7308cb7323ea8f60183b |
|
29-Jul-2013 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: pcie: disable L1 Active after pci_enable_device As Arjan pointed out, we mustn't do anything related to PCI configuration until the device is properly enabled with pci_enable_device(). Cc: stable@vger.kernel.org Reported-by: Arjan van de Ven <arjan@linux.intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
2997494fa66a1c94717d69c3cfae0a94462093c6 |
|
24-Jul-2013 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: pcie: reset the NIC before the bring up This allows to clean all kinds of bad state it might be in. This solves situation where HW RFkill was switched while the NIC was offline. Until now, we relied on the firmware to do clean the interrupt, but new firmwares don't do that any more. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
f2532b04b2ecde7c71ff30d0b26bd6d6166c4bf6 |
|
02-Jul-2013 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: pcie: don't disable L1 for newest NICs In newest NICs (7000 family and up), L1 is supported, so avoid to disable it. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
|
2be01fa8f5cd6feffb6c50dae20d846dad8b37ba |
|
26-Jun-2013 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: remove forward debugfs function declarations There's no need to have 'forward' debugfs function declarations as part of the macros because the macros are always used after the static functions are defined already, so remove them. Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
|
313b0a294f8cc92be4387186e8c9eef59c1c198a |
|
24-Jun-2013 |
Inbal Hacohen <Inbal.Hacohen@intel.com> |
iwlwifi: move dump_fh into common code This means it can be shared for different transport layers in the future. Signed-off-by: Inbal Hacohen <Inbal.Hacohen@intel.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
|
cfb4e624314b657ea5831505a380d932f3313a7a |
|
20-Jun-2013 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: always use 'trans_pcie' name A few places use 'pcie_trans' which is a bit non-standard, use 'trans_pcie' there as well. Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
debff6184c32149bd08cfecfafbebb96201be37d |
|
14-May-2013 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: mvm: implement D3 testing For testing the D3 (WoWLAN) firmware, it is useful to be able to run the firmware with instrumentation while the host isn't sleeping and can poke at the firmware debug logging etc. Implement this by a debugfs file. When the file is opened the D3 firmware is loaded and all regular commands are blocked. While the file is being read, poll the firmware's PME status flag and report EOF once it changes to non-zero. When it is closed, do (most of) the resume processing. This lets a user just "cat" the file. Pressing Ctrl-C to kill the cat process will resume the firwmare as though the platform resumed for non-wireless reason and when the firmware wants to wake up reading from the file automatically completes. Unlike in real suspend, only disable interrupts and don't reset the TX/RX hardware while in the test mode. This is a workaround for some interrupt problems that happen only when the PCIe link isn't fully reset (presumably by changing the PCI config space registers which the core PCI code does.) Note that while regular operations are blocked from sending commands to the firmware, they could still be made and cause strange mac80211 issues. Therefore, while using this testing feature you need to be careful to not try to disconnect, roam or similar, and will see warnings for such attempts. Als note that this requires an upcoming firmware change to tell the driver the location of the PME status flag in SRAM. D3 test will fail if the firmware doesn't report the pointer. Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
8ade62857ef77bdf639185410fbcd811aa700cb2 |
|
17-May-2013 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: move D3_CFG_COMPLETE handling into DVM The MVM firmware doesn't communicate this way, it instead assumes D3 configuration is complete after a specific host command (which must be last) has been sent. Handling this bit thus belongs into the firmware API code, i.e. DVM. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
bf0fd5da8afdea8e1b1a2b42b8e9db068fbac96b |
|
13-May-2013 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: constify the source buffer of iwl_trans_write_mem Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
c571573a027bb65ac415141f919df3c0fa0fedb4 |
|
30-Apr-2013 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: pcie: prefer to load the firmware in one shot Users complained about allocation failures, so we loaded the firmware in small chunks (PAGE_SIZE). This makes the firmware restart considerably slower. So, always prefer to load it in one shot allocating a big chunk of coherent, and use smaller chunks as a fallback solution. On my laptop, this reduces the fw loading time from 120ms to 20ms. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Reviewed-by: Moshe Island <moshe.island@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
4620020b5d7ca34d1c03fa98b0ca457320cb7d71 |
|
13-Mar-2013 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: set rfkill in internal state of the transport We didn't update the internal of the PCIe transport when we read the RFkill state directly. Fix that. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
f9477c17c2ce59f64462635c3e5d43c98c0ad67f |
|
27-Feb-2013 |
Amnon Paz <amnonX.paz@intel.com> |
iwlwifi: fix indirect write bug Fix a bug in writing to indirect (periphery) registers; although writes seem successful the data is not written to the desired address). Also fix address mask for HBUS_TARG_PRPH_RADDR and HBUS_TARG_PRPH_WADDR registers. Signed-off-by: Amnon Paz <amnonX.paz@intel.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
490953ac344725f56746d16ef8480842f4087fc4 |
|
04-Mar-2013 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: move firmware restart debugfs hook to op_mode This allows to test fw restart flow. The hook in transport layer doesn't really make the fw assert. Moving this hook to the op_mode allows to use the fw API to actually send a host command that will make the fw assert. Change the restart_fw module parameter to be a boolean on the way. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
410dc5aa5906ed49e2733b451a5287884e8a16dc |
|
18-Feb-2013 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: a few fixes in license 7000.c was released as GPL only by mistake: it should be dual licensed - GPL / BSD. The file that contains the license in the kernel is COPYING and not LICENSE.GPL. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
2bfb50924c7e92362ac937aef2ab56bc7bd3ca52 |
|
27-Dec-2012 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: use threaded interrupt handler With new transports coming up, move to threaded interrupt handling now. This has the advantage that we can use the same locking scheme with all different transports we may need to implement. Note that the TX path obviously still runs in a tasklet, so some spin_lock() calls need to change to spin_lock_bh() calls to properly lock out the TX path. In my test on a Calpella platform this has no impact on throughput or latency. Also add lockdep annotations to avoid lockups due to catch sending synchronous commands or using locks that connect with them from the irq thread. Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
e56b04efc1f795da42cf1d9651b52a4a5bebd730 |
|
16-Jan-2013 |
Lilach Edelstein <lilach.edelstein@intel.com> |
iwlwifi: move register access lock into transport Move the reg_lock that protects HW register access into the transport implementation. Locking is no longer exposed, but handled internally in grab and release NIC access. This simplifies the users. Signed-off-by: Lilach Edelstein <lilach.edelstein@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
e139dc4aebf52a9c88552963b9794fd1dff036f1 |
|
13-Jan-2013 |
Lilach Edelstein <lilach.edelstein@intel.com> |
iwlwifi: add iwl_set_bits_mask to transport API Express iwl_set_bit() and iwl_clear_bit() through iwl_set_bits_mask() and add the latter to the transport's API in order to allow different implementation for different transport types in the future. Signed-off-by: Lilach Edelstein <lilach.edelstein@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
128e63ef077ef7ccd9c5779bbdce566641714666 |
|
21-Jan-2013 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: update copyright Update Copyright notices to 2013. Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
1c3fea82d6ebf33edadefed2d9ce3efa1a654338 |
|
01-Jan-2013 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: improve the reports in TX path Also when things go wrong (queues don't get emtpy), try to get some data from the HW. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
ddaf5a5b300b8f9d3591b509fd8bedab1c9887be |
|
08-Jan-2013 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: enable communication with WoWLAN firmware On resuming, the opmode may have to be able to talk to the WoWLAN/D3 firmware in order to query it about its status and wakeup reasons. To do that, the opmode has to call the new d3_resume() transport API which will set up the device for command communcation. Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
01387ffd19f37b4026fd0e4c32260bc25f6469d4 |
|
09-Jan-2013 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: allow to zero SRAM Sending a NULL pointer to iwl_trans_write_mem allows now to zero SRAM. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
b1cf1bc160a94f2d56863522982160c9373b8860 |
|
08-Jan-2013 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: don't enable all interrupts on resuming Enabling the RF-kill interrupt is sufficient for getting RF-kill notifications, and no other interrupt is needed as the device isn't functional when suspended and will be restarted/reconfigured when mac80211 resumes it later. Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
abae2386d55aff1d395cdb665f03684c227a6a69 |
|
31-Dec-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: always check that grab_nic_access succeeds This allows to let sparse check that the NIC access is always released. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
0aa86df673d2122fcffc43ed0266279e1b8d8204 |
|
27-Dec-2012 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: move some PCIe calls to better places Synchronizing the IRQ is pointless when we will then enable the RF-Kill interrupt again, but is needed before we free it and the data needed to handle IRQs; move it to the free function. Simiarly, cancelling the replenish work struct can move to the function that frees the RX data structures. Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
a8b691e6104e6bd27070b6ed6622d0b640707fa8 |
|
27-Dec-2012 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: request IRQ only once There's no need to request the IRQ every time the device is started, we can request it just once. Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
4fd442db98dadf33ecce6d489bbbc95f6e8d3b31 |
|
24-Dec-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: virtualize SRAM access Different transports implement the access to the SRAM in different ways. Virtualize it. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
7a65d17053c758109477f420e813ba2d826b0eae |
|
24-Dec-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: virtualize iwl_{grab,release}_nic_access Since different transports have different ways to wake the up the NIC, we need to virtualize it. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
6ae02f3ef7f20af0237e21a979f66b13198921da |
|
24-Dec-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: let the op_mode run a FW while in RFKILL In some cases, the fw should run even if the NIC is in RFKILL. Make the API more flexible to allow that. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
046db346386661906dffa33f5ed3dfcdccfddc0b |
|
05-Dec-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: make the BC table layout configurable This is needed for newer NICs. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
438a0f0a1faa3dd00c0460e8232cd712215a6d46 |
|
05-Dec-2012 |
Bjorn Helgaas <bhelgaas@google.com> |
iwlwifi: Use standard #defines for PCIe Capability ASPM fields Use the standard #defines rather than creating local definitions for PCIe Capability ASPM fields. Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Acked-by: Johannes Berg <johannes.berg@intel.com>
|
b9d146e30a2d855229f0944152f84aef1a21553b |
|
05-Dec-2012 |
Bjorn Helgaas <bhelgaas@google.com> |
iwlwifi: collapse wrapper for pcie_capability_read_word() iwl_pciexp_link_ctrl() has only one call site and no longer provides any useful abstraction, so collapse it into the caller. Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Acked-by: Johannes Berg <johannes.berg@intel.com>
|
8d96bb61fcfa11fb0c0da0d4f1331b7ca231bec1 |
|
04-Dec-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: reset_ict in stop_hw Since the device is taken down in stop_hw, call reset_ict from there too. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
6a06b6c131d529f2913513355dd9e7c4e05e8e42 |
|
02-Dec-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: move prph handling into the transport New transports may handle it internally for better performance. Also move the tracing inside PRPH access which will make the output more readable: iwlwifi_dev_ioread_prph32: Read 0x0 from SCD_AGGR_SEL (32-bit) instead of the corresponding accesses to HBUS_TARG_PRPH_*. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
49bd072d4ebab59217dadeb779a0a3dd2d0397ec |
|
18-Nov-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: more cleanup in pcie/rx.c Really trivial clean up. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
f02831be962c7be68c72110fa779e916ab1a8cdd |
|
14-Nov-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: continue clean up - pcie/tx.c Rename static functions. Function moved from trans.c to tx.c. A few could be made static, others had to be exported. Functions that implement the transport API are prefixed by iwl_trans_pcie_, the others by iwl_pcie_. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
7afe3705cd4e2a5490140cc15a15b3ea7a10b889 |
|
14-Nov-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: continue clean up - pcie/trans.c Functions that implement the transport API are prefixed by iwl_trans_pcie_, the others by iwl_pcie_. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
9805c4460ae37aa9328a470c7aebea32f0667e24 |
|
14-Nov-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: continue clean up - pcie/rx.c Rename static functions. Function moved from trans.c to rx.c. A few could be made static, others had to be exported. Also, don't use rxb or rxbuf, but rb which stands for receive buffer. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
c61259858d685caf865e9819e3d3062a0865d93c |
|
14-Nov-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: init the replenish work in rx_init This is its natural place Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
990aa6d7b28d26bf22171410b49f191e8e9b09fc |
|
13-Nov-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: rename functions in transport layer 1) s/tx_queue/txq for the sake of consistency. 2) s/rx_queue/rxq for the sake of consistency. 3) Make all functions begin with iwl_pcie_ iwl_queue_init and iwl_queue_space are an exception since they are not PCIE specific although they are in pcie subdir. 4) s/trans_pcie_get_cmd_string/get_cmd_string it is much shorter and used in debug prints which are long lines. 5) s/iwl_bg_rx_replenish/iwl_pcie_rx_replenish_work this better emphasizes that it is a work 6) remove invalid kernelDOC markers pcie/tx.c and pcie/trans.c still needs to be cleaned up. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
6a4b09f807afab788b58b529c4a9d6dc27cc6933 |
|
28-Oct-2012 |
Joe Perches <joe@perches.com> |
wireless: Convert dev_printk(KERN_<LEVEL> to dev_<level>( dev_<level> calls take less code than dev_printk(KERN_<LEVEL> and reducing object size is good. Coalesce formats for easier grep. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
9f904b382ff61b8ec1f81f8afe76f12a5ac8b4cf |
|
13-Nov-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: don't enable interrupt as a W/A when MSI is enabled This is not needed, the comment there was wrong, it is only needed when MSI was *not* enabled. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
dbeca583f9b8e35aa08279b81d5340dac3a60aff |
|
13-Nov-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: don't warn if transport's allocation failed The allocation failure will already be very verbose. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
d18aa87fbfe80f33076942d11f19c9d813e835b1 |
|
06-Nov-2012 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: return commands with error on FW error When a firmware error occurs, don't just abort synchronous commands but also return an error (-EIO) and block any new commands as well. Currently, an error is only returned if WANT_SKB was set which is confusing and can lead to issues. Blocking is done until a new firmware image is loaded. Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
6b450fcbff6a6d9e4f7ebe47e579ab4c43a6b745 |
|
05-Nov-2012 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: remove useless messages There's no need to print the PCI resource length and base address, nor the hardware revision ID (which can be found in lspci) Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
adca1235cccacee91beb640a044e51b1c457b1ea |
|
25-Oct-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: check the SCD conf from ALIVE response The ALIVE response of new fw inclues the base address of the SCD in SRAM. Until we read it from a prph register, which was set by the fw. Since the fw might well stop updating the prph register, add a WARN when there is an inconsitency between the ALIVE response and the register to catch any change in the behavior. Reviewed-by: Gregory Greenman <gregory.greenman@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
f946b529502399d09471c5d13845fefbfe8555a6 |
|
25-Oct-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: handle RFKILL logic in the transport layer No HCMD can be sent while RFKILL is asserted. If a SYNC command is running while RFKILL is asserted the fw will silently discard it. This means that the driver needs to wake the process that sleeps on the CMD_SYNC. Since the RFKILL interrupt is handled in the transport layer and the code that sleeps in CMD_SYNC is also in the transport layer, all this logic can be handled there. This simplifies the work of the op_mode. So the transport layer will now return -ERFKILL when a CMD is sent and RFKILL is asserted. This will be the case even when the CMD is SYNC. The transport layer will return -ERFKILL straight away. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
f4feb8ac6e666d2ca37cf722166bbfadf2c6adf8 |
|
19-Oct-2012 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: support host command with copied data In addition to the NOCOPY flag, add a DUP flag that tells the transport to kmemdup() the buffer and free it after the command completes. Currently this is only supported for a single buffer in a given command, but that could be extended if it should be needed. Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
6c3fd3f00c67105b49d57525614fcfa6816d604d |
|
18-Oct-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: don't leak Tx skb when a queue is disabled Since the queue might not be empty, we need to free the pending Tx packets. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
0adb52dee209ee816ba86da51d01977fdb173b22 |
|
10-Oct-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: use the new macro for the SCD Q STTS bits Instead of hardcoding the expression, use the macro provided in the previous patch. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
26c7af7cad587455f5335af02eb94af772992ace |
|
01-Oct-2012 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: remove unused variables Remove a number of variables that are assigned, but not used. Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
f042c2eb96779944629fee99817718ede40d4970 |
|
05-Sep-2012 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: make data frame tracing optional When tracing in iwlwifi, we get all data. Most of the time, we don't need it, and it just takes up a lot of extra space in the trace. Make this optional by recording the data into two separate trace events if it is needed. Without it, record only the content of non-data and EAPOL TX frames. As a result, tracing without the data tracepoints will record meta information including the 802.11 headers for all frames but will not record the contents of data frames to reduce trace overhead. Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
a7be50b7e30f9d77cb059a7ffdb781bb0fb92eba |
|
18-Sep-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: don't double free the interrupt in failure path When the driver can't get the HW ready, we would release the interrupt twice which made the kernel complain loudly. Cc: stable@vger.kernel.org Reported-by: Brian Cockrell <brian.cockrell@intel.com> Tested-by: Brian Cockrell <brian.cockrell@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
83f84d7bd49f9e4deea0a77a76c9882673ee1f3c |
|
10-Sep-2012 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: load firmware in chunks Instead of allocating one big chunk of DMA-coherent memory for the firmware and keeping it around, only vmalloc() the firmware and copy it into a single page of DMA-coherent memory for the upload. The advantage is that we don't need DMA memory for the firmware image that is stored while the driver is operating, we only need it while uploading. This will make it easier for the driver to work if the system has fragmented memory. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
358a46d47eefadd5be67495682426bd743ce455c |
|
09-Sep-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: some clean up in transport layer Remove outdated iwlagn prefix to a few functions and fix comments that were not accurate. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
2d1c0044ddc708885146af1d6790436a613cac5b |
|
09-Sep-2012 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: fix indentation in iwl_load_given_ucode There's a block of code that's indented too far, move it out to where it should be. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
ee7d737c45440062320c16bc7ad7bb5c9fe8888e |
|
12-Aug-2012 |
David Spinadel <david.spinadel@intel.com> |
iwlwifi: stop interrupts before stopping device If an RX interrupt is signalled after or during apm_stop we may try to access the peripherals which are already down. Prevent this by disabling interrupts first. Signed-off-by: David Spinadel <david.spinadel@intel.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
8b61fa242ce56838ce1c41db3692b64b4c344776 |
|
08-Aug-2012 |
David Spinadel <david.spinadel@intel.com> |
iwlwifi: don't reset interupts after disabling iwl_disable_interupts() already resets the register, no need to do it again. Signed-off-by: David Spinadel <david.spinadel@intel.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
6379103e896a5e5aa707ea818588604ddd80064d |
|
06-Sep-2012 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: remove unused IDI code stubs These stubs are from internal experimental code and aren't needed in the driver in the kernel so just remove them. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
a7238b37ce794d75b822865a389429ed007ca983 |
|
20-Aug-2012 |
Jiang Liu <jiang.liu@huawei.com> |
iwlwifi: Use PCI Express Capability accessors Use PCI Express Capability access functions to simplify iwlwifi driver. [bhelgaas: split iwlegacy, iwlwifi, rtlwifi into separate patches] Signed-off-by: Jiang Liu <jiang.liu@huawei.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
|
94543a8d4fb302817014981489f15cb3b92ec3c2 |
|
21-Aug-2012 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: fix flow handler debug code iwl_dbgfs_fh_reg_read() can cause crashes and/or BUG_ON in slub because the ifdefs are wrong, the code in iwl_dump_fh() should use DEBUGFS, not DEBUG to protect the buffer writing code. Also, while at it, clean up the arguments to the function, some code and make it generally safer. Cc: stable@vger.kernel.org Reported-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
289e5501c3141191dd830957f1d764d3dc14a54f |
|
05-Aug-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: fix the preparation of the card There is no need to check if the ownership has been relinquished but we should rather try to get it in a loop. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
9679142291f51515bd1bf492535e8a12515558e9 |
|
24-Jul-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: get the correct HCMD in the response handler Until now, the response handler of a Host Command got the exact same pointer that was also given to the DMA engine. We almost never need to the Host Command that was sent while handling its response, but when we do need it, we see that the command has been modified. This mystery has been elucidated. The FH (our DMA engine) writes its meta data on the buffer in the DRAM. Of course it copies the buffer to the NIC first. This was known to happen for Tx command, but as a matter of fact, it happens to all TFD brought by the FH which doesn't care much about what it brings from DRAM to internal SRAM. So copy the Host Command to yet another buffer so that we can properly pass the buffer that was sent originally to the fw. Do that only if it was request by the user since very few flows need to get the HCMD sent in the response handler. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
9da987ac2b88b40c327ce08735b0d46057d180d7 |
|
17-Jul-2012 |
Meenakshi Venkataraman <meenakshi.venkataraman@intel.com> |
iwlwifi: rework the iwlwifi debugfs structure The generic part of the driver now creates all debugfs directories. It creates a root directory directly in the the root of the debugfs filesystem and within that directories for each device, named after the device ID of the devices iwlwifi is attached to. In the cfg80211/mac80211 directory there's now a link to the toplevel iwlwifi debugfs directory to make it easier to find the debugfs files. Signed-off-by: Meenakshi Venkataraman <meenakshi.venkataraman@intel.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
3ec4588231914344834805a6828551cd5c65afd8 |
|
12-Jul-2012 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: don't use stack memory for kmem cache name Since the kmem cache API doesn't internally allocate the name but just points to the name that was passed in we can't use stack memory for it. Move the name into the transport struct. Reported-by: Stanislaw Gruszka <sgruszka@redhat.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
d6f1c316346c95b0a280954d5afca29459921a24 |
|
28-Jun-2012 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: add trailing newline to some messages Some messages were missing a trailing newline, add it. Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
b04db9ac4f7641332e0133b2fd8f82e6e4553947 |
|
21-Jun-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: configure the queues from the op_mode Since the op_mode defines the queue mapping, let it do it completely through the API functions. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
ae8baec22878be1f8d14b5bb00ac83f7954a9832 |
|
13-Jun-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: don't disable interrupt while starting tx This is really not needed, we already have a lock inside the accesses to the prph. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
24172f39b02e5fcd35a4f721bde5bc9b61534736 |
|
17-Jun-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: disable BH before the call to iwl_op_mode_nic_error This is required by the op_mode API. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
e9d364de1aed8f7e81b3e67fdf3015533bfc76b1 |
|
13-Jun-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: print the scratch of all the buffers stuck in a queue Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
7bc057ffb5078d3e7f391ef2357f4ab01b9694e0 |
|
10-Jun-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: warn if TFD index and WiFi Seq don't match For AGG queues, we must match between the WiFi sequence number and the TFD number. This is a HW (SCD) requirement. This is a take two of my iwlwifi: add debug in Tx path in AGG flow This will allow us to catch bad cases in which the packets aren't in the right place on the ring. which disappeared during code move. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
49a4fc20df7fced31ffe4038b32b86a0438d1c27 |
|
10-Jun-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: don't modify the timer if we don't Tx In fragmentation we don't update the write pointer of the HW immediately. So we shouldn't modify the timer in that case. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
12af0468734dcef5d123d774f98e284deedd361c |
|
11-Jun-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: print even more info when a queue is stuck Since the queue gets stuck from time to time, we are trying to get as much information as we can when this occurs. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
5bf9a89d9a2eaa136a23d872db4195ca8cada4c8 |
|
07-Jun-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: remove lock around txq_enable This locking isn't needed. The only locking we need is when we access prph registers but there is already a separate lock for that. Since we haven't returned from the mac80211's IEEE80211_AMPDU_TX_OPERATIONAL ampdu_action, we cannot receive any Tx frame for that sta / tid while enabling the queue. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
f22d33289ae61c79aa27170f7b9e4b2b2e95281d |
|
10-Jun-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: print more info when a queue is stuck Print some more info from the SCD's SRAM and dump the TRB from the FH. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
59c647b6266506cbbceadfabfd01168148f026c5 |
|
24-May-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: allocate Tx cmd pool per device Different transports will have different needs: New tranports need headroom for their own use before the Tx cmd. So allocate the Tx cmd pool in the transport and give it a unique name based on dev_name. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
4beaf6c2f8af52902bcd55b51f9ff8c8f547d485 |
|
29-May-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: s/txq_setup/txq_enable We need to be able to enable / disable Tx queues in HW dynamically. So this function is no longer related to AGG only. It can do the job for any queue, even AC ones. Change the name to better reflect its role. Also use the new function to configure the AC / CMD queues in tx_start. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
d0624be65ade709ef1a4220451a474be1ad01af9 |
|
29-May-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: s/txq_agg_disable/txq_disable We need to be able to enable / disable Tx queues in HW dynamically. So this function is no longer related to AGG only. It can do the job for any queue, even AC ones. Change the name to better reflect its role. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
559b1a257ddeac637b8bb3a2c2469aaa2bde5383 |
|
28-May-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: use iwl_trans_set_wr_ptrs to init the queues This functions does the job so use it instead of duplicating the code. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
fc248615314c41abc2d6957e095c418ea9b12412 |
|
28-May-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: first config the SCD queues, then activate them The DMA channels of the FH should be activated after the configuration of the SCD queues too. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
588d932044169979bf028eab2155f9acd1d0418d |
|
28-May-2012 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: SCD_INT_MSK is obsolete - don't update it The scheduler can issue an interrupt when moving the read pointer. To get this interrupt, the driver needs to configure what queue can issue an interrupt when its read pointer moves in the scheduler: this is the SCD_INT_MSK. The driver also needs to enable the interrupt in CSR_INT_MASK (bit CSR_INT_BIT_SCD). Since we don't enable the scheduler interrupt in CSR_INT_MASK, there is no point in requesting an interrupt from the scheduler: it will be masked anyway. So don't configure the scheduler to issue interrupts at all. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
1023fdc4858b6b8cb88ff28cafd425b77555be9f |
|
15-May-2012 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: move DVM code into subdirectory Since we're working on another mode/driver inside iwlwifi, move the current one into a subdirectory to more cleanly separate the code. While at it, rename all the files. Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
6468a01a7181f3572a3e686910016f89ee71ff45 |
|
16-May-2012 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: move PCIe into subdirectory Structure the code a bit more and move all PCIe code including the hardware configuration files into a PCIe specific subdirectory. Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|