Browse Source

Merge "ipa: Fix the collection of packets context on crash"

qctecmdr 3 years ago
parent
commit
3d6de4e3c3

+ 5 - 4
drivers/platform/msm/ipa/ipa_v3/dump/ipa4.5/ipa_reg_dump.c

@@ -1309,10 +1309,11 @@ void ipa_save_registers(void)
 		 * IPA_CTX_ID register space
 		 */
 		if (io->read == act_read) {
-			memcpy((void *)ipa_reg_save.pkt_ctntx,
-				   (const void *)
-				   (ipa3_ctx->reg_collection_base + ofst),
-				   sizeof(ipa_reg_save.pkt_ctntx));
+			for (i = 0; i < IPA_HW_PKT_CTNTX_MAX; i++) {
+				memcpy((void *)(&(ipa_reg_save.pkt_ctntx[i])),
+					(void*)(ipa3_ctx->reg_collection_base + HWIO_IPA_CTX_ID_m_CTX_NUM_n_ADDR(i, 0)),
+					sizeof(ipa_reg_save.pkt_ctntx[0]));
+			}
 
 			for_cfg.value =
 				IPA_READ_SCALER_REG(IPA_RSRC_MNGR_DB_CFG);

+ 3 - 1
drivers/platform/msm/ipa/ipa_v3/dump/ipa5.0/ipa_pkt_cntxt.h

@@ -248,7 +248,9 @@ struct ipa_pkt_ctntx_s {
 	u64	ulso_mss                         : 16; /* Word 16 Bits 48-63 */
 	u64	maci_calculated_lsbs             : 64; /* Word 17 Bits 0-63 */
 	u64	maci_calculated_msbs             : 64; /* Word 18 Bits 0-63 */
-	u64	padding_bytes_cnt                : 16; /* Word 19 Bits 0-16 */
+	u64     padding_bytes_cnt                : 16; /* Word 19 Bits 0-15 */
+	u64     not_used8                        : 48; /* Word 19 Bits 16-63 */
+
 } __packed;
 
 #endif /* #if !defined(_IPA_PKT_CNTXT_H_) */

+ 5 - 4
drivers/platform/msm/ipa/ipa_v3/dump/ipa5.0/ipa_reg_dump.c

@@ -1309,10 +1309,11 @@ void ipa_save_registers(void)
 		 * IPA_CTX_ID register space
 		 */
 		if (io->read == act_read) {
-			memcpy((void *)ipa_reg_save.pkt_ctntx,
-				   (const void *)
-				   (ipa3_ctx->reg_collection_base + ofst),
-				   sizeof(ipa_reg_save.pkt_ctntx));
+			for (i = 0; i < IPA_HW_PKT_CTNTX_MAX; i++) {
+				memcpy((void *)(&(ipa_reg_save.pkt_ctntx[i])),
+					(void*)(ipa3_ctx->reg_collection_base + HWIO_IPA_CTX_ID_m_CTX_NUM_n_ADDR(i, 0)),
+					sizeof(ipa_reg_save.pkt_ctntx[0]));
+			}
 
 			for_cfg.value =
 				IPA_READ_SCALER_REG(IPA_RSRC_MNGR_DB_CFG);

+ 5 - 4
drivers/platform/msm/ipa/ipa_v3/dump/ipa5.5/ipa_reg_dump.c

@@ -1206,10 +1206,11 @@ void ipa_save_registers(void)
 		 * IPA_CTX_ID register space
 		 */
 		if (io->read == act_read) {
-			memcpy((void *)ipa_reg_save.pkt_ctntx,
-				   (const void *)
-				   (ipa3_ctx->reg_collection_base + ofst),
-				   sizeof(ipa_reg_save.pkt_ctntx));
+			for (i = 0; i < IPA_HW_PKT_CTNTX_MAX; i++) {
+				memcpy((void *)(&(ipa_reg_save.pkt_ctntx[i])),
+					(void*)(ipa3_ctx->reg_collection_base + HWIO_IPA_CTX_ID_m_CTX_NUM_n_ADDR(i, 0)),
+					sizeof(ipa_reg_save.pkt_ctntx[0]));
+			}
 
 			for_cfg.value =
 				IPA_READ_SCALER_REG(IPA_RSRC_MNGR_DB_CFG);