summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h
diff options
context:
space:
mode:
authorMike Isely <isely@pobox.com>2008-02-03 15:40:46 -0600
committerMike Isely <isely@pobox.com>2008-02-03 15:40:46 -0600
commitec2bc3423e5768eb58b32bc15ebbba3d31f42c85 (patch)
treef52a059257e9f2882ad63066953cd01c77edfcc9 /linux/drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h
parentba1027b988b2df2c233e524b09f07d9584177721 (diff)
downloadmediapointer-dvb-s2-ec2bc3423e5768eb58b32bc15ebbba3d31f42c85.tar.gz
mediapointer-dvb-s2-ec2bc3423e5768eb58b32bc15ebbba3d31f42c85.tar.bz2
pvrusb2: Enhance core logic to also control digital streaming
From: Mike Isely <isely@pobox.com> This is a major pvrusb2 change. The driver core has an algorithm that is used to cleanly sequence the changes needed to enable / disable video streaming. The algorithm had originally been written for analog streaming, but when in digital mode the pipeline is considerably different - for example the mpeg encoder is not used. These changes to the core logic implement correct pipeline control when in digital mode. Knowing which pipeline to handle and how to handle it is completely driven by the current input selection. So, in theory, to perform digital stream now all one has to do is switch input to dtv and start streaming as usual. Well, in theory. The reality is that digital tuner and demod control are still not in the driver core yet so until that is present there's nothing to actually stream. Signed-off-by: Mike Isely <isely@pobox.com>
Diffstat (limited to 'linux/drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h')
-rw-r--r--linux/drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/linux/drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h b/linux/drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h
index 493b78ebf..ae0b13d4e 100644
--- a/linux/drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h
+++ b/linux/drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h
@@ -167,6 +167,11 @@ struct pvr2_decoder_ctrl {
#define FW1_STATE_RELOAD 3
#define FW1_STATE_OK 4
+/* What state the device is in if it is a hybrid */
+#define PVR2_PATHWAY_UNKNOWN 0
+#define PVR2_PATHWAY_ANALOG 1
+#define PVR2_PATHWAY_DIGITAL 2
+
typedef int (*pvr2_i2c_func)(struct pvr2_hdw *,u8,u8 *,u16,u8 *, u16);
#define PVR2_I2C_FUNC_CNT 128
@@ -245,6 +250,7 @@ struct pvr2_hdw {
/* Bits of state that describe what is going on with various parts
of the driver. */
+ int state_pathway_ok; /* Pathway config is ok */
int state_encoder_ok; /* Encoder is operational */
int state_encoder_run; /* Encoder is running */
int state_encoder_config; /* Encoder is configured */
@@ -283,6 +289,7 @@ struct pvr2_hdw {
int flag_disconnected; /* flag_ok == 0 due to disconnect */
int flag_init_ok; /* true if structure is fully initialized */
int fw1_state; /* current situation with fw1 */
+ int pathway_state; /* one of PVR2_PATHWAY_xxx */
int flag_decoder_missed;/* We've noticed missing decoder */
int flag_tripped; /* Indicates overall failure to start */