Lines Matching refs:icm

72 struct icm {  struct
144 static inline struct tb *icm_to_tb(struct icm *icm) in icm_to_tb() argument
146 return ((void *)icm - sizeof(struct tb)); in icm_to_tb()
204 struct icm *icm = tb_priv(tb); in icm_request() local
225 mutex_lock(&icm->request_lock); in icm_request()
227 mutex_unlock(&icm->request_lock); in icm_request()
583 struct icm *icm = tb_priv(tb); in icm_fr_device_connected() local
628 ret = icm->get_route(tb, link, depth, &route); in icm_fr_device_connected()
687 ret = icm->get_route(tb, link, depth, &route); in icm_fr_device_connected()
1206 struct icm *icm = tb_priv(tb); in icm_ar_is_supported() local
1226 icm->upstream_port = upstream_port; in icm_ar_is_supported()
1227 icm->vnd_cap = cap; in icm_ar_is_supported()
1391 struct icm *icm = tb_priv(tb); in icm_handle_notification() local
1403 icm->device_connected(tb, n->pkg); in icm_handle_notification()
1406 icm->device_disconnected(tb, n->pkg); in icm_handle_notification()
1409 icm->xdomain_connected(tb, n->pkg); in icm_handle_notification()
1412 icm->xdomain_disconnected(tb, n->pkg); in icm_handle_notification()
1443 struct icm *icm = tb_priv(tb); in __icm_driver_ready() local
1447 ret = icm->driver_ready(tb, security_level, nboot_acl, rpm); in __icm_driver_ready()
1473 static int pci2cio_wait_completion(struct icm *icm, unsigned long timeout_msec) in pci2cio_wait_completion() argument
1479 pci_read_config_dword(icm->upstream_port, in pci2cio_wait_completion()
1480 icm->vnd_cap + PCIE2CIO_CMD, &cmd); in pci2cio_wait_completion()
1493 static int pcie2cio_read(struct icm *icm, enum tb_cfg_space cs, in pcie2cio_read() argument
1496 struct pci_dev *pdev = icm->upstream_port; in pcie2cio_read()
1497 int ret, vnd_cap = icm->vnd_cap; in pcie2cio_read()
1506 ret = pci2cio_wait_completion(icm, 5000); in pcie2cio_read()
1514 static int pcie2cio_write(struct icm *icm, enum tb_cfg_space cs, in pcie2cio_write() argument
1517 struct pci_dev *pdev = icm->upstream_port; in pcie2cio_write()
1518 int vnd_cap = icm->vnd_cap; in pcie2cio_write()
1529 return pci2cio_wait_completion(icm, 5000); in pcie2cio_write()
1534 struct icm *icm = tb_priv(tb); in icm_firmware_reset() local
1537 if (!icm->upstream_port) in icm_firmware_reset()
1552 return pcie2cio_write(icm, TB_CFG_SWITCH, 0, 0x50, BIT(9)); in icm_firmware_reset()
1587 struct icm *icm = tb_priv(tb); in icm_reset_phy_port() local
1593 if (!icm->upstream_port) in icm_reset_phy_port()
1608 ret = pcie2cio_read(icm, TB_CFG_PORT, port0, PHY_PORT_CS1, &val0); in icm_reset_phy_port()
1611 ret = pcie2cio_read(icm, TB_CFG_PORT, port1, PHY_PORT_CS1, &val1); in icm_reset_phy_port()
1625 ret = pcie2cio_write(icm, TB_CFG_PORT, port0, PHY_PORT_CS1, val0); in icm_reset_phy_port()
1630 ret = pcie2cio_write(icm, TB_CFG_PORT, port1, PHY_PORT_CS1, val1); in icm_reset_phy_port()
1637 ret = pcie2cio_read(icm, TB_CFG_PORT, port0, PHY_PORT_CS1, &val0); in icm_reset_phy_port()
1640 ret = pcie2cio_read(icm, TB_CFG_PORT, port1, PHY_PORT_CS1, &val1); in icm_reset_phy_port()
1645 ret = pcie2cio_write(icm, TB_CFG_PORT, port0, PHY_PORT_CS1, val0); in icm_reset_phy_port()
1650 return pcie2cio_write(icm, TB_CFG_PORT, port1, PHY_PORT_CS1, val1); in icm_reset_phy_port()
1655 struct icm *icm = tb_priv(tb); in icm_firmware_init() local
1665 if (icm->get_mode) { in icm_firmware_init()
1666 ret = icm->get_mode(tb); in icm_firmware_init()
1670 icm->safe_mode = true; in icm_firmware_init()
1703 struct icm *icm = tb_priv(tb); in icm_driver_ready() local
1710 if (icm->safe_mode) { in icm_driver_ready()
1718 &icm->rpm); in icm_driver_ready()
1726 if (tb->nboot_acl > icm->max_boot_acl) in icm_driver_ready()
1734 struct icm *icm = tb_priv(tb); in icm_suspend() local
1736 if (icm->save_devices) in icm_suspend()
1737 icm->save_devices(tb); in icm_suspend()
1802 struct icm *icm = container_of(work, struct icm, rescan_work.work); in icm_rescan_work() local
1803 struct tb *tb = icm_to_tb(icm); in icm_rescan_work()
1813 struct icm *icm = tb_priv(tb); in icm_complete() local
1831 queue_delayed_work(tb->wq, &icm->rescan_work, msecs_to_jiffies(500)); in icm_complete()
1852 struct icm *icm = tb_priv(tb); in icm_start() local
1855 if (icm->safe_mode) in icm_start()
1868 tb->root_switch->rpm = icm->rpm; in icm_start()
1881 struct icm *icm = tb_priv(tb); in icm_stop() local
1883 cancel_delayed_work(&icm->rescan_work); in icm_stop()
1952 struct icm *icm; in icm_probe() local
1955 tb = tb_domain_alloc(nhi, sizeof(struct icm)); in icm_probe()
1959 icm = tb_priv(tb); in icm_probe()
1960 INIT_DELAYED_WORK(&icm->rescan_work, icm_rescan_work); in icm_probe()
1961 mutex_init(&icm->request_lock); in icm_probe()
1966 icm->is_supported = icm_fr_is_supported; in icm_probe()
1967 icm->get_route = icm_fr_get_route; in icm_probe()
1968 icm->save_devices = icm_fr_save_devices; in icm_probe()
1969 icm->driver_ready = icm_fr_driver_ready; in icm_probe()
1970 icm->device_connected = icm_fr_device_connected; in icm_probe()
1971 icm->device_disconnected = icm_fr_device_disconnected; in icm_probe()
1972 icm->xdomain_connected = icm_fr_xdomain_connected; in icm_probe()
1973 icm->xdomain_disconnected = icm_fr_xdomain_disconnected; in icm_probe()
1982 icm->max_boot_acl = ICM_AR_PREBOOT_ACL_ENTRIES; in icm_probe()
1983 icm->is_supported = icm_ar_is_supported; in icm_probe()
1984 icm->get_mode = icm_ar_get_mode; in icm_probe()
1985 icm->get_route = icm_ar_get_route; in icm_probe()
1986 icm->save_devices = icm_fr_save_devices; in icm_probe()
1987 icm->driver_ready = icm_ar_driver_ready; in icm_probe()
1988 icm->device_connected = icm_fr_device_connected; in icm_probe()
1989 icm->device_disconnected = icm_fr_device_disconnected; in icm_probe()
1990 icm->xdomain_connected = icm_fr_xdomain_connected; in icm_probe()
1991 icm->xdomain_disconnected = icm_fr_xdomain_disconnected; in icm_probe()
1997 icm->max_boot_acl = ICM_AR_PREBOOT_ACL_ENTRIES; in icm_probe()
1998 icm->is_supported = icm_ar_is_supported; in icm_probe()
1999 icm->get_mode = icm_ar_get_mode; in icm_probe()
2000 icm->driver_ready = icm_tr_driver_ready; in icm_probe()
2001 icm->device_connected = icm_tr_device_connected; in icm_probe()
2002 icm->device_disconnected = icm_tr_device_disconnected; in icm_probe()
2003 icm->xdomain_connected = icm_tr_xdomain_connected; in icm_probe()
2004 icm->xdomain_disconnected = icm_tr_xdomain_disconnected; in icm_probe()
2009 if (!icm->is_supported || !icm->is_supported(tb)) { in icm_probe()