File:  [DVB] / kfir / driver / Kfir.h
Revision 1.3: download - view: text, annotated - select for diffs
Fri Feb 18 14:40:27 2005 UTC (19 years, 3 months ago) by kls
Branches: MAIN
CVS tags: HEAD
ported to kernel 2.6 (by Anssi Hannula)

/*
 * Kfir.h
 */

#ifndef _Kfir_H_
#define _Kfir_H_

#define KFIR_NEW_AUDIO_TABLE  1
#ifndef KFIR_NEW_AUDIO_TABLE
#pragma message( "If you want to compile the project with new microcode," )
#pragma message( "please define preprocessor variable KFIR_NEW_AUDIO_TABLE" )
#endif

#define KFIR_D_PAL_FRAME_RATE  25
#define KFIR_D_PAL_MB_WIDTH    44
#define KFIR_D_PAL_MB_HEIGHT   36
#define KFIR_D_NTSC_FRAME_RATE 30
#define KFIR_D_NTSC_MB_WIDTH   44
#define KFIR_D_NTSC_MB_HEIGHT  30


#define KFIR_AUDIO_INPUT_BASE_LB_ADR   0x02000000	// May be changed.

// Pel aspect ratio
#define KFIR_ADR_ASPECT_RATIO             0	//  R/W
#define KFIR_D_ASP_RAT_SQUARE   1
#define KFIR_D_ASP_RAT_4_3      2
#define KFIR_D_ASP_RAT_16_9     3
#define KFIR_D_ASP_RAT_2_11__1  4


//Frame rate code
#define KFIR_ADR_FRAME_RATE_CODE          1*4	//  R/W
#define KFIR_D_FRAME_RATE_23_976   1
#define KFIR_D_FRAME_RATE_24       2
#define KFIR_D_FRAME_RATE_25       3
#define KFIR_D_FRAME_RATE_29_97    4
#define KFIR_D_FRAME_RATE_30       5


//Color primaries
#define KFIR_ADR_COLOR_PRIM               2*4	//  R/W
#define KFIR_D_COLOR_PRIM_ITUR_709                1
#define KFIR_D_COLOR_PRIM_UNSPECIFIED_2           2
#define KFIR_D_COLOR_PRIM_UNSPECIFIED_3           3
#define KFIR_D_COLOR_PRIM_ITUR_ITUR_624_4M        4
#define KFIR_D_COLOR_PRIM_ITUR_ITUR_624_4BG       5
#define KFIR_D_COLOR_PRIM_ITUR_SMPTE_170M         6
#define KFIR_D_COLOR_PRIM_ITUR_SMPTE_240M         7


// Transfer characteristics
#define KFIR_ADR_TRANSFER_CHAR            3*4	//  R/W
#define KFIR_D_TRANSFER_CHAR_ITUR_709       1
#define KFIR_D_TRANSFER_CHAR_UNSPECIFIED_2  2
#define KFIR_D_TRANSFER_CHAR_UNSPECIFIED_3  3
#define KFIR_D_TRANSFER_CHAR_ITUR_624_4M    4
#define KFIR_D_TRANSFER_CHAR_ITUR_624_4BG   5
#define KFIR_D_TRANSFER_CHAR_SMPTE_170M     6
#define KFIR_D_TRANSFER_CHAR_SMPTE_240M     7
#define KFIR_D_TRANSFER_CHAR_LINEAR         8


//Matrix coefficients
#define KFIR_ADR_MATRIX_COEFF             4*4	//  R/W
#define KFIR_D_MATRIX_COEFF_ITUR 709      1
#define KFIR_D_MATRIX_COEFF_UNSPECIFIED_2 2
#define KFIR_D_MATRIX_COEFF_UNSPECIFIED_3 3
#define KFIR_D_MATRIX_COEFF_FCC           4
#define KFIR_D_MATRIX_COEFF_ITUR_624_4BG  5
#define KFIR_D_MATRIX_COEFF_SMPTE_170M    6
#define KFIR_D_MATRIX_COEFF_SMPTE_240M    7


// 8 least significant bits of the bit rate, in units of 400 bits/sec
#define KFIR_ADR_BIT_RATE_0               5*4	//  R/W


// 8 intern significant bits of the bit rate, in units of 400 bits/sec
#define KFIR_ADR_BIT_RATE_1               6*4	//  R/W


// 8 most significant bits of the bit rate, in units of 400 bits/sec
#define KFIR_ADR_BIT_RATE_2               7*4	//  R/W


//16 least significant bits of VBF buffer size, in units of 16 KBits
#define KFIR_ADR_VBF_BUFFER_SIZE          8*4	//  R/W


// Progressive sequence
#define KFIR_ADR_PROGRESSIVE_SEQ          9*4	//  R/W
#define KFIR_D_PROGRESSIVE_SEQ_OFF  0
#define KFIR_D_PROGRESSIVE_SEQ_ON   1


// Progressive frame
#define KFIR_ADR_PROGRESSIVE_FRAME        10*4	//  R/W
#define KFIR_D_PROGRESSIVE_FRAME_OFF   0
#define KFIR_D_PROGRESSIVE_FRAME_ON    1


// Intra DC precision
#define KFIR_ADR_INTRA_DC_PRECISION       11*4	//  R/W
#define KFIR_D_INTRA_DC_PRECISION_8_BIT   0
#define KFIR_D_INTRA_DC_PRECISION_9_BIT   1
#define KFIR_D_INTRA_DC_PRECISION_10_BIT  2


// Intra VLC format for I picture (selects B14/B15)
#define KFIR_ADR_INTRA_VLC_FORMAT_I       12*4	//  R/W
#define KFIR_D_INTRA_VLC_FORMAT_I_B14 0
#define KFIR_D_INTRA_VLC_FORMAT_I_B15 1


// Intra VLC format for P picture (selects B14/B15)
#define KFIR_ADR_INTRA_VLC_FORMAT_P       13*4	//  R/W
#define KFIR_D_INTRA_VLC_FORMAT_P_B14   0
#define KFIR_D_INTRA_VLC_FORMAT_P_B15   1


// Intra VLC format for B picture (selects B14/B15)
#define KFIR_ADR_INTRA_VLC_FORMAT_B       14*4	//  R/W
#define KFIR_D_INTRA_VLC_FORMAT_B_B14   0
#define KFIR_D_INTRA_VLC_FORMAT_B_B15   1


// Alternate scan for I picture (selects alternate or zigzag scans)
#define KFIR_ADR_ALT_SCAN_I               15*4	//  R/W
#define KFIR_D_ALT_SCAN_I_ZIGZAG      0
#define KFIR_D_ALT_SCAN_I_ALTERNATE   1


// Alternate scan for P picture (selects alternate or zigzag scans)
#define KFIR_ADR_ALT_SCAN_P               16*4	//  R/W
#define KFIR_D_ALT_SCAN_P_ZIGZAG     0
#define KFIR_D_ALT_SCAN_P_ALTERNATE  1


// Alternate scan for B picture (selects alternate or zigzag scans)
#define KFIR_ADR_ALT_SCAN_B               17*4	//  R/W
#define KFIR_D_ALT_SCAN_B_ZIGZAG     0
#define KFIR_D_ALT_SCAN_B_ALTERNATE  1


// Frame prediction frame DCT for I picture
#define KFIR_ADR_FRAME_PRED_FRAME_DCT_I   18*4	//  R/W
#define KFIR_D_FRAME_PRED_FRAME_DCT_I_FIELD_FRAME   0
#define KFIR_D_FRAME_PRED_FRAME_DCT_I_FRAME         1


// Frame prediction frame DCT for P picture
#define KFIR_ADR_FRAME_PRED_FRAME_DCT_P   19*4	//  R/W
#define KFIR_D_FRAME_PRED_FRAME_DCT_P_FIELD_FRAME   0
#define KFIR_D_FRAME_PRED_FRAME_DCT_P_FRAME         1


// Frame prediction frame DCT for B picture
#define KFIR_ADR_FRAME_PRED_FRAME_DCT_B   20*4	//  R/W
#define KFIR_D_FRAME_PRED_FRAME_DCT_B_FIELD_FRAME   0
#define KFIR_D_FRAME_PRED_FRAME_DCT_B_FRAME         1


// Initial Average Activity (TM5), bits [15:0]
#define KFIR_ADR_AVG_ACT                  21*4	//  R/W
#define KFIR_D_AVG_ACT                400


// Initial global complexity for I picture (TM5), bits [15:0]
#define KFIR_ADR_X_I                      22*4	//  R/W

// Initial global complexity for P picture (TM5), bits [15:0]
#define KFIR_ADR_X_P                      23*4	//  R/W

// Initial global complexity for B picture (TM5), bits [15:0]
#define KFIR_ADR_X_B                      24*4	//  R/W

// Initial virtual buffer fullness for I picture (TM5), bits [15:0]
#define KFIR_ADR_D0_I_0                   25*4	//  R/W

// Initial virtual buffer fullness for P picture (TM5), bits [15:0]
#define KFIR_ADR_D0_P_0                   26*4	//  R/W

// Initial virtual buffer fullness for B picture (TM5), bits [15:0]
#define KFIR_ADR_D0_B_0                   27*4	//  R/W

// Initial virtual buffer fullness for I picture (TM5), bits [31:16]
#define KFIR_ADR_D0_I_1                   28*4	//  R/W

// Initial virtual buffer fullness for P picture (TM5), bits [31:16]
#define KFIR_ADR_D0_P_1                   29*4	//  R/W

