[i2c] [patch 2.6.21-rc3-git +i2c 4/5] i2c board_info and i2c_new_device()

Jean Delvare khali at linux-fr.org
Fri Mar 16 08:17:39 CET 2007


Hi David,

On Thu, 15 Mar 2007 16:12:33 -0700, David Brownell wrote:
> Revised again to resolve that unlikely glitch in the case of
> a new-style driver already being hooked up to a device when
> it's being registered.
> (...)
> @@ -541,9 +616,15 @@ int i2c_attach_client(struct i2c_client 
>  	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;
> +
> +	if (client->driver) {
> +		client->dev.driver = &client->driver->driver;
> +
> +	if (client->driver && !is_newstyle_driver(client->driver))
> +		client->dev.release = i2c_client_release;
> +	} else
> +		client->dev.release = i2c_client_dev_release;
>  
>  	snprintf(&client->dev.bus_id[0], sizeof(client->dev.bus_id),
>  		"%d-%04x", i2c_adapter_id(adapter), client->addr);

Hmm, the strange indentation makes me wonder if the new code really
does what you meant it to do. I guess you want the same but _without_
the curly braces?

Thanks,
-- 
Jean Delvare



More information about the i2c mailing list