diff options
author | Hans Verkuil <hverkuil@xs4all.nl> | 2007-09-17 04:13:45 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-01-25 16:01:28 -0500 |
commit | a2e521e85c04af3511af3ea8971efb4ef8bde533 (patch) | |
tree | 3c729c9d2ba71de8620671c4d48ca28b5c2e304b /include/media | |
parent | 188f3457c21ac7869005021b56b4578293c644bb (diff) |
V4L/DVB (6466): v4l2-i2c-drv: first call remove, then detach client
The remove driver function expects that the client is still attached
to the driver, so do the detach after calling remove().
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'include/media')
-rw-r--r-- | include/media/v4l2-i2c-drv-legacy.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/include/media/v4l2-i2c-drv-legacy.h b/include/media/v4l2-i2c-drv-legacy.h index 433c984eefa5..241854229d6f 100644 --- a/include/media/v4l2-i2c-drv-legacy.h +++ b/include/media/v4l2-i2c-drv-legacy.h | |||
@@ -58,12 +58,14 @@ static int v4l2_i2c_drv_probe_legacy(struct i2c_adapter *adapter) | |||
58 | 58 | ||
59 | static int v4l2_i2c_drv_detach_legacy(struct i2c_client *client) | 59 | static int v4l2_i2c_drv_detach_legacy(struct i2c_client *client) |
60 | { | 60 | { |
61 | int err = i2c_detach_client(client); | 61 | int err; |
62 | 62 | ||
63 | if (err) | ||
64 | return err; | ||
65 | if (v4l2_i2c_data.remove) | 63 | if (v4l2_i2c_data.remove) |
66 | v4l2_i2c_data.remove(client); | 64 | v4l2_i2c_data.remove(client); |
65 | |||
66 | err = i2c_detach_client(client); | ||
67 | if (err) | ||
68 | return err; | ||
67 | kfree(client); | 69 | kfree(client); |
68 | 70 | ||
69 | return 0; | 71 | return 0; |