Skip to content

Commit

Permalink
V4L/DVB (4665): Add frontend structure callback for bus acquisition.
Browse files Browse the repository at this point in the history
This patch enables generic bus arbitration callbacks enabling
dvbcore frontend_open and frontend_release to pass 'acquire'
and 'release' hardware messages back into the DVB bridge frameworks.
Frameworks like cx88 can then implement single bus multiple demod
card sharing features, which would prohibit two frontends from attempting
to use a single transport bus at the same time.

Signed-off-by: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
  • Loading branch information
Steven Toth authored and Mauro Carvalho Chehab committed Oct 3, 2006
1 parent 43e0602 commit ba7e6f3
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 0 deletions.
10 changes: 10 additions & 0 deletions drivers/media/dvb/dvb-core/dvb_frontend.c
Original file line number Diff line number Diff line change
Expand Up @@ -1014,6 +1014,13 @@ static int dvb_frontend_open(struct inode *inode, struct file *file)
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 */
Expand Down Expand Up @@ -1043,6 +1050,9 @@ static int dvb_frontend_release(struct inode *inode, struct file *file)
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);
}

Expand Down
1 change: 1 addition & 0 deletions drivers/media/dvb/dvb-core/dvb_frontend.h
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,7 @@ struct dvb_frontend_ops {
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;
};
Expand Down

0 comments on commit ba7e6f3

Please sign in to comment.