NetBSD Problem Report #52912

From www@NetBSD.org  Mon Jan  8 06:48:42 2018
Return-Path: <www@NetBSD.org>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
	by mollari.NetBSD.org (Postfix) with ESMTPS id E64817A220
	for <gnats-bugs@gnats.NetBSD.org>; Mon,  8 Jan 2018 06:48:41 +0000 (UTC)
Message-Id: <20180108064834.E9D587A220@mollari.NetBSD.org>
Date: Mon,  8 Jan 2018 06:48:34 +0000 (UTC)
From: jake.slazenger@yandex.com
Reply-To: jake.slazenger@yandex.com
To: gnats-bugs@NetBSD.org
Subject: hdafg: no sound from jack port on a laptop
X-Send-Pr-Version: www-1.0

>Number:         52912
>Category:       kern
>Synopsis:       hdafg: no sound from jack port on a laptop
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Jan 08 06:50:00 +0000 2018
>Last-Modified:  Fri May 04 08:05:00 +0000 2018
>Originator:     Jake Slazenger
>Release:        CURRENT-8.0-171230
>Organization:
>Environment:
NetBSD localhost 8.0_BETA NetBSD 8.0_BETA (RUSTY) #0: Sun Jan  7 16:30:08 MSK 2018  rusty@localhost:/usr/src/171230/src/sys/arch/amd64/compile/RUSTY amd64
>Description:
When I connect headphones to jack port on my laptop with Realtek ALC268 sound chip, sound is not switching to the headphones and continues to come out from built-in speakers.

For example, on Linux-based systems sound is automatically switches when headphones is connected.

Is it a bug, or I do something wrong and it can be switched manually?
>How-To-Repeat:
Connect headphones to jack port on a laptop with Realtek ALC268 sound chip.
>Fix:

>Audit-Trail:
From: =?UTF-8?Q?Fekete_Zolt=C3=A1n?= <fekete.zoltan@minux.hu>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: kern/52912: hdafg: no sound from jack port on a laptop
Date: Mon, 08 Jan 2018 20:22:05 +0100

 2018-01-08 07:50 időpontban jake.slazenger@yandex.com ezt írta:
 >> Number:         52912
 >> Category:       kern
 >> Synopsis:       hdafg: no sound from jack port on a laptop
 >> Confidential:   no
 >> Severity:       non-critical
 >> Priority:       medium
 >> Responsible:    kern-bug-people
 >> State:          open
 >> Class:          sw-bug
 >> Submitter-Id:   net
 >> Arrival-Date:   Mon Jan 08 06:50:00 +0000 2018
 >> Originator:     Jake Slazenger
 >> Release:        CURRENT-8.0-171230
 >> Organization:
 >> Environment:
 > NetBSD localhost 8.0_BETA NetBSD 8.0_BETA (RUSTY) #0: Sun Jan  7
 > 16:30:08 MSK 2018
 > rusty@localhost:/usr/src/171230/src/sys/arch/amd64/compile/RUSTY amd64
 >> Description:
 > When I connect headphones to jack port on my laptop with Realtek
 > ALC268 sound chip, sound is not switching to the headphones and
 > continues to come out from built-in speakers.
 > 
 > For example, on Linux-based systems sound is automatically switches
 > when headphones is connected.
 > 
 > Is it a bug, or I do something wrong and it can be switched manually?
 >> How-To-Repeat:
 > Connect headphones to jack port on a laptop with Realtek ALC268 sound 
 > chip.
 >> Fix:


 Hi Jake,

 I had a similar problem, and finally I could figure out how to set jack 
 up. Probably your codec is not set up correctly, and it is not a bug. 
 There are several different codecs/setups, and kernel developers do not 
 have the capacity to program each one.

 So, you have to solve it yourself. It's not really obvious however.

 1. You have to read carefully the snd_hda man page. There you will 
 understand how the hda driver groups the different in/out parts

 2. Try to find a technical manual for your sound chip. Similar to mine 
 here (Analog Devices 1984A):
 http://www.analog.com/media/en/technical-documentation/obsolete-data-sheets/AD1984.pdf

 3. Use hdaudioctl get command to gain your current settings. You have to 
 read and decode hexadecimal numbers...

 4. Then modify the xml file you got in point 3, and use hdaudioctl set 
 command with the modified file apply changes. Then try jack. Repeat 3-4 
 until success.

 Another aproach: if you can program, you could modify the kernel, and 
 recompile. Here is my patch, but this is device-dependent:
 https://minux.hu/netbsd-hdaudio-jack-detection

 Good luck!

 I'm working on a script that translates that output file into human 
 readable form. Just time is always an issue.

 Rgds,

 FeZ

From: Jake Slazenger <jake.slazenger@yandex.com>
To: "gnats-bugs@NetBSD.org" <gnats-bugs@netbsd.org>,
	"kern-bug-people@netbsd.org" <kern-bug-people@netbsd.org>,
	"gnats-admin@netbsd.org" <gnats-admin@netbsd.org>,
	"netbsd-bugs@netbsd.org" <netbsd-bugs@netbsd.org>
