Forums - QCA9377-3 SDIO Linux Driver

4 posts / 0 new
Last post
QCA9377-3 SDIO Linux Driver
Join Date: 8 Aug 19
Location: Metzingen
Posts: 2
Posted: Wed, 2020-03-18 06:52

Dear all,


we want to use a QCA9277-3 WiFi but need a Linux 4.14 driver. As fas as I know the qcacld-2.0 only supports 4.9 kernel and the ath10k driver does not support SDIO at all. Is there any chance to get QCA9377-3 working with kernel 4.14 and even newer ones?

  • Up0
  • Down0
ddeepakk Moderator
Join Date: 27 Jun 17
Posts: 85
Posted: Wed, 2020-03-18 23:58

Hi Wolfram,

Can you download the code from here:
This branch has 4.14 support.

You can use this command for checking-out: 

#make a dir
#cd dir
#git init
#git clone git:// -b CNSS.LEA.NRT_3.1


  • Up0
  • Down0
Join Date: 31 Mar 20
Posts: 3
Posted: Wed, 2020-04-01 09:01

Dear all,

I want  to use monitoring mode for QCA9377-3 on kernel 4.14. However, I am having multiple build errors (log at the bottom).

I have the following configuration:


I have successfully compiled a functioning driver using an older branch from our vendor's repository (, but it does not support monitoring mode.

Do you have any more instructions or guides on how to build?


Log output:
make -j 4 all


  CC [M]  qcacld-2.0/CORE/HDD/src/wlan_hdd_p2p.o
qcacld-2.0/CORE/HDD/src/wlan_hdd_tx_rx.c: In function 'hdd_rx_packet_cbk':
qcacld-2.0/CORE/HDD/src/wlan_hdd_tx_rx.c:1475:10: error: implicit declaration of function 'cfg80211_is_gratuitous_arp_unsolicited_na' [-Werror=implicit-function-declaration]
 1475 |          cfg80211_is_gratuitous_arp_unsolicited_na(skb)) ||
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  CC [M]  qcacld-2.0/CORE/HDD/src/wlan_hdd_tdls.o
qcacld-2.0/CORE/HDD/src/wlan_hdd_cfg80211.c: In function '__is_driver_dfs_capable':
qcacld-2.0/CORE/HDD/src/wlan_hdd_cfg80211.c:1646:40: error: 'WIPHY_FLAG_DFS_OFFLOAD' undeclared (first use in this function)
 1646 |     dfs_capability = !!(wiphy->flags & WIPHY_FLAG_DFS_OFFLOAD);
      |                                        ^~~~~~~~~~~~~~~~~~~~~~
qcacld-2.0/CORE/HDD/src/wlan_hdd_cfg80211.c:1646:40: note: each undeclared identifier is reported only once for each function it appears in
cc1: all warnings being treated as errors
make[2]: *** [scripts/ qcacld-2.0/CORE/HDD/src/wlan_hdd_tx_rx.o] Error 1
make[2]: *** Waiting for unfinished jobs....
qcacld-2.0/CORE/HDD/src/wlan_hdd_cfg80211.c: In function 'wlan_hdd_cfg80211_init':
qcacld-2.0/CORE/HDD/src/wlan_hdd_cfg80211.c:16649:25: error: 'WIPHY_FLAG_DFS_OFFLOAD' undeclared (first use in this function)
16649 |         wiphy->flags |= WIPHY_FLAG_DFS_OFFLOAD;
      |                         ^~~~~~~~~~~~~~~~~~~~~~
qcacld-2.0/CORE/HDD/src/wlan_hdd_cfg80211.c: In function 'wlan_hdd_cfg80211_lphb_ind_handler':
qcacld-2.0/CORE/HDD/src/wlan_hdd_cfg80211.c:30651:10: error: implicit declaration of function 'cfg80211_testmode_alloc_event_skb' [-Werror=implicit-function-declaration]
30651 |    skb = cfg80211_testmode_alloc_event_skb(
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
qcacld-2.0/CORE/HDD/src/wlan_hdd_cfg80211.c:30651:8: error: assignment to 'struct sk_buff *' from 'int' makes pointer from integer without a cast [-Werror=int-conversion]
30651 |    skb = cfg80211_testmode_alloc_event_skb(
      |        ^
qcacld-2.0/CORE/HDD/src/wlan_hdd_cfg80211.c:30681:4: error: implicit declaration of function 'cfg80211_testmode_event'; did you mean 'cfg80211_vendor_event'? [-Werror=implicit-function-declaration]
30681 |    cfg80211_testmode_event(skb, GFP_ATOMIC);
      |    ^~~~~~~~~~~~~~~~~~~~~~~
      |    cfg80211_vendor_event
qcacld-2.0/CORE/HDD/src/wlan_hdd_cfg80211.c: In function 'wlan_hdd_testmode_rx_event':
qcacld-2.0/CORE/HDD/src/wlan_hdd_cfg80211.c:30853:9: error: assignment to 'struct sk_buff *' from 'int' makes pointer from integer without a cast [-Werror=int-conversion]
30853 |     skb = cfg80211_testmode_alloc_event_skb(hdd_ctx->wiphy,
      |         ^
qcacld-2.0/CORE/HDD/src/wlan_hdd_cfg80211.c: At top level:
qcacld-2.0/CORE/HDD/src/wlan_hdd_cfg80211.c:33362:7: error: 'struct cfg80211_ops' has no member named 'testmode_cmd'
33362 |      .testmode_cmd = wlan_hdd_cfg80211_testmode,
      |       ^~~~~~~~~~~~
qcacld-2.0/CORE/HDD/src/wlan_hdd_cfg80211.c:33362:22: error: initialization of 'int (*)(struct wiphy *, struct net_device *, struct cfg80211_chan_def *, u32)' {aka 'int (*)(struct wiphy *, struct net_device *, struct cfg80211_chan_def *, unsigned int)'} from incompatible pointer type 'int (*)(struct wiphy *, struct wireless_dev *, void *, int)' [-Werror=incompatible-pointer-types]
33362 |      .testmode_cmd = wlan_hdd_cfg80211_testmode,
      |                      ^~~~~~~~~~~~~~~~~~~~~~~~~~
qcacld-2.0/CORE/HDD/src/wlan_hdd_cfg80211.c:33362:22: note: (near initialization for 'wlan_hdd_cfg80211_ops.start_radar_detection')
cc1: all warnings being treated as errors

  • Up0
  • Down0
ddeepakk Moderator
Join Date: 27 Jun 17
Posts: 85
Posted: Wed, 2020-04-01 11:24

Hi Silvia,

Please check

The SDK available here has Monitor mode support. Check th ePorting Guide Section "8.5 Install the WLAN host driver alternate modes" for details.


  • Up0
  • Down0
or Register

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries (“Qualcomm”). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.