From owner-freebsd-multimedia@freebsd.org Mon Apr 10 21:07:38 2017 Return-Path: Delivered-To: freebsd-multimedia@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 94BE2D37AB1 for ; Mon, 10 Apr 2017 21:07:38 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6A569F38 for ; Mon, 10 Apr 2017 21:07:38 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id v3AL7clY040336 for ; Mon, 10 Apr 2017 21:07:38 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-multimedia@FreeBSD.org Subject: [Bug 218132] [snd_hda] audio channels are garbled or crossed over Date: Mon, 10 Apr 2017 21:07:38 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: CURRENT X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Some People X-Bugzilla-Who: sbruno@FreeBSD.org X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-multimedia@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-multimedia@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Multimedia discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Apr 2017 21:07:38 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D218132 --- Comment #3 from Sean Bruno --- It appears that we may need to support seperate capture/playback streams, perhaps. Linux seems to use a different tag assignment process based on the flag=20 hda_controller.h:#define AZX_DCAPS_SEPARATE_STREAM_TAG (1 << 30) /* capture and playback use separate stream tag */ This seems to use two different identifiers in a 2 element array instead of= a single integer. hda_controller.c::azx_init_streams(): /* initialize SD streams */ int azx_init_streams(struct azx *chip) { int i; int stream_tags[2] =3D { 0, 0 }; /* initialize each stream (aka device) * assign the starting bdl address to each stream (device) * and initialize */ for (i =3D 0; i < chip->num_streams; i++) { struct azx_dev *azx_dev =3D kzalloc(sizeof(*azx_dev), GFP_KERNEL);=20 int dir, tag; if (!azx_dev) return -ENOMEM; dir =3D stream_direction(chip, i); /* stream tag must be unique throughout * the stream direction group, * valid values 1...15 * use separate stream tag if the flag * AZX_DCAPS_SEPARATE_STREAM_TAG is used */ if (chip->driver_caps & AZX_DCAPS_SEPARATE_STREAM_TAG) tag =3D ++stream_tags[dir]; else tag =3D i + 1; snd_hdac_stream_init(azx_bus(chip), azx_stream(azx_dev), i, dir, tag); } return 0; } --=20 You are receiving this mail because: You are the assignee for the bug.=