On Fri, Aug 17, 2018 at 11:10:52AM +1000, [email protected] wrote:
> >Synopsis: Unable to hear any audio/sound when playing
> >Category: audio
> >Environment:
> System : OpenBSD 6.3
> Details : OpenBSD 6.3 (GENERIC.MP) #8: Sat Aug 4 16:56:56 CEST 2018
>
> [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
>
> Architecture: OpenBSD.amd64
> Machine : amd64
> >Description:
> Unable to hear any audio. When checking with audioctl, play.errors are
> incrementing.
> >How-To-Repeat:
> Install OpenBSD on this hardware and attempt to play audio.
> I've also tested this on FreeBSD and was unable to hear audio here
> either.
> When I tested in OS-X and Fedora (Linux) audio (play mp3 or ogg
> files) plays without an issue
Apple machines always seem to require various quirks for audio.
Try this.
Index: azalia_codec.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/azalia_codec.c,v
retrieving revision 1.172
diff -u -p -r1.172 azalia_codec.c
--- azalia_codec.c 28 Mar 2017 04:54:44 -0000 1.172
+++ azalia_codec.c 17 Aug 2018 06:22:52 -0000
@@ -199,6 +199,7 @@ azalia_codec_init_vtbl(codec_t *this)
case 0x10ec0885:
this->name = "Realtek ALC885";
this->qrks |= AZ_QRK_WID_CDIN_1C | AZ_QRK_WID_BEEP_1D;
+ printf("\nsubid %x\n", this->subid);
if (this->subid == 0x00a1106b || /* APPLE_MB3 */
this->subid == 0xcb7910de || /* APPLE_MACMINI3_1
(line-in + hp) */
this->subid == 0x00a0106b || /* APPLE_MB3_1 */
@@ -207,8 +208,15 @@ azalia_codec_init_vtbl(codec_t *this)
}
if (this->subid == 0x00a1106b ||
this->subid == 0xcb7910de || /* APPLE_MACMINI3_1
(internal spkr) */
- this->subid == 0x00a0106b)
+ this->subid == 0x00a0106b ||
+ this->subid == 0x4200106b)
this->qrks |= AZ_QRK_WID_OVREF50;
+ if (this->subid == 0x0c00106b || /* Mac Pro */
+ this->subid == 0x1000106b || /* iMac 24 */
+ this->subid == 0x2800106b || /* AppleTV */
+ this->subid == 0x3e00106b || /* iMac 24 Aluminum */
+ this->subid == 0x4200106b) /* Mac Pro 4,1/5,1 */
+ this->qrks |= AZ_QRK_GPIO_UNMUTE_3;
break;
case 0x10ec0888:
this->name = "Realtek ALC888";