[PATCH 3/3] ath10k: implement mesh support

Kalle Valo kvalo at qca.qualcomm.com
Wed Sep 9 00:57:30 PDT 2015


Bob Copeland <me at bobcopeland.com> writes:

> Add support for mesh to ath10k.  We simply use an AP virtual interface
> in the firmware in order to enable beaconing without TSF adoption, and
> use the raw (802.11) transmit mode.
>
> Due to firmware limitations, the firmware must operate in raw
> (non-native 802.11) mode.  As this is configured at firmware init time,
> a new "rawmode" modparam is added, and mesh interfaces are available
> only if rawmode=true.  The firmware must advertise support for rawmode
> (tested successfully with firmware 10.2.4.70-2).
>
> When loaded with rawmode=1, ath10k can operate an open mesh STA via
> something like the following:
>
>     ip link set wlan0 down
>     iw dev wlan0 set type mp
>     ip link set wlan0 up
>     iw dev wlan0 set freq 5745 80 5775
>     iw dev wlan0 mesh join mesh-vht
>
> Signed-off-by: Bob Copeland <me at bobcopeland.com>

I did a quick smoke test and saw the splat below. It's this warning from
cfg80211:

			/*
			 * Don't advertise an unsupported type
			 * in a combination.
			 */
			if (WARN_ON((wiphy->interface_modes & types) != types))
				return -EINVAL;

I didn't immeaditely figure out what's causing this, the interface types
looked correct to me. Unfortunately I don't have time to investigate
more at the moment, but will look later.

[  152.113232] ath10k_pci 0000:02:00.0: qca988x hw2.0 (0x4100016c, 0x043202ff) fw 10.2.4.70.6 api 3 htt-ver 2.1 wmi-op 5 htt-op 2 cal otp max-sta 128 raw 0 hwcrypto 1 features no-p2p
[  152.113448] ath10k_pci 0000:02:00.0: debug 1 debugfs 1 tracing 1 dfs 1 testmode 1
[  152.226213] ath: EEPROM regdomain: 0x0
[  152.226296] ath: EEPROM indicates default country code should be used
[  152.226365] ath: doing EEPROM country->regdmn map search
[  152.226434] ath: country maps to regdmn code: 0x3a
[  152.226504] ath: Country alpha2 being used: US
[  152.226573] ath: Regpair used: 0x3a
[  152.226677] ------------[ cut here ]------------
[  152.226785] WARNING: CPU: 0 PID: 1141 at net/wireless/core.c:530 wiphy_register+0x680/0x780 [cfg80211]()
[  152.226864] Modules linked in: ath10k_pci ath10k_core ath mac80211 cfg80211 [last unloaded: cfg80211]
[  152.227882] CPU: 0 PID: 1141 Comm: kworker/u16:5 Not tainted 4.2.0-wl-ath+ #1044
[  152.227972] Hardware name: Hewlett-Packard HP ProBook 6540b/1722, BIOS 68CDD Ver. F.04 01/27/2010
[  152.228068] Workqueue: ath10k_wq ath10k_core_register_work [ath10k_core]
[  152.228372]  00000000 00000000 f1c19d08 c18c0e4e 00000000 f1c19d38 c10578ce c1b0f660
[  152.229343]  00000000 00000475 fb37017a 00000212 fb317130 fb317130 00000088 efe48320
[  152.230500]  00000008 f1c19d48 c1057932 00000009 00000000 f1c19dac fb317130 f1c10008
[  152.231541] Call Trace:
[  152.231634]  [<c18c0e4e>] dump_stack+0x48/0x60
[  152.231824]  [<c10578ce>] warn_slowpath_common+0x8e/0xd0
[  152.232014]  [<fb317130>] ? wiphy_register+0x680/0x780 [cfg80211]
[  152.232232]  [<fb317130>] ? wiphy_register+0x680/0x780 [cfg80211]
[  152.232448]  [<c1057932>] warn_slowpath_null+0x22/0x30
[  152.232561]  [<fb317130>] wiphy_register+0x680/0x780 [cfg80211]
[  152.232657]  [<c11a3926>] ? __kmalloc+0x216/0x370
[  152.232749]  [<c10acd69>] ? mark_held_locks+0x59/0x80
[  152.232898]  [<fbfcb3d0>] ? ieee80211_register_hw+0x1f0/0x970 [mac80211]
[  152.233468]  [<fbfcb3d0>] ? ieee80211_register_hw+0x1f0/0x970 [mac80211]
[  152.233576]  [<fc22c7d0>] ? ath10k_hw_scan+0x210/0x210 [ath10k_core]
[  152.233679]  [<fc22c5c0>] ? ath10k_start_scan+0x140/0x140 [ath10k_core]
[  152.233794]  [<fbfcb541>] ieee80211_register_hw+0x361/0x970 [mac80211]
[  152.233889]  [<c1000f0c>] ? trace_hardirqs_on_thunk+0xc/0x10
[  152.233983]  [<c18caef5>] ? restore_all+0xf/0xf
[  152.234084]  [<fc22d973>] ath10k_mac_register+0x7c3/0x920 [ath10k_core]
[  152.234196]  [<c10a66bc>] ? __lock_is_held+0x3c/0x50
[  152.236050]  [<fc234e61>] ath10k_core_register_work+0x5d1/0x6d0 [ath10k_core]
[  152.236136]  [<c1070f00>] process_one_work+0x1d0/0x6c0
[  152.236204]  [<c1070e52>] ? process_one_work+0x122/0x6c0
[  152.236270]  [<c107150a>] worker_thread+0xea/0x3d0
[  152.236335]  [<c10acf5b>] ? trace_hardirqs_on+0xb/0x10
[  152.236399]  [<c1071420>] ? process_scheduled_works+0x30/0x30
[  152.236466]  [<c10773f5>] kthread+0xa5/0xc0
[  152.236531]  [<c18ca917>] ? _raw_spin_unlock_irq+0x27/0x40
[  152.236596]  [<c18cad01>] ret_from_kernel_thread+0x21/0x30
[  152.236664]  [<c1077350>] ? __init_kthread_worker+0x60/0x60
[  152.236731] ---[ end trace ce831788c6a79cf8 ]---
[  152.236813] ath10k_pci 0000:02:00.0: failed to register ieee80211: -22
[  152.236889] ath10k_pci 0000:02:00.0: could not register to mac80211 (-22)


-- 
Kalle Valo



More information about the ath10k mailing list