Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F148621709
D17772.id59833.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D17772.id59833.diff
View Options
Index: head/share/man/man4/snd_hda.4
===================================================================
--- head/share/man/man4/snd_hda.4
+++ head/share/man/man4/snd_hda.4
@@ -25,7 +25,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd April 1, 2018
+.Dd July 16, 2019
.Dt SND_HDA 4
.Os
.Sh NAME
@@ -153,6 +153,12 @@
and
.Dq Li ovref Ns Ar X
options control the voltage used to power external microphones.
+.It Va dev.hdaa.%d.init_clear
+Zero out the pin widget config setup by the system.
+Some systems seem to have unuseable audio devices if the pin widgit
+configuration is cleared.
+Set this value to 0 to accept the default configuration values setup by the
+BIOS.
.It Va hint.hdaa.%d.gpio_config
Overrides audio function GPIO pins configuration set by BIOS.
May be specified as a set of space-separated
Index: head/sys/dev/sound/pci/hda/hdaa.h
===================================================================
--- head/sys/dev/sound/pci/hda/hdaa.h
+++ head/sys/dev/sound/pci/hda/hdaa.h
@@ -214,6 +214,7 @@
struct hdaa_chan *chans;
struct callout poll_jack;
int poll_ival;
+ uint32_t init_clear;
};
#define HDAA_CHN_RUNNING 0x00000001
Index: head/sys/dev/sound/pci/hda/hdaa.c
===================================================================
--- head/sys/dev/sound/pci/hda/hdaa.c
+++ head/sys/dev/sound/pci/hda/hdaa.c
@@ -5034,11 +5034,13 @@
pincap = w->wclass.pin.cap;
/* Disable everything. */
- w->wclass.pin.ctrl &= ~(
- HDA_CMD_SET_PIN_WIDGET_CTRL_HPHN_ENABLE |
- HDA_CMD_SET_PIN_WIDGET_CTRL_OUT_ENABLE |
- HDA_CMD_SET_PIN_WIDGET_CTRL_IN_ENABLE |
- HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE_MASK);
+ if (devinfo->init_clear) {
+ w->wclass.pin.ctrl &= ~(
+ HDA_CMD_SET_PIN_WIDGET_CTRL_HPHN_ENABLE |
+ HDA_CMD_SET_PIN_WIDGET_CTRL_OUT_ENABLE |
+ HDA_CMD_SET_PIN_WIDGET_CTRL_IN_ENABLE |
+ HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE_MASK);
+ }
if (w->enable == 0) {
/* Pin is unused so left it disabled. */
@@ -6671,6 +6673,10 @@
SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO,
"reconfig", CTLTYPE_INT | CTLFLAG_RW,
dev, 0, hdaa_sysctl_reconfig, "I", "Reprocess configuration");
+ SYSCTL_ADD_INT(device_get_sysctl_ctx(dev),
+ SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO,
+ "init_clear", CTLFLAG_RW,
+ &devinfo->init_clear, 1,"Clear initial pin widget configuration");
bus_generic_attach(dev);
return (0);
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Mar 20, 4:59 AM (19 h, 23 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29999926
Default Alt Text
D17772.id59833.diff (2 KB)
Attached To
Mode
D17772: Add hack to allow users to bypass pin widget initialization.
Attached
Detach File
Event Timeline
Log In to Comment