Patch: Fix N770 brf6150 bluetooth driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This driver has the same problem as the cbus drivers - mismatch between platform_device and non-platform driver APIs.

Switching it to use platform_driver removes the random corruption and badness I was seeing on boot.

commit e6dce93304c6c692e187b95eaea227cfe3cb3317
Author: Andrew de Quincey <adq@xxxxxxxxxxxxx>
Date:   Sat May 23 18:37:25 2009 +0100

    Fix brf6150.c platform_device breakage
    
    This driver has the mismatch between platform_devices and non-platform drivers.
    Switch it to use platform_driver as well.
    
    Signed-off-by: Andrew de Quincey <adq@xxxxxxxxxxxxx>

diff --git a/drivers/bluetooth/brf6150.c b/drivers/bluetooth/brf6150.c
index 211fa5e..f29caf5 100644
--- a/drivers/bluetooth/brf6150.c
+++ b/drivers/bluetooth/brf6150.c
@@ -90,9 +90,10 @@ static struct platform_device brf6150_device = {
 	}
 };
 
-static struct device_driver brf6150_driver = {
-	.name		= BT_DRIVER,
-	.bus		= &platform_bus_type,
+static struct platform_driver brf6150_driver = {
+	.driver = {
+		.name		= BT_DRIVER,
+	}
 };
 
 static inline void brf6150_outb(struct brf6150_info *info, unsigned int offset, u8 val)
@@ -1002,7 +1003,7 @@ static int __init brf6150_init(void)
 		goto cleanup_irq;
 	}
 	/* Register the driver with LDM */
-	if (driver_register(&brf6150_driver)) {
+	if (platform_driver_register(&brf6150_driver)) {
 		printk(KERN_WARNING "failed to register brf6150 driver\n");
 		platform_device_unregister(&brf6150_device);
 		err = -ENODEV;
@@ -1012,7 +1013,7 @@ static int __init brf6150_init(void)
 	if (brf6150_register_hdev(info) < 0) {
 		printk(KERN_WARNING "failed to register brf6150 hci device\n");
 		platform_device_unregister(&brf6150_device);
-		driver_unregister(&brf6150_driver);
+		platform_driver_unregister(&brf6150_driver);
 		goto cleanup_irq;
 	}
 

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux