Mt76 from openwrt

hi,

i try to add mt76-driver from openwrt in 4.19 (i know that there is already one, but i try to get latest source for it).

have compilation working, but modprost brings massive errors about undefined functions…i miss anything for linker…

3 examples:

ERROR: "mt76x02_ext_pa_enabled" [drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common.ko] undefined!
ERROR: "mt76x02_phy_dfs_adjust_agc" [drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common.ko] undefined!
ERROR: "mt76x02_phy_adjust_vga_gain" [drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common.ko] undefined!

maybe anybody has a clue (code is located at drivers/net/wireless/mediatek/mt76)

i guess i need linking mt76x02-lib-y into mt76-y, which is build as module “obj-m := mt76.o” but i’m no expert in makefiles

i did not know when mt76x02-lib is build and how it gets linked to mt76-module

have modified Kconfig and Makefile and it seems to work…no compile-error

Does anyone else have mt7612 pcie wifi-card in bpi-r2 who can test? I have my card in main-router and waiting for second card (for test-router)…maybe anyone can test it till then

I did some tests recently with this kernel 4.19.16 which includes mt76 driver from openwrt. The max speed I could reach for upload and download was around 175 - 180 Mpbs.

I tried to compare with another kernel 4.19.66 which has the normal mt76 driver and results were close maybe 10Mbps slower than previous.

I also tried using the latest 5.3-rc kernel and the speed drops down to around 120 - 125 Mbps for both download and upload. The wifi card from my PC detects the maximum reported speed up to 400Mbps

Using Debian kernels I cannot use higher channel numbers over 44 for 5GHz using both mainline mt76 or included OpenWRT driver.

I loaded then an OpenWRT image (Lexa2 repository) and using this driver it detected higher rate speed up to 600 or more (maximum 866Mbps).

When doing speed test from OpenWRT on WiFI I was able to reach around 230 - 240 Mbps.

Is the development for the OpenWRT mt76 driver separate from the mt76 drivers included in mainline kernels ?

imho i reverted the mt76 changes in 4.19 if not you can replace it by mainline-driver…i just wanted to use a newer version, but had not updated it afterwards…

i expect that openwrt makes some core changes not ported to linux mainline. As i understand openwrt-driver is nearly the same as mainline mt76 in 4.19 but worse in later kernels?

Hello

I see you have 2 version 4.14 and 4.19 for bananapi r2 at https://github.com/frank-w/BPI-R2-4.14/tree/4.19-main

So can you describe about version 4.19 ? Does the version 4.19 cover full functionality for 4.14 ?

Thanks

At least hwnat (reported as unstable) and hwqos (untested) are not ported. Also vlan is not working yet…in 4.14 it works somehow (sometimes not tagged as i found out yeaterday).

But mt76 was wprking afair

Hey you Currently I get your kernel linux 4.19 but I dont know how to append to my currently image Can you show me some guide ?

Thanks

Insert sd card to your build-pc and run build.sh and choose install to sdcard

But do you have rootfs for this image. I only see a little bit file rootfs in folder BPI-ROOT

Which os do you used before? My repo only installs kernel+modules

You can use this as base [BPI-R2 new image] debian 10 buster image with Kernel 4.19.62

Before I install image ubuntu, kernel 4.4.x from bananapi provide

Your image that you recommend too great

Do you use Yocto to build linux system for bananapi r2 ?

no only debootstrap from ubuntu and as base the official image where i removed content of BPI-BOOT/BPI_ROOT

hi, i integrated new mt76-driver in my 5.4-tree to have mt7622 wifi driver included.

i experienced now a issue with mt76x2, caused by airtime-integration

[Fr Feb  7 17:22:31 2020] WARNING: CPU: 0 PID: 0 at drivers/net/wireless/mediatek/mt76_new/airtime.c:203 mt76_calc_rx_airtime+0x1a8/0x29c [mt76]

which points me here:

i tried to find a fix in mt76-repo, but have not found any yet…does anybody have an idea how to fix it?

@moore @linkerosa @dfiloni

tried also to integrate mt7622-driver only into mainline mt76-driver, but failed to compile

drivers/net/wireless/mediatek/mt76/mt7622/soc.c:57:4: error: 'const struct mt76_driver_ops' has no member named 'drv_flags'; did you mean 'txwi_flags'?
   .drv_flags = MT_DRV_TXWI_NO_FREE,
    ^~~~~~~~~
    txwi_flags
drivers/net/wireless/mediatek/mt76/mt7622/soc.c:57:16: error: 'MT_DRV_TXWI_NO_FREE' undeclared (first use in this function); did you mean 'MT_TXWI_NO_FREE'?
   .drv_flags = MT_DRV_TXWI_NO_FREE,
                ^~~~~~~~~~~~~~~~~~~
                MT_TXWI_NO_FREE

are the first 2 errors…i guess there come more

Should be this commit: https://github.com/openwrt/mt76/commit/b0429879eab2b400b1d3239eff30c658efa21400

but this is not compatible with 5.4-mainline mt76 due to missing files…need to change it manually. in openwrt there are generic files for dma, pci, …

regards Frank