Commit e66128fa authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'rpmsg-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux

Pull rpmsg updates from Bjorn Andersson:
 "This makes core rpmsg_class const and ensures that the automatic
  module loading of the Qualcomm glink_ssr driver happens"

* tag 'rpmsg-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux:
  rpmsg: qcom_glink_ssr: fix module autoloading
  rpmsg: core: Make rpmsg_class constant
parents f0bae243 bcbab579
...@@ -154,6 +154,7 @@ static const struct rpmsg_device_id qcom_glink_ssr_match[] = { ...@@ -154,6 +154,7 @@ static const struct rpmsg_device_id qcom_glink_ssr_match[] = {
{ "glink_ssr" }, { "glink_ssr" },
{} {}
}; };
MODULE_DEVICE_TABLE(rpmsg, qcom_glink_ssr_match);
static struct rpmsg_driver qcom_glink_ssr_driver = { static struct rpmsg_driver qcom_glink_ssr_driver = {
.probe = qcom_glink_ssr_probe, .probe = qcom_glink_ssr_probe,
......
...@@ -423,7 +423,7 @@ static struct rpmsg_eptdev *rpmsg_chrdev_eptdev_alloc(struct rpmsg_device *rpdev ...@@ -423,7 +423,7 @@ static struct rpmsg_eptdev *rpmsg_chrdev_eptdev_alloc(struct rpmsg_device *rpdev
init_waitqueue_head(&eptdev->readq); init_waitqueue_head(&eptdev->readq);
device_initialize(dev); device_initialize(dev);
dev->class = rpmsg_class; dev->class = &rpmsg_class;
dev->parent = parent; dev->parent = parent;
dev->groups = rpmsg_eptdev_groups; dev->groups = rpmsg_eptdev_groups;
dev_set_drvdata(dev, eptdev); dev_set_drvdata(dev, eptdev);
......
...@@ -20,7 +20,9 @@ ...@@ -20,7 +20,9 @@
#include "rpmsg_internal.h" #include "rpmsg_internal.h"
struct class *rpmsg_class; const struct class rpmsg_class = {
.name = "rpmsg",
};
EXPORT_SYMBOL(rpmsg_class); EXPORT_SYMBOL(rpmsg_class);
/** /**
...@@ -715,16 +717,16 @@ static int __init rpmsg_init(void) ...@@ -715,16 +717,16 @@ static int __init rpmsg_init(void)
{ {
int ret; int ret;
rpmsg_class = class_create("rpmsg"); ret = class_register(&rpmsg_class);
if (IS_ERR(rpmsg_class)) { if (ret) {
pr_err("failed to create rpmsg class\n"); pr_err("failed to register rpmsg class\n");
return PTR_ERR(rpmsg_class); return ret;
} }
ret = bus_register(&rpmsg_bus); ret = bus_register(&rpmsg_bus);
if (ret) { if (ret) {
pr_err("failed to register rpmsg bus: %d\n", ret); pr_err("failed to register rpmsg bus: %d\n", ret);
class_destroy(rpmsg_class); class_destroy(&rpmsg_class);
} }
return ret; return ret;
} }
...@@ -733,7 +735,7 @@ postcore_initcall(rpmsg_init); ...@@ -733,7 +735,7 @@ postcore_initcall(rpmsg_init);
static void __exit rpmsg_fini(void) static void __exit rpmsg_fini(void)
{ {
bus_unregister(&rpmsg_bus); bus_unregister(&rpmsg_bus);
class_destroy(rpmsg_class); class_destroy(&rpmsg_class);
} }
module_exit(rpmsg_fini); module_exit(rpmsg_fini);
......
...@@ -150,7 +150,7 @@ static int rpmsg_ctrldev_probe(struct rpmsg_device *rpdev) ...@@ -150,7 +150,7 @@ static int rpmsg_ctrldev_probe(struct rpmsg_device *rpdev)
dev = &ctrldev->dev; dev = &ctrldev->dev;
device_initialize(dev); device_initialize(dev);
dev->parent = &rpdev->dev; dev->parent = &rpdev->dev;
dev->class = rpmsg_class; dev->class = &rpmsg_class;
mutex_init(&ctrldev->ctrl_lock); mutex_init(&ctrldev->ctrl_lock);
cdev_init(&ctrldev->cdev, &rpmsg_ctrldev_fops); cdev_init(&ctrldev->cdev, &rpmsg_ctrldev_fops);
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
#define to_rpmsg_device(d) container_of(d, struct rpmsg_device, dev) #define to_rpmsg_device(d) container_of(d, struct rpmsg_device, dev)
#define to_rpmsg_driver(d) container_of(d, struct rpmsg_driver, drv) #define to_rpmsg_driver(d) container_of(d, struct rpmsg_driver, drv)
extern struct class *rpmsg_class; extern const struct class rpmsg_class;
/** /**
* struct rpmsg_device_ops - indirection table for the rpmsg_device operations * struct rpmsg_device_ops - indirection table for the rpmsg_device operations
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment