Contribute
Register

HP 430 G4 volume control problem

Status
Not open for further replies.
This platform looks normal, and this command has no effect on the codec.
The state of no headset:

Code:
    Get Converter Format
        nid = 0x10 --> result 0x00000031
        nid = 0x11 --> result 0x00000031
        nid = 0x16 --> result 0x00000000
        nid = 0x17 --> result 0x00000000
        nid = 0x13 --> result 0x00000031
        nid = 0x14 --> result 0x00000031
        nid = 0x19 --> result 0x00000000
        nid = 0x1a --> result 0x00000000
    Get Right Amp Gain
        nid = 0x10 --> result 0x00000000
        nid = 0x11 --> result 0x00000000
        nid = 0x16 --> result 0x00000000
        nid = 0x17 --> result 0x00000000
        nid = 0x13 --> result 0x0000003a
        nid = 0x14 --> result 0x0000004a
        nid = 0x19 --> result 0x00000000
        nid = 0x1a --> result 0x00000003
    Get Left Amp Gain
        nid = 0x10 --> result 0x00000000
        nid = 0x11 --> result 0x00000000
        nid = 0x16 --> result 0x00000000
        nid = 0x17 --> result 0x00000000
        nid = 0x13 --> result 0x0000003a
        nid = 0x14 --> result 0x0000004a
        nid = 0x19 --> result 0x00000000
        nid = 0x1a --> result 0x00000003
    Pin Sense
        nid = 0x10 --> result 0x00000000
        nid = 0x11 --> result 0x00000000
        nid = 0x16 --> result 0x00000000
        nid = 0x17 --> result 0x00000000
        nid = 0x13 --> result 0x00000000
        nid = 0x14 --> result 0x00000000
        nid = 0x19 --> result 0x00000000
        nid = 0x1a --> result 0x00000000
    Connection Length
        nid = 0x10 --> result 0x00000000
        nid = 0x11 --> result 0x00000000
        nid = 0x16 --> result 0x00000002
        nid = 0x17 --> result 0x00000002
        nid = 0x13 --> result 0x00000007
        nid = 0x14 --> result 0x00000003
        nid = 0x19 --> result 0x00000000
        nid = 0x1a --> result 0x00000000
    Get Connection List
        nid = 0x10 --> result 0x00000000
        nid = 0x11 --> result 0x00000000
        nid = 0x16 --> result 0x00001110
        nid = 0x17 --> result 0x00001110
        nid = 0x13 --> result 0x151a1918
        nid = 0x14 --> result 0x001f151a
        nid = 0x19 --> result 0x00000000
        nid = 0x1a --> result 0x00000000
    Get Unsolicited Response
        nid = 0x10 --> result 0x00000000
        nid = 0x11 --> result 0x00000000
        nid = 0x16 --> result 0x00000083
        nid = 0x17 --> result 0x00000000
        nid = 0x13 --> result 0x00000000
        nid = 0x14 --> result 0x00000000
        nid = 0x19 --> result 0x00000085
        nid = 0x1a --> result 0x00000000
    Get EAPD
        nid = 0x10 --> result 0x00000000
        nid = 0x11 --> result 0x00000000
        nid = 0x16 --> result 0x00000002
        nid = 0x17 --> result 0x00000002
        nid = 0x13 --> result 0x00000000
        nid = 0x14 --> result 0x00000000
        nid = 0x19 --> result 0x00000000
        nid = 0x1a --> result 0x00000000
    Get Power State
        nid = 0x10 --> result 0x00000000
        nid = 0x11 --> result 0x00000033
        nid = 0x16 --> result 0x00000033
        nid = 0x17 --> result 0x00000000
        nid = 0x13 --> result 0x00000000
        nid = 0x14 --> result 0x00000000
        nid = 0x19 --> result 0x00000000
        nid = 0x1a --> result 0x00000000
    Get Channel/Stream ID
        nid = 0x10 --> result 0x00000010
        nid = 0x11 --> result 0x00000000
        nid = 0x16 --> result 0x00000000
        nid = 0x17 --> result 0x00000000
        nid = 0x13 --> result 0x00000010
        nid = 0x14 --> result 0x00000020
        nid = 0x19 --> result 0x00000000
        nid = 0x1a --> result 0x00000000
    Get Pin Control
        nid = 0x10 --> result 0x00000000
        nid = 0x11 --> result 0x00000000
        nid = 0x16 --> result 0x00000000
        nid = 0x17 --> result 0x00000040
        nid = 0x13 --> result 0x00000000
        nid = 0x14 --> result 0x00000000
        nid = 0x19 --> result 0x00000000
        nid = 0x1a --> result 0x00000020
    Get Default Config
        nid = 0x10 --> result 0x00000000
        nid = 0x11 --> result 0x00000000
        nid = 0x16 --> result 0x012b1040
        nid = 0x17 --> result 0x90170010
        nid = 0x13 --> result 0x00000000
        nid = 0x14 --> result 0x00000000
        nid = 0x19 --> result 0x018b1030
        nid = 0x1a --> result 0x90a00020