Cc: 
Subject: Re: kern/52912: hdafg: no sound from jack port on a laptop
Date: Fri, 16 Feb 2018 00:12:30 +0300

 PGRpdj5Gcm9tOiBKYWtlIFNsYXplbmdlciAmbHQ7amFrZS5zbGF6ZW5nZXJAeWFuZGV4LmNvbSZn
 dDs8YnIgLz5UbzogRmVrZXRlIFpvbHTDoW4gJmx0O2Zla2V0ZS56b2x0YW5AbWludXguaHUmZ3Q7
 PGJyIC8+Q2M6IGduYXRzLWJ1Z3NATmV0QlNELm9yZywga2Vybi1idWctcGVvcGxlQG5ldGJzZC5v
 cmcswqAgZ25hdHMtYWRtaW5AbmV0YnNkLm9yZywgbmV0YnNkLWJ1Z3NAbmV0YnNkLm9yZzxiciAv
 PlN1YmplY3Q6IFJlOiBrZXJuLzUyOTEyOiBoZGFmZzogbm8gc291bmQgZnJvbSBqYWNrIHBvcnQg
 b24gYSBsYXB0b3A8YnIgLz5EYXRlOiBGcmksIDE2IEZlYiAyMDE4IDAwOjA0OjU4ICswMzAwPGJy
 IC8+WC1NYWlsZXI6IENsYXdzIE1haWwgMy4xNC4xIChHVEsrIDIuMjQuMzE7IHg4Nl82NC0tbmV0
 YnNkKTxiciAvPjxiciAvPk9uIE1vbizCoCA4IEphbiAyMDE4IDE5OjI1OjAwICswMDAwIChVVEMp
 PGJyIC8+RmVrZXRlIFpvbHTDoW4gJmx0O2Zla2V0ZS56b2x0YW5AbWludXguaHUmZ3Q7IHdyb3Rl
 OjxiciAvPjxiciAvPiZndDsgVGhlIGZvbGxvd2luZyByZXBseSB3YXMgbWFkZSB0byBQUiBrZXJu
 LzUyOTEyOyBpdCBoYXMgYmVlbiBub3RlZCBieTxiciAvPiZndDsgR05BVFMuPGJyIC8+Jmd0Ozxi
 ciAvPiZndDsgRnJvbTogPT9VVEYtOD9RP0Zla2V0ZV9ab2x0PUMzPUExbj89ICZsdDtmZWtldGUu
 em9sdGFuQG1pbnV4Lmh1Jmd0OzxiciAvPiZndDsgVG86IGduYXRzLWJ1Z3NAbmV0YnNkLm9yZzxi
 ciAvPiZndDsgQ2M6PGJyIC8+Jmd0OyBTdWJqZWN0OiBSZToga2Vybi81MjkxMjogaGRhZmc6IG5v
 IHNvdW5kIGZyb20gamFjayBwb3J0IG9uIGEgbGFwdG9wPGJyIC8+Jmd0OyBEYXRlOiBNb24sIDA4
 IEphbiAyMDE4IDIwOjIyOjA1ICswMTAwPGJyIC8+Jmd0OzxiciAvPiZndDvCoCAyMDE4LTAxLTA4
 IDA3OjUwIGlkxZFwb250YmFuIGpha2Uuc2xhemVuZ2VyQHlhbmRleC5jb20gZXp0IMOtcnRhOiDC
 oDxiciAvPiZndDvCoCAmZ3Q7Jmd0OyBOdW1iZXI6wqDCoMKgwqDCoMKgwqDCoCA1MjkxMjxiciAv
 PiZndDvCoCAmZ3Q7Jmd0OyBDYXRlZ29yeTrCoMKgwqDCoMKgwqAga2VybjxiciAvPiZndDvCoCAm
 Z3Q7Jmd0OyBTeW5vcHNpczrCoMKgwqDCoMKgwqAgaGRhZmc6IG5vIHNvdW5kIGZyb20gamFjayBw
 b3J0IG9uIGEgbGFwdG9wPGJyIC8+Jmd0O8KgICZndDsmZ3Q7IENvbmZpZGVudGlhbDrCoMKgIG5v
 PGJyIC8+Jmd0O8KgICZndDsmZ3Q7IFNldmVyaXR5OsKgwqDCoMKgwqDCoCBub24tY3JpdGljYWw8
 YnIgLz4mZ3Q7wqAgJmd0OyZndDsgUHJpb3JpdHk6wqDCoMKgwqDCoMKgIG1lZGl1bTxiciAvPiZn
 dDvCoCAmZ3Q7Jmd0OyBSZXNwb25zaWJsZTrCoMKgwqAga2Vybi1idWctcGVvcGxlPGJyIC8+Jmd0
 O8KgICZndDsmZ3Q7IFN0YXRlOsKgwqDCoMKgwqDCoMKgwqDCoCBvcGVuPGJyIC8+Jmd0O8KgICZn
 dDsmZ3Q7IENsYXNzOsKgwqDCoMKgwqDCoMKgwqDCoCBzdy1idWc8YnIgLz4mZ3Q7wqAgJmd0OyZn
 dDsgU3VibWl0dGVyLUlkOsKgwqAgbmV0PGJyIC8+Jmd0O8KgICZndDsmZ3Q7IEFycml2YWwtRGF0
 ZTrCoMKgIE1vbiBKYW4gMDggMDY6NTA6MDAgKzAwMDAgMjAxODxiciAvPiZndDvCoCAmZ3Q7Jmd0
 OyBPcmlnaW5hdG9yOsKgwqDCoMKgIEpha2UgU2xhemVuZ2VyPGJyIC8+Jmd0O8KgICZndDsmZ3Q7
 IFJlbGVhc2U6wqDCoMKgwqDCoMKgwqAgQ1VSUkVOVC04LjAtMTcxMjMwPGJyIC8+Jmd0O8KgICZn
 dDsmZ3Q7IE9yZ2FuaXphdGlvbjo8YnIgLz4mZ3Q7wqAgJmd0OyZndDsgRW52aXJvbm1lbnQ6wqDC
 oCDCoDxiciAvPiZndDvCoCAmZ3Q7IE5ldEJTRCBsb2NhbGhvc3QgOC4wX0JFVEEgTmV0QlNEIDgu
 MF9CRVRBIChSVVNUWSkgIzA6IFN1biBKYW7CoCA3PGJyIC8+Jmd0O8KgICZndDsgMTY6MzA6MDgg
 TVNLIDIwMTg8YnIgLz4mZ3Q7wqAgJmd0OyBydXN0eUBsb2NhbGhvc3Q6L3Vzci9zcmMvMTcxMjMw
 L3NyYy9zeXMvYXJjaC9hbWQ2NC9jb21waWxlL1JVU1RZPGJyIC8+Jmd0O8KgICZndDsgYW1kNjTC
 oMKgIMKgPGJyIC8+Jmd0O8KgICZndDsmZ3Q7IERlc2NyaXB0aW9uOsKgwqAgwqA8YnIgLz4mZ3Q7
 wqAgJmd0OyBXaGVuIEkgY29ubmVjdCBoZWFkcGhvbmVzIHRvIGphY2sgcG9ydCBvbiBteSBsYXB0
 b3Agd2l0aCBSZWFsdGVrPGJyIC8+Jmd0O8KgICZndDsgQUxDMjY4IHNvdW5kIGNoaXAsIHNvdW5k
 IGlzIG5vdCBzd2l0Y2hpbmcgdG8gdGhlIGhlYWRwaG9uZXMgYW5kPGJyIC8+Jmd0O8KgICZndDsg
 Y29udGludWVzIHRvIGNvbWUgb3V0IGZyb20gYnVpbHQtaW4gc3BlYWtlcnMuPGJyIC8+Jmd0O8Kg
 ICZndDs8YnIgLz4mZ3Q7wqAgJmd0OyBGb3IgZXhhbXBsZSwgb24gTGludXgtYmFzZWQgc3lzdGVt
 cyBzb3VuZCBpcyBhdXRvbWF0aWNhbGx5IHN3aXRjaGVzPGJyIC8+Jmd0O8KgICZndDsgd2hlbiBo
 ZWFkcGhvbmVzIGlzIGNvbm5lY3RlZC48YnIgLz4mZ3Q7wqAgJmd0OzxiciAvPiZndDvCoCAmZ3Q7
 IElzIGl0IGEgYnVnLCBvciBJIGRvIHNvbWV0aGluZyB3cm9uZyBhbmQgaXQgY2FuIGJlIHN3aXRj
 aGVkPGJyIC8+Jmd0O8KgICZndDsgbWFudWFsbHk/wqDCoCDCoDxiciAvPiZndDvCoCAmZ3Q7Jmd0
 OyBIb3ctVG8tUmVwZWF0OsKgwqAgwqA8YnIgLz4mZ3Q7wqAgJmd0OyBDb25uZWN0IGhlYWRwaG9u
 ZXMgdG8gamFjayBwb3J0IG9uIGEgbGFwdG9wIHdpdGggUmVhbHRlayBBTEMyNjg8YnIgLz4mZ3Q7
 wqAgJmd0OyBzb3VuZCBjaGlwLsKgwqAgwqA8YnIgLz4mZ3Q7wqAgJmd0OyZndDsgRml4OsKgwqAg
 wqA8YnIgLz4mZ3Q7IMKgPGJyIC8+Jmd0OyDCoDxiciAvPiZndDvCoCBIaSBKYWtlLDxiciAvPiZn
 dDsgwqA8YnIgLz4mZ3Q7wqAgSSBoYWQgYSBzaW1pbGFyIHByb2JsZW0sIGFuZCBmaW5hbGx5IEkg
 Y291bGQgZmlndXJlIG91dCBob3cgdG8gc2V0PGJyIC8+Jmd0OyBqYWNrIHVwLiBQcm9iYWJseSB5
 b3VyIGNvZGVjIGlzIG5vdCBzZXQgdXAgY29ycmVjdGx5LCBhbmQgaXQgaXMgbm90IGE8YnIgLz4m
 Z3Q7IGJ1Zy4gVGhlcmUgYXJlIHNldmVyYWwgZGlmZmVyZW50IGNvZGVjcy9zZXR1cHMsIGFuZCBr
 ZXJuZWwgZGV2ZWxvcGVyczxiciAvPiZndDsgZG8gbm90IGhhdmUgdGhlIGNhcGFjaXR5IHRvIHBy
 b2dyYW0gZWFjaCBvbmUuPGJyIC8+Jmd0OyDCoDxiciAvPiZndDvCoCBTbywgeW91IGhhdmUgdG8g
 c29sdmUgaXQgeW91cnNlbGYuIEl0J3Mgbm90IHJlYWxseSBvYnZpb3VzIGhvd2V2ZXIuPGJyIC8+
 Jmd0OyDCoDxiciAvPiZndDvCoCAxLiBZb3UgaGF2ZSB0byByZWFkIGNhcmVmdWxseSB0aGUgc25k
 X2hkYSBtYW4gcGFnZS4gVGhlcmUgeW91IHdpbGw8YnIgLz4mZ3Q7wqAgdW5kZXJzdGFuZCBob3cg
 dGhlIGhkYSBkcml2ZXIgZ3JvdXBzIHRoZSBkaWZmZXJlbnQgaW4vb3V0IHBhcnRzPGJyIC8+Jmd0
 OyDCoDxiciAvPiZndDvCoCAyLiBUcnkgdG8gZmluZCBhIHRlY2huaWNhbCBtYW51YWwgZm9yIHlv
 dXIgc291bmQgY2hpcC4gU2ltaWxhciB0bzxiciAvPiZndDsgbWluZSBoZXJlIChBbmFsb2cgRGV2
 aWNlcyAxOTg0QSk6PGJyIC8+Jmd0O8KgIGh0dHA6Ly93d3cuYW5hbG9nLmNvbS9tZWRpYS9lbi90
 ZWNobmljYWwtZG9jdW1lbnRhdGlvbi9vYnNvbGV0ZS1kYXRhLXNoZWV0cy9BRDE5ODQucGRmPGJy
 IC8+Jmd0OyDCoDxiciAvPiZndDvCoCAzLiBVc2UgaGRhdWRpb2N0bCBnZXQgY29tbWFuZCB0byBn
 YWluIHlvdXIgY3VycmVudCBzZXR0aW5ncy4gWW91PGJyIC8+Jmd0OyBoYXZlIHRvIHJlYWQgYW5k
 IGRlY29kZSBoZXhhZGVjaW1hbCBudW1iZXJzLi4uPGJyIC8+Jmd0OyDCoDxiciAvPiZndDvCoCA0
 LiBUaGVuIG1vZGlmeSB0aGUgeG1sIGZpbGUgeW91IGdvdCBpbiBwb2ludCAzLCBhbmQgdXNlIGhk
 YXVkaW9jdGw8YnIgLz4mZ3Q7IHNldCBjb21tYW5kIHdpdGggdGhlIG1vZGlmaWVkIGZpbGUgYXBw
 bHkgY2hhbmdlcy4gVGhlbiB0cnkgamFjay48YnIgLz4mZ3Q7IFJlcGVhdCAzLTQgdW50aWwgc3Vj
 Y2Vzcy48YnIgLz4mZ3Q7IMKgPGJyIC8+Jmd0O8KgIEFub3RoZXIgYXByb2FjaDogaWYgeW91IGNh
 biBwcm9ncmFtLCB5b3UgY291bGQgbW9kaWZ5IHRoZSBrZXJuZWwsPGJyIC8+Jmd0OyBhbmQgcmVj
 b21waWxlLiBIZXJlIGlzIG15IHBhdGNoLCBidXQgdGhpcyBpcyBkZXZpY2UtZGVwZW5kZW50Ojxi
 ciAvPiZndDvCoCBodHRwczovL21pbnV4Lmh1L25ldGJzZC1oZGF1ZGlvLWphY2stZGV0ZWN0aW9u
 PGJyIC8+Jmd0OyDCoDxiciAvPiZndDvCoCBHb29kIGx1Y2shPGJyIC8+Jmd0OyDCoDxiciAvPiZn
 dDvCoCBJJ20gd29ya2luZyBvbiBhIHNjcmlwdCB0aGF0IHRyYW5zbGF0ZXMgdGhhdCBvdXRwdXQg
 ZmlsZSBpbnRvIGh1bWFuPGJyIC8+Jmd0O8KgIHJlYWRhYmxlIGZvcm0uIEp1c3QgdGltZSBpcyBh
 bHdheXMgYW4gaXNzdWUuPGJyIC8+Jmd0OyDCoDxiciAvPiZndDvCoCBSZ2RzLDxiciAvPiZndDsg
 wqA8YnIgLz4mZ3Q7wqAgRmVaPGJyIC8+Jmd0O8KgwqAgwqA8YnIgLz48YnIgLz5UaGFuayB5b3Ug
 dmVyeSBtdWNoLCBGZVosIGZvciB0aGUgc3VjaCBkZXRhaWxlZCBhbnN3ZXIhPGJyIC8+PGJyIC8+
 QnV0LCBhbnl3YXksIEkgZGlkbid0IHVuZGVyc3RhbmQgaG93IGFzc29jaWF0aW9uIGFuZCBzZXF1
 ZW5jZSBudW1iZXJzPGJyIC8+d29ya3MgKHllcywgSSdtIGEgbGl0dGxlIGJpdCBzdHVwaWQpLjxi
 ciAvPjxiciAvPlNvIEkgbG9va2VkIHRvIEZyZWVCU0Qgc291cmNlcyB0byBmaW5kIHJlcXVpcmVk
 IGFzc29jIGFuZCBzZXEgbnVtYmVyczo8YnIgLz5odHRwczovL2dpdGh1Yi5jb20vZnJlZWJzZC9m
 cmVlYnNkL2Jsb2IvZDg1OTZmNmY2ODdhNjRiOTk0YjA2NWYzMDU4MTU1NDA1ZGZjMzlkYi9zeXMv
 ZGV2L3NvdW5kL3BjaS9oZGEvaGRhYV9wYXRjaGVzLmM8YnIgLz48YnIgLz5BbmQgdXNlZCBpdCB3
 aXRoIEZla2V0ZSdzIHBhdGNoZXMuLi4gQW5kIGl0IHdvcmtlZCE8YnIgLz48YnIgLz5TbyBwcm9i
 bGVtIGlzIHBhcnRpYWxseSBzb2x2ZWQsIEkgdGhpbmsuPGJyIC8+PGJyIC8+QW5kIGFnYWluLCB0
 aGFuayB5b3UgdmVyeSBtdWNoIGZvciB0aGUgaGVscCwgRmVaITxiciAvPjxiciAvPk9oLCBhbmQg
 eWVzLiBJJ20gc29ycnkgZm9yIG15IHZlcnkgYmFkIEVuZ2xpc2guPGJyIC8+PGJyIC8+PGJyIC8+
 PGJyIC8+UGF0Y2ggZm9yIDcuMS4xIGtlcm5lbDo8YnIgLz4tLS0gc3JjL3N5cy9kZXYvcGNpL2hk
 YXVkaW8vaGRhZmcuYy5vcmlnwqDCoCDCoDIwMTgtMDItMTUgMTU6MjM6MjQuMDAwMDAwMDAwICsw
 MzAwPGJyIC8+KysrIHNyYy9zeXMvZGV2L3BjaS9oZGF1ZGlvL2hkYWZnLmPCoMKgIMKgMjAxOC0w
 Mi0xNSAyMzozNzo0OS4wMDAwMDAwMDAgKzAzMDA8YnIgLz5AQCAtNjU3LDYgKzY1NywyMSBAQDxi
 ciAvPsKgwqDCoCDCoH08YnIgLz7CoCNlbmRpZjxiciAvPsKgPGJyIC8+K8KgwqDCoMKgwqDCoMKg
 IC8qIFhYWCBBTEMyNjggKi88YnIgLz4rwqDCoMKgwqDCoMKgwqAgaWYgKHNjLSZndDtzY192ZW5k
 b3IgPT0gSERBX1ZFTkRPUl9SRUFMVEVLICZhbXA7JmFtcDsgc2MtJmd0O3NjX3Byb2R1Y3QgPT0g
 MHgwMjY4KSB7PGJyIC8+K8KgwqAgwqDCoMKgwqAgaWYgKENPUF9DRkdfUE9SVF9DT05ORUNUSVZJ
 VFkody0mZ3Q7d19waW4uY29uZmlnKSA9PSBDT1BfUE9SVF9KQUNLKSB7PGJyIC8+K8KgwqAgwqDC
 oMKgwqDCoMKgwqDCoCAvKiBuaWQgMjAgKi88YnIgLz4rwqDCoCDCoMKgwqDCoMKgwqDCoMKgIGlm
 ICh3LSZndDt3X25pZCA9PSAweDE0KSB7PGJyIC8+K8KgwqAgwqDCoMKgIMKgwqAgLyogc2V0IGFz
 c29jPTEgKi88YnIgLz4rwqDCoCDCoMKgwqAgwqDCoCB3LSZndDt3X3Bpbi5jb25maWcgJmFtcDs9
 IH4weGYwOzxiciAvPivCoMKgIMKgwqDCoCDCoMKgIHctJmd0O3dfcGluLmNvbmZpZyB8PSAweDEw
 OzxiciAvPivCoMKgIMKgwqDCoCDCoMKgIC8qIHNldCBzZXE9MTUgKi/CoMKgIMKgwqDCoCDCoDxi
 ciAvPivCoMKgIMKgwqDCoCDCoMKgIHctJmd0O3dfcGluLmNvbmZpZyAmYW1wOz0gfjB4MGY7PGJy
 IC8+K8KgwqAgwqDCoMKgIMKgwqAgdy0mZ3Q7d19waW4uY29uZmlnIHw9IDB4MGY7PGJyIC8+K8Kg
 wqAgwqDCoMKgIMKgfTxiciAvPivCoMKgIMKgwqDCoMKgIH08YnIgLz4rwqDCoCDCoH08YnIgLz4r
 wqAgwqA8YnIgLz7CoMKgwqAgwqBjb25uID0gQ09QX0NGR19QT1JUX0NPTk5FQ1RJVklUWSh3LSZn
 dDt3X3Bpbi5jb25maWcpOzxiciAvPsKgwqDCoCDCoGNvbG9yID0gQ09QX0NGR19DT0xPUih3LSZn
 dDt3X3Bpbi5jb25maWcpOzxiciAvPsKgwqDCoCDCoGRlZmRldiA9IENPUF9DRkdfREVGQVVMVF9E
 RVZJQ0Uody0mZ3Q7d19waW4uY29uZmlnKTs8YnIgLz7CoDwvZGl2PjxkaXY+wqA8L2Rpdj4=

