* Lenovo X270 with HDA ALC298
@ 2020-07-25 10:20 Yasushi SHOJI
2020-07-27 18:06 ` Takashi Iwai
0 siblings, 1 reply; 2+ messages in thread
From: Yasushi SHOJI @ 2020-07-25 10:20 UTC (permalink / raw)
To: alsa-devel
Hi all,
I noticed that my 3 years old Lenovo X270 with Intel HDA & RealTek
ALC298 doesn't work with 3.5 mm audio combo jack with 4 pole CTIA. A
bit of googling showed me that `snd-hda-intel` module can take some
options like `model` to run some fix ups. and I have found that
`model=alc298-dell1` seems to at least work. But its gain is way too
low. It's mostly just noise. It sounds like my mic is on the
line-in.
So, I opened `patch_realtek.c` to see what's going on. I found the
following but not sure what the values for `.v.pins` are for.
```
[ALC298_FIXUP_DELL1_MIC_NO_PRESENCE] = {
.type = HDA_FIXUP_PINS,
.v.pins = (const struct hda_pintbl[]) {
{ 0x18, 0x01a1913c }, /* use as headset mic, without its own jack detect */
{ 0x1a, 0x01a1913d }, /* use as headphone mic, without its own jack detect */
{ }
},
.chained = true,
.chain_id = ALC269_FIXUP_HEADSET_MODE
},
```
In `apply_fix(), these `.v.pins` values are passed to
`snd_hda_apply_pincfgs()` but I can't find what values mean. Would
someone please enlighten me?
My questions are
1) How can I found out which pin goes where. There is x270 schematics
on the net but not sure it's correct.
2) What does the value, ie, 0x01a1913d, represent?
Thanks,
--
yashi
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Lenovo X270 with HDA ALC298
2020-07-25 10:20 Lenovo X270 with HDA ALC298 Yasushi SHOJI
@ 2020-07-27 18:06 ` Takashi Iwai
0 siblings, 0 replies; 2+ messages in thread
From: Takashi Iwai @ 2020-07-27 18:06 UTC (permalink / raw)
To: Yasushi SHOJI; +Cc: alsa-devel
On Sat, 25 Jul 2020 12:20:41 +0200,
Yasushi SHOJI wrote:
>
> Hi all,
>
> I noticed that my 3 years old Lenovo X270 with Intel HDA & RealTek
> ALC298 doesn't work with 3.5 mm audio combo jack with 4 pole CTIA. A
> bit of googling showed me that `snd-hda-intel` module can take some
> options like `model` to run some fix ups. and I have found that
> `model=alc298-dell1` seems to at least work. But its gain is way too
> low. It's mostly just noise. It sounds like my mic is on the
> line-in.
>
> So, I opened `patch_realtek.c` to see what's going on. I found the
> following but not sure what the values for `.v.pins` are for.
>
> ```
> [ALC298_FIXUP_DELL1_MIC_NO_PRESENCE] = {
> .type = HDA_FIXUP_PINS,
> .v.pins = (const struct hda_pintbl[]) {
> { 0x18, 0x01a1913c }, /* use as headset mic, without its own jack detect */
> { 0x1a, 0x01a1913d }, /* use as headphone mic, without its own jack detect */
> { }
> },
> .chained = true,
> .chain_id = ALC269_FIXUP_HEADSET_MODE
> },
> ```
>
> In `apply_fix(), these `.v.pins` values are passed to
> `snd_hda_apply_pincfgs()` but I can't find what values mean. Would
> someone please enlighten me?
>
> My questions are
>
> 1) How can I found out which pin goes where. There is x270 schematics
> on the net but not sure it's correct.
It's often done by trial-and-error. Or sometimes the information can
be extracted from Windows driver *.INI file.
Or you can try hdajackretask program for figuring out those.
> 2) What does the value, ie, 0x01a1913d, represent?
At best take a look at HD-audio specification. You can find easily on
the web.
Those are "pin configuration" values where various attributes like the
jack type, the jack color, etc are embedded. The HD-audio driver
looks through those configurations and determine the set up based on
them.
HTH,
Takashi
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-07-27 18:07 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-25 10:20 Lenovo X270 with HDA ALC298 Yasushi SHOJI
2020-07-27 18:06 ` Takashi Iwai
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.