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