To get wifi working properly, you need to create a device specific board file.
Use the ath11k-bdencoder:
You need first figure out, which board file the rax120 is using, from the stock bootlog:
40.954101] cnss: BDF IPQ8074/bdwlan.bin size 131072
Full path should be /lib/firmware/IPQ8074, grab that file from the extracted firmware or the device and use it to create a proper board file.
Create a board-2.json like that:
[
{
"names": [
"bus=ahb,qmi-chip-id=0,qmi-board-id=255,variant=Netgear-RAX120"
],
"data": "bus=ahb,qmi-chip-id=0,qmi-board-id=255,variant=Netgear-RAX120.bin"
}
]
-> board-id 255 should be the right one, as there isn't a board_id set in the stock DTS and the default is 255 / 0xFF
Rename your board file to 'bus=ahb,qmi-chip-id=0,qmi-board-id=255,variant=Netgear-RAX120.bin' and then use the "ath11k-bdencoder -c board-2.json"
Next step create an override in ipq-wifi package, you can find an example in this commit:
Last step: add that to your device DTS:
&wifi {
status = "okay";
/* using board_id 0xff is intentionally
* as the stock firmware is also using this default board_id
*/
qcom,board_id = <0xff>;
qcom,ath11k-calibration-variant = "Netgear-RAX120;
};
The ath11k driver should then find the right board file.