Lines Matching refs:mem_device
63 struct acpi_memory_device *mem_device = context; in acpi_memory_get_resource() local
73 list_for_each_entry(info, &mem_device->res_list, list) { in acpi_memory_get_resource()
92 list_add_tail(&new->list, &mem_device->res_list); in acpi_memory_get_resource()
98 acpi_memory_free_device_resources(struct acpi_memory_device *mem_device) in acpi_memory_free_device_resources() argument
102 list_for_each_entry_safe(info, n, &mem_device->res_list, list) in acpi_memory_free_device_resources()
104 INIT_LIST_HEAD(&mem_device->res_list); in acpi_memory_free_device_resources()
108 acpi_memory_get_device_resources(struct acpi_memory_device *mem_device) in acpi_memory_get_device_resources() argument
112 if (!list_empty(&mem_device->res_list)) in acpi_memory_get_device_resources()
115 status = acpi_walk_resources(mem_device->device->handle, METHOD_NAME__CRS, in acpi_memory_get_device_resources()
116 acpi_memory_get_resource, mem_device); in acpi_memory_get_device_resources()
118 acpi_memory_free_device_resources(mem_device); in acpi_memory_get_device_resources()
125 static int acpi_memory_check_device(struct acpi_memory_device *mem_device) in acpi_memory_check_device() argument
130 if (ACPI_FAILURE(acpi_evaluate_integer(mem_device->device->handle, in acpi_memory_check_device()
170 static int acpi_memory_enable_device(struct acpi_memory_device *mem_device) in acpi_memory_enable_device() argument
172 acpi_handle handle = mem_device->device->handle; in acpi_memory_enable_device()
181 list_for_each_entry(info, &mem_device->res_list, list) { in acpi_memory_enable_device()
191 dev_err(&mem_device->device->dev, "device is empty\n"); in acpi_memory_enable_device()
198 mem_device->mgid = mgid; in acpi_memory_enable_device()
206 list_for_each_entry(info, &mem_device->res_list, list) { in acpi_memory_enable_device()
226 result = acpi_bind_memory_blocks(info, mem_device->device); in acpi_memory_enable_device()
241 dev_err(&mem_device->device->dev, "add_memory failed\n"); in acpi_memory_enable_device()
255 static void acpi_memory_remove_memory(struct acpi_memory_device *mem_device) in acpi_memory_remove_memory() argument
259 list_for_each_entry_safe(info, n, &mem_device->res_list, list) { in acpi_memory_remove_memory()
270 static void acpi_memory_device_free(struct acpi_memory_device *mem_device) in acpi_memory_device_free() argument
272 if (!mem_device) in acpi_memory_device_free()
276 if (mem_device->mgid >= 0) in acpi_memory_device_free()
277 memory_group_unregister(mem_device->mgid); in acpi_memory_device_free()
279 acpi_memory_free_device_resources(mem_device); in acpi_memory_device_free()
280 mem_device->device->driver_data = NULL; in acpi_memory_device_free()
281 kfree(mem_device); in acpi_memory_device_free()
287 struct acpi_memory_device *mem_device; in acpi_memory_device_add() local
293 mem_device = kzalloc(sizeof(struct acpi_memory_device), GFP_KERNEL); in acpi_memory_device_add()
294 if (!mem_device) in acpi_memory_device_add()
297 INIT_LIST_HEAD(&mem_device->res_list); in acpi_memory_device_add()
298 mem_device->device = device; in acpi_memory_device_add()
299 mem_device->mgid = -1; in acpi_memory_device_add()
302 device->driver_data = mem_device; in acpi_memory_device_add()
305 result = acpi_memory_get_device_resources(mem_device); in acpi_memory_device_add()
308 kfree(mem_device); in acpi_memory_device_add()
312 result = acpi_memory_check_device(mem_device); in acpi_memory_device_add()
314 acpi_memory_device_free(mem_device); in acpi_memory_device_add()
318 result = acpi_memory_enable_device(mem_device); in acpi_memory_device_add()
321 acpi_memory_device_free(mem_device); in acpi_memory_device_add()
331 struct acpi_memory_device *mem_device; in acpi_memory_device_remove() local
336 mem_device = acpi_driver_data(device); in acpi_memory_device_remove()
337 acpi_memory_remove_memory(mem_device); in acpi_memory_device_remove()
338 acpi_memory_device_free(mem_device); in acpi_memory_device_remove()