From: Jake Slazenger <jake.slazenger@yandex.com>
To: Fekete =?UTF-8?B?Wm9sdMOhbg==?= <fekete.zoltan@minux.hu>
Cc: gnats-bugs@NetBSD.org, kern-bug-people@netbsd.org,
 gnats-admin@netbsd.org, netbsd-bugs@netbsd.org
Subject: Re: kern/52912: hdafg: no sound from jack port on a laptop
Date: Fri, 16 Feb 2018 00:04:58 +0300

 On Mon,  8 Jan 2018 19:25:00 +0000 (UTC)
 Fekete Zolt=C3=A1n <fekete.zoltan@minux.hu> wrote:

 > The following reply was made to PR kern/52912; it has been noted by
 > GNATS.
 >=20
 > From: =3D?UTF-8?Q?Fekete_Zolt=3DC3=3DA1n?=3D <fekete.zoltan@minux.hu>
 > To: gnats-bugs@netbsd.org
 > Cc:=20
 > Subject: Re: kern/52912: hdafg: no sound from jack port on a laptop
 > Date: Mon, 08 Jan 2018 20:22:05 +0100
 >=20
 >  2018-01-08 07:50 id=C5=91pontban jake.slazenger@yandex.com ezt =C3=ADrta:
 >  >> Number:         52912
 >  >> Category:       kern
 >  >> Synopsis:       hdafg: no sound from jack port on a laptop
 >  >> Confidential:   no
 >  >> Severity:       non-critical
 >  >> Priority:       medium
 >  >> Responsible:    kern-bug-people
 >  >> State:          open
 >  >> Class:          sw-bug
 >  >> Submitter-Id:   net
 >  >> Arrival-Date:   Mon Jan 08 06:50:00 +0000 2018
 >  >> Originator:     Jake Slazenger
 >  >> Release:        CURRENT-8.0-171230
 >  >> Organization:
 >  >> Environment: =20
 >  > NetBSD localhost 8.0_BETA NetBSD 8.0_BETA (RUSTY) #0: Sun Jan  7
 >  > 16:30:08 MSK 2018
 >  > rusty@localhost:/usr/src/171230/src/sys/arch/amd64/compile/RUSTY
 >  > amd64 =20
 >  >> Description: =20
 >  > When I connect headphones to jack port on my laptop with Realtek
 >  > ALC268 sound chip, sound is not switching to the headphones and
 >  > continues to come out from built-in speakers.
 >  >=20
 >  > For example, on Linux-based systems sound is automatically switches
 >  > when headphones is connected.
 >  >=20
 >  > Is it a bug, or I do something wrong and it can be switched
 >  > manually? =20
 >  >> How-To-Repeat: =20
 >  > Connect headphones to jack port on a laptop with Realtek ALC268
 >  > sound chip. =20
 >  >> Fix: =20
 > =20
 > =20
 >  Hi Jake,
 > =20
 >  I had a similar problem, and finally I could figure out how to set
 > jack up. Probably your codec is not set up correctly, and it is not a
 > bug. There are several different codecs/setups, and kernel developers
 > do not have the capacity to program each one.
 > =20
 >  So, you have to solve it yourself. It's not really obvious however.
 > =20
 >  1. You have to read carefully the snd_hda man page. There you will=20
 >  understand how the hda driver groups the different in/out parts
 > =20
 >  2. Try to find a technical manual for your sound chip. Similar to
 > mine here (Analog Devices 1984A):
 >  http://www.analog.com/media/en/technical-documentation/obsolete-data-she=
 ets/AD1984.pdf
 > =20
 >  3. Use hdaudioctl get command to gain your current settings. You
 > have to read and decode hexadecimal numbers...
 > =20
 >  4. Then modify the xml file you got in point 3, and use hdaudioctl
 > set command with the modified file apply changes. Then try jack.
 > Repeat 3-4 until success.
 > =20
 >  Another aproach: if you can program, you could modify the kernel,
 > and recompile. Here is my patch, but this is device-dependent:
 >  https://minux.hu/netbsd-hdaudio-jack-detection
 > =20
 >  Good luck!
 > =20
 >  I'm working on a script that translates that output file into human=20
 >  readable form. Just time is always an issue.
 > =20
 >  Rgds,
 > =20
 >  FeZ
 > =20

 Thank you very much, FeZ, for the such detailed answer!

 But, anyway, I didn't understand how association and sequence numbers
 works (yes, I'm a little bit stupid).

 So I looked to FreeBSD sources to find required assoc and seq numbers:
 https://github.com/freebsd/freebsd/blob/d8596f6f687a64b994b065f3058155405df=
 c39db/sys/dev/sound/pci/hda/hdaa_patches.c

 And used it with Fekete's patches... And it worked!

 So problem is partially solved, I think.

 And again, thank you very much for the help, FeZ!

 Oh, and yes. I'm sorry for my very bad English.



 Patch for 7.1.1 kernel:
 --- src/sys/dev/pci/hdaudio/hdafg.c.orig	2018-02-15 15:23:24.000000000 +0300
 +++ src/sys/dev/pci/hdaudio/hdafg.c	2018-02-15 23:37:49.000000000 +0300
 @@ -657,6 +657,21 @@
  	}
  #endif
 =20
 +        /* XXX ALC268 */
 +        if (sc->sc_vendor =3D=3D HDA_VENDOR_REALTEK && sc->sc_product =3D=
 =3D 0x0268) {
 +	    if (COP_CFG_PORT_CONNECTIVITY(w->w_pin.config) =3D=3D COP_PORT_JACK) {
 +	        /* nid 20 */=20
 +	        if (w->w_nid =3D=3D 0x14) {
 +		  /* set assoc=3D1 */
 +		  w->w_pin.config &=3D ~0xf0;
 +		  w->w_pin.config |=3D 0x10;
 +		  /* set seq=3D15 */	=09
 +		  w->w_pin.config &=3D ~0x0f;
 +		  w->w_pin.config |=3D 0x0f;
 +		}
 +	    }
 +	}
 +  =20
  	conn =3D COP_CFG_PORT_CONNECTIVITY(w->w_pin.config);
  	color =3D COP_CFG_COLOR(w->w_pin.config);
  	defdev =3D COP_CFG_DEFAULT_DEVICE(w->w_pin.config);

