From: Alex Deucher alexander.deucher@amd.com
[ Upstream commit 1e18746381793bef7c715fc5ec5611a422a75c4c ]
Add additional PCI IDs to the cyan skillfish family.
Signed-off-by: Alex Deucher alexander.deucher@amd.com Signed-off-by: Sasha Levin sashal@kernel.org ---
LLM Generated explanations, may be completely bogus:
YES
- What changed: Adds five new CYAN_SKILLFISH PCI device IDs to the amdgpu match table, all flagged as APU: 0x13DB, 0x13F9, 0x13FA, 0x13FB, 0x13FC. See `drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c:2175`–`dr ivers/gpu/drm/amd/amdgpu/amdgpu_drv.c:2181`. The existing IDs 0x13FE and 0x143F remain. No logic changes beyond the match table. - Fix/user impact: Without explicit entries, these boards may only match the generic AMD vendor+class fallback entries (e.g., `CHIP_IP_DISCOVERY`) that do not carry the `AMD_IS_APU` flag. Early initialization relies on that flag: - `amdgpu_device_init_apu_flags()` returns immediately if `AMD_IS_APU` is not set, so APU-specific sub-flags (e.g., CSF2 detection) would never be set in that path (call site: `drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:4488`; early return and APU case handling at `drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:205 1`–`drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:2090`). - Firmware load selection uses both `CHIP_CYAN_SKILLFISH` and APU sub- flags (e.g., CSF2) to choose the correct path (see `amdgpu_ucode_get_load_type()` handling for `CHIP_CYAN_SKILLFISH` in `drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c:560`–`drivers/gpu/drm/amd /amdgpu/amdgpu_ucode.c:586`). Ensuring `AMD_IS_APU` is set at match time avoids incorrect early behavior. - Containment and risk: The change is a small, table-only extension confined to the AMDGPU driver’s PCI ID list. It does not alter core or architectural code. For existing devices, behavior is unchanged. For these additional devices, it enables already-existing code paths for `CHIP_CYAN_SKILLFISH|AMD_IS_APU`. The CSF2 sub-flag remains restricted to known IDs (0x13FE, 0x143F) as per `drivers/gpu/drm/amd/amdgpu/amdgp u_device.c:2065`–`drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:2088`, so the new IDs won’t be misclassified. - Cross-component consistency: The display stack already lists these device IDs (e.g., `drivers/gpu/drm/amd/display/include/dal_asic_id.h:2 06`–`drivers/gpu/drm/amd/display/include/dal_asic_id.h:227`), indicating broader support is in place and minimizing integration risk. - Stable policy fit: This is a classic “add device IDs” enablement: it fixes real user-visible issues (proper binding and early APU handling for new boards), is narrowly scoped, low risk, and does not introduce features or architectural changes.
Given the above, this is a suitable and low-risk backport candidate to stable trees.
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c index 5e81ff3ffdc3f..e60043ac9841e 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c @@ -2172,6 +2172,11 @@ static const struct pci_device_id pciidlist[] = { {0x1002, 0x7410, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ALDEBARAN},
/* CYAN_SKILLFISH */ + {0x1002, 0x13DB, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYAN_SKILLFISH|AMD_IS_APU}, + {0x1002, 0x13F9, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYAN_SKILLFISH|AMD_IS_APU}, + {0x1002, 0x13FA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYAN_SKILLFISH|AMD_IS_APU}, + {0x1002, 0x13FB, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYAN_SKILLFISH|AMD_IS_APU}, + {0x1002, 0x13FC, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYAN_SKILLFISH|AMD_IS_APU}, {0x1002, 0x13FE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYAN_SKILLFISH|AMD_IS_APU}, {0x1002, 0x143F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYAN_SKILLFISH|AMD_IS_APU},