// Initial virtual buffer fullness for B picture (TM5), bits [31:16]
#define KFIR_ADR_D0_B_1                   30*4	//  R/W

// Intra/Non Intra threshold, bits [9:0]
#define KFIR_ADR_INTRAD                   31*4	//  R/W
// default=9*64


// Minimal target bits per picture, bits [15:0]
#define KFIR_ADR_TMIN                     32*4	//  R/W
// floor(bit_rate/(4.0*frame_rate)+0.5)/4)


// Parameter for internal use, bits [15:0]
#define KFIR_ADR_R2                       33*4	//  R/W
// (int) 31*(1<<22)/r


// MB_WIDTH, bits [7:0]
#define KFIR_ADR_MB_WIDTH                 34*4	//  R/W
// Parameter for internal use, bits [7:0]
// (mb_width)


// Parameter for internal use, bits [15:0]
#define KFIR_ADR_RMBW                     35*4	//  R/W
// ((1<<16)/(mb_width*mb_height))


// Parameter for internal use, bits [15:0]
#define KFIR_ADR_RMB                      36*4	//  R/W
// ((1<<16)/(mb_width*mb_height))


// Parameter for internal use, bits [15:0]
#define KFIR_ADR_GETB                     37*4	//  R/W
// (int) (90000/(bit_rate>>13))


// A constant for internal use, bits [15:0]
#define KFIR_ADR_C1                       38*4	//  R/W
// ((int) (256*1.4))


// A constant for internal use, bits [15:0]
#define KFIR_ADR_C2                       39*4	//  R/W
// ((int) ((1<<16)/1.4))


// Standard picture delay, bits [15:0]
#define KFIR_ADR_STD_PICT_DEL             40*4	//  R/W
// ((int)(90000.0/bit_rate)


// First picture delay, bits [15:0]
#define KFIR_ADR_FIRST_PICT_DEL           41*4	//  R/W
// ((int)(((vbv_buffer_size*16384*2)/8)*90000.0/bit_rate))


// Parameter for internal use, bits [15:0]
#define KFIR_ADR_GOPR1_1                  42*4	//  R/W
// (((int)floor((N-M+1)*bit_rate/frame_rate+0.5)/4)>>16)&MS


// Parameter for internal use, bits [15:0]
#define KFIR_ADR_GOPR2_1                  43*4	//  R/W
// (((int)floor(N*bit_rate/frame_rate+0.5)/4)>>16)&MS


// Parameter for internal use, bits [15:0]
#define KFIR_ADR_GOPR1_0                  44*4	//  R/W
// ((int)floor((N-M+1)*bit_rate/frame_rate+0.5)/4)&MS


// Parameter for internal use, bits [15:0]
#define KFIR_ADR_GOPR2_0                  45*4	//  R/W
// ((int)floor(N*bit_rate/frame_rate+0.5)/4)&MS


// Defines # slices per picture
#define KFIR_ADR_SLICE_CONTROL            46*4	//  R/W
#define KFIR_D_SLICE_CONTROL_0    0	// Single slice per picture,
#define KFIR_D_SLICE_CONTROL_1    1	// Slice per macroblock line (30 slices for NTSC, 36 slices for PAL).


// Video format flag
#define KFIR_ADR_VIDEO_FORMAT             47*4	//  R/W
#define KFIR_D_VIDEO_FORMAT_NTSC    0
#define KFIR_D_VIDEO_FORMAT_PAL    1


// Interlace source flag
#define KFIR_ADR_INTERLACED_SOURCE        48*4	//  R/W
#define KFIR_D_INTERLACED_SOURCE      0
#define KFIR_D_PROGRESSIVE_SOURCE     1


// I/P ratio
#define KFIR_ADR_M                        49*4	//  R/W
#define KFIR_D_M_I          0
#define KFIR_D_M_IP         1
#define KFIR_D_M_IPB        2
#define KFIR_D_M_IPBB       3


// N/M Ratio, determines size of GOP, bits [15:0]
#define KFIR_ADR_MULTIPLE                 50*4	//  R/W
// (int) N/M


// Total number of macroblocks in picture, bits [15:0]
#define KFIR_ADR_TOTAL_MBS                51*4	//  R/W
// mb_width*mb_height


// Total number of macroblocks lines in picture, bits [15:0]
#define KFIR_ADR_MB_LINES                 52*4	//  R/W
// mb_height


// Inserts sequence start header per each GOP
#define KFIR_ADR_RANDOM_SCAN              53*4	//  R/W
#define KFIR_D_RANDOM_SCAN_SINGLE           0
#define KFIR_D_RANDOM_SCAN_SEG_PER_GOP      1


// Variable bit rate encoding flag
#define KFIR_ADR_VBR_ENABLE               54*4	//  R/W
#define KFIR_D_VBR_ENABLE_CONST       0
#define KFIR_D_VBR_ENABLE_VAR         1
#define KFIR_D_VBR_ENABLE_QUANT_SCALE 2


// TOP_FIELD_FIRST flag
#define KFIR_ADR_TOP_FIRST                55*4	//  R/W
#define KFIR_D_BOTTOM_FIRST     0
#define KFIR_D_TOP_FIRST        1
//Note: this flag is redefined internally if automatic 3-2 pulldown detection is on.


// Determines horizontal motion search window
#define KFIR_ADR_LOW_SEARCH_RANGE         56*4	//  R/W
#define KFIR_D_LOW_SEARCH_RANGE_100    0
#define KFIR_D_LOW_SEARCH_RANGE_32     1


// Assigns this constant quantizer scale to each macroblock, , bits [9:0]
#define KFIR_ADR_CONST_MQUANT             57*4	//  R/W
// Bits 10


// Low latency flag (video elementary stream latency only)
#define KFIR_ADR_LOW_LATENCY              58*4	//  R/W
#define KFIR_D_LOW_LATENCY_FIELD    0
#define KFIR_D_LOW_LATENCY_PICTURE  1


// Automatic 3/2 pulldown detection
#define KFIR_ADR_AUTO_PULLDOWN            59*4	//  R/W
#define KFIR_D_AUTO_PULLDOWN_OFF      0
#define KFIR_D_AUTO_PULLDOWN_ON       1


// Compressed video data output width
#define KFIR_ADR_BITSTREAM_WIDTH          60*4	//  R/W
#define KFIR_D_BITSTREAM_WIDTH_16     0
#define KFIR_D_BITSTREAM_WIDTH_32     1


// Base address of the SDRAM FIFO, bits [15:0]
#define KFIR_ADR_VOB_BASE_ADDR            61*4	//  R/W
#define VOB_BASE_ADDR                 2400	// 2000 , 3000 - May be changed.


// SDRAM FIFO enable flag.
#define KFIR_ADR_USE_SDRAM_FIFO           62*4	//  R/W
#define KFIR_D_USE_SDRAM_FIFO_OFF       0
#define KFIR_D_USE_SDRAM_FIFO_ON        1


// Video decimation pattern [VIB_DEC_PATTERN / Picture size]
#define KFIR_ADR_VIB_DEC_PATTERN          63*4	//  R/W
#define KFIR_D_VIB_DEC_PATTERN_FD1      0x1
#define KFIR_D_VIB_DEC_PATTERN_640      0xff
#define KFIR_D_VIB_DEC_PATTERN_544      0x7
#define KFIR_D_VIB_DEC_PATTERN_480      0x3
#define KFIR_D_VIB_DEC_PATTERN_352      0x1
#define KFIR_D_VIB_DEC_PATTERN_320      0x55
#define KFIR_D_VIB_DEC_PATTERN_160      0x11


// Video decimation size [VIB_DEC_SIZE / Picture size]
#define KFIR_ADR_VIB_DEC_SIZE             64*4	//  R/W
#define KFIR_ADR_VIB_DEC_SIZE_FD1       0x1
#define KFIR_ADR_VIB_DEC_SIZE_640       0x9
#define KFIR_ADR_VIB_DEC_SIZE_544       0x4
#define KFIR_ADR_VIB_DEC_SIZE_480       0x3
#define KFIR_ADR_VIB_DEC_SIZE_352       0x2
#define KFIR_ADR_VIB_DEC_SIZE_320       0x9
#define KFIR_ADR_VIB_DEC_SIZE_160       0x9
//# Bits 16


// Retains the number of the GOP currently being encoded
#define KFIR_ADR_VIB_VIDEO_PAR            65*4	//  R/W
// bit 0: Horizontal luminance filter: [0]: Off, [1]: On.
#define KFIR_D_VIB_VIDEO_PAR_HOR_FILT_LUMIN_MASK      0x0001
// bit 1: Horizontal chrominance filter: [0]: Off, [1]: On.
#define KFIR_D_VIB_VIDEO_PAR_HOR_FILT_CHROMA_MASK     0x0002
// bit 2-3: Vertical filter for field 0: [00],[01]=off, [10]=C2, [11]=C3.
#define KFIR_D_VIB_VIDEO_PAR_VER_FILT_FIELD_0_MASK    0x000C
// bit 4-5: Vertical filter for field 1: [00],[01]=off, [10]=C2, [11]=C3.
#define KFIR_D_VIB_VIDEO_PAR_VER_FILT_FIELD_1_MASK    0x0030
// bit 6: FILEMODE: [0]: Off, [1]: On.
#define KFIR_D_VIB_VIDEO_PAR_FILEMODE_MASK            0x0040
// bit 7: TOP_FIRST: [0]: Field 0 is BOT, [1]: Field 0 is TOP
#define KFIR_D_VIB_VIDEO_PAR_TOP_FIRST_MASK           0x0080
// bit 8: VIDEO_FORMAT: [0]: NTSC. [1]: PAL
#define KFIR_D_VIB_VIDEO_PAR_VIDEO_FORMAT_MASK        0x0100
// bit 9: CR_FIRST: [0]: CB_Y_CR_Y, [1]: CR_Y_CB_Y
#define KFIR_D_VIB_VIDEO_PAR_CR_FIRST_NASK            0x0200


