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