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

Commit 9a664eb5 authored by rio.zhao's avatar rio.zhao Committed by hecaiqiang
Browse files

Add qcom patch CR2432846 (1/2)



Change-Id: Ia7e1142b33b363db0d9309883a2762633b622902
Signed-off-by: default avatarrio.zhao <rio.zhao@oneplus.com>
parent 85357f9b
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -686,6 +686,8 @@ int qrtr_endpoint_post(struct qrtr_endpoint *ep, const void *data, size_t len)
	unsigned int size;
	unsigned int ver;
	size_t hdrlen;
	struct qrtr_ctrl_pkt *pkt;
	static __le32 src_port = 0xff;

	if (len & 3)
		return -EINVAL;
@@ -746,10 +748,19 @@ int qrtr_endpoint_post(struct qrtr_endpoint *ep, const void *data, size_t len)
	    cb->type != QRTR_TYPE_RESUME_TX)
		goto err;

	skb_put_data(skb, data + hdrlen, size);

	if (node->ws && node->nid == 0)
		if (skb->len == sizeof(*pkt))
			pkt = (void *)skb->data;
			//Location service of id is 0x10
			if (le32_to_cpu(pkt->server.service) == 0x10) {
				src_port = le32_to_cpu(pkt->server.port);
				__pm_wakeup_event(node->ws, 0);

	skb_put_data(skb, data + hdrlen, size);
			} else if (cb->src_port == src_port) {
				__pm_wakeup_event(node->ws, 0);
			}
	qrtr_log_rx_msg(node, skb);

	skb_queue_tail(&node->rx_queue, skb);