[Intel-gfx] [PATCH 18/18] drm/i915/gen9: Removed byte swapping for csr firmware.

Nagaraju, Vathsala vathsala.nagaraju at intel.com
Thu Jul 30 08:24:32 PDT 2015


memcpy(dmc_payload, &fw->data[readcount], dmc_header->fw_size);  
dmc_header->fw_size  is wrong.  
This will result in 0's  after 0x80734  location, results in system hang.

-----Original Message-----
From: Intel-gfx [mailto:intel-gfx-bounces at lists.freedesktop.org] On Behalf Of Animesh Manna
Sent: Sunday, July 26, 2015 12:31 AM
To: intel-gfx at lists.freedesktop.org
Cc: Vatsala Nagaraju
Subject: [Intel-gfx] [PATCH 18/18] drm/i915/gen9: Removed byte swapping for csr firmware.

Cc: Damien Lespiau <damien.lespiau at intel.com>
Cc: Imre Deak <imre.deak at intel.com>
Cc: Sunil Kamath <sunil.kamath at intel.com>
Signed-off-by: Animesh Manna <animesh.manna at intel.com>
Signed-off-by: Vatsala Nagaraju <vatsala.nagraju at intel.com>
---
 drivers/gpu/drm/i915/intel_csr.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c
index 1858f02..50779e0 100644
--- a/drivers/gpu/drm/i915/intel_csr.c
+++ b/drivers/gpu/drm/i915/intel_csr.c
@@ -328,16 +328,7 @@ static uint32_t *parse_csr_fw(struct drm_i915_private *dev_priv,
 		return NULL;
 	}
 
-	for (i = 0; i < dmc_header->fw_size; i++) {
-		uint32_t *tmp = (u32 *)&fw->data[readcount + i * 4];
-		/*
-		 * The firmware payload is an array of 32 bit words stored in
-		 * little-endian format in the firmware image and programmed
-		 * as 32 bit big-endian format to memory.
-		 */
-		dmc_payload[i] = (uint32_t __force) cpu_to_be32(*tmp);
-	}
-
+	memcpy(dmc_payload, &fw->data[readcount], dmc_header->fw_size);
 	return dmc_payload;
 }
 
-- 
2.0.2

_______________________________________________
Intel-gfx mailing list
Intel-gfx at lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


More information about the Intel-gfx mailing list