summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb/frontends/xc5000.h
diff options
context:
space:
mode:
Diffstat (limited to 'linux/drivers/media/dvb/frontends/xc5000.h')
-rw-r--r--linux/drivers/media/dvb/frontends/xc5000.h20
1 files changed, 15 insertions, 5 deletions
diff --git a/linux/drivers/media/dvb/frontends/xc5000.h b/linux/drivers/media/dvb/frontends/xc5000.h
index 941b31948..e0e84562a 100644
--- a/linux/drivers/media/dvb/frontends/xc5000.h
+++ b/linux/drivers/media/dvb/frontends/xc5000.h
@@ -28,13 +28,23 @@ struct dvb_frontend;
struct i2c_adapter;
struct xc5000_config {
- u8 i2c_address;
- u32 if_khz;
- int (*request_firmware)(struct dvb_frontend *fe,
- const struct firmware **fw, char *name);
- int (*tuner_reset)(struct dvb_frontend* fe);
+ u8 i2c_address;
+ u32 if_khz;
+
+ /* For each bridge framework, when it attaches either analog or digital,
+ * it has to store a reference back to its _core equivalent structure,
+ * so that it can service the hardware by steering gpio's etc.
+ * Each bridge implementation is different so cast priv accordingly.
+ * The xc5000 driver cares not for this value, other than ensuring
+ * it's passed back to a bridge during tuner_callback().
+ */
+ void *priv;
+ int (*tuner_callback) (void *priv, int command, int arg);
};
+/* xc5000 callback command */
+#define XC5000_TUNER_RESET 0
+
#if defined(CONFIG_DVB_TUNER_XC5000) || defined(CONFIG_DVB_TUNER_XC5000_MODULE)
extern struct dvb_frontend* xc5000_attach(struct dvb_frontend *fe,
struct i2c_adapter *i2c,