https://bugs.freedesktop.org/show_bug.cgi?id=105760
Thomas Martitz kugel@rockbox.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #140560|0 |1 is obsolete| |
--- Comment #36 from Thomas Martitz kugel@rockbox.org --- Created attachment 140591 --> https://bugs.freedesktop.org/attachment.cgi?id=140591&action=edit workaround without memcpy
I made the following patch as an alternative workaround. The printks I added indicate what's going wrong. The smu_data->header pointer does not become busted. Instead, the toc->num_entries member somehow gets set to -1 (perhaps by accident), and since toc->num_entries is used as an index for the toc->entry array, the smu7_populate_single_firmware_entry() function gets passed an invalid pointer.
The workaround uses a temp. variable as the index (which seems to make resume work), but it's still to be found out why toc->num_entries changes to -1. Also, I still get lots of powerplay error messages with this patch. I'll attach dmesg next, below is just the output of the printks I added.
kugel@thomas-nb:linux.git$ dmesg | grep smu7 [ 0.908377] amdgpu: [powerplay] smu7_request_smu_load_fw: 10 ffffa8a060081000 0 1 [ 0.908422] amdgpu: [powerplay] smu7_request_smu_load_fw: 20 ffffa8a060081000 0 1 [ 30.042293] amdgpu: [powerplay] smu7_request_smu_load_fw: 10 ffffa8a060081000 0 1 [ 30.042309] amdgpu: [powerplay] smu7_request_smu_load_fw: 20 ffffa8a060081000 -1 -1