Message ID | 20230702182744.755467-1-sui.jingfeng@linux.dev (mailing list archive) |
---|---|
Headers | show |
Series | PCI/VGA: Improve the default VGA device selection | expand |
Hi, This patch set could only be applied if a prerequisite patch[1] set applied [1] https://patchwork.freedesktop.org/series/120053/ Sorry, its my bad, I will respin my patch. On 2023/7/7 03:34, Patchwork wrote: > == Series Details == > > Series: PCI/VGA: Improve the default VGA device selection > URL : https://patchwork.freedesktop.org/series/120294/ > State : failure > > == Summary == > > Error: patch https://patchwork.freedesktop.org/api/1.0/series/120294/revisions/1/mbox/ not applied > Applying: video/aperture: Add a helper to detect if an aperture contains firmware FB > Applying: PCI/VGA: Improve the default VGA device selection > error: sha1 information is lacking or useless (drivers/pci/vgaarb.c). > error: could not build fake ancestor > hint: Use 'git am --show-current-patch=diff' to see the failed patch > Patch failed at 0002 PCI/VGA: Improve the default VGA device selection > When you have resolved this problem, run "git am --continue". > If you prefer to skip this patch, run "git am --skip" instead. > To restore the original branch and stop patching, run "git am --abort". > Build failed, no error log produced > >
From: Sui Jingfeng <suijingfeng@loongson.cn> Currently, the default VGA device selection is not perfect. Potential problems are: 1) This function is a no-op on non-x86 architectures. 2) It does not take the PCI Bar may get relocated into consideration. 3) It is not effective for the PCI device without a dedicated VRAM Bar. 4) It is device-agnostic, thus it has to waste the effort to iterate all of the PCI Bar to find the VRAM aperture. 5) It has invented lots of methods to determine which one is the default boot device on a multiple video card coexistence system. But this is still a policy because it doesn't give the user a choice to override. With the observation that device drivers or video aperture helpers may have better knowledge about which PCI bar contains the firmware FB, This patch tries to solve the above problems by introducing a function callback to the vga_client_register() function interface. DRM device drivers for the PCI device need to register the is_boot_device() function callback during the driver loading time. Once the driver binds the device successfully, VRAARB will call back to the driver. This gives the device drivers a chance to provide accurate boot device identification. Which in turn unlock the abitration service to non-x86 architectures. A device driver can also pass a NULL pointer to keep the original behavior. This series is applied on the drm-tip branch (with a cleanup patch set[1] applied beforehand) [1] https://patchwork.freedesktop.org/series/120053/ v2: * Add a simple implemment for drm/i915 and drm/ast * Pick up all tags (Mario) Sui Jingfeng (6): video/aperture: Add a helper to detect if an aperture contains firmware FB PCI/VGA: Improve the default VGA device selection drm/amdgpu: Implement the is_boot_device callback function drm/radeon: Implement the is_boot_device callback function drm/i915: Implement the is_boot_device callback function drm/ast: Register as a vga client to vgaarb by calling vga_client_register() drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 12 +++++++- drivers/gpu/drm/ast/ast_drv.c | 29 ++++++++++++++++++++ drivers/gpu/drm/drm_aperture.c | 16 +++++++++++ drivers/gpu/drm/i915/display/intel_vga.c | 32 ++++++++++++++++++++-- drivers/gpu/drm/nouveau/nouveau_vga.c | 2 +- drivers/gpu/drm/radeon/radeon_device.c | 12 +++++++- drivers/pci/vgaarb.c | 21 +++++++++++++- drivers/vfio/pci/vfio_pci_core.c | 2 +- drivers/video/aperture.c | 29 ++++++++++++++++++++ include/drm/drm_aperture.h | 2 ++ include/linux/aperture.h | 7 +++++ include/linux/vgaarb.h | 8 ++++-- 12 files changed, 162 insertions(+), 10 deletions(-)