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()
227 result = acpi_bind_memory_blocks(info, mem_device->device); in acpi_memory_enable_device()
242 dev_err(&mem_device->device->dev, "add_memory failed\n"); in acpi_memory_enable_device()
256 static void acpi_memory_remove_memory(struct acpi_memory_device *mem_device) in acpi_memory_remove_memory() argument
260 list_for_each_entry_safe(info, n, &mem_device->res_list, list) { in acpi_memory_remove_memory()
271 static void acpi_memory_device_free(struct acpi_memory_device *mem_device) in acpi_memory_device_free() argument
273 if (!mem_device) in acpi_memory_device_free()
277 if (mem_device->mgid >= 0) in acpi_memory_device_free()
278 memory_group_unregister(mem_device->mgid); in acpi_memory_device_free()
280 acpi_memory_free_device_resources(mem_device); in acpi_memory_device_free()
281 mem_device->device->driver_data = NULL; in acpi_memory_device_free()
282 kfree(mem_device); in acpi_memory_device_free()
288 struct acpi_memory_device *mem_device; in acpi_memory_device_add() local
294 mem_device = kzalloc(sizeof(struct acpi_memory_device), GFP_KERNEL); in acpi_memory_device_add()
295 if (!mem_device) in acpi_memory_device_add()
298 INIT_LIST_HEAD(&mem_device->res_list); in acpi_memory_device_add()
299 mem_device->device = device; in acpi_memory_device_add()
300 mem_device->mgid = -1; in acpi_memory_device_add()
303 device->driver_data = mem_device; in acpi_memory_device_add()
306 result = acpi_memory_get_device_resources(mem_device); in acpi_memory_device_add()
309 kfree(mem_device); in acpi_memory_device_add()
313 result = acpi_memory_check_device(mem_device); in acpi_memory_device_add()
315 acpi_memory_device_free(mem_device); in acpi_memory_device_add()
319 result = acpi_memory_enable_device(mem_device); in acpi_memory_device_add()
322 acpi_memory_device_free(mem_device); in acpi_memory_device_add()
332 struct acpi_memory_device *mem_device; in acpi_memory_device_remove() local
337 mem_device = acpi_driver_data(device); in acpi_memory_device_remove()
338 acpi_memory_remove_memory(mem_device); in acpi_memory_device_remove()
339 acpi_memory_device_free(mem_device); in acpi_memory_device_remove()