From: Jake Slazenger <jake.slazenger@yandex.com>
To: kern-bug-people@netbsd.org, gnats-admin@netbsd.org,
 netbsd-bugs@netbsd.org, jake.slazenger@yandex.com
Cc: gnats-bugs@NetBSD.org
Subject: Re: kern/52912: hdafg: no sound from jack port on a laptop
Date: Fri, 16 Feb 2018 00:33:45 +0300

 ...And I'm sorry for this giberrish symbols above.

From: Jake Slazenger <jake.slazenger@yandex.com>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: kern/52912: hdafg: no sound from jack port on a laptop
Date: Fri, 16 Feb 2018 00:44:28 +0300

 ...Oh... Patch is broken by Claws-mail auto-wrapping...
 Em... Sorry...

 --- src/sys/dev/pci/hdaudio/hdafg.c.orig	2018-02-15 15:23:24.000000000 +0300
 +++ src/sys/dev/pci/hdaudio/hdafg.c	2018-02-15 23:37:49.000000000 +0300
 @@ -657,6 +657,21 @@
  	}
  #endif

 +        /* XXX ALC268 */
 +        if (sc->sc_vendor == HDA_VENDOR_REALTEK && sc->sc_product == 0x0268) {
 +	    if (COP_CFG_PORT_CONNECTIVITY(w->w_pin.config) == COP_PORT_JACK) {
 +	        /* nid 20 */ 
 +	        if (w->w_nid == 0x14) {
 +		  /* set assoc=1 */
 +		  w->w_pin.config &= ~0xf0;
 +		  w->w_pin.config |= 0x10;
 +		  /* set seq=15 */		
 +		  w->w_pin.config &= ~0x0f;
 +		  w->w_pin.config |= 0x0f;
 +		}
 +	    }
 +	}
 +   
  	conn = COP_CFG_PORT_CONNECTIVITY(w->w_pin.config);
  	color = COP_CFG_COLOR(w->w_pin.config);
  	defdev = COP_CFG_DEFAULT_DEVICE(w->w_pin.config);

