Jonathan,

Just to be sure I re-installed OpenBSD but using a downloaded snapshot install iso for 5.8 dated 20150909. The audio behaviour below is unchanged so I obviously was running azalia_codec.c V1.170 but had the wrong source code.
So, I have a real bug.
How do I find out what the subid for my old iMac 6,1 is, and where is the documentation for the various quirks used in azalia_codec.c? It is many a long year since I rummaged so deep into drivers and things, but as long as I can find the documentation I am up for having a go. A quick search on the internet has turned up the 225 page Intel High Definition Audio Spec v1.0a June 17 2010, so that looks like being my bed time reading!
All hints and tips welcome.

DaveT

On 09/09/15 04:33, Jonathan Gray wrote:
The patch was against -current.  As it seems you've updated your system
to -current now, when running cvs up you can use "cvs up -PAd" to remove
any tags.  If /usr/src/CVS/Tag exists your src tree is tracking a stable
branch.

On Tue, Sep 08, 2015 at 10:03:35PM +0100, Dave Turner wrote:
Jonathan,

Thanks for the info.
I have spent all evening reading the OpenBSD faq and trying find out where I
get the updated version of azalia_codec.c from...
I don't think it is in the 5.7 Patch series, so I set to and did the Upgrade
to OpenBSD 5.8 which seemed OK until I tried to login.
Much reading and faffing to find I had to use CTRL-ALT-F1 to get a terminal
to login and do the sysmerge.

uname -a and dmesg both show the iMac is now running OpenBSD 5.8.
and the audio still doesn't work but in an interestingly different way!
Even as root I can't change the play.rate to 44100, it stays at 48000.

audioctl play.{seek,samples,errors} now returns
audioctl: field play.seek does not exist
audioctl: field play.samples does not exist
play.errors=0

I might have a bit more cvs updating to do? The version of azalia_codec.c in
/usr/src/dev/pci seems to be still at 1.165 dated 2014/12/10.
But it is late now and I have had enough for today.

On 08/09/15 03:26, Jonathan Gray wrote:
On Tue, Sep 08, 2015 at 12:58:18AM +0100, Dave Turner wrote:
I have tried the various tests on the audio system from the faqs, and an
email search didn't find much on apple hardware and sound but it was
discouraging... The changes from 5.7 to the imminent 5.8 do mention changes
to the azalia driver but the description didn't appear to relate to my
problem, although 5.6 to 5.7 did mention the mac mini and 'quirks'.
My iMac is a version 6,1 from late 2006.
It uses the Intel 82801GB HD Audio chip and the Realtek ALC885 codec.
It uses the azalia audio driver.
I played with mixerctl and audioctl, used 'cdio cdplay' etc, nothing would
make a sound!
The base setttings for audioctl had the play.rate at 48000 so I changed that
to 44100 to test using cdio cdplay.
I changed various settings in mixerctl to increase audio from 0 to 255, no
sound.
It seems almost all the apple audio devices need various quirks,
try this:

Index: azalia_codec.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/azalia_codec.c,v
retrieving revision 1.170
diff -u -p -r1.170 azalia_codec.c
--- azalia_codec.c      24 Aug 2015 04:50:40 -0000      1.170
+++ azalia_codec.c      8 Sep 2015 02:23:49 -0000
@@ -198,6 +198,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("\n%s subid=%x\n", XNAME(this), this->subid);
                if (this->subid == 0x00a1106b ||     /* APPLE_MB3 */
                    this->subid == 0xcb7910de ||     /* APPLE_MACMINI3_1 
(line-in + hp) */
                    this->subid == 0x00a0106b ||     /* APPLE_MB3_1 */
@@ -208,6 +209,10 @@ azalia_codec_init_vtbl(codec_t *this)
                    this->subid == 0xcb7910de ||     /* APPLE_MACMINI3_1 
(internal spkr) */
                    this->subid == 0x00a0106b)
                        this->qrks |= AZ_QRK_WID_OVREF50;
+               if (this->subid == 0x1000106b ||
+                   this->subid == 0x3e00106b) {
+                       this->qrks |= AZ_QRK_GPIO_UNMUTE_0 | 
AZ_QRK_GPIO_UNMUTE_1;
+               }
                break;
        case 0x10ec0888:
                this->name = "Realtek ALC888";

Reply via email to