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()
356 struct hsi_controller *hsi = to_hsi_controller(dev); in hsi_controller_release() local
358 kfree(hsi->port); in hsi_controller_release()
359 kfree(hsi); in hsi_controller_release()
381 void hsi_unregister_controller(struct hsi_controller *hsi) in hsi_unregister_controller() argument
383 device_for_each_child(&hsi->device, NULL, hsi_remove_port); in hsi_unregister_controller()
384 device_unregister(&hsi->device); in hsi_unregister_controller()
394 int hsi_register_controller(struct hsi_controller *hsi) in hsi_register_controller() argument
399 err = device_add(&hsi->device); in hsi_register_controller()
402 for (i = 0; i < hsi->num_ports; i++) { in hsi_register_controller()
403 hsi->port[i]->device.parent = &hsi->device; in hsi_register_controller()
404 err = device_add(&hsi->port[i]->device); in hsi_register_controller()
409 hsi_scan_board_info(hsi); in hsi_register_controller()
414 device_del(&hsi->port[i]->device); in hsi_register_controller()
415 device_del(&hsi->device); in hsi_register_controller()
454 void hsi_put_controller(struct hsi_controller *hsi) in hsi_put_controller() argument
458 if (!hsi) in hsi_put_controller()
461 for (i = 0; i < hsi->num_ports; i++) in hsi_put_controller()
462 if (hsi->port && hsi->port[i]) in hsi_put_controller()
463 put_device(&hsi->port[i]->device); in hsi_put_controller()
464 put_device(&hsi->device); in hsi_put_controller()
477 struct hsi_controller *hsi; in hsi_alloc_controller() local
484 hsi = kzalloc(sizeof(*hsi), flags); in hsi_alloc_controller()
485 if (!hsi) in hsi_alloc_controller()
489 kfree(hsi); in hsi_alloc_controller()
492 hsi->num_ports = n_ports; in hsi_alloc_controller()
493 hsi->port = port; in hsi_alloc_controller()
494 hsi->device.release = hsi_controller_release; in hsi_alloc_controller()
495 device_initialize(&hsi->device); in hsi_alloc_controller()
511 hsi->port[i]->device.release = hsi_port_release; in hsi_alloc_controller()
512 device_initialize(&hsi->port[i]->device); in hsi_alloc_controller()
515 return hsi; in hsi_alloc_controller()
517 hsi_put_controller(hsi); in hsi_alloc_controller()