Lines Matching refs:ipmi_device

113 	struct acpi_ipmi_device *ipmi_device;
117 ipmi_device = kzalloc(sizeof(*ipmi_device), GFP_KERNEL);
118 if (!ipmi_device)
121 kref_init(&ipmi_device->kref);
122 INIT_LIST_HEAD(&ipmi_device->head);
123 INIT_LIST_HEAD(&ipmi_device->tx_msg_list);
124 spin_lock_init(&ipmi_device->tx_msg_lock);
125 ipmi_device->handle = handle;
126 ipmi_device->dev = get_device(dev);
127 ipmi_device->ipmi_ifnum = iface;
130 ipmi_device, &user);
133 kfree(ipmi_device);
136 ipmi_device->user_interface = user;
138 return ipmi_device;
141 static void ipmi_dev_release(struct acpi_ipmi_device *ipmi_device)
143 ipmi_destroy_user(ipmi_device->user_interface);
144 put_device(ipmi_device->dev);
145 kfree(ipmi_device);
156 static void __ipmi_dev_kill(struct acpi_ipmi_device *ipmi_device)
158 list_del(&ipmi_device->head);
159 if (driver_data.selected_smi == ipmi_device)
166 ipmi_device->dead = true;
171 struct acpi_ipmi_device *ipmi_device = NULL;
175 ipmi_device = driver_data.selected_smi;
176 kref_get(&ipmi_device->kref);
180 return ipmi_device;
183 static void acpi_ipmi_dev_put(struct acpi_ipmi_device *ipmi_device)
185 kref_put(&ipmi_device->kref, ipmi_dev_release_kref);
375 struct acpi_ipmi_device *ipmi_device = user_msg_data;
377 struct device *dev = ipmi_device->dev;
380 if (msg->user != ipmi_device->user_interface) {
383 msg->user, ipmi_device->user_interface);
387 spin_lock_irqsave(&ipmi_device->tx_msg_lock, flags);
388 list_for_each_entry_safe(iter, temp, &ipmi_device->tx_msg_list, head) {
395 spin_unlock_irqrestore(&ipmi_device->tx_msg_lock, flags);
436 struct acpi_ipmi_device *ipmi_device, *temp;
451 ipmi_device = ipmi_dev_alloc(iface, smi_data.dev, handle);
452 if (!ipmi_device) {
467 driver_data.selected_smi = ipmi_device;
468 list_add_tail(&ipmi_device->head, &driver_data.ipmi_devices);
476 ipmi_dev_release(ipmi_device);
483 struct acpi_ipmi_device *ipmi_device = NULL, *iter, *temp;
489 ipmi_device = iter;
500 if (ipmi_device) {
501 ipmi_flush_tx_msg(ipmi_device);
502 acpi_ipmi_dev_put(ipmi_device);
524 struct acpi_ipmi_device *ipmi_device;
541 ipmi_device = tx_msg->device;
551 if (ipmi_device->dead) {
556 spin_lock_irqsave(&ipmi_device->tx_msg_lock, flags);
557 list_add_tail(&tx_msg->head, &ipmi_device->tx_msg_list);
558 spin_unlock_irqrestore(&ipmi_device->tx_msg_lock, flags);
561 err = ipmi_request_settime(ipmi_device->user_interface,
576 ipmi_cancel_tx_msg(ipmi_device, tx_msg);
611 struct acpi_ipmi_device *ipmi_device;
626 ipmi_device = list_first_entry(&driver_data.ipmi_devices,
629 __ipmi_dev_kill(ipmi_device);
632 ipmi_flush_tx_msg(ipmi_device);
633 acpi_ipmi_dev_put(ipmi_device);