The purpose of this flag is unclear. If the problem is that some machines
have broken misc/NO_PRESENCE bits, they should be fixed by pin fixups.
In addition, this causes jack detection functionality to be flawed on
the M31EI, where there are two jacks without jack detection (which is
properly marked as NO_PRESENCE), but due to ignore_misc_bit, these
jacks are instead being reported as being present but always unplugged.
The purpose of this flag is unclear. If the problem is that some machines
have broken misc/NO_PRESENCE bits, they should be fixed by pin fixups.
In addition, this causes jack detection functionality to be flawed on
the M31EI, where there are two jacks without jack detection (which is
properly marked as NO_PRESENCE), but due to ignore_misc_bit, these
jacks are instead being reported as being present but always unplugged.
BugLink: https:/ /bugs.launchpad .net/bugs/ 939161 pci/hda/ hda_auto_ parser. c | 4 ---- pci/hda/ hda_codec. h | 1 - pci/hda/ hda_jack. c | 5 ++---
Signed-off-by: David Henningsson <email address hidden>
---
sound/
sound/
sound/
3 files changed, 2 insertions(+), 8 deletions(-)
diff --git a/sound/ pci/hda/ hda_auto_ parser. c b/sound/ pci/hda/ hda_auto_ parser. c pci/hda/ hda_auto_ parser. c pci/hda/ hda_auto_ parser. c parse_pin_ defcfg( struct hda_codec *codec, sequences_ hp, 0, sizeof( sequences_ hp));
index 4f7d2df..9acd5a9 100644
--- a/sound/
+++ b/sound/
@@ -141,7 +141,6 @@ int snd_hda_
memset(
assoc_line_out = 0;
- codec-> ignore_ misc_bit = true; parse_pin_ defcfg( struct hda_codec *codec,
end_nid = codec->start_nid + codec->num_nodes;
for (nid = codec->start_nid; nid < end_nid; nid++) {
unsigned int wid_caps = get_wcaps(codec, nid);
@@ -157,9 +156,6 @@ int snd_hda_
continue;
def_conf = snd_hda_ codec_get_ pincfg( codec, nid); defcfg_ misc(snd_ hda_codec_ get_pincfg( codec, nid)) & MISC_NO_ PRESENCE) ) ignore_ misc_bit = false; connect( def_conf) ; pci/hda/ hda_codec. h b/sound/ pci/hda/ hda_codec. h pci/hda/ hda_codec. h pci/hda/ hda_codec. h pci/hda/ hda_jack. c b/sound/ pci/hda/ hda_jack. c pci/hda/ hda_jack. c pci/hda/ hda_jack. c detectable( struct hda_codec *codec, hda_nid_t nid) hda_query_ pin_caps( codec, nid) & AC_PINCAP_ PRES_DETECT) ) >ignore_ misc_bit && misc(snd_ hda_codec_ get_pincfg( codec, nid)) & MISC_NO_ PRESENCE) ) misc(snd_ hda_codec_ get_pincfg( codec, nid)) & MISC_NO_ PRESENCE)
- if (!(get_
- AC_DEFCFG_
- codec->
conn = get_defcfg_
if (conn == AC_JACK_PORT_NONE)
continue;
diff --git a/sound/
index 8fd9f63..ee4ae8e 100644
--- a/sound/
+++ b/sound/
@@ -861,7 +861,6 @@ struct hda_codec {
unsigned int no_sticky_stream:1; /* no sticky-PCM stream assignment */
unsigned int pins_shutup:1; /* pins are shut up */
unsigned int no_trigger_sense:1; /* don't trigger at pin-sensing */
- unsigned int ignore_misc_bit:1; /* ignore MISC_NO_PRESENCE bit */
unsigned int no_jack_detect:1; /* Machine has no jack-detection */
unsigned int pcm_format_first:1; /* PCM format must be set first */
unsigned int epss:1; /* supporting EPSS? */
diff --git a/sound/
index aaccc02..c9333c9 100644
--- a/sound/
+++ b/sound/
@@ -26,9 +26,8 @@ bool is_jack_
return false;
if (!(snd_
return false;
- if (!codec-
- (get_defcfg_
- AC_DEFCFG_
+ if (get_defcfg_
+ AC_DEFCFG_
return false;
if (!(get_wcaps(codec, nid) & AC_WCAP_UNSOL_CAP))
return false;
--
1.7.9.5