Commit 20f868da authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull rpmsg updates from Bjorn Andersson:

 - Clean up the dev_pm_domain integration in rpmsg core. Correct module
   aliases for the rpmsg char driver.

 - Transition Qualcomm SMD and GLINK drivers to strscpy() and fix the
   regression in legacy code for acquiring outgoing interrupts using the
   non-mailbox based mechanism.

* tag 'rpmsg-v6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux:
  rpmsg: qcom_smd: Fix fallback to qcom,ipc parse
  rpmsg: Use strscpy() instead of strscpy_pad()
  rpmsg: core: Drop dev_pm_domain_detach() call
  rpmsg: char: Export alias for RPMSG ID rpmsg-raw from table
parents c35f902c 09390ed9
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1663,7 +1663,7 @@ static int qcom_glink_rx_open(struct qcom_glink *glink, unsigned int rcid,
		}

		rpdev->ept = &channel->ept;
		strscpy_pad(rpdev->id.name, name, RPMSG_NAME_SIZE);
		strscpy(rpdev->id.name, name);
		rpdev->src = RPMSG_ADDR_ANY;
		rpdev->dst = RPMSG_ADDR_ANY;
		rpdev->ops = &glink_device_ops;
+2 −2
Original line number Diff line number Diff line
@@ -1089,7 +1089,7 @@ static int qcom_smd_create_device(struct qcom_smd_channel *channel)

	/* Assign public information to the rpmsg_device */
	rpdev = &qsdev->rpdev;
	strscpy_pad(rpdev->id.name, channel->name, RPMSG_NAME_SIZE);
	strscpy(rpdev->id.name, channel->name);
	rpdev->src = RPMSG_ADDR_ANY;
	rpdev->dst = RPMSG_ADDR_ANY;

@@ -1368,7 +1368,7 @@ static int qcom_smd_parse_edge(struct device *dev,
	edge->mbox_client.knows_txdone = true;
	edge->mbox_chan = mbox_request_channel(&edge->mbox_client, 0);
	if (IS_ERR(edge->mbox_chan)) {
		if (PTR_ERR(edge->mbox_chan) != -ENODEV) {
		if (PTR_ERR(edge->mbox_chan) != -ENOENT) {
			ret = dev_err_probe(dev, PTR_ERR(edge->mbox_chan),
					    "failed to acquire IPC mailbox\n");
			goto put_node;
+2 −1
Original line number Diff line number Diff line
@@ -522,8 +522,10 @@ static void rpmsg_chrdev_remove(struct rpmsg_device *rpdev)

static struct rpmsg_device_id rpmsg_chrdev_id_table[] = {
	{ .name	= "rpmsg-raw" },
	{ .name	= "rpmsg_chrdev" },
	{ },
};
MODULE_DEVICE_TABLE(rpmsg, rpmsg_chrdev_id_table);

static struct rpmsg_driver rpmsg_chrdev_driver = {
	.probe = rpmsg_chrdev_probe,
@@ -565,6 +567,5 @@ static void rpmsg_chrdev_exit(void)
}
module_exit(rpmsg_chrdev_exit);

MODULE_ALIAS("rpmsg:rpmsg_chrdev");
MODULE_DESCRIPTION("RPMSG device interface");
MODULE_LICENSE("GPL v2");
+2 −3
Original line number Diff line number Diff line
@@ -479,7 +479,8 @@ static int rpmsg_dev_probe(struct device *dev)
	struct rpmsg_endpoint *ept = NULL;
	int err;

	err = dev_pm_domain_attach(dev, PD_FLAG_ATTACH_POWER_ON);
	err = dev_pm_domain_attach(dev, PD_FLAG_ATTACH_POWER_ON |
					PD_FLAG_DETACH_POWER_OFF);
	if (err)
		goto out;

@@ -538,8 +539,6 @@ static void rpmsg_dev_remove(struct device *dev)
	if (rpdrv->remove)
		rpdrv->remove(rpdev);

	dev_pm_domain_detach(dev, true);

	if (rpdev->ept)
		rpmsg_destroy_ept(rpdev->ept);
}