// Video horizontal offset
#define KFIR_ADR_VIB_HORI_TOP_BOT         66*4	//  R/W
// bit 0-3: TOP offset
#define KFIR_D_VIB_HORI_TOP_MASK    0x000F
// bit 4-7: BOT offset
#define KFIR_D_VIB_HORI_BOT_MASK    0x00F0


// Video vertical offset
#define KFIR_ADR_VIB_VERT_TOP_BOT         67*4	//  R/W
// bit 0-4: BOT offset
#define KFIR_D_VIB_VERT_BOT_MASK        0x001F
// bit 5-9: TOP offset
#define KFIR_D_VIB_VERT_TOP_MASK        0x03E0



#define KFIR_D_FILTERS_MASK             0x07FF
// Luminance horizontal filter coeff 0 (11 bit signed)
#define KFIR_ADR_VIB_FILTERC_YH_0         68*4	//  R/W


// Luminance horizontal filter coeff 1 (11 bit signed)
#define KFIR_ADR_VIB_FILTERC_YH_1         69*4	//  R/W


// Luminance horizontal filter coeff 2 (11 bit signed)
#define KFIR_ADR_VIB_FILTERC_YH_2         70*4	//  R/W


// Luminance horizontal filter coeff 3 (11 bit signed)
#define KFIR_ADR_VIB_FILTERC_YH_3         71*4	//  R/W


// Luminance horizontal filter coeff 4 (11 bit signed)
#define KFIR_ADR_VIB_FILTERC_YH_4         72*4	//  R/W


// Luminance horizontal filter coeff 5 (11 bit signed)
#define KFIR_ADR_VIB_FILTERC_YH_5         73*4	//  R/W


// Luminance horizontal filter coeff 6 (11 bit signed)
#define KFIR_ADR_VIB_FILTERC_YH_6         74*4	//  R/W


// Chrominance horizontal filter coeff 0 (11 bit signed)
#define KFIR_ADR_VIB_FILTERC_CH_0         75*4	//  R/W


// Chrominance horizontal filter coeff 1 (11 bit signed)
#define KFIR_ADR_VIB_FILTERC_CH_1         76*4	//  R/W


// Chrominance horizontal filter coeff 2 (11 bit signed)
#define KFIR_ADR_VIB_FILTERC_CH_2         77*4	//  R/W


// Chrominance horizontal filter coeff 3 (11 bit signed)
#define KFIR_ADR_VIB_FILTERC_CH_3         78*4	//  R/W


// Chrominance horizontal filter coeff 4 (11 bit signed)
#define KFIR_ADR_VIB_FILTERC_CH_4         79*4	//  R/W


// Chrominance horizontal filter coeff 5 (11 bit signed)
#define KFIR_ADR_VIB_FILTERC_CH_5         80*4	//  R/W


// Chrominance horizontal filter coeff 6 (11 bit signed)
#define KFIR_ADR_VIB_FILTERC_CH_6         81*4	//  R/W


// Chrominance vertical (field 0) filter coeff 0 (11 bit signed)
#define KFIR_ADR_VIB_FILTERC_CV0_0        82*4	//  R/W


// Chrominance vertical (field 0) filter coeff 1 (11 bit signed)
#define KFIR_ADR_VIB_FILTERC_CV0_1        83*4	//  R/W


// Chrominance vertical (field 0) filter coeff 2 (11 bit signed)
#define KFIR_ADR_VIB_FILTERC_CV0_2        84*4	//  R/W


// Chrominance vertical (field 0) filter coeff 3 (11 bit signed)
#define KFIR_ADR_VIB_FILTERC_CV0_3        85*4	//  R/W


// Chrominance vertical (field 0) filter coeff 4 (11 bit signed)
#define KFIR_ADR_VIB_FILTERC_CV0_4        86*4	//  R/W


// Chrominance vertical (field 0) filter coeff 5 (11 bit signed)
#define KFIR_ADR_VIB_FILTERC_CV0_5        87*4	//  R/W


// Chrominance vertical (field 1) filter coeff 0 (11 bit signed)
#define KFIR_ADR_VIB_FILTERC_CV1_0        88*4	//  R/W


// Chrominance vertical (field 1) filter coeff 1 (11 bit signed)
#define KFIR_ADR_VIB_FILTERC_CV1_1        89*4	//  R/W


// Chrominance vertical (field 1) filter coeff 2 (11 bit signed)
#define KFIR_ADR_VIB_FILTERC_CV1_2        90*4	//  R/W


// Chrominance vertical (field 1) filter coeff 3 (11 bit signed)
#define KFIR_ADR_VIB_FILTERC_CV1_3        91*4	//  R/W


// Chrominance vertical (field 1) filter coeff 4 (11 bit signed)
#define KFIR_ADR_VIB_FILTERC_CV1_4        92*4	//  R/W


// Chrominance vertical (field 1) filter coeff 5 (11 bit signed)
#define KFIR_ADR_VIB_FILTERC_CV1_5        93*4	//  R/W


// Least significant bits of 3-2 pulldown threshold value
#define KFIR_ADR_TELE_THRESHOLD_0         94*4	//  R/W
// 16 Bits

// Mostsignificant bits of 3-2 pulldown threshold value
#define KFIR_ADR_TELE_THRESHOLD_1         95*4	//  R/W
// 16 Bits
// tele_threshold>>16


// DMA_BSM_BURST
#define KFIR_ADR_DMA_BSM_BURST            96*4	//  R/W
// # Bits 9 bit


// Minimum required lines in bitstream FIFO to assert H_DMA_REQ_BSM
#define KFIR_ADR_DMA_BSM_BURST_END        97*4	//  R/W
// # Bits 9 bit


// Minimum required lines in uncompressed video FIFO to negate H_DMA_REQ_VIB
#define KFIR_ADR_DMA_VIB_BURST            98*4	//  R/W
// # Bits 9 bit


// Minimum required lines in uncompressed video FIFO to assert
#define KFIR_ADR_DMA_VIB_BURST_END        99*4	//  R/W
// # Bits 9 bit


#define KFIR_ADR_FILE_MODE               100*4


// 1 - MPEG 2 mode
// 0 - MPEG 1 mode
#define KFIR_ADR_MPEG_I_NEG              103*4


#define KFIR_ADR_FRAME_SKIP_RATIO        104*4
// # Bits 16 bit

// Maximum number of the parameters.
#define KFIR_MAX_PARAMS                   128
////////////////////////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////////////////
// Kfir registers

// Least significant bits of the GOP number
#define KFIR_ADR_GOP_0                    128*4	//  R
// # Bits 16


// Most significant bits of the GOP number
#define KFIR_ADR_GOP_1                    129*4	//  R
// # Bits 16


// Retains the type of the picture currently being encoded
#define KFIR_ADR_PICT_TYPE                132*4	//  R
// # Bits 2


#define KFIR_ADR_X                        146*4	// ?/W
// 0...43


#define KFIR_ADR_Y                        149*4	//  ?/W
// 0...35


#define KFIR_ADR_TEST_0                   171*4	//  R
// 1 in at least one bit - error
// 0                     - no errors.

#define KFIR_ADR_TEST_1                   172*4	//  R
// 1 in at least one bit - error
// 0                     - no errors.


// Description Retains the frame # within the GOP currently being encoded
#define KFIR_ADR_FRAME                    183*4	//  R
// # Bits 4


// FIFO Counter (bits 15:0)
#define KFIR_ADR_FIFO_REG_0               184*4	//  R
// Value Retains the number of lines written to the video FIFO since the beginning of encoding.
// # Bits 16


// FIFO Counter (bits 23:16)
#define KFIR_ADR_FIFO_REG_1               185*4	//  R
// Value Retains the number of lines written to the video FIFO since the beginning of encoding.
// # Bits 8


// SRAM Counter (bits 15:0)
#define KFIR_ADR_SRAM_CNT_0               186*4	//  R
// Retains the number of lines written to the video FIFO since last video interrupt. 
// This number increments during the current picture encoding, and is not latched.


// Description SRAM Counter (bits 18:16)
#define KFIR_ADR_SRAM_CNT_1               187*4	//  R
// Retains the number of lines written to the video FIFO since last
// video interrupt. This number increments during the current picture encoding, and is not latched.
// # Bits 3


//SRAM register (bits 15:0)
#define KFIR_ADR_SRAM_REG_0               188*4	//  R
// Retains the value of the last SRAM counter, valid after each video interrupt. To be used for DMA transfer.


// SRAM register (bits 19:16)
#define KFIR_ADR_SRAM_REG_1               189*4	//  R
// Retains the value of the last SRAM counter, valid after the interrupt.
// The most significant bit (19) of the SRAM register toggles
// each interrupt (parify flag of the number of video interrupts). To be used for DMA transfer.
// # Bits 4
#define KFIR_SRAM_REG_1_MASK        0x00000007


#define KFIR_200                          200*4	// W
#define KFIR_DEV_INST                     KFIR_200	// W/R


#define KFIR_201                          201*4	// R
#define KFIR_EXEC                         KFIR_201	// R


