[AMD Official Use Only - AMD Internal Distribution Only] Reviewed-by: Kent Russell <kent.russell@xxxxxxx> > -----Original Message----- > From: amd-gfx <amd-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of Alex > Deucher > Sent: Thursday, March 13, 2025 9:02 PM > To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx > Cc: Deucher, Alexander <Alexander.Deucher@xxxxxxx> > Subject: [PATCH 2/3] drm/amdgpu: adjust drm_firmware_drivers_only() handling > > Move to probe so we can check the PCI device type and > only apply the drm_firmware_drivers_only() check for > PCI DISPLAY classes. Also add a module parameter to > override the nomodeset kernel parameter as a workaround > for platforms that have this hardcoded on their kernel > command lines. > > Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > index dd86661153582..4e1a6a249bba5 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > @@ -178,6 +178,7 @@ uint amdgpu_sdma_phase_quantum = 32; > char *amdgpu_disable_cu; > char *amdgpu_virtual_display; > bool enforce_isolation; > +int amdgpu_modeset = -1; > > /* Specifies the default granularity for SVM, used in buffer > * migration and restoration of backing memory when handling > @@ -1040,6 +1041,13 @@ module_param_named(user_partt_mode, > amdgpu_user_partt_mode, uint, 0444); > module_param(enforce_isolation, bool, 0444); > MODULE_PARM_DESC(enforce_isolation, "enforce process isolation between > graphics and compute . enforce_isolation = on"); > > +/** > + * DOC: modeset (int) > + * Override nomodeset (1 = override, -1 = auto). The default is -1 (auto). > + */ > +MODULE_PARM_DESC(modeset, "Override nomodeset (1 = enable, -1 = auto)"); > +module_param_named(modeset, amdgpu_modeset, int, 0444); > + > /** > * DOC: seamless (int) > * Seamless boot will keep the image on the screen during the boot process. > @@ -2270,6 +2278,12 @@ static int amdgpu_pci_probe(struct pci_dev *pdev, > int ret, retry = 0, i; > bool supports_atomic = false; > > + if ((pdev->class >> 8) == PCI_CLASS_DISPLAY_VGA || > + (pdev->class >> 8) == PCI_CLASS_DISPLAY_OTHER) { > + if (drm_firmware_drivers_only() && amdgpu_modeset == -1) > + return -EINVAL; > + } > + > /* skip devices which are owned by radeon */ > for (i = 0; i < ARRAY_SIZE(amdgpu_unsupported_pciidlist); i++) { > if (amdgpu_unsupported_pciidlist[i] == pdev->device) > -- > 2.48.1