xserver/hw/xfree86/os-support
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
..
bsd Remove autotools support 2021-10-27 13:15:40 +03:00
bus Remove autotools support 2021-10-27 13:15:40 +03:00
hurd Remove autotools support 2021-10-27 13:15:40 +03:00
linux xf86: allow DDX driver for GPU/PCI hot-plug 2022-11-16 15:47:46 +00:00
misc Remove autotools support 2021-10-27 13:15:40 +03:00
shared Remove check for useSIGIO option 2020-12-08 11:23:31 -05:00
solaris xfree86: #ifdef HAS_USL_VTS for switch_to under Solaris 2022-03-31 20:18:15 +00:00
stub Remove autotools support 2021-10-27 13:15:40 +03:00
int10Defines.h Remove RCS tags. Fix Xprint makefile braindamage. 2006-07-21 17:56:00 -04:00
meson.build Fix build on FreeBSD/powerpc* 2022-11-05 12:10:34 -07:00
xf86OSpriv.h xfree86: Remove xf86LinearVidMem 2014-09-16 11:58:53 -04:00
xf86_OSlib.h os, xfree86: Stop being so weird about <limits.h> 2017-05-12 09:49:07 -04:00
xf86_OSproc.h Fix spelling/wording issues 2020-07-05 13:07:33 -07:00