Lines Matching refs:pdev

59 	struct pci_dev *pdev;
76 pdev = pci_physfn(dev);
77 if (pdev->ats_stu != ps)
150 * @pdev: the PCI device
159 int pci_ats_page_aligned(struct pci_dev *pdev)
163 if (!pdev->ats_cap)
166 pci_read_config_word(pdev, pdev->ats_cap + PCI_ATS_CAP, &cap);
175 void pci_pri_init(struct pci_dev *pdev)
179 pdev->pri_cap = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_PRI);
181 if (!pdev->pri_cap)
184 pci_read_config_word(pdev, pdev->pri_cap + PCI_PRI_STATUS, &status);
186 pdev->pasid_required = 1;
191 * @pdev: PCI device structure
196 int pci_enable_pri(struct pci_dev *pdev, u32 reqs)
200 int pri = pdev->pri_cap;
207 if (pdev->is_virtfn) {
208 if (pci_physfn(pdev)->pri_enabled)
213 if (WARN_ON(pdev->pri_enabled))
219 pci_read_config_word(pdev, pri + PCI_PRI_STATUS, &status);
223 pci_read_config_dword(pdev, pri + PCI_PRI_MAX_REQ, &max_requests);
225 pdev->pri_reqs_alloc = reqs;
226 pci_write_config_dword(pdev, pri + PCI_PRI_ALLOC_REQ, reqs);
229 pci_write_config_word(pdev, pri + PCI_PRI_CTRL, control);
231 pdev->pri_enabled = 1;
238 * @pdev: PCI device structure
242 void pci_disable_pri(struct pci_dev *pdev)
245 int pri = pdev->pri_cap;
248 if (pdev->is_virtfn)
251 if (WARN_ON(!pdev->pri_enabled))
257 pci_read_config_word(pdev, pri + PCI_PRI_CTRL, &control);
259 pci_write_config_word(pdev, pri + PCI_PRI_CTRL, control);
261 pdev->pri_enabled = 0;
267 * @pdev: PCI device structure
269 void pci_restore_pri_state(struct pci_dev *pdev)
272 u32 reqs = pdev->pri_reqs_alloc;
273 int pri = pdev->pri_cap;
275 if (pdev->is_virtfn)
278 if (!pdev->pri_enabled)
284 pci_write_config_dword(pdev, pri + PCI_PRI_ALLOC_REQ, reqs);
285 pci_write_config_word(pdev, pri + PCI_PRI_CTRL, control);
290 * @pdev: PCI device structure
295 int pci_reset_pri(struct pci_dev *pdev)
298 int pri = pdev->pri_cap;
300 if (pdev->is_virtfn)
303 if (WARN_ON(pdev->pri_enabled))
310 pci_write_config_word(pdev, pri + PCI_PRI_CTRL, control);
318 * @pdev: PCI device structure
322 int pci_prg_resp_pasid_required(struct pci_dev *pdev)
324 if (pdev->is_virtfn)
325 pdev = pci_physfn(pdev);
327 return pdev->pasid_required;
332 * @pdev: PCI device structure
336 bool pci_pri_supported(struct pci_dev *pdev)
339 if (pci_physfn(pdev)->pri_cap)
347 void pci_pasid_init(struct pci_dev *pdev)
349 pdev->pasid_cap = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_PASID);
354 * @pdev: PCI device structure
361 int pci_enable_pasid(struct pci_dev *pdev, int features)
364 int pasid = pdev->pasid_cap;
370 if (pdev->is_virtfn) {
371 if (pci_physfn(pdev)->pasid_enabled)
376 if (WARN_ON(pdev->pasid_enabled))
379 if (!pdev->eetlp_prefix_path && !pdev->pasid_no_tlp)
385 if (!pci_acs_path_enabled(pdev, NULL, PCI_ACS_RR | PCI_ACS_UF))
388 pci_read_config_word(pdev, pasid + PCI_PASID_CAP, &supported);
396 pdev->pasid_features = features;
398 pci_write_config_word(pdev, pasid + PCI_PASID_CTRL, control);
400 pdev->pasid_enabled = 1;
408 * @pdev: PCI device structure
410 void pci_disable_pasid(struct pci_dev *pdev)
413 int pasid = pdev->pasid_cap;
416 if (pdev->is_virtfn)
419 if (WARN_ON(!pdev->pasid_enabled))
425 pci_write_config_word(pdev, pasid + PCI_PASID_CTRL, control);
427 pdev->pasid_enabled = 0;
433 * @pdev: PCI device structure
435 void pci_restore_pasid_state(struct pci_dev *pdev)
438 int pasid = pdev->pasid_cap;
440 if (pdev->is_virtfn)
443 if (!pdev->pasid_enabled)
449 control = PCI_PASID_CTRL_ENABLE | pdev->pasid_features;
450 pci_write_config_word(pdev, pasid + PCI_PASID_CTRL, control);
455 * @pdev: PCI device structure
463 int pci_pasid_features(struct pci_dev *pdev)
468 if (pdev->is_virtfn)
469 pdev = pci_physfn(pdev);
471 pasid = pdev->pasid_cap;
475 pci_read_config_word(pdev, pasid + PCI_PASID_CAP, &supported);
487 * @pdev: PCI device structure
492 int pci_max_pasids(struct pci_dev *pdev)
497 if (pdev->is_virtfn)
498 pdev = pci_physfn(pdev);
500 pasid = pdev->pasid_cap;
504 pci_read_config_word(pdev, pasid + PCI_PASID_CAP, &supported);