i2c-gpio-custom: minor bugfix
authorGabor Juhos <juhosg@openwrt.org>
Wed, 13 Aug 2008 18:48:48 +0000 (18:48 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Wed, 13 Aug 2008 18:48:48 +0000 (18:48 +0000)
SVN-Revision: 12297

package/i2c-gpio-custom/Makefile
package/i2c-gpio-custom/src/i2c-gpio-custom.c

index fd448cec45d5a6b332460fc75f9c1f5a7208f902..43ce555965e641e5263ef9fda0372e7c3e9b8fa4 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=i2c-gpio-custom
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -18,7 +18,6 @@ define KernelPackage/i2c-gpio-custom
   TITLE:=Custom GPIO-based I2C device
   DEPENDS:=@GPIO_SUPPORT kmod-i2c-core +kmod-i2c-gpio
   FILES:=$(PKG_BUILD_DIR)/i2c-gpio-custom.$(LINUX_KMOD_SUFFIX)
-  AUTOLOAD:=$(call AutoLoad,58,i2c-gpio-custom)
   KCONFIG:=
 endef
 
index 36a8bf0e372ed832409b269d67e77f0a567065f8..76ab5f39cc261f6282954efb6a23ba7f9afa7921 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  Custom GPIO-based I2C driver
  *
- *  Copyright (C) 2007 Gabor Juhos <juhosg at openwrt.org>
+ *  Copyright (C) 2007-2008 Gabor Juhos <juhosg@openwrt.org>
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License version 2 as
@@ -51,7 +51,7 @@
 
 #define DRV_NAME       "i2c-gpio-custom"
 #define DRV_DESC       "Custom GPIO-based I2C driver"
-#define DRV_VERSION    "0.1.0"
+#define DRV_VERSION    "0.1.1"
 
 #define PFX            DRV_NAME ": "
 
@@ -96,7 +96,7 @@ static void i2c_gpio_custom_cleanup(void)
 
        for (i = 0; i < nr_devices; i++)
                if (devices[i])
-                       platform_device_unregister(devices[i]);
+                       platform_device_put(devices[i]);
 }
 
 static int __init i2c_gpio_custom_add_one(unsigned int id, unsigned int *params)
@@ -120,8 +120,6 @@ static int __init i2c_gpio_custom_add_one(unsigned int id, unsigned int *params)
                goto err;
        }
 
-       devices[nr_devices++] = pdev;
-
        pdata.sda_pin = params[BUS_PARAM_SDA];
        pdata.scl_pin = params[BUS_PARAM_SCL];
        pdata.udelay = params[BUS_PARAM_UDELAY];
@@ -132,14 +130,17 @@ static int __init i2c_gpio_custom_add_one(unsigned int id, unsigned int *params)
 
        err = platform_device_add_data(pdev, &pdata, sizeof(pdata));
        if (err)
-               goto err;
+               goto err_put;
 
-       err = platform_device_register(pdev);
+       err = platform_device_add(pdev);
        if (err)
-               goto err;
+               goto err_put;
 
+       devices[nr_devices++] = pdev;
        return 0;
 
+err_put:
+       platform_device_put(pdev);
 err:
        return err;
 }
@@ -192,6 +193,6 @@ subsys_initcall(i2c_gpio_custom_probe);
 #endif /* MODULE*/
 
 MODULE_LICENSE("GPL v2");
-MODULE_AUTHOR("Gabor Juhos <juhosg at openwrt.org >");
+MODULE_AUTHOR("Gabor Juhos <juhosg@openwrt.org >");
 MODULE_DESCRIPTION(DRV_DESC);
 MODULE_VERSION(DRV_VERSION);