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>
 #include <linux/wait.h>
 #include <linux/rpmsg.h>
 #include <linux/mutex.h>
+#include <linux/of_device.h>
 
 /**
  * struct virtproc_info - virtual remote processor state
        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)