Code Monkey home page Code Monkey logo

erstrom / linux-ath Goto Github PK

View Code? Open in Web Editor NEW
20.0 20.0 12.0 1.28 GB

Linux qca/ath wireless driver tree (based on git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git)

License: Other

Makefile 0.26% C 96.43% Assembly 1.22% C++ 1.33% Objective-C 0.28% Shell 0.20% Perl 0.12% Awk 0.01% Python 0.12% Yacc 0.02% Lex 0.01% UnrealScript 0.01% Perl 6 0.01% Roff 0.02% Gherkin 0.01% XS 0.01% Clojure 0.01% M4 0.01% sed 0.01%
ath10k linux qca9377 sdio usb

linux-ath's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

linux-ath's Issues

Error when bringing interface up

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.

Yealink WF50 gives ‘Unsupported hardware version: 0x5020001’

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?

Silex SX-SDMAC SDIO on iMX6 platform issues with mmc interrupt timeouts

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?

SDIO Device tree documentation

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  = <&reg_3v3>;
	vqmmc-supply = <&reg_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

Porting to Linux version 4.4.8

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.

lockdep_assert_held() failing

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

MPDU range status: 10

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

sdio changes for 4.16?

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?

Received tx completion for invalid msdu_id: 0

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?

DeviceTree documentation update

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.

QCA9377 SDIO Validation

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

5G band cannot work.

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?

Backport to 4.14

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?

sdio changes on v4.19-ath10k-sdio

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)

Please list modifications

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!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.