Deleted Added
sdiff udiff text old ( 39040 ) new ( 39041 )
full compact
1/* BT848 1.52 Driver for Brooktree's Bt848 based cards.
2 The Brooktree BT848 Driver driver is based upon Mark Tinguely and
3 Jim Lowe's driver for the Matrox Meteor PCI card . The
4 Philips SAA 7116 and SAA 7196 are very different chipsets than
5 the BT848. For starters, the BT848 is a one chipset solution and
6 it incorporates a RISC engine to control the DMA transfers --
7 that is it the actual dma process is control by a program which
8 resides in the hosts memory also the register definitions between
9 the Philips chipsets and the Bt848 are very different.

--- 287 unchanged lines hidden (view full) ---

297 Removed Hauppauge EEPROM 0x10 detection as I think
298 0x10 should be a PAL tuner, not NTSC.
299 Reinstated some Tuner Guesswork code from 1.27
300
3011.52 3 Sep 1998 Roger Hardiman <roger@cs.strath.ac.uk>
302 Submitted patch by Vsevolod Lobko <seva@alex-ua.com>
303 to correct SECAM B-Delay and add XUSSR channel set.
304
305
306
307*/
308
309#define DDB(x) x
310#define DEB(x)
311
312#ifdef __FreeBSD__
313#include "bktr.h"
314#include "opt_bktr.h"

--- 639 unchanged lines hidden (view full) ---

954/*
955 * the data for each type of card
956 *
957 * Note:
958 * these entried MUST be kept in the order defined by the CARD_XXX defines!
959 */
960static const struct CARDTYPE cards[] = {
961
962 /* CARD_UNKNOWN */
963 { "Unknown", /* the 'name' */
964 NULL, /* the tuner */
965 0, /* dbx unknown */
966 0,
967 0, /* EEProm unknown */
968 0, /* EEProm unknown */
969 { 0, 0, 0, 0, 0 } },
970
971 /* CARD_MIRO */
972 { "Miro TV", /* the 'name' */
973 NULL, /* the tuner */
974 0, /* dbx unknown */
975 0,
976 0, /* EEProm unknown */
977 0, /* size unknown */
978 { 0x02, 0x01, 0x00, 0x0a, 1 } }, /* XXX ??? */
979
980 /* CARD_HAUPPAUGE */
981 { "Hauppauge WinCast/TV", /* the 'name' */
982 NULL, /* the tuner */
983 0, /* dbx is optional */
984 0,
985 PFC8582_WADDR, /* EEProm type */
986 (u_char)(256 / EEPROMBLOCKSIZE), /* 256 bytes */
987 { 0x00, 0x02, 0x01, 0x01, 1 } }, /* audio MUX values */
988
989 /* CARD_STB */
990 { "STB TV/PCI", /* the 'name' */
991 NULL, /* the tuner */
992 0, /* dbx is optional */
993 0,
994 X24C01_WADDR, /* EEProm type */
995 (u_char)(128 / EEPROMBLOCKSIZE), /* 128 bytes */
996 { 0x00, 0x01, 0x02, 0x02, 1 } }, /* audio MUX values */
997
998 /* CARD_INTEL */
999 { "Intel Smart Video III/VideoLogic Captivator PCI", /* the 'name' */
1000 NULL, /* the tuner */
1001 0,
1002 0,
1003 0,
1004 0,
1005 { 0, 0, 0, 0, 0 } },
1006
1007 /* CARD_IMS_TURBO */
1008 { "IMS TV Turbo", /* the 'name' */
1009 NULL, /* the tuner */
1010 0, /* dbx is optional */
1011 0,
1012 PFC8582_WADDR, /* EEProm type */
1013 (u_char)(256 / EEPROMBLOCKSIZE), /* 256 bytes */
1014 { 0x01, 0x02, 0x01, 0x00, 1 } }, /* audio MUX values */
1015
1016 /* CARD_AVER_MEDIA */
1017 { "AVer Media TV/FM", /* the 'name' */
1018 NULL, /* the tuner */
1019 0, /* dbx is optional */
1020 0,
1021 0, /* EEProm type */
1022 0, /* EEProm size */
1023 { 0x0c, 0x00, 0x0b, 0x0b, 1 } }, /* audio MUX values */
1024};
1025

--- 639 unchanged lines hidden (view full) ---

1665
1666 if (bt848_format == 0 )
1667 video_format = 0;
1668
1669 if (bt848_format == 1 )
1670 video_format = 1;
1671
1672 if (video_format == 1 ) {
1673 bt848->iform = BT848_IFORM_M_MUX1 |
1674 BT848_IFORM_X_XT0 |
1675 BT848_IFORM_F_NTSCM;
1676 bktr->format_params = BT848_IFORM_F_NTSCM;
1677
1678 } else {
1679 bt848->iform = BT848_IFORM_M_MUX1 |
1680 BT848_IFORM_X_XT1 |
1681 BT848_IFORM_F_PALBDGHI;
1682 bktr->format_params = BT848_IFORM_F_PALBDGHI;
1683
1684 }
1685
1686 bt848->adelay = format_params[bktr->format_params].adelay;
1687 bt848->bdelay = format_params[bktr->format_params].bdelay;
1688 frame_rate = format_params[bktr->format_params].frame_rate;
1689
1690#ifdef BKTR_USE_PLL
1691 bt848->tgctrl=0;
1692 bt848->pll_f_lo=0xf9;
1693 bt848->pll_f_hi=0xdc;

--- 1184 unchanged lines hidden (view full) ---

2878{
2879 int pixfmt;
2880 unsigned int temp;
2881 struct meteor_pixfmt *pf_pub;
2882
2883 switch (cmd) {
2884
2885 case METEORSINPUT: /* set input device */
2886 switch(*(unsigned long *)arg & METEOR_DEV_MASK) {
2887
2888 /* this is the RCA video input */
2889 case 0: /* default */
2890 case METEOR_INPUT_DEV0:
2891 bktr->flags = (bktr->flags & ~METEOR_DEV_MASK)
2892 | METEOR_DEV0;
2893 bt848->iform &= ~BT848_IFORM_MUXSEL;
2894 bt848->iform |= BT848_IFORM_M_MUX1;
2895 bt848->e_control &= ~BT848_E_CONTROL_COMP;
2896 bt848->o_control &= ~BT848_O_CONTROL_COMP;
2897 set_audio( bktr, AUDIO_EXTERN );
2898 break;
2899
2900 /* this is the tuner input */
2901 case METEOR_INPUT_DEV1:
2902 bktr->flags = (bktr->flags & ~METEOR_DEV_MASK)

--- 13 unchanged lines hidden (view full) ---

2916 bt848->iform &= ~BT848_IFORM_MUXSEL;
2917 bt848->iform |= BT848_IFORM_M_MUX2;
2918 bt848->e_control |= BT848_E_CONTROL_COMP;
2919 bt848->o_control |= BT848_O_CONTROL_COMP;
2920 set_audio( bktr, AUDIO_EXTERN );
2921 break;
2922
2923 case METEOR_INPUT_DEV3:
2924 if (bktr->id == BROOKTREE_878_ID ||
2925 bktr->id == BROOKTREE_879_ID ) {
2926 bktr->flags = (bktr->flags & ~METEOR_DEV_MASK)
2927 | METEOR_DEV3;
2928 bt848->iform &= ~BT848_IFORM_MUXSEL;
2929 bt848->iform |= BT848_IFORM_M_MUX3;
2930 bt848->e_control &= ~BT848_E_CONTROL_COMP;
2931 bt848->o_control &= ~BT848_O_CONTROL_COMP;
2932 set_audio( bktr, AUDIO_EXTERN );
2933

--- 2466 unchanged lines hidden ---