diff --git a/debian/patches/bugfix/all/radeon-firmware-is-required-for-drm-and-kms-on-r600-onward.patch b/debian/patches/bugfix/all/radeon-firmware-is-required-for-drm-and-kms-on-r600-onward.patch index 420deae30..4fa3f7e77 100644 --- a/debian/patches/bugfix/all/radeon-firmware-is-required-for-drm-and-kms-on-r600-onward.patch +++ b/debian/patches/bugfix/all/radeon-firmware-is-required-for-drm-and-kms-on-r600-onward.patch @@ -35,14 +35,13 @@ missing, except for the pre-R600 case. /* * KMS wrapper. -@@ -311,6 +313,29 @@ static struct drm_driver kms_driver; +@@ -311,6 +313,28 @@ static struct drm_driver kms_driver; bool radeon_device_is_virtual(void); +/* Test that /lib/firmware/radeon is a directory (or symlink to a + * directory). We could try to match the udev search path, but let's -+ * assume people take the easy route and install -+ * firmware-linux-nonfree. ++ * keep it simple. + */ +static bool radeon_firmware_installed(void) +{ @@ -65,13 +64,13 @@ missing, except for the pre-R600 case. static int radeon_kick_out_firmware_fb(struct pci_dev *pdev) { struct apertures_struct *ap; -@@ -340,6 +365,12 @@ static int radeon_pci_probe(struct pci_d +@@ -340,6 +364,12 @@ static int radeon_pci_probe(struct pci_d if (vga_switcheroo_client_probe_defer(pdev)) return -EPROBE_DEFER; + if ((ent->driver_data & RADEON_FAMILY_MASK) >= CHIP_R600 && + !radeon_firmware_installed()) { -+ DRM_ERROR("radeon kernel modesetting for R600 or later requires firmware-amd-graphics.\n"); ++ DRM_ERROR("radeon kernel modesetting for R600 or later requires firmware installed\n"); + return -ENODEV; + } +