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

Commit bdabad3e authored by Courtney Cavin's avatar Courtney Cavin Committed by David S. Miller
Browse files

net: Add Qualcomm IPC router



Add an implementation of Qualcomm's IPC router protocol, used to
communicate with service providing remote processors.

Signed-off-by: default avatarCourtney Cavin <courtney.cavin@sonymobile.com>
Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@sonymobile.com>
[bjorn: Cope with 0 being a valid node id and implement RTM_NEWADDR]
Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 43315f31
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -201,8 +201,9 @@ struct ucred {
#define AF_NFC		39	/* NFC sockets			*/
#define AF_VSOCK	40	/* vSockets			*/
#define AF_KCM		41	/* Kernel Connection Multiplexor*/
#define AF_QIPCRTR	42	/* Qualcomm IPC Router          */

#define AF_MAX		42	/* For now.. */
#define AF_MAX		43	/* For now.. */

/* Protocol families, same as address families. */
#define PF_UNSPEC	AF_UNSPEC
@@ -249,6 +250,7 @@ struct ucred {
#define PF_NFC		AF_NFC
#define PF_VSOCK	AF_VSOCK
#define PF_KCM		AF_KCM
#define PF_QIPCRTR	AF_QIPCRTR
#define PF_MAX		AF_MAX

/* Maximum queue length specifiable by listen.  */
+12 −0
Original line number Diff line number Diff line
#ifndef _LINUX_QRTR_H
#define _LINUX_QRTR_H

#include <linux/socket.h>

struct sockaddr_qrtr {
	__kernel_sa_family_t sq_family;
	__u32 sq_node;
	__u32 sq_port;
};

#endif /* _LINUX_QRTR_H */
+1 −0
Original line number Diff line number Diff line
@@ -236,6 +236,7 @@ source "net/mpls/Kconfig"
source "net/hsr/Kconfig"
source "net/switchdev/Kconfig"
source "net/l3mdev/Kconfig"
source "net/qrtr/Kconfig"

config RPS
	bool
+1 −0
Original line number Diff line number Diff line
@@ -78,3 +78,4 @@ endif
ifneq ($(CONFIG_NET_L3_MASTER_DEV),)
obj-y				+= l3mdev/
endif
obj-$(CONFIG_QRTR)		+= qrtr/

net/qrtr/Kconfig

0 → 100644
+24 −0
Original line number Diff line number Diff line
# Qualcomm IPC Router configuration
#

config QRTR
	tristate "Qualcomm IPC Router support"
	depends on ARCH_QCOM || COMPILE_TEST
	---help---
	  Say Y if you intend to use Qualcomm IPC router protocol.  The
	  protocol is used to communicate with services provided by other
	  hardware blocks in the system.

	  In order to do service lookups, a userspace daemon is required to
	  maintain a service listing.

if QRTR

config QRTR_SMD
	tristate "SMD IPC Router channels"
	depends on QCOM_SMD || COMPILE_TEST
	---help---
	  Say Y here to support SMD based ipcrouter channels.  SMD is the
	  most common transport for IPC Router.

endif # QRTR
Loading