From: =?UTF-8?B?RmVrZXRlIFpvbHTDoW4=?= <fekete.zoltan@minux.hu>
To: Jake Slazenger <jake.slazenger@yandex.com>
Cc: <gnats-bugs@NetBSD.org>, <kern-bug-people@netbsd.org>, <gnats-admin@netbsd.org>, <netbsd-bugs@netbsd.org>
Subject: Re: kern/52912: hdafg: no sound from jack port on a laptop
Date: Fri, 16 Feb 2018 07:08:58 +0100

 Hi Jake,

 I'm really glad I could help. And don't think you are alone who doesn't 
 understand snd_hda logic easily.

 The skeleton is like this:

 - each associations should contain only one direction. Either in or just 
 out pins. They are just group of pins to handle together.
 - sequences tell the pins their role within an association. And this is our 
 case: Tell sequence 1 to speakers by default. Then tell sequence 15 to the 
 one with electronic switch (aka. Jack). This tells the codec to mute other 
 pins (speakers in our case), and route the output to this pin if connected.

 Congratulations for your customized patch!
 I suggest to test mixerctl. If you see odd things, you can improve the 
 patch if necessary (for example mic jack, etc.).

 Cheers,

 FeZ


 On 2018. február 15. 22:29:19 Jake Slazenger <jake.slazenger@yandex.com> wrote:

 > On Mon,  8 Jan 2018 19:25:00 +0000 (UTC)
 > Fekete Zoltán <fekete.zoltan@minux.hu> wrote:
 >
 >> The following reply was made to PR kern/52912; it has been noted by
 >> GNATS.
 >>
 >> From: =?UTF-8?Q?Fekete_Zolt=C3=A1n?= <fekete.zoltan@minux.hu>
 >> To: gnats-bugs@netbsd.org
 >> Cc:
 >> Subject: Re: kern/52912: hdafg: no sound from jack port on a laptop
 >> Date: Mon, 08 Jan 2018 20:22:05 +0100
 >>
 >>  2018-01-08 07:50 időpontban jake.slazenger@yandex.com ezt írta:
 >>  >> Number:         52912
 >>  >> Category:       kern
 >>  >> Synopsis:       hdafg: no sound from jack port on a laptop
 >>  >> Confidential:   no
 >>  >> Severity:       non-critical
 >>  >> Priority:       medium
 >>  >> Responsible:    kern-bug-people
 >>  >> State:          open
 >>  >> Class:          sw-bug
 >>  >> Submitter-Id:   net
 >>  >> Arrival-Date:   Mon Jan 08 06:50:00 +0000 2018
 >>  >> Originator:     Jake Slazenger
 >>  >> Release:        CURRENT-8.0-171230
 >>  >> Organization:
 >>  >> Environment:
 >>  > NetBSD localhost 8.0_BETA NetBSD 8.0_BETA (RUSTY) #0: Sun Jan  7
 >>  > 16:30:08 MSK 2018
 >>  > rusty@localhost:/usr/src/171230/src/sys/arch/amd64/compile/RUSTY
 >>  > amd64
 >>  >> Description:
 >>  > When I connect headphones to jack port on my laptop with Realtek
 >>  > ALC268 sound chip, sound is not switching to the headphones and
 >>  > continues to come out from built-in speakers.
 >>  >
 >>  > For example, on Linux-based systems sound is automatically switches
 >>  > when headphones is connected.
 >>  >
 >>  > Is it a bug, or I do something wrong and it can be switched
 >>  > manually?
 >>  >> How-To-Repeat:
 >>  > Connect headphones to jack port on a laptop with Realtek ALC268
 >>  > sound chip.
 >>  >> Fix:
 >>
 >>
 >>  Hi Jake,
 >>
 >>  I had a similar problem, and finally I could figure out how to set
 >> jack up. Probably your codec is not set up correctly, and it is not a
 >> bug. There are several different codecs/setups, and kernel developers
 >> do not have the capacity to program each one.
 >>
 >>  So, you have to solve it yourself. It's not really obvious however.
 >>
 >>  1. You have to read carefully the snd_hda man page. There you will
 >>  understand how the hda driver groups the different in/out parts
 >>
 >>  2. Try to find a technical manual for your sound chip. Similar to
 >> mine here (Analog Devices 1984A):
 >>  http://www.analog.com/media/en/technical-documentation/obsolete-data-sheets/AD1984.pdf
 >>
 >>  3. Use hdaudioctl get command to gain your current settings. You
 >> have to read and decode hexadecimal numbers...
 >>
 >>  4. Then modify the xml file you got in point 3, and use hdaudioctl
 >> set command with the modified file apply changes. Then try jack.
 >> Repeat 3-4 until success.
 >>
 >>  Another aproach: if you can program, you could modify the kernel,
 >> and recompile. Here is my patch, but this is device-dependent:
 >>  https://minux.hu/netbsd-hdaudio-jack-detection
 >>
 >>  Good luck!
 >>
 >>  I'm working on a script that translates that output file into human
 >>  readable form. Just time is always an issue.
 >>
 >>  Rgds,
 >>
 >>  FeZ
 >>
 >
 > Thank you very much, FeZ, for the such detailed answer!
 >
 > But, anyway, I didn't understand how association and sequence numbers
 > works (yes, I'm a little bit stupid).
 >
 > So I looked to FreeBSD sources to find required assoc and seq numbers:
 > https://github.com/freebsd/freebsd/blob/d8596f6f687a64b994b065f3058155405dfc39db/sys/dev/sound/pci/hda/hdaa_patches.c
 >
 > And used it with Fekete's patches... And it worked!
 >
 > So problem is partially solved, I think.
 >
 > And again, thank you very much for the help, FeZ!
 >
 > Oh, and yes. I'm sorry for my very bad English.
 >
 >
 >
 > Patch for 7.1.1 kernel:
 > --- src/sys/dev/pci/hdaudio/hdafg.c.orig	2018-02-15 15:23:24.000000000 +0300
 > +++ src/sys/dev/pci/hdaudio/hdafg.c	2018-02-15 23:37:49.000000000 +0300
 > @@ -657,6 +657,21 @@
 >  	}
 >  #endif
 >
 > +        /* XXX ALC268 */
 > +        if (sc->sc_vendor == HDA_VENDOR_REALTEK && sc->sc_product == 0x0268) {
 > +	    if (COP_CFG_PORT_CONNECTIVITY(w->w_pin.config) == COP_PORT_JACK) {
 > +	        /* nid 20 */
 > +	        if (w->w_nid == 0x14) {
 > +		  /* set assoc=1 */
 > +		  w->w_pin.config &= ~0xf0;
 > +		  w->w_pin.config |= 0x10;
 > +		  /* set seq=15 */		
 > +		  w->w_pin.config &= ~0x0f;
 > +		  w->w_pin.config |= 0x0f;
 > +		}
 > +	    }
 > +	}
 > +
 >  	conn = COP_CFG_PORT_CONNECTIVITY(w->w_pin.config);
 >  	color = COP_CFG_COLOR(w->w_pin.config);
 >  	defdev = COP_CFG_DEFAULT_DEVICE(w->w_pin.config);


