]> err.no Git - linux-2.6/blobdiff - drivers/media/video/ivtv/ivtv-cards.h
V4L/DVB (7757): ivtv: add autodetect for the AVermedia M104 card
[linux-2.6] / drivers / media / video / ivtv / ivtv-cards.h
index ff46e5ae8653717d978940ccf562dc58f4b2659f..196c0445da63471f89661e458d296568d49fc6f4 100644 (file)
 #define IVTV_CARD_PG600V2           18 /* Yuan PG600V2/GotView PCI DVD Lite */
 #define IVTV_CARD_CLUB3D            19 /* Club3D ZAP-TV1x01 */
 #define IVTV_CARD_AVERTV_MCE116             20 /* AVerTV MCE 116 Plus */
-#define IVTV_CARD_LAST                      20
+#define IVTV_CARD_ASUS_FALCON2      21 /* ASUS Falcon2 */
+#define IVTV_CARD_AVER_PVR150PLUS    22 /* AVerMedia PVR-150 Plus */
+#define IVTV_CARD_AVER_EZMAKER       23 /* AVerMedia EZMaker PCI Deluxe */
+#define IVTV_CARD_AVER_M104          24 /* AverMedia M104 miniPCI card */
+#define IVTV_CARD_LAST                      24
 
 /* Variants of existing cards but with the same PCI IDs. The driver
    detects these based on other device information.
@@ -69,6 +73,7 @@
 #define IVTV_PCI_ID_HAUPPAUGE_ALT1     0x0270
 #define IVTV_PCI_ID_HAUPPAUGE_ALT2     0x4070
 #define IVTV_PCI_ID_ADAPTEC            0x9005
+#define IVTV_PCI_ID_ASUSTEK            0x1043
 #define IVTV_PCI_ID_AVERMEDIA          0x1461
 #define IVTV_PCI_ID_YUAN1              0x12ab
 #define IVTV_PCI_ID_YUAN2              0xff01
@@ -80,7 +85,7 @@
 #define IVTV_PCI_ID_GOTVIEW1           0xffac
 #define IVTV_PCI_ID_GOTVIEW2           0xffad
 
-/* hardware flags */
+/* hardware flags, no gaps allowed, IVTV_HW_GPIO must always be last */
 #define IVTV_HW_CX25840   (1 << 0)
 #define IVTV_HW_SAA7115   (1 << 1)
 #define IVTV_HW_SAA7127   (1 << 2)
 #define IVTV_HW_CS53L32A  (1 << 6)
 #define IVTV_HW_TVEEPROM  (1 << 7)
 #define IVTV_HW_SAA7114   (1 << 8)
-#define IVTV_HW_TVAUDIO   (1 << 9)
-#define IVTV_HW_UPD64031A (1 << 10)
-#define IVTV_HW_UPD6408X  (1 << 11)
-#define IVTV_HW_SAA717X   (1 << 12)
-#define IVTV_HW_WM8739    (1 << 13)
-#define IVTV_HW_VP27SMPX  (1 << 14)
+#define IVTV_HW_UPD64031A (1 << 9)
+#define IVTV_HW_UPD6408X  (1 << 10)
+#define IVTV_HW_SAA717X   (1 << 11)
+#define IVTV_HW_WM8739    (1 << 12)
+#define IVTV_HW_VP27SMPX  (1 << 13)
+#define IVTV_HW_M52790    (1 << 14)
 #define IVTV_HW_GPIO      (1 << 15)
 
 #define IVTV_HW_SAA711X   (IVTV_HW_SAA7115 | IVTV_HW_SAA7114)
 
 #define IVTV_CARD_MAX_VIDEO_INPUTS 6
 #define IVTV_CARD_MAX_AUDIO_INPUTS 3
-#define IVTV_CARD_MAX_TUNERS      2
+#define IVTV_CARD_MAX_TUNERS      3
 
 /* SAA71XX HW inputs */
 #define IVTV_SAA71XX_COMPOSITE0 0
@@ -230,10 +235,17 @@ struct ivtv_card_tuner {
        int         tuner;      /* tuner ID (from tuner.h) */
 };
 
+struct ivtv_card_tuner_i2c {
+       unsigned short radio[2];/* radio tuner i2c address to probe */
+       unsigned short demod[2];/* demodulator i2c address to probe */
+       unsigned short tv[4];   /* tv tuner i2c addresses to probe */
+};
+
 /* for card information/parameters */
 struct ivtv_card {
        int type;
        char *name;
+       char *comment;
        u32 v4l2_capabilities;
        u32 hw_video;           /* hardware used to process video */
        u32 hw_audio;           /* hardware used to process audio */
@@ -257,6 +269,7 @@ struct ivtv_card {
        struct ivtv_gpio_audio_detect   gpio_audio_detect;
 
        struct ivtv_card_tuner tuners[IVTV_CARD_MAX_TUNERS];
+       struct ivtv_card_tuner_i2c *i2c;
 
        /* list of device and subsystem vendor/devices that
           correspond to this card type. */