Lines Matching defs:vo

291 	struct acpi_video_output *vo, *vn;
301 STAILQ_FOREACH_SAFE(vo, &sc->vid_outputs, vo_next, vn) {
302 acpi_video_vo_destroy(vo);
313 struct acpi_video_output *vo, *vn;
321 STAILQ_FOREACH_SAFE(vo, &sc->vid_outputs, vo_next, vn) {
322 if ((vo->adr & DOD_DEVID_MASK_FULL) != DOD_DEVID_LCD &&
323 (vo->adr & DOD_DEVID_MASK) != DOD_DEVID_INTDFP)
326 if ((vo_get_device_status(vo->handle) & DCS_ACTIVE) == 0)
329 level = vo_get_brightness(vo->handle);
331 vo_set_brightness(vo->handle, level);
354 struct acpi_video_output *vo, *vo_tmp;
366 STAILQ_FOREACH(vo, &sc->vid_outputs, vo_next) {
367 dss = vo_get_graphics_state(vo->handle);
368 dcs = vo_get_device_status(vo->handle);
376 lasthand = vo->handle;
386 STAILQ_FOREACH(vo, &sc->vid_outputs, vo_next)
387 vo->handle = NULL;
389 STAILQ_FOREACH_SAFE(vo, &sc->vid_outputs, vo_next, vo_tmp) {
390 if (vo->handle == NULL) {
391 STAILQ_REMOVE(&sc->vid_outputs, vo,
393 acpi_video_vo_destroy(vo);
409 struct acpi_video_output *vo;
419 STAILQ_FOREACH(vo, &sc->vid_outputs, vo_next) {
420 if (vo->vo_levels != NULL && vo->vo_brightness == -1)
421 vo_set_brightness(vo->handle,
423 vo->vo_economy : vo->vo_fullpower);
433 struct acpi_video_output *vo;
438 STAILQ_FOREACH(vo, &sc->vid_outputs, vo_next) {
439 if (vo->adr == adr) {
440 acpi_video_vo_bind(vo, handle);
444 vo = acpi_video_vo_init(adr);
445 if (vo != NULL) {
446 acpi_video_vo_bind(vo, handle);
447 STAILQ_INSERT_TAIL(&sc->vid_outputs, vo, vo_next);
462 struct acpi_video_output *vn, *vo, *vp;
515 vo = malloc(sizeof(*vo), M_ACPIVIDEO, M_NOWAIT);
516 if (vo != NULL) {
517 vo->handle = NULL;
518 vo->adr = adr;
519 vo->vo_unit.num = n;
520 vo->vo_brightness = -1;
521 vo->vo_fullpower = -1; /* TODO: override with tunables */
522 vo->vo_economy = -1;
523 vo->vo_numlevels = 0;
524 vo->vo_levels = NULL;
527 vo->vo_fullpower = x;
530 vo->vo_economy = x;
532 sysctl_ctx_init(&vo->vo_sysctl_ctx);
534 STAILQ_INSERT_AFTER(voqh, vp, vo, vo_unit.next);
536 STAILQ_INSERT_TAIL(voqh, vo, vo_unit.next);
538 vo->vo_sysctl_tree =
539 SYSCTL_ADD_NODE(&vo->vo_sysctl_ctx,
542 if (vo->vo_sysctl_tree != NULL) {
543 SYSCTL_ADD_PROC(&vo->vo_sysctl_ctx,
544 SYSCTL_CHILDREN(vo->vo_sysctl_tree),
546 CTLTYPE_INT|CTLFLAG_RW, vo, 0,
549 SYSCTL_ADD_PROC(&vo->vo_sysctl_ctx,
550 SYSCTL_CHILDREN(vo->vo_sysctl_tree),
552 CTLTYPE_INT|CTLFLAG_RW, vo, 0,
555 SYSCTL_ADD_PROC(&vo->vo_sysctl_ctx,
556 SYSCTL_CHILDREN(vo->vo_sysctl_tree),
558 CTLTYPE_INT|CTLFLAG_RW, vo,
562 SYSCTL_ADD_PROC(&vo->vo_sysctl_ctx,
563 SYSCTL_CHILDREN(vo->vo_sysctl_tree),
565 CTLTYPE_INT|CTLFLAG_RW, vo,
569 SYSCTL_ADD_PROC(&vo->vo_sysctl_ctx,
570 SYSCTL_CHILDREN(vo->vo_sysctl_tree),
572 CTLTYPE_INT | CTLFLAG_RD, vo, 0,
592 return (vo);
596 acpi_video_vo_bind(struct acpi_video_output *vo, ACPI_HANDLE handle)
600 if (vo->vo_levels != NULL) {
601 AcpiRemoveNotifyHandler(vo->handle, ACPI_DEVICE_NOTIFY,
603 AcpiOsFree(vo->vo_levels);
604 vo->vo_levels = NULL;
606 vo->handle = handle;
607 vo->vo_numlevels = vo_get_brightness_levels(handle, &vo->vo_levels);
608 if (vo->vo_numlevels >= 2) {
609 if (vo->vo_fullpower == -1 ||
610 acpi_video_vo_check_level(vo, vo->vo_fullpower) != 0) {
612 vo->vo_fullpower = vo->vo_levels[BCL_FULLPOWER];
614 if (vo->vo_economy == -1 ||
615 acpi_video_vo_check_level(vo, vo->vo_economy) != 0) {
617 vo->vo_economy = vo->vo_levels[BCL_ECONOMY];
620 acpi_video_vo_notify_handler, vo);
626 acpi_video_vo_destroy(struct acpi_video_output *vo)
631 if (vo->vo_sysctl_tree != NULL) {
632 vo->vo_sysctl_tree = NULL;
633 sysctl_ctx_free(&vo->vo_sysctl_ctx);
635 if (vo->vo_levels != NULL) {
636 AcpiRemoveNotifyHandler(vo->handle, ACPI_DEVICE_NOTIFY,
638 AcpiOsFree(vo->vo_levels);
641 switch (vo->adr & DOD_DEVID_MASK) {
657 STAILQ_REMOVE(voqh, vo, acpi_video_output, vo_unit.next);
658 free(vo, M_ACPIVIDEO);
662 acpi_video_vo_check_level(struct acpi_video_output *vo, int level)
667 if (vo->vo_levels == NULL)
669 for (i = 0; i < vo->vo_numlevels; i++)
670 if (vo->vo_levels[i] == level)
678 struct acpi_video_output *vo;
681 vo = context;
683 if (vo->handle != handle)
688 if (vo->vo_numlevels <= 3)
694 if (vo->vo_levels == NULL)
709 for (i = 2; i < vo->vo_numlevels; i++)
710 if (vo->vo_levels[i] == level) {
711 new_level = vo->vo_numlevels > i + 1 ?
712 vo->vo_levels[i + 1] : vo->vo_levels[2];
718 for (i = 0; i < vo->vo_numlevels; i++) {
719 j = vo->vo_levels[i];
732 for (i = 0; i < vo->vo_numlevels; i++)
733 if (vo->vo_levels[i] == 0) {
741 vo->vo_brightness = new_level;
752 struct acpi_video_output *vo;
755 vo = (struct acpi_video_output *)arg1;
756 if (vo->handle == NULL)
759 state = (vo_get_device_status(vo->handle) & DCS_ACTIVE) ? 1 : 0;
763 vo_set_device_state(vo->handle,
774 struct acpi_video_output *vo;
777 vo = (struct acpi_video_output *)arg1;
779 if (vo->handle == NULL) {
783 if (vo->vo_levels == NULL) {
789 vo->vo_economy : vo->vo_fullpower;
790 level = vo->vo_brightness;
802 if (level != -1 && (err = acpi_video_vo_check_level(vo, level)))
804 vo->vo_brightness = level;
805 vo_set_brightness(vo->handle, (level == -1) ? preset : level);
815 struct acpi_video_output *vo;
818 vo = (struct acpi_video_output *)arg1;
820 if (vo->handle == NULL) {
824 if (vo->vo_levels == NULL) {
829 &vo->vo_economy : &vo->vo_fullpower;
841 level = vo->vo_levels[i];
842 } else if ((err = acpi_video_vo_check_level(vo, level)) != 0)
845 if (vo->vo_brightness == -1 && (power_profile_get_state() == arg2))
846 vo_set_brightness(vo->handle, level);
858 struct acpi_video_output *vo;
861 vo = (struct acpi_video_output *)arg1;
863 if (vo->vo_levels == NULL) {
871 err = sysctl_handle_opaque(oidp, vo->vo_levels,
872 vo->vo_numlevels * sizeof(*vo->vo_levels), req);