1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- 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);
- }
-
|