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

Commit 4fc1d397 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "arm64: defconfig: Set qrtr wakeup for genericarmv8"

parents 9443b83e 8ee7ea64
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -111,6 +111,7 @@ CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_INET=y
CONFIG_QRTR=y
CONFIG_QRTR=y
CONFIG_QRTR_NODE_ID=20
CONFIG_QRTR_NODE_ID=20
CONFIG_QRTR_WAKEUP_MS=500
CONFIG_QRTR_HAVEN=y
CONFIG_QRTR_HAVEN=y
CONFIG_BPF_JIT=y
CONFIG_BPF_JIT=y
CONFIG_NEURON_SERVICE=y
CONFIG_NEURON_SERVICE=y
+11 −0
Original line number Original line Diff line number Diff line
@@ -26,6 +26,17 @@ config QRTR_NODE_ID
	  but the name service application is not priveleged enough to use
	  but the name service application is not priveleged enough to use
	  netlink sockets.
	  netlink sockets.


config QRTR_WAKEUP_MS
	int "QRTR Wakeup timeout"
	default 0
	help
	  This option is used to configure the wakesource timeout that QRTR
	  should take when a packet is received. The qrtr driver can guarantee
	  that the packet gets queued to the socket but cannot guarantee the
	  client process will get time to run if auto sleep is enabled. This
	  config will help mitigate missed packets on systems where auto sleep
	  is aggressive.

config QRTR_SMD
config QRTR_SMD
	tristate "SMD IPC Router channels"
	tristate "SMD IPC Router channels"
	depends on RPMSG || (COMPILE_TEST && RPMSG=n)
	depends on RPMSG || (COMPILE_TEST && RPMSG=n)
+3 −2
Original line number Original line Diff line number Diff line
@@ -117,6 +117,7 @@ static inline struct qrtr_sock *qrtr_sk(struct sock *sk)
}
}


static unsigned int qrtr_local_nid = CONFIG_QRTR_NODE_ID;
static unsigned int qrtr_local_nid = CONFIG_QRTR_NODE_ID;
static unsigned int qrtr_wakeup_ms = CONFIG_QRTR_WAKEUP_MS;


/* for node ids */
/* for node ids */
static RADIX_TREE(qrtr_nodes, GFP_ATOMIC);
static RADIX_TREE(qrtr_nodes, GFP_ATOMIC);
@@ -886,7 +887,7 @@ int qrtr_endpoint_post(struct qrtr_endpoint *ep, const void *data, size_t len)
	if (cb->type != QRTR_TYPE_DATA || cb->dst_node != qrtr_local_nid) {
	if (cb->type != QRTR_TYPE_DATA || cb->dst_node != qrtr_local_nid) {
		skb_queue_tail(&node->rx_queue, skb);
		skb_queue_tail(&node->rx_queue, skb);
		kthread_queue_work(&node->kworker, &node->read_data);
		kthread_queue_work(&node->kworker, &node->read_data);
		__pm_wakeup_event(node->ws, 0);
		pm_wakeup_ws_event(node->ws, qrtr_wakeup_ms, true);
	} else {
	} else {
		ipc = qrtr_port_lookup(cb->dst_port);
		ipc = qrtr_port_lookup(cb->dst_port);
		if (!ipc) {
		if (!ipc) {
@@ -899,7 +900,7 @@ int qrtr_endpoint_post(struct qrtr_endpoint *ep, const void *data, size_t len)


		/* Force wakeup for all packets except for sensors */
		/* Force wakeup for all packets except for sensors */
		if (node->nid != 9)
		if (node->nid != 9)
			__pm_wakeup_event(node->ws, 0);
			pm_wakeup_ws_event(node->ws, qrtr_wakeup_ms, true);


		qrtr_port_put(ipc);
		qrtr_port_put(ipc);
	}
	}