Lius-MacBook-Air:probook.git liu$ hda-verb 0x19 0x707 0x25
nid = 0x19, verb = 0x707, param = 0x25
command 0x01970725 --> result = 0x00000000
Lius-MacBook-Air:probook.git liu$ hda-verb 0x19 0x707 0x20
nid = 0x19, verb = 0x707, param = 0x20
command 0x01970720 --> result = 0x00000000


Plug in headset:
Code:
    Get Converter Format
        nid = 0x10 --> result 0x00000000
        nid = 0x11 --> result 0x00000031
        nid = 0x16 --> result 0x00000000
        nid = 0x17 --> result 0x00000000
        nid = 0x13 --> result 0x00000031
        nid = 0x14 --> result 0x00000031
        nid = 0x19 --> result 0x00000000
        nid = 0x1a --> result 0x00000000
    Get Right Amp Gain
        nid = 0x10 --> result 0x00000000
        nid = 0x11 --> result 0x00000000
        nid = 0x16 --> result 0x00000000
        nid = 0x17 --> result 0x00000000
        nid = 0x13 --> result 0x0000003a
        nid = 0x14 --> result 0x0000004a
        nid = 0x19 --> result 0x00000000
        nid = 0x1a --> result 0x00000003
    Get Left Amp Gain
        nid = 0x10 --> result 0x00000000
        nid = 0x11 --> result 0x00000000
        nid = 0x16 --> result 0x00000000
        nid = 0x17 --> result 0x00000000
        nid = 0x13 --> result 0x0000003a
        nid = 0x14 --> result 0x0000004a
        nid = 0x19 --> result 0x00000000
        nid = 0x1a --> result 0x00000003
    Pin Sense
        nid = 0x10 --> result 0x00000000
        nid = 0x11 --> result 0x00000000
        nid = 0x16 --> result 0x80000000
        nid = 0x17 --> result 0x00000000
        nid = 0x13 --> result 0x00000000
        nid = 0x14 --> result 0x00000000
        nid = 0x19 --> result 0x80000000
        nid = 0x1a --> result 0x00000000
    Connection Length
        nid = 0x10 --> result 0x00000000
        nid = 0x11 --> result 0x00000000
        nid = 0x16 --> result 0x00000002
        nid = 0x17 --> result 0x00000002
        nid = 0x13 --> result 0x00000007
        nid = 0x14 --> result 0x00000003
        nid = 0x19 --> result 0x00000000
        nid = 0x1a --> result 0x00000000
    Get Connection List
        nid = 0x10 --> result 0x00000000
        nid = 0x11 --> result 0x00000000
        nid = 0x16 --> result 0x00001110
        nid = 0x17 --> result 0x00001110
        nid = 0x13 --> result 0x151a1918
        nid = 0x14 --> result 0x001f151a
        nid = 0x19 --> result 0x00000000
        nid = 0x1a --> result 0x00000000
    Get Unsolicited Response
        nid = 0x10 --> result 0x00000000
        nid = 0x11 --> result 0x00000000
        nid = 0x16 --> result 0x00000083
        nid = 0x17 --> result 0x00000000
        nid = 0x13 --> result 0x00000000
        nid = 0x14 --> result 0x00000000
        nid = 0x19 --> result 0x00000085
        nid = 0x1a --> result 0x00000000
    Get EAPD
        nid = 0x10 --> result 0x00000000
        nid = 0x11 --> result 0x00000000
        nid = 0x16 --> result 0x00000002
        nid = 0x17 --> result 0x00000002
        nid = 0x13 --> result 0x00000000
        nid = 0x14 --> result 0x00000000
        nid = 0x19 --> result 0x00000000
        nid = 0x1a --> result 0x00000000
    Get Power State
        nid = 0x10 --> result 0x00000033
        nid = 0x11 --> result 0x00000000
        nid = 0x16 --> result 0x00000000
        nid = 0x17 --> result 0x00000033
        nid = 0x13 --> result 0x00000000
        nid = 0x14 --> result 0x00000000
        nid = 0x19 --> result 0x00000000
        nid = 0x1a --> result 0x00000000
    Get Channel/Stream ID
        nid = 0x10 --> result 0x00000000
        nid = 0x11 --> result 0x00000010
        nid = 0x16 --> result 0x00000000
        nid = 0x17 --> result 0x00000000
        nid = 0x13 --> result 0x00000010
        nid = 0x14 --> result 0x00000020
        nid = 0x19 --> result 0x00000000
        nid = 0x1a --> result 0x00000000
    Get Pin Control
        nid = 0x10 --> result 0x00000000
        nid = 0x11 --> result 0x00000000
        nid = 0x16 --> result 0x000000c0
        nid = 0x17 --> result 0x00000000
        nid = 0x13 --> result 0x00000000
        nid = 0x14 --> result 0x00000000
        nid = 0x19 --> result 0x00000020
        nid = 0x1a --> result 0x00000020
    Get Default Config
        nid = 0x10 --> result 0x00000000
        nid = 0x11 --> result 0x00000000
        nid = 0x16 --> result 0x012b1040
        nid = 0x17 --> result 0x90170010
        nid = 0x13 --> result 0x00000000
        nid = 0x14 --> result 0x00000000
        nid = 0x19 --> result 0x018b1030
        nid = 0x1a --> result 0x90a00020
