Lines Matching refs:icm
62 struct icm *icm; member
94 struct icm { struct
184 static inline struct tb *icm_to_tb(struct icm *icm) in icm_to_tb() argument
186 return ((void *)icm - sizeof(struct tb)); in icm_to_tb()
213 static int pci2cio_wait_completion(struct icm *icm, unsigned long timeout_msec) in pci2cio_wait_completion() argument
219 pci_read_config_dword(icm->upstream_port, in pci2cio_wait_completion()
220 icm->vnd_cap + PCIE2CIO_CMD, &cmd); in pci2cio_wait_completion()
233 static int pcie2cio_read(struct icm *icm, enum tb_cfg_space cs, in pcie2cio_read() argument
236 struct pci_dev *pdev = icm->upstream_port; in pcie2cio_read()
237 int ret, vnd_cap = icm->vnd_cap; in pcie2cio_read()
246 ret = pci2cio_wait_completion(icm, 5000); in pcie2cio_read()
254 static int pcie2cio_write(struct icm *icm, enum tb_cfg_space cs, in pcie2cio_write() argument
257 struct pci_dev *pdev = icm->upstream_port; in pcie2cio_write()
258 int vnd_cap = icm->vnd_cap; in pcie2cio_write()
269 return pci2cio_wait_completion(icm, 5000); in pcie2cio_write()
303 struct icm *icm = tb_priv(tb); in icm_request() local
323 mutex_lock(&icm->request_lock); in icm_request()
325 mutex_unlock(&icm->request_lock); in icm_request()
345 struct icm *icm = tb_priv(tb); in icm_postpone_rescan() local
347 if (delayed_work_pending(&icm->rescan_work)) in icm_postpone_rescan()
348 mod_delayed_work(tb->wq, &icm->rescan_work, in icm_postpone_rescan()
354 struct icm *icm = tb_priv(tb); in icm_veto_begin() local
356 if (!icm->veto) { in icm_veto_begin()
357 icm->veto = true; in icm_veto_begin()
365 struct icm *icm = tb_priv(tb); in icm_veto_end() local
367 if (icm->veto) { in icm_veto_end()
368 icm->veto = false; in icm_veto_end()
752 struct icm *icm = tb_priv(tb); in icm_fr_device_connected() local
799 ret = icm->get_route(tb, link, depth, &route); in icm_fr_device_connected()
858 ret = icm->get_route(tb, link, depth, &route); in icm_fr_device_connected()
1459 struct icm *icm = tb_priv(tb); in icm_ar_is_supported() local
1482 icm->upstream_port = upstream_port; in icm_ar_is_supported()
1483 icm->vnd_cap = cap; in icm_ar_is_supported()
1727 struct icm *icm = tb_priv(tb); in icm_handle_notification() local
1739 icm->device_connected(tb, n->pkg); in icm_handle_notification()
1742 icm->device_disconnected(tb, n->pkg); in icm_handle_notification()
1746 icm->xdomain_connected(tb, n->pkg); in icm_handle_notification()
1750 icm->xdomain_disconnected(tb, n->pkg); in icm_handle_notification()
1756 icm->rtd3_veto(tb, n->pkg); in icm_handle_notification()
1792 struct icm *icm = tb_priv(tb); in __icm_driver_ready() local
1796 ret = icm->driver_ready(tb, security_level, proto_version, nboot_acl, in __icm_driver_ready()
1825 struct icm *icm = tb_priv(tb); in icm_firmware_reset() local
1828 if (!icm->upstream_port) in icm_firmware_reset()
1843 return icm->cio_reset(tb); in icm_firmware_reset()
1877 struct icm *icm = tb_priv(tb); in icm_reset_phy_port() local
1883 if (!icm->upstream_port) in icm_reset_phy_port()
1898 ret = pcie2cio_read(icm, TB_CFG_PORT, port0, PHY_PORT_CS1, &val0); in icm_reset_phy_port()
1901 ret = pcie2cio_read(icm, TB_CFG_PORT, port1, PHY_PORT_CS1, &val1); in icm_reset_phy_port()
1915 ret = pcie2cio_write(icm, TB_CFG_PORT, port0, PHY_PORT_CS1, val0); in icm_reset_phy_port()
1920 ret = pcie2cio_write(icm, TB_CFG_PORT, port1, PHY_PORT_CS1, val1); in icm_reset_phy_port()
1927 ret = pcie2cio_read(icm, TB_CFG_PORT, port0, PHY_PORT_CS1, &val0); in icm_reset_phy_port()
1930 ret = pcie2cio_read(icm, TB_CFG_PORT, port1, PHY_PORT_CS1, &val1); in icm_reset_phy_port()
1935 ret = pcie2cio_write(icm, TB_CFG_PORT, port0, PHY_PORT_CS1, val0); in icm_reset_phy_port()
1940 return pcie2cio_write(icm, TB_CFG_PORT, port1, PHY_PORT_CS1, val1); in icm_reset_phy_port()
1945 struct icm *icm = tb_priv(tb); in icm_firmware_init() local
1955 if (icm->get_mode) { in icm_firmware_init()
1956 ret = icm->get_mode(tb); in icm_firmware_init()
1960 icm->safe_mode = true; in icm_firmware_init()
1993 struct icm *icm = tb_priv(tb); in icm_driver_ready() local
2000 if (icm->safe_mode) { in icm_driver_ready()
2007 ret = __icm_driver_ready(tb, &tb->security_level, &icm->proto_version, in icm_driver_ready()
2008 &tb->nboot_acl, &icm->rpm); in icm_driver_ready()
2016 if (tb->nboot_acl > icm->max_boot_acl) in icm_driver_ready()
2019 if (icm->proto_version >= 3) in icm_driver_ready()
2027 struct icm *icm = tb_priv(tb); in icm_suspend() local
2029 if (icm->save_devices) in icm_suspend()
2030 icm->save_devices(tb); in icm_suspend()
2108 struct icm *icm = container_of(work, struct icm, rescan_work.work); in icm_rescan_work() local
2109 struct tb *tb = icm_to_tb(icm); in icm_rescan_work()
2119 struct icm *icm = tb_priv(tb); in icm_complete() local
2144 queue_delayed_work(tb->wq, &icm->rescan_work, msecs_to_jiffies(500)); in icm_complete()
2183 struct icm *icm = tb_priv(tb); in icm_start() local
2186 if (icm->safe_mode) in icm_start()
2193 tb->root_switch->no_nvm_upgrade = !icm->can_upgrade_nvm; in icm_start()
2194 tb->root_switch->rpm = icm->rpm; in icm_start()
2196 if (icm->set_uuid) in icm_start()
2197 icm->set_uuid(tb); in icm_start()
2210 struct icm *icm = tb_priv(tb); in icm_stop() local
2212 cancel_delayed_work(&icm->rescan_work); in icm_stop()
2216 kfree(icm->last_nvm_auth); in icm_stop()
2217 icm->last_nvm_auth = NULL; in icm_stop()
2228 struct icm *icm = auth->icm; in icm_usb4_switch_nvm_auth_complete() local
2229 struct tb *tb = icm_to_tb(icm); in icm_usb4_switch_nvm_auth_complete()
2236 if (WARN_ON(icm->last_nvm_auth)) in icm_usb4_switch_nvm_auth_complete()
2237 kfree(icm->last_nvm_auth); in icm_usb4_switch_nvm_auth_complete()
2238 icm->last_nvm_auth = auth; in icm_usb4_switch_nvm_auth_complete()
2245 struct icm *icm = tb_priv(tb); in icm_usb4_switch_nvm_authenticate() local
2253 auth->icm = icm; in icm_usb4_switch_nvm_authenticate()
2277 mutex_lock(&icm->request_lock); in icm_usb4_switch_nvm_authenticate()
2280 mutex_unlock(&icm->request_lock); in icm_usb4_switch_nvm_authenticate()
2299 struct icm *icm = tb_priv(tb); in icm_usb4_switch_op() local
2307 if (icm->proto_version < 3) in icm_usb4_switch_op()
2359 struct icm *icm = tb_priv(tb); in icm_usb4_switch_nvm_authenticate_status() local
2362 if (icm->proto_version < 3) in icm_usb4_switch_nvm_authenticate_status()
2365 auth = icm->last_nvm_auth; in icm_usb4_switch_nvm_authenticate_status()
2366 icm->last_nvm_auth = NULL; in icm_usb4_switch_nvm_authenticate_status()
2465 struct icm *icm; in icm_probe() local
2468 tb = tb_domain_alloc(nhi, ICM_TIMEOUT, sizeof(struct icm)); in icm_probe()
2472 icm = tb_priv(tb); in icm_probe()
2473 INIT_DELAYED_WORK(&icm->rescan_work, icm_rescan_work); in icm_probe()
2474 mutex_init(&icm->request_lock); in icm_probe()
2479 icm->can_upgrade_nvm = true; in icm_probe()
2480 icm->is_supported = icm_fr_is_supported; in icm_probe()
2481 icm->get_route = icm_fr_get_route; in icm_probe()
2482 icm->save_devices = icm_fr_save_devices; in icm_probe()
2483 icm->driver_ready = icm_fr_driver_ready; in icm_probe()
2484 icm->device_connected = icm_fr_device_connected; in icm_probe()
2485 icm->device_disconnected = icm_fr_device_disconnected; in icm_probe()
2486 icm->xdomain_connected = icm_fr_xdomain_connected; in icm_probe()
2487 icm->xdomain_disconnected = icm_fr_xdomain_disconnected; in icm_probe()
2496 icm->max_boot_acl = ICM_AR_PREBOOT_ACL_ENTRIES; in icm_probe()
2503 icm->can_upgrade_nvm = !x86_apple_machine; in icm_probe()
2504 icm->is_supported = icm_ar_is_supported; in icm_probe()
2505 icm->cio_reset = icm_ar_cio_reset; in icm_probe()
2506 icm->get_mode = icm_ar_get_mode; in icm_probe()
2507 icm->get_route = icm_ar_get_route; in icm_probe()
2508 icm->save_devices = icm_fr_save_devices; in icm_probe()
2509 icm->driver_ready = icm_ar_driver_ready; in icm_probe()
2510 icm->device_connected = icm_fr_device_connected; in icm_probe()
2511 icm->device_disconnected = icm_fr_device_disconnected; in icm_probe()
2512 icm->xdomain_connected = icm_fr_xdomain_connected; in icm_probe()
2513 icm->xdomain_disconnected = icm_fr_xdomain_disconnected; in icm_probe()
2519 icm->max_boot_acl = ICM_AR_PREBOOT_ACL_ENTRIES; in icm_probe()
2520 icm->can_upgrade_nvm = !x86_apple_machine; in icm_probe()
2521 icm->is_supported = icm_ar_is_supported; in icm_probe()
2522 icm->cio_reset = icm_tr_cio_reset; in icm_probe()
2523 icm->get_mode = icm_ar_get_mode; in icm_probe()
2524 icm->driver_ready = icm_tr_driver_ready; in icm_probe()
2525 icm->device_connected = icm_tr_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()
2534 icm->is_supported = icm_fr_is_supported; in icm_probe()
2535 icm->driver_ready = icm_icl_driver_ready; in icm_probe()
2536 icm->set_uuid = icm_icl_set_uuid; in icm_probe()
2537 icm->device_connected = icm_icl_device_connected; in icm_probe()
2538 icm->device_disconnected = icm_tr_device_disconnected; in icm_probe()
2539 icm->xdomain_connected = icm_tr_xdomain_connected; in icm_probe()
2540 icm->xdomain_disconnected = icm_tr_xdomain_disconnected; in icm_probe()
2541 icm->rtd3_veto = icm_icl_rtd3_veto; in icm_probe()
2556 icm->is_supported = icm_tgl_is_supported; in icm_probe()
2557 icm->driver_ready = icm_icl_driver_ready; in icm_probe()
2558 icm->set_uuid = icm_icl_set_uuid; in icm_probe()
2559 icm->device_connected = icm_icl_device_connected; in icm_probe()
2560 icm->device_disconnected = icm_tr_device_disconnected; in icm_probe()
2561 icm->xdomain_connected = icm_tr_xdomain_connected; in icm_probe()
2562 icm->xdomain_disconnected = icm_tr_xdomain_disconnected; in icm_probe()
2563 icm->rtd3_veto = icm_icl_rtd3_veto; in icm_probe()
2569 icm->can_upgrade_nvm = true; in icm_probe()
2570 icm->is_supported = icm_tgl_is_supported; in icm_probe()
2571 icm->get_mode = icm_ar_get_mode; in icm_probe()
2572 icm->driver_ready = icm_tr_driver_ready; in icm_probe()
2573 icm->device_connected = icm_tr_device_connected; in icm_probe()
2574 icm->device_disconnected = icm_tr_device_disconnected; in icm_probe()
2575 icm->xdomain_connected = icm_tr_xdomain_connected; in icm_probe()
2576 icm->xdomain_disconnected = icm_tr_xdomain_disconnected; in icm_probe()
2581 if (!icm->is_supported || !icm->is_supported(tb)) { in icm_probe()