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)
385 pci_read_config_word(pdev, pasid + PCI_PASID_CAP, &supported);
393 pdev->pasid_features = features;
395 pci_write_config_word(pdev, pasid + PCI_PASID_CTRL, control);
397 pdev->pasid_enabled = 1;
405 * @pdev: PCI device structure
407 void pci_disable_pasid(struct pci_dev *pdev)
410 int pasid = pdev->pasid_cap;
413 if (pdev->is_virtfn)
416 if (WARN_ON(!pdev->pasid_enabled))
422 pci_write_config_word(pdev, pasid + PCI_PASID_CTRL, control);
424 pdev->pasid_enabled = 0;
430 * @pdev: PCI device structure
432 void pci_restore_pasid_state(struct pci_dev *pdev)
435 int pasid = pdev->pasid_cap;
437 if (pdev->is_virtfn)
440 if (!pdev->pasid_enabled)
446 control = PCI_PASID_CTRL_ENABLE | pdev->pasid_features;
447 pci_write_config_word(pdev, pasid + PCI_PASID_CTRL, control);
452 * @pdev: PCI device structure
460 int pci_pasid_features(struct pci_dev *pdev)
465 if (pdev->is_virtfn)
466 pdev = pci_physfn(pdev);
468 pasid = pdev->pasid_cap;
472 pci_read_config_word(pdev, pasid + PCI_PASID_CAP, &supported);
484 * @pdev: PCI device structure
489 int pci_max_pasids(struct pci_dev *pdev)
494 if (pdev->is_virtfn)
495 pdev = pci_physfn(pdev);
497 pasid = pdev->pasid_cap;
501 pci_read_config_word(pdev, pasid + PCI_PASID_CAP, &supported);