mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 14:34:27 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			81 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 7fa07e9f8c88a5a628b9ca8a843d3490a59fb9cb Mon Sep 17 00:00:00 2001
 | 
						|
From: android <trevd1234@gmail.com>
 | 
						|
Date: Mon, 25 Aug 2014 13:18:21 +0100
 | 
						|
Subject: [PATCH 111/114] BCM2708_VCIO : Add automatic creation of device node
 | 
						|
 | 
						|
---
 | 
						|
 arch/arm/mach-bcm2708/vcio.c | 12 +++++++++++-
 | 
						|
 arch/arm/mach-bcm2709/vcio.c | 12 +++++++++++-
 | 
						|
 2 files changed, 22 insertions(+), 2 deletions(-)
 | 
						|
 | 
						|
--- a/arch/arm/mach-bcm2708/vcio.c
 | 
						|
+++ b/arch/arm/mach-bcm2708/vcio.c
 | 
						|
@@ -61,7 +61,7 @@
 | 
						|
 #define MBOX_DATA28_LSB(msg)		(((uint32_t)msg) >> 4)
 | 
						|
 
 | 
						|
 #define MBOX_MAGIC 0xd0d0c0de
 | 
						|
-
 | 
						|
+static struct class *vcio_class = NULL;
 | 
						|
 struct vc_mailbox {
 | 
						|
 	struct device *dev;	/* parent device */
 | 
						|
 	void __iomem *status;
 | 
						|
@@ -421,6 +421,13 @@ static int bcm_vcio_probe(struct platfor
 | 
						|
 			       "Failed registering the character device %d\n", ret);
 | 
						|
 			return ret;
 | 
						|
 		}
 | 
						|
+		vcio_class = class_create(THIS_MODULE, BCM_VCIO_DRIVER_NAME);
 | 
						|
+		if (IS_ERR(vcio_class)) {
 | 
						|
+		    ret = PTR_ERR(vcio_class);
 | 
						|
+		   return ret ;
 | 
						|
+		}
 | 
						|
+		device_create(vcio_class, NULL, MKDEV(MAJOR_NUM, 0), NULL,
 | 
						|
+                      "vcio");
 | 
						|
 	}
 | 
						|
 	return ret;
 | 
						|
 }
 | 
						|
@@ -462,6 +469,9 @@ static int __init bcm_mbox_init(void)
 | 
						|
 
 | 
						|
 static void __exit bcm_mbox_exit(void)
 | 
						|
 {
 | 
						|
+	device_destroy(vcio_class,MKDEV(MAJOR_NUM, 0));
 | 
						|
+	class_destroy(vcio_class);
 | 
						|
+	unregister_chrdev(MAJOR_NUM, DEVICE_FILE_NAME);
 | 
						|
 	platform_driver_unregister(&bcm_mbox_driver);
 | 
						|
 }
 | 
						|
 
 | 
						|
--- a/arch/arm/mach-bcm2709/vcio.c
 | 
						|
+++ b/arch/arm/mach-bcm2709/vcio.c
 | 
						|
@@ -61,7 +61,7 @@
 | 
						|
 #define MBOX_DATA28_LSB(msg)		(((uint32_t)msg) >> 4)
 | 
						|
 
 | 
						|
 #define MBOX_MAGIC 0xd0d0c0de
 | 
						|
-
 | 
						|
+static struct class *vcio_class = NULL;
 | 
						|
 struct vc_mailbox {
 | 
						|
 	struct device *dev;	/* parent device */
 | 
						|
 	void __iomem *status;
 | 
						|
@@ -421,6 +421,13 @@ static int bcm_vcio_probe(struct platfor
 | 
						|
 			       "Failed registering the character device %d\n", ret);
 | 
						|
 			return ret;
 | 
						|
 		}
 | 
						|
+		vcio_class = class_create(THIS_MODULE, BCM_VCIO_DRIVER_NAME);
 | 
						|
+		if (IS_ERR(vcio_class)) {
 | 
						|
+		    ret = PTR_ERR(vcio_class);
 | 
						|
+		   return ret ;
 | 
						|
+		}
 | 
						|
+		device_create(vcio_class, NULL, MKDEV(MAJOR_NUM, 0), NULL,
 | 
						|
+                      "vcio");
 | 
						|
 	}
 | 
						|
 	return ret;
 | 
						|
 }
 | 
						|
@@ -462,6 +469,9 @@ static int __init bcm_mbox_init(void)
 | 
						|
 
 | 
						|
 static void __exit bcm_mbox_exit(void)
 | 
						|
 {
 | 
						|
+	device_destroy(vcio_class,MKDEV(MAJOR_NUM, 0));
 | 
						|
+	class_destroy(vcio_class);
 | 
						|
+	unregister_chrdev(MAJOR_NUM, DEVICE_FILE_NAME);
 | 
						|
 	platform_driver_unregister(&bcm_mbox_driver);
 | 
						|
 }
 | 
						|
 
 |