Lines Matching refs:icm
61 struct icm *icm; member
93 struct icm { struct
183 static inline struct tb *icm_to_tb(struct icm *icm) in icm_to_tb() argument
185 return ((void *)icm - sizeof(struct tb)); in icm_to_tb()
212 static int pci2cio_wait_completion(struct icm *icm, unsigned long timeout_msec) in pci2cio_wait_completion() argument
218 pci_read_config_dword(icm->upstream_port, in pci2cio_wait_completion()
219 icm->vnd_cap + PCIE2CIO_CMD, &cmd); in pci2cio_wait_completion()
232 static int pcie2cio_read(struct icm *icm, enum tb_cfg_space cs, in pcie2cio_read() argument
235 struct pci_dev *pdev = icm->upstream_port; in pcie2cio_read()
236 int ret, vnd_cap = icm->vnd_cap; in pcie2cio_read()
245 ret = pci2cio_wait_completion(icm, 5000); in pcie2cio_read()
253 static int pcie2cio_write(struct icm *icm, enum tb_cfg_space cs, in pcie2cio_write() argument
256 struct pci_dev *pdev = icm->upstream_port; in pcie2cio_write()
257 int vnd_cap = icm->vnd_cap; in pcie2cio_write()
268 return pci2cio_wait_completion(icm, 5000); in pcie2cio_write()
302 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()
727 struct icm *icm = tb_priv(tb); in icm_fr_device_connected() local
774 ret = icm->get_route(tb, link, depth, &route); in icm_fr_device_connected()
833 ret = icm->get_route(tb, link, depth, &route); in icm_fr_device_connected()
1428 struct icm *icm = tb_priv(tb); in icm_ar_is_supported() local
1451 icm->upstream_port = upstream_port; in icm_ar_is_supported()
1452 icm->vnd_cap = cap; in icm_ar_is_supported()
1696 struct icm *icm = tb_priv(tb); in icm_handle_notification() local
1708 icm->device_connected(tb, n->pkg); in icm_handle_notification()
1711 icm->device_disconnected(tb, n->pkg); in icm_handle_notification()
1715 icm->xdomain_connected(tb, n->pkg); in icm_handle_notification()
1719 icm->xdomain_disconnected(tb, n->pkg); in icm_handle_notification()
1722 icm->rtd3_veto(tb, n->pkg); in icm_handle_notification()
1758 struct icm *icm = tb_priv(tb); in __icm_driver_ready() local
1762 ret = icm->driver_ready(tb, security_level, proto_version, nboot_acl, in __icm_driver_ready()
1791 struct icm *icm = tb_priv(tb); in icm_firmware_reset() local
1794 if (!icm->upstream_port) in icm_firmware_reset()
1809 return icm->cio_reset(tb); in icm_firmware_reset()
1843 struct icm *icm = tb_priv(tb); in icm_reset_phy_port() local
1849 if (!icm->upstream_port) in icm_reset_phy_port()
1864 ret = pcie2cio_read(icm, TB_CFG_PORT, port0, PHY_PORT_CS1, &val0); in icm_reset_phy_port()
1867 ret = pcie2cio_read(icm, TB_CFG_PORT, port1, PHY_PORT_CS1, &val1); in icm_reset_phy_port()
1881 ret = pcie2cio_write(icm, TB_CFG_PORT, port0, PHY_PORT_CS1, val0); in icm_reset_phy_port()
1886 ret = pcie2cio_write(icm, TB_CFG_PORT, port1, PHY_PORT_CS1, val1); in icm_reset_phy_port()
1893 ret = pcie2cio_read(icm, TB_CFG_PORT, port0, PHY_PORT_CS1, &val0); in icm_reset_phy_port()
1896 ret = pcie2cio_read(icm, TB_CFG_PORT, port1, PHY_PORT_CS1, &val1); in icm_reset_phy_port()
1901 ret = pcie2cio_write(icm, TB_CFG_PORT, port0, PHY_PORT_CS1, val0); in icm_reset_phy_port()
1906 return pcie2cio_write(icm, TB_CFG_PORT, port1, PHY_PORT_CS1, val1); in icm_reset_phy_port()
1911 struct icm *icm = tb_priv(tb); in icm_firmware_init() local
1921 if (icm->get_mode) { in icm_firmware_init()
1922 ret = icm->get_mode(tb); in icm_firmware_init()
1926 icm->safe_mode = true; in icm_firmware_init()
1959 struct icm *icm = tb_priv(tb); in icm_driver_ready() local
1966 if (icm->safe_mode) { in icm_driver_ready()
1973 ret = __icm_driver_ready(tb, &tb->security_level, &icm->proto_version, in icm_driver_ready()
1974 &tb->nboot_acl, &icm->rpm); in icm_driver_ready()
1982 if (tb->nboot_acl > icm->max_boot_acl) in icm_driver_ready()
1985 if (icm->proto_version >= 3) in icm_driver_ready()
1993 struct icm *icm = tb_priv(tb); in icm_suspend() local
1995 if (icm->save_devices) in icm_suspend()
1996 icm->save_devices(tb); in icm_suspend()
2074 struct icm *icm = container_of(work, struct icm, rescan_work.work); in icm_rescan_work() local
2075 struct tb *tb = icm_to_tb(icm); in icm_rescan_work()
2085 struct icm *icm = tb_priv(tb); in icm_complete() local
2110 queue_delayed_work(tb->wq, &icm->rescan_work, msecs_to_jiffies(500)); in icm_complete()
2149 struct icm *icm = tb_priv(tb); in icm_start() local
2152 if (icm->safe_mode) in icm_start()
2159 tb->root_switch->no_nvm_upgrade = !icm->can_upgrade_nvm; in icm_start()
2160 tb->root_switch->rpm = icm->rpm; in icm_start()
2162 if (icm->set_uuid) in icm_start()
2163 icm->set_uuid(tb); in icm_start()
2176 struct icm *icm = tb_priv(tb); in icm_stop() local
2178 cancel_delayed_work(&icm->rescan_work); in icm_stop()
2182 kfree(icm->last_nvm_auth); in icm_stop()
2183 icm->last_nvm_auth = NULL; in icm_stop()
2194 struct icm *icm = auth->icm; in icm_usb4_switch_nvm_auth_complete() local
2195 struct tb *tb = icm_to_tb(icm); in icm_usb4_switch_nvm_auth_complete()
2202 if (WARN_ON(icm->last_nvm_auth)) in icm_usb4_switch_nvm_auth_complete()
2203 kfree(icm->last_nvm_auth); in icm_usb4_switch_nvm_auth_complete()
2204 icm->last_nvm_auth = auth; in icm_usb4_switch_nvm_auth_complete()
2211 struct icm *icm = tb_priv(tb); in icm_usb4_switch_nvm_authenticate() local
2219 auth->icm = icm; in icm_usb4_switch_nvm_authenticate()
2243 mutex_lock(&icm->request_lock); in icm_usb4_switch_nvm_authenticate()
2246 mutex_unlock(&icm->request_lock); in icm_usb4_switch_nvm_authenticate()
2265 struct icm *icm = tb_priv(tb); in icm_usb4_switch_op() local
2273 if (icm->proto_version < 3) in icm_usb4_switch_op()
2325 struct icm *icm = tb_priv(tb); in icm_usb4_switch_nvm_authenticate_status() local
2328 if (icm->proto_version < 3) in icm_usb4_switch_nvm_authenticate_status()
2331 auth = icm->last_nvm_auth; in icm_usb4_switch_nvm_authenticate_status()
2332 icm->last_nvm_auth = NULL; in icm_usb4_switch_nvm_authenticate_status()
2431 struct icm *icm; in icm_probe() local
2434 tb = tb_domain_alloc(nhi, ICM_TIMEOUT, sizeof(struct icm)); in icm_probe()
2438 icm = tb_priv(tb); in icm_probe()
2439 INIT_DELAYED_WORK(&icm->rescan_work, icm_rescan_work); in icm_probe()
2440 mutex_init(&icm->request_lock); in icm_probe()
2445 icm->can_upgrade_nvm = true; in icm_probe()
2446 icm->is_supported = icm_fr_is_supported; in icm_probe()
2447 icm->get_route = icm_fr_get_route; in icm_probe()
2448 icm->save_devices = icm_fr_save_devices; in icm_probe()
2449 icm->driver_ready = icm_fr_driver_ready; in icm_probe()
2450 icm->device_connected = icm_fr_device_connected; in icm_probe()
2451 icm->device_disconnected = icm_fr_device_disconnected; in icm_probe()
2452 icm->xdomain_connected = icm_fr_xdomain_connected; in icm_probe()
2453 icm->xdomain_disconnected = icm_fr_xdomain_disconnected; in icm_probe()
2462 icm->max_boot_acl = ICM_AR_PREBOOT_ACL_ENTRIES; in icm_probe()
2469 icm->can_upgrade_nvm = !x86_apple_machine; in icm_probe()
2470 icm->is_supported = icm_ar_is_supported; in icm_probe()
2471 icm->cio_reset = icm_ar_cio_reset; in icm_probe()
2472 icm->get_mode = icm_ar_get_mode; in icm_probe()
2473 icm->get_route = icm_ar_get_route; in icm_probe()
2474 icm->save_devices = icm_fr_save_devices; in icm_probe()
2475 icm->driver_ready = icm_ar_driver_ready; in icm_probe()
2476 icm->device_connected = icm_fr_device_connected; in icm_probe()
2477 icm->device_disconnected = icm_fr_device_disconnected; in icm_probe()
2478 icm->xdomain_connected = icm_fr_xdomain_connected; in icm_probe()
2479 icm->xdomain_disconnected = icm_fr_xdomain_disconnected; in icm_probe()
2485 icm->max_boot_acl = ICM_AR_PREBOOT_ACL_ENTRIES; in icm_probe()
2486 icm->can_upgrade_nvm = !x86_apple_machine; in icm_probe()
2487 icm->is_supported = icm_ar_is_supported; in icm_probe()
2488 icm->cio_reset = icm_tr_cio_reset; in icm_probe()
2489 icm->get_mode = icm_ar_get_mode; in icm_probe()
2490 icm->driver_ready = icm_tr_driver_ready; in icm_probe()
2491 icm->device_connected = icm_tr_device_connected; in icm_probe()
2492 icm->device_disconnected = icm_tr_device_disconnected; in icm_probe()
2493 icm->xdomain_connected = icm_tr_xdomain_connected; in icm_probe()
2494 icm->xdomain_disconnected = icm_tr_xdomain_disconnected; in icm_probe()
2500 icm->is_supported = icm_fr_is_supported; in icm_probe()
2501 icm->driver_ready = icm_icl_driver_ready; in icm_probe()
2502 icm->set_uuid = icm_icl_set_uuid; in icm_probe()
2503 icm->device_connected = icm_icl_device_connected; in icm_probe()
2504 icm->device_disconnected = icm_tr_device_disconnected; in icm_probe()
2505 icm->xdomain_connected = icm_tr_xdomain_connected; in icm_probe()
2506 icm->xdomain_disconnected = icm_tr_xdomain_disconnected; in icm_probe()
2507 icm->rtd3_veto = icm_icl_rtd3_veto; in icm_probe()
2522 icm->is_supported = icm_tgl_is_supported; in icm_probe()
2523 icm->driver_ready = icm_icl_driver_ready; in icm_probe()
2524 icm->set_uuid = icm_icl_set_uuid; in icm_probe()
2525 icm->device_connected = icm_icl_device_connected; in icm_probe()
2526 icm->device_disconnected = icm_tr_device_disconnected; in icm_probe()
2527 icm->xdomain_connected = icm_tr_xdomain_connected; in icm_probe()
2528 icm->xdomain_disconnected = icm_tr_xdomain_disconnected; in icm_probe()
2529 icm->rtd3_veto = icm_icl_rtd3_veto; in icm_probe()
2535 icm->is_supported = icm_tgl_is_supported; in icm_probe()
2536 icm->get_mode = icm_ar_get_mode; in icm_probe()
2537 icm->driver_ready = icm_tr_driver_ready; in icm_probe()
2538 icm->device_connected = icm_tr_device_connected; in icm_probe()
2539 icm->device_disconnected = icm_tr_device_disconnected; in icm_probe()
2540 icm->xdomain_connected = icm_tr_xdomain_connected; in icm_probe()
2541 icm->xdomain_disconnected = icm_tr_xdomain_disconnected; in icm_probe()
2546 if (!icm->is_supported || !icm->is_supported(tb)) { in icm_probe()