More Radeon R600 compatibility

Denis 'GNUtoo' Carikli GNUtoo at no-log.org
Sat Jul 30 19:02:49 UTC 2016


Hi,

Could you enable Radeon R600 evergreen GPUs in linux-libre?

Technical details:
==================
On a Toshiba N550D running Trisquel, I patched Jason Self's Linux-libre
sources that way:
---
linux-libre-4.6.4-source/linux/drivers/gpu/drm/radeon/evergreen.c
2016-07-12 18:22:54.000000000 +0200
+++ ../linux-libre-4.6.4-source/linux/drivers/gpu/drm/radeon/evergreen.c
2016-07-23 16:18:47.757577686 +0200 @@ -5768,19 +5768,13 @@ if
(ASIC_IS_DCE5(rdev)) { if (!rdev->me_fw || !rdev->pfp_fw
|| !rdev->rlc_fw || !rdev->mc_fw) {
-			r = ni_init_microcode(rdev);
-			if (r) {
-				DRM_ERROR("Failed to load
firmware!\n");
-				return r;
-			}
+			ni_init_microcode(rdev);
+			DRM_ERROR("evergreen: Failed to load DCE5
firmware!\n"); }
 	} else {
 		if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw) {
-			r = r600_init_microcode(rdev);
-			if (r) {
-				DRM_ERROR("Failed to load
firmware!\n");
-				return r;
-			}
+			r600_init_microcode(rdev);
+			DRM_ERROR("evergreen: Failed to load r600
firmware!\n"); }
 	}

This produced the following message that shows which code path it took:
> [    3.528518] [drm:evergreen_init [radeon]] *ERROR* evergreen:
> Failed to load r600 firmware!


Tests:
======
After compiling and installing the sources, the radeon driver loaded and
worked fine (without 3D acceleration): It enabled the native resolution
of the laptop display (1024x600) instead of being limited to 800x600 by
the VGA option ROM.

I also tested (successfully) the HDMI output and the dual screen
feature that way.

I didn't find out of the box how to make HDMI audio work, but I didn't
try hard and having the possibility to use the native resolution and
multiples monitor is already a huge improvement: it makes that computer
usable.

Suggestion:
===========
So could you add something like the following to the deblob script:
clean_sed '
/r = r600_init_microcode(rdev);/,/}/ s,return r;,/*(DEBLOBBED)*/,
' drivers/gpu/drm/radeon/evergreen.c 'enable blobless activation'

The only change with what's already in the deblob script is to also run
it for "evergreen.c".

Denis.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://www.fsfla.org/pipermail/linux-libre/attachments/20160730/5b2252e8/attachment.sig>


More information about the linux-libre mailing list