drm/xe/pci: Introduce a helper to allow VF access to PF xe_device

In certain scenarios (such as VF migration), VF driver needs to interact
with PF driver.
Add a helper to allow VF driver access to PF xe_device.

Reviewed-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Link: https://patch.msgid.link/20251127093934.1462188-3-michal.winiarski@intel.com
Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
(cherry picked from commit 8b3cce3ad9c78ce3dae1c178f99352d50e12a3c0)
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
This commit is contained in:
Michał Winiarski 2025-11-27 10:39:32 +01:00 committed by Thomas Hellström
parent 73834d03a5
commit 5be29ebe9f
2 changed files with 20 additions and 0 deletions

View File

@ -1223,6 +1223,23 @@ static struct pci_driver xe_pci_driver = {
#endif #endif
}; };
/**
* xe_pci_to_pf_device() - Get PF &xe_device.
* @pdev: the VF &pci_dev device
*
* Return: pointer to PF &xe_device, NULL otherwise.
*/
struct xe_device *xe_pci_to_pf_device(struct pci_dev *pdev)
{
struct drm_device *drm;
drm = pci_iov_get_pf_drvdata(pdev, &xe_pci_driver);
if (IS_ERR(drm))
return NULL;
return to_xe_device(drm);
}
int xe_register_pci_driver(void) int xe_register_pci_driver(void)
{ {
return pci_register_driver(&xe_pci_driver); return pci_register_driver(&xe_pci_driver);

View File

@ -6,7 +6,10 @@
#ifndef _XE_PCI_H_ #ifndef _XE_PCI_H_
#define _XE_PCI_H_ #define _XE_PCI_H_
struct pci_dev;
int xe_register_pci_driver(void); int xe_register_pci_driver(void);
void xe_unregister_pci_driver(void); void xe_unregister_pci_driver(void);
struct xe_device *xe_pci_to_pf_device(struct pci_dev *pdev);
#endif #endif