xserver/hw/xfree86/os-support/linux
Shashank Sharma 82bf391c93 xf86: allow DDX driver for GPU/PCI hot-plug
The current X server infrastructure sets modesetting driver as default driver
to handle PCI-hotplug of a GPU device. This prevents the respective DDX driver
(like AMDGPU DDX driver) to take control of the card.

This patch:
- Adds a few functions and fine-tunes the GPU hotplug infrastructure to allow
  the DDX driver to be loaded, if it is configured in the X config file
  options as "hotplug-driver".
- Scans and updates the PCI device list before adding the new GPU device
  in platform, so that the association of the platform device and PCI device
  is in place (dev->pdev).
- Adds documentation of this new option

An example usage in the config file would look like:

Section "OutputClass"
        Identifier "AMDgpu"
        MatchDriver "amdgpu"
        Driver "amdgpu"
	HotplugDriver "amdgpu"
EndSection

V2:
Fixed typo in commit message (Martin)
Added R-B from Adam.
Added ACK from Alex and Martin.

V3:
Added an output class based approach for finding the DDX driver (Aaron)
Rebase

V4:
Addressed review comment from Aaron:
GPU hot-plug handling driver's name to be read from the DDX config file options.
In this way only the DDX drivers interested in handling GPU hot-plug will be
picked and loaded, for others modesetting driver will be used as usual.

V5:
Addressed review comments from Aaron:
- X config option to be listed in CamelCase.
- Indentation fix at one place.
- Code readability related optimization.

V6:
Addressed review comments from Aaron:
- Squash the doc in the same patch
- Doc formatting changes

Cc: Alex Deucher <alexander.deucher@amd.com>
Suggested-by: Aaron Plattner aplattner@nvidia.com (v3)
Acked-by: Martin Roukala martin.roukala@mupuf.org(v1)
Acked-by: Alex Deucher alexander.deucher@amd.com (v1)
Reviewed-by: Adam Jackson ajax@redhat.com(v1)
Signed-off-by: Shashank Sharma shashank.sharma@amd.com
2022-11-16 15:47:46 +00:00
..
int10 xfree86: Remove xf86InterceptSignals 2017-12-13 11:11:38 -05:00
linux.h linux: Add a may_fail paramter to linux_parse_vt_settings 2015-06-03 11:31:41 +02:00
lnx_acpi.c Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
lnx_agp.c hw/xfree86/os-support/linux/lnx_agp.c xf86GetAGPInfo(): free(info) in an error path, caught by cppcheck. 2019-05-01 15:22:02 -07:00
lnx_apm.c hw/xfree86: Support ACPI without APM. 2020-04-30 18:45:35 +00:00
lnx_bell.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
lnx_ev56.c xfree86: Remove MMIO_ONB* and friends 2014-07-28 12:19:01 -07:00
lnx_init.c Fix old-style definition warning for xf86OSInputThreadInit() 2019-04-17 13:57:20 +01:00
lnx_kmod.c Drop trailing whitespaces 2014-11-12 10:25:00 +10:00
lnx_platform.c xf86: allow DDX driver for GPU/PCI hot-plug 2022-11-16 15:47:46 +00:00
lnx_video.c xfree86: NUL-terminate strings in hwEnableIO 2021-09-10 11:20:47 -07:00
systemd-logind.c xf86/logind: fix missing call to vtenter if the platform device is not paused 2021-12-20 16:57:10 +01:00