Lines Matching refs:ipmi_device

116 	struct acpi_ipmi_device *ipmi_device;  in ipmi_dev_alloc()  local
120 ipmi_device = kzalloc(sizeof(*ipmi_device), GFP_KERNEL); in ipmi_dev_alloc()
121 if (!ipmi_device) in ipmi_dev_alloc()
124 kref_init(&ipmi_device->kref); in ipmi_dev_alloc()
125 INIT_LIST_HEAD(&ipmi_device->head); in ipmi_dev_alloc()
126 INIT_LIST_HEAD(&ipmi_device->tx_msg_list); in ipmi_dev_alloc()
127 spin_lock_init(&ipmi_device->tx_msg_lock); in ipmi_dev_alloc()
128 ipmi_device->handle = handle; in ipmi_dev_alloc()
129 ipmi_device->dev = get_device(dev); in ipmi_dev_alloc()
130 ipmi_device->ipmi_ifnum = iface; in ipmi_dev_alloc()
133 ipmi_device, &user); in ipmi_dev_alloc()
136 kfree(ipmi_device); in ipmi_dev_alloc()
139 ipmi_device->user_interface = user; in ipmi_dev_alloc()
141 return ipmi_device; in ipmi_dev_alloc()
144 static void ipmi_dev_release(struct acpi_ipmi_device *ipmi_device) in ipmi_dev_release() argument
146 ipmi_destroy_user(ipmi_device->user_interface); in ipmi_dev_release()
147 put_device(ipmi_device->dev); in ipmi_dev_release()
148 kfree(ipmi_device); in ipmi_dev_release()
159 static void __ipmi_dev_kill(struct acpi_ipmi_device *ipmi_device) in __ipmi_dev_kill() argument
161 list_del(&ipmi_device->head); in __ipmi_dev_kill()
162 if (driver_data.selected_smi == ipmi_device) in __ipmi_dev_kill()
169 ipmi_device->dead = true; in __ipmi_dev_kill()
174 struct acpi_ipmi_device *ipmi_device = NULL; in acpi_ipmi_dev_get() local
178 ipmi_device = driver_data.selected_smi; in acpi_ipmi_dev_get()
179 kref_get(&ipmi_device->kref); in acpi_ipmi_dev_get()
183 return ipmi_device; in acpi_ipmi_dev_get()
186 static void acpi_ipmi_dev_put(struct acpi_ipmi_device *ipmi_device) in acpi_ipmi_dev_put() argument
188 kref_put(&ipmi_device->kref, ipmi_dev_release_kref); in acpi_ipmi_dev_put()
378 struct acpi_ipmi_device *ipmi_device = user_msg_data; in ipmi_msg_handler() local
380 struct device *dev = ipmi_device->dev; in ipmi_msg_handler()
383 if (msg->user != ipmi_device->user_interface) { in ipmi_msg_handler()
386 msg->user, ipmi_device->user_interface); in ipmi_msg_handler()
390 spin_lock_irqsave(&ipmi_device->tx_msg_lock, flags); in ipmi_msg_handler()
391 list_for_each_entry_safe(iter, temp, &ipmi_device->tx_msg_list, head) { in ipmi_msg_handler()
398 spin_unlock_irqrestore(&ipmi_device->tx_msg_lock, flags); in ipmi_msg_handler()
439 struct acpi_ipmi_device *ipmi_device, *temp; in ipmi_register_bmc() local
454 ipmi_device = ipmi_dev_alloc(iface, smi_data.dev, handle); in ipmi_register_bmc()
455 if (!ipmi_device) { in ipmi_register_bmc()
470 driver_data.selected_smi = ipmi_device; in ipmi_register_bmc()
473 list_add_tail(&ipmi_device->head, &driver_data.ipmi_devices); in ipmi_register_bmc()
481 ipmi_dev_release(ipmi_device); in ipmi_register_bmc()
488 struct acpi_ipmi_device *ipmi_device = NULL, *iter, *temp; in ipmi_bmc_gone() local
494 ipmi_device = iter; in ipmi_bmc_gone()
505 if (ipmi_device) { in ipmi_bmc_gone()
506 ipmi_flush_tx_msg(ipmi_device); in ipmi_bmc_gone()
507 acpi_ipmi_dev_put(ipmi_device); in ipmi_bmc_gone()
529 struct acpi_ipmi_device *ipmi_device; in acpi_ipmi_space_handler() local
546 ipmi_device = tx_msg->device; in acpi_ipmi_space_handler()
556 if (ipmi_device->dead) { in acpi_ipmi_space_handler()
561 spin_lock_irqsave(&ipmi_device->tx_msg_lock, flags); in acpi_ipmi_space_handler()
562 list_add_tail(&tx_msg->head, &ipmi_device->tx_msg_list); in acpi_ipmi_space_handler()
563 spin_unlock_irqrestore(&ipmi_device->tx_msg_lock, flags); in acpi_ipmi_space_handler()
566 err = ipmi_request_settime(ipmi_device->user_interface, in acpi_ipmi_space_handler()
581 ipmi_cancel_tx_msg(ipmi_device, tx_msg); in acpi_ipmi_space_handler()
632 struct acpi_ipmi_device *ipmi_device; in acpi_ipmi_exit() local
647 ipmi_device = list_first_entry(&driver_data.ipmi_devices, in acpi_ipmi_exit()
650 __ipmi_dev_kill(ipmi_device); in acpi_ipmi_exit()
653 ipmi_flush_tx_msg(ipmi_device); in acpi_ipmi_exit()
654 acpi_ipmi_dev_put(ipmi_device); in acpi_ipmi_exit()