Lines Matching refs:video
207 struct acpi_video_bus *video; member
222 static void acpi_video_device_rebind(struct acpi_video_bus *video);
223 static void acpi_video_device_bind(struct acpi_video_bus *video,
225 static int acpi_video_device_enumerate(struct acpi_video_bus *video);
275 struct acpi_video_device *video = acpi_driver_data(device); in video_get_max_state() local
277 *state = video->brightness->count - 3; in video_get_max_state()
285 struct acpi_video_device *video = acpi_driver_data(device); in video_get_cur_state() local
289 if (acpi_video_device_lcd_get_level_current(video, &level, false)) in video_get_cur_state()
291 for (offset = 2; offset < video->brightness->count; offset++) in video_get_cur_state()
292 if (level == video->brightness->levels[offset]) { in video_get_cur_state()
293 *state = video->brightness->count - offset - 1; in video_get_cur_state()
304 struct acpi_video_device *video = acpi_driver_data(device); in video_set_cur_state() local
307 if (state >= video->brightness->count - 2) in video_set_cur_state()
310 state = video->brightness->count - state; in video_set_cur_state()
311 level = video->brightness->levels[state - 1]; in video_set_cur_state()
312 return acpi_video_device_lcd_set_level(video, level); in video_set_cur_state()
667 acpi_video_bus_DOS(struct acpi_video_bus *video, int bios_flag, int lcd_flag) in acpi_video_bus_DOS() argument
671 if (!video->cap._DOS) in acpi_video_bus_DOS()
676 video->dos_setting = (lcd_flag << 2) | bios_flag; in acpi_video_bus_DOS()
677 status = acpi_execute_simple_method(video->device->handle, "_DOS", in acpi_video_bus_DOS()
935 static void acpi_video_bus_find_cap(struct acpi_video_bus *video) in acpi_video_bus_find_cap() argument
937 if (acpi_has_method(video->device->handle, "_DOS")) in acpi_video_bus_find_cap()
938 video->cap._DOS = 1; in acpi_video_bus_find_cap()
939 if (acpi_has_method(video->device->handle, "_DOD")) in acpi_video_bus_find_cap()
940 video->cap._DOD = 1; in acpi_video_bus_find_cap()
941 if (acpi_has_method(video->device->handle, "_ROM")) in acpi_video_bus_find_cap()
942 video->cap._ROM = 1; in acpi_video_bus_find_cap()
943 if (acpi_has_method(video->device->handle, "_GPD")) in acpi_video_bus_find_cap()
944 video->cap._GPD = 1; in acpi_video_bus_find_cap()
945 if (acpi_has_method(video->device->handle, "_SPD")) in acpi_video_bus_find_cap()
946 video->cap._SPD = 1; in acpi_video_bus_find_cap()
947 if (acpi_has_method(video->device->handle, "_VPO")) in acpi_video_bus_find_cap()
948 video->cap._VPO = 1; in acpi_video_bus_find_cap()
956 static int acpi_video_bus_check(struct acpi_video_bus *video) in acpi_video_bus_check() argument
961 if (!video) in acpi_video_bus_check()
964 dev = acpi_get_pci_dev(video->device->handle); in acpi_video_bus_check()
975 if (video->cap._DOS || video->cap._DOD) { in acpi_video_bus_check()
976 if (!video->cap._DOS) { in acpi_video_bus_check()
979 acpi_device_bid(video->device)); in acpi_video_bus_check()
981 video->flags.multihead = 1; in acpi_video_bus_check()
986 if (video->cap._ROM) { in acpi_video_bus_check()
987 video->flags.rom = 1; in acpi_video_bus_check()
992 if (video->cap._GPD && video->cap._SPD && video->cap._VPO) { in acpi_video_bus_check()
993 video->flags.post = 1; in acpi_video_bus_check()
1008 acpi_video_get_device_attr(struct acpi_video_bus *video, unsigned long device_id) in acpi_video_get_device_attr() argument
1013 for (i = 0; i < video->attached_count; i++) { in acpi_video_get_device_attr()
1014 ids = &video->attached_array[i]; in acpi_video_get_device_attr()
1023 acpi_video_get_device_type(struct acpi_video_bus *video, in acpi_video_get_device_type() argument
1029 for (i = 0; i < video->attached_count; i++) { in acpi_video_get_device_type()
1030 ids = &video->attached_array[i]; in acpi_video_get_device_type()
1040 struct acpi_video_bus *video) in acpi_video_bus_get_one_device() argument
1062 data->video = video; in acpi_video_bus_get_one_device()
1067 attribute = acpi_video_get_device_attr(video, device_id); in acpi_video_bus_get_one_device()
1091 device_type = acpi_video_get_device_type(video, device_id); in acpi_video_bus_get_one_device()
1108 acpi_video_device_bind(video, data); in acpi_video_bus_get_one_device()
1111 mutex_lock(&video->device_list_lock); in acpi_video_bus_get_one_device()
1112 list_add_tail(&data->entry, &video->video_device_list); in acpi_video_bus_get_one_device()
1113 mutex_unlock(&video->device_list_lock); in acpi_video_bus_get_one_device()
1130 static void acpi_video_device_rebind(struct acpi_video_bus *video) in acpi_video_device_rebind() argument
1134 mutex_lock(&video->device_list_lock); in acpi_video_device_rebind()
1136 list_for_each_entry(dev, &video->video_device_list, entry) in acpi_video_device_rebind()
1137 acpi_video_device_bind(video, dev); in acpi_video_device_rebind()
1139 mutex_unlock(&video->device_list_lock); in acpi_video_device_rebind()
1156 acpi_video_device_bind(struct acpi_video_bus *video, in acpi_video_device_bind() argument
1162 for (i = 0; i < video->attached_count; i++) { in acpi_video_device_bind()
1163 ids = &video->attached_array[i]; in acpi_video_device_bind()
1173 struct acpi_video_bus *video = device->video; in acpi_video_device_in_dod() local
1181 if (!video->attached_count || video->child_count > 8) in acpi_video_device_in_dod()
1184 for (i = 0; i < video->attached_count; i++) { in acpi_video_device_in_dod()
1185 if ((video->attached_array[i].value.int_val & 0xfff) == in acpi_video_device_in_dod()
1204 static int acpi_video_device_enumerate(struct acpi_video_bus *video) in acpi_video_device_enumerate() argument
1214 status = acpi_evaluate_object(video->device->handle, "_DOD", NULL, &buffer); in acpi_video_device_enumerate()
1255 kfree(video->attached_array); in acpi_video_device_enumerate()
1257 video->attached_array = active_list; in acpi_video_device_enumerate()
1258 video->attached_count = count; in acpi_video_device_enumerate()
1348 struct acpi_video_bus *video; in acpi_video_get_edid() local
1357 video = acpi_driver_data(device); in acpi_video_get_edid()
1359 for (i = 0; i < video->attached_count; i++) { in acpi_video_get_edid()
1360 video_device = video->attached_array[i].bind_info; in acpi_video_get_edid()
1414 acpi_video_bus_get_devices(struct acpi_video_bus *video, in acpi_video_bus_get_devices() argument
1425 acpi_video_device_enumerate(video); in acpi_video_bus_get_devices()
1429 status = acpi_video_bus_get_one_device(dev, video); in acpi_video_bus_get_devices()
1434 video->child_count++; in acpi_video_bus_get_devices()
1445 static int acpi_video_bus_start_devices(struct acpi_video_bus *video) in acpi_video_bus_start_devices() argument
1447 return acpi_video_bus_DOS(video, 0, in acpi_video_bus_start_devices()
1451 static int acpi_video_bus_stop_devices(struct acpi_video_bus *video) in acpi_video_bus_stop_devices() argument
1453 return acpi_video_bus_DOS(video, 0, in acpi_video_bus_stop_devices()
1459 struct acpi_video_bus *video = acpi_driver_data(device); in acpi_video_bus_notify() local
1463 if (!video || !video->input) in acpi_video_bus_notify()
1466 input = video->input; in acpi_video_bus_notify()
1476 acpi_video_device_enumerate(video); in acpi_video_bus_notify()
1477 acpi_video_device_rebind(video); in acpi_video_bus_notify()
1533 bus = video_device->video; in acpi_video_device_notify()
1578 struct acpi_video_bus *video; in acpi_video_resume() local
1589 video = container_of(nb, struct acpi_video_bus, pm_nb); in acpi_video_resume()
1591 dev_info(&video->device->dev, "Restoring backlight state\n"); in acpi_video_resume()
1593 for (i = 0; i < video->attached_count; i++) { in acpi_video_resume()
1594 video_device = video->attached_array[i].bind_info; in acpi_video_resume()
1701 static void acpi_video_run_bcl_for_osi(struct acpi_video_bus *video) in acpi_video_run_bcl_for_osi() argument
1706 mutex_lock(&video->device_list_lock); in acpi_video_run_bcl_for_osi()
1707 list_for_each_entry(dev, &video->video_device_list, entry) { in acpi_video_run_bcl_for_osi()
1711 mutex_unlock(&video->device_list_lock); in acpi_video_run_bcl_for_osi()
1730 static int acpi_video_bus_register_backlight(struct acpi_video_bus *video) in acpi_video_bus_register_backlight() argument
1734 if (video->backlight_registered) in acpi_video_bus_register_backlight()
1737 acpi_video_run_bcl_for_osi(video); in acpi_video_bus_register_backlight()
1742 mutex_lock(&video->device_list_lock); in acpi_video_bus_register_backlight()
1743 list_for_each_entry(dev, &video->video_device_list, entry) { in acpi_video_bus_register_backlight()
1747 mutex_unlock(&video->device_list_lock); in acpi_video_bus_register_backlight()
1749 video->backlight_registered = true; in acpi_video_bus_register_backlight()
1751 video->pm_nb.notifier_call = acpi_video_resume; in acpi_video_bus_register_backlight()
1752 video->pm_nb.priority = 0; in acpi_video_bus_register_backlight()
1753 return register_pm_notifier(&video->pm_nb); in acpi_video_bus_register_backlight()
1775 static int acpi_video_bus_unregister_backlight(struct acpi_video_bus *video) in acpi_video_bus_unregister_backlight() argument
1780 if (!video->backlight_registered) in acpi_video_bus_unregister_backlight()
1783 error = unregister_pm_notifier(&video->pm_nb); in acpi_video_bus_unregister_backlight()
1785 mutex_lock(&video->device_list_lock); in acpi_video_bus_unregister_backlight()
1786 list_for_each_entry(dev, &video->video_device_list, entry) in acpi_video_bus_unregister_backlight()
1788 mutex_unlock(&video->device_list_lock); in acpi_video_bus_unregister_backlight()
1790 video->backlight_registered = false; in acpi_video_bus_unregister_backlight()
1808 static int acpi_video_bus_add_notify_handler(struct acpi_video_bus *video) in acpi_video_bus_add_notify_handler() argument
1814 video->input = input = input_allocate_device(); in acpi_video_bus_add_notify_handler()
1820 error = acpi_video_bus_start_devices(video); in acpi_video_bus_add_notify_handler()
1824 snprintf(video->phys, sizeof(video->phys), in acpi_video_bus_add_notify_handler()
1825 "%s/video/input0", acpi_device_hid(video->device)); in acpi_video_bus_add_notify_handler()
1827 input->name = acpi_device_name(video->device); in acpi_video_bus_add_notify_handler()
1828 input->phys = video->phys; in acpi_video_bus_add_notify_handler()
1831 input->dev.parent = &video->device->dev; in acpi_video_bus_add_notify_handler()
1846 mutex_lock(&video->device_list_lock); in acpi_video_bus_add_notify_handler()
1847 list_for_each_entry(dev, &video->video_device_list, entry) in acpi_video_bus_add_notify_handler()
1849 mutex_unlock(&video->device_list_lock); in acpi_video_bus_add_notify_handler()
1854 acpi_video_bus_stop_devices(video); in acpi_video_bus_add_notify_handler()
1857 video->input = NULL; in acpi_video_bus_add_notify_handler()
1871 static void acpi_video_bus_remove_notify_handler(struct acpi_video_bus *video) in acpi_video_bus_remove_notify_handler() argument
1875 mutex_lock(&video->device_list_lock); in acpi_video_bus_remove_notify_handler()
1876 list_for_each_entry(dev, &video->video_device_list, entry) in acpi_video_bus_remove_notify_handler()
1878 mutex_unlock(&video->device_list_lock); in acpi_video_bus_remove_notify_handler()
1880 acpi_video_bus_stop_devices(video); in acpi_video_bus_remove_notify_handler()
1881 input_unregister_device(video->input); in acpi_video_bus_remove_notify_handler()
1882 video->input = NULL; in acpi_video_bus_remove_notify_handler()
1885 static int acpi_video_bus_put_devices(struct acpi_video_bus *video) in acpi_video_bus_put_devices() argument
1889 mutex_lock(&video->device_list_lock); in acpi_video_bus_put_devices()
1890 list_for_each_entry_safe(dev, next, &video->video_device_list, entry) { in acpi_video_bus_put_devices()
1894 mutex_unlock(&video->device_list_lock); in acpi_video_bus_put_devices()
1903 struct acpi_video_bus *video; in acpi_video_bus_add() local
1921 video = kzalloc(sizeof(struct acpi_video_bus), GFP_KERNEL); in acpi_video_bus_add()
1922 if (!video) in acpi_video_bus_add()
1938 video->device = device; in acpi_video_bus_add()
1941 device->driver_data = video; in acpi_video_bus_add()
1943 acpi_video_bus_find_cap(video); in acpi_video_bus_add()
1944 error = acpi_video_bus_check(video); in acpi_video_bus_add()
1948 mutex_init(&video->device_list_lock); in acpi_video_bus_add()
1949 INIT_LIST_HEAD(&video->video_device_list); in acpi_video_bus_add()
1951 error = acpi_video_bus_get_devices(video, device); in acpi_video_bus_add()
1957 video->flags.multihead ? "yes" : "no", in acpi_video_bus_add()
1958 video->flags.rom ? "yes" : "no", in acpi_video_bus_add()
1959 video->flags.post ? "yes" : "no"); in acpi_video_bus_add()
1961 list_add_tail(&video->entry, &video_bus_head); in acpi_video_bus_add()
1964 acpi_video_bus_register_backlight(video); in acpi_video_bus_add()
1965 acpi_video_bus_add_notify_handler(video); in acpi_video_bus_add()
1970 acpi_video_bus_put_devices(video); in acpi_video_bus_add()
1971 kfree(video->attached_array); in acpi_video_bus_add()
1973 kfree(video); in acpi_video_bus_add()
1981 struct acpi_video_bus *video = NULL; in acpi_video_bus_remove() local
1987 video = acpi_driver_data(device); in acpi_video_bus_remove()
1989 acpi_video_bus_remove_notify_handler(video); in acpi_video_bus_remove()
1990 acpi_video_bus_unregister_backlight(video); in acpi_video_bus_remove()
1991 acpi_video_bus_put_devices(video); in acpi_video_bus_remove()
1994 list_del(&video->entry); in acpi_video_bus_remove()
1997 kfree(video->attached_array); in acpi_video_bus_remove()
1998 kfree(video); in acpi_video_bus_remove()
2081 struct acpi_video_bus *video; in acpi_video_unregister_backlight() local
2086 list_for_each_entry(video, &video_bus_head, entry) in acpi_video_unregister_backlight()
2087 acpi_video_bus_unregister_backlight(video); in acpi_video_unregister_backlight()