#define KFIR_202                          202*4
#define KFIR_VIB_FIFO_BASE_ADR            202*4	// W
#define VIB_BASE_ADR_MASK           0x00000FFF


#define KFIR_MUX_FIFO_BASE_ADR            203*4	// W
#define KFIR_203                          203*4
#define MUX_BASE_ADR_MASK           0x00000FFF


#define KFIR_AUDIO_FIFO_BASE_ADR          204*4	// W
#define KFIR_204                          204*4
#define KF_AUDIO_MEM_BASE           KFIR_AUDIO_INPUT_BASE_LB_ADR
#define KF_AUDIO_MEM_SIZE           0x400


#define KFIR_205                          205*4

// MUX Memory Size
#define KFIR_207                          207*4
// 20 bits


// MUX Memory Counter
#define KFIR_208                          208*4
// 20 bits


// VIB, Video Input Buffer, File Mode Memory Size
#define KFIR_209                          209*4
// 20 bits


// VIB, Video Input Buffer, File Mode Memory Counter
#define KFIR_210                          210*4
// 20 bits


// I960 Config register.
#define KFIR_211                          211*4	// W
#define KFIR_211_SLAVE              0
#define KFIR_211_MASTER             1

// Interrupt counter
#define KFIR_ADR_INTERRUPT_CNT             221*4	//  R


// Bits [15:0] of audio PTS
#define KFIR_ADR_AUDIO_PTS_0              222*4	//  R/W
// # Bits 16


// Bits [31:16] of the audio PTS
#define KFIR_ADR_AUDIO_PTS_1              223*4	//  R/W
// # Bits 16


// Most significant bit of the audio PTS
#define KFIR_ADR_AUDIO_PTS_2              224*4	//  R/W
// # Bits 1


#define KFIR_ADR_AUDIO_INT_ACK            228*4	//  ?/W


#define KFIR_ADR_AUDIO_FRAME_SIZE         229*4	// R/W


#define KFIR_ADR_MUX_CNT_0                231*4


#define KFIR_ADR_MUX_CNT_1                232*4


#define KFIR_ADR_MUX_CNT_2                233*4


// Video interrupt source
#define KFIR_ADR_INT_VIDEO                234*4	//  R/W
#define KDIR_D_INT_VIDEO          1
// # Bits 1


// Audio interrupt source
#define KFIR_ADR_INT_AUDIO                235*4	//  R/W
#define KDIR_D_INT_AUDIO          1
// # Bits 1


// DMA MUX interrupt source
#define KFIR_ADR_INT_DMA_MUX              236*4	//  R/W
#define KDIR_D_INT_DMA_MUX        1
// # Bits 1


// DMA VIB (Filemode) interrupt source
#define KFIR_ADR_INT_DMA_VIB              237*4	//  R/W
#define KDIR_D_INT_DMA_VIB        1
// # Bits 1


#define KFIR_ADR_TEST_MODE                252*4	//  ?/W
#define KFIR_D_TEST_MODE_ON          1
#define KFIR_D_TEST_MODE_OFF         0
// Bits 1

#define KFIR_ADR_PAUSE                     253*4	// R/W
// 0 - Resume
// 1 - Pause
#define KFIR_D_PAUSE                  1
#define KFIR_D_RESUME                 0

// Status register
#define KFIR_ADR_EREADY                     254*4	//  R
// Bits 3
// [1]: Kfir is ready to start encoding.
// [2]: Test Mode.
// [3]: RECORD down has been detected. Kfir starts the "stop encoding" sequence
// [4]: Sequence_end code has been transmitted. Kfir empties the internal compressed data buffers.
#define KFIR_D_EREADY_ENCODING    0
#define KFIR_D_EREADY_READY       1
#define KFIR_D_EREADY_TEST        2
#define KFIR_D_EREADY_STOP_DETECT 3
#define KFIR_D_EREADY_SEQ_END     4


// The host sets this register to start the encoding, and resets it to stop the encoding.
#define KFIR_ADR_RECORD                   255*4	//  R/W
#define KFIR_D_RECORD_START         1
#define KFIR_D_RECORD_STOP          0
///////////////////////////////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////////////////////////////
// MUX_AUDIO_FIFO data.

#define DEFAULT_PROGRAM_NUMBER		1
#define DEFAULT_TRANSPORT_STREAM_ID	0
#define DEFAULT_AUDIO_STREAM_TYPE	3
#define DEFAULT_PMT_PID			0x10
#define DEFAULT_VIDEO_PID		0x11
#define DEFAULT_AUDIO_PID		0x12
#define DEFAULT_VIDEO_STREAM_ID		0xe0
#define DEFAULT_AUDIO_STREAM_ID		0xc0
#define DEFAULT_VIDEO_BITRATE		6000000
#define	DEFAULT_AUDIO_BITRATE		0256000
#define DEFAULT_VPTS_OFFSET		30000
#define DEFAULT_APTS_OFFSET		DEFAULT_VPTS_OFFSET
#define DEFAULT_PCR_RATE		30
#define DEFAULT_SCR_RATE		30
#define DEFAULT_VIDEO_PES_SIZE	        (2048)
#define DEFAULT_AUDIO_PES_SIZE	        (2048)
#define DEFAULT_PAT_RATE		500
#define DEFAULT_FRAMES_PER_100SEC	2997



#define MUX_SCALE                             2
// All data is write only.

#define MUX_AUDIO_ADR_STREAM_TYPE             0
// # Bits 16
typedef enum KFIR_D_STREAM_TYPE_Tag {
	KFIR_D_VEDEO_ES = 0,
	KFIR_D_PACKET_VIDEO_ES = 1,
	KFIR_D_PROGRAM = 2,
	KFIR_D_TRANSPORT = 3,
	KFIR_D_AUDIO_ES = 4,
	KFIR_D_PACKET_AUDIO_ES = 5,
	KFIR_D_SYSTEM = 4
} KFIR_D_STREAM_TYPE;

//Number (ID) of a program within the transport stream
#define MUX_AUDIO_ADR_PROGRAM_NUMBER          1
// # Bits 16


// Description Transport stream ID
#define MUX_AUDIO_ADR_TRANSPORT_STREAM_ID     2
// # Bits 16


//Audio stream type (according to the audio standard)
#define MUX_AUDIO_ADR_AUDIO_STREAM_TYPE       3
// # Bits 8
//#define DEFAULT_AUDIO_STREAM_TYPE      0x3

// Program map table packet ID
#define MUX_AUDIO_ADR_PMT_PID                 4
// # Bits 13
#define MUX_AUDIO_PMT_PID_MASK          0x1FFF


// Video packet ID
#define MUX_AUDIO_ADR_VIDEO_PID               5
// # Bits 13
#define MUX_AUDIO_VIDEO_PID_MASK        0x1FFF


// Audio packet ID
#define MUX_AUDIO_ADR_AUDIO_PID               6
// # Bits 13


// Video stream ID within the PES packet
#define MUX_AUDIO_ADR_VIDEO_STREAM_ID         7
// Value E0 - EF
// # Bits 8


// Audio stream ID with the PES packet
#define MUX_AUDIO_ADR_AUDIO_STREAM_ID         8
//Value C0 - CF
//# Bits 8


// 16 least significant bits of video bit rate
#define MUX_AUDIO_ADR_VIDEO_BITRATE_LOW       9
//Value MUST CONFORM TO BIT RATE (HOST REGISTERS 5-7)
//# Bits 16


// 16 most significant bits of video bit rate
#define MUX_AUDIO_ADR_VIDEO_BITRATE_HIGH      10
//Value MUST CONFORM TO BIT RATE (HOST REGISTERS 5-7)
//Bits 16


// 16 least significant bits of audio bit rate
#define MUX_AUDIO_ADR_AUDIO_BITRATE_LOW       11
// # Bits 16


// 16 most significant bits of audio bit rate
#define MUX_AUDIO_ADR_AUDIO_BITRATE_HIGH      12
// # Bits 16


// 16 least significant bits of transport bitrate
#define MUX_AUDIO_ADR_TRANSPORT_BITRATE_LOW   13
// # Bits 16


// 16 most significant bits of transport bitrate
#define MUX_AUDIO_ADR_TRANSPORT_BITRATE_HIGH  14
//# Bits 16


// 16 most significant bits of initial video PTS/DTS offset, ms
#define MUX_AUDIO_ADR_VPTS_OFFSET_LOW         15
// # Bits 16


// 16 least significant bits of initial video PTS/DTS offset, ms
#define MUX_AUDIO_ADR_VPTS_OFFSET_HIGH        16
// # Bits 16


// 16 most significant bits of initial audio PTS/DTS offset, ms
#define MUX_AUDIO_ADR_APTS_OFFSET_LOW         17
// # Bits 16


// 16 least significant bits of initial audio PTS/DTS offset, ms
#define MUX_AUDIO_ADR_APTS_OFFSET_HIGH        18
// # Bits 16


// Maximum size of a packetized video elementary stream packet, bytes
#define MUX_AUDIO_ADR_MAX_VIDEO_PES_SIZE      19
// # Bits 16


// Maximum size of a packetized audio elementary stream packet, bytes
#define MUX_AUDIO_ADR_MAX_AUDIO_PES_SIZE      20
// # Bits 16


// Time interval between two successive PAT/PMT table transmission, ms.
#define MUX_AUDIO_ADR_PAT_RATE                21
// # Bits 16


