- 19 7月, 2016 11 次提交
-
-
由 Amitkumar Karwar 提交于
In corner case, we may end up processing same interrupt twice. We have a logic to read pending interrupts at the end of interrupt processing routine. It has a race with interrupts read in interrupt handler. This patch solves the problem by ORing the interrupt bitmap in this case. The symptom for this bug is below messages in dmesg log. [ 11.522123] mwifiex_pcie 0000:01:00.0: CMD_RESP: invalid cmd resp [ 11.680412] mwifiex_pcie 0000:01:00.0: There is no command but got cmdrsp Link: https://bugzilla.kernel.org/show_bug.cgi?id=109681Signed-off-by: NAmitkumar Karwar <akarwar@marvell.com> Signed-off-by: NCathy Luo <cluo@marvell.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Karthik D A 提交于
It's been observed that request_irq() failure leads to a system crash due to a bug in mwifiex driver. When this failure happens, mwifiex_add_card() already takes care of clearing and freeing adapter->card pointer. This patch removes the redundant cleanup code causing crash. Signed-off-by: NKarthik D A <karthida@marvell.com> Signed-off-by: NAmitkumar Karwar <akarwar@marvell.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Arend Van Spriel 提交于
The sdio dpc starts processing when in SDIOD_STATE_DATA. This state was entered right after firmware download. This patch moves that transition just before enabling sdio interrupt handling thus avoiding watchdog expiry which would put the bus to sleep while probing. Reviewed-by: NHante Meuleman <hante.meuleman@broadcom.com> Reviewed-by: NPieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com> Reviewed-by: NFranky Lin <franky.lin@broadcom.com> Signed-off-by: NArend van Spriel <arend.vanspriel@broadcom.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Arend Van Spriel 提交于
When the host-interface bus has hard time handling transmit packets it informs higher layer about this and it would stop the netdev queue when needed. However, since commit 9cd18359 ("brcmfmac: Make FWS queueing configurable.") this was broken. With this patch the behaviour is restored. Cc: stable@vger.kernel.org # v4.5, v4.6, v4.7 Fixes: 9cd18359 ("brcmfmac: Make FWS queueing configurable.") Tested-by: NPer Förlin <per.forlin@gmail.com> Reviewed-by: NHante Meuleman <hante.meuleman@broadcom.com> Reviewed-by: NPieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com> Reviewed-by: NFranky Lin <franky.lin@broadcom.com> Signed-off-by: NArend van Spriel <arend.vanspriel@broadcom.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Wei Yongjun 提交于
memory is malloced in mwifiex_cfg80211_start_ap() and should be freed before leaving from the error handling cases, otherwise it will cause memory leak. Signed-off-by: NWei Yongjun <yongjun_wei@trendmicro.com.cn> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Wei Yongjun 提交于
Fixes the following sparse warning: drivers/net/wireless/marvell/libertas/cfg.c:2047:5: warning: symbol 'lbs_set_power_mgmt' was not declared. Should it be static? Signed-off-by: NWei Yongjun <yongjun_wei@trendmicro.com.cn> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Maxim Altshul 提交于
Adding this opcode, allows the TI wireless driver, to report throughput directly from FW to mac80211. This is used mainly for mesh metric calculation. Signed-off-by: NMaxim Altshul <maxim.altshul@ti.com> [kvalo@codeaurora.org: fix indentation] Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Maxim Altshul 提交于
FW will provide a TX rate per link for each FW status, and wlcore will be able to store the information for the use of the mesh hwmp module. This is used mainly in mesh. Rates are reported when a mesh interface is up. Signed-off-by: NMaxim Altshul <maxim.altshul@ti.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Rafał Miłecki 提交于
This was succesfully tested with 4366B1. A small workaround is needed for the main interface otherwise it would stuck at the hidden state. Signed-off-by: NRafał Miłecki <zajec5@gmail.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Maital Hahn 提交于
1. Added support for interface and role of mesh type. 2. Enabled enable/start of mesh-point role, and opening and closing a connection with a mesh peer. 3. Added multirole combination of mesh and ap under the same limits of dual ap mode. 4. Add support for 'sta_rc_update' opcode for mesh IF. The 'sta_rc_update' opcode is being used in mesh_plink.c. Add support in wlcore to handle this opcode correctly for mesh (as opposed to current implementation that handles STA only). 5. Bumped the firmware version to support new Mesh functionality Signed-off-by: NMaital Hahn <maitalm@ti.com> Signed-off-by: NYaniv Machani <yanivma@ti.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Prasun Maiti 提交于
For multiple REG Host Commands (e.g HostCmd_CMD_802_11_EEPROM_ACCESS, HostCmd_CMD_MAC_REG_ACCESS etc.) "cpu_to_leX"-converted values are saved to driver. So, "leX_to_cpu" conversion is required too many times afterwards in driver. This patch reduces the endian: conversion without saving "cpu_to_leX" converted values in driver. This will convert endianness in prepare command and command response path. Signed-off-by: NPrasun Maiti <prasunmaiti87@gmail.com> Acked-by: NAmitkumar Karwar <akarwar@marvell.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
- 12 7月, 2016 1 次提交
-
-
由 Arnd Bergmann 提交于
The iwl-debug.h header relies in implicit inclusion of linux/device.h and we get a lot of warnings without that: drivers/net/wireless/intel/iwlwifi/iwl-debug.h:44:23: error: 'struct device' declared inside parameter list will not be visible outside of this definition or declaration [-Werror] void __iwl_err(struct device *dev, bool rfkill_prefix, bool only_trace, ^~~~~~ In file included from drivers/net/wireless/intel/iwlwifi/iwl-eeprom-read.h:66:0, from drivers/net/wireless/intel/iwlwifi/iwl-eeprom-read.c:68: drivers/net/wireless/intel/iwlwifi/iwl-trans.h: In function 'iwl_trans_tx': drivers/net/wireless/intel/iwlwifi/iwl-trans.h:1030:348: error: passing argument 1 of '__iwl_err' from incompatible pointer type [-Werror=incompatible-pointer-types] IWL_ERR(trans, "%s bad state = %d\n", __func__, trans->state); ^ In file included from drivers/net/wireless/intel/iwlwifi/iwl-eeprom-read.c:67:0: drivers/net/wireless/intel/iwlwifi/iwl-debug.h:44:6: note: expected 'struct device *' but argument is of type 'struct device *' void __iwl_err(struct device *dev, bool rfkill_prefix, bool only_trace, ^~~~~~~~~ The easiest workaround is to just declare 'struct device' before its first use, rather than including the entire header file. Signed-off-by: NArnd Bergmann <arnd@arndb.de> Fixes: 21cb3222 ("iwlwifi: decouple PCIe transport from mac80211") Acked-by: NLuca Coelho <luciano.coelho@intel.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
- 08 7月, 2016 28 次提交
-
-
由 Larry Finger 提交于
This driver contains some complicated if ... else if ... else constructions. These are replaced by switch statements to improve readability. Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Larry Finger 提交于
The driver for RTL8192DE chips is converted to use the common routine for getting the hardware information. Reported-by: NArnd Bergmann <arnd@arndb.de> Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net> Cc: Arnd Bergmann <arnd@arndb.de> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Larry Finger 提交于
The driver for RTL8821AE chips is converted to use the common routine for getting the hardware information. Reported-by: NArnd Bergmann <arnd@arndb.de> Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net> Cc: Arnd Bergmann <arnd@arndb.de> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Larry Finger 提交于
The driver for RTL8723BE chips is converted to use the common routine for getting the hardware information. Reported-by: NArnd Bergmann <arnd@arndb.de> Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net> Cc: Arnd Bergmann <arnd@arndb.de> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Larry Finger 提交于
The driver for RTL8723AE chips is converted to use the common routine for getting the hardware information. Reported-by: NArnd Bergmann <arnd@arndb.de> Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net> Cc: Arnd Bergmann <arnd@arndb.de> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Larry Finger 提交于
The driver for RTL8192EE chips is converted to use the common routine for getting the hardware information. Reported-by: NArnd Bergmann <arnd@arndb.de> Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net> Cc: Arnd Bergmann <arnd@arndb.de> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Larry Finger 提交于
The driver for RTL8188EE chips is converted to use the common routine for getting the hardware information. Reported-by: NArnd Bergmann <arnd@arndb.de> Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net> Cc: Arnd Bergmann <arnd@arndb.de> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Larry Finger 提交于
The driver for RTL8192CU chips is converted to use the common routine for getting the hardware information. Reported-by: NArnd Bergmann <arnd@arndb.de> Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net> Cc: Arnd Bergmann <arnd@arndb.de> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Larry Finger 提交于
The driver for RTL8192CE chips is converted to use the common routine for getting the hardware information. Reported-by: NArnd Bergmann <arnd@arndb.de> Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net> Cc: Arnd Bergmann <arnd@arndb.de> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Larry Finger 提交于
All of the rtlwifi family of drivers have a similar routine that acquires the hardware info from efuse and initializes a number of variables in the driver's private area. A common routine is created for all drivers to use. Reported-by: NArnd Bergmann <arnd@arndb.de> Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net> Cc: Arnd Bergmann <arnd@arndb.de> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Shengzhen Li 提交于
As interrupt is read in interrupt handler as well as interrupt processing thread, we observed a corner case issue for MSI in which interrupt gets processed twice. This patch moves interrupt reading code for MSI mode from mwifiex_interrupt_status() to mwifiex_pcie_process_int() to avoid the issue. Signed-off-by: NShengzhen Li <szli@marvell.com> Signed-off-by: NAmitkumar Karwar <akarwar@marvell.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Brian Norris 提交于
The PCIe driver didn't mask the host interrupts before trying to tear down. This causes lockups at reboot or rmmod when using MSI-X on 8997, since the MSI handler gets confused and locks up the system. Also tested on 8897, which does not support MSI-X (and wasn't experiencing this same bug). No regressions seen there. Signed-off-by: NBrian Norris <briannorris@chromium.org> Tested-by: NDouglas Anderson <dianders@chromium.org> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Amitkumar Karwar 提交于
PCIe-USB8997 variant is being used in the product. Let's change default firmware from PCIe-UART to PCIe-USB. So by default PCIe-USB firmware would be downloaded if version register doesn't give any information. Signed-off-by: NAmitkumar Karwar <akarwar@marvell.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Prasun Maiti 提交于
The two members min_scan_time and max_scan_time of structure "mwifiex_ie_types_btcoex_scan_time" are of two bytes each. The values are assigned directtly from firmware without endian conversion handling. So, wrong datas will get saved in big-endian systems. This patch converts the values into cpu's byte order before assigning them into the local members. Signed-off-by: NPrasun Maiti <prasunmaiti87@gmail.com> Acked-by: NAmitkumar Karwar <akarwar@marvell.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Rafał Miłecki 提交于
New firmwares (e.g. 10.10.69.36 for BCM4366) support "interface_remove" for removing interfaces. Try to use this method on cfg80211 request. In case of older firmwares (e.g. 7.35.177.56 for BCM43602 as I tested) this will just result in firmware rejecting command and this won't change any behavior. Signed-off-by: NRafał Miłecki <zajec5@gmail.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Rafał Miłecki 提交于
So far when receiving event about in-firmware-interface removal our event worker was notifying listener and afterwards it was removing Linux interface. First of all it was resulting in slightly unexpected order. The listener (del_virtual_intf callback) was (usually) returning with success before we even called unregister_netdev(ice). Please note this couldn't be simply fixed by changing order of calls in brcmf_fweh_handle_if_event as unregistering interface earlier could free struct brcmf_if. Another problem of current implementation are possible lockups. Focus on the time slot between calling event handler and removing Linux interface. During that time original caller may leave (unlocking rtnl semaphore) *and* another call to the same code may be done (locking it again). If that happens our event handler will stuck at removing Linux interface, it won't handle another event and will block process holding rtnl lock. This can be simply solved by unregistering interface in a proper callback, right after receiving confirmation event from firmware. This only required modifying worker to don't unregister on its own if there is someone waiting for the event. Signed-off-by: NRafał Miłecki <zajec5@gmail.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Amitkumar Karwar 提交于
scan_block flag is used to block scan operation when 4 way handshake is in progress. Sometimes it doesn't get cleared due to incomplete association. An example is assoc request/response is done, but add key operation get canceled in some corner cases. As a result, further association/scan operations are blocked. This patch fixes the problem by clearing scan_block flag. Signed-off-by: NAmitkumar Karwar <akarwar@marvell.com> Signed-off-by: NXinming Hu <huxm@marvell.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Masanari Iida 提交于
This patch fix spelling typos found in drivers/net/wireless/realtek. Signed-off-by: NMasanari Iida <standby24x7@gmail.com> Reviewed-by: NJulian Calaby <julian.calaby@gmail.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Jes Sorensen 提交于
This allows the user to specify DMA aggregation timout and block count. Blocks are presumably always 512 bytes, so the minimum block count is 6 for 802.11 packets. Signed-off-by: NJes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Jes Sorensen 提交于
gen2 chips as well as 8188eu seems to use this register for setting DMA timeout threshold values, however the 8192cu is using REG_USB_DMA_AGG_TO. Set both to be on the safe side. Signed-off-by: NJes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Jes Sorensen 提交于
Let the default to off until we have more data on the right default tuning values. Signed-off-by: NJes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Jes Sorensen 提交于
This enables aggregation on rtl8192cu and derivative parts. This uses the same parameters as for rtl8723au. Signed-off-by: NJes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Jes Sorensen 提交于
Implement rtl8xxxu_gen1_init_aggregation(). Aggregation should be the same for all gen1 parts. We may want to allow for tuning parameters in the fileopes struct. For now this is based allocating 16KB RX buffers, leaving 16000 bytes for actual packets, and the rest for the skb overhead. Signed-off-by: NJes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Jes Sorensen 提交于
The old allocation didn't leave space for phystats in the buffer, allowing the packet to be rejected if a frame size of size IEEE80211_MAX_FRAME_LEN was received. Signed-off-by: NJes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Jes Sorensen 提交于
This adds support for allocating larger skbs for devices which indicate they support it. Signed-off-by: NJes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Jes Sorensen 提交于
This implements support for demuxing aggregated RX packets on gen1 devices, using the rxdesc16 format. So far this has only been tested with rtl8723au devices. Signed-off-by: NJes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Jes Sorensen 提交于
This corrects the definition of rxdesc16 to correctly specify pkt_cnt for aggregated packets. This is based on the code of the vendor rtl8723au driver, as opposed to the struct definitions they use. Signed-off-by: NJes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-
由 Jes Sorensen 提交于
When handling aggregated packets, we'll get a new ieee80211_rx_status for each cloned skb, so passing in the pointer from the outside doesn't make sense. Signed-off-by: NJes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: NKalle Valo <kvalo@codeaurora.org>
-