From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-dl1-f51.google.com (mail-dl1-f51.google.com [74.125.82.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8DC3F15E5DC for ; Fri, 24 Apr 2026 00:49:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.51 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776991783; cv=none; b=BJMymTUVP7KByWidzw9WbjA/Y29USPD3IzxhXPP2kShE6F4/xKrVywZreDMM56XTvKZF9FBYxwvDi/mI1Ip0E1ky/oJKIeXIdR9wTcApoDPq1u8UMBw+iwE/Lw2KnwKTkusRUVvG/4ySHsvt9CeNJCC+tjRTtVi7xxrx2NNNs98= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776991783; c=relaxed/simple; bh=W/kN4TO0vENzHx2D9zRak2iOVFQlJj+V7Gchj4xt89Y=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=U5qzni9711EtO+0vSC+XCEGmzcEETH+KLOGNws9t1yQdGPWRy3fIMjKI3MnuB0cciZEOMnNMbxXzF3CSoCB3pvk0oczZsbBia08LG+ui5niGJea7ykxWActU6rR119dIzZr2meZEkeWRXfxbAEVt4J0VCMe+JkLK7K7t7kTKS7M= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=gNMbJ5sA; arc=none smtp.client-ip=74.125.82.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="gNMbJ5sA" Received: by mail-dl1-f51.google.com with SMTP id a92af1059eb24-12dbd0f7ecaso4797249c88.0 for ; Thu, 23 Apr 2026 17:49:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776991782; x=1777596582; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=2TqsQ3VTtmFOdJXnJ7xYfxOi+4kprx1dikYuBadGme8=; b=gNMbJ5sA+ZIb+dEWNd7oJVYUbwdrNcKlLpV/Fg1SgQ4G9xq2OjQoOT6g5IgZK6AIak PSfqXnOc/UoY5X+qZodq8brZ/HbM0np6uo6WOC4C0cCqOQMaKNNOYDN0ZeWGwfTmXdWu WuhHDzwj/U0uUmRv2EPuq7XvGmI7Rp6Gtbjxn6SVgIWXKtRc0RvHQqyWPkcoRUS0CNo/ caVXJHD0h4oX4WxuxY+efQYQciwlAKCUC+X7244GZi2XAFLnQs/fxJrR95KB96bDAarc ZDuJFoRs3qxrPRj6agIrlu5pJknz374w4Y1ThjbqEnAIe9UbbYiU8RUVtlX6QSvt9b5v d1vw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776991782; x=1777596582; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=2TqsQ3VTtmFOdJXnJ7xYfxOi+4kprx1dikYuBadGme8=; b=AOxhbExMRBEyPVPamjf19ccIcKVSQ7lo2sZfWOnSgon/UHdEFQyf919KRpGc5Q8uig WAXvL6r7EJ753Jd9WedH7i+/L6vvKKuxSszy8LA0v1hasU/bop98aUQAKcm/X7HKstH2 GNBgSdJuWtoOmxcmaw+tokon7QlQvK69EFZclm4HBIHtXyyj6GL3mq4BQ3fVJQ4R50Eg UyUM60/KxobdHvghj0ZzjpMpjWCnYhd6DFYvGj0/1A3fbbx16kvR2ivGDeaSQnvnzRyv Qi1Gtv7V9+kvMj/z76t6sFYw5XhM3LVQJZFZhhlNUrXmi5PCxJtSca8FZlfkkyWz9aNo lX3w== X-Gm-Message-State: AOJu0YzPmIqWmub0j3f/czT2kcfDTX1Sv5gpH5cRD+2L5q3ZMN8xIf0x W4zsCsU4cU7JO/UeUUaJ2Bk3+VQs88OA1UlW5JiHVgBL/LZ27KbGn2Ja X-Gm-Gg: AeBDietBcLW/2AY5racB/D1YQOyDmJZtQjbx0226jaGlz6bPQ/nG1K7h1yZlWM6wrSN 7hnB5Mabz0ETb0rrMpNQ81/Ug9r4tsPpQBN8DPkQxcO9XYY+e6umQyLLabZHRyC69+rMkLHzK0y jwBddGgXqxLSCUKUeW/fd6uDc1gzR0aDMdSF0tm92s2UHRdpM4coeIPK7DgAKGByFuUimBPXfRa 1EAagwVWMBwd2CR1Y8jUER/vNV70RzLoiWj3rgm/JfqcGU0NvtZ3xiFRLD3RgxUP4GQD/9MS980 I1iQmWtAA+lGmT9fN64HAELmbWckTf5hpxMdMfdO9oDasOkqvJzSLsh3eR4m+T656kUd2MZyy0L SOWPccXe5mHHNOYW+1s1oUGIuWUBw5BChF1+FCvt9Dv4U1eD+S46Qnn97QQcN9BgpXGCyTwe7tc UanOAgoC1BCcWlG9B7rEpqqw13NtLktU9VHcrZ9w== X-Received: by 2002:a05:7022:68d:b0:123:34e8:aec2 with SMTP id a92af1059eb24-12c73f68419mr15738793c88.1.1776991781564; Thu, 23 Apr 2026 17:49:41 -0700 (PDT) Received: from osabio.. ([2804:14c:498:1391:e297:f15e:34f:a801]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12c74a185a8sm30930634c88.9.2026.04.23.17.49.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Apr 2026 17:49:40 -0700 (PDT) From: Gabriel Almeida To: alexander.deucher@amd.com, christian.koenig@amd.com, airlied@gmail.com, simona@ffwll.ch Cc: linux-kernel@vger.kernel.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, gabrielsousa230@gmail.com Subject: [PATCH v3 1/2] drm/amdgpu: move program_aspm to amdgpu_nbio Date: Thu, 23 Apr 2026 21:49:09 -0300 Message-ID: <20260424004910.21003-1-gabrielsousa230@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The program_aspm helper is duplicated across multiple files with identical logic. Move it to amdgpu_nbio.c as amdgpu_nbio_program_aspm and update all users accordingly. Signed-off-by: Gabriel Almeida --- v3: - split from previous combined patch v2: - move program_aspm to amdgpu_nbio.c - drop amdgpu_common drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.c | 10 ++++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.h | 2 ++ drivers/gpu/drm/amd/amdgpu/nv.c | 12 +----------- drivers/gpu/drm/amd/amdgpu/soc15.c | 11 +---------- drivers/gpu/drm/amd/amdgpu/soc21.c | 11 +---------- 5 files changed, 15 insertions(+), 31 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.c index a97426583..e4c8e9872 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.c @@ -84,3 +84,13 @@ int amdgpu_nbio_ras_late_init(struct amdgpu_device *adev, struct ras_common_if * amdgpu_ras_block_late_fini(adev, ras_block); return r; } + + +void amdgpu_nbio_program_aspm(struct amdgpu_device *adev) +{ + if (!amdgpu_device_should_use_aspm(adev)) + return; + + if (adev->nbio.funcs->program_aspm) + adev->nbio.funcs->program_aspm(adev); +} diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.h index b528de6a0..a61f3a6e8 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.h @@ -121,4 +121,6 @@ u64 amdgpu_nbio_get_pcie_replay_count(struct amdgpu_device *adev); bool amdgpu_nbio_is_replay_cnt_supported(struct amdgpu_device *adev); +void amdgpu_nbio_program_aspm(struct amdgpu_device *adev); + #endif diff --git a/drivers/gpu/drm/amd/amdgpu/nv.c b/drivers/gpu/drm/amd/amdgpu/nv.c index 7ce1a1b95..030d80664 100644 --- a/drivers/gpu/drm/amd/amdgpu/nv.c +++ b/drivers/gpu/drm/amd/amdgpu/nv.c @@ -511,16 +511,6 @@ static int nv_set_vce_clocks(struct amdgpu_device *adev, u32 evclk, u32 ecclk) return 0; } -static void nv_program_aspm(struct amdgpu_device *adev) -{ - if (!amdgpu_device_should_use_aspm(adev)) - return; - - if (adev->nbio.funcs->program_aspm) - adev->nbio.funcs->program_aspm(adev); - -} - const struct amdgpu_ip_block_version nv_common_ip_block = { .type = AMD_IP_BLOCK_TYPE_COMMON, .major = 1, @@ -984,7 +974,7 @@ static int nv_common_hw_init(struct amdgpu_ip_block *ip_block) adev->nbio.funcs->apply_l1_link_width_reconfig_wa(adev); /* enable aspm */ - nv_program_aspm(adev); + amdgpu_nbio_program_aspm(adev); /* setup nbio registers */ adev->nbio.funcs->init_registers(adev); /* remap HDP registers to a hole in mmio space, diff --git a/drivers/gpu/drm/amd/amdgpu/soc15.c b/drivers/gpu/drm/amd/amdgpu/soc15.c index b456e4541..27bcbbae5 100644 --- a/drivers/gpu/drm/amd/amdgpu/soc15.c +++ b/drivers/gpu/drm/amd/amdgpu/soc15.c @@ -695,15 +695,6 @@ static int soc15_set_vce_clocks(struct amdgpu_device *adev, u32 evclk, u32 ecclk return 0; } -static void soc15_program_aspm(struct amdgpu_device *adev) -{ - if (!amdgpu_device_should_use_aspm(adev)) - return; - - if (adev->nbio.funcs->program_aspm) - adev->nbio.funcs->program_aspm(adev); -} - const struct amdgpu_ip_block_version vega10_common_ip_block = { .type = AMD_IP_BLOCK_TYPE_COMMON, @@ -1284,7 +1275,7 @@ static int soc15_common_hw_init(struct amdgpu_ip_block *ip_block) struct amdgpu_device *adev = ip_block->adev; /* enable aspm */ - soc15_program_aspm(adev); + amdgpu_nbio_program_aspm(adev); /* setup nbio registers */ adev->nbio.funcs->init_registers(adev); /* remap HDP registers to a hole in mmio space, diff --git a/drivers/gpu/drm/amd/amdgpu/soc21.c b/drivers/gpu/drm/amd/amdgpu/soc21.c index fbd1d97f3..7e4353d0c 100644 --- a/drivers/gpu/drm/amd/amdgpu/soc21.c +++ b/drivers/gpu/drm/amd/amdgpu/soc21.c @@ -470,15 +470,6 @@ static int soc21_set_vce_clocks(struct amdgpu_device *adev, u32 evclk, u32 ecclk return 0; } -static void soc21_program_aspm(struct amdgpu_device *adev) -{ - if (!amdgpu_device_should_use_aspm(adev)) - return; - - if (adev->nbio.funcs->program_aspm) - adev->nbio.funcs->program_aspm(adev); -} - const struct amdgpu_ip_block_version soc21_common_ip_block = { .type = AMD_IP_BLOCK_TYPE_COMMON, .major = 1, @@ -925,7 +916,7 @@ static int soc21_common_hw_init(struct amdgpu_ip_block *ip_block) struct amdgpu_device *adev = ip_block->adev; /* enable aspm */ - soc21_program_aspm(adev); + amdgpu_nbio_program_aspm(adev); /* setup nbio registers */ adev->nbio.funcs->init_registers(adev); /* remap HDP registers to a hole in mmio space, -- 2.43.0