git: 8cdb6b2dd787 - main - alc: force maximum payload size to 128 bytes for AR816X/AR817x

From: Kyle Evans <kevans_at_FreeBSD.org>
Date: Tue, 07 Jun 2022 01:54:23 UTC
The branch main has been updated by kevans:

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

commit 8cdb6b2dd78793628d7c36198598c85741e44119
Author:     Kyle Evans <kevans@FreeBSD.org>
AuthorDate: 2022-06-07 01:52:55 +0000
Commit:     Kyle Evans <kevans@FreeBSD.org>
CommitDate: 2022-06-07 01:52:55 +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)
    MFC after:      3 days
---
 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 05254d462db0..128786f2bf0c 100644
--- a/sys/dev/alc/if_alc.c
+++ b/sys/dev/alc/if_alc.c
@@ -1493,10 +1493,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);
 	}