acpi_dock(4): Notify devd(8) on dock status change.
PR: 238138 Submitted by: Muhammad Kaisar Arkhan <hi@yukiisbo.red> MFC after: 2 weeks
This commit is contained in:
parent
893e38d644
commit
a8ad406373
@ -41,7 +41,7 @@
|
|||||||
.\" ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
.\" ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||||
.\" SOFTWARE.
|
.\" SOFTWARE.
|
||||||
.\"
|
.\"
|
||||||
.Dd March 29, 2019
|
.Dd May 31, 2019
|
||||||
.Dt DEVD.CONF 5
|
.Dt DEVD.CONF 5
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@ -341,6 +341,8 @@ AC line state ($notify=0x00 is offline, 0x01 is online).
|
|||||||
Button state ($notify=0x00 is power, 0x01 is sleep).
|
Button state ($notify=0x00 is power, 0x01 is sleep).
|
||||||
.It Li CMBAT
|
.It Li CMBAT
|
||||||
Battery events.
|
Battery events.
|
||||||
|
.It Li Dock
|
||||||
|
Dock state ($notify=0x00 is undocked, 0x01 is docked).
|
||||||
.It Li Lid
|
.It Li Lid
|
||||||
Lid state ($notify=0x00 is closed, 0x01 is open).
|
Lid state ($notify=0x00 is closed, 0x01 is open).
|
||||||
.It Li PROCESSOR
|
.It Li PROCESSOR
|
||||||
|
@ -256,11 +256,13 @@ acpi_dock_insert_children(device_t dev)
|
|||||||
static void
|
static void
|
||||||
acpi_dock_insert(device_t dev)
|
acpi_dock_insert(device_t dev)
|
||||||
{
|
{
|
||||||
struct acpi_dock_softc *sc;
|
struct acpi_dock_softc *sc;
|
||||||
|
ACPI_HANDLE h;
|
||||||
|
|
||||||
ACPI_SERIAL_ASSERT(dock);
|
ACPI_SERIAL_ASSERT(dock);
|
||||||
|
|
||||||
sc = device_get_softc(dev);
|
sc = device_get_softc(dev);
|
||||||
|
h = acpi_get_handle(dev);
|
||||||
|
|
||||||
if (sc->status == ACPI_DOCK_STATUS_UNDOCKED ||
|
if (sc->status == ACPI_DOCK_STATUS_UNDOCKED ||
|
||||||
sc->status == ACPI_DOCK_STATUS_UNKNOWN) {
|
sc->status == ACPI_DOCK_STATUS_UNKNOWN) {
|
||||||
@ -270,8 +272,12 @@ acpi_dock_insert(device_t dev)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!cold)
|
if (!cold) {
|
||||||
acpi_dock_insert_children(dev);
|
acpi_dock_insert_children(dev);
|
||||||
|
|
||||||
|
acpi_UserNotify("Dock", h, 1);
|
||||||
|
}
|
||||||
|
|
||||||
sc->status = ACPI_DOCK_STATUS_DOCKED;
|
sc->status = ACPI_DOCK_STATUS_DOCKED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -325,10 +331,13 @@ static void
|
|||||||
acpi_dock_removal(device_t dev)
|
acpi_dock_removal(device_t dev)
|
||||||
{
|
{
|
||||||
struct acpi_dock_softc *sc;
|
struct acpi_dock_softc *sc;
|
||||||
|
ACPI_HANDLE h;
|
||||||
|
|
||||||
ACPI_SERIAL_ASSERT(dock);
|
ACPI_SERIAL_ASSERT(dock);
|
||||||
|
|
||||||
sc = device_get_softc(dev);
|
sc = device_get_softc(dev);
|
||||||
|
h = acpi_get_handle(dev);
|
||||||
|
|
||||||
if (sc->status == ACPI_DOCK_STATUS_DOCKED ||
|
if (sc->status == ACPI_DOCK_STATUS_DOCKED ||
|
||||||
sc->status == ACPI_DOCK_STATUS_UNKNOWN) {
|
sc->status == ACPI_DOCK_STATUS_UNKNOWN) {
|
||||||
acpi_dock_eject_children(dev);
|
acpi_dock_eject_children(dev);
|
||||||
@ -342,6 +351,8 @@ acpi_dock_removal(device_t dev)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
acpi_UserNotify("Dock", h, 0);
|
||||||
|
|
||||||
sc->status = ACPI_DOCK_STATUS_UNDOCKED;
|
sc->status = ACPI_DOCK_STATUS_UNDOCKED;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -534,4 +545,3 @@ static devclass_t acpi_dock_devclass;
|
|||||||
|
|
||||||
DRIVER_MODULE(acpi_dock, acpi, acpi_dock_driver, acpi_dock_devclass, 0, 0);
|
DRIVER_MODULE(acpi_dock, acpi, acpi_dock_driver, acpi_dock_devclass, 0, 0);
|
||||||
MODULE_DEPEND(acpi_dock, acpi, 1, 1, 1);
|
MODULE_DEPEND(acpi_dock, acpi, 1, 1, 1);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user