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

Reply via email to