CVS commit: [netbsd-9] src/sys/dev/hdaudio
Module Name:src Committed By: martin Date: Mon Dec 28 20:21:55 UTC 2020 Modified Files: src/sys/dev/hdaudio [netbsd-9]: hdaudio.c Log Message: Pull up following revision(s) (requested by jmcneill in ticket #1166): sys/dev/hdaudio/hdaudio.c: revision 1.13 If the Subordinate Node Count returns 0 nodes, complain and return instead of trying to kmem_zalloc 0 bytes later on. To generate a diff of this commit: cvs rdiff -u -r1.9.2.1 -r1.9.2.2 src/sys/dev/hdaudio/hdaudio.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/hdaudio/hdaudio.c diff -u src/sys/dev/hdaudio/hdaudio.c:1.9.2.1 src/sys/dev/hdaudio/hdaudio.c:1.9.2.2 --- src/sys/dev/hdaudio/hdaudio.c:1.9.2.1 Mon Dec 28 20:18:09 2020 +++ src/sys/dev/hdaudio/hdaudio.c Mon Dec 28 20:21:54 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: hdaudio.c,v 1.9.2.1 2020/12/28 20:18:09 martin Exp $ */ +/* $NetBSD: hdaudio.c,v 1.9.2.2 2020/12/28 20:21:54 martin Exp $ */ /* * Copyright (c) 2009 Precedence Technologies Ltd @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: hdaudio.c,v 1.9.2.1 2020/12/28 20:18:09 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: hdaudio.c,v 1.9.2.2 2020/12/28 20:21:54 martin Exp $"); #include #include @@ -713,6 +713,7 @@ hdaudio_attach_fg(struct hdaudio_functio static void hdaudio_codec_attach(struct hdaudio_codec *co) { + struct hdaudio_softc *sc = co->co_host; struct hdaudio_function_group *fg; uint32_t vid, snc, fgrp; int starting_node, num_nodes, nid; @@ -729,7 +730,6 @@ hdaudio_codec_attach(struct hdaudio_code return; #ifdef HDAUDIO_DEBUG - struct hdaudio_softc *sc = co->co_host; uint32_t rid = hdaudio_command(co, 0, CORB_GET_PARAMETER, COP_REVISION_ID); hda_print(sc, "Codec%02X: %04X:%04X HDA %d.%d rev %d stepping %d\n", @@ -740,6 +740,16 @@ hdaudio_codec_attach(struct hdaudio_code starting_node = (snc >> 16) & 0xff; num_nodes = snc & 0xff; + /* + * If the total number of nodes is 0, there's nothing we can do. + * This shouldn't happen, so complain about it. + */ + if (num_nodes == 0) { + hda_error(sc, "Codec%02X: No subordinate nodes found (%08x)\n", + co->co_addr, snc); + return; + } + co->co_nfg = num_nodes; co->co_fg = kmem_zalloc(co->co_nfg * sizeof(*co->co_fg), KM_SLEEP);
CVS commit: [netbsd-9] src/sys/dev/hdaudio
Module Name:src Committed By: martin Date: Mon Dec 28 20:18:09 UTC 2020 Modified Files: src/sys/dev/hdaudio [netbsd-9]: hdaudio.c Log Message: Pull up following revision(s) (requested by jmcneill in ticket #1165): sys/dev/hdaudio/hdaudio.c: revision 1.12 Initialize DMA memory when allocating it. Should fix PR# 51734 (hdaudio "RIRB timeout" on boot). To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.9.2.1 src/sys/dev/hdaudio/hdaudio.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/hdaudio/hdaudio.c diff -u src/sys/dev/hdaudio/hdaudio.c:1.9 src/sys/dev/hdaudio/hdaudio.c:1.9.2.1 --- src/sys/dev/hdaudio/hdaudio.c:1.9 Fri Jul 26 11:13:46 2019 +++ src/sys/dev/hdaudio/hdaudio.c Mon Dec 28 20:18:09 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: hdaudio.c,v 1.9 2019/07/26 11:13:46 jmcneill Exp $ */ +/* $NetBSD: hdaudio.c,v 1.9.2.1 2020/12/28 20:18:09 martin Exp $ */ /* * Copyright (c) 2009 Precedence Technologies Ltd @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: hdaudio.c,v 1.9 2019/07/26 11:13:46 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: hdaudio.c,v 1.9.2.1 2020/12/28 20:18:09 martin Exp $"); #include #include @@ -194,6 +194,10 @@ hdaudio_dma_alloc(struct hdaudio_softc * if (err) goto destroy; + memset(dma->dma_addr, 0, dma->dma_size); + bus_dmamap_sync(sc->sc_dmat, dma->dma_map, 0, dma->dma_size, + BUS_DMASYNC_PREWRITE); + dma->dma_valid = true; return 0;
CVS commit: [netbsd-9] src/sys/dev/hdaudio
Module Name:src Committed By: martin Date: Wed Apr 29 13:51:09 UTC 2020 Modified Files: src/sys/dev/hdaudio [netbsd-9]: hdaudiodevs.h hdaudiodevs_data.h Log Message: Regen for ticket #872 To generate a diff of this commit: cvs rdiff -u -r1.2.26.2 -r1.2.26.3 src/sys/dev/hdaudio/hdaudiodevs.h \ src/sys/dev/hdaudio/hdaudiodevs_data.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/hdaudio/hdaudiodevs.h diff -u src/sys/dev/hdaudio/hdaudiodevs.h:1.2.26.2 src/sys/dev/hdaudio/hdaudiodevs.h:1.2.26.3 --- src/sys/dev/hdaudio/hdaudiodevs.h:1.2.26.2 Wed Apr 29 13:43:42 2020 +++ src/sys/dev/hdaudio/hdaudiodevs.h Wed Apr 29 13:51:09 2020 @@ -1,10 +1,10 @@ -/* $NetBSD: hdaudiodevs.h,v 1.2.26.2 2020/04/29 13:43:42 martin Exp $ */ +/* $NetBSD: hdaudiodevs.h,v 1.2.26.3 2020/04/29 13:51:09 martin Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * NetBSD: hdaudiodevs,v 1.2.26.2 2020/04/29 13:42:21 martin Exp + * NetBSD: hdaudiodevs,v 1.2.26.3 2020/04/29 13:50:38 martin Exp */ /* @@ -84,6 +84,7 @@ #define HDAUDIO_PRODUCT_REALTEK_ALC272 0x0272 /* ALC272 */ #define HDAUDIO_PRODUCT_REALTEK_ALC275 0x0275 /* ALC275 */ #define HDAUDIO_PRODUCT_REALTEK_ALC280 0x0280 /* ALC280 */ +#define HDAUDIO_PRODUCT_REALTEK_ALC292 0x0292 /* ALC292 */ #define HDAUDIO_PRODUCT_REALTEK_ALC293 0x0293 /* ALC293 */ #define HDAUDIO_PRODUCT_REALTEK_ALC660_VD 0x0660 /* ALC660-VD */ #define HDAUDIO_PRODUCT_REALTEK_ALC662 0x0662 /* ALC662 */ Index: src/sys/dev/hdaudio/hdaudiodevs_data.h diff -u src/sys/dev/hdaudio/hdaudiodevs_data.h:1.2.26.2 src/sys/dev/hdaudio/hdaudiodevs_data.h:1.2.26.3 --- src/sys/dev/hdaudio/hdaudiodevs_data.h:1.2.26.2 Wed Apr 29 13:43:42 2020 +++ src/sys/dev/hdaudio/hdaudiodevs_data.h Wed Apr 29 13:51:09 2020 @@ -1,10 +1,10 @@ -/* $NetBSD: hdaudiodevs_data.h,v 1.2.26.2 2020/04/29 13:43:42 martin Exp $ */ +/* $NetBSD: hdaudiodevs_data.h,v 1.2.26.3 2020/04/29 13:51:09 martin Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * NetBSD: hdaudiodevs,v 1.2.26.2 2020/04/29 13:42:21 martin Exp + * NetBSD: hdaudiodevs,v 1.2.26.3 2020/04/29 13:50:38 martin Exp */ /* @@ -102,322 +102,324 @@ static const uint16_t hdaudio_products[] 230, 0, HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC280, 237, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC293, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC292, 244, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC660_VD, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC293, 251, 0, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC660_VD, + 258, 0, HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC662, - 261, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC663, 268, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC670, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC663, 275, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC861, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC670, 282, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC861_VD, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC861, 289, 0, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC861_VD, + 296, 0, HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC880, - 299, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC882, 306, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC883, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC882, 313, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC885, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC883, 320, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC887, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC885, 327, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC888, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC887, 334, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC889, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC888, 341, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC892, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC889, 348, 0, - HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT1708, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC892, 355, 0, + HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT1708, + 362, 0, HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT1709, - 355, 0, + 362, 0, HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT170A, - 355, 0, + 362, 0, HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT170B, - 355, 0, + 362, 0, HDAUDIO_VENDOR_VIATECH
CVS commit: [netbsd-9] src/sys/dev/hdaudio
Module Name:src Committed By: martin Date: Wed Apr 29 13:50:38 UTC 2020 Modified Files: src/sys/dev/hdaudio [netbsd-9]: hdaudiodevs Log Message: Pull up following revision(s) (requested by nia in ticket #872): sys/dev/hdaudio/hdaudiodevs: revision 1.5 hdaudiodevs: Add Realtek ALC292 To generate a diff of this commit: cvs rdiff -u -r1.2.26.2 -r1.2.26.3 src/sys/dev/hdaudio/hdaudiodevs Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/hdaudio/hdaudiodevs diff -u src/sys/dev/hdaudio/hdaudiodevs:1.2.26.2 src/sys/dev/hdaudio/hdaudiodevs:1.2.26.3 --- src/sys/dev/hdaudio/hdaudiodevs:1.2.26.2 Wed Apr 29 13:42:21 2020 +++ src/sys/dev/hdaudio/hdaudiodevs Wed Apr 29 13:50:38 2020 @@ -1,4 +1,4 @@ -$NetBSD: hdaudiodevs,v 1.2.26.2 2020/04/29 13:42:21 martin Exp $ +$NetBSD: hdaudiodevs,v 1.2.26.3 2020/04/29 13:50:38 martin Exp $ /* * Copyright (c) 2010 Jared D. McNeill @@ -77,6 +77,7 @@ product REALTEK ALC270 0x0270 ALC270 product REALTEK ALC272 0x0272 ALC272 product REALTEK ALC275 0x0275 ALC275 product REALTEK ALC280 0x0280 ALC280 +product REALTEK ALC292 0x0292 ALC292 product REALTEK ALC293 0x0293 ALC293 product REALTEK ALC660_VD 0x0660 ALC660-VD product REALTEK ALC662 0x0662 ALC662
CVS commit: [netbsd-9] src/sys/dev/hdaudio
Module Name:src Committed By: martin Date: Wed Apr 29 13:43:42 UTC 2020 Modified Files: src/sys/dev/hdaudio [netbsd-9]: hdaudiodevs.h hdaudiodevs_data.h Log Message: Regen for ticket #869 To generate a diff of this commit: cvs rdiff -u -r1.2.26.1 -r1.2.26.2 src/sys/dev/hdaudio/hdaudiodevs.h \ src/sys/dev/hdaudio/hdaudiodevs_data.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/hdaudio/hdaudiodevs.h diff -u src/sys/dev/hdaudio/hdaudiodevs.h:1.2.26.1 src/sys/dev/hdaudio/hdaudiodevs.h:1.2.26.2 --- src/sys/dev/hdaudio/hdaudiodevs.h:1.2.26.1 Mon Jan 27 07:10:17 2020 +++ src/sys/dev/hdaudio/hdaudiodevs.h Wed Apr 29 13:43:42 2020 @@ -1,10 +1,10 @@ -/* $NetBSD: hdaudiodevs.h,v 1.2.26.1 2020/01/27 07:10:17 martin Exp $ */ +/* $NetBSD: hdaudiodevs.h,v 1.2.26.2 2020/04/29 13:43:42 martin Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * NetBSD: hdaudiodevs,v 1.2.26.1 2020/01/27 07:09:31 martin Exp + * NetBSD: hdaudiodevs,v 1.2.26.2 2020/04/29 13:42:21 martin Exp */ /* @@ -84,6 +84,7 @@ #define HDAUDIO_PRODUCT_REALTEK_ALC272 0x0272 /* ALC272 */ #define HDAUDIO_PRODUCT_REALTEK_ALC275 0x0275 /* ALC275 */ #define HDAUDIO_PRODUCT_REALTEK_ALC280 0x0280 /* ALC280 */ +#define HDAUDIO_PRODUCT_REALTEK_ALC293 0x0293 /* ALC293 */ #define HDAUDIO_PRODUCT_REALTEK_ALC660_VD 0x0660 /* ALC660-VD */ #define HDAUDIO_PRODUCT_REALTEK_ALC662 0x0662 /* ALC662 */ #define HDAUDIO_PRODUCT_REALTEK_ALC663 0x0663 /* ALC663 */ Index: src/sys/dev/hdaudio/hdaudiodevs_data.h diff -u src/sys/dev/hdaudio/hdaudiodevs_data.h:1.2.26.1 src/sys/dev/hdaudio/hdaudiodevs_data.h:1.2.26.2 --- src/sys/dev/hdaudio/hdaudiodevs_data.h:1.2.26.1 Mon Jan 27 07:10:17 2020 +++ src/sys/dev/hdaudio/hdaudiodevs_data.h Wed Apr 29 13:43:42 2020 @@ -1,10 +1,10 @@ -/* $NetBSD: hdaudiodevs_data.h,v 1.2.26.1 2020/01/27 07:10:17 martin Exp $ */ +/* $NetBSD: hdaudiodevs_data.h,v 1.2.26.2 2020/04/29 13:43:42 martin Exp $ */ /* * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * NetBSD: hdaudiodevs,v 1.2.26.1 2020/01/27 07:09:31 martin Exp + * NetBSD: hdaudiodevs,v 1.2.26.2 2020/04/29 13:42:21 martin Exp */ /* @@ -102,320 +102,322 @@ static const uint16_t hdaudio_products[] 230, 0, HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC280, 237, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC660_VD, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC293, 244, 0, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC660_VD, + 251, 0, HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC662, - 254, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC663, 261, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC670, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC663, 268, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC861, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC670, 275, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC861_VD, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC861, 282, 0, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC861_VD, + 289, 0, HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC880, - 292, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC882, 299, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC883, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC882, 306, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC885, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC883, 313, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC887, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC885, 320, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC888, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC887, 327, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC889, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC888, 334, 0, - HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC892, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC889, 341, 0, - HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT1708, + HDAUDIO_VENDOR_REALTEK, HDAUDIO_PRODUCT_REALTEK_ALC892, 348, 0, + HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT1708, + 355, 0, HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT1709, - 348, 0, + 355, 0, HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT170A, - 348, 0, + 355, 0, HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT170B, - 348, 0, + 355, 0, HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT1709_10CH_0, - 355, 362, 0, + 362, 369, 0, HDAUDIO_VENDOR_VIATECH, HDAUDIO_PRODUCT_VIATECH_VT1709
CVS commit: [netbsd-9] src/sys/dev/hdaudio
Module Name:src Committed By: martin Date: Wed Apr 29 13:42:21 UTC 2020 Modified Files: src/sys/dev/hdaudio [netbsd-9]: hdaudiodevs Log Message: Pull up following revision(s) (requested by jmcneill in ticket #869): sys/dev/hdaudio/hdaudiodevs: revision 1.4 Add Realtek ALC293 To generate a diff of this commit: cvs rdiff -u -r1.2.26.1 -r1.2.26.2 src/sys/dev/hdaudio/hdaudiodevs Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/hdaudio/hdaudiodevs diff -u src/sys/dev/hdaudio/hdaudiodevs:1.2.26.1 src/sys/dev/hdaudio/hdaudiodevs:1.2.26.2 --- src/sys/dev/hdaudio/hdaudiodevs:1.2.26.1 Mon Jan 27 07:09:31 2020 +++ src/sys/dev/hdaudio/hdaudiodevs Wed Apr 29 13:42:21 2020 @@ -1,4 +1,4 @@ -$NetBSD: hdaudiodevs,v 1.2.26.1 2020/01/27 07:09:31 martin Exp $ +$NetBSD: hdaudiodevs,v 1.2.26.2 2020/04/29 13:42:21 martin Exp $ /* * Copyright (c) 2010 Jared D. McNeill @@ -77,6 +77,7 @@ product REALTEK ALC270 0x0270 ALC270 product REALTEK ALC272 0x0272 ALC272 product REALTEK ALC275 0x0275 ALC275 product REALTEK ALC280 0x0280 ALC280 +product REALTEK ALC293 0x0293 ALC293 product REALTEK ALC660_VD 0x0660 ALC660-VD product REALTEK ALC662 0x0662 ALC662 product REALTEK ALC663 0x0663 ALC663
CVS commit: [netbsd-9] src/sys/dev/hdaudio
Module Name:src Committed By: martin Date: Sat Apr 25 10:40:45 UTC 2020 Modified Files: src/sys/dev/hdaudio [netbsd-9]: hdafg.c Log Message: Pull up following revision(s) (requested by isaki in ticket #852): sys/dev/hdaudio/hdafg.c: revision 1.22 Make round_blocksize satisfy all of - restrictions that existed before merging isaki-audio2 branch. - better support for 6 channels hardware. - audio layer's requirement. This may help PR kern/54474. To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.18.2.1 src/sys/dev/hdaudio/hdafg.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/hdaudio/hdafg.c diff -u src/sys/dev/hdaudio/hdafg.c:1.18 src/sys/dev/hdaudio/hdafg.c:1.18.2.1 --- src/sys/dev/hdaudio/hdafg.c:1.18 Sat Jun 8 08:02:38 2019 +++ src/sys/dev/hdaudio/hdafg.c Sat Apr 25 10:40:45 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: hdafg.c,v 1.18 2019/06/08 08:02:38 isaki Exp $ */ +/* $NetBSD: hdafg.c,v 1.18.2.1 2020/04/25 10:40:45 martin Exp $ */ /* * Copyright (c) 2009 Precedence Technologies Ltd @@ -60,7 +60,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: hdafg.c,v 1.18 2019/06/08 08:02:38 isaki Exp $"); +__KERNEL_RCSID(0, "$NetBSD: hdafg.c,v 1.18.2.1 2020/04/25 10:40:45 martin Exp $"); #include #include @@ -3934,12 +3934,28 @@ hdafg_set_format(void *opaque, int setmo return 0; } +/* LCM for round_blocksize */ +static u_int gcd(u_int, u_int); +static u_int lcm(u_int, u_int); + +static u_int gcd(u_int a, u_int b) +{ + + return (b == 0) ? a : gcd(b, a % b); +} +static u_int lcm(u_int a, u_int b) +{ + + return a * b / gcd(a, b); +} + static int hdafg_round_blocksize(void *opaque, int blksize, int mode, const audio_params_t *param) { struct hdaudio_audiodev *ad = opaque; struct hdaudio_stream *st; + u_int minblksize; int bufsize; st = (mode == AUMODE_PLAY) ? ad->ad_playback : ad->ad_capture; @@ -3949,6 +3965,15 @@ hdafg_round_blocksize(void *opaque, int return 128; } + if (blksize > 8192) + blksize = 8192; + + /* Make sure there are enough BDL descriptors */ + bufsize = st->st_data.dma_size; + if (bufsize > HDAUDIO_BDL_MAX * blksize) { + blksize = bufsize / HDAUDIO_BDL_MAX; + } + /* * HD audio's buffer constraint looks like following: * - The buffer MUST start on a 128bytes boundary. @@ -3956,13 +3981,15 @@ hdafg_round_blocksize(void *opaque, int * - The buffer size is preferred multiple of 128bytes for efficiency. * * https://www.intel.co.jp/content/www/jp/ja/standards/high-definition-audio-specification.html , p70. + * + * Also, the audio layer requires that the blocksize must be a + * multiple of the number of channels. */ + minblksize = lcm(128, param->channels); + blksize = rounddown(blksize, minblksize); + if (blksize < minblksize) + blksize = minblksize; - /* Make sure there are enough BDL descriptors */ - bufsize = st->st_data.dma_size; - if (bufsize > HDAUDIO_BDL_MAX * blksize) { - blksize = bufsize / HDAUDIO_BDL_MAX; - } return blksize; }
CVS commit: [netbsd-9] src/sys/dev/hdaudio
Module Name:src Committed By: martin Date: Mon Jan 27 07:10:17 UTC 2020 Modified Files: src/sys/dev/hdaudio [netbsd-9]: hdaudiodevs.h hdaudiodevs_data.h Log Message: regen (for ticket #658) To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.2.26.1 src/sys/dev/hdaudio/hdaudiodevs.h \ src/sys/dev/hdaudio/hdaudiodevs_data.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/hdaudio/hdaudiodevs.h diff -u src/sys/dev/hdaudio/hdaudiodevs.h:1.2 src/sys/dev/hdaudio/hdaudiodevs.h:1.2.26.1 --- src/sys/dev/hdaudio/hdaudiodevs.h:1.2 Sat May 30 14:12:57 2015 +++ src/sys/dev/hdaudio/hdaudiodevs.h Mon Jan 27 07:10:17 2020 @@ -1,10 +1,10 @@ -/* $NetBSD: hdaudiodevs.h,v 1.2 2015/05/30 14:12:57 jmcneill Exp $ */ +/* $NetBSD: hdaudiodevs.h,v 1.2.26.1 2020/01/27 07:10:17 martin Exp $ */ /* - * THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT. + * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * NetBSD: hdaudiodevs,v 1.2 2015/05/30 14:12:42 jmcneill Exp + * NetBSD: hdaudiodevs,v 1.2.26.1 2020/01/27 07:09:31 martin Exp */ /* @@ -35,16 +35,21 @@ * SUCH DAMAGE. */ -/* The following is duplicated from pci except SIGMATEL* and CMEDIA */ -#define HDAUDIO_VENDOR_ATI 0x1002 /* ATI Technologies */ +/* + * Try to keep vendor and product names 15 characters or less. They are + * used by the AUDIO_GETDEV ioctl and copied into buffers that are + * constrained by MAX_AUDIO_DEV_LEN (sys/audioio.h). + */ + +#define HDAUDIO_VENDOR_ATI 0x1002 /* ATI */ #define HDAUDIO_VENDOR_NVIDIA 0x10de /* NVIDIA */ -#define HDAUDIO_VENDOR_REALTEK 0x10ec /* Realtek Semiconductor */ -#define HDAUDIO_VENDOR_VIATECH 0x1106 /* VIA TeCHnologies */ +#define HDAUDIO_VENDOR_REALTEK 0x10ec /* Realtek */ +#define HDAUDIO_VENDOR_VIATECH 0x1106 /* VIA */ #define HDAUDIO_VENDOR_SIGMATEL2 0x111d /* Sigmatel */ #define HDAUDIO_VENDOR_ANALOG 0x11d4 /* Analog Devices */ -#define HDAUDIO_VENDOR_CONEXANT 0x14f1 /* Conexant Systems */ +#define HDAUDIO_VENDOR_CONEXANT 0x14f1 /* Conexant */ #define HDAUDIO_VENDOR_VMWARE 0x15ad /* VMware */ -#define HDAUDIO_VENDOR_CMEDIA 0x434d /* C-Media Electronics */ +#define HDAUDIO_VENDOR_CMEDIA 0x434d /* C-Media */ #define HDAUDIO_VENDOR_INTEL 0x8086 /* Intel */ #define HDAUDIO_VENDOR_SIGMATEL 0x8384 /* Sigmatel */ Index: src/sys/dev/hdaudio/hdaudiodevs_data.h diff -u src/sys/dev/hdaudio/hdaudiodevs_data.h:1.2 src/sys/dev/hdaudio/hdaudiodevs_data.h:1.2.26.1 --- src/sys/dev/hdaudio/hdaudiodevs_data.h:1.2 Sat May 30 14:12:57 2015 +++ src/sys/dev/hdaudio/hdaudiodevs_data.h Mon Jan 27 07:10:17 2020 @@ -1,10 +1,10 @@ -/* $NetBSD: hdaudiodevs_data.h,v 1.2 2015/05/30 14:12:57 jmcneill Exp $ */ +/* $NetBSD: hdaudiodevs_data.h,v 1.2.26.1 2020/01/27 07:10:17 martin Exp $ */ /* - * THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT. + * THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. * * generated from: - * NetBSD: hdaudiodevs,v 1.2 2015/05/30 14:12:42 jmcneill Exp + * NetBSD: hdaudiodevs,v 1.2.26.1 2020/01/27 07:09:31 martin Exp */ /* @@ -36,551 +36,546 @@ */ static const uint16_t hdaudio_vendors[] = { - HDAUDIO_VENDOR_ATI, 1, 5, 0, - HDAUDIO_VENDOR_NVIDIA, 18, 0, - HDAUDIO_VENDOR_REALTEK, 25, 33, 0, - HDAUDIO_VENDOR_VIATECH, 47, 51, 0, - HDAUDIO_VENDOR_SIGMATEL2, 64, 0, - HDAUDIO_VENDOR_ANALOG, 73, 80, 0, - HDAUDIO_VENDOR_CONEXANT, 88, 97, 0, - HDAUDIO_VENDOR_VMWARE, 105, 0, - HDAUDIO_VENDOR_CMEDIA, 112, 120, 0, - HDAUDIO_VENDOR_INTEL, 132, 0, - HDAUDIO_VENDOR_SIGMATEL, 64, 0, + HDAUDIO_VENDOR_ATI, 1, 0, + HDAUDIO_VENDOR_NVIDIA, 5, 0, + HDAUDIO_VENDOR_REALTEK, 12, 0, + HDAUDIO_VENDOR_VIATECH, 20, 0, + HDAUDIO_VENDOR_SIGMATEL2, 24, 0, + HDAUDIO_VENDOR_ANALOG, 33, 40, 0, + HDAUDIO_VENDOR_CONEXANT, 48, 0, + HDAUDIO_VENDOR_VMWARE, 57, 0, + HDAUDIO_VENDOR_CMEDIA, 64, 0, + HDAUDIO_VENDOR_INTEL, 72, 0, + HDAUDIO_VENDOR_SIGMATEL, 24, 0, }; static const uint16_t hdaudio_products[] = { HDAUDIO_VENDOR_ATI, HDAUDIO_PRODUCT_ATI_RS600_HDMI_1, - 138, 144, 0, + 78, 84, 0, HDAUDIO_VENDOR_ATI, HDAUDIO_PRODUCT_ATI_RS600_HDMI_2, - 138, 144, 0, + 78, 84, 0, HDAUDIO_VENDOR_ATI, HDAUDIO_PRODUCT_ATI_RS690_780_HDMI, - 149, 144, 0, + 89, 84, 0, HDAUDIO_VENDOR_ATI, HDAUDIO_PRODUCT_ATI_R6xx_HDMI, - 159, 144, 0, + 99, 84, 0, HDAUDIO_VENDOR_NVIDIA, HDAUDIO_PRODUCT_NVIDIA_MCP77_78_HDMI_2, - 164, 144, 0, + 104, 84, 0, HDAUDIO_VENDOR_NVIDIA, HDAUDIO_PRODUCT_NVIDIA_MCP77_78_HDMI_3, - 164, 144, 0, + 104, 84, 0, HDAUDIO_VENDOR_NVIDIA, HDAUDIO_PRODUCT_NVIDIA_MCP77_78_HDMI_5, - 164, 144, 0, + 104, 84, 0, HDAUDIO_VENDOR_NVIDIA, HDAUDIO_PRODUCT_NVIDIA_MCP77_78_HDMI_6, - 164, 144, 0, + 104, 84, 0, HDAUDIO_VENDOR_NVIDIA, HDAUDIO_PRODUCT_NVIDIA_MCP79_7A_HDMI_7,
CVS commit: [netbsd-9] src/sys/dev/hdaudio
Module Name:src Committed By: martin Date: Mon Jan 27 07:09:31 UTC 2020 Modified Files: src/sys/dev/hdaudio [netbsd-9]: hdaudiodevs Log Message: Pull up following revision(s) (requested by jmcneill in ticket #658): sys/dev/hdaudio/hdaudiodevs: revision 1.3 Make sure that all vendor strings are shorter than 16 (MAX_AUDIO_DEV_LEN) characters as the values are used in the AUDIO_GETDEV ioctl. regen To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.2.26.1 src/sys/dev/hdaudio/hdaudiodevs Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/hdaudio/hdaudiodevs diff -u src/sys/dev/hdaudio/hdaudiodevs:1.2 src/sys/dev/hdaudio/hdaudiodevs:1.2.26.1 --- src/sys/dev/hdaudio/hdaudiodevs:1.2 Sat May 30 14:12:42 2015 +++ src/sys/dev/hdaudio/hdaudiodevs Mon Jan 27 07:09:31 2020 @@ -1,4 +1,4 @@ -$NetBSD: hdaudiodevs,v 1.2 2015/05/30 14:12:42 jmcneill Exp $ +$NetBSD: hdaudiodevs,v 1.2.26.1 2020/01/27 07:09:31 martin Exp $ /* * Copyright (c) 2010 Jared D. McNeill @@ -28,16 +28,21 @@ $NetBSD: hdaudiodevs,v 1.2 2015/05/30 14 * SUCH DAMAGE. */ -/* The following is duplicated from pci except SIGMATEL* and CMEDIA */ -vendor ATI 0x1002 ATI Technologies +/* + * Try to keep vendor and product names 15 characters or less. They are + * used by the AUDIO_GETDEV ioctl and copied into buffers that are + * constrained by MAX_AUDIO_DEV_LEN (sys/audioio.h). + */ + +vendor ATI 0x1002 ATI vendor NVIDIA 0x10de NVIDIA -vendor REALTEK 0x10ec Realtek Semiconductor -vendor VIATECH 0x1106 VIA TeCHnologies +vendor REALTEK 0x10ec Realtek +vendor VIATECH 0x1106 VIA vendor SIGMATEL2 0x111d Sigmatel vendor ANALOG 0x11d4 Analog Devices -vendor CONEXANT 0x14f1 Conexant Systems +vendor CONEXANT 0x14f1 Conexant vendor VMWARE 0x15ad VMware -vendor CMEDIA 0x434d C-Media Electronics +vendor CMEDIA 0x434d C-Media vendor INTEL 0x8086 Intel vendor SIGMATEL 0x8384 Sigmatel