diff options
author | Jes Sorensen <Jes.Sorensen@redhat.com> | 2016-06-27 14:08:47 -0400 |
---|---|---|
committer | Dominik Sliwa <dominik.sliwa@toradex.com> | 2018-09-14 14:50:52 +0200 |
commit | a5867d9e1f9f8096480104d80f9a8088dbde9209 (patch) | |
tree | 013c1811ff8de1aa14c16543ae12ede450da9f36 /drivers/net/wireless/ath | |
parent | 6142e8731c3e5b9c9f96d9af83052b9787604b39 (diff) |
rtl8xxxu: Merge rtl8xxxu-8188eu
rtl8xxxu: Accept firmware signature 0x88e0
rtl8188eu uses firmware signature 0x88e0
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Add initial code to detect 8188eu devices
So far this just detects the device and tries to load firmware.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Add initial code to parse 8188eu efuse
This obtains the MAC address, but work is still needed to handle TX
power settings.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Detect 8188eu parts correctly
8188 parts with chip_cut >= 2 are assumed to be 8188eu.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: First stab at rtl8188e_power_on()
Code based on code from Andrea Merello.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Add rtl8188e_disabled_to_emu()
This sequence is found in the vendor driver, but never actually
called. It's unclear if we need it.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: 8188e: Enable scheduler
This enables the schduler, DMA, etc, except for MAC RX/TX which has to
be set after REG_TRXFF_BNDY due to a hardware bug in the 8188e
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Add rtl8188e_usb_quirk() for enabling MAC TX/RX
Due to a bug in the 8188e chips, this has to be done after setting
REG_TRXFF_BNDY.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: 8188e add REG_TXDMA_OFFSET_CHK quirk
Enable quirk allowing TX DMA to drop redundant data of packet. This is
the same quirk enabled on gen2 parts.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Add reserved page init parameters for 8188e
Signed-off-by: Andrea Merello <andrea.merello@gmail.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Correct TX_TOTAL_PAGE_NUM for 8188eu
For some reason I had gotten this off-by-one when pulling them number
from the vendor driver.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Add trxff_boundary for 8188e
The 8188e presumably has a 10K buffer, but leave space for TX report
or WOL pattern.
Signed-off-by: Andrea Merello <andrea.merello@gmail.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: 8188eu specify firmware block size and set power_off function
This uses a conservative firmware block size for now.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Add 8188e mac init table
This table was pulled from the vendor driver.
Signed-off-by: Andrea Merello <andrea.merello@gmail.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Implement rtl8188eu_init_phy_bb()
This includes adding rtl8188eu_phy_init_table rtl8188e_agc_table, both
extracted from the vendor driver.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Implement rtl8188eu_init_phy_rf()
Include the table rtl8188eu_radioa_init_table derived from vendor
driver. The vendor table relies on a hack setting RF6052_REG_RCK1 +
RF6052_REG_RCK2 with delays. This workaround is open coded here
instead of modifying the table parsing code.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Use auto LLT init for 8188e
The vendor driver uses IOL to init the LLT table for 8188e. Since we
are trying to avoid dealing with IOL for now, gamble that auto LLT
will work.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Do not set REG_FPGA0_TX_INFO on 8188eu
The vendor driver doesn't set this for 8188eu either. It is unclear if
this is only relevant for gen1 parts.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Do not mess with REG_FPGA0_XA_RF_INT_OE either on 8188eu
On older devices the vendor driver hard codes a value into
REG_FPGA0_XA_RF_INT_OE for antenna selection. This probably shouldn't
be done in the first place, but more investigation needs to be done to
figure out how this really works.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Set transfer page size for 8188eu
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Enable TX report timer on 8188eu
The 8188eu uses the same TX report timer as found on the 8723b.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Setup interrupts for 8188eu
This sets up interrupts for 8188eu, but per vendor driver, it's not
obvious this is really needed for USB devices.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Use rxdesc16 and 32 byte tx descriptors for 8188eu
The RX descriptor format looks like the gen1 RX descriptor format, so
use that for now.
The TX descriptor format is different and looks to be some bizarre
hybrid of the gen1 and gen2 formats.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: 8188eu use same ADDA on parameters as 8723au/8192cu
For ADDA setup the 8188eu looks to match the gen1 parts.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Add PHY IQ calibration code for 8188eu
The vendor driver for 8188eu is a bizarre modern style code for path A
and old-style code for path B. Most likely because the 8188eu is a
1T1R part which never gets to the path B code.
Eventually we should look into unifying all the IQ calibration code.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: 8188eu uses the gen2 thermal meter
Vendor driver writes thermal meter setup to RF register 0x42, hence
the gen2 setup. However the driver doesn't do much with it.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Set REG_USB_HRPWM to 0 for 8188eu
This matches what 8192eu does
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Implement rtl8188eu_config_channel()
The 8188eu doesn't seem to have REG_FPGA0_ANALOG2, so implement it's
own specific version.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Use gen2 H2C commands for 8188eu
The 8188eu is a weird hybrid between the old gen1 and newer gen2
APIs. It uses the newer API for H2C commands, hence use
rtl8xxxu_gen2_update_rate_mask() and rtl8xxxu_gen2_report_connect().
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Initialize GPIO settings for 8188eu
This matches what the vendor driver does, but is actually opposite of
what it does for 8192eu.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Add simple rtl8188eu_rf_on() routine
It is not obvious from the vendor driver if we need more than this.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Implement rtl8188e_disable_rf()
This is partly guessware as there is no straight forward disable RF
routine in the vendor driver.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Update 8188e efuse definition for power values
The 8188e uses a similar layout as the 8192e, however it does not have
values for path B. Update struct rtl8188eu_efuse to reflect this and
copy over path A values for path B.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Implement rtl8188e_set_tx_power()
This matches the code used to set TX power on 8192eu, except it only
handles path A.
We should be able to consolidate this code.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Implement rtl8xxxu_fill_txdesc_v3() for 8188eu
Getting closer but still no cigar.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Add some 8188eu registers and update CCK0_AFE_SETTING bit defines
CCK0_AFE_SETTING is particular, it has the notion of primary RX antenna
and optional RX antenna. When configuring RX for single antenna, setup
should use the same antenna for default and optional. For AB setup,
use antenna A as default and B as optional.
In addition add info for 8188eu IOL magic interface used to send
firmware and register init files to the firmware.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Improve register description for REG_FPGA1_TX_INFO
This is based on Hal_SetAntenna() from the 8188eu driver
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: properly detect RTL8188EU devices
The assumption that all RTL8188EU have chip cut >= C is wrong.
However, RTL8188EU devices can be easily differentiated from RTL8188CU devices
relying on TX report capbility.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Implement 8188eu specific 8051 reset function
The 8188eu doesn't seem to require the additional hacks used on some
other chips.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Disable packet DMA aggregation on 8188eu
For now disable packet DMA aggregation on the 8188eu, rather then
risking the feature being left on by the init tables.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: 8188eu set REG_OFDM0_XA_AGC_CORE1 to match vendor driver
We have no description of this register, so not sure why this differs
from say 8723au.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Fix rtl8188eu connection fail
rtl8188eu vendor driver's LLT init routine is similar
rtl8xxxu_init_llt_table() than rtl8xxxu_auto_llt_table().
So now, rtl8188eu can connect to AP.
Signed-off-by: Taehee Yoo <ap420073@gmail.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Do not set auto rate fallback on 8188eu
Introduce a fileops flag to indicate whether the device has this
feature.
Reported-by: Taehee Yoo <ap420073@gmail.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Enable 8188eu driver
This enables the 8188eu driver - this should work by now.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Add rtl8188etv to USB device list
Hans de Goede reported this works for him with two different tablets.
Reported-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Add sitecom dongle to USB device list
Signed-off-by: Andrea Merello <andrea.merello@gmail.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Implement rtl8188eu_active_to_emu()
Per the vendor driver's sequence table, this seems to be the correct
way to disable RF on the 8188eu, even if the driver doesn't actually
call the sequence by itself.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Implement rtl8188eu_power_off()
This makes the driver match the poweroff sequence of the vendor driver
and allows the firmware to reload correctly upon rmmod/insmod.
However the device still doesn't receive data upon reloading.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Add rtl8188eu USB ID for D-Link USB-GO-N150
Received one in the mail yesterday, seems to work like all the other
8188eu dongles I have.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Clear SYS_FUNC_UPLL during power up on 8188eu
The vendor driver doesn't set this bit during BB config, so avoid
setting it here too.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Early enable of WEP/TKIP security on 8188eu
This matches action taken in the vendor driver, however it is unclear
why this is done.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Correct power down sequence for 8188eu
This matches the vendor driver more correctly
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Reset 8188eu REG_GPIO_MUXCFG on power off
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Handle devices with a smaller LLT buffer
The 8188e (except for I cut parts) seem to have a smaller LLT buffer
than all other known devices.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Fix reloading of driver for 8188eu devices
For 8188eu, once the MAC is asked to power down by setting
APS_FSMCO_MAC_OFF, there seems to be no way to bring it back to life.
In addition, only disable RF_ENABLE in RF_CTRL rather than all bits.
This was spotted by Andrea Merello who noticed that if we dropped the
call to rtl8188eu_active_to_emu() reloading started working.
Reported-by: Andrea Merello <andrea.merello@gmail.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Make sure to enable OFDM paths for 8188eu in rtl8188e_enable_rf()
Failure to re-enable OFDM paths results in the dongle only receiving
CCK packets which isn't overly exciting.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Add rpt_sel entry to struct rtl8xxxu_rxdesc16
The 8188e supports TX reports which will show up as an RX packet,
similar to how the gen2 parts handle it.
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Diffstat (limited to 'drivers/net/wireless/ath')
0 files changed, 0 insertions, 0 deletions