macnb Posted March 1, 2016 Share Posted March 1, 2016 I'm working on a fix as i got the issue. EAPDHIKeyboardDevice is meant for jack sense fix in old versions (still keeping it as reference and might be useful in some cases for some one) to simulate Mute/Un-mute bezel pop up to start the audio stream. EDIT: Check your PM for beta test please. I just PM'ed you. Tried your Debug#5 version in /L/E and it works. Audio OK on boot and after sleep. It seems to fail finding some object in AppleHDA. Check logs I sent. Thanks. Link to comment Share on other sites More sharing options...
capy10 Posted March 4, 2016 Share Posted March 4, 2016 The script worked for me "Ga-Z97X-UD5H" I was using CodecCommander previously, which gave me sound after sleep 1 out of 10 times the rest of the times it was like a "loose jack sound" My computer did crash during sleep last night, but hasnt crashed when i turn the sleep off. If it crash's again I will post my systemLog and my codec dump. Thanks for the coding Link to comment Share on other sites More sharing options...
EMlyDinEsH Posted March 5, 2016 Author Share Posted March 5, 2016 The script worked for me "Ga-Z97X-UD5H" I was using CodecCommander previously, which gave me sound after sleep 1 out of 10 times the rest of the times it was like a "loose jack sound" My computer did crash during sleep last night, but hasnt crashed when i turn the sleep off. If it crash's again I will post my systemLog and my codec dump. Thanks for the coding PM me for beta testing new version please as i've improved support for Desktop codec in that. Link to comment Share on other sites More sharing options...
hectorox Posted March 16, 2016 Share Posted March 16, 2016 Hi all, Finally I found that topic that might help me with my sound issues: - SpeakerSound sometimes disappears out of nowhere (This usually happens, when I do not use sound for a longer time (like watching something on youtube) and when I switch fast from one song to another song) -> this can be fixed when I let the machine sleep and wake again -jacksense sometimes work and sometimes not (you connect your headphone and the os does not recognise it, it just says I am still on internal speakers (It helps when you let the machine sleep and wake again) It seems like your kext may fix that issue, I have some questions: I have a linux codec dump and there are really a lot of nodes, the only one I could recognise for 100% is the headphone, my question: Can you help me to identify my nodes of my codec dump? EDIT I think I managed to find the right nodes testing the kext right now. Thanks for the great work!! Link to comment Share on other sites More sharing options...
capy10 Posted April 4, 2016 Share Posted April 4, 2016 PM me for beta testing new version please as i've improved support for Desktop codec in that. I sent you a msg Link to comment Share on other sites More sharing options...
EMlyDinEsH Posted April 25, 2016 Author Share Posted April 25, 2016 New version v2.3 has been released, so everyone please try and give me your feedback. Thanks Link to comment Share on other sites More sharing options...
cnrd Posted May 7, 2016 Share Posted May 7, 2016 Hi I'm unable to get EAPDFix working with HDEFAddress: 1F,3 That is the address reported by IOJones (Colossus.zip) and HDEF is present at 0x001F0003 in DSDT. From DSDT: Device (HDEF) { Name (_ADR, 0x001F0003) OperationRegion (HDAR, PCI_Config, Zero, 0x0100) Field (HDAR, WordAcc, NoLock, Preserve) { VDID, 32, Offset (0x48), , 6, MBCG, 1, Offset (0x54), Offset (0x55), PMEE, 1, , 6, PMES, 1 } Name (_S0W, 0x03) Method (_DSW, 3, NotSerialized) { Store (Arg0, PMEE) } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x6D, 0x04)) } Method (GPEH, 0, NotSerialized) { If (LEqual (VDID, 0xFFFFFFFF)) { Return (Zero) } If (LAnd (PMEE, PMES)) { ADBG ("HDEF GPEH") Store (One, PMES) Notify (HDEF, 0x02) } } Name (NBUF, ResourceTemplate () { QWordMemory (ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, NonCacheable, ReadOnly, 0x0000000000000001, // Granularity 0x0000000000000000, // Range Minimum 0x0000000000000000, // Range Maximum 0x0000000000000000, // Translation Offset 0x0000000000000000, // Length ,, , AddressRangeACPI, TypeStatic) }) Method (AUWA, 0, Serialized) { If (LEqual (PCHS, One)) { If (LEqual (^^LPCB.CRID, Zero)) { Return (One) } } Else { If (LEqual (^^LPCB.CRID, Zero)) { Return (One) } If (LEqual (^^LPCB.CRID, One)) { Return (One) } If (LEqual (^^LPCB.CRID, 0x09)) { Return (One) } } Return (Zero) } Method (_INI, 0, NotSerialized) { ADBG ("HDEF _INI") If (LGreaterEqual (OSYS, 0x07D6)) { CreateQWordField (NBUF, 0x0E, NBAS) CreateQWordField (NBUF, 0x16, NMAS) CreateQWordField (NBUF, 0x26, NLEN) Store (NHLA, NBAS) Add (NHLA, Subtract (NHLL, One), NMAS) Store (NHLL, NLEN) If (LEqual (AUWA (), One)) { Store (Zero, MBCG) } } } Method (_DSM, 4, Serialized) { Name (_T_0, Zero) ADBG ("HDEF _DSM") If (PCIC (Arg0)) { Return (PCID (Arg0, Arg1, Arg2, Arg3)) } If (LEqual (Arg0, Buffer (0x10) { /* 0000 */ 0x6E, 0x88, 0x9F, 0xA6, 0xEB, 0x6C, 0x94, 0x45, /* 0008 */ 0xA4, 0x1F, 0x7B, 0x5D, 0xCE, 0x24, 0xC5, 0x53 })) { While (One) { Store (Arg2, _T_0) If (LEqual (_T_0, Zero)) { Return (Buffer (One) { 0x0F }) } Else { If (LEqual (_T_0, One)) { ADBG ("_DSM Fun 1 NHLT") Return (NBUF) } Else { If (LEqual (_T_0, 0x02)) { ADBG ("_DSM Fun 2 FMSK") Return (ADFM) } Else { If (LEqual (_T_0, 0x03)) { ADBG ("_DSM Fun 3 PPMS") Return (Zero) } Else { ADBG ("_DSM Fun NOK") Return (Buffer (One) { 0x00 }) } } } } Break } } ADBG ("_DSM UUID NOK") } } My config in EAPDFix.kext: <key>LaptopCodecValues</key> <dict> <key>ExternalMic</key> <integer>25</integer> <key>Headphones</key> <integer>27</integer> <key>HpHasEAPD</key> <true/> <key>InternalMic</key> <integer>24</integer> <key>Speakers</key> <integer>20</integer> <key>SpkHasEAPD</key> <true/> </dict> <key>Preferences</key> <dict> <key>BootFixDelay</key> <integer>30000</integer> <key>CodecAddress</key> <integer>0</integer> <key>FixType</key> <integer>1</integer> <key>HDEFAddress</key> <string>1F,3</string> <key>JackSenseFix</key> <false/> <key>SkipBootBgCheck</key> <true/> <key>SleepFixDelay</key> <integer>1500</integer> <key>StatusCheckInterval</key> <integer>1500</integer> <key>VerbSendCount</key> <integer>2</integer> </dict> This is all on a GA-Z170X-UD3 (ALC1150) Link to comment Share on other sites More sharing options...
Moderators Jake Lo Posted June 16, 2016 Moderators Share Posted June 16, 2016 @cnrd, Is this the Skylake system? Link to comment Share on other sites More sharing options...
cnrd Posted June 19, 2016 Share Posted June 19, 2016 Yeah it's on Skylake Link to comment Share on other sites More sharing options...
EMlyDinEsH Posted July 28, 2016 Author Share Posted July 28, 2016 Hi I'm unable to get EAPDFix working with HDEFAddress: 1F,3 That is the address reported by IOJones (Colossus.zip) and HDEF is present at 0x001F0003 in DSDT. From DSDT: Device (HDEF) { Name (_ADR, 0x001F0003) OperationRegion (HDAR, PCI_Config, Zero, 0x0100) Field (HDAR, WordAcc, NoLock, Preserve) { VDID, 32, Offset (0x48), , 6, MBCG, 1, Offset (0x54), Offset (0x55), PMEE, 1, , 6, PMES, 1 } Name (_S0W, 0x03) Method (_DSW, 3, NotSerialized) { Store (Arg0, PMEE) } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x6D, 0x04)) } Method (GPEH, 0, NotSerialized) { If (LEqual (VDID, 0xFFFFFFFF)) { Return (Zero) } If (LAnd (PMEE, PMES)) { ADBG ("HDEF GPEH") Store (One, PMES) Notify (HDEF, 0x02) } } Name (NBUF, ResourceTemplate () { QWordMemory (ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, NonCacheable, ReadOnly, 0x0000000000000001, // Granularity 0x0000000000000000, // Range Minimum 0x0000000000000000, // Range Maximum 0x0000000000000000, // Translation Offset 0x0000000000000000, // Length ,, , AddressRangeACPI, TypeStatic) }) Method (AUWA, 0, Serialized) { If (LEqual (PCHS, One)) { If (LEqual (^^LPCB.CRID, Zero)) { Return (One) } } Else { If (LEqual (^^LPCB.CRID, Zero)) { Return (One) } If (LEqual (^^LPCB.CRID, One)) { Return (One) } If (LEqual (^^LPCB.CRID, 0x09)) { Return (One) } } Return (Zero) } Method (_INI, 0, NotSerialized) { ADBG ("HDEF _INI") If (LGreaterEqual (OSYS, 0x07D6)) { CreateQWordField (NBUF, 0x0E, NBAS) CreateQWordField (NBUF, 0x16, NMAS) CreateQWordField (NBUF, 0x26, NLEN) Store (NHLA, NBAS) Add (NHLA, Subtract (NHLL, One), NMAS) Store (NHLL, NLEN) If (LEqual (AUWA (), One)) { Store (Zero, MBCG) } } } Method (_DSM, 4, Serialized) { Name (_T_0, Zero) ADBG ("HDEF _DSM") If (PCIC (Arg0)) { Return (PCID (Arg0, Arg1, Arg2, Arg3)) } If (LEqual (Arg0, Buffer (0x10) { /* 0000 */ 0x6E, 0x88, 0x9F, 0xA6, 0xEB, 0x6C, 0x94, 0x45, /* 0008 */ 0xA4, 0x1F, 0x7B, 0x5D, 0xCE, 0x24, 0xC5, 0x53 })) { While (One) { Store (Arg2, _T_0) If (LEqual (_T_0, Zero)) { Return (Buffer (One) { 0x0F }) } Else { If (LEqual (_T_0, One)) { ADBG ("_DSM Fun 1 NHLT") Return (NBUF) } Else { If (LEqual (_T_0, 0x02)) { ADBG ("_DSM Fun 2 FMSK") Return (ADFM) } Else { If (LEqual (_T_0, 0x03)) { ADBG ("_DSM Fun 3 PPMS") Return (Zero) } Else { ADBG ("_DSM Fun NOK") Return (Buffer (One) { 0x00 }) } } } } Break } } ADBG ("_DSM UUID NOK") } } My config in EAPDFix.kext: <key>LaptopCodecValues</key> <dict> <key>ExternalMic</key> <integer>25</integer> <key>Headphones</key> <integer>27</integer> <key>HpHasEAPD</key> <true/> <key>InternalMic</key> <integer>24</integer> <key>Speakers</key> <integer>20</integer> <key>SpkHasEAPD</key> <true/> </dict> <key>Preferences</key> <dict> <key>BootFixDelay</key> <integer>30000</integer> <key>CodecAddress</key> <integer>0</integer> <key>FixType</key> <integer>1</integer> <key>HDEFAddress</key> <string>1F,3</string> <key>JackSenseFix</key> <false/> <key>SkipBootBgCheck</key> <true/> <key>SleepFixDelay</key> <integer>1500</integer> <key>StatusCheckInterval</key> <integer>1500</integer> <key>VerbSendCount</key> <integer>2</integer> </dict> This is all on a GA-Z170X-UD3 (ALC1150) Sorry for late reply. I have added support for skylake chipsets in version 2.3.5. Please try and let me know. Thanks Link to comment Share on other sites More sharing options...
Recommended Posts