]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/media/video/pvrusb2/pvrusb2-devattr.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb
[linux-2.6-omap-h63xx.git] / drivers / media / video / pvrusb2 / pvrusb2-devattr.h
index c2e2b06fe2e0bbeb80d791309495591e4d75e9da..cb3a33eb027660a12c3dc355271dbad6c35c69ac 100644 (file)
@@ -1,6 +1,5 @@
 /*
  *
- *  $Id$
  *
  *  Copyright (C) 2005 Mike Isely <isely@pobox.com>
  *
@@ -49,6 +48,10 @@ struct pvr2_string_table {
 #define PVR2_LED_SCHEME_NONE 0
 #define PVR2_LED_SCHEME_HAUPPAUGE 1
 
+#define PVR2_IR_SCHEME_NONE 0
+#define PVR2_IR_SCHEME_24XXX 1
+#define PVR2_IR_SCHEME_ZILOG 2
+
 /* This describes a particular hardware type (except for the USB device ID
    which must live in a separate structure due to environmental
    constraints).  See the top of pvrusb2-hdw.c for where this is
@@ -104,46 +107,50 @@ struct pvr2_device_desc {
        unsigned char digital_control_scheme;
 
        /* If set, we don't bother trying to load cx23416 firmware. */
-       int flag_skip_cx23416_firmware:1;
+       unsigned int flag_skip_cx23416_firmware:1;
 
        /* If set, the encoder must be healthy in order for digital mode to
           work (otherwise we assume that digital streaming will work even
           if we fail to locate firmware for the encoder).  If the device
           doesn't support digital streaming then this flag has no
           effect. */
-       int flag_digital_requires_cx23416:1;
+       unsigned int flag_digital_requires_cx23416:1;
 
        /* Device has a hauppauge eeprom which we can interrogate. */
-       int flag_has_hauppauge_rom:1;
+       unsigned int flag_has_hauppauge_rom:1;
 
        /* Device does not require a powerup command to be issued. */
-       int flag_no_powerup:1;
+       unsigned int flag_no_powerup:1;
 
        /* Device has a cx25840 - this enables special additional logic to
           handle it. */
-       int flag_has_cx25840:1;
+       unsigned int flag_has_cx25840:1;
 
        /* Device has a wm8775 - this enables special additional logic to
           ensure that it is found. */
-       int flag_has_wm8775:1;
-
-       /* Device has IR hardware that can be faked into looking like a
-          normal Hauppauge i2c IR receiver.  This is currently very
-          specific to the 24xxx device, where Hauppauge had replaced their
-          'standard' I2C IR receiver with a bunch of FPGA logic controlled
-          directly via the FX2.  Turning this on tells the pvrusb2 driver
-          to virtualize the presence of the non-existant IR receiver chip and
-          implement the virtual receiver in terms of appropriate FX2
-          commands. */
-       int flag_has_hauppauge_custom_ir:1;
+       unsigned int flag_has_wm8775:1;
+
+       /* Indicate any specialized IR scheme that might need to be
+          supported by this driver.  If not set, then it is assumed that
+          IR can work without help from the driver (which is frequently
+          the case).  This is otherwise set to one of
+          PVR2_IR_SCHEME_xxxx.  For "xxxx", the value "24XXX" indicates a
+          Hauppauge 24xxx class device which has an FPGA-hosted IR
+          receiver that can only be reached via FX2 command codes.  In
+          that case the pvrusb2 driver will emulate the behavior of the
+          older 29xxx device's IR receiver (a "virtual" I2C chip) in terms
+          of those command codes.  For the value "ZILOG", we're dealing
+          with an IR chip that must be taken out of reset via another FX2
+          command code (which is the case for HVR-1950 devices). */
+       unsigned int ir_scheme:2;
 
        /* These bits define which kinds of sources the device can handle.
           Note: Digital tuner presence is inferred by the
           digital_control_scheme enumeration. */
-       int flag_has_fmradio:1;       /* Has FM radio receiver */
-       int flag_has_analogtuner:1;   /* Has analog tuner */
-       int flag_has_composite:1;     /* Has composite input */
-       int flag_has_svideo:1;        /* Has s-video input */
+       unsigned int flag_has_fmradio:1;       /* Has FM radio receiver */
+       unsigned int flag_has_analogtuner:1;   /* Has analog tuner */
+       unsigned int flag_has_composite:1;     /* Has composite input */
+       unsigned int flag_has_svideo:1;        /* Has s-video input */
 };
 
 extern struct usb_device_id pvr2_device_table[];