DVB Update [PATCH 25/31] enable gate in a symmetric way

From: Manu Abraham
Date: Thu Sep 04 2008 - 16:31:59 EST


>From 14e80f303046a7750a6cfb2210bd8fe561f21a3a Mon Sep 17 00:00:00 2001
From: Manu Abraham <manu@xxxxxxxxxxx>
Date: Thu, 4 Sep 2008 14:36:16 +0200
Subject: [PATCH] DVB Optimization: enable gate in a
symmetric/disciplined way,
rather than implementing different ways leading to confusion.

This allows multiple gate_enable/disable's in the tuner read/write
functions, thereby lesser number of I/O operations throughout,
eventually leading to better results. As a side effect for the demods
that detect the STOP bit for auto closing, the auto closing of the
gate can be avoided, thereby a minimal gain in disabling the auto detect
feature as well. Improves readability on the device control.

From: Manu Abraham <abraham.manu@xxxxxxxxx>
Signed-off-by: Manu Abraham <manu@xxxxxxxxxxx>

dvb_frontend.c | 2 ++
1 file changed, 2 insertions(+)

>From 14e80f303046a7750a6cfb2210bd8fe561f21a3a Mon Sep 17 00:00:00 2001
From: Manu Abraham <manu@xxxxxxxxxxx>
Date: Thu, 4 Sep 2008 14:36:16 +0200
Subject: [PATCH] DVB Optimization: enable gate in a symmetric/disciplined way,
rather than implementing different ways leading to confusion.

This allows multiple gate_enable/disable's in the tuner read/write
functions, thereby lesser number of I/O operations throughout,
eventually leading to better results. As a side effect for the demods
that detect the STOP bit for auto closing, the auto closing of the
gate can be avoided, thereby a minimal gain in disabling the auto detect
feature as well. Improves readability on the device control.

From: Manu Abraham <abraham.manu@xxxxxxxxx>
Signed-off-by: Manu Abraham <manu@xxxxxxxxxxx>

diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c
index c54b12c..e2d929e 100644
--- a/drivers/media/dvb/dvb-core/dvb_frontend.c
+++ b/drivers/media/dvb/dvb-core/dvb_frontend.c
@@ -733,6 +733,8 @@ static void dvb_frontend_init(struct dvb_frontend *fe)
if (fe->ops.init)
fe->ops.init(fe);
if (fe->ops.tuner_ops.init) {
+ if (fe->ops.i2c_gate_ctrl)
+ fe->ops.i2c_gate_ctrl(fe, 1);
fe->ops.tuner_ops.init(fe);
if (fe->ops.i2c_gate_ctrl)
fe->ops.i2c_gate_ctrl(fe, 0);