• Home
  • Raw
  • Download

Lines Matching refs:wblock

124 	struct wmi_block *wblock;  in find_guid()  local
130 list_for_each_entry(wblock, &wmi_block_list, list) { in find_guid()
131 block = &wblock->gblock; in find_guid()
135 *out = wblock; in find_guid()
152 static const void *find_guid_context(struct wmi_block *wblock, in find_guid_context() argument
157 if (wblock == NULL || wdriver == NULL) in find_guid_context()
164 if (guid_parse_and_compare(id->guid_string, &wblock->gblock.guid)) in find_guid_context()
195 static acpi_status wmi_method_enable(struct wmi_block *wblock, int enable) in wmi_method_enable() argument
202 block = &wblock->gblock; in wmi_method_enable()
203 handle = wblock->acpi_device->handle; in wmi_method_enable()
227 struct wmi_block *wblock; in set_required_buffer_size() local
229 wblock = container_of(wdev, struct wmi_block, dev); in set_required_buffer_size()
230 wblock->req_buf_size = length; in set_required_buffer_size()
249 struct wmi_block *wblock = NULL; in wmi_evaluate_method() local
251 if (!find_guid(guid_string, &wblock)) in wmi_evaluate_method()
253 return wmidev_evaluate_method(&wblock->dev, instance, method_id, in wmi_evaluate_method()
272 struct wmi_block *wblock; in wmidev_evaluate_method() local
279 wblock = container_of(wdev, struct wmi_block, dev); in wmidev_evaluate_method()
280 block = &wblock->gblock; in wmidev_evaluate_method()
281 handle = wblock->acpi_device->handle; in wmidev_evaluate_method()
316 static acpi_status __query_block(struct wmi_block *wblock, u8 instance, in __query_block() argument
330 block = &wblock->gblock; in __query_block()
331 handle = wblock->acpi_device->handle; in __query_block()
345 if (instance == 0 && test_bit(WMI_READ_TAKES_NO_ARGS, &wblock->flags)) in __query_block()
397 struct wmi_block *wblock; in wmi_query_block() local
402 if (!find_guid(guid_string, &wblock)) in wmi_query_block()
405 return __query_block(wblock, instance, out); in wmi_query_block()
412 struct wmi_block *wblock = container_of(wdev, struct wmi_block, dev); in wmidev_block_query() local
414 if (ACPI_FAILURE(__query_block(wblock, instance, &out))) in wmidev_block_query()
432 struct wmi_block *wblock = NULL; in wmi_set_block() local
442 if (!find_guid(guid_string, &wblock)) in wmi_set_block()
445 block = &wblock->gblock; in wmi_set_block()
446 handle = wblock->acpi_device->handle; in wmi_set_block()
634 struct wmi_block *wblock; in wmi_get_event_data() local
641 list_for_each_entry(wblock, &wmi_block_list, list) { in wmi_get_event_data()
642 struct guid_block *gblock = &wblock->gblock; in wmi_get_event_data()
646 return acpi_evaluate_object(wblock->acpi_device->handle, in wmi_get_event_data()
676 struct wmi_block *wblock = NULL; in wmi_get_acpi_device_uid() local
678 if (!find_guid(guid_string, &wblock)) in wmi_get_acpi_device_uid()
681 return acpi_device_uid(wblock->acpi_device); in wmi_get_acpi_device_uid()
706 struct wmi_block *wblock = dev_to_wblock(dev); in modalias_show() local
708 return sprintf(buf, "wmi:%pUL\n", &wblock->gblock.guid); in modalias_show()
715 struct wmi_block *wblock = dev_to_wblock(dev); in guid_show() local
717 return sprintf(buf, "%pUL\n", &wblock->gblock.guid); in guid_show()
724 struct wmi_block *wblock = dev_to_wblock(dev); in instance_count_show() local
726 return sprintf(buf, "%d\n", (int)wblock->gblock.instance_count); in instance_count_show()
733 struct wmi_block *wblock = dev_to_wblock(dev); in expensive_show() local
736 (wblock->gblock.flags & ACPI_WMI_EXPENSIVE) != 0); in expensive_show()
752 struct wmi_block *wblock = dev_to_wblock(dev); in notify_id_show() local
754 return sprintf(buf, "%02X\n", (unsigned int)wblock->gblock.notify_id); in notify_id_show()
767 struct wmi_block *wblock = dev_to_wblock(dev); in object_id_show() local
769 return sprintf(buf, "%c%c\n", wblock->gblock.object_id[0], in object_id_show()
770 wblock->gblock.object_id[1]); in object_id_show()
798 struct wmi_block *wblock = dev_to_wblock(dev); in wmi_dev_uevent() local
800 if (add_uevent_var(env, "MODALIAS=wmi:%pUL", &wblock->gblock.guid)) in wmi_dev_uevent()
803 if (add_uevent_var(env, "WMI_GUID=%pUL", &wblock->gblock.guid)) in wmi_dev_uevent()
811 struct wmi_block *wblock = dev_to_wblock(dev); in wmi_dev_release() local
813 kfree(wblock); in wmi_dev_release()
819 struct wmi_block *wblock = dev_to_wblock(dev); in wmi_dev_match() local
826 if (guid_parse_and_compare(id->guid_string, &wblock->gblock.guid)) in wmi_dev_match()
840 struct wmi_block *wblock = container_of(filp->private_data, struct wmi_block, char_dev); in wmi_char_open() local
842 filp->private_data = wblock; in wmi_char_open()
850 struct wmi_block *wblock = filp->private_data; in wmi_char_read() local
853 &wblock->req_buf_size, in wmi_char_read()
854 sizeof(wblock->req_buf_size)); in wmi_char_read()
861 struct wmi_block *wblock = filp->private_data; in wmi_ioctl() local
870 if (_IOC_NR(cmd) >= wblock->gblock.instance_count) in wmi_ioctl()
873 mutex_lock(&wblock->char_mutex); in wmi_ioctl()
874 buf = wblock->handler_data; in wmi_ioctl()
876 dev_dbg(&wblock->dev.dev, "Read length from user failed\n"); in wmi_ioctl()
881 if (buf->length < wblock->req_buf_size) { in wmi_ioctl()
882 dev_err(&wblock->dev.dev, in wmi_ioctl()
884 buf->length, wblock->req_buf_size); in wmi_ioctl()
889 if (buf->length > wblock->req_buf_size) in wmi_ioctl()
890 dev_warn(&wblock->dev.dev, in wmi_ioctl()
892 buf->length, wblock->req_buf_size); in wmi_ioctl()
895 if (copy_from_user(buf, input, wblock->req_buf_size)) { in wmi_ioctl()
896 dev_dbg(&wblock->dev.dev, "Copy %llu from user failed\n", in wmi_ioctl()
897 wblock->req_buf_size); in wmi_ioctl()
903 wdriver = drv_to_wdrv(wblock->dev.dev.driver); in wmi_ioctl()
908 ret = wdriver->filter_callback(&wblock->dev, cmd, buf); in wmi_ioctl()
914 if (copy_to_user(input, buf, wblock->req_buf_size)) { in wmi_ioctl()
915 dev_dbg(&wblock->dev.dev, "Copy %llu to user failed\n", in wmi_ioctl()
916 wblock->req_buf_size); in wmi_ioctl()
921 mutex_unlock(&wblock->char_mutex); in wmi_ioctl()
935 struct wmi_block *wblock = dev_to_wblock(dev); in wmi_dev_probe() local
940 if (ACPI_FAILURE(wmi_method_enable(wblock, 1))) in wmi_dev_probe()
945 find_guid_context(wblock, wdriver)); in wmi_dev_probe()
953 if (!wblock->req_buf_size) { in wmi_dev_probe()
954 dev_err(&wblock->dev.dev, in wmi_dev_probe()
960 wblock->handler_data = kmalloc(wblock->req_buf_size, in wmi_dev_probe()
962 if (!wblock->handler_data) { in wmi_dev_probe()
972 wblock->char_dev.minor = MISC_DYNAMIC_MINOR; in wmi_dev_probe()
973 wblock->char_dev.name = buf; in wmi_dev_probe()
974 wblock->char_dev.fops = &wmi_fops; in wmi_dev_probe()
975 wblock->char_dev.mode = 0444; in wmi_dev_probe()
976 ret = misc_register(&wblock->char_dev); in wmi_dev_probe()
984 set_bit(WMI_PROBED, &wblock->flags); in wmi_dev_probe()
990 kfree(wblock->handler_data); in wmi_dev_probe()
992 if (ACPI_FAILURE(wmi_method_enable(wblock, 0))) in wmi_dev_probe()
999 struct wmi_block *wblock = dev_to_wblock(dev); in wmi_dev_remove() local
1002 clear_bit(WMI_PROBED, &wblock->flags); in wmi_dev_remove()
1005 misc_deregister(&wblock->char_dev); in wmi_dev_remove()
1006 kfree(wblock->char_dev.name); in wmi_dev_remove()
1007 kfree(wblock->handler_data); in wmi_dev_remove()
1013 if (ACPI_FAILURE(wmi_method_enable(wblock, 0))) in wmi_dev_remove()
1054 struct wmi_block *wblock; in guid_count() local
1057 list_for_each_entry(wblock, &wmi_block_list, list) { in guid_count()
1058 if (guid_equal(&wblock->gblock.guid, guid)) in guid_count()
1066 struct wmi_block *wblock, in wmi_create_device() argument
1074 if (wblock->gblock.flags & ACPI_WMI_EVENT) { in wmi_create_device()
1075 wblock->dev.dev.type = &wmi_type_event; in wmi_create_device()
1079 if (wblock->gblock.flags & ACPI_WMI_METHOD) { in wmi_create_device()
1080 wblock->dev.dev.type = &wmi_type_method; in wmi_create_device()
1081 mutex_init(&wblock->char_mutex); in wmi_create_device()
1091 strncat(method, wblock->gblock.object_id, 2); in wmi_create_device()
1101 wblock->dev.dev.type = &wmi_type_data; in wmi_create_device()
1114 set_bit(WMI_READ_TAKES_NO_ARGS, &wblock->flags); in wmi_create_device()
1119 strncat(method, wblock->gblock.object_id, 2); in wmi_create_device()
1123 wblock->dev.setable = true; in wmi_create_device()
1126 wblock->dev.dev.bus = &wmi_bus_type; in wmi_create_device()
1127 wblock->dev.dev.parent = wmi_bus_dev; in wmi_create_device()
1129 count = guid_count(&wblock->gblock.guid); in wmi_create_device()
1131 dev_set_name(&wblock->dev.dev, "%pUL-%d", &wblock->gblock.guid, count); in wmi_create_device()
1133 dev_set_name(&wblock->dev.dev, "%pUL", &wblock->gblock.guid); in wmi_create_device()
1135 device_initialize(&wblock->dev.dev); in wmi_create_device()
1142 struct wmi_block *wblock, *next; in wmi_free_devices() local
1145 list_for_each_entry_safe(wblock, next, &wmi_block_list, list) { in wmi_free_devices()
1146 if (wblock->acpi_device == device) { in wmi_free_devices()
1147 list_del(&wblock->list); in wmi_free_devices()
1148 device_unregister(&wblock->dev.dev); in wmi_free_devices()
1155 struct wmi_block *wblock; in guid_already_parsed_for_legacy() local
1157 list_for_each_entry(wblock, &wmi_block_list, list) { in guid_already_parsed_for_legacy()
1169 if (guid_equal(&wblock->gblock.guid, guid)) { in guid_already_parsed_for_legacy()
1177 guid, dev_name(&wblock->acpi_device->dev)); in guid_already_parsed_for_legacy()
1192 struct wmi_block *wblock, *next; in parse_wdg() local
1226 wblock = kzalloc(sizeof(struct wmi_block), GFP_KERNEL); in parse_wdg()
1227 if (!wblock) { in parse_wdg()
1232 wblock->acpi_device = device; in parse_wdg()
1233 wblock->gblock = gblock[i]; in parse_wdg()
1235 retval = wmi_create_device(wmi_bus_dev, wblock, device); in parse_wdg()
1237 kfree(wblock); in parse_wdg()
1241 list_add_tail(&wblock->list, &wmi_block_list); in parse_wdg()
1244 wblock->handler = wmi_notify_debug; in parse_wdg()
1245 wmi_method_enable(wblock, 1); in parse_wdg()
1253 list_for_each_entry_safe(wblock, next, &wmi_block_list, list) { in parse_wdg()
1254 if (wblock->acpi_device != device) in parse_wdg()
1257 retval = device_add(&wblock->dev.dev); in parse_wdg()
1260 &wblock->gblock.guid); in parse_wdg()
1262 wmi_method_enable(wblock, 0); in parse_wdg()
1263 list_del(&wblock->list); in parse_wdg()
1264 put_device(&wblock->dev.dev); in parse_wdg()
1317 struct wmi_block *wblock; in acpi_wmi_notify_handler() local
1320 list_for_each_entry(wblock, &wmi_block_list, list) { in acpi_wmi_notify_handler()
1321 struct guid_block *block = &wblock->gblock; in acpi_wmi_notify_handler()
1323 if (wblock->acpi_device->handle == handle && in acpi_wmi_notify_handler()
1336 if (test_bit(WMI_PROBED, &wblock->flags) && wblock->dev.dev.driver) { in acpi_wmi_notify_handler()
1337 struct wmi_driver *driver = drv_to_wdrv(wblock->dev.dev.driver); in acpi_wmi_notify_handler()
1348 status = acpi_evaluate_object(wblock->acpi_device->handle, in acpi_wmi_notify_handler()
1351 dev_warn(&wblock->dev.dev, in acpi_wmi_notify_handler()
1357 driver->notify(&wblock->dev, in acpi_wmi_notify_handler()
1361 } else if (wblock->handler) { in acpi_wmi_notify_handler()
1363 wblock->handler(event, wblock->handler_data); in acpi_wmi_notify_handler()
1367 pr_info("DEBUG Event GUID: %pUL\n", &wblock->gblock.guid); in acpi_wmi_notify_handler()
1370 wblock->acpi_device->pnp.device_class, in acpi_wmi_notify_handler()
1371 dev_name(&wblock->dev.dev), in acpi_wmi_notify_handler()