]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
rpmsg: Enable matching devices with drivers based on DT
authorBjorn Andersson <bjorn.andersson@linaro.org>
Thu, 1 Sep 2016 22:27:53 +0000 (15:27 -0700)
committerBjorn Andersson <bjorn.andersson@linaro.org>
Fri, 9 Sep 2016 05:02:40 +0000 (22:02 -0700)
Make it possible to match rpmsg devices based on device tree node, in
addition to the id table. In some of these cases the rpmsg driver would
not have a id_table, so make this optional.

Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
drivers/rpmsg/virtio_rpmsg_bus.c

index 4a4374cc6a59b3f152ac6ad3a31fd669bda6879c..495fa0a282d3619972d210080e48e8aeaac3ddc9 100644 (file)
@@ -33,6 +33,7 @@
 #include <linux/wait.h>
 #include <linux/rpmsg.h>
 #include <linux/mutex.h>
+#include <linux/of_device.h>
 
 /**
  * struct virtproc_info - virtual remote processor state
@@ -175,11 +176,12 @@ static int rpmsg_dev_match(struct device *dev, struct device_driver *drv)
        const struct rpmsg_device_id *ids = rpdrv->id_table;
        unsigned int i;
 
-       for (i = 0; ids[i].name[0]; i++)
-               if (rpmsg_id_match(rpdev, &ids[i]))
-                       return 1;
+       if (ids)
+               for (i = 0; ids[i].name[0]; i++)
+                       if (rpmsg_id_match(rpdev, &ids[i]))
+                               return 1;
 
-       return 0;
+       return of_driver_match_device(dev, drv);
 }
 
 static int rpmsg_uevent(struct device *dev, struct kobj_uevent_env *env)