[Midnightbsd-cvs] src [8385] trunk/sys/dev/sound/pci/hda/hdaa.c: set all pins initial connection status to unknown.
laffer1 at midnightbsd.org
laffer1 at midnightbsd.org
Sun Sep 18 15:17:57 EDT 2016
Revision: 8385
http://svnweb.midnightbsd.org/src/?rev=8385
Author: laffer1
Date: 2016-09-18 15:17:57 -0400 (Sun, 18 Sep 2016)
Log Message:
-----------
set all pins initial connection status to unknown.
Modified Paths:
--------------
trunk/sys/dev/sound/pci/hda/hdaa.c
Modified: trunk/sys/dev/sound/pci/hda/hdaa.c
===================================================================
--- trunk/sys/dev/sound/pci/hda/hdaa.c 2016-09-18 19:17:34 UTC (rev 8384)
+++ trunk/sys/dev/sound/pci/hda/hdaa.c 2016-09-18 19:17:57 UTC (rev 8385)
@@ -400,7 +400,7 @@
struct hdaa_devinfo *devinfo = w->devinfo;
struct hdaa_audio_as *as;
uint32_t res;
- int connected;
+ int connected, old;
if (w->enable == 0 || w->type !=
HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_PIN_COMPLEX)
@@ -414,19 +414,22 @@
connected = (res & HDA_CMD_GET_PIN_SENSE_PRESENCE_DETECT) != 0;
if (devinfo->quirks & HDAA_QUIRK_SENSEINV)
connected = !connected;
- if (connected == w->wclass.pin.connected)
+ old = w->wclass.pin.connected;
+ if (connected == old)
return;
w->wclass.pin.connected = connected;
HDA_BOOTVERBOSE(
- device_printf(devinfo->dev,
- "Pin sense: nid=%d sence=0x%08x (%sconnected)\n",
- w->nid, res, !w->wclass.pin.connected ? "dis" : "");
+ if (connected || old != 2) {
+ device_printf(devinfo->dev,
+ "Pin sense: nid=%d sence=0x%08x (%sconnected)\n",
+ w->nid, res, !connected ? "dis" : "");
+ }
);
as = &devinfo->as[w->bindas];
if (as->hpredir >= 0 && as->pins[15] == w->nid)
hdaa_hpredir_handler(w);
- if (as->dir == HDAA_CTL_IN)
+ if (as->dir == HDAA_CTL_IN && old != 2)
hdaa_autorecsrc_handler(as, w);
}
@@ -1151,6 +1154,7 @@
HDA_CMD_GET_PARAMETER(0, w->nid, HDA_PARAM_PIN_CAP));
w->wclass.pin.ctrl = hda_command(dev,
HDA_CMD_GET_PIN_WIDGET_CTRL(0, nid));
+ w->wclass.pin.connected = 2;
if (HDA_PARAM_PIN_CAP_EAPD_CAP(w->wclass.pin.cap)) {
w->param.eapdbtl = hda_command(dev,
HDA_CMD_GET_EAPD_BTL_ENABLE(0, nid));
@@ -1238,10 +1242,6 @@
}
strlcat(w->name, HDA_CONNS[conn], sizeof(w->name));
strlcat(w->name, ")", sizeof(w->name));
-
- if (HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP(w->wclass.pin.cap) == 0 ||
- (HDA_CONFIG_DEFAULTCONF_MISC(w->wclass.pin.config) & 1) != 0)
- w->wclass.pin.connected = 2;
}
}
More information about the Midnightbsd-cvs
mailing list