config VIDEO_ATOMISP_OV2722
        tristate "OVT ov2722 sensor support"
+       depends on ACPI
        depends on I2C && VIDEO_V4L2
        ---help---
         This is a Video4Linux2 sensor-level driver for the OVT
 
 config VIDEO_ATOMISP_GC2235
        tristate "Galaxy gc2235 sensor support"
+       depends on ACPI
        depends on I2C && VIDEO_V4L2
        ---help---
         This is a Video4Linux2 sensor-level driver for the OVT
 
 config VIDEO_ATOMISP_OV8858
        tristate "Omnivision ov8858 sensor support"
+       depends on ACPI
        depends on I2C && VIDEO_V4L2 && VIDEO_ATOMISP
        ---help---
         This is a Video4Linux2 sensor-level driver for the Omnivision
 
 config VIDEO_ATOMISP_MT9M114
        tristate "Aptina mt9m114 sensor support"
+       depends on ACPI
        depends on I2C && VIDEO_V4L2
        ---help---
         This is a Video4Linux2 sensor-level driver for the Micron
 
 config VIDEO_ATOMISP_GC0310
        tristate "GC0310 sensor support"
+       depends on ACPI
        depends on I2C && VIDEO_V4L2
        ---help---
          This is a Video4Linux2 sensor-level driver for the Galaxycore
         
 config VIDEO_ATOMISP_OV2680
        tristate "Omnivision OV2680 sensor support"
+       depends on ACPI
        depends on I2C && VIDEO_V4L2
        ---help---
         This is a Video4Linux2 sensor-level driver for the Omnivision
 
 config VIDEO_ATOMISP_LM3554
        tristate "LM3554 flash light driver"
+       depends on ACPI
        depends on VIDEO_V4L2 && I2C
        ---help---
         This is a Video4Linux2 sub-dev driver for the LM3554
 
         To compile this driver as a module, choose M here: the
         module will be called lm3554
-
-
 
        return 0;
 }
 
-static int gc0310_probe(struct i2c_client *client,
-                       const struct i2c_device_id *id)
+static int gc0310_probe(struct i2c_client *client)
 {
        struct gc0310_device *dev;
        int ret;
        {"INT0310"},
        {},
 };
-
 MODULE_DEVICE_TABLE(acpi, gc0310_acpi_match);
 
-MODULE_DEVICE_TABLE(i2c, gc0310_id);
 static struct i2c_driver gc0310_driver = {
        .driver = {
-               .name = GC0310_NAME,
-               .acpi_match_table = ACPI_PTR(gc0310_acpi_match),
+               .name = "gc0310",
+               .acpi_match_table = gc0310_acpi_match,
        },
-       .probe = gc0310_probe,
+       .probe_new = gc0310_probe,
        .remove = gc0310_remove,
-       .id_table = gc0310_id,
 };
 module_i2c_driver(gc0310_driver);
 
 
        return 0;
 }
 
-static int gc2235_probe(struct i2c_client *client,
-                       const struct i2c_device_id *id)
+static int gc2235_probe(struct i2c_client *client)
 {
        struct gc2235_device *dev;
        void *gcpdev;
        { "INT33F8" },
        {},
 };
-
 MODULE_DEVICE_TABLE(acpi, gc2235_acpi_match);
-MODULE_DEVICE_TABLE(i2c, gc2235_id);
+
 static struct i2c_driver gc2235_driver = {
        .driver = {
-               .name = GC2235_NAME,
-               .acpi_match_table = ACPI_PTR(gc2235_acpi_match),
+               .name = "gc2235",
+               .acpi_match_table = gc2235_acpi_match,
        },
-       .probe = gc2235_probe,
+       .probe_new = gc2235_probe,
        .remove = gc2235_remove,
-       .id_table = gc2235_id,
 };
 module_i2c_driver(gc2235_driver);
 
 
        return &platform_data;
 }
 