From: Jake Slazenger <jake.slazenger@yandex.com>
To: gnats-admin@netbsd.org
Cc: gnats-bugs@NetBSD.org
Subject: Re: kern/52912: hdafg: no sound from jack port on a laptop
Date: Fri, 4 May 2018 11:04:18 +0300

 For NetBSD-8.0_RC1, name of the 'HDA_VENDOR_REALTEK' constant should be
 changed to 'HDAUDIO_VENDOR_REALTEK'. And the code, in total, should
 look like the patch below:

 --- sys/dev/hdaudio/hdafg.c.old	2017-08-20 04:50:38.000000000 +0000
 +++ sys/dev/hdaudio/hdafg.c
 @@ -664,6 +664,22 @@ hdafg_widget_pin_parse(struct hdaudio_wi
  	}
  #endif

 +    /* XXX ALC268 */
 +	if (sc->sc_vendor == HDAUDIO_VENDOR_REALTEK && sc->sc_product == 0x0268) {
 +	    if (COP_CFG_PORT_CONNECTIVITY(w->w_pin.config) == COP_PORT_JACK) {
 +	        /* nid 20 */ 
 +	        if (w->w_nid == 0x14) {
 +		  /* set assoc=1 */
 +		  w->w_pin.config &= ~0xf0;
 +		  w->w_pin.config |= 0x10;
 +		  /* set seq=15 */		
 +		  w->w_pin.config &= ~0x0f;
 +		  w->w_pin.config |= 0x0f;
 +			}
 +	    }
 +	}
 +   
 +
  	conn = COP_CFG_PORT_CONNECTIVITY(w->w_pin.config);
  	color = COP_CFG_COLOR(w->w_pin.config);
  	defdev = COP_CFG_DEFAULT_DEVICE(w->w_pin.config);

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.43 2018/01/16 07:36:43 maya Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2017 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.