glink              30 drivers/remoteproc/qcom_common.c 	struct qcom_rproc_glink *glink = to_glink_subdev(subdev);
glink              32 drivers/remoteproc/qcom_common.c 	glink->edge = qcom_glink_smem_register(glink->dev, glink->node);
glink              34 drivers/remoteproc/qcom_common.c 	return PTR_ERR_OR_ZERO(glink->edge);
glink              39 drivers/remoteproc/qcom_common.c 	struct qcom_rproc_glink *glink = to_glink_subdev(subdev);
glink              41 drivers/remoteproc/qcom_common.c 	qcom_glink_smem_unregister(glink->edge);
glink              42 drivers/remoteproc/qcom_common.c 	glink->edge = NULL;
glink              50 drivers/remoteproc/qcom_common.c void qcom_add_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glink)
glink              54 drivers/remoteproc/qcom_common.c 	glink->node = of_get_child_by_name(dev->parent->of_node, "glink-edge");
glink              55 drivers/remoteproc/qcom_common.c 	if (!glink->node)
glink              58 drivers/remoteproc/qcom_common.c 	glink->dev = dev;
glink              59 drivers/remoteproc/qcom_common.c 	glink->subdev.start = glink_subdev_start;
glink              60 drivers/remoteproc/qcom_common.c 	glink->subdev.stop = glink_subdev_stop;
glink              62 drivers/remoteproc/qcom_common.c 	rproc_add_subdev(rproc, &glink->subdev);
glink              71 drivers/remoteproc/qcom_common.c void qcom_remove_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glink)
glink              73 drivers/remoteproc/qcom_common.c 	if (!glink->node)
glink              76 drivers/remoteproc/qcom_common.c 	rproc_remove_subdev(rproc, &glink->subdev);
glink              77 drivers/remoteproc/qcom_common.c 	of_node_put(glink->node);
glink              33 drivers/remoteproc/qcom_common.h void qcom_add_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glink);
glink              34 drivers/remoteproc/qcom_common.h void qcom_remove_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glink);
glink             158 drivers/rpmsg/qcom_glink_native.c 	struct qcom_glink *glink;
glink             209 drivers/rpmsg/qcom_glink_native.c static struct glink_channel *qcom_glink_alloc_channel(struct qcom_glink *glink,
glink             223 drivers/rpmsg/qcom_glink_native.c 	channel->glink = glink;
glink             276 drivers/rpmsg/qcom_glink_native.c static size_t qcom_glink_rx_avail(struct qcom_glink *glink)
glink             278 drivers/rpmsg/qcom_glink_native.c 	return glink->rx_pipe->avail(glink->rx_pipe);
glink             281 drivers/rpmsg/qcom_glink_native.c static void qcom_glink_rx_peak(struct qcom_glink *glink,
glink             284 drivers/rpmsg/qcom_glink_native.c 	glink->rx_pipe->peak(glink->rx_pipe, data, offset, count);
glink             287 drivers/rpmsg/qcom_glink_native.c static void qcom_glink_rx_advance(struct qcom_glink *glink, size_t count)
glink             289 drivers/rpmsg/qcom_glink_native.c 	glink->rx_pipe->advance(glink->rx_pipe, count);
glink             292 drivers/rpmsg/qcom_glink_native.c static size_t qcom_glink_tx_avail(struct qcom_glink *glink)
glink             294 drivers/rpmsg/qcom_glink_native.c 	return glink->tx_pipe->avail(glink->tx_pipe);
glink             297 drivers/rpmsg/qcom_glink_native.c static void qcom_glink_tx_write(struct qcom_glink *glink,
glink             301 drivers/rpmsg/qcom_glink_native.c 	glink->tx_pipe->write(glink->tx_pipe, hdr, hlen, data, dlen);
glink             304 drivers/rpmsg/qcom_glink_native.c static int qcom_glink_tx(struct qcom_glink *glink,
glink             313 drivers/rpmsg/qcom_glink_native.c 	if (tlen >= glink->tx_pipe->length)
glink             316 drivers/rpmsg/qcom_glink_native.c 	spin_lock_irqsave(&glink->tx_lock, flags);
glink             318 drivers/rpmsg/qcom_glink_native.c 	while (qcom_glink_tx_avail(glink) < tlen) {
glink             325 drivers/rpmsg/qcom_glink_native.c 		spin_unlock_irqrestore(&glink->tx_lock, flags);
glink             329 drivers/rpmsg/qcom_glink_native.c 		spin_lock_irqsave(&glink->tx_lock, flags);
glink             332 drivers/rpmsg/qcom_glink_native.c 	qcom_glink_tx_write(glink, hdr, hlen, data, dlen);
glink             334 drivers/rpmsg/qcom_glink_native.c 	mbox_send_message(glink->mbox_chan, NULL);
glink             335 drivers/rpmsg/qcom_glink_native.c 	mbox_client_txdone(glink->mbox_chan, 0);
glink             338 drivers/rpmsg/qcom_glink_native.c 	spin_unlock_irqrestore(&glink->tx_lock, flags);
glink             343 drivers/rpmsg/qcom_glink_native.c static int qcom_glink_send_version(struct qcom_glink *glink)
glink             349 drivers/rpmsg/qcom_glink_native.c 	msg.param2 = cpu_to_le32(glink->features);
glink             351 drivers/rpmsg/qcom_glink_native.c 	return qcom_glink_tx(glink, &msg, sizeof(msg), NULL, 0, true);
glink             354 drivers/rpmsg/qcom_glink_native.c static void qcom_glink_send_version_ack(struct qcom_glink *glink)
glink             360 drivers/rpmsg/qcom_glink_native.c 	msg.param2 = cpu_to_le32(glink->features);
glink             362 drivers/rpmsg/qcom_glink_native.c 	qcom_glink_tx(glink, &msg, sizeof(msg), NULL, 0, true);
glink             365 drivers/rpmsg/qcom_glink_native.c static void qcom_glink_send_open_ack(struct qcom_glink *glink,
glink             374 drivers/rpmsg/qcom_glink_native.c 	qcom_glink_tx(glink, &msg, sizeof(msg), NULL, 0, true);
glink             377 drivers/rpmsg/qcom_glink_native.c static void qcom_glink_handle_intent_req_ack(struct qcom_glink *glink,
glink             383 drivers/rpmsg/qcom_glink_native.c 	spin_lock_irqsave(&glink->idr_lock, flags);
glink             384 drivers/rpmsg/qcom_glink_native.c 	channel = idr_find(&glink->rcids, cid);
glink             385 drivers/rpmsg/qcom_glink_native.c 	spin_unlock_irqrestore(&glink->idr_lock, flags);
glink             387 drivers/rpmsg/qcom_glink_native.c 		dev_err(glink->dev, "unable to find channel\n");
glink             405 drivers/rpmsg/qcom_glink_native.c static int qcom_glink_send_open_req(struct qcom_glink *glink,
glink             419 drivers/rpmsg/qcom_glink_native.c 	spin_lock_irqsave(&glink->idr_lock, flags);
glink             420 drivers/rpmsg/qcom_glink_native.c 	ret = idr_alloc_cyclic(&glink->lcids, channel,
glink             423 drivers/rpmsg/qcom_glink_native.c 	spin_unlock_irqrestore(&glink->idr_lock, flags);
glink             434 drivers/rpmsg/qcom_glink_native.c 	ret = qcom_glink_tx(glink, &req, req_len, NULL, 0, true);
glink             441 drivers/rpmsg/qcom_glink_native.c 	spin_lock_irqsave(&glink->idr_lock, flags);
glink             442 drivers/rpmsg/qcom_glink_native.c 	idr_remove(&glink->lcids, channel->lcid);
glink             444 drivers/rpmsg/qcom_glink_native.c 	spin_unlock_irqrestore(&glink->idr_lock, flags);
glink             449 drivers/rpmsg/qcom_glink_native.c static void qcom_glink_send_close_req(struct qcom_glink *glink,
glink             458 drivers/rpmsg/qcom_glink_native.c 	qcom_glink_tx(glink, &req, sizeof(req), NULL, 0, true);
glink             461 drivers/rpmsg/qcom_glink_native.c static void qcom_glink_send_close_ack(struct qcom_glink *glink,
glink             470 drivers/rpmsg/qcom_glink_native.c 	qcom_glink_tx(glink, &req, sizeof(req), NULL, 0, true);
glink             477 drivers/rpmsg/qcom_glink_native.c 	struct qcom_glink *glink = channel->glink;
glink             501 drivers/rpmsg/qcom_glink_native.c 		qcom_glink_tx(glink, &cmd, sizeof(cmd), NULL, 0, true);
glink             511 drivers/rpmsg/qcom_glink_native.c static void qcom_glink_rx_done(struct qcom_glink *glink,
glink             516 drivers/rpmsg/qcom_glink_native.c 	if (glink->intentless) {
glink             547 drivers/rpmsg/qcom_glink_native.c static void qcom_glink_receive_version(struct qcom_glink *glink,
glink             555 drivers/rpmsg/qcom_glink_native.c 		glink->features &= features;
glink             558 drivers/rpmsg/qcom_glink_native.c 		qcom_glink_send_version_ack(glink);
glink             574 drivers/rpmsg/qcom_glink_native.c static void qcom_glink_receive_version_ack(struct qcom_glink *glink,
glink             583 drivers/rpmsg/qcom_glink_native.c 		if (features == glink->features)
glink             586 drivers/rpmsg/qcom_glink_native.c 		glink->features &= features;
glink             589 drivers/rpmsg/qcom_glink_native.c 		qcom_glink_send_version(glink);
glink             603 drivers/rpmsg/qcom_glink_native.c static int qcom_glink_send_intent_req_ack(struct qcom_glink *glink,
glink             613 drivers/rpmsg/qcom_glink_native.c 	qcom_glink_tx(glink, &msg, sizeof(msg), NULL, 0, true);
glink             627 drivers/rpmsg/qcom_glink_native.c static int qcom_glink_advertise_intent(struct qcom_glink *glink,
glink             646 drivers/rpmsg/qcom_glink_native.c 	qcom_glink_tx(glink, &cmd, sizeof(cmd), NULL, 0, true);
glink             652 drivers/rpmsg/qcom_glink_native.c qcom_glink_alloc_intent(struct qcom_glink *glink,
glink             690 drivers/rpmsg/qcom_glink_native.c static void qcom_glink_handle_rx_done(struct qcom_glink *glink,
glink             698 drivers/rpmsg/qcom_glink_native.c 	spin_lock_irqsave(&glink->idr_lock, flags);
glink             699 drivers/rpmsg/qcom_glink_native.c 	channel = idr_find(&glink->rcids, cid);
glink             700 drivers/rpmsg/qcom_glink_native.c 	spin_unlock_irqrestore(&glink->idr_lock, flags);
glink             702 drivers/rpmsg/qcom_glink_native.c 		dev_err(glink->dev, "invalid channel id received\n");
glink             711 drivers/rpmsg/qcom_glink_native.c 		dev_err(glink->dev, "invalid intent id received\n");
glink             734 drivers/rpmsg/qcom_glink_native.c static void qcom_glink_handle_intent_req(struct qcom_glink *glink,
glink             741 drivers/rpmsg/qcom_glink_native.c 	spin_lock_irqsave(&glink->idr_lock, flags);
glink             742 drivers/rpmsg/qcom_glink_native.c 	channel = idr_find(&glink->rcids, cid);
glink             743 drivers/rpmsg/qcom_glink_native.c 	spin_unlock_irqrestore(&glink->idr_lock, flags);
glink             750 drivers/rpmsg/qcom_glink_native.c 	intent = qcom_glink_alloc_intent(glink, channel, size, false);
glink             752 drivers/rpmsg/qcom_glink_native.c 		qcom_glink_advertise_intent(glink, channel, intent);
glink             754 drivers/rpmsg/qcom_glink_native.c 	qcom_glink_send_intent_req_ack(glink, channel, !!intent);
glink             757 drivers/rpmsg/qcom_glink_native.c static int qcom_glink_rx_defer(struct qcom_glink *glink, size_t extra)
glink             763 drivers/rpmsg/qcom_glink_native.c 	if (qcom_glink_rx_avail(glink) < sizeof(struct glink_msg) + extra) {
glink             764 drivers/rpmsg/qcom_glink_native.c 		dev_dbg(glink->dev, "Insufficient data in rx fifo");
glink             774 drivers/rpmsg/qcom_glink_native.c 	qcom_glink_rx_peak(glink, &dcmd->msg, 0, sizeof(dcmd->msg) + extra);
glink             776 drivers/rpmsg/qcom_glink_native.c 	spin_lock(&glink->rx_lock);
glink             777 drivers/rpmsg/qcom_glink_native.c 	list_add_tail(&dcmd->node, &glink->rx_queue);
glink             778 drivers/rpmsg/qcom_glink_native.c 	spin_unlock(&glink->rx_lock);
glink             780 drivers/rpmsg/qcom_glink_native.c 	schedule_work(&glink->rx_work);
glink             781 drivers/rpmsg/qcom_glink_native.c 	qcom_glink_rx_advance(glink, sizeof(dcmd->msg) + extra);
glink             786 drivers/rpmsg/qcom_glink_native.c static int qcom_glink_rx_data(struct qcom_glink *glink, size_t avail)
glink             803 drivers/rpmsg/qcom_glink_native.c 		dev_dbg(glink->dev, "Not enough data in fifo\n");
glink             807 drivers/rpmsg/qcom_glink_native.c 	qcom_glink_rx_peak(glink, &hdr, 0, sizeof(hdr));
glink             812 drivers/rpmsg/qcom_glink_native.c 		dev_dbg(glink->dev, "Payload not yet in fifo\n");
glink             817 drivers/rpmsg/qcom_glink_native.c 	spin_lock_irqsave(&glink->idr_lock, flags);
glink             818 drivers/rpmsg/qcom_glink_native.c 	channel = idr_find(&glink->rcids, rcid);
glink             819 drivers/rpmsg/qcom_glink_native.c 	spin_unlock_irqrestore(&glink->idr_lock, flags);
glink             821 drivers/rpmsg/qcom_glink_native.c 		dev_dbg(glink->dev, "Data on non-existing channel\n");
glink             827 drivers/rpmsg/qcom_glink_native.c 	if (glink->intentless) {
glink             857 drivers/rpmsg/qcom_glink_native.c 			dev_err(glink->dev,
glink             865 drivers/rpmsg/qcom_glink_native.c 		dev_err(glink->dev, "Insufficient space in intent\n");
glink             871 drivers/rpmsg/qcom_glink_native.c 	qcom_glink_rx_peak(glink, intent->data + intent->offset,
glink             890 drivers/rpmsg/qcom_glink_native.c 		qcom_glink_rx_done(glink, channel, intent);
glink             894 drivers/rpmsg/qcom_glink_native.c 	qcom_glink_rx_advance(glink, ALIGN(sizeof(hdr) + chunk_size, 8));
glink             899 drivers/rpmsg/qcom_glink_native.c static void qcom_glink_handle_intent(struct qcom_glink *glink,
glink             922 drivers/rpmsg/qcom_glink_native.c 		dev_dbg(glink->dev, "Not enough data in fifo\n");
glink             926 drivers/rpmsg/qcom_glink_native.c 	spin_lock_irqsave(&glink->idr_lock, flags);
glink             927 drivers/rpmsg/qcom_glink_native.c 	channel = idr_find(&glink->rcids, cid);
glink             928 drivers/rpmsg/qcom_glink_native.c 	spin_unlock_irqrestore(&glink->idr_lock, flags);
glink             930 drivers/rpmsg/qcom_glink_native.c 		dev_err(glink->dev, "intents for non-existing channel\n");
glink             938 drivers/rpmsg/qcom_glink_native.c 	qcom_glink_rx_peak(glink, msg, 0, msglen);
glink             954 drivers/rpmsg/qcom_glink_native.c 			dev_err(glink->dev, "failed to store remote intent\n");
glink             958 drivers/rpmsg/qcom_glink_native.c 	qcom_glink_rx_advance(glink, ALIGN(msglen, 8));
glink             961 drivers/rpmsg/qcom_glink_native.c static int qcom_glink_rx_open_ack(struct qcom_glink *glink, unsigned int lcid)
glink             965 drivers/rpmsg/qcom_glink_native.c 	spin_lock(&glink->idr_lock);
glink             966 drivers/rpmsg/qcom_glink_native.c 	channel = idr_find(&glink->lcids, lcid);
glink             967 drivers/rpmsg/qcom_glink_native.c 	spin_unlock(&glink->idr_lock);
glink             969 drivers/rpmsg/qcom_glink_native.c 		dev_err(glink->dev, "Invalid open ack packet\n");
glink             980 drivers/rpmsg/qcom_glink_native.c 	struct qcom_glink *glink = data;
glink             989 drivers/rpmsg/qcom_glink_native.c 		avail = qcom_glink_rx_avail(glink);
glink             993 drivers/rpmsg/qcom_glink_native.c 		qcom_glink_rx_peak(glink, &msg, 0, sizeof(msg));
glink            1005 drivers/rpmsg/qcom_glink_native.c 			ret = qcom_glink_rx_defer(glink, 0);
glink            1008 drivers/rpmsg/qcom_glink_native.c 			ret = qcom_glink_rx_open_ack(glink, param1);
glink            1009 drivers/rpmsg/qcom_glink_native.c 			qcom_glink_rx_advance(glink, ALIGN(sizeof(msg), 8));
glink            1012 drivers/rpmsg/qcom_glink_native.c 			ret = qcom_glink_rx_defer(glink, param2);
glink            1016 drivers/rpmsg/qcom_glink_native.c 			ret = qcom_glink_rx_data(glink, avail);
glink            1019 drivers/rpmsg/qcom_glink_native.c 			qcom_glink_rx_advance(glink, ALIGN(sizeof(msg), 8));
glink            1021 drivers/rpmsg/qcom_glink_native.c 			mbox_send_message(glink->mbox_chan, NULL);
glink            1022 drivers/rpmsg/qcom_glink_native.c 			mbox_client_txdone(glink->mbox_chan, 0);
glink            1025 drivers/rpmsg/qcom_glink_native.c 			qcom_glink_handle_intent(glink, param1, param2, avail);
glink            1028 drivers/rpmsg/qcom_glink_native.c 			qcom_glink_handle_rx_done(glink, param1, param2, false);
glink            1029 drivers/rpmsg/qcom_glink_native.c 			qcom_glink_rx_advance(glink, ALIGN(sizeof(msg), 8));
glink            1032 drivers/rpmsg/qcom_glink_native.c 			qcom_glink_handle_rx_done(glink, param1, param2, true);
glink            1033 drivers/rpmsg/qcom_glink_native.c 			qcom_glink_rx_advance(glink, ALIGN(sizeof(msg), 8));
glink            1036 drivers/rpmsg/qcom_glink_native.c 			qcom_glink_handle_intent_req_ack(glink, param1, param2);
glink            1037 drivers/rpmsg/qcom_glink_native.c 			qcom_glink_rx_advance(glink, ALIGN(sizeof(msg), 8));
glink            1040 drivers/rpmsg/qcom_glink_native.c 			dev_err(glink->dev, "unhandled rx cmd: %d\n", cmd);
glink            1053 drivers/rpmsg/qcom_glink_native.c static struct glink_channel *qcom_glink_create_local(struct qcom_glink *glink,
glink            1060 drivers/rpmsg/qcom_glink_native.c 	channel = qcom_glink_alloc_channel(glink, name);
glink            1064 drivers/rpmsg/qcom_glink_native.c 	ret = qcom_glink_send_open_req(glink, channel);
glink            1076 drivers/rpmsg/qcom_glink_native.c 	qcom_glink_send_open_ack(glink, channel);
glink            1082 drivers/rpmsg/qcom_glink_native.c 	spin_lock_irqsave(&glink->idr_lock, flags);
glink            1083 drivers/rpmsg/qcom_glink_native.c 	idr_remove(&glink->lcids, channel->lcid);
glink            1084 drivers/rpmsg/qcom_glink_native.c 	spin_unlock_irqrestore(&glink->idr_lock, flags);
glink            1096 drivers/rpmsg/qcom_glink_native.c static int qcom_glink_create_remote(struct qcom_glink *glink,
glink            1101 drivers/rpmsg/qcom_glink_native.c 	qcom_glink_send_open_ack(glink, channel);
glink            1103 drivers/rpmsg/qcom_glink_native.c 	ret = qcom_glink_send_open_req(glink, channel);
glink            1122 drivers/rpmsg/qcom_glink_native.c 	qcom_glink_send_close_req(glink, channel);
glink            1135 drivers/rpmsg/qcom_glink_native.c 	struct qcom_glink *glink = parent->glink;
glink            1142 drivers/rpmsg/qcom_glink_native.c 	spin_lock_irqsave(&glink->idr_lock, flags);
glink            1143 drivers/rpmsg/qcom_glink_native.c 	idr_for_each_entry(&glink->rcids, channel, cid) {
glink            1147 drivers/rpmsg/qcom_glink_native.c 	spin_unlock_irqrestore(&glink->idr_lock, flags);
glink            1150 drivers/rpmsg/qcom_glink_native.c 		channel = qcom_glink_create_local(glink, name);
glink            1154 drivers/rpmsg/qcom_glink_native.c 		ret = qcom_glink_create_remote(glink, channel);
glink            1172 drivers/rpmsg/qcom_glink_native.c 	struct qcom_glink *glink = channel->glink;
glink            1181 drivers/rpmsg/qcom_glink_native.c 	if (glink->intentless)
glink            1195 drivers/rpmsg/qcom_glink_native.c 			intent = qcom_glink_alloc_intent(glink, channel, size,
glink            1200 drivers/rpmsg/qcom_glink_native.c 			qcom_glink_advertise_intent(glink, channel, intent);
glink            1209 drivers/rpmsg/qcom_glink_native.c 	struct qcom_glink *glink = channel->glink;
glink            1219 drivers/rpmsg/qcom_glink_native.c 	qcom_glink_send_close_req(glink, channel);
glink            1222 drivers/rpmsg/qcom_glink_native.c static int qcom_glink_request_intent(struct qcom_glink *glink,
glink            1242 drivers/rpmsg/qcom_glink_native.c 	ret = qcom_glink_tx(glink, &cmd, sizeof(cmd), NULL, 0, true);
glink            1248 drivers/rpmsg/qcom_glink_native.c 		dev_err(glink->dev, "intent request timed out\n");
glink            1262 drivers/rpmsg/qcom_glink_native.c 	struct qcom_glink *glink = channel->glink;
glink            1274 drivers/rpmsg/qcom_glink_native.c 	if (!glink->intentless) {
glink            1298 drivers/rpmsg/qcom_glink_native.c 			ret = qcom_glink_request_intent(glink, channel, len);
glink            1312 drivers/rpmsg/qcom_glink_native.c 	ret = qcom_glink_tx(glink, &req, sizeof(req), data, len, wait);
glink            1379 drivers/rpmsg/qcom_glink_native.c static int qcom_glink_rx_open(struct qcom_glink *glink, unsigned int rcid,
glink            1390 drivers/rpmsg/qcom_glink_native.c 	spin_lock_irqsave(&glink->idr_lock, flags);
glink            1391 drivers/rpmsg/qcom_glink_native.c 	idr_for_each_entry(&glink->lcids, channel, lcid) {
glink            1395 drivers/rpmsg/qcom_glink_native.c 	spin_unlock_irqrestore(&glink->idr_lock, flags);
glink            1398 drivers/rpmsg/qcom_glink_native.c 		channel = qcom_glink_alloc_channel(glink, name);
glink            1406 drivers/rpmsg/qcom_glink_native.c 	spin_lock_irqsave(&glink->idr_lock, flags);
glink            1407 drivers/rpmsg/qcom_glink_native.c 	ret = idr_alloc(&glink->rcids, channel, rcid, rcid + 1, GFP_ATOMIC);
glink            1409 drivers/rpmsg/qcom_glink_native.c 		dev_err(glink->dev, "Unable to insert channel into rcid list\n");
glink            1410 drivers/rpmsg/qcom_glink_native.c 		spin_unlock_irqrestore(&glink->idr_lock, flags);
glink            1414 drivers/rpmsg/qcom_glink_native.c 	spin_unlock_irqrestore(&glink->idr_lock, flags);
glink            1431 drivers/rpmsg/qcom_glink_native.c 		node = qcom_glink_match_channel(glink->dev->of_node, name);
glink            1433 drivers/rpmsg/qcom_glink_native.c 		rpdev->dev.parent = glink->dev;
glink            1446 drivers/rpmsg/qcom_glink_native.c 	spin_lock_irqsave(&glink->idr_lock, flags);
glink            1447 drivers/rpmsg/qcom_glink_native.c 	idr_remove(&glink->rcids, channel->rcid);
glink            1449 drivers/rpmsg/qcom_glink_native.c 	spin_unlock_irqrestore(&glink->idr_lock, flags);
glink            1458 drivers/rpmsg/qcom_glink_native.c static void qcom_glink_rx_close(struct qcom_glink *glink, unsigned int rcid)
glink            1464 drivers/rpmsg/qcom_glink_native.c 	spin_lock_irqsave(&glink->idr_lock, flags);
glink            1465 drivers/rpmsg/qcom_glink_native.c 	channel = idr_find(&glink->rcids, rcid);
glink            1466 drivers/rpmsg/qcom_glink_native.c 	spin_unlock_irqrestore(&glink->idr_lock, flags);
glink            1478 drivers/rpmsg/qcom_glink_native.c 		rpmsg_unregister_device(glink->dev, &chinfo);
glink            1481 drivers/rpmsg/qcom_glink_native.c 	qcom_glink_send_close_ack(glink, channel->rcid);
glink            1483 drivers/rpmsg/qcom_glink_native.c 	spin_lock_irqsave(&glink->idr_lock, flags);
glink            1484 drivers/rpmsg/qcom_glink_native.c 	idr_remove(&glink->rcids, channel->rcid);
glink            1486 drivers/rpmsg/qcom_glink_native.c 	spin_unlock_irqrestore(&glink->idr_lock, flags);
glink            1491 drivers/rpmsg/qcom_glink_native.c static void qcom_glink_rx_close_ack(struct qcom_glink *glink, unsigned int lcid)
glink            1496 drivers/rpmsg/qcom_glink_native.c 	spin_lock_irqsave(&glink->idr_lock, flags);
glink            1497 drivers/rpmsg/qcom_glink_native.c 	channel = idr_find(&glink->lcids, lcid);
glink            1499 drivers/rpmsg/qcom_glink_native.c 		spin_unlock_irqrestore(&glink->idr_lock, flags);
glink            1503 drivers/rpmsg/qcom_glink_native.c 	idr_remove(&glink->lcids, channel->lcid);
glink            1505 drivers/rpmsg/qcom_glink_native.c 	spin_unlock_irqrestore(&glink->idr_lock, flags);
glink            1512 drivers/rpmsg/qcom_glink_native.c 	struct qcom_glink *glink = container_of(work, struct qcom_glink,
glink            1522 drivers/rpmsg/qcom_glink_native.c 		spin_lock_irqsave(&glink->rx_lock, flags);
glink            1523 drivers/rpmsg/qcom_glink_native.c 		if (list_empty(&glink->rx_queue)) {
glink            1524 drivers/rpmsg/qcom_glink_native.c 			spin_unlock_irqrestore(&glink->rx_lock, flags);
glink            1527 drivers/rpmsg/qcom_glink_native.c 		dcmd = list_first_entry(&glink->rx_queue,
glink            1530 drivers/rpmsg/qcom_glink_native.c 		spin_unlock_irqrestore(&glink->rx_lock, flags);
glink            1539 drivers/rpmsg/qcom_glink_native.c 			qcom_glink_receive_version(glink, param1, param2);
glink            1542 drivers/rpmsg/qcom_glink_native.c 			qcom_glink_receive_version_ack(glink, param1, param2);
glink            1545 drivers/rpmsg/qcom_glink_native.c 			qcom_glink_rx_open(glink, param1, msg->data);
glink            1548 drivers/rpmsg/qcom_glink_native.c 			qcom_glink_rx_close(glink, param1);
glink            1551 drivers/rpmsg/qcom_glink_native.c 			qcom_glink_rx_close_ack(glink, param1);
glink            1554 drivers/rpmsg/qcom_glink_native.c 			qcom_glink_handle_intent_req(glink, param1, param2);
glink            1565 drivers/rpmsg/qcom_glink_native.c static void qcom_glink_cancel_rx_work(struct qcom_glink *glink)
glink            1571 drivers/rpmsg/qcom_glink_native.c 	cancel_work_sync(&glink->rx_work);
glink            1573 drivers/rpmsg/qcom_glink_native.c 	list_for_each_entry_safe(dcmd, tmp, &glink->rx_queue, node)
glink            1585 drivers/rpmsg/qcom_glink_native.c 	struct qcom_glink *glink;
glink            1587 drivers/rpmsg/qcom_glink_native.c 	glink = devm_kzalloc(dev, sizeof(*glink), GFP_KERNEL);
glink            1588 drivers/rpmsg/qcom_glink_native.c 	if (!glink)
glink            1591 drivers/rpmsg/qcom_glink_native.c 	glink->dev = dev;
glink            1592 drivers/rpmsg/qcom_glink_native.c 	glink->tx_pipe = tx;
glink            1593 drivers/rpmsg/qcom_glink_native.c 	glink->rx_pipe = rx;
glink            1595 drivers/rpmsg/qcom_glink_native.c 	glink->features = features;
glink            1596 drivers/rpmsg/qcom_glink_native.c 	glink->intentless = intentless;
glink            1598 drivers/rpmsg/qcom_glink_native.c 	spin_lock_init(&glink->tx_lock);
glink            1599 drivers/rpmsg/qcom_glink_native.c 	spin_lock_init(&glink->rx_lock);
glink            1600 drivers/rpmsg/qcom_glink_native.c 	INIT_LIST_HEAD(&glink->rx_queue);
glink            1601 drivers/rpmsg/qcom_glink_native.c 	INIT_WORK(&glink->rx_work, qcom_glink_work);
glink            1603 drivers/rpmsg/qcom_glink_native.c 	spin_lock_init(&glink->idr_lock);
glink            1604 drivers/rpmsg/qcom_glink_native.c 	idr_init(&glink->lcids);
glink            1605 drivers/rpmsg/qcom_glink_native.c 	idr_init(&glink->rcids);
glink            1607 drivers/rpmsg/qcom_glink_native.c 	ret = of_property_read_string(dev->of_node, "label", &glink->name);
glink            1609 drivers/rpmsg/qcom_glink_native.c 		glink->name = dev->of_node->name;
glink            1611 drivers/rpmsg/qcom_glink_native.c 	glink->mbox_client.dev = dev;
glink            1612 drivers/rpmsg/qcom_glink_native.c 	glink->mbox_client.knows_txdone = true;
glink            1613 drivers/rpmsg/qcom_glink_native.c 	glink->mbox_chan = mbox_request_channel(&glink->mbox_client, 0);
glink            1614 drivers/rpmsg/qcom_glink_native.c 	if (IS_ERR(glink->mbox_chan)) {
glink            1615 drivers/rpmsg/qcom_glink_native.c 		if (PTR_ERR(glink->mbox_chan) != -EPROBE_DEFER)
glink            1617 drivers/rpmsg/qcom_glink_native.c 		return ERR_CAST(glink->mbox_chan);
glink            1624 drivers/rpmsg/qcom_glink_native.c 			       "glink-native", glink);
glink            1630 drivers/rpmsg/qcom_glink_native.c 	glink->irq = irq;
glink            1632 drivers/rpmsg/qcom_glink_native.c 	ret = qcom_glink_send_version(glink);
glink            1636 drivers/rpmsg/qcom_glink_native.c 	return glink;
glink            1647 drivers/rpmsg/qcom_glink_native.c void qcom_glink_native_remove(struct qcom_glink *glink)
glink            1653 drivers/rpmsg/qcom_glink_native.c 	disable_irq(glink->irq);
glink            1654 drivers/rpmsg/qcom_glink_native.c 	qcom_glink_cancel_rx_work(glink);
glink            1656 drivers/rpmsg/qcom_glink_native.c 	ret = device_for_each_child(glink->dev, NULL, qcom_glink_remove_device);
glink            1658 drivers/rpmsg/qcom_glink_native.c 		dev_warn(glink->dev, "Can't remove GLINK devices: %d\n", ret);
glink            1661 drivers/rpmsg/qcom_glink_native.c 	idr_for_each_entry(&glink->lcids, channel, cid)
glink            1665 drivers/rpmsg/qcom_glink_native.c 	idr_for_each_entry(&glink->rcids, channel, cid)
glink            1668 drivers/rpmsg/qcom_glink_native.c 	idr_destroy(&glink->lcids);
glink            1669 drivers/rpmsg/qcom_glink_native.c 	idr_destroy(&glink->rcids);
glink            1670 drivers/rpmsg/qcom_glink_native.c 	mbox_free_channel(glink->mbox_chan);
glink            1674 drivers/rpmsg/qcom_glink_native.c void qcom_glink_native_unregister(struct qcom_glink *glink)
glink            1676 drivers/rpmsg/qcom_glink_native.c 	device_unregister(glink->dev);
glink              34 drivers/rpmsg/qcom_glink_native.h void qcom_glink_native_remove(struct qcom_glink *glink);
glink              36 drivers/rpmsg/qcom_glink_native.h void qcom_glink_native_unregister(struct qcom_glink *glink);
glink             259 drivers/rpmsg/qcom_glink_rpm.c 	struct qcom_glink *glink;
glink             300 drivers/rpmsg/qcom_glink_rpm.c 	glink = qcom_glink_native_probe(&pdev->dev,
glink             305 drivers/rpmsg/qcom_glink_rpm.c 	if (IS_ERR(glink))
glink             306 drivers/rpmsg/qcom_glink_rpm.c 		return PTR_ERR(glink);
glink             308 drivers/rpmsg/qcom_glink_rpm.c 	platform_set_drvdata(pdev, glink);
glink             315 drivers/rpmsg/qcom_glink_rpm.c 	struct qcom_glink *glink = platform_get_drvdata(pdev);
glink             317 drivers/rpmsg/qcom_glink_rpm.c 	qcom_glink_native_remove(glink);
glink             190 drivers/rpmsg/qcom_glink_smem.c 	struct qcom_glink *glink;
glink             279 drivers/rpmsg/qcom_glink_smem.c 	glink = qcom_glink_native_probe(dev,
glink             283 drivers/rpmsg/qcom_glink_smem.c 	if (IS_ERR(glink)) {
glink             284 drivers/rpmsg/qcom_glink_smem.c 		ret = PTR_ERR(glink);
glink             288 drivers/rpmsg/qcom_glink_smem.c 	return glink;
glink             297 drivers/rpmsg/qcom_glink_smem.c void qcom_glink_smem_unregister(struct qcom_glink *glink)
glink             299 drivers/rpmsg/qcom_glink_smem.c 	qcom_glink_native_remove(glink);
glink             300 drivers/rpmsg/qcom_glink_smem.c 	qcom_glink_native_unregister(glink);
glink              14 include/linux/rpmsg/qcom_glink.h void qcom_glink_smem_unregister(struct qcom_glink *glink);
glink              25 include/linux/rpmsg/qcom_glink.h static inline void qcom_glink_smem_unregister(struct qcom_glink *glink) {}