Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1a8065d4 authored by Karthik Kantamneni's avatar Karthik Kantamneni Committed by Gerrit - the friendly Code Review server
Browse files

qcacmn: Fix DBR srng undefined address passed to F.W

DBR srng details are not sent properly to F.W via WMI_DMA_CFG_REQ
msg, this leads to F.W accessing undefined address.
Fix this by passing DBR srng details properly.

Change-Id: I15b393ad809dc0757e3637558f0bddd05530149d
CRs-Fixed: 2861621
parent 37d98e09
Loading
Loading
Loading
Loading
+13 −13
Original line number Diff line number Diff line
/*
 * Copyright (c) 2017-2020 The Linux Foundation. All rights reserved.
 * Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
 *
 * Permission to use, copy, modify, and/or distribute this software for
 * any purpose with or without fee is hereby granted, provided that the
@@ -1298,18 +1298,18 @@ static QDF_STATUS target_if_dbr_cfg_tgt(struct wlan_objmgr_pdev *pdev,
	dbr_cfg_req.pdev_id = mod_param->pdev_id;
	/* Module ID numbering starts from 1 in FW. need to fix it */
	dbr_cfg_req.mod_id = mod_param->mod_id;
	dbr_cfg_req.base_paddr_lo = (uint64_t)dbr_ring_cfg->base_paddr_aligned
						& 0xFFFFFFFF;
	dbr_cfg_req.base_paddr_hi = (uint64_t)dbr_ring_cfg->base_paddr_aligned
						& 0xFFFFFFFF00000000;
	dbr_cfg_req.head_idx_paddr_lo = (uint64_t)dbr_ring_cfg->head_idx_addr
						& 0xFFFFFFFF;
	dbr_cfg_req.head_idx_paddr_hi = (uint64_t)dbr_ring_cfg->head_idx_addr
						& 0xFFFFFFFF00000000;
	dbr_cfg_req.tail_idx_paddr_lo = (uint64_t)dbr_ring_cfg->tail_idx_addr
						& 0xFFFFFFFF;
	dbr_cfg_req.tail_idx_paddr_hi = (uint64_t)dbr_ring_cfg->tail_idx_addr
						& 0xFFFFFFFF00000000;
	dbr_cfg_req.base_paddr_lo =
		qdf_get_lower_32_bits(dbr_ring_cfg->base_paddr_aligned);
	dbr_cfg_req.base_paddr_hi =
		qdf_get_upper_32_bits(dbr_ring_cfg->base_paddr_aligned);
	dbr_cfg_req.head_idx_paddr_lo =
		qdf_get_lower_32_bits(dbr_ring_cfg->head_idx_addr);
	dbr_cfg_req.head_idx_paddr_hi =
		qdf_get_upper_32_bits(dbr_ring_cfg->head_idx_addr);
	dbr_cfg_req.tail_idx_paddr_lo =
		qdf_get_lower_32_bits(dbr_ring_cfg->tail_idx_addr);
	dbr_cfg_req.tail_idx_paddr_hi =
		qdf_get_upper_32_bits(dbr_ring_cfg->tail_idx_addr);
	dbr_cfg_req.num_elems = dbr_ring_cap->ring_elems_min;
	dbr_cfg_req.buf_size = dbr_ring_cap->min_buf_size;
	dbr_cfg_req.num_resp_per_event = dbr_config->num_resp_per_event;