summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Krufky2008-04-22 19:42:00 +0200
committerMauro Carvalho Chehab2008-04-24 18:42:27 +0200
commitc1b4d92789ada9ea6b7f1156ede7022eab309eab (patch)
tree77f6f4e0d38019f111b80d80486d032b9333262c
parentV4L/DVB (7136): tda18271: use hybrid_tuner_request_state to manage tuner inst... (diff)
downloadkernel-qcow2-linux-c1b4d92789ada9ea6b7f1156ede7022eab309eab.tar.gz
kernel-qcow2-linux-c1b4d92789ada9ea6b7f1156ede7022eab309eab.tar.xz
kernel-qcow2-linux-c1b4d92789ada9ea6b7f1156ede7022eab309eab.zip
V4L/DVB (7137): tuner: return number of instances remaining after hybrid_tuner_release_state
Assign the number of instances remaining as the return value of hybrid_tuner_release_state, in case there is any extra cleanup that the tuner driver needs to do after an instance has been destroyed. Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r--drivers/media/video/tuner-i2c.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/media/video/tuner-i2c.h b/drivers/media/video/tuner-i2c.h
index 8ec5b41d459f..c53c327a487c 100644
--- a/drivers/media/video/tuner-i2c.h
+++ b/drivers/media/video/tuner-i2c.h
@@ -155,13 +155,17 @@ __fail: \
__ret; \
})
-#define hybrid_tuner_release_state(state) do { \
+#define hybrid_tuner_release_state(state) \
+({ \
+ int __ret; \
state->i2c_props.count--; \
+ __ret = state->i2c_props.count; \
if (!state->i2c_props.count) { \
__tuner_info(state->i2c_props, "destroying instance\n");\
list_del(&state->hybrid_tuner_instance_list); \
kfree(state); \
} \
-} while (0)
+ __ret; \
+})
#endif /* __TUNER_I2C_H__ */