diff options
| author | Dave Airlie <airlied@redhat.com> | 2025-03-24 17:57:13 +1000 | 
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2025-03-24 17:57:18 +1000 | 
| commit | a82866fbecca6961c00edb2035ad66478571012c (patch) | |
| tree | 3629257979b058778933272ee77597946772216e /drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | |
| parent | f72e21eaaefe54e3f2eadaa63f55f9f3ba01a786 (diff) | |
| parent | 7547510d4a915f4f6d9b1262182d8db6763508f4 (diff) | |
Merge tag 'amd-drm-next-6.15-2025-03-21' of https://gitlab.freedesktop.org/agd5f/linux into drm-next
amd-drm-next-6.15-2025-03-21:
amdgpu:
- Refine nomodeset handling
- RAS fixes
- DCN 3.x fixes
- DMUB fixes
- eDP fixes
- SMU 14.0.2 fixes
- SMU 13.0.6 fixes
- SMU 13.0.12 fixes
- SDMA engine reset fixes
- Enforce Isolation fixes
- Runtime workload profile ref count fixes
- Documentation fixes
- SR-IOV fixes
- MES fixes
- GC 11.5 cleaner shader support
- SDMA VM invalidation fixes
- IP discovery improvements for GC based chips
amdkfd:
- Dequeue wait count fixes
- Precise memops fixes
radeon:
- Code cleanup
Signed-off-by: Dave Airlie <airlied@redhat.com>
From: Alex Deucher <alexander.deucher@amd.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250321210909.2809595-1-alexander.deucher@amd.com
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 27 | 
1 files changed, 24 insertions, 3 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c index 653f2bc77530..23cfce5aa1fc 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c @@ -139,6 +139,7 @@ enum AMDGPU_DEBUG_MASK {  	AMDGPU_DEBUG_ENABLE_RAS_ACA = BIT(4),  	AMDGPU_DEBUG_ENABLE_EXP_RESETS = BIT(5),  	AMDGPU_DEBUG_DISABLE_GPU_RING_RESET = BIT(6), +	AMDGPU_DEBUG_SMU_POOL = BIT(7),  };  unsigned int amdgpu_vram_limit = UINT_MAX; @@ -176,6 +177,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 @@ -1038,6 +1040,13 @@ 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.   */ @@ -1053,6 +1062,11 @@ module_param_named(seamless, amdgpu_seamless, int, 0444);   *   limits the VRAM size reported to ROCm applications to the visible   *   size, usually 256MB.   * - 0x4: Disable GPU soft recovery, always do a full reset + * - 0x8: Use VRAM for firmware loading + * - 0x10: Enable ACA based RAS logging + * - 0x20: Enable experimental resets + * - 0x40: Disable ring resets + * - 0x80: Use VRAM for SMU pool   */  MODULE_PARM_DESC(debug_mask, "debug options for amdgpu, disabled by default");  module_param_named_unsafe(debug_mask, amdgpu_debug_mask, uint, 0444); @@ -2230,6 +2244,10 @@ static void amdgpu_init_debug_options(struct amdgpu_device *adev)  		pr_info("debug: ring reset disabled\n");  		adev->debug_disable_gpu_ring_reset = true;  	} +	if (amdgpu_debug_mask & AMDGPU_DEBUG_SMU_POOL) { +		pr_info("debug: use vram for smu pool\n"); +		adev->pm.smu_debug_mask |= SMU_DEBUG_POOL_USE_VRAM; +	}  }  static unsigned long amdgpu_fix_asic_type(struct pci_dev *pdev, unsigned long flags) @@ -2257,6 +2275,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) @@ -2990,9 +3014,6 @@ static int __init amdgpu_init(void)  {  	int r; -	if (drm_firmware_drivers_only()) -		return -EINVAL; -  	r = amdgpu_sync_init();  	if (r)  		goto error_sync;  | 
