[PATCH v2 0/2] net: atlantic: AQC113: Fix regression on Apple silicon systems

From: Janne Grunau

Date: Sun Nov 08 2026 - 07:45:23 EST


Hej,

commit 6c1ca112a6e4 ("net: atlantic: fix AQC113 HW init: ART, L2 filter
slot, MAC address") broke data transmission on Apple silicon systems
with integrated AQC113. The commit uses the queried filter caps from the
firmware which may result in using L2 filter slots starting from
`l2_filters_base_index`.
hw_atl_b0_hw_packet_filter_set() is not aware of this change and enables
/disables L2 filter slots starting from index 0. When the firmware
reported `l2_filters_base_index` is high enough (9 on Apple systems) it
will likely disable the L2 filter for the NIC's own MAC address
resulting in a complete loss of data transmission.
Another issue is that the number of available L2 filter slots might
smaller than AQ_HW_MULTICAST_ADDRESS_MAX (32). This is the case on Apple
systems with `l2_filter_count` == 29. To avoid -EBADRQC when L2 filters
run out query the number of filter slots from the hardware.

The fixes in this series restores Ethernet data transmission on an Apple
M1 Max Mac Studio and supersedes my previous "fix" in [1].

Link:
https://lore.kernel.org/r/20261024-net-atlantic-aq113-apple-regression-v1-1-b8305415a8b1@xxxxxxxxxx [1]

Signed-off-by: Janne Grunau <j@xxxxxxxxxx>
---
Changes in v2:
- Leave atl_b0 as is and copy hw_atl_b0_hw_packet_filter_set to hw_atl2
to adapt it
- Enable L2 filters for multicast addresses correctly
- Query the number of available L2 filter slots from HW to avoid
-EBADRQC if it exceeds `l2_filter_count - 1` and use promiscuous mode
instead in aq_nic_set_multicast_list()
- Link to v1: https://lore.kernel.org/r/20261026-net-atlantic-aq113-apple-l2-filter-slots-v1-0-d72e99b69583@xxxxxxxxxx

---
Janne Grunau (2):
net: atlantic: AQC113: Fix hw_atl2_hw_acket_filter_set for L2 filter base index > 0
net: atlantic: AQC113: Limit multicast filters to available slots

drivers/net/ethernet/aquantia/atlantic/aq_hw.h | 2 +
drivers/net/ethernet/aquantia/atlantic/aq_nic.c | 7 ++--
.../ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c | 7 ++++
.../ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c | 7 ++++
.../ethernet/aquantia/atlantic/hw_atl2/hw_atl2.c | 46 +++++++++++++++++++++-
5 files changed, 64 insertions(+), 5 deletions(-)
---
base-commit: c03c1a14507dfaf8b856c2608f9ac216021fc222
change-id: 20261026-net-atlantic-aq113-apple-l2-filter-slots-6342515c5318

Best regards,
--
Janne Grunau <j@xxxxxxxxxx>