Lines Matching refs:hsi
120 static void hsi_scan_board_info(struct hsi_controller *hsi) in hsi_scan_board_info() argument
126 if (cl_info->info.hsi_id == hsi->id) { in hsi_scan_board_info()
127 p = hsi_find_port_num(hsi, cl_info->info.port); in hsi_scan_board_info()
348 struct hsi_controller *hsi = to_hsi_controller(dev); in hsi_controller_release() local
350 kfree(hsi->port); in hsi_controller_release()
351 kfree(hsi); in hsi_controller_release()
373 void hsi_unregister_controller(struct hsi_controller *hsi) in hsi_unregister_controller() argument
375 device_for_each_child(&hsi->device, NULL, hsi_remove_port); in hsi_unregister_controller()
376 device_unregister(&hsi->device); in hsi_unregister_controller()
386 int hsi_register_controller(struct hsi_controller *hsi) in hsi_register_controller() argument
391 err = device_add(&hsi->device); in hsi_register_controller()
394 for (i = 0; i < hsi->num_ports; i++) { in hsi_register_controller()
395 hsi->port[i]->device.parent = &hsi->device; in hsi_register_controller()
396 err = device_add(&hsi->port[i]->device); in hsi_register_controller()
401 hsi_scan_board_info(hsi); in hsi_register_controller()
406 device_del(&hsi->port[i]->device); in hsi_register_controller()
407 device_del(&hsi->device); in hsi_register_controller()
446 void hsi_put_controller(struct hsi_controller *hsi) in hsi_put_controller() argument
450 if (!hsi) in hsi_put_controller()
453 for (i = 0; i < hsi->num_ports; i++) in hsi_put_controller()
454 if (hsi->port && hsi->port[i]) in hsi_put_controller()
455 put_device(&hsi->port[i]->device); in hsi_put_controller()
456 put_device(&hsi->device); in hsi_put_controller()
469 struct hsi_controller *hsi; in hsi_alloc_controller() local
476 hsi = kzalloc(sizeof(*hsi), flags); in hsi_alloc_controller()
477 if (!hsi) in hsi_alloc_controller()
481 kfree(hsi); in hsi_alloc_controller()
484 hsi->num_ports = n_ports; in hsi_alloc_controller()
485 hsi->port = port; in hsi_alloc_controller()
486 hsi->device.release = hsi_controller_release; in hsi_alloc_controller()
487 device_initialize(&hsi->device); in hsi_alloc_controller()
503 hsi->port[i]->device.release = hsi_port_release; in hsi_alloc_controller()
504 device_initialize(&hsi->port[i]->device); in hsi_alloc_controller()
507 return hsi; in hsi_alloc_controller()
509 hsi_put_controller(hsi); in hsi_alloc_controller()