git: f248e70fc1a4 - stable/13 - 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:04 UTC
The branch stable/13 has been updated by kevans:

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

commit f248e70fc1a419dc596023f47fea3ffa829eba3e
Author:     Kyle Evans <kevans@FreeBSD.org>
AuthorDate: 2022-06-07 01:52:55 +0000
Commit:     Kyle Evans <kevans@FreeBSD.org>
CommitDate: 2022-09-18 06:26:39 +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 f0d756b3e865..c6928db3885c 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);
 	}