summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2018-09-27rt2x00: fix null pointer in clock check for non-soc chipsColibri-iMX7_LXDE-Image_2.8b4.129-20181005Colibri-iMX6_LXDE-Image_2.8b4.129-20181005Colibri-iMX6ULL_LXDE-Image_2.8b4.129-20181005Colibri-VF_LXDE-Image_2.8b4.129-20181005Colibri-T30_LXDE-Image_2.8b4.129-20181005Colibri-T20_LXDE-Image_2.8b4.129-20181005Apalis-iMX6_LXDE-Image_2.8b4.129-20181005Apalis-TK1_LXDE-Image_2.8b4.129-20181005Apalis-T30_LXDE-Image_2.8b4.129-20181005Dominik Sliwa
Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2018-09-18mt7601u: compile on tegra 3.1 and 3.10 kernelsDominik Sliwa
Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2018-09-18backports: bluetooth: Support 4.9 kernelsDominik Sliwa
Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2018-09-18backports:Backports for tegra 3.1 and 3.10 kernelsDominik Sliwa
Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com>
2018-09-14rtl8xxxu: Merge rtl8xxxu-8188euJes Sorensen
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>
2018-09-14initial commitDominik Sliwa
Generated againts 4.18 kernel source with git backports 0795d050c62e04c7c4fd7fcb554756e6adb4ec64 Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com>