Lines Matching refs:nhi

25 static bool icl_nhi_is_device_connected(struct tb_nhi *nhi)  in icl_nhi_is_device_connected()  argument
27 struct tb *tb = pci_get_drvdata(nhi->pdev); in icl_nhi_is_device_connected()
35 static int icl_nhi_force_power(struct tb_nhi *nhi, bool power) in icl_nhi_force_power() argument
51 pci_read_config_dword(nhi->pdev, VS_CAP_22, &vs_cap); in icl_nhi_force_power()
59 pci_write_config_dword(nhi->pdev, VS_CAP_22, vs_cap); in icl_nhi_force_power()
67 pci_read_config_dword(nhi->pdev, VS_CAP_9, &val); in icl_nhi_force_power()
79 static void icl_nhi_lc_mailbox_cmd(struct tb_nhi *nhi, enum icl_lc_mailbox_cmd cmd) in icl_nhi_lc_mailbox_cmd() argument
84 pci_write_config_dword(nhi->pdev, VS_CAP_19, data | VS_CAP_19_VALID); in icl_nhi_lc_mailbox_cmd()
87 static int icl_nhi_lc_mailbox_cmd_complete(struct tb_nhi *nhi, int timeout) in icl_nhi_lc_mailbox_cmd_complete() argument
97 pci_read_config_dword(nhi->pdev, VS_CAP_18, &data); in icl_nhi_lc_mailbox_cmd_complete()
107 pci_write_config_dword(nhi->pdev, VS_CAP_19, 0); in icl_nhi_lc_mailbox_cmd_complete()
111 static void icl_nhi_set_ltr(struct tb_nhi *nhi) in icl_nhi_set_ltr() argument
115 pci_read_config_dword(nhi->pdev, VS_CAP_16, &max_ltr); in icl_nhi_set_ltr()
119 pci_write_config_dword(nhi->pdev, VS_CAP_15, ltr); in icl_nhi_set_ltr()
122 static int icl_nhi_suspend(struct tb_nhi *nhi) in icl_nhi_suspend() argument
124 struct tb *tb = pci_get_drvdata(nhi->pdev); in icl_nhi_suspend()
127 if (icl_nhi_is_device_connected(nhi)) in icl_nhi_suspend()
136 icl_nhi_lc_mailbox_cmd(nhi, ICL_LC_PREPARE_FOR_RESET); in icl_nhi_suspend()
137 ret = icl_nhi_lc_mailbox_cmd_complete(nhi, ICL_LC_MAILBOX_TIMEOUT); in icl_nhi_suspend()
142 return icl_nhi_force_power(nhi, false); in icl_nhi_suspend()
145 static int icl_nhi_suspend_noirq(struct tb_nhi *nhi, bool wakeup) in icl_nhi_suspend_noirq() argument
147 struct tb *tb = pci_get_drvdata(nhi->pdev); in icl_nhi_suspend_noirq()
151 return icl_nhi_suspend(nhi); in icl_nhi_suspend_noirq()
157 icl_nhi_lc_mailbox_cmd(nhi, cmd); in icl_nhi_suspend_noirq()
158 return icl_nhi_lc_mailbox_cmd_complete(nhi, ICL_LC_MAILBOX_TIMEOUT); in icl_nhi_suspend_noirq()
161 static int icl_nhi_resume(struct tb_nhi *nhi) in icl_nhi_resume() argument
165 ret = icl_nhi_force_power(nhi, true); in icl_nhi_resume()
169 icl_nhi_set_ltr(nhi); in icl_nhi_resume()
173 static void icl_nhi_shutdown(struct tb_nhi *nhi) in icl_nhi_shutdown() argument
175 icl_nhi_force_power(nhi, false); in icl_nhi_shutdown()