// Number of video frames within 100 sec
#ifndef KFIR_NEW_AUDIO_TABLE
#define MUX_AUDIO_ADR_FRAMES_PER_100_SEC      22
#else
#define MUX_AUDIO_ADR_FRAMES_PER_100_SEC      74
#endif
//Value 2997 (NTSC)
//      2500 (PAL)
// # Bits 16


// Size of program association table, bytes
#define MUX_AUDIO_ADR_PAT_TABLE_SIZE          23
// # Bits 16


// Size of program map table, bytes
#define MUX_AUDIO_ADR_PMT_TABLE_SIZE          24
// # Bits 16


// Description pcr_bitlimit [15:0]
#ifndef KFIR_NEW_AUDIO_TABLE
#define MUX_AUDIO_ADR_PCR_BITLIMIT_LOW        25
#else
#define MUX_AUDIO_ADR_PCR_BITLIMIT_LOW        75
#endif
// # Bits 16


// pcr_bitlimit [31:16]
#ifndef KFIR_NEW_AUDIO_TABLE
#define MUX_AUDIO_ADR_PCR_BITLIMIT_MID        26
#else
#define MUX_AUDIO_ADR_PCR_BITLIMIT_MID        76
#endif
// # Bits 16


// pcr_bitlimit[47:32]
#ifndef KFIR_NEW_AUDIO_TABLE
#define MUX_AUDIO_ADR_PCR_BITLIMIT_HIGH       27
#else
#define MUX_AUDIO_ADR_PCR_BITLIMIT_HIGH       77
#endif
// # Bits 16


// pcr_step [15:0]
#ifndef KFIR_NEW_AUDIO_TABLE
#define MUX_AUDIO_ADR_PCR_STEP_LOW            28
#else
#define MUX_AUDIO_ADR_PCR_STEP_LOW            78
#endif
// # Bits 16


// pcr_step [31:16]
#ifndef KFIR_NEW_AUDIO_TABLE
#define MUX_AUDIO_ADR_PCR_STEP_MID            29
#else
#define MUX_AUDIO_ADR_PCR_STEP_MID            79
#endif
// # Bits 16


// pcr_step [47:32]
#ifndef KFIR_NEW_AUDIO_TABLE
#define MUX_AUDIO_ADR_PCR_STEP_HIGH           30
#else
#define MUX_AUDIO_ADR_PCR_STEP_HIGH           80
#endif
// # Bits 16


// pcr_step_100sec [15:0]
#define MUX_AUDIO_ADR_PCR_STEP_100SEC_LOW     31
// # Bits 16


// pcr_step_100sec [31:16]
#define MUX_AUDIO_ADR_PCR_STEP_100SEC_HIGH    32
// # Bits 16


// pcrbase_step [15:0]
#ifndef KFIR_NEW_AUDIO_TABLE
#define MUX_AUDIO_ADR_PCRBASE_STEP_LOW        33
#else
#define MUX_AUDIO_ADR_PCRBASE_STEP_LOW        81
#endif
// # Bits 16


// pcrbase_step [31:16]
#ifndef KFIR_NEW_AUDIO_TABLE
#define MUX_AUDIO_ADR_PCRBASE_STEP_HIGH       34
#else
#define MUX_AUDIO_ADR_PCRBASE_STEP_HIGH       82
#endif
// # Bits 16


// pcrbase_step_100sec [15:0]
#define MUX_AUDIO_ADR_PCRBASE_STEP_100SEC_LOW 35
// # Bits 16


// pcrbase_step_100sec [31:16]
#define MUX_AUDIO_ADR_PCRBASE_STEP_100SEC_HIGH  36
//  # Bits 16


// PES packet header constant # 1
#define MUX_AUDIO_ADR_PPH_C1                  37
// # Bits 8


// PES packet header constant # 2
#define MUX_AUDIO_ADR_PPH_C2                  38
// # Bits 4


// Transport packet header constant #1
#define MUX_AUDIO_ADR_TPH_C1                  39
// # Bits 4


// Transport packet header constant # 2
#define MUX_AUDIO_ADR_TPH_C2                  40
// # Bits 4


// es_rate_flag
#define MUX_AUDIO_ADR_ES_RATE_FLAG            41
// # Bits 1


// escr_flag
#define MUX_AUDIO_ADR_ESCR_FLAG               42
// # Bits 1


// escr_base [15:0]
#define MUX_AUDIO_ADR_ESCR_BASE_LOW           43
// # Bits 16


// escr_base [31:16]
#define MUX_AUDIO_ADR_ESCR_BASE_MID           44
// # Bits 16


// escr_base [32]
#define MUX_AUDIO_ADR_ESCR_BASE_HIGH          45
// # Bits 1


// escr_extention
#define MUX_AUDIO_ADR_ESCR_EXTENTION          46
// # Bits 9


// scrambling
#define MUX_AUDIO_ADR_SCRAMBLING              47
// # Bits 1


// error_indicator
#define MUX_AUDIO_ADR_ERROR_INDICATOR         48
// # Bits 1


// priority
#define MUX_AUDIO_ADR_PRIORITY                49
// # Bits 1


// DTS_PER_FRAME
#ifndef KFIR_NEW_AUDIO_TABLE
#define MUX_AUDIO_ADR_DTS_PER_FRAME           50
#else
#define MUX_AUDIO_ADR_DTS_PER_FRAME           83
#endif
// # Bits 16


// PTS_DTS_OFFSET
#ifndef KFIR_NEW_AUDIO_TABLE
#define MUX_AUDIO_ADR_PTS_DTS_OFFSET          51
#else
#define MUX_AUDIO_ADR_PTS_DTS_OFFSET          84
#endif
// # Bits 16


// pcr_correction_const [10:0]
#define MUX_AUDIO_ADR_PCR_CORRECTION_CONST_LOW  52
// # Bits 11


// pcr_correction_const [21:11]
#define MUX_AUDIO_ADR_PCR_CORRECTION_CONST_HIGH 53
// # Bits 11

// pcrbase_correction_const [10:0]
#define MUX_AUDIO_ADR_PCRBASE_CORRECTION_CONST_LOW    54
// # Bits 11


// pcrbase_correction_const [21:11]
#define MUX_AUDIO_ADR_PCRBASE_CORRECTION_CONST_HIGH   55
// # Bits 11


// es_rate [15:0]
#define MUX_AUDIO_ADR_ES_RATE_LOW             56
// # Bits 16


// es_rate [31:16]
#define MUX_AUDIO_ADR_ES_RATE_HIGH            57
// # Bits 16


// Program mux rate (video bit rate + audio bit rate) in BPS/400, bits [15:0]
#define MUX_AUDIO_ADR_PROGRAM_MUX_RATE_LOW    58
// # Bits 16


// Program mux rate (video bit rate + audio bit rate) in BPS/400, bits [21:16]
#define MUX_AUDIO_ADR_PROGRAM_MUX_RATE_HIGH   59
// # Bits 6


// Max PROGRAM_MUX_RATE over the entire stream, bits [15:0]
#define MUX_AUDIO_ADR_RATE_BOUND_LOW          60
// # Bits 16


// Max PROGRAM_MUX_RATE over the entire stream, bits [21:16]
#define MUX_AUDIO_ADR_RATE_BOUND_HIGH         61
// # Bits 6


// bits [15:0] of SHF
#define MUX_AUDIO_ADR_SHF_LOW                 62
// # Bits 16


// bits [24:16] of SHF
#define MUX_AUDIO_ADR_SHF_HIGH                63
// # Bits 9


// AUDIO_PAR_CONST [15:0]
#define MUX_AUDIO_ADR_AUDIO_PAR_CONST_LOW     64
// # Bits 16


// AUDIO_PAR_CONST [23:16]
#define MUX_AUDIO_ADR_AUDIO_PAR_CONST_HIGH    65
// # Bits 16


// VIDEO_PAR_CONST [15:0]
#define MUX_AUDIO_ADR_VIDEO_PAR_CONST_LOW     66
// # Bits 16


// VIDEO_PAR_CONST [23:16]
#define MUX_AUDIO_ADR_VIDEO_PAR_CONST_HIGH    67
// # Bits 16


// Sets the maximum period of waiting for missing audio data before
// sending the video frames (in video frames)
#define MUX_AUDIO_ADR_AUDIO_MISS_LATENCY      68
// # Bits 5


// New parameters.

#define MUX_AUDIO_ADR_PTS_PER_100S_LOW        69
#define MUX_AUDIO_ADR_PTS_PER_100S_HIGH       70

#define MUX_AUDIO_ADR_AUDIO_PUSH              71
// 0 - user provide audio time stamps
// 1 - kfir provide audio time stamps

#define MUX_AUDIO_ADR_FRAME_SIZE              72

#define MUX_AUDIO_ADR_FRAME_TIME              73


#define TRANSPORT_PACKET_SIZE	                188