-static int lm3554_probe(struct i2c_client *client,
-                                 const struct i2c_device_id *id)
+static int lm3554_probe(struct i2c_client *client)
 {
        int err = 0;
        struct lm3554 *flash;
        return ret;
 }
 
-static const struct i2c_device_id lm3554_id[] = {
-       {LM3554_NAME, 0},
-       {},
-};
-
-MODULE_DEVICE_TABLE(i2c, lm3554_id);
-
 static const struct dev_pm_ops lm3554_pm_ops = {
        .suspend = lm3554_suspend,
        .resume = lm3554_resume,
        { "INTCF1C" },
        {},
 };
-
 MODULE_DEVICE_TABLE(acpi, lm3554_acpi_match);
 
 static struct i2c_driver lm3554_driver = {
        .driver = {
-               .name = LM3554_NAME,
+               .name = "lm3554",
                .pm   = &lm3554_pm_ops,
-               .acpi_match_table = ACPI_PTR(lm3554_acpi_match),
+               .acpi_match_table = lm3554_acpi_match,
        },
-       .probe = lm3554_probe,
+       .probe_new = lm3554_probe,
        .remove = lm3554_remove,
-       .id_table = lm3554_id,
 };
 module_i2c_driver(lm3554_driver);
 
 
        return 0;
 }
 
-static int mt9m114_probe(struct i2c_client *client,
-                      const struct i2c_device_id *id)
+static int mt9m114_probe(struct i2c_client *client)
 {
        struct mt9m114_device *dev;
        int ret = 0;
        return 0;
 }
 
-MODULE_DEVICE_TABLE(i2c, mt9m114_id);
-
 static const struct acpi_device_id mt9m114_acpi_match[] = {
        { "INT33F0" },
        { "CRMT1040" },
        {},
 };
-
 MODULE_DEVICE_TABLE(acpi, mt9m114_acpi_match);
 
 static struct i2c_driver mt9m114_driver = {
        .driver = {
                .name = "mt9m114",
-               .acpi_match_table = ACPI_PTR(mt9m114_acpi_match),
+               .acpi_match_table = mt9m114_acpi_match,
        },
-       .probe = mt9m114_probe,
+       .probe_new = mt9m114_probe,
        .remove = mt9m114_remove,
-       .id_table = mt9m114_id,
 };
 module_i2c_driver(mt9m114_driver);
 
 
        return 0;
 }
 
-static int ov2680_probe(struct i2c_client *client,
-                       const struct i2c_device_id *id)
+static int ov2680_probe(struct i2c_client *client)
 {
        struct ov2680_device *dev;
        int ret;
 };
 MODULE_DEVICE_TABLE(acpi, ov2680_acpi_match);
 
-
-MODULE_DEVICE_TABLE(i2c, ov2680_id);
 static struct i2c_driver ov2680_driver = {
        .driver = {
-               .name = OV2680_NAME,
-               .acpi_match_table = ACPI_PTR(ov2680_acpi_match),
-
+               .name = "ov2680",
+               .acpi_match_table = ov2680_acpi_match,
        },
-       .probe = ov2680_probe,
+       .probe_new = ov2680_probe,
        .remove = ov2680_remove,
-       .id_table = ov2680_id,
 };
 module_i2c_driver(ov2680_driver);
 
 MODULE_AUTHOR("Jacky Wang <Jacky_wang@ovt.com>");
 MODULE_DESCRIPTION("A low-level driver for OmniVision 2680 sensors");
 MODULE_LICENSE("GPL");
-
 
        return 0;
 }
 
-static int ov2722_probe(struct i2c_client *client,
-                       const struct i2c_device_id *id)
+static int ov2722_probe(struct i2c_client *client)
 {
        struct ov2722_device *dev;
        void *ovpdev;
        return ret;
 }
 
-MODULE_DEVICE_TABLE(i2c, ov2722_id);
-
 static const struct acpi_device_id ov2722_acpi_match[] = {
        { "INT33FB" },
        {},
 };
-
 MODULE_DEVICE_TABLE(acpi, ov2722_acpi_match);
 
 static struct i2c_driver ov2722_driver = {
        .driver = {
-               .name = OV2722_NAME,
-               .acpi_match_table = ACPI_PTR(ov2722_acpi_match),
+               .name = "ov2722",
+               .acpi_match_table = ov2722_acpi_match,
        },
-       .probe = ov2722_probe,
+       .probe_new = ov2722_probe,
        .remove = ov2722_remove,
-       .id_table = ov2722_id,
 };
 module_i2c_driver(ov2722_driver);
 
 
 
 #include "../include/linux/atomisp_platform.h"
 
-#define GC0310_NAME            "gc0310"
-
 /* Defines for register writes and register array processing */
 #define I2C_MSG_LENGTH         1
 #define I2C_RETRY_COUNT                5
        struct gc0310_write_buffer buffer;
 };
 
-static const struct i2c_device_id gc0310_id[] = {
-       {GC0310_NAME, 0},
-       {}
-};
-
 /*
  * Register settings for various resolution
  */
 
 
 #include "../include/linux/atomisp_platform.h"
 
-#define GC2235_NAME            "gc2235"
-
 /* Defines for register writes and register array processing */
 #define I2C_MSG_LENGTH         0x2
 #define I2C_RETRY_COUNT                5
        struct gc2235_write_buffer buffer;
 };
 
-static const struct i2c_device_id gc2235_id[] = {
-       {GC2235_NAME, 0},
-       {}
-};
-
 static struct gc2235_reg const gc2235_stream_on[] = {
        { GC2235_8BIT, 0xfe, 0x03}, /* switch to P3 */
        { GC2235_8BIT, 0x10, 0x91}, /* start mipi */
 
 };
 #define N_RES (ARRAY_SIZE(mt9m114_res))
 
-static const struct i2c_device_id mt9m114_id[] = {
-       {"mt9m114", 0},
-       {}
-};
-
 static struct misensor_reg const mt9m114_exitstandby[] = {
        {MISENSOR_16BIT,  0x098E, 0xDC00},
        /* exit-standby */
 
 
 #include "../include/linux/atomisp_platform.h"
 
-#define OV2680_NAME            "ov2680"
-#define OV2680B_NAME   "ov2680b"
-#define OV2680F_NAME   "ov2680f"
-
 /* Defines for register writes and register array processing */
 #define I2C_MSG_LENGTH         0x2
 #define I2C_RETRY_COUNT                5
                struct ov2680_write_buffer buffer;
        };
 
-       static const struct i2c_device_id ov2680_id[] = {
-               {OV2680B_NAME, 0},
-               {OV2680F_NAME, 0},
-               {}
-       };
-
        static struct ov2680_reg const ov2680_global_setting[] = {
            {OV2680_8BIT, 0x0103, 0x01},
            {OV2680_8BIT, 0x3002, 0x00},
 
 
 #include "../include/linux/atomisp_platform.h"
 
-#define OV2722_NAME            "ov2722"
-
 #define OV2722_POWER_UP_RETRY_NUM 5
 
 /* Defines for register writes and register array processing */
        struct ov2722_write_buffer buffer;
 };
 
-static const struct i2c_device_id ov2722_id[] = {
-       {OV2722_NAME, 0},
-       {}
-};
-
 /*
  * Register settings for various resolution
  */
 
 config VIDEO_ATOMISP_OV5693
        tristate "Omnivision ov5693 sensor support"
+       depends on ACPI
        depends on I2C && VIDEO_V4L2
        ---help---
         This is a Video4Linux2 sensor-level driver for the Micron
         ov5693 is video camera sensor.
 
         It currently only works with the atomisp driver.
-
 
        return 0;
 }
 
-static int ov5693_probe(struct i2c_client *client,
-                       const struct i2c_device_id *id)
+static int ov5693_probe(struct i2c_client *client)
 {
        struct ov5693_device *dev;
        int i2c;
        return ret;
 }
 
-MODULE_DEVICE_TABLE(i2c, ov5693_id);
-
 static const struct acpi_device_id ov5693_acpi_match[] = {
        {"INT33BE"},
        {},
 
 static struct i2c_driver ov5693_driver = {
        .driver = {
-               .name = OV5693_NAME,
-               .acpi_match_table = ACPI_PTR(ov5693_acpi_match),
+               .name = "ov5693",
+               .acpi_match_table = ov5693_acpi_match,
        },
-       .probe = ov5693_probe,
+       .probe_new = ov5693_probe,
        .remove = ov5693_remove,
-       .id_table = ov5693_id,
 };
 module_i2c_driver(ov5693_driver);
 
 
 
 #include "../../include/linux/atomisp_platform.h"
 
-#define OV5693_NAME            "ov5693"
-
 #define OV5693_POWER_UP_RETRY_NUM 5
 
 /* Defines for register writes and register array processing */
        struct ov5693_write_buffer buffer;
 };
 
-static const struct i2c_device_id ov5693_id[] = {
-       {OV5693_NAME, 0},
-       {}
-};
-
 static struct ov5693_reg const ov5693_global_setting[] = {
        {OV5693_8BIT, 0x0103, 0x01},
        {OV5693_8BIT, 0x3001, 0x0a},
 
        }
 };
 
-static int ov8858_probe(struct i2c_client *client,
-                       const struct i2c_device_id *id)
+static int ov8858_probe(struct i2c_client *client)
 {
        struct ov8858_device *dev;
        unsigned int i;
 
        mutex_init(&dev->input_lock);
 
-       if (id)
-               dev->i2c_id = id->driver_data;
        dev->fmt_idx = 0;
        dev->sensor_id = OV_ID_DEFAULT;
        dev->vcm_driver = &ov8858_vcms[OV8858_ID_DEFAULT];
        return ret;
 }
 
-static const struct i2c_device_id ov8858_id[] = {
-       {OV8858_NAME, 0},
-       {}
-};
-
-MODULE_DEVICE_TABLE(i2c, ov8858_id);
-
 static const struct acpi_device_id ov8858_acpi_match[] = {
        {"INT3477"},
        {},
 };
+MODULE_DEVICE_TABLE(acpi, ov8858_acpi_match);
 
 static struct i2c_driver ov8858_driver = {
        .driver = {
-               .name = OV8858_NAME,
-               .acpi_match_table = ACPI_PTR(ov8858_acpi_match),
+               .name = "ov8858",
+               .acpi_match_table = ov8858_acpi_match,
        },
-       .probe = ov8858_probe,
+       .probe_new = ov8858_probe,
        .remove = ov8858_remove,
-       .id_table = ov8858_id,
 };
 module_i2c_driver(ov8858_driver);
 
 
 
 #define OV_SUBDEV_PREFIX                       "ov"
 #define OV_ID_DEFAULT                          0x0000
-#define        OV8858_NAME                             "ov8858"
 #define OV8858_CHIP_ID                         0x8858
 
 #define OV8858_LONG_EXPO                       0x3500
 
 
 #define OV_SUBDEV_PREFIX                       "ov"
 #define OV_ID_DEFAULT                          0x0000
-#define        OV8858_NAME                             "ov8858"
 #define OV8858_CHIP_ID                         0x8858
 
 #define OV8858_LONG_EXPO                       0x3500
 
 #include <linux/videodev2.h>
 #include <media/v4l2-subdev.h>
 
-#define LM3554_NAME    "lm3554"
 #define LM3554_ID      3554
 
 #define        v4l2_queryctrl_entry_integer(_id, _name,\