git: 94f51bb57834 - stable/12 - alc: force maximum payload size to 128 bytes for AR816X/AR817x

From: Kyle Evans <kevans_at_FreeBSD.org>
Date: Sun, 18 Sep 2022 06:27:14 UTC
The branch stable/12 has been updated by kevans:

URL: https://cgit.FreeBSD.org/src/commit/?id=94f51bb57834b98d551712700e87172374d5ce37

commit 94f51bb57834b98d551712700e87172374d5ce37
Author:     Kyle Evans <kevans@FreeBSD.org>
AuthorDate: 2022-06-07 01:52:55 +0000
Commit:     Kyle Evans <kevans@FreeBSD.org>
CommitDate: 2022-09-17 19:29:50 +0000

    alc: force maximum payload size to 128 bytes for AR816X/AR817x
    
    Otherwise, we'll trigger a DMA write error and render the device
    unusable.
    
    Obtained from:  OpenBSD (via Haiku, waddlesplash)
    
    (cherry picked from commit 8cdb6b2dd78793628d7c36198598c85741e44119)
---
 sys/dev/alc/if_alc.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/sys/dev/alc/if_alc.c b/sys/dev/alc/if_alc.c
index e063e906bf3d..dd41c740be85 100644
--- a/sys/dev/alc/if_alc.c
+++ b/sys/dev/alc/if_alc.c
@@ -1495,10 +1495,11 @@ alc_attach(device_t dev)
 			sc->alc_dma_wr_burst = 3;
 		/*
 		 * Force maximum payload size to 128 bytes for
-		 * E2200/E2400/E2500.
+		 * E2200/E2400/E2500/AR8162/AR8171/AR8172.
 		 * Otherwise it triggers DMA write error.
 		 */
-		if ((sc->alc_flags & ALC_FLAG_E2X00) != 0)
+		if ((sc->alc_flags &
+		    (ALC_FLAG_E2X00 | ALC_FLAG_AR816X_FAMILY)) != 0)
 			sc->alc_dma_wr_burst = 0;
 		alc_init_pcie(sc);
 	}