From: Ben Hutchings Date: Mon, 12 Mar 2018 01:14:03 +0000 Subject: firmware_class: Refer to Debian wiki page when logging missing firmware Bug-Debian: https://bugs.debian.org/888405 Bug-Debian: https://bugs.debian.org/1053764 Forwarded: not-needed Last-Update: 2023-11-08 If firmware loading fails due to a missing file, log a second error message referring to our wiki page about firmware. This will explain why some firmware is in non-free, or can't be packaged at all. Only do this once per boot. Do something similar in the radeon drivers, where we have an early check to avoid failing at a point where we cannot display anything. Update 2023-11-08: In bug 1053764 Mario Limonciello states that the patch isn't needed anymore for amdgpu, so remove that part of the patch --- --- a/drivers/base/firmware_loader/main.c +++ b/drivers/base/firmware_loader/main.c @@ -580,9 +580,12 @@ fw_get_filesystem_firmware(struct device } __putname(path); - if (rc) + if (rc) { dev_err(device, "firmware: failed to load %s (%d)\n", fw_priv->fw_name, rc); + if (rc == -ENOENT) + pr_err_once("See https://wiki.debian.org/Firmware for information about missing firmware\n"); + } return rc; } --- a/drivers/gpu/drm/radeon/radeon_drv.c +++ b/drivers/gpu/drm/radeon/radeon_drv.c @@ -322,6 +322,7 @@ static int radeon_pci_probe(struct pci_d if ((ent->driver_data & RADEON_FAMILY_MASK) >= CHIP_R600 && !radeon_firmware_installed()) { DRM_ERROR("radeon kernel modesetting for R600 or later requires firmware installed\n"); + pr_err_once("See https://wiki.debian.org/Firmware for information about missing firmware\n"); return -ENODEV; }