struct psmouse_smbus_dev *smbdev = data;
        unsigned short addr_list[] = { smbdev->board.addr, I2C_CLIENT_END };
        struct i2c_adapter *adapter;
+       struct i2c_client *client;
 
        adapter = i2c_verify_adapter(dev);
        if (!adapter)
        if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_HOST_NOTIFY))
                return 0;
 
-       smbdev->client = i2c_new_probed_device(adapter, &smbdev->board,
-                                              addr_list, NULL);
-       if (!smbdev->client)
+       client = i2c_new_scanned_device(adapter, &smbdev->board,
+                                       addr_list, NULL);
+       if (IS_ERR(client))
                return 0;
 
        /* We have our(?) device, stop iterating i2c bus. */
+       smbdev->client = client;
        return 1;
 }