Making the radeon driver work again

Denis 'GNUtoo' Carikli GNUtoo at no-log.org
Mon Jul 13 17:32:42 UTC 2015


Hi,

I'd like to find a way to integrate some way to patch the radeon driver
in the deblob scripts. This way most 100% free distributions could
integrate it easily after.

The Issue:
----------
With recent kernels, the radeon driver doesn't load anymore, with most
cards (it can still work without patches on really really old cards).

That started to be very visible when people switched from Trisquel 6 to
Trisquel 7:
In Trisquel 6 such cards worked well but without 3D acceleration, while
in Trisquel 7 the radeon driver stopped working.

In that case drivers like VESA or similar still provided a way to use
the display. But with VESA, some laptops become unusable: some netbooks
have a native resolution of 1024x600, which the radeon driver handles.
Sometimes the native display resolution is not available with VESA.

The VGA option ROM(also known as video BIOS) is what provides VESA:
On desktop mainboards, the BIOS has no way of knowing how to enable
graphics with an external GPU (Like the ones you buy separately and plug
into the pcie16x slot), so the external GPU has a "driver" for it in a
flash chip, then the BIOS loads and run this code so the display is
enabled.

So the best way to handle the issue is to make the radeon driver work
again.

Test with a very old card:
--------------------------
With such card, it was possible to use the radeon driver on Trisquel 7
default kernel by making the radeon driver load with the "dpm=0"
parameter:
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc.
[AMD/ATI] RV350/M10 [Mobility Radeon 9600 PRO Turbo]

Test with a more recent card (R600):
------------------------------------
With this card, dpm=0 was necessary but not sufficient, I had to patch
the kernel. I've attached the (quick and dirty) patch to make it load.
It applies on a Linux 4.1 tree("b953c0d Linux 4.1").
00:01.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc.
[AMD/ATI] Wrestler [Radeon HD 6290] [1002:9807]

Integration:
------------
So if integrating a way to do that automatically in linux-libre is
desirable, how would I have to do it:
-> Trough sed/awk scripts that would break easily between releases ?
-> Trough semantic patching with coccinelle/spatch ?

Denis.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-drm-radeon-Make-the-driver-load-without-the-firmware.patch
Type: text/x-patch
Size: 5414 bytes
Desc: not available
URL: <http://www.fsfla.org/pipermail/linux-libre/attachments/20150713/b20a4195/attachment.bin>
-------------- 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/20150713/b20a4195/attachment.pgp>


More information about the linux-libre mailing list