erstrom / linux-ath Goto Github PK
View Code? Open in Web Editor NEWLinux qca/ath wireless driver tree (based on git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git)
License: Other
Linux qca/ath wireless driver tree (based on git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git)
License: Other
Linux kernel ============ There are several guides for kernel developers and users. These guides can be rendered in a number of formats, like HTML and PDF. Please read Documentation/admin-guide/README.rst first. In order to build the documentation, use ``make htmldocs`` or ``make pdfdocs``. The formatted documentation can also be read online at: https://www.kernel.org/doc/html/latest/ There are various text files in the Documentation/ subdirectory, several of them using the Restructured Text markup notation. Please read the Documentation/process/changes.rst file, as it contains the requirements for building and running the kernel, and information about the problems which may result by upgrading your kernel.
Hello
I test the STA with WUSB6100M under QEMU based test environment,
The QEMU enironment is from your buildroot-ath10k-test repo.
When I ping the STA(WUSB6100M), console will show
"[ 8596.548640] usb 1-1: MPDU range status: 10"
I checked the status code, it seems that firmware reported
HTT_RX_IND_MPDU_STATUS_DECRYPT_ERR to host.
The branch which I used is master.
I have traced the ath10k rx path but still can't figure out the root cause.
Could it be possible to fix in the driver side?
Thanks
Hello,
I can't find any documentation for using ath10k_sdio with an SD/MMC controller.
I am using a patched kernel, v5.10.10:
https://github.com/STMicroelectronics/linux/tree/v5.10-stm32mp-r1
Here's my current sd node config:
&sdmmc2{
pinctrl-names = "default", "opendrain", "sleep";
pinctrl-0 = <&sdmmc2_pins_mx>;
pinctrl-1 = <&sdmmc2_opendrain_pins_mx>;
pinctrl-2 = <&sdmmc2_sleep_pins_mx>;
status = "okay";
bus-width = <4>;
non-removable;
no-sd;
no-sdio;
st,neg-edge;
max-frequency = <120000000>;
vmmc-supply = <®_3v3>;
vqmmc-supply = <®_vdd>;
mmc-pwrseq = <&wifi_pwrseq>;
qca_wifi: qca-wifi@1 {
reg = <1>;
compatible = "qcom,ath10k";
};
};
Unfortunately, probing it not happening so I must be missing something.
Any ideas?
Thank you
I am trying to use qca9377 sdio wlan card, scan works but couldn't connect to an AP.
I would like to know, to which extents it works with your setup ?
Regards,
Ganga Vemula
Hi!
Trying to combine your changes with a kernel with other (unrelated) patches. Tried to copy the drivers/wireless/ath10k directory from your source tree. It does load the ath10k_usb module and the device is recognized but it cannot be brought up and multiple USB errors are logged in dmesg.
Have you patched anything outside the said directory? If so I would be glad if you post the changed files.
Thanks!
Hi,
I have a iMX6 platform with Silex SX-SDMAC (QCA9377) WiFi adapter connected over SDIO bus.
The card is correctly recognised by the MMC subsystem:
root@phycard-imx6:~# cat /sys/kernel/debug/mmc0/ios
clock: 50000000 Hz
actual clock: 49500000 Hz
vdd: 21 (3.3 ~ 3.4 V)
bus mode: 2 (push-pull)
chip select: 0 (don't care)
power mode: 2 (on)
bus width: 2 (4 bits)
timing spec: 2 (sd high-speed)
signal voltage: 0 (3.30 V)
driver type: 0 (driver type B)
I am using kernel 4.14.39 (LTS). I have built ath10k SDIO drivers by using backports-5.2-stable and ported patches from this repository (branch v5.2-ath10k-sdio) to support HL (SDIO/USB).
When I insert modules I get:
root@phycard-imx6:~# modprobe ath10k_sdio
[ 514.760064] Loading modules backported from Linux version v5.2.8-0-gd36a8d2fb62c
[ 514.767516] Backport generated by backports.git v5.2.8-1-0-ga33d4e95
[ 514.913676] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 514.935430] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 514.944233] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[ 514.952893] cfg80211: failed to load regulatory.db
[ 515.473688] ath10k_sdio mmc0:0001:1: WARNING: ath10k SDIO support is incomplete, don't expect anything to work!
[ 515.537157] ath10k_sdio mmc0:0001:1: Direct firmware load for ath10k/pre-cal-sdio-mmc0:0001:1.bin failed with error -2
[ 515.548033] ath10k_sdio mmc0:0001:1: Direct firmware load for ath10k/cal-sdio-mmc0:0001:1.bin failed with error -2
[ 515.560334] ath10k_sdio mmc0:0001:1: Direct firmware load for ath10k/QCA9377/hw1.0/firmware-sdio-6.bin failed with error -2
[ 515.836246] ath10k_sdio mmc0:0001:1: qca9377 hw1.1 sdio target 0x05020001 chip_id 0x00000000 sub 0000:0000
[ 515.845946] ath10k_sdio mmc0:0001:1: kconfig debug 1 debugfs 1 tracing 0 dfs 0 testmode 1
[ 515.858147] ath10k_sdio mmc0:0001:1: firmware ver api 5 features ignore-otp crc32 c5ff8ffd
[ 516.017295] ath10k_sdio mmc0:0001:1: Direct firmware load for ath10k/QCA9377/hw1.0/board-2.bin failed with error -2
[ 516.031405] ath10k_sdio mmc0:0001:1: board_file api 1 bmi_id N/A crc32 8b670d68
[ 517.236419] ath10k_sdio mmc0:0001:1: unsupported HTC service id: 1536
root@phycard-imx6:~# rfkill unblock wlan
[ 535.769912] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
root@phycard-imx6:~# ifconfig wlan0 up
root@phycard-imx6:~# iw wlan0 scan | grep -i ssid
SSID: prodesk
SSID: Norik_2G
SSID: Norik_Guest_2G
SSID: T-2_38139f
SSID: netis_7909CC
SSID: Norik_5G
SSID: HUAWEI-B952
root@phycard-imx6:~#
However, as soon as I try to disable interface by doing 'ifconfig wlan0 down' I get:
root@phycard-imx6:~# ifconfig wlan0 down
[ 582.875082] mmc0: Timeout waiting for hardware interrupt.
[ 582.880512] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
[ 582.886971] mmc0: sdhci: Sys addr: 0x3d020010 | Version: 0x00000002
[ 582.893426] mmc0: sdhci: Blk size: 0x00000100 | Blk cnt: 0x0000001f
[ 582.899880] mmc0: sdhci: Argument: 0x1c10e81f | Trn mode: 0x00000033
[ 582.906334] mmc0: sdhci: Present: 0x01fd820e | Host ctl: 0x00000013
[ 582.912787] mmc0: sdhci: Power: 0x00000002 | Blk gap: 0x00000080
[ 582.919241] mmc0: sdhci: Wake-up: 0x00000008 | Clock: 0x00000037
[ 582.925689] mmc0: sdhci: Timeout: 0x0000000f | Int stat: 0x00000000
[ 582.932134] mmc0: sdhci: Int enab: 0x107f100b | Sig enab: 0x107f100b
[ 582.938577] mmc0: sdhci: AC12 err: 0x00000000 | Slot int: 0x00000003
[ 582.945021] mmc0: sdhci: Caps: 0x07eb0000 | Caps_1: 0x0000a007
[ 582.951464] mmc0: sdhci: Cmd: 0x0000353a | Max curr: 0x00ffffff
[ 582.957908] mmc0: sdhci: Resp[0]: 0x00001000 | Resp[1]: 0x00000000
[ 582.964351] mmc0: sdhci: Resp[2]: 0x00000000 | Resp[3]: 0x00000000
[ 582.970793] mmc0: sdhci: Host ctl2: 0x00000000
[ 582.975241] mmc0: sdhci: ADMA Err: 0x00000003 | ADMA Ptr: 0x48065204
[ 582.981682] mmc0: sdhci: ============================================
[ 582.988268] ath10k_warn: 114 callbacks suppressed
[ 582.988282] ath10k_sdio mmc0:0001:1: failed to read from address 0x874: -110
[ 583.000079] ath10k_sdio mmc0:0001:1: failed to read from mbox window data address: -110
[ 583.000186] ath10k_sdio mmc0:0001:1: failed to read from address 0x800: -110
[ 583.000201] ath10k_sdio mmc0:0001:1: failed to process pending SDIO interrupts: -110
[ 583.022942] ath10k_sdio mmc0:0001:1: failed to read calibration data: -110
[ 583.029968] ath10k_sdio mmc0:0001:1: failed to write to address 0x1c700: -110
[ 583.037139] ath10k_sdio mmc0:0001:1: failed to write skb to 0x1c700 asynchronously: -110
[ 583.045337] ath10k_sdio mmc0:0001:1: failed to write to address 0x1c700: -110
[ 583.052480] ath10k_sdio mmc0:0001:1: failed to write skb to 0x1c700 asynchronously: -110
[ 584.075166] ath10k_sdio mmc0:0001:1: suspend timed out - target pause event never came
[ 584.200751] mmc0: queuing unknown CIS tuple 0x01 (3 bytes)
[ 584.214753] mmc0: queuing unknown CIS tuple 0x1a (5 bytes)
[ 584.224804] mmc0: queuing unknown CIS tuple 0x1b (8 bytes)
[ 584.231360] mmc0: queuing unknown CIS tuple 0x14 (0 bytes)
Looks like the ath10k_sdio driver forgets to disable the SDIO interrupts and host controller complains about the timeout?
My device-tree for the MMC port:
&usdhc3 {
bus-width = <4>;
no-1-8-v;
non-removable;
keep-power-in-suspend;
enable-sdio-wakeup;
status = "okay";
};
Could @erstrom or @alagusankar help with this?
Is this expected in current state of experimental ath10k SDIO support?
Hello,
Have you had a chance to look into spectral scan? https://wireless.wiki.kernel.org/en/users/drivers/ath10k/spectral
I tried the instructions and was not able to collect any data, the "spectral_scan0" file was zero bytes. I have not had a chance to dig into the code yet, but wanted to see if it was on the horizon.
Thanks,
Anthony
Hi,
thanks for your great work. I have a device running Kernel 4.14 (with upgrades not really an option ) where I would like to use this version of the ATH10K-SDIO driver (the version in Mainline 4.14 does not seem to work). I tried backporting it as described by the ATH10k drivers page but the backport Script did not work and copying the described files by hand lead to a lot of compile errors I was not able to fix correctly.
Is there some Backport to 4.14 of this driver version somewhere or maybe a backport to a driver version that is at least closer to 4.14 so backporting would be easier?
I've compiled this experimental USB support and tested with the Linksys WUSB6100 USB adapter (QCA9377). My purpose is for P2P testing (WiFi Display Development). The driver picks up the device and also initialized properly. I am able to broadcast the correct IEs for WFD, however during or immediately after GO negotiation with any device (Nexus 4 and Surface 3 tested) the situation fails and the driver begins multiple log lines of "Received tx completion for invalid msdu_id: 0" . I see a bug in http://lists.infradead.org/pipermail/ath10k/2016-March/006969.html as a possible culprit but am no expert in ath10k. How can I provide more useful feedback?
Hello everyone,
I'm recently porting the QCA9377 with SDIO in ARM-based Linux. After porting linux-ath's ath10k to my source code. I found there is a lot of incompatible functions and macro between my source code and linux-ath. My Linux version is 4.4.8.
Does linux-ath have minimum version requirement of Linux? I'm afraid that my Linux version is older than yours so that I can't use your source code directly.
Hi all,
I have been porting ath10k by referencing ath-201711030500-ath10k-high-latency-silex-sdio recently.
My system brings up the ath10k without any problems. But after I enable the WIFI function, it only can see the band of 2.4Ghz. Band of 5Ghz doesn't show on my screen even I run the wpa_cli command, it still only have 2.4Ghz.
Here is my reference firmware link: https://github.com/kvalo/ath10k-firmware/tree/master/QCA9377/hw1.0
I saw the firmware-sdio-5.bin is untested. I'm not sure if this firmware properly. so I want to ask if anyone have 2.4G and 5G at the same time?
Hi,
is there maybe update of the Documentation/devicetree/bindings/net/wireless related to SDIO?
I assume that this concerns Documentation/devicetree/bindings/net/wireless/qcom,ath10k.txt file.
I've used drivers/net/wireless/ath/ath10k/* changes from v4.19-ath10k-sdio into working my v4.19 kernel. I took the linux-firmware for QCA9377
Seems like board-2.bin is not compatible. I even check the board-2.bin from here but the results the same.
Here is the ath10k dmesg.
# dmesg | grep ath
[ 1.266711] ath10k_sdio mmc1:0001:1: WARNING: ath10k SDIO support is incomplete, don't expect anything to work!
[ 1.328899] ath10k_sdio mmc1:0001:1: qca9377 hw1.1 sdio target 0x05020001 chip_id 0x00000000 sub 0000:0000
[ 1.328949] ath10k_sdio mmc1:0001:1: kconfig debug 1 debugfs 1 tracing 0 dfs 0 testmode 0
[ 1.331252] ath10k_sdio mmc1:0001:1: firmware ver WLAN.TF.1.1.1-00061-QCATFSWPZ-1 api 5 features ignore-otp crc32 7746e551
[ 1.497913] ath10k_sdio mmc1:0001:1: failed to fetch board data for bus=sdio,vendor=0271,device=0701,subsystem-vendor=0000,subsystem-
device=0000 from ath10k/QCA9377/hw1.0/board-2.bin
[ 1.498176] ath10k_sdio mmc1:0001:1: failed to fetch board-2.bin or board.bin from ath10k/QCA9377/hw1.0
[ 1.498207] ath10k_sdio mmc1:0001:1: failed to fetch board file: -2
[ 1.953372] ath10k_sdio mmc1:0001:1: could not probe fw (-2)
I'm running some experiments on Amlogic support in mainline kernels and QCA9377 is a popular sdio module on a number of the devices I'm trying to work with. I've been poking the silex patches but the branches diverged from mainline since Nov/Dec and I haven't been able to merge the patches into an 4.16-rc2 kernel, it needs more knowledge of surrounding changes than I possess. It's a cheeky ask, but would it be possible for you to create/update a branch with those changes?
lockdep_assert_held() is failing in ath10k_peer_find_by_id() [txrx.c] when it is called from ath10k_htt_rx_proc_rx_ind_hl() [htt_rx.c]. In ath10k_htt_rx_proc_rx_ind_hl() struct peer is only used to show a warning if !peer, so the call to ath10k_peer_find_by_id() should maybe be removed? or wrapped with...
spin_lock_bh(&ar->data_lock);
spin_unlock_bh(&ar->data_lock);
Platform = iMX6, sdio, QCA9377
I am in Ubuntu 18.10 and did not change its kernel (4.18). After inserting my USB dongle, lsusb -t
shows me that no driver is attached. Then I removed the dongle and went for:
sudo modprobe ath10k_usb
echo "0cf3 9378" | sudo tee /sys/bus/usb/drivers/ath10k_usb/new_id
dmesg -w
Correct? Now, after re-inserting the dongle, I get:
Unsupported hardware version: 0x5020001
could not get hw params (-22)
could not probe fw (-22)
I have not debugged it yet but looking at the code of ath10k_init_hw_params(.)
, the error message might be wrong and actual cause is dev_id
not being 0x0042. Is there any easy way to check that? Can you give me a step-by-step guide for Ubuntu 18.04 LTS (Kernel 4.15) or Ubuntu 18.10 (Kernel 4.18)? Alternatively, I can go for another Linux. But I would welcome a concrete step-by-step guide how to use the code of this repository. Or should I report this issue upstream?
We are trying to make https://www.8devices.com/products/red-bean work with ath10k. This device is based on QCA9733. The PCIe "BLACK bean" works OK, but we need SDIO. Firmware is available here:
https://github.com/8devices/qcacld-2.0/tree/CNSS.LEA.NRT_3.0/firmware_bin/sdio
and
https://github.com/8devices/qcacld-2.0/tree/caf-wlan/LNX.LEH.4.2.2.2/firmware/sdio
Details will follow.
I have successfully built the USB driver on Ubuntu 16.04 and the Managed
mode is working fine. I'm using the Linksys WUSB6100m with the QCA9377
chipet. But there is a slight issue.
When you bring down the interface with
$ sudo ifconfig wlan1 down
it doesn't throw any error and actually brings the interface down.
However, when you try to put it back up, it gives the error below and you simply cannot work with the device after that. You have to pull it out and plug it back in to get it working again.
$ sudo ifconfig wlan1 up
SIOCSIFFLAGS: Invalid argument
Here is the dmesg
output I got when issuing the ifconfig wlan1 up
command.
[ 152.699734] usb 2-4: Failed to submit usb control message: -110
[ 152.699740] usb 2-4: unable to send the bmi data to the device: -110
[ 152.699743] usb 2-4: unable to write to the device (-110)
[ 152.699747] usb 2-4: settings HTC version failed
[ 152.699755] usb 2-4: Could not init core: -22
I need this behaviour to work because I'm trying to use hostapd to set up an AP, and the init process fails when it tries to bring the interface up after putting it down.
Same issue with kernels made both out of the master branch and the most recent high latency branch (4.14.0-rc7
).
I'm trying to figure out whether the problem is with the driver, the firmware file or the board file.
As the firmware file I'm using one I got by using athwlan_AR6320.bin
and otp_AR6320.bin
files as the qwlan
and otp
files respectively in ath10k-fwencoder
. As the board file I'm using eeprom_qca9377_7_1p1_Robin_clpc_fcc.bin
. All these files were obtained from the official Linksys site at http://downloads.linksys.com/downloads/driver/Win10.zip.
Any help is highly appreciated.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.