Lines Matching refs:pdev

60 	struct pci_dev *pdev;
77 pdev = pci_physfn(dev);
78 if (pdev->ats_stu != ps)
151 * @pdev: the PCI device
160 int pci_ats_page_aligned(struct pci_dev *pdev)
164 if (!pdev->ats_cap)
167 pci_read_config_word(pdev, pdev->ats_cap + PCI_ATS_CAP, &cap);
176 void pci_pri_init(struct pci_dev *pdev)
180 pdev->pri_cap = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_PRI);
182 if (!pdev->pri_cap)
185 pci_read_config_word(pdev, pdev->pri_cap + PCI_PRI_STATUS, &status);
187 pdev->pasid_required = 1;
192 * @pdev: PCI device structure
197 int pci_enable_pri(struct pci_dev *pdev, u32 reqs)
201 int pri = pdev->pri_cap;
208 if (pdev->is_virtfn) {
209 if (pci_physfn(pdev)->pri_enabled)
214 if (WARN_ON(pdev->pri_enabled))
220 pci_read_config_word(pdev, pri + PCI_PRI_STATUS, &status);
224 pci_read_config_dword(pdev, pri + PCI_PRI_MAX_REQ, &max_requests);
226 pdev->pri_reqs_alloc = reqs;
227 pci_write_config_dword(pdev, pri + PCI_PRI_ALLOC_REQ, reqs);
230 pci_write_config_word(pdev, pri + PCI_PRI_CTRL, control);
232 pdev->pri_enabled = 1;
239 * @pdev: PCI device structure
243 void pci_disable_pri(struct pci_dev *pdev)
246 int pri = pdev->pri_cap;
249 if (pdev->is_virtfn)
252 if (WARN_ON(!pdev->pri_enabled))
258 pci_read_config_word(pdev, pri + PCI_PRI_CTRL, &control);
260 pci_write_config_word(pdev, pri + PCI_PRI_CTRL, control);
262 pdev->pri_enabled = 0;
268 * @pdev: PCI device structure
270 void pci_restore_pri_state(struct pci_dev *pdev)
273 u32 reqs = pdev->pri_reqs_alloc;
274 int pri = pdev->pri_cap;
276 if (pdev->is_virtfn)
279 if (!pdev->pri_enabled)
285 pci_write_config_dword(pdev, pri + PCI_PRI_ALLOC_REQ, reqs);
286 pci_write_config_word(pdev, pri + PCI_PRI_CTRL, control);
291 * @pdev: PCI device structure
296 int pci_reset_pri(struct pci_dev *pdev)
299 int pri = pdev->pri_cap;
301 if (pdev->is_virtfn)
304 if (WARN_ON(pdev->pri_enabled))
311 pci_write_config_word(pdev, pri + PCI_PRI_CTRL, control);
319 * @pdev: PCI device structure
323 int pci_prg_resp_pasid_required(struct pci_dev *pdev)
325 if (pdev->is_virtfn)
326 pdev = pci_physfn(pdev);
328 return pdev->pasid_required;
333 * @pdev: PCI device structure
337 bool pci_pri_supported(struct pci_dev *pdev)
340 if (pci_physfn(pdev)->pri_cap)
348 void pci_pasid_init(struct pci_dev *pdev)
350 pdev->pasid_cap = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_PASID);
355 * @pdev: PCI device structure
362 int pci_enable_pasid(struct pci_dev *pdev, int features)
365 int pasid = pdev->pasid_cap;
371 if (pdev->is_virtfn) {
372 if (pci_physfn(pdev)->pasid_enabled)
377 if (WARN_ON(pdev->pasid_enabled))
380 if (!pdev->eetlp_prefix_path && !pdev->pasid_no_tlp)
386 if (!pci_acs_path_enabled(pdev, NULL, PCI_ACS_RR | PCI_ACS_UF))
389 pci_read_config_word(pdev, pasid + PCI_PASID_CAP, &supported);
397 pdev->pasid_features = features;
399 pci_write_config_word(pdev, pasid + PCI_PASID_CTRL, control);
401 pdev->pasid_enabled = 1;
409 * @pdev: PCI device structure
411 void pci_disable_pasid(struct pci_dev *pdev)
414 int pasid = pdev->pasid_cap;
417 if (pdev->is_virtfn)
420 if (WARN_ON(!pdev->pasid_enabled))
426 pci_write_config_word(pdev, pasid + PCI_PASID_CTRL, control);
428 pdev->pasid_enabled = 0;
434 * @pdev: PCI device structure
436 void pci_restore_pasid_state(struct pci_dev *pdev)
439 int pasid = pdev->pasid_cap;
441 if (pdev->is_virtfn)
444 if (!pdev->pasid_enabled)
450 control = PCI_PASID_CTRL_ENABLE | pdev->pasid_features;
451 pci_write_config_word(pdev, pasid + PCI_PASID_CTRL, control);
456 * @pdev: PCI device structure
464 int pci_pasid_features(struct pci_dev *pdev)
469 if (pdev->is_virtfn)
470 pdev = pci_physfn(pdev);
472 pasid = pdev->pasid_cap;
476 pci_read_config_word(pdev, pasid + PCI_PASID_CAP, &supported);
486 * @pdev: PCI device structure
491 int pci_max_pasids(struct pci_dev *pdev)
496 if (pdev->is_virtfn)
497 pdev = pci_physfn(pdev);
499 pasid = pdev->pasid_cap;
503 pci_read_config_word(pdev, pasid + PCI_PASID_CAP, &supported);