Lines Matching refs:device
98 static int acpi_video_bus_add(struct acpi_device *device);
99 static int acpi_video_bus_remove(struct acpi_device *device);
100 static void acpi_video_bus_notify(struct acpi_device *device, u32 event);
158 struct acpi_device *device; member
233 struct acpi_video_device *device);
235 static int acpi_video_device_lcd_set_level(struct acpi_video_device *device,
238 struct acpi_video_device *device,
240 static int acpi_video_get_next_level(struct acpi_video_device *device,
301 struct acpi_device *device = cooling_dev->devdata; in video_get_max_state() local
302 struct acpi_video_device *video = acpi_driver_data(device); in video_get_max_state()
311 struct acpi_device *device = cooling_dev->devdata; in video_get_cur_state() local
312 struct acpi_video_device *video = acpi_driver_data(device); in video_get_cur_state()
330 struct acpi_device *device = cooling_dev->devdata; in video_set_cur_state() local
331 struct acpi_video_device *video = acpi_driver_data(device); in video_set_cur_state()
355 acpi_video_device_lcd_query_levels(struct acpi_video_device *device, in acpi_video_device_lcd_query_levels() argument
365 status = acpi_evaluate_object(device->dev->handle, "_BCL", NULL, &buffer); in acpi_video_device_lcd_query_levels()
386 acpi_video_device_lcd_set_level(struct acpi_video_device *device, int level) in acpi_video_device_lcd_set_level() argument
391 status = acpi_execute_simple_method(device->dev->handle, in acpi_video_device_lcd_set_level()
398 device->brightness->curr = level; in acpi_video_device_lcd_set_level()
399 for (state = 2; state < device->brightness->count; state++) in acpi_video_device_lcd_set_level()
400 if (level == device->brightness->levels[state]) { in acpi_video_device_lcd_set_level()
401 if (device->backlight) in acpi_video_device_lcd_set_level()
402 device->backlight->props.brightness = state - 2; in acpi_video_device_lcd_set_level()
590 acpi_video_bqc_value_to_level(struct acpi_video_device *device, in acpi_video_bqc_value_to_level() argument
595 if (device->brightness->flags._BQC_use_index) { in acpi_video_bqc_value_to_level()
601 if (device->brightness->flags._BCL_reversed) in acpi_video_bqc_value_to_level()
602 bqc_value = device->brightness->count - 3 - bqc_value; in acpi_video_bqc_value_to_level()
604 level = device->brightness->levels[bqc_value + 2]; in acpi_video_bqc_value_to_level()
615 acpi_video_device_lcd_get_level_current(struct acpi_video_device *device, in acpi_video_device_lcd_get_level_current() argument
621 if (device->cap._BQC || device->cap._BCQ) { in acpi_video_device_lcd_get_level_current()
622 char *buf = device->cap._BQC ? "_BQC" : "_BCQ"; in acpi_video_device_lcd_get_level_current()
624 status = acpi_evaluate_integer(device->dev->handle, buf, in acpi_video_device_lcd_get_level_current()
636 *level = acpi_video_bqc_value_to_level(device, *level); in acpi_video_device_lcd_get_level_current()
638 for (i = 2; i < device->brightness->count; i++) in acpi_video_device_lcd_get_level_current()
639 if (device->brightness->levels[i] == *level) { in acpi_video_device_lcd_get_level_current()
640 device->brightness->curr = *level; in acpi_video_device_lcd_get_level_current()
650 device->cap._BQC = device->cap._BCQ = 0; in acpi_video_device_lcd_get_level_current()
661 device->cap._BQC = device->cap._BCQ = 0; in acpi_video_device_lcd_get_level_current()
665 *level = device->brightness->curr; in acpi_video_device_lcd_get_level_current()
670 acpi_video_device_EDID(struct acpi_video_device *device, in acpi_video_device_EDID() argument
682 if (!device) in acpi_video_device_EDID()
691 status = acpi_evaluate_object(device->dev->handle, "_DDC", &args, &buffer); in acpi_video_device_EDID()
742 status = acpi_execute_simple_method(video->device->handle, "_DOS", in acpi_video_bus_DOS()
767 static int acpi_video_bqc_quirk(struct acpi_video_device *device, in acpi_video_bqc_quirk() argument
770 struct acpi_video_device_brightness *br = device->brightness; in acpi_video_bqc_quirk()
785 result = acpi_video_device_lcd_set_level(device, test_level); in acpi_video_bqc_quirk()
789 result = acpi_video_device_lcd_get_level_current(device, &level, true); in acpi_video_bqc_quirk()
803 device->cap._BQC = device->cap._BCQ = 0; in acpi_video_bqc_quirk()
821 acpi_video_init_brightness(struct acpi_video_device *device) in acpi_video_init_brightness() argument
831 if (!ACPI_SUCCESS(acpi_video_device_lcd_query_levels(device, &obj))) { in acpi_video_init_brightness()
904 device->brightness = br; in acpi_video_init_brightness()
909 if (!device->cap._BQC) in acpi_video_init_brightness()
912 result = acpi_video_device_lcd_get_level_current(device, in acpi_video_init_brightness()
917 result = acpi_video_bqc_quirk(device, max_level, level_old); in acpi_video_init_brightness()
924 if (!device->cap._BQC) in acpi_video_init_brightness()
927 level = acpi_video_bqc_value_to_level(device, level_old); in acpi_video_init_brightness()
941 result = acpi_video_device_lcd_set_level(device, level); in acpi_video_init_brightness()
955 device->brightness = NULL; in acpi_video_init_brightness()
971 static void acpi_video_device_find_cap(struct acpi_video_device *device) in acpi_video_device_find_cap() argument
973 if (acpi_has_method(device->dev->handle, "_ADR")) in acpi_video_device_find_cap()
974 device->cap._ADR = 1; in acpi_video_device_find_cap()
975 if (acpi_has_method(device->dev->handle, "_BCL")) in acpi_video_device_find_cap()
976 device->cap._BCL = 1; in acpi_video_device_find_cap()
977 if (acpi_has_method(device->dev->handle, "_BCM")) in acpi_video_device_find_cap()
978 device->cap._BCM = 1; in acpi_video_device_find_cap()
979 if (acpi_has_method(device->dev->handle, "_BQC")) { in acpi_video_device_find_cap()
980 device->cap._BQC = 1; in acpi_video_device_find_cap()
981 } else if (acpi_has_method(device->dev->handle, "_BCQ")) { in acpi_video_device_find_cap()
983 device->cap._BCQ = 1; in acpi_video_device_find_cap()
986 if (acpi_has_method(device->dev->handle, "_DDC")) in acpi_video_device_find_cap()
987 device->cap._DDC = 1; in acpi_video_device_find_cap()
1002 if (acpi_has_method(video->device->handle, "_DOS")) in acpi_video_bus_find_cap()
1004 if (acpi_has_method(video->device->handle, "_DOD")) in acpi_video_bus_find_cap()
1006 if (acpi_has_method(video->device->handle, "_ROM")) in acpi_video_bus_find_cap()
1008 if (acpi_has_method(video->device->handle, "_GPD")) in acpi_video_bus_find_cap()
1010 if (acpi_has_method(video->device->handle, "_SPD")) in acpi_video_bus_find_cap()
1012 if (acpi_has_method(video->device->handle, "_VPO")) in acpi_video_bus_find_cap()
1029 dev = acpi_get_pci_dev(video->device->handle); in acpi_video_bus_check()
1044 acpi_device_bid(video->device)); in acpi_video_bus_check()
1104 acpi_video_bus_get_one_device(struct acpi_device *device, in acpi_video_bus_get_one_device() argument
1113 acpi_evaluate_integer(device->handle, "_ADR", NULL, &device_id); in acpi_video_bus_get_one_device()
1122 strcpy(acpi_device_name(device), ACPI_VIDEO_DEVICE_NAME); in acpi_video_bus_get_one_device()
1123 strcpy(acpi_device_class(device), ACPI_VIDEO_CLASS); in acpi_video_bus_get_one_device()
1124 device->driver_data = data; in acpi_video_bus_get_one_device()
1128 data->dev = device; in acpi_video_bus_get_one_device()
1222 struct acpi_video_device *device) in acpi_video_device_bind() argument
1229 if (device->device_id == (ids->value.int_val & 0xffff)) { in acpi_video_device_bind()
1230 ids->bind_info = device; in acpi_video_device_bind()
1236 static bool acpi_video_device_in_dod(struct acpi_video_device *device) in acpi_video_device_in_dod() argument
1238 struct acpi_video_bus *video = device->video; in acpi_video_device_in_dod()
1251 (device->device_id & 0xfff)) in acpi_video_device_in_dod()
1279 status = acpi_evaluate_object(video->device->handle, "_DOD", NULL, &buffer); in acpi_video_device_enumerate()
1331 acpi_video_get_next_level(struct acpi_video_device *device, in acpi_video_get_next_level() argument
1338 for (i = 2; i < device->brightness->count; i++) { in acpi_video_get_next_level()
1339 l = device->brightness->levels[i]; in acpi_video_get_next_level()
1348 for (i = 2; i < device->brightness->count; i++) { in acpi_video_get_next_level()
1349 l = device->brightness->levels[i]; in acpi_video_get_next_level()
1378 struct acpi_video_device *device = container_of(to_delayed_work(work), in acpi_video_switch_brightness() local
1381 int event = device->switch_brightness_event; in acpi_video_switch_brightness()
1388 if (!device->brightness) in acpi_video_switch_brightness()
1391 result = acpi_video_device_lcd_get_level_current(device, in acpi_video_switch_brightness()
1397 level_next = acpi_video_get_next_level(device, level_current, event); in acpi_video_switch_brightness()
1399 result = acpi_video_device_lcd_set_level(device, level_next); in acpi_video_switch_brightness()
1402 backlight_force_update(device->backlight, in acpi_video_switch_brightness()
1410 int acpi_video_get_edid(struct acpi_device *device, int type, int device_id, in acpi_video_get_edid() argument
1419 if (!device || !acpi_driver_data(device)) in acpi_video_get_edid()
1422 video = acpi_driver_data(device); in acpi_video_get_edid()
1480 struct acpi_device *device) in acpi_video_bus_get_devices() argument
1492 list_for_each_entry(dev, &device->children, node) { in acpi_video_bus_get_devices()
1522 static void acpi_video_bus_notify(struct acpi_device *device, u32 event) in acpi_video_bus_notify() argument
1524 struct acpi_video_bus *video = acpi_driver_data(device); in acpi_video_bus_notify()
1562 if (acpi_notifier_call_chain(device, event, 0)) in acpi_video_bus_notify()
1589 struct acpi_device *device = NULL; in acpi_video_device_notify() local
1597 device = video_device->dev; in acpi_video_device_notify()
1628 acpi_notifier_call_chain(device, event, 0); in acpi_video_device_notify()
1656 dev_info(&video->device->dev, "Restoring backlight state\n"); in acpi_video_resume()
1671 struct acpi_device *device = context; in acpi_video_bus_match() local
1675 if (handle == device->handle) in acpi_video_bus_match()
1688 static void acpi_video_dev_register_backlight(struct acpi_video_device *device) in acpi_video_dev_register_backlight() argument
1693 struct device *parent = NULL; in acpi_video_dev_register_backlight()
1702 if (!acpi_video_device_in_dod(device)) { in acpi_video_dev_register_backlight()
1703 dev_dbg(&device->dev->dev, "not in _DOD list, ignore\n"); in acpi_video_dev_register_backlight()
1707 result = acpi_video_init_brightness(device); in acpi_video_dev_register_backlight()
1715 acpi_get_parent(device->dev->handle, &acpi_parent); in acpi_video_dev_register_backlight()
1725 props.max_brightness = device->brightness->count - 3; in acpi_video_dev_register_backlight()
1726 device->backlight = backlight_device_register(name, in acpi_video_dev_register_backlight()
1728 device, in acpi_video_dev_register_backlight()
1732 if (IS_ERR(device->backlight)) in acpi_video_dev_register_backlight()
1739 device->backlight->props.brightness = in acpi_video_dev_register_backlight()
1740 acpi_video_get_brightness(device->backlight); in acpi_video_dev_register_backlight()
1742 device->cooling_dev = thermal_cooling_device_register("LCD", in acpi_video_dev_register_backlight()
1743 device->dev, &video_cooling_ops); in acpi_video_dev_register_backlight()
1744 if (IS_ERR(device->cooling_dev)) { in acpi_video_dev_register_backlight()
1751 device->cooling_dev = NULL; in acpi_video_dev_register_backlight()
1755 dev_info(&device->dev->dev, "registered as cooling_device%d\n", in acpi_video_dev_register_backlight()
1756 device->cooling_dev->id); in acpi_video_dev_register_backlight()
1757 result = sysfs_create_link(&device->dev->dev.kobj, in acpi_video_dev_register_backlight()
1758 &device->cooling_dev->device.kobj, in acpi_video_dev_register_backlight()
1762 result = sysfs_create_link(&device->cooling_dev->device.kobj, in acpi_video_dev_register_backlight()
1763 &device->dev->dev.kobj, "device"); in acpi_video_dev_register_backlight()
1805 static void acpi_video_dev_unregister_backlight(struct acpi_video_device *device) in acpi_video_dev_unregister_backlight() argument
1807 if (device->backlight) { in acpi_video_dev_unregister_backlight()
1808 backlight_device_unregister(device->backlight); in acpi_video_dev_unregister_backlight()
1809 device->backlight = NULL; in acpi_video_dev_unregister_backlight()
1811 if (device->brightness) { in acpi_video_dev_unregister_backlight()
1812 kfree(device->brightness->levels); in acpi_video_dev_unregister_backlight()
1813 kfree(device->brightness); in acpi_video_dev_unregister_backlight()
1814 device->brightness = NULL; in acpi_video_dev_unregister_backlight()
1816 if (device->cooling_dev) { in acpi_video_dev_unregister_backlight()
1817 sysfs_remove_link(&device->dev->dev.kobj, "thermal_cooling"); in acpi_video_dev_unregister_backlight()
1818 sysfs_remove_link(&device->cooling_dev->device.kobj, "device"); in acpi_video_dev_unregister_backlight()
1819 thermal_cooling_device_unregister(device->cooling_dev); in acpi_video_dev_unregister_backlight()
1820 device->cooling_dev = NULL; in acpi_video_dev_unregister_backlight()
1844 static void acpi_video_dev_add_notify_handler(struct acpi_video_device *device) in acpi_video_dev_add_notify_handler() argument
1847 struct acpi_device *adev = device->dev; in acpi_video_dev_add_notify_handler()
1850 acpi_video_device_notify, device); in acpi_video_dev_add_notify_handler()
1854 device->flags.notify = 1; in acpi_video_dev_add_notify_handler()
1874 "%s/video/input0", acpi_device_hid(video->device)); in acpi_video_bus_add_notify_handler()
1876 input->name = acpi_device_name(video->device); in acpi_video_bus_add_notify_handler()
1880 input->dev.parent = &video->device->dev; in acpi_video_bus_add_notify_handler()
2000 static int acpi_video_bus_add(struct acpi_device *device) in acpi_video_bus_add() argument
2007 device->parent->handle, 1, in acpi_video_bus_add()
2009 device, NULL); in acpi_video_bus_add()
2025 if (!strcmp(device->pnp.bus_id, "VID")) { in acpi_video_bus_add()
2027 device->pnp.bus_id[3] = '0' + instance; in acpi_video_bus_add()
2031 if (!strcmp(device->pnp.bus_id, "VGA")) { in acpi_video_bus_add()
2033 device->pnp.bus_id[3] = '0' + instance; in acpi_video_bus_add()
2037 video->device = device; in acpi_video_bus_add()
2038 strcpy(acpi_device_name(device), ACPI_VIDEO_BUS_NAME); in acpi_video_bus_add()
2039 strcpy(acpi_device_class(device), ACPI_VIDEO_CLASS); in acpi_video_bus_add()
2040 device->driver_data = video; in acpi_video_bus_add()
2050 error = acpi_video_bus_get_devices(video, device); in acpi_video_bus_add()
2055 ACPI_VIDEO_DEVICE_NAME, acpi_device_bid(device), in acpi_video_bus_add()
2074 device->driver_data = NULL; in acpi_video_bus_add()
2079 static int acpi_video_bus_remove(struct acpi_device *device) in acpi_video_bus_remove() argument
2084 if (!device || !acpi_driver_data(device)) in acpi_video_bus_remove()
2087 video = acpi_driver_data(device); in acpi_video_bus_remove()
2106 if (dev->device == 0x00D1) in is_i740()
2108 if (dev->device == 0x7000) in is_i740()