Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/sound/pci/hda/hdac.c
Show First 20 Lines • Show All 1,381 Lines • ▼ Show 20 Lines | sysctl_hdac_pindump(SYSCTL_HANDLER_ARGS) | ||||
if (val == 100) { | if (val == 100) { | ||||
hdac_suspend(dev); | hdac_suspend(dev); | ||||
return (0); | return (0); | ||||
} else if (val == 101) { | } else if (val == 101) { | ||||
hdac_resume(dev); | hdac_resume(dev); | ||||
return (0); | return (0); | ||||
} | } | ||||
if ((err = device_get_children(dev, &devlist, &devcount)) != 0) | bus_topo_lock(); | ||||
if ((err = device_get_children(dev, &devlist, &devcount)) != 0) { | |||||
bus_topo_unlock(); | |||||
return (err); | return (err); | ||||
} | |||||
hdac_lock(sc); | hdac_lock(sc); | ||||
for (i = 0; i < devcount; i++) | for (i = 0; i < devcount; i++) | ||||
HDAC_PINDUMP(devlist[i]); | HDAC_PINDUMP(devlist[i]); | ||||
hdac_unlock(sc); | hdac_unlock(sc); | ||||
bus_topo_unlock(); | |||||
free(devlist, M_TEMP); | free(devlist, M_TEMP); | ||||
return (0); | return (0); | ||||
} | } | ||||
static int | static int | ||||
hdac_mdata_rate(uint16_t fmt) | hdac_mdata_rate(uint16_t fmt) | ||||
{ | { | ||||
static const int mbits[8] = { 8, 16, 32, 32, 32, 32, 32, 32 }; | static const int mbits[8] = { 8, 16, 32, 32, 32, 32, 32, 32 }; | ||||
▲ Show 20 Lines • Show All 198 Lines • ▼ Show 20 Lines | if (HDAC_STATESTS_SDIWAKE(statests, i)) { | ||||
device_set_ivars(child, (void *)(intptr_t)i); | device_set_ivars(child, (void *)(intptr_t)i); | ||||
sc->codecs[i].dev = child; | sc->codecs[i].dev = child; | ||||
} | } | ||||
} | } | ||||
bus_generic_attach(sc->dev); | bus_generic_attach(sc->dev); | ||||
SYSCTL_ADD_PROC(device_get_sysctl_ctx(sc->dev), | SYSCTL_ADD_PROC(device_get_sysctl_ctx(sc->dev), | ||||
SYSCTL_CHILDREN(device_get_sysctl_tree(sc->dev)), OID_AUTO, | SYSCTL_CHILDREN(device_get_sysctl_tree(sc->dev)), OID_AUTO, | ||||
"pindump", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc->dev, | "pindump", CTLTYPE_INT | CTLFLAG_RW, sc->dev, | ||||
sizeof(sc->dev), sysctl_hdac_pindump, "I", "Dump pin states/data"); | sizeof(sc->dev), sysctl_hdac_pindump, "I", "Dump pin states/data"); | ||||
SYSCTL_ADD_PROC(device_get_sysctl_ctx(sc->dev), | SYSCTL_ADD_PROC(device_get_sysctl_ctx(sc->dev), | ||||
SYSCTL_CHILDREN(device_get_sysctl_tree(sc->dev)), OID_AUTO, | SYSCTL_CHILDREN(device_get_sysctl_tree(sc->dev)), OID_AUTO, | ||||
"polling", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, sc->dev, | "polling", CTLTYPE_INT | CTLFLAG_RW, sc->dev, | ||||
sizeof(sc->dev), sysctl_hdac_polling, "I", "Enable polling mode"); | sizeof(sc->dev), sysctl_hdac_polling, "I", "Enable polling mode"); | ||||
} | } | ||||
/**************************************************************************** | /**************************************************************************** | ||||
* int hdac_suspend(device_t) | * int hdac_suspend(device_t) | ||||
* | * | ||||
* Suspend and power down HDA bus and codecs. | * Suspend and power down HDA bus and codecs. | ||||
****************************************************************************/ | ****************************************************************************/ | ||||
▲ Show 20 Lines • Show All 542 Lines • Show Last 20 Lines |