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

Commit 097ca40f authored by Mohammed Javid's avatar Mohammed Javid
Browse files

msm: ipa: Fix to use GFP_DMA flag



IPAv2 hardware works with 32 bit addressing,
so allocate a kernel memory using GFP_DMA flag
which is processed by IPA hardware.

Change-Id: I6f35e7f2179dc48f718221f6a3d228aca67c4154
Acked-by: default avatarAshok Vuyyuru <avuyyuru@qti.qualcomm.com>
Signed-off-by: default avatarMohammed Javid <mjavid@codeaurora.org>
parent 7e3149cb
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -1999,6 +1999,7 @@ static int ipa_q6_set_ex_path_dis_agg(void)
	int index;
	struct ipa_register_write *reg_write;
	int retval;
	gfp_t flag = GFP_KERNEL | (ipa_ctx->use_dma_zone ? GFP_DMA : 0);

	desc = kcalloc(ipa_ctx->ipa_num_pipes, sizeof(struct ipa_desc),
			GFP_KERNEL);
@@ -2016,7 +2017,7 @@ static int ipa_q6_set_ex_path_dis_agg(void)
		if (ipa_ctx->ep[ep_idx].valid &&
			ipa_ctx->ep[ep_idx].skip_ep_cfg) {
			BUG_ON(num_descs >= ipa_ctx->ipa_num_pipes);
			reg_write = kzalloc(sizeof(*reg_write), GFP_KERNEL);
			reg_write = kzalloc(sizeof(*reg_write), flag);

			if (!reg_write) {
				IPAERR("failed to allocate memory\n");
@@ -2049,7 +2050,7 @@ static int ipa_q6_set_ex_path_dis_agg(void)
			continue;
		if (IPA_CLIENT_IS_Q6_NON_ZIP_CONS(client_idx) ||
			IPA_CLIENT_IS_Q6_ZIP_CONS(client_idx)) {
			reg_write = kzalloc(sizeof(*reg_write), GFP_KERNEL);
			reg_write = kzalloc(sizeof(*reg_write), flag);

			if (!reg_write) {
				IPAERR("failed to allocate memory\n");
+4 −4
Original line number Diff line number Diff line
@@ -4472,7 +4472,7 @@ int ipa_tag_process(struct ipa_desc desc[],
	}

	/* IP_PACKET_INIT IC for tag status to be sent to apps */
	pkt_init = kzalloc(sizeof(*pkt_init), GFP_KERNEL);
	pkt_init = kzalloc(sizeof(*pkt_init), flag);
	if (!pkt_init) {
		IPAERR("failed to allocate memory\n");
		res = -ENOMEM;
@@ -4491,7 +4491,7 @@ int ipa_tag_process(struct ipa_desc desc[],
	desc_idx++;

	/* NO-OP IC for ensuring that IPA pipeline is empty */
	reg_write_nop = kzalloc(sizeof(*reg_write_nop), GFP_KERNEL);
	reg_write_nop = kzalloc(sizeof(*reg_write_nop), flag);
	if (!reg_write_nop) {
		IPAERR("no mem\n");
		res = -ENOMEM;
@@ -4510,7 +4510,7 @@ int ipa_tag_process(struct ipa_desc desc[],
	desc_idx++;

	/* status IC */
	status = kzalloc(sizeof(*status), GFP_KERNEL);
	status = kzalloc(sizeof(*status), flag);
	if (!status) {
		IPAERR("no mem\n");
		res = -ENOMEM;
@@ -4546,7 +4546,7 @@ int ipa_tag_process(struct ipa_desc desc[],
	atomic_set(&comp->cnt, 2);

	/* dummy packet to send to IPA. packet payload is a completion object */
	dummy_skb = alloc_skb(sizeof(comp), GFP_KERNEL);
	dummy_skb = alloc_skb(sizeof(comp), flag);
	if (!dummy_skb) {
		IPAERR("failed to allocate memory\n");
		res = -ENOMEM;