Commit 11934847 authored by Simona Vetter's avatar Simona Vetter
Browse files

Merge tag 'amd-drm-next-6.19-2025-10-24' of...

Merge tag 'amd-drm-next-6.19-2025-10-24' of https://gitlab.freedesktop.org/agd5f/linux

 into drm-next

amd-drm-next-6.19-2025-10-24:

amdgpu:
- HMM cleanup
- Add new RAS framework
- DML2.1 updates
- YCbCr420 fixes
- DC FP fixes
- DMUB fixes
- LTTPR fixes
- DTBCLK fixes
- DMU cursor offload handling
- Userq validation improvements
- Misc code cleanups
- Unify shutdown callback handling
- Suspend improvements
- Power limit code cleanup
- Fence cleanup
- IP Discovery cleanup
- SR-IOV fixes
- AUX backlight fixes
- DCN 3.5 fixes
- HDMI compliance fixes
- DCN 4.0.1 cursor updates
- DCN interrupt fix
- DC KMS full update improvements
- Add additional HDCP traces
- DCN 3.2 fixes
- DP MST fixes
- Add support for new SR-IOV mailbox interface

Signed-off-by: default avatarSimona Vetter <simona.vetter@ffwll.ch>
From: Alex Deucher <alexander.deucher@amd.com>
Link: https://lore.kernel.org/r/20251024175249.58099-1-alexander.deucher@amd.com
parents 098456f3 883687c3
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -37,7 +37,8 @@ ccflags-y := -I$(FULL_AMD_PATH)/include/asic_reg \
	-I$(FULL_AMD_DISPLAY_PATH)/modules/inc \
	-I$(FULL_AMD_DISPLAY_PATH)/dc \
	-I$(FULL_AMD_DISPLAY_PATH)/amdgpu_dm \
	-I$(FULL_AMD_PATH)/amdkfd
	-I$(FULL_AMD_PATH)/amdkfd \
	-I$(FULL_AMD_PATH)/ras/ras_mgr

# Locally disable W=1 warnings enabled in drm subsystem Makefile
subdir-ccflags-y += -Wno-override-init
@@ -324,4 +325,9 @@ amdgpu-y += \
	isp_v4_1_1.o
endif

AMD_GPU_RAS_PATH := ../ras
AMD_GPU_RAS_FULL_PATH := $(FULL_AMD_PATH)/ras
include $(AMD_GPU_RAS_FULL_PATH)/Makefile
amdgpu-y += $(AMD_GPU_RAS_FILES)

obj-$(CONFIG_DRM_AMDGPU)+= amdgpu.o
+4 −0
Original line number Diff line number Diff line
@@ -88,6 +88,10 @@ static int aldebaran_mode2_suspend_ip(struct amdgpu_device *adev)
	uint32_t ip_block;
	int r, i;

	/* Skip suspend of SDMA IP versions >= 4.4.2. They are multi-aid */
	if (adev->aid_mask)
		ip_block_mask &= ~BIT(AMD_IP_BLOCK_TYPE_SDMA);

	amdgpu_device_set_pg_state(adev, AMD_PG_STATE_UNGATE);
	amdgpu_device_set_cg_state(adev, AMD_CG_STATE_UNGATE);

+7 −8
Original line number Diff line number Diff line
@@ -372,13 +372,15 @@ void amdgpu_device_ip_get_clockgating_state(struct amdgpu_device *adev,
					    u64 *flags);
int amdgpu_device_ip_wait_for_idle(struct amdgpu_device *adev,
				   enum amd_ip_block_type block_type);
bool amdgpu_device_ip_is_hw(struct amdgpu_device *adev,
			    enum amd_ip_block_type block_type);
bool amdgpu_device_ip_is_valid(struct amdgpu_device *adev,
			      enum amd_ip_block_type block_type);
int amdgpu_ip_block_suspend(struct amdgpu_ip_block *ip_block);

int amdgpu_ip_block_resume(struct amdgpu_ip_block *ip_block);

#define AMDGPU_MAX_IP_NUM 16
#define AMDGPU_MAX_IP_NUM AMD_IP_BLOCK_TYPE_NUM

struct amdgpu_ip_block_status {
	bool valid;
@@ -839,8 +841,6 @@ struct amd_powerplay {
	const struct amd_pm_funcs *pp_funcs;
};

struct ip_discovery_top;

/* polaris10 kickers */
#define ASICID_IS_P20(did, rid)		(((did == 0x67DF) && \
					 ((rid == 0xE3) || \
@@ -973,7 +973,6 @@ struct amdgpu_device {
	struct notifier_block		pm_nb;
	struct amdgpu_i2c_chan		*i2c_bus[AMDGPU_MAX_I2C_BUS];
	struct debugfs_blob_wrapper debugfs_vbios_blob;
	struct debugfs_blob_wrapper     debugfs_discovery_blob;
	struct mutex			srbm_mutex;
	/* GRBM index mutex. Protects concurrent access to GRBM index */
	struct mutex                    grbm_idx_mutex;
@@ -1063,6 +1062,9 @@ struct amdgpu_device {
		u32			log2_max_MBps;
	} mm_stats;

	/* discovery*/
	struct amdgpu_discovery_info discovery;

	/* display */
	bool				enable_virtual_display;
	struct amdgpu_vkms_output       *amdgpu_vkms_output;
@@ -1265,8 +1267,6 @@ struct amdgpu_device {

	struct list_head                ras_list;

	struct ip_discovery_top         *ip_top;

	struct amdgpu_reset_domain	*reset_domain;

	struct mutex			benchmark_mutex;
@@ -1638,7 +1638,6 @@ void amdgpu_driver_postclose_kms(struct drm_device *dev,
				 struct drm_file *file_priv);
void amdgpu_driver_release_kms(struct drm_device *dev);

int amdgpu_device_ip_suspend(struct amdgpu_device *adev);
int amdgpu_device_prepare(struct drm_device *dev);
void amdgpu_device_complete(struct drm_device *dev);
int amdgpu_device_suspend(struct drm_device *dev, bool fbcon);
+15 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@
#include "amdgpu_ras.h"
#include "amdgpu_umc.h"
#include "amdgpu_reset.h"
#include "amdgpu_ras_mgr.h"

/* Total memory size in system memory and all GPU VRAM. Used to
 * estimate worst case amount of memory to reserve for page tables
@@ -746,6 +747,20 @@ void amdgpu_amdkfd_ras_pasid_poison_consumption_handler(struct amdgpu_device *ad
				enum amdgpu_ras_block block, uint16_t pasid,
				pasid_notify pasid_fn, void *data, uint32_t reset)
{

	if (amdgpu_uniras_enabled(adev)) {
		struct ras_ih_info ih_info;

		memset(&ih_info, 0, sizeof(ih_info));
		ih_info.block = block;
		ih_info.pasid = pasid;
		ih_info.reset = reset;
		ih_info.pasid_fn = pasid_fn;
		ih_info.data = data;
		amdgpu_ras_mgr_handle_consumer_interrupt(adev, &ih_info);
		return;
	}

	amdgpu_umc_pasid_poison_handler(adev, block, pasid, pasid_fn, data, reset);
}

+1 −1
Original line number Diff line number Diff line
@@ -71,7 +71,7 @@ struct kgd_mem {
	struct mutex lock;
	struct amdgpu_bo *bo;
	struct dma_buf *dmabuf;
	struct hmm_range *range;
	struct amdgpu_hmm_range *range;
	struct list_head attachments;
	/* protected by amdkfd_process_info.lock */
	struct list_head validate_list;
Loading