1
0
Fork 0
Commit graph

9 commits

Author SHA1 Message Date
277dbca2d3 Disable bcmdhd and rockchip_wlan in favor of brcmfmac 2026-07-12 23:44:38 -04:00
bc1e92d855 Add BRCMF_FW_CLM_DEF for BCM43711 firmware basename 2026-07-12 23:04:52 -04:00
cc4418e2f8 brcmfmac: add BCM43711 chip and firmware support with named constants
Add proper named constants for the Synaptics SYN43711 (AP6611S)
WiFi chip used on Orange Pi 5 Ultra:

- SDIO_VENDOR_ID_SYNAPTICS (0x06cb) in sdio_ids.h
- SDIO_DEVICE_ID_BROADCOM_CYPRESS_43711 (0xaabf) in sdio_ids.h
- CY_CC_43711_CHIP_ID (43711) in brcm_hw_ids.h

Driver changes:
- bcmsdh.c: bind both Broadcom (0x02d0) and Synaptics (0x06cb) vendors
- chip.c: add RAM base 0x170000 (from bcmdhd CR4_43711_RAM_BASE)
- sdio.c: firmware mapping entry for brcmfmac43711-sdio
2026-07-12 22:59:40 -04:00
b557a8b991 brcmfmac: fix SYN43711 SDIO device ID (0xaabf not 0x44b0)
The 0x44b0 device ID is the PCIe function ID. The SDIO device
ID for this chip is 0xaabf (BCM43711_CHIP_ID from bcmdhd headers).
Add entries for both Broadcom (0x02d0) and Synaptics (0x06cb)
SDIO vendor IDs since chip ownership transferred during acquisition.
2026-07-12 22:39:24 -04:00
d2c3341f52 brcmfmac: add SYN43711 SDIO device ID 0x44b0
Allow brcmfmac to bind to the Synaptics SYN43711 (AP6611S) SDIO
WiFi chip used on Orange Pi 5 Ultra. The chip ID will be logged
on first boot so the firmware mapping entry can be added.
2026-07-12 22:18:39 -04:00
d7288a3810 Integrate bcmdhd driver into kernel build tree
- Add rockchip_wlan Kconfig include to drivers/net/wireless/Kconfig
  (the Makefile already has the build rule under CONFIG_WL_ROCKCHIP)
- Set CONFIG_WL_ROCKCHIP=y in tart_defconfig to enable bcmdhd build
2026-07-12 22:08:15 -04:00
666e8edd5f bcmdhd: set FW_AMPAK_PATH for vendor firmware directory
Define FW_AMPAK_PATH as vendor/firmware/brcm so the driver's
dhd_conf_add_filepath constructs the correct absolute firmware
path /vendor/firmware/brcm/fw_<chip>.bin.
2026-07-12 21:57:50 -04:00
dvab-sarma
9a6c85c2de wifi: brcmfmac: fix crash while sending Action Frames in standalone AP Mode
commit 3776c685ebe5f43e9060af06872661de55e80b9a upstream.

Currently, whenever there is a need to transmit an Action frame,
the brcmfmac driver always uses the P2P vif to send the "actframe" IOVAR to
firmware. The P2P interfaces were available when wpa_supplicant is managing
the wlan interface.

However, the P2P interfaces are not created/initialized when only hostapd
is managing the wlan interface. And if hostapd receives an ANQP Query REQ
Action frame even from an un-associated STA, the brcmfmac driver tries
to use an uninitialized P2P vif pointer for sending the IOVAR to firmware.
This NULL pointer dereferencing triggers a driver crash.

 [ 1417.074538] Unable to handle kernel NULL pointer dereference at virtual
 address 0000000000000000
 [...]
 [ 1417.075653] Call trace:
 [ 1417.075662]  brcmf_p2p_send_action_frame+0x23c/0xc58 [brcmfmac]
 [ 1417.075738]  brcmf_cfg80211_mgmt_tx+0x304/0x5c0 [brcmfmac]
 [ 1417.075810]  cfg80211_mlme_mgmt_tx+0x1b0/0x428 [cfg80211]
 [ 1417.076067]  nl80211_tx_mgmt+0x238/0x388 [cfg80211]
 [ 1417.076281]  genl_family_rcv_msg_doit+0xe0/0x158
 [ 1417.076302]  genl_rcv_msg+0x220/0x2a0
 [ 1417.076317]  netlink_rcv_skb+0x68/0x140
 [ 1417.076330]  genl_rcv+0x40/0x60
 [ 1417.076343]  netlink_unicast+0x330/0x3b8
 [ 1417.076357]  netlink_sendmsg+0x19c/0x3f8
 [ 1417.076370]  __sock_sendmsg+0x64/0xc0
 [ 1417.076391]  ____sys_sendmsg+0x268/0x2a0
 [ 1417.076408]  ___sys_sendmsg+0xb8/0x118
 [ 1417.076427]  __sys_sendmsg+0x90/0xf8
 [ 1417.076445]  __arm64_sys_sendmsg+0x2c/0x40
 [ 1417.076465]  invoke_syscall+0x50/0x120
 [ 1417.076486]  el0_svc_common.constprop.0+0x48/0xf0
 [ 1417.076506]  do_el0_svc+0x24/0x38
 [ 1417.076525]  el0_svc+0x30/0x100
 [ 1417.076548]  el0t_64_sync_handler+0x100/0x130
 [ 1417.076569]  el0t_64_sync+0x190/0x198
 [ 1417.076589] Code: f9401e80 aa1603e2 f9403be1 5280e483 (f9400000)

Fix this, by always using the vif corresponding to the wdev on which the
Action frame Transmission request was initiated by the userspace. This way,
even if P2P vif is not available, the IOVAR is sent to firmware on AP vif
and the ANQP Query RESP Action frame is transmitted without crashing the
driver.

Move init_completion() for "send_af_done" from brcmf_p2p_create_p2pdev()
to brcmf_p2p_attach(). Because the former function would not get executed
when only hostapd is managing wlan interface, and it is not safe to do
reinit_completion() later in brcmf_p2p_tx_action_frame(), without any prior
init_completion().

And in the brcmf_p2p_tx_action_frame() function, the condition check for
P2P Presence response frame is not needed, since the wpa_supplicant is
properly sending the P2P Presense Response frame on the P2P-GO vif instead
of the P2P-Device vif.

Cc: stable@vger.kernel.org
Fixes: 18e2f61 ("brcmfmac: P2P action frame tx")
Signed-off-by: Gokul Sivakumar <gokulkumar.sivakumar@infineon.com>
Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Link: https://patch.msgid.link/20251013102819.9727-1-gokulkumar.sivakumar@infineon.com
[Cc stable]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2025-12-04 02:20:01 -06:00
dvab-sarma
7e144d9afa can be used for AOSP 15 & 16 2025-06-27 00:32:42 -05:00