Lines Matching refs:icm

60 	struct icm *icm;  member
92 struct icm { struct
182 static inline struct tb *icm_to_tb(struct icm *icm) in icm_to_tb() argument
184 return ((void *)icm - sizeof(struct tb)); in icm_to_tb()
211 static int pci2cio_wait_completion(struct icm *icm, unsigned long timeout_msec) in pci2cio_wait_completion() argument
217 pci_read_config_dword(icm->upstream_port, in pci2cio_wait_completion()
218 icm->vnd_cap + PCIE2CIO_CMD, &cmd); in pci2cio_wait_completion()
231 static int pcie2cio_read(struct icm *icm, enum tb_cfg_space cs, in pcie2cio_read() argument
234 struct pci_dev *pdev = icm->upstream_port; in pcie2cio_read()
235 int ret, vnd_cap = icm->vnd_cap; in pcie2cio_read()
244 ret = pci2cio_wait_completion(icm, 5000); in pcie2cio_read()
252 static int pcie2cio_write(struct icm *icm, enum tb_cfg_space cs, in pcie2cio_write() argument
255 struct pci_dev *pdev = icm->upstream_port; in pcie2cio_write()
256 int vnd_cap = icm->vnd_cap; in pcie2cio_write()
267 return pci2cio_wait_completion(icm, 5000); in pcie2cio_write()
301 struct icm *icm = tb_priv(tb); in icm_request() local
322 mutex_lock(&icm->request_lock); in icm_request()
324 mutex_unlock(&icm->request_lock); in icm_request()
344 struct icm *icm = tb_priv(tb); in icm_postpone_rescan() local
346 if (delayed_work_pending(&icm->rescan_work)) in icm_postpone_rescan()
347 mod_delayed_work(tb->wq, &icm->rescan_work, in icm_postpone_rescan()
353 struct icm *icm = tb_priv(tb); in icm_veto_begin() local
355 if (!icm->veto) { in icm_veto_begin()
356 icm->veto = true; in icm_veto_begin()
364 struct icm *icm = tb_priv(tb); in icm_veto_end() local
366 if (icm->veto) { in icm_veto_end()
367 icm->veto = false; in icm_veto_end()
729 struct icm *icm = tb_priv(tb); in icm_fr_device_connected() local
777 ret = icm->get_route(tb, link, depth, &route); in icm_fr_device_connected()
836 ret = icm->get_route(tb, link, depth, &route); in icm_fr_device_connected()
1430 struct icm *icm = tb_priv(tb); in icm_ar_is_supported() local
1453 icm->upstream_port = upstream_port; in icm_ar_is_supported()
1454 icm->vnd_cap = cap; in icm_ar_is_supported()
1698 struct icm *icm = tb_priv(tb); in icm_handle_notification() local
1710 icm->device_connected(tb, n->pkg); in icm_handle_notification()
1713 icm->device_disconnected(tb, n->pkg); in icm_handle_notification()
1717 icm->xdomain_connected(tb, n->pkg); in icm_handle_notification()
1721 icm->xdomain_disconnected(tb, n->pkg); in icm_handle_notification()
1724 icm->rtd3_veto(tb, n->pkg); in icm_handle_notification()
1760 struct icm *icm = tb_priv(tb); in __icm_driver_ready() local
1764 ret = icm->driver_ready(tb, security_level, proto_version, nboot_acl, in __icm_driver_ready()
1793 struct icm *icm = tb_priv(tb); in icm_firmware_reset() local
1796 if (!icm->upstream_port) in icm_firmware_reset()
1811 return icm->cio_reset(tb); in icm_firmware_reset()
1845 struct icm *icm = tb_priv(tb); in icm_reset_phy_port() local
1851 if (!icm->upstream_port) in icm_reset_phy_port()
1866 ret = pcie2cio_read(icm, TB_CFG_PORT, port0, PHY_PORT_CS1, &val0); in icm_reset_phy_port()
1869 ret = pcie2cio_read(icm, TB_CFG_PORT, port1, PHY_PORT_CS1, &val1); in icm_reset_phy_port()
1883 ret = pcie2cio_write(icm, TB_CFG_PORT, port0, PHY_PORT_CS1, val0); in icm_reset_phy_port()
1888 ret = pcie2cio_write(icm, TB_CFG_PORT, port1, PHY_PORT_CS1, val1); in icm_reset_phy_port()
1895 ret = pcie2cio_read(icm, TB_CFG_PORT, port0, PHY_PORT_CS1, &val0); in icm_reset_phy_port()
1898 ret = pcie2cio_read(icm, TB_CFG_PORT, port1, PHY_PORT_CS1, &val1); in icm_reset_phy_port()
1903 ret = pcie2cio_write(icm, TB_CFG_PORT, port0, PHY_PORT_CS1, val0); in icm_reset_phy_port()
1908 return pcie2cio_write(icm, TB_CFG_PORT, port1, PHY_PORT_CS1, val1); in icm_reset_phy_port()
1913 struct icm *icm = tb_priv(tb); in icm_firmware_init() local
1923 if (icm->get_mode) { in icm_firmware_init()
1924 ret = icm->get_mode(tb); in icm_firmware_init()
1928 icm->safe_mode = true; in icm_firmware_init()
1961 struct icm *icm = tb_priv(tb); in icm_driver_ready() local
1968 if (icm->safe_mode) { in icm_driver_ready()
1975 ret = __icm_driver_ready(tb, &tb->security_level, &icm->proto_version, in icm_driver_ready()
1976 &tb->nboot_acl, &icm->rpm); in icm_driver_ready()
1984 if (tb->nboot_acl > icm->max_boot_acl) in icm_driver_ready()
1987 if (icm->proto_version >= 3) in icm_driver_ready()
1995 struct icm *icm = tb_priv(tb); in icm_suspend() local
1997 if (icm->save_devices) in icm_suspend()
1998 icm->save_devices(tb); in icm_suspend()
2076 struct icm *icm = container_of(work, struct icm, rescan_work.work); in icm_rescan_work() local
2077 struct tb *tb = icm_to_tb(icm); in icm_rescan_work()
2087 struct icm *icm = tb_priv(tb); in icm_complete() local
2112 queue_delayed_work(tb->wq, &icm->rescan_work, msecs_to_jiffies(500)); in icm_complete()
2151 struct icm *icm = tb_priv(tb); in icm_start() local
2154 if (icm->safe_mode) in icm_start()
2161 tb->root_switch->no_nvm_upgrade = !icm->can_upgrade_nvm; in icm_start()
2162 tb->root_switch->rpm = icm->rpm; in icm_start()
2164 if (icm->set_uuid) in icm_start()
2165 icm->set_uuid(tb); in icm_start()
2178 struct icm *icm = tb_priv(tb); in icm_stop() local
2180 cancel_delayed_work(&icm->rescan_work); in icm_stop()
2184 kfree(icm->last_nvm_auth); in icm_stop()
2185 icm->last_nvm_auth = NULL; in icm_stop()
2196 struct icm *icm = auth->icm; in icm_usb4_switch_nvm_auth_complete() local
2197 struct tb *tb = icm_to_tb(icm); in icm_usb4_switch_nvm_auth_complete()
2204 if (WARN_ON(icm->last_nvm_auth)) in icm_usb4_switch_nvm_auth_complete()
2205 kfree(icm->last_nvm_auth); in icm_usb4_switch_nvm_auth_complete()
2206 icm->last_nvm_auth = auth; in icm_usb4_switch_nvm_auth_complete()
2213 struct icm *icm = tb_priv(tb); in icm_usb4_switch_nvm_authenticate() local
2221 auth->icm = icm; in icm_usb4_switch_nvm_authenticate()
2245 mutex_lock(&icm->request_lock); in icm_usb4_switch_nvm_authenticate()
2248 mutex_unlock(&icm->request_lock); in icm_usb4_switch_nvm_authenticate()
2267 struct icm *icm = tb_priv(tb); in icm_usb4_switch_op() local
2275 if (icm->proto_version < 3) in icm_usb4_switch_op()
2327 struct icm *icm = tb_priv(tb); in icm_usb4_switch_nvm_authenticate_status() local
2330 if (icm->proto_version < 3) in icm_usb4_switch_nvm_authenticate_status()
2333 auth = icm->last_nvm_auth; in icm_usb4_switch_nvm_authenticate_status()
2334 icm->last_nvm_auth = NULL; in icm_usb4_switch_nvm_authenticate_status()
2433 struct icm *icm; in icm_probe() local
2436 tb = tb_domain_alloc(nhi, ICM_TIMEOUT, sizeof(struct icm)); in icm_probe()
2440 icm = tb_priv(tb); in icm_probe()
2441 INIT_DELAYED_WORK(&icm->rescan_work, icm_rescan_work); in icm_probe()
2442 mutex_init(&icm->request_lock); in icm_probe()
2447 icm->can_upgrade_nvm = true; in icm_probe()
2448 icm->is_supported = icm_fr_is_supported; in icm_probe()
2449 icm->get_route = icm_fr_get_route; in icm_probe()
2450 icm->save_devices = icm_fr_save_devices; in icm_probe()
2451 icm->driver_ready = icm_fr_driver_ready; in icm_probe()
2452 icm->device_connected = icm_fr_device_connected; in icm_probe()
2453 icm->device_disconnected = icm_fr_device_disconnected; in icm_probe()
2454 icm->xdomain_connected = icm_fr_xdomain_connected; in icm_probe()
2455 icm->xdomain_disconnected = icm_fr_xdomain_disconnected; in icm_probe()
2464 icm->max_boot_acl = ICM_AR_PREBOOT_ACL_ENTRIES; in icm_probe()
2471 icm->can_upgrade_nvm = !x86_apple_machine; in icm_probe()
2472 icm->is_supported = icm_ar_is_supported; in icm_probe()
2473 icm->cio_reset = icm_ar_cio_reset; in icm_probe()
2474 icm->get_mode = icm_ar_get_mode; in icm_probe()
2475 icm->get_route = icm_ar_get_route; in icm_probe()
2476 icm->save_devices = icm_fr_save_devices; in icm_probe()
2477 icm->driver_ready = icm_ar_driver_ready; in icm_probe()
2478 icm->device_connected = icm_fr_device_connected; in icm_probe()
2479 icm->device_disconnected = icm_fr_device_disconnected; in icm_probe()
2480 icm->xdomain_connected = icm_fr_xdomain_connected; in icm_probe()
2481 icm->xdomain_disconnected = icm_fr_xdomain_disconnected; in icm_probe()
2487 icm->max_boot_acl = ICM_AR_PREBOOT_ACL_ENTRIES; in icm_probe()
2488 icm->can_upgrade_nvm = !x86_apple_machine; in icm_probe()
2489 icm->is_supported = icm_ar_is_supported; in icm_probe()
2490 icm->cio_reset = icm_tr_cio_reset; in icm_probe()
2491 icm->get_mode = icm_ar_get_mode; in icm_probe()
2492 icm->driver_ready = icm_tr_driver_ready; in icm_probe()
2493 icm->device_connected = icm_tr_device_connected; in icm_probe()
2494 icm->device_disconnected = icm_tr_device_disconnected; in icm_probe()
2495 icm->xdomain_connected = icm_tr_xdomain_connected; in icm_probe()
2496 icm->xdomain_disconnected = icm_tr_xdomain_disconnected; in icm_probe()
2502 icm->is_supported = icm_fr_is_supported; in icm_probe()
2503 icm->driver_ready = icm_icl_driver_ready; in icm_probe()
2504 icm->set_uuid = icm_icl_set_uuid; in icm_probe()
2505 icm->device_connected = icm_icl_device_connected; in icm_probe()
2506 icm->device_disconnected = icm_tr_device_disconnected; in icm_probe()
2507 icm->xdomain_connected = icm_tr_xdomain_connected; in icm_probe()
2508 icm->xdomain_disconnected = icm_tr_xdomain_disconnected; in icm_probe()
2509 icm->rtd3_veto = icm_icl_rtd3_veto; in icm_probe()
2524 icm->is_supported = icm_tgl_is_supported; in icm_probe()
2525 icm->driver_ready = icm_icl_driver_ready; in icm_probe()
2526 icm->set_uuid = icm_icl_set_uuid; in icm_probe()
2527 icm->device_connected = icm_icl_device_connected; in icm_probe()
2528 icm->device_disconnected = icm_tr_device_disconnected; in icm_probe()
2529 icm->xdomain_connected = icm_tr_xdomain_connected; in icm_probe()
2530 icm->xdomain_disconnected = icm_tr_xdomain_disconnected; in icm_probe()
2531 icm->rtd3_veto = icm_icl_rtd3_veto; in icm_probe()
2537 icm->is_supported = icm_tgl_is_supported; in icm_probe()
2538 icm->get_mode = icm_ar_get_mode; in icm_probe()
2539 icm->driver_ready = icm_tr_driver_ready; in icm_probe()
2540 icm->device_connected = icm_tr_device_connected; in icm_probe()
2541 icm->device_disconnected = icm_tr_device_disconnected; in icm_probe()
2542 icm->xdomain_connected = icm_tr_xdomain_connected; in icm_probe()
2543 icm->xdomain_disconnected = icm_tr_xdomain_disconnected; in icm_probe()
2548 if (!icm->is_supported || !icm->is_supported(tb)) { in icm_probe()