This is a note to let you know that I've just added the patch titled drm/radeon: properly byte swap vce firmware setup to the 4.4-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: drm-radeon-properly-byte-swap-vce-firmware-setup.patch and it can be found in the queue-4.4 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From cc78eb22885bba64445cde438ba098de0104920f Mon Sep 17 00:00:00 2001 From: Alex Deucher <alexander.deucher@xxxxxxx> Date: Fri, 22 Jan 2016 00:13:15 -0500 Subject: drm/radeon: properly byte swap vce firmware setup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Alex Deucher <alexander.deucher@xxxxxxx> commit cc78eb22885bba64445cde438ba098de0104920f upstream. Firmware is LE. Need to properly byteswap some of the fields so they are interpreted correctly by the driver on BE systems. Reviewed-by: Christian König <christian.koenig@xxxxxxx> Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/gpu/drm/radeon/vce_v1_0.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) --- a/drivers/gpu/drm/radeon/vce_v1_0.c +++ b/drivers/gpu/drm/radeon/vce_v1_0.c @@ -178,12 +178,12 @@ int vce_v1_0_load_fw(struct radeon_devic return -EINVAL; } - for (i = 0; i < sign->num; ++i) { - if (sign->val[i].chip_id == chip_id) + for (i = 0; i < le32_to_cpu(sign->num); ++i) { + if (le32_to_cpu(sign->val[i].chip_id) == chip_id) break; } - if (i == sign->num) + if (i == le32_to_cpu(sign->num)) return -EINVAL; data += (256 - 64) / 4; @@ -191,18 +191,18 @@ int vce_v1_0_load_fw(struct radeon_devic data[1] = sign->val[i].nonce[1]; data[2] = sign->val[i].nonce[2]; data[3] = sign->val[i].nonce[3]; - data[4] = sign->len + 64; + data[4] = cpu_to_le32(le32_to_cpu(sign->len) + 64); memset(&data[5], 0, 44); memcpy(&data[16], &sign[1], rdev->vce_fw->size - sizeof(*sign)); - data += data[4] / 4; + data += le32_to_cpu(data[4]) / 4; data[0] = sign->val[i].sigval[0]; data[1] = sign->val[i].sigval[1]; data[2] = sign->val[i].sigval[2]; data[3] = sign->val[i].sigval[3]; - rdev->vce.keyselect = sign->val[i].keyselect; + rdev->vce.keyselect = le32_to_cpu(sign->val[i].keyselect); return 0; } Patches currently in stable-queue which might be from alexander.deucher@xxxxxxx are queue-4.4/drm-amdgpu-fix-s4-resume.patch queue-4.4/drm-amdgpu-use-post-decrement-in-error-handling.patch queue-4.4/drm-radeon-properly-byte-swap-vce-firmware-setup.patch queue-4.4/drm-amdgpu-drop-topaz-support-from-gmc8-module.patch queue-4.4/drm-amdgpu-remove-exp-hardware-support-from-iceland.patch queue-4.4/drm-add-drm_fixp_from_fraction-and-drm_fixp2int_ceil.patch queue-4.4/drm-amdgpu-fix-issue-with-overlapping-userptrs.patch queue-4.4/drm-radeon-fix-dp-audio-support-for-apu-with-dce4.1-display-engine.patch queue-4.4/drm-amdgpu-pull-topaz-gmc-bits-into-gmc_v7.patch queue-4.4/drm-radeon-clean-up-fujitsu-quirks.patch queue-4.4/drm-amdgpu-the-vi-specific-exe-bit-should-only-apply-to-gmc-v8.0-above.patch queue-4.4/drm-radeon-cleaned-up-vco-output-settings-for-dp-audio.patch queue-4.4/drm-radeon-call-hpd_irq_event-on-resume.patch queue-4.4/drm-amdgpu-move-gmc7-support-out-of-cik-dependency.patch queue-4.4/drm-amdgpu-iceland-use-ci-based-mc-ip.patch queue-4.4/drm-dp-mst-process-broadcast-messages-correctly.patch queue-4.4/drm-amdgpu-fix-amdgpu_bo_pin_restricted-vram-placing-v2.patch queue-4.4/drm-radeon-mask-out-wc-from-bo-on-unsupported-arches.patch queue-4.4/drm-dp-mst-fix-in-rad-element-access.patch queue-4.4/drm-amdgpu-remove-unnecessary-forward-declaration.patch queue-4.4/drm-dp-mst-move-guid-storage-from-mgr-port-to-only-mst-branch.patch queue-4.4/drm-amdgpu-fix-tonga-smu-resume.patch queue-4.4/drm-amdgpu-don-t-load-mec2-on-topaz.patch queue-4.4/drm-amdgpu-no-need-to-load-mc-firmware-on-fiji.patch queue-4.4/drm-amdgpu-pm-adjust-display-configuration-after-powerstate.patch queue-4.4/drm-add-helper-to-check-for-wc-memory-support.patch queue-4.4/drm-dp-mst-always-send-reply-for-up-request.patch queue-4.4/drm-amdgpu-don-t-hang-in-amdgpu_flip_work_func-on-disabled-crtc.patch queue-4.4/drm-amdgpu-call-hpd_irq_event-on-resume.patch queue-4.4/drm-dp-mst-calculate-mst-pbn-with-31.32-fixed-point.patch queue-4.4/drm-amdgpu-hold-reference-to-fences-in-amdgpu_sa_bo_new-v2.patch queue-4.4/drm-radeon-fix-slow-audio-over-dp-on-dce8.patch queue-4.4/drm-dp-mst-fix-in-mstb-rad-initialization.patch queue-4.4/drm-dp-mst-reverse-order-of-mst-enable-and-clearing-vc-payload-table.patch queue-4.4/drm-radeon-add-a-common-function-for-dfs-handling.patch -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html