pr_debug("registering %s\n", client->dev.bus_id);
dev_dbg(&adapter->dev, "client [%s] registered with bus id %s\n", client->name, client->dev.bus_id);
int i2c_attach_client(struct i2c_client *client){	struct i2c_adapter *adapter = client->adapter;	down(&adapter->clist_lock);	if (__i2c_check_addr(client->adapter, client->addr)) {		up(&adapter->clist_lock);		return -EBUSY;	}	list_add_tail(&client->list,&adapter->clients);	up(&adapter->clist_lock);		if (adapter->client_register)  {		if (adapter->client_register(client))  {			dev_warn(&adapter->dev, "warning: client_register "				"seems to have failed for client %02x\n",				client->addr);		}	}	dev_dbg(&adapter->dev, "client [%s] registered to adapter\n",		client->name);	if (client->flags & I2C_CLIENT_ALLOW_USE)		client->usage_count = 0;	client->dev.parent = &client->adapter->dev;	client->dev.driver = &client->driver->driver;	client->dev.bus = &i2c_bus_type;	client->dev.release = &i2c_client_release;		snprintf(&client->dev.bus_id[0], sizeof(client->dev.bus_id),		"%d-%04x", i2c_adapter_id(adapter), client->addr);	pr_debug("registering %s\n", client->dev.bus_id);	device_register(&client->dev);	device_create_file(&client->dev, &dev_attr_client_name);		return 0;}