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

Commit e3d0f054 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge changes I5aac588c,If1dbdcdb,If9ba9c65,I66d73fe4,I795bfe2d,I7bb7e03d,I27398995 into msm-4.14

* changes:
  ARM: dts: msm: Add intent list for IPCRTR on sdm855
  ARM: dts: msm: Fix RPMSG intents field for sdm855
  rpmsg: glink: Remove chunk size word align warning
  rpmsg: glink: Change ioread functions to iomemcpy_from
  qrtr: Fix NET_BIND_SERVICE logic
  qrtr: Fix broadcast packet format
  soc: qcom: glink_pkt: Fix priv data for rpmsg cb
parents 2f4dc1be e2ba56b2
Loading
Loading
Loading
Loading
+32 −4
Original line number Diff line number Diff line
@@ -2035,7 +2035,7 @@
		qcom,msm_fastrpc_rpmsg {
			compatible = "qcom,msm-fastrpc-rpmsg";
			qcom,glink-channels = "fastrpcglink-apps-dsp";
			intents = <0x64 64>;
			qcom,intents = <0x64 64>;
		};

		qcom,msm_fastrpc_compute_cb1 {
@@ -2191,6 +2191,13 @@
			mboxes = <&apcs_glb 12>;
			mbox-names = "mpss_smem";
			interrupts = <GIC_SPI 449 IRQ_TYPE_EDGE_RISING>;

			modem_qrtr {
				qcom,glink-channels = "IPCRTR";
				qcom,intents = <0x800  5
						0x2000 3
						0x4400 2>;
			};
		};

		adsp {
@@ -2200,9 +2207,16 @@
			mbox-names = "adsp_smem";
			interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;

			adsp_qrtr {
				qcom,glink-channels = "IPCRTR";
				qcom,intents = <0x800  5
						0x2000 3
						0x4400 2>;
			};

			apr_tal_rpmsg {
				qcom,glink-channels = "apr_audio_svc";
				intents = <0x200 20>;
				qcom,intents = <0x200 20>;
			};
		};

@@ -2212,6 +2226,13 @@
			mboxes = <&apcs_glb 24>;
			mbox-names = "dsps_smem";
			interrupts = <GIC_SPI 170 IRQ_TYPE_EDGE_RISING>;

			dsps_qrtr {
				qcom,glink-channels = "IPCRTR";
				qcom,intents = <0x800  5
						0x2000 3
						0x4400 2>;
			};
		};

		cdsp {
@@ -2220,6 +2241,13 @@
			mboxes = <&apcs_glb 4>;
			mbox-names = "cdsp_smem";
			interrupts = <GIC_SPI 574 IRQ_TYPE_EDGE_RISING>;

			cdsp_qrtr {
				qcom,glink-channels = "IPCRTR";
				qcom,intents = <0x800  5
						0x2000 3
						0x4400 2>;
			};
		};

		glink_spi_xprt_wdsp: wdsp {
@@ -2230,7 +2258,7 @@

			wdsp_ctrl {
				qcom,glink-channels = "g_glink_ctrl";
				intents = <0x400 1>;
				qcom,intents = <0x400 1>;
			};

			wdsp_ild {
@@ -2245,7 +2273,7 @@

			wdsp_data {
				qcom,glink-channels = "g_glink_audio_data";
				intents = <0x1000 2>;
				qcom,intents = <0x1000 2>;
			};
		};
	};
+0 −3
Original line number Diff line number Diff line
@@ -848,9 +848,6 @@ static int qcom_glink_rx_data(struct qcom_glink *glink, size_t avail)
		return -EAGAIN;
	}

	if (WARN(chunk_size % 4, "Incoming data must be word aligned\n"))
		return -EINVAL;

	rcid = le16_to_cpu(hdr.msg.param1);
	spin_lock_irqsave(&glink->idr_lock, flags);
	channel = idr_find(&glink->rcids, rcid);
+3 −4
Original line number Diff line number Diff line
/*
 * Copyright (c) 2016, Linaro Ltd
 * Copyright (c) 2018, The Linux Foundation, All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -98,13 +99,11 @@ static void glink_smem_rx_peak(struct qcom_glink_pipe *np,

	len = min_t(size_t, count, pipe->native.length - tail);
	if (len) {
		__ioread32_copy(data, pipe->fifo + tail,
				len / sizeof(u32));
		memcpy_fromio(data, pipe->fifo + tail, len);
	}

	if (len != count) {
		__ioread32_copy(data + len, pipe->fifo,
				(count - len) / sizeof(u32));
		memcpy_fromio(data + len, pipe->fifo, (count - len));
	}
}

+4 −2
Original line number Diff line number Diff line
@@ -41,7 +41,6 @@ enum {
#define GLINK_PKT_INFO(x, ...)						\
do {									\
	if (glink_pkt_debug_mask & GLINK_PKT_INFO) {			\
		pr_info("[%s]: "x, __func__, ##__VA_ARGS__);		\
		ipc_log_string(glink_pkt_ilctxt,			\
			"[%s]: "x, __func__, ##__VA_ARGS__);		\
	}								\
@@ -182,6 +181,7 @@ static int glink_pkt_rpdev_probe(struct rpmsg_device *rpdev)
	gpdev->rpdev = rpdev;
	mutex_unlock(&gpdev->lock);

	dev_set_drvdata(&rpdev->dev, gpdev);
	complete_all(&gpdev->ch_open);

	return 0;
@@ -190,7 +190,7 @@ static int glink_pkt_rpdev_probe(struct rpmsg_device *rpdev)
static int glink_pkt_rpdev_cb(struct rpmsg_device *rpdev, void *buf, int len,
			      void *priv, u32 addr)
{
	struct glink_pkt_device *gpdev = priv;
	struct glink_pkt_device *gpdev = dev_get_drvdata(&rpdev->dev);
	unsigned long flags;
	struct sk_buff *skb;

@@ -237,6 +237,8 @@ static void glink_pkt_rpdev_remove(struct rpmsg_device *rpdev)
	gpdev->rpdev = NULL;
	mutex_unlock(&gpdev->lock);

	dev_set_drvdata(&rpdev->dev, NULL);

	/* wake up any blocked readers */
	reinit_completion(&gpdev->ch_open);
	wake_up_interruptible(&gpdev->readq);
+3 −1
Original line number Diff line number Diff line
@@ -708,6 +708,8 @@ static int qrtr_bcast_enqueue(struct qrtr_node *node, struct sk_buff *skb,
		if (!skbn)
			break;
		skb_set_owner_w(skbn, skb->sk);
		to->sq_node = cpu_to_le32(node->nid);
		to->sq_port = QRTR_NODE_BCAST;
		qrtr_node_enqueue(node, skbn, type, from, to);
	}
	mutex_unlock(&qrtr_node_lock);
@@ -1076,7 +1078,7 @@ static int qrtr_addr_doit(struct sk_buff *skb, struct nlmsghdr *nlh,
	struct ifaddrmsg *ifm;
	int rc;

	if (!netlink_capable(skb, CAP_NET_ADMIN) ||
	if (!netlink_capable(skb, CAP_NET_ADMIN) &&
	    !netlink_capable(skb, CAP_NET_BIND_SERVICE))
		return -EPERM;