Felix Fietkau <n...@openwrt.org> writes: > On 2014-04-23 11:31, Felix Fietkau wrote: >> Quick update on this subject: Linksys has now posted a GPL source for >> the WRT1900AC, and it contains the wifi driver sources. >> It appears to me, that this driver was properly licensed under GPL, with >> proper license headers in all source files. >> >> This means that work on supporting this device can theoretically >> continue, although I expect it to take quite a bit of time. As I >> anticipated, the code quality of the driver source code is abysmal. >> This looks like rewrite (not cleanup) material, ugly enough to cause eye >> cancer or frighten small children ;) >> >> There are also still some pieces missing: Since this driver does not use >> standard Linux Wireless APIs, it can only properly function with custom >> hostapd/wpa_supplicant hacks. I don't see those in the release. > Update 2: Those can be found in the OpenWrt SDK for this device on > GitHub. Same comments regarding code quality apply here.
Yes, sure, the code is about as expected. Most importantly: It is the expected, already known, 88W8764 driver with minor modifications. This means that modifying the in-kernel "mwl8k" driver to support the 88W8864 should be possible (I'm inclined to say "simple", but I often tend to regret using that word :-). There is of course quite some work to be done, but I don't think it's completely hopeless. Just to get an impression of the changes required to add support for 88W8864 to a driver already supporting 88W8764, I got a copy of the previously known Marvell 88W8764 driver from https://github.com/kmihelich/wlan-smileplug and ran a diff against the sources for the Marvell 88W8864 driver provided by Belkin: bjorn@nemi:/tmp/wlan-smileplug$ diff -ubr . ~/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7|diffstat ./.git |only ./Module.symvers |only ./README.md |only ./modules.order |only ./mymake |only /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/Makefile | 67 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/build/linux/Makefile | 63 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/api/wl.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/api/wlApi.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/api/wlApi.h | 9 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/api/wlFun.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/api/wlFun.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/dbg/wldebug.c | 45 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/encr/AP/ccmpAP.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/encr/AP/keyMgmt.c | 19 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/encr/AP/tkipAP.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/encr/STA/keyMgmtSta.c | 49 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/encr/aes_key_wrap.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/encr/hmac_md5.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/encr/md5.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/encr/prfapi.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/encr/tkip.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/Fragment.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/IEEE_types.h | 252 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/List.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/StaDb.h | 52 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/bcngen.h | 5 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/buildModes.h | 8 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/ccmp.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/dfs.h | 5 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/dfsMgmt.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/domain.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/ds.h | 5 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/encryptapi.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/event.h | 7 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/ewb_hash.h | 31 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/ewb_packet.h | 31 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/hostcmd.h | 264 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/idList.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/keyMgmt.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/keyMgmtCommon.h | 7 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/keyMgmtSta.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/keyMgmt_if.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/linkmgt.h | 23 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/macMgmtMain.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/macMgmtMlme.h | 10 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/macmgmtap.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/md5.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/mhsm.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/mib.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/mlme.h | 14 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/mlmeApi.h | 8 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/mlmeSta.h | 5 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/osif.h | 6 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/qos.h | 15 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/smeMain.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/timer.h | 5 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/tkip.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/util.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/wapi.h |only /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/wds.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/wl_hal.h | 29 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/wl_macros.h | 7 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/wl_mib.h | 26 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/wldebug.h | 7 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/wlmac.h | 9 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/wltypes.h | 22 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/wlvmac.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/incl/wpa.h | 4 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/AP/AssocSrvAp.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/AP/AuthSrvAp.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/AP/StaDb.c | 501 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/AP/SyncSrvAp.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/AP/dfsEv.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/AP/dfsSM.c | 27 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/AP/idList.c | 26 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/AP/macMgmtEvt.c | 68 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/AP/macMgmtMlme.c | 674 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/AP/macmgmtap.c | 21 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/AP/mlmeApi.c | 132 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/AP/mlmeAuth.c | 21 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/AP/smeMain.c | 11 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/AP/util.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/AP/wlMlmeSrv.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/List.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/STA/AssocSta_sm.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/STA/AssocSta_srv.c | 47 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/STA/AuthSta_sm.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/STA/AuthSta_srv.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/STA/SyncSta_sm.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/STA/SyncSta_srv.c | 50 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/STA/child_srv.c | 6 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/STA/incl/mlmeChild.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/STA/incl/mlmeParent.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/STA/incl/station.h | 5 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/STA/macMgmtEvtSta.c | 22 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/STA/mlmeApiSta.c | 93 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/STA/parent_srv.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/STA/smeStateMgrSta.c | 60 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/STA/wlMlmeSrvSta.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/STA/wlvmac.c | 5 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/mhsm.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mgt/timer.c | 34 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mib/mib.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/mib/wl_mib.c | 55 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/os/os_if.c | 8 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/qos/AP/qos_dlp.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/qos/AP/qos_scheduler.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/qos/qos.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/qos/qos_back.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/wds/wds.c | 57 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/wlsys/autochannel.c | 40 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/wlsys/bcngen.c | 211 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/wlsys/domain.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/wlsys/ewb_hash.c | 31 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/wlsys/ewb_packet.c | 93 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/wlsys/fragment.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/wlsys/hal_mib.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/wlsys/hal_sys.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/wlsys/linkmgt.c | 26 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/wlsys/packet.c | 559 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/core/wlsys/w81init.c | 7 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/driver/linux/88W8764-mfg.h |only /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/driver/linux/88W8764.h |190246 ++++------ /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/driver/linux/ap8xLnxApi.c | 1229 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/driver/linux/ap8xLnxApi.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/driver/linux/ap8xLnxDesc.c | 23 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/driver/linux/ap8xLnxDesc.h | 13 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/driver/linux/ap8xLnxDma.c | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/driver/linux/ap8xLnxDma.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/driver/linux/ap8xLnxDump.c | 37 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/driver/linux/ap8xLnxFwcmd.c | 782 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/driver/linux/ap8xLnxFwcmd.h | 25 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/driver/linux/ap8xLnxFwdl.c | 27 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/driver/linux/ap8xLnxFwdl.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/driver/linux/ap8xLnxIntf.c | 357 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/driver/linux/ap8xLnxIntf.h | 108 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/driver/linux/ap8xLnxIoctl.h | 21 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/driver/linux/ap8xLnxMPrxy.c | 34 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/driver/linux/ap8xLnxMPrxy.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/driver/linux/ap8xLnxRecv.c | 17 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/driver/linux/ap8xLnxRecv.h | 3 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/driver/linux/ap8xLnxRegs.h | 22 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/driver/linux/ap8xLnxStat.c | 130 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/driver/linux/ap8xLnxVer.h | 18 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/driver/linux/ap8xLnxWlLog.c | 5 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/driver/linux/ap8xLnxWlLog.h | 4 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/driver/linux/ap8xLnxXmit.c | 457 /home/bjorn/tmp/x/publication/src/mrvl_wlan_v7drv/wlan-v7/driver/linux/ap8xLnxXmit.h | 3 149 files changed, 94585 insertions(+), 103158 deletions(-) I don't think these numbers are terrifying in any way. Note that the 88W8764*.h files are firmware images exclusively, so they can be ignored. All the 3 line changes are of course just a copyright header update. Most of the rest is actually quite obvious, and mostly wrapped inside #ifdef SOC_W8864 tests. Like for example this hunk from ap8xLnxApi.c: @@ -71,6 +72,13 @@ static int getMacFromString(unsigned char *macAddr, const char *pStr); static int IPAsciiToNum(unsigned int * IPAddr, const char * pIPStr); +#ifdef SOC_W8864 +void ratetable_print_SOCW8864(UINT8* pTbl); +#else +void ratetable_print_SOCW8764(UINT8* pTbl); +#endif + + #define WPAHEX64 #define MAX_IOCTL_PARAMS 3 There's of course also some more generic additions for the AC support, like: +/*20Mhz: Nss1_LGI, Nss1_SGI, Nss2_LGI, Nss2_SGI, Nss3_LGI, Nss3_SGI, */ +static unsigned short PhyRate_11ac20M[][6] = +{ + {13, 15, 26, 29, 39, 44}, // 0 + {26, 29, 52, 58, 78, 87}, // 1 + {39, 44, 78, 87, 117, 130}, // 2 + {52, 58, 104, 116, 156, 174}, // 3 + {78, 87, 156, 174, 234, 260}, // 4 + {104, 116, 208, 231, 312, 347}, // 5 + {117, 130, 234, 260, 351, 390}, // 6 + {130, 145, 260, 289, 390, 434}, // 7 + {156, 174, 312, 347, 468, 520}, // 8 + {2, 2, 2, 2, 520, 578}, // 9, Nss 1 and Nss 2 mcs9 not valid. +}; + +/*40Mhz: Nss1_LGI, Nss1_SGI, Nss2_LGI, Nss2_SGI, Nss3_LGI, Nss3_SGI, */ +static unsigned short PhyRate_11ac40M[][6] = +{ + {27, 30, 54, 60, 81, 90}, // 0 + {54, 60, 108, 120, 162, 180}, // 1 + {81, 90, 162, 180, 243, 270}, // 2 + {108, 120, 216, 240, 324, 360}, // 3 + {162, 180, 324, 360, 486, 540}, // 4 + {216, 240, 432, 480, 648, 720}, // 5 + {243, 270, 486, 540, 729, 810}, // 6 + {270, 300, 540, 600, 810, 900}, // 7 + {324, 360, 648, 720, 972, 1080}, // 8 + {360, 400, 720, 800, 1080, 1200}, // 9 +}; + +/*80Mhz: Nss1_LGI, Nss1_SGI, Nss2_LGI, Nss2_SGI, Nss3_LGI, Nss3_SGI, */ +static unsigned short PhyRate_11ac80M[][6] = +{ + {59, 65, 117, 130, 175, 195}, // 0 + {117, 130, 234, 260, 351, 390}, // 1 + {175, 195, 351, 390, 527, 585}, // 2 + {234, 260, 468, 520, 702, 780}, // 3 + {351, 390, 702, 780, 1053, 1170}, // 4 + {468, 520, 936, 1040, 1404, 1560}, // 5 + {527, 585, 1053, 1170, 2, 2}, // 6, Nss 3 mcs6 not valid. + {585, 650, 1170, 1300, 1755, 1950}, // 7 + {702, 780, 1404, 1560, 2106, 2340}, // 8 + {780, 867, 1560, 1733, 2340, 2600}, // 9 + +}; + But someone (yes, it's always going to be someone else doing the job :-) with some knowlegde of Linux wireless drivers should be able to add the 88W8864 support to the "mwl8k" driver without too much effort. Bjørn _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel