[BACK]Return to bt8xx.h CVS log [TXT][DIR] Up to [local] / sys / dev / ic

Annotation of sys/dev/ic/bt8xx.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: bt8xx.h,v 1.3 2005/06/23 14:57:48 robert Exp $        */
        !             2: /*     $NetBSD: bt8xx.h,v 1.4 2000/12/30 16:55:24 wiz Exp $    */
        !             3:
        !             4: /* This file is merged from ioctl_meteor.h and ioctl_bt848.h from FreeBSD. */
        !             5: /* The copyright below only applies to the ioctl_meteor.h part of this file. */
        !             6:
        !             7: #ifndef _DEV_IC_BT8XX_H_
        !             8: #define _DEV_IC_BT8XX_H_
        !             9: /*
        !            10:  * Copyright (c) 1995 Mark Tinguely and Jim Lowe
        !            11:  * All rights reserved.
        !            12:  *
        !            13:  * Redistribution and use in source and binary forms, with or without
        !            14:  * modification, are permitted provided that the following conditions
        !            15:  * are met:
        !            16:  * 1. Redistributions of source code must retain the above copyright
        !            17:  *    notice, this list of conditions and the following disclaimer.
        !            18:  * 2. Redistributions in binary form must reproduce the above copyright
        !            19:  *    notice, this list of conditions and the following disclaimer in the
        !            20:  *    documentation and/or other materials provided with the distribution.
        !            21:  * 3. All advertising materials mentioning features or use of this software
        !            22:  *    must display the following acknowledgement:
        !            23:  *     This product includes software developed by Mark Tinguely and Jim Lowe
        !            24:  * 4. The name of the author may not be used to endorse or promote products
        !            25:  *    derived from this software without specific prior written permission.
        !            26:  *
        !            27:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
        !            28:  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
        !            29:  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
        !            30:  * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
        !            31:  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
        !            32:  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
        !            33:  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
        !            34:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
        !            35:  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
        !            36:  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
        !            37:  * POSSIBILITY OF SUCH DAMAGE.
        !            38:  *
        !            39:  * FreeBSD: src/sys/i386/include/ioctl_meteor.h,v 1.11 1999/12/29 04:33:02 peter Exp
        !            40:  */
        !            41: /*
        !            42:  *     ioctl constants for Matrox Meteor Capture card.
        !            43:  */
        !            44:
        !            45:
        !            46: #ifndef _KERNEL
        !            47: #include <sys/types.h>
        !            48: #endif
        !            49: #include <sys/ioccom.h>
        !            50:
        !            51: struct meteor_capframe {
        !            52:        short   command;        /* see below for valid METEORCAPFRM commands */
        !            53:        short   lowat;          /* start transfer if < this number */
        !            54:        short   hiwat;          /* stop transfer if > this number */
        !            55: } ;
        !            56:
        !            57: /* structure for METEOR[GS]ETGEO - get/set geometry  */
        !            58: struct meteor_geomet {
        !            59:        u_short         rows;
        !            60:        u_short         columns;
        !            61:        u_short         frames;
        !            62:        u_int           oformat;
        !            63: } ;
        !            64:
        !            65: /* structure for METEORGCOUNT-get count of frames, fifo errors and dma errors */
        !            66: struct meteor_counts {
        !            67:        u_int fifo_errors;      /* count of fifo errors since open */
        !            68:        u_int dma_errors;       /* count of dma errors since open */
        !            69:        u_int frames_captured;  /* count of frames captured since open */
        !            70:        u_int even_fields_captured; /* count of even fields captured */
        !            71:        u_int odd_fields_captured; /* count of odd fields captured */
        !            72: } ;
        !            73:
        !            74: /* structure for getting and setting direct transfers to vram */
        !            75: struct meteor_video {
        !            76:        u_int   addr;   /* Address of location to dma to */
        !            77:        u_int   width;  /* Width of memory area */
        !            78:        u_int   banksize;       /* Size of Vram bank */
        !            79:        u_int   ramsize;        /* Size of Vram */
        !            80: };
        !            81:
        !            82: #define METEORCAPTUR _IOW('x', 1, int)                  /* capture a frame */
        !            83: #define METEORCAPFRM _IOW('x', 2, struct meteor_capframe)  /* sync capture */
        !            84: #define METEORSETGEO _IOW('x', 3, struct meteor_geomet)  /* set geometry */
        !            85: #define METEORGETGEO _IOR('x', 4, struct meteor_geomet)  /* get geometry */
        !            86: #define METEORSTATUS _IOR('x', 5, unsigned short)      /* get status */
        !            87: #define METEORSHUE   _IOW('x', 6, signed char)         /* set hue */
        !            88: #define METEORGHUE   _IOR('x', 6, signed char)         /* get hue */
        !            89: #define METEORSFMT   _IOW('x', 7, unsigned int)                /* set format */
        !            90: #define METEORGFMT   _IOR('x', 7, unsigned int)                /* get format */
        !            91: #define METEORSINPUT _IOW('x', 8, unsigned int)                /* set input dev */
        !            92: #define METEORGINPUT _IOR('x', 8, unsigned int)                /* get input dev */
        !            93: #define        METEORSCHCV  _IOW('x', 9, unsigned char)        /* set uv gain */
        !            94: #define        METEORGCHCV  _IOR('x', 9, unsigned char)        /* get uv gain */
        !            95: #define        METEORSCOUNT _IOW('x',10, struct meteor_counts)
        !            96: #define        METEORGCOUNT _IOR('x',10, struct meteor_counts)
        !            97: #define METEORSFPS   _IOW('x',11, unsigned short)      /* set fps */
        !            98: #define METEORGFPS   _IOR('x',11, unsigned short)      /* get fps */
        !            99: #define METEORSSIGNAL _IOW('x', 12, unsigned int)      /* set signal */
        !           100: #define METEORGSIGNAL _IOR('x', 12, unsigned int)      /* get signal */
        !           101: #define        METEORSVIDEO _IOW('x', 13, struct meteor_video) /* set video */
        !           102: #define        METEORGVIDEO _IOR('x', 13, struct meteor_video) /* get video */
        !           103: #define        METEORSBRIG  _IOW('x', 14, unsigned char)       /* set brightness */
        !           104: #define METEORGBRIG  _IOR('x', 14, unsigned char)      /* get brightness */
        !           105: #define        METEORSCSAT  _IOW('x', 15, unsigned char)       /* set chroma sat */
        !           106: #define METEORGCSAT  _IOR('x', 15, unsigned char)      /* get uv saturation */
        !           107: #define        METEORSCONT  _IOW('x', 16, unsigned char)       /* set contrast */
        !           108: #define        METEORGCONT  _IOR('x', 16, unsigned char)       /* get contrast */
        !           109: #define METEORSBT254 _IOW('x', 17, unsigned short)     /* set Bt254 reg */
        !           110: #define METEORGBT254 _IOR('x', 17, unsigned short)     /* get Bt254 reg */
        !           111: #define METEORSHWS   _IOW('x', 18, unsigned char)      /* set hor start reg */
        !           112: #define METEORGHWS   _IOR('x', 18, unsigned char)      /* get hor start reg */
        !           113: #define METEORSVWS   _IOW('x', 19, unsigned char)      /* set vert start reg */
        !           114: #define METEORGVWS   _IOR('x', 19, unsigned char)      /* get vert start reg */
        !           115: #define        METEORSTS    _IOW('x', 20, unsigned char)       /* set time stamp */
        !           116: #define        METEORGTS    _IOR('x', 20, unsigned char)       /* get time stamp */
        !           117:
        !           118: #define        METEOR_STATUS_ID_MASK   0xf000  /* ID of 7196 */
        !           119: #define        METEOR_STATUS_DIR       0x0800  /* Direction of Expansion port YUV */
        !           120: #define        METEOR_STATUS_OEF       0x0200  /* Field detected: Even/Odd */
        !           121: #define        METEOR_STATUS_SVP       0x0100  /* State of VRAM Port:inactive/active */
        !           122: #define        METEOR_STATUS_STTC      0x0080  /* Time Constant: TV/VCR */
        !           123: #define        METEOR_STATUS_HCLK      0x0040  /* Horiz PLL: locked/unlocked */
        !           124: #define        METEOR_STATUS_FIDT      0x0020  /* Field detect: 50/60hz */
        !           125: #define        METEOR_STATUS_ALTD      0x0002  /* Line alt: no line alt/line alt */
        !           126: #define METEOR_STATUS_CODE     0x0001  /* Colour info: no colour/colour */
        !           127:
        !           128:                                /* METEORCAPTUR capture options */
        !           129: #define METEOR_CAP_SINGLE      0x0001  /* capture one frame */
        !           130: #define METEOR_CAP_CONTINOUS   0x0002  /* continuously capture */
        !           131: #define METEOR_CAP_STOP_CONT   0x0004  /* stop the continuous capture */
        !           132:
        !           133:                                /* METEORCAPFRM capture commands */
        !           134: #define METEOR_CAP_N_FRAMES    0x0001  /* capture N frames */
        !           135: #define METEOR_CAP_STOP_FRAMES 0x0002  /* stop capture N frames */
        !           136: #define        METEOR_HALT_N_FRAMES    0x0003  /* halt of capture N frames */
        !           137: #define METEOR_CONT_N_FRAMES   0x0004  /* continue after above halt */
        !           138:
        !           139:                                /* valid video input formats:  */
        !           140: #define METEOR_FMT_NTSC                0x00100 /* NTSC --  initialized default */
        !           141: #define METEOR_FMT_PAL         0x00200 /* PAL */
        !           142: #define METEOR_FMT_SECAM       0x00400 /* SECAM */
        !           143: #define METEOR_FMT_AUTOMODE    0x00800 /* auto-mode */
        !           144: #define METEOR_INPUT_DEV0      0x01000 /* camera input 0 -- default */
        !           145: #define METEOR_INPUT_DEV_RCA   METEOR_INPUT_DEV0
        !           146: #define METEOR_INPUT_DEV1      0x02000 /* camera input 1 */
        !           147: #define METEOR_INPUT_DEV2      0x04000 /* camera input 2 */
        !           148: #define METEOR_INPUT_DEV3      0x08000 /* camera input 3 */
        !           149: #define METEOR_INPUT_DEV_RGB   0x0a000 /* for rgb version of meteor */
        !           150: #define METEOR_INPUT_DEV_SVIDEO        0x06000 /* S-video input port */
        !           151:
        !           152:                                /* valid video output formats:  */
        !           153: #define METEOR_GEO_RGB16       0x0010000 /* packed -- initialized default */
        !           154: #define METEOR_GEO_RGB24       0x0020000 /* RBG 24 bits packed */
        !           155:                                          /* internally stored in 32 bits */
        !           156: #define METEOR_GEO_YUV_PACKED  0x0040000 /* 4-2-2 YUV 16 bits packed */
        !           157: #define METEOR_GEO_YUV_PLANAR  0x0080000 /* 4-2-2 YUV 16 bits planer */
        !           158: #define METEOR_GEO_YUV_PLANER  METEOR_GEO_YUV_PLANAR
        !           159: #define METEOR_GEO_UNSIGNED    0x0400000 /* unsigned uv outputs */
        !           160: #define METEOR_GEO_EVEN_ONLY   0x1000000 /* set for even only field capture */
        !           161: #define METEOR_GEO_ODD_ONLY    0x2000000 /* set for odd only field capture */
        !           162: #define METEOR_GEO_FIELD_MASK  0x3000000
        !           163: #define METEOR_GEO_YUV_422     0x4000000 /* 4-2-2 YUV in Y-U-V combined */
        !           164: #define METEOR_GEO_OUTPUT_MASK 0x40f0000
        !           165: #define METEOR_GEO_YUV_12      0x10000000      /* YUV 12 format */
        !           166: #define METEOR_GEO_YUV_9       0x40000000      /* YUV 9 format */
        !           167:
        !           168: #define        METEOR_FIELD_MODE       0x80000000      /* Field cap or Frame cap */
        !           169:
        !           170: #define        METEOR_SIG_MODE_MASK    0xffff0000
        !           171: #define        METEOR_SIG_FRAME        0x00000000      /* signal every frame */
        !           172: #define        METEOR_SIG_FIELD        0x00010000      /* signal every field */
        !           173:
        !           174:        /* following structure is used to coordinate the synchronous */
        !           175:
        !           176: struct meteor_mem {
        !           177:                /* kernel write only  */
        !           178:        int     frame_size;      /* row*columns*depth */
        !           179:        unsigned num_bufs;       /* number of frames in buffer (1-32) */
        !           180:                /* user and kernel change these */
        !           181:        int     lowat;           /* kernel starts capture if < this number */
        !           182:        int     hiwat;           /* kernel stops capture if > this number.
        !           183:                                    hiwat <= numbufs */
        !           184:        unsigned active;         /* bit mask of active frame buffers
        !           185:                                    kernel sets, user clears */
        !           186:        int     num_active_bufs; /* count of active frame buffer
        !           187:                                    kernel increments, user decrements */
        !           188:
        !           189:                /* reference to mmapped data */
        !           190:        caddr_t buf;             /* The real space (virtual addr) */
        !           191: } ;
        !           192:
        !           193: /*
        !           194:  * extensions to ioctl_meteor.h for the bt848 cards
        !           195:  *
        !           196:  * FreeBSD: src/sys/i386/include/ioctl_bt848.h,v 1.27 2000/10/26 16:41:48 roger Exp
        !           197:  */
        !           198:
        !           199:
        !           200: /*
        !           201:  * frequency sets
        !           202:  */
        !           203: #define CHNLSET_NABCST         1
        !           204: #define CHNLSET_CABLEIRC       2
        !           205: #define CHNLSET_CABLEHRC       3
        !           206: #define CHNLSET_WEUROPE                4
        !           207: #define CHNLSET_JPNBCST         5
        !           208: #define CHNLSET_JPNCABLE        6
        !           209: #define CHNLSET_XUSSR           7
        !           210: #define CHNLSET_AUSTRALIA       8
        !           211: #define CHNLSET_FRANCE          9
        !           212: #define CHNLSET_MIN            CHNLSET_NABCST
        !           213: #define CHNLSET_MAX            CHNLSET_FRANCE
        !           214:
        !           215:
        !           216: /*
        !           217:  * constants for various tuner registers
        !           218:  */
        !           219: #define BT848_HUEMIN           (-90)
        !           220: #define BT848_HUEMAX           90
        !           221: #define BT848_HUECENTER                0
        !           222: #define BT848_HUERANGE         179.3
        !           223: #define BT848_HUEREGMIN                (-128)
        !           224: #define BT848_HUEREGMAX                127
        !           225: #define BT848_HUESTEPS         256
        !           226:
        !           227: #define BT848_BRIGHTMIN                (-50)
        !           228: #define BT848_BRIGHTMAX                50
        !           229: #define BT848_BRIGHTCENTER     0
        !           230: #define BT848_BRIGHTRANGE      99.6
        !           231: #define BT848_BRIGHTREGMIN     (-128)
        !           232: #define BT848_BRIGHTREGMAX     127
        !           233: #define BT848_BRIGHTSTEPS      256
        !           234:
        !           235: #define BT848_CONTRASTMIN      0
        !           236: #define BT848_CONTRASTMAX      237
        !           237: #define BT848_CONTRASTCENTER   100
        !           238: #define BT848_CONTRASTRANGE    236.57
        !           239: #define BT848_CONTRASTREGMIN   0
        !           240: #define BT848_CONTRASTREGMAX   511
        !           241: #define BT848_CONTRASTSTEPS    512
        !           242:
        !           243: #define BT848_CHROMAMIN                0
        !           244: #define BT848_CHROMAMAX                284
        !           245: #define BT848_CHROMACENTER     100
        !           246: #define BT848_CHROMARANGE      283.89
        !           247: #define BT848_CHROMAREGMIN     0
        !           248: #define BT848_CHROMAREGMAX     511
        !           249: #define BT848_CHROMASTEPS      512
        !           250:
        !           251: #define BT848_SATUMIN          0
        !           252: #define BT848_SATUMAX          202
        !           253: #define BT848_SATUCENTER       100
        !           254: #define BT848_SATURANGE                201.18
        !           255: #define BT848_SATUREGMIN       0
        !           256: #define BT848_SATUREGMAX       511
        !           257: #define BT848_SATUSTEPS                512
        !           258:
        !           259: #define BT848_SATVMIN          0
        !           260: #define BT848_SATVMAX          284
        !           261: #define BT848_SATVCENTER       100
        !           262: #define BT848_SATVRANGE                283.89
        !           263: #define BT848_SATVREGMIN       0
        !           264: #define BT848_SATVREGMAX       511
        !           265: #define BT848_SATVSTEPS                512
        !           266:
        !           267:
        !           268: /*
        !           269:  * audio stuff
        !           270:  */
        !           271: #define AUDIO_TUNER            0x00    /* command for the audio routine */
        !           272: #define AUDIO_EXTERN           0x01    /* don't confuse them with bit */
        !           273: #define AUDIO_INTERN           0x02    /* settings */
        !           274: #define AUDIO_MUTE             0x80
        !           275: #define AUDIO_UNMUTE           0x81
        !           276:
        !           277:
        !           278: /*
        !           279:  * EEProm stuff
        !           280:  */
        !           281: struct eeProm {
        !           282:        short   offset;
        !           283:        short   count;
        !           284:        u_char  bytes[ 256 ];
        !           285: };
        !           286:
        !           287:
        !           288: /*
        !           289:  * XXX: this is a hack, should be in ioctl_meteor.h
        !           290:  * here to avoid touching that file for now...
        !           291:  */
        !           292: #define        TVTUNER_SETCHNL    _IOW('x', 32, unsigned int)  /* set channel */
        !           293: #define        TVTUNER_GETCHNL    _IOR('x', 32, unsigned int)  /* get channel */
        !           294: #define        TVTUNER_SETTYPE    _IOW('x', 33, unsigned int)  /* set tuner type */
        !           295: #define        TVTUNER_GETTYPE    _IOR('x', 33, unsigned int)  /* get tuner type */
        !           296: #define        TVTUNER_GETSTATUS  _IOR('x', 34, unsigned int)  /* get tuner status */
        !           297: #define        TVTUNER_SETFREQ    _IOW('x', 35, unsigned int)  /* set frequency */
        !           298: #define        TVTUNER_GETFREQ    _IOR('x', 36, unsigned int)  /* get frequency */
        !           299:
        !           300:
        !           301: #define BT848_SHUE     _IOW('x', 37, int)              /* set hue */
        !           302: #define BT848_GHUE     _IOR('x', 37, int)              /* get hue */
        !           303: #define        BT848_SBRIG     _IOW('x', 38, int)              /* set brightness */
        !           304: #define BT848_GBRIG    _IOR('x', 38, int)              /* get brightness */
        !           305: #define        BT848_SCSAT     _IOW('x', 39, int)              /* set chroma sat */
        !           306: #define BT848_GCSAT    _IOR('x', 39, int)              /* get UV saturation */
        !           307: #define        BT848_SCONT     _IOW('x', 40, int)              /* set contrast */
        !           308: #define        BT848_GCONT     _IOR('x', 40, int)              /* get contrast */
        !           309: #define        BT848_SVSAT     _IOW('x', 41, int)              /* set chroma V sat */
        !           310: #define BT848_GVSAT    _IOR('x', 41, int)              /* get V saturation */
        !           311: #define        BT848_SUSAT     _IOW('x', 42, int)              /* set chroma U sat */
        !           312: #define BT848_GUSAT    _IOR('x', 42, int)              /* get U saturation */
        !           313:
        !           314: #define        BT848_SCBARS    _IOR('x', 43, int)              /* set colorbar */
        !           315: #define        BT848_CCBARS    _IOR('x', 44, int)              /* clear colorbar */
        !           316:
        !           317:
        !           318: #define        BT848_SAUDIO    _IOW('x', 46, int)              /* set audio channel */
        !           319: #define BT848_GAUDIO   _IOR('x', 47, int)              /* get audio channel */
        !           320: #define        BT848_SBTSC     _IOW('x', 48, int)              /* set audio channel */
        !           321:
        !           322: #define        BT848_GSTATUS   _IOR('x', 49, unsigned int)     /* reap status */
        !           323:
        !           324: #define        BT848_WEEPROM   _IOWR('x', 50, struct eeProm)   /* write to EEProm */
        !           325: #define        BT848_REEPROM   _IOWR('x', 51, struct eeProm)   /* read from EEProm */
        !           326:
        !           327: #define        BT848_SIGNATURE _IOWR('x', 52, struct eeProm)   /* read card sig */
        !           328:
        !           329: #define        TVTUNER_SETAFC  _IOW('x', 53, int)              /* turn AFC on/off */
        !           330: #define TVTUNER_GETAFC _IOR('x', 54, int)              /* query AFC on/off */
        !           331: #define BT848_SLNOTCH  _IOW('x', 55, int)              /* set luma notch */
        !           332: #define BT848_GLNOTCH  _IOR('x', 56, int)              /* get luma notch */
        !           333:
        !           334: /* Read/Write the BT848's I2C bus directly
        !           335:  * b7-b0:    data (read/write)
        !           336:  * b15-b8:   internal peripheral register (write)
        !           337:  * b23-b16:  i2c addr (write)
        !           338:  * b31-b24:  1 = write, 0 = read
        !           339:  */
        !           340: #define BT848_I2CWR     _IOWR('x', 57, u_int)    /* i2c read-write */
        !           341:
        !           342: struct bktr_msp_control {
        !           343:        unsigned char function;
        !           344:        unsigned int  address;
        !           345:        unsigned int  data;
        !           346: };
        !           347:
        !           348: #define BT848_MSP_RESET _IO('x', 76)                           /* MSP chip reset */
        !           349: #define BT848_MSP_READ  _IOWR('x', 77, struct bktr_msp_control)        /* MSP chip read */
        !           350: #define BT848_MSP_WRITE _IOWR('x', 78, struct bktr_msp_control)        /* MSP chip write */
        !           351:
        !           352: /* Support for radio tuner */
        !           353: #define RADIO_SETMODE   _IOW('x', 58, unsigned int)  /* set radio modes */
        !           354: #define RADIO_GETMODE   _IOR('x', 58, unsigned char)  /* get radio modes */
        !           355: #define   RADIO_AFC     0x01           /* These modes will probably not */
        !           356: #define   RADIO_MONO    0x02           /*  work on the FRxxxx. It does  */
        !           357: #define   RADIO_MUTE    0x08           /*  work on the FMxxxx. */
        !           358: #define RADIO_SETFREQ    _IOW('x', 59, unsigned int)  /* set frequency   */
        !           359: #define RADIO_GETFREQ    _IOR('x', 59, unsigned int)  /* set frequency   */
        !           360:  /*        Argument is frequency*100MHz  */
        !           361:
        !           362: /*
        !           363:  * XXX: more bad magic,
        !           364:  *      we need to fix the METEORGINPUT to return something public
        !           365:  *      duplicate them here for now...
        !           366:  */
        !           367: #define        METEOR_DEV0             0x00001000
        !           368: #define        METEOR_DEV1             0x00002000
        !           369: #define        METEOR_DEV2             0x00004000
        !           370: #define        METEOR_DEV3             0x00008000
        !           371: #define        METEOR_DEV_SVIDEO       0x00006000
        !           372: /*
        !           373:  * right now I don't know were to put these, but as they are suppose to be
        !           374:  * a part of a common video capture interface, these should be relocated to
        !           375:  * another place.  Probably most of the METEOR_xxx defines need to be
        !           376:  * renamed and moved to a common header
        !           377:  */
        !           378:
        !           379: typedef enum { METEOR_PIXTYPE_RGB, METEOR_PIXTYPE_YUV,
        !           380:               METEOR_PIXTYPE_YUV_PACKED,
        !           381:               METEOR_PIXTYPE_YUV_12 } METEOR_PIXTYPE;
        !           382:
        !           383:
        !           384: struct meteor_pixfmt {
        !           385:        u_int          index;         /* Index in supported pixfmt list     */
        !           386:        METEOR_PIXTYPE type;          /* What's the board gonna feed us     */
        !           387:        u_int          Bpp;           /* Bytes per pixel                    */
        !           388:        u_int          masks[3];      /* R,G,B or Y,U,V masks, respectively */
        !           389:        unsigned       swap_bytes :1; /* Bytes  swapped within shorts       */
        !           390:        unsigned       swap_shorts:1; /* Shorts swapped within longs        */
        !           391: };
        !           392:
        !           393:
        !           394: struct bktr_clip {
        !           395:     int          x_min;
        !           396:     int          x_max;
        !           397:     int          y_min;
        !           398:     int          y_max;
        !           399: };
        !           400:
        !           401: #define BT848_MAX_CLIP_NODE 100
        !           402: struct _bktr_clip {
        !           403:     struct bktr_clip x[BT848_MAX_CLIP_NODE];
        !           404: };
        !           405:
        !           406: /*
        !           407:  * I'm using METEOR_xxx just because that will be common to other interface
        !           408:  * and less of a surprise
        !           409:  */
        !           410: #define METEORSACTPIXFMT       _IOW('x', 64, int )
        !           411: #define METEORGACTPIXFMT       _IOR('x', 64, int )
        !           412: #define METEORGSUPPIXFMT       _IOWR('x', 65, struct meteor_pixfmt)
        !           413:
        !           414: /* set clip list */
        !           415: #define BT848SCLIP     _IOW('x', 66, struct _bktr_clip )
        !           416: #define BT848GCLIP     _IOR('x', 66, struct _bktr_clip )
        !           417:
        !           418:
        !           419: /* set input format */
        !           420: #define BT848SFMT              _IOW('x', 67, unsigned int )
        !           421: #define BT848GFMT              _IOR('x', 67, unsigned int )
        !           422:
        !           423: /* set clear-buffer-on-start */
        !           424: #define BT848SCBUF     _IOW('x', 68, int)
        !           425: #define BT848GCBUF     _IOR('x', 68, int)
        !           426:
        !           427: /* set capture area */
        !           428: /* The capture area is the area of the video image which is grabbed */
        !           429: /* Usually the capture area is 640x480 (768x576 PAL) pixels */
        !           430: /* This area is then scaled to the dimensions the user requires */
        !           431: /* using the METEORGEO ioctl */
        !           432: /* However, the capture area could be 400x300 pixels from the top right */
        !           433: /* corner of the video image */
        !           434: struct bktr_capture_area {
        !           435:    int      x_offset;
        !           436:    int      y_offset;
        !           437:    int      x_size;
        !           438:    int      y_size;
        !           439: };
        !           440: #define BT848_SCAPAREA   _IOW('x', 69, struct bktr_capture_area)
        !           441: #define BT848_GCAPAREA   _IOR('x', 69, struct bktr_capture_area)
        !           442:
        !           443:
        !           444: /* Get channel Set */
        !           445: #define BT848_MAX_CHNLSET_NAME_LEN 16
        !           446: struct bktr_chnlset {
        !           447:        short   index;
        !           448:        short   max_channel;
        !           449:        char    name[BT848_MAX_CHNLSET_NAME_LEN];
        !           450: };
        !           451: #define        TVTUNER_GETCHNLSET _IOWR('x', 70, struct bktr_chnlset)
        !           452:
        !           453:
        !           454:
        !           455: /* Infra Red Remote Control */
        !           456: struct bktr_remote {
        !           457:        unsigned char data[3];
        !           458: };
        !           459: #define        REMOTE_GETKEY      _IOR('x', 71, struct bktr_remote)/*read the remote */
        !           460:                                                             /*control receiver*/
        !           461:                                                             /*returns raw data*/
        !           462:
        !           463:
        !           464: /*
        !           465:  * Direct access to GPIO pins. You must add BKTR_GPIO_ACCESS to your kernel
        !           466:  * configuration file to use these
        !           467:  */
        !           468: #define BT848_GPIO_SET_EN      _IOW('x', 72, int)      /* set gpio_out_en */
        !           469: #define BT848_GPIO_GET_EN      _IOR('x', 73, int)      /* get gpio_out_en */
        !           470: #define BT848_GPIO_SET_DATA    _IOW('x', 74, int)      /* set gpio_data */
        !           471: #define BT848_GPIO_GET_DATA    _IOR('x', 75, int)      /* get gpio_data */
        !           472:
        !           473:
        !           474:
        !           475: /*  XXX - Copied from /sys/pci/brktree_reg.h  */
        !           476: #define BT848_IFORM_FORMAT              (0x7<<0)
        !           477: # define BT848_IFORM_F_RSVD             (0x7)
        !           478: # define BT848_IFORM_F_SECAM            (0x6)
        !           479: # define BT848_IFORM_F_PALN             (0x5)
        !           480: # define BT848_IFORM_F_PALM             (0x4)
        !           481: # define BT848_IFORM_F_PALBDGHI         (0x3)
        !           482: # define BT848_IFORM_F_NTSCJ            (0x2)
        !           483: # define BT848_IFORM_F_NTSCM            (0x1)
        !           484: # define BT848_IFORM_F_AUTO             (0x0)
        !           485:
        !           486:
        !           487:
        !           488: /* XXX Silly constants not always defined by the environment.  */
        !           489: #ifndef TRUE
        !           490: #define TRUE 1
        !           491: #endif
        !           492: #ifndef FALSE
        !           493: #define FALSE 0
        !           494: #endif
        !           495:
        !           496:
        !           497: #endif /* _DEV_IC_BT8XX_H_ */

CVSweb