Jump to content

SOLVED: CX20549 (Conexant Venice) headphone output (also for other AppleAzaliaAudio.kext cards without headphones)


Memorial
 Share

38 posts in this topic

Recommended Posts

SOLVED (at the bottom of the original post)

 

// Original

 

While searching for a solution to turn on headphones for the CX20549 (Conexant Venice), I stumbled upon a solution for the ALC269 on the Ipis Forum (OS X on EeePCs):

 

http://ipis-osx.wikidot.com/forum/t-100527...ternal-speakers

 

The solution used there was to send verbs (or commands) to the driver through the developer utility called reggie_se. They turn on the headphone controls, turn on the headphone amplifier, and turn off the internal speakers to get audio.

 

For a beginning demonstration, people with CX20549 can try this:

 

sudo reggie_se -D PhysAddr -w 0x0103b080 -a 0xf4500060 -B 32
sudo reggie_se -D PhysAddr -w 1 -a 0xf4500068 -B 32

 

This should turn off your speakers. (adjusting the volume or a reboot will bring everything back)

 

The way this works is you send a verb to the 0x60 offset (called the Immediate Command Output Interface) in the device memory address (which can be found in the IORegExplorer or through ioreg). Then you activate that command by sending 1 to the 0x68 offset (Immediate Command Status). A verb is a 32-bit sting that has the following structure:

 

Bits 31:28 are the Codec Address (0000 in our case, I think), bits [27:20] is the NID (in your codec dump), and then bits [19:0] is the verb command. Those last 20 bits are what are important, they are the command. For example the verb command 70500 sets the power state to D0 (to control power states you use the 0x705, followed by the state data and preceded by the Codec Address and NID). For example, if I want to set the headphones in CX20549 to the D0 state we do the following:

 

sudo reggie_se -D PhysAddr -w 0x01170500 -a 0xf4500060 -B 32
sudo reggie_se -D PhysAddr -w 1 -a 0xf4500068 -B 32

 

If you do that for the first time (after a reboot lets say) you should hear a pop in your headphones (perhaps indicating that they were not powered on before as calling this command again does nothing). Note the Codec Address (CAd) is 0x0, NID is 0x11, verb ID 0x705 and D0 state 0x00. There are more verb commands and you can read about them in the High Definition Audio Specifications on Intel's site (Google it). The ones I think we need to concern ourselves with are:

 

Power State: 0x705

EAPD/BTL: 0x70c

Volume Knob Control: 0x70f

Pin Widget Control: 0x707

Amplifier Gain/Mute: 0x3 (followed by 16 bits instead of 8)

 

Now, I have been unable to switch over to the headphone output just yet. CX20549 seems significantly different to ALC269. For example the ALC269 has an EAPD pin on the headphone widget, but the CX20549 does not. I am also at at a loss of being able to turn on the internal speakers through reggie_se after turning them off. In fact, both the 0x3b000 (should turn on speakers) and 0x3b080 (should mute speakers) commands turn internal speakers off (for some odd reason I have not found out yet). I have not tried using Get commands yet, because I hoped everything was in the Linux codec dump, but it may not be. My biggest success is with the pop on the headphone Power State setting.

 

Any ideas or help with this would be appreciated. Also, if anyone with a EeePC with ALC269 could upload a Linux Codec dump, that would be great. The dump I found seems to be a bit odd and is poorly formatted

 

//

 

Solution:

 

This is a temporary solution to get headphones to output on the CX20549 (The commands below work for SubSysID 0x103C30CD and might be different for other SubSystem ID's If you have your codec dump, try getting the right NID's for your specific version and the correct memory address). Make sure AppleAzaliaAudio.kext is installed and you get output through your speakers. Also, you must install CHUD tools (or the entire Development Tools package). Run these commands in terminal:

 

sudo reggie_se -D PhysAddr -w 0x01170500 -a 0xf4500060 -B 32
sudo reggie_se -D PhysAddr -w 1 -a 0xf4500068 -B 32
sudo reggie_se -D PhysAddr -w 0x011707c0 -a 0xf4500060 -B 32
sudo reggie_se -D PhysAddr -w 1 -a 0xf4500068 -B 32
sudo reggie_se -D PhysAddr -w 0x0113b020 -a 0xf4500060 -B 32
sudo reggie_se -D PhysAddr -w 1 -a 0xf4500068 -B 32

 

If you want the commands to turn off the speakers as well, add this:

 

sudo reggie_se -D PhysAddr -w 0x0103b080 -a 0xf4500060 -B 32
sudo reggie_se -D PhysAddr -w 1 -a 0xf4500068 -B 32

 

(Note: I have reason to believe that if you get errors about not being able to write to that address, it could be the result of using a non-vanilla kernel that blocks this type of memory editing)

 

