staging: vc04_services: vchiq_arm: Register vchiq_bus_type
authorUmang Jain <umang.jain@ideasonboard.com>
Sat, 23 Sep 2023 14:31:58 +0000 (20:01 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Oct 2023 08:04:45 +0000 (10:04 +0200)
Register the vchiq_bus_type bus with the vchiq interface.
The bcm2835-camera and bcm2835_audio will be registered to this bus type
going ahead.

Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Link: https://lore.kernel.org/r/20230923143200.268063-5-umang.jain@ideasonboard.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c

index aa2313f3bcab8c68479c34336cfb0c068a2fd18f..9388859b9b56a580c97c5c350882af3b78935812 100644 (file)
@@ -12,6 +12,7 @@
 #include <linux/cdev.h>
 #include <linux/fs.h>
 #include <linux/device.h>
+#include <linux/device/bus.h>
 #include <linux/mm.h>
 #include <linux/highmem.h>
 #include <linux/pagemap.h>
@@ -33,6 +34,7 @@
 #include "vchiq_core.h"
 #include "vchiq_ioctl.h"
 #include "vchiq_arm.h"
+#include "vchiq_bus.h"
 #include "vchiq_debugfs.h"
 #include "vchiq_connected.h"
 #include "vchiq_pagelist.h"
@@ -1870,9 +1872,17 @@ static int __init vchiq_driver_init(void)
 {
        int ret;
 
+       ret = bus_register(&vchiq_bus_type);
+       if (ret) {
+               pr_err("Failed to register %s\n", vchiq_bus_type.name);
+               return ret;
+       }
+
        ret = platform_driver_register(&vchiq_driver);
-       if (ret)
+       if (ret) {
                pr_err("Failed to register vchiq driver\n");
+               bus_unregister(&vchiq_bus_type);
+       }
 
        return ret;
 }
@@ -1880,6 +1890,7 @@ module_init(vchiq_driver_init);
 
 static void __exit vchiq_driver_exit(void)
 {
+       bus_unregister(&vchiq_bus_type);
        platform_driver_unregister(&vchiq_driver);
 }
 module_exit(vchiq_driver_exit);