if ((ret = dvb_generic_open (inode, file)) < 0)
                return ret;
 
+       if (fe->ops.ts_bus_ctrl) {
+               if ((ret = fe->ops.ts_bus_ctrl (fe, 1)) < 0) {
+                       dvb_generic_release (inode, file);
+                       return ret;
+               }
+       }
+
        if ((file->f_flags & O_ACCMODE) != O_RDONLY) {
 
                /* normal tune mode when opened R/W */
        if ((file->f_flags & O_ACCMODE) != O_RDONLY)
                fepriv->release_jiffies = jiffies;
 
+       if (fe->ops.ts_bus_ctrl)
+               fe->ops.ts_bus_ctrl (fe, 0);
+
        return dvb_generic_release (inode, file);
 }
 
 
        int (*enable_high_lnb_voltage)(struct dvb_frontend* fe, long arg);
        int (*dishnetwork_send_legacy_command)(struct dvb_frontend* fe, unsigned long cmd);
        int (*i2c_gate_ctrl)(struct dvb_frontend* fe, int enable);
+       int (*ts_bus_ctrl)(struct dvb_frontend* fe, int acquire);
 
        struct dvb_tuner_ops tuner_ops;
 };