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);
(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.