// PAT_TABLE elements, leftmost element first
#define MUX_AUDIO_ADR_PAT_TABLE_0              80
#define MUX_AUDIO_ADR_PAT_TABLE_1              81
#define MUX_AUDIO_ADR_PAT_TABLE_2              82
#define MUX_AUDIO_ADR_PAT_TABLE_3              83
#define MUX_AUDIO_ADR_PAT_TABLE_4              84
#define MUX_AUDIO_ADR_PAT_TABLE_5              85
#define MUX_AUDIO_ADR_PAT_TABLE_6              86
#define MUX_AUDIO_ADR_PAT_TABLE_7              87
#define MUX_AUDIO_ADR_PAT_TABLE_8              88
#define MUX_AUDIO_ADR_PAT_TABLE_9              89
#define MUX_AUDIO_ADR_PAT_TABLE_10             90
#define MUX_AUDIO_ADR_PAT_TABLE_12             91
#define MUX_AUDIO_ADR_PAT_TABLE_13             92
#define MUX_AUDIO_ADR_PAT_TABLE_14             93
#define MUX_AUDIO_ADR_PAT_TABLE_15             94
#define MUX_AUDIO_ADR_PAT_TABLE_16             95
#define MUX_AUDIO_ADR_PAT_TABLE_17             96
#define MUX_AUDIO_ADR_PAT_TABLE_18             97
#define MUX_AUDIO_ADR_PAT_TABLE_19             98
#define MUX_AUDIO_ADR_PAT_TABLE_20             99
#define MUX_AUDIO_ADR_PAT_TABLE_21            100
#define MUX_AUDIO_ADR_PAT_TABLE_22            101
#define MUX_AUDIO_ADR_PAT_TABLE_23            102
#define MUX_AUDIO_ADR_PAT_TABLE_24            103
#define MUX_AUDIO_ADR_PAT_TABLE_25            104
#define MUX_AUDIO_ADR_PAT_TABLE_26            105
#define MUX_AUDIO_ADR_PAT_TABLE_27            106
#define MUX_AUDIO_ADR_PAT_TABLE_28            107
#define MUX_AUDIO_ADR_PAT_TABLE_29            108
#define MUX_AUDIO_ADR_PAT_TABLE_30            109
// # Bits 30 x 16


// PMT_TABLE elements, leftmost element first
#define MUX_AUDIO_ADR_PMT_TABLE_0                110
#define MUX_AUDIO_ADR_PMT_TABLE_1                111
#define MUX_AUDIO_ADR_PMT_TABLE_2                112
#define MUX_AUDIO_ADR_PMT_TABLE_3                113
#define MUX_AUDIO_ADR_PMT_TABLE_4                114
#define MUX_AUDIO_ADR_PMT_TABLE_5                115
#define MUX_AUDIO_ADR_PMT_TABLE_6                116
#define MUX_AUDIO_ADR_PMT_TABLE_7                117
#define MUX_AUDIO_ADR_PMT_TABLE_8                118
#define MUX_AUDIO_ADR_PMT_TABLE_9                119
#define MUX_AUDIO_ADR_PMT_TABLE_10               120
#define MUX_AUDIO_ADR_PMT_TABLE_12               121
#define MUX_AUDIO_ADR_PMT_TABLE_13               122
#define MUX_AUDIO_ADR_PMT_TABLE_14               123
#define MUX_AUDIO_ADR_PMT_TABLE_15               124
#define MUX_AUDIO_ADR_PMT_TABLE_16               125
#define MUX_AUDIO_ADR_PMT_TABLE_17               126
#define MUX_AUDIO_ADR_PMT_TABLE_18               127
#define MUX_AUDIO_ADR_PMT_TABLE_19               128
#define MUX_AUDIO_ADR_PMT_TABLE_20               129
#define MUX_AUDIO_ADR_PMT_TABLE_21               130
#define MUX_AUDIO_ADR_PMT_TABLE_22               131
#define MUX_AUDIO_ADR_PMT_TABLE_23               132
#define MUX_AUDIO_ADR_PMT_TABLE_24               133
#define MUX_AUDIO_ADR_PMT_TABLE_25               134
#define MUX_AUDIO_ADR_PMT_TABLE_26               135
#define MUX_AUDIO_ADR_PMT_TABLE_27               136
#define MUX_AUDIO_ADR_PMT_TABLE_28               137
#define MUX_AUDIO_ADR_PMT_TABLE_29               138
#define MUX_AUDIO_ADR_PMT_TABLE_30               139
// # Bits 30 x 16


// New Parameters for 3/2 pulldown fixes.
#ifndef KFIR_NEW_AUDIO_TABLE
#define MUX_AUDIO_ADR_FRAMES_PER_100_SEC_SEC      140
#else
#define MUX_AUDIO_ADR_FRAMES_PER_100_SEC_SEC      95
#define MUX_SECOND_AUDIO_ADR_FRAMES_PER_100_SEC   MUX_AUDIO_ADR_FRAMES_PER_100_SEC_SEC
#endif
//Value 2997 (NTSC)
//      2500 (PAL)
// # Bits 16

// Description pcr_bitlimit [15:0]
#ifndef KFIR_NEW_AUDIO_TABLE
#define MUX_AUDIO_ADR_PCR_BITLIMIT_LOW_SEC        141
#else
#define MUX_AUDIO_ADR_PCR_BITLIMIT_LOW_SEC        96
#define MUX_SECOND_AUDIO_ADR_PCR_BITLIMIT_LOW     MUX_AUDIO_ADR_PCR_BITLIMIT_LOW_SEC
#endif
// # Bits 16


// pcr_bitlimit [31:16]
#ifndef KFIR_NEW_AUDIO_TABLE
#define MUX_AUDIO_ADR_PCR_BITLIMIT_MID_SEC        142
#else
#define MUX_AUDIO_ADR_PCR_BITLIMIT_MID_SEC        97
#define MUX_SECOND_AUDIO_ADR_PCR_BITLIMIT_MID     MUX_AUDIO_ADR_PCR_BITLIMIT_MID_SEC
#endif
// # Bits 16


// pcr_bitlimit[47:32]
#ifndef KFIR_NEW_AUDIO_TABLE
#define MUX_AUDIO_ADR_PCR_BITLIMIT_HIGH_SEC       143
#else
#define MUX_AUDIO_ADR_PCR_BITLIMIT_HIGH_SEC       98
#define MUX_SECOND_AUDIO_ADR_PCR_BITLIMIT_HIGH    MUX_AUDIO_ADR_PCR_BITLIMIT_HIGH_SEC
#endif


// pcr_step [15:0]
#ifndef KFIR_NEW_AUDIO_TABLE
#define MUX_AUDIO_ADR_PCR_STEP_LOW_SEC            144
#else
#define MUX_AUDIO_ADR_PCR_STEP_LOW_SEC            99
#define MUX_SECOND_AUDIO_ADR_PCR_STEP_LOW         MUX_AUDIO_ADR_PCR_STEP_LOW_SEC
#endif
// # Bits 16


// pcr_step [31:16]
#ifndef KFIR_NEW_AUDIO_TABLE
#define MUX_AUDIO_ADR_PCR_STEP_MID_SEC            145
#else
#define MUX_AUDIO_ADR_PCR_STEP_MID_SEC            100
#define MUX_SECOND_AUDIO_ADR_PCR_STEP_MID         MUX_AUDIO_ADR_PCR_STEP_MID_SEC
#endif
// # Bits 16


// pcr_step [47:32]
#ifndef KFIR_NEW_AUDIO_TABLE
#define MUX_AUDIO_ADR_PCR_STEP_HIGH_SEC           146
#else
#define MUX_AUDIO_ADR_PCR_STEP_HIGH_SEC           101
#define MUX_SECOND_AUDIO_ADR_PCR_STEP_HIGH        MUX_AUDIO_ADR_PCR_STEP_HIGH_SEC
#endif
// # Bits 16

// pcrbase_step [15:0]
#ifndef KFIR_NEW_AUDIO_TABLE
#define MUX_AUDIO_ADR_PCRBASE_STEP_LOW_SEC        147
#else
#define MUX_AUDIO_ADR_PCRBASE_STEP_LOW_SEC        102
#define MUX_SECOND_AUDIO_ADR_PCRBASE_STEP_LOW     MUX_AUDIO_ADR_PCRBASE_STEP_LOW_SEC
#endif
// # Bits 16


// pcrbase_step [31:16]
#ifndef KFIR_NEW_AUDIO_TABLE
#define MUX_AUDIO_ADR_PCRBASE_STEP_HIGH_SEC       148
#else
#define MUX_AUDIO_ADR_PCRBASE_STEP_HIGH_SEC       103
#define MUX_SECOND_AUDIO_ADR_PCRBASE_STEP_HIGH    MUX_AUDIO_ADR_PCRBASE_STEP_HIGH_SEC
#endif
// # Bits 16

// DTS_PER_FRAME
#ifndef KFIR_NEW_AUDIO_TABLE
#define MUX_AUDIO_ADR_DTS_PER_FRAME_SEC           149
#else
#define MUX_AUDIO_ADR_DTS_PER_FRAME_SEC           104
#define MUX_SECOND_AUDIO_ADR_DTS_PER_FRAME        MUX_AUDIO_ADR_DTS_PER_FRAME_SEC
#endif
// # Bits 16


// PTS_DTS_OFFSET
#ifndef KFIR_NEW_AUDIO_TABLE
#define MUX_AUDIO_ADR_PTS_DTS_OFFSET_SEC          150
#else
#define MUX_AUDIO_ADR_PTS_DTS_OFFSET_SEC          105
#define MUX_SECOND_AUDIO_ADR_PTS_DTS_OFFSET       MUX_AUDIO_ADR_PTS_DTS_OFFSET_SEC
#endif
// # Bits 16


#define MUX_AUDIO_TABLES                          200

typedef struct KFIR_AUDIO_TABLE_HEADER_Tag {
	WORD TableNumber;
	WORD PID;
	WORD TableSize;
	WORD Table[1];
} KFIR_AudiotableHeader;

#define MAX_MUX_PARAMS                    (400)



typedef enum KFIR_MODE_TAG {
	KFIR_MASTER_MODE = 1,
	KFIR_GENERIC_MODE = 0,
} KFIR_MODE;

