diff options
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/dvb/dvb-core/dvb_frontend.c | 10 | ||||
-rw-r--r-- | drivers/media/dvb/dvb-core/dvb_frontend.h | 1 |
2 files changed, 11 insertions, 0 deletions
diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c index 3dd5dbafb330..53304e6991ac 100644 --- a/drivers/media/dvb/dvb-core/dvb_frontend.c +++ b/drivers/media/dvb/dvb-core/dvb_frontend.c | |||
@@ -1014,6 +1014,13 @@ static int dvb_frontend_open(struct inode *inode, struct file *file) | |||
1014 | if ((ret = dvb_generic_open (inode, file)) < 0) | 1014 | if ((ret = dvb_generic_open (inode, file)) < 0) |
1015 | return ret; | 1015 | return ret; |
1016 | 1016 | ||
1017 | if (fe->ops.ts_bus_ctrl) { | ||
1018 | if ((ret = fe->ops.ts_bus_ctrl (fe, 1)) < 0) { | ||
1019 | dvb_generic_release (inode, file); | ||
1020 | return ret; | ||
1021 | } | ||
1022 | } | ||
1023 | |||
1017 | if ((file->f_flags & O_ACCMODE) != O_RDONLY) { | 1024 | if ((file->f_flags & O_ACCMODE) != O_RDONLY) { |
1018 | 1025 | ||
1019 | /* normal tune mode when opened R/W */ | 1026 | /* normal tune mode when opened R/W */ |
@@ -1043,6 +1050,9 @@ static int dvb_frontend_release(struct inode *inode, struct file *file) | |||
1043 | if ((file->f_flags & O_ACCMODE) != O_RDONLY) | 1050 | if ((file->f_flags & O_ACCMODE) != O_RDONLY) |
1044 | fepriv->release_jiffies = jiffies; | 1051 | fepriv->release_jiffies = jiffies; |
1045 | 1052 | ||
1053 | if (fe->ops.ts_bus_ctrl) | ||
1054 | fe->ops.ts_bus_ctrl (fe, 0); | ||
1055 | |||
1046 | return dvb_generic_release (inode, file); | 1056 | return dvb_generic_release (inode, file); |
1047 | } | 1057 | } |
1048 | 1058 | ||
diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.h b/drivers/media/dvb/dvb-core/dvb_frontend.h index e5d5028b3694..f233d78bc364 100644 --- a/drivers/media/dvb/dvb-core/dvb_frontend.h +++ b/drivers/media/dvb/dvb-core/dvb_frontend.h | |||
@@ -129,6 +129,7 @@ struct dvb_frontend_ops { | |||
129 | int (*enable_high_lnb_voltage)(struct dvb_frontend* fe, long arg); | 129 | int (*enable_high_lnb_voltage)(struct dvb_frontend* fe, long arg); |
130 | int (*dishnetwork_send_legacy_command)(struct dvb_frontend* fe, unsigned long cmd); | 130 | int (*dishnetwork_send_legacy_command)(struct dvb_frontend* fe, unsigned long cmd); |
131 | int (*i2c_gate_ctrl)(struct dvb_frontend* fe, int enable); | 131 | int (*i2c_gate_ctrl)(struct dvb_frontend* fe, int enable); |
132 | int (*ts_bus_ctrl)(struct dvb_frontend* fe, int acquire); | ||
132 | 133 | ||
133 | struct dvb_tuner_ops tuner_ops; | 134 | struct dvb_tuner_ops tuner_ops; |
134 | }; | 135 | }; |