aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/realtek
AgeCommit message (Collapse)AuthorFilesLines
2016-03-10rtl8xxxu: Fix incorrect test for auto LLT failureJes Sorensen1-4/+1
The logic for testing auto load failure in rtl8xxxu_auto_llt_table() was inverted. Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-03-10rtl8xxxu: Init the LLT after we start the firmwareJes Sorensen1-9/+9
To match the flow of the vendor driver, move the LLT init to after the firmware is started. Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-03-10rtl8xxxu: Init page boundaries before starting the firmwareJes Sorensen1-34/+34
This reorganizes the device initialization to init page boundaries before starting the firmware. This matches the flow in the 8192eu vendor driver. Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-03-10rtl8xxxu: Add rtl8xxxu_auto_llt_table()Jes Sorensen3-1/+36
Newer chips can auto load the LLT table, it is no longer necessary to build it manually in the driver. Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-03-10rtl8xxxu: Implment rtl8192eu_power_on()Jes Sorensen2-6/+133
This implements the rtl8192eu power on sequence, and splits it off from the rtl8192cu/rtl8723au power on sequence. Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-03-10rtl8xxxu: Add rtl8192eu_nic.bin to the MODULE_FIRMWARE listJes Sorensen1-0/+1
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-03-10rtl8xxxu: Use 1024 byte block loads for 8192eu firmwareJes Sorensen1-1/+1
The rtl8192eu can handle 1024 byte block writes, unlike it's predecessors (8192cu/8188cu). Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-03-10rtl8xxxu: Identify chip vendors correctlyJes Sorensen3-15/+64
This identifies the chip vendors correctly and also picks the correct firmware for rtl8192eu. Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-03-10rtl8xxxu: Add initial code to parse rtl8192eu efuseJes Sorensen2-6/+124
This is the start of 8192eu support. For now just detect the device and parse the efuse. Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-03-08rtlwifi: Fix size of wireless mode variableLarry Finger3-8/+7
Smatch reports the following warning: CHECK drivers/net/wireless/realtek/rtlwifi/rc.c drivers/net/wireless/realtek/rtlwifi/rc.c:144 _rtl_rc_rate_set_series() warn: impossible condition '(wireless_mode == 256) => (0-255 == 256)' This warning arises because commit acc6907b87a9 ("rtlwifi: Fix warning from ieee80211_get_tx_rates() when using 5G") now checks the wireless mode for WIRELESS_MODE_AC_ONLY (BIT(8)) in _rtl_rc_rate_set_series(). As a result, all quantities used to store the wireless mode must be u16. This patch also reorders struct rtl_sta_info to save a little space. Fixes: d76d65fd2695 ("rtlwifi: fix broken VHT support") Reported-by: Dan Williams <dcbw@redhat.com> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-03-07rtlwifi: pass struct rtl_stats by reference as it is more efficientColin Ian King12-16/+16
passing rtl_stats by value is inefficient; the structure is over 300 bytes in size and generally just one field (packet_report_type) is being accessed, so the pass by value is a relatively large overhead. This change just affects just the rx_command_packet calls. Signed-off-by: Colin Ian King <colin.king@canonical.com> Acked-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-03-07rtlwifi: Change long delays to sleepsLarry Finger1-32/+12
Routine rtl_addr_delay() uses delay statements in code that can sleep. To improve system responsiveness, the various delay statements are changed. In addition, routines rtl_rfreg_delay() and rtl_bb_delay() are rewritten to use the code in rtl_addr_delay() for most of their input values. Suggested-by: Byeoungwook Kim <quddnr145@gmail.com> Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-03-07rtlwifi: rtl8821ae: Silence useless log outputLarry Finger1-1/+1
When driver rtl8821ae is loaded but not connected to any AP, it logs a "firmware not ready to run" message roughly once a minute. To eliminate logging this massage under normal debug conditions, the degug level needed to print this message is increased. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-03-06Merge 'net-next/master'Kalle Valo3-6/+13
Needed by the upcoming merge of iwlwifi-next-for-kalle-2016-03-02 tag.
2016-03-01Merge tag 'mac80211-next-for-davem-2016-02-26' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-nextDavid S. Miller2-6/+8
Johannes Berg says: ==================== Here's another round of updates for -next: * big A-MSDU RX performance improvement (avoid linearize of paged RX) * rfkill changes: cleanups, documentation, platform properties * basic PBSS support in cfg80211 * MU-MIMO action frame processing support * BlockAck reordering & duplicate detection offload support * various cleanups & little fixes ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
2016-02-25rtlwifi: rtl8821ae: Convert driver to use common 5G channel tableLarry Finger3-40/+7
There are several copies of the 5G channel tables in this driver. These are removed so that the tables in the core will be used. This change also removes a useless message of "Channel 163 in Group not found". The number of possible 5G channels was reduced from 54 to a better value of 49 during the conversion. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtlwifi: rtl8192ee: Convert driver to use new 5G channel tablesLarry Finger1-12/+0
The driver defines its own set of channel tables for the 5G band. With this change, it will use those of the core. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtlwifi: rtl8192de: Convert driver to use common 5G channelsLarry Finger1-19/+4
This driver defines its owh copy of the 5G channels. Change it to use the common definitions. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtlwifi: Prepare for reworking 5G channelsLarry Finger2-5/+20
There are 3 drivers in this family that have 5G radios. Each of them defines local copies of the available channels. This patch adds the two arrays to the core driver. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtlwifi: Remove unnecessary synchronize_irq() before free_irq()Lars-Peter Clausen1-1/+0
Calling synchronize_irq() right before free_irq() is quite useless. On one hand the IRQ can easily fire again before free_irq() is entered, on the other hand free_irq() itself calls synchronize_irq() internally (in a race condition free way), before any state associated with the IRQ is freed. Patch was generated using the following semantic patch: // <smpl> @@ expression irq; @@ -synchronize_irq(irq); free_irq(irq, ...); // </smpl> Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: Add missing bit define for REG_APS_FSMCOJes Sorensen1-0/+1
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: Make device_init kludge 8723au onlyJes Sorensen1-8/+11
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: Do not mask RF registers to 6 bitsJes Sorensen1-2/+0
Newer chips have RF registers beyond the original 0x3f address. Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: Remove unused len/cnt variables from rtl8xxxu_rx_complete()Jes Sorensen1-3/+1
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: Remove unused mgmt variable from rtl8xxxu_rx_complete()Jes Sorensen1-3/+0
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: Set correct bit to reset MCU IO wrapperJes Sorensen1-2/+2
All chips, except for 8812 require BIT(0) for resetting the MCU IO wrapper. 8723b requires a more complicated reset sequence, so it will need a custom reset function. Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: rtl8xxxu_set_linktype(): Be consistent aboutregister size REG_MSRJes Sorensen1-2/+2
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: Enable data frame reception in rtl8xxxu_startBruno Randolf1-10/+2
mac80211 documentation says, the ieee80211_ops.start callback "must turn on frame reception (for possibly enabled monitor interfaces.)". If not a single monitor interface does not receive data frames. Similarly we should not change the data reception based on the association state. Signed-off-by: Bruno Randolf <br1@einfach.org> Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: Fix 80 character per line issueJes Sorensen1-2/+3
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: Remove duplicate USB IDJes Sorensen1-2/+0
Reported-by: Xose Vazquez Perez <xose.vazquez@gmail.com> Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: Document REG_RXFLTMAP registersBruno Randolf1-6/+20
Add comments describing how REG_RXFLTMAP0, REG_RXFLTMAP1 and REG_RXFLTMAP2 work. Signed-off-by: Bruno Randolf <br1@einfach.org> Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: Enable monitor mode by handling filtersBruno Randolf1-11/+45
Monitor mode is enabled by handling the filter flags we get from mac80211 in rtl8xxxu_configure_filter() and writing them to the RCR register. By handling the filters, we can also stop setting the BSSID filters in the association event. Signed-off-by: Bruno Randolf <br1@einfach.org> Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: Fix cosmetics to quiet down checkpatch policeJes Sorensen1-1/+1
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: Use REG_EFUSE_TEST register only on multifunctional devicesJakub Sitnicki2-3/+7
rtl8192cu driver doesn't read/write the REG_EFUSE_TEST register. Neither does the rtl8188eu driver. Do it only for multifunc devices RTL8723AU/RTL8723BU. Signed-off-by: Jakub Sitnicki <jsitnicki@gmail.com> Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: Remove unused clutter for handling recursive calls to rtl8xxxu_init_device()Jes Sorensen2-12/+1
This was a leftover from the vendor driver that was never utilized. Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: Add REG_OFDM0_RX_D_SYNC_PATH definitionsJes Sorensen1-0/+3
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: Add mbox extension register definitions for 8723BJes Sorensen1-0/+5
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: Add definitions for antenna selection registers for 8723BUJes Sorensen1-0/+4
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: Implement rtl8xxxu_reset_8051()Jes Sorensen1-12/+26
We need to reset the 8051 in order for it to launch the fw on the rtl8192eu. Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: Check return value of kmemdup()Tobias Klauser1-0/+4
In rtl8xxxu_load_firmware() check the return value of kmemdup() and error out with -ENOMEM in case of NULL to prevent a NULL pointer dereference. Signed-off-by: Tobias Klauser <tklauser@distanz.ch> Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: Fix typo in Kconfig help textTobias Klauser1-1/+1
Fix spelling of "benefits". Signed-off-by: Tobias Klauser <tklauser@distanz.ch> Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: Add more RCR bitsJes Sorensen1-1/+10
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: Add REG_TX_REPORT_* definesJes Sorensen1-0/+2
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: Define SYS_CFG_SW_OFFLOAD_ENJes Sorensen1-0/+1
This is needed for chips with IOL support. Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: Add RQPN_[NE]PQ_SHIFT valuesJes Sorensen1-0/+2
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: If fw running in RAM, reset the 8051 before trying to download a new oneJes Sorensen1-1/+18
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: rtl8xxxu_download_firmware(): Cosmetic cleanupsJes Sorensen1-7/+12
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-25rtl8xxxu: Minor cleanup to rtl8xxxu_download_firmware()Jes Sorensen1-1/+2
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-02-15treewide: Fix typo in printkMasanari Iida1-1/+1
This patch fix spelling typos found in printk and Kconfig. Signed-off-by: Masanari Iida <standby24x7@gmail.com> Acked-by: Randy Dunlap <rdunlap@infradead.org> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2016-02-06rtlwifi: fix broken VHT supportLarry Finger1-0/+5
When using a 5G-capable device with VHT (802.11ac) rates enabled was not working (packets were not delivered) and the following mac80211 warning was printed: WARNING: CPU: 3 PID: 2253 at net/mac80211/rate.c:625 ieee80211_get_tx_rates+0x22e/0x620 [mac80211]() Modules linked in: rtl8821ae btcoexist rtl_pci rtlwifi fuse drbg ansi_cprng ctr ccm bnep bluetooth af_packet nfs fscache vboxpci(O) vboxnetadp(O) vboxne tflt(O) vboxdrv(O) arc4 snd_hda_codec_generic x86_pkg_temp_thermal rtsx_pci_sdmmc mmc_core rtsx_pci_ms kvm_intel memstick iwlmvm kvm mac80211 snd_hda_intel snd_hda_cod ec snd_hwdep snd_hda_core irqbypass snd_pcm iwlwifi crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 snd_timer lrw gf128mul glue_h elper ablk_helper cryptd snd cfg80211 pcspkr serio_raw e1000e rtsx_pci lpc_ich ptp xhci_pci mfd_core pps_core xhci_hcd soundcore toshiba_acpi thermal sparse_keymap wmi toshiba_bluetooth rfkill acpi_cpufreq battery ac processor dm_mod i915 i2c_algo_bit drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops drm sr_mod cdrom video button sg autofs4 [last unloaded: rtlwifi] CPU: 3 PID: 2253 Comm: Timer Tainted: G W O 4.5.0-rc1-wl+ #79 Hardware name: TOSHIBA TECRA A50-A/TECRA A50-A, BIOS Version 4.20 04/17/2014 ffffffffa05c4be6 ffff8802262036d8 ffffffff813d7912 0000000000000000 ffff880226203710 ffffffff8106bcb6 ffff8800c6831300 ffff8800c6831330 0000000000000000 ffff8800c683133c ffff880065923638 ffff880226203720 Call Trace: <IRQ> [<ffffffff813d7912>] dump_stack+0x4b/0x79 [<ffffffff8106bcb6>] warn_slowpath_common+0x86/0xc0 [<ffffffff8106bdaa>] warn_slowpath_null+0x1a/0x20 [<ffffffffa05511ee>] ieee80211_get_tx_rates+0x22e/0x620 [mac80211] [<ffffffffa0782232>] ? rtl_is_special_data+0x32/0x240 [rtlwifi] [<ffffffffa055209e>] ? rate_control_get_rate+0xce/0x150 [mac80211] [<ffffffff810bfc7d>] ? trace_hardirqs_on+0xd/0x10 [<ffffffff81071cc5>] ? __local_bh_enable_ip+0x65/0xd0 Signed-off-by: Kalle Valo <kvalo@codeaurora.org>