Lines Matching refs:hsi
130 static void hsi_scan_board_info(struct hsi_controller *hsi) in hsi_scan_board_info() argument
136 if (cl_info->info.hsi_id == hsi->id) { in hsi_scan_board_info()
137 p = hsi_find_port_num(hsi, cl_info->info.port); in hsi_scan_board_info()
357 struct hsi_controller *hsi = to_hsi_controller(dev); in hsi_controller_release() local
359 kfree(hsi->port); in hsi_controller_release()
360 kfree(hsi); in hsi_controller_release()
382 void hsi_unregister_controller(struct hsi_controller *hsi) in hsi_unregister_controller() argument
384 device_for_each_child(&hsi->device, NULL, hsi_remove_port); in hsi_unregister_controller()
385 device_unregister(&hsi->device); in hsi_unregister_controller()
395 int hsi_register_controller(struct hsi_controller *hsi) in hsi_register_controller() argument
400 err = device_add(&hsi->device); in hsi_register_controller()
403 for (i = 0; i < hsi->num_ports; i++) { in hsi_register_controller()
404 hsi->port[i]->device.parent = &hsi->device; in hsi_register_controller()
405 err = device_add(&hsi->port[i]->device); in hsi_register_controller()
410 hsi_scan_board_info(hsi); in hsi_register_controller()
415 device_del(&hsi->port[i]->device); in hsi_register_controller()
416 device_del(&hsi->device); in hsi_register_controller()
455 void hsi_put_controller(struct hsi_controller *hsi) in hsi_put_controller() argument
459 if (!hsi) in hsi_put_controller()
462 for (i = 0; i < hsi->num_ports; i++) in hsi_put_controller()
463 if (hsi->port && hsi->port[i]) in hsi_put_controller()
464 put_device(&hsi->port[i]->device); in hsi_put_controller()
465 put_device(&hsi->device); in hsi_put_controller()
478 struct hsi_controller *hsi; in hsi_alloc_controller() local
485 hsi = kzalloc(sizeof(*hsi), flags); in hsi_alloc_controller()
486 if (!hsi) in hsi_alloc_controller()
490 kfree(hsi); in hsi_alloc_controller()
493 hsi->num_ports = n_ports; in hsi_alloc_controller()
494 hsi->port = port; in hsi_alloc_controller()
495 hsi->device.release = hsi_controller_release; in hsi_alloc_controller()
496 device_initialize(&hsi->device); in hsi_alloc_controller()
512 hsi->port[i]->device.release = hsi_port_release; in hsi_alloc_controller()
513 device_initialize(&hsi->port[i]->device); in hsi_alloc_controller()
516 return hsi; in hsi_alloc_controller()
518 hsi_put_controller(hsi); in hsi_alloc_controller()