Also, note that you cannot use the standard volume controls to make the headphones louder. If you use the standard volume controls (if you make anything louder in them) you will turn on the internal speakers again if you turned them off (tell me if this doesn't work). To change volumes in headphones you have to use this command:

 

sudo reggie_se -D PhysAddr -w 0x0113b0xx -a 0xf4500060 -B 32

 

where xx is between 00 and 80 (80 is mute, but anything right below 80 is very loud). 00 is very very quiet (this was actually my original problem, I just couldn't hear that I turned the headphones on, or the speakers back on).

 

If you have problems turning you speakers back on, run this:

 

sudo reggie_se -D PhysAddr -w 0x0103b0xx -a 0xf4500060 -B 32

 

where xx is between 00 and 80 (80 is mute anything right below 80 is very loud , 00 is very quiet).

 

Note, that all this resets after reboot and sleep.

 

There is a problem however; I think pushing the Amplifiers like we are doing with these commands produces {censored} quality, so there has to be another way to control volume without hurting the quality. Anyway, please test and tell me if I need to clarify anything, or if this even makes sense.

Link to comment
Share on other sites

  • 3 weeks later...
SOLVED (at the bottom of the original post)

 

// Original

 

While searching for a solution to turn on headphones for the CX20549 (Conexant Venice), I stumbled upon a solution for the ALC269 on the Ipis Forum (OS X on EeePCs):

 

http://ipis-osx.wikidot.com/forum/t-100527...ternal-speakers

 

The solution used there was to send verbs (or commands) to the driver through the developer utility called reggie_se. They turn on the headphone controls, turn on the headphone amplifier, and turn off the internal speakers to get audio.

 

For a beginning demonstration, people with CX20549 can try this:

 

sudo reggie_se -D PhysAddr -w 0x0103b080 -a 0xf4500060 -B 32
sudo reggie_se -D PhysAddr -w 1 -a 0xf4500068 -B 32

 

This should turn off your speakers. (adjusting the volume or a reboot will bring everything back)

 

The way this works is you send a verb to the 0x60 offset (called the Immediate Command Output Interface) in the device memory address (which can be found in the IORegExplorer or through ioreg). Then you activate that command by sending 1 to the 0x68 offset (Immediate Command Status). A verb is a 32-bit sting that has the following structure:

 

Bits 31:28 are the Codec Address (0000 in our case, I think), bits [27:20] is the NID (in your codec dump), and then bits [19:0] is the verb command. Those last 20 bits are what are important, they are the command. For example the verb command 70500 sets the power state to D0 (to control power states you use the 0x705, followed by the state data and preceded by the Codec Address and NID). For example, if I want to set the headphones in CX20549 to the D0 state we do the following:

 

sudo reggie_se -D PhysAddr -w 0x01170500 -a 0xf4500060 -B 32
sudo reggie_se -D PhysAddr -w 1 -a 0xf4500068 -B 32

 

If you do that for the first time (after a reboot lets say) you should hear a pop in your headphones (perhaps indicating that they were not powered on before as calling this command again does nothing). Note the Codec Address (CAd) is 0x0, NID is 0x11, verb ID 0x705 and D0 state 0x00. There are more verb commands and you can read about them in the High Definition Audio Specifications on Intel's site (Google it). The ones I think we need to concern ourselves with are:

 

Power State: 0x705

EAPD/BTL: 0x70c

Volume Knob Control: 0x70f

Pin Widget Control: 0x707

Amplifier Gain/Mute: 0x3 (followed by 16 bits instead of 8)

 

Now, I have been unable to switch over to the headphone output just yet. CX20549 seems significantly different to ALC269. For example the ALC269 has an EAPD pin on the headphone widget, but the CX20549 does not. I am also at at a loss of being able to turn on the internal speakers through reggie_se after turning them off. In fact, both the 0x3b000 (should turn on speakers) and 0x3b080 (should mute speakers) commands turn internal speakers off (for some odd reason I have not found out yet). I have not tried using Get commands yet, because I hoped everything was in the Linux codec dump, but it may not be. My biggest success is with the pop on the headphone Power State setting.

 

Any ideas or help with this would be appreciated. Also, if anyone with a EeePC with ALC269 could upload a Linux Codec dump, that would be great. The dump I found seems to be a bit odd and is poorly formatted

 

//

 

Solution:

 

This is a temporary solution to get headphones to output on the CX20549. Make sure AppleAzaliaAudio.kext is installed and you get output through your speakers. Also, you must install CHUD tools (or the entire Development Tools package). Run these commands in terminal:

 

sudo reggie_se -D PhysAddr -w 0x01170500 -a 0xf4500060 -B 32
sudo reggie_se -D PhysAddr -w 1 -a 0xf4500068 -B 32
sudo reggie_se -D PhysAddr -w 0x011707c0 -a 0xf4500060 -B 32
sudo reggie_se -D PhysAddr -w 1 -a 0xf4500068 -B 32
sudo reggie_se -D PhysAddr -w 0x0113b020 -a 0xf4500060 -B 32
sudo reggie_se -D PhysAddr -w 1 -a 0xf4500068 -B 32

 

If you want the commands to turn off the speakers as well, add this:

 

sudo reggie_se -D PhysAddr -w 0x0103b080 -a 0xf4500060 -B 32
sudo reggie_se -D PhysAddr -w 1 -a 0xf4500068 -B 32

 

(Note: I have reason to believe that if you get errors about not being able to write to that address, it could be the result of using a non-vanilla kernel that blocks this type of memory editing)

 

Also, note that you cannot use the standard volume controls to make the headphones louder. If you use the standard volume controls (if you make anything louder in them) you will turn on the internal speakers again if you turned them off (tell me if this doesn't work). To change volumes in headphones you have to use this command:

 

sudo reggie_se -D PhysAddr -w 0x0113b0xx -a 0xf4500060 -B 32

 

where xx is between 00 and 80 (80 is mute, but anything right below 80 is very loud). 00 is very very quiet (this was actually my original problem, I just couldn't hear that I turned the headphones on, or the speakers back on).

 

If you have problems turning you speakers back on, run this:

 

sudo reggie_se -D PhysAddr -w 0x0103b0xx -a 0xf4500060 -B 32

 

where xx is between 00 and 80 (80 is mute anything right below 80 is very loud , 00 is very quiet).

 

Note, that all this resets after reboot and sleep.

 

There is a problem however; I think pushing the Amplifiers like we are doing with these commands produces {censored} quality, so there has to be another way to control volume without hurting the quality. Anyway, please test and tell me if I need to clarify anything, or if this even makes sense.

 

wat a wast of time . go see the applehda patcher sticky and try to make an applehda that can recongniz the soud card properly.

Link to comment
Share on other sites

  • 2 weeks later...

hell yes dont worry theres always someone to tell you this kind of things , i dont know why they even make the effort of typing that jaja thats the biggest waste of time that they make. anyway

 

 

i have this card the 14f1 5445 and i have sound for my built in speakers but not earphones, i have been reading the forums and i have seen that the apple hda is maybe a solution and yours definetly it is, first of all i tryied aaliza and this killed my built in audio that i was working before i try something else i'd like to know what is better!!!

 

!!! if i try your method can i end up wihtout sound or something???

 

 

thanks!

 

 

 

ah! im not using vanilla kernel

Link to comment
Share on other sites

If I have time in the next few weeks I might patch the AppleHDA.kext. But we all really should just wait for VoodooHDA, patching kexts is just messy. There is an option to use DSDT patch without touching much of AppleHDA it seems (inject the codec layout and all), but I am not into the DSDT patch yet, until I can see some chameleon source for it.

Link to comment
Share on other sites

  • 4 weeks later...
  • 3 weeks later...
hell yes dont worry theres always someone to tell you this kind of things , i dont know why they even make the effort of typing that jaja thats the biggest waste of time that they make. anyway

 

 

i have this card the 14f1 5445 and i have sound for my built in speakers but not earphones, i have been reading the forums and i have seen that the apple hda is maybe a solution and yours definetly it is, first of all i tryied aaliza and this killed my built in audio that i was working before i try something else i'd like to know what is better!!!

 

!!! if i try your method can i end up wihtout sound or something???

 

 

thanks!

 

 

 

ah! im not using vanilla kernel

AppleHDA.kext.rar

Link to comment
Share on other sites

  • 2 weeks later...

Hey Memorial, I tried both reggie_se turn off speakers and turn on the headphone jack commands; I got no response from either and I didnot have any write errors either. I have apple azaliaaudio.kext installed... do I need to uninstall any kexts?

Any insight? (did I miss something?)

 

TC

 

Here's what Everest found:

 

 

 

HD Audio

 

 

 

 

[ Intel 82801GBM ICH7-M - High Definition Audio Controller [b-0] ]

 

 

 

Device Properties:

 

Device Description

 

Intel 82801GBM ICH7-M - High Definition Audio Controller [b-0]

 

Device Description (Windows)

 

High Definition Audio Controller

 

Bus Type

 

PCI

 

Device ID

 

8086-27D8

 

Subsystem ID

 

103C-30BB

 

Revision

 

02

 

Hardware ID

 

PCI\VEN_8086&DEV_27D8&SUBSYS_30BB103C&REV_02

 

 

 

[ Conexant Cx20549 ]

 

 

 

Device Properties:

 

Device Description

 

Conexant Cx20549

 

Device Description (Windows)

 

Conexant High Definition Audio

 

Device Type

 

Audio

 

Bus Type

 

HDAUDIO

 

Device ID

 

14F1-5045

 

Subsystem ID

 

103C-30BB

 

Revision

 

1001

 

Hardware ID

 

HDAUDIO\FUNC_01&VEN_14F1&DEV_5045&SUBSYS_103C30BB&REV_1001

 

 

 

[ Conexant Cx20549 ]

 

 

 

Device Properties:

 

Device Description

 

Conexant Cx20549

 

Device Description (Windows)

 

In-Build COnexant HDA Type 2 modem

 

Device Type

 

Modem

 

Bus Type

 

HDAUDIO

 

Device ID

 

14F1-5045

 

Subsystem ID

 

103C-30BB

 

Revision

 

1001

 

Hardware ID

 

HDAUDIO\FUNC_02&VEN_14F1&DEV_5045&SUBSYS_103C30BB&REV_1001

 

B00 D1B F00:

 

Intel 82801GBM ICH7-M - High Definition Audio Controller [b-0]

 

 

 

Offset 000:

 

86 80 D8 27 06 00 10 00 02 00 03 04 10 00 00 00

 

Offset 010:

 

04 00 30 DE 00 00 00 00 00 00 00 00 00 00 00 00

 

Offset 020:

 

00 00 00 00 00 00 00 00 00 00 00 00 3C 10 BB 30

 

Offset 030:

 

00 00 00 00 50 00 00 00 00 00 00 00 16 01 00 00

 

Offset 040:

 

03 00 00 03 07 00 00 00 00 00 00 00 00 00 00 00

 

Offset 050:

 

01 60 42 C8 00 00 00 00 00 00 00 00 00 00 00 00

 

Offset 060:

 

05 70 80 00 00 00 00 00 00 00 00 00 00 00 00 00

 

Offset 070:

 

10 00 91 00 00 00 00 00 00 00 10 00 00 00 00 00

 

Offset 080:

 

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

 

Offset 090:

 

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

 

Offset 0A0:

 

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

 

Offset 0B0:

 

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

 

Offset 0C0:

 

00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00

 

Offset 0D0:

 

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

 

Offset 0E0:

 

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

 

Offset 0F0:

 

00 00 00 00 00 00 00 00 86 0F 02 00 00 00 00 00

Link to comment
Share on other sites

Can you guys get Linux codec dumps for me? Does turning off sound work for you (through reggie_se)? I think it is due to variations in different versions. My exact commands are specific to SubSys ID 0x103C30CD I think. If we can get your codec dump and the proper memory address, this should work.

 

I guess I should change the title, but I have been using this for months now and it works great for me...

Link to comment
Share on other sites

This is mine codec dump could u post the especified commands?

My english isnt very good

 

Thanks

 

<code>

Codec: Conexant CX20549 (Venice)

Address: 0

Vendor Id: 0x14f15045

Subsystem Id: 0x103c30d9

Revision Id: 0x100100

Modem Function Group: 0x2

Default PCM:

rates [0x140]: 48000 96000

bits [0xe]: 16 20 24

formats [0x1]: PCM

Default Amp-In caps: N/A

Default Amp-Out caps: N/A

GPIO: io=0, o=0, i=0, unsolicited=0, wake=0

Node 0x10 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out

Amp-Out caps: ofs=0x2b, nsteps=0x2b, stepsize=0x05, mute=1

Amp-Out vals: [0x9f 0x9f]

Pincap 0x00010014: OUT EAPD Detect

EAPD 0x2: EAPD

Pin Default 0x95170110: [Fixed] Speaker at Int Top

Conn = Analog, Color = Unknown

DefAssociation = 0x1, Sequence = 0x0

Misc = NO_PRESENCE

Pin-ctls: 0x40: OUT

Unsolicited: tag=00, enabled=0

Power: setting=D0, actual=D0

Connection: 2

0x19 0x17*

Node 0x11 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out

Amp-Out caps: ofs=0x2b, nsteps=0x2b, stepsize=0x05, mute=1

Amp-Out vals: [0x1f 0x1f]

Pincap 0x0000113c: IN OUT HP Detect

Vref caps: HIZ 80

Pin Default 0x0221101f: [Jack] HP Out at Ext Front

Conn = 1/8, Color = Black

DefAssociation = 0x1, Sequence = 0xf

Pin-ctls: 0xc0: OUT HP VREF_HIZ

Unsolicited: tag=37, enabled=1

Power: setting=D0, actual=D0

Connection: 2

0x19 0x17*

Node 0x12 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out

Amp-Out caps: ofs=0x2b, nsteps=0x2b, stepsize=0x05, mute=1

Amp-Out vals: [0xab 0xab]

Pincap 0x0000113c: IN OUT HP Detect

Vref caps: HIZ 80

Pin Default 0x02a11020: [Jack] Mic at Ext Front

Conn = 1/8, Color = Black

DefAssociation = 0x2, Sequence = 0x0

Pin-ctls: 0x24: IN VREF_80

Unsolicited: tag=00, enabled=0

Power: setting=D0, actual=D0

Connection: 2

0x19* 0x17

Node 0x13 [Pin Complex] wcaps 0x400301: Stereo Digital

Pincap 0x00000010: OUT

Pin Default 0x400001f0: [N/A] Line Out at Ext N/A

Conn = Unknown, Color = Unknown

DefAssociation = 0xf, Sequence = 0x0

Misc = NO_PRESENCE

Pin-ctls: 0x40: OUT

Connection: 1

0x18

Node 0x14 [Pin Complex] wcaps 0x400081: Stereo

Pincap 0x00001124: IN Detect

Vref caps: HIZ 80

Pin Default 0x97a7012e: [Fixed] Mic at Int Riser

Conn = Analog, Color = Unknown

DefAssociation = 0x2, Sequence = 0xe

Misc = NO_PRESENCE

Pin-ctls: 0x24: IN VREF_80

Unsolicited: tag=00, enabled=0

Node 0x15 [Pin Complex] wcaps 0x400001: Stereo

Pincap 0x00000020: IN

Pin Default 0x400001f0: [N/A] Line Out at Ext N/A

Conn = Unknown, Color = Unknown

DefAssociation = 0xf, Sequence = 0x0

Misc = NO_PRESENCE

Pin-ctls: 0x00:

Node 0x16 [beep Generator Widget] wcaps 0x70000c: Mono Amp-Out

Amp-Out caps: ofs=0x07, nsteps=0x07, stepsize=0x0b, mute=1

Amp-Out vals: [0x06]

Node 0x17 [Audio Mixer] wcaps 0x20050b: Stereo Amp-In

Amp-In caps: ofs=0x14, nsteps=0x2b, stepsize=0x05, mute=1

Amp-In vals: [0x0e 0x0e] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80]

Power: setting=D0, actual=D0

Connection: 5

0x19 0x14 0x12 0x11 0x15

Node 0x18 [Audio Output] wcaps 0x211: Stereo Digital

Converter: stream=0, channel=0

Digital:

Digital category: 0x0

PCM:

rates [0x40]: 48000

bits [0x6]: 16 20

formats [0x5]: PCM AC3

Node 0x19 [Audio Output] wcaps 0xc11: Stereo R/L

Converter: stream=0, channel=0

PCM:

rates [0x540]: 48000 96000 192000

bits [0xe]: 16 20 24

formats [0x1]: PCM

Power: setting=D0, actual=D0

Node 0x1a [Audio Input] wcaps 0x100d0b: Stereo Amp-In R/L

Amp-In caps: ofs=0x00, nsteps=0x17, stepsize=0x05, mute=1

Amp-In vals: [0x17 0x17] [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00]

Converter: stream=0, channel=0

SDI-Select: 0

Power: setting=D0, actual=D0

Connection: 5

0x17 0x14* 0x12 0x11 0x15

Node 0x1b [Vendor Defined Widget] wcaps 0xf00000: Mono

</code>

Link to comment
Share on other sites

I could not turn off the speakers either...

(I have an HP dv9000)

 

Here's mine:

 

 

Codec: Conexant CX20549 (Venice)

Address: 0

Vendor Id: 0x14f15045

Subsystem Id: 0x103c30bb

Revision Id: 0x100100

Modem Function Group: 0x2

Default PCM:

rates [0x140]: 48000 96000

bits [0xe]: 16 20 24

formats [0x1]: PCM

Default Amp-In caps: N/A

Default Amp-Out caps: N/A

GPIO: io=0, o=0, i=0, unsolicited=0, wake=0

Node 0x10 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out

Amp-Out caps: ofs=0x2b, nsteps=0x2b, stepsize=0x05, mute=1

Amp-Out vals: [0xa3 0xa3]

Pincap 0x0810014: OUT EAPD Detect

EAPD 0x2: EAPD

Pin Default 0x95170110: [Fixed] Speaker at Int Top

Conn = Analog, Color = Unknown

DefAssociation = 0x1, Sequence = 0x0

Misc = NO_PRESENCE

Pin-ctls: 0x40: OUT

Unsolicited: tag=00, enabled=0

Power: setting=D0, actual=D0

Connection: 2

0x19 0x17*

Node 0x11 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out

Amp-Out caps: ofs=0x2b, nsteps=0x2b, stepsize=0x05, mute=1

Amp-Out vals: [0x23 0x23]

Pincap 0x08113c: IN OUT HP Detect

Vref caps: HIZ 80

Pin Default 0x0221101f: [Jack] HP Out at Ext Front

Conn = 1/8, Color = Black

DefAssociation = 0x1, Sequence = 0xf

Pin-ctls: 0xc0: OUT HP VREF_HIZ

Unsolicited: tag=37, enabled=1

Power: setting=D0, actual=D0

Connection: 2

0x19 0x17*

Node 0x12 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out

Amp-Out caps: ofs=0x2b, nsteps=0x2b, stepsize=0x05, mute=1

Amp-Out vals: [0xab 0xab]

Pincap 0x08113c: IN OUT HP Detect

Vref caps: HIZ 80

Pin Default 0x40a190f0: [N/A] Mic at Ext N/A

Conn = 1/8, Color = Pink

DefAssociation = 0xf, Sequence = 0x0

Pin-ctls: 0x24: IN VREF_80

Unsolicited: tag=00, enabled=0

Power: setting=D0, actual=D0

Connection: 2

0x19* 0x17

Node 0x13 [Pin Complex] wcaps 0x400301: Stereo Digital

Pincap 0x0810: OUT

Pin Default 0x22451130: [Jack] SPDIF Out at Sep Front

Conn = Optical, Color = Black

DefAssociation = 0x3, Sequence = 0x0

Misc = NO_PRESENCE

Pin-ctls: 0x40: OUT

Connection: 1

0x18

Node 0x14 [Pin Complex] wcaps 0x400081: Stereo

Pincap 0x081124: IN Detect

Vref caps: HIZ 80

Pin Default 0x02a79120: [Jack] Mic at Ext Front

Conn = Analog, Color = Pink

DefAssociation = 0x2, Sequence = 0x0

Misc = NO_PRESENCE

Pin-ctls: 0x24: IN VREF_80

Unsolicited: tag=00, enabled=0

Node 0x15 [Pin Complex] wcaps 0x400001: Stereo

Pincap 0x0820: IN

Pin Default 0x400001f0: [N/A] Line Out at Ext N/A

Conn = Unknown, Color = Unknown

DefAssociation = 0xf, Sequence = 0x0

Misc = NO_PRESENCE

Pin-ctls: 0x00:

Node 0x16 [beep Generator Widget] wcaps 0x70000c: Mono Amp-Out

Amp-Out caps: ofs=0x07, nsteps=0x07, stepsize=0x0b, mute=1

Amp-Out vals: [0x06]

Node 0x17 [Audio Mixer] wcaps 0x20050b: Stereo Amp-In

Amp-In caps: ofs=0x14, nsteps=0x2b, stepsize=0x05, mute=1

Amp-In vals: [0x10 0x10] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80]

Power: setting=D0, actual=D0

Connection: 5

0x19 0x14 0x12 0x11 0x15

Node 0x18 [Audio Output] wcaps 0x211: Stereo Digital

Converter: stream=0, channel=0

Digital:

Digital category: 0x0

PCM:

rates [0x40]: 48000

bits [0x6]: 16 20

formats [0x5]: PCM AC3

Node 0x19 [Audio Output] wcaps 0xc11: Stereo R/L

Converter: stream=0, channel=0

PCM:

rates [0x540]: 48000 96000 192000

bits [0xe]: 16 20 24

formats [0x1]: PCM

Power: setting=D0, actual=D0

Node 0x1a [Audio Input] wcaps 0x100d0b: Stereo Amp-In R/L

Amp-In caps: ofs=0x00, nsteps=0x17, stepsize=0x05, mute=1

Amp-In vals: [0x17 0x17] [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00]

Converter: stream=0, channel=0

SDI-Select: 0

Power: setting=D0, actual=D0

Connection: 5

0x17 0x14* 0x12 0x11 0x15

Node 0x1b [Vendor Defined Widget] wcaps 0xf00000: Mono

Link to comment
Share on other sites

my linux codec dump - Thinkpad R61

Codec: Conexant CX20549 (Venice)

Address: 0

Vendor Id: 0x14f15045

Subsystem Id: 0x17aa20db

Revision Id: 0x100100

Modem Function Group: 0x2

Default PCM:

rates [0x140]: 48000 96000

bits [0xe]: 16 20 24

formats [0x1]: PCM

Default Amp-In caps: N/A

Default Amp-Out caps: N/A

GPIO: io=0, o=0, i=0, unsolicited=0, wake=0

Node 0x10 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out

Amp-Out caps: ofs=0x2b, nsteps=0x2b, stepsize=0x05, mute=1

Amp-Out vals: [0x23 0x23]

Pincap 0x0810014: OUT EAPD Detect

EAPD 0x2: EAPD

Pin Default 0x95170110: [Fixed] Speaker at Int Top

Conn = Analog, Color = Unknown

DefAssociation = 0x1, Sequence = 0x0

Misc = NO_PRESENCE

Pin-ctls: 0x40: OUT

Unsolicited: tag=00, enabled=0

Power: setting=D0, actual=D0

Connection: 2

0x19 0x17*

Node 0x11 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out

Amp-Out caps: ofs=0x2b, nsteps=0x2b, stepsize=0x05, mute=1

Amp-Out vals: [0x23 0x23]

Pincap 0x08113c: IN OUT HP Detect

Vref caps: HIZ 80

Pin Default 0x0321401f: [Jack] HP Out at Ext Left

Conn = 1/8, Color = Green

DefAssociation = 0x1, Sequence = 0xf

Pin-ctls: 0xc0: OUT HP VREF_HIZ

Unsolicited: tag=37, enabled=1

Power: setting=D0, actual=D0

Connection: 2

0x19 0x17*

Node 0x12 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out

Amp-Out caps: ofs=0x2b, nsteps=0x2b, stepsize=0x05, mute=1

Amp-Out vals: [0xab 0xab]

Pincap 0x08113c: IN OUT HP Detect

Vref caps: HIZ 80

Pin Default 0x21a1902e: [Jack] Mic at Sep Rear

Conn = 1/8, Color = Pink

DefAssociation = 0x2, Sequence = 0xe

Pin-ctls: 0x20: IN VREF_HIZ

Unsolicited: tag=38, enabled=1

Power: setting=D0, actual=D0

Connection: 2

0x19* 0x17

Node 0x13 [Pin Complex] wcaps 0x400301: Stereo Digital

Pincap 0x0810: OUT

Pin Default 0x2144f1f0: [Jack] SPDIF Out at Sep Rear

Conn = RCA, Color = Other

DefAssociation = 0xf, Sequence = 0x0

Misc = NO_PRESENCE

Pin-ctls: 0x40: OUT

Connection: 1

0x18

Node 0x14 [Pin Complex] wcaps 0x400081: Stereo

Pincap 0x081124: IN Detect

Vref caps: HIZ 80

Pin Default 0x03a15021: [Jack] Mic at Ext Left

Conn = 1/8, Color = Red

DefAssociation = 0x2, Sequence = 0x1

Pin-ctls: 0x24: IN VREF_80

Unsolicited: tag=00, enabled=0

Node 0x15 [Pin Complex] wcaps 0x400001: Stereo

Pincap 0x0820: IN

Pin Default 0x95a70120: [Fixed] Mic at Int Top

Conn = Analog, Color = Unknown

DefAssociation = 0x2, Sequence = 0x0

Misc = NO_PRESENCE

Pin-ctls: 0x00:

Node 0x16 [beep Generator Widget] wcaps 0x70000c: Mono Amp-Out

Amp-Out caps: ofs=0x07, nsteps=0x07, stepsize=0x0b, mute=1

Amp-Out vals: [0x06]

Node 0x17 [Audio Mixer] wcaps 0x20050b: Stereo Amp-In

Amp-In caps: ofs=0x14, nsteps=0x2b, stepsize=0x05, mute=1

Amp-In vals: [0x10 0x10] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80]

Power: setting=D0, actual=D0

Connection: 5

0x19 0x14 0x12 0x11 0x15

Node 0x18 [Audio Output] wcaps 0x211: Stereo Digital

Converter: stream=0, channel=0

Digital:

Digital category: 0x0

PCM:

rates [0x40]: 48000

bits [0x6]: 16 20

formats [0x5]: PCM AC3

Node 0x19 [Audio Output] wcaps 0xc11: Stereo R/L

Converter: stream=0, channel=0

PCM:

rates [0x540]: 48000 96000 192000

bits [0xe]: 16 20 24

formats [0x1]: PCM

Power: setting=D0, actual=D0

Node 0x1a [Audio Input] wcaps 0x100d0b: Stereo Amp-In R/L

Amp-In caps: ofs=0x00, nsteps=0x17, stepsize=0x05, mute=1

Amp-In vals: [0x17 0x17] [0x00 0x00] [0x00 0x00] [0x00 0x00] [0x00 0x00]

Converter: stream=0, channel=0

SDI-Select: 0

Power: setting=D0, actual=D0

Connection: 5

0x17 0x14* 0x12 0x11 0x15

Node 0x1b [Vendor Defined Widget] wcaps 0xf00000: Mono

Link to comment
Share on other sites

Ok. So the dumps don't seem to be the problem. I need memory addresses. This is how you get them (you need Azalia loaded):

 

(1) Open Terminal.

(2) Run: ioreg -l

(3) Find the device called HDEF (you can use Command+F if you wish)

(4) Under HDEF there will be something that looks like this:

 

"IODeviceMemory" = (({"address"=18446744073513467904,"length"=16384}))

 

(5) I need the above line as it appears in your ioreg dump. Post it, and I will hopefully be able to ive you the commands that will make this work. If this works for you guys, I will edit the first post to reflect this need.

 

If you guys want to make the commands yourself, note that all you have to do is convert your "address" to hex, and replace 0x0xf4500060 in the commands with the last 8 symbols in the hex explansion of your "address" plus 60 at the end (symilarly with the 0xf4500068, add 68 and replace).

Link to comment
Share on other sites

My ioreg dump.

 

HDEF@1B <class IOPCIDevice, registered, matched, active, busy 0, retain 8>

| | | | {

| | | | "IOPCIResourced" = Yes

| | | | "IOInterruptControllers" = ("io-apic-0","IOPCIMessagedInterruptController")

| | | | "IOName" = "pci8086,284b"

| | | | "subsystem-id" = <ac200000>

| | | | "IODeviceMemory" = (({"address"=18446744073578479616,"length"=16384}))

| | | | "class-code" = <00030400>

| | | | "revision-id" = <03000000>

| | | | "AAPL,HasLid" = <01000000>

 

Please help. Thanks

 

It works, thanks so much Memorial!

Just converted the address and did it myself.

Confirmed! It works.

Link to comment
Share on other sites

@Memorial You, sir, are amazing.

 

I don't have any HDA entries in my lspci output, but I do have AZAL entries. I've been posting to myself about this all day (getting audio jacks working on C700)

 

I just ran

 

sudo reggie_se -D PhysAddr -w 0x0103b080 -a 0xd2400060 -B 32

 

sudo reggie_se -D PhysAddr -w 1 -a 0xd2400068 -B 32

 

(note the different hardware address - anyone else with a C700 or C776CA laptop might find that useful)

 

And holy {censored}, my sound is muted! I don't have anything to add here (yet), but I'm just blown away that your reggie_se hack is going to work on my laptop. I'm getting a massive geekrection from this. :(

 

 

EDIT:

 

OK, so that first step worked, but I can't seem to toggle headphones on, and the code to disable the speaker amplifier didn't seem to work, either! I'm 95% sure I have a CX20549, so the codes should be right...

 

Some of the EEE threads mention modified kexts for HDAudio and Azalia. I have an iPC 10.5.6 fresh install, my speakers work fine, and you don't mention it in the original post, so I'm not convinced that those will help. Output of sudo kextstat |grep Azalia:

72 0 0x475f3000 0x6000 0x5000 com.apple.driver.AppleAzaliaController (1.0.0d1) <71 17 6 5 4 2>

94 0 0x68544000 0xc000 0xb000 com.apple.driver.AppleAzaliaAudio (1.0.0d1) <91 71 6 5 4 2>

 

So I definitely have SOMETHING running there.

 

You mention "The commands below work for SubSysID 0x103C30CD and might be different for other SubSystem ID's If you have your codec dump, try getting the right NID's for your specific version and the correct memory address". I do have a different subsystem ID. Here's the relevant ioreg output

 

| | +-o AZAL@1B <class IOPCIDevice, registered, matched, active, busy 0, retain 71>

| | | | {

| | | | "IOPCIResourced" = Yes

| | | | "IOInterruptControllers" = ("io-apic-0","IOPCIMessagedInterruptController")

| | | | "IOName" = "multimedia"

| | | | "subsystem-id" = <51500000>

| | | | "IOPCIExpressLinkCapabilities" = 0

| | | | "IODeviceMemory" = (({"address"=18446744072941993984,"length"=16384}))

| | | | "class-code" = <00030400>

| | | | "IOPowerManagement" = {"ChildrenPowerState"=2,"CurrentPowerState"=2}

| | | | "revision-id" = <03000000>

| | | | "IOInterruptSpecifiers" = (<1600000007000000>,<0100000000000100>)

| | | | "assigned-addresses" = <10d8008200000000000040d20000000000400000>

| | | | "built-in" = <00>

| | | | "acpi-device" = "IOACPIPlatformDevice is not serializable"

| | | | "device-id" = <4b280000>

| | | | "vendor-id" = <86800000>

| | | | "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/AZAL@1b0000"

| | | | "subsystem-vendor-id" = <f1140000>

| | | | "name" = "multimedia"

| | | | "IOPCIExpressLinkStatus" = 0

| | | | "reg" = <00d800000000000000000000000000000000000010d8000200000000000000000000000000400

00>

| | | | "compatible" = <"pci14f1,5051","pci8086,284b","pciclass,040300">

| | | | "IOPCIExpressASPMDefault" = 0

| | | | }

 

Converting the subsystem-id of 51500000 to hex gets me 311d3e0. Does that mean my Subsystem ID is 0x311d3e0 ? and what does that tell me? How do I find the right NIDs for my version, and what does that even mean?

 

Very very very excited about the progress so far. thank you so much for contributing your knowledge here!

 

 

EDIT AGAIN: Here's my codec dump from Kubuntu, in case that helps.

Codec: Generic 14f1 ID 5051

Address: 0

Vendor Id: 0x14f15051

Subsystem Id: 0x103c30d9

Revision Id: 0x100000

Default PCM: rates 0x160, bits 0x0e, types 0x1

Default Amp-In caps: N/A

Default Amp-Out caps: N/A

Node 0x10 [Audio Output] wcaps 0xc1d: Stereo Amp-Out

Amp-Out caps: ofs=0x4a, nsteps=0x4a, stepsize=0x03, mute=0

Amp-Out vals: [0x3b 0x3b]

PCM: rates 0x560, bits 0x0e, types 0x1

Power: 0x0

Node 0x11 [Audio Output] wcaps 0xc1d: Stereo Amp-Out

Amp-Out caps: ofs=0x4a, nsteps=0x4a, stepsize=0x03, mute=0

Amp-Out vals: [0x4a 0x4a]

PCM: rates 0x560, bits 0x0e, types 0x1

Power: 0x0

Node 0x12 [Audio Output] wcaps 0x211: Stereo Digital

PCM: rates 0x160, bits 0x0e, types 0x5

Node 0x13 [beep Generator Widget] wcaps 0x70000c: Mono Amp-Out

Amp-Out caps: ofs=0x03, nsteps=0x03, stepsize=0x17, mute=0

Amp-Out vals: [0x00]

Node 0x14 [Audio Input] wcaps 0x100d1b: Stereo Amp-In

Amp-In caps: ofs=0x4a, nsteps=0x50, stepsize=0x03, mute=0

Amp-In vals: [0x06 0x06] [0x4a 0x4a]

PCM: rates 0x160, bits 0x0e, types 0x1

Power: 0x0

Connection: 2

0x1d* 0x17

Node 0x15 [Audio Input] wcaps 0x100d1b: Stereo Amp-In

Amp-In caps: ofs=0x4a, nsteps=0x50, stepsize=0x03, mute=0

Amp-In vals: [0x4a 0x4a]

PCM: rates 0x160, bits 0x0e, types 0x1

Power: 0x0

Connection: 1

0x18

Node 0x16 [Pin Complex] wcaps 0x400581: Stereo

Pincap 0x081c: OUT HP Detect

Pin Default 0x01214040: [Jack] HP Out at Ext Rear

Conn = 1/8, Color = Green

Pin-ctls: 0xc0: OUT HP

Power: 0x0

Connection: 2

0x10* 0x11

Node 0x17 [Pin Complex] wcaps 0x40048b: Stereo Amp-In

Amp-In caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0

Amp-In vals:

Pincap 0x081224: IN Detect

Pin Default 0x400001f0: [N/A] Line Out at Ext N/A

Conn = Unknown, Color = Unknown

Pin-ctls: 0x00:

Power: 0x0

Node 0x18 [Pin Complex] wcaps 0x40048b: Stereo Amp-In

Amp-In caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0

Amp-In vals:

Pincap 0x081224: IN Detect

Pin Default 0x01a19030: [Jack] Mic at Ext Rear

Conn = 1/8, Color = Pink

Pin-ctls: 0x00:

Power: 0x0

Node 0x19 [Pin Complex] wcaps 0x400581: Stereo

Pincap 0x0814: OUT Detect

Pin Default 0x400001f0: [N/A] Line Out at Ext N/A

Conn = Unknown, Color = Unknown

Pin-ctls: 0x40: OUT

Power: 0x0

Connection: 2

0x10* 0x11

Node 0x1a [Pin Complex] wcaps 0x400501: Stereo

Pincap 0x0810010: OUT EAPD

Pin Default 0x92170110: [Fixed] Speaker at Int Front

Conn = Analog, Color = Unknown

Pin-ctls: 0x40: OUT

Power: 0x0

Connection: 2

0x10* 0x11

Node 0x1b [Pin Complex] wcaps 0x400500: Mono

Pincap 0x0810010: OUT EAPD

Pin Default 0x400001f0: [N/A] Line Out at Ext N/A

Conn = Unknown, Color = Unknown

Pin-ctls: 0x40: OUT

Power: 0x0

Connection: 2

0x10* 0x11

Node 0x1c [Pin Complex] wcaps 0x400701: Stereo Digital

Pincap 0x0810: OUT

Pin Default 0x400001f0: [N/A] Line Out at Ext N/A

Conn = Unknown, Color = Unknown

Pin-ctls: 0x00:

Power: 0x0

Connection: 1

0x12

Node 0x1d [Pin Complex] wcaps 0x40040b: Stereo Amp-In

Amp-In caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0

Amp-In vals:

Pincap 0x0820: IN

Pin Default 0x97a70120: [Fixed] Mic at Int Riser

Conn = Analog, Color = Unknown

Pin-ctls: 0x20: IN

Power: 0x0

Node 0x1e [Vendor Defined Widget] wcaps 0xf00000: Mono

 

 

 

Really not sure where to go from here. Any advice would be welcome.

Link to comment
Share on other sites

Dpyro. This can be adopted to other drivers, theoretically, but we will have to get your codex dump and memory address. If you have AppleHDA loadiing, then you don't need this, as it should have headphones (if you inject the right information). This whole thing only works when the driver loads already.

 

Dell700m, I am glad to hear this worked for you. I recommend you make a simple shell script to turn speakers on (you can also make a script to control headphone levels). I will rewrite the first post to take into account memory address differences.

 

If anyone want to try and make and AppleHDA kext for this card, it shouldn't be too hard. I am just in no mood for testing kexts and editing plists all day (plus, I have no use for any other components of the sound card). The process is easy and detailed in the sound forum, it should work for this card.

Link to comment
Share on other sites

Well, my sound works perfectly with warm boot method using HDAEnabler and custom AppleHDA plist I made, I even replaced HDAEnabler with an EFI string using EFIStudio. However the EFI string didn't fix the warm boot problem. I tried the method in the first post to turn amp on, but haven't gotten anywhere with this. The memory address I used was something like, FC300000. So the commands looked something like this:

 

0x14 Pin for speakers
sudo reggie_se -D PhysAddr -w 0x01470500 -a 0xfc300060 -B 32
sudo reggie_se -D PhysAddr -w 1 -a 0xfc300068 -B 32
sudo reggie_se -D PhysAddr -w 0x014707c0 -a 0xfc300060 -B 32
sudo reggie_se -D PhysAddr -w 1 -a 0xfc300068 -B 32

0x15 Pin for headphones
sudo reggie_se -D PhysAddr -w 0x01570500 -a 0xfc300060 -B 32
sudo reggie_se -D PhysAddr -w 1 -a 0xfc300068 -B 32
sudo reggie_se -D PhysAddr -w 0x015707c0 -a 0xfc300060 -B 32
sudo reggie_se -D PhysAddr -w 1 -a 0xfc300068 -B 32

 

However, I had to add (one of) the following to my ALC889.kext as 'dummy pins' in order to get sound working originally:

[N/A] Speaker at Ext Rear [22] - [Mixer] 14 - [stereo] 4

[N/A] Speaker at Ext Rear [23] - [Mixer] 15 - [stereo] 5

[N/A] Speaker at Ext Rear [27] - [Mixer] 38 - [stereo] 37

 

I'm wondering if I also have to send verb commands to these for sound to work on cold boot?

 

EDIT: Just tried sending verbs to 0x16, 0x17, and 0x1b and still nothing. But still, I'm thinking in linux I had to run alsa-mixer command-line and crank up the volume on the speakers.

 

FYI, I ran this to get the memory address:

ioreg -d 1 -r -n $(ioreg -x | grep 'AppleHDA' -B 1 | head -n 1 | cut -d 'o' -f 2- | cut -d '<' -f 1) -x | grep "IODeviceMemory" | cut -d '=' -f 3 | cut -d ',' -f 1 | cut -b 11-

Link to comment
Share on other sites

Memorial,

About the shell script part, i made myself a AppleScript Application to autorun @ login, saved me some typing. Although i can not change volume in headset by the slide on the upper right corner, I still can change it using volume slide in itunes or MPlayer, so no need for the volume change shell script. When i plug my headset, it will disable the internal speak, so no need for the speaker disable script neither. For Mic, i am using a USB mic now, basicly i am all set.

 

Memorial, Thanks again for your help.

Link to comment
Share on other sites

Sounds great Dell700m.

 

Dpyro, AppleHDA should still conform to Intel HDA specifications, is that correct? If you can get a codec dump posted, maybe we could look at it to see where things go wrong. What are you trying to do anyway? If you want to enable speakers, you should make your EFI strings reflect the right NIC's for the headphones.

Link to comment
Share on other sites

Sounds great Dell700m.

 

Dpyro, AppleHDA should still conform to Intel HDA specifications, is that correct? If you can get a codec dump posted, maybe we could look at it to see where things go wrong. What are you trying to do anyway? If you want to enable speakers, you should make your EFI strings reflect the right NIC's for the headphones.

 

I'm trying to activate the amp as I think it doesn't turn on in OSX. The plist I created works well in OSX but requires me to boot into vista first with Microsoft UAA drivers installed. So basically, I have to use windows to send power to the audio bridge, and when I reboot, power is still sent so the drivers I created work.

 

Here is my codec dump.

Link to comment
Share on other sites

 Share

×
×
  • Create New...