// Do not change this values - MGV 12.05.99 !!!
enum KFIR_M {
	KFIR_I_PICT = 0,
	KFIR_IP_PICT,
	KFIR_IPB_PICT,
	KFIR_IPBB_PICT
};

// Kfir 3/2 pulldown values.
// Do not change them, they match the values in IDC_3_2_PULDOWN ComboBox.
enum KFIR_3_2_PULLDOWN {
	KFIR_DISABLED = 0,
	KFIR_ENABLED = 1,
	KFIR_AUTO = 2
};

enum VT_KFIR_AudioFreq {
	VT_KFIR_AUDIO_FREQ_5_5125 = 0,
	VT_KFIR_AUDIO_FREQ_8_0000 = 1,
	VT_KFIR_AUDIO_FREQ_11_025 = 2,
	VT_KFIR_AUDIO_FREQ_16_000 = 3,
	VT_KFIR_AUDIO_FREQ_22_050 = 4,
	VT_KFIR_AUDIO_FREQ_32_000 = 5,
	VT_KFIR_AUDIO_FREQ_44_100 = 6,
	VT_KFIR_AUDIO_FREQ_48_000 = 7
};

enum KFIR_LIBRARY_MODES {
	FULL_D1,
	HALF_D1,
	SIF
};

enum KFIR_HOR_RESOLUTION {
	KFIR_H_160 = 0,		//9
	KFIR_H_320 = 1,		//9,
	KFIR_H_352 = 2,		//2,
	KFIR_H_480 = 3,		//3
	KFIR_H_544 = 4,		//4,
	KFIR_H_640 = 5,		//9,
	KFIR_H_FD1 = 6		//1
};

enum KFIR_VES_ALIGNMENT {
	KFIR_VES_8 = 0,		//1,
	KFIR_VES_16 = 1,	//2,
	KFIR_VES_32 = 2,	//3,
};

enum KFIR_RATE_CONTROL {
	KFIR_RATE_CBR = 0,
	KFIR_RATE_VBR = 1,
	KFIR_RATE_CONST_QUANT_SCALE = 2,
};

enum KFIR_FRAME_RATE {
	KFIR_23_976 = 0,	//1,
	KFIR_24 = 1,		//2,
	KFIR_25 = 2,		//3,
	KFIR_29_97 = 3,		//4,
	KFIR_30 = 4,		//5
};

#define FILE_MODE_STEP         0x20000
#define NTSC_LINES_PER_FIELD   480/2
#define PAL_LINES_PER_FIELD    576/2
#define FRAMES_NUMBER          30


// Warning ! Do not change this values !
#define BOARD_REV_B_D   0
#define BOARD_REV_B_D_  1
#define BOARD_REV_E     5
#define BOARD_REV_F     6


enum KFIR_VERT_ROSOLUTION {
	KFIR_V_112 = 0,		//3,
	KFIR_V_240 = 1,		//2,
	KFIR_V_480 = 2,		//1,  // For NTSC

	KFIR_V_144 = 0,
	KFIR_V_288 = 1,
	KFIR_V_576 = 2,		// for PAL
};

enum VT_KFIR_Aspect_Ratio {
	VT_KFIR_ASPECT_SQUARE = 0,
	VT_KFIR_ASPECT_4_3 = 1,
	VT_KFIR_ASPECT_16_9 = 2,
	VT_KFIR_ASPECT_211_1 = 3
};

enum VT_KFIR_Color_Primaries {
	VT_KFIR_COLOR_ITUR_709 = 0,
	VT_KFIR_COLOR_UNSPEC = 1,
	VT_KFIR_COLOR_UNSPECIFIED = 2,
	VT_KFIR_COLOR_ITUR_624_4M = 3,
	VT_KFIR_COLOR_ITUR_624_4BG = 4,
	VT_KFIR_COLOR_SMPTE_170_M = 5,
	VT_KFIR_COLOR_SMPTE_240_M = 6
};

enum VT_KFIR_Trans_Char {
	VT_KFIR_TRANS_ITUR_709 = 0,
	VT_KFIR_TRANS_UNSPEC = 1,
	VT_KFIR_TRANS_UNSPECIFIED = 2,
	VT_KFIR_TRANS_ITUR_624_4M = 3,
	VT_KFIR_TRANS_ITUR_624_4BG = 4,
	VT_KFIR_TRANS_SMPTE_170_M = 5,
	VT_KFIR_TRANS_SMPTE_240_M = 6,
	VT_KFIR_TRANS_LINEAR = 7
};

enum VT_KFIR_Matrix_Coef {
	VT_KFIR_MATRIX_ITUR_709 = 0,
	VT_KFIR_MATRIX_UNSPEC = 1,
	VT_KFIR_MATRIX_UNSPECIFIED = 2,
	VT_KFIR_MATRIX_FCC = 3,
	VT_KFIR_MATRIX_ITUR_624_4BG = 4,
	VT_KFIR_MATRIX_SMPTE_170_M = 5,
	VT_KFIR_MATRIX_SMPTE_240_M = 6
};

enum VT_KFIR_IntraDC_Precision {
	VT_KFIR_PREC_8_BITS = 0,
	VT_KFIR_PREC_9_BITS = 1,
	VT_KFIR_PREC_10_BITS = 2,
	VT_KFIR_PREC_11_BITS = 3
};

enum VT_KFIR_Frame_Prediction_DCT {
	VT_KFIR_FIELD_FRAME = 0,
	VT_KFIR_FRAME = 1
};


enum VT_KFIR_Intra_VLC_Format {
	VT_KFIR_B14 = 0,
	VT_KFIR_B15 = 1
};

enum VT_KFIR_Alternate_Scan {
	VT_KFIR_Zigzag = 0,
	VT_KFIR_Alternate = 1
};

enum VT_KFIR_On_Off {
	VT_KFIR_OFF = 0,
	VT_KFIR_ON = 1
};

enum VT_KFIR_VideoSource {

	VT_KFIR_Composite = 0,
	VT_KFIR_SVideo = 1,
	VT_KFIR_SERIAL_DIGITAL = 2,
	VT_KFIR_Component = 2,
	VT_KFIR_FILE = 3
};

enum VT_KFIR_VideoFormat {
	VT_KFIR_NTSC = 0,
	VT_KFIR_PAL = 1
};

enum VT_KFIR_AudioMode {
	VT_KFIR_MONO = 0,
	VT_KFIR_STEREO = 1,
	VT_KFIR_DUAL = 2,
	VT_KFIR_JOINT4_31 = 3,
	VT_KFIR_JOINT8_31 = 4,
	VT_KFIR_JOINT12_31 = 5,
	VT_KFIR_JOINT16_31 = 6
};

enum VT_KFIR_AudioFormat {
	VT_KFIR_LAYER_I = 0,
	VT_KFIR_LAYER_II = 1
};

enum VT_KFIR_StreamType {
	VT_KFIR_AUDIO_ES = 0,
	VT_KFIR_VIDEO_ES = 1,
	VT_KFIR_A_V_ES = 2,
	VT_KFIR_PROGRAM = 3,
	VT_KFIR_TRANSPORT = 4,
	VT_KFIR_PACKET_VES = 5,
	VT_KFIR_PACKET_AES = 6,
	VT_KFIR_SYSTEM = 7
};

enum VT_KFIR_EncodingType {
	VT_KFIR_PAUSED = 1,
	VT_KFIR_FILEMODE = 2,
	VT_KFIR_LIVEMODE = 4
};

