I've been struggling with this one for quite a while so I decided to post here how I did it.
opkg update
opkg install luci
opkg install kmod-ath10k
opkg install ath10k-firmware-qca6174
cp /lib/firmware/ath10k/QCA6174/hw3.0/firmware-4.bin_WLAN.RM.2.0-00180-QCARMSWPZ-1 /lib/firmware/ath10k/QCA6174/hw3.0/firmware-4.bin
reboot
After reboot configure the interface as per normal in the web GUI.
Here comes the part I was stuck on.
If you get these messages when a client connects
logread -f
Sun Apr 1 11:38:35 2018 daemon.info hostapd: wlan1: STA 38:a4:ed:00:9c:31 IEEE 802.11: authenticated
Sun Apr 1 11:38:35 2018 daemon.info hostapd: wlan1: STA 38:a4:ed:00:9c:31 IEEE 802.11: associated (aid 1)
Sun Apr 1 11:38:36 2018 daemon.notice hostapd: wlan1: AP-STA-CONNECTED 38:a4:ed:00:9c:31
Sun Apr 1 11:38:36 2018 daemon.info hostapd: wlan1: STA 38:a4:ed:00:9c:31 RADIUS: starting accounting session CEE4BF72221F548A
Sun Apr 1 11:38:36 2018 daemon.info hostapd: wlan1: STA 38:a4:ed:00:9c:31 WPA: pairwise key handshake completed (RSN)
Sun Apr 1 11:38:51 2018 daemon.info hostapd: wlan1: STA 38:a4:ed:00:9c:31 IEEE 802.11: disconnected due to excessive missing ACKs
Sun Apr 1 11:38:51 2018 daemon.notice hostapd: wlan1: AP-STA-DISCONNECTED 38:a4:ed:00:9c:31
Sun Apr 1 11:39:21 2018 daemon.info hostapd: wlan1: STA 38:a4:ed:00:9c:31 IEEE 802.11: deauthenticated due to inactivity (timer DEAUTH/REMOVE)
then go and disable disassoc_low_ack:
vi /etc/config/wireless
config wifi-iface 'default_radio0'
option device 'radio0'
option network 'lan'
option mode 'ap'
option ssid 'SSID'
option key 'password'
option encryption 'psk2'
option disassoc_low_ack 0
save and reboot again.
source: http://lists.infradead.org/pipermail/ath10k/2015-July/005648.html