diff options
Diffstat (limited to 'drivers/staging/go7007/go7007-driver.c')
-rw-r--r-- | drivers/staging/go7007/go7007-driver.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/staging/go7007/go7007-driver.c b/drivers/staging/go7007/go7007-driver.c index f47c0ce2849..77b1e769ac9 100644 --- a/drivers/staging/go7007/go7007-driver.c +++ b/drivers/staging/go7007/go7007-driver.c | |||
@@ -191,8 +191,10 @@ int go7007_reset_encoder(struct go7007 *go) | |||
191 | /* | 191 | /* |
192 | * Attempt to instantiate an I2C client by ID, probably loading a module. | 192 | * Attempt to instantiate an I2C client by ID, probably loading a module. |
193 | */ | 193 | */ |
194 | static int init_i2c_module(struct i2c_adapter *adapter, int id, int addr) | 194 | static int init_i2c_module(struct i2c_adapter *adapter, const char *type, |
195 | int id, int addr) | ||
195 | { | 196 | { |
197 | struct i2c_board_info info; | ||
196 | char *modname; | 198 | char *modname; |
197 | 199 | ||
198 | switch (id) { | 200 | switch (id) { |
@@ -226,7 +228,11 @@ static int init_i2c_module(struct i2c_adapter *adapter, int id, int addr) | |||
226 | } | 228 | } |
227 | if (modname != NULL) | 229 | if (modname != NULL) |
228 | request_module(modname); | 230 | request_module(modname); |
229 | if (wis_i2c_probe_device(adapter, id, addr) == 1) | 231 | |
232 | memset(&info, 0, sizeof(struct i2c_board_info)); | ||
233 | info.addr = addr; | ||
234 | strlcpy(info.type, type, I2C_NAME_SIZE); | ||
235 | if (!i2c_new_device(adapter, &info)) | ||
230 | return 0; | 236 | return 0; |
231 | if (modname != NULL) | 237 | if (modname != NULL) |
232 | printk(KERN_INFO | 238 | printk(KERN_INFO |
@@ -266,6 +272,7 @@ int go7007_register_encoder(struct go7007 *go) | |||
266 | if (go->i2c_adapter_online) { | 272 | if (go->i2c_adapter_online) { |
267 | for (i = 0; i < go->board_info->num_i2c_devs; ++i) | 273 | for (i = 0; i < go->board_info->num_i2c_devs; ++i) |
268 | init_i2c_module(&go->i2c_adapter, | 274 | init_i2c_module(&go->i2c_adapter, |
275 | go->board_info->i2c_devs[i].type, | ||
269 | go->board_info->i2c_devs[i].id, | 276 | go->board_info->i2c_devs[i].id, |
270 | go->board_info->i2c_devs[i].addr); | 277 | go->board_info->i2c_devs[i].addr); |
271 | if (go->board_id == GO7007_BOARDID_ADLINK_MPG24) | 278 | if (go->board_id == GO7007_BOARDID_ADLINK_MPG24) |