typedef struct _VT_KFIR_params_ {
	enum VT_KFIR_Aspect_Ratio AspectRatio;
	enum VT_KFIR_IntraDC_Precision IntraDCPrecision;
	enum VT_KFIR_Color_Primaries ColorPrimaries;
	enum VT_KFIR_Trans_Char TransferCharacteristics;
	enum VT_KFIR_Matrix_Coef MatrixCoefficients;
	enum VT_KFIR_Frame_Prediction_DCT FramePredictionDCT_I;
	enum VT_KFIR_Frame_Prediction_DCT FramePredictionDCT_B;
	enum VT_KFIR_Frame_Prediction_DCT FramePredictionDCT_P;
	enum VT_KFIR_Intra_VLC_Format IntraVLCFormat_I;
	enum VT_KFIR_Intra_VLC_Format IntraVLCFormat_B;
	enum VT_KFIR_Intra_VLC_Format IntraVLCFormat_P;
	enum VT_KFIR_Alternate_Scan AlternateScan_I;
	enum VT_KFIR_Alternate_Scan AlternateScan_B;
	enum VT_KFIR_Alternate_Scan AlternateScan_P;

	enum VT_KFIR_On_Off ProgressiveSequence;
	enum VT_KFIR_On_Off ProgressiveFrame;
	enum VT_KFIR_On_Off SliceBypass;
	enum VT_KFIR_On_Off VIB_FilterBypass;
	enum VT_KFIR_On_Off VIB_ProgressiveSource;
	enum VT_KFIR_VideoSource Video_Source;
	enum VT_KFIR_VideoFormat Video_Format;
	enum VT_KFIR_AudioMode AudioMode;
	enum VT_KFIR_AudioFormat AudioFormat;
	enum VT_KFIR_AudioFreq AudioFreq;
	WORD AudioBitRate;
	enum VT_KFIR_On_Off AudioCRC;
	enum VT_KFIR_StreamType StreamType;
	WORD TopField;
	WORD Bottom_Field;
	WORD Horiz;
	WORD VBFBufferSize;
	DWORD BitRate;
	enum VT_KFIR_On_Off EachChunkPTS;

	BYTE VAD_LuminanceFactor;
	BYTE VAD_LuminanceBandPass;
	BYTE VAD_Prefilter;
	BYTE VAD_LuminanceBrightness;
	BYTE VAD_LuminanceContrast;
	BYTE VAD_ChromaSaturation;
	BYTE VAD_HueControl;
	BYTE VAD_ChromLowPass;
	BYTE VAD_ChromCombFilterOff;
	BYTE VAD_ColorStandard;
	BYTE VAD_Dithering;
	BYTE VAD_ChromInterFilter;

	WORD AudioStreamID;
	WORD VideoStreamID;
	WORD AudioProgramID;
	WORD VideoProgramID;
	WORD ProgramMapID;
	DWORD VideoBufferSize;
	DWORD AudioBufferSize;
	DWORD VideoEventSize;
	DWORD AudioEventSize;
	DWORD SeqStart;
	DWORD FieldSize;
	DWORD FileModeBufferSize;
	DWORD FileModeStep;
	DWORD FromFrame;
	DWORD ToFrame;
	DWORD FlFileDMA;
	DWORD TransportRate;
	BYTE PATVersion;
	DWORD InitialVideoPTS;
	DWORD InitialVideoDTS;
	DWORD InitialAudioPTS;
	DWORD InitialAudioDTS;
	WORD ProgramNumber;
	WORD TransportStreamID;

	// Kfir Ext parameters.
	enum KFIR_FRAME_RATE KF_FrameRate;
	enum KFIR_HOR_RESOLUTION KF_HorResolution;
	enum KFIR_VERT_ROSOLUTION KF_VertResolution;
	enum KFIR_VES_ALIGNMENT KF_VESAlignment;
	enum KFIR_RATE_CONTROL KF_RateControl;
	WORD KF_QuantScale;
	WORD KF_GOP_N;
	enum KFIR_M KF_GOP_M;
	bool KF_TopFiledFirst;
	bool KF_SIF_PictureBottomField;
	bool KF_LowDelay;
	bool KF_LowSearchRange;
	bool KF_Auto_3_2_PullDown;
	DWORD KF_Threshold;
	bool KF_Copyright;
	bool KF_Original;
	KFIR_MODE KF_Mode;
	bool KF_Mpeg_I;
	WORD KF_FrameSkipRatio;
	enum KFIR_3_2_PULLDOWN KF_3_2_PullDown;

	// Kfir Filtering parameters.
	bool KF_HorLuminFilter;
	int KF_HorLuminFiltC0;
	int KF_HorLuminFiltC1;
	int KF_HorLuminFiltC2;
	int KF_HorLuminFiltC3;
	int KF_HorLuminFiltC4;
	int KF_HorLuminFiltC5;
	int KF_HorLuminFiltC6;

	bool KF_HorChromaFilter;
	int KF_HorChromaFiltC0;
	int KF_HorChromaFiltC1;
	int KF_HorChromaFiltC2;
	int KF_HorChromaFiltC3;
	int KF_HorChromaFiltC4;
	int KF_HorChromaFiltC5;
	int KF_HorChromaFiltC6;

	bool KF_VertChromaTopFilter;
	int KF_VertChromaTopFiltCenter;
	int KF_VertChromaTopFiltC0;
	int KF_VertChromaTopFiltC1;
	int KF_VertChromaTopFiltC2;
	int KF_VertChromaTopFiltC3;
	int KF_VertChromaTopFiltC4;
	int KF_VertChromaTopFiltC5;

	bool KF_VertChromaBottomFilter;
	int KF_VertChromaBottomFiltCenter;
	int KF_VertChromaBottomFiltC0;
	int KF_VertChromaBottomFiltC1;
	int KF_VertChromaBottomFiltC2;
	int KF_VertChromaBottomFiltC3;
	int KF_VertChromaBottomFiltC4;
	int KF_VertChromaBottomFiltC5;
} VT_KFIR_CParams;

// kfir status.
typedef struct KFIR_INT_REG_Tag {
	WORD IntCnt;		// 0  - 221
	WORD OldIntCnt;
	WORD GOP_0;		// 4  - 128
	WORD GOP_1;		// 5  - 129
	WORD Frame;		// 6  - 183
	WORD PictType;		// 7  - 132
	WORD MuxCnt_0;		// 8  - 231
	WORD MuxCnt_1;		// 9  - 232
	WORD MuxCnt_2;		// 10 - 233
	WORD FIFO_Reg_0;	// 12 - 184
	WORD FIFO_Reg_1;	// 13 - 185
	WORD SRAM_Reg_0;	// 14 - 188
	WORD SRAM_Reg_1;	// 15 - 189
	WORD SRAM_Cnt_0;	// 16 - 186
	WORD SRAM_Cnt_1;	// 17 - 187
	WORD KfirEReady;	// 18 - 254
	WORD IntVideo;		// 22 - 234
	WORD IntAudio;		// 23 - 235
	WORD IntDMA_Mux;	// 24 - 236
	WORD IntDMA_VIB;	// 25 - 237
} KFIR_INT_REG;

// 1 - Source of interrupt on Read
// 1 - Clear Interrupt when Write
#define ALT_ADR_INT_REG_CLR_REV_5E  0x3000
#define ALT_D_INT_REQ_CLR_KFIR_INT          0x0001
#define ALT_D_INT_REQ_CLR_ADSP_INT          0x0002
#define ALT_D_INT_CLEAR_ALL                 0xFF

#define ALT_ADR_I2C_SLAVE_SHIFT             16

#define ALT_D_I2C_READY                     0x1000


// 1 - Mask this interupt when Write
#define ALT_ADR_INT_MASK_REV_5E     0x3004

#define ALT_ADR_RESET_REG_REV_5E    0x3008
#define ALT_D_RESET_REG_KFIR_REV_5E          0x0001
#define ALT_D_RESET_REG_KFIR_PLL_REV_5E      0x0002


// ADSP address when write - IAL
#define ALT_ADR_ADSP_ADDR_REV_5E 0x300C

// ADSP data when read/write - IDMA
#define ALT_ADR_ADSP_DATA_REV_5E    0x3010


// Set ADSP IRQs (write 0, then 1) - GPPORT
#define ALT_ADR_ADSP_IRQ_REV_5E     0x3014
#define ALT_D_ADSP_IRQ_E            0x0001
#define ALT_D_ADSP_IRQ_2            0x0002


#define ALT_ADR_AUDIO_FREQ_REV_5E   0x3018

#define ALT_ADR_I2C_REV_5E          0x301C

#define ALT_ADR_OUTPUT_REV_5E       0x3020
#define ALT_D_SERIAL                   0x0
#define ALT_D_PARALLEL                 0x1

#define ALT_ADR_CLOCK_PADI_DEF          0x302C


#define ADR0              0x7fd8
#define ADR1              (ADR0+0x0001)
#define ADR2              (ADR0+0x0002)
#define ADR3              (ADR0+0x0003)
#define ADR4              (ADR0+0x0004)
#define ADR5              (ADR0+0x0005)

#define MUX_DMA_LENGTH        (0x4000)

enum AudioCommands {
	DSPAPI_VERIFYSYSTEM = 0x0001,
	DSPAPI_QUERYSUPPORTPLAY = 0x0002,
	DSPAPI_SETSTYLE = 0x0003,
	DSPAPI_SETSAMPLINGRATE = 0x0004,
	DSPAPI_SETCHANNELS = 0x0005,
	DSPAPI_SETRESOLUTION = 0x0006,
	DSPAPI_SETCRCOPTIONS = 0x0007,
	DSPAPI_BUFENQFOR = 0x0008,
	DSPAPI_LOGBUFFER = 0x0009,
	DSPAPI_STARTPLAY = 0x000a,
	DSPAPI_STOPPLAY = 0x000b,
	DSPAPI_AUTOSTOP = 0x000c,
	DSPAPI_STARTRECORD = 0x000d,
	DSPAPI_STOPRECORD = 0x000e,
	DSPAPI_GETLASTPROCESSEDBUFFER = 0x000f,
	DSPAPI_PAUSEPLAYRECORD = 0x0010,
	DSPAPI_RESTARTPLAYRECORD = 0x0011,
	DSPAPI_SETVOLUME = 0x0012,
	DSPAPI_QUERYSUPPORTRECORD = 0x0013,
	DSPAPI_GENERALBUFENQ = 0x0014,
	DSPAPI_SETDOWNMIXTYPE = 0x0015,
	DSPAPI_SETINPUTGAIN = 0x0016,
	DSPAPI_SETLINEOUT = 0x0017,
	DSPAPI_SETLANGMIXTYPE = 0x0018
};

enum AudioSystemCommands {
	SYSCMD_STARTMASTERDSP = 0x0001,
	SYSCMD_STOPMASTERDSP = 0x0004,
	SYSCMD_DISABLEINT = 0x0020,
	SYSCMD_CANCELMASTERINT = 0x0040,
	SYSCMD_MASTERDSPINT = 0x0100,
	SYSCMD_SELECTINT = 0x0400,
	SYSCMD_DESELECTINT = 0x0800,
	SYSCMD_RAISEIRQEINT = 0x1000
};

enum AudioCommandCodes {
	CLEARIRQLED = 0xB,
	RAISEIRQ2INT = 0xD,
	RAISEIRQEINT = 0xE,
	RESETALLINTS = 0xF,
	START_DSP = 0x8,
	CHKBOARD = 0x4
};
#endif

LinuxTV legacy CVS <linuxtv.org/cvs>