/** *lwmi_events_notify()-Callfunctionsforthenotifiercallchain. *@wdev:TheparentWMIdeviceofthedriver. *@obj:ACPIobjectpassedbytheregisteredWMIEvent. * *ValidateWMIeventdataandnotifyallregistereddriversoftheeventand *itsoutput. * *Return:0onsuccess,oranerrorcode.
*/ staticvoid lwmi_events_notify(struct wmi_device *wdev, union acpi_object *obj)
{ struct lwmi_events_priv *priv = dev_get_drvdata(&wdev->dev); int sel_prof; int ret;
switch (priv->type) { case LWMI_EVENT_THERMAL_MODE: if (obj->type != ACPI_TYPE_INTEGER) return;
sel_prof = obj->integer.value;
switch (sel_prof) { case LWMI_GZ_THERMAL_MODE_QUIET: case LWMI_GZ_THERMAL_MODE_BALANCED: case LWMI_GZ_THERMAL_MODE_PERFORMANCE: case LWMI_GZ_THERMAL_MODE_EXTREME: case LWMI_GZ_THERMAL_MODE_CUSTOM:
ret = blocking_notifier_call_chain(&events_chain_head,
LWMI_EVENT_THERMAL_MODE,
&sel_prof); if (ret == NOTIFY_BAD)
dev_err(&wdev->dev, "Failed to send notification to call chain for WMI Events\n"); return; default:
dev_err(&wdev->dev, "Got invalid thermal mode: %x",
sel_prof); return;
} break; default: return;
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.