Lines Matching refs:hpdev
104 struct i2c_board_info *brdinfo = data->hpdev.brdinfo;
115 if (data->hpdev.nr < 0 && data->hpdev.action != MLXREG_HOTPLUG_DEVICE_NO_ACTION)
119 switch (data->hpdev.action) {
121 data->hpdev.adapter = i2c_get_adapter(data->hpdev.nr +
123 if (!data->hpdev.adapter) {
125 data->hpdev.nr + pdata->shift_nr);
133 client = i2c_new_client_device(data->hpdev.adapter,
137 brdinfo->type, data->hpdev.nr +
140 i2c_put_adapter(data->hpdev.adapter);
141 data->hpdev.adapter = NULL;
145 data->hpdev.client = client;
149 if (data->hpdev.brdinfo && data->hpdev.brdinfo->platform_data)
150 mlxreg_hotplug_pdata_export(data->hpdev.brdinfo->platform_data,
153 data->notifier = data->hpdev.notifier;
154 data->hpdev.pdev = platform_device_register_resndata(&priv->pdev->dev,
156 data->hpdev.nr,
159 if (IS_ERR(data->hpdev.pdev))
160 return PTR_ERR(data->hpdev.pdev);
167 if (data->hpdev.notifier && data->hpdev.notifier->user_handler)
168 return data->hpdev.notifier->user_handler(data->hpdev.notifier->handle, kind, 1);
180 if (data->hpdev.notifier && data->hpdev.notifier->user_handler)
181 data->hpdev.notifier->user_handler(data->hpdev.notifier->handle, kind, 0);
183 switch (data->hpdev.action) {
185 if (data->hpdev.client) {
186 i2c_unregister_device(data->hpdev.client);
187 data->hpdev.client = NULL;
190 if (data->hpdev.adapter) {
191 i2c_put_adapter(data->hpdev.adapter);
192 data->hpdev.adapter = NULL;
196 if (data->hpdev.pdev)
197 platform_device_unregister(data->hpdev.pdev);