After you've entered the command with the value "25" and the codec still reacted, the command "hda-verb 0x19 0x707 0x24" should enable line-in. The SSDT10 should set the value at startup and after sleep.
Because of the outputs, please try if the channels are separately mutable with the Audio-MIDI-Setup APP.
Now the problem is the automatic switching of the microphone.
The new platforms should enable mic auto switching
 

Attachments

  • 1_Platforms.zml.zlib.zip
    5.4 KB · Views: 74
  • 2_Platforms.zml.zlib.zip
    5.3 KB · Views: 62
  • SSDT-10.aml.zip
    5 KB · Views: 83
  • Audio-MIDI-Setup.png
    Audio-MIDI-Setup.png
    177.5 KB · Views: 95
When the microphone is automatically switched, there is still no sound input(1_Platforms.zml.zlib and 2_Platforms.zml.zlib).

After you've entered the command with the value "25" and the codec still reacted, the command "hda-verb 0x19 0x707 0x24" should enable line-in.
There is no change in the input command.
 

Attachments

  • Screen Shot 2017-12-15 at 11.45.59 PM.png
    Screen Shot 2017-12-15 at 11.45.59 PM.png
    64 KB · Views: 84
I found that I disable the built-in Mike in BIOS, and "Line in" will not work,
So I think the reason for automatic switching is that the external microphone doesn't really work (but it's normal in Windows).
Using the previous platform, although "Line in" can be selected(RehabMans platform and the #88 platform),
But they are all input signals with built-in microphones.
 
I found that I disable the built-in Mike in BIOS, and "Line in" will not work,
So I think the reason for automatic switching is that the external microphone doesn't really work (but it's normal in Windows).
Using the previous platform, although "Line in" can be selected(RehabMans platform and the #88 platform),
But they are all input signals with built-in microphones.
After a closer look, i realised that there was a mistake. Replace the SSDT10 @clover/ACPI/patched. This should finally enable VREF. Run the script to make sure that the SSDT is working, also after sleep.
Here another platforms with separated inputs, without the mixer.
I'm wondering how you're testing, it's really the external microphone that works after you've selected the internal microphone once. If so, the script should output a value @PiN 0x19.
 

Attachments

  • SSDT-10.aml.zip
    4.8 KB · Views: 66
  • Platforms.zml.zlib.zip
    5.3 KB · Views: 57
After a closer look, i realised that there was a mistake. Replace the SSDT10 @clover/ACPI/patched. This should finally enable VREF. Run the script to make sure that the SSDT is working, also after sleep.
Here another platforms with separated inputs, without the mixer.
I'm wondering how you're testing, it's really the external microphone that works after you've selected the internal microphone once. If so, the script should output a value @PiN 0x19.

Keep in mind with the Probook, there is no SSDT-10 and should be no such file in ACPI/patched.
The content of your SSDT-10.aml attachment is the model specific SSDT... for this laptop, SSDT-4x0-G4-Kabylake.aml.

(I suppose you're tweaking the pinconfigs here... quite handy to do so with pinconfigs programmed by CodecCommander/ACPI, eh?)
 
Keep in mind with the Probook, there is no SSDT-10 and should be no such file in ACPI/patched.
The content of your SSDT-10.aml attachment is the model specific SSDT... for this laptop, SSDT-4x0-G4-Kabylake.aml.

(I suppose you're tweaking the pinconfigs here... quite handy to do so with pinconfigs programmed by CodecCommander/ACPI, eh?)
Ok, thanks for the note. I thought that from the Problem Reporting files the content of the "RehabMan" folder, which seems to be the entire ACPI dump, is being used for the patched folder.
But now i see it in the EFI/Clover/ACPI/patched, he has to rename the SSDT-10.aml to SSDT-4x0-G4-Kabylake.aml, or use the attached SSDT-4x0-G4-Kabylake.aml.

BTW. this "Command", Buffer() { 0x01, 0x1a, 0x07, 0x25 }, from the layout4_HDEF.asl is wrong, it should be "Command", Buffer() { 0x01, 0xa7, 0x07, 0x25 },
 

Attachments

  • SSDT-4x0-G4-Kabylake.aml.zip
    4.9 KB · Views: 55
BTW. this "Command", Buffer() { 0x01, 0x1a, 0x07, 0x25 }, from the layout4_HDEF.asl is wrong, it should be "Command", Buffer() { 0x01, 0xa7, 0x07, 0x25 },

Yes/agreed.
This is derived from SSDT-ALC280.dsl in CodecCommander project (although that one is setting to 0x24), provided by @zirkaiva.
I will fix it there too.
 
Test steps:
Sound.png
The top is the Sound panel, and Mike's input is not a mix.
The default is "Built-int", and the input level is normal.
Choosing "Audio line-in Port", it looks like an input level, too.

But in fact, it is not the input of external microphone. For external microphone, the input level is very weak. When I speak to the built-in microphone, the input level is very strong.
But when I pulled out the headset (Mike), Audio line-in Port stopped the input level.

So I suspect that external microphone has no real input,
In order to prove,
I disable the built-in Mike in BIOS:
- at WINDOWS, we see the input level of the external microphone,
- there is no input level in both Built-int and Audio line-in Port in MAC,

So I think the external Mike has not been properly driven or loaded.


After a closer look, i realised that there was a mistake. Replace the SSDT10 @clover/ACPI/patched. This should finally enable VREF. Run the script to make sure that the SSDT is working, also after sleep.
With your platform, the state is the same as the test results.
But the output of the script is different from that of the previous one.
 

Attachments

  • Problem Reporting files.zip
    3.3 MB · Views: 57
  • Terminal Output dump .txt
    11 KB · Views: 129
(I suppose you're tweaking the pinconfigs here... quite handy to do so with pinconfigs programmed by CodecCommander/ACPI, eh?)
Yes, with the SSDT I have a better overview. Usually I inject the PinConfig via the FakeSMC IOKitPersonalities.

Test steps:
View attachment 300258
The top is the Sound panel, and Mike's input is not a mix.
The default is "Built-int", and the input level is normal.
Choosing "Audio line-in Port", it looks like an input level, too.

But in fact, it is not the input of external microphone. For external microphone, the input level is very weak. When I speak to the built-in microphone, the input level is very strong.
But when I pulled out the headset (Mike), Audio line-in Port stopped the input level.

So I suspect that external microphone has no real input,
In order to prove,
I disable the built-in Mike in BIOS:
- at WINDOWS, we see the input level of the external microphone,
- there is no input level in both Built-int and Audio line-in Port in MAC,

So I think the external Mike has not been properly driven or loaded.



With your platform, the state is the same as the test results.
But the output of the script is different from that of the previous one.
Finally the desired value is injected, but unfortunately line-in still does not work. Probably the issue is the OMTP, CTIA auto detection, which this codec should support. I think you use a CTIA (Apple) Headset, maybe you have an old OMTP (Nokia) Headset for testing?
Have you tried it at Linux? a codec dump could be useful. At Windows you need special Software.

Here something experimental.
 

Attachments

  • SSDT-4x0-G4-Kabylake.aml.zip
    5.1 KB · Views: 68
  • Platforms.zml.zlib.zip
    5.3 KB · Views: 73
Here something experimental.
External Mike still has no input


Probably the issue is the OMTP, CTIA auto detection, which this codec should support. I think you use a CTIA (Apple) Headset, maybe you have an old OMTP (Nokia) Headset for testing?
I tested the apple headphones and the non - Apple headphones, and the result was the same.
Apple earphones are not available in WINDOWS.
The right thing to say is that the laptop can't be used.
 
Last edited:
Status
Not open for further replies.
Back
Top