/*
  * core_lock protects i2c_adapter_idr, and guarantees that device detection,
- * deletion of detected devices, and attach_adapter calls are serialized
+ * deletion of detected devices are serialized
  */
 static DEFINE_MUTEX(core_lock);
 static DEFINE_IDR(i2c_adapter_idr);
        /* Detect supported devices on that bus, and instantiate them */
        i2c_detect(adap, driver);
 
-       /* Let legacy drivers scan this bus for matching devices */
-       if (driver->attach_adapter) {
-               dev_warn(&adap->dev, "%s: attach_adapter method is deprecated\n",
-                        driver->driver.name);
-               dev_warn(&adap->dev,
-                        "Please use another way to instantiate your i2c_client\n");
-               /* We ignore the return code; if it fails, too bad */
-               driver->attach_adapter(adap);
-       }
        return 0;
 }
 
 
 /**
  * struct i2c_driver - represent an I2C device driver
  * @class: What kind of i2c device we instantiate (for detect)
- * @attach_adapter: Callback for bus addition (deprecated)
  * @probe: Callback for device binding - soon to be deprecated
  * @probe_new: New callback for device binding
  * @remove: Callback for device unbinding
 struct i2c_driver {
        unsigned int class;
 
-       /* Notifies the driver that a new bus has appeared. You should avoid
-        * using this, it will be removed in a near future.
-        */
-       int (*attach_adapter)(struct i2c_adapter *) __deprecated;
-
        /* Standard driver model interfaces */
        int (*probe)(struct i2c_client *, const struct i2c_device_id *);
        int (*